{"version":3,"sources":["app/reducer/authSlice.js","app/services/blockService.js","app/modules/client/reservation/tooltips/tip-due-out.js","app/assets/images/hr-three-dot.svg","app/assets/images/info-icon.svg","app/assets/images/down-arrow.svg","app/assets/images/up-arrow.svg","app/component/innThreeBarChart.js","app/modules/client/reservation/reservation-sub-menu.js","app/modules/client/reservation/indicators/indi-reservation-contact.js","app/modules/client/reservation/indicators/indi-booked-on.js","app/modules/client/reservation/indicators/indi-guest-name.js","app/modules/client/reservation/indicators/indi-arrival.js","app/modules/client/reservation/indicators/indi-room-type.js","app/modules/client/reservation/indicators/indi-adult-child.js","app/modules/client/reservation/indicators/indi-agent.js","app/modules/client/reservation/indicators/indi-company.js","app/modules/client/reservation/indicators/indi-reservation-type.js","app/modules/client/reservation/indicators/indi-rate-code.js","app/modules/client/reservation/indicators/indi-room-rate.js","app/modules/client/reservation/indicators/indi-daily-rate.js","app/modules/client/reservation/indicators/indi-inclusion.js","app/modules/client/reservation/indicators/indi-package.js","app/modules/client/reservation/indicators/indi-transportation.js","app/modules/client/reservation/indicators/indi-sharer.js","app/modules/client/reservation/indicators/indi-group-info.js","app/modules/client/reservation/indicators/indi-cancellation-rule.js","app/modules/client/reservation/indicators/indi-print-rate.js","app/modules/client/reservation/indicators/indi-no-post.js","app/modules/client/reservation/indicators/indi-sales-marketing.js","app/modules/client/reservation/indicators/indi-disclose-rate.js","app/modules/client/reservation/indicators/indi-accompany-guest.js","app/modules/client/reservation/indicators/indi-arrival-departure-detail.js","app/modules/client/reservation/indicators/indi-billing-instruction.js","app/modules/client/reservation/indicators/indi-card-authentication.js","app/modules/client/reservation/indicators/indi-routing-instruction.js","app/modules/client/reservation/indicators/indi-deposit-rule.js","app/modules/client/reservation/indicators/indi-deposit-received.js","app/modules/client/reservation/indicators/indi-balance.js","app/modules/client/reservation/indicators/indi-guest-profile.js","app/modules/client/reservation/indicators/indi-loyalty.js","app/modules/client/reservation/indicators/indi-vip-status.js","app/modules/client/reservation/indicators/indi-past-stay.js","app/modules/client/reservation/indicators/indi-future-stay.js","app/modules/client/reservation/indicators/indi-attachment.js","app/modules/client/reservation/indicators/indi-preference.js","app/modules/client/reservation/indicators/indi-internal-comment.js","app/modules/client/reservation/indicators/indi-incognito.js","app/utils/Model/ReservationArrivalListModel.js","app/modules/client/reservation/indicators/indi-room-feature.js","app/modules/client/reservation/indicators/indi-special.js","app/modules/client/reservation/indicators/indi-early-arrival.js","app/modules/client/reservation/indicators/indi-late-departure.js","app/modules/client/reservation/indicators/indi-alert.js","app/modules/client/reservation/indicators/indi-trace.js","app/modules/client/reservation/indicators/indi-reservation-attachment.js","app/modules/client/reservation/indicators/indi-task-completed.js","app/assets/images/innkeypmslogo.svg","app/modules/client/reservation/modalPopup/rateSummaryModalPopup.jsx","app/modules/client/reservation/modalPopup/billingInstructionModalPopup.jsx","app/modules/client/reservation/modalPopup/cancelReservationModalPopup.jsx","app/assets/images/adhar-card.png","app/services/generalService.js","app/modules/client/reservation/tooltips/tip-arrived.js","app/modules/client/reservation/modalPopup/addEditWindowRoutingModalPopup.jsx","app/services/roomMasterService.js","app/services/reservationCancelService.js","app/utils/Model/ReservationListFilterModel.js","app/modules/client/general/report/report-preview-level-0.js","app/modules/client/general/report/report-preview-level-two.js","app/assets/images/right-blue-round-arrow.svg","app/assets/images/attachment-icon.svg","app/component/innRadiobutton.js","app/reducer/commonSlice.js","app/modules/client/pos/master/document-remarks-master.js","app/component/innModalPopup.js","app/modules/client/reservation/indicators/indi-company-on-folio.js","app/modules/client/reservation/tooltips/tip-cancelled.js","app/modules/client/reservation/tooltips/tip-checked-out.js","app/modules/client/reservation/tooltips/tip-in-house.js","app/modules/client/reservation/tooltips/tip-no-show.js","app/modules/client/reservation/masters/market-group-master.js","app/modules/client/reservation/modalPopup/reservationTypeModalPopup.jsx","app/modules/client/reservation/modalPopup/rateCodeModalPopup.jsx","app/modules/client/reservation/modalPopup/roomAssignmentModalPopup.jsx","app/assets/images/action-dwn-arrow.svg","app/services/inventoryMasterService.js","app/assets/images/innkeypmslogo.png","app/modules/client/reservation/modalPopup/paymentModalPopup.jsx","app/modules/client/reservation/modalPopup/upgradeReasonModalPopup.jsx","app/modules/client/pos/modalPopup/addGuestPopup.jsx","app/modules/client/pos/modalPopup/guestPopup.jsx","app/services/frontMasterService.js","app/modules/client/reservation/modalPopup/addGuestModalPopup.jsx","app/modules/client/general/masters/guest-profile-identification.js","app/modules/client/reservation/tooltips/tip-due-in.js","app/services/posbillingService.js","app/modules/client/reservation/tooltips/tip-hold.js","app/modules/client/reservation/tooltips/tip-tentative.js","app/component/innCheckbox.js","app/modules/client/reservation/indicators/indi-fnb-discount.js","app/modules/client/reservation/modalPopup/specialModalPopup.jsx","app/modules/client/reservation/masters/cancellation-rule-master.js","app/modules/client/reservation/reservation-cancel-list.js","app/modules/client/reservation/masters/membership-level-Master.js","app/modules/client/reservation/masters/source-group-master.js","app/modules/client/reservation/masters/cashbook-transaction-master.js","app/modules/client/general/masters/personal-identification-type-master.js","app/modules/client/general/masters/country-master.js","app/modules/client/general/masters/relationship-type-master.js","app/modules/client/general/modalPopup/PropertySpecialsModalPopup.jsx","app/modules/client/general/modalPopup/PropertyRoomFeatureModalPopup.jsx","app/modules/client/general/masters/property-master.js","app/services/authService.js","app/modules/client/reservation/modalPopup/postReservationTransactionModalPopup.jsx","app/modules/client/pos/modalPopup/roomSettlementPopup.jsx","app/services/housekeepingServiceMaster.js","app/modules/client/pos/modalPopup/voidCheckDetailPopup.jsx","app/modules/client/pos/modalPopup/reSettlePOSBill.jsx","app/modules/client/pos/modalPopup/checkHistoryPreviewPopup.jsx","app/modules/client/pos/modalPopup/addCompanyPopup.jsx","app/modules/client/pos/modalPopup/companyPopup.jsx","app/component/innLineBarChart.js","app/services/posMasterService.js","app/reducer/posSlice.js","app/component/innTextbox.js","app/assets/images/small-close-icon.svg","app/component/innSearchTextbox.js","app/component/innSwitch.js","app/component/innLoader.js","app/component/innFileUpload.js","app/assets/images/icon-up.svg","app/assets/images/icon-down.svg","app/component/innTableGrid.js","app/component/innToastMessage.js","app/component/innTabs.js","app/component/innInnerGrid.js","app/component/innPreviewImage.js","app/component/innDataGrid.js","app/component/innMultiDateSelection.js","app/component/innDateTimeSelection.js","app/component/innDropdownWithRadioButton.js","app/component/innButtonWithDropdown.js","app/component/innEditor.js","app/component/innCalendar.js","app/component/innSingleRadioButon.js","app/component/useConfirm.js","app/component/innConfirmAlert.js","app/component/innAlert.js","app/component/innKeyboard.js","app/services/reservationCashieringService.js","app/modules/client/reservation/modalPopup/profilePreferenceModalPopup.jsx","app/assets/images/info-icon-2.svg","app/modules/client/reservation/modalPopup/roomRoutingRoomSelectionModalPopup.jsx","app/modules/client/reservation/modalPopup/addEditRoomRoutingModalPopup.jsx","app/component/innMultiSelect.js","app/component/innTooltip.js","app/component/innSingleDateSelection.js","app/component/innTimeSelection.js","app/component/innPlainTabs.js","app/reducer/frontSlice.js","app/component/innDropdown.js","app/component/innContextMenu.js","app/component/innColorPicker.js","app/component/innTextarea.js","app/component/innStatusLabel.js","app/component/innMovablePanel.js","app/component/innAccordion.js","app/assets/images/qr-code.png","app/modules/client/pos/check-history.js","app/modules/client/pos/modalPopup/manualRemarksPopup.jsx","app/modules/client/pos/modalPopup/tableLookupPopup.jsx","app/modules/client/pos/modalPopup/posRatePopup.jsx","app/modules/client/pos/modalPopup/madatoryModifierPopup.jsx","app/modules/client/pos/modalPopup/itemSearcPopup.jsx","app/modules/client/pos/modalPopup/serverPopup.jsx","app/modules/client/pos/modalPopup/discountPopup.jsx","app/modules/client/pos/modalPopup/mediaPopup.jsx","app/modules/client/pos/modalPopup/showDetailsPopup.jsx","app/modules/client/pos/modalPopup/taxExemptionPopup.jsx","app/modules/client/pos/modalPopup/numberKeypadPopup.jsx","app/modules/client/pos/modalPopup/optionalModifierPopup.jsx","app/modules/client/pos/modalPopup/functionPopup.jsx","app/modules/client/pos/modalPopup/splitTablePopup.jsx","app/modules/client/pos/modalPopup/bufferPopup.jsx","app/modules/client/pos/pos-billing.js","app/modules/client/pos/master/item-group-master.js","app/modules/client/pos/master/item-topping-master.js","app/modules/client/pos/master/location-master.js","app/modules/client/pos/master/menu-category-master.js","app/modules/client/pos/master/outlet-menu-mapping.js","app/modules/client/pos/master/outlet-table-master.js","app/modules/client/pos/master/outlet-happy-hour-master.js","app/modules/client/pos/master/outlet-item-group-mapping.js","app/modules/client/pos/master/outlet-master.js","app/modules/client/pos/master/pos-item-master.js","app/modules/client/pos/master/server-master.js","app/modules/client/pos/master/item-topping-mapping.js","app/modules/client/pos/master/menu-item-master.js","app/modules/client/pos/master/menu-master.js","app/modules/client/pos/master/course-master.js","app/modules/client/pos/modalPopup/postMinibarChargePopup.jsx","app/modules/client/pos/minibar.js","app/modules/client/pos/modalPopup/venueDetailModalPopup.jsx","app/modules/client/pos/modalPopup/taxBreakupPopup.jsx","app/modules/client/pos/modalPopup/addEditBanquetModalPopup.jsx","app/modules/client/pos/banquet.js","app/assets/images/login-left-logo.png","app/assets/images/question-icon-wht.svg","app/assets/images/login-icon.svg","app/assets/images/internet-icon.svg","app/modules/client/reservation/modalPopup/dailyRateModalPopup.jsx","app/utils/hooks/useAlert.js","app/assets/images/sms-tooltip-icon.svg","app/assets/images/email-tooltip-icon.svg","app/modules/client/reservation/filters/single-select-filter.js","app/modules/client/reservation/filters/input-text-filter.js","app/modules/client/reservation/filters/checkbox-filter.js","app/modules/client/reservation/modalPopup/cancel-noshow-ModalPopup.jsx","app/assets/images/qr.jpg","app/component/innDropdownTable.js","app/modules/client/general/report/report-preview-level-three.js","app/modules/client/general/modalPopup/recieptPaymentModalPopup.jsx","app/modules/client/general/modalPopup/EncashmentDenominationModalPopup.jsx","app/modules/client/general/modalPopup/EncashmentModalPopup.jsx","app/utils/helpers/generalMethod.js","app/modules/client/general/printDocs/cash-receipt.js","app/modules/client/general/printDocs/cash-voucher.js","app/modules/client/general/printDocs/encashment-certificate.js","app/modules/client/general/cash-book.js","app/modules/client/reservation/modalPopup/addPackageModalPopup.jsx","app/modules/client/reservation/modalPopup/packageSelectionModalPopup.jsx","app/services/guestProfileMasterService.js","app/assets/images/history-clock-icon.svg","app/assets/images/bell-orange-icon.svg","app/assets/images/three-dot-icon-white.svg","app/assets/images/sharer-secondary.svg","app/assets/images/sharer-primary.svg","app/services/reservationReportService.js","app/services/reservationService.js","app/modules/client/reservation/reservation-add.js","app/modules/client/reservation/modalPopup/addReservationParty.jsx","app/modules/client/reservation/modalPopup/LinkReservationModalPopup.jsx","app/modules/client/reservation/modalPopup/roomMoveModalPopup.jsx","app/modules/client/reservation/modalPopup/payMasterModalPopup.jsx","app/modules/client/reservation/reservation-list-page.js","app/modules/client/reservation/reservation-page.js","app/modules/client/reservation/masters/rate-group-master.js","app/modules/client/reservation/masters/room-feature-modal.js","app/modules/client/reservation/masters/room-master.js","app/modules/client/reservation/masters/room-type-master.js","app/modules/client/reservation/masters/upgrade-reason-master.js","app/modules/client/reservation/masters/billing-instruction-routing.js","app/modules/client/reservation/masters/billing-instruction-master.js","app/modules/client/reservation/masters/building-master.js","app/modules/client/reservation/masters/floor-master.js","app/modules/client/reservation/masters/market-master.js","app/modules/client/reservation/reservation-view.js","app/modules/client/reservation/masters/source-master.js","app/modules/client/reservation/masters/cancellation-reason-master.js","app/modules/client/reservation/new-block-reservation.js","app/modules/client/reservation/indicators/indi-block-attachment.js","app/modules/client/reservation/block-at-glance.js","app/modules/client/reservation/modalPopup/autoAssignModalPopup.jsx","app/modules/client/reservation/reservation-arrival-list.js","app/modules/client/reservation/reservation-block-list.js","app/modules/client/reservation/masters/special-group-master.js","app/modules/client/reservation/masters/day-type-master.js","app/modules/client/reservation/masters/trace-master.js","app/modules/client/reservation/masters/Room-Class-Master.js","app/modules/client/reservation/masters/routing-master.js","app/modules/client/reservation/masters/ratecode-miscellaneous-master.js","app/modules/client/reservation/modalPopup/otaLogRequestResponse.jsx","app/modules/client/reservation/otaLog.js","app/modules/client/reservation/modalPopup/invoiceDetailsModalPopup.jsx","app/modules/client/reservation/GSTeinvoice.js","../node_modules/suneditor/src/lang sync /^/.*/.js$","app/modules/client/reservation/tooltips/block-tip-tentative.js","app/modules/client/reservation/tooltips/block-tip-cancelled.js","app/modules/client/reservation/tooltips/block-tip-confirmed.js","app/modules/client/reservation/tooltips/block-tip-hold.js","app/modules/client/reservation/tooltips/block-tip-loss.js","app/modules/client/reservation/tooltips/block-tip-no-show.js","app/assets/images/right-circle-arrow-gray.svg","app/modules/client/general/masters/master.js","app/modules/client/general/masters/brand-master.js","app/modules/client/general/masters/profile-address-type-master.js","app/modules/client/general/masters/profile-title-master.js","app/modules/client/general/masters/profile-communication-type-master.js","app/modules/client/general/masters/region-master.js","app/modules/client/general/masters/deposit-rule-master.js","app/modules/client/general/masters/guest-profile-relationship.js","app/modules/client/general/masters/guest-profile-internal-comment.js","app/modules/client/general/masters/guest-profile-corres-privacy.js","app/modules/client/general/masters/special-feature-modal.js","app/modules/client/general/masters/room-feature-modal.js","app/modules/client/general/masters/add-edit-guest-profile.js","app/modules/client/reservation/tooltips/tip-guest-profile.js","app/modules/client/general/masters/guest-profile-master.js","app/modules/client/general/masters/company-profile-identification.js","app/modules/client/general/masters/company-profile-internal-comment.js","app/modules/client/general/masters/company-profile-sales-info.js","app/modules/client/general/masters/company-profile-negotiated-rate.js","app/modules/client/general/masters/company-profile-contact.js","app/modules/client/general/masters/company-profile.js","app/modules/client/reservation/tooltips/tip-company-profile.js","app/modules/client/general/masters/company-profile-list.js","app/modules/client/general/masters/user-category-master.js","app/modules/client/general/masters/vip-status-master.js","app/modules/client/general/masters/state-master.js","app/modules/client/general/masters/employee-master.js","app/modules/client/general/masters/device-master.js","app/modules/client/general/masters/reference-master.js","app/modules/client/general/masters/exemption-master.js","app/modules/client/general/masters/user-rights-master.js","app/modules/client/general/masters/transaction-master.js","app/modules/client/general/masters/user-master.js","app/modules/client/general/modalPopup/RoomFeatureModalPopup.jsx","app/modules/client/general/modalPopup/SpecialsModalPopup.jsx","app/modules/client/general/masters/client-master.js","app/modules/client/general/masters/pay-mode-master.js","app/assets/images/sharer-primary-icon.svg","app/assets/images/block-icon.svg","app/assets/images/sharer-secondary-icon.svg","app/modules/client/reservation/modalPopup/AgentModalPopup.jsx","app/assets/images/model-cls-btn.png","app/modules/client/reservation/modalPopup/guestModalPopup.jsx","app/modules/client/reservation/modalPopup/roomFeatureModalPopup.jsx","app/modules/client/reservation/modalPopup/addCompanyModalPopup.jsx","app/modules/client/reservation/modalPopup/companyModalPopup.jsx","app/assets/images/jpg-file-icon.svg","app/utils/helpers/reservation.js","app/assets/images/settings-icon.svg","app/component/innLineBar.js","app/assets/images/inside-left-menu-arrow.svg","app/assets/images/link-icon.svg","app/component/innButton.js","app/utils/helpers/history.js","app/modules/navigation/privateRoute.js","app/modules/navigation/moduleMenu.js","app/modules/navigation/notificationDropdown.js","app/modules/navigation/settingPageMenu.js","app/assets/images/close-menu.svg","app/assets/images/desk-mgt-icon-white.png","app/temp/temp-navigation.js","app/modules/navigation/leftNavigation.js","app/assets/images/left-arrow.png","app/assets/images/chat-user-1.png","app/modules/navigation/userProfileMenu.js","app/services/tokenService.js","app/modules/auth/login-page.js","app/modules/client/reservation/modalPopup/trasferReservationTransactionModalPopup.jsx","app/modules/client/reservation/modalPopup/allowanceModalPopup.jsx","app/modules/client/reservation/modalPopup/reservationTransactionSplitModalPopup.jsx","app/modules/client/reservation/modalPopup/paymentSplitModalPopup.jsx","app/modules/client/reservation/modalPopup/reservationTransactionFAndBAllowanceModalPopup.jsx","app/modules/client/reservation/front-invoice.js","app/modules/client/reservation/modalPopup/checkoutModalPopup.jsx","app/modules/client/reservation/modalPopup/advanceBillModalPopup.jsx","app/modules/client/reservation/modalPopup/earlyDepartureModalPopup.jsx","app/modules/client/reservation/modalPopup/bulkPaymentModalPopup.jsx","app/modules/client/reservation/modalPopup/postPMTransactionModalPopup.jsx","app/modules/client/reservation/reservation-departure-list.js","app/modules/client/reservation/dashboard/reservation-dashboard.js","app/modules/client/reservation/dashboard/reservation-darshboard-houseuse-tile.js","app/services/reservationDashboardService.js","app/modules/client/reservation/dashboard/reservation-dashboard-60min-tile.js","app/modules/client/reservation/dashboard/reservation-dashboard-activity-tile.js","app/modules/client/reservation/dashboard/reservation-dashboard-advance-checkin-tile.js","app/modules/client/reservation/dashboard/reservation-dashboard-arrival-tile.js","app/modules/client/reservation/dashboard/reservation-dashboard-arrived-inhouse-tile.js","app/modules/client/reservation/dashboard/reservation-dashboard-block-overview-tile.js","app/modules/client/reservation/dashboard/reservation-dashboard-cancellation-tile.js","app/modules/client/reservation/dashboard/reservation-dashboard-complimentary-tile.js","app/modules/client/reservation/dashboard/reservation-dashboard-dailyprojection-tile.js","app/modules/client/reservation/dashboard/reservation-dashboard-departure-tile.js","app/modules/client/reservation/dashboard/reservation-dashboard-queue-tile.js","app/modules/client/reservation/dashboard/reservation-dashboard-revenue-tile.js","app/modules/client/reservation/dashboard/reservation-dashboard-room-availability-tile.js","app/modules/client/reservation/dashboard/reservation-dashboard-room-maintenance-tile.js","app/modules/client/reservation/dashboard/reservation-dashboard-room-status-tile.js","app/modules/client/reservation/dashboard/reservation-dashboard-room-summary-tile.js","app/modules/client/reservation/dashboard/reservation-dashboard-today-tile.js","app/modules/client/reservation/modalPopup/rateCodeMasterModelPopup.jsx","app/modules/client/reservation/modalPopup/priceScheduleModalPopup.jsx","app/modules/client/reservation/masters/rate-code-master.js","app/modules/client/reservation/masters/reason-master.js","app/modules/client/reservation/report/reservation-report.js","app/modules/client/housekeeping/modalPopup/postLaundryTransactionModalPopup.jsx","app/modules/client/housekeeping/modalPopup/changeHKStatusModalPopup.jsx","app/modules/client/inventory/master/StoreUserModelPopup.js","app/modules/client/inventory/master/item-department-master.js","app/modules/client/inventory/master/raw-material-charge-master.js","app/modules/client/inventory/master/item-vender-master.js","app/modules/client/inventory/master/item-store-master.js","app/modules/client/inventory/basic/modalPopup/storeItemRequestModalPopup.jsx","app/modules/client/inventory/basic/modalPopup/purchaseItemRequestModalPopup.jsx","app/modules/client/inventory/basic/modalPopup/otherTransactionItemRequestModalPopup.jsx","app/modules/client/inventory/basic/modalPopup/inventoryOtherChargesModalPopup.jsx","app/modules/client/inventory/basic/modalPopup/inventoryTaxBreakupModalPopup.jsx","app/modules/client/inventory/basic/modalPopup/departmentPurchaseRequestModalPopup.jsx","app/modules/client/inventory/basic/modalPopup/approveStoreRequisitionModalPopup.jsx","app/modules/client/inventory/basic/modalPopup/approvePurchaseRequisitionModalPopup.jsx","app/modules/client/general/printDocs/inv-transaction-slip.js","app/modules/client/inventory/report/inventoryReport.js","app/modules/client/housekeeping/report/housekeepingReport.js","app/utils/helpers/sharedModule.js","app/modules/client/general/night-audit-process.js","app/modules/client/reservation/reservation-cashiering.js","app/modules/client/housekeeping/masters/housekeeping-section-master.js","app/modules/client/housekeeping/masters/housekeeping-section-group-master.js","app/modules/client/general/masters/industry-master.js","app/modules/client/reservation/masters/event-master.js","app/modules/client/general/masters/city-master.js","app/modules/client/reservation/masters/reservation-type-master.js","app/modules/client/reservation/masters/department-master.js","app/modules/client/general/masters/note-type-master.js","app/modules/client/reservation/masters/transportation-provider-master.js","app/modules/client/reservation/masters/package-master.js","app/modules/client/reservation/masters/alert-master.js","app/modules/client/general/masters/functional-area-master.js","app/modules/client/housekeeping/masters/housekeeping-status-master.js","app/modules/client/reservation/masters/transportation-type-master.js","app/modules/client/general/masters/rate-type-master.js","app/modules/client/reservation/report/reservation-report-preview.js","app/modules/client/housekeeping/masters/laundry-item-master.js","app/modules/client/housekeeping/masters/laundry-item-category-master.js","app/modules/client/housekeeping/masters/laundry-return-in-master.js","app/modules/client/housekeeping/masters/laundry-hotel-service-master.js","app/modules/client/housekeeping/masters/laundry-vender-master.js","app/modules/client/housekeeping/masters/laundry-service-master.js","app/modules/client/housekeeping/masters/laundry-master.js","app/modules/client/housekeeping/masters/laundry-item-rate-master.js","app/modules/client/housekeeping/masters/hk-service-master.js","app/modules/client/housekeeping/laundry-list-page.js","app/modules/client/housekeeping/transaction/house-keeping-management-list.js","app/modules/client/housekeeping/report/housekeeping-report-preview.js","app/modules/client/inventory/master/inv-department-master.js","app/modules/client/inventory/master/inv-store-master.js","app/modules/client/inventory/master/unit-of-measure-master.js","app/modules/client/inventory/master/vender-master.js","app/modules/client/inventory/basic/inventory-management.js","app/modules/client/inventory/master/inv-category-master.js","app/modules/client/inventory/master/inv-Item-Class-Master.js","app/modules/client/inventory/report/inventory-report-preview.js","app/modules/client/inventory/report/inv-stock-level-report.js","app/modules/client/inventory/master/raw-material-master.js","app/modules/client/inventory/basic/mms-day-closing.js","app/modules/client/inventory/report/inv-stock-valuation-report.js","app/modules/client/inventory/report/inv-material-movement-report.js","app/modules/client/inventory/report/inv-vender-detail-report.js","app/modules/client/inventory/report/inv-item-list-report.js","app/modules/client/inventory/report/inv-Day-CloseLog-Report.js","app/modules/client/inventory/report/inv-non-moving-report.js","app/assets/images/settings.svg","app/assets/images/menu-icon.svg","app/assets/images/chat-support-icon.svg","app/modules/client/home-page.js","App.js","reportWebVitals.js","app/store/store.js","i18n.js","index.js","app/assets/images/the_orchid_logo.svg"],"names":["authSlice","createSlice","name","initialState","user","IsSignIn","ClientSerNo","PropertySerNo","CurrentModule","UserID","user2","confirmAlert","show","Message","Type","Buttons","innAlert","reducers","logout","state","login","action","payload","setClientSerNo","setPropertySerNo","SHOW_CONFIRM","HIDE_CONFIRM","showAlert","hideAlert","setModule","actions","currentUser","auth","confirmData","alertData","GetBlockAttachment","BlockSerNo","apiUrl","axios","get","AddEditBlockAttachment","para","post","GetBlockReservationForBulkPost","PostReservationBulkTransaction","AddReservationBulkTransaction","TipDueOut","props","currUser","useSelector","history","useHistory","useState","reservationInfoData","setReservationInfoData","isReloadTransportation","updatePreference","setUpdatePreference","selectedGuestProfile","setSelectedGuestProfile","totalBalance","setTotalBalance","guestInfo","setGuestInfo","reservationObj","parseInt","ReservationSerNo","useEffect","undefined","GetReservationInfoData","then","d","guestProfileSerNo","data","GuestProfileSerNo","GetReservationInfoProfileData","manageReservationBalanceIndicator","className","GuestName","masterClass","toolType","content","ContactName","ContactMobile","src","smsIcon","ContactEmail","EmailTooltipIcon","direction","BookingNo","onClick","handleOnclose","console","log","Nights","Balance","push","pathname","propertySerNo","reservationSerNo","filterObj","IsShowTooltipActionButton","IsReload","onSelect","item","ProfileSerNo","InnThreeBarChart","svgRef","useRef","svgDivRef","xData","xAxisData","setXAxisData","svgWidth","setSvgWidth","getContainerDimension","containerHeight","setContainerHeight","containerWidth","setContainerWidth","size","width","height","windowSize","setWindowSize","handleResize","window","innerWidth","innerHeight","addEventListener","removeEventListener","useWindowSize","current","clientHeight","clientWidth","setTimeout","length","gapBetweenXAxisTicks","graphStart","graphEnd","barWidth","gapBetweenBars","paddingFromScreen","paddingLeftForXAxis","x_axis_y1_point","x_axis_x2_point","x_axis_y2_point","gapBetweenYAxisTicks","yData","style","display","ref","position","backgroundColor","backColor","yTicksData","currX","currY","yAxisFontSize","i","x","y","map","index","top","left","fontSize","fontWeight","yAxisFontWeight","color","yAxisFontColor","alignItems","justifyContent","render_y_axis_tick_label","overflowY","minWidth","xTicksData","currX2","x1","x2","y1","y2","stroke","strokeWidth","axisWidth","render_x_axis","currentValue","curr1","currX1","topVal1","currX3","curr2","topVal2","curr3","topVal3","radius","data1","data2","data3","circleCenterVal1","circleCenterVal2","circleCenterVal3","Fragment","fill","barColor1","cx","cy","r","barColor2","barColor3","renderBarChartUsingSvgRectangle","currWidth","xAxisFontSize","xAxisFontWeight","xAxisFontColor","render_x_axis_tick_lable","ReservationSubMenu","parameter","businessDate","setBusinessDate","useDispatch","onClose","addDays","date","days","result","Date","setDate","getDate","GetPropertyParameterByKeys","obj","find","key","value","LeftMenuArrow","Mainmenu","FromDate","moment","format","ToDate","DtType","ReservationStatus","padding","SortCol","SortType","RoomTypeSerNo","RateSerNo","CompanyProfileSerNo","AgentProfileSerNo","BookingReferenceNo","MembershipNo","FirstName","LastName","VIPLevelSerNo","strMemberShipLevel","CanReservationStatus","BlockName","RoomSerNo","IsSameDayCancel","IsSameDayArrivalCancel","margin","IsShowBlockRoomsOnly","Submenu","IsOnlyComplimentary","IsOnlyHouseUsed","IndiReservationContact","t","useTranslation","confirm","useConfirm","showReservationContactPopup","setShowReservationContactPopup","contactType","setContactType","resContactData","setContactData","contactListData","setContactListData","rbValue","setrbValue","isOpenAddGuest","setIsOpenAddGuest","contactDetailValidation","setContactDetailValidation","showEditDiv","setShowEditDiv","userRightsData","setUserRightsData","nothing","resContactDetail","setResContactDetail","getReservationContactData","GetReservationInfoReservationContactData","ReservationContactType","prev","catch","error","fillContactProfileList","conType","GetReservationInfoReservationContactProfileList","ManageRights","handleSaveOnClick","isValid","MobileNo","RegExp","test","EmaiID","Name","isValidData","AddEditReservationContact","Code","alert","hanleAddNewOnClick","handleUserRights","strRightsSerNo","a","userRightObj","RightsSerNo","IsApply","PromptMessage","title","type","ContactDepartment","ContactDesignation","ReservationContactSerNo","rbval","Onclose","groupname","onSelectionChange","element","ContactProfileSerNo","label","checked","onSingleSelectionChange","IsPrimary","disabled","customError","onChange","v","required","handleSave","guestObj","profileContactDetail","Designation","AddEditProfileContactDetail","handleAddProfileContact","guest","e","IndiBookedOn","ReservationDate","ResBeforeDays","IndiGuestName","IsIncognito","ProfileName","CommunicationType","IndiArrival","ArrivalDay","ArrivalDate","IndiRoomType","indiRoomTypeData","setIndiRoomTypeData","manageReservationIndicator","RoomTypeName","ChargeableRoomTypeSerNo","ChargeableRoomTypeName","UpgradeReason","RoomNo","RoomStatus","IndiAdultChild","Adult","Child","Adults","IndiAgent","agentInfo","setAgentInfo","IndiCompany","companyInfo","setCompanyInfo","IndiReservationType","ReservationType","IndiRateCode","indiRateCodeData","setIndiRateCodeData","manageReservationRateCodeIndicator","IndiRoomRate","dailyRateData","setDailyRateData","upSellType","setUpSellType","oldRate","setOldRate","newRate","setNewRate","manageReservationDailyIndicator","avg","avgNew","parseFloat","TotalOriginalRoomRate","TotalRoomRate","toFixed","IsSharer","IsRoomUpSell","IsPackageUpSell","IsDiscloseRate","IsTaxInclusive","IndiDailyRate","isFixed","setIsFixed","isSameDailyRate","setIsSameDailyRate","isSameDailyRt","every","tempDaily","filter","IndiInclusion","indiInclusionData","setIndiInclusionData","manageReservationBlockPackageIndicator","tempCol","forEach","ele","IsAdditional","PackageSerNo","manageReservationPackageIndicator","status","IndiPackege","setIndiPackageData","indiPackageList","setIndiPackageList","packageTotal","setPackageTotal","tempPackages","tempTotal","tempPackagesList","PackagePrice","Taxes","tempPkg","tempQty","CalculationRuleSerNo","e2","Qty","Total","ExportOption","list","id","IndiTransportation","innkeyAlert","useAlert","defaultGuestObj","defaultTransProviderObj","defaultTransTypeObj","setIsActive","showTransportationPopup","setShowTransportationPopup","SetgridSelectedItem","temp","settemp","showTooltipPickupGuestDetail","setShowTooltipPickupGuestDetail","showTooltipDropGuestDetail","setShowTooltipDropGuestDetail","showTooltipLocalGuestDetail","setShowTooltipLocalGuestDetail","showPrimaryGuestDetail","setShowPrimaryGuestDetail","setSelectedChargableTransTypeObj","selectedTransProviderObj","setSelectedTransProviderObj","selectedGuestObj","setSelectedGuestObj","currentSelectedResTransportationSerNo","setCurrentSelectedResTransportationSerNo","transportationMainObj","setTransportationMainObj","accompanyGuestList","setAccompanyGuestList","accompanyGuestArrDeptDetailsList","setAccompanyGuestArrDeptDetailsList","transportationTypeList","setTransportationTypeList","transportationProviderList","setTransportationProviderList","reservationInfo","setReservationInfo","fillAccompanyGuestData","setFillAccompanyGuestData","fillTransporatationTypeData","setFillTransporatationTypeData","fillTransporatationProviderData","setFillTransporatationProviderData","transportationTypeArrowCss","setTransportationTypeArrowCss","response","funGetReservationAccompanyGuest","fillUserRights","fillPropertyParameter","GetReservationAccompanyGuest","SortedList","sort","b","tmpData","splice","funGetReservationInfoArrivalDepartureDetail","GetReservationInfoArrivalDepartureDetail","funGetTransportationTypeMaster","GetTransportationTypeMaster","TransportationTypeSerNo","funGetTransportationProviderMaster","GetTransportationProviderMaster","TransportationProviderSerNo","funGetReservationInfoTransportationDetail","GetReservationInfoTransportationDetail","customErrorRate","customErrorAdult","customErrorChild","customErrorChaufferNumber","DisplaySequence","Mode","PickupGuestData","DropGuestData","LocalGuestData","IsPickUp","IsDropOff","ReservationTransportationSerNo","funDeleteReservationInfoTransportationDetail","DeleteReservationInfoTransportationDetail","funClearControlData","TransportationDate","TransportationTime","ActualArrivalTime","ChargableTransportationTypeSerNo","customErrorAddress","isValidOnlyDecimalNumber","isNaN","isValidOnlyIntegerNumber","isValidOnlyIntegerNumberWithSpace","funSetCarrierAndPriceDetail","TransporationTypeSerNo","ArrDate","Moment","ArrTransportationDate","toDateString","ArrTime","ArrTransportationTime","toISOString","TransportationCarrier","ArrTransportCarrier","TransportationRefNo","ArrTransportationRefNo","TransportationNote","ArrTransportationNote","DeptDate","DeptTransportationDate","DeptTime","DeptTransportationTime","DeptTransportCarrier","DeptTransportationRefNo","DeptTransportationNote","Price","validateDelTrnsprtReq","IsValid","handleOnDeleteClick","handleOnEditClick","handleOnCancelClick","TransportationName","selectedSerNo","class","TransChargeTypeSeqNo","TransTypeSeqNo","SeqNo","placeholder","calendarStartDay","selected","timeformat","dateformat","IsFixedRate","onChecked","validateTrnsprtFixRate","validateTrnsprtTaxIncl","Address","Mobile","VehicleNo","ChaufferName","ChaufferNumber","MaxAdult","getTime","setHours","DepartureDate","trim","apiObj","AddEditReservationInfoTransportationDetail","funAddEditReservationInfoTransportationDetail","showSelection","header","sorting","getSelectedItem","items","setSelectedItem","handleLinkClick","pagination","uniqueColumn","optData","optClick","option","fixedHeaderNo","handleRowSelect","rowdata","IndiSharer","details","setDetails","sharerData","setSharerData","GetSharerDetail","GetSharerDetails","resp","BillingInstructionRemarks","AgentName","CompanyName","IndiGroupInfo","groupInfoData","setGroupInfoData","manageReservationIndiGroupInfo","RoomNights","IndiCancellationRule","showCancellationPopup","setCancellationPopup","reservationCancellationObj","setReservationCancellationObj","cancellationRuleList","setcancellationRuleList","selectedCancellationRuleSerNo","setSelectedCancellationRuleSerNo","cmbCancellationRule","setCmbCancellationRule","cancellationDescription","setCancellationDescription","cancellationRuleDetail","setcancellationRuleDetail","filterDataCancellation","setfilterDataCancellation","cancellationRuleDetailList","setcancellationRuleDetailList","setGridSelectedItem","cancellationRuleMode","setCancellationRuleMode","divCancellationRuleEnable","setDivCancellationRuleEnable","getReservationCancellationData","CancellationRuleSerNo","LongDescription","GetReservationInfoCancellationData","GetReservationInfoCancellationDetail","getCancellationDetail","ruleSerNO","cancellationDetailList","cancelrulserno","desc","CancellationRuleName","before","DaysBeforeArrival","CancellationDate","time","CancellationTime","amount","CancellationAmount","handleEditOnClick","arrivalDate","departureDate","GetCancellationRuleMasterByDate","cancellationList","Negotiable","AddEditReservationCancellation","align","IndiPrintRate","isPrintRate","setIsPrintRate","IsPrintRate","manageReservationFields","onUpdate","IndiNoPost","userRights","setUserRights","AllOutlet","ItemGroup","Custom","controlMode","setControlMode","viewMode","setViewMode","OutletGroupSerNo","OutletSerNo","ItemGroupSerNo","selectedObject","setSelectedObject","noPostHeader","setNoPostHeader","outletGroup","setOutletGroup","outlet","setOutlet","filteredOutlet","setFilteredOutlet","setOutletTooltipData","itemGroup","setItemGroup","filteredItemGroup","setFilteredItemGroup","customModeData","setCustomModeData","isDataUpdated","setIsDataUpdated","funGetReservationNoPostData","handleOnFilterChange","funGetReservationNoPostOutletGroup","funGetReservationNoPostCustom","funGetReservationNoPostItemGroup","funGetReservationNoPostOutlet","funGetUserRights","GetReservationNoPostData","NoPostType","GetReservationNoPostOutletGroup","GetReservationNoPostOutlet","filterData","tempOutletGruop","OutletGroupName","GroupWiseOutletList","reduce","OutletName","GetReservationNoPostItemGroup","GetReservationNoPostCustom","tempOutlet","handleOutletGroupChange","target","handleRights","rightSerNo","userRight","validateNoPostEdit","setNoPostPopup","showNoPostPopup","d1","IsChecked","ItemGroupName","FinalData","AddReservationNoPostOutletGroup","tempOutletWiseMainData","tempitemGroupData","toString","replace","tempcustomModeData","IndiSalesMarketing","defaultcmbData","defaultObj","salesMarketingData","setSalesMarketingData","businessSourceData","setBusinessSourceData","marketData","setMarketData","salesPersonData","setSalesPersonData","showSalesPopup","setSalesPopup","getReservationInfo","getCmbGetMarketMaster","getCmbGetBusinessSource","getCmbGetSalesPerson","GetReservationInfoSalesMarketingData","tempObj","cmbGetMarketMaster","cmbGetSourceMaster","cmbGetSalesPerson","SalesPersonName","EditReservationInfoForSalesMarketing","MarketSerNo","searchable","SourceSerNo","SalesPersonProfileSerNo","IndiDiscloseRate","isDiscloseRate","setIsDiscloseRate","showToast","setShowToast","message","active","IndiAccompanyGuest","indiAccompanyGuestData","setIndiAccompanyGuestData","showGuestModal","setShowGuestModal","adultCollection","setAdultCollection","childCollection","setChildCollection","selectedAdult","setSelectedAdult","primaryGuest","setPrimaryGuest","fillIndiAccompanyGuest","setDefaultValue","existingAdult","IsAdult","existingChild","o","IsPrimaryGuest","showAccompanyGuestModal","setShowAccompanyGuestModal","tempMergeObj","JSON","parse","stringify","mergeCollection","m","AddReservationAccompanyGuestProfile","SerNo","placement","rightarrow","tempAdult","handleOnAdultDelete","tempChild","handleOnChildDelete","OnSelect","msg","tmpObj","IsOk","IndiArrivalDepartureDetail","isActive","showArrivalDeparturePopup","setShowArrivalDeparturePopup","showResDetail","setShowResDetail","showResArrDeptData","setShowResArrDeptData","selectedGuestProfileSerNo","setSelectedGuestProfileSerNo","applyAllCheckboxDisabled","setApplyAllCheckboxDisabled","funGetReservationInfoArrivalDeparture","GetReservationInfoArrivalDeparture","customErrorArrDate","customErrorArrTime","customErrorArrCarrier","customErrorArrRefNo","customErrorArrNote","customErrorDeptDate","customErrorDeptTime","customErrorDeptCarrier","customErrorDeptRefNo","customErrorDeptNote","saveGuestDataToMainObj","TargetControl","tempCollection","ResArrDate","ReservationArrivalDate","ResDeptDate","ReservationDepartureDate","DeptTransDate","NewDate","tempData","NewArrTransTime","isValidOnlyAlphabetWithSpace","ArrTransDate","NewDeptTransTime","tempCurrObj","IsApplyToAll","clearSelectedGuestDetail","handleOnArrivalDeparturePopupClose","handleOnSaveClick","EditReservationArrivalDeparture","handleOnResetClick","IsReset","selectedGuest","copyDetailtoAllGuest","IndiBillingInstruction","showBillingInstructionModal","setShowBillingInstructionModal","billingData","setbillingData","BillingInstructionSerNo","BillingInstruction","handleOnSelection","IndiCardAuthentication","IndiRoutingInstruction","showWindowRoutingPopup","setWindowRoutingPopup","showWindowRoutingEditModal","setShowWindowRoutingEditModal","showRoomRoutingEditModal","setShowRoomRoutingEditModal","selectMulti","setSelectMulti","setWindowList","windowListAll","setWindowListAll","wrRouting","setwrRouting","windowRoutingData","setWindowRoutingData","windowRoutingGroup","setWindowRoutingGroup","windowRoutingDetail","setWindowRoutingDetail","windowRoutingGroupFiltered","setWindowRoutingGroupFiltered","windowRoutingDetailFiltered","setWindowRoutingDetailFiltered","groupSelectAll","setGroupSelectAll","detailSelectAll","setDetailSelectAll","selectedStay","setSelectedStay","noOfSelectedStayDays","setNoOfSelectedStayDays","windowRoutingAddEditObject","setWindowRoutingAddEditObject","roomRoutingAddEditObject","setRoomRoutingAddEditObject","roomRoutingData","setRoomRoutingData","roomBookingNoListAll","setRoomBookingNoListAll","roomRoutingGroup","setRoomRoutingGroup","roomRoutingDetail","setRoomRoutingDetail","roomRoutingGroupFiltered","setRoomRoutingGroupFiltered","roomRoutingDetailFiltered","setRoomRoutingDetailFiltered","popupMode","rbDataRouting","tempreservationInfoData","RoutingMode","handleRdbWindowRoomRoutingSelectionChange","funGetReservationWindowRoutingData","funGetReservationWindowRouting","funFillFilteredGroupData","funFillFilteredGroupDataRoom","funGetReservationRoomRouting","GetReservationWindowRoutingData","tmp","GroupIndividualMode","GetReservationWindowRouting","IsManual","WindowSerNo","tempWindObj","WindowName","RoutingName","tempWindow","IsDeleted","routingSerNo","tempWindow1","funGetReservationWindowRoutingGroup","funGetReservationWindowRoutingDetail","paraWindowRoutingData","GetReservationWindowRoutingGroup","isChecked","RoutingSerNo","tempRoutingObj","tempDistinctWindow","eleRouting","eleWindow","windowList","funFillFilteredGroupDataCore","paraWindowData","GetReservationWindowRoutingDetail","TransactionSerNo","eleDetail","transactionSerNo","funFillFilteredDetailDataCore","paraWindowRoutingGroup","selectedWindow","funFillFilteredDetailData","paraWindowRoutingDetail","selectedRoute","tempRouteObj","GetReservationRoomRouting","RoutedReservationSerNo","RoutedRoomName","tempBookingNo","funGetReservationRoomRoutingGroup","funGetReservationRoomRoutingDetail","paraRoomRoutingData","GetReservationRoomRoutingGroup","tempDistinctBookingNo","tempBookingNoList","bookingNoList","funFillFilteredDetailDataRoom","paraRoomData","GetReservationRoomRoutingDetail","funRoutedRoomSelectionChange","stopPropagation","selectedRoutedReservationSerNo","tempRoutedReservationSerNo","selectedRoom","tempRoomObj","funRoutedRoomGroupSelectionChange","attributes","selectedRoutingSerNo","tempselectedRoutingSerNo","handlebtnResetRoutingMain","routingMode","alertMessage","ResetReservationRouting","GetReservationRoomRoutingApplyOn","tempStay","tmpSelectedStay","Data","GetReservationWindowRoutingApplyOn","handlechkGroupSelectAll","handlechkDetailSelectAll","handlechkGroupSelect","handleChkDetailSelect","handlebtnDeleteWindow","AddEditReservationWindow","funAddEditReservationWindow","handleWindowSelectionChangeGroup","item1","name1","oldWindowSerNo","newWindowSerNo","handleWindowSelectionChangeGroupCore","handleWindowRemoveGroup","tempGroupObj","IsExit","indexOfObject","tempDetailObj","handleWindowSelectionChangeDetail","handleWindowSelectionChangeDetailCore","handleWindowRemoveDetail","totalRoutingDetailObj","handlebtnAddRoom","handlebtnEditRoom","tempRoom","GuestProfileName","handlebtnDeleteRoom","EntryUserId","AddEditReservationRoom","funAddEditReservationRoom","handleRoomSelectionChangeGroup","oldRoutedReservationSerNo","newRoutedReservationSerNo","handleRoomSelectionChangeGroupCore","handleRoomRemoveGroup","handleRoomSelectionChangeDetail","handleRoomSelectionChangeDetailCore","handleRoomRemoveDetail","PaymentTransactionName","CompanyOnFolioName","eleRoom","ReservationWindowRoutingApplyOn","ReservationWindowRoutingGroup","ReservationWindowRoutingDetail","lstDate","eleRoutedRoom","lstGroup","lstDetail","AddReservationRoomRouting","funAddReservationRoomRouting","AddReservationWindowRouting","funAddReservationWindowRouting","titleSingular","indexOfEntireStay","indexOf","tempItem","select","tmpWinList","max","PaymentTransactionSerNo","CompanyOnFolioProfileSerNo","CompanyOnFolioType","handlebtnAddWindow","handlebtnEditWindow","EntryDateTime","EntryUserID","ParentPageName","IndiDepositeRule","showDepositRulePopup","setDepositRulePopup","showDepositCustomRule","setDepositCustomRule","showDepositRuleDropdown","setDepositRuleDropdown","gridSelectedItem","rbDepositValue","setRBDepositValue","cmbDepositRuleMaster","setCmbDepositRuleMaster","depositRuleMasterList","setDepositRuleMasterList","setDepositRuleDetail","depositRequestList","setDepositRequestList","gridDepositRuleDetail","setGridDepositRuleDetail","selectedDepositRuleSerNo","setSelectedDepositRuleSerNo","depositRuleDescription","setDepositRuleDescription","depositRuleMode","setDepositRuleMode","divDepositRuleEnable","setDivDepositRuleEnable","showDaysBeforeArrivalTextBox","setShowDaysBeforeArrivalTextBox","isCustomeRuleChecked","setIsCustomeRuleChecked","isDisableCustomeRuleName","setDisableCustomeRuleName","ReservationData","setReservationData","depositRequestObj","setDepositRequestObj","customDepositRequestObj","setCustomDepositRequestObj","customDepositRequestValidationObj","setCustomDepositRequestValidationObj","DepositRuleSerNo","getDepositRuleList","GetDepositRuleMaster","GetReservationInfoDepositRequestList","setDepositRuleGrid","AddEditReservationDepositRequest","handleCancleOnClick","DepositAmount","AfterBookingTime","DaysAfterBooking","depositObj","objDaysArrival","objDaysBooking","OnArrival","DepositRequestSerNo","DepositRequestSubSerNo","DepositTermType","DepositTermTypeValue","depositRequest","ResDepositRequestDetail","setCustomeDepositRuleObj","ruleList","depositRuleDetailList","elementdetail","ruleserno","rulesubserno","DepositDescription","daysafter","daysbefore","handleOptionClick","handleDeleteonClick","Selectedobj","SelectedobjDetail","DeleteReservationDepositRequest","validateCustomDepositRule","GetReservationInfoDepositRuleDetail","depositRuleName","dt","toUTCString","handleAddOnClick","handleGridRowSelectionChange","IndiDepositeReceived","showDepositReceivedPopup","setDepositReceivedPopup","showPaymentPopup","setShowPaymentPopup","reservationDepositReceivedData","setReservationDepositReceivedData","reservationTransactionList","setReservationTransactionList","transactionMode","setTransactionMode","filterDataDepositReceived","setFilterDataDepositReceived","filterDataDepositDue","setFilterDataDepositDue","selectedReservationTransactionSerNo","setSelectedReservationTransactionSerNo","getReservationTransaction","getReservationDeposiReceivedData","GetReservationDepositReceivedData","depositruleList","DepositDate","terms","DepositStatus","GetReservationTransaction","depositList","serno","ReservationTransactionSerNo","TransactionDate","mode","TransactionName","Amount","recpt","ReceiptNo","Remarks","Array","isArray","DepositReceivedAmount","DepositDueAction","PaymentType","handleDepositReceivedOptionClick","IndiBalance","folioAmount","setFolioAmount","unsettledAmount","GetReservationBalanceData","IndiGuestProfile","guestProfileInfo","setGuestProfileInfo","setSelectedGuest","tempGuest","IsIncognitoChanged","MemberShipName","IndiLoyalty","IndiVipStatus","VIPStatusName","IndiPastStay","IndiFutureStay","IndiAttachment","showAttachmentGuestPopup","setAttachmentGuestPopup","file","JPGIcon","doctype","nationality","docno","dateofissue","placeofissue","doe","arrivingfrom","returningto","purgeday","Action","filterDataAttachmentProfile","IndiPreference","profileRoomFeature","setProfileRoomFeature","profileSpecial","setProfileSpecial","GetProfileRoomFeature","GetProfileSpecial","UpdatePreference","DisplayName","IndiInternalComment","IndiIncognito","setGuest","fillGuestInfo","ProfileIsIncognito","manageReservationAccompanyguest","ReservationArrivalListModel","PageNumber","strRoomType","strVIPStatus","ETAFrom","ETATo","SameDayReservationNArrival","IsRoomAssign","RoomFeatureSerNo","RoomFeatureValueSerNo","DueoutNAssign","IndiRoomFeature","roomFeaturesPopupShow","setroomFeaturesPopupShow","selectedRoomFeatureData","setselectedRoomFeatureData","setactive","GetReservationRoomFeatureBySerNo","handleOnSelect","RoomFeatureSerNoStr","RoomFeatureValueSerNoStr","IndiSpecial","showRoomSpecialsModal","setShowRoomSpecialsModal","specialData","setspecialData","GetReservationSpecials","Specials","hanldeOnSelection","IndiEarlyArrival","ArrivalHours","IndiLateDeparture","DepartureHours","ActualDepartureTime","IndiAlert","ReservationAlertSerNo","AlertSerNo","FunctionalAreaSerNo","DeliveryType","AdditionalNote","PurgeAfterDays","validationObj","alertObj","setAlertObj","alertEditObj","setAlertEditObj","alertComboData","setAlertComboData","areaOfAlertComboData","setAreaOfAlertComboData","setAlertData","alertValidation","setAlertValidation","popUp","setPopUp","mobile","setMobile","report","setReport","showAlertPopup","setAlertPopup","resObj","setResObj","fillAlertGrid","fillAlertCombo","GetAlertCombo","GetAreaofAlertCombo","GetAlertData","tempTool","tempEntryDate","tooltip","EntryDate","tempEntryTime","EntryTime","srno","TooltipContent","TooltipContentType","delivery","ischecked","isValidPage","NewArray","obj2","obj3","AddEditReservationViewAlert","icon","iconposition","handleIconClick","DeleteReservationAlertData","IndiTrace","DepartmentSerNo","TraceSerNo","TraceSubSerNo","Date1","Date2","Time","fromdate","todate","Status","DeliveryUser","DeliveryDatetime","traceObj","setTraceObj","traceData","setTraceData","traceToolTip","setTraceToolTip","traceCombo","setTraceCombo","departmentCombo","setDepartmentCombo","showTracePopup","setTracePopup","traceValidation","setTraceValidation","setlinkInfo","traceEditObj","fillTraceGrid","fillDepartmentCombo","GetAlertTraceData","trace","tempCreated","created","tempDate","tempTime","getTraceComboData","groups","grouped","g","pp","ind","findIndex","elem","el","Times","departmentSerNo","GetTraceCombo","GetDepartmentCombo","hanldeOnCancelClick","hanldeOnDeleteClick","DeleteReservationAlertTrace","dep","l","toLocaleDateString","toLocaleTimeString","handleTraceTime","now","AddEditReservationAlertTrace","fillTraceOnchange","IndiReservationAttachment","FileReader","showAttachmentPopup","setAttachmentPopup","setShowAlert","reservationAttachmentList","setReservationAttachmentList","cmbDocumentType","setCmbDocumentType","documentTypeMasterList","setDocumentTypeMasterList","filterDataAttachment","setFilterDataAttachment","reservationAttachmentObj","setreservationAttachmentObj","attachmentDetailValidation","setAttachmentDetailValidation","getReservationAttachmentData","GetReservationInfoAttachedDocument","DocumentTypeSerNo","Description","Path","DocumentTypeName","attachmentList","doctserno","AttachmentSerNo","docname","AddEditReservationAttachment","arrayBuffer","blob","Blob","url","URL","createObjectURL","open","Download","GetDocumentTypeMasters","documentTypeList","AttachmentIcon","fpath","handleAttachmentGridSelection","OnClick","DeleteReservationAttachment","buttons","IndiTaskCompleted","showTaskMovableBox","setShowTaskMovableBox","completedTask","setCompletedTask","totalTask","setTotalTask","GetReservationTaskList","completedCount","IsCompleted","fillTaskDetails","IsDisabled","headerList","comp","total","onCheck","RateSummaryModalPopup","res","reservation","roomRateData","setRoomRateData","rateDetailData","setRateDetailData","grandTotal","setGrandTotal","revenue","filterDataRatesRevenueSummary","setFilterDataRatesRevenueSummary","IsCache","tempRateDetail","totalRoomRate","RateCodeDetails","RoomRate","GetRateAndPackageRate","RateCodeSerNo","ModifiedRateDetailData","GetReservationRoomRateSummary","PackageDetails","CallingFrom","extraPackage","RateCodeDetail","pk","calculatedQty","PackageRate","TaxDetails","n","PETotalTax","setExtraPackageData","setExtraPackageTax","extraPackageData","extraPackageTax","packages","RateName","handleOnContinueClick","NewPackageDetails","ChargeDetails","RoomFeatures","RoomFeature","RateLongDesc","RatePackages","RatePackage","BillingInstructionModalPopup","setBillingData","filteredBillingData","setFilteredBillingData","filBilling","setFilBilling","selectedInstruction","setSelectedInstruction","selectedRBvalue","setSelectedRBvalue","isManually","setIsManually","reservationData","fillBilling","fillReservationData","cmbGetBillingInstructionMaster","exObj","GetReservationBasicData","handleResetClick","manage_reservation_fields","OnCancelClick","filterText","filteredRes","toLowerCase","includes","handleFilterBillingData","CancelReservationModalPopup","cancelReasonData","setCancelReasonData","selectedReason","setSelectedReason","cancelReservationObj","setCancelReservationObj","setValidationObj","note","setNote","GetReasonMaster","defaultReason","ReasonSerNo","OnClose","Reason","ReasonType","handleReasonOnChange","validObject","validation","IsNoShow","ReservationCancel","GetBrandMaster","clientSerNo","AddEditBrandMaster","GetProfileCommunicationTypeMaster","AddEditProfileCommunicationTypeMaster","GetProfileAddressTypeMaster","AddEditProfileAddressTypeMaster","GetMasters","moduleSerNo","pageType","GetRegionMaster","AddEditRegionMaster","GetReasonType","AddEditReason","GetUserCategoryMaster","AddEditUserCategory","GetVIPStatusMaster","AddEditVIPStatus","GetProfileTitleMaster","AddEditProfileTitleMaster","GetIdentificationTypeMaster","AddEditIdentificationTypeMaster","userID","propetrySerNo","AddEditDepositRuleMaster","GetDepositRuleDetail","depositRuleSerNo","AddEditDepositRuleDetail","GetCompanyProfileList","ProcessNightAudit","PcName","IpAddress","OutputPara","GetNightAuditDueOutList","BusinessDate","GetNightAuditExpectedArrivalList","GetNightAuditOpenFolioList","GetNightAuditPayMasterList","GetNightAuditPostNightList","ExtendReservation","PostponeReservation","AddEditCountryMaster","GetCountryMaster","GetIndustryMaster","AddEditIndustryMaster","GetStateMaster","CountrySerNo","GetCityMaster","StateSerNo","AddEditCityMaster","AddEditStateMaster","GetMembershipLevelMaster","AddEditMembershipLevelMaster","GetCalculationRuleList","AddEditFunctionalAreaMaster","AddEditRateTypeMaster","GetRateTypeMaster","AddEditEmployeeMaster","GetEmployeeMaster","GetRelationShipTypeMaster","AddEditRelationShipTypeMaster","AddEditReferenceMaster","AddEditDeviceMaster","GetDeviceMaster","GetTransactionMasterData","Module","AddEditTransactionMasterData","GetTransactionSub","GetTransactionSubSub","AddTransactionSubSub","DeleteTransactionSubMaster","AssoTransactionSerNo","delete","AddEditTransactionSub","DeleteTransactionSubSub","AddEditExemptionMaster","GetExemptionMaster","GetExemptionMasterSub","ExemptionSerNo","AddEditExemptionSubMaster","GetUserRightsMaster","GetUserByUserCategorySerNo","UserCategorySerNo","GetUserCategoryByRightsSerNo","UserRightsApply","GetCurrencyMaster","GetPropertyInvoiceDetails","GetUserMaster","AddEditUserMaster","GetClientMaster","AddEditClientMaster","GetChargeTypeMaster","AddEdtiPayModeMaster","GetClientRoomFeatureGroupMaster","GetClientRoomFeatureMaster","GetClientRoomFeatureValueMaster","AddEditClientRoomFeatureGroupMaster","AddEditClientRoomFeatureMaster","GetClientSpecialGroupMaster","GetClientSpecialMaster","AddEditClientSpecialGroupMaster","AddEditClientSpecialMaster","GetPropertyMasters","AddEditPropertyMaster","GetPropertySpecialsMaster","AddEditPropertySpecialsMaster","GetPropertyRoomFeatureMaster","ManagePropertyRoomFeatures","grouping","objectArray","property","acc","groupingTwoTotalFunc","group","TotalColumn","firstCol","IsGroupingOneTotal","IsGroupingTwoTotal","IsGrandTotal","structObj","totalStructObj","col","indexO","Grouping1","totalObj","Grouping2","Object","keys","index1","z","groupingThreeTotalFunc","IsGroupingThreeTotal","grandTotalStructObj","G1","index2","Grouping3","G2","c","groupingTotalOneFunc","groupingData","TipArrived","setIsReloadTransportation","AddEditWindowRoutingModalPopup","setReservationObj","reservationAccompanyGuest","setReservationAccompanyGuest","paymentMethodData","setPaymentMethodData","handlebtnSaveWindow","GetPaymentMethod","CustomErrorWindowName","CustomErrorPaymentTransactionName","CustomErrorGuestProfileName","from","companyontype","companyonserno","companyonfolioname","GetRoomMaster","GetRoomFeatures","CancelReservationCharge","GetCancelReservationList","GetReservationCancelInfo","ReservationListFilterModel","ReservationTypeSerNo","IsIncognitoName","NightsFrom","NightsTo","PartyNo","IsEarlyDeparture","ReportPreviewLevelZero","reactToExcelRef","optBtnData","interval","setInterval","clearInterval","setList","reportObj","setReportObj","setFilterList","columnList","setColumnList","setReportSerNo","setReportName","setPropertyName","previewObj","setPreviewObj","reportserno","reportname","filterList","propertyName","IsSummarised","paddingTop","paddingLeft","paddingRight","maxHeight","overflow","borderLeftWidth","borderLeftStyle","borderLeftColor","borderRightWidth","borderRightStyle","borderRightColor","borderBottomWidth","borderBottomStyle","borderBottomColor","cellspacing","cellpadding","textAlign","whiteSpace","borderTopWidth","borderTopStyle","borderTopColor","zIndex","arr","IsTotal","paddingBottom","ShowDateTime","marginRight","table","filename","sheet","buttonText","infoicon","goBackPath","handleDownload","ReportPreviewLevelTwo","groupingColumn","setGroupingColumn","groupingOneTotal","setGroupingOneTotal","groupingTwoTotal","setGroupingTwoTotal","overflowX","colSpan","textDecoration","s","GrandTotal","InnRadioButton","rbKey","setrbKey","handlechange","commonSlice","commonGlobal","IsMenuOpen","toggleMenu","cGlobal","common","DocumentRemarkMaster","alertFunction","RemarkSerNo","IsSystemGenerated","ModuleSerNo","documentObj","setDocumentObj","documentValidation","setDocumentValidation","documentList","setDocumentList","filterDocument","setFilterDocument","setSelectedSerNo","search","setSearch","fillDocumentRemarks","GetDocumentRemarkMaster","fillDocumentBySerNo","GetDocumentRemarkMasterBySerNo","clearValidation","handleOnSearchChange","handleOnClickDocument","lang","defaultValue","setContents","autoFocus","buttonList","editorChange","hide","disable","hideToolbar","existingObj","AddEditDocumentRemarkMaster","ReturnValue","InnModalPopup","setisClose","classNm","children","IndiCompanyOnFolio","showGSTClaimPopup","setGSTClaimPopup","companyOnFolioProfileDetailObj","setCompanyOnFolioProfileDetailObj","rbSelectedGstClaim","setRBSelectedGstClaim","disableAddBtn","setdisableAddBtn","showAddNewCompanyDiv","setShowAddNewCompanyDiv","companyOnFolioProfileData","setCompanyOnFolioProfileData","countryList","setCountryList","stateList","setStateList","cityList","setCityList","AgentSerNo","setSelectedCompany","showCompanySearchFilterModal","setShowCompanySearchFilterModal","ProfileType","FullName","StatutoryName","GSTNo","Street","PostCode","CitySerNo","companyProfileObj","setCompanyProfileObj","GSTNO","companyOnFolioValidationObj","setCompanyOnFolioValidationObj","rbDataGST","setRbDataGST","getReservationCompanyOnFolioDetail","getCityMasterList","countrySerNo","stateSerNo","cityData","GetReservationInfoCompanyOnFolioProfileData","NumberOfCompanyOnFolioProfile","handleRBGstClaimChangeClick","selectedClaim","CompanyOnProfileSerNo","profileSerNo","GetCompanyOnFolioProfilData","GetCoutryMaster","countryData","AddEditCompanyOnFolio","profileObj","GSTClaimTooltip","AddCompanyOnFolioProfilData","StateCode","CityName","StateName","CountryName","stateData","TipCancelled","TipCheckedOut","TipInHouse","TipNoShow","MarketGroupMaster","defaultMarketObj","validationMarketObj","marketGroupMasterObj","setMarketGroupMasterObj","marketGroupMasterData","setMarketGroupMasterData","filterMarketGroupMaster","setFilterMarketGroupMaster","isDisabled","setIsDisabled","searchString","setSearchString","isValidationMarketGroupMaster","setIsValidationMarketGroupMaster","selectedMarketGroupMaster","setSelectedMarketGroupMaster","marketMasterObj","setMarketMasterObj","marketMasterData","setMarketMasterData","filterMarketMaster","setFilterMarketMaster","searchMarketString","setSearchMarketString","isValidationMarketMaster","setIsValidationMarketMaster","selectedMarketMaster","setSelectedMarketMaster","fillMarketGroupMaster","fillMarketMaster","MarketGroupSerNo","GetMarketGroupMaster","fillSelectedMarketGroupMaster","GetMarketGroupMasterBySerNo","GetMarketMaster","fillSelectedMarketMaster","GetmarketMasterBySerNo","handleMarketClick","handleOnMarketSearchChange","handleOnMarketClick","showMarketGroupModal","setShowMarketGroupModal","count","page","Sequence","AddEditMarketGroupMaster","exitObj","isValidMarket","isValidMarketPage","AddEditMarketMaster","ReservationTypeModalPopup","setActive","reservationTypeData","setreservationTypeData","selectedReservationType","setSelectedReservationType","GetReservationType","handleOnTypeSelection","RateCodeName","tabindex","InvStatus","RequiredDetail","DepositName","CancellationName","RateCodeModalPopup","dispatch","rateCodeData2","setRateCodeData2","rateGroupData","setRateGroupData","isSelectionCompleted","setIsSelectionCompleted","showRateSelectionSummaryModal","setShowRateSelectionSummaryModal","showReservationTypeModal","setShowReservationTypeModal","showUpgradeReasonModal","setShowUpgradeReasonModal","selectedRateGroup","setSelectedRateGroup","agentCompanyProfileSerNo","setAgentCompanyProfileSerNo","allRate","setAllRate","showAllRoomType","setShowAllRoomType","IsInclusive","IsComplimentary","IsHouseUse","Discountable","IsRateMappedToProfile","selectedRateCode","setSelectedRateCode","divRef","tableRef","gridSolution","setGridSolution","divWidth","setDivWidth","thWidth","setThWidth","tableWidth","setTableWidth","PageWidth","Math","document","documentElement","roomSummaryPara","setRoomSummaryPara","handleRoomRateClick","cellClick","callingFrom","split","roomTypeObj","ResAvailabilityModel","Phy_Occ","ResRateCodeDetailModel","rateValue","tempRateObj","ResRateDetailModel","handleOnUpgradeClick","handleOnBlockReservationRateSelect","ToDt","taxableAmount","orgData","RMTotalTax","PITotalTax","np","CalculationRule","PostingRhythm","PostingType","Component","Person","totalPackage","totalPackageTaxes","SubTotal","TotalTaxes","setTempRateAndPackage","modifyRateAndPackageRate","setRateAndPackages","fillRateAndPackageRate","handleOnRateSelect","cmbGetRateGroupMaster","RateGroupSerNo","CompanyRateGroupSerNo","AgentRateGroupSerNo","isAllRate","CompanyHasRateMapping","AgentHasRateMapping","fillRateCode","GroupSerNo","IsAllRate","isDayUsed","GetReservationRateCode","tempRateCodeData","objSelectedRate","FilteredRate","PropertyName","Rooms","Agent","buttonType","Company","handleBlockReservationRateClick","Col1","Col2","Col3","Col4","Col5","Col6","Col7","Col8","Col9","Col10","Col11","Col12","Col13","Col14","Col15","SelectedReservationType","OnSelection","RoomAssignmentModal","SelectedReservationSerNo","pArrivalDate","RoomTypeFilter","HKStatusFilter","FloorFilter","RoomFeatureFilter","IsIncludeOccupiedRoom","IsIncludeAssignRoom","IsIncludeDueoutRoom","IsIncludeFutureRoom","IsIncludeMatchingPreferenceRoom","inputRmObj","setInputRmObj","propertyParameters","roomAssignGridObj","setRoomAssignGridObj","selectedRoomSwapCheckBoxData","setSelectedRoomSwapCheckBoxData","showRoomFeaturesModal","setShowRoomFeaturesModal","showRoomAssignFilterModal","setShowRoomAssignFilterModal","setIndex","isSwapDisabled","setIsSwapDisabled","roomAssignmentData","setRoomAssignmentData","roomAssignObj","setRoomAssignObj","roomAssignmentFilterListData","setRoomAssignmentFilterListData","filterRoomAssignmentFilterListData","setFilterRoomAssignmentFilterListData","roomAssignmentfilterListObj","setRoomAssignmentFilterListObj","selectedRoomType","setSelectedRoomType","selectedRmFeatureData","setSelectedRmFeatureData","selectedRmFeature","setSelectedRmFeature","selectedHKStatus","setSelectedHKStatus","selectedFloor","setSelectedFloor","selectedSmokingType","setSelectedSmokingType","selectedBedType","setSelectedBedType","searchstring","isIncludeOccupiedRoom","setIsIncludeOccupiedRoom","isIncludeFutureRoom","setIsIncludeFutureRoom","setIsIncludeAssignRoom","setIsIncludeDueoutRoom","setIsIncludeMatchingPreferenceRoom","rmFeatureMatchingDataByResSerNo","setRmFeatureMatchingDataByResSerNo","rmFeatureMatchingDataByRoomNo","setRmFeatureMatchingDataByRoomNo","rmFeatureValuesData","setRmFeatureValuesData","rmMatchedArr","setRmMatchedArr","storeSearchArray","setStoreSearchArray","setOldRoomNo","toolTipObj","setToolTipObj","roomIndex","setRoomIndex","primarySharerList","setPrimarySharerList","showUpgradeReasonModalPopup","setShowUpgradeReasonModalPopup","assignFlag","setAssignFlag","checkIn","setCheckIn","modeOfAssign","setModeOfAssign","roomNo","setRoomNo","fillRoomTypeData","setFillRoomTypeData","fillHKStatusData","setFillHKStatusData","fillFloorData","setFillFloorData","fillSmokingData","setFillSmokingData","fillBedTypeData","setFillBedTypeData","roomFeatureData","setroomFeatureData","finalResponse","setFinalResponse","updatedKey","setUpdatedKey","assignData","renderChild","newkey","floor","random","compare","fillRoomAssigmentData","GetRoomAssignSelectedReservationList","pop","join","handleRoomFeaturesMatchingBySerNo","handleRoomFeaturesMatchingByRoomNo","fillRoomAssignmentFilter","GetRoomAssignRoomListByFilter","PrimarySharerList","ReservationRoomAssignList","ArrivalTime","shift","DepartureTime","SharerReservationSerNo","Assignable","UnAssignable","handleRoomUpDwnGrade","IsUpgradable","IsDowngradable","RoomTypeToChargeSequence","RoomTypeSequence","assignRoom","roomSerNo","reasonobj","selectedResSerNo","UpgradeReasonSerNo","IsAssignable","GetRoomAssignmentAssignRoom","handleAssignandCheckIn","EditCheckedInReservation","UnassignRoom","IsUnAssign","GetRoomAssignmentUnAssignRoom","RoomFeatureValues","handleRoomAssignClick","handleRoomSwapCheckBox","handleFilterCheckBoxClick","f","Value","displayName","f1","fr","filterRes","tempDirectRoomAssignment","ValidateRoomForUpDowngrad","ResultMessage","validateSwapUserRights","IsSwapable","some","reslist","GetRoomAssignmentSwapRoom","handleSwapRoom","isLengthVerified","isRoomSerNoVerified","isRoomTypeVerifed","isReservationStatusInh","isReservationStatusDot","isReservationSerNo","isReservationAndRoomSerNo","isSameRoomSerNoverified","swapValidation","tempSerNo","tempRoomNo","finalArr","tempArr","u","j","tempRoomNoArr","finalArray","handleRmFeaturesMatching","temproomAssignmentFilterListData","k","tempData1","handleIncludeMatchingPrefCheckBox","cmbGetRoomTypeMaster","GetHKStatusMaster","defaultHKStatusData","HKStatusSerNo","GetFloorMaster","defaultFloorData","FloorSerNo","GetRoomFeature","RoomFeatureTypeSerNo","ans","handleFilterApply","handleSmokingTypeChange","handleBedTypeChange","pointerEvents","localName","RoomTypeCode","HKStatusCode","SharerImg","SharerPrimaryImg","onBlur","event","array","handleRemoveGuestTile","Match","Preference","href","validateUnAssignUserRights","tempValueSerNo","reason","reasonserno","GetUnitMaster","AddEditUnitMaster","GetInvDepartmentMaster","AddEditInvDepartmentMaster","GetInvStoreMaster","AddEditInvStoreMaster","GetInvStoreUserMaster","AddInvStoreUserMaster","GetGSTUnitMaster","AddEditInvCategoryMaster","GetInvCategoryMaster","AddEditInvSubCategoryMaster","GetInvSubCategoryMaster","CategorySerNo","GetInvVenderMaster","AddEditInvVenderMaster","GetInventoryItemFromCatgSubCatg","DestSerNo","SourceType","DestType","CatgSerNo","SubCatgSerNo","GetInvVenderMasterDetail","VenderSerNo","GetMovementForBasicInventoryTransaction","GetInvItemClassMaster","AddEditInvItemClassMaster","GetInvItemClassCategoryMapping","ItemClassSerNo","AddDeleteInvItemClassCategoryMapping","GetRequestHeader","AddEditRequestHeader","ApproveStoreRequisition","GetItemLastRequestAndPurchaseDetail","RmitSerNo","GetMaterialTransactionList","ApprovePurchaseRequisition","GetItemLastPurchasePrice","GetRequisitionItemList","SavePurchaseRequisitionItem","SaveStoreRequisitionItem","GetCurrentStock","GetVenderDetailReport","GetItemListReport","Stockable","GetStockLevelReport","StoreSerNo","GetNonMovingItemReport","IsMonthYear","NoOfMonthDays","ItemCategorySerNo","ItemSubCategorySerNo","GetInvMaterialMovementReport","MovementID","StartDate","EndDate","SubCategorySerNo","GetIssueTransactionList","IssueStoreRequisition","ProcessPurchaseRequest","UnApproveRequest","DeleteInventoryTransaction","GetInvMonthClosing","GetInvTransactionSlip","GetRawMaterialChargeMaster","AddEditRawMaterialChargeMaster","GetItemStoreMaster","AddEditItemStoreMaster","GetItemVenderMaster","AddEditItemVenderMaster","GetRawMaterialMaster","GetRawMaterialMasterDetail","AddEditRawMaterialMaster","GetItemDepartmentMaster","AddEditItemDepartmentMaster","GetInvOtherCharges","AddEditInvOtherCharges","GetInvTransactionTaxSummary","GetInvTransactionTaxBreakup","ProcessInvNightAudit","CurrentInvBusinessDate","ValidateInvNightAuditAtMonthLastDate","GetInvStockValuationReport","StockValationDate","GetDayCloseLogReport","PaymentModalPopup","paymodeTypeList","setPaymodeTypeList","transactionChargeList","setTransactionChargeList","cmbPaymentMode","setCmbPaymentMode","cmbWindow","setCmbWindow","cmbReason","setCmbReason","paymentMethodType","setPaymentMethodType","disabledAmountText","setdDisabledAmountText","disableCmbPaymentMode","setDisableCmbPaymentMode","disableCmbCharge","setDisableCmbCharge","disableCmbWindow","setDisableCmbWindow","depositCorrectionAmount","setDepositCorrectionAmount","IsTaxCalcOnAdvance","setIsTaxCalcOnAdvance","creditCardNo","setCreditCardNo","OrgReservationSerNo","TransactionType","DocumentNo","PaymentMethodType","CCNo","CCHolderName","CCExpiryDate","PanCardNo","PanHolderName","ChequeNo","BankName","BranchName","NameOfAccount","PaymentReceivedDate","UPIId","RefundRemarks","CorrectionRemarks","RefReservationTransactionSerNo","IsPaidOut","reservationTransactionObj","setReservationTransactionObj","CorrectionAmount","transactionValidationObj","setTransactionValidationObj","getTransactionMasterData","getReservationwindowRoutingList","TransactionMode","fillPropertyParameterData","windowlist","windowSerNoList","WindowList","getReasonMasterData","OriginalDepositAmount","reasonList","GetTransactionMaster","paymodeList","tempPaymodeSerNo","GetReservationWindowRoutingList","cmbWindowList","abs","chargeList","IsPageValid","PostAddCheckoutTransaction","ManageSettleAndPrint","AddReservationTransaction","paymodeSerNo","handleModeOfPaymentChange","maxlength","oldDate","UpgradeReasonModalPopup","reasonData","setReasonData","filterReasonData","setFilterReasonData","setFilterText","handleFilterData","AddGuestPopUp","titleData","setTitleData","showKeyBoard","setShowKeyBoard","searchInput","setSearchInput","flagClick","setFlagClick","setProfileObj","communicationTypeData","setCommunicationTypeData","addProfile","TitleSerNo","validatePage","AddProfileMaster","cmbGetProfileTitleMaster","lstCommunication","CommunicationTypeSerNo","ProfileCommunication","Email","Department","isBackSpace","tempStr","onEscape","GuestPopUp","showGuestAdvancedSearchModal","setShowGuestAdvancedSearchModal","showGuestAttachmentList","setShowGuestAttachmentList","guestData","setGuestData","guestObject","setGuestObject","setPage","pageCount","setPageCount","filGuestPara","setFilGuestPara","fillGuest","GetGuestProfileByFilter","pCount","e1","getGuestProfile","GetGuestProfileByFilterWithNo","OnSave","IsGuestCalling","closeIcon","modules","Navigation","FreeMode","Scrollbar","Mousewheel","slidesPerView","freeMode","navigation","scrollbar","mousewheel","onSwiper","swiper","Pagination","float","Country","ProfileRoomFeatures","ProfileSpecials","GetRoomTypeMaster","GetRoomTypeMasterBySerNo","roomTypeSerNo","AddEditRoomTypeMaster","GetRateGroupMaster","GetRateGroupMasterBySerNo","AddEditRateGroupMaster","objRateGroupMaster","cmbGetRateTypeMaster","GetUpDowngardeReasonMaster","AddEditUpDowngardeReasonMaster","GetBuildingMaster","AddEditBuildingMaster","GetSpecialGroupMaster","AddEditSpecialGroupMaster","GetSpecialMaster","SpecialGroupSerNo","AddEditSpecialMaster","GetFloorMasterCombo","GetFloorMasterBySerNo","AddEditFloorMaster","GetSourceMaster","SourceGroupSerNo","GetSourceMasterBySerNo","sourceSerNo","AddEditSourceMaster","sourceMasterObj","CmbGetSourceGroupMaster","GetBillingInstructionMaster","AddEditBillingInstructionMaster","cmbGetMarketGroupMaster","GetCancelReasonData","AddEditCancelReasonData","CancelReasonObj","AddEditTransportationTypeMaster","GetDayTypemaster","AddEditDayTypemaster","GetCancellationRuleMaster","AddEditCancellationRuleMaster","GetCancellationRuleDetail","AddEditCancellationRuleDetail","GetRateCodeMaster","GetRateCodeMasterBySerNo","GetRoomTypeForRateCode","GetRateCodeDetailRoomTypeBySerNo","GetRateCodeDetailRateMonth","GetRateCodeDetailRate","Year","Month","UpdateRateCodeDetailRate","AddRateCodeDetailRoomType","AddEditRateCodeMaster","GetPackageTypeMaster","GetPackageMaster","PackageType","GetPackageMasterList","GetRateCodeMiscellaneousMaster","GetEventMaster","AddEditEventMaster","GetDepartmentMaster","AddEditDepartment","AddEditTransportationProviderMaster","GetNoteTypeMaster","AddEditNoteTypeMaster","GetSourceGroupMaster","AddEditSourceGroupMaster","AddGuestModalPopup","isOpenCompany","setIsOpenCompany","ProfileBusinessInfo","GuestProfileIdentification","showIdentificationModal","setShowIdentificationModal","ActionOption","guestProfileIdentificationList","setGuestProfileIdentificationList","guestProfileIdentificationObj","setGuestProfileIdentificationObj","guestProfileIdentificationValidation","setGuestProfileIdentificationValidation","selectedDocType","setSelectedDocType","ddlIdentificationType","setDdlIdentificationType","ddlIssueCountry","setDdlIssueCountry","MatchProfileIdentification","ProfileIdentificationSerNo","fillGuestProfileIdentification","loadIdentificationType","loadIssueCountry","GetGuestProfileIdentificationList","identificationType","IdentificationTypeSerNo","IssueCountryList","PlaceofIssue","IdentificationNo","IssuingCountrySerNo","ArrivingFrom","ReturningTo","AddEditGuestProfileIdentification","DateofIssue","DateofExpiry","FrontsideImagePath","BacksideImagePath","TipDueIn","GetOutletDataBilling","GetOutletTableDataBilling","TableSerNo","GetMenuMasterDataBilling","GetMenuCategoryMasterBilling","MenuSerNo","GetMenuSubCategoryMasterBilling","GetMenuItemDetailBilling","GetMenuMenuItemToppingBilling","GetOpenTableDetails","GetServerMasterBilling","GetReferenceMaster","GetTaxExemptionMaster","GetRateCodeMasterPOS","GetCreditCardMachineMaster","GetCookingInstructionGroupMaster","GetCookingInstructionMaster","GetPOSShowDetailData","CheckSerNo","GetPOSRoomSettlementData","GetPOSInvoiceDetail","InsertPOSItemTableData","InsertPOSSettlement","POSTableField","POSTableItemField","POSTableMerge","UpdatePOSItemDiscount","POSSplitQty","POSShiftItem","POSTableCloseCheck","POSSplitTableInsertPOSItem","UpdatePOSPrintFlag","GetPOSCheckHistoryDetail","isUnSettleBill","GetPOSInvoiceCheckHistoryDetail","POSVoidCheckDetail","InsertMiniBarSettlement","InsertMiniBarRoomSettlement","ReSettlePOSBill","GetBanquetBookingList","GetBanquetHeader","BookingSerNo","GetBanquetOutletData","AddBanquetBooking","GetBanquetBookingVenueList","AddBanquetBookingVenue","GetBanquetFunctionMaster","GetSalesPersonMaster","AddBanquetVenueItem","GetBanquetBookingVenueDetail","BookingSubSerNo","GetBanquetBookingStatus","TipHold","TipTentative","InnCheckbox","IndiFnBDiscount","setReservationserNo","defaultItemGroup","defaultOutlet","defaultOutletWise","defaultItemGroupWise","showFBDiscountPopup","setFBDiscountPopup","totalFnBDis","setTotalFnBDis","fnbDiscountHeader","setFnbDiscountHeader","selectedOutletGroupData","setSelectedOutletGroupData","OutletWiseMainData","setOutletWiseMainData","ItemGroupMainData","setItemGroupMainData","SelectedOutletItemGroupData","setSelectedOutletItemGroupData","outletwiseflag","setOutletwiseFlag","outletGroupflag","setOutletGroupFlag","itemGroupFlag","setItemGroupFlag","customFlag","setCustomFlag","tempFnBType","IsOpenWithReservation","funGetReservationFnBDiscountData","funcontrolModeSelectionChange","GetReservationFnBDiscountData","FnBDiscountType","funGetReservationFnBDiscountOutlet","GetReservationFnBDiscountOutlet","LstOutlet","eleOutlet","DiscountPercentage","temptotalFnBDis","eleGroup","TotalDiscount","IsDisplayOnToolTip","funGetReservationFnBDiscountItemGroup","GetReservationFnBDiscountItemGroup","LstItemGroup","eleItemGroup","tempGroup","tempItemGroupObj","funAddReservationFnBDiscountOutlet","BodyData","AddReservationFnBDiscountOutlet","funAddReservationFnBDiscountItemGroup","AddReservationFnBDiscountItemGroup","sendFnBObject","FnbDiscountType","fnbdata","fnbObject","eleOutletGroup","funIsValidData","handleItemGroupCase_OutletGroupChange","setItemGroupDiscPerChange","tempItemGroupMain","ele2","ele3","handleOnCrossClick","O1","IG1","setOutletDiscPerChange","handleItemGroup_OutletChange","SpecialModalPopup","setSpecialData","specialGroupData","setSpecialGroupData","selectedGroup","setSelectedGroup","isShowSelected","setIsShowSelected","selectedCount","setSelectedCount","showRoomSpecialConfirmPopupShow","setRoomSpecialConfirmPopupShow","SpecialAddData","setSpecialAddData","SpecialRemovedData","setSpecialRemovedData","checkedItemGroupWise","setcheckedItemGroupWise","handleOnchecked","SpecialSerNo","tempSpecial","handleGroupClick","d2","Map","has","set","GroupName","cnt","groupByKey","fillProfileSpecial","newAddedData","newRemoveData","handleProfileChecked","checkeddata","uncheckeddata","hash","assign","concat","handleAllChecekdRemoved","r1","handleAllChecekd","AddProfileSpecial","AddEditReservationSpecial","CancellationRuleMaster","defaultDetailObj","CancellationRuleSubSerNo","CancellationTermTypeSerNo","BeforeTime","PopName","transactionList","setTransactionList","showCancellationTermTypeModal","setShowCancellationTermTypeModal","cancellationRuleData","setCancellationRuleData","cancelRuleObj","setCancelRuleObj","filterCancellationRuleData","setFilterCancellationRuleData","filterCancellationRuledetailData","setFilterCancellationRuleDetailData","cancellationRuleDetailData","setCancellationRuleDetailData","selectedCancellationSubSerNo","setSelectedCancellationSubSerNo","cancellationRuleValidation","setCancellationRuleValidation","cancelRuleDetailObj","setCancelRuleDetailObj","detailSearchString","setDetailSearchString","isPopupEdit","setIsPopupEdit","setClickedListItem","clickedListPopupItem","setClickedListPopupItem","forFirstAdd","setForFirstAdd","fillCancellationRuleData","fillCancellationruleDetail","handleOnSearchDetail","filterdetail","handleOnCancellationRuleClick","rows","handleOnCancellationRuleDetailClick","ReservationCancelList","location","useLocation","setReservationSerNo","defaultCancelObj","defaultCancelValidationObj","reservationCancelObj","setReservationCancelObj","setReservationCancelList","reservationCancelDispalyList","setReservationCancelDisplayList","colList","setColList","colListKeys","setColListKeys","showFilter","setShowFilter","reservationCancelValidation","setReservationCancelValidation","propertyBusinessDate","setPropertyBusinessDate","setPropertyDepartureTime","showCompanyFilterModalPopup","setShowCompanyFilterModalPopup","showAgentFilterModalPopup","setShowAgentFilterModalPopup","selectedAgent","setSelectedAgent","selectedCompany","reservationStatusData","setReservationStatusData","selectedResStatus","setSelectedResStatus","roomTypeData","setRoomTypeData","rateCodeData","setRateCodeData","vipStatusData","setVipStatusData","membershipLevelData","setMembershipLevelData","selectedMembershipLevel","setSelectedMembershipLevel","IsLoaderActive","setIsLoaderActive","selectedReservation","setSelectedReservation","IsPropsLoaded","setIsPropsLoaded","reloadGrid","setReloadGrid","fillCancelList","Block","BlockIcon","PartyReservation","linkIcon","Sharer","SharerSecondry","SharerPrimary","showAdvancedSearchModal","setShowAdvancedSearchModal","cancellationResStatus","selectedCancelledResStatus","setSelectedCancelledResStatus","MoreFilterData","ObjectName","filterKeys","cmbGetReservationStatus","cmbGetRateCodeMaster","cmbGetVIPStatusMaster","cmbGetMemberShipLvl","propsFilterObj","propsKeys","tempColList","tempColListKeys","showLeftBlueBar","setshowLeftBlueBar","Id","Detail","isEdit","tooltipTitle","tooltipContent","showCancelPopup","setShowCancelPopup","rule","receipt","buttonLayout","str","dateFormat","settingicon","CancelledResStatus","actionPopup","handleSortClick","sn","st","MembershipLevelMaster","membershipLevelObj","setMembershipLevelObj","filterMembershipLevel","setFilterMembershipLevel","selectedMemberShipSerNo","setSelectedMemberShipSerNo","memberShipValidation","setMemberShipValidation","setsearchString","fillMembershipLevelMaster","MembershipLevelSerNo","filterdata","handleMembershipLevelClick","SourceGroupMaster","defaulObj","valid","defaultSourceGroup","sourceGroupObj","setSourceGroupObj","setValidation","sourceGroupData","setSourceGroupData","sourceFilter","setSourceFilter","sourceMasterData","setSourceMasterData","filtersourceMasterData","setFilterSourceMasterData","sourceGroupMasterData","setSourceGroupMasterData","setSourceMasterObj","selectedSourceSerNo","setSelectedSourceSerNo","validatedSourcedata","setValidatedSourceData","fillSourceGroup","getSourceMasterData","getSelectedSourceData","handleOnSearchClick","handleOnSourceNameClick","handleOnSourceMasterNameClick","handleOnSearchChanged","searchData","onClickSourcePopupOpen","setShowSourceGroupModal","showSourceGroupModal","isPageValid","toLocaleLowerCase","CashBookTransactionMaster","cashBookTransactionObj","setCashBookTransactionObj","cashBookTransactionData","setCashBookTransactionData","filterCashBookTransaction","setFilterCashBookTransaction","selectedCashBookTransactionSerNo","setSelectedCashBookTransactionSerNo","cashBookTransactionValidation","setCashBookTransactionValidation","loadModules","setLoadModules","cashbookTransactionType","setCashbookTransactionType","fillCashBookTransactionMaster","GetCashBookTransactionMaster","CashbookTransactionSerNo","GetModuleMaster","GetCashbookTransactionTypeMaster","CashbookTransactionType","onCancelClick","handleCashBookTransactionClick","AddEditCashBookTransactionMaster","PersonalIdentificationTypeMaster","personalIdObj","setPersonalIdObj","personalIdentificationTypeData","setPersonalIdentificationTypeData","personalIdTypeValidation","setPersonalIdTypeValidation","isdisabled","selectedPersonalIdTypeNo","setSelectedPersonalIdTypeNo","filterPersonalIdTypeData","setFilterPersonalIdTypeData","fillPersonalIdtype","searchdata","handlepersonalIdtypeClick","IdentificationType","CountryMaster","countryObj","setCountryObj","setCountrydata","filterCountryMaster","setFilterCountryMaster","countryValidation","setCountryValidation","selectedCountrySerNo","setSelectedCountrySerNo","fillGetCountryMaster","handleCountryClick","Nationality","CountryID","AlphaCode2","RelationshipTypeMaster","RelationShipTypeSerNo","RelationShipName","relationshipObj","setRelationshipObj","relationshipList","setRelationshipList","filterRelationship","setFilterRelationship","fillRelationship","hanldeOnClickRelationShip","handleOnClickSearch","PropertySpecialsModalPopup","specialsGroupData","setSpecialsGroupData","specialsData","setSpecialsData","filterSpecialData","setFilterSpecialData","selectedspecialGroupSerNo","setSelectedspecialGroupSerNo","fillSpecialsData","serNo","SpecialListData","Arr","spc","spgArr","finalObj","Set","PropertySpecialGroup","PropertySpecial","handleClick","ReservationSpecialList","handleChecked","PropertyRoomFeatureModalPopup","roomFeatureGroupData","setRoomFeatureGroupData","roomFeaturesData","setRoomFeaturesData","displayFeaturesData","setDisplayFeaturesData","roomMasterFeatureList","setRoomMasterFeatureList","reservationFeatureList","setReservationFeatureList","roomTypeMasterFeatureList","setRoomTypeMasterFeatureList","selectedRoomFeatureGroup","setSelectedRoomFeatureGroup","fillRoomFeatureGroupMaster","fillRoomFeatureMaster","RoomFeatureList","RoomFeaturesGroupSerNo","RoomTypeMasterFeatureList","RoomMasterFeatureList","ReservationFeatureList","handleRoomFeatureGroupClick","apiArr","flag","finArr","self","PropertyRoomFeatureGroupModel","PropertyRoomFeatureModel","PropertyMaster","defaultValidation","LicenceExpiryDate","Address1","CurrencyID","showPropertyRoomfeaturesModal","setShowPropertyRoomfeaturesModal","showPropertySpecialsModal","setShowPropertySpecialsModal","propertyData","setPropertyData","propertyObj","setPropertyObj","setCountryData","setCityData","setStateData","currencyData","setCurrencyData","filterPropertyData","setFilterPropertyData","fillProperty","handleSaveClick","handleValidation","handlePropertyClick","Address2","Postcode","Telephone","Website","AccountName","AccountNumber","SwiftCode","IFSCCode","PANNo","Jurisdiction","handleAddClick","handleCancelClick","GetClientIDbyDomain","DomainAlias","AuthenticateUser","ClientID","Password","Buffer","Client_ID","User_ID","GrantType","RefreshToken","SecureKey","IP","PostReservationTransactionModalPopup","reservationTransactionTaxDetail","setReservationTransactionTaxDetail","totalTax","setTotalTax","totalAmount","setTotalAmount","taxTooltipList","setTaxTooltiplist","cmbQuantity","each","val","Quantity","getChargeMasterData","getTaxDetail","tranSerno","isTaxInclusive","GetCalculatedTaxByTransaction","tax","TransType","taxList","taxTooltip","ParentTransactionSerNo","OnAmount","Percentage","OnAmountPer","Title","ReservationTransactionDetail","ReservationTransaction","ReservationTransactionTaxList","PostReservationTransaction","RoomSettlementPopUp","ocMainRoomSettlementData","setMainOcRoomSettlementData","ocRoomSettlementData","setOcRoomSettlementData","objItem","objRoom","handleSaveOnClose","GetHouseKeepingSectionGroup","AddEditHouseKeepingSectionGroup","cmbGetHousekeepingSectionGroup","GetHousekeepingSectionMaster","HKSectionGroupSerNo","GetHousekeepingSectionMasterBySerNo","hkSectionSerNo","AddEditHouseKeepingSectionMaster","AddEditHKStatusMaster","GetHktypecombo","GetLaundryItemMaster","AddEditLaundryItemMaster","GetLaundryCategoryMaster","AddEditLaundryCategoryMaster","GetLaundryReturnInMaster","GetLaundryServiceMaster","AddEditLaundryServiceMaster","AddEditLaundryMaster","AddEditLaundryReturnInMaster","GetLaundryHotelServiceMaster","AddEditLaundryHotelServiceMaster","GetLaundryVenderMaster","AddEditLaundryVenderMaster","GetLaundryMaster","GetLaundryItemRateMaster","LaundryItemSerNo","AddEditItemRateMaster","GetHKServiceMaster","AddEditHKServiceMaster","GetLaundryTransaction","GetLaundryItemList","HotelServiceSerNo","ServiceSerNo","validateReservationByRoomNo","PostLaundryTransaction","GetLaundryBillDetail","PostLaundrySettlement","GetLaundrySettlementList","GetLaundryDetailBySerNo","AddLaundryInvoice","PostLaundryTransactionToRoom","GetHKManagementList","GetHKDetailByRoomSerNo","ValidateOOStatus","ChangeHouseKeepingStatus","VoidCheckDetailPopup","UserId","ReferenceSerNo","GuestSerNo","IsVoidNew","IsShowRate","reasonMasterList","setReasonMasterList","rateMasterList","setRateMasterList","referenceList","setReferenceList","rateData","setRateData","voidCheckDetailObj","setVoidCheckDetailObj","voidCheckDetailValidation","setVoidCheckDetailValidation","IsComp","setIsComp","showGuestPopup","setShowGuestPopup","tempList","rateList","IsBarRate","handleOnClose","isHidePopup","dataValid","isDataValid","isValidation","ReSettlePOSBillPopup","Payment","AmountPayment","ItemDesc","SettleAmount","filterDataResettlebill","ChequeNoLabel","setChequeNoLabel","SettleSerNo","SetteleSerNo","oldTransactionSerNo","newTransactionSerNo","SlipNo","NewAmount","IsAllAmtRoomSettle","CardMachine","RoomDetailSelect","reSettlePOSBillObj","setReSettlePOSBillObj","reSettlePOSBillValidation","setReSettlePOSBillValidation","paymentMethods","setPaymentMethods","selectedPaymentMethod","setSelectedPaymentMethod","listnewTransactionSerNo","setListnewTransactionSerNo","IsUseCreditCardMachine","setIsUseCreditCardMachine","ocCreditCardMachine","setOcCreditCardMachine","showCompanyPopUp","setShowCompanyPopUp","showRoomSettlementPopUp","setShowRoomSettlementPopUp","setSelectedRoom","roomSettleValue","setRoomSettleValue","comapnyValue","setComapanyValue","tempCardMachine","CardMachineSerNo","isValidationData","TableName","CheckHistoryPreviewPopup","posCollection","setShowCheckPreviewModal","isShowVoidCheckDetails","setIsShowVoidCheckDetails","IsTrue","setIsTrue","showReSettlePOSBillPopup","setShowReSettlePOSBillModal","reSettlePOSBill","setReSettlePOSBill","posItemDetail","setPOSItemDetail","posChargeDetail","setPOSChargeDetail","posSettlementDetail","setPOSSettlementDetail","posKOTDetail","setPOSKOTDetail","setPreviewList","posHeaderDetail","setPosHeaderDetail","InvoiceHeaderDetail","InvoiceItemDetail","ItemRate","TotalData","TotalAmount","Gross","TotalQuanty","ItemQty","TotalA","TotalQ","InvoiceChargeDetail","TotalChargeData","TotalChargeAmount","TaxAmount","InvoiceSettlementDetail","uniqueKOTNo","InvoiceKOTDetail","KOTNo","KOTWiseData","dateFilterData","KOTDatetime","KOTQuanty","cnlRerenceSerNo","IsVoidBill","BillNo","NoOfPax","ServerName","TaxExamption","DiscoutAmt","OpeningTime","ClosingTime","CompanyOnCheck","SettleDate","param","AddCompanyPopUp","selectData","ProfileContactDetail","CompanyPopUp","showCompanyAdvancedSearchModal","setShowCompanyAdvancedSearchModal","showAddCompany","setShowAddCompany","companyData","setCompanyData","AgentCompanyName","ARID","filCompanyPara","setFilCompanyPara","fillCompany","GetAgentCompanyProfileByFilter","getCompanyProfile","GetAgentCompanyProfileByFilterWithNo","IsCompanyCalling","tempCompany","InnLineBarChart","toolTipX","setToolTipX","toolTipY","setToolTipY","toolTip","setToolTip","toolTipValue","setToolTipValue","pointsForCircle","circleRadius","circleBorderWidth","borderRadius","onMouseEnter","offsetX","tooltipwidth","offsetY","tooltipheight","showToolTip","nativeEvent","onMouseLeave","points","data4","lineColor","lineWidth","circleInnerColor","render_LineChart","tooltipcolor","GetLocationMaster","AddEditLocationMaster","GetMenuMaster","GetMenuCategoryMaster","GetMenuSubCategory","MenuCategorySerNo","AddEditMenuCategoryMaster","AddEditMenuSubCategoryMaster","GetServerMaster","AddEditServerMaster","GetItemGroupMaster","GetItemGroupMasterBySerNo","AddEditItemGroupMaster","AddEditItemGroupMasterBySerNo","GetPOSItemMaster","AddEditGetPOSItemMaster","GetCourseMaster","GetHSN_SAC_CodeMaster","GetItemToppingMaster","AddEditItemToppingMaster","GetOutletMaster","AddEditOutletMaster","GetOutletMenuMapping","AddEditOutletMenuMapping","GetOutletTableMaster","AddEditOutletTableMaster","AddEditMenuMaster","GetMenuItemToppingMapping","ItemSerNo","AddEditMenuItemToppingMapping","GetMenuMasterItem","AddEditMenuItemMaster","GetMenuMasterMultiItem","AddEditCourseMaster","GetMiniBarTransaction","GetMiniBarOutletData","GetOutletWeekHappyHoursMaster","AddEditOutletWeekHappyHoursMaster","GetKOTRegisterReport","GetBillwiseSalesMISReport","KOTType","IsMIS","GetDailywiseSalesMISReport","GetPOSSalesSummray","GetPOSManualKOTRegister","GetPOSPendingKOT","GetPOSVoidBillReport","GetPOSMenuPrinting","GetItemWiseSalesReport","GetPOSTaxExemption","GetPOSAdvancePending","AsOnDate","companyFilter","GetBillwiseSales","GetPOSCheckTimeGap","GetCancellationReport","GetBanquetBookingCancelReport","GetPOSAdvanceAdjusted","CompanyFilter","GetPOSCancelBill","GetMenuEngineeringReport","ItemSubGroupSerNo","GetPOSCashBook","GetBillRegisterReport","GetPOSPostSettlement","CashBookTransactionSerNo","GetPOSComplimentaryKOT","GetPOSServerwiseSales","ServerSerNo","GetMenuEngineeringReportDetail","GetPOSTaxSummary","GetFrontTaxSummaryBillwise","GetPOSTaxSummaryBillwise","GetLaundryTaxSummaryBillwise","posSlice","pos","ocOutlet","ocMenuMasterData","ocMenuCatgeoryData","ocMenuSubCategoryData","ocMenuItemData","ocMenuItemTopping","objPOSHeaderDetail","ocPOSItemDetail","ocPOSItemToppingDetail","ocPOSItemDetailSearch","ocPOSItemToppingDetailSearch","objPOSTableTotalDetail","ocPOSSettlementDetail","setOutletData","clearOutletData","setMenuMasterData","setMenuCategoryData","setMenuSubCategoryData","setMenuItemData","setMenuItemtoppingData","setPOSHeaderDetail","updateRateDetail","updateServerDetail","updateTableDiscountDetail","Discount","updateTableNameDetail","updatePrintFlagDetail","IsPrinted","updateTableProfileDetail","updateTableCompanyProfileDetail","updateTableAgentProfileDetail","updateTableMapToToRoomCompanyProfileDetail","updateTableMapToToRoomDetail","updateTableRoomServiceOutletDetail","SourceProfileSerNo","updateTableNoOfPax","updateTableExemption","ExamptionSerNo","setPOSItemDetailSearch","clearPOSItemDetail","clearPOSItemDetailSearch","setPOSItemToppingDetail","clearPOSItemToppingDetail","setPOSItemToppingDetailSearch","clearPOSItemToppingDetailSearch","setPOSTableTotalDetail","clearOpenTableData","clearMenuItemData","InnTextbox","textvalue","settextvalue","inputErrors","setinputErrors","errorMessage","seterrorMessage","errorstring","seterrorstring","txtValidation","min","onFocus","onKeyDown","tag","keyCode","shiftKey","preventDefault","maxLength","InnPlainTextbox","InnSearchTextbox","handlOnCancelClick","React","innToggle","classList","remove","add","closeicon","InnSwitch","switchValue","setSwitchvalue","formControlName","htmlFor","InnLoader","InnFileUpload","inputFile","FilePath","setFilePath","previewModal","setpreviewModal","base64string","click","files","reader","onload","fname","readAsDataURL","InnPreviewImage","InnTableGrid","setdata","isAsc","setisAsc","sortingColumnName","setsortingColumnName","pageNumber","setpageNumber","pageSize","setpageSize","paginationData","setpaginationData","activeRow","setactiveRow","cellIndex","setcellIndex","isKeyUp","setisKeyUp","copy","handlePagination","handleSortByAscending","sortedAsceding","handleSortByDescending","sortedDescending","indexOfLastData","indexOfFirstData","currentData","slice","pageNumbers","ceil","renderPageNumbers","number","transition","border","handlePageNumberClick","listid","Number","iconData","toolContent","p","getTotal","colnm","footer","tabIndex","onKeyUp","handleKeyUp","isEnabled","checkedItem","handleAllChecked","h","downicon","upicon","currentTarget","rowSelectedData","temp1","handleclick","linkData","btnClass","btncls","c1","grpname","rowData","handleGrpBtn","background","statusColor","statusTitle","Key","ClassName","imgclass","imgposition","details1","details2","marginTop","InnToastMessage","setisActive","InnTabs","activeTabId","setActiveTabId","handleTabClick","collection","handleTabClose","filterTab","InnButtonTabMore","InnInnerGrid","setTemp","setData","chlHeader","setChlHeader","chlData","setChlData","IsOpen","handleBtnClick","fetch","headers","Accept","json","columHeader","newData","handleImgClick","handleInnerImgClick","handleInnerImgClick2","colspan","InnDataGrid","isasc","setisasc","setcheckedItem","setrecord","sortcolcolor","setsortcolcolor","sortColumname","setActiveRow","rowClickabledata","handleSort","handlegrpbtn","allCheckedData","allUnCheckedData","InnMultiDateSelection","startDate","setStartDate","endDate","setEndDate","years","getFullYear","months","selectsRange","start","end","placeholderText","peekNextMonth","showMonthDropdown","showYearDropdown","renderCustomHeader","changeYear","changeMonth","decreaseMonth","increaseMonth","prevMonthButtonDisabled","nextMonthButtonDisabled","getMonth","InnDateTimeSelection","setstartDate","timeInputLabel","showTimeSelect","InnDropdownWithRadioButton","isListOpen","setisListOpen","keyword","setkeyword","errorString","setselected","searchField","close","selectItem","foundItem","selectSingleItem","selectedItem","styles","wrapper","focus","getElementsByClassName","getElementById","scrollTo","offsetTop","behavior","headerTitle","UpArrow","DownArrow","listSearchBar","scrollList","listItemNoResult","listItems","isOpen","setisOpen","ddValue","wrapperRef","handleClickOuside","contains","InnButtonTypeWithDropdown","btnRef","popupRef","childSpanRef","toggleList","getBoundingClientRect","bottom","actiondownarrow","threedots","listItem","InnEditor","setOptions","html","disableToolbar","defaultTag","InnCalendar","inline","InnSingleRadioButton","setrbvalue","resolveCallback","text","Promise","rej","onConfirm","onCancle","onSelection","btnval","txtval","selector","InnConfirmAlert","remarkvalue","setremarkvalue","handleOnBtnClick","InnAlert","InnKeyboard","textBoxValue","setTextBoxValue","isCapsOn","setIsCapsOn","isBackSpaceKey","newVal","isCapsLockOn","substr","onEnter","goLeft","goRight","toUpperCase","GetReservationCashieringList","GetReservationTransactionData","InvoiceSerNo","GetReservationWindowTransactionData","GetReservationTransactions","GetValidateRoomForTransaction","PostTransferTransactionToAnotherRoom","PostReservationWindowTransferSingleWindow","PostReservationWindowTransferMultipleWindow","GetReservationTransactionSplitDetail","PostReservationTransactionSplitItemGroupDetail","ProcessReservationTransactionFandBAllowance","GetPaymentSplitDetail","AddReservationPaymentSplitDetail","AddEditReservationTask","ManageNoPostAtCheckout","GetCheckoutInvoiceDetail","InvoiceNo","GetCheckoutTransaction","strRestransactionSerNo","ManageCheckOutInvoice","strWindowSerNo","ManageOpenFolio","PostCheckoutWithOpenFolio","AutoCheckout","AutoCheckoutSharer","AddCheckoutInvoices","ReinstateReservations","EditReservationEarlyDeparture","GetAdvanceBillList","AddReservationPaymentGateway","FetchPaymentStatus","UpdateReservationPaymentGateway","CancelReservationPaymentGatewayTransaction","ManageRoutingWindow","GetFrontInvoiceDetails","GetReservationLinkPartyList","GetGSTEInvoiceList","GetInvoiceQr","GetGSTEInvoiceDetails","GetGSTeInvoiceItemDetail","GetGSTeInvoiceLastResponse","PostReservationAllowance","PostReservationGroupAllowance","ProfilePreferenceModalPopup","tempSpecials","tempFeature","handleOnSpecialchecked","handleOnFeaturechecked","handleOnContinue","handleOnCheckAllFeature","handleOnCheckAllSpecial","RoomRoutingRoomSelectionModalPopup","selectdata","showAddRoomAdvancedSearchModal","setShowAddRoomAdvancedSearchModal","roomDetailList","setRoomDetailList","selectedRoomReservationSerNo","setSelectedRoomReservationSerNo","funSetRoutedRoomSerNo","GetReservationRoomRoutingRoomDetailList","tempRoutedRoomObject","tempSelectedRoom","GuestType","AddEditRoomRoutingModalPopup","showRoomRoutingAddModal","setShowRoomRoutingAddModal","CustomErrorRoutedRoomName","ResSerNo","InnMultiSelectDropdown","settitle","selectedItems","setselectedItems","setclientWidth","handleSelection","tempSelectedList","selectedItemsCopy","selectMultipleItems","role","arrow","allowHTML","interactive","appendTo","body","visible","InnTooltip","handleInsideClick","trigger","getTooltipProps","getArrowProps","tooltipRef","arrowRef","getTriggerProps","triggerRef","InnSingleDateSelection","setIsOpen","setDateFormat","onInputClick","onClickOutside","parentElement","onScroll","InnTimeSelection","showTimeSelectOnly","timeCaption","timeFormat","InnPlainTabs","activeTab","setactiveTab","Children","child","TabButtons","changeTab","tab","button","Tab","frontSlice","tempRateDetailData","IsWalkIn","setName","setExtraPackage","reSetExtraPackage","setIsWalkIn","setIsSharer","setSharerReservationSerNo","front","InnSingleSelectDropdown","isPageLoaded","setIsPageLoaded","seterrorString","elementToScroll","scrollControl","scrollTop","ex","InnContextMenu","InnColorPicker","setColor","setState","selectedColor","showSelectColor","createRef","handleClickOutside","bind","this","colors","toggle","right","borderStyle","borderWidth","borderColor","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","marginBottom","InnTextarea","textareavalue","settextareavalue","InnStatusLabel","InnMovablePanel","setstyles","diffX","diffY","diffPos","setdiffPos","setisDragging","isShow","setisShow","reservationTaskList","setReservationTaskList","completedTasksCount","setCompletedTasksCount","selectedHeader","setSelectedHeader","handleSelectionChange","fillTaskList","onDragStart","boundingReact","screenX","screenY","dragStart","onDragEnd","cursor","dragging","draggable","TaskID","handleTaskCheck","TaskName","InnCollapsibleHead","addClassName","showContentAboveButton","isExpanded","InnCollapsibleContent","InnCollapsibleComponent","querySelectorAll","panel","dataset","previousElementSibling","nextElementSibling","CheckHistory","showCheckPreviewModal","setgridSelectedItem","checkHistoryFilterObj","setCheckHistoryFilterObj","setfilterData","isPageLoad","setIsPageLoad","outletBiilingData","setOutletBiilingData","postCheckHistoryChargeObj","setPostCheckHistoryChargeObj","GetOutletData","IsMiniBarOutlet","fillDataGrid","CheckHistoryDetail","TotalRows","CheckDate","ManualRemarksPopUp","remarks","setRemarks","headerLable","setHeaderLable","setErrMsg","handleCancelletionRemarkClose","remarksOnClick","ShiftCheckSerNo","MergeDetail","FromCheckSerNo","FromRateSerNo","FromOutletSerNo","FromTableSerNo","FromPrintFlag","ToCheckSerNo","ToRateSerNo","ToOutletSerNo","ToTableSerNo","ToPrintFlag","TableLookUp","posData","selectedOutlet","setSelectedOutlet","ocMainTableListData","setOCMainTableListData","ocTableListData","setOCTableListData","showDynamicTablePopup","setShowDynamicTablePopup","objOutlet","handleOutletClick","handleTableSelect","CheckItemSerNo","selectedTable","IsRoomServiceOutlet","PrintFlag","FieldName","FieldValue","getMenuDetail","handleOccupiedTable","handleAllTable","handleVacantTable","handleShiftClick","handleMergeClick","maxTableSerNo","SequenceNo","IsDynamicTable","sortItem","handleDynamicTableClose","RatePopUp","showCompRemarks","setShowCompRemarks","ocRateDetail","setOcRateDetail","ocMainReferenceMaster","setMainOcReferenceMaster","ocReferenceMaster","setOcReferenceMaster","remark","setRemark","remarkError","errList","setErrList","searchText","setSearchText","tempRate","tempReference","handleRateClick","handleOnCompClose","MandatoryModifierPopup","ocMandatoryModifier","setOcMandatoryModifier","selectedMandatoryModifier","setSelectedMandatoryModifier","selectedModifier","setSelectedModifier","objModifier","strOrginal","ToppingName","ToppingSerNo","tempModifier","handleOnClick","ItemFlag","ItemSearchPopup","selectItemName","setSelectItemName","selectQty","setSelectQty","selectItemSerNo","setSelectItemSerNo","showPOSMandatoryModifierPopup","setShowPOSMandatoryModifierPopup","posItemData","setPOSItemData","openModifierPopup","handleOnSubmit","handleQtyChange","CostRate","RegularRate","ItemName","CookingInsName","DiscountAmt","IsPercentage","CancelCheckItemSerNo","ManKOTNo","IsNewItem","objSelectedItem","objTotal","TotalQty","selectedItemSerNo","handleOnMandatoryModifier","ServerPopUp","ocMainServerData","setMainocServerData","ocServerData","setOcServerData","tempServer","handleServerClick","tempItemGroupDiscountData","DiscountPopUp","DiscountGroup","setDiscountGroup","headerDiscount","tableDiscountData","setTableDiscountData","itemGroupDiscountData","setItemGroupDiscountData","discountRemark","setDiscountRemark","manualAmount","setManualAmount","handleDiscountClick","IsDiscountPercentage","tempTableData","POSItemDiscountDetails","IsUpdateAll","IsSubGroupDiscount","handleDiscountOnClose","handleKeyBoardClick","CheckWiseData","ItemGroupWiseData","DiscountAmount","isItemGroupDiscount","Outlet","MediaPopUp","ocTransactionMaster","setOcTransactionMaster","selectedMachine","setSelectedMachine","AllowTipAmount","setAllowTipAmount","TipAmount","setTipAmount","setChequeNo","showRightPanel","setShowRightPanel","slipError","setSlipError","selectedTransaction","setSelectedTransaction","handleOnClickTransaction","handlOnClickSave","ShowDetailsPopUp","showDetailData","setShowDetailData","MenuName","ExamptionName","Tax","Settle","TaxExemptionPopUp","ocExemptionMaster","setOcExamptionMaster","selectedExemption","setSelectedExemption","handleExemptionOnClik","NumberkeyPadPopUp","setHeader","headerLabel","setHeaderLabel","txtValue","setTxtValue","errMsg","returnValue","OptionalMadifierPopUp","ocCookingGroupMaster","setOcCookingGroupMaster","ocCookingItemMaster","setOcCookingItemMaster","ocSelectedCookingItemMaster","setOcSelectedCookingItemMaster","selectedCookingGroup","setSelectedCookingGroup","selectedOptionalModifier","setSelectedOptionalModifier","tempObjGroup","CookingInsGroupSerNo","handleSaveOptionalModifierclick","CookingInsSerNo","handleOnItemClick","FunctionPopUp","handleButtonOnClick","returnData","handleFunctionClick","srcItem","srcGrid","srcClick","dstClick","SplitTablePopUp","showNumberKeyboardPopup","setShowNumberKeyboardPopup","pObj","setPobj","pObj1","setPobj1","pObj2","setPobj2","pObj3","setPobj3","pObj4","setPobj4","pObj5","setPobj5","pObj6","setPobj6","pObj7","setPobj7","setTable","tableName","setTableName","tableName1","setTableName1","tableName2","setTableName2","tableName3","setTableName3","tableName4","setTableName4","tableName5","setTableName5","tableName6","setTableName6","tableName7","setTableName7","passQty","setPassQty","returnQty","setReturnQty","totalQty","setTotalQty","qty","setQty","qty1","setQty1","qty2","setQty2","qty3","setQty3","qty4","setQty4","qty5","setQty5","qty6","setQty6","qty7","setQty7","CalculateQty","accumulator","object","clearSelectedData","tempObjNew","tempObjCancel","handlepObjClick","handlepObj1Click","handlepObj2Click","handlepObj3Click","handlepObj4Click","handlepObj5Click","handlepObj6Click","handlepObj7Click","table1OnClick","currQty","tempObj1","tempObj2","tempObj3","tempObj4","tempObj5","tempObj6","tempObj7","currTotalAmount","hanldeOnSave","tempObj1Old","tempObj2Old","tempObj3Old","tempObj4Old","tempObj5Old","tempObj6Old","tempObj7Old","tempObjOld","oldQty","handleNumpadSaveClick","BuffurPopUp","setOcPOSItemDetail","ocPOSTaxDetail","setOcPOSTaxDetail","setOcPOSSettlementDetail","subTotal","setSubTotal","netTotal","setNetTotal","itemSubTotal","tempCharge","itemNetTotal","tempSettlement","IsFromMiniBar","handlePrintClick","selectedOutletSerNo","selectedTableName","selectedMenu","selectedMenuCategory","selectedSubMenuCategory","ModeFlag","RoomServiceOutlet","RateDetails","insertPOSItemTable","pPOSTableDetail","pPOSItemDetail","pPOSItemTopping","IsTableOpenStatus","IsNewItemFlag","companyType","POSBilling","showPOSItemSearchPopup","setShowPOSItemSearchPopup","showPOSLookupPopup","setShowPOSLookupPopup","showPOSServerPopup","setShowPOSServerPopup","showPOSDiscountPopup","setShowPOSDiscountPopup","showPOSRatePopup","setShowPOSRatePopup","showPOSCompanyPopup","setShowPOSCompanyPopup","showPOSGuestPopup","setShowPOSGuestPopup","showPOSShowDetailsPopup","setShowPOSShowDetailsPopup","showPOSMediaPopup","setShowPOSMediaPopup","showCancellationRemarkPopup","setShowCancellationRemarkPopup","showPOSTaxExemptionPopup","setShowPOSTaxExemptionPopup","showPOSRoomSettlementPopup","setShowPOSRoomSettlementPopup","showPOSOptionalModifierPopup","setShowPOSOptionalModifierPopup","showPOSFunctionPopup","setShowPOSFunctionPopup","showPOSSplitBillPopup","setShowPOSSplitBillPopup","showPOSBufferCheckPopup","setShowPOSBufferCheckPopup","cashTransaction","setCashTransaction","roomTransaction","setRoomTransaction","subTotalRow","setSubTotalRow","setPrintKOTLocationwise","objMenuMasterData","setObjMenuMasterData","ocMenuItemDetail","setOCMenuItemDetail","ocMenuCategoryMaster","setOCMenuCategoryMaster","ocMenuSubCategoryMaster","setOCMenuSubCategoryMaster","unify","setUnify","unifyData","setUnifyData","setPropertyDetails","HeaderDefaultDataCall","GetOpenTableData","pPOSItemTotalAmountDetail","pPOSSettlement","MenuSubCategorySerNo","IsPrintKOT","MenuCategorySelectionChange","objCatgeory","MenuSubCategorySelectionChange","handleItemClick","cancelRemarks","CancelRemarks","ocCancelItems","cntCancel","ShowCanItemwiseRemarks","itemCancel","AllowRate","handleItemGridSelectionChange","IsAllowManualKOT","ErrorMessage","rowspan","settleAmount","IsClosed","spaceBetween","onSlideChange","observer","observeParents","centeredSlides","strTable","IsFastMoving","strNoOfPax","handleGuestOnClose","handleCompnayOnClose","handleOnCloseItemSearch","handleOnServerClose","Tip","selectedPayMode","handleMediaSaveClick","handleExemptionSaveOnClose","otherSettlement","roomSettlement","partialRoomSettle","para1","FieldName2","FieldValue2","handleMapToRoomOnClose","totalBillAmount","handleFunctionSelectPopUp","ItemGroupMaster","Active","setSelected","defaultSubGroup","selectedSubGroup","setSelectedSubGroup","itemGroupList","setItemGroupList","itemSubGroupList","setItemSubGroupList","resultListSub","setResultListSub","resultList","setResultList","searchSubGroup","setSearchSubGroup","old","setOld","oldSubGroup","setOldSubGroup","validationSubGroup","setValidationSubGroup","scrollRef","scrollRef1","GetAllData","sortDataa","resp1","sortData","GetSubGroupListApi","AddEditAPI","scrollIntoView","behaviour","handleChangeSearchSubGroup","AddEditAPISubGroup","handleChangeSearch","handleClickGroupType","handleChangeSubGroup","showItemModal","setShowItemModal","isValidpage","isValidpageSubGroup","itemSubGroup","handleClickSubGroupType","ItemToppingMaster","ShortName","toppingList","setToppingList","handleClickItemToppingType","LocationMaster","locationMasterData","setLocationMasterData","locationMasterObj","setLocationMasterObj","filterLocationMaster","setFilterLocationMaster","LocationMasterValidation","setLocationMasterValidation","selectedLocationMaster","setSelectedLocationMaster","fillLocationMaster","LocationSerNo","HandleOnSearchClick","searchFilter","HandleOnLocationMasterClick","PrinterName","filterEdit","MenuCategoryMaster","curr","defaultMenuCategory","defaultMenuSubCategory","validMenuCategory","validMenuSubCategory","menuMaster","setMenuMaster","menuCategoryObj","setMenuCategoryObj","menuCategoryMaster","setMenuCategoryMaster","filterMenuCategory","setFilterMenuCategory","showMenuModal","setShowMenuModal","menuCategoryValidation","setMenuCategoryValidation","categoryselectedSerNo","setCategorySelectedSerNo","searchCategory","setSearchCategory","filterMenuSubCategory","setFilterMenuSubCategory","menuSubCategoryObj","setMenuSubCategoryObj","menuSubCategoryMaster","setMenuSubCategoryMaster","menuSubCategoryValidation","setMenuSubCategoryValidation","categoryselectedSubSerNo","setCategorySelectedSubSerNo","searchSubCategory","setSearchSubCategory","fillMenuCategory","menu","clearCategory","handleOnCategorySearch","filterCategory","handleMenuCategoryClick","Obj","fillMenuSubCategory","handleOnSubCategorySearch","filterSubCategory","clearSubCategory","handleMenuSubCategoryClick","isvalid","isValidPageMenuCategory","filterCategoryEdit","isValidPageMenuSubCategory","filterSubCategoryEdit","OutletMenuMapping","defaultMenuMapping","NewMenuSerNo","validMenuMapping","outletMenuMapping","setOutletMenuMapping","filterMenuMapping","setFilterMenuMapping","menuMappingObj","setMenuMappingObj","menuMappingValidation","setMenuMappingValidation","selectedMenuSerNo","setSelectedMenuSerNo","fillOutletMenuMapping","listSort","loadMenu","handleOnSearch","handleOnMenuMappingClick","AddNew","OutletTableMaster","IsActiveOutlet","outletTableObj","setOutletTableObj","outletTableData","setOutletTableData","filterOutletTable","setFilterOutletTable","selectedrOutletTableSerNo","setSelectedrOutletTableSerNo","outletTableValidation","setOutletTableValidation","itemRoomData","setItemRoomData","fillSpecialMaster","IsPseudo","handleOutletTableClick","OutletHappyHourMaster","weekdayData","defaultHappyHour","WeekDay","FromTime","ToTime","Mon","Tue","Wed","Thu","Fri","Sat","Sun","defaultValidationObj","outletHappyHourObj","setOutletHappyHourObj","setOutletHappyHourMaster","filterHappyHourMaster","setFilterHappyHourMaster","selectedWeekDay","setSelectedWeekDay","setSearchStr","fillOutletHappyHour","handleOnHappyHourClick","OutletItemGroupMapping","POSOutletMaster","PaymodeSerNo","KOTPrinter","IsDeptWiseKOTPrint","Prefix","BillFormat","IsOtherPaymodeAllow","IsAllowDayClosing","InvoicePrinter","NoOfPrintInvoice","DefaultPax","DefaultServerSerNo","IsAllowItemCancel","IsAllowCalSummary","IsCashCounterOutlet","NoOfPrintKOT","ShowOptModifier","IsBanquetOutlet","KOTPrinter2","ImplementDisplayOrdNo","NoOfCover","IsImplementClubMember","validOutlet","outletObj","setOutletObj","outletMaster","setOutletMaster","filterOutletMaster","setFilterOutletMaster","outletValidation","setOutletValidation","payMode","setPayMode","setSelectedOutletSerNo","showPOSOutletMasterDetailPopup","setShowPOSOutletMasterDetailPopup","showPOSOutletTableMasterPopup","setShowPOSOutletTableMasterPopup","showPOSOutletWeekHappyHoursPopup","setShowPOSOutletWeekHappyHoursPopup","showPOSOutletItemGroupMappingPopup","setShowPOSOutletItemGroupMappingPopup","transactionData","setTransactionData","serverData","setServerData","sourceData","setSourceData","fillOutlet","fillTransactionData","fillServerMaster","fillSourceData","fillMarketData","filterOutlet","Add","PosItemMaster","posItemObj","setPosItemObj","setPosItemData","filterPosItem","setFilterPosItem","setSelectedrPosItemSerNo","posItemValidation","setPosItemValidation","itemGroupData","setItemGroupData","courseSerNoData","setCourseSerNoData","hsnSacCodeData","setHsnSacCodeData","loadItemSubGroupData","setLoadItemSubGroupData","fillItemGroupMasterBySerNo","fillPosItemMaster","fillGetItemGroupMaster","fillGetCourseMaster","fillGetHsnSacCodeMaster","CourseSerNo","HSN_SAC_Code","handlePosItemClick","MaskName","tempName","BarCode","IsOpenItem","ItemCode","ItemType","ItemPath","HSNCode","ServerMaster","serverList","setServerList","server","handleClickServerType","ItemToppingMapping","defaultvalidation","loadToppingType","setLoadToppingType","itemToppingMappingData","setItemToppingMappingData","itemToppingMappingObj","setItemToppingMappingObj","itemToppingMappingValidation","setItemToppingMappingValidation","itemToppingMappingFilter","setItemToppingMappingFilter","itemToppingMappingSelected","setItemToppingMappingSelected","selectedToppingSerNo","setSelectedToppingSerNo","isValidItem","setIsValidItem","fillItemToppingMapping","loadToppingTypeMaster","handleOnToppingMappingClick","NewToppingSerNo","MenuItemMaster","NewItemSerNo","HappyRate","IsDiscountable","IsTaxable","menuItemObj","setMenuItemObj","menuItemList","setMenuItemList","menuItemFilter","setMenuItemFilter","menuItemValidation","setMenuItemValidation","loadItemCombo","setLoadItemCombo","loadTransactions","setLoadTransactions","loadMenuCategory","setLoadMenuCategory","loadMenuSubCategory","setLoadMenuSubCategory","loadLocation","setLocation","showItemToppingMappingPopup","setShowItemToppingMappingPopup","fillItemList","handleClickSearch","handleClickOnList","validPage","MenuMaster","posMenuObj","setPosMenuObj","posMenuData","setPosMenuData","filterPosMenu","setFilterPosMenu","selectedrPosMenuSerNo","setSelectedrPosMenuSerNo","posMenuValidation","setPosMenuValidation","setPosTransactionSerNo","fillPosMenuMaster","handlePosMenuClick","showMenuMasterItemPopup","setShowMenuMasterItemPopup","CourseMaster","courseList","setCourseList","course","tempErr","PostMinibarChargePopup","selectedItemsList","setSelectedItemsList","itemList","setItemList","DiscountRemarks","IsDisable","insertObj","setInsertObj","billingSummary","setBillingSummary","defaultSettlementObj","CreditMachineSerNo","defaultPostSettlementValidation","defaultDisableObj","payment","postToRoom","addSettlement","filterDataPostMinibar","setfilterDataPostMinibar","savedList","setSavedList","propertyPara","setShowPostMinibarModal","showLaundryItemDD","setShowLaundryItemDD","isInvoicePrinted","setIsInvoicePrinted","guestList","setGuestList","taxExemptionList","setTaxExemptionList","reservationStatus","setReservationStatus","postSettlementObj","setPostSettlementObj","paymentMethodTypeList","setPaymentMethodTypeList","paymentList","setPaymentList","postSettlementValidation","setPostSettlementValidation","disabledObj","setDisabledObj","IsShowSummary","setIsShowSummary","miniBarOutletData","setMiniBarOutletData","postToRoomObj","setPostToRoomObj","fillReservation","clearReservationDetails","dates","ArrivalDate1","DepartureDate1","fillGuestList","handleClickSaveItem","ManKotNo","objData","Addeditobject","IsExistingTable","temp2","temp3","IsPaymentValid","Complimentary","CompRateSerNo","handleClickCheckBox","handleChangeQty","handleRemoveItem","cclassName","Minibar","showPostMinibarModal","showPreviewCheckModal","setShowPreviewCheckModal","postMinibarChargeobj","setPostMinibarChargeobj","isDateLoaded","setIsDateLoaded","gridData","setGridData","userIdList","setUserIdList","PosttoRoom","CompanyOnFolio","userData","setUserData","GetUsersList","handleClickApply","BillDate","BillAmount","NetAmount","PostToRoom","CompanyonFolio","Case","VenueDetailModalPopup","filterDatavenuedetailtable","setfiltervenuedetailtable","EstAdult","EstChild","EventDate","StartTime","EndTime","FunctionSerNo","functionList","setFunctionList","cmbItem","setCmbItem","venueList","setVenueList","venueVelidation","setVenueValidation","defaultVenueObj","BoardToRead","SeatingArragement","IsDisabledVenue","defaultItemObj","IsDisabledItem","newVenueObj","setNewVenueObj","newItemObj","setNewItemObj","itemListData","setItemListData","selectedItemObj","setSelectedItemObj","bookingStatusList","setBookingStatusList","handleClickEditItem","BookingItemSerNo","Rate","para4","GetFunctionMasterData","GetVenueDataCombo","GetItemListData","para2","para3","STime","ETime","SeatingArrangement","Estchild","validity","handleChangeItem","ItemDescription","TaxBreakupPopup","filterDataBanquettable3","setfilterBanquettable3","filterDataBanquettaxbreakup","setfilterBanquettaxbreakup","setTaxList","setShowBanquetEditModal","totalVenueWise","totalItemwise","totalItemtax","pBanquetVenueItem","pBanquetTax","temp4","temp5","ChargeName","AddEditBanquetModalPopup","defaultHeaderObj","SalesPersonSerNo","CompanyOnInvoiceSerNo","IsVenueWise","GeneralRemarks","CancelPolicy","banquetHeaderObj","setBanquetHeaderObj","showAgentModal","setShowAgentModal","setVenueIsDisabled","showTaxBreakupPopup","setTaxBreakupPopup","totalAmountVenue","setTotalAmountVenue","headerValidation","setHeaderValidation","setType","showBanquetAddeventModal","setShowBanquetAddeventModal","displayObj","setDisplayObj","marketList","setMarketList","sourceList","setSourceList","salesPersonList","setSalesPersonList","referanceList","setReferanceList","taxExamptionList","setTaxExamptionList","outletData","taxListData","setTaxListData","newSerNo","setNewSerNo","venueEditObj","setVenueEditObj","GetOutletDataApi","GetBanquetVenueApi","BookingAmount","VenueName","Venue","Function","FunctionName","EAdult","EChild","totalAm","GetBanquetBookingHeader","GetReferenceApi","GetMarketData","GetSalesPersonData","Banquet","selectedEvent","setSelectedEvent","ModeOfPayment","filterDataDepositreceivedtable","DateType","venue","EventName","BookingDate","APC","Advance","banquetBookingList","setBanquetBookingList","banquetObj","setBanquetObj","fillBanquetBookingList","showBanquetEditModal","selectedVenue","setSelectedVenue","DailyRateModalPopup","showRateSelectionModal","setShowRateSelectionModal","isFixedRate","setIsFixedRate","setIsTaxInclusive","selectedFromDate","setSelectedFromDate","selectedToDate","setSelectedToDate","selectedDailyRate","setSelectedDailyRate","rateCodePopDetail","setRateCodePopDetail","fillDailyRateFromStore","tempTotalRoomRate","handleRightArrowClick","handleOnRoomRateChanged","value1","tempdaily","GetModifiedRateAndPackageRate","handleOnSave","OldTotalRoomRate","isUpdate","SingleSelectFilter","selectedValue","InputTextFilter","CheckboxFilter","CancelNoShowModalPopup","reservationCancelInfoData","setReservationCancelInfoData","reservationRevenueSummary","setReservationRevenueSummary","cancellationRuleSerNo","setCancellationRuleSerNo","filterDataDepositPayment","setfilterDataDepositPayment","penaltyAmount","setPenaltyAmount","totalDepositRequested","setTotalDepositRequested","totalDepositPayment","setTotalDepositPayment","orgTaxableAmount","setOrgTaxableAmount","taxAmount","setTaxAmount","taxPercentage","setTaxPercentage","isValidAmount","setIsValidAmount","showPostTransPopup","setShowPostTransPopup","fillTaxValue","GetCancelReservationCharge","totalPer","handleCancelReservationOnClick","Revenue","SelectedStatus","GetReservationRevenueSummary","defaultData","defaultTotalDeposit","defaultDepositReq","fillAmountFromGrid","handleTableDataSelect","IsDeleteTrace","InnDropdownTable","cellSpacing","ReportPreviewLevelThree","groupingThreeTotal","setGroupingThreeTotal","RecieptPaymentModal","IsReceipt","Note","recieptPaymentObj","setRecieptPaymentObj","cashBookTransactionList","setCashBookTransactionList","cashBookTransactionValidataion","IspageValid","AddPostCashbookEntry","EncashmentDenominationModal","Denomi","TotalDenomi","CurrencyRate","NetAount","ValidDenomi","ValidQty","setDenominationObj","quantity","setQuantity","setAmount","netAmount","setNetAmount","setArray","setTaxPopup","sum","Amt","values","ChargeList","TaxList","DominiAmount","CalculateEncashmentTax","ChargeAmt","netAmt","tempApplyObj","EncashmentModal","SubSerNo","CashbookSerNo1","CashbookSerNo2","EntryDatetime","propertyIDObj","setPropertyIDObj","encashmentObj","setEncashmentObj","currencyRateData","setCurrencyRateData","encashmentValidation","setEncashmentValidation","showCurrencyDenominationsPopup","setShowCurrencyDenominationsPopup","prevValues","setPrevValues","clearDetails","fillEncashment","GetGuestPassportIdentification","NationalityCountrySerNo","GetEncashmentCurrencyRate","CurrencyName","InsertEncashment","CurrRate","price_in_words","fraction","round","f_text","convert_number","Gn","kn","Hn","Dn","tn","one","ones","tens","CashReceipt","myRef","printRef","propertyDetails","receiptData","setReceiptData","IsPrint","fillReceiptDetails","fillPropertyInvoiceDetails","GetReceiptDetails","handlePrint","OnPrint","valign","theOrchidLogo","ReceiptDate","Particular","innkeypmslogo","onAfterPrint","CashVoucher","showRef","voucherData","setVoucherData","IsShow","fillVoucherDetails","GetVoucherDetails","OnShow","Encashment","encashmentData","setEncashmentData","encashmentTotal","setEncashmentTotal","fillEncashmentDetails","GetEncashmentCertificateDetails","serviceTot","tempTot","serTot","CashbookSettlement","the_orchid_logo","EncashmentCertificateModel","EncashmentDate","EncashmentCertificateNo","borderRight","rowSpan","Currency","Denomination","Charge","City","State","Cashbook","PettyCashType","cashBookFilterObj","setCashBookFilterObj","reciept","setReciept","selectedCheckbook","setSelectedCheckbook","showReceiptPaymentModal","setShowReceiptPaymentModal","showEncashmentModalPopup","setShowEncashmentModalPopup","showCashReceiptPopup","setCashReceiptPopup","showCashVoucherPopup","setCashVoucherPopup","showEncashmentPopup","setShowEncashmentPopup","totalReceipt","setTotalReceipt","totalPayment","setTotalPayment","totalClosingBalance","setTotalClosingBalance","currencyMasterData","setCurrencyMasterData","GetCashbookList","TotalRecipt","Receipt","TotalPayment","TotalCloBalance","TransactionDescription","AddPackageModalPopup","nights","setNights","adult","setAdult","setChild","pkgIsTaxInclusive","setPkgIsTaxInclusive","isUpSell","setIsUpSell","isUpSellDisable","setIsUpSellDisable","upSellRemarks","setUpSellRemarks","actualPackagePrice","setActualPackagePrice","actualPackageTax","setActualPackageTax","actualTotalTax","setActualTotalTax","actualTotal","setActualTotal","selectedPackageDetail","setSelectedPackageDetail","postingTypeData","setPostingTypeData","postingRhythmData","setPostingRhythmData","selectedPostingRhythmSerNo","setSelectedPostingRhythmSerNo","selectedPostingRhythmName","setSelectedPostingRhythmName","selectedPostingTypeSerNo","setSelectedPostingTypeSerNo","selectedPostingTypeName","setSelectedPostingTypeName","filterParaPackage","setFilterParaPackage","rateCodeDetail","setRateCodeDetail","setCalculatedQty","calculatedQtyText","setCalculatedQtyText","isBtnRefreshAmountClicked","setIsBtnRefreshAmountClicked","funsetCalculatedQtyAndText","qtyText","T","calculateTaxAndTotal","storeExtraPackage","storeIsTaxInclusive","selectedPkg","IsUpSell","UpSellRemarks","cmbGetPackagePostingRhythm","PostingRhythmSerNo","RhythmType","cmbGetPackagePostingType","pkg","PostingTypeSerNo","GetPackageBySerNo","vIsValidPage","tempRateCodeDetail","IsUpSellable","handleOnAdd","tempNights","handleOnRateChanged","n1","totalPrice","stayTotal","StayTotal","night","PackageSelectionModalPopup","setTotal","packageData","setPackageData","filPackageData","setFilPackageData","txtSearch","setTxtSearch","showAddPackage","setShowAddPackage","filterDataPackagesSelected","setFilterDataPackagesSelected","showPackageListDDModal","setShowPackageListDDModal","selectedPackage","setSelectedPackage","packagePara","setPackagePara","setInclusivePackges","distinctPkg","dp","newPkg","TotalPackagePrice","fillRateAndPackageFromStore","GetRatePackage","existingPackage","handleOnPackageSelection","packageExist","actionDownArrow","filList","handleSearchChange","handleOnEditDelete","packageSerNo","GetGuestProfileList","AddEditGuestProfileInfo","GetGuestProfileBySerNo","GetGuestProfileRelationship","AddEditGuestRelationship","GetGuestProfileInternalComment","AddEditGuestProfileComment","EditGuestProfileCorrespondence","GetGuestProfileCorrespondence","GetCompanyProfileContactDetailList","AddEditCompanyProfileContactDetail","GetCompanyProfileIdentification","AddEditCompanyProfileIdentification","EditCompanySalesInfo","GetCompanyProfileComment","AddEditCompanyProfileComment","AddEditCompanyProfileInfo","GetCompanyProfileBySerNo","GetGuestProfileInfoData","GetReportMaster","GetReportFilterMaster","ReportSerNo","GetReportColumnMaster","GetArrivalReport","GetArrivalReportPaymode","GetArrivalReportInclusivePkg","InclPackageSerNo","GetArrivalReportAdditionalPkg","ExclPakcageSerNo","GetArrivalReportDropTransportation","GetArrivalReportInternalComment","GetArrivalReportRoomFeature","GetArrivalReportRoomRouting","GetArrivalReportWindowRouting","GetArrivalReportReservationBalance","GetArrivalReportPastStay","GetArrivalReportLastRoom","GetPMNonBlockDetailReport","GetOpenFolioDetailReport","GetRateVarianceReport","GetNoShowReport","GetEarlyDepartureReport","GetReservationDetailReport","GetArrivalReportRoomSpecial","GetReservationDepartureReport","GetReservationInHouseReport","GetReservationCreditLimitReport","cmbGetRoomMaster","cmbGetReservationTypeMaster","cmbGetAgentMaster","FilterText","GetReservationList","filData","fromDate","toDate","GetPropertyMaster","rateGroupSerNo","isDayUse","rateCodeSerNo","discAmount","isDiscPer","companyProfileSerNo","agentProfileSerNo","ModifiedRate","AddReservation","GetReservationBySerNo","EditReservation","reservationAlertSerNo","AddEditReservationRoomFeature","AddProfileRoomFeature","put","traceSerNo","IsCustomCase","IsAllOutlet","IsItemGroupSelected","DeleteReservationCancellationRule","attachmentSerNo","profileType","isIncognito","fieldName","fieldValue","manageReservationMultipleFields","depositRequestSerNo","depositRequestSubSerNo","windowsserno","transactionType","module","OrgTaxableAmount","PostReservationArrivalListFilter","GetRoomAvaibility","GetBlockReservationRateAndPackageRate","AddEditReservationBlock","GetReservationBlockDetail","blockSerNo","GetReservationBlockList","GetReservationBlockHeaderData","manageReservationBlockFields","GetReservationBlockListCombo","EditCheckedInReservations","manageReservationBlockBalanceIndicator","GetReservationBlockRateSummary","GetBlockReservationSummary","AddBlockReservationIndicatorData","blockReservationSerNo","ManageSplitReservation","ManageSplitReservations","GetDepartureListFilteredData","FromReservationSerNo","FromRoomSerNo","ToReservationSerNo","ToRoomSerNo","GetLinkReservationParty","GetLinkReservationPartyList","PartySerNo","AddEditReservationParty","ReservationroomMove","ValidatedCancellableCheckinReservation","StrReservationSerNo","AutoAssignRoomToReservation","GetAutoAssignReservation","ManageAdvanceCheckin","GetDefaultPseudoRateDetails","GetArrivalStatistics","GetBillingInstructionWindowRouting","AddEditBillingInstructionWindowRouting","GetBillingInstructionWindowRoutingGroup","GetBillingInstructionWindowRoutingDetail","AddBillingInstuctionWindowRouting","GetReservationTypes","AddEditReservationType","GetPackageList","AddEditPackageMasterList","GetAlertMaster","AddEditAlertMaster","GetAllRoomMasterData","AddEditAllRoomMasterData","GetRoomFeatureRoomData","AddRoomMasterFeatureDetail","AddEditRoomClassMaster","GetRoomClassMaster","AddEditTraceMaster","GetTraceMaster","GetRoutingMaster","AddEditRoutingMaster","AddEditRateCodeMiscellaneousMaster","GetPackageRateDetail","AddEditPackageRateDetail","GetPackageYear","ValidationRoomAssignment","Operation","TotalTransAmount","GetOTALog","LogTypeSerNo","VoucherNo","OTAID","RateTypeSerNo","OTALogEventSerNo","GetOTALogDetails","RequestSerNo","GetOTALogEventMaster","GetOTAAgentList","ReservationAdd","columnHeight","rateClass","setRateClass","roomRateClass","setRoomRateClass","propertyParameterData","setPropertyParameterData","roomData","setRoomData","showPackageListModal","setShowPackageListModal","oldReservation","setOldReservation","primaryReservation","setPrimaryReservation","newReservation","setNewReservation","setValidPage","defaultRoomTypeObj","newReservationValidation","setNewReservationValidation","packageCollectionIncl","setPackageCollectionIncl","packageCollection","setPackageCollection","showGuestSelectAndContinueModal","setShowGuestSelectAndContinueModal","showAddAgentModal","setShowAddAgentModal","showCompanyModal","setShowCompanyModal","showAddCompanyModal","setShowAddCompanyModal","showPreviewModal","setShowPreviewModal","showRoomUpgradeReasonModal","setShowRoomUpgradeReasonModal","showRateSelectionPoliciesModal","setShowRateSelectionPoliciesModal","showRoomListModal","setShowRoomListModal","showRoomAvailabilityModal","setShowRoomAvailabilityModal","showDailyRateModal","setShowDailyRateModal","guestname","arrdate","depdate","roomno","roomrate","charge","filterDataRoomWithoutPreference","isRoomNoDisabled","setIsRoomNoDisabled","isAverageRate","setIsAverageRate","extraPkg","exPkg","NewAdult","updateNoofDailyRate","NoOfDailyRate","IsApplyArrDateToPrimaryRes","IsApplyDeptDateToPrimaryRes","tmpPropertySerNo","paraBusinessDate","setSharerArrivalDateOnload","calculatePackages","calculateGrandTotal","roomType","IsValidPage","Property","IsValidRoom","MinAdult","MaxChild","Market","Source","IsArrivalTimeMandatory","reCalculateRate","NewRoomRate","tempOrgData","vMinDate","vMaxDate","vPackage","vRate","vTax","calculateRateAndPackage","rateCodeDetails","pRateCodeDetails","uniqueDailyRate","tmpNoOfDailyRate","IsValidProperty","IsArrivalOnSameDay","IsDepartureOnSameDay","IsDefault","diffRate","outputArray","roomRateCss","rateCls","firstRate","tempExtra","newExtra","tempPackageDetails","tempTaxDetails","tx","validateRoomSelection","IsAssignValid","NoOfRoom","room","validateArrivalDateChange","IsChangeable","IsValidToChangeArrDate","IsApplyDateToPrimary","vNights","IsValidNights","DeptDt","UnAvailableRoom","Free","oldArrival","IsHasSharerRes","IsApplyDateToSharer","SharerGuestName","SharerArrivalDate","SharerDepartureDate","handleOnArrivalDateChanged","validateDepartureDateChange","IsValidToChangeDate","oldDept","deptDate","handleOnDepartureDateChanged","oldDeptDate","validateNightsChange","NewDeptdt","oldNights","handleOnNightsChanged","validateRoomChange","validateAdultChange","IsValidAdult","validateChildChange","IsValidChild","handleRoomTypeChanged","IsValidRoomType","RoomType","IsUpDownGrade","oldRoomType","newRoomType","upsellConfirm","handleOnInclusiveTick","handleOnArrivalTimeChanged","paraArrivalTime","paraArrivalTimeRange","d3","setTime","conf","handleOnDepartureTimeChanged","paraDepartureTime","paraDepartureTimeRange","removeCompany","removeAgent","oldRooms","oldAdult","oldChild","orgRate","oldRoomRate","handleRoomSelection","BookingRefNo","adharcard","HasRateMapping","isInclusive","AddReservationParty","partyList","PartyName","addReservationPartyObj","setAddReservationPartyObj","reservationPartyValidation","setReservationPartyValidation","isClosePopup","setIsClosePopup","isValidPartyName","isPageIsValid","objParty","LinkReservationModalPopup","partyListObj","setPartyListObj","partyNameValidation","setPartyNameValidations","linkReservationParty","setlinkReservationParty","filterLinkReservationParty","setfilterLinkReservationParty","reservationPartyList","setReservationPartyList","setSelectedPartySerNo","isChanged","setIsChanged","IsUpdateLinkPary","setIsUpdateLinkPary","isShowAddReservationParty","setIsShowAddReservationParty","loadLinkReservationParty","loadPartyReservationList","handlePartyNameClick","updateReservationParty","TotalReservation","tempObjParty","RoomMoveModalPopup","IsIncludeDueIn","IsShowAllRoomType","showRoomMoveFilterModal","setShowRoomMoveFilterModal","roomMoveFilterObj","setRoomMoveFilterObj","RoomMoveReasonSerNo","UpDownGradeReasonSerNo","roomMoveValidation","setRoomMoveValidation","roomMoveListData","setRoomMoveListData","filterRoomMoveListData","setFilterRoomMoveListData","isIncludeDueIn","setIsIncludeDueIn","roomMoveGridObj","setRoomMoveGridObj","rmMoveReasonData","setRmMoveReasonData","selectedRmMoveReason","setSelectedRmMoveReason","upgradeReasonData","setUpgradeReasonData","selectedUpgradeReason","setSelectedUpgradeReason","roomNoAndType","setRoomNoAndType","isShowAllRoomType","setIsShowAllRoomType","setFlag","RoomMoveNote","UpDownGradeNote","roomMoveObj","setRoomMoveObj","fillReservationInfoData","fillRmMoveReasonData","fillUpgradeReasonData","fillRoomFeaturesMatchingByRoomNo","fillRoomFeaturesMatchingBySerNo","fillRmTypeSequence","tempHKStatusData","fillRoomMoveFilterData","handleRmMatchingPreference","handleRoomMove","PayMasterModalPopup","newPayMaster","setNewPayMaster","newPayMasterValidation","setNewPayMasterValidation","setIsValidNights","arrDate","RoomName","Profile","tempDeptDate","ReservationListPage","defaultReservationListFilterObj","showAgentSearchFilterModal","setShowAgentSearchFilterModal","showRoomAssignmentPopup","setShowRoomAssignmentPopup","showRoomGuestDetailPopup","setShowRoomGuestDetailPopup","showRoomMovePopup","setShowRoomMovePopup","cancelPopupMode","setCancelPopupMode","setRmAssignmentData","resSerNoString","setResSerNoString","showLinkReservationPopup","setShowLinkReservationPopup","sharerResData","setSharerResData","primarySharerResData","setPrimarySharerResData","showPayMasterPopup","setShowPayMasterPopup","setFilMembershipLvlData","setFilRateCodeData","setFilResStatusData","setFilResTypeData","setFilRoomTypeData","setFilVIPStatusData","tempdata","unshift","selectedShowBlockRoom","bdate","setSelectedShowBlockRoom","setSelectedShowComplementary","setSelectedShowHouseUse","objKeys","setSelectedFirstName","setSelectedLastName","setSelectedBookingNo","setSelectedDtType","MoreFilterOption","setSelectedMembershipLvl","handleDefaultFilter","handleSplitReservation","inputObj","handleMultipleSplitReservations","selectedData","CosetfilterDatampanyProfileSerNo","selectedFirstName","IsPMReservation","handleRmAssignmentData","showReservationPopup","setShowReservationPopup","selectedRmType","setSelectedRmType","selectedRtCd","setSelectedRtCd","selectedResType","setSelectedResType","selectedVIPState","setSelectedVIPState","selectedMembershipLvl","setSelectedIncong","setSelectedEarlyDeparture","selectedShowComplementary","selectedShowHouseUse","selectedDtType","setSelectedBookingReferenceNo","setSelectedBlockNo","setSelectedPartyNo","setSelectedChild","setselectedNightsFrom","setselectedNightsTo","setSelectedMembershipNo","filMembershipLvlData","filRateCodeData","filResStatusData","filResTypeData","filRoomTypeData","filVIPStatusData","checkStatus","IsAdvanceCheckin","nightCount","handleMultiActionMenu","dtStr","ReservationSubStatus","rightbluearrow","AgentModalPopup","ReservationPage","tabCollection","setTabCollection","setTabId","tabid","RateGroupMaster","defaultRateType","filterRateGroupData","setFilterRateGroupData","rateGroupObj","setRateGroupObj","rateTypeData","setRateTypeData","rateGroupValidation","setRateGroupValidation","selectedRateGroupSerNo","setSelectedRateGroupSerNo","getRateGroupData","getSelectedRateGroupData","rateTypeSerNo","handleOnRateGroupClick","RoomFeaturesModal","fillBedTypeComboData","setFillBedTypeComboData","fillSmokingTypeComboData","setFillSmokingTypeComboData","selectedBedTypeValue","setSelectedBedTypeValue","selectedSmokingTypeValue","setSelectedSmokingTypeValue","setRoomFeatureData","GroupNameSectionShow","setGroupNameSectionShow","groupCollection","setGroupCollection","groupId","setGroupId","roomFeatureRoomData","setRoomFeatureRoomData","unique","handleCheckboxClick","filterRoom","SaveRoomFeature","objData1","objData2","handleGroupNameClick","RoomMaster","defaultRoomObj","validationObject","ddlRoomType","setDdlRoomType","buildingList","setBuildingList","roomTypeObject","setRoomTypeObject","roomObject","setRoomObject","roomTypeValidation","setRoomTypeValidation","filterRoomTypeMaster","setFilterRoomTypeMaster","selectedRoomSerNo","setSelectedRoomSerNo","listRoomMaster","setListRoomMaster","listHousekeepingSection","setListHousekeepingSection","featuresCount","setFeaturesCount","listSequence","setListSequence","BuildingSerNo","fillRoomMasterBySerNo","selectRoomSerNo","handleRoomClick","SquareUnits","Measurement","PhoneNumber","Turndown","MinOccupancy","MaxOccupancy","ConnectingRoom1","ConnectingRoom2","ConnectingRoom3","AdjoiningRoom1","AdjoiningRoom2","AdjoiningRoom3","DayHousekeepingSectionSerNo","EveningHousekeepingSectionSerNo","RoomTypeMaster","filterRoomTypeData","setFilterRoomTypeData","setRoomTypeObj","selectedRoomTypeSerNo","setSelectedRoomTypeSerNo","fillRoomType","fillSelectedRoomType","filteredType","handleOnRoomTypeClick","Maintenance","Housekeeping","RoomInfoURL","DefaultOccupancy","UpgradeReasonMaster","upDowngradeReasonObj","setUpDowngradeReasonObj","upDowngradeReasonData","setUpDowngradeReasonData","filterUpDowngradeReasonData","setFilterUpDowngradeReasonData","upDowngradeReasonValidation","setUpDowngradeReasonValidation","selectedUpDowngradeReasonSerNo","setSelectedUpDowngradeReasonSerNo","fillUpDownReason","fillSelectedUpDownGradeReason","UpDownReasonSerNo","handleOnUpDownResonClick","BillingInstructionRouting","setBillingInstructionSerNo","addEditBillingInstructionObj","setAddEditBillingInstructionObj","billingInstructionValidation","SetBillingInstructionValidation","setOrgGroupList","setOrgDetailList","groupList","setGroupList","groupFilterList","setGroupFilterList","groupWindowList","setGroupWindowList","detailList","setDetailList","detailFilterList","setDetailFilterList","setSelectedWindow","selectedGroupName","setSelectedGroupName","IsSameGroup","setIsSameGroup","groupWindowSelect","setGroupWindowSelect","detailWindowSelect","setDetailWindowSelect","GetBillingInstructionWindowList","GetBillingInstructionWindowGroup","GetBillingInstructionWindowDetail","handleGroupWindowChange","sourceWindowSerNo","targetWindowSerNo","isExists","copyDetailList","handleDetailWindowChange","copyGroupList","handleGroupMultipleWindowChange","IsExist","IsExists","handleDetailMultipleWindowChange","IsGroupExists","handleGroupData","handleDetailData","HandleOnSaveClick","IsDelete","BillingInstructionGroupList","BillingInstructionDetailList","handleGroupCheckboxClick","handleDetailCheckboxClick","BillingInstructionMaster","Curuser","clearObj","isIncognitoChanged","billingInstructionMasterObj","setBillingInstructionMasterObj","billingInstructionMasterData","setBillingInstructionMasterData","filterBillingInstructionMaster","setFilterBillingInstructionMaster","selectedBillingInstSerNo","setSelectedBillingInstSerNo","fillBillingInstructionMaster","handleOnBillingInstructionMasterClick","CleaarValidation","ExistObj","BuildingMaster","buildingObj","setBuildingObj","buildingData","setBuildingData","filterBuildingData","setFilterBuildingData","buildingValidation","setBuildingValidation","selectedBuildingSerNo","setSelectedBuildingSerNo","fillBuilding","fillSelectedBuilding","handleOnBuildingClick","FloorMaster","floorObj","setFloorObj","setFloorData","filterFloorData","setFilterFloorData","floorValidation","setFloorValidation","selectedFloorSerNo","setSelectedFloorSerNo","floorComboData","setFloorComboData","fillFloor","fillFloorCombo","fillSelectedFloor","handleOnFloorClick","MarketMaster","defaultMarketGroupCode","cmbMarketGroupMaster","setCmbMarketGroupMaster","selectedMaeketMasterSerNo","setSelectedMaeketMasterSerNo","handleOnMarketMasterClick","ReservationView","Pageheight","Pagewidth","BlueColumnWidth","BlueColumnHeight","setIsIncognitoChanged","isReloadArrivalDept","setIsReloadArrivalDept","showPaymentInstructionPopup","setPaymentInstructionPopup","showReceivedPopup","setShowReceivedPopup","showAddDepositForm","setAddDepositForm","setDepositDropdown","showMessagePopup","setShowMessagePopup","showAddRoomModal","setShowAddRoomModal","showWindowRoutingAddModal","setShowWindowRoutingAddModal","showTraceGridTooltip","setShowTraceGridTooltip","ContactType","resStatusObj","setResStatusObj","roomMoveDataObj","setRoomMoveDataObj","resString","setResString","DummyOption","PurgeDD","filterDataArrDepDetail","amt","mop","rece","filterDataPayment","filterDataDeposit","area","pergeday","filterDataAlert","filterDataTrace","maxWidth","handleActionMenu","SourceMaster","CancellationReasonMaster","filterCancelReasonData","setFilterCancelReasonData","cancelReasonObj","setCancelReasonObj","selectedCancelReasonSerNo","setSelectedCancelReasonSerNo","cancelReasonValidation","setCancelReasonValidation","getCancelReasonData","CancelReasonSerNo","handleOnCancelReasonClick","NewBlockReservation","setRoomAvailabilityList","reservationBlockRateCodeDetail","seReservationBlockRateCodeDetail","inclusionDetail","setInclusionDetail","roomAvailability","setRoomAvailability","roomTypeWiseRate","setRoomTypeWiseRate","roomAdultWiseRate","setRoomAdultWiseRate","roomExtraBedRate","setRoomExtraBedRate","setReservationBlockDetail","filterDataRateDesc","setfilterDataRateDesc","filterDataRateSummary","setfilterDataRateSummary","showRateWithTax","setShowRateWithTax","AvgRate","TotalRate","rateGrandTotal","setRateGrandTotal","cmbUserList","setCmbUserList","setSelectedUser","cmbRoomTypeList","setCmbRoomTypeList","cmbAdult","setCmbAdult","selectedAdultSerNo","setSelectedAdultSerNo","cmbMarketData","setCmbMarketData","setSelectedMarket","cmbSourceData","setCmbSourceData","setSelectedSource","BlockCode","CutOffDate","CutOffDays","IsElastic","newBlockReservation","setNewBlockReservation","blockValidationObj","setBlockValidationObj","setLowerTableWidth","lowerTableRef","roomTypeList","userList","ReservationBlockRateDetail","GetInclusionDetail","ReservationBlockPackageRateDetails","setReservationBlockAvailability","roomTypeWiseRateSummaryDetail","tempRoomAvailability","RoomTypeWiseDetail","Adult1RoomNights","Adult2RoomNights","Adult3RoomNights","Adult4RoomNights","Adult5RoomNights","Adult6RoomNights","PlanValue","TotalValue","roomNight","roomNightAdult1","roomNightAdult2","roomNightAdult3","roomNightAdult4","roomNightAdult5","roomNightAdult6","Adult1","Adult2","Adult3","Adult4","Adult5","Adult6","tempRoomTypeWiseRate","rateSummaryGridData","totalRoomRevenue","totalTaxRevenue","RoomTypeWiseRateDetail","AdultSerNo","taxes","TotalRoomNight","TotalRevenue","totalExtraBedRevenue","totalExtraBed","ExtraBedRoom","extraBedObj","ExtraBedRate","blockAndPickupRateSummary","Blocked","PickedUp","duration","diff","asDays","GetReservationAvaibility","blockRateDetail","adultTypeList","tempSelectedRoomType","tempSelectedAdult","str1","cntr","ReservationBlockRoomRateDetails","GetEditBlockReservationAvaibility","handleOnBlurExtraBedRate","selectedAdultList","selectedRoomList","DepDate","tempRoomType","tempAdultList","tempobj","tempobj1","objele","availRoom","TotalRoomAvailable","Available","RoomAvailable","RoomTypeWiseAdultDetail","NoOfRooms","ReservationBlockExtraBedRateDetails","NoOfExtraBed","tempobj2","tempobj3","GetAdultWiseRateDetail","setRoomNights","isExtraBed","persist","tempAvail","totalAvailable","RoomTypes","extraBedRate","ExtraBedAmount","inclusionList","ratedata","roomtype","roomRate","packagePrice","roomTypeSerno","roomObj","tempPackageObj","ReservationBlockTaxDetails","tempTaxObj","taxObj","packageObj","taxitem","totalTaxAmount","packageitem","totalPackageAmount","btnID","ReservationBlockExtraBedTaxDetails","reservationBlockObj","err","oldNight","lowerGridSolution","setLowerGridSolution","lowerTableWidth","colspanValue","setColspanValue","itemlist","tempRateSummary","IndiBlockAttachment","setShowAttachmentPopup","blockAttachmentData","setBlockAttachmentData","blockAttachmentObj","setBlockAttachmentObj","blockAttachmentValidation","setBlockAttachmentValidation","selectedRow","setSelectedRow","fillBlockAttachment","loadDdlOnClick","firstObj","DocumentName","AttachmentTooltip","BlockAtGlance","blockObj","setBlockObj","showFilterModal","setShowFilterModal","reservationBlockData","setReservationBlockData","showNewBlockReservationPopup","setShowNewBlockReservationPopup","reservationBlockRoomSummaryData","setReservationBlockRoomSummaryData","cmbRoomType","setCmbRoomType","cmbAdultType","setCmbAdultType","filterDataResBlockSummary","setfilterDataResBlockSummary","setSelectedPrimaryGuest","setUserRightObj","blockRateSummaryData","setBlockRateSummaryData","blockReservationSummaryFilterObj","setBlockReservationSummaryFilterObj","setBlockReservationSummaryData","reservationValidationObj","setReservationValidationObj","fillreservationBlockData","getReservationBlockBalanceData","getReservationBlockSummaryData","getBlockReservationSummaryData","filterDataReservationSummary","setfilterDataReservationSummary","filterDataRevenueSummary","setfilterDataRevenueSummary","filterDataRoomSummary","setfilterDataRoomSummary","roomTypeHeaderRate","setRoomTypeHeaderRate","adultDataRate","setAdultDataRate","tempRoomSummary","tempRevenueSummary","RoomSummary","occ","blk","BlockRoom","pku","PickupRoom","can","CancelRoom","noso","NoShowRoom","Bal","totalRevenue","totalPlanRevenue","totalNights","RevenueSummary","rate","AvgTax","PlanRevenue","tempTotalObj","tempPickupSummary","tempTotalRevenue","RevenuePickupSummary","Pickedup","headerRoomtypeObj","headerAdultObj","RoomRateSummary","tempReservationSummary","arrival","person","bed","ExtraBed","setBlockSummary","tempFilterDataResBlockSummary","tempBlockList","avl","AvailableRoom","handleCreateReservationClick","ReservationBlockRoomSummary","tempCmbRoomType","tempCmbAdultType","roomtypeserno","resdate","setAccompanyGuestData","NoOfAdult","NoOfChild","tempadultCollection","tempchildCollection","depDate","handleAddToRoomListClick","AddBlockReservation","rateObj","blockReservationObj","resSerNo","IsAutoRouteToGroup","ConfirmationNo","AutoAssignModalPopup","filterGridData","setFilterGridData","HkStatusSerNo","IsIncludeDueOutRoom","DueOutTime","autoAssignRoomObj","setAutoAssignRoomObj","totalRoomtoAutoAssign","setTotalRoomtoAutoAssign","autoAssignedRooms","setAutoAssignedRooms","isIncludeDepartures","setIsIncludeDepartures","isHideAssignedRooms","setIsHideAssignedRooms","HKStatusType","fillAutoAssignDataGrid","HKStatus","HKStatusName","BedType","BDT","Smoking","SMK","Floor","FloorName","ResStatus","StrRoomFeature","tempresSerNo","handleAutoAssignRoomToReservation","filterdData","ReservationArrivalList","assignedMenuData","assignedMenuDataMultiAction","checkoutTimeDD","resStatusData","code","selReservationData","moreFilterOption","showArrivalListFilterModal","setShowArrivalListFilterModal","showDueOutToolTip","setShowDueOutToolTip","showDueInToolTip","setShowDueInToolTip","showArrToolTip","setShowArrToolTip","showDotComp","setShowDotComp","dueOutResObj","setDueOutResObj","actionMenu","setActionMenu","multiActionMenu","setMultiActionMenu","reservationArrivalList","setReservationArrivalList","SharerResList","setSharerResList","searchStr","setIsCheckBoxDisable","selectUnAssignCheckBox","setSelectUnAssignCheckBox","selectAssignCheckBox","setSelectAssignCheckBox","selectCheckedInCheckBox","setSelectCheckedInCheckBox","selectArrDotCheckBox","setSelectArrDotCheckBox","selectedCheckBoxData","setSelectedCheckBoxData","reservationArrCheckedInData","setReservationArrCheckedInData","reservationArrDotData","setReservationArrDotData","reservationArrAssignedData","setReservationArrAssignedData","reservationArrUnAssignedData","setReservationArrUnAssignedData","selectedAdvCheckInDirty","setSelectedAdvCheckInDirty","selectedAdvCheckInClean","setSelectedAdvCheckInClean","selectedAdvCheckInInspec","setSelectedAdvCheckInInspec","selectedAdvCheckInUnassign","setSelectedAdvCheckUnassign","selectedAdvCheckInOS","setSelectedAdvCheckInOS","selectedAdvCheckInDueOut","setSelectedAdvCheckInDueOut","isAdvCheckin","setIsAdvCheckin","multiAdvCheckin","setMultiAdvCheckin","showCancelNoShowPopup","setShowCancelNoShowPopup","showAutoAssignRoomPopup","setShowAutoAssignRoomPopup","autoAssignRes","setAutoAssignRes","autoAssignData","setAutoAssignData","arrivalTime","setArrivalTime","graceTime","setGraceTime","selectedRes","setSelectedRes","selectedMemLvl","setSelectedMemLvl","selectRmTypeSerNo","setSelectRmTypeSerNo","reservationArrivalListFilterObj","setReservationArrivalListFilterObj","selectedVipStatus","setSelectedVipStatus","fillRmTypeData","setFillRmTypeData","fillMemLvlData","setFillMemLvlData","fillVipStatusData","setFillVipStatusData","setArrivalListObj","dueOutList","setDueOutList","fillRateCodeData","setFillRateCodeData","selectedRoomNo","setSelectedRoomNo","selectedGuestTile","setSelectedGuestTile","arrivalStatistics","setArrivalStatistics","setRoomDetails","selectRmType","setSelectRmType","unAssignResCount","setUnAssignResCount","assignResCount","setAssignResCount","arrDotResCount","setArrDotResCount","arrResCount","setArrResCount","tempHKStr","UpgradeTooltip","BellTooltip","ArrivalTooltip","defaultRoomTypeData","fillRoomAtGlance","defaultVipData","VIPStatusSerNo","defaultArrObj","allKeys","tempHKArr","fillGrid","tempResSt","isallSelected","isallDeselected","arrObj","fillRoomInfo","dueOutReservationInfoData","dueOutResSerNo","Label","tile","IsDueOut","IsEarlyArrival","ReservationList","PrimaryResList","newResList","DueOutList","fillData","fillDefaultTileSelection","dueOutdata","IsDot","reservationList","sharerResList","dueOutRoomsList","unAssignedData","assignedData","checkedInData","arrDotData","arrRoomList","isSharingResCheckedin","IsUnassignedValid","IsAssignedValid","IsArrDotValid","IsCheckedInValid","checkedData","tempCheckedIn","tempUnAssign","tempAssign","handleGuestTileOnClick","handleCheckBoxClick","checkboxCount","handleAdvanceCheckin","handleOnChangeMenu","handleReservationFields","handleCancelCheckin","handleCheckInResBtnClick","handleAutoAssignRoom","handleUnAssignRoom","handleMultiCancelCheckin","handleMultiResFields","CancellableResStr","handleMultiCaseCancel","handleTimeChange","selectedReservationSerNo","IsUnassignValid","From","To","isValidSwap","RoomTypeSeq","RoomTypeToChargeSeq","handleOnBlurRoomAssignment","isValidCheckIn","StrGuestName","WithSharer","strHkStatusSerNo","strFloorSerNo","SelectReservation","strReservationStatus","IsPreReg","IsLateArrival","IsNoInfo","IsCancelCheckin","IsUnassignRoom","newArr","handleMultiCheckInResBtnClick","isDisable","handleCheckinBtnDisable","ETDFrom","ETDTo","IsOpenFolio","IsLateCheckout","IsEarlyCheckout","IsReinstated","IsNoResponse","IsWithLuggage","IsNoLuggage","IsLocked","IsLoaded","userId","password","ReservationBlockListPage","showBlockTipHoldPopup","setShowBlockTipHoldPopup","showBlockTipCancelledPopup","setShowBlockTipCancelledPopup","showBlockTipLoss","setShowBlockTipLoss","blockStatus","setBlockStatus","setFilUserTypeData","sortCol","setSortCol","sortType","setSortType","selectedBlock","setSelectedBlock","tooltipOpen","setTooltipOpen","tentativeOpen","setTentativeOpen","noShowOpen","setNoShowOpen","Ratestr","tempReservationBlockListFilter","selectedBlockCode","selectedBlockName","selectedGuestName","selectedUserId","tabcollection","setSelectedGuestName","setSelectedBlockName","setSelectedBlockCode","selectedBlockConfNo","setSelectedBlockConfNo","setSelectedUserId","filUserTypeData","BlockStatus","SpecialGroupMaster","defaultSpecialGroupObj","defaultSpecialObj","specialGroupObj","setSpecialGroupObj","getSpecialGroupData","setGetSpecialGroupData","filterSpecialGroupMaster","setFilterSpecialGroupMaster","searchGroupString","setGroupSearchString","selectedSpecialGroupSerNo","setSelectedSpecialGroupSerNo","invalidInput","setInvalidInput","specialObj","setSpecialObj","getSpecialData","setGetSpecialData","filterSpecialMaster","setFilterSpecialMaster","displaySpecialMaster","setDisplaySpecialMaster","selectedSpecialSerNo","setSelectedSpecialSerNo","invalidSpecialsInput","setInvalidSpecialsInput","isDisabled1","setIsDisabled1","showSpecialsGroupModal","setShowSpecialsGroupModal","isAddBtnClicked","setIsAddBtnClicked","fillSpecialGroupMaster","handleSpecialGroupClick","handleOnSearchSpecial","handleSpecialClick","handleSpecialMasterOnAddClick","filterdata1","editedSpecialGroupObj","isValidSpecialGroup","editedSpecialObj","isValidSpecial","DayTypeMaster","DayTypeSerNo","PremiumRatePer","DisplayColor","DayTypeObj","setDayTypeObj","filterDayTypeMaster","setFilterDayTypeMaster","DayTypeValidation","setDayTypeValidation","DayTypeData","setDayTypeData","fillDayTypemaster","handleDayTypeClick","existing","TraceMaster","filterTraceMaster","setFilterTraceMaster","selectedTraceSerNo","setSelectedTraceSerNo","departmentList","setDepartmentList","fillTraceMaster","handleTraceClick","RoomClassMaster","roomClassObj","setRoomClassObj","roomClassData","setRoomClassData","filterRoomClass","setFilterRoomClass","selectedRoomClassSerNo","setSelectedRoomClassSerNo","roomClassValidation","setRoomClassValidation","fillRoomClassMaster","RoomClassSerNo","handleRoomClassClick","RoutingMaster","routingData","setRoutingData","routingObj","setRoutingObj","routingValidation","setRoutingValidation","routingFilter","setRoutingFilter","routingSelected","setRoutingSelected","fillRoutingMaster","handleOnRoutingClick","handleOnRoutingSearch","routingSearch","RoutingCode","validRouting","RateCodeMiscellaneousMaster","MiscSerNo","IsRelatedToTransportation","miscellaneousObj","setMiscellaneousObj","miscellaneousData","setMiscellaneousData","filterMiscellanous","setFilterMiscellanous","selectedMiscellanousSerNo","setSelectedMiscellanousSerNo","miscellaneousvalidataion","setMiscellaneousValidation","fillMiscellaneousMaster","handleMiscellanwousClick","OTALogRequestResponse","RateCode","otaLogDetails","setOtaLogDetails","Request","Response","ResponseStatus","RequestType","ReferenceNo","BookingTime","CommissionAmount","PrePaid","OTALogDetailDayWiseTariff","OTALog","Event","Inventory","filterOTAtable3","optBtnData1","setShowRequestResponseModal","showRequestResponseModal","LogType","OTAName","showReservation","setShowReservation","showInventory","setShowInventory","showRate","setShowRate","otaLogObj","setOtaLogObj","otaLogData","setOtaLogData","selectedLogType","setSelectedLogType","selectedDateType","setSelectedDateType","loadEvent","setLoadEvent","selectedEventType","setSelectedEventType","loadAgentName","setLoadAgentName","selectedAgentType","setSelectedAgentType","fillOtaDataGrid","fillAgentList","fillEventMaster","EventSerNo","ID","InvoiceDetailsModalPopup","filterDataSACtable","setfilterSACtable","filterDataErrordetailstable","setfilterErrordetailstable","setShowInvoiceDetailsModal","showQRCodePreviewModal","setShowQRCodePreviewModal","invoiceDetailsObj","setInvoiceDetailsObj","qrlink","setQrLink","SerialNo","RequesterSerNo","validationReport","propertyErrors","element1","errors","element2","ErrorCode","dataReport","eInv","error_code","error_message","govt_response","ErrorDetails","info","InfCd","Desc","TaxableAmount","CGSTAmount","SGSTAmount","TotalGSTAmount","SACCode","HsnSacNo","HsnSacName","QTY","GSTRate","CessRate","IGSTAmount","CessAmount","SacCodeDetailApi","InvoiceDetailApi","InvoiceSelectionDate","InvoiceDate","ClaimantName","IRNNo","CancellationReason","RegistrationType","RefSerNo","RefInvoiceSelectionDate","LastProcessDate","NormalQRCode","GSTeinvoice","IgnoreDate","invoiceObj","setInvoiceObj","filterDataTemp","setfilterDataTemp","showInvoiceDetailsModal","gstInvoiceRBvalue","setGstInvoiceRBvalue","selectedInvoice","setSelectedInvoice","SelectionDate","DocumentType","SupplyType","RegType","ClaimantStatutoryName","ClaimName","InvoiceCRNNo","InvoiceCRNDate","RegisterDate","RegistartionDateTime","LastProcessDateTime","handleSearch","handleClickReset","webpackContext","req","webpackContextResolve","__webpack_require__","Error","resolve","exports","BlockTipTentative","fillReservationBlockData","BlockTipCancelled","reservationCancelled","setReservationCancelled","BlockTipConfirmed","BlockTipHold","BlockTipLoss","reservationLoss","setResrevationLoss","BlockTipNoShow","Master","masterData","setMasterData","filterMasterData","setFilterMasterData","masterNameObj","setMasterNameObj","selectedMasterSerNo","setSelectedMasterSerNo","handleOnMasterNameClick","MasterSerNo","BrandMaster","brandObj","setBrandObj","brandData","setBrandData","filterBrandMaster","setFilterBrandMaster","brandValidation","setBrandValidation","selectedBrandSerNo","setSelectedBrandSerNo","fillBrandMaster","handleBrandClick","BrandSerNo","ProfileAddressTypeMaster","ProfileAddressTypeSerNo","addressTypeObj","setAddressTypeObj","addressTypeData","setAddressTypeData","setIsEdit","filterProfileAddressTypeMaster","setFilterProfileAddressTypeMaster","selectedProfileAddressTypeSerNo","setSelectedProfileAddressTypeSerNo","addressTypeValidation","setAddressTypeValidation","fillAddressTypeMaster","handleProfileAddressNameClick","ProfileTitleMaster","profileTitleObj","setProfileTitleObj","profileTitleData","setProfileTitleData","filterProfileTitleData","setFilterProofileTitleData","profileTitleValidation","setProfileTitleValidation","selectedProfileTitleSerNo","setSelectedProfileTitleSerNo","fillProfileTitle","fillSelectedProfileTitle","handleOnProfileTitleClick","ProfileCommunicationTypeMaster","curuser","setIsLoad","profileCommunicationTypeData","setprofileCommunicationTypeData","profileCommunicationTypeObj","setProfileCommunicationTypeObj","profileCommunicationTypeValidation","setProfileCommunicationTypeValidation","filterProfileCommunicationTypeMaster","setFilterProfileCommunicationTypeMaster","selectedProfileComSerNo","setSelectedProfileComSerNo","fillProfileCommunicationTypeMaster","ClearProfileCommunicationTypeValidation","handleOnProfileCommTypeMasterClick","RegionMaster","getRegionData","setGetRegionData","regionObj","setRegionObj","filterRegionMaster","setFilterRegionMaster","selectedRegionSerNo","setSelectedRegionSerNo","fillRegionMaster","RegionSerNo","handleRegionClick","editedRegionObj","DepositRuleMaster","DepositRuleSubSerNo","DepositTermDue","Days","showDepositTermTypeModal","setShowDepositTermTypeModal","depositRuleObj","setDepositRuleObj","depositRuleDetailObj","setDepositRuleDetailObj","depositRuleData","setDepositRuleData","depositRuleDetailData","setDepositRuleDetailData","filterDepositRuleMaster","setFilterDepositRuleMaster","filterDepositRuleDetail","setFilterDepositRuleDetail","selectedDepositSubSerNo","setSelectedDepositSubSerNo","depositRuleValidation","setDepositRuleValidation","showTimePicker","setShowTimePicker","popupSearchString","setPopupSerachString","fillDepositRuleMaster","fillDepositRuleDetail","currDetailObj","handleOnPopupSearchChange","handleDepositRuleNameClick","handleDepositDetailNameClick","GuestProfileRelationship","objRelationShipList","ProfileRelationSerNo","RelativeProfileSerNo","OldRelativeProfileSerNo","OldRelationShipTypeSerNo","RelativeProfileName","Validation","showRelationshipModal","setShowRelationshipModal","defaultRealtionShipList","setDefaultRealtionShipList","guestRelationshipList","setGuestRelationshipList","cmbRelationshipType","setCmbRelationshipType","relationshipValidation","setRelationshipValidation","loadRelationshipList","tmpRelationship","handleClickRelationShipList","GuestProfileInternalComment","NoteSerNo","NoteTypeSerNo","Comment","IsGlobal","showInternalCommentModal","setShowInternalCommentModal","guestProfileInternalCommentdata","setGuestProfileInternalCommentdata","noteTypeMasterdata","setNoteTypeMasterdata","noteTypeObj","setNoteTypeObj","guestProfileValidation","setGuestProfileValidation","fillNoteType","fillInternalComment","handleOnNoteTypeClick","GuestProfileCorresPrivacy","DOB","DOA","BloodGroup","IsAllowPromotionalMail","IsContactViaPhone","IsContactViaTextMsg","IsAutoEnroll","IsMarried","showCorrespondenceModal","setShowCorrespondenceModal","correspondenceObj","setCorrespondenceObj","CorrespondenceTooltip","SpecialFeatureModal","ParentSerNo","tempSpecialData","RoomFeatureModal","roomFeatureProfileData","setRoomFeatureProfileData","AddEditGuestProfile","defaultProfileObj","MiddleName","Result","AddressList","CommunicationList","Landline","defaultCommObj","showRoomFeatureModal","setShowRoomFeatureModal","showPastFutureStaysModal","setShowPastFutureStaysModal","showAccountReceivableModal","setShowAccountReceivableModal","showMembershipModal","setShowMembershipModal","DivReceivableAccountEnable","guestProfileObj","setGuestProfileObj","IsShowDetailSection","setIsShowDetailSection","IsShowIndicatorSection","setIsShowIndicatorSection","setSelectedTitle","profileAddressTypeData","setProfileAddressTypeData","setSelectedProfileAddressType","setSelectedCommunicationType","setSelectedCountry","setSelectedState","setSelectedCity","guestAddressObj","setGuestAddressObj","addressList","setAddressList","commList","setCommList","guestCommObj","setGuestCommObj","rmFeatureData","setRmFeatureData","editObj","setEditObj","updateProfileSerNo","setUpdateProfileSerNo","fillSpecialData","fillRmFeaturesData","tempProfile","tmpAddList","tmpAddress","IsChange","tempComm","tmpCommList","tmpComm","commarr","arr1","addressarray","arr2","communicationarray","handleAddressData","handleCommList","tempEditObj","tempAddress","TipGuestProfile","showAddEditGuestModal","setShowAddEditGuestModal","VIPName","GuestProfileMaster","showNewReservationModal","setShowNewReservationModal","showProfileKeywordsModal","setShowProfileKeywordsModal","guestTooltip","setGuestTooltip","defaultFilterObj","guestProfileFilterObj","setGuestProfileFilterObj","selectedBirthDate","setSelectedBirthDate","guestToolTipObj","setGuestToolTipObj","CompanyProfileIdentification","showCompanyProfileIdentificationModal","setShowCompanyProfileIdentificationModal","companyProfileIdentificationData","SetCompanyProfileIdentificationData","companyProfileIdentificationObj","SetCompanyProfileIdentificationObj","companyProfileIdentificationValidation","SetCompanyProfileIdentificationValidation","fillProfileIdentification","IssueCountry","CompanyProfileInternalComment","noteTypedata","setNoteTypedata","companyTypeObj","setCompanyTypeObj","companyCommentData","setCompanyCommentData","companyProfileValidation","setCompanyProfileValidation","selectedComment","setSelectedComment","fillCompanyProfileComment","CompanyProfileSalesInfo","showSalesInfoModal","setShowSalesInfoModal","companySalesInfoObj","setCompanySalesInfoObj","companySalesInfoValidation","setCompanySalesInfoValidation","marketMasterDdl","setMarketMasterDdl","sourceMasterDdl","setSourceMasterDdl","industryMasterDll","setIndustryMasterDll","loadMarketMasterDdl","loadSourceMasterDdl","loadIndustryMasterDll","salesObj","MarketMasterList","SourceMasterList","IndustryMasterList","IndustrySerNo","IndustryName","Territory","Priority","ScopeCity","apiobj","IsRoomPotential","IsCompetition","CompanyProfileNegotiatedRate","CompanyProfileContact","OldContactProfileSerNo","contactList","setContactList","contactObj","setContactObj","contactValidations","setContactValidations","showContactsModal","setShowContactsModal","oldSerNo","setOldSerNo","fillContactList","tempContact","handleClickContactList","objContact","CompanyProfile","showFuturePastStaysModal","setShowFuturePastStaysModal","showNegotiatedRateModal","setShowNegotiatedRateModal","showRoutingModal","setShowRoutingModal","defaultCompanyProfileObj","IATANo","ProfileCommunicationMaster","ProfileAddressMaster","defaultAddressObj","defaultContactList","companyAddressObj","setCompanyAddressObj","cmbContactList","setCmbContactList","cmbContactObj","setCmbContactObj","loadCmbContactList","IsValidData","TipCompanyProfile","companyProfileData","setCompanyProfileData","companyContact","setCompanyContact","showAddEditCompanyPopup","setShowAddEditCompanyPopup","CompanyProfileList","profileContactObj","setProfileContactObj","showCompanyProfileModel","setShowCompanyProfileModel","companyToolTipObj","setCompanyToolTipObj","IsDataLoaded","setIsDataLoaded","companyProfileFilterObj","setCompanyProfileFilterObj","companyProfileList","setCompanyProfileList","companyProfileValidationObj","setCompanyProfileValidationObj","showCompanyPopup","setShowCompanyPopup","fillCompanyProfileList","UserCategoryMaster","categoryList","setCategoryList","searchEdit","userCat","handleClickCategory","VIPStatusMaster","vipList","setVipList","VipStatus","StateMaster","defaultCountryObj","defaultStateObj","filterStateMaster","setFilterStateMaster","selectedStateSerNo","setSelectedStateSerNo","stateObj","setStateObj","stateValidation","setStateValidation","fillGetStateMaster","handleStateClick","IsUT","EmployeeMaster","employeeObj","setEmployeeObj","employeeData","setEmployeeData","filterEmployee","setFilterEmployee","selectedEmployeeSerNo","setSelectedEmployeeSerNo","employeeValidation","setEmployeeValidation","fillEmployeeMaster","EmployeeSerNo","EmployeeName","handleEmployeeClick","DeviceMaster","DeviceSerNo","DeviceToken","deviceObj","setDeviceObj","deviceList","setDeviceList","deviceFilter","setDeviceFilter","loadUserId","setLoadUserId","fillDeviceList","loadComboUserList","handleOnClickDeviceName","ReferenceMaster","referenceData","setReferenceData","referenceObj","setReferenceObj","referenceValidation","setReferenceValidation","referenceSelected","setReferenceSelected","referenceFilter","setReferenceFilter","FillReferenceMasterList","HandleOnReferenceListClick","HandleOnReferenceSearch","validReference","ExemptionMaster","exemptionObj","setExemptionObj","defaultSubObj","NewTransactionSerNo","exemptionData","setExemptionData","filterExemption","setFilterExemption","selectedExemptionSerNo","setSelectedExemptionSerNo","exemptionValidataion","setExemptionValidation","exemptionSubObj","setExemptionSubObj","selectedExemptionSubSerNo","setSelectedExemptionSubSerNo","exemptionSubData","setExemptionSubData","filterExemptionSub","setFilterExemptionSub","exemptionSubValidataion","setExemptionSubValidation","isActivee","setIsActivee","searchString1","setsearchString1","fillExemptionMaster","fillExemptionMasterSub","handleExemptionSubClick","clearValidationSub","showExemptionModal","setShowExemptionModal","handleExemptionClick","Returnvalue","isValidP","UserRightsMaster","filterUserRightsData","setFilterUserRightsData","userRightsMasterObj","setUserRightsMasterObj","filterUserData","setFilterUserData","userDataByRights","setUserDataByRights","filterUserDataByRights","setFilterUserDataByRights","userCategorysearchstring","setUserCategorySearchString","userSearchString","setUserSearchString","rightsSearchString","setRightsSearchString","fillUserByRights","handleUserCategorySearch","handleUserSearch","UserName","handleRightsSearch","TransactionMaster","AddLessData","defaultApplicableObj","applicationValidation","transactionObj","setTransactionObj","transactionValidation","setTransactionValidation","transactionFilter","setTransactionFilter","transactionSelected","setTransactionSelected","listRoutingType","setListRoutingType","selectedChargeType","setSelectedChargeType","transactionTaxData","setTransactionTaxData","modifyTransactionSub","setModifyTransactionSub","taxOnTaxObj","setTaxOnTaxObj","taxOnTaxData","setTaxOnTaxData","applicableTaxObj","setApplicableTaxObj","applicableTaxValidation","setApplicableTaxValidation","applicableTaxSelected","setApplicableTaxSelected","listApplicationTax","setListApplicationTax","showAppTaxesPopup","setShowAppTaxesPopup","listOfAppTax","setListOfAppTax","isValidApplicable","setIsValidApplicable","maskTypeCharge","setMaskTypeCharge","isDisabledTaxOn","setIsDisabledTaxOn","selectedMaskTransaction","setSelectedMaskTransaction","fillTransactionMaster","fillApplicableTax","clearApplicable","tempType","tempp","MaskTransactionSerNo","ChargeType","fillTransactionSubSub","TransSerNo","isDeleted","modifyTaxList","ele1","Seq","TransactionMasterListClick","handleOnTransactionSearch","tempSearch","handleSelectTaxClick","assoSerNo","currSeq","AssoTransactionSubSerNo","AddLess","alertFunction1","IsIGST","IsCGST","IsSGST","IsCess","validTransaction","Temp","ApplicableTaxListClick","validApplication","assoSubSerNo","tempTax","handleOnTaxCheckedClick","UserMaster","AccessFailedCount","userMasterObj","setUserMasterObj","userMasterList","setUserMasterList","userMasterFilter","setUserMasterFilter","userValidation","setUserValidation","setPassword","fillUserMaster","handleClickOnSearch","handleClickOnUserName","RoomFeatureModalPopup","defaultGroupObj","defaultFeatureObj","filteredRoomFeatureGroupData","setFilteredRoomFeatureGroupData","roomFeatureGroupObj","setRoomFeatureGroupObj","groupValidationObj","setGroupValidationObj","roomFeatureObj","setRoomFeatureObj","roomFeatureValidationObj","setRoomFeatureValidationObj","displayRoomFeaturesData","setDisplayRoomFeaturesData","filteredRoomFeaturesData","setFilteredRoomFeaturesData","selectedRoomFeature","setSelectedRoomFeature","noOfBDT","setNoOfBDT","bedType","setBedType","bedTypeValueData","setBedTypeValueData","searchStrGroup","setSearchStrGroup","searchStrFeatures","setSearchStrFeatures","editableFeatures","setEditableFeatures","isEditableFeature","setIsEditableFeature","fillRoomFeatureValueMaster","EditableFeatureList","tempBDTData","handleOnSearchGroup","handleOnSearchFeature","handleRmFeatureGroupClick","handleRmFeatureClick","handleClientRoomFeatureGroup","handleClientRoomFeatures","isFeatureMode","SpecialsModalPopup","setSepcialGroupObj","specialGroupList","setSpecialGroupList","specialGroupFilter","setSpecialGroupFilter","specialGroupValidation","setSpecialGroupValidation","selectedSpecialGroup","setSelectedSpecialGroup","specialList","setSpecialList","specialFilter","setSpecialFilter","editableSpecialList","setEditableSpecialList","isEditable","setIsEditable","specialValidation","setSpecialValidation","selectedSpecial","setSelectedSpecial","specialSearch","setSpecialSearch","fillSpecialGroupList","fillSpecialsList","SpecialList","EditableSpecialList","handleOnClickGroupName","handleOnClickSpecialSearch","handleOnClickName","IsSpecial","IsSpecialValid","isSpecialGroup","ClientMaster","ClientName","clientObj","setClientObj","clientList","setClientList","clientFilter","setClientFilter","clientValidation","setClientValidation","showRoomfeaturesPopup","setShowRoomfeaturesPopup","showSpecialsPopup","setShowSpecialsPopup","fillClient","hanldeOnClickClientName","PayModeMaster","payModeObj","setPayModeObj","payModeList","setPaymodeList","payModefilter","setPayModeFilter","paymentMethodList","setPaymentMethodList","payModeValidation","setPayModeValidation","fillPayModeList","agentData","setAgentData","fillAgent","TotalCount","GuestModalPopup","uploadedimg","setfillBedTypeComboData","setfillSmokingTypeComboData","setselectedBedTypeValue","setselectedSmokingTypeValue","setfinalResponse","setgroupCollection","setgroupId","setisShowSelected","RoomFeaturesConfirmPopupShow","setRoomFeaturesConfirmPopupShow","RoomFeatureProfileData","RemoveRoomFeatureProfileData","setRemoveRoomFeatureProfileData","tempRes","AddCompanyModalPopup","CompanyModalPopup","pkgTotal","InnLineBar","currWidthPercentage","checkedIn","totalColor","currentColor","InnPrimaryButton","InnActionButton","InnPlainButton","createBrowserHistory","PrivateRoute","component","rest","render","to","ModuleMenu","menuObj","NotificationDropdown","SettingPageMenu","TempNavigation","LeftNavigation","submenuwid","setSubWid","pageName","setPageName","setTempPageName","da","modulemenu","marginLeft","deskmgt","AdvanceCheckInClean","AdvanceCheckInInspected","AdvanceCheckInUnassign","AdvanceCheckInDirty","AdvanceCheckInDueOut","AdvanceCheckInOutofService","IsVipStatus","UserProfileMenu","profilephoto","TokenService","getLocalRefreshToken","localStorage","getItem","refreshToken","getLocalAccessToken","jwtToken","updateLocalAccessToken","token","refresh_token","setItem","getUser","setUser","removeUser","removeItem","getRefreshTokenModel","LoginPage","SetUserID","SetPassword","logo","questionicon","loginicon","autoComplete","interneticon","TransferReservationTransactionModalPopup","defaultTransferToRoomObj","SourceReservationSerNo","TargetReservationSerNo","setShowToolTip","validatedResSerNo","setValidatedResSerNo","reservationTransactionsData","setReservationTransactionsData","roomNoValue","setRoomNoValue","verifiedRoomObj","setVerifiedRoomObj","selectedGuestItem","setSelectedGuestItem","selectedReasonForTransferItem","setSelectedReasonForTransferItem","textAreaVal","setTextAreaVal","transferToRoomValidation","setTransferToRoomValidation","isRoomVerified","setIsRoomVerified","reservationTransferToRoomObj","setReservationTransferToRoomObj","onCrossClick","tempAmount","onPopupClose","getCurrentRoomNumber","currentStatus","AllowanceModalPopup","defaultReservationTransactionObj","defaultReservationTransactionTaxListObj","reservationTransactionSerNo","setReservationTransactionSerNo","reservationTransactionTaxListObj","setReservationTransactionTaxListObj","setReasonList","selectedTax","setSelectedTax","transactionDetailsList","setTransactionDetailsList","inputAmount","setInputAmount","taxSelection","setTaxSelection","setTransactionSerNo","maxAmount","setMaxAmount","fillTaxValues","Transtype","handleApplyOnClick","validate","finalInputObj","transactionDetailList","MaxAmount","handleOnChangeAmount","ReservationTransactionSplitModalPopup","selectionWindowData","setSelectionWindowData","reasonListData","setReasonListData","isValidate","setIsValidate","labelPercentage","setLabelPercentage","reasonError","remarksError","percentageError","errorList","setErrorList","resDefaultTransactionSplitDetail","setResDefaultTransactionSplitDetail","resTransactionSplitDetail","setResTransactionSplitDetail","resTransactionSplitItemGroup","setResTransactionSplitItemGroup","resTransactionSplitByValue","setResTransactionSplitByValue","rbDataTransSplit","setRbDataTransSplit","resTransactionItemGroup","setResTransactionItemGroup","resTransactionItemGroupCheck","setResTransactionItemGroupCheck","resTransactionCheck","setResTransactionCheck","SplitByValue","setSplitByValue","SplitByDetail","setSplitByDetail","percentage","setPercentage","showDetailButton","setShowDetailButton","showTransSplitValueDetailPopup","setShowTransSplitValueDetailPopup","showTransSplitGroupDetailPopup","setShowTransSplitGroupDetailPopup","funReasonListData","fillReservationWindowData","funGetReservationTransactionSplitDetail","pPercentage","SplitBy","SplitValue","tempDetail","CheckNo","SplitRemarks","tempReason","itemGroupCheck","handleOnRemoveClick","funItemGroupSelectionChange","OnApply","handleApplyClick","SplitPreview","PaymentSplitModalPopup","reservationGuestInfoData","setReservationGuestInfoData","reservationRoomTypeData","setReservationRoomTypeData","paymentSplitDetail","setPaymentSplitDetail","selectedSplitBy","setSelectedSplitBy","paymentSplitRemark","setPaymentSplitRemark","valueOnSplitBy","setValueOnSplitBy","splitByData","setSplitByData","paymentSplitValidation","setPaymentSplitValidation","fillReservationGuestInfoData","fillReservationRoomTypeData","handleTransaction","TransAmount","SplitSeqNo","commentData","IsWindowEmpty","comment","handleOnAmountChange","handleWindowChange","ReservationTransactionFAndBAllowanceModalPopup","resDefaultTransactionDetail","setResDefaultTransactionDetail","resTransactionDetail","setResTransactionDetail","reasonErr","remarksErr","funGetReasonMaster","funGetReservationTransactionData","AllowanceAmount","ItemGroupErr","newAllowanceAmount","tempresTransactionItemGroup","isChange","funItemGroupAmountChange","FrontInvoice","price","sglDigit","dblDigit","tensPlace","handle_tens","dgt","prevDgt","handle_utlc","nxtDgt","denom","digitIdx","digit","nxtDigit","words","reverse","GetFrontInvoiceData","mapData","tempNetAmount","tempPrimary","tempGrossAmount","tempTotalAmount","tempTaxSummary","Taxable","SGST","CGST","IGST","GST","GuestDetail","ChargeDetail","Debit","Credit","TaxSummary","tempTaxable","tempSGST","tempCGST","tempIGST","tempGST","SGSTAmt","CGSTAmt","IGSTAmt","TaxDetail","PropertyDetail","HeaderDetail","CompanyDetail","PrimaryGuest","GrossAmount","IsDone","setArr","totalHeight","setTotalHeight","fixedheader","repeatingheader","guestdetail","chargedetail","taxdetail","taxbreakup","finalfooter","fhh","rhh","gdh","cdh","tdh","tbh","fh","ffh","available","cellPadding","orchidLogo","Qr","minHeight","BlockNo","SGSTPer","CGSTPer","IGSTPer","InnkeyPmsLogo","CheckoutModalPopup","LuggageSelect","defaultAddEditWindowRoutingObj","CheckoutTimeDD","IsCallIconVisible","setIsCallIconVisible","paymentFlag","setPaymentFlag","selectedTab","setSelectedTab","IsTaskComplete","setIsTaskComplete","setfilterDataPayment","setPayment","guestTile","setGuestTile","windowSubTotal","setWindowSubTotal","windowBalance","setWindowBalance","paymentModeCombo","setPaymentModeCombo","IsNoPost","setIsNoPost","invoiceDetailData","setInvoiceDetailData","paymentAmount","setPaymentAmount","editedPaymentAmount","setEditedPaymentAmount","IsWindowChecked","setIsWindowChecked","paymentMethod","setPaymentMethod","selectedWindowList","setSelectedWindowList","checkoutValidationObj","setCheckoutValidationObj","showAddEditWindowRoutingModalPopuUp","setShowAddEditWindowRoutingModalPopUp","frontInvoicePara","setFrontInvoicePara","setIsPrint","fillGuestTile","fillWindowList","fillInvoiceDetail","fillCheckoutDataGrid","strResTransactionSerNo","tempPaymentData","onCheckoutClick","IsAWS","handleNoResponse","editReservationField","field","editField","handlePrintnSendFolio","Retrunvalue","propertyDepartureTime","gracePeriod","setGracePeriod","methodType","IsDepartureSameDay","IsInvoiceGenerated","handleCheckbox","CompanyOnFolioProfile","EditNoPost","ReservationInvoiceSerNo","AdvanceBillModalPopup","setChargeList","packageList","setPackageList","setSelectedItems","IsAllChecked","setIsAllChecked","PackageList","availableDates","OrgDate","taxData","ReservationTransactionObj","PackageName","handleAllCheckBoxClick","getUpdatedDate","tempChecked","handleSingleCheckboxClick","EarlyDepartureModalPopup","dayCount","setDayCount","BulkPaymentModalPopup","setReservationList","filterReservationList","setFilterReservationList","reservationStatusList","setReservationStatusList","selectedReservations","setSelectedReservations","setIsCompleted","GetReservationBulkList","PostPMTransactionModalPopup","Window","Transaction","Night","setNightCount","selectedRb","setSelectedRb","output","numberOfNights","year","currDate","ReservationDepartureList","getCurrDate","currDateToString","toLocaleString","month","actionList","dueInReservationList","setDueInReservationList","selectedDueInReservation","setSelectedDueInReservation","cashieringSerNo","setCashieringSerNo","showDepartureListFilterModal","setShowDepartureListFilterModal","dueOutArrivalCheckBox","setDueOutArrivalCheckBox","departuresCheckBox","setDeparturesCheckBox","zeroBalanceCheckBox","setZeroBalanceCheckBox","checkedOutCheckBox","setCheckedOutCheckBox","setIsCheckBoxDisabled","collectedNRSP","selectedDepartureDate","setSelectedDepartureDate","fillMembershipLevelData","setFillMembershipLevelData","setETDFrom","setETDTo","defaultDepartureFilterObj","departureFilterObj","setDepartureFilterObj","departureData","setDepartureData","departureDateFilteredData","setDepartureDateFilteredData","dueOutReservationList","setDueOutReservationList","departureReservationList","setDepartureReservationList","dueOutArrivalData","setDueOutArrivalData","departuresData","setDeparturesData","checkedOutData","setCheckedOutData","zeroBalanceData","setZeroBalanceData","reservationWindowData","setReservationWindowData","fillBlockComboData","setFillBlockComboData","windowTransactionBalance","setWindowTransactionBalance","updateRI","showCheckoutPopup","setShowCheckoutPopup","fillReservationTaskList","IsVer","fillWindowTransactionData","fillFilteredData","DueInReservationList","mainData","tempDepartureReservationList","DepartureReservationList","DueOutReservationList","DueOutReservationSerNo","DepartureReservationSerNo","getDividedData","IsSharerOrPrimary","handleSharerandPrimary","IsAlert","collectedResSerNo","IsMultiple","first","primary","IsSharerApi","printInvoices","ManageAutoCheckout","ManageAutoCheckoutSharer","PrimaryReservationSerNo","handleAutoCheckout","handleAutoCheckoutSharer","handleCashieringClick","openCashieringScreen","handleGuestTileClick","checkedOutList","reservationNumberData","departuresList","zeroBalanceList","IsDueOutValid","IsDeparturesValid","IsZeroBalanceValid","IsCheckedOutValid","collectedCashieringData","handleCheckBox","allSelected","allDeselected","checkBoxData","handleMultipleCheckBox","NoLuggageTooltip","LockTooltip","ReturnTooltip","DepartureTooltip","VerifiedTooltip","floorData","defaultBlockComboData","strMembershipLevel","isVerified","isNRSP","compName","guestName","IsCancelCheckIn","Widget","WidgetContainer","onDrop","onDragEnter","onDragLeave","isDraggedOver","gridColumn","onDragOver","ReservationDashboardHouseuseTile","reservationArriving","setReservationArriving","reservationTotalArriving","setReservationTotalArriving","reservationDeparture","setReservationDeparture","reservationTotalDeparture","setReservationTotalDeparture","reservationStayOver","setReservationStayOver","loadReservationHouseuseTile","GetReservationDashboardInHouseUseData","HouseUseTile","ReservationDashboard60minTile","reservation60minTile","setReservation60minTile","loadReservationData","GetReservationDashboard60MinActivityData","resMinTile","resMinTileValue","ReservationDashboardActivityTile","y2Data","reservationActivityData","setReservationActivityData","avgCheckInTime","setAvgCheckInTime","fillReservationActivityData","GetReservationActivityData","Room","Vip","ReservationDashboardAdvanceCheckinTile","currentIndividual","setCurrentIndividual","currentBlock","setCurrentBlock","checkinIndividual","setCheckInIndividual","checkinBlock","setCheckInBlock","totalIndividual","setTotalIndividual","totalBlock","setTotalBlock","GetReservationDashboardAdvanceCheckinData","currentIndi","currentBlk","checkinIndi","checkinBlk","handleCurrentIndividualAndBlockClick","handleCheckInIndividualAndBlockClick","handleTotalIndividualAndBlockClick","ReservationDashboardArrivalTile","totalArrivals","setTotalArrivals","totalExpected","setTotalExpected","roomClean","setRoomClean","inspected","setInspected","outOfService","setOutOfService","arrivalsWithRoomsAssigned","setArrivalsWithRoomsAssigned","ArrivalsWithRoomNotAssigned","setArrivalsWithRoomNotAssigned","arrivalsAgainstDueOut","setArrivalsAgainstDueOut","earlyArrival","setEarlyArrival","lateArrival","setLateArrival","canceledCheckin","setCanceledCheckin","preRegister","setPreRegister","vipStatus","setVipStatus","nextDayArrival","setNextDayArrival","walkIN","setWalkIN","reservationMadeToday","setReservationMadeToday","HandleReservationTile","loadReservationDash","GetReservationDashboardArrivalData","RoomAssignTotal","ReservationDashboardArrivedInhouseTile","loadArrivedInhouseTile","GetReservationDashboardArrivedAndInhouseData","ArrivedInhouseTile","ReservationDashboardBlockOverviewTile","arrivedBlock","setArrivedBlock","arrivedRoom","setArrivedRoom","arrivingBlock","setArrivingBlock","arrivingRoom","setArrivingRoom","getDashboardBlockOverviewData","GetReservationDashboardBlockOverViewData","blockArrivedValue","BlockArriving","blockArrivingValue","RoomArriving","reservationListPage","handleBlockArrivedClick","AI","handleBlockArrivingClick","DI","ReservationDashboardCancellationTile","seletedDate","setSelectedDate","resAndCancelData","setResAndCancelData","loadResAndCancelData","GetReservationDashboardResAndCancelData","ReservationDashboardComplimentaryTile","stayOver","setStayOver","loadReservationComplimentary","GetReservationDashboardComplimentaryData","arriving","departure","ComplimentaryTile","ReservationDashboardDailyProjectionTile","dashboardDailyprojectionList","setDashboardDailyprojectionList","getDashboardDailyprojectionData","SeletedDate","GetReservationDashboardDailyprojectionData","IndividualRoom","IndividualPerson","IndividualVIP","BlockPerson","BlockVIP","BlockRoomNotPickup","OccuPercentage","AverageDailyRate","RevPAR","AverageDailyRateWOBlock","AverageDailyRateWOCompAndHouse","AverageDailyRateWOBlockCompAndHouse","RoomRevenue","currency","ReservationDashboardDepartureTile","dashboardDepartureList","setDashboardDepartureList","previousDays","setPreviousDay","totalRoomDepartures","setTotalRoomDeparture","checkOutRoom","setCheckOutRoom","exceptCheckOutRoom","setExpectCheckOutRoom","openfoilo","setOpenFolio","noinfo","setNoinfo","earlyDepartures","setEarlyDeaparture","checkedOutRoomTotal","IsPreviousDayDeparture","reservationFilterObj","GetReservationDashboardDepartureData","previousDay","totalRoomDeparture","checkedOutRoom","expectedCheckoutRoom","openFolio","noInfo","earlyDeparture","reservationDepartureList","handleEarlyDepartureClick","adultChildValue","ReservationDashboardQueueTile","DashboardQueueReservationRoomCategory","DashboardQueueReservationAverageTime","dashboardQueueReservation","setDashboardQueueReservation","averageTime","clean","setClean","queue","setQueue","dirty","setDirty","getQueueReservationData","GetReservationDashboardQueueReservationData","Queue","Clean","Dirty","OutOfService","handleLinkCleanClick","handleLinkDirtyClick","handleLinkOutOfServiceClick","OS","ReservationDashboardRevenueTile","setReservationDashboardRevenueSummaryData","yAxisData","setYAxisData","loadRevenueSummeryData","GetReservationDashboardRevenueSummaryData","BigValue","ADRValue","maxValue","maxNearestValue","yValue","xAxis","Salable","RoomSold","NonDeduct","ReservationDashboardRoomAvailabilityTile","roomAvailabilitySummary","setRoomAvailabilitySummary","uniqueDateWiseData","setUniqueDateWiseData","selectedDate","loadRoomAvailabilitySummary","GetReservationDashboardRoomAvailability","uniqueDate","DateWiseData","sumAvailable","sumSold","Sold","sumTotal","objDateWise","opacity","ReservationDashboardRoomMaintenanceTile","ReservationDashboardRoomStatusTile","dashboardRoomStatus","setDashboardRoomStatus","GetReservationDashboardRoomStatusData","Occupied","Assigned","Vacant","ReservationDashboardRoomSummaryTile","reservationRoomSummeryData","setReservationRoomSummeryData","loadRoomSummeryTile","GetReservationDashboardRoomSummaryData","ReservationDashboardTodayTile","resTodayData","setResTodayData","fillResTodayData","GetReservationDashboardReservationTodayData","RateCodeMasterModelPopup","setFnbObject","defaultMISC","defaultMP","postingtype","postingRhythm","ForecastNextDay","defaultPS","PosItemGroupSerNo","DiscountSerNo","defaultRateCodeObj","IsDayUseRate","IsOTARate","WebURL","IsPrivilegedRate","FolioText","Negotiated","SellMessage","IsApplyDayType","MinAdvanceBookingDays","MaxAdvanceBookingDays","FloorRate","CeilingRate","FreeChild","MealPlanList","MiscellaneousList","POSDiscountList","defaultValid","defaultPackageMaster","showPackageInclusionPopup","SetPackageInclusionPopup","rateCodeObj","setRateCodeObj","rateCategory","setRateCategory","revenueTransactionCode","setRevenueTransactionCode","filteredRateCategory","setFilteredRateCategory","sequenceList","setSequenceList","rateCodeBySerNo","setRateCodeBySerNo","setIsValid","packageInclusionType","setPackageInclusionType","filterpackageInclusionType","setFilterPackageInclusionType","setPackageObj","setSelectPackageInclusion","selectedPackageObj","setSelectedPackageObj","showFnBIndi","setShowFnBIndi","rateCodeMiscellaniousMaster","setRatecodeMiscellaniousMaster","packageMaster","setPackageMaster","setPostingType","setPostingRhythm","mealPlanLocalList","setMealPlanLocalList","packageInclusionObj","setPackageInclusionObj","tempPackageSerNo","setTempPackageSerNo","selectedMealPlanSerNo","setSelectedMealPlanSerNo","packageType","fillRateCodeMasterBySerNo","settempMiscellaneous","fillRateCodeMiscellaneousMaster","fillRateCategory","filterRateCategory","pRateTypeSerNo","pRateCategory","tempCatg","RateTypeSerno","tmpRateType","tempSeqList","seqList","fillPackageInclusionType","fillPackageMaster","fillPostingRhythm","fillPostingType","tmpfnbData","tmpEle","handleOnPackageInclusionClick","handleMealPlanLocalClick","clear","tempMiscellaneous","handleMiscellaneousclick","PriceScheduleModalPopup","RoomRateAdult1","RoomRateAdult2","RoomRateAdult3","RoomRateAdult4","RoomRateAdult5","RoomRateAdult6","showPackageRoomTypePopup","SetPackageRoomTypePopup","roomTypeDataBySerNo","setRoomTypeDataBySerNo","rateCodeDetailRate","setRateCodeDetailRate","setYear","setMonth","totalMonthList","setTotalMonthList","isValidObj","setIsValidObj","selectedRoomTypeId","setSelectedRoomTypeId","fillRoomTypeBySerNo","fillRateCodeDetailRateMonth","tempYearList","fillRateCodeDetailRate","clearFields","handleRateTypeclick","tempMonthList","options","RateCodeMaster","rateCodeMaster","setRateCodeMaster","filterRateCodeMaster","setFilterRateCodeMaster","toggleView","setToggleView","fillRateCodeMasterDetail","handleOnRateCodeClick","ReasonMaster","inputb","setInputb","allDetailsList","setAllDetailList","userReason","setUserReason","reasonTypeList","setReasonTypeList","oldValue","setOldValue","handleClickReason","handleChangeName","handleChangeReasonType","isvalidPage","IsvalidPage","boxSizing","moveItem","listClone","PostLaundryTransactionModalPopup","LaundryCharge","IsDiscountPer","LaundryServiceSerNo","LaundryHotelServiceSerNo","ItemList","Vender","venderList","setVenderList","hotelServiceTypeList","setHotelServiceTypeList","laundryServiceTypeList","setLaundryServiceTypeList","dropDownItemList","setDropDownItemList","laundryItemList","setLaundryItemList","postLaundryObj","setPostLaundryObj","postLaundryValidation","setPostLaundryValidation","setInclusionList","billingInstruction","setBillingInstruction","billDetail","setBillDetail","paidList","setPaidList","IsDefaultLoaded","setIsDefaultLoaded","laundryData","setLaundryData","setIsPrinted","fillInclusions","fillInfoData","fillBillDetail","LaundrySerNo","Settled","fillSettledList","fillLaundryDetailBySerNo","Exemption","HotelService","LaundryService","VenderName","HotelServiceName","LaundryServiceName","IsFree","LaundryItemName","SalesRate","ChargeTransactionSerNo","ChangeHKStatusModalPopup","HKServiceSerNo","HKFOStatus","IsOutOfOrder","IsReverseOutOfOrder","OldStartDate","OldEndDate","OOSerNo","fillHKServiceData","setFillHKServiceData","selectedHKService","setSelectedHKService","selectedHKFOStatus","setSelectedHKFOStatus","roomHKDetail","setRoomHKDetail","changeStatusObj","setChangeStatusObj","handleValidateOOStatus","defaultHKServiceData","HKServiceName","HKPersons","ServiceStatus","userStartDate","userEndDate","InputObj","SectionName","CurrentStatus","StoreUserModelPopup","storeUserList","setStoreUserList","storeUserFilter","setStoreUserFilter","setFinalArr","fillUserList","handleOnClickSeach","ItemDepartmentMaster","ClientserNo","NewDepartmentSerNo","OpeningItemRate","OpeningStockQty","OpeningBaseQty","departmentObj","setDepartmentObj","departmentFilter","setDepartmentFilter","departmentValid","setDepartmentValid","loadDepartmentCombo","setLoadDepartmentCombo","fillDepartmentList","handleClickOnName","RawMaterialChargeMaster","setTransactionType","hsnCodeType","setHSNCodeType","rawMaterialChargeObj","setRawMaterialChargeObj","rawMaterialChargeValid","setRawMaterialChargeValid","fillHSNCode","fillRawMaterialChargeData","tempTransaction","tempHSNCode","validData","IsStockable","IsExpiry","IsDaily","Remark","IsInputGSTEligible","IsTDSapplicable","IsAllowDirectBillingInService","ItemVenderMaster","NewVenderSerNo","itemVenderObj","setItemVenderObj","itemVenderList","setItemVenderList","itemVenderFilter","setItemVenderFilter","itemVenderValid","setItemVenderValid","loadVenderCombo","setLoadVenderCombo","fillItemVenderList","fillVenderCombo","handleOnNameClickChange","ItemStoreMaster","loadStore","setLoadStore","storeData","setStoreData","storeFilter","setStoreFilter","storeObj","setStoreObj","storeValidation","setStoreValidation","storeNo","setStoreNo","loadStoreData","fillStoreMaster","handleOnStoreList","validStore","StoreRequestItemModalPopup","filterDataPurchaseReqItem","setfilterDataPurchaseReqItem","subCategoryList","setSubCategoryList","selectedCategory","setSelectedCategory","setPreviosCategory","selectedSubCategory","setSelectedSubCategory","setPreviosSubCategory","selectedItemList","setSelectedItemList","finalItemList","setFinalItemList","deletedItemList","setDeletedItemList","topKey","setTopKey","bottomKey","setBottomKey","renderTopGrid","renderBottomGrid","fillItemCategory","fillBottomGrid","fillLastPurchasePrice","lastPurchasePrice","LastPurchasePrice","ReqQty","StockUnitID","BaseUnitID","fillCurrentStock","handleCalculateTotal","fillItemSubCategory","CurrentStock","StockQty","LPP","ItemCatgName","ItemSubCatgName","ItemCategory","ItemSubCategory","UnitofMeasure","CurrRmitSerNo","handleReqQtyBlur","handleRemarksChange","tempDelArr","handleRemoveItemFromList","PurchaseRequestItemModalPopup","setDisAmount","fillCharge","handleTransactionChange","handleRateBlur","handleDiscountChange","OtherTxnRequestItemModalPopup","BaseQty","UnitConversion","IsValidQty","MovementName","handleQtyBlur","InvOtherChargesModalPopup","finalChargeList","setFinalChargeList","fillTransactionList","TaxSerNo","IsChanged","CurrTransSerNo","handleValueOnBlur","InvTaxBreakupModalPopup","filterDataTaxBreakuptable1","setfilterDataTaxBreakuptable1","filterDataTaxBreakuptable2","setfilterDataTaxBreakuptable2","filterDataTaxBreakuptable3","setfilterDataTaxBreakuptable3","fillGrid1","fillGrid2","TaxName","OnAmountPercentage","tempGrid2","tempGrid3","Items","OtherCharges","handleTaxClick","DepartmentPurchaseRequestModalPopup","showMMSPurchReqItemsModal","setShowMMSPurchReqItemsModal","movementData","setMovementData","invBusinessDate","setInvBusinessDate","restrictBackDateEdit","setRestrictBackDateEdit","allowEditTransDay","setAllowEditTransDay","excludedMovementArr","TransNo","TransDateTime","DocRemarkSerNo","DocumentReferenceNo","RequestedBy","TransDiscountAmount","OtherChargeAmount","OtherChargeTaxAmount","ChallanDate","ChallanNo","defaultComboObj","Dest","DocumentRef","TaxInclusive","ReqBy","TnC","departmentReqObj","setDepartmentReqObj","orgObj","setOrgObj","departmentData","setDepartmentData","vendorData","setVendorData","tnCData","setTnCData","departmentGrid","setDepartmentGrid","movementList","setMovementList","comboDisabledObj","setComboDisabledObj","IsUseMonthClosing","setIsMonthlyClosing","monthClosingData","setMonthClosingData","movementName","setMovementName","logicalDeptData","setLogicalDeptData","showMMSOtherChargesModal","setShowMMSOtherChargesModal","showMMSTaxBreakupModal","setShowMMSTaxBreakupModal","num","storeCombo","vendorCombo","fillDepartmentReq","AppQty","handleBackDatedAdd","isAllow","monthclose","handleClickOnSave","isAddAllow","IsLogicalDepartment","date1","diffTime","days_difference","calculateDays","tempRightsSerNo","ApproveStoreRequisitionModalPopup","IsIssue","setIsChange","lastPurchaseObj","setLastPurchaseObj","setIsLoaded","fillGetItemLastRequestAndPurchaseDetail","LastRequestedDate","LastRequestedQty","LastPurchaseDate","LastPurchaseQty","onCurrStockRefClick","TempQty","onQtyChange","IsSelect","IssQty","temptotal","CurrQty","onItemClick","onQtyBlur","onIssQtyBlur","IssRemarks","AppRemarks","onApprovalNoteChange","ApprovePurchaseRequisitionModalPopup","IsPurchase","warn","onPurcQtyBlur","tempVal","INVTransactionSlip","headerObj","setHeaderObj","IsShowTax","IsShowHeader","IsShowTandC","setIsShowTandC","movementId","setMovementId","setPara","netValue","setNetValue","IsOther","setIsOther","RequestDateTime","ApproveDateTime","ItemDetail","orchid_logo","textTansform","TransDate","SourceName","DestName","RequestUserId","ApproveUserID","UOM","textTransform","dangerouslySetInnerHTML","__html","DocRemarks","innkey_logo","Comp","defaultHeader","Inclusion","dueOutOptList","expectedArrivalOptList","postNightOptList","IsActive","TaskSerNo","taskGrid","setTaskGrid","setTaskSerNo","maxTaskSerNo","dynamicHeader","setDynamicHeader","setExpectedArrivalList","setPostNightList","setOpenFolioList","setPayMasterList","optList","setOptList","showRollBusinessDate","setShowRollBusinessDate","selectedCheckboxData","setSelectedCheckboxData","primaryReservationInfo","setPrimaryReservationInfo","ManualExtendNightCount","setManualExtendNightCount","showDateAddModalPopup","setShowDateAddModalPopup","GetBusinessDate","fillDueOutList","onNextButtonClick","SharerSecondary","LinkedIcon","fillExpectedArrivalList","CheckInReservations","IsSkipable","handleExtendReservation","handlePostponeReservation","DateDiff","PrimaryDepartureDate","tempDate1","handleOnManualDateChangeClick","IsAllInspected","handleOnActionChange","handleOptClick","propsResSerNoString","setPropsResSerNoString","selectedRoomListTile","setSelectedRoomListTile","defaultSummarisedTile","setInvoiceDetailsData","fillReservationCashieringRoomListData","selNum","setReservationCashieringRoomListData","fillReservationTransactionData","tempStatus","setStateHandle","setReservationInfoGuestData","setReservationInfoRoomType","setGridWindowData","selectedSplitviewLeftWindow","selectedSplitviewRightWindow","setSelectedSplitviewLeftWindow","setSelectedSplitviewRightWindow","splitLeftWindowName","splitRightWindowName","IsClean","detailedCheckBox","summarisedCheckBox","splitLeftCheckBox","splitRightCheckBox","setReservationCashieringTransactionData","setReservationTransactionDataPerWindow","showFullView","setIsGridRefreshed","showSplitView","leftData","rightData","setSplitLeftSelectedData","setSplitRightSelectedData","currWindow","setCurrWindow","IsGridRefreshed","setPartyList","showFrontInvoiceModel","setShowFrontInvoiceModel","deletedWindowInSession","setDeletedWindowInSession","showAdvanceBillPopup","setShowAdvanceBillPopup","showEarlyDeparturePopup","setShowEarlyDeparturePopup","IsReopened","setIsReopened","existingWindowSerNo","setExistingWindowSerNo","IsCompanyOnFolio","IsFnbDiscount","IsCardAuthentication","IsBillingInstruction","IsRoutingInstruction","IsDepositRecieved","IsTransportation","IsAccompanyGuest","IsPastStay","IsIndiPackege","IsPayment","IsPost","IsTransferToRoom","IsTransferToPM","IsDeleteWindow","IsAddWindow","IsEditWindow","IsViewSummarized","IsAddNewPM","IsTransactionSplit","IsPaymentSplit","IsViewPosCheck","IsViewTaxBreakdown","IsOtherAllowance","IsFnBAllowance","IsLaundryAllowance","IsPaymentCorrection","IsRefund","IsPrintReciept","IsMultiWindowSelect","IsSingleWindowSelect","IsTaskCompleted","IsCancelInvoice","reservationCashieringRoomListData","selectedSummarisedTile","setSelectedSummarisedTile","reservationInfoGuestData","splitLeftSelectedData","splitRightSelectedData","detailedContext","summarisedContext","splitLeftContext","splitRightContext","splitLeftDisabled","splitRightDisabled","stateHandle","setDetailedCheckBox","setSummarisedCheckBox","setSplitleftCheckBox","setSplitRightCheckBox","IsSplitLeftDisabled","setIsSplitLeftDisabled","IsSplitRightDisabled","setIsSplitRightDisabled","showFolioSummarisedGrid","setFolioSummarisedGrid","showFolioDetailedGrid","setFolioDetailedGrid","setFullView","setSplitView","showIndicatorColumn","setIndicatorColumn","showLayoutIcon","setLayoutIcon","paymentTransactionMode","setPaymentTransactionMode","showPostPopup","setShowPostPopup","setShowAllowanceLaundryPopup","showAllowanceFBPopup","setShowAllowanceFBPopup","showAllowanceOtherPopup","setShowAllowanceOtherPopup","showTransactionSplitPopup","setShowTransactionSplitPopup","showPaymentSplitPopup","setShowPaymentSplitPopup","showTransferTransactionPopup","setShowTransferTransactionPopup","Allowance","allowanceData","setAllowanceData","reservationCashieringTransactionData","reservationTransactionDataPerWindow","uniqueSummarisedData","setUniqueSummarisedData","selectedSummarisedData","setSelectedSummarisedData","cashieringCollectedData","setCashieringCollectedData","transferData","setTransferData","ttRData","setTTRData","setCurrentSelectedSummarisedData","gridWindowData","reservationInfoRoomType","postedReservationTransaction","setPostedReservationTransaction","activeInnTab","setActiveInnTab","activeRightTab","setActiveRightTab","invoiceDetailsData","handleOpenFolio","handleResStatnOpenFolio","handleRoomListTileClick","handleCheckoutndCloseFolio","IsAWP","IsAWNS","IsAWNP","IsSP","IsPS","IsPP","handleReOpen","handleCheckoutWithOpenFolio","clearAllCheckBox","clearCheckBox","handleHeaderCheckBox","collectedData","funTransferMultipleWindow","funTransferSingleWindow","divideData","tempD","currIndex","allowance","onRemoveRoomList","tempResSerNoString","handleAction","objArr","tempIsDisabled","reservationStatusAlert","transactionSplitTransferData","setTransactionSplitTransferData","row","BillingActionPopup","IsPaymentAvailable","IsSameModule","currModule","InvoiceAction","detailedGridOption","BillingAction","TransactionNameTooltip","toggleClass","settoggleClass","currTile","dividedWindowData","handleSummarisedTileClick","IsAllowanceRow","wName","tempInvoiceNo","PayeeName","RoomTypeSerNoToCharge","maxWindowSerNo","CheckedOutDate","defaultHouseKeepingSectionGroupType","housekeepingSectionGroupType","setHouseKeepingSectionGroupTypeData","housekeepingSectionData","setHousekeepingSectionData","filterHousekeepingSectionData","setFilterHousekeepingSectionData","housekeepingSectionObj","setHousekeepingSectionObj","housekeepingSectionValidation","setHousekeepingSectionValidation","housekeepingSectionRoomList","setHousekeepingSectionRoomList","selectedHousekeepingSectionSerNo","setSelectedHousekeepingSectionSerNo","getHousekeepingSectionData","getSelectedHousekeepingSectionData","HKSectionSerNo","HousekeepingSectionRoomList","HousekeepingSectionMasterDetail","handleOnHousekeepingSectionClick","NaN","hkSectionGroupData","setHKSectionGroupData","filterHKSectionGroupData","setFilterHKSectionGroupData","hkSectionGroupObj","setHKSectionGroupObj","hkSectionGroupValidation","setHKSectionGroupValidation","selectedHKSectionGroupSerNo","setSelectedHKSectionGroupSerNo","showHKSectionGroupModal","setShowHKSectionGroupModal","isActive1","setIsActive1","fillHKSectionGroup","handleOnHKSectionGroupClick","hkSectionGroupSerNo","selectedHKSectionGroupobj","fillSelectedHKSectionGroup","HousekeepingSectionGroupData","handleOnAddClick1","handleOnSearchChanged1","RoomMaintenance","ReservationCancellation","HouseUse","Departures","InHouse","Arrivals","QueueReservation","AdvanceCheckedIn","BlockOverview","SixtyMinutesActivities","ReservationActivity","ReservationRevenue","WIDGET_LIST","isShowTile","widgets","setWidgets","description","isShowWidget","setIsShowWidget","draggedItemId","setDraggedItemId","draggedOverContainerId","setDraggedOverContainerId","handleDragLeave","handleDrop","fromIndex","w","toIndex","clearState","showRightWhiteBar","setshowRightWhiteBar","tmpWidgets","tmpShowHideWidgets","onSettingMenuCheckboxChecked","defaultIndustry","industryObj","setIndustryObj","industryMaster","setIndustryMaster","filterIndustryMaster","setFilterIndustryMaster","industryValidation","setIndustryValidation","selectedIndustrySerNo","setSelectedIndustrySerNo","fillIndustryMaster","handleOnSelected","AddObj","eventMasterObj","setEventMasterObj","eventMasterData","setEventMasterData","eventMasterValidation","SetEventMasterValidation","ddlDayType","setDayType","filterEventMaster","setFilterEventMaster","selectedEventMaster","setSelectedEventMaster","loadDayTypeMaster","DayType","handleSearchEdit","handleOnEventMasterClick","cityValidationObj","cityObj","setCityObj","cityMaster","setCityMaster","countryMaster","setCountryMaster","stateMaster","setStateMaster","cityValidation","setCityValidation","filterCity","setFilterCity","fillCity","LoadCountry","loadState","handleCityClick","filterCityEdit","defaultReservationType","ReservationTypeCode","IsDeductInventory","IsMobileNoMandatory","IsCompanywithAssociatedAR","IsDepositMandatory","IsCreditCardMandatory","IsHoldByGuest","ValidTypeObj","reservationTypeObj","setReservationTypeObj","reservationTypeMaster","setReservationTypeMaster","filterReservationType","setFilterReservationType","cancellationRule","setCancellationRule","depositRule","setDepositRule","reservationTypeValidation","setReservationTypeValidation","resTypeSelectedSerNo","setResTypeSelectedSerno","fillReservationType","filterType","handleOnReservationTypeClick","objType","department","handleClickDepartment","noteTypeList","setNoteTypeList","noteType","handleClickNoteType","transportProviderList","setTransportProviderList","getCoutryMasterList","getStateMasterList","transportProvider","handleClickTransportProvider","handleChangeStreet","handleChangeCountry","handleChangeState","handleChangeCity","Isvalid","setYears","showPackageModal","setShowPackageModal","buisnessDate","setBuisnessDate","PackageCode","MinPerson","MaxPerson","IsSellSeparately","postingTypeList","setPostingTypeList","packageTypeList","setPackageTypeList","calculationTypeList","setCalculationTypeList","postingRhythmList","setPostingRhythmList","transactionCodeList","setTransactionCodeList","setRateDetailList","convertedList","setConvertedList","minDate","maxDate","priceScheduleObj","setPriceScheduleObj","packageRateObj","setPackageRateObj","GetAllComboData","GetYearList","popupValidation","setPopupValidation","handleClickSavePopup","validPopUp","packagetype","handleClickPackageType","handleChangeEndDate","handleChangeFromDate","handleChangeToDate","handleChangePrice","handleChangeYear","handleChangeMonth","alertList","setAlertList","handleClickAlertType","defaultArea","validFunArea","functionalAreaObj","setFunctionalAreaObj","functionalAreaMaster","setFunctionalAreaMaster","filterFunctionalArea","setFilterFunctionalArea","funAreaValidation","setFunAreaValidation","funAreaSelectedSerNo","setFunAreaSelectedSerNo","fillFunctionalArea","filterArea","handleOnFunAreaClick","filterAreaEdit","IsManageInventory","hkStatusList","setHkStatusList","hkcomboList","setHkComboList","hkStatus","handleClickHkType","IsTaxinclusive","transTypeObj","setTransTypeObj","transTypeList","setTransTypeList","transTypeFilter","setTransTypeFilter","transValidation","setTransValidation","fillTransportationType","handleOnTransTypeClick","selectedRateType","setSelectedRateType","rateTypeList","setRateTypeList","filterRateTypeList","setFilterRateTypeList","rateTypeValidation","setRateTypeValidation","fillRateTypeMaster","handleRateTypeClick","dtTypeData","setColumnlist","cancResStat","showReportFilterPopup","setShowReportFilterPopup","membershipLvlData","setMembershipLvlData","strFilterList","setStrFilterList","reportList","setReportList","setTempReportList","selectedReportSerNo","setSelectedReportSerNo","fixedFilterList","setFixedFilterList","additionalFilterList","setAdditionalFilterList","setSelectTransType","transTypeData","setTransTypeData","setIsRemoveClick","setFixedColumnList","addColumnList","setAddColumnList","selectedColumn","setSelectedColumn","reportFilterObj","setReportFilterObj","inclPkgList","setInclPkgList","addPkgList","setAddPkgList","selectedInclPkg","setSelectedInclPkg","selectedAddPkg","setSelectedAddPkg","columnKeys","setColumnKeys","selectedNoShowResStatus","setSelectedNoShowResStatus","selectedBilling","setSelectedBilling","selectedReportName","setSelectedReportName","selectedResTypeSerNo","setSelectedResTypeSerNo","setSelectAll","vipSelectAll","setVIPSelectAll","membershipSelectAll","setMembershipSelectAll","rmTypeSelectAll","setRmTypeSelectAll","addPackSelectAll","setAddPackSelectAll","inclPackSelectAll","setInclPackSelectAll","paymentMtdSelectAll","setPaymentMtdSelectAll","selectedPaymode","setSelectedPaymode","fillDynamicReportList","finalColumnList","InclPackageName","ExclPackageName","AddPackageName","DropTransportationType","DropTransportationCarrier","InternalComment","PaymodeName","RoomRouting","WindowRouting","LastRoomNo","PastStay","fillCancellationReport","fillPMNonBlockReport","fillOpenFolioReport","fillRateVarianceReport","fillNoShowReport","fillEarlyDepartureReport","fillReservationDetailReport","FromNight","ToNight","Special","fillReservationDepartureReport","fillReservationInHouseReport","fillReservationCreditLimitReport","handleReportClick","textContent","ReportCaption","inclPkg","addPkg","tmpData1","tempFixed","tempAdditional","IsFixed","FilterName","FilterCaption","FilterType","TodayOpenFolio","NoShowDate","tempFixedData","tempAdditionalData","tempColumnList","tempAddColumns","ColumnName","ColumnCaption","uniqueId","ColumnSerNo","tempWidget","tempColumnKeys","fillFromDate","prevDate","fillToDate","fillVipLevel","variable","fillMembershipLevel","fillBillingInstructions","fillBlockNo","fillSelectReservation","fillResStatus","fillAddPack","fillInclPack","fillNoPost","fillFromNight","fillToNight","fillDateType","filUserID","fillPaymentMethod","tempColumn","CancelReservationStatus","NoShowReservationStatus","IsAdvanceCheckedIn","IsSameDayReservation","IsWithLuggageAndLock","IsWithoutLuggage","IsWithoutLuggageAndLock","colSpanVal","setColSpanVal","excelList","setExcelList","reportSerNo","reportName","borderSpacing","borderBottom","CashBook","LaundryItemCategorySerNo","laundryCategoryList","setLaundryCategoryList","transactonCodeList","LaundryItemCategoryName","laundry","handleClickLaundryType","LaundryType","laundryItemCategoryList","setLaundryItemCategoryList","laundryCategory","handleClickLaundryCategory","LaundryReturnInSerNo","ReturnInName","laundryObj","setLaundryObj","laundryValidation","setLaundryValidation","laundryList","setLaundryList","laundryFilter","setLaundryFilter","fillLaundryData","clearValidationData","handleOnClickLaundry","venderObj","setVenderObj","venderFilter","setVenderFilter","venderValidation","setVenderValidation","fillVenderData","handleClickOnVender","laundryServiceList","setLaundryServiceList","fillTransactionDropDown","service","handleClickLaundryServiceType","InvoiceCopyNo","isDataAvailable","setIsDataAvailable","setCetegoryList","isDelete","setObj","selectedList","setSelectedList","ValVenderSerNo","ValSalesRate","ValCostRate","defaultList","setDefaultList","GetApi","laundryItem","handleChangeObj","handleChangeCostRate","handleChangeSalesRate","ValIsDiscountable","handleChangeDiscountable","handleIsValid","hkServiceList","setHKServiceList","HKService","handleClickHKService","PageNo","defaultLaundryValidation","displayList","setDisplayList","setUserList","pageNo","setPageNo","fillList","LaundryDatetime","isDate","RowPerPage","onlyAlpha","busiDate","ReservationPopup","setShowPostLaundryModal","showPostLaundryModal","IsClose","onResetClick","onApplyClick","showHKchangestatusModal","setShowHKchangestatusModal","reservationDetail","setReservationDetail","showReservationDueInPopup","setShowReservationDueInPopup","showTooltip","setShowTooltip","strHKStatus","FOStatus","listObj","setListObj","selectedRoomNoData","setSelectedRoomNoData","selectedFOStatus","setSelectedFOStatus","handleSearchOnChange","MembershipToolTip","GuestTooltip","AgentTooltip","DueInStatusTooltip","setFilterData","ReportName","tempColumnlist","tempAddColumn","IsAllowDirectPurchase","OpeningDate","handleOnNameClick","storeList","setStoreList","storeValid","setStoreValid","fillStore","showStoreModal","setShowStoreModal","defaultUnit","UnitID","Conversion","GSTUnitID","validUnit","unitObj","setUnitObj","unitMaster","setUnitMaster","filterUnitMaster","setFilterUnitMaster","unitValidation","setUnitValidation","loadBaseUnit","setLoadBaseUnit","selectedUnitSerNo","setSelectedUnitSerNo","searchstr","setSearchstr","loadGSTUnit","setLoadGSTUnit","fillUnit","Filter","handleOnUnitClick","defaultVenderObj","Phone","Fax","CreditDays","CreditLimit","ContactPerson","TinNo","AccountNo","GSTIN","RegisterType","IsImplementIGST","MSMENO","venderSelectObj","setVenderSelectObj","venderMaster","setVenderMaster","filterVender","setFilterVender","selectedVenderSerNo","setSelectedVenderSerNo","fillVenderMaster","fillVenderMasterDetail","handleVenderClick","inventoryFilterObj","setInventoryFilterObj","tempInvObj","setTempInvObj","inventoryList","setInventoryList","tempInvData","setTempInvData","inventoryObj","setInventoryObj","conditionalHeader","setConditionalHeader","setPrintPara","setMode","showMMSPurchaseRequestModal","setShowMMSPurchaseRequestModal","showMMSPurchApproveItemsModal","setShowMMSPurchApproveItemsModal","setIsIssue","StoreCombo","IsApproved","scrollRefCategory","scrollRefSubCategory","categoryDefaultObj","IsService","categoryDefaultValidation","subCategoryDefaultObj","subCategoryDefaultValidation","categoryData","setCategoryData","categorySelected","setCategorySelected","oldCategory","setOldCategory","categoryValidation","setCategoryValidation","subCategoryData","setSubCategoryData","subCategorySelected","setSubCategorySelected","oldSubCategory","setOldSubCategory","subCategoryValidation","setSubCategoryValidation","fillInvCategoryMaster","fillInvSubCategoryMaster","sortData2","clearSubCatValidation","AddEditCategoryAPI","handleCategoryChangeSearch","handleChangeSearchSubCategory","AddEditAPISubCategory","subSelected","handleClickSubCategory","handleClickCategoryType","showCategoryModal","setShowCategoryModal","isValidPageSubCategory","defaultItemClassObj","defaultItemClassValidation","itemClassObj","setItemClassObj","itemClassList","setItemClassList","itemClassFilter","setItemClassFilter","itemClassValidation","setItemClassValidation","ClassCategoryList","setClassCategoryList","ClassCategoryFilter","setClassCategoryFilter","setSearchClass","FillInvItemClass","fillClassCategoryMapping","handleOnSearchClassCategory","showItemclassModal","setShowItemclassModal","obj1","radioData","tempReportList","selectedSourceType","setSelectedSourceType","multiSelect","setMultiSelect","storeDataForStock","setStoreDataForStock","itemCategoryData","setItemCategoryData","itemSubCategoryData","setItemSubCategoryData","sourceSelectedSerNo","setSourceSelectedSerNo","destinationSelectedSerNo","setDestinationSelectedSerNo","selectAll","selectedVenderName","setSelectedVenderName","selectedStoreSerNo","setSelectedStoreSerNo","Align","IsTotalGiven","handleSearchReport","NOfMonthDays","DestinationSerNo","match","ar","tempwidgets","swid","groupingLevel","setGroupingLevel","propObj","setPropObj","Output","defaultListObj","IsApplyVenderRate","Barcode","rawMaterialListObj","setRawMaterialListObj","rawMaterialObj","setRawMaterialObj","rawMaterialMaster","setRawMaterialMaster","filterRawMaterial","setFilterrawMaterial","rawMaterialMasterDetail","setRawMaterialMasterDetail","selectedMaterialSerNo","setSelectedMaterialSerNo","baseUnit","setBaseUnit","stockUnit","setStockUnit","category","setCategory","subCategory","setSubCategory","fillInvRawMaterialMaster","fillRawMaterialMasterDetail","SelectedSerNo","handleRawMaterialClick","showItemchargeModal","setShowItemchargeModal","showItemvendorModal","setShowItemvendorModal","showItemstoreModal","setShowItemstoreModal","showItemdepartmentModal","setShowItemdepartmentModal","businessDateAPI","InvNightAuditProcess","lastDateOfMonth","propsObj","setPropsObj","StoreName","DepartmentName","SharedModulePOS","lazy","TempMenu","HomePage","i18n","selectedLang","setSelectedLang","cglobal","showmodule","setShowmodule","showprofile","setShowprofile","showpagesettings","setShowpagesettings","showNotification","setShowNotification","modmenuRef","refProfile","refNotification","refModule","propertyList","setPropertyList","moduleValue","setModuleValue","refModmenu","selectedPropertySerNo","setSelectedPropertySerNo","loadTemp","changeLanguage","path","fallback","settingsicon","App","subDomain","setsubDomain","host","exact","reportWebVitals","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","store","configureStore","reducer","use","Backend","LanguageDetector","initReactI18next","init","lng","backend","loadPath","fallbackLng","debug","ns","defaultNS","keySeparator","interpolation","escapeValue","formatSeparator","react","wait","interceptors","request","_retry","process","reject","originalConfig","config","rs","authToken","SessionId","ReactDOM","StrictMode"],"mappings":"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C,EACAwsK,EACAC,EACAF,EACA70F,EACAw0F,EACAC,EACA5J,EACA9zC,EACAt2D,EACAu0G,EACAC,GAEA,IAAMxwK,EACJ,6CACAu+C,EACA,IACA16C,EACA,IACAwsK,EACA,IACAC,EACA,IACAF,EACA,IACA70F,EACA,IACAw0F,EACA,IACAC,EACA,IACA5J,EACA,IACA9zC,EACA,IACAt2D,EACA,IACAu0G,EACA,IACAC,EACF,OAAOvwK,IAAMC,IAAIF,IAGNq5J,EAAgC,SAACoX,GAE5C,OAAOxwK,IAAMI,KADE,qDACWowK,IAGfxE,EAAiB,SAC5B1tH,EACA16C,EACAksK,EACAC,GAEA,IAAMhwK,EACJ,oCACAu+C,EACA,IACA16C,EACA,IACAksK,EACA,IACAC,EACF,OAAO/vK,IAAMC,IAAIF,IAGN0pK,EAA2B,WAEtC,OAAOzpK,IAAMC,IADE,uCAIJqpK,EAA6B,WAExC,OAAOtpK,IAAMC,IADE,yCAGJ2pK,EAAoB,SAACzpK,GAEhC,OAAOH,IAAMI,KADE,+BACWD,IAEfojG,EAAgC,SAC3CjlD,EACA16C,EACAwsK,EACAC,EACA/sE,EACAppE,EACA6hC,GAEA,IAAMh8D,EACJ,yCACAu+C,EACA,IACA16C,EACA,IACAwsK,EACA,IACAC,EACA,IACA/sE,EACA,IACAppE,EACA,IACA6hC,EACF,OAAO/7D,IAAMC,IAAIF,IAiCNm4E,EAAmB,SAAC/3E,GAE/B,OAAOH,IAAMI,KADE,0BACWD,IAEfirE,EAAiB,SAAC9sB,EAAa16C,GAC1C,IAAM7D,EACJ,oCAAsCu+C,EAAc,IAAM16C,EAC5D,OAAO5D,IAAMC,IAAIF,IAWN0wK,EAAiB,SAACtwK,GAC7BmD,QAAQC,IAAI,YAAapD,GAEzB,OAAOH,IAAMI,KADE,kCACWD,IAGfuwK,EAAwB,SACnCpyH,EACA16C,EACAC,GAEA,IAAM9D,EACJ,mCACAu+C,EACA,IACA16C,EACA,IACAC,EACF,OAAO7D,IAAMC,IAAIF,IAGN4wK,EAAkB,SAACxwK,GAC9BmD,QAAQC,IAAI,YAAapD,GAEzB,OAAOH,IAAMI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,IAEN40C,GAA+B,SAACx0C,GAE3C,OAAOH,IAAMI,KADE,8CACWD,IAEfi0C,GAA8B,SACzCkK,EACA16C,EACAC,EACAmtK,EACAj9H,EACAtoC,GAEA,IAAM1L,EACJ,+CACAu+C,EACA,IACA16C,EACA,IACAC,EACA,IACAmtK,EACA,IACAj9H,EACA,IACAtoC,EACF,OAAOzL,IAAMC,IAAIF,IAMNsnF,GAAgC,SAC3C/oC,EACA16C,EACAC,GAEA,IAAM9D,EACJ,gDACAu+C,EACA,IACA16C,EACA,IACAC,EACF,OAAO7D,IAAMC,IAAIF,IAENynF,GAAkC,SAC7ClpC,EACA16C,EACAC,GAEA,IAAM9D,EACJ,uDACAu+C,EACA,IACA16C,EACA,IACAC,EACF,OAAO7D,IAAMC,IAAIF,IAENkoF,GAAqC,SAChD3pC,EACA16C,EACAC,EACAotK,GAEA,IAAMlxK,EACJ,0DACAu+C,EACA,IACA16C,EACA,IACAC,EACA,IACAotK,EACF,OAAOjxK,IAAMC,IAAIF,IAENyoF,GAAkC,SAACroF,EAAM+wK,GACpD,IAAMnxK,EAAS,uDAAyDmxK,EACxE,OAAOlxK,IAAMI,KAAKL,EAAQI,IAEfuoF,GAAqC,SAChDvoF,EACAgxK,EACAF,GAEA,IAAMlxK,EACJ,0DACAoxK,EACA,IACAF,EACF,OAAOjxK,IAAMI,KAAKL,EAAQI,IAIf4xB,GAAqC,SAChDusB,EACA16C,EACAC,GAEA,IAAM9D,EACJ,0DACAu+C,EACA,IACA16C,EACA,IACAC,EACF,OAAO7D,IAAMC,IAAIF,IAENkd,GAA2C,SACtDqhC,EACA16C,EACAC,GAEA,IAAM9D,EACJ,2DACAu+C,EACA,IACA16C,EACA,IACAC,EACF,OAAO7D,IAAMC,IAAIF,IAEN8zB,GAAkC,SAAC1zB,GAE9C,OAAOH,IAAMI,KADE,yDACWD,IAIfqqB,GAA2B,SACtCxsB,EACA4F,EACAC,GAEA,IAAM9D,EACJ,gDACA/B,EACA,IACA4F,EACA,IACAC,EACF,OAAO7D,IAAMC,IAAIF,IAEN2qB,GAAkC,SAC7C1sB,EACA4F,EACAC,GAEA,IAAM9D,EACJ,4DACA/B,EACA,IACA4F,EACA,IACAC,EACF,OAAO7D,IAAMC,IAAIF,IAEN4qB,GAA6B,SACxC3sB,EACA4F,EACAC,GAEA,IAAM9D,EACJ,uDACA/B,EACA,IACA4F,EACA,IACAC,EACF,OAAO7D,IAAMC,IAAIF,IAENmrB,GAAgC,SAC3CltB,EACA4F,EACAC,GAEA,IAAM9D,EACJ,0DACA/B,EACA,IACA4F,EACA,IACAC,EACF,OAAO7D,IAAMC,IAAIF,IAENorB,GAA6B,SACxCntB,EACA4F,EACAC,GAEA,IAAM9D,EACJ,uDACA/B,EACA,IACA4F,EACA,IACAC,EACF,OAAO7D,IAAMC,IAAIF,IAENksB,GAAkC,SAAC9rB,GAE9C,OAAOH,IAAMI,KADE,2DACWD,IAIfmd,GAAkC,SAACghC,EAAa16C,GAC3D,IAAM7D,EACJ,+CACAu+C,EACA,IACA16C,EACF,OAAO5D,IAAMC,IAAIF,IAEN0d,GAAyC,SACpD6gC,EACA16C,EACAC,GAEA,IAAM9D,EACJ,uDACAu+C,EACA,IACA16C,EACA,IACAC,EACF,OAAO7D,IAAMC,IAAIF,IAENyiB,GAA6C,SAACriB,GAEzD,OAAOH,IAAMI,KADE,sDACWD,IAEfoe,GAA4C,SAACpe,GAExD,OAAOH,IAAMI,KADE,sDACWD,IAyBfimB,GAAqC,SAChDk4B,EACA16C,EACAC,GAEA,IAAM9D,EACJ,qDACAu+C,EACA,IACA16C,EACA,IACAC,EACF,OAAO7D,IAAMC,IAAIF,IAGNsmB,GAAuC,SAClDi4B,EACA16C,EACAC,EACAo2J,GAEA,IAAMl6J,EACJ,qDACAu+C,EACA,IACA16C,EACA,IACAC,EACA,IACAo2J,EACF,OAAOj6J,IAAMC,IAAIF,IAGNunB,GAAkC,SAC7Cg3B,EACA16C,EACA0I,EACAG,GAEA,IAAM1M,EACJ,4DACAu+C,EACA,IACA16C,EACA,IACA0I,EACA,IACAG,EACF,OAAOzM,IAAMC,IAAIF,IAGN0nB,GAAiC,SAACtnB,GAE7C,OAAOH,IAAMI,KADE,oDACWD,IAEfixK,GAAoC,SAC/C9yH,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AuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,SACrC,CAAED,IAAK,sBAAuBC,MAAO,UAQxC,EAAkDrL,oBAAS,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","file":"static/js/main.f343ec02.chunk.js","sourcesContent":["import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialState = {\r\n user: {\r\n IsSignIn: false,\r\n ClientSerNo: \"1201\",\r\n PropertySerNo: \"1\",\r\n CurrentModule : \"F\",\r\n UserID : \"SUPER1201\"\r\n },\r\n user2: {},\r\n confirmAlert: {\r\n show: false,\r\n Message: \"\",\r\n Type: \"lbl\",\r\n Buttons: [],\r\n },\r\n innAlert : {\r\n show : false,\r\n Message : \"\"\r\n }\r\n};\r\n\r\nexport const authSlice = createSlice({\r\n name: \"auth\",\r\n initialState,\r\n reducers: {\r\n logout: (state) => {\r\n state.user.IsSignIn = false;\r\n },\r\n login: (state, action) => {\r\n //state.user2 = action.payload;\r\n state.user = action.payload;\r\n state.user.CurrentModule = \"F\";\r\n //console.log(state.user2);\r\n state.user.IsSignIn = true;\r\n },\r\n setClientSerNo: (state, action) => {\r\n state.user.ClientSerNo = action.payload;\r\n },\r\n setPropertySerNo: (state, action) => {\r\n state.user.PropertySerNo = action.payload;\r\n },\r\n SHOW_CONFIRM: (state, action) => {\r\n state.confirmAlert.show = true;\r\n state.confirmAlert.Message = action.payload.Message;\r\n state.confirmAlert.Type = action.payload.Type;\r\n state.confirmAlert.Buttons = action.payload.Buttons;\r\n },\r\n HIDE_CONFIRM: (state, action) => {\r\n state.confirmAlert.show = false;\r\n state.confirmAlert.Message = \"\";\r\n },\r\n showAlert : (state,action) => {\r\n state.innAlert.show = true;\r\n state.innAlert.Message = action.payload;\r\n },\r\n hideAlert : (state,action) => {\r\n state.innAlert.show = false;\r\n state.innAlert.Message = \"\";\r\n },\r\n setModule : (state,action) => {\r\n state.user.CurrentModule = action.payload;\r\n }\r\n },\r\n});\r\n\r\nexport const { login, logout, setClientSerNo,setPropertySerNo, SHOW_CONFIRM, HIDE_CONFIRM,showAlert,hideAlert,setModule } =\r\n authSlice.actions;\r\nexport const currentUser = (state) => state.auth.user;\r\nexport const confirmData = (state) => state.auth.confirmAlert;\r\nexport const alertData = (state) => state.auth.innAlert;\r\n\r\nexport default authSlice.reducer;\r\n","import axios from \"axios\";\r\n//#region bolock attachment\r\nexport const GetBlockAttachment = (ClientSerNo, PropertySerNo, BlockSerNo) => {\r\n const apiUrl = \"/ReservationBlock/manage-block-attachment/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + BlockSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const AddEditBlockAttachment = (para) => {\r\n const apiUrl = \"/ReservationBlock/manage-block-attachment\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//#endregion\r\n\r\n//#region\r\n\r\nexport const GetBlockReservationForBulkPost = (ClientSerNo, PropertySerNo, BlockSerNo) => {\r\n const apiUrl = \"/ReservationBlock/manage-block-reservation-for-bulk-post/\"\r\n + ClientSerNo\r\n + \"/\" + PropertySerNo\r\n + \"/\" + BlockSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const PostReservationBulkTransaction = (para) => {\r\n const apiUrl = \"/ReservationBlock/manage-bulk-reservation-payment\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const AddReservationBulkTransaction = (para) => {\r\n const apiUrl = \"/ReservationBlock/manage-block-reservation-payment\";\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnTooltip,\r\n InnPrimaryButton,\r\n InnPlainButton,\r\n} from \"../../../../component\";\r\nimport {\r\n IndiReservationContact,\r\n IndiBookedOn,\r\n IndiTransportation,\r\n IndiBillingInstruction,\r\n IndiVipStatus,\r\n IndiAlert,\r\n IndiTrace,\r\n IndiGuestProfile,\r\n IndiArrival,\r\n IndiAdultChild,\r\n IndiRoomRate,\r\n IndiInclusion,\r\n IndiRoomType,\r\n IndiAgent,\r\n IndiCompany,\r\n IndiRateCode,\r\n IndiDailyRate,\r\n IndiFutureStay,\r\n IndiLateDeparture\r\n} from \"../indicators\";\r\nimport smsIcon from \"../../../../assets/images/sms-tooltip-icon.svg\";\r\nimport EmailTooltipIcon from \"../../../../assets/images/email-tooltip-icon.svg\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n GetReservationInfoData,\r\n manageReservationBalanceIndicator,\r\n GetReservationInfoProfileData\r\n} from \"../../../../services/reservationService\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nexport function TipDueOut(props) {\r\n //#region UseState Variable\r\n const currUser = useSelector(currentUser);\r\n const history = useHistory();\r\n const [reservationInfoData, setReservationInfoData] = useState({});\r\n const [isReloadTransportation, setIsReloadTransportation] = useState(false);\r\n const [updatePreference, setUpdatePreference] = useState(false);\r\n const [selectedGuestProfile, setSelectedGuestProfile] = useState({});\r\n const [totalBalance, setTotalBalance] = useState({});\r\n const [guestInfo, setGuestInfo] = useState({});\r\n //#endregion\r\n //#region Local Variable\r\n const reservationObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: props.para.ReservationSerNo,\r\n };\r\n //#endregion\r\n\r\n //#region APICallFunction\r\n\r\n const getSelectedGuestInfo = (guestProfileSerNo) => {\r\n GetReservationInfoProfileData(currUser.ClientSerNo, guestProfileSerNo,\"GU\").then(d => {\r\n setGuestInfo(d.data);\r\n })\r\n }\r\n //#endregion\r\n //#region Event\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n };\r\n //#endregion\r\n //#region UseEffect \r\n useEffect(() => {\r\n if (props.para.ReservationSerNo != undefined) {\r\n GetReservationInfoData(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n props.para.ReservationSerNo\r\n ).then((d) => {\r\n setReservationInfoData(d.data);\r\n getSelectedGuestInfo(d.data.GuestProfileSerNo);\r\n });\r\n }\r\n }, [props.para.ReservationSerNo]);\r\n\r\n useEffect(() => {\r\n manageReservationBalanceIndicator(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n reservationObj.ReservationSerNo\r\n ).then((d) => {\r\n setTotalBalance(d.data);\r\n });\r\n }, []);\r\n //#endregion\r\n\r\n //#region ToolTip Function\r\n const GuestTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
{guestInfo.ContactName}
\r\n
\r\n {guestInfo.ContactMobile}\r\n \r\n SMS\r\n \r\n
\r\n
\r\n {guestInfo.ContactEmail}\r\n \r\n Email\r\n \r\n
\r\n
\r\n
\r\n {/*
\r\n Edit\r\n
*/}\r\n
\r\n );\r\n };\r\n const DueOutStatusTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n Checked In By\r\n Mr. Hemang\r\n
\r\n
Date: 12 Mar.
\r\n
Time: 10:20PM
\r\n
PC: 192.168.600.789
\r\n
\r\n
\r\n
\r\n );\r\n };\r\n //#endregion\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {reservationInfoData.GuestName}\r\n \r\n \r\n \r\n Booking No:{reservationInfoData.BookingNo}\r\n
\r\n
\r\n
\r\n {/* Res. No. 12345678910     Ref. No. 54238521{\" \"} */}\r\n \r\n Due Out\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {totalBalance.Nights} Nights  Inclusive of all taxes\r\n
\r\n
\r\n {totalBalance.Balance}\r\n
\r\n\r\n {\r\n history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: reservationInfoData.ReservationSerNo,filterObj: (props.para.filterObj) == undefined ? undefined : props.para.filterObj }});\r\n }}>View\r\n
\r\n
\r\n
\r\n
Reservation
\r\n \r\n \r\n \r\n
BILLING
\r\n
\r\n Balance\r\n {totalBalance.Balance}\r\n
\r\n \r\n
\r\n
\r\n {\r\n setSelectedGuestProfile(item);\r\n setUpdatePreference(!updatePreference);\r\n }}\r\n >\r\n \r\n \r\n \r\n
\r\n Stay History\r\n (2)\r\n
\r\n
\r\n notification\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","export default __webpack_public_path__ + \"static/media/hr-three-dot.db407a18.svg\";","export default __webpack_public_path__ + \"static/media/info-icon.1f9e7ca1.svg\";","export default __webpack_public_path__ + \"static/media/down-arrow.2b29cf94.svg\";","export default __webpack_public_path__ + \"static/media/up-arrow.69e6fd2a.svg\";","import React from \"react\";\r\nimport { useState, useEffect, useRef, useCallback } from \"react\";\r\n\r\nexport default function InnThreeBarChart(props) {\r\n const svgRef = useRef();\r\n const svgDivRef = useRef();\r\n const [xAxisData, setXAxisData] = useState(props.xData);\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const getContainerDimension = useRef();\r\n\r\n const [containerHeight, setContainerHeight] = useState(0);\r\n const [containerWidth, setContainerWidth] = useState(0);\r\n const size = useWindowSize();\r\n useEffect(() => {\r\n if (getContainerDimension.current != undefined) {\r\n setContainerHeight(getContainerDimension.current.clientHeight);\r\n setContainerWidth(getContainerDimension.current.clientWidth);\r\n }\r\n setTimeout(() => {\r\n if (\r\n (xAxisData.length - 1) * props.gapBetweenXAxisTicks +\r\n props.graphStart +\r\n props.graphEnd +\r\n 3 * props.barWidth +\r\n 2 * props.gapBetweenBars +\r\n props.paddingFromScreen >\r\n containerWidth - props.paddingLeftForXAxis\r\n ) {\r\n setSvgWidth(\r\n (xAxisData.length - 1) * props.gapBetweenXAxisTicks +\r\n props.graphStart +\r\n props.graphEnd +\r\n 3 * props.barWidth +\r\n 2 * props.gapBetweenBars +\r\n props.paddingFromScreen\r\n );\r\n } else {\r\n if (getContainerDimension.current != undefined) {\r\n setSvgWidth(getContainerDimension.current.clientWidth - props.paddingLeftForXAxis);\r\n }\r\n }\r\n\r\n // if (xAxisData.length === 1) {\r\n // if (\r\n // props.barWidth * 3 + 2 * props.gapBetweenBars + props.graphStart + props.paddingFromScreen + props.gapBetweenXAxisTicks / 2 >\r\n // containerWidth - props.paddingLeftForXAxis\r\n // ) {\r\n // setSvgWidth(props.barWidth * 3 + props.graphStart + props.paddingFromScreen + props.paddingLeftForXAxis);\r\n // } else {\r\n // setSvgWidth(size.width - props.paddingLeftForXAxis);\r\n // }\r\n // } else {\r\n // if (\r\n // (xAxisData.length - 1) * props.gapBetweenXAxisTicks +\r\n // props.graphStart +\r\n // props.graphEnd +\r\n // 3 * props.barWidth +\r\n // 2 * props.gapBetweenBars +\r\n // props.paddingFromScreen <\r\n // size.width\r\n // ) {\r\n // setSvgWidth(size.width - props.paddingLeftForXAxis);\r\n // } else {\r\n // setSvgWidth(\r\n // (xAxisData.length - 1) * props.gapBetweenXAxisTicks +\r\n // props.graphStart +\r\n // props.graphEnd +\r\n // 3 * props.barWidth +\r\n // 2 * props.gapBetweenBars +\r\n // props.paddingFromScreen\r\n // );\r\n // }\r\n // }\r\n }, 50);\r\n }, [size.height, size.width]);\r\n useEffect(() => {\r\n setXAxisData(props.xData);\r\n }, [props.xData]);\r\n function useWindowSize() {\r\n const [windowSize, setWindowSize] = useState({\r\n width: undefined,\r\n height: undefined,\r\n });\r\n useEffect(() => {\r\n function handleResize() {\r\n setWindowSize({\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n });\r\n }\r\n window.addEventListener(\"resize\", handleResize);\r\n handleResize();\r\n return () => window.removeEventListener(\"resize\", handleResize);\r\n }, []);\r\n return windowSize;\r\n }\r\n const x_axis_x1_point = 0;\r\n const x_axis_y1_point = containerHeight - props.paddingFromScreen;\r\n const x_axis_x2_point = svgWidth - props.paddingFromScreen;\r\n //const x_axis_x2_point = containerWidth - 2 * props.paddingFromScreen;\r\n const x_axis_y2_point = x_axis_y1_point;\r\n const gapBetweenYAxisTicks = (containerHeight - props.paddingFromScreen * 2) / props.yData.length;\r\n\r\n const render_x_axis = () => {\r\n let xTicksData = [];\r\n let currX1 = 0;\r\n let currY = 0;\r\n let currX2 = svgWidth - props.paddingFromScreen;\r\n //let currX2 = containerWidth - 2 * props.paddingFromScreen;\r\n\r\n for (let i = 0; i < props.yData.length; i++) {\r\n currY = containerHeight - props.paddingFromScreen - gapBetweenYAxisTicks * (i + 1);\r\n xTicksData.push({ x1: currX1, x2: currX2, y: currY });\r\n }\r\n return (\r\n \r\n \r\n {xTicksData.map((item, index) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n );\r\n };\r\n // const render_y_axis = () => {\r\n // return (\r\n // \r\n // \r\n // \r\n // );\r\n // };\r\n const render_x_axis_tick_lable = () => {\r\n let xTicksData = [];\r\n let currX = 0;\r\n let currWidth = props.graphStart + props.barWidth * 1.5 + props.gapBetweenBars * 2 + props.gapBetweenXAxisTicks / 2;\r\n let currY = 0;\r\n for (let i = 0; i < xAxisData?.length; i++) {\r\n if (i === 0) {\r\n currX = 0;\r\n currY = containerHeight - props.paddingFromScreen + props.axisWidth / 2;\r\n } else if (i === 1) {\r\n currX = currWidth;\r\n currWidth = props.gapBetweenXAxisTicks + props.gapBetweenBars * 2;\r\n currY = containerHeight - props.paddingFromScreen + props.axisWidth / 2;\r\n } else if (i === 2) {\r\n currX = currX + props.gapBetweenXAxisTicks - props.gapBetweenBars * 2;\r\n currY = containerHeight - props.paddingFromScreen + props.axisWidth / 2;\r\n currWidth = props.gapBetweenXAxisTicks + props.gapBetweenBars * 2;\r\n } else {\r\n currX = currX + props.gapBetweenXAxisTicks;\r\n currY = containerHeight - props.paddingFromScreen + props.axisWidth / 2;\r\n currWidth = props.gapBetweenXAxisTicks + props.gapBetweenBars * 2;\r\n }\r\n\r\n xTicksData.push({ x: currX, y: currY, width: currWidth });\r\n }\r\n return xTicksData.map((item, index) => {\r\n return (\r\n \r\n {xAxisData[index].name}\r\n \r\n );\r\n });\r\n };\r\n const render_y_axis_tick_label = () => {\r\n let yTicksData = [];\r\n let currX = 0;\r\n let currY = gapBetweenYAxisTicks * 4 + props.paddingFromScreen - props.yAxisFontSize * 1.5;\r\n for (let i = 0; i < props.yData.length; i++) {\r\n currX = props.paddingLeftForXAxis - 35;\r\n currY = currY - gapBetweenYAxisTicks;\r\n yTicksData.push({ x: currX, y: currY });\r\n }\r\n return yTicksData.map((item, index) => {\r\n return (\r\n \r\n {props.yData[index]}\r\n \r\n );\r\n });\r\n };\r\n const render_barChart = () => {\r\n let currentValue = [];\r\n let curr = 0;\r\n let topVal = 0;\r\n for (let i = 0; i < xAxisData.length; i++) {\r\n curr = (xAxisData[i].data1 * gapBetweenYAxisTicks) / props.yData[0];\r\n topVal = containerHeight - curr - props.paddingFromScreen;\r\n currentValue.push({ curr: curr, topVal: topVal });\r\n }\r\n console.log(currentValue);\r\n return xAxisData.map((item, index) => {\r\n return (\r\n
\r\n
\r\n \r\n \r\n );\r\n });\r\n };\r\n\r\n const renderBarChartUsingSvgRectangle = () => {\r\n let currentValue = [];\r\n let curr1 = 0;\r\n let currX1 = props.graphStart;\r\n let topVal1 = 0;\r\n let currX2 = props.graphStart + props.barWidth + props.gapBetweenBars;\r\n let currX3 = props.graphStart + props.barWidth * 2 + props.gapBetweenBars * 2;\r\n let curr2 = 0;\r\n let topVal2 = 0;\r\n let curr3 = 0;\r\n let topVal3 = 0;\r\n let radius = props.barWidth / 2;\r\n for (let i = 0; i < xAxisData.length; i++) {\r\n curr1 = (xAxisData[i].data1 * gapBetweenYAxisTicks) / props.yData[0] - radius;\r\n topVal1 = containerHeight - curr1 - props.paddingFromScreen;\r\n if (i > 0) {\r\n currX1 = currX1 + props.gapBetweenXAxisTicks;\r\n currX2 = currX2 + props.gapBetweenXAxisTicks;\r\n currX3 = currX3 + props.gapBetweenXAxisTicks;\r\n }\r\n curr2 = (xAxisData[i].data2 * gapBetweenYAxisTicks) / props.yData[0] - radius;\r\n topVal2 = containerHeight - curr2 - props.paddingFromScreen;\r\n curr3 = (xAxisData[i].data3 * gapBetweenYAxisTicks) / props.yData[0] - radius;\r\n topVal3 = containerHeight - curr3 - props.paddingFromScreen;\r\n if (curr1 < 0 || curr2 < 0 || curr3 < 0) {\r\n if (curr1 < 0) {\r\n curr1 = 0;\r\n }\r\n if (curr2 < 0) {\r\n curr2 = 0;\r\n }\r\n if (curr3 < 0) {\r\n curr3 = 0;\r\n }\r\n }\r\n\r\n currentValue.push({\r\n curr1: curr1,\r\n currX1: currX1,\r\n topVal1: topVal1,\r\n circleCenterVal1: topVal1,\r\n curr2: curr2,\r\n currX2: currX2,\r\n topVal2: topVal2,\r\n circleCenterVal2: topVal2,\r\n curr3: curr3,\r\n currX3: currX3,\r\n topVal3: topVal3,\r\n circleCenterVal3: topVal3,\r\n });\r\n }\r\n return (\r\n \r\n {xAxisData.map((item, index) => {\r\n return (\r\n \r\n \r\n {currentValue[index].curr1 > 0 ? (\r\n \r\n ) : null}\r\n \r\n {currentValue[index].curr2 > 0 ? (\r\n \r\n ) : null}\r\n \r\n {currentValue[index].curr3 > 0 ? (\r\n \r\n ) : null}\r\n \r\n );\r\n })}\r\n \r\n );\r\n };\r\n return (\r\n \r\n \r\n {props.yData.length > 0 && render_y_axis_tick_label()}\r\n \r\n \r\n \r\n {xAxisData.length > 0 ? (\r\n <>\r\n {render_x_axis()}\r\n {renderBarChartUsingSvgRectangle()}\r\n \r\n {render_x_axis_tick_lable()}\r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { InnSearchTextbox } from \"../../../component\";\r\nimport LeftMenuArrow from \"../../../assets/images/inside-left-menu-arrow.svg\";\r\nimport { GetPropertyParameterByKeys } from \"../../../services/reservationService\";\r\nimport { currentUser } from \"../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport moment from \"moment\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { InnTooltip } from \"../../../component\";\r\nimport infoicon from \"../../../assets/images/info-icon.svg\";\r\nimport { toggleMenu, cGlobal } from \"../../../reducer/commonSlice\";\r\n\r\nfunction ReservationSubMenu(props) {\r\n const history = useHistory();\r\n const currUser = useSelector(currentUser);\r\n const parameter = ['BusinessDate'];\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n const dispatch = useDispatch();\r\n const [filRateCodeData, setFilRateCodeData] = useState([]);\r\n const onClose = () => {\r\n if (props.onClose != undefined) {\r\n props.onClose();\r\n }\r\n };\r\n\r\n const fillPropertyParameter = () => {\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parameter).then(d => {\r\n if (d.data != undefined && d.data.length > 0) {\r\n let obj = d.data.find(x => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(obj.value);\r\n }\r\n }\r\n });\r\n };\r\n\r\n const addDays = (date, days) => {\r\n var result = new Date(date);\r\n result.setDate(result.getDate() + days);\r\n return result;\r\n }\r\n // This Function Called When outside click Left sub sidebar is close or hide\r\n /* useEffect(() => {\r\n document.addEventListener(\"click\", handleClickOuside, false);\r\n return () => {\r\n //document.removeEventListener(\"click\", handleClickOuside, false);\r\n };\r\n },[props.onClose]);\r\n\r\n const wrapperRef = useRef(null);\r\n const handleClickOuside = (e) => {\r\n if (wrapperRef.current && !wrapperRef.current.contains(e.target)) {\r\n props.onClose();\r\n }\r\n }; */\r\n\r\n const SameDayCancel = () => {\r\n return (\r\n
\r\n
\r\n
\r\n This view includes the reservations that are cancelled for future date as well\r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n const SameDayArrivalCancel = () => {\r\n return (\r\n
\r\n
\r\n
\r\n This view displays the reservations that are cancelled on the date of their arrival.\r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n fillPropertyParameter();\r\n }, []);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

system views

\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
    \r\n\r\n {props.para.Mainmenu != undefined && props.para.Mainmenu == \"Manage Block\" ?\r\n <>\r\n
  • \r\n \r\n
    {\r\n console.log(\"Manage Block View click\");\r\n history.push(\"/ReservationBlockListPage\");\r\n }}>\r\n Manage Block Cancellations\r\n
    \r\n
  • \r\n \r\n :\r\n <>\r\n }\r\n {props.para.Mainmenu != undefined && props.para.Mainmenu == \"Manage Reservation\" ?\r\n <>\r\n
  • \r\n \r\n
    {\r\n console.log(\"Reservations On Hold & Tentative\");\r\n history.push({\r\n pathname: \"/ReservationListPage\",\r\n state: {\r\n filterObj: {\r\n FromDate: moment(businessDate).format(\"DD-MMM-YY\"),\r\n ToDate: moment(addDays(businessDate, 90)).format(\"DD-MMM-YY\"),\r\n DtType: \"ARR\",\r\n ReservationStatus: \"TEN,HLD\",\r\n Mainmenu: \"Manage Reservation\"\r\n }\r\n },\r\n })\r\n onClose();\r\n }}>\r\n Reservations On Hold & Tentative\r\n
    \r\n
  • \r\n
  • \r\n \r\n
    {\r\n console.log(\"Reservations Booked Today\");\r\n history.push({\r\n pathname: \"/ReservationListPage\",\r\n state: {\r\n filterObj: {\r\n FromDate: moment(businessDate).format(\"DD-MMM-YY\"),\r\n ToDate: moment(businessDate).format(\"DD-MMM-YY\"),\r\n DtType: \"BOOK\",\r\n ReservationStatus: \"DIN\",\r\n Mainmenu: \"Manage Reservation\",\r\n }\r\n },\r\n })\r\n onClose();\r\n }}>\r\n Reservations Booked Today\r\n
    \r\n
  • \r\n \r\n :\r\n <>\r\n }\r\n {\r\n props.para.Mainmenu != undefined && props.para.Mainmenu == \"Cancellation\" ?\r\n <>\r\n
  • \r\n \r\n
    {\r\n console.log(\"Reservations Booked Today\");\r\n history.push({\r\n pathname: \"/ReservationCancelList\",\r\n state: {\r\n filterObj: {\r\n ClientSerNo: 1201,\r\n PropertySerNo: 1,\r\n SortCol: \"ArrivalDate\",\r\n SortType: \"asc\",\r\n DtType: \"CANC\",\r\n FromDate: businessDate,\r\n ToDate: businessDate,\r\n RoomTypeSerNo: \"\",\r\n RateSerNo: 0,\r\n CompanyProfileSerNo: 0,\r\n AgentProfileSerNo: 0,\r\n BookingNo: \"\",\r\n BookingReferenceNo: \"\",\r\n MembershipNo: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n VIPLevelSerNo: 0,\r\n strMemberShipLevel: \"\",\r\n CanReservationStatus: \"DP,NA,\",\r\n BlockName: \"\",\r\n RoomSerNo: 0,\r\n IsSameDayCancel: false,\r\n IsSameDayArrivalCancel: false,\r\n ReservationStatus: \"CAN\",\r\n Mainmenu: \"Cancellation\"\r\n }\r\n }\r\n })\r\n onClose();\r\n }}>\r\n \r\n Same Day Cancellations (i)\r\n \r\n
    \r\n
  • \r\n
  • \r\n \r\n
    {\r\n console.log(\"Reservations Booked Today\");\r\n history.push({\r\n pathname: \"/ReservationCancelList\",\r\n state: {\r\n filterObj: {\r\n ClientSerNo: 1201,\r\n PropertySerNo: 1,\r\n SortCol: \"ArrivalDate\",\r\n SortType: \"asc\",\r\n DtType: \"CANC\",\r\n FromDate: businessDate,\r\n ToDate: businessDate,\r\n RoomTypeSerNo: \"\",\r\n RateSerNo: 0,\r\n CompanyProfileSerNo: 0,\r\n AgentProfileSerNo: 0,\r\n BookingNo: \"\",\r\n BookingReferenceNo: \"\",\r\n MembershipNo: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n VIPLevelSerNo: 0,\r\n strMemberShipLevel: \"\",\r\n CanReservationStatus: \"DP,NA,\",\r\n BlockName: \"\",\r\n RoomSerNo: 0,\r\n IsSameDayCancel: false,\r\n IsSameDayArrivalCancel: true,\r\n ReservationStatus: \"CAN\",\r\n Mainmenu: \"Cancellation\"\r\n }\r\n }\r\n })\r\n onClose();\r\n }}>\r\n \r\n Same Day Arrival-Cancellations (i)\r\n \r\n
    \r\n
  • \r\n
  • \r\n \r\n
    {\r\n console.log(\"Reservations Booked Today\");\r\n history.push({\r\n pathname: \"/ReservationCancelList\",\r\n state: {\r\n filterObj: {\r\n ClientSerNo: 1201,\r\n PropertySerNo: 1,\r\n SortCol: \"ArrivalDate\",\r\n SortType: \"asc\",\r\n DtType: \"CANC\",\r\n FromDate: businessDate,\r\n ToDate: businessDate,\r\n RoomTypeSerNo: \"\",\r\n RateSerNo: 0,\r\n CompanyProfileSerNo: 0,\r\n AgentProfileSerNo: 0,\r\n BookingNo: \"\",\r\n BookingReferenceNo: \"\",\r\n MembershipNo: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n VIPLevelSerNo: 0,\r\n strMemberShipLevel: \"\",\r\n CanReservationStatus: \"DP,NA,\",\r\n BlockName: \"\",\r\n RoomSerNo: 0,\r\n IsSameDayCancel: false,\r\n IsSameDayArrivalCancel: false,\r\n ReservationStatus: \"NSH\",\r\n Mainmenu: \"Cancellation\"\r\n }\r\n }\r\n })\r\n onClose();\r\n }}>\r\n No Show Yesterday\r\n
    \r\n
  • \r\n \r\n :\r\n <>\r\n }\r\n {props.para.Mainmenu != undefined && props.para.Mainmenu == \"Manage In-House List\" ?\r\n <>\r\n
  • \r\n \r\n
    {\r\n console.log(\"Reservations Booked Today\");\r\n history.push({\r\n pathname: \"/ReservationListPage\",\r\n state: {\r\n filterObj: {\r\n FromDate: moment(businessDate).format(\"DD-MMM-YY\"),\r\n ToDate: moment(businessDate).format(\"DD-MMM-YY\"),\r\n DtType: \"ARR\",\r\n ReservationStatus: \"ARD\",\r\n Mainmenu: \"Manage In-House List\",\r\n }\r\n }\r\n })\r\n onClose();\r\n }}>\r\n Reservations On Advance Checked In\r\n
    \r\n
  • \r\n
  • \r\n \r\n
    {\r\n console.log(\"Reservations Booked Today\");\r\n history.push({\r\n pathname: \"/ReservationListPage\",\r\n state: {\r\n filterObj: {\r\n ReservationStatus: \"ARD\",\r\n FromDate: moment(businessDate).format(\"DD-MMM-YY\"),\r\n ToDate: moment(businessDate).format(\"DD-MMM-YY\"),\r\n DtType: \"STAY\",\r\n Mainmenu: \"Manage In-House List\",\r\n }\r\n }\r\n })\r\n onClose();\r\n }}>\r\n Reservations Arrived Today\r\n
    \r\n
  • \r\n
  • \r\n \r\n
    {\r\n console.log(\"Reservations Booked Today\");\r\n history.push({\r\n pathname: \"/ReservationListPage\",\r\n state: {\r\n filterObj: {\r\n FromDate: moment(businessDate).format(\"DD-MMM-YY\"),\r\n ToDate: moment(businessDate).format(\"DD-MMM-YY\"),\r\n ReservationStatus: \"INH,ARD\",\r\n DtType: \"STAY\",\r\n IsShowBlockRoomsOnly: true,\r\n Mainmenu: \"Manage In-House List\",\r\n }\r\n }\r\n })\r\n onClose();\r\n }}>\r\n Block Stay Over Today (Arrived + In house)\r\n
    \r\n
  • \r\n
  • \r\n \r\n
    {\r\n console.log(\"Reservations Booked Today\");\r\n history.push({\r\n pathname: \"/ReservationListPage\",\r\n state: {\r\n filterObj: {\r\n FromDate: moment(businessDate).format(\"DD-MMM-YY\"),\r\n ToDate: moment(businessDate).format(\"DD-MMM-YY\"),\r\n ReservationStatus: \"DOT\",\r\n DtType: \"STAY\",\r\n Mainmenu: \"Manage In-House List\",\r\n Submenu: \"Due Out Today\",\r\n }\r\n }\r\n })\r\n onClose();\r\n }}>\r\n Due Out Today\r\n
    \r\n
  • \r\n
  • \r\n \r\n
    {\r\n console.log(\"Reservations Booked Today\");\r\n history.push({\r\n pathname: \"/ReservationListPage\",\r\n state: {\r\n filterObj: {\r\n FromDate: moment(businessDate).format(\"DD-MMM-YY\"),\r\n ToDate: moment(businessDate).format(\"DD-MMM-YY\"),\r\n DtType: \"STAY\",\r\n ReservationStatus: \"INH,ARD\",\r\n Mainmenu: \"Manage In-House List\",\r\n }\r\n }\r\n })\r\n onClose();\r\n }}>\r\n Reservations Stay Over today (Arrived + In House)\r\n
    \r\n
  • \r\n
  • \r\n \r\n
    {\r\n console.log(\"Reservations Booked Today\");\r\n history.push({\r\n pathname: \"/ReservationListPage\",\r\n state: {\r\n filterObj: {\r\n FromDate: moment(businessDate).format(\"DD-MMM-YY\"),\r\n ToDate: moment(businessDate).format(\"DD-MMM-YY\"),\r\n DtType: \"STAY\",\r\n ReservationStatus: \"INH,ARD\",\r\n IsOnlyComplimentary: true,\r\n Mainmenu: \"Manage In-House List\",\r\n }\r\n }\r\n })\r\n onClose();\r\n }}>\r\n Complimentary Rooms Stay over today\r\n
    \r\n
  • \r\n
  • \r\n \r\n
    {\r\n console.log(\"Reservations Booked Today\");\r\n history.push({\r\n pathname: \"/ReservationListPage\",\r\n state: {\r\n filterObj: {\r\n FromDate: moment(businessDate).format(\"DD-MMM-YY\"),\r\n ToDate: moment(businessDate).format(\"DD-MMM-YY\"),\r\n DtType: \"STAY\",\r\n ReservationStatus: \"INH,ARD\",\r\n IsOnlyHouseUsed: true,\r\n Mainmenu: \"Manage In-House List\"\r\n }\r\n }\r\n })\r\n onClose();\r\n }}>\r\n House Use Rooms Stay Over Today\r\n
    \r\n
  • \r\n \r\n :\r\n <>\r\n }\r\n\r\n
\r\n\r\n {/*
\r\n custom Views\r\n console.log(item, name)}>\r\n
\r\n\r\n
    \r\n
  • \r\n \r\n
    Dynamic List
    \r\n
  • \r\n
  • \r\n \r\n
    Dynamic List
    \r\n
  • \r\n
  • \r\n \r\n
    Dynamic List two line text show
    \r\n
  • \r\n
  • \r\n \r\n
    Dynamic List
    \r\n
  • \r\n
  • \r\n \r\n
    Dynamic List
    \r\n
  • \r\n
  • \r\n \r\n
    Dynamic List
    \r\n
  • \r\n
  • \r\n \r\n
    Dynamic List
    \r\n
  • \r\n
  • \r\n \r\n
    Dynamic List
    \r\n
  • \r\n
  • \r\n \r\n
    Dynamic List
    \r\n
  • \r\n
  • \r\n \r\n
    Dynamic List
    \r\n
  • \r\n
*/}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default ReservationSubMenu;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnRadioButton,\r\n InnTextbox,\r\n InnTooltip,\r\n InnSingleRadioButton,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport { AddGuestModalPopup } from \"../modalPopup/addGuestModalPopup\"\r\nimport smsIcon from \"../../../../assets/images/sms-tooltip-icon.svg\";\r\nimport EmailTooltipIcon from \"../../../../assets/images/email-tooltip-icon.svg\";\r\nimport {\r\n GetReservationInfoReservationContactData, GetReservationInfoReservationContactProfileList,\r\n AddEditReservationContact, AddEditProfileContactDetail\r\n} from \"../../../../services/reservationService\";\r\nimport { nothing } from \"@reduxjs/toolkit/node_modules/immer\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { ManageRights } from \"../../../../services/generalService\";\r\n\r\nexport function IndiReservationContact(props) {\r\n const { t } = useTranslation();\r\n const { confirm } = useConfirm();\r\n const currUser = useSelector(currentUser);\r\n const [showReservationContactPopup, setShowReservationContactPopup] = useState(false);\r\n const [contactType, setContactType] = useState(\"\");\r\n const [resContactData, setContactData] = useState([]);\r\n const [contactListData, setContactListData] = useState([]);\r\n const [rbValue, setrbValue] = useState(0);\r\n const [isOpenAddGuest, setIsOpenAddGuest] = useState(false);\r\n const [contactDetailValidation, setContactDetailValidation] = useState({\r\n \"Name\": \"\",\r\n \"EmaiID\": \"\",\r\n \"MobileNo\": \"\"\r\n });\r\n const [showEditDiv, setShowEditDiv] = useState(true)//use to show Edit button\r\n const [userRightsData, setUserRightsData] = useState([]);\r\n\r\n const rbDataContact = [\r\n { key: \"Company\", value: \"Company\" },\r\n { key: \"Agent\", value: \"Agent\" },\r\n { key: \"Direct\", value: \"Direct\" },\r\n ];\r\n const [resContactDetail, setResContactDetail] = useState({\r\n \"ClientSerNo\": parseInt(props.para.ClientSerNo),\r\n \"PropertySerNo\": parseInt(props.para.PropertySerNo),\r\n \"ReservationSerNo\": parseInt(props.para.ReservationSerNo),\r\n \"ContactProfileSerNo\": nothing,\r\n \"ReservationContactType\": \"\",\r\n \"ContactName\": \"\",\r\n \"ContactMobile\": \"\",\r\n \"ContactEmail\": \"\"\r\n })\r\n const isValidData = () => {\r\n let isValid = true;\r\n if (resContactDetail.ContactName != \"\" && resContactDetail.ContactMobile == \"\") {\r\n isValid = false;\r\n setContactDetailValidation(prev => ({ ...prev, MobileNo: \"Enter the MobileNo\" }));\r\n }\r\n else if ((resContactDetail.ContactMobile != \"\" || resContactDetail.ContactEmail != \"\") && resContactDetail.ContactName == \"\") {\r\n isValid = false;\r\n setContactDetailValidation(prev => ({ ...prev, Name: \"Enter the Name\" }));\r\n }\r\n else if (resContactDetail.ContactEmail != \"\" && new RegExp(/[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,15}/g).test(resContactDetail.ContactEmail) == false) {\r\n isValid = false;\r\n setContactDetailValidation(prev => ({ ...prev, EmaiID: \"Please Enter Valid Email Address...\" }));\r\n }\r\n return isValid;\r\n }\r\n\r\n\r\n const getReservationContactData = () => {\r\n GetReservationInfoReservationContactData(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo).then(d => {\r\n setContactData(d.data);\r\n if (d.data.ReservationContactType == \"DR\") {\r\n setResContactDetail(prev => ({ ...prev, ContactName: d.data.ContactName, ContactEmail: d.data.ContactEmail, ContactMobile: d.data.ContactMobile }))\r\n }\r\n }).catch(error => {\r\n setContactData([]);\r\n setResContactDetail([]);\r\n })\r\n\r\n }\r\n\r\n\r\n const fillContactProfileList = (conType) => {\r\n if (conType == \"Company\") {\r\n GetReservationInfoReservationContactProfileList(props.para.ClientSerNo, \"CO\", resContactData.CompanyProfileSerNo).then(d => {\r\n setContactListData(d.data);\r\n }).catch(error => {\r\n setContactListData([]);\r\n })\r\n } else if (conType == \"Agent\") {\r\n GetReservationInfoReservationContactProfileList(props.para.ClientSerNo, \"AG\", resContactData.AgentProfileSerNo).then(d => {\r\n setContactListData(d.data);\r\n }).catch(error => {\r\n setContactListData([]);\r\n })\r\n }\r\n else if (conType == \"Direct\") {\r\n setContactListData([]);\r\n }\r\n }\r\n\r\n const fillUserRights = () => {\r\n ManageRights(currUser.ClientSerNo, currUser.UserID, \"65,66\").then((d) => {\r\n setUserRightsData(d.data);\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n getReservationContactData();\r\n fillUserRights();\r\n if (props.para != undefined) {\r\n if (props.para.IsShowTooltipActionButton == \"hide\") {\r\n setShowEditDiv(false)\r\n }\r\n else {\r\n setShowEditDiv(true)\r\n }\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (contactType != \"\") {\r\n fillContactProfileList(contactType);\r\n }\r\n }, [contactType]);\r\n\r\n const handleEditOnClick = () => {\r\n console.log(\"Reservation Contact Data\", resContactData);\r\n if (resContactData.ContactName == \"\") {\r\n handleUserRights(\"65\").then(d => {\r\n if (d) {\r\n setrbValue(resContactData.ReservationContactSerNo);\r\n var rbval = \"\"\r\n if (resContactData.ReservationContactType != \"\" && resContactData.ReservationContactType != null) {\r\n rbval = resContactData.ReservationContactType == \"AG\" ? \"Agent\" : resContactData.ReservationContactType == \"CO\" ? \"Company\" : \"Direct\";\r\n }\r\n else {\r\n if(resContactData.CompanyProfileSerNo != 0 ){\r\n rbval = \"Company\";\r\n }\r\n else if(resContactData.AgentProfileSerNo != 0 ){\r\n rbval = \"Agent\";\r\n }\r\n else if (resContactData.AgentProfileSerNo != 0 && resContactData.CompanyProfileSerNo != 0 ){\r\n rbval = \"Agent\";\r\n }\r\n else if(resContactData.CompanyProfileSerNo == 0 && resContactData.CompanyProfileSerNo == 0 ){\r\n rbval = \"Direct\"\r\n }\r\n }\r\n setContactType(rbval);\r\n setShowReservationContactPopup(!showReservationContactPopup);\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n }\r\n else{\r\n handleUserRights(\"66\").then(d=>{\r\n if(d){\r\n setrbValue(resContactData.ReservationContactSerNo);\r\n var rbval = \"\"\r\n if (resContactData.ReservationContactType != \"\" && resContactData.ReservationContactType != null) {\r\n rbval = resContactData.ReservationContactType == \"AG\" ? \"Agent\" : resContactData.ReservationContactType == \"CO\" ? \"Company\" : \"Direct\";\r\n }\r\n else {\r\n rbval = \"Direct\"\r\n }\r\n setContactType(rbval);\r\n setShowReservationContactPopup(!showReservationContactPopup); }\r\n else{\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n }\r\n }\r\n\r\n\r\n const handleSaveOnClick = () => {\r\n let IsPageValid = isValidData();\r\n if (IsPageValid) {\r\n resContactDetail.ReservationContactType = \"DR\"\r\n AddEditReservationContact(resContactDetail).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n setShowReservationContactPopup(false);\r\n getReservationContactData();\r\n }\r\n }).catch(error => {\r\n })\r\n }\r\n }\r\n const handleApplyOnClick = () => {\r\n AddEditReservationContact(resContactDetail).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n setShowReservationContactPopup(false);\r\n getReservationContactData();\r\n }\r\n }).catch(error => {\r\n })\r\n }\r\n const hanleAddNewOnClick = () => {\r\n setIsOpenAddGuest(true);\r\n }\r\n const handleAddProfileContact = (guestObj) => {\r\n let profileContactDetail = []\r\n profileContactDetail.push({\r\n ClientSerNo: props.para.ClientSerNo,\r\n ProfileSerNo: contactType == \"Company\" ? resContactData.CompanyProfileSerNo : resContactData.AgentProfileSerNo,\r\n ContactProfileSerNo: guestObj.ProfileSerNo,\r\n Designation: guestObj.Designation,\r\n IsPrimary: false\r\n })\r\n AddEditProfileContactDetail(profileContactDetail[0]).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n setIsOpenAddGuest(false);\r\n fillContactProfileList(contactType);\r\n }\r\n }).catch(error => {\r\n })\r\n }\r\n\r\n const handleUserRights = async (strRightsSerNo) => {\r\n if (strRightsSerNo != undefined) {\r\n const userRightObj = userRightsData.find((x) => x.RightsSerNo == strRightsSerNo);\r\n if (userRightObj != undefined) {\r\n if (userRightObj.IsApply != undefined) {\r\n if (userRightObj.IsApply) {\r\n return true;\r\n } else {\r\n await confirm({\r\n Message: `${userRightObj.Name} : ${userRightObj.PromptMessage}`,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n }\r\n };\r\n\r\n const ReservationContactTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
{resContactData.ContactName} (Source)
\r\n
\r\n Mobile: {resContactData.ContactMobile}\r\n \r\n SMS\r\n \r\n
\r\n
\r\n Email: {resContactData.ContactEmail}\r\n \r\n Email\r\n \r\n
\r\n
\r\n Department : {resContactData.ContactDepartment}\r\n
\r\n
\r\n Designation : {resContactData.ContactDesignation}\r\n
\r\n
\r\n
\r\n {\r\n showEditDiv ?\r\n
\r\n handleEditOnClick()}>Edit\r\n
\r\n :\r\n <>\r\n }\r\n
\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n
\r\n {t('INN_ReservationContact')}\r\n {resContactData.ContactName}\r\n
\r\n \r\n\r\n {\r\n showReservationContactPopup ? (\r\n setShowReservationContactPopup(false)}\r\n >\r\n
\r\n
\r\n
\r\n

Contact

\r\n
\r\n {contactType == \"Company\" || contactType == \"Agent\" ? (\r\n
\r\n {\r\n handleApplyOnClick()\r\n }}>Apply\r\n\r\n
\r\n ) : contactType == \"Direct\" ? (\r\n
\r\n {\r\n handleSaveOnClick()\r\n }}>Save\r\n
\r\n ) : (\r\n <>\r\n )}\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    \r\n Confirmation No.\r\n
    \r\n
    \r\n {resContactData.BookingNo}\r\n
    \r\n
  • \r\n
  • \r\n
    Guest Name
    \r\n
    \r\n {resContactData.GuestName}\r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n setContactType(value);\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {contactType == \"Company\" ? (\r\n
\r\n
\r\n
    \r\n {\r\n contactListData.map(element => {\r\n return (\r\n
  • \r\n
    \r\n {\r\n setResContactDetail(prev => ({ ...prev, ContactProfileSerNo: parseInt(value), ReservationContactType: \"CO\" }))\r\n setrbValue(parseInt(value));\r\n }}>\r\n {element.IsPrimary == true ? \"Primary\" : \"\"}\r\n
    \r\n
    {element.ContactMobile}
    \r\n
    \r\n {element.ContactEmail}\r\n
    \r\n
  • )\r\n })\r\n }\r\n
\r\n
\r\n
\r\n hanleAddNewOnClick()}>\r\n Add New\r\n \r\n
\r\n
\r\n ) : contactType == \"Agent\" ? (\r\n
\r\n
\r\n
    \r\n {\r\n contactListData.map((element, i) => {\r\n return (\r\n
  • \r\n
    \r\n {\r\n setResContactDetail(prev => ({ ...prev, ContactProfileSerNo: parseInt(value), ReservationContactType: \"AG\" }))\r\n setrbValue(parseInt(value))\r\n }}>\r\n {element.IsPrimary == true ? \"Primary\" : \"\"}\r\n
    \r\n
    {element.ContactMobile}
    \r\n
    \r\n {element.ContactEmail}\r\n
    \r\n
  • \r\n )\r\n })\r\n }\r\n
\r\n
\r\n
\r\n hanleAddNewOnClick()}>\r\n Add New\r\n \r\n
\r\n
\r\n ) : contactType == \"Direct\" ? (\r\n
\r\n {\r\n setResContactDetail(prev => ({ ...prev, ContactName: v }))\r\n }} type=\"text\" required={false} >\r\n Contact Person Name\r\n \r\n {\r\n setResContactDetail(prev => ({ ...prev, ContactMobile: v }))\r\n }} type=\"number\" required={false} >\r\n Mobile No.\r\n \r\n {\r\n setResContactDetail(prev => ({ ...prev, ContactEmail: v }))\r\n }} type=\"email\" required={false} >\r\n Email ID\r\n \r\n
\r\n ) : (\r\n <>\r\n )}\r\n {isOpenAddGuest ?\r\n {\r\n handleAddProfileContact(d.guest);\r\n }}\r\n handleOnclose={(e) => {\r\n setIsOpenAddGuest(!isOpenAddGuest);\r\n }}>\r\n \r\n : null\r\n }\r\n
\r\n
\r\n
\r\n
\r\n \r\n ) : null\r\n }\r\n \r\n )\r\n\r\n}","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport function IndiBookedOn(props) {\r\n \r\n const { t } = useTranslation();\r\n\r\n return (\r\n
\r\n {t('INN_BookedOn')}\r\n \r\n {/* 25th Sept (12 Days) */}\r\n\r\n {props.para.ReservationDate} ({props.para.ResBeforeDays} Days )\r\n \r\n
\r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnPrimaryButton,\r\n InnTooltip,\r\n InnButtonTypeWithDropdown,\r\n} from \"../../../../component\";\r\n\r\nimport smsIcon from \"../../../../assets/images/sms-tooltip-icon.svg\";\r\nimport EmailTooltipIcon from \"../../../../assets/images/email-tooltip-icon.svg\";\r\nimport { GetReservationInfoProfileData } from \"../../../../services/reservationService\";\r\n\r\nexport function IndiGuestName(props) {\r\n\r\n const [guestInfo, setGuestInfo] = useState({});\r\n\r\n useEffect(()=>{\r\n if(props.para.ClientSerNo != undefined){\r\n GetReservationInfoProfileData(props.para.ClientSerNo,props.para.GuestProfileSerNo,\"GU\").then(d => {\r\n setGuestInfo(d.data);\r\n })\r\n } \r\n },[props.para.GuestProfileSerNo]);\r\n\r\n // const ExportOption = [\r\n // { key: \"Export (PDF)\", value: \"pdf\" },\r\n // { key: \"Export (Excel)\", value: \"excel\" },\r\n // { key: \"Print\", value: \"print\" },\r\n // { key: \"Group\", value: \"group\" },\r\n // { key: \"UnGroup\", value: \"ungroup\" },\r\n // ];\r\n const GuestTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
{guestInfo.ContactName}
\r\n
\r\n Communication Type : {guestInfo.CommunicationType} \r\n
\r\n
\r\n Mobile: {guestInfo.ContactMobile}\r\n \r\n SMS\r\n \r\n
\r\n
\r\n Email: {guestInfo.ContactEmail}\r\n \r\n Email\r\n \r\n
\r\n
\r\n
\r\n
\r\n {/* Edit\r\n\r\n console.log(item, name)}\r\n > */}\r\n
\r\n
\r\n );\r\n };\r\n return (\r\n
\r\n \r\n {guestInfo.ProfileName}\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport function IndiArrival(props) {\r\n const { t } = useTranslation();\r\n \r\n return (\r\n
\r\n {t('INN_Arrival')}\r\n \r\n {props.para.ArrivalDay}, {props.para.ArrivalDate} ({props.para.Nights} Nights)\r\n \r\n
\r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n InnPrimaryButton,\r\n InnTooltip,\r\n InnButtonTypeWithDropdown\r\n} from \"../../../../component\";\r\nimport { manageReservationIndicator } from \"../../../../services/reservationService\";\r\n\r\nexport function IndiRoomType(props) {\r\n\r\n const [indiRoomTypeData, setIndiRoomTypeData] = useState({});\r\n\r\n useEffect(() => {\r\n manageReservationIndicator(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo).then(d => {\r\n setIndiRoomTypeData(d.data);\r\n })\r\n }, [props.para.ReservationSerNo]);\r\n\r\n // const ExportOption = [\r\n // { key: \"Export (PDF)\", value: \"pdf\" },\r\n // { key: \"Export (Excel)\", value: \"excel\" },\r\n // { key: \"Print\", value: \"print\" },\r\n // { key: \"Group\", value: \"group\" },\r\n // { key: \"UnGroup\", value: \"ungroup\" },\r\n // ];\r\n const UpgradeTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {\r\n indiRoomTypeData && indiRoomTypeData.RoomTypeSerNo > indiRoomTypeData.ChargeableRoomTypeSerNo ?\r\n <>Upgrade\r\n :\r\n indiRoomTypeData.RoomTypeSerNo < indiRoomTypeData.ChargeableRoomTypeSerNo ?\r\n <>Downgrade: <>\r\n }\r\n
\r\n
\r\n Room charge to be charged : {indiRoomTypeData.ChargeableRoomTypeName}\r\n
\r\n
\r\n Reason: {indiRoomTypeData.UpgradeReason}\r\n
\r\n {/* -- pending from database side \r\n
\r\n User Name : Mr. Hemang\r\n
\r\n
\r\n Date : 15 Dec 2021\r\n
\r\n
\r\n Time : 10:20 PM\r\n
*/}\r\n
\r\n
\r\n {/*
\r\n Edit\r\n console.log(item, name)}\r\n >\r\n
*/}\r\n
\r\n );\r\n };\r\n return (\r\n
\r\n \r\n {indiRoomTypeData.RoomTypeName}\r\n \r\n \r\n {\r\n indiRoomTypeData && indiRoomTypeData.RoomTypeSerNo > indiRoomTypeData.ChargeableRoomTypeSerNo ?\r\n \r\n :\r\n indiRoomTypeData.RoomTypeSerNo < indiRoomTypeData.ChargeableRoomTypeSerNo ?\r\n : <>\r\n }\r\n \r\n \r\n \r\n \r\n {indiRoomTypeData.RoomNo} {indiRoomTypeData.RoomStatus} \r\n \r\n
\r\n )\r\n}","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport function IndiAdultChild(props) {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n props.para.BlockSerNo == null ?\r\n
\r\n {props.para.Adult} {t('INN_Adult')}\r\n {props.para.Child} {t('INN_Child')}\r\n
\r\n :\r\n
\r\n {t('INN_Adult')} {props.para.Adults} \r\n
\r\n ) \r\n}","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnPrimaryButton,\r\n InnTooltip,\r\n InnButtonTypeWithDropdown\r\n} from \"../../../../component\";\r\n\r\nimport smsIcon from \"../../../../assets/images/sms-tooltip-icon.svg\";\r\nimport EmailTooltipIcon from \"../../../../assets/images/email-tooltip-icon.svg\";\r\nimport { GetReservationInfoProfileData } from \"../../../../services/reservationService\";\r\n\r\n\r\nexport function IndiAgent(props) {\r\n\r\n const [agentInfo, setAgentInfo] = useState({});\r\n useEffect(() => {\r\n if (props.para.ClientSerNo != undefined) {\r\n GetReservationInfoProfileData(props.para.ClientSerNo, props.para.AgentProfileSerNo, \"AG\").then(d => {\r\n setAgentInfo(d.data);\r\n console.log(d.data);\r\n });\r\n }\r\n }, [props.para.AgentProfileSerNo]);\r\n\r\n // const ExportOption = [\r\n // { key: \"Export (PDF)\", value: \"pdf\" },\r\n // { key: \"Export (Excel)\", value: \"excel\" },\r\n // { key: \"Print\", value: \"print\" },\r\n // { key: \"Group\", value: \"group\" },\r\n // { key: \"UnGroup\", value: \"ungroup\" },\r\n // ];\r\n const AgentTooltip = () => {\r\n return (\r\n
\r\n
\r\n {(agentInfo.ProfileName == ' ') ?\r\n null\r\n :\r\n
\r\n
{agentInfo.ContactName}
\r\n
\r\n Mobile: {agentInfo.ContactMobile}\r\n \r\n SMS\r\n \r\n
\r\n
\r\n Email: {agentInfo.ContactEmail}\r\n \r\n Email\r\n \r\n
\r\n
}\r\n
\r\n
\r\n {/* Edit\r\n \r\n console.log(item, name)}\r\n > */}\r\n
\r\n
\r\n );\r\n };\r\n\r\n return (\r\n
\r\n {agentInfo.ProfileName == \" \" ? \"Agent\" : agentInfo.ProfileName}\r\n \r\n \r\n \r\n
\r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnPrimaryButton,\r\n InnTooltip,\r\n InnButtonTypeWithDropdown\r\n} from \"../../../../component\";\r\nimport smsIcon from \"../../../../assets/images/sms-tooltip-icon.svg\";\r\nimport EmailTooltipIcon from \"../../../../assets/images/email-tooltip-icon.svg\";\r\nimport { GetReservationInfoProfileData } from \"../../../../services/reservationService\";\r\n\r\nexport function IndiCompany(props) {\r\n\r\n const [companyInfo, setCompanyInfo] = useState({});\r\n useEffect(() => {\r\n if (props.para.ClientSerNo != undefined) {\r\n GetReservationInfoProfileData(props.para.ClientSerNo, props.para.CompanyProfileSerNo, \"CO\").then(d => {\r\n setCompanyInfo(d.data);\r\n });\r\n }\r\n }, [props.para.CompanyProfileSerNo]);\r\n\r\n // const ExportOption = [\r\n // { key: \"Export (PDF)\", value: \"pdf\" },\r\n // { key: \"Export (Excel)\", value: \"excel\" },\r\n // { key: \"Print\", value: \"print\" },\r\n // { key: \"Group\", value: \"group\" },\r\n // { key: \"UnGroup\", value: \"ungroup\" },\r\n // ];\r\n const CompanyTooltip = () => {\r\n return (\r\n
\r\n
\r\n {(companyInfo.ProfileName == ' ') ?\r\n null\r\n :\r\n
\r\n
{companyInfo.ContactName}
\r\n
\r\n Mobile: {companyInfo.ContactMobile}\r\n \r\n SMS\r\n \r\n
\r\n
\r\n Email: {companyInfo.ContactEmail}\r\n \r\n Email\r\n \r\n
\r\n
\r\n }\r\n
\r\n
\r\n {/* Edit\r\n\r\n console.log(item, name)}\r\n > */}\r\n
\r\n
\r\n );\r\n };\r\n return (\r\n
\r\n {companyInfo.ProfileName == \" \" ? \"Comapany\" : companyInfo.ProfileName}\r\n \r\n \r\n \r\n
\r\n );\r\n}","import React from \"react\";\r\n\r\n\r\nexport function IndiReservationType(props) {\r\nreturn(\r\n
{props.para.ReservationType}
\r\n)\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { InnButtonTypeWithDropdown, InnPrimaryButton, InnTooltip } from \"../../../../component\";\r\nimport { manageReservationRateCodeIndicator } from \"../../../../services/reservationService\";\r\n\r\nexport function IndiRateCode(props) {\r\n\r\n const [indiRateCodeData, setIndiRateCodeData] = useState([]);\r\n\r\n useEffect(() => {\r\n manageReservationRateCodeIndicator(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo).then(d => {\r\n setIndiRateCodeData(d.data);\r\n })\r\n }, [props.para.ReservationSerNo]);\r\n\r\n // const ExportOption = [\r\n // { key: \"Export (PDF)\", value: \"pdf\" },\r\n // { key: \"Export (Excel)\", value: \"excel\" },\r\n // { key: \"Print\", value: \"print\" },\r\n // { key: \"Group\", value: \"group\" },\r\n // { key: \"UnGroup\", value: \"ungroup\" },\r\n // ];\r\n const RateCodeTooltip = () => {\r\n return (\r\n
\r\n
\r\n {indiRateCodeData.length > 1 ?\r\n indiRateCodeData.map(d =>\r\n
\r\n
\r\n
{d.Date}
\r\n {d.Name}\r\n
\r\n\r\n
\r\n )\r\n :\r\n <>\r\n }\r\n {/*
\r\n
\r\n
12 May 2022
\r\n Family Reconnect\r\n
\r\n
\r\n
\r\n
\r\n
13 May 2022
\r\n Bar Rate \r\n
\r\n
\r\n
\r\n
\r\n
14 May 2022
\r\n Bar Rate \r\n
\r\n
*/}\r\n
\r\n
\r\n {/* Edit\r\n console.log(item, name)}\r\n > */}\r\n
\r\n
\r\n );\r\n };\r\n\r\n {\r\n return (\r\n indiRateCodeData.length > 1 ?\r\n \r\n
\r\n {\r\n indiRateCodeData.length > 0 ?\r\n <>{indiRateCodeData[0].Name} \r\n :\r\n <>\r\n }\r\n\r\n \r\n
\r\n \r\n :\r\n
\r\n {\r\n indiRateCodeData.length > 0 ?\r\n <>{indiRateCodeData[0].Name} \r\n :\r\n <>\r\n }\r\n\r\n \r\n
\r\n )\r\n }\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { InnButtonTypeWithDropdown, InnPrimaryButton, InnTooltip } from \"../../../../component\";\r\nimport { manageReservationDailyIndicator } from \"../../../../services/reservationService\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport function IndiRoomRate(props) {\r\n const { t } = useTranslation();\r\n\r\n const [dailyRateData, setDailyRateData] = useState([]);\r\n const [upSellType, setUpSellType] = useState(\"\");\r\n const [oldRate, setOldRate] = useState(\"\");\r\n const [newRate, setNewRate] = useState(\"\");\r\n\r\n useEffect(() => {\r\n if (props.para.ReservationSerNo) {\r\n manageReservationDailyIndicator(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo).then(d => {\r\n setDailyRateData(d.data);\r\n\r\n if (d.data.length > 0) {\r\n let avg = 0.0;\r\n let avgNew = 0.0;\r\n d.data.map(d => {\r\n avg += parseFloat(d.TotalOriginalRoomRate);\r\n avgNew += parseFloat(d.TotalRoomRate);\r\n });\r\n avg = (avg / d.data.length).toFixed(2);\r\n avgNew = (avgNew / d.data.length).toFixed(2);\r\n setOldRate(avg);\r\n if (props.para != undefined) {\r\n if (props.para.IsSharer) {\r\n setNewRate(\"0.00\");\r\n } else {\r\n setNewRate(avgNew);\r\n }\r\n };\r\n\r\n if (d.data[0].IsRoomUpSell && d.data[0].IsPackageUpSell) {\r\n setUpSellType(\"Room and Services\");\r\n } else if (d.data[0].IsRoomUpSell && d.data[0].IsPackageUpSell == false) {\r\n setUpSellType(\"Room\");\r\n } else if (d.data[0].IsRoomUpSell == false && d.data[0].IsPackageUpSell) {\r\n setUpSellType(\"Services\");\r\n } else {\r\n setUpSellType(\"\");\r\n }\r\n }\r\n\r\n });\r\n }\r\n }, [props.para.ReservationSerNo]);\r\n\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n const UpsellTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
Original Rate : {oldRate}
\r\n
New Rate : {newRate}
\r\n
Upsell Type : {upSellType}
\r\n {/*
Upsell By : Karan
\r\n
Date & Time : 16 Dec, 2021, 14:30
*/}\r\n
\r\n
\r\n
\r\n {/* Edit\r\n console.log(item, name)}\r\n > */}\r\n
\r\n
\r\n );\r\n };\r\n\r\n return (\r\n
\r\n \r\n\r\n {t('INN_RoomRate')}\r\n \r\n {upSellType != \"\" ?\r\n \r\n \r\n :\r\n <>\r\n }\r\n \r\n \r\n \r\n {newRate}\r\n \r\n   {dailyRateData.length > 0 ? dailyRateData[0].IsTaxInclusive ? \"(Incl)\" : \" + Taxes\" : \"\"}\r\n \r\n \r\n
\r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { InnButtonTypeWithDropdown, InnPrimaryButton, InnTooltip } from \"../../../../component\";\r\nimport { manageReservationDailyIndicator } from \"../../../../services/reservationService\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport function IndiDailyRate(props) {\r\n const { t } = useTranslation();\r\n\r\n const [dailyRateData, setDailyRateData] = useState([]);\r\n const [isFixed, setIsFixed] = useState(false);\r\n const [oldRate, setOldRate] = useState(\"\");\r\n const [isSameDailyRate, setIsSameDailyRate] = useState(true)\r\n\r\n useEffect(() => {\r\n if (props.para.ReservationSerNo) {\r\n manageReservationDailyIndicator(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo).then(d => {\r\n setDailyRateData(d.data);\r\n console.log(\"Daily Rate Data>>\", d.data);\r\n let isSameDailyRt = []\r\n\r\n for (let i = 0; i < d.data.length - 1; i++) {\r\n if (d.data[i].RateSerNo == d.data[i + 1].RateSerNo) {\r\n isSameDailyRt.push(true)\r\n }\r\n else {\r\n isSameDailyRt.push(false)\r\n }\r\n }\r\n if (isSameDailyRt.every(v => v === true)) {\r\n setIsSameDailyRate(true)\r\n }\r\n else {\r\n setIsSameDailyRate(false)\r\n }\r\n\r\n let tempDaily = d.data.filter(x => x.TotalRoomRate != x.TotalOriginalRoomRate);\r\n if (tempDaily != undefined) {\r\n if (tempDaily.length > 0) {\r\n setIsFixed(true);\r\n let avg = 0.0\r\n d.data.map(d => {\r\n avg += parseFloat(d.TotalOriginalRoomRate);\r\n })\r\n avg = (avg / d.data.length).toFixed(2);\r\n setOldRate(avg);\r\n }\r\n }\r\n });\r\n }\r\n }, [props.para.ReservationSerNo]);\r\n\r\n // const ExportOption = [\r\n // { key: \"Export (PDF)\", value: \"pdf\" },\r\n // { key: \"Export (Excel)\", value: \"excel\" },\r\n // { key: \"Print\", value: \"print\" },\r\n // { key: \"Group\", value: \"group\" },\r\n // { key: \"UnGroup\", value: \"ungroup\" },\r\n // ];\r\n\r\n const FixedRateTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
Original Rate
\r\n {\r\n isFixed ?\r\n <>{oldRate} {dailyRateData.length > 0 ? dailyRateData[0].IsTaxInclusive ? \"(Incl)\" : \" + Taxes\" : \"\"}\r\n :\r\n <>\r\n }\r\n
\r\n
\r\n
\r\n
\r\n {/* Edit\r\n console.log(item, name)}\r\n > */}\r\n
\r\n
\r\n );\r\n };\r\n\r\n const DailyRateTooltip = () => {\r\n return (\r\n
\r\n
\r\n\r\n {\r\n dailyRateData.length > 0 ?\r\n dailyRateData.map(d =>\r\n
\r\n
\r\n
{d.Date}
\r\n {d.TotalRoomRate}\r\n
\r\n
\r\n )\r\n :\r\n <>\r\n }\r\n
\r\n
\r\n {/* Edit\r\n console.log(item, name)}\r\n > */}\r\n
\r\n
\r\n );\r\n };\r\n\r\n return (\r\n\r\n
\r\n\r\n \r\n ({t('INN_FixedRate')})\r\n\r\n \r\n {\r\n \r\n isSameDailyRate == false ?\r\n \r\n {t('INN_DailyRate')} ({dailyRateData.length})\r\n\r\n \r\n :\r\n {t('INN_DailyRate')} (0)\r\n }\r\n
\r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { InnPrimaryButton, InnTooltip } from \"../../../../component\";\r\nimport { manageReservationPackageIndicator, manageReservationBlockPackageIndicator } from \"../../../../services/reservationService\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport function IndiInclusion(props) {\r\n const { t } = useTranslation();\r\n\r\n const [indiInclusionData, setIndiInclusionData] = useState([]);\r\n\r\n useEffect(() => {\r\n if (props.para.Type == \"Block\") {\r\n manageReservationBlockPackageIndicator(props.para.ClientSerNo, props.para.PropertySerNo, props.para.BlockSerNo).then(d => {\r\n if (d.data.length > 0) {\r\n let tempCol = [];\r\n d.data.forEach(ele => {\r\n if (!ele.IsAdditional) {\r\n let tempPackage = tempCol.find(x => ele.PackageSerNo == x.PackageSerNo);\r\n if (tempPackage == undefined) {\r\n tempCol.push({ \"PackageSerNo\": ele.PackageSerNo, \"Name\": ele.Name });\r\n }\r\n }\r\n });\r\n setIndiInclusionData(tempCol);\r\n } else {\r\n setIndiInclusionData([]);\r\n }\r\n })\r\n\r\n }\r\n else {\r\n if (props.para.ReservationSerNo) {\r\n manageReservationPackageIndicator(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo).then(d => {\r\n if (d.status == 200) {\r\n if (d.data.length > 0) {\r\n let tempCol = [];\r\n d.data.forEach(ele => {\r\n if (!ele.IsAdditional) {\r\n let tempPackage = tempCol.find(x => ele.PackageSerNo == x.PackageSerNo);\r\n if (tempPackage == undefined) {\r\n tempCol.push({ \"PackageSerNo\": ele.PackageSerNo, \"Name\": ele.Name });\r\n }\r\n }\r\n });\r\n setIndiInclusionData(tempCol);\r\n } else {\r\n setIndiInclusionData([]);\r\n }\r\n }\r\n })\r\n }\r\n }\r\n }, [props.para.ReservationSerNo]);\r\n\r\n const InclusionTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
INCLUSIONS ({indiInclusionData.length})
\r\n
    \r\n {\r\n indiInclusionData.length > 0 ?\r\n indiInclusionData.map(d =>\r\n
  • {d.Name}
  • \r\n )\r\n :\r\n <>\r\n }\r\n\r\n {/*
  • breakfast and 1 way
  • \r\n
  • pickup/drop
  • \r\n
  • breakfast and 1 way
  • \r\n
  • pickup/drop
  • \r\n
  • Rate includes room along with free
  • */}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n };\r\n return (\r\n \r\n
\r\n {t('INN_Inclusions')}\r\n ({indiInclusionData.length})\r\n
\r\n \r\n\r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n InnPrimaryButton,\r\n InnTooltip,\r\n InnButtonTypeWithDropdown\r\n } from \"../../../../component\";\r\nimport { manageReservationPackageIndicator } from \"../../../../services/reservationService\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\n\r\nexport function IndiPackege(props) {\r\n const { t } = useTranslation();\r\n\r\n const [indiPackageData,setIndiPackageData] = useState([]);\r\n const [indiPackageList,setIndiPackageList] = useState([]);\r\n const [packageTotal,setPackageTotal] = useState(\"\");\r\n\r\n useEffect(() => {\r\n manageReservationPackageIndicator(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo).then(d => {\r\n if(d.data.length > 0){\r\n let tempPackages = d.data.filter(x=> x.IsAdditional == true);\r\n setIndiPackageData(tempPackages);\r\n if(tempPackages.length > 0) {\r\n let tempTotal = 0;\r\n let tempPackagesList = [];\r\n tempPackages.forEach(ele => { \r\n tempTotal = tempTotal + parseFloat(ele.PackagePrice) + (ele.IsTaxInclusive ? 0 : parseFloat(ele.Taxes)); \r\n let tempPkg = tempPackagesList.find(x=> x.PackageSerNo == ele.PackageSerNo);\r\n let tempQty = 0;\r\n if(ele.CalculationRuleSerNo == \"PP\")\r\n tempQty = ele.Adult + ele.Child;\r\n else if (ele.CalculationRuleSerNo == \"PA\")\r\n tempQty = ele.Adult;\r\n else if (ele.CalculationRuleSerNo == \"PC\")\r\n tempQty = ele.Child;\r\n else \r\n tempQty = 1;\r\n\r\n if(tempPkg == undefined){ \r\n tempPackagesList.push({\"PackageSerNo\" : ele.PackageSerNo,\"Name\" : ele.Name,\"Qty\" : tempQty, \"Total\" : parseFloat(ele.PackagePrice), \"IsTaxInclusive\" : ele.IsTaxInclusive });\r\n }else{\r\n tempPackagesList.forEach(e2 => {\r\n if(e2.PackageSerNo == tempPkg.PackageSerNo){\r\n e2.Qty = e2.Qty + tempQty;\r\n e2.Total = e2.Total + parseFloat(ele.PackagePrice);\r\n }\r\n });\r\n }\r\n \r\n });\r\n setPackageTotal(tempTotal.toFixed(2));\r\n setIndiPackageList(tempPackagesList);\r\n }\r\n }else{\r\n setIndiPackageData([]);\r\n setPackageTotal(\"0.00\");\r\n }\r\n })\r\n }, [props.para.ReservationSerNo]);\r\n\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n const PackagesTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n {\r\n indiPackageList.length > 0 ?\r\n indiPackageList.map(d=> \r\n <>\r\n
{d.Name} ({d.Qty})
\r\n
{d.Total} {d.IsTaxInclusive ? \" (Incl)\" : \" + Taxes\"}
\r\n \r\n ) \r\n : \r\n <>\r\n } \r\n
\r\n
\r\n
\r\n {/* \r\n Edit\r\n */}\r\n console.log(item, name)}\r\n > \r\n
\r\n
\r\n );\r\n };\r\n return(\r\n \r\n
\r\n {/* {t('INN_Packages')} */}\r\n Additional Packages\r\n {packageTotal}\r\n
\r\n \r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnCheckbox,\r\n InnModalPopup,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnButtonTypeWithDropdown,\r\n InnSingleDateSelection,\r\n InnTimeSelection,\r\n InnTooltip,\r\n InnLoader,\r\n InnConfirmAlert,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport {\r\n GetReservationAccompanyGuest, GetReservationInfoArrivalDepartureDetail, GetTransportationProviderMaster,\r\n GetReservationInfoTransportationDetail, AddEditReservationInfoTransportationDetail,\r\n DeleteReservationInfoTransportationDetail, GetReservationInfoData, GetPropertyParameterByKeys\r\n} from \"../../../../services/reservationService\";\r\nimport { GetTransportationTypeMaster } from \"../../../../services/frontMasterService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useAlert } from \"../../../../utils/hooks/useAlert\";\r\nimport Moment from \"moment\";\r\nimport { ManageRights } from \"../../../../services/generalService\";\r\nimport moment from \"moment\";\r\n\r\n\r\nexport function IndiTransportation(props) {\r\n const { t } = useTranslation();\r\n const { innkeyAlert } = useAlert();\r\n\r\n //#region Local Variable\r\n //const ReservationSerNo = props.para.ReservationSerNo;\r\n //const ReservationSerNo = 2;\r\n const { confirm } = useConfirm();\r\n const currUser = useSelector(currentUser);\r\n const optBtnData = [\r\n { key: \"Edit\", value: \"Edit\" },\r\n { key: \"Delete\", value: \"Delete\" }\r\n ];\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n\r\n const columHeaderArrDepDetail = [\r\n { key: \"Guest Name\", value: \"GuestName\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Transportation Type\", value: \"TransportationName\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Date\", value: \"TransportationDate\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Time\", value: \"TransportationTime\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n const defaultGuestObj =\r\n {\r\n \"ClientSerNo\": 0,\r\n \"PropertySerNo\": 0,\r\n \"ReservationSerNo\": props.para.ReservationSerNo,\r\n \"ReservationTransportationSerNo\": 0,\r\n \"GuestProfileSerNo\": 0,\r\n \"GuestName\": \"\",\r\n \"TransportationTypeSerNo\": 0,\r\n \"TransportationName\": \"\",\r\n \"TransportationDate\": \"1-jan-1990\",\r\n \"TransportationTime\": \"00:00\",\r\n \"ChargableTransportationTypeSerNo\": 0,//\"ChargableTransportationTypeName\" : \"\",\r\n \"Price\": 0.00,\r\n \"IsTaxInclusive\": false,\r\n \"IsFixedRate\": false,\r\n \"TransportationCarrier\": \"\",\r\n \"TransportationRefNo\": \"\",\r\n \"Adult\": 1,\r\n \"Child\": 0,\r\n \"TransportationNote\": \"\",\r\n \"VehicleNo\": \"\",\r\n \"ChaufferName\": \"\",\r\n \"ChaufferNumber\": \"\",\r\n \"TransportationProviderSerNo\": 0,\r\n \"Address\": \"\",\r\n \"Mode\": \"View\",\r\n \"DisplaySequence\": 1,\r\n \"IsPickUp\": true,\r\n \"IsDropOff\": false,\r\n \"customErrorAddress\": \"\"\r\n };\r\n const defaultTransProviderObj = {\r\n \"TransportationProviderSerNo\": 0,\r\n \"Name\": \"\",\r\n \"Mobile\": \"\",\r\n \"ContactName\": \"\"\r\n };\r\n const defaultTransTypeObj =\r\n {\r\n \"ClientSerNo\": 0,\r\n \"PropertySerNo\": 0,\r\n \"TransportationTypeSerNo\": 0,\r\n \"Name\": \"\",\r\n \"ShortName\": \"\",\r\n \"Price\": 0.00,\r\n \"IsTaxInclusive\": true,\r\n \"MaxAdult\": 1,\r\n \"IsPickUp\": true,\r\n \"IsDropOff\": false,\r\n \"SeqNo\": 0\r\n };\r\n const defaultPrimaryGuestObj = {\r\n \"BookingNo\": \"\",\r\n \"GuestProfileSerNo\": \"\",\r\n \"Adult\": 0,\r\n \"Child\": 0,\r\n \"GuestName\": \"\",\r\n \"IsPrimary\": true,\r\n \"IsAdult\": true,\r\n \"ArrivalDate\": \"1-jan-1990\",\r\n \"ActualArrivalTime\": \"00:00\",\r\n \"DepartureDate\": \"1-jan-1990\",\r\n \"ActualDepartureTime\": \"00:00\"\r\n };\r\n //#endregion\r\n\r\n //#region State variable\r\n const [isActive, setIsActive] = useState(false);\r\n const [showTransportationPopup, setShowTransportationPopup] = useState(false);\r\n const [gridSelectedItem, SetgridSelectedItem] = useState([]);\r\n const [temp, settemp] = useState(false);\r\n\r\n const [showAlert, setShowAlert] = useState(false); // this use to show/hide alert message popup.\r\n const [showAlertMessage, setShowAlertMessage] = useState(\"\"); // this use to show message in alert message popup.\r\n const [showAlertButtonType, setShowAlertButtonType] = useState([]); // this use to show button in alert message popup.\r\n\r\n const [showTooltipPickupGuestDetail, setShowTooltipPickupGuestDetail] = useState([]);\r\n const [showTooltipDropGuestDetail, setShowTooltipDropGuestDetail] = useState([]);\r\n const [showTooltipLocalGuestDetail, setShowTooltipLocalGuestDetail] = useState([]);\r\n\r\n const [showPrimaryGuestDetail, setShowPrimaryGuestDetail] = useState(defaultPrimaryGuestObj);\r\n const [selectedChargableTransTypeObj, setSelectedChargableTransTypeObj] = useState(defaultTransTypeObj);\r\n const [selectedTransProviderObj, setSelectedTransProviderObj] = useState(defaultTransProviderObj); // Currently selected transportation provider object.\r\n const [selectedGuestObj, setSelectedGuestObj] = useState(defaultGuestObj); // Currently selected Guest object.\r\n const [currentSelectedResTransportationSerNo, setCurrentSelectedResTransportationSerNo] = useState(0); // Currently selected Reservation Transportation SerNo From Main Grid. Use set selected Guest data, when user click on cancel button.\r\n const [transportationMainObj, setTransportationMainObj] = useState([]); //Main collection of Transportation popup.\r\n const [accompanyGuestList, setAccompanyGuestList] = useState([]); //collection of Accompany guest.\r\n const [accompanyGuestArrDeptDetailsList, setAccompanyGuestArrDeptDetailsList] = useState([]); //collection of Accompany guest with details of arrival-departure, carrier info, etc..\r\n const [transportationTypeList, setTransportationTypeList] = useState([]); //transportation Type master data.\r\n const [transportationProviderList, setTransportationProviderList] = useState([]); //transportation provider master data.\r\n const [reservationInfo, setReservationInfo] = useState([]); // reservation info data.\r\n\r\n const [fillAccompanyGuestData, setFillAccompanyGuestData] = useState([]); //use to show data on Dropdown.\r\n const [fillTransporatationTypeData, setFillTransporatationTypeData] = useState([]); //use to show data on Dropdown.\r\n const [fillTransporatationProviderData, setFillTransporatationProviderData] = useState([]); //use to show data on Dropdown.\r\n\r\n const [transportationTypeArrowCss, setTransportationTypeArrowCss] = useState(\"\"); //use to show arrow.\r\n const [showEditDiv, setShowEditDiv] = useState(true);//use to show Edit button\r\n const [userRightsData, setUserRightsData] = useState([]);\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n //#endregion\r\n\r\n //#region UseEffact\r\n useEffect(() => {\r\n if (props.para.ReservationSerNo != undefined) {\r\n GetReservationInfoData(\r\n props.para.ClientSerNo,\r\n props.para.PropertySerNo,\r\n props.para.ReservationSerNo\r\n ).then((response) => {\r\n setReservationInfo(response.data);\r\n });\r\n }\r\n funGetReservationAccompanyGuest();\r\n if (props.para != undefined) {\r\n if (props.para.IsShowTooltipActionButton == \"hide\") {\r\n setShowEditDiv(false);\r\n }\r\n else {\r\n setShowEditDiv(true);\r\n }\r\n }\r\n }, [props.para.IsReload]);\r\n useEffect(() => {\r\n fillUserRights();\r\n fillPropertyParameter();\r\n }, []);\r\n //#endregion\r\n\r\n //#region Custom function\r\n const fillPropertyParameter = () => {\r\n GetPropertyParameterByKeys(currUser.ClientSerNo, currUser.PropertySerNo, \"BusinessDate\").then((d) => {\r\n let obj = d.data.find((x) => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(d.data[0].value);\r\n }\r\n });\r\n }\r\n const funGetReservationAccompanyGuest = () => {\r\n setIsActive(true);\r\n GetReservationAccompanyGuest(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), props.para.ReservationSerNo).then(d => {\r\n setIsActive(false);\r\n var temp = (d.data);\r\n let SortedList = temp.sort((a, b) => (a.IsPrimary < b.IsPrimary) ? 1 : -1);\r\n setAccompanyGuestList(SortedList);\r\n //setAccompanyGuestList(d.data);\r\n //console.log(\"SortedList>>\",SortedList);\r\n var tmpData = [];\r\n SortedList.forEach(ele => {\r\n tmpData.push({ \"key\": ele.GuestProfileSerNo, \"value\": ele.GuestName });\r\n if (ele.IsPrimary == true) {\r\n setShowPrimaryGuestDetail(ele);\r\n console.log(\"guest detail\", ele);\r\n }\r\n });\r\n tmpData.splice(0, 0, { \"key\": 0, \"value\": \"Select\" });\r\n setFillAccompanyGuestData(tmpData);\r\n\r\n });\r\n funGetReservationInfoArrivalDepartureDetail();\r\n };\r\n const funGetReservationInfoArrivalDepartureDetail = () => {\r\n setIsActive(true);\r\n GetReservationInfoArrivalDepartureDetail(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), props.para.ReservationSerNo).then(d => {\r\n setIsActive(false);\r\n setAccompanyGuestArrDeptDetailsList(d.data);\r\n });\r\n funGetTransportationTypeMaster();\r\n };\r\n const funGetTransportationTypeMaster = () => {\r\n setIsActive(true);\r\n GetTransportationTypeMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n setIsActive(false);\r\n setTransportationTypeList(d.data);\r\n var tmpData = [];\r\n d.data.forEach(ele => {\r\n tmpData.push({ \"key\": ele.TransportationTypeSerNo, \"value\": ele.Name });\r\n });\r\n tmpData.splice(0, 0, { \"key\": 0, \"value\": \"Select\" });\r\n setFillTransporatationTypeData(tmpData);\r\n });\r\n funGetTransportationProviderMaster();\r\n };\r\n const funGetTransportationProviderMaster = () => {\r\n setIsActive(true);\r\n GetTransportationProviderMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n setIsActive(false);\r\n setTransportationProviderList(d.data);\r\n var tmpData = [];\r\n d.data.forEach(ele => {\r\n tmpData.push({ \"key\": ele.TransportationProviderSerNo, \"value\": ele.Name });\r\n });\r\n tmpData.splice(0, 0, { \"key\": 0, \"value\": \"Select\" });\r\n setFillTransporatationProviderData(tmpData);\r\n });\r\n funGetReservationInfoTransportationDetail();\r\n };\r\n const funGetReservationInfoTransportationDetail = () => {\r\n setIsActive(true);\r\n GetReservationInfoTransportationDetail(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), props.para.ReservationSerNo).then(d => {\r\n setIsActive(false);\r\n if (d.data.length > 0) {\r\n d.data.forEach(element => {\r\n element = {\r\n ...element,\r\n customErrorRate: \"\",\r\n customErrorAdult: \"\",\r\n customErrorChild: \"\",\r\n customErrorChaufferNumber: \"\"\r\n };\r\n });\r\n var temp = (d.data);\r\n let SortedList = temp.sort((a, b) => (a.DisplaySequence > b.DisplaySequence) ? 1 : -1);\r\n setTransportationMainObj(SortedList);\r\n //setTransportationMainObj(d.data);\r\n setSelectedGuestObj(SortedList[0]);\r\n setSelectedGuestObj(prev => ({ ...prev, Mode: \"View\" }));\r\n transportationProviderList.forEach(ele => {\r\n if (ele.TransportationProviderSerNo == SortedList[0].TransportationProviderSerNo) {\r\n setSelectedTransProviderObj(ele);\r\n //console.log(ele);\r\n }\r\n });\r\n setShowTooltipPickupGuestDetail([]);\r\n setShowTooltipDropGuestDetail([]);\r\n setShowTooltipLocalGuestDetail([]);\r\n var PickupGuestData = [];\r\n var DropGuestData = [];\r\n var LocalGuestData = [];\r\n SortedList.forEach(ele => {\r\n if (ele.IsPickUp == true && ele.DisplaySequence == 1) {\r\n PickupGuestData.push(ele);\r\n }\r\n else if (ele.IsDropOff == true && ele.DisplaySequence == 1) {\r\n DropGuestData.push(ele);\r\n }\r\n else if (ele.DisplaySequence == 1) {\r\n LocalGuestData.push(ele);\r\n }\r\n });\r\n setShowTooltipPickupGuestDetail(PickupGuestData);\r\n setShowTooltipDropGuestDetail(DropGuestData);\r\n setShowTooltipLocalGuestDetail(LocalGuestData);\r\n setCurrentSelectedResTransportationSerNo(SortedList[0].ReservationTransportationSerNo);\r\n }\r\n else {\r\n setShowTooltipPickupGuestDetail([]);\r\n setShowTooltipDropGuestDetail([]);\r\n setShowTooltipLocalGuestDetail([]);\r\n\r\n setTransportationMainObj([]);\r\n setSelectedGuestObj(defaultGuestObj);\r\n setSelectedGuestObj(prev => ({ ...prev, ClientSerNo: parseInt(currUser.ClientSerNo), PropertySerNo: parseInt(currUser.PropertySerNo) }));\r\n // setSelectedGuestObj(prev => ({ ...prev, \r\n // TransportationDate:accompanyGuestList[0].ArrivalDate}));\r\n setSelectedTransProviderObj(defaultTransProviderObj);\r\n // setSelectedTransProviderObj(prev => ({ ...prev, \r\n // ContactName:\"\",Mobile:\"\"}));\r\n setCurrentSelectedResTransportationSerNo(0);\r\n }\r\n });\r\n };\r\n const funDeleteReservationInfoTransportationDetail = () => {\r\n setIsActive(true);\r\n DeleteReservationInfoTransportationDetail(selectedGuestObj).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == 200) {\r\n funGetReservationInfoTransportationDetail();\r\n }\r\n alert(d.data.Message);\r\n });\r\n };\r\n const funAddEditReservationInfoTransportationDetail = () => {\r\n setIsActive(true);\r\n let apiObj = selectedGuestObj;\r\n apiObj.Price = parseFloat(selectedGuestObj.Price);\r\n apiObj.Adult = parseInt(selectedGuestObj.Adult);\r\n apiObj.Child = parseInt(selectedGuestObj.Child);\r\n AddEditReservationInfoTransportationDetail(apiObj).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == 200) {\r\n setSelectedGuestObj(prev => ({ ...prev, Mode: \"View\" }));\r\n funGetReservationInfoTransportationDetail();\r\n if (props.onChange != undefined) {\r\n props.onChange();\r\n }\r\n }\r\n alert(d.data.Message);\r\n });\r\n };\r\n const funClearControlData = () => {\r\n setSelectedGuestObj(defaultGuestObj);\r\n setSelectedGuestObj(prev => ({\r\n ...prev,\r\n GuestProfileSerNo: \"\",\r\n GuestName: \"\",\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n TransportationDate: accompanyGuestList[0].ArrivalDate,\r\n TransportationTime: accompanyGuestList[0].ActualArrivalTime,\r\n TransportationTypeSerNo: 0,\r\n ChargableTransportationTypeSerNo: 0,\r\n TransportationProviderSerNo: 0,\r\n customErrorAddress: \"\"\r\n }));\r\n setSelectedTransProviderObj(defaultTransProviderObj);\r\n setSelectedChargableTransTypeObj(defaultTransTypeObj);\r\n setTransportationTypeArrowCss(\"\");\r\n };\r\n const isValidOnlyAlphabetWithSpace = (value) => {\r\n let isValid = /^[a-zA-Z ]+$/.test(value);\r\n return isValid;\r\n };\r\n const isValidOnlyDecimalNumber = (value) => {\r\n let isValid = /^[0-9]+.[0-9]+$/.test(value);\r\n if (isNaN(value) || parseInt(value) < 0) {\r\n isValid = false;\r\n }\r\n return isValid;\r\n };\r\n const isValidOnlyIntegerNumber = (value) => {\r\n let isValid = /^[0-9]+$/.test(value);\r\n\r\n if (isNaN(value) || value < 0) {\r\n isValid = false;\r\n }\r\n return isValid;\r\n };\r\n const isValidOnlyIntegerNumberWithSpace = (value) => {\r\n let isValid = /^[0-9 ]+$/.test(value);\r\n return isValid;\r\n };\r\n const funSetCarrierAndPriceDetail = (TransporationTypeSerNo, GuestProfileSerNo) => {\r\n //This fun is used to set carrier and price detail when guest combo or transportation type combo selection is change.\r\n //Set Guest carrier and details.\r\n var IsPickUp = false;\r\n var IsDropOff = false;\r\n transportationTypeList.forEach(ele => {\r\n if (ele.TransportationTypeSerNo == TransporationTypeSerNo) {\r\n IsPickUp = ele.IsPickUp;\r\n IsDropOff = ele.IsDropOff;\r\n }\r\n });\r\n accompanyGuestArrDeptDetailsList.forEach(ele => {\r\n if (ele.GuestProfileSerNo == GuestProfileSerNo) {\r\n if (IsPickUp == true) {\r\n let ArrDate = Moment(new Date(ele.ArrTransportationDate).toDateString()).format(\"YYYY-MM-DD\");\r\n let ArrTime = Moment(new Date(ele.ArrTransportationTime).toISOString()).format(\"HH:mm\");\r\n setSelectedGuestObj(prev => ({\r\n ...prev,\r\n TransportationCarrier: ele.ArrTransportCarrier,\r\n TransportationRefNo: ele.ArrTransportationRefNo,\r\n TransportationNote: ele.ArrTransportationNote,\r\n TransportationDate: ArrDate,\r\n TransportationTime: ArrTime\r\n }));\r\n }\r\n else if (IsDropOff == true) {\r\n let DeptDate = Moment(new Date(ele.DeptTransportationDate).toDateString()).format(\"YYYY-MM-DD\");\r\n let DeptTime = Moment(new Date(ele.DeptTransportationTime).toISOString()).format(\"HH:mm\");\r\n setSelectedGuestObj(prev => ({\r\n ...prev,\r\n TransportationCarrier: ele.DeptTransportCarrier,\r\n TransportationRefNo: ele.DeptTransportationRefNo,\r\n TransportationNote: ele.DeptTransportationNote,\r\n TransportationDate: DeptDate,\r\n TransportationTime: DeptTime\r\n }));\r\n }\r\n\r\n }\r\n });\r\n //Set Guest Charge Transport type and Rate Price.\r\n if (selectedGuestObj.ChargableTransportationTypeSerNo == \"\" || selectedGuestObj.ChargableTransportationTypeSerNo == 0) {\r\n setSelectedGuestObj(prev => ({ ...prev, ChargableTransportationTypeSerNo: TransporationTypeSerNo }));\r\n if (selectedGuestObj.Mode == \"Add\" || selectedGuestObj.Mode == \"Edit\") {\r\n transportationTypeList.forEach(ele => {\r\n if (ele.TransportationTypeSerNo == TransporationTypeSerNo) {\r\n setSelectedGuestObj(prev => ({\r\n ...prev,\r\n Price: ele.Price, //ele.IsTaxInclusive == false ? ele.Price + \" + Tax\" : ele.Price + \" (Incl.)\",\r\n IsTaxInclusive: ele.IsTaxInclusive\r\n }));\r\n }\r\n });\r\n }\r\n }\r\n };\r\n const fillUserRights = () => {\r\n ManageRights(currUser.ClientSerNo, currUser.UserID, \"6,7,8,9\").then((d) => {\r\n console.log(\"transportation-rightssss\", d.data);\r\n if (d.data.length > 0) {\r\n setUserRightsData(d.data);\r\n }\r\n else {\r\n console.log(\"Not Allowed\");\r\n }\r\n });\r\n };\r\n //#endregion\r\n\r\n //#region Event handle\r\n //Main Grid\r\n const handleOnGuestDetailSelectionChange = (v) => {\r\n setSelectedGuestObj(v);\r\n setSelectedGuestObj(prev => ({ ...prev, Mode: \"View\" }));\r\n transportationProviderList.forEach(ele => {\r\n if (ele.TransportationProviderSerNo == v.TransportationProviderSerNo) {\r\n setSelectedTransProviderObj(ele);\r\n //console.log(\"Trans provider>>\",ele);\r\n }\r\n });\r\n transportationTypeList.forEach(ele => {\r\n if (ele.TransportationTypeSerNo == v.ChargableTransportationTypeSerNo) {\r\n setSelectedChargableTransTypeObj(ele);\r\n }\r\n });\r\n setCurrentSelectedResTransportationSerNo(v.ReservationTransportationSerNo);\r\n };\r\n\r\n //Button\r\n const validateDelTrnsprtReq = () => {\r\n handleUserRights(\"9\").then(d => {\r\n let IsValid = true;\r\n if (selectedGuestObj.ReservationStatus === \"DIN\") {\r\n IsValid = true;\r\n }\r\n else if (selectedGuestObj.ReservationStatus === \"INH\") {\r\n if (selectedGuestObj.IsDropOff === true) {\r\n IsValid = true;\r\n }\r\n else {\r\n IsValid = false;\r\n }\r\n }\r\n else {\r\n IsValid = false;\r\n }\r\n if (d && IsValid) {\r\n handleOnDeleteClick();\r\n }\r\n else {\r\n if (selectedGuestObj.IsPickUp) {\r\n alert(`You can not delete transportation after guest has been arrived.`);\r\n } else {\r\n alert(`You can not delete transportation after guest has been checked out.`);\r\n }\r\n }\r\n });\r\n };\r\n const handleOnDeleteClick = async () => {\r\n // setShowAlertMessage(\"Would you like to delete the transportation request?\");\r\n // setShowAlertButtonType([{\"title\" : \"YES\",\"value\" : \"btnOnDeleteClickYes\"},{\"title\" : \"NO\",\"value\" : \"\"}]);\r\n // setShowAlert(!showAlert);\r\n\r\n let IsOk = await innkeyAlert(\"Would you like to delete the transportation request?\");\r\n if (IsOk) {\r\n setSelectedGuestObj(prev => ({ ...prev, Mode: \"View\" }));\r\n funDeleteReservationInfoTransportationDetail();\r\n }\r\n };\r\n const handleOnAddClick = () => {\r\n funClearControlData();\r\n setSelectedGuestObj(prev => ({ ...prev, Mode: \"Add\" }));\r\n if (reservationInfo != undefined && reservationInfo.IsSharer == true) {\r\n setSelectedGuestObj(prev => ({ ...prev, GuestProfileSerNo: accompanyGuestList[0].GuestProfileSerNo }));\r\n }\r\n };\r\n\r\n const handleOnEditClick = () => {\r\n setSelectedGuestObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n };\r\n const handleOnCancelClick = async () => {\r\n // setShowAlertMessage(\"Would you like discard the changes?\") \r\n // setShowAlertButtonType([{\"title\" : \"YES\",\"value\" : \"btnOnCancelClickYes\"},{\"title\" : \"NO\",\"value\" : \"\"}]);\r\n // setShowAlert(!showAlert);\r\n let IsOk = await innkeyAlert(\"Would you like discard the changes?\");\r\n if (IsOk) {\r\n if (transportationMainObj.length > 0) {\r\n transportationMainObj.forEach(ele => {\r\n if (ele.ReservationTransportationSerNo == currentSelectedResTransportationSerNo) {\r\n setSelectedGuestObj(ele);\r\n }\r\n });\r\n setSelectedGuestObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n funClearControlData();\r\n }\r\n }\r\n\r\n };\r\n const handleOnSaveClick = () => {\r\n let IsValid = true;\r\n\r\n //adult and child count validation\r\n transportationTypeList.forEach(ele => {\r\n if (ele.TransportationTypeSerNo == selectedGuestObj.ChargableTransportationTypeSerNo) {\r\n if (parseInt(selectedGuestObj.Adult) > 0 && parseInt(selectedGuestObj.Child)) {\r\n if ((parseInt(selectedGuestObj.Adult) + parseInt(selectedGuestObj.Child)) >= parseInt(ele.MaxAdult)) {\r\n alert(\"Please enter less adult or child to proceed.\");\r\n IsValid = false;\r\n }\r\n }\r\n }\r\n });\r\n if (selectedGuestObj.GuestProfileSerNo == \"\" || selectedGuestObj.GuestProfileSerNo == 0) {\r\n IsValid = false;\r\n alert(\"Please select Guest.\");\r\n }\r\n else if (selectedGuestObj.TransportationTypeSerNo == \"\" || selectedGuestObj.TransportationTypeSerNo == 0) {\r\n IsValid = false;\r\n alert(\"Please select Transportation Type.\");\r\n }\r\n else if (selectedGuestObj.TransportationDate == \"\" || new Date(selectedGuestObj.TransportationDate).getTime() == new Date(\"1-jan-90\").getTime()) {\r\n IsValid = false;\r\n alert(\"Please select valid Transportation Date.\");\r\n }\r\n else if (selectedGuestObj.ChargableTransportationTypeSerNo == \"\" || selectedGuestObj.ChargableTransportationTypeSerNo == 0) {\r\n IsValid = false;\r\n alert(\"Please select Transportation Charge.\");\r\n }\r\n else if (isValidOnlyDecimalNumber(parseFloat(selectedGuestObj.Price)) == false) {\r\n IsValid = false;\r\n alert(\"Please Enter valid Rate.\");\r\n }\r\n else if (isValidOnlyIntegerNumber(selectedGuestObj.Adult) == false || parseInt(selectedGuestObj.Adult) <= 0) {\r\n IsValid = false;\r\n alert(\"Please Enter valid Adult.\");\r\n }\r\n else if (isValidOnlyIntegerNumber(selectedGuestObj.Child) == false) {\r\n IsValid = false;\r\n alert(\"Please Enter valid Child.\");\r\n }\r\n else {\r\n if (new Date(selectedGuestObj.TransportationDate).setHours(0, 0, 0, 0) < new Date(accompanyGuestList[0].ArrivalDate).setHours(0, 0, 0, 0)) {\r\n IsValid = false;\r\n alert(\"Transportation Date must not be less than reservation arrival date.\");\r\n }\r\n else if (new Date(selectedGuestObj.TransportationDate).setHours(0, 0, 0, 0) > new Date(accompanyGuestList[0].DepartureDate).setHours(0, 0, 0, 0)) {\r\n IsValid = false;\r\n alert(\"Transportation Date must not be greater than reservation departure date.\");\r\n }\r\n else if (parseInt(selectedGuestObj.Adult) <= 0) {\r\n IsValid = false;\r\n alert(\"There must be at least 1 Adult.\");\r\n }\r\n }\r\n //If there is vehicle no than must input Chauffer Name & No.\r\n if (selectedGuestObj.VehicleNo != undefined && selectedGuestObj.VehicleNo != \"\") {\r\n if (selectedGuestObj.ChaufferName == \"\") {\r\n IsValid = false;\r\n alert(\"Please Enter Chauffer Name.\");\r\n }\r\n if (selectedGuestObj.ChaufferNumber == \"\") {\r\n IsValid = false;\r\n alert(\"Please Enter Chauffer Number.\");\r\n setSelectedGuestObj(prev => ({ ...prev, customErrorChaufferNumber: \"Enter Chauffer Number.\" }));\r\n }\r\n else if (isValidOnlyIntegerNumberWithSpace(selectedGuestObj.ChaufferNumber) == false) {\r\n IsValid = false;\r\n alert(\"Please Enter valid Contact number.\");\r\n setSelectedGuestObj(prev => ({ ...prev, customErrorChaufferNumber: \"Enter valid Contact number.\" }));\r\n }\r\n }\r\n //In case of Drop and Local, Do not mandetory Carrier Name,Ref No, Address.\r\n var IsPickUp = false;\r\n transportationTypeList.forEach(ele => {\r\n if (ele.TransportationTypeSerNo == selectedGuestObj.TransportationTypeSerNo) {\r\n if (ele.IsPickUp == true) {\r\n IsPickUp = true;\r\n }\r\n }\r\n });\r\n if (IsPickUp == true) {\r\n if (selectedGuestObj.TransportationCarrier.trim() == \"\") {\r\n IsValid = false;\r\n alert(\"Please Enter Carrier Detail.\");\r\n }\r\n else if (selectedGuestObj.TransportationRefNo.trim() == \"\") {\r\n IsValid = false;\r\n alert(\"Please Enter Carrier Number Detail.\");\r\n }\r\n else if (selectedGuestObj.Address.trim() == \"\") {\r\n //selectedGuestObj.customError\r\n IsValid = false;\r\n alert(\"Please Enter Address Detail.\");\r\n setSelectedGuestObj(prev => ({ ...prev, customErrorAddress: \"Enter Valid Address.\" }));\r\n }\r\n }\r\n\r\n if (IsValid == true) {\r\n funAddEditReservationInfoTransportationDetail();\r\n //setSelectedGuestObj(prev => ({ ...prev, Mode:\"View\"}));\r\n }\r\n };\r\n\r\n const handleOnAlertMessageButtonClick = (value) => {\r\n if (value == \"btnOnCancelClickYes\") {\r\n if (transportationMainObj.length > 0) {\r\n transportationMainObj.forEach(ele => {\r\n if (ele.ReservationTransportationSerNo == currentSelectedResTransportationSerNo) {\r\n setSelectedGuestObj(ele);\r\n }\r\n });\r\n setSelectedGuestObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n // setSelectedGuestObj(defaultGuestObj);\r\n // setSelectedGuestObj(prev => ({ ...prev, \r\n // TransportationDate:accompanyGuestList[0].ArrivalDate}));\r\n // setSelectedTransProviderObj(defaultTransProviderObj);\r\n funClearControlData();\r\n }\r\n }\r\n else if (value == \"btnOnDeleteClickYes\") {\r\n setSelectedGuestObj(prev => ({ ...prev, Mode: \"View\" }));\r\n funDeleteReservationInfoTransportationDetail();\r\n }\r\n };\r\n\r\n const handleGrdOptionClick = (option) => {\r\n if (selectedGuestObj.ReservationStatus == \"INH\" || selectedGuestObj.ReservationStatus == \"ARD\" || selectedGuestObj.ReservationStatus == \"DOT\") {\r\n if (new Date(moment(selectedGuestObj.TransportationDate).format(\"DD-MMM-YYYY\")).getTime() < new Date(moment(businessDate).format(\"DD-MMM-YYYY\")).getTime()) {\r\n alert(\"Edit or deletion of previous trip is not allowed.\");\r\n }\r\n else {\r\n if (option == \"Edit\") {\r\n handleOnEditClick();\r\n }\r\n if (option == \"Delete\") {\r\n validateDelTrnsprtReq();\r\n }\r\n }\r\n }\r\n else {\r\n if (option == \"Edit\") {\r\n handleOnEditClick();\r\n }\r\n if (option == \"Delete\") {\r\n validateDelTrnsprtReq();\r\n }\r\n }\r\n\r\n };\r\n const handleOnToolTopEditClick = () => {\r\n setShowTransportationPopup(!showTransportationPopup);\r\n console.log(\"useEffect Called.!\");\r\n funGetReservationAccompanyGuest();\r\n };\r\n\r\n const handleOnTransportationTypeChange = (item, name) => {\r\n if (selectedGuestObj.ChargableTransportationTypeSerNo == \"\" || selectedGuestObj.ChargableTransportationTypeSerNo == 0) {\r\n setTransportationTypeArrowCss(\"\");\r\n }\r\n else {\r\n let TransChargeTypeSeqNo = 0;\r\n let TransTypeSeqNo = 0;\r\n transportationTypeList.forEach(ele => {\r\n if (ele.TransportationTypeSerNo == selectedGuestObj.ChargableTransportationTypeSerNo) {\r\n TransChargeTypeSeqNo = ele.SeqNo;\r\n }\r\n if (ele.TransportationTypeSerNo == item.key) {\r\n TransTypeSeqNo = ele.SeqNo;\r\n }\r\n });\r\n console.log(\"TypeSeq-\", TransTypeSeqNo, \"-ChargeSeq-\", TransChargeTypeSeqNo);\r\n if (parseInt(TransChargeTypeSeqNo) < parseInt(TransTypeSeqNo)) {\r\n setTransportationTypeArrowCss(\"upgrade-arrow absolute mrgn-lt130\");\r\n }\r\n else if (parseInt(TransChargeTypeSeqNo) > parseInt(TransTypeSeqNo)) {\r\n setTransportationTypeArrowCss(\"downgrade-arrow absolute mrgn-lt130\");\r\n }\r\n else {\r\n setTransportationTypeArrowCss(\"\");\r\n }\r\n }\r\n setSelectedGuestObj(prev => ({ ...prev, TransportationTypeSerNo: item.key }));\r\n funSetCarrierAndPriceDetail(item.key, selectedGuestObj.GuestProfileSerNo);\r\n\r\n };\r\n const handleOnAccompanyGuestChange = (item, name) => {\r\n setSelectedGuestObj(prev => ({ ...prev, GuestProfileSerNo: item.key }));\r\n funSetCarrierAndPriceDetail(selectedGuestObj.TransportationTypeSerNo, item.key);\r\n };\r\n //#endregion \r\n\r\n const setSelectedItem = (items) => {\r\n SetgridSelectedItem(items);\r\n settemp(!temp);\r\n };\r\n\r\n const handleUserRights = async (strRightsSerNo) => {\r\n if (strRightsSerNo != undefined) {\r\n const userRightObj = userRightsData.find((x) => x.RightsSerNo == strRightsSerNo);\r\n if (userRightObj != undefined) {\r\n if (userRightObj.IsApply != undefined) {\r\n if (userRightObj.IsApply) {\r\n return true;\r\n } else {\r\n await confirm({\r\n Message: `${userRightObj.Name} : ${userRightObj.PromptMessage}`,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n }\r\n };\r\n\r\n const validateTrnsprtFixRate = (v) => {\r\n handleUserRights(\"6\").then(d => {\r\n if (d) {\r\n setSelectedGuestObj(prev => ({ ...prev, IsFixedRate: v }));\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n };\r\n const validateTrnsprtTaxIncl = (v) => {\r\n handleUserRights(\"7\").then(d => {\r\n if (d) {\r\n setSelectedGuestObj(prev => ({ ...prev, IsTaxInclusive: v }));\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n };\r\n\r\n const PickUpTooltip = () => {\r\n return (\r\n
\r\n
\r\n {showTooltipPickupGuestDetail.length > 0 ?\r\n <>\r\n
\r\n Pick Up\r\n {showTooltipPickupGuestDetail && showTooltipPickupGuestDetail.map(d =>\r\n <>\r\n
Date : {d.TransportationDate}
\r\n
Transportation Type : {d.TransportationName}
\r\n
Carrier : {d.TransportationCarrier}
\r\n
Time : {d.TransportationTime}
\r\n
Rate : {d.Price} {d.IsTaxInclusive == false ? \" + Tax\" : \" (Incl.)\"}
\r\n \r\n )}\r\n
\r\n : null\r\n }\r\n {showTooltipDropGuestDetail.length > 0 ?\r\n <>\r\n
\r\n Drop Off\r\n {showTooltipDropGuestDetail && showTooltipDropGuestDetail.map(d =>\r\n <>\r\n
Date : {d.TransportationDate}
\r\n
Transportation Type : {d.TransportationName}
\r\n
Carrier : {d.TransportationCarrier}
\r\n
Time : {d.TransportationTime}
\r\n
Rate : {d.Price} {d.IsTaxInclusive == false ? \" + Tax\" : \" (Incl.)\"}
\r\n \r\n )}\r\n
\r\n : null\r\n }\r\n {showTooltipLocalGuestDetail.length > 0 ?\r\n <>\r\n
\r\n Local\r\n {showTooltipLocalGuestDetail && showTooltipLocalGuestDetail.map(d =>\r\n <>\r\n
Date : {d.TransportationDate}
\r\n
Transportation Type : {d.TransportationName}
\r\n
Time : {d.TransportationTime}
\r\n
Rate : {d.Price} {d.IsTaxInclusive == false ? \" + Tax\" : \" (Incl.)\"}
\r\n \r\n )}\r\n
\r\n : null\r\n }\r\n
\r\n {\r\n showEditDiv ?\r\n
\r\n {\r\n handleUserRights(\"8\").then(d => {\r\n if (d) {\r\n handleOnToolTopEditClick();\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n }}>Edit\r\n {/* console.log(item, name)}\r\n > */}\r\n
\r\n :\r\n <>\r\n }\r\n
\r\n );\r\n };\r\n return (\r\n <>\r\n \r\n
\r\n {t('INN_Trasportation')}\r\n \r\n ({transportationMainObj == undefined || transportationMainObj.length == 0 ? \"0\" : transportationMainObj.length})\r\n \r\n
\r\n \r\n\r\n {showTransportationPopup ? (\r\n {\r\n setShowTransportationPopup(false);\r\n setSelectedGuestObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n

Transportation

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    \r\n Confirmation No.\r\n
    \r\n
    \r\n {showPrimaryGuestDetail.BookingNo}\r\n
    \r\n
  • \r\n
  • \r\n
    Guest Name
    \r\n
    \r\n {showPrimaryGuestDetail.GuestName}\r\n
    \r\n\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n <>\r\n {\r\n setSelectedGuestObj(prev => ({ ...prev, TransportationDate: e }));\r\n }}\r\n placeholder=\"Date\"\r\n calendarStartDay={1}\r\n label=\"Date\"\r\n selected={selectedGuestObj.TransportationDate}\r\n >\r\n \r\n
\r\n
\r\n {\r\n //console.log(e);\r\n setSelectedGuestObj(prev => ({ ...prev, TransportationTime: e }));\r\n }}\r\n placeholder=\"Time\"\r\n label=\"Time\"\r\n timeformat=\"HH:mm\"\r\n dateformat=\"HH:mm\"\r\n selected={selectedGuestObj.TransportationDate + \" \" + selectedGuestObj.TransportationTime}\r\n >\r\n
\r\n
\r\n\r\n
\r\n {\r\n if (selectedGuestObj.ChargableTransportationTypeSerNo == \"\" || selectedGuestObj.ChargableTransportationTypeSerNo == 0) {\r\n setTransportationTypeArrowCss(\"\");\r\n }\r\n else {\r\n let TransChargeTypeSeqNo = 0;\r\n let TransTypeSeqNo = 0;\r\n transportationTypeList.forEach(ele => {\r\n if (ele.TransportationTypeSerNo == item.key) {\r\n TransChargeTypeSeqNo = ele.SeqNo;\r\n }\r\n if (ele.TransportationTypeSerNo == selectedGuestObj.TransportationTypeSerNo) {\r\n TransTypeSeqNo = ele.SeqNo;\r\n }\r\n });\r\n console.log(\"TypeSeq-\", TransTypeSeqNo, \"-ChargeSeq-\", TransChargeTypeSeqNo);\r\n if (parseInt(TransChargeTypeSeqNo) < parseInt(TransTypeSeqNo)) {\r\n setTransportationTypeArrowCss(\"upgrade-arrow absolute mrgn-lt130\");\r\n }\r\n else if (parseInt(TransChargeTypeSeqNo) > parseInt(TransTypeSeqNo)) {\r\n setTransportationTypeArrowCss(\"downgrade-arrow absolute mrgn-lt130\");\r\n }\r\n else {\r\n setTransportationTypeArrowCss(\"\");\r\n }\r\n }\r\n setSelectedGuestObj(prev => ({ ...prev, ChargableTransportationTypeSerNo: item.key }));\r\n if (selectedGuestObj.Mode == \"Add\" || selectedGuestObj.Mode == \"Edit\") {\r\n transportationTypeList.forEach(ele => {\r\n if (ele.TransportationTypeSerNo == item.key) {\r\n setSelectedGuestObj(prev => ({\r\n ...prev,\r\n Price: ele.Price, //ele.IsTaxInclusive == false ? ele.Price + \" + Tax\" : ele.Price + \" (Incl.)\",\r\n IsTaxInclusive: ele.IsTaxInclusive\r\n }));\r\n }\r\n });\r\n }\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n {\r\n setSelectedGuestObj(prev => ({ ...prev, Price: v }));\r\n if (isValidOnlyDecimalNumber(parseFloat(v)) == false) {\r\n setSelectedGuestObj(prev => ({ ...prev, customErrorRate: \"Enter valid Rate.\" }));\r\n }\r\n else {\r\n setSelectedGuestObj(prev => ({ ...prev, customErrorRate: \"\" }));\r\n }\r\n }}>Rate\r\n
\r\n {/*
\r\n {selectedGuestObj.IsTaxInclusive == false ? \"+Tax\" : \"(Incl.)\"}\r\n
*/}\r\n
\r\n validateTrnsprtFixRate(v)}\r\n >Fixed Rate\r\n
\r\n
\r\n validateTrnsprtTaxIncl(v)}\r\n >Inclusive of Taxes\r\n
\r\n
\r\n {\r\n setSelectedGuestObj(prev => ({ ...prev, TransportationCarrier: v }));\r\n }}>Carrier\r\n
\r\n
\r\n {\r\n setSelectedGuestObj(prev => ({ ...prev, TransportationRefNo: v }));\r\n }}>Carrier Number\r\n
\r\n
\r\n {\r\n setSelectedGuestObj(prev => ({ ...prev, Address: v }));\r\n }}>Address\r\n
\r\n
\r\n {\r\n setSelectedGuestObj(prev => ({ ...prev, Adult: v }));\r\n if (isValidOnlyIntegerNumber(v) == false || parseInt(v) <= 0) {\r\n setSelectedGuestObj(prev => ({ ...prev, customErrorAdult: \"Enter valid Adult.\" }));\r\n }\r\n else {\r\n setSelectedGuestObj(prev => ({ ...prev, customErrorAdult: \"\" }));\r\n }\r\n\r\n }}>Adult\r\n
\r\n
\r\n {\r\n setSelectedGuestObj(prev => ({ ...prev, Child: v }));\r\n if (isValidOnlyIntegerNumber(v) == false) {\r\n setSelectedGuestObj(prev => ({ ...prev, customErrorChild: \"Enter valid Child.\" }));\r\n }\r\n else {\r\n setSelectedGuestObj(prev => ({ ...prev, customErrorChild: \"\" }));\r\n }\r\n }}>Child\r\n
\r\n
\r\n {\r\n setSelectedGuestObj(prev => ({ ...prev, TransportationNote: v }));\r\n }}>Note\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n setSelectedGuestObj(prev => ({ ...prev, TransportationProviderSerNo: item.key }));\r\n transportationProviderList.forEach(ele => {\r\n if (ele.TransportationProviderSerNo == item.key) {\r\n setSelectedTransProviderObj(ele);\r\n }\r\n });\r\n }}\r\n >\r\n
\r\n console.log(v)}>Contact Name\r\n console.log(v)}>Contact Number\r\n\r\n {\r\n setSelectedGuestObj(prev => ({ ...prev, VehicleNo: v }));\r\n }}>Vehicle Number\r\n {\r\n setSelectedGuestObj(prev => ({ ...prev, ChaufferName: v }));\r\n }}>Chauffeur Name\r\n {\r\n setSelectedGuestObj(prev => ({ ...prev, customErrorChaufferNumber: \"\" }));\r\n if (isValidOnlyIntegerNumberWithSpace(v) == false) {\r\n setSelectedGuestObj(prev => ({ ...prev, customErrorChaufferNumber: \"Enter valid Chauffer Number.\" }));\r\n }\r\n else {\r\n setSelectedGuestObj(prev => ({ ...prev, ChaufferNumber: v }));\r\n }\r\n }}>Chauffer No\r\n\r\n\r\n
\r\n {selectedGuestObj.Mode == \"View\" ?\r\n <>\r\n Add Transportation\r\n {/* Edit\r\n Delete */}\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n // console.log(\"Link Click Row Data\", v);\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnData}\r\n optClick={(v, d) => {\r\n handleGrdOptionClick(v.value);\r\n }}\r\n fixedHeaderNo={1}\r\n handleRowSelect={(rowdata) => {\r\n console.log(\"rowdata>>\", rowdata);\r\n handleOnGuestDetailSelectionChange(rowdata);\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n
\r\n \r\n ) : null}\r\n {/* {\r\n showAlert ? \r\n {\r\n handleOnAlertMessageButtonClick(v);\r\n setShowAlert(!showAlert);}\r\n } \r\n message={showAlertMessage}\r\n buttons={showAlertButtonType}\r\n >\r\n : null\r\n } */}\r\n \r\n );\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnPrimaryButton,\r\n InnTooltip,\r\n InnButtonTypeWithDropdown\r\n} from \"../../../../component\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { GetSharerDetails } from \"../../../../services/reservationService\";\r\n\r\n\r\nexport function IndiSharer(props) {\r\n const { t } = useTranslation();\r\n const [showEditDiv, setShowEditDiv] = useState(true);//use to show Edit button\r\n const [details, setDetails] = useState({});\r\n const [sharerData, setSharerData] = useState([]);\r\n\r\n useEffect(() => {\r\n GetSharerDetail();\r\n if (props.para != undefined) {\r\n if (props.para.IsShowTooltipActionButton == \"hide\") {\r\n setShowEditDiv(false);\r\n }\r\n else {\r\n setShowEditDiv(true);\r\n }\r\n }\r\n }, [props.para.ReservationSerNo]);\r\n\r\n const GetSharerDetail = () => {\r\n GetSharerDetails(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo, props.para.IsSharer).then(resp => {\r\n setDetails(resp.data[0]);\r\n setSharerData(resp.data);\r\n });\r\n };\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n const SharerAndPrimaryTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {details.GuestName} Booking. No. {details.BookingNo}\r\n
\r\n
{details.ArrivalDate} – {details.DepartureDate}
\r\n
Billing Instruction : {details.BillingInstructionRemarks}
\r\n
{details.AgentName}
\r\n
{details.CompanyName}
\r\n
\r\n
\r\n {\r\n showEditDiv ?\r\n
\r\n Edit\r\n\r\n console.log(item, name)}\r\n >\r\n
\r\n :\r\n <>\r\n }\r\n
\r\n );\r\n };\r\n return (\r\n \r\n
\r\n {/* {t(\"INN_Sharer\")} */}\r\n {props.para.IsSharer ? \"Primary\" : \"Sharer\"}\r\n ({sharerData.length})\r\n
\r\n \r\n );\r\n}","import React, { useState,useEffect } from \"react\";\r\nimport {\r\n InnTooltip,\r\n InnButtonTypeWithDropdown\r\n} from \"../../../../component\";\r\nimport {manageReservationIndiGroupInfo} from \"../../../../services/reservationService\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\n\r\nexport function IndiGroupInfo(props) {\r\n const { t } = useTranslation();\r\n const [showEditDiv, setShowEditDiv] = useState(true)//use to show Edit button\r\n const [groupInfoData,setGroupInfoData] = useState({});\r\n\r\n useEffect(() => {\r\n if(props.para.ReservationSerNo != undefined){\r\n manageReservationIndiGroupInfo(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo).then(d => {\r\n setGroupInfoData(d.data)\r\n })\r\n }\r\n if(props.para!=undefined){\r\n if (props.para.IsShowTooltipActionButton == \"hide\") {\r\n setShowEditDiv(false)\r\n }\r\n else{\r\n setShowEditDiv(true)\r\n }\r\n }\r\n }, [props.para.ReservationSerNo])\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n const GroupInfoTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
{groupInfoData.BlockName}
\r\n
{groupInfoData.RoomNights} Rooms
\r\n
Group coordinator : {groupInfoData.GuestName}
\r\n
Event Coordinator : {groupInfoData.UserID}
\r\n
\r\n
\r\n {\r\n showEditDiv ?\r\n
\r\n console.log(item, name)}\r\n >\r\n
\r\n :\r\n <>\r\n }\r\n
\r\n );\r\n };\r\n return (\r\n \r\n
\r\n {t('INN_GroupInfo')}\r\n \r\n {groupInfoData.BlockName != undefined ? groupInfoData.BlockName : \"\" }\r\n \r\n
\r\n \r\n )\r\n}","import { element } from \"prop-types\";\r\nimport React, { useState, useEffect } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnTooltip,\r\n InnButtonTypeWithDropdown,\r\n InnTimeSelection,\r\n InnConfirmAlert,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n GetReservationInfoCancellationData, GetReservationInfoCancellationDetail,\r\n GetCancellationRuleMasterByDate, AddEditReservationCancellation, DeleteReservationCancellationRule\r\n} from \"../../../../services/reservationService\";\r\nimport { nothing } from \"@reduxjs/toolkit/node_modules/immer\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { ManageRights } from \"../../../../services/generalService\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport function IndiCancellationRule(props) {\r\n const { t } = useTranslation();\r\n const currUser = useSelector(currentUser);\r\n\r\n const { confirm } = useConfirm();\r\n const [showCancellationPopup, setCancellationPopup] = useState(false);\r\n const [reservationCancellationObj, setReservationCancellationObj] = useState([]);\r\n const [cancellationRuleList, setcancellationRuleList] = useState([]);\r\n const [selectedCancellationRuleSerNo, setSelectedCancellationRuleSerNo] = useState(0);\r\n const [cmbCancellationRule, setCmbCancellationRule] = useState([]);\r\n const [cancellationDescription, setCancellationDescription] = useState(\"\");\r\n const [cancellationRuleDetail, setcancellationRuleDetail] = useState([]);\r\n const [filterDataCancellation, setfilterDataCancellation] = useState([]);\r\n const [cancellationRuleDetailList, setcancellationRuleDetailList] = useState([]);\r\n const [gridSelectedItem, setGridSelectedItem] = useState([]);\r\n const [showAlert, setShowAlert] = useState(false);\r\n const [cancellationRuleMode, setCancellationRuleMode] = useState(\"View\");\r\n const [divCancellationRuleEnable, setDivCancellationRuleEnable] = useState(true);\r\n const [showEditDiv, setShowEditDiv] = useState(true)//use to show Edit button\r\n const [userRightsData, setUserRightsData] = useState([]);\r\n //const [selectedCancellationRule,setSelectedCancellationRule] = useState({\"key\": 0,\"value\": \"Select\"});\r\n\r\n const optBtnCancellation = [\r\n { key: \"Delete\", value: \"Delete\" },\r\n ]\r\n\r\n const columHeaderCancellation = [\r\n { key: \"Cancellation Rule\", value: \"desc\", type: \"txt\", sorting: \"N\" },\r\n {\r\n key: \"No. of Days Before Arrival\",\r\n value: \"before\",\r\n type: \"txt\",\r\n sorting: \"Y\",\r\n align: \"center\",\r\n },\r\n {\r\n key: \"Date\",\r\n value: \"date\",\r\n type: \"txt\",\r\n sorting: \"Y\",\r\n },\r\n {\r\n key: \"Time\",\r\n value: \"time\",\r\n type: \"txt\",\r\n sorting: \"Y\",\r\n },\r\n {\r\n key: \"Amount\",\r\n value: \"amount\",\r\n type: \"txt\",\r\n sorting: \"Y\",\r\n },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\", align: \"center\" },\r\n\r\n ];\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n\r\n useEffect(() => {\r\n getReservationCancellationData();\r\n if (props.para != undefined) {\r\n if (props.para.IsShowTooltipActionButton == \"hide\") {\r\n setShowEditDiv(false)\r\n }\r\n else {\r\n setShowEditDiv(true)\r\n }\r\n }\r\n }, [props.para.ReservationSerNo]);\r\n\r\n useEffect(()=>{\r\n fillUserRights();\r\n },[])\r\n\r\n useEffect(() => {\r\n if (cancellationRuleMode == \"View\") {\r\n setSelectedCancellationRuleSerNo(0);\r\n setCancellationDescription(\"\")\r\n setDivCancellationRuleEnable(true);\r\n }\r\n if (cancellationRuleMode == \"Add\") {\r\n console.log(cancellationRuleList)\r\n setSelectedCancellationRuleSerNo(reservationCancellationObj.CancellationRuleSerNo);\r\n //setfilterDataCancellation([]);\r\n if (reservationCancellationObj.CancellationRuleSerNo != null && reservationCancellationObj.CancellationRuleSerNo != 0) {\r\n setCancellationDescription(cancellationRuleList.filter(element =>\r\n element.CancellationRuleSerNo == parseInt(reservationCancellationObj.CancellationRuleSerNo)\r\n )[0].LongDescription);\r\n }\r\n setDivCancellationRuleEnable(false);\r\n }\r\n\r\n }, [cancellationRuleMode]);\r\n\r\n const getReservationCancellationData = () => {\r\n GetReservationInfoCancellationData(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo).then(d => {\r\n console.log(\"cancellation data \", d.data);\r\n setReservationCancellationObj(d.data);\r\n let cancellationSerNo = d.data.CancellationRuleSerNo\r\n GetReservationInfoCancellationDetail(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo, d.data.CancellationRuleSerNo).then(d => {\r\n setcancellationRuleDetailList(d.data);\r\n }).catch(error => {\r\n setcancellationRuleDetailList([]);\r\n })\r\n }).catch(error => {\r\n setReservationCancellationObj([]);\r\n setcancellationRuleDetailList([]);\r\n })\r\n\r\n }\r\n const getCancellationDetail = (ruleSerNO) => {\r\n GetReservationInfoCancellationDetail(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo, ruleSerNO).then(d => {\r\n setcancellationRuleDetail(d.data);\r\n let cancellationDetailList = [];\r\n d.data.map(element => {\r\n cancellationDetailList.push(\r\n {\r\n cancelrulserno: ruleSerNO,\r\n desc: element.CancellationRuleName,\r\n before: element.DaysBeforeArrival,\r\n date: element.CancellationDate,\r\n time: element.CancellationTime,\r\n amount: element.CancellationAmount,\r\n action: \"...\"\r\n\r\n })\r\n })\r\n setfilterDataCancellation(cancellationDetailList);\r\n }).catch(error => {\r\n setcancellationRuleDetail([]);\r\n setfilterDataCancellation([]);\r\n })\r\n }\r\n const getCancellationListData = (arrivalDate, departureDate) => {\r\n GetCancellationRuleMasterByDate(props.para.ClientSerNo, props.para.PropertySerNo, arrivalDate, departureDate).then(d => {\r\n setcancellationRuleList(d.data);\r\n let cancellationList = [];\r\n cancellationList.push({ key: 0, value: \"Select\" })\r\n d.data.map(element => {\r\n cancellationList.push({ key: element.CancellationRuleSerNo, value: element.Name })\r\n })\r\n setCmbCancellationRule(cancellationList);\r\n }).catch(error => {\r\n setcancellationRuleList([]);\r\n setCmbCancellationRule([]);\r\n })\r\n }\r\n const fillUserRights = () => {\r\n ManageRights(currUser.ClientSerNo, currUser.UserID, \"10\").then((d) => {\r\n console.log(\"cancellation user rights\",d.data);\r\n if(d.data.length > 0){\r\n setUserRightsData(d.data);\r\n }\r\n else{\r\n console.log(\"Not allowed\");\r\n }\r\n })\r\n }\r\n const handleUserRights = async (strRightsSerNo) => {\r\n if (strRightsSerNo != undefined) {\r\n const userRightObj = userRightsData.find((x) => x.RightsSerNo == strRightsSerNo);\r\n if (userRightObj != undefined) {\r\n if (userRightObj.IsApply != undefined) {\r\n if (userRightObj.IsApply) {\r\n return true;\r\n } else {\r\n await confirm({\r\n Message: `${userRightObj.Name} : ${userRightObj.PromptMessage}`,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n }\r\n };\r\n const validateEditCancellationRule = ()=>{\r\n handleUserRights(\"10\").then(d=>{\r\n if(d){\r\n handleEditOnClick();\r\n }\r\n else{\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n }\r\n const handleEditOnClick = () => {\r\n setCancellationPopup(!showCancellationPopup);\r\n getCancellationListData(reservationCancellationObj.ArrivalDate, reservationCancellationObj.DepartureDate);\r\n getCancellationDetail(reservationCancellationObj.CancellationRuleSerNo);\r\n setCancellationRuleMode(\"View\");\r\n }\r\n\r\n const handleSaveOnClick = () => {\r\n cancellationRuleDetail.map(element => {\r\n element.ClientSerNo = props.para.ClientSerNo;\r\n element.PropertySerNo = props.para.PropertySerNo;\r\n element.ReservationSerNo = props.para.ReservationSerNo;\r\n element.CancellationRuleSerNo = selectedCancellationRuleSerNo;\r\n element.Negotiable = cancellationRuleList.filter(obj => obj.CancellationRuleSerNo == selectedCancellationRuleSerNo)[0].Negotiable;\r\n })\r\n AddEditReservationCancellation(cancellationRuleDetail).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n //setCancellationPopup(false);\r\n getReservationCancellationData();\r\n getCancellationDetail(selectedCancellationRuleSerNo);\r\n setCancellationRuleMode(\"View\");\r\n\r\n }\r\n }).catch(error => {\r\n })\r\n\r\n }\r\n const handleAddOnClick = () => {\r\n setCancellationRuleMode(\"Add\");\r\n }\r\n const handleCancleOnClick = () => {\r\n getCancellationDetail(reservationCancellationObj.CancellationRuleSerNo);\r\n setCancellationRuleMode(\"View\");\r\n }\r\n\r\n const handleOptionClick = async (option) => {\r\n if (option.value == \"Delete\") {\r\n if (parseInt(gridSelectedItem.cancelrulserno) == parseInt(reservationCancellationObj.CancellationRuleSerNo)) {\r\n //setShowAlert(true);\r\n let conf\r\n = await confirm({\r\n Message: \"Are You Sure Want To Delete this cancellation rule?\",\r\n Buttons: [\r\n { value: 'N', title: \"No\", type: \"Action\" },\r\n { value: 'Y', title: \"Yes\", type: \"\" },\r\n ],\r\n });\r\n if (conf.value == 'Y') {\r\n handleDeleteonClick();\r\n }\r\n }\r\n }\r\n }\r\n const handleDeleteonClick = () => {\r\n DeleteReservationCancellationRule(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo, gridSelectedItem.cancelrulserno).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n getReservationCancellationData();\r\n setfilterDataCancellation([]);\r\n setCancellationRuleMode(\"View\");\r\n }\r\n }).catch(error => {\r\n })\r\n }\r\n\r\n const CancellationTooltip = () => {\r\n return (\r\n
\r\n
\r\n {\r\n cancellationRuleDetailList.map(element => {\r\n return (\r\n
\r\n
\r\n {element.CancellationRuleName}\r\n
\r\n
\r\n Amount Requested : {element.CancellationAmount}\r\n
\r\n
\r\n No. of Days Before Arrival : {element.DaysBeforeArrival}\r\n
\r\n
\r\n )\r\n })\r\n }\r\n\r\n
\r\n {\r\n showEditDiv ?\r\n
\r\n validateEditCancellationRule()} >\r\n Edit\r\n \r\n console.log(item)}\r\n >\r\n
\r\n :\r\n <>\r\n }\r\n
\r\n );\r\n };\r\n return (\r\n <>\r\n \r\n
\r\n {t('INN_CancellationRule')}\r\n {/* Yes */}\r\n
\r\n \r\n\r\n {showCancellationPopup ? (\r\n setCancellationPopup(!showCancellationPopup)}\r\n >\r\n
\r\n
\r\n
\r\n

Cancellation Rule

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    Confirmation No.
    \r\n
    {reservationCancellationObj.BookingNo}
    \r\n
  • \r\n
  • \r\n
    Guest Name
    \r\n
    \r\n {reservationCancellationObj.GuestName}\r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/* style={{\"pointer-events\" : divCancellationRuleEnable}} */}\r\n
\r\n {\r\n getCancellationDetail(parseInt(item.key));\r\n setCancellationDescription(cancellationRuleList.filter(element =>\r\n element.CancellationRuleSerNo == parseInt(item.key)\r\n )[0].LongDescription);\r\n setSelectedCancellationRuleSerNo(parseInt(item.key));\r\n }}\r\n >\r\n
\r\n
\r\n

\r\n {cancellationDescription}

\r\n
\r\n
\r\n
\r\n {\r\n cancellationRuleMode == \"View\" ?\r\n <>\r\n handleAddOnClick()}>Add Rule\r\n \r\n :\r\n <>\r\n handleSaveOnClick()}>Save\r\n handleCancleOnClick()}>Cancel\r\n \r\n }\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {\r\n }}\r\n handleLinkClick={(v) => {\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={cancellationRuleMode == \"View\" ? [] : []}\r\n optClick={(v, d) => {\r\n //handleOptionClick(v);\r\n }}\r\n\r\n fixedHeaderNo={1}\r\n handleRowSelect={(rowdata) => {\r\n setGridSelectedItem(rowdata)\r\n\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n ) : null}\r\n {/* {showAlert == true ? (\r\n {\r\n setShowAlert(!showAlert);\r\n if (v == \"Ok\")\r\n {\r\n handleDeleteonClick();\r\n }\r\n }}\r\n message=\"Are You Sure Want To Delete this Cancellation Rule?\"\r\n buttons={[\r\n { \"value\": \"Ok\", \"title\": \"OK\" },\r\n { \"value\": \"No\", \"title\": \"Cancel\" }\r\n ]}> \r\n ) : null} \r\n */}\r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { InnSwitch } from \"../../../../component\";\r\nimport { manageReservationFields} from \"../../../../services/reservationService\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport function IndiPrintRate(props) {\r\n\r\n const [isPrintRate, setIsPrintRate] = useState(false);\r\n const { t } = useTranslation();\r\n\r\n useEffect(() => {\r\n if (props.para.IsPrintRate != undefined)\r\n setIsPrintRate(props.para.IsPrintRate);\r\n }, [props.para.IsPrintRate])\r\n\r\n const handleOnChange = (v) => {\r\n setIsPrintRate(v);\r\n manageReservationFields(props.para.ClientSerNo, props.para.PropertySerNo,\r\n props.para.ReservationSerNo, \"IsPrintRate\", v).then(d => {\r\n //alert(d.data.Message);\r\n manageReservationFields(props.para.ClientSerNo, props.para.PropertySerNo,\r\n props.para.ReservationSerNo, \"IsDiscloseRate\", !v).then(d => {\r\n if (d.data.Code == \"200\") {\r\n if (props.onUpdate != undefined) {\r\n props.onUpdate(v);\r\n }\r\n }\r\n })\r\n })\r\n }\r\n\r\n return (\r\n
\r\n {t('INN_PrintRate')}\r\n \r\n
\r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { InnPrimaryButton, InnSwitch, InnTooltip, InnModalPopup, InnButtonTypeWithDropdown, InnCheckbox, useConfirm } from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n GetReservationNoPostData,\r\n GetReservationNoPostOutletGroup,\r\n GetReservationNoPostItemGroup,\r\n GetReservationNoPostOutlet,\r\n AddReservationNoPostOutletGroup,\r\n manageReservationFields,\r\n GetReservationNoPostCustom,\r\n} from \"../../../../services/reservationService\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { ManageRights } from \"../../../../services/generalService\";\r\n\r\nexport function IndiNoPost(props) {\r\n const { t } = useTranslation();\r\n const { confirm } = useConfirm();\r\n\r\n //#region Local Variable\r\n const currUser = useSelector(currentUser);\r\n const ReservationSerNo = props.para.ReservationSerNo;\r\n //const ReservationSerNo = 1;\r\n\r\n //#endregion Local Variable\r\n\r\n //#region State Variable\r\n const [userRights, setUserRights] = useState([]);\r\n const [controlMode, setControlMode] = useState({\r\n AllOutlet: false,\r\n ItemGroup: false,\r\n Custom: false,\r\n }); // Based on filter hide/show content.\r\n const [viewMode, setViewMode] = useState(\"A\");\r\n const [selectedObject, setSelectedObject] = useState({\r\n OutletGroupSerNo: 0,\r\n OutletSerNo: 0,\r\n ItemGroupSerNo: 0,\r\n });\r\n const [noPostHeader, setNoPostHeader] = useState({});\r\n const [outletGroup, setOutletGroup] = useState([]);\r\n const [outlet, setOutlet] = useState([]);\r\n const [filteredOutlet, setFilteredOutlet] = useState([]);\r\n const [outletTooltipData, setOutletTooltipData] = useState([]);\r\n\r\n const [itemGroup, setItemGroup] = useState([]);\r\n const [filteredItemGroup, setFilteredItemGroup] = useState([]);\r\n const [customModeData, setCustomModeData] = useState([]);\r\n const [isDataUpdated, setIsDataUpdated] = useState(false); // this use to show alert msg, when user close popup without save.\r\n //const [filteredCustomModeData, setFilteredCustomModeData] = useState([]);\r\n // const [totalItemGroup, setTotalItemGroup] = useState([]);\r\n // const [isSelectedAllOutlet, setIsSelectedAllOutlet] = useState(true);\r\n // const [isSelectedItemGroup, setIsSelectedItemGroup] = useState(false);\r\n // const [isSelectedCustom, setIsSelectedCustom] = useState(false);\r\n // const [hideShowGrid, setHideShowGrid] = useState(false);\r\n // const [selectedOutletGroupSerNo, setSelectedOutletGroupSerNo] = useState(\"\");\r\n // const [selectedOutletSerNo, setSelectedOutletSerNo] = useState(\"\");\r\n const [showEditDiv, setShowEditDiv] = useState(true); //use to show Edit button\r\n const [count, setCount] = useState(0);\r\n\r\n //#endregion State Variable\r\n //#region useeffect\r\n useEffect(() => {\r\n funGetReservationNoPostData();\r\n if (props.para != undefined) {\r\n if (props.para.IsShowTooltipActionButton == \"hide\") {\r\n setShowEditDiv(false);\r\n } else {\r\n setShowEditDiv(true);\r\n }\r\n }\r\n }, [props.para.ReservationSerNo]);\r\n\r\n useEffect(() => {\r\n handleOnFilterChange();\r\n if (controlMode.AllOutlet == true) {\r\n funGetReservationNoPostOutletGroup();\r\n } else {\r\n if (controlMode.Custom == true) {\r\n funGetReservationNoPostCustom();\r\n } else if (controlMode.ItemGroup == true) {\r\n funGetReservationNoPostItemGroup();\r\n } else {\r\n funGetReservationNoPostOutlet();\r\n }\r\n }\r\n }, [controlMode]);\r\n useEffect(() => {\r\n funGetUserRights();\r\n }, []);\r\n //#endregion useeffect\r\n\r\n //#region Custom Function\r\n const funGetReservationNoPostData = () => {\r\n GetReservationNoPostData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then((d) => {\r\n setNoPostHeader(d.data);\r\n console.log(\"ViewMode\", d.data);\r\n setViewMode(d.data.NoPostType);\r\n if (d.data.NoPostType == \"A\") {\r\n setControlMode({ AllOutlet: true, ItemGroup: false, Custom: false });\r\n } else if (d.data.NoPostType == \"O\") {\r\n setControlMode({ AllOutlet: false, ItemGroup: false, Custom: false });\r\n } else if (d.data.NoPostType == \"OI\") {\r\n setControlMode({ AllOutlet: false, ItemGroup: true, Custom: false });\r\n } else if (d.data.NoPostType == \"AI\") {\r\n setControlMode({ AllOutlet: false, ItemGroup: false, Custom: true });\r\n }\r\n });\r\n };\r\n const funGetReservationNoPostOutletGroup = () => {\r\n GetReservationNoPostOutletGroup(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then((d) => {\r\n setOutletGroup(d.data);\r\n });\r\n };\r\n const funGetReservationNoPostOutlet = () => {\r\n GetReservationNoPostOutlet(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then((d) => {\r\n setOutlet(d.data);\r\n if (d.data.length > 0) {\r\n\r\n let filterData = d.data.filter((item) => item.OutletGroupSerNo == d.data[0].OutletGroupSerNo);\r\n if (filterData != undefined) {\r\n setFilteredOutlet(filterData);\r\n }\r\n let tempOutletGruop = [];\r\n d.data.forEach((ele) => {\r\n let filterData = tempOutletGruop.find((item) => item.OutletGroupSerNo == ele.OutletGroupSerNo);\r\n if (filterData == undefined) {\r\n tempOutletGruop.push({ OutletGroupSerNo: ele.OutletGroupSerNo, OutletGroupName: ele.OutletGroupName });\r\n }\r\n });\r\n setOutletGroup(tempOutletGruop);\r\n let GroupWiseOutletList = d.data.reduce((item, { OutletGroupName, OutletName }) => {\r\n if (!item[OutletGroupName]) item[OutletGroupName] = [];\r\n item[OutletGroupName].push(OutletName);\r\n return item;\r\n }, {});\r\n setOutletTooltipData(GroupWiseOutletList);\r\n\r\n setSelectedObject((prev) => ({ ...prev, OutletGroupSerNo: d.data[0].OutletGroupSerNo }));\r\n }\r\n });\r\n };\r\n const funGetReservationNoPostItemGroup = () => {\r\n GetReservationNoPostItemGroup(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then((d) => {\r\n setItemGroup(d.data);\r\n let filterData = d.data.filter((item) => item.OutletGroupSerNo == d.data[0].OutletGroupSerNo);\r\n if (filterData != undefined) {\r\n setFilteredItemGroup(filterData);\r\n }\r\n setSelectedObject((prev) => ({ ...prev, OutletGroupSerNo: d.data[0].OutletGroupSerNo }));\r\n\r\n let tempOutletGruop = [];\r\n d.data.forEach((ele) => {\r\n let filterData = tempOutletGruop.find((item) => item.OutletGroupSerNo == ele.OutletGroupSerNo);\r\n if (filterData == undefined) {\r\n tempOutletGruop.push({ OutletGroupSerNo: ele.OutletGroupSerNo, OutletGroupName: ele.OutletGroupName });\r\n }\r\n });\r\n setOutletGroup(tempOutletGruop);\r\n });\r\n };\r\n const funGetReservationNoPostCustom = () => {\r\n GetReservationNoPostCustom(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then((d) => {\r\n setCustomModeData(d.data);\r\n // let filterData = d.data.filter(item => item.OutletGroupSerNo == d.data[0].OutletGroupSerNo && item.OutletSerNo == d.data[0].OutletSerNo);\r\n // if(filterData != undefined){\r\n // setFilteredCustomModeData(filterData);\r\n // }\r\n setSelectedObject((prev) => ({ ...prev, OutletGroupSerNo: d.data[0].OutletGroupSerNo, OutletSerNo: d.data[0].OutletSerNo }));\r\n\r\n let tempOutletGruop = [];\r\n d.data.forEach((ele) => {\r\n let filterData = tempOutletGruop.find((item) => item.OutletGroupSerNo == ele.OutletGroupSerNo);\r\n if (filterData == undefined) {\r\n tempOutletGruop.push({ OutletGroupSerNo: ele.OutletGroupSerNo, OutletGroupName: ele.OutletGroupName });\r\n }\r\n });\r\n setOutletGroup(tempOutletGruop);\r\n\r\n let tempOutlet = [];\r\n d.data.forEach((ele) => {\r\n let filterData = tempOutlet.find((item) => item.OutletSerNo == ele.OutletSerNo);\r\n if (filterData == undefined) {\r\n tempOutlet.push({ OutletGroupSerNo: ele.OutletGroupSerNo, OutletName: ele.OutletName, OutletSerNo: ele.OutletSerNo });\r\n }\r\n });\r\n console.log(\"Outlet Group Data\", tempOutlet);\r\n setOutlet(tempOutlet);\r\n\r\n let filterData = d.data.filter((item) => item.OutletGroupSerNo == d.data[0].OutletGroupSerNo && item.OutletSerNo == d.data[0].OutletSerNo);\r\n if (filterData != undefined) {\r\n setFilteredItemGroup(filterData);\r\n }\r\n });\r\n };\r\n\r\n const funGetUserRights = () => {\r\n if (currUser.ClientSerNo != undefined && currUser.UserID != undefined) {\r\n ManageRights(currUser.ClientSerNo, currUser.UserID, \"12,13\").then(async (d) => {\r\n console.log(\"user rights data>>>\", d.data);\r\n if (d.data.length > 0) {\r\n setUserRights(d.data);\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n });\r\n } else {\r\n console.log(\"UserID or clientId is undefined\");\r\n }\r\n };\r\n\r\n const handleOutletGroupChange = (d) => {\r\n if (viewMode == \"O\") {\r\n let filterData = outlet.filter((item) => item.OutletGroupSerNo == d.target.id);\r\n if (filterData != undefined) {\r\n setFilteredOutlet(filterData);\r\n }\r\n } else if (viewMode == \"OI\") {\r\n let filterData = itemGroup.filter((item) => item.OutletGroupSerNo == d.target.id);\r\n if (filterData != undefined) {\r\n setFilteredItemGroup(filterData);\r\n }\r\n } else if (viewMode == \"AI\") {\r\n let tempOutlet = [];\r\n customModeData.forEach((ele) => {\r\n if (ele.OutletGroupSerNo == d.target.id) {\r\n let filterData = tempOutlet.find((item) => item.OutletSerNo == ele.OutletSerNo);\r\n if (filterData == undefined) {\r\n tempOutlet.push({ OutletGroupSerNo: ele.OutletGroupSerNo, OutletName: ele.OutletName, OutletSerNo: ele.OutletSerNo });\r\n }\r\n }\r\n });\r\n setFilteredOutlet(tempOutlet);\r\n setSelectedObject((prev) => ({ ...prev, OutletGroupSerNo: d.target.id, OutletSerNo: tempOutlet[0].OutletSerNo }));\r\n\r\n let filterData = customModeData.filter((item) => item.OutletGroupSerNo == d.target.id && item.OutletSerNo == tempOutlet[0].OutletSerNo);\r\n if (filterData != undefined) {\r\n setFilteredItemGroup(filterData);\r\n }\r\n }\r\n };\r\n\r\n const handleRights = async (rightSerNo) => {\r\n if (rightSerNo != undefined) {\r\n const userRight = userRights.find((x) => x.RightsSerNo == rightSerNo);\r\n if (userRight != undefined) {\r\n if (userRight.IsApply != undefined) {\r\n if (userRight.IsApply) {\r\n return true;\r\n } else {\r\n await confirm({\r\n Message: `${userRight.Name} : ${userRight.PromptMessage}`,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n }\r\n };\r\n\r\n const validateNoPostEdit = () => {\r\n handleRights(\"12\").then((d) => {\r\n if (d) {\r\n setNoPostPopup(!showNoPostPopup);\r\n } else {\r\n console.log(\"Not Allowed\");\r\n }\r\n });\r\n };\r\n // const fillIndiNoPost = () => {\r\n // GetReservationNoPostItemGroup(1106, 2, ReservationSerNo).then((d) => {\r\n // console.log(\"Item Group Data\", d.data);\r\n // setItemGroup(d.data);\r\n // //setTotalItemGroup(d.data);\r\n // //setFilteredItemGroup(d.data);\r\n // })\r\n // }\r\n // // const handleOnItemGroupClick = (e) => {\r\n // // let obj = itemGroup.find(\r\n // // x => x.ItemGroupSerNo == e.target.id)\r\n // // console.log(\"forGrid\", obj);\r\n // // setItemGroup(obj);\r\n // // }\r\n // const selectionChangeOutletGroup = (value, e) => {\r\n // console.log(\"selectionChangeOutletGroup called\");\r\n // let tempObj = JSON.parse(JSON.stringify(outletGroup));\r\n // tempObj.forEach(ele => {\r\n // if (ele.OutletGroupSerNo == e.target.id) {\r\n // ele.IsChecked = value;\r\n // }\r\n // });\r\n // // let OGroupSerNo = e.target.id.split('_')[0];\r\n // // let tempObj1 = JSON.parse(JSON.stringify(outletGroup));\r\n // // tempObj1.forEach(ele => {\r\n // // if (ele.OutletGroupSerNo == OGroupSerNo) {\r\n // // ele.IsChecked = true\r\n // // }\r\n // // });\r\n // // console.log(\"Checked\", tempObj1);\r\n // // setOutletGroup(tempObj1);\r\n // // let x = outlet.find (x => x.IsChecked == true );\r\n // // setOutletGroup(x);\r\n // // console.log(\"Outlet Checked\", x);\r\n // setOutletGroup(tempObj);\r\n // let tempOutlet = outlet.filter(x => x.OutletGroupSerNo == e.target.id);\r\n // setFilteredOutlet(tempOutlet);\r\n // let tempItemGroup = totalItemGroup.filter(x => x.OutletGroupSerNo == e.target.id);\r\n // console.log(\"item group\",tempItemGroup,totalItemGroup);\r\n // setFilteredItemGroup(tempItemGroup);\r\n // }\r\n // const selectionChangeOutlet = (value, e) => {\r\n // console.log(\"outlet check values \", value, e);\r\n // let OGroupSerNo = e.target.id.split('_')[0];\r\n // let OSerNo = e.target.id.split('_')[1];\r\n // let tempObj1 = JSON.parse(JSON.stringify(outlet));\r\n // tempObj1.forEach(ele => {\r\n // if (ele.OutletSerNo == OSerNo) {\r\n // ele.IsChecked = value;\r\n // }\r\n // });\r\n // console.log(\"outlet check \", tempObj1);\r\n // setOutlet(tempObj1)\r\n // let tempOutlet = tempObj1.filter(x => x.OutletGroupSerNo == OGroupSerNo);\r\n // setFilteredOutlet(tempOutlet);\r\n // // e.stopPropagation();\r\n // }\r\n // const selectionChangeItemGroup = (value, e) => {\r\n // console.log(\"Item Group total Values\", value, e);\r\n // let OGroupSerNo = e.target.id.split('M_')[0];\r\n // let tempObj2 = JSON.parse(JSON.stringify(totalItemGroup));\r\n // tempObj2.forEach(ele => {\r\n // if (ele.OutletGroupSerNo == OGroupSerNo) {\r\n // ele.IsChecked = value;\r\n // }\r\n // });\r\n // console.log(\"Item Group check \", tempObj2);\r\n // //setTotalItemGroup(tempObj2)\r\n // // setItemGroup(tempObj2)\r\n // //let tempItemGroup = tempObj2.filter(x => x.OutletGroupSerNo == OGroupSerNo);\r\n // //setFilteredItemGroup(tempItemGroup);\r\n // }\r\n // const handleOnOutletClick = (e) => {\r\n // if (viewMode == \"ONI\") {\r\n // let tempOutlet = outlet.filter(x => x.OutletGroupSerNo == e.target.id.split(\"_\")[1]);\r\n // setFilteredOutlet(tempOutlet);\r\n // } else {\r\n // let tempItemGroup = totalItemGroup.filter(x => x.OutletGroupSerNo == e.target.id.split(\"_\")[1]);\r\n // setFilteredItemGroup(tempItemGroup);\r\n // }\r\n // //e.stopPropagation();\r\n // }\r\n\r\n //#endregion Custom Function\r\n //#region Events\r\n const handleOnFilterChange = () => {\r\n if (controlMode.AllOutlet == true) {\r\n setViewMode(\"A\");\r\n } else {\r\n if (controlMode.Custom == true) {\r\n setViewMode(\"AI\");\r\n } else if (controlMode.ItemGroup == true) {\r\n setViewMode(\"OI\");\r\n } else {\r\n setViewMode(\"O\");\r\n }\r\n }\r\n };\r\n const handleOnBtnSaveClick = () => {\r\n let FinalData;\r\n if (controlMode.AllOutlet == true) {\r\n FinalData = outletGroup;\r\n } else {\r\n if (controlMode.Custom == true) {\r\n FinalData = customModeData;\r\n } else if (controlMode.ItemGroup == true) {\r\n FinalData = itemGroup;\r\n } else {\r\n FinalData = outlet;\r\n }\r\n }\r\n AddReservationNoPostOutletGroup(FinalData).then((d) => {\r\n console.log(\"finish >>\");\r\n if (d.data.Code == 200) {\r\n setNoPostPopup(!showNoPostPopup);\r\n manageReservationFields(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo, \"NoPostType\", viewMode).then((d) => {\r\n console.log(\"finish manageReservationFields>>\");\r\n });\r\n } else {\r\n alert(d.data.Message);\r\n }\r\n });\r\n };\r\n\r\n // const handleOnSwitchAllOutletChange = (e) => {\r\n // setIsSelectedAllOutlet(e);\r\n // if (e == true) {\r\n // let tempGroup = JSON.parse(JSON.stringify(outletGroup));\r\n // tempGroup.forEach(ele => {\r\n // ele.IsChecked = true;\r\n // });\r\n // setOutletGroup(tempGroup);\r\n // setViewMode(\"ALLO\");\r\n // }\r\n // else {\r\n // if (isSelectedItemGroup == true) {\r\n // setViewMode(\"OI\");\r\n // } else {\r\n // let tempGroup = JSON.parse(JSON.stringify(outletGroup));\r\n // tempGroup.forEach(ele => {\r\n // ele.IsChecked = false;\r\n // });\r\n // setOutletGroup(tempGroup);\r\n // setViewMode(\"ONI\");\r\n // }\r\n // }\r\n // }\r\n // const handleOnCheckBoxItemGroup = (v) => {\r\n // console.log(\"itemgroup check \", v);\r\n // setIsSelectedItemGroup(v);\r\n // // let OGroupSerNo = v.target.id.split('M_')[0];\r\n // if (v == true && isSelectedAllOutlet == false) {\r\n // let tempItem = JSON.parse(JSON.stringify(itemGroup));\r\n // // tempItem.filter (x => x.OutletGroupSerNo)\r\n // // setItemGroup(tempItem);\r\n // // tempItem.filter((value,index,x) => x.indexof(value) == index)\r\n // let filItem = [];\r\n // itemGroup.map(O => {\r\n\r\n // if (filItem.filter(x => x.ItemGroupSerNo == O.ItemGroupSerNo && x.OutletGroupSerNo == O.OutletGroupSerNo).length == 0) {\r\n // filItem.push({ \"ItemGroupSerNo\": O.ItemGroupSerNo, \"OutletGroupSerNo\": O.OutletGroupSerNo, \"ItemGroupName\": O.ItemGroupName, \"IsChecked\": false });\r\n // }\r\n // })\r\n // console.log(\"abc\", filItem);\r\n // // tempItem.forEach(ele => {\r\n // // ele.OutletGroupSerNo = tempItem.ItemGroupSerNo;\r\n // // ele.IsChecked = true;\r\n // // });\r\n // setTotalItemGroup(filItem);\r\n // setFilteredItemGroup(filItem);\r\n // setViewMode(\"OI\");\r\n // }\r\n\r\n // }\r\n // const handleOnCheckItemClick = () => {\r\n // if (noPostHeader.NoPostType = \"ALLO\") {\r\n // // isSelectedItemGroup.disabled = false\r\n // // setIsSelectedItemGroup = false\r\n // (setViewMode = \"ALLO\")\r\n // }\r\n // else\r\n // isSelectedItemGroup.disabled = true\r\n // isSelectedItemGroup.checked = true\r\n // isSelectedAllOutlet.disabled = true\r\n // setViewMode(\"ONI\");\r\n // GetReservationNoPostOutlet(1106, 2, ReservationSerNo).then((d) => {\r\n // console.log(\"OutletData\", d.data);\r\n // setOutlet(d.data);\r\n // })\r\n // setIsSelectedItemGroup = true\r\n // }\r\n //#endregion Events\r\n\r\n const [showNoPostPopup, setNoPostPopup] = useState(false);\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n const NoPostTooltip = () => {\r\n return (\r\n
\r\n
\r\n {viewMode == \"A\" ? ( //controlMode.AllOutlet == true && controlMode.ItemGroup == false ?\r\n <>\r\n
\r\n
\r\n All : \r\n
\r\n {/*
{selectedOutletGroupData.DiscountPercentage}% Discount
*/}\r\n
\r\n \r\n ) : null}\r\n {viewMode == \"O\" ? ( //controlMode.AllOutlet == false && controlMode.ItemGroup == false ?\r\n <>\r\n {outletGroup &&\r\n outletGroup.map((d1) => (\r\n
\r\n {d1.OutletGroupName}\r\n {\r\n outlet.filter(x => x.OutletGroupSerNo == d1.OutletGroupSerNo).every(y =>\r\n y.IsChecked == true) == true ?\r\n
\r\n All : \r\n
\r\n :\r\n
\r\n {outlet &&\r\n outlet.map((d) => (\r\n <>\r\n {d.OutletGroupSerNo == d1.OutletGroupSerNo && d.IsChecked == true ? (\r\n
\r\n
{d.OutletName} :
\r\n
\r\n ) : null}\r\n \r\n ))}\r\n
\r\n }\r\n {/*
\r\n {outlet &&\r\n outlet.map((d) => (\r\n
\r\n {d.OutletGroupSerNo == d1.OutletGroupSerNo && d.IsChecked == true ? (\r\n
\r\n
{d.OutletName} :
\r\n
\r\n ) : null}\r\n \r\n ))}\r\n
*/}\r\n
\r\n ))}\r\n \r\n ) : null}\r\n {viewMode == \"OI\" ? ( //controlMode.AllOutlet == false && controlMode.ItemGroup == true ?\r\n <>\r\n {outletGroup &&\r\n outletGroup.map((d1) => (\r\n
\r\n {d1.OutletGroupName}\r\n {\r\n itemGroup.filter(x => x.OutletGroupSerNo == d1.OutletGroupSerNo).every(y =>\r\n y.IsChecked == true) == true ?\r\n
\r\n All : \r\n
\r\n :\r\n
\r\n {itemGroup &&\r\n itemGroup.map((d) => (\r\n <>\r\n {d.OutletGroupSerNo == d1.OutletGroupSerNo && d.IsChecked == true ? (\r\n
\r\n
{d.ItemGroupName} :
\r\n
\r\n ) : null}\r\n \r\n ))}\r\n
\r\n }\r\n {/*
\r\n {itemGroup &&\r\n itemGroup.map((d) => (\r\n <>\r\n {d.OutletGroupSerNo == d1.OutletGroupSerNo && d.IsChecked == true ? (\r\n <>\r\n
{d.ItemGroupName} :
\r\n \r\n ) : null}\r\n \r\n ))}\r\n
*/}\r\n
\r\n ))}\r\n \r\n ) : null}\r\n {viewMode == \"AI\" ? ( //controlMode.AllOutlet == true && controlMode.ItemGroup == true ?\r\n <>\r\n {outlet &&\r\n outlet.map((d1) => (\r\n
\r\n {d1.OutletName}\r\n {\r\n customModeData.filter(x => x.OutletSerNo == d1.OutletSerNo).every(y =>\r\n y.IsChecked == true) == true ?\r\n
\r\n All : \r\n
\r\n :\r\n
\r\n {customModeData &&\r\n customModeData.map((d) => (\r\n <>\r\n {d.OutletSerNo == d1.OutletSerNo && d.IsChecked == true ? (\r\n
\r\n
{d.ItemGroupName} :
\r\n \r\n
\r\n ) : null}\r\n \r\n ))}\r\n
\r\n }\r\n {/*
\r\n {customModeData &&\r\n customModeData.map((d) => (\r\n <>\r\n {d.OutletSerNo == d1.OutletSerNo && d.IsChecked == true ? (\r\n <>\r\n
{d.ItemGroupName} :
\r\n \r\n \r\n ) : null}\r\n \r\n ))}\r\n
*/}\r\n
\r\n ))}\r\n \r\n ) : null}\r\n
\r\n {showEditDiv ? (\r\n
\r\n Edit\r\n {/* console.log(item, name)}\r\n > */}\r\n
\r\n ) : (\r\n <>\r\n )}\r\n
\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n
\r\n {t(\"INN_NoPost\")}\r\n (2)\r\n
\r\n
\r\n\r\n {showNoPostPopup ? (\r\n setNoPostPopup(!showNoPostPopup)}>\r\n
\r\n
\r\n
\r\n

No Post

\r\n
\r\n
\r\n \r\n Save\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    Confirmation No.
    \r\n
    {noPostHeader.BookingNo}
    \r\n
  • \r\n
  • \r\n
    Guest Name
    \r\n
    {noPostHeader.GuestName}
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Apply to all Outlet \r\n
\r\n
\r\n {\r\n setControlMode((prev) => ({ ...prev, AllOutlet: v }));\r\n setIsDataUpdated(true);\r\n //handleOnFilterChange(v);\r\n }}\r\n id=\"A01\">\r\n
\r\n
\r\n
\r\n {controlMode.AllOutlet == false ? (\r\n <>\r\n {\r\n setControlMode((prev) => ({ ...prev, ItemGroup: v }));\r\n //handleOnFilterChange(v);\r\n }}>\r\n Item Group\r\n \r\n \r\n ) : null}\r\n
\r\n
\r\n
\r\n
\r\n {controlMode.AllOutlet == false ? (\r\n <>\r\n {\r\n handleRights(\"13\").then((d) => {\r\n if (d) {\r\n setControlMode((prev) => ({ ...prev, Custom: v }));\r\n } else {\r\n console.log(\"Not Allowed\");\r\n }\r\n });\r\n\r\n //handleOnFilterChange(v);\r\n }}>\r\n Custom\r\n \r\n \r\n ) : null}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n {/* --- ALL outlet group case --- */}\r\n {viewMode == \"A\" ? (\r\n <>\r\n
\r\n
\r\n
All Outlet Group
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {outletGroup.map((d) => (\r\n
\r\n
\r\n
{d.OutletGroupName}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n \r\n ) : (\r\n <>\r\n )}\r\n {/* --- Outlet group >> outlet wise case --- */}\r\n {viewMode == \"O\" ? ( //controlMode.AllOutlet == false && controlMode.ItemGroup == false ?\r\n <>\r\n
\r\n
\r\n
Outlet Group
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n {outletGroup.map((d) => (\r\n {\r\n setSelectedObject((prev) => ({ ...prev, OutletGroupSerNo: d.target.id }));\r\n handleOutletGroupChange(d);\r\n }}>\r\n {d.OutletGroupName}\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n
Outlet wise
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {filteredOutlet &&\r\n filteredOutlet.map((d) => (\r\n
\r\n
\r\n
{d.OutletName}
\r\n
\r\n
\r\n {\r\n console.log(v, d.target.id);\r\n console.log(\"outlet\", outlet);\r\n let tempOutletWiseMainData = [...outlet];\r\n tempOutletWiseMainData.forEach((ele) => {\r\n if (ele.OutletGroupSerNo == selectedObject.OutletGroupSerNo && \"Outlet_\" + ele.OutletSerNo == d.target.id) {\r\n ele.IsChecked = v;\r\n }\r\n });\r\n setOutlet(tempOutletWiseMainData);\r\n setIsDataUpdated(true);\r\n console.log(\"tempOutletWiseMainData\", tempOutletWiseMainData);\r\n }}>\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n \r\n ) : (\r\n <>\r\n )}\r\n {/* --- Outlet group >> Item group wise case --- */}\r\n {viewMode == \"OI\" ? ( //controlMode.AllOutlet == false && controlMode.ItemGroup == true ?\r\n <>\r\n
\r\n
\r\n
Outlet Group
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n {outletGroup.map((d) => (\r\n {\r\n setSelectedObject((prev) => ({ ...prev, OutletGroupSerNo: d.target.id }));\r\n handleOutletGroupChange(d);\r\n }}>\r\n {d.OutletGroupName}\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n
Item Group
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {filteredItemGroup &&\r\n filteredItemGroup.map((d) => (\r\n
\r\n
\r\n
{d.ItemGroupName}
\r\n
\r\n
\r\n {\r\n console.log(v, d.target.id);\r\n let tempitemGroupData = [...itemGroup];\r\n tempitemGroupData.forEach((ele) => {\r\n if (ele.OutletGroupSerNo == selectedObject.OutletGroupSerNo && \"IG_\" + ele.ItemGroupSerNo == d.target.id) {\r\n ele.IsChecked = v;\r\n }\r\n });\r\n setOutlet(tempitemGroupData);\r\n setIsDataUpdated(true);\r\n console.log(tempitemGroupData);\r\n }}>\r\n {/* {\r\n setItemGroupDiscPerChange(v,d);\r\n }} \r\n > */}\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n \r\n ) : (\r\n <>\r\n )}\r\n {/* --- Custome case : Outlet Group >> Outlet >> Item group wise case --- */}\r\n {viewMode == \"AI\" ? ( //controlMode.AllOutlet == false && (controlMode.ItemGroup == true || controlMode.ItemGroup == false) && controlMode.Custom == true ?\r\n <>\r\n
\r\n
\r\n
Outlet Group
\r\n
\r\n
    \r\n {outletGroup &&\r\n outletGroup.map((d) => (\r\n
  • handleOutletGroupChange(d)}>\r\n {d.OutletGroupName}\r\n
  • \r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n
Outlet Wise
\r\n
\r\n
    \r\n {filteredOutlet &&\r\n filteredOutlet.map((d) => (\r\n {\r\n console.log(d);\r\n setSelectedObject((prev) => ({ ...prev, OutletSerNo: d.target.id.toString().replace(\"Outlet_\", \"\") }));\r\n let filterData = customModeData.filter((item) => item.OutletGroupSerNo == selectedObject.OutletGroupSerNo && \"Outlet_\" + item.OutletSerNo == d.target.id);\r\n if (filterData != undefined) {\r\n setFilteredItemGroup(filterData);\r\n }\r\n }}>\r\n {d.OutletName}\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n
Item Group
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {filteredItemGroup &&\r\n filteredItemGroup.map((d) => (\r\n
\r\n
\r\n
{d.ItemGroupName}
\r\n
\r\n
\r\n {\r\n console.log(v, d.target.id);\r\n let tempcustomModeData = [...customModeData];\r\n tempcustomModeData.forEach((ele) => {\r\n if (ele.OutletGroupSerNo == selectedObject.OutletGroupSerNo && ele.OutletSerNo == selectedObject.OutletSerNo && \"IG_\" + ele.ItemGroupSerNo == d.target.id) {\r\n ele.IsChecked = v;\r\n }\r\n });\r\n setCustomModeData(tempcustomModeData);\r\n setIsDataUpdated(true);\r\n console.log(tempcustomModeData);\r\n }}>\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n \r\n ) : (\r\n <>\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n ) : null}\r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnButtonTypeWithDropdown,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnSingleSelectDropdown,\r\n InnTooltip,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport {\r\n GetReservationInfoSalesMarketingData, EditReservationInfoForSalesMarketing,\r\n cmbGetMarketMaster, cmbGetBusinessSource, cmbGetSalesPerson, cmbGetSourceMaster\r\n} from \"../../../../services/reservationService\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { ManageRights } from \"../../../../services/generalService\";\r\n\r\nexport function IndiSalesMarketing(props) {\r\n const { t } = useTranslation();\r\n const { confirm } = useConfirm();\r\n //#region Local variable \r\n const defaultcmbData = {\r\n \"key\": \"0\",\r\n \"value\": \"Select\"\r\n };\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"ReservationSerNo\": 0,\r\n \"BookingNo\": \"\",\r\n \"GuestName\": \"\",\r\n \"MarketSerNo\": 0,\r\n \"SourceSerNo\": 0,\r\n \"SalesPersonProfileSerNo\": 0,\r\n \"SalesPersonName\": \"\",\r\n \"BlockSerNo\": 0,\r\n \"IsSharer\": false\r\n };\r\n //#endregion\r\n //#region State variable \r\n const [salesMarketingData, setSalesMarketingData] = useState(defaultObj);\r\n const [businessSourceData, setBusinessSourceData] = useState([]);\r\n const [marketData, setMarketData] = useState([]);\r\n const [salesPersonData, setSalesPersonData] = useState([]);\r\n const [showSalesPopup, setSalesPopup] = useState(false);\r\n const [showEditDiv, setShowEditDiv] = useState(true);//use to show Edit button\r\n const [userRightsData, setUserRightsData] = useState([]);\r\n //#endregion\r\n //#region useEffect\r\n useEffect(() => {\r\n getReservationInfo();\r\n if (props.para != undefined) {\r\n if (props.para.IsShowTooltipActionButton == \"hide\") {\r\n setShowEditDiv(false);\r\n }\r\n else {\r\n setShowEditDiv(true);\r\n }\r\n }\r\n }, [props.para]);\r\n\r\n useEffect(() => {\r\n if (showSalesPopup) {\r\n getCmbGetMarketMaster();\r\n getCmbGetBusinessSource();\r\n getCmbGetSalesPerson();\r\n getReservationInfo();\r\n }\r\n }, [showSalesPopup]);\r\n\r\n useEffect(() => {\r\n fillUserRights();\r\n }, []);\r\n\r\n //#endregion\r\n //#region custom Function\r\n const getReservationInfo = () => {\r\n\r\n //if (props.para.Type != \"Block\"){\r\n GetReservationInfoSalesMarketingData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), props.para.ReservationSerNo).then(d => {\r\n let tempObj = d.data;\r\n tempObj.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n tempObj.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n tempObj.ReservationSerNo = props.para.ReservationSerNo;\r\n setSalesMarketingData(tempObj);\r\n });\r\n // } else{ \r\n // let tempObj = JSON.parse(JSON.stringify(defaultObj));\r\n // tempObj.BlockSerNo = props.para.BlockSerNo;\r\n // tempObj.MarketSerNo = props.para.MarketSerNo;\r\n // tempObj.SourceSerNo = props.para.SourceProfileSerNo;\r\n // tempObj.SalesPersonProfileSerNo = props.para.SalesPersonProfileSerNo;\r\n // tempObj.SalesPersonName = props.para.SalesPersonName;\r\n // tempObj.BookingNo = props.para.BlockSerNo;\r\n // tempObj.GuestName = props.para.GuestName;\r\n // setSalesMarketingData(tempObj);\r\n // }\r\n\r\n };\r\n const getCmbGetMarketMaster = () => {\r\n cmbGetMarketMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n setMarketData(d.data);\r\n });\r\n };\r\n const getCmbGetBusinessSource = () => {\r\n cmbGetSourceMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setBusinessSourceData([defaultcmbData, ...d.data]);\r\n });\r\n };\r\n const getCmbGetSalesPerson = () => {\r\n cmbGetSalesPerson(parseInt(currUser.ClientSerNo)).then(d => {\r\n setSalesPersonData([defaultcmbData, ...d.data]);\r\n });\r\n };\r\n const fillUserRights = () => {\r\n ManageRights(currUser.ClientSerNo, currUser.UserID, \"14,67\").then((d) => {\r\n if (d.data.length > 0) {\r\n setUserRightsData(d.data);\r\n }\r\n else {\r\n console.log(\"No user rights\");\r\n }\r\n });\r\n };\r\n //#endregion\r\n //#region Event\r\n const handleOnSaveClick = () => {\r\n EditReservationInfoForSalesMarketing(salesMarketingData).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n } else {\r\n alert(d.data.Message);\r\n }\r\n });\r\n getReservationInfo();\r\n setSalesPopup(!showSalesPopup);\r\n };\r\n const handleUserRights = async (strRightsSerNo) => {\r\n if (strRightsSerNo != undefined) {\r\n const userRightObj = userRightsData.find((x) => x.RightsSerNo == strRightsSerNo);\r\n if (userRightObj != undefined) {\r\n if (userRightObj.IsApply != undefined) {\r\n if (userRightObj.IsApply) {\r\n return true;\r\n } else {\r\n await confirm({\r\n Message: `${userRightObj.Name} : ${userRightObj.PromptMessage}`,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n }\r\n };\r\n\r\n const validateEditSalesMkting = () => {\r\n console.log(\"sales person data\", salesMarketingData);\r\n if (salesMarketingData.SalesPersonName == \" \") {\r\n handleUserRights(\"67\").then(d => {\r\n if (d) {\r\n setSalesPopup(!showSalesPopup);\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n }\r\n else {\r\n handleUserRights(\"14\").then(d => {\r\n if (d) {\r\n setSalesPopup(!showSalesPopup);\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n\r\n });\r\n }\r\n };\r\n //#endregion\r\n\r\n\r\n const SalesAndMarketingTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n Sales Person : {salesMarketingData.SalesPersonName}
\r\n
\r\n\r\n
\r\n {\r\n showEditDiv ?\r\n
\r\n validateEditSalesMkting()}\r\n >\r\n Edit\r\n \r\n {/* console.log(item, name)}\r\n > */}\r\n
\r\n :\r\n <>\r\n }\r\n
\r\n );\r\n };\r\n\r\n const selectdata = [\r\n { key: \"VVIP\", value: \"VVIP\" },\r\n { key: \"VIP\", value: \"VIP\" },\r\n ];\r\n\r\n return (\r\n <>\r\n \r\n
\r\n {t('INN_SalesMarketing')}\r\n \r\n
\r\n \r\n\r\n {showSalesPopup ? (\r\n {\r\n setSalesPopup(!showSalesPopup);\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n

Sales & Marketing

\r\n
\r\n
\r\n \r\n Save\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    Confirmation No.
    \r\n
    {salesMarketingData.BookingNo}
    \r\n
  • \r\n
    Guest Name
    \r\n
    \r\n {salesMarketingData.GuestName}\r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Details\r\n
\r\n
\r\n \r\n setSalesMarketingData(prev => ({ ...prev, MarketSerNo: parseInt(item.key) }))}\r\n >\r\n
\r\n
\r\n {\r\n console.log(item);\r\n setSalesMarketingData(prev => ({ ...prev, SourceSerNo: parseInt(item.key) }));\r\n }}\r\n >\r\n
\r\n
\r\n setSalesMarketingData(prev => ({ ...prev, SalesPersonProfileSerNo: parseInt(item.key) }))}\r\n >\r\n
\r\n\r\n {/*\r\n ---commented by jindal on 17-03-2023 / not implemented yet.\r\n
\r\n console.log(item, name)}\r\n >\r\n
*/}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n ) : null}\r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnSwitch,\r\n InnToastMessage\r\n} from \"../../../../component\";\r\nimport { manageReservationFields } from \"../../../../services/reservationService\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\n\r\nexport function IndiDiscloseRate(props) {\r\n const { t } = useTranslation();\r\n\r\n const [isDiscloseRate, setIsDiscloseRate] = useState(false);\r\n const [showToast, setShowToast] = useState(false);\r\n\r\n useEffect(() => {\r\n if (props.para.IsDiscloseRate != undefined)\r\n setIsDiscloseRate(props.para.IsDiscloseRate);\r\n }, [props.para]);\r\n\r\n const handleOnChange = (v) => {\r\n setIsDiscloseRate(v);\r\n setShowToast(false);\r\n manageReservationFields(props.para.ClientSerNo, props.para.PropertySerNo,\r\n props.para.ReservationSerNo, \"IsDiscloseRate\", v).then(d => {\r\n alert(d.data.Message);\r\n if (d.data.Code == \"200\") {\r\n setShowToast(true);\r\n if (props.onUpdate != undefined) {\r\n props.onUpdate(v);\r\n }\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
\r\n {t('INN_DiscloseRate')}\r\n \r\n \r\n
\r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnConfirmAlert,\r\n InnButtonTypeWithDropdown,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport rightarrow from \"../../../../assets/images/right-circle-arrow-gray.svg\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { GuestModalPopup } from \"../modalPopup/guestModalPopup\";\r\nimport { GetReservationAccompanyGuest, AddReservationAccompanyGuestProfile } from \"../../../../services/reservationService\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { ManageRights } from \"../../../../services/generalService\";\r\n\r\nexport function IndiAccompanyGuest(props) {\r\n const { t } = useTranslation();\r\n const { confirm } = useConfirm();\r\n //#region Local Variable\r\n const currUser = useSelector(currentUser);\r\n //const ReservationSerNo = 1; \r\n //#endregion Local Variable\r\n //#region State Variable\r\n const [indiAccompanyGuestData, setIndiAccompanyGuestData] = useState([]);\r\n const [showGuestModal, setShowGuestModal] = useState(false);\r\n const [adultCollection, setAdultCollection] = useState([]);\r\n const [childCollection, setChildCollection] = useState([]);\r\n const [selectedAdult, setSelectedAdult] = useState({ \"Type\": \"\", \"SerNo\": 0 });\r\n const [primaryGuest, setPrimaryGuest] = useState([]);\r\n const [showAdultAlert, setShowAdultAlert] = useState(false);\r\n const [showEditDiv, setShowEditDiv] = useState(true)//use to show Edit button\r\n const [userRightsData, setUserRightsData] = useState([]);\r\n //#endregion State Variable\r\n\r\n //#region Custom Function\r\n const fillIndiAccompanyGuest = () => {\r\n if (props.para.ReservationSerNo) {\r\n GetReservationAccompanyGuest(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), props.para.ReservationSerNo).then((d) => {\r\n if (d.status == 200) {\r\n setIndiAccompanyGuestData(d.data);\r\n setDefaultValue(d.data);\r\n // if (d.data != undefined && d.data.length > 0) {\r\n // let existingAdult = d.data.filter(x => x.IsAdult == true && x.IsPrimary == false);\r\n // let existingChild = d.data.filter(x => x.IsAdult == false);\r\n // let adultCollection = [];\r\n // for (let index = 0; index < d.data[0].Adult - 1; index++) {\r\n // let o = { \"GuestProfileSerNo\": \"\", \"SerNo\": index + 2, \"GuestName\": \"\" }\r\n // if ((index) < existingAdult.length) {\r\n // o.GuestProfileSerNo = existingAdult[index].GuestProfileSerNo;\r\n // o.GuestName = existingAdult[index].GuestName;\r\n // }\r\n // adultCollection.push(o);\r\n // }\r\n // setAdultCollection(adultCollection);\r\n // let childCollection = [];\r\n // for (let index = 0; index < d.data[0].Child; index++) {\r\n // let o = { \"GuestProfileSerNo\": \"\", \"SerNo\": index + 1, \"GuestName\": \"\" }\r\n // if ((index) < existingChild.length) {\r\n // o.GuestProfileSerNo = existingChild[index].GuestProfileSerNo;\r\n // o.GuestName = existingChild[index].GuestName;\r\n // }\r\n // childCollection.push(o);\r\n // }\r\n // setChildCollection(childCollection);\r\n // }\r\n // let IsPrimaryGuest = d.data.find(x => x.IsPrimary == true); \r\n // setPrimaryGuest(IsPrimaryGuest);\r\n }\r\n })\r\n }\r\n }\r\n\r\n const setDefaultValue = (data) => {\r\n if (data != undefined && data.length > 0) {\r\n let existingAdult = data.filter(x => x.IsAdult == true && x.IsPrimary == false);\r\n let existingChild = data.filter(x => x.IsAdult == false);\r\n let adultCollection = [];\r\n for (let index = 0; index < data[0].Adult - 1; index++) {\r\n let o = { \"GuestProfileSerNo\": \"\", \"SerNo\": index + 2, \"GuestName\": \"\", \"IsAdult\": true, \"IsIncognito\": false }\r\n if ((index) < existingAdult.length) {\r\n o.GuestProfileSerNo = existingAdult[index].GuestProfileSerNo;\r\n o.GuestName = existingAdult[index].GuestName;\r\n o.IsIncognito = existingAdult[index].IsIncognito;\r\n }\r\n adultCollection.push(o);\r\n }\r\n setAdultCollection(adultCollection);\r\n console.log(\"adult collection \", adultCollection);\r\n let childCollection = [];\r\n for (let index = 0; index < data[0].Child; index++) {\r\n let o = { \"GuestProfileSerNo\": \"\", \"SerNo\": index + 1, \"GuestName\": \"\", \"IsAdult\": true, \"IsIncognito\": false }\r\n if ((index) < existingChild.length) {\r\n o.GuestProfileSerNo = existingChild[index].GuestProfileSerNo;\r\n o.GuestName = existingChild[index].GuestName;\r\n o.IsIncognito = existingChild[index].IsIncognito;\r\n }\r\n childCollection.push(o);\r\n }\r\n setChildCollection(childCollection);\r\n }\r\n let IsPrimaryGuest = data.find(x => x.IsPrimary == true);\r\n setPrimaryGuest(IsPrimaryGuest);\r\n }\r\n const handleOnAdultDelete = (e) => {\r\n let IsOk = window.confirm(\"This accompany guest has the following details updated. \\n\" +\r\n \" - Transportation (if any transportation request updated) \\n\" +\r\n \" - Arrival / Departure Details (whichever applicable) \\n\" +\r\n \" - Routing Instructions \\n\" +\r\n \" - Message \\n\" +\r\n \" Deleting this would delete the above as well. Would you like to continue?\");\r\n if (IsOk) {\r\n let tempAdult = [...adultCollection];\r\n tempAdult.forEach(ele => {\r\n if (ele.SerNo == e.target.id) {\r\n ele.GuestName = \"\";\r\n ele.GuestProfileSerNo = \"\";\r\n }\r\n });\r\n setAdultCollection(tempAdult);\r\n }\r\n }\r\n const handleOnChildDelete = (e) => {\r\n let IsOk = window.confirm(\"This accompany guest has the following details updated. \\n\" +\r\n \" - Transportation (if any transportation request updated) \\n\" +\r\n \" - Arrival / Departure Details (whichever applicable) \\n\" +\r\n \" - Routing Instructions \\n\" +\r\n \" - Message \\n\" +\r\n \" Deleting this would delete the above as well. Would you like to continue?\");\r\n if (IsOk) {\r\n let tempChild = [...childCollection];\r\n tempChild.forEach(ele => {\r\n if (ele.SerNo == e.target.id) {\r\n ele.GuestName = \"\";\r\n ele.GuestProfileSerNo = \"\";\r\n }\r\n });\r\n setChildCollection(tempChild);\r\n }\r\n }\r\n // const abc = () => {\r\n // let IsPrimaryGuest = indiAccompanyGuestData.find(x => x.IsPrimary == true);\r\n // console.log(\"Primary Guest:\", IsPrimaryGuest);\r\n // setPrimaryGuest([IsPrimaryGuest]);\r\n // }\r\n\r\n const fillUserRights = () => {\r\n ManageRights(currUser.ClientSerNo, currUser.UserID, \"17\").then((d) => {\r\n if (d.data.length > 0) {\r\n setUserRightsData(d.data);\r\n }\r\n else {\r\n console.log(\"No user rights\");\r\n }\r\n })\r\n }\r\n const handleUserRights = async (strRightsSerNo) => {\r\n if (strRightsSerNo != undefined) {\r\n const userRightObj = userRightsData.find((x) => x.RightsSerNo == strRightsSerNo);\r\n if (userRightObj != undefined) {\r\n if (userRightObj.IsApply != undefined) {\r\n if (userRightObj.IsApply) {\r\n return true;\r\n } else {\r\n await confirm({\r\n Message: `${userRightObj.Name} : ${userRightObj.PromptMessage}`,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n }\r\n };\r\n\r\n\r\n //#endregion Custom Function\r\n //#region Events\r\n const handleOnBtnSaveClick = () => {\r\n let tempMergeObj = JSON.parse(JSON.stringify(adultCollection));\r\n tempMergeObj.forEach(ele => {\r\n ele.IsAdult = true;\r\n });\r\n childCollection.forEach(ele => {\r\n ele.IsAdult = false;\r\n tempMergeObj.push(ele);\r\n });\r\n //console.log(\"Merge\", tempMergeObj);\r\n let mergeCollection = [];\r\n for (let index = 0; index < tempMergeObj.length; index++) {\r\n if (tempMergeObj[index].GuestProfileSerNo != \"\") {\r\n let m = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"ReservationSerNo\": props.para.ReservationSerNo,\r\n \"GuestProfileSerNo\": tempMergeObj[index].GuestProfileSerNo,\r\n \"IsAdult\": tempMergeObj[index].IsAdult,\r\n \"IsIncognito\": tempMergeObj[index].IsIncognito\r\n }\r\n mergeCollection.push(m);\r\n }\r\n }\r\n\r\n if (mergeCollection.length == 0) {\r\n // It is handle to delete existing records if user remove all adult and child from client side\r\n mergeCollection.push({\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"ReservationSerNo\": props.para.ReservationSerNo,\r\n \"GuestProfileSerNo\": 0,\r\n \"IsAdult\": true,\r\n \"IsIncognito\": false\r\n });\r\n // It is handle to delete existing records if user remove all adult and child from client side\r\n }\r\n\r\n AddReservationAccompanyGuestProfile(mergeCollection).then((d) => {\r\n setShowAccompanyGuestModal(!showAccompanyGuestModal);\r\n if (d.data.Code == \"200\") {\r\n fillIndiAccompanyGuest();\r\n if (props.onChange != undefined) {\r\n props.onChange();\r\n }\r\n }\r\n alert(d.data.Message);\r\n })\r\n }\r\n const handleOnBtnResetClick = () => {\r\n // // setSelectedAdult({ \"Type\": \"\", \"SerNo\": 0 });\r\n // // setAdultCollection([{ \"GuestProfileSerNo\": \"\", \"SerNo\": 0, \"GuestName\": \"\" }]);\r\n // // setChildCollection([{ \"GuestProfileSerNo\": \"\", \"SerNo\": 0, \"GuestName\": \"\" }]);\r\n // let existingAdult = indiAccompanyGuestData.filter(x => x.IsAdult == true && x.IsPrimary == false);\r\n // let existingChild = indiAccompanyGuestData.filter(x => x.IsAdult == false);\r\n // let adultCollection = [];\r\n // for (let index = 0; index < indiAccompanyGuestData[0].Adult - 1; index++) {\r\n // let o = { \"GuestProfileSerNo\": \"\", \"SerNo\": index + 2, \"GuestName\": \"\" }\r\n // adultCollection.push(o);\r\n // }\r\n // setAdultCollection(adultCollection);\r\n // let childCollection = [];\r\n // for (let index = 0; index < indiAccompanyGuestData[0].Child; index++) {\r\n // let o = { \"GuestProfileSerNo\": \"\", \"SerNo\": index + 1, \"GuestName\": \"\" }\r\n // childCollection.push(o);\r\n // }\r\n // setChildCollection(childCollection);\r\n setDefaultValue(indiAccompanyGuestData);\r\n }\r\n const validateEdtAccompanyGst = () => {\r\n handleUserRights(\"17\").then(d => {\r\n if (d) {\r\n (setShowAccompanyGuestModal(!showAccompanyGuestModal) || fillIndiAccompanyGuest())\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n }\r\n //#endregion Events\r\n\r\n //#region Useeffect\r\n useEffect(() => {\r\n fillIndiAccompanyGuest();\r\n fillUserRights();\r\n if (props.para != undefined) {\r\n if (props.para.IsShowTooltipActionButton == \"hide\") {\r\n setShowEditDiv(false)\r\n }\r\n else {\r\n setShowEditDiv(true)\r\n }\r\n }\r\n }, []);\r\n //#endregion Useeffect\r\n const [showAccompanyGuestModal, setShowAccompanyGuestModal] = useState(false);\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n const AccompanyGuestTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n {\r\n indiAccompanyGuestData.map(d =>\r\n
\r\n {d.IsPrimary == false ? d.GuestName : \"\"}\r\n
\r\n )}\r\n
\r\n
\r\n {\r\n showEditDiv ?\r\n
\r\n validateEdtAccompanyGst()}>Edit\r\n {/* console.log(item, name)}\r\n > */}\r\n
\r\n :\r\n <>\r\n }\r\n
\r\n );\r\n };\r\n return (\r\n <>\r\n \r\n
\r\n {t('INN_AccompanyGuest')}\r\n ({indiAccompanyGuestData.filter((x)=> x.IsPrimary == false).length})\r\n
\r\n \r\n {showAccompanyGuestModal ? (\r\n setShowAccompanyGuestModal(false)}\r\n >\r\n
\r\n
\r\n
\r\n

Accompany Guest

\r\n
\r\n
\r\n Reset\r\n Save\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    Confirmation No.
    \r\n
    \r\n {indiAccompanyGuestData[0].BookingNo}\r\n
    \r\n
  • \r\n
  • \r\n
    Guest Name
    \r\n
    \r\n {primaryGuest.GuestName}\r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Primary Guest \r\n\r\n\r\n
\r\n
\r\n {\r\n // [...Array(indiAccompanyGuestData.Adult - 1)].map((elementInArray, index) => (\r\n adultCollection.map((d) =>\r\n
\r\n {\r\n setShowGuestModal(true);\r\n setSelectedAdult(prev => ({ ...prev, SerNo: d.SerNo }));\r\n setSelectedAdult(prev => ({ ...prev, Type: \"A\" }));\r\n }\r\n }\r\n >Adult {d.SerNo} \r\n {\r\n setShowGuestModal(true);\r\n setSelectedAdult(prev => ({ ...prev, SerNo: d.SerNo }));\r\n setSelectedAdult(prev => ({ ...prev, Type: \"A\" }));\r\n }\r\n }\r\n >\r\n \r\n \r\n {\r\n handleUserRights(\"70\").then(d => {\r\n if (d) {\r\n handleOnAdultDelete()\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n }}>\r\n
\r\n )\r\n // )\r\n // )\r\n }\r\n {\r\n // [...Array(indiAccompanyGuestData.Child)].map((elementInArray, index) => (\r\n childCollection.map(d =>\r\n
\r\n {\r\n setShowGuestModal(true);\r\n setSelectedAdult(prev => ({ ...prev, SerNo: d.SerNo }));\r\n setSelectedAdult(prev => ({ ...prev, Type: \"C\" }));\r\n }\r\n }\r\n >\r\n Child {d.SerNo}\r\n \r\n {\r\n setShowGuestModal(true);\r\n setSelectedAdult(prev => ({ ...prev, SerNo: d.SerNo }));\r\n setSelectedAdult(prev => ({ ...prev, Type: \"C\" }));\r\n }\r\n }\r\n >\r\n \r\n \r\n {\r\n handleUserRights(\"70\").then(d => {\r\n if (d) {\r\n handleOnChildDelete();\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n }}>\r\n
\r\n )\r\n // )\r\n // )\r\n }\r\n
\r\n
\r\n
\r\n \r\n ) : null}\r\n\r\n {\r\n showGuestModal ?\r\n setShowGuestModal(false)}\r\n OnSelect={(v) => {\r\n\r\n let msg = (\"This accompany guest has the following details updated. \\n\" +\r\n \" - Transportation (if any transportation request updated) \\n\" +\r\n \" - Arrival / Departure Details (whichever applicable) \\n\" +\r\n \" - Routing Instructions \\n\" +\r\n \" - Message \\n\" +\r\n \" Deleting this would delete the above as well. Would you like to continue?\");\r\n\r\n\r\n\r\n if (selectedAdult.Type == \"A\") {\r\n let tmpObj = [...adultCollection];\r\n tmpObj.forEach(ele => {\r\n if (ele.SerNo == selectedAdult.SerNo) {\r\n let IsOk = true;\r\n if (ele.GuestProfileSerNo != \"\") {\r\n IsOk = window.confirm(msg);\r\n }\r\n if (IsOk) {\r\n ele.GuestName = v.GuestName;\r\n ele.GuestProfileSerNo = v.ProfileSerNo;\r\n ele.IsIncognito = v.IsIncognito;\r\n }\r\n }\r\n });\r\n setAdultCollection(tmpObj);\r\n } else if (selectedAdult.Type == \"C\") {\r\n let tmpObj = [...childCollection];\r\n tmpObj.forEach(ele => {\r\n if (ele.SerNo == selectedAdult.SerNo) {\r\n let IsOk = true;\r\n if (ele.GuestProfileSerNo != \"\") {\r\n IsOk = window.confirm(msg);\r\n }\r\n if (IsOk) {\r\n ele.GuestName = v.GuestName;\r\n ele.GuestProfileSerNo = v.ProfileSerNo;\r\n ele.IsIncognito = v.IsIncognito;\r\n }\r\n }\r\n });\r\n setChildCollection(tmpObj);\r\n }\r\n setShowGuestModal(false);\r\n }}>\r\n : null\r\n }\r\n \r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n InnPrimaryButton,\r\n InnTooltip,\r\n InnModalPopup,\r\n InnActionButton,\r\n InnSingleDateSelection,\r\n InnTimeSelection,\r\n InnTextbox,\r\n InnTextarea,\r\n InnButtonTypeWithDropdown,\r\n InnCheckbox,\r\n InnPlainTabs,\r\n Tab,\r\n InnLoader,\r\n InnConfirmAlert\r\n} from \"../../../../component\";\r\nimport { GetReservationInfoArrivalDeparture, GetReservationInfoArrivalDepartureDetail, EditReservationArrivalDeparture } from \"../../../../services/reservationService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport Moment from \"moment\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useAlert } from \"../../../../utils/hooks/useAlert\";\r\nimport moment from \"moment\";\r\n\r\nexport function IndiArrivalDepartureDetail(props) {\r\n const { t } = useTranslation();\r\n\r\n const { innkeyAlert } = useAlert();\r\n\r\n //#region Local Variable\r\n //const ReservationSerNo = props.ReservationSerNo;\r\n const ReservationSerNo = props.para.ReservationSerNo;\r\n const currUser = useSelector(currentUser);\r\n const defaultResData = {\r\n \"BookingNo\": 0,\r\n \"GuestName\": \"\",\r\n \"IsApplyToAll\": false,\r\n \"ReservationArrivalDate\": \"1990-01-01T00:00:00\",\r\n \"ReservationDepartureDate\": \"1990-01-01T00:00:00\"\r\n };\r\n const defaultResArrDeptData = [{\r\n \"ClientSerNo\": 0,\r\n \"PropertySerNo\": 0,\r\n \"ReservationSerNo\": 0,\r\n \"GuestProfileSerNo\": 0,\r\n \"GuestName\": \"\",\r\n \"ArrTransportationDate\": \"1990-01-01T00:00:00\",\r\n \"ArrTransportationTime\": \"1990-01-01T00:00:00\",\r\n \"ArrTransportCarrier\": \"\",\r\n \"ArrTransportationRefNo\": \"\",\r\n \"ArrTransportationNote\": \"\",\r\n \"DeptTransportationDate\": \"1990-01-01T00:00:00\",\r\n \"DeptTransportationTime\": \"1990-01-01T00:00:00\",\r\n \"DeptTransportCarrier\": \"\",\r\n \"DeptTransportationRefNo\": \"\",\r\n \"DeptTransportationNote\": \"\"\r\n }];\r\n //#endregion Local Variable\r\n\r\n //#region State variable\r\n const [isActive, setIsActive] = useState(false);\r\n const [showArrivalDeparturePopup, setShowArrivalDeparturePopup] = useState(false);\r\n const [showResDetail, setShowResDetail] = useState(defaultResData); // used to show booking no, guest name, Apply to All- details at top.\r\n const [showResArrDeptData, setShowResArrDeptData] = useState(defaultResArrDeptData);\r\n const [selectedGuestProfileSerNo, setSelectedGuestProfileSerNo] = useState(0);\r\n // const [showAlert,setShowAlert] = useState(false); // this use to show/hide alert message popup.\r\n // const [showAlertMessage,setShowAlertMessage] = useState(\"\"); // this use to show message in alert message popup.\r\n // const [showAlertButtonType,setShowAlertButtonType] = useState([]); // this use to show button in alert message popup.\r\n const [applyAllCheckboxDisabled, setApplyAllCheckboxDisabled] = useState(false);\r\n const [isDataUpdated, setIsDataUpdated] = useState(false); // this use to show alert msg, when user close popup without save.\r\n const [showEditDiv, setShowEditDiv] = useState(true);//use to show Edit button\r\n //#endregion State variable\r\n\r\n //#region UseEffact\r\n useEffect(() => {\r\n funGetReservationInfoArrivalDeparture();\r\n if (props.para != undefined) {\r\n if (props.para.IsShowTooltipActionButton == \"hide\") {\r\n setShowEditDiv(false);\r\n }\r\n else {\r\n setShowEditDiv(true);\r\n }\r\n }\r\n }, [props.para.IsReload]);\r\n //#endregion\r\n\r\n //#region Custom function\r\n const funGetReservationInfoArrivalDeparture = () => {\r\n setIsActive(true);\r\n GetReservationInfoArrivalDeparture(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then(d => {\r\n setIsActive(false);\r\n setShowResDetail(d.data);\r\n funGetReservationInfoArrivalDepartureDetail();\r\n });\r\n };\r\n const funGetReservationInfoArrivalDepartureDetail = () => {\r\n setIsActive(true);\r\n GetReservationInfoArrivalDepartureDetail(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then(d => {\r\n setIsActive(false);\r\n d.data.forEach(element => {\r\n element = {\r\n ...element,\r\n customErrorArrDate: \"\",\r\n customErrorArrTime: \"\",\r\n customErrorArrCarrier: \"\",\r\n customErrorArrRefNo: \"\",\r\n customErrorArrNote: \"\",\r\n customErrorDeptDate: \"\",\r\n customErrorDeptTime: \"\",\r\n customErrorDeptCarrier: \"\",\r\n customErrorDeptRefNo: \"\",\r\n customErrorDeptNote: \"\"\r\n };\r\n });\r\n if (d.data.length > 0) {\r\n var temp = (d.data);\r\n let SortedList = temp.sort((a, b) => (a.DisplaySequence > b.DisplaySequence) ? 1 : -1);\r\n setShowResArrDeptData(SortedList);\r\n setSelectedGuestProfileSerNo(SortedList[0].GuestProfileSerNo);\r\n if (d.data.length == 1) {\r\n setApplyAllCheckboxDisabled(true);\r\n }\r\n else {\r\n setApplyAllCheckboxDisabled(false);\r\n }\r\n }\r\n else {\r\n setShowResArrDeptData(d.data);\r\n }\r\n });\r\n };\r\n const funEditReservationArrivalDeparture = () => {\r\n setIsActive(true);\r\n EditReservationArrivalDeparture(showResArrDeptData).then(d => {\r\n setIsActive(false);\r\n alert(d.data.Message);\r\n if (d.data.Code == 200) {\r\n setIsDataUpdated(false);\r\n }\r\n // else {}\r\n });\r\n };\r\n const saveGuestDataToMainObj = (value, TargetControl) => {\r\n if (TargetControl != \"\") {\r\n var tempCollection = [...showResArrDeptData];\r\n tempCollection.forEach(ele => {\r\n if (ele.GuestProfileSerNo == selectedGuestProfileSerNo) {\r\n if (TargetControl == \"ArrDate\") {\r\n ele.customErrorArrDate = \"\";\r\n let ResArrDate = new Date(Moment(new Date(showResDetail.ReservationArrivalDate).toDateString()).format(\"YYYY-MM-DD\")); //new Date(new Date(showResDetail.ReservationArrivalDate).getFullYear().toString()+\"-\"+new Date(showResDetail.ReservationArrivalDate).getMonth().toString()+\"-\"+new Date(showResDetail.ReservationArrivalDate).getDate().toString());\r\n let ResDeptDate = new Date(Moment(new Date(showResDetail.ReservationDepartureDate).toDateString()).format(\"YYYY-MM-DD\"));//new Date(new Date(showResDetail.ReservationDepartureDate).getFullYear().toString()+\"-\"+new Date(showResDetail.ReservationDepartureDate).getMonth().toString()+\"-\"+new Date(showResDetail.ReservationDepartureDate).getDate().toString()); \r\n let DeptTransDate = new Date(Moment(new Date(ele.DeptTransportationDate).toDateString()).format(\"YYYY-MM-DD\")); //new Date(new Date(ele.DeptTransportationDate).getFullYear().toString()+\"-\"+new Date(ele.DeptTransportationDate).getMonth().toString()+\"-\"+new Date(ele.DeptTransportationDate).getDate().toString());\r\n if (new Date(value) < ResArrDate) {\r\n ele.customErrorArrDate = \"Arrival date is less than reservaion arrival date\";\r\n }\r\n else if (new Date(value) > ResDeptDate) {\r\n ele.customErrorArrDate = \"Arrival date is greater than reservaion departure date\";\r\n }\r\n else if (new Date(value) > DeptTransDate) {\r\n ele.customErrorArrDate = \"Arrival date is greater than guest departure date\";\r\n }\r\n // else {\r\n // let NewDate = Moment(new Date(value).toDateString()).format(\"YYYY-MM-DD\");//+\"T\"+Moment(new Date(value).toDateString()).format(\"HH:mm\");\r\n // ele.ArrTransportationDate = NewDate;\r\n // }\r\n let NewDate = Moment(new Date(value).toDateString()).format(\"YYYY-MM-DD\");//+\"T\"+Moment(new Date(value).toDateString()).format(\"HH:mm\");\r\n ele.ArrTransportationDate = NewDate;\r\n if (ele.customErrorArrDate !== \"\") {\r\n alert(ele.customErrorArrDate);\r\n setTimeout(() => {\r\n let tempData = JSON.parse(JSON.stringify(showResArrDeptData));\r\n tempData.forEach(x => {\r\n if (x.GuestProfileSerNo === selectedGuestProfileSerNo) {\r\n x.ArrTransportationDate = Moment(new Date(showResDetail.ReservationArrivalDate).toDateString()).format(\"YYYY-MM-DD\");\r\n }\r\n });\r\n setShowResArrDeptData(tempData);\r\n }, 50);\r\n }\r\n }\r\n else if (TargetControl == \"ArrTime\") {\r\n ele.customErrorArrTime = \"\";\r\n let NewArrTransTime = new Date(Moment(new Date(ele.ArrTransportationDate).toDateString()).format(\"YYYY-MM-DD\") + \"T\" + value); //new Date(new Date(ele.ArrTransportationDate).getFullYear().toString()+\"-\"+new Date(ele.ArrTransportationDate).getMonth().toString()+\"-\"+new Date(ele.ArrTransportationDate).getDate().toString()+\" \"+value);\r\n if (NewArrTransTime < new Date(showResDetail.ReservationArrivalDate)) {\r\n ele.customErrorArrTime = \"Arrival time is less than reservaion arrival time\";\r\n }\r\n else if (NewArrTransTime > new Date(showResDetail.ReservationDepartureDate)) {\r\n ele.customErrorArrTime = \"Arrival time is greater than reservaion departure time\";\r\n }\r\n else if (NewArrTransTime > new Date(ele.DeptTransportationTime)) {\r\n ele.customErrorArrTime = \"Arrival time is greater than guest departure time\";\r\n }\r\n else {\r\n let NewDate = Moment(new Date(ele.ArrTransportationDate).toDateString()).format(\"YYYY-MM-DD\") + \"T\" + value;\r\n ele.ArrTransportationTime = NewDate;\r\n }\r\n }\r\n else if (TargetControl == \"ArrCarr\") {\r\n let isValid = isValidOnlyAlphabetWithSpace(value);\r\n ele.customErrorArrCarrier = \"\";\r\n if (isValid || value === \"\") {\r\n if (value.length > 50) {\r\n ele.customErrorArrCarrier = \"Can accept only 50 characters.\";\r\n }\r\n else {\r\n ele.ArrTransportCarrier = value;\r\n }\r\n }\r\n else {\r\n ele.customErrorArrCarrier = \"Enter valid carrier.\";\r\n }\r\n }\r\n else if (TargetControl == \"ArrCarrRefNo\") {\r\n ele.customErrorArrRefNo = \"\";\r\n if (value.length > 50) {\r\n ele.customErrorArrRefNo = \"Can accept only 50 characters.\";\r\n }\r\n else {\r\n ele.ArrTransportationRefNo = value;\r\n }\r\n }\r\n else if (TargetControl == \"ArrNote\") {\r\n ele.customErrorArrNote = \"\";\r\n if (value.length > 200) {\r\n ele.customErrorArrNote = \"Can accept only 200 characters.\";\r\n }\r\n else {\r\n ele.ArrTransportationNote = value;\r\n }\r\n }\r\n else if (TargetControl == \"DeptDate\") {\r\n ele.customErrorArrDate = \"\";\r\n let ResArrDate = new Date(Moment(new Date(showResDetail.ReservationArrivalDate).toDateString()).format(\"YYYY-MM-DD\")); //new Date(new Date(showResDetail.ReservationArrivalDate).getFullYear().toString()+\"-\"+new Date(showResDetail.ReservationArrivalDate).getMonth().toString()+\"-\"+new Date(showResDetail.ReservationArrivalDate).getDate().toString());\r\n let ResDeptDate = new Date(Moment(new Date(showResDetail.ReservationDepartureDate).toDateString()).format(\"YYYY-MM-DD\")); //new Date(new Date(showResDetail.ReservationDepartureDate).getFullYear().toString()+\"-\"+new Date(showResDetail.ReservationDepartureDate).getMonth().toString()+\"-\"+new Date(showResDetail.ReservationDepartureDate).getDate().toString());\r\n let ArrTransDate = new Date(Moment(new Date(ele.ArrTransportationDate).toDateString()).format(\"YYYY-MM-DD\")); //new Date(new Date(ele.ArrTransportationDate).getFullYear().toString()+\"-\"+new Date(ele.ArrTransportationDate).getMonth().toString()+\"-\"+new Date(ele.ArrTransportationDate).getDate().toString());\r\n if (new Date(value) < new Date(ResArrDate)) {\r\n ele.customErrorDeptDate = \"Departure date is less than reservaion arrival date\";\r\n }\r\n else if (new Date(value) > ResDeptDate) {\r\n ele.customErrorDeptDate = \"Departure date is greater than reservaion departure date\";\r\n }\r\n else if (new Date(value) < ArrTransDate) {\r\n ele.customErrorDeptDate = \"Departure date is less than guest arrival date\";\r\n }\r\n\r\n let NewDate = Moment(new Date(value).toDateString()).format(\"YYYY-MM-DD\");//+\"T\"+Moment(new Date(value).toDateString()).format(\"HH:mm\");\r\n ele.DeptTransportationDate = NewDate;\r\n if (ele.customErrorDeptDate !== \"\") {\r\n alert(ele.customErrorDeptDate);\r\n setTimeout(() => {\r\n let tempData = JSON.parse(JSON.stringify(showResArrDeptData));\r\n tempData.forEach(x => {\r\n if (x.GuestProfileSerNo === selectedGuestProfileSerNo) {\r\n x.DeptTransportationDate = Moment(new Date(showResDetail.ReservationDepartureDate).toDateString()).format(\"YYYY-MM-DD\");\r\n }\r\n });\r\n setShowResArrDeptData(tempData);\r\n }, 50);\r\n }\r\n }\r\n else if (TargetControl == \"DeptTime\") {\r\n ele.customErrorDeptTime = \"\";\r\n let NewDeptTransTime = new Date(Moment(new Date(ele.DeptTransportationDate).toDateString()).format(\"YYYY-MM-DD\") + \"T\" + value); //new Date(new Date(ele.DeptTransportationDate).getFullYear().toString()+\"-\"+new Date(ele.DeptTransportationDate).getMonth().toString()+\"-\"+new Date(ele.DeptTransportationDate).getDate().toString()+\" \"+value);\r\n if (NewDeptTransTime < new Date(showResDetail.ReservationArrivalDate)) {\r\n ele.customErrorDeptTime = \"Departure time is less than reservaion arrival time\";\r\n }\r\n else if (NewDeptTransTime > new Date(showResDetail.ReservationDepartureDate)) {\r\n ele.customErrorDeptTime = \"Departure time is greater than reservaion departure date\";\r\n }\r\n else if (NewDeptTransTime < new Date(ele.ArrTransportationTime)) {\r\n ele.customErrorDeptTime = \"Departure time is less than guest arrival date\";\r\n }\r\n else {\r\n let NewDate = Moment(new Date(ele.DeptTransportationDate).toDateString()).format(\"YYYY-MM-DD\") + \"T\" + value;\r\n ele.DeptTransportationTime = NewDate;\r\n }\r\n }\r\n else if (TargetControl == \"DeptCarr\") {\r\n let isValid = isValidOnlyAlphabetWithSpace(value);\r\n ele.customErrorDeptCarrier = \"\";\r\n if (isValid || value === \"\") {\r\n if (value.length > 50) {\r\n ele.customErrorDeptCarrier = \"Can accept only 50 characters.\";\r\n }\r\n else {\r\n ele.DeptTransportCarrier = value;\r\n }\r\n }\r\n else {\r\n ele.customErrorDeptCarrier = \"Enter valid carrier.\";\r\n }\r\n }\r\n else if (TargetControl == \"DeptCarrRefNo\") {\r\n ele.customErrorDeptRefNo = \"\";\r\n if (value.length > 50) {\r\n ele.customErrorDeptRefNo = \"Can accept only 50 characters.\";\r\n }\r\n else {\r\n ele.DeptTransportationRefNo = value;\r\n }\r\n }\r\n else if (TargetControl == \"DeptNote\") {\r\n ele.customErrorDeptNote = \"\";\r\n if (value.length > 200) {\r\n ele.customErrorDeptNote = \"Can accept only 200 characters.\";\r\n }\r\n else {\r\n ele.DeptTransportationNote = value;\r\n }\r\n }\r\n }\r\n });\r\n setShowResArrDeptData(tempCollection);\r\n var tempCurrObj = showResDetail;\r\n tempCurrObj.IsApplyToAll = false;\r\n setShowResDetail(tempCurrObj);\r\n setIsDataUpdated(true);\r\n }\r\n };\r\n const clearSelectedGuestDetail = (value) => {\r\n if (value != \"\" || value != undefined) {\r\n var tempCollection = [...showResArrDeptData];\r\n tempCollection.forEach(ele => {\r\n if (ele.GuestProfileSerNo == selectedGuestProfileSerNo) {\r\n if (value == \"Arr\") {\r\n ele.ArrTransportationDate = \"1990-01-01T00:00:00\";\r\n ele.ArrTransportationTime = \"1990-01-01T00:00:00\";\r\n ele.ArrTransportCarrier = \"\";\r\n ele.ArrTransportationRefNo = \"\";\r\n ele.ArrTransportationNote = \"\";\r\n var tempCurrObj = showResDetail;\r\n tempCurrObj.IsApplyToAll = false;\r\n setShowResDetail(tempCurrObj);\r\n }\r\n else if (value == \"Dept\") {\r\n ele.DeptTransportationDate = \"1990-01-01T00:00:00\";\r\n ele.DeptTransportationTime = \"1990-01-01T00:00:00\";\r\n ele.DeptTransportCarrier = \"\";\r\n ele.DeptTransportationRefNo = \"\";\r\n ele.DeptTransportationNote = \"\";\r\n var tempCurrObj = showResDetail;\r\n tempCurrObj.IsApplyToAll = false;\r\n setShowResDetail(tempCurrObj);\r\n }\r\n }\r\n });\r\n setShowResArrDeptData(tempCollection);\r\n setIsDataUpdated(true);\r\n }\r\n };\r\n const copyDetailtoAllGuest = (value) => {\r\n if (value == true) {\r\n var selectedGuest = showResArrDeptData.find(item => item.GuestProfileSerNo == selectedGuestProfileSerNo);\r\n if (selectedGuest != undefined) {\r\n var tempCollection = [...showResArrDeptData];\r\n tempCollection.forEach(ele => {\r\n ele.ArrTransportationDate = selectedGuest.ArrTransportationDate;\r\n ele.ArrTransportationTime = selectedGuest.ArrTransportationTime;\r\n ele.ArrTransportCarrier = selectedGuest.ArrTransportCarrier;\r\n ele.ArrTransportationRefNo = selectedGuest.ArrTransportationRefNo;\r\n ele.ArrTransportationNote = selectedGuest.ArrTransportationNote;\r\n ele.DeptTransportationDate = selectedGuest.DeptTransportationDate;\r\n ele.DeptTransportationTime = selectedGuest.DeptTransportationTime;\r\n ele.DeptTransportCarrier = selectedGuest.DeptTransportCarrier;\r\n ele.DeptTransportationRefNo = selectedGuest.DeptTransportationRefNo;\r\n ele.DeptTransportationNote = selectedGuest.DeptTransportationNote;\r\n });\r\n setShowResArrDeptData(tempCollection);\r\n setIsDataUpdated(true);\r\n }\r\n else {\r\n alert(\"Please select source guest to apply details.\");\r\n }\r\n }\r\n };\r\n const isValidOnlyAlphabetWithSpace = (value) => {\r\n let isValid = /^[a-zA-Z ]+$/.test(value);\r\n return isValid;\r\n };\r\n //#endregion\r\n\r\n //#region Event handle\r\n const handleOnArrivalDeparturePopupClose = async () => {\r\n if (isDataUpdated == true) {\r\n // setShowAlertMessage(\"Do you want to discard changes?\") \r\n // setShowAlertButtonType([{\"title\" : \"YES\",\"value\" : \"btnPopupCloseClickYes\"},{\"title\" : \"NO\",\"value\" : \"btnPopupCloseClickNo\"}]);\r\n // setShowAlert(!showAlert);\r\n let IsDiscard = await innkeyAlert(\"Do you want to discard changes?\");\r\n if (IsDiscard) {\r\n funGetReservationInfoArrivalDeparture();\r\n setShowArrivalDeparturePopup(false);\r\n }\r\n }\r\n else {\r\n setShowArrivalDeparturePopup(false);\r\n }\r\n };\r\n const handleOnSaveClick = () => {\r\n funEditReservationArrivalDeparture();\r\n };\r\n const handleOnResetClick = async () => {\r\n // setShowAlertMessage(\"Would you like to reset all the fields ?\") \r\n // setShowAlertButtonType([{\"title\" : \"YES\",\"value\" : \"btnResetClickYes\"},{\"title\" : \"NO\",\"value\" : \"btnResetClickNo\"}]);\r\n // setShowAlert(!showAlert);\r\n\r\n let IsReset = await innkeyAlert(\"Would you like to reset all the fields ?\");\r\n if (IsReset == true) {\r\n funGetReservationInfoArrivalDeparture();\r\n }\r\n console.log(\"IsReset>>\", IsReset);\r\n };\r\n // const handleOnAlertMessageButtonClick = (value) => {\r\n // // if(value==\"btnResetClickYes\"){\r\n // // funGetReservationInfoArrivalDeparture();\r\n // // }\r\n // // else if(value==\"btnPopupCloseClickYes\"){\r\n // // funGetReservationInfoArrivalDeparture();\r\n // // setShowArrivalDeparturePopup(false);\r\n // // } \r\n // }\r\n //#endregion\r\n\r\n const selectdata = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n\r\n const ExportOption = [\r\n { key: \"pdf\", value: \"Export (PDF)\" },\r\n { key: \"excel\", value: \"Export (Excel)\" },\r\n { key: \"Print\", value: \"Print\" },\r\n { key: \"Group\", value: \"Group\" },\r\n { key: \"UnGroup\", value: \"UnGroup\" },\r\n ];\r\n\r\n const ArrDepaTooltip = () => {\r\n return (\r\n
\r\n
\r\n {showResArrDeptData && showResArrDeptData.map(d =>\r\n d.DisplaySequence != 0 ?\r\n <>\r\n
\r\n {d.GuestName}
\r\n Arrival\r\n
{Moment(new Date(d.ArrTransportationDate).toDateString()).format(\"DD MMM\")} {Moment(new Date(d.ArrTransportationTime).toISOString()).format(\"HH:mm\")}
\r\n
{d.ArrTransportCarrier} {d.ArrTransportationRefNo == \"\" ? \"\" : \"(\" + d.ArrTransportationRefNo + \")\"}
\r\n
Note : {d.ArrTransportationNote}
\r\n
\r\n
\r\n {d.GuestName}
\r\n Departure\r\n
{Moment(new Date(d.DeptTransportationDate).toDateString()).format(\"DD MMM\")} {Moment(new Date(d.DeptTransportationTime).toISOString()).format(\"HH:mm\")}
\r\n
{d.DeptTransportCarrier} {d.DeptTransportationRefNo == \"\" ? \"\" : \"(\" + d.DeptTransportationRefNo + \")\"}
\r\n
Note : {d.DeptTransportationNote}
\r\n
\r\n \r\n : null\r\n )}\r\n
\r\n {\r\n showEditDiv ?\r\n
\r\n setShowArrivalDeparturePopup(!showArrivalDeparturePopup)}>Edit\r\n console.log(item, name)}\r\n >\r\n
\r\n :\r\n <>\r\n }\r\n
\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n
\r\n {t('INN_ArrivalDepartureDetail')}\r\n (2)\r\n
\r\n \r\n {showArrivalDeparturePopup ? (\r\n handleOnArrivalDeparturePopupClose() //setShowArrivalDeparturePopup(false)\r\n }\r\n >\r\n \r\n
\r\n
\r\n
\r\n

Arrival & Departure Details

\r\n
\r\n
\r\n handleOnResetClick()} >Reset\r\n handleOnSaveClick()}>Save\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    \r\n Confirmation No.\r\n
    \r\n
    \r\n {showResDetail.BookingNo}\r\n
    \r\n
  • \r\n
  • \r\n
    Guest Name
    \r\n
    \r\n {showResDetail.GuestName}\r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n {applyAllCheckboxDisabled == false ?\r\n <>\r\n {\r\n setShowResDetail(prev => ({ ...prev, IsApplyToAll: v }));\r\n copyDetailtoAllGuest(v);\r\n }}\r\n >Same Arrival & Depart. to All Guest\r\n \r\n : <>\r\n }\r\n
\r\n
\r\n
\r\n
\r\n { setSelectedGuestProfileSerNo(v.id); }}>\r\n {showResArrDeptData && showResArrDeptData.map(d =>\r\n \r\n
\r\n
\r\n
Arrival Details
\r\n
\r\n
\r\n
\r\n {\r\n saveGuestDataToMainObj(v, \"ArrDate\");\r\n }}\r\n customError={d.customErrorArrDate}\r\n placeholder=\"Date\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Date\"\r\n selected={d.ArrTransportationDate}\r\n >\r\n
\r\n
\r\n {\r\n saveGuestDataToMainObj(v, \"ArrTime\");\r\n }}\r\n //disabled=\"disabled\"\r\n customError={d.customErrorArrTime}\r\n placeholder=\"Time\"\r\n label=\"Time\"\r\n timeformat=\"HH:mm\"\r\n dateformat=\"HH:mm\"\r\n selected={d.ArrTransportationTime}\r\n >\r\n
\r\n
\r\n {\r\n saveGuestDataToMainObj(v, \"ArrCarr\");\r\n }}\r\n >Carrier\r\n {\r\n saveGuestDataToMainObj(v, \"ArrCarrRefNo\");\r\n }}\r\n >Carrier Number\r\n {\r\n saveGuestDataToMainObj(v, \"ArrNote\");\r\n }}\r\n >Note\r\n\r\n
\r\n clearSelectedGuestDetail(\"Arr\")}>Clear\r\n
\r\n
\r\n
\r\n
\r\n
Departure Details
\r\n
\r\n
\r\n
\r\n {\r\n saveGuestDataToMainObj(v, \"DeptDate\");\r\n }}\r\n placeholder=\"Date\"\r\n customError={d.customErrorDeptDate}\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Date\"\r\n selected={d.DeptTransportationDate}\r\n >\r\n
\r\n
\r\n {\r\n saveGuestDataToMainObj(v, \"DeptTime\");\r\n }}\r\n //disabled=\"disabled\"\r\n placeholder=\"Time\"\r\n customError={d.customErrorDeptTime}\r\n label=\"Time\"\r\n timeformat=\"HH:mm\"\r\n dateformat=\"HH:mm\"\r\n selected={d.DeptTransportationTime}\r\n >\r\n
\r\n
\r\n {\r\n saveGuestDataToMainObj(v, \"DeptCarr\");\r\n }}\r\n >Carrier\r\n {\r\n saveGuestDataToMainObj(v, \"DeptCarrRefNo\");\r\n }}\r\n >Carrier Number\r\n {\r\n saveGuestDataToMainObj(v, \"DeptNote\");\r\n }}\r\n >Note\r\n\r\n
\r\n clearSelectedGuestDetail(\"Dept\")}>Clear\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n ) : null}\r\n\r\n {/* {\r\n showAlert ? \r\n {\r\n handleOnAlertMessageButtonClick(v);\r\n setShowAlert(!showAlert);}\r\n } \r\n confirmMsg={showAlertMessage}\r\n buttonType={showAlertButtonType}\r\n >\r\n : null\r\n } */}\r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { InnPrimaryButton, InnTooltip } from \"../../../../component\";\r\nimport { BillingInstructionModalPopup } from \"../modalPopup/billingInstructionModalPopup\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetReservationInfoData, manageReservationPackageIndicator, manageReservationBlockPackageIndicator } from \"../../../../services/reservationService\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport function IndiBillingInstruction(props) {\r\n const { t } = useTranslation();\r\n\r\n //hide show modal popup varible start\r\n const [showBillingInstructionModal, setShowBillingInstructionModal] =\r\n useState(false);\r\n //hide show modal popup varible end\r\n //billing instruction data varible start\r\n const [billingData, setbillingData] = useState(\"\");\r\n const [indiInclusionData, setIndiInclusionData] = useState([]);\r\n const [showEditDiv, setShowEditDiv] = useState(true);//use to show Edit button\r\n //billing instaruction data varible end\r\n const currUser = useSelector(currentUser);\r\n //const [isSharer, setIsSharer] = useState(false)//use to show Edit button\r\n\r\n //First Time Load useeffect start\r\n useEffect(() => {\r\n if (props.para.ReservationSerNo != undefined) {\r\n GetReservationInfoData(\r\n props.para.ClientSerNo,\r\n props.para.PropertySerNo,\r\n props.para.ReservationSerNo\r\n ).then((response) => {\r\n setbillingData(response.data.BillingInstructionRemarks);\r\n //setIsSharer(response.data.IsSharer);\r\n });\r\n\r\n if (props.para.Type == \"Block\") {\r\n console.log(props.para);\r\n manageReservationBlockPackageIndicator(props.para.ClientSerNo, props.para.PropertySerNo, props.para.BlockSerNo).then(d => {\r\n if (d.data.length > 0) {\r\n let tempCol = [];\r\n d.data.forEach(ele => {\r\n if (!ele.IsAdditional) {\r\n let tempPackage = tempCol.find(x => ele.PackageSerNo == x.PackageSerNo);\r\n if (tempPackage == undefined) {\r\n tempCol.push({ \"PackageSerNo\": ele.PackageSerNo, \"Name\": ele.Name });\r\n }\r\n }\r\n });\r\n setIndiInclusionData(tempCol);\r\n } else {\r\n setIndiInclusionData([]);\r\n }\r\n });\r\n }\r\n else {\r\n manageReservationPackageIndicator(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo).then(d => {\r\n if (d.data.length > 0) {\r\n let tempCol = [];\r\n d.data.forEach(ele => {\r\n if (!ele.IsAdditional) {\r\n let tempPackage = tempCol.find(x => ele.PackageSerNo == x.PackageSerNo);\r\n if (tempPackage == undefined) {\r\n tempCol.push({ \"PackageSerNo\": ele.PackageSerNo, \"Name\": ele.Name });\r\n }\r\n }\r\n });\r\n setIndiInclusionData(tempCol);\r\n } else {\r\n setIndiInclusionData([]);\r\n }\r\n });\r\n }\r\n\r\n }\r\n if (props.para != undefined) {\r\n if (props.para.IsShowTooltipActionButton == \"hide\") {\r\n setShowEditDiv(false);\r\n }\r\n else {\r\n setShowEditDiv(true);\r\n }\r\n }\r\n }, [props.para.ReservationSerNo]);\r\n //First Time Load useeffect end\r\n\r\n\r\n const BillingInstructionTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
Billing Instruction
\r\n\r\n
{billingData}
\r\n
\r\n
\r\n {\r\n showEditDiv ?\r\n
\r\n {\r\n if (currUser.ClientSerNo != \"\" && currUser.PropertySerNo != \"\") {\r\n setShowBillingInstructionModal(!showBillingInstructionModal);\r\n } else {\r\n alert(\"Property is not defined.\");\r\n }\r\n }}\r\n >\r\n Edit\r\n \r\n
\r\n :\r\n <>\r\n }\r\n
\r\n
\r\n
INCLUSIONS ({indiInclusionData.length})
\r\n
    \r\n {\r\n indiInclusionData.length > 0 ?\r\n indiInclusionData.map(d =>\r\n
  • {d.Name}
  • \r\n )\r\n :\r\n <>\r\n }\r\n
\r\n
\r\n
\r\n
\r\n );\r\n };\r\n return (\r\n <>\r\n \r\n
\r\n {t('INN_BillingInstruction')}\r\n {billingData != \"\" ? : null}\r\n
\r\n \r\n\r\n {showBillingInstructionModal ? (\r\n \r\n setShowBillingInstructionModal(!showBillingInstructionModal)\r\n }\r\n handleOnSelection={(v) => {\r\n setbillingData(v);\r\n setShowBillingInstructionModal(!showBillingInstructionModal);\r\n }}\r\n >\r\n ) : null}\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport function IndiCardAuthentication(props) {\r\n const { t } = useTranslation();\r\n\r\n return(\r\n
\r\n {t('INN_CardAuthentication')}\r\n 12000\r\n
\r\n )\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnRadioButton,\r\n InnSingleSelectDropdown,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnSingleRadioButton,\r\n InnTextbox,\r\n InnButtonTypeWithDropdown,\r\n InnLoader,\r\n InnMultiSelectDropdown\r\n} from \"../../../../component\";\r\nimport rightarrow from \"../../../../assets/images/right-circle-arrow-gray.svg\";\r\nimport closeIcon from \"../../../../assets/images/model-cls-btn.png\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { IndiCompanyOnFolio } from \"./indi-company-on-folio\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useAlert } from \"../../../../utils/hooks/useAlert\";\r\nimport {\r\n GetReservationWindowRoutingData, GetReservationWindowRouting, AddEditReservationWindow, ResetReservationRouting,\r\n GetReservationWindowRoutingApplyOn, GetReservationWindowRoutingGroup,\r\n GetReservationWindowRoutingDetail, AddReservationWindowRouting,\r\n GetReservationAccompanyGuest, GetPaymentMethod,\r\n GetReservationRoomRoutingRoomDetailList,\r\n GetReservationRoomRouting, AddEditReservationRoom,\r\n GetReservationRoomRoutingApplyOn, GetReservationRoomRoutingGroup,\r\n GetReservationRoomRoutingDetail, AddReservationRoomRouting\r\n} from \"../../../../services/reservationService\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { AddEditWindowRoutingModalPopup } from \"../modalPopup/addEditWindowRoutingModalPopup\";\r\nimport { AddEditRoomRoutingModalPopup } from \"../modalPopup/addEditRoomRoutingModalPopup\";\r\n\r\n\r\nexport function IndiRoutingInstruction(props) {\r\n const { t } = useTranslation();\r\n const { innkeyAlert } = useAlert();\r\n //#region Local Variable\r\n const ReservationSerNo = props.para.ReservationSerNo;\r\n const currUser = useSelector(currentUser);\r\n const history = useHistory();\r\n const selectdata = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" }\r\n ];\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" }\r\n ];\r\n const selectWindow = [\r\n { key: \"Select Window\", value: \"Select Window\" },\r\n { key: \"W1\", value: \"W1\" },\r\n { key: \"W2\", value: \"W2\" },\r\n { key: \"W3\", value: \"W3\" },\r\n { key: \"W4\", value: \"W4\" }\r\n ];\r\n const WindowOption = [\r\n { key: \"W4\", value: \"W4\" }\r\n ];\r\n\r\n const rbDataRoutingT = [\r\n { key: \"Group\", value: \"Group\" },\r\n { key: \"Individual\", value: \"Individual\" }\r\n ];\r\n //#endregion\r\n\r\n //#region State variable\r\n const [showWindowRoutingPopup, setWindowRoutingPopup] = useState(false);\r\n //const [showWindowRoutingAddModal, setShowWindowRoutingAddModal] = useState(false); Changed\r\n const [showWindowRoutingEditModal, setShowWindowRoutingEditModal] = useState(false);\r\n const [showRoomRoutingEditModal, setShowRoomRoutingEditModal] = useState(false);\r\n const [selectMulti, setSelectMulti] = useState([\"Entire Stay\"]);\r\n const [windowList, setWindowList] = useState([{ key: \"1\", value: \"1\", \"routingSerNo\": \"1\" }]);\r\n const [windowListAll, setWindowListAll] = useState([{ key: \"Select Window\", value: \"Select Window\" }]);\r\n //window and room routing selection var\r\n const [wrRouting, setwrRouting] = useState(\"\");\r\n const [isActive, setIsActive] = useState(false);\r\n\r\n const [reservationInfoData, setReservationInfoData] = useState({});\r\n const [windowRoutingData, setWindowRoutingData] = useState([]);\r\n //const [windowRoutingApplyOn, setWindowRoutingApplyOn] = useState([]);\r\n const [windowRoutingGroup, setWindowRoutingGroup] = useState([]);\r\n const [windowRoutingDetail, setWindowRoutingDetail] = useState([]);\r\n\r\n const [windowRoutingGroupFiltered, setWindowRoutingGroupFiltered] = useState([]);\r\n const [windowRoutingDetailFiltered, setWindowRoutingDetailFiltered] = useState([]);\r\n const [selectedObject, setSelectedObject] = useState({\r\n \"WindowSerNo\": \"0\",\r\n \"RoutingSerNo\": \"0\",\r\n \"RoutedReservationSerNo\": \"0\",\r\n \"WindowName\": \"\",\r\n \"RoutingName\": \"\",\r\n \"RoutedRoomName\": \"\"\r\n });\r\n const [groupSelectAll, setGroupSelectAll] = useState(false); // select all check box.\r\n const [detailSelectAll, setDetailSelectAll] = useState(false); // select all check box.\r\n const [selectedStay, setSelectedStay] = useState([\r\n { key: \"Entire Stay\", value: \"Entire Stay\" }\r\n ]);// Use to fill data in stay combo box.\r\n const [noOfSelectedStayDays, setNoOfSelectedStayDays] = useState(0); // Use in to display selected days in text.\r\n const [windowRoutingAddEditObject, setWindowRoutingAddEditObject] = useState({\r\n \"WindowName\": \"\",\r\n \"WindowSerNo\": 0,\r\n \"PaymentTransactionSerNo\": 0,\r\n \"PaymentTransactionName\": \"\",\r\n \"GuestProfileSerNo\": 0,\r\n \"GuestProfileName\": \"\",\r\n \"CompanyOnFolioProfileSerNo\": 0,\r\n \"CompanyOnFolioType\": \"\",\r\n \"CompanyOnFolioName\": \"\",\r\n \"Mode\": \"Add\",\r\n \"IsManual\": false\r\n }); // Use in window add/edit mode.\r\n // const [reservationAccompanyGuest, setReservationAccompanyGuest] = useState([]);//Changed // Use in window add/edit mode to select payee.\r\n // const [paymentMethodData, setPaymentMethodData] = useState([]);//Changed // Use in window add/edit mode to select payee.\r\n\r\n // const [roomDetailList, setRoomDetailList] = useState([]); Changed\r\n // const [selectedRoomReservationSerNo, setSelectedRoomReservationSerNo] = useState(\"\"); Changed\r\n const [roomRoutingAddEditObject, setRoomRoutingAddEditObject] = useState({\r\n \"RoutedReservationSerNo\": 0,\r\n \"RoutedRoomName\": \"\",\r\n \"RoomSerNo\": \"\",\r\n \"GuestProfileName\": \"\",\r\n \"BookingNo\": \"\",\r\n \"Mode\": \"Add\"\r\n }); // Use in window add/edit mode.\r\n const [roomRoutingData, setRoomRoutingData] = useState([]);\r\n //const [roomBookingNoList, setRoomBookingNoList] = useState([{ key: \"1\", value: \"1\", \"routingSerNo\": \"1\" }]);\r\n const [roomBookingNoListAll, setRoomBookingNoListAll] = useState([{ key: \"Select\", value: \"Select\" }]);\r\n const [roomRoutingGroup, setRoomRoutingGroup] = useState([]);\r\n const [roomRoutingDetail, setRoomRoutingDetail] = useState([]);\r\n\r\n const [roomRoutingGroupFiltered, setRoomRoutingGroupFiltered] = useState([]);\r\n const [roomRoutingDetailFiltered, setRoomRoutingDetailFiltered] = useState([]);\r\n // const [showAddRoomAdvancedSearchModal, setShowAddRoomAdvancedSearchModal] = useState(true); Changed\r\n const [showEditDiv, setShowEditDiv] = useState(true);//use to show Edit button\r\n const popupMode = useRef(\"insert\");\r\n const rbDataRouting = [];\r\n\r\n if ((props.para.BlockSerNo != undefined) || (reservationInfoData.IsSharer != undefined && reservationInfoData.IsSharer == true)) {\r\n rbDataRouting.push({ key: \"Window Routing\", value: \"Window Routing\" });\r\n\r\n }\r\n else {\r\n rbDataRouting.push(\r\n { key: \"Window Routing\", value: \"Window Routing\" },\r\n { key: \"Room Routing\", value: \"Room Routing\" });\r\n\r\n }\r\n\r\n //#endregion\r\n\r\n //#region UseEffact\r\n useEffect(() => {\r\n if (showWindowRoutingPopup) {\r\n //if (reservationInfoData.RoutingMode == \"\") {\r\n let tempreservationInfoData = reservationInfoData;\r\n tempreservationInfoData.RoutingMode = \"WR\";\r\n setReservationInfoData(tempreservationInfoData);\r\n setwrRouting(\"Window Routing\");\r\n handleRdbWindowRoomRoutingSelectionChange(\"Window Routing\");\r\n //}\r\n funGetReservationWindowRoutingData();\r\n //funGetReservationWindowRoutingApplyOn();\r\n //funGetReservationWindowRoutingGroup();\r\n // funGetReservationWindowRoutingDetail();\r\n\r\n // funGetReservationAccompanyGuest(); Changed\r\n // funGetPaymentMethod(); Changed\r\n }\r\n funGetReservationWindowRouting();\r\n }, [showWindowRoutingPopup]);\r\n\r\n useEffect(() => {\r\n funFillFilteredGroupData();\r\n }, [windowRoutingGroup]);\r\n\r\n useEffect(() => {\r\n funFillFilteredGroupDataRoom(\"\");\r\n }, [roomRoutingGroup]);\r\n\r\n useEffect(() => {\r\n console.log(props.para.BlockSerNo);\r\n if (props.para.ReservationSerNo != undefined) {\r\n funGetReservationWindowRoutingData();\r\n funGetReservationWindowRouting();\r\n funGetReservationRoomRouting();\r\n }\r\n if (props.para != undefined) {\r\n if (props.para.IsShowTooltipActionButton == \"hide\") {\r\n setShowEditDiv(false);\r\n }\r\n else {\r\n setShowEditDiv(true);\r\n }\r\n }\r\n }, [props.para.ReservationSerNo]);\r\n //#endregion\r\n\r\n //#region Custom function\r\n const funGetReservationWindowRoutingData = () => {\r\n //Get Reservation Info Data.\r\n setIsActive(true);\r\n GetReservationWindowRoutingData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then(d => {\r\n setIsActive(false);\r\n let tmp = d.data;\r\n if (d.data.RoutingMode == \"R\") {\r\n tmp.RoutingMode = \"Routing Routing\";\r\n }\r\n else {\r\n tmp.RoutingMode = \"Window Routing\";\r\n }\r\n if (d.data.GroupIndividualMode == \"G\") {\r\n tmp.GroupIndividualMode = \"Group\";\r\n }\r\n else {\r\n tmp.GroupIndividualMode = \"Individual\";\r\n }\r\n setReservationInfoData(tmp);\r\n });\r\n };\r\n const funGetReservationWindowRouting = () => {\r\n //Get Window-Room Routing Data.\r\n if (ReservationSerNo) {\r\n setIsActive(true);\r\n GetReservationWindowRouting(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then(d => {\r\n if (d.status == 200) {\r\n setIsActive(false);\r\n var temp = d.data.filter(x => x.IsManual !== true);;\r\n let SortedList = temp.sort((a, b) => (a.WindowSerNo > b.WindowSerNo) ? 1 : -1);\r\n console.log(\"windosrountingdata\", SortedList);\r\n setWindowRoutingData(SortedList);\r\n if (selectedObject != undefined && SortedList.length > 0) {\r\n let tempWindObj = selectedObject;\r\n tempWindObj.WindowSerNo = SortedList[0].WindowSerNo;\r\n tempWindObj.WindowName = SortedList[0].WindowName;\r\n setSelectedObject(tempWindObj);\r\n }\r\n else {\r\n let tempWindObj = selectedObject;\r\n //tempWindObj.WindowSerNo = SortedList[0].WindowSerNo;\r\n tempWindObj.WindowName = \"Charges\";\r\n tempWindObj.RoutingName = \"Transaction\";\r\n setSelectedObject(tempWindObj);\r\n }\r\n //console.log(\"SortedList>>\",SortedList);\r\n let tempWindow = [];\r\n d.data.forEach(ele => {\r\n if (ele.IsDeleted == false && ele.IsManual !== true) {\r\n let filterData = tempWindow.find(item => item.WindowSerNo == ele.WindowSerNo);\r\n if (filterData == undefined) {\r\n tempWindow.push({ key: ele.WindowSerNo, value: ele.WindowSerNo, routingSerNo: \"1\" });\r\n }\r\n }\r\n });\r\n setWindowList(tempWindow);\r\n let tempWindow1 = [];\r\n tempWindow1.push({ key: \"Select Window\", value: \"Select Window\" });\r\n tempWindow.forEach(ele => {\r\n tempWindow1.push(ele);\r\n });\r\n setWindowListAll(tempWindow1);\r\n console.log(\"test 1 tempWindow1>>\", tempWindow1);\r\n funGetReservationWindowRoutingGroup(SortedList);\r\n funGetReservationWindowRoutingDetail(SortedList);\r\n\r\n }\r\n });\r\n }\r\n };\r\n\r\n // useEffect(()=> {\r\n // if (windowRoutingData != undefined && windowRoutingGroup != undefined && windowRoutingGroup.length > 0 && windowRoutingData.length > 0) {\r\n // let tempDistinctWindow = [];\r\n // windowRoutingData.forEach(ele => {\r\n // if (ele.IsDeleted == false) {\r\n // let filterData = tempDistinctWindow.find(item => item.WindowSerNo == ele.WindowSerNo);\r\n // if (filterData == undefined) {\r\n // tempDistinctWindow.push({ key: ele.WindowSerNo, value: ele.WindowSerNo });\r\n // }\r\n // }\r\n // });\r\n // console.log(\"tempDistinctWindow>>\", tempDistinctWindow);\r\n // let tempWindow = []; \r\n // let tempWindowRGroup = JSON.parse(JSON.stringify(windowRoutingGroup)); \r\n // tempWindowRGroup.forEach(eleRouting => { \r\n // tempWindow = [];\r\n // tempDistinctWindow.forEach(eleWindow => {\r\n // tempWindow.push({ key: eleWindow.key, value: eleWindow.value, routingSerNo: eleRouting.RoutingSerNo });\r\n // });\r\n // eleRouting.windowList = tempWindow;\r\n // });\r\n // console.log(\"new tempWindow>>\", tempWindowRGroup); \r\n // //setWindowRoutingGroup(tempWindowRGroup);\r\n // }\r\n // },[windowRoutingGroup,windowRoutingData]);\r\n\r\n //Window Save button click for Add/Edit/Delete.\r\n const funAddEditReservationWindow = () => {\r\n // console.log(\"windowRoutingAddEditObject\");\r\n console.log(\"windowRoutingAddEditObject>>\", windowRoutingAddEditObject);\r\n console.log(\"props.para>>\", props);\r\n let para = windowRoutingAddEditObject;\r\n para = {\r\n ...para,\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: ReservationSerNo,\r\n IsManual: false\r\n };\r\n setIsActive(true);\r\n AddEditReservationWindow([para]).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == 200) {\r\n setShowWindowRoutingEditModal(false);\r\n funGetReservationWindowRouting();\r\n }\r\n else {\r\n alert(d.data.Message);\r\n }\r\n });\r\n };\r\n const funGetReservationWindowRoutingApplyOn = () => {\r\n setIsActive(true);\r\n GetReservationWindowRoutingApplyOn(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then(d => {\r\n setIsActive(false);\r\n //console.log(\"d.data>>\",d.data);\r\n if (d.data.length > 0) {\r\n var temp = (d.data);\r\n let SortedList = temp.sort((a, b) => (a.Date > b.Date) ? 1 : -1);\r\n //setWindowRoutingApplyOn(SortedList);\r\n setSelectedStay([]);\r\n let tempStay = [];\r\n tempStay.push({ key: \"Entire Stay\", value: \"Entire Stay\" });\r\n SortedList.forEach(ele => {\r\n tempStay.push({ key: ele.Date, value: ele.Date });\r\n });\r\n setSelectedStay(tempStay);\r\n let tmpSelectedStay = [];\r\n d.data.forEach(ele => {\r\n if (ele.IsApply == true) {\r\n tmpSelectedStay.push(ele.Data);\r\n }\r\n });\r\n if (tmpSelectedStay != undefined) {\r\n if (tmpSelectedStay.length > 0) {\r\n setSelectMulti(tmpSelectedStay);\r\n }\r\n }\r\n //console.log(\"ApplyOn SortedList>>\",SortedList);\r\n }\r\n setNoOfSelectedStayDays(d.data.length);\r\n });\r\n\r\n };\r\n const funGetReservationWindowRoutingGroup = (paraWindowRoutingData) => {\r\n setIsActive(true);\r\n GetReservationWindowRoutingGroup(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then(d => {\r\n setIsActive(false);\r\n //console.log(\"d.data>>\",d.data);\r\n d.data.forEach(element => {\r\n element.isChecked = false;\r\n });\r\n //console.log(\"Group SortedList d data>>\", d.data);\r\n var temp = (d.data);\r\n let SortedList = temp.sort((a, b) => (a.RoutingSerNo > b.RoutingSerNo) ? 1 : -1);\r\n //setWindowRoutingGroup(SortedList);\r\n if (d.data.length > 0) {\r\n let tempRoutingObj = selectedObject;\r\n tempRoutingObj.RoutingSerNo = SortedList[0].RoutingSerNo;\r\n tempRoutingObj.RoutingName = SortedList[0].Name;\r\n setSelectedObject(tempRoutingObj);\r\n }\r\n else {\r\n let tempRoutingObj = selectedObject;\r\n //tempRoutingObj.RoutingSerNo = SortedList[0].RoutingSerNo;\r\n tempRoutingObj.RoutingName = \"Transaction\";\r\n setSelectedObject(tempRoutingObj);\r\n }\r\n\r\n\r\n //console.log(\"windowRoutingData>>\", paraWindowRoutingData);\r\n if (paraWindowRoutingData != undefined) {\r\n let tempDistinctWindow = [];\r\n paraWindowRoutingData.forEach(ele => {\r\n if (ele.IsDeleted == false) {\r\n let filterData = tempDistinctWindow.find(item => item.WindowSerNo == ele.WindowSerNo);\r\n if (filterData == undefined) {\r\n tempDistinctWindow.push({ key: ele.WindowSerNo, value: ele.WindowSerNo });\r\n }\r\n }\r\n });\r\n //console.log(\"tempDistinctWindow>>\", tempDistinctWindow);\r\n if (tempDistinctWindow != undefined && tempDistinctWindow.length > 0) {\r\n let tempWindow = [];\r\n SortedList.forEach(eleRouting => {\r\n tempWindow = [];\r\n tempDistinctWindow.forEach(eleWindow => {\r\n tempWindow.push({ key: eleWindow.key, value: eleWindow.value, routingSerNo: eleRouting.RoutingSerNo });\r\n });\r\n eleRouting.windowList = tempWindow;\r\n });\r\n }\r\n console.log(\"new WindowRoutingGroup>>\", SortedList);\r\n //setWindowList(tempWindow);\r\n }\r\n\r\n setWindowRoutingGroup(SortedList);\r\n funFillFilteredGroupDataCore(SortedList);\r\n //funFillFilteredDetailData();\r\n });\r\n\r\n };\r\n const funGetReservationWindowRoutingDetail = (paraWindowData) => {\r\n setIsActive(true);\r\n GetReservationWindowRoutingDetail(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then(d => {\r\n setIsActive(false);\r\n //console.log(\"d.data>>\",d.data);\r\n var temp = (d.data);\r\n let SortedList = temp.sort((a, b) => (a.TransactionSerNo > b.TransactionSerNo) ? 1 : -1);\r\n SortedList.forEach(ele => {\r\n ele = { ...ele, isChecked: false };\r\n });\r\n\r\n if (paraWindowData != undefined) {\r\n let tempDistinctWindow = [];\r\n paraWindowData.forEach(ele => {\r\n if (ele.IsDeleted == false) {\r\n let filterData = tempDistinctWindow.find(item => item.WindowSerNo == ele.WindowSerNo);\r\n if (filterData == undefined) {\r\n tempDistinctWindow.push({ key: ele.WindowSerNo, value: ele.WindowSerNo });\r\n }\r\n }\r\n });\r\n //console.log(\"tempDistinctWindow>>\", tempDistinctWindow);\r\n let tempWindow = [];\r\n SortedList.forEach(eleDetail => {\r\n tempWindow = [];\r\n tempDistinctWindow.forEach(eleWindow => {\r\n tempWindow.push({ key: eleWindow.key, value: eleWindow.value, transactionSerNo: eleDetail.TransactionSerNo });\r\n });\r\n eleDetail.windowList = tempWindow;\r\n });\r\n //console.log(\"new tempWindow>>\", SortedList); \r\n //setWindowList(tempWindow);\r\n }\r\n setWindowRoutingDetail(SortedList);\r\n funFillFilteredDetailDataCore(SortedList);\r\n console.log(\"Detail SortedList>>\", SortedList);\r\n });\r\n };\r\n\r\n const funAddReservationWindowRouting = () => {\r\n let IsValid = true;\r\n let para = [];\r\n windowRoutingData.forEach(eleWindow => {\r\n let tempWindObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: ReservationSerNo,\r\n WindowSerNo: eleWindow.WindowSerNo,\r\n IsDeleted: eleWindow.IsDeleted,\r\n ReservationWindowRoutingApplyOn: [],\r\n ReservationWindowRoutingGroup: [],\r\n ReservationWindowRoutingDetail: []\r\n };\r\n para.push(tempWindObj);\r\n });\r\n let lstDate = [];\r\n let isEntireStay = selectMulti.find(item => item == \"Entire Stay\");\r\n if (isEntireStay == undefined) {\r\n selectMulti.forEach(ele => {\r\n if (ele != \"Entire Stay\") {\r\n lstDate.push(ele);\r\n }\r\n });\r\n }\r\n para[0] = { ...para[0], ReservationWindowRoutingApplyOn: lstDate };\r\n para.forEach(eleWindow => {\r\n if (eleWindow.IsDeleted == false) {\r\n let lstGroup = [];\r\n lstGroup = windowRoutingGroup.filter(item => item.WindowSerNo == eleWindow.WindowSerNo);\r\n //console.log(\"lstGroup>>\", lstGroup);\r\n if (lstGroup == undefined) {\r\n IsValid = false;\r\n alert(\"No Routing selected for window no-\" + eleWindow.WindowSerNo);\r\n }\r\n else if (lstGroup.length == 0) {\r\n IsValid = false;\r\n alert(\"No Routing selected for window no-\" + eleWindow.WindowSerNo);\r\n }\r\n else {\r\n let tempGroupObj = eleWindow;\r\n tempGroupObj.ReservationWindowRoutingGroup = lstGroup;\r\n //eleWindow = {...eleWindow, ReservationWindowRoutingGroup : \"lstGroup\"}\r\n eleWindow = tempGroupObj;\r\n }\r\n }\r\n });\r\n para.forEach(eleWindow => {\r\n if (eleWindow.IsDeleted == false) {\r\n // para.forEach(eleRouting => {\r\n let lstDetail = [];\r\n lstDetail = windowRoutingDetail.filter(item => item.WindowSerNo == eleWindow.WindowSerNo);\r\n //console.log(\"lstDetail>>\", lstDetail);\r\n if (lstDetail == undefined) {\r\n IsValid = false;\r\n alert(\"No Routing Transaction selected for window no-\" + eleWindow.WindowSerNo);\r\n }\r\n else if (lstDetail.length == 0) {\r\n IsValid = false;\r\n alert(\"No Routing Transaction selected for window no-\" + eleWindow.WindowSerNo);\r\n }\r\n else {\r\n let tempDetailObj = eleWindow;\r\n tempDetailObj.ReservationWindowRoutingDetail = lstDetail;\r\n //eleWindow = {...eleWindow, ReservationWindowRoutingGroup : \"lstGroup\"}\r\n eleWindow = tempDetailObj;\r\n }\r\n // });\r\n }\r\n });\r\n\r\n //console.log(\"para>>\", para);\r\n if (IsValid == true) {\r\n setIsActive(true);\r\n AddReservationWindowRouting(para).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == 200) {\r\n //setWindowRoutingPopup(!showWindowRoutingPopup);\r\n }\r\n else {\r\n alert(d.data.Message);\r\n }\r\n });\r\n }\r\n\r\n };\r\n const funFillFilteredGroupDataCore = (paraWindowRoutingGroup) => {\r\n //console.log(\"windowRoutingGroup>>\",windowRoutingGroup);\r\n if (paraWindowRoutingGroup != undefined && selectedObject != undefined) {\r\n if (paraWindowRoutingGroup.length > 0 && selectedObject.WindowSerNo != undefined) {\r\n let selectedWindow = windowRoutingData.find(item => item.WindowSerNo == selectedObject.WindowSerNo);\r\n if (selectedWindow != undefined) {\r\n let tempWindObj = selectedObject;\r\n tempWindObj.WindowName = selectedWindow.WindowName;\r\n tempWindObj.RoutingName = \"\";\r\n setSelectedObject(tempWindObj);\r\n }\r\n let filterData = paraWindowRoutingGroup.filter(item => item.WindowSerNo == selectedObject.WindowSerNo);\r\n if (filterData != undefined) {\r\n if (filterData.length > 0) {\r\n setWindowRoutingGroupFiltered(filterData);\r\n let tempObj = selectedObject;\r\n tempObj.RoutingSerNo = filterData[0].RoutingSerNo;\r\n setSelectedObject(tempObj);\r\n funFillFilteredDetailData();\r\n }\r\n else {\r\n setWindowRoutingGroupFiltered([]);\r\n setWindowRoutingDetailFiltered([]);\r\n let tempWindObj = selectedObject;\r\n tempWindObj.RoutingName = \"Transaction\";\r\n setSelectedObject(tempWindObj);\r\n }\r\n }\r\n else {\r\n setWindowRoutingGroupFiltered([]);\r\n setWindowRoutingDetailFiltered([]);\r\n let tempWindObj = selectedObject;\r\n tempWindObj.RoutingName = \"Transaction\";\r\n setSelectedObject(tempWindObj);\r\n // setSelectedObject(\r\n // {\r\n // \"WindowSerNo\" : \"0\",\r\n // \"RoutingSerNo\" : \"0\",\r\n // \"WindowName\" : \"\",\r\n // \"RoutingName\" : \"\"\r\n // });\r\n }\r\n }\r\n }\r\n };\r\n const funFillFilteredGroupData = () => {\r\n funFillFilteredGroupDataCore(windowRoutingGroup);\r\n };\r\n const funFillFilteredDetailDataCore = (paraWindowRoutingDetail) => {\r\n //console.log(\"selectedObject.RoutingSerNo\",selectedObject.RoutingSerNo);\r\n if (paraWindowRoutingDetail != undefined && selectedObject != undefined) {\r\n if (paraWindowRoutingDetail.length > 0 && selectedObject.RoutingSerNo != undefined) {\r\n let selectedRoute = windowRoutingGroup.find(item => item.WindowSerNo == selectedObject.WindowSerNo && item.RoutingSerNo == selectedObject.RoutingSerNo);\r\n if (selectedRoute != undefined) {\r\n let tempRouteObj = selectedObject;\r\n tempRouteObj.RoutingName = selectedRoute.Name;\r\n setSelectedObject(tempRouteObj);\r\n }\r\n\r\n let filterData = paraWindowRoutingDetail.filter(item => item.WindowSerNo == selectedObject.WindowSerNo && item.RoutingSerNo == selectedObject.RoutingSerNo);\r\n if (filterData != undefined) {\r\n setWindowRoutingDetailFiltered(filterData);\r\n }\r\n }\r\n else {\r\n let tempRouteObj = selectedObject;\r\n tempRouteObj.RoutingName = \"Transaction\";\r\n setSelectedObject(tempRouteObj);\r\n }\r\n }\r\n else {\r\n let tempRouteObj = selectedObject;\r\n tempRouteObj.RoutingName = \"Transaction\";\r\n setSelectedObject(tempRouteObj);\r\n }\r\n //console.log(\"windowRoutingGroup\", windowRoutingGroup);\r\n };\r\n const funFillFilteredDetailData = () => {\r\n funFillFilteredDetailDataCore(windowRoutingDetail);\r\n };\r\n // const funGetReservationAccompanyGuest = () => {\r\n // setIsActive(true);\r\n // GetReservationAccompanyGuest(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then(d => {\r\n // setIsActive(false);\r\n // //console.log(\"d.data>>\",d.data);\r\n // var temp = (d.data);\r\n // let SortedList = temp.sort((a, b) => (a.GuestName > b.GuestName) ? 1 : -1);\r\n // var tmpData = [];\r\n // SortedList.forEach(ele => {\r\n // tmpData.push({ \"key\": ele.GuestProfileSerNo, \"value\": ele.GuestName, \"IsPrimary\": ele.IsPrimary });\r\n // });\r\n // setReservationAccompanyGuest(tmpData);\r\n // //console.log(\"Detail SortedList>>\",SortedList);\r\n // });\r\n // } Changed\r\n // const funGetPaymentMethod = () => {\r\n // setIsActive(true);\r\n // GetPaymentMethod(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n // setIsActive(false);\r\n // var temp = (d.data);\r\n // let SortedList = temp.sort((a, b) => (a.Name > b.Name) ? 1 : -1);\r\n // var tmpData = [];\r\n // SortedList.forEach(ele => {\r\n // tmpData.push({ \"key\": ele.TransactionSerNo, \"value\": ele.Name });\r\n // });\r\n // setPaymentMethodData(tmpData);\r\n // //console.log(\"Detail SortedList>>\",SortedList);\r\n // });\r\n // } Changed \r\n //*****START Room Routing*****/\r\n // const funGetReservationRoomRoutingRoomDetailList = () => {\r\n // setIsActive(true);\r\n // GetReservationRoomRoutingRoomDetailList(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then(d => {\r\n // setIsActive(false);\r\n // console.log(\"GetRoomRoutingRoomDetailList>>\", d.data);\r\n // var temp = (d.data);\r\n // let SortedList = temp.sort((a, b) => (a.BookingNo > b.BookingNo) ? 1 : -1);\r\n // setRoomDetailList(SortedList);\r\n // });\r\n // } Changed \r\n const funGetReservationRoomRouting = () => {\r\n setIsActive(true);\r\n GetReservationRoomRouting(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then(d => {\r\n setIsActive(false);\r\n setRoomRoutingData(d.data);\r\n if (d.data != undefined && d.data.length > 0) {\r\n var temp = (d.data);\r\n let SortedList = temp.sort((a, b) => (a.RoomSerNo > b.RoomSerNo) ? 1 : -1);\r\n setRoomRoutingData(SortedList);\r\n let tempObj = selectedObject;\r\n tempObj.RoutedReservationSerNo = SortedList[0].RoutedReservationSerNo;\r\n tempObj.RoutedRoomName = SortedList[0].RoutedRoomName;\r\n tempObj.RoutingName = \"Transaction\";\r\n setSelectedObject(tempObj);\r\n //console.log(\"SortedList>>\",SortedList);\r\n let tempBookingNo = [];\r\n tempBookingNo.push({ key: \"Select\", value: \"Select\" });\r\n d.data.forEach(ele => {\r\n if (ele.IsDeleted == false) {\r\n let filterData = tempBookingNo.find(item => item.BookingNo == ele.BookingNo);\r\n if (filterData == undefined) {\r\n tempBookingNo.push({ key: ele.RoutedReservationSerNo, value: ele.BookingNo });\r\n }\r\n }\r\n });\r\n //setRoomBookingNoList(tempBookingNo);\r\n setRoomBookingNoListAll(tempBookingNo);\r\n //console.log(\"tempWindow>>\",tempWindow);\r\n funGetReservationRoomRoutingGroup(SortedList);\r\n funGetReservationRoomRoutingDetail(SortedList);\r\n }\r\n else {\r\n let tempObj = selectedObject;\r\n //tempObj.RoutedReservationSerNo = SortedList[0].RoutedReservationSerNo;\r\n tempObj.RoutedRoomName = \"Charges\";\r\n tempObj.RoutingName = \"Transaction\";\r\n setSelectedObject(tempObj);\r\n }\r\n\r\n });\r\n };\r\n const funAddEditReservationRoom = () => {\r\n //console.log(\"roomRoutingAddEditObject\");\r\n let para = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: ReservationSerNo,\r\n RoutedReservationSerNo: parseInt(roomRoutingAddEditObject.RoutedReservationSerNo),\r\n RoutedRoomName: roomRoutingAddEditObject.RoutedRoomName,\r\n EntryUserId: \"SUPER1201\",\r\n Mode: roomRoutingAddEditObject.Mode\r\n };//pending to set entry userid.\r\n //console.log(para);\r\n setIsActive(true);\r\n AddEditReservationRoom([para]).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == 200) {\r\n setShowRoomRoutingEditModal(false);\r\n funGetReservationRoomRouting();\r\n }\r\n else {\r\n alert(d.data.Message);\r\n }\r\n });\r\n\r\n };\r\n const funGetReservationRoomRoutingApplyOn = () => {\r\n setIsActive(true);\r\n GetReservationRoomRoutingApplyOn(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then(d => {\r\n setIsActive(false);\r\n //console.log(\"d.data>>\",d.data);\r\n if (d.data.length > 0) {\r\n var temp = (d.data);\r\n let SortedList = temp.sort((a, b) => (a.Date > b.Date) ? 1 : -1);\r\n //setWindowRoutingApplyOn(SortedList);\r\n setSelectedStay([]);\r\n let tempStay = [];\r\n tempStay.push({ key: \"Entire Stay\", value: \"Entire Stay\" });\r\n SortedList.forEach(ele => {\r\n tempStay.push({ key: ele.Date, value: ele.Date });\r\n });\r\n setSelectedStay(tempStay);\r\n let tmpSelectedStay = [];\r\n d.data.forEach(ele => {\r\n if (ele.IsApply == true) {\r\n tmpSelectedStay.push(ele.Data);\r\n }\r\n });\r\n if (tmpSelectedStay != undefined) {\r\n if (tmpSelectedStay.length > 0) {\r\n setSelectMulti(tmpSelectedStay);\r\n }\r\n }\r\n //console.log(\"ApplyOn SortedList>>\",SortedList);\r\n }\r\n setNoOfSelectedStayDays(d.data.length);\r\n });\r\n };\r\n const funGetReservationRoomRoutingGroup = (paraRoomRoutingData) => {\r\n setIsActive(true);\r\n GetReservationRoomRoutingGroup(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then(d => {\r\n setIsActive(false);\r\n d.data.forEach(element => {\r\n element.isChecked = false;\r\n });\r\n //console.log(\"Group SortedList d data>>\", d.data);\r\n var temp = (d.data);\r\n let SortedList = temp.sort((a, b) => (a.RoutingSerNo > b.RoutingSerNo) ? 1 : -1);\r\n //setWindowRoutingGroup(SortedList);\r\n if (d.data.length > 0) {\r\n let tempRoutingObj = selectedObject;\r\n tempRoutingObj.RoutingSerNo = SortedList[0].RoutingSerNo;\r\n tempRoutingObj.RoutingName = SortedList[0].Name;\r\n setSelectedObject(tempRoutingObj);\r\n }\r\n //console.log(\"paraRoomRoutingData>>\", paraRoomRoutingData);\r\n if (paraRoomRoutingData != undefined) {\r\n let tempDistinctBookingNo = [];\r\n paraRoomRoutingData.forEach(ele => {\r\n if (ele.IsDeleted == false) {\r\n let filterData = tempDistinctBookingNo.find(x => x.BookingNo == ele.BookingNo);\r\n if (filterData == undefined) {\r\n tempDistinctBookingNo.push({ key: ele.RoutedReservationSerNo, value: ele.BookingNo });\r\n }\r\n }\r\n });\r\n //console.log(\"tempDistinctBookingNo>>\", tempDistinctBookingNo);\r\n let tempBookingNoList = [];\r\n SortedList.forEach(eleRouting => {\r\n tempBookingNoList = [];\r\n tempDistinctBookingNo.forEach(eleWindow => {\r\n tempBookingNoList.push({ key: eleWindow.key, value: eleWindow.value, routingSerNo: eleRouting.RoutingSerNo });\r\n });\r\n eleRouting.bookingNoList = tempBookingNoList;\r\n });\r\n console.log(\"detail route data>>\", SortedList);\r\n //setWindowList(tempWindow);\r\n }\r\n setRoomRoutingGroup(SortedList);\r\n funFillFilteredGroupDataRoom(\"\");\r\n funFillFilteredDetailDataRoom(\"\");\r\n });\r\n };\r\n const funGetReservationRoomRoutingDetail = (paraRoomData) => {\r\n setIsActive(true);\r\n GetReservationRoomRoutingDetail(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then(d => {\r\n setIsActive(false);\r\n console.log(\"RoomRoutingDetail >>\", d.data);\r\n var temp = (d.data);\r\n let SortedList = temp.sort((a, b) => (a.TransactionSerNo > b.TransactionSerNo) ? 1 : -1);\r\n SortedList.forEach(ele => {\r\n ele = { ...ele, isChecked: false };\r\n });\r\n\r\n if (paraRoomData != undefined) {\r\n let tempDistinctBookingNo = [];\r\n paraRoomData.forEach(ele => {\r\n if (ele.IsDeleted == false) {\r\n let filterData = tempDistinctBookingNo.find(x => x.BookingNo == ele.BookingNo);\r\n if (filterData == undefined) {\r\n tempDistinctBookingNo.push({ key: ele.RoutedReservationSerNo, value: ele.BookingNo });\r\n }\r\n }\r\n });\r\n //console.log(\"tempDistinctBookingNo>>\", tempDistinctBookingNo);\r\n let tempBookingNoList = [];\r\n SortedList.forEach(eleDetail => {\r\n tempBookingNoList = [];\r\n tempDistinctBookingNo.forEach(eleWindow => {\r\n tempBookingNoList.push({ key: eleWindow.key, value: eleWindow.value, transactionSerNo: eleDetail.TransactionSerNo });\r\n });\r\n eleDetail.bookingNoList = tempBookingNoList;\r\n });\r\n //console.log(\"new tempWindow>>\", SortedList); \r\n //setWindowList(tempWindow);\r\n }\r\n setRoomRoutingDetail(SortedList);\r\n //console.log(\"Detail SortedList>>\",SortedList);\r\n });\r\n };\r\n const funAddReservationRoomRouting = () => {\r\n let IsValid = true;\r\n let para = [];\r\n roomRoutingData.forEach(eleRoom => {\r\n let tempWindObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: ReservationSerNo,\r\n RoutedReservationSerNo: eleRoom.RoutedReservationSerNo,\r\n IsDeleted: eleRoom.IsDeleted,\r\n ReservationWindowRoutingApplyOn: [],\r\n ReservationWindowRoutingGroup: [],\r\n ReservationWindowRoutingDetail: []\r\n };\r\n para.push(tempWindObj);\r\n });\r\n let lstDate = [];\r\n let isEntireStay = selectMulti.find(item => item == \"Entire Stay\");\r\n if (isEntireStay == undefined) {\r\n selectMulti.forEach(ele => {\r\n if (ele != \"Entire Stay\") {\r\n lstDate.push(ele);\r\n }\r\n });\r\n }\r\n para[0] = { ...para[0], ReservationWindowRoutingApplyOn: lstDate };\r\n para.forEach(eleRoutedRoom => {\r\n if (eleRoutedRoom.IsDeleted == false) {\r\n let lstGroup = [];\r\n lstGroup = roomRoutingGroup.filter(x => x.RoutedReservationSerNo == eleRoutedRoom.RoutedReservationSerNo);\r\n //console.log(\"lstGroup>>\", lstGroup);\r\n if (lstGroup == undefined) {\r\n IsValid = false;\r\n alert(\"No Routing selected for Booking No: \" + eleRoutedRoom.BookingNo);\r\n }\r\n else if (lstGroup.length == 0) {\r\n IsValid = false;\r\n alert(\"No Routing selected for Booking No: \" + eleRoutedRoom.BookingNo);\r\n }\r\n else {\r\n let tempGroupObj = eleRoutedRoom;\r\n tempGroupObj.ReservationWindowRoutingGroup = lstGroup;\r\n //eleWindow = {...eleWindow, ReservationWindowRoutingGroup : \"lstGroup\"}\r\n eleRoutedRoom = tempGroupObj;\r\n }\r\n }\r\n });\r\n para.forEach(eleRoutedRoom => {\r\n if (eleRoutedRoom.IsDeleted == false) {\r\n // para.forEach(eleRouting => {\r\n let lstDetail = [];\r\n lstDetail = roomRoutingDetail.filter(x => x.RoutedReservationSerNo == eleRoutedRoom.RoutedReservationSerNo);\r\n //console.log(\"lstDetail>>\", lstDetail);\r\n if (lstDetail == undefined) {\r\n IsValid = false;\r\n alert(\"No Routing Transaction selected for Booking No: \" + eleRoutedRoom.BookingNo);\r\n }\r\n else if (lstDetail.length == 0) {\r\n IsValid = false;\r\n alert(\"No Routing Transaction selected for Booking No: \" + eleRoutedRoom.BookingNo);\r\n }\r\n else {\r\n let tempDetailObj = eleRoutedRoom;\r\n tempDetailObj.ReservationWindowRoutingDetail = lstDetail;\r\n //eleRoutedRoom = {...eleRoutedRoom, ReservationWindowRoutingGroup : \"lstGroup\"}\r\n eleRoutedRoom = tempDetailObj;\r\n }\r\n // });\r\n }\r\n });\r\n\r\n //console.log(\"para>>\", para);\r\n if (IsValid == true) {\r\n setIsActive(true);\r\n AddReservationRoomRouting(para).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == 200) {\r\n //setWindowRoutingPopup(!showWindowRoutingPopup);\r\n }\r\n else {\r\n alert(d.data.Message);\r\n }\r\n });\r\n }\r\n };\r\n const funRoutedRoomSelectionChange = (d) => {\r\n console.log(\"d.target.id>>\", d.target.id);\r\n d.stopPropagation();\r\n let tempObj = JSON.parse(JSON.stringify(selectedObject));\r\n tempObj.RoutedReservationSerNo = parseInt(d.target.id);\r\n setSelectedObject(tempObj);\r\n funFillFilteredGroupDataRoom(d.target.id);\r\n setGroupSelectAll(false);\r\n setDetailSelectAll(false);\r\n };\r\n const funFillFilteredGroupDataRoom = (selectedRoutedReservationSerNo) => {\r\n let tempRoutedReservationSerNo = undefined;\r\n if (selectedRoutedReservationSerNo == undefined || selectedRoutedReservationSerNo == \"\") {\r\n tempRoutedReservationSerNo = selectedObject.RoutedReservationSerNo;\r\n }\r\n else {\r\n tempRoutedReservationSerNo = selectedRoutedReservationSerNo;\r\n }\r\n console.log(\"tempRoutedReservationSerNo>>\", selectedRoutedReservationSerNo, tempRoutedReservationSerNo);\r\n console.log(\"roomRoutingGroup>>\", roomRoutingGroup);\r\n if (roomRoutingGroup != undefined && selectedObject != undefined) {\r\n if (roomRoutingGroup.length > 0 && tempRoutedReservationSerNo != undefined) {\r\n let selectedRoom = roomRoutingData.find(x => x.RoutedReservationSerNo == tempRoutedReservationSerNo);\r\n if (selectedRoom != undefined) {\r\n let tempRoomObj = JSON.parse(JSON.stringify(selectedObject));\r\n tempRoomObj.RoutedReservationSerNo = parseInt(tempRoutedReservationSerNo);\r\n tempRoomObj.RoutedRoomName = selectedRoom.RoutedRoomName;\r\n tempRoomObj.RoutingName = \"\";\r\n setSelectedObject(tempRoomObj);\r\n }\r\n let filterData = roomRoutingGroup.filter(x => x.RoutedReservationSerNo == tempRoutedReservationSerNo);\r\n console.log(\"filterData>>\", filterData);\r\n if (filterData != undefined) {\r\n if (filterData.length > 0) {\r\n setRoomRoutingGroupFiltered(filterData);\r\n funFillFilteredDetailDataRoom(\"\");\r\n }\r\n else {\r\n setRoomRoutingGroupFiltered([]);\r\n setRoomRoutingDetailFiltered([]);\r\n }\r\n }\r\n else {\r\n setRoomRoutingGroupFiltered([]);\r\n setRoomRoutingDetailFiltered([]);\r\n }\r\n }\r\n }\r\n };\r\n const funRoutedRoomGroupSelectionChange = (d) => {\r\n d.stopPropagation();\r\n //console.log(\"li click \",d,d.target.attributes[\"name\"].value);\r\n if (d.target.attributes[\"name\"] && (d.target.attributes[\"name\"].value == \"liRoute\" ||\r\n d.target.attributes[\"name\"].value == \"div1Route\" || d.target.attributes[\"name\"].value == \"label1Route\" ||\r\n d.target.attributes[\"name\"].value == \"p1Route\")) {\r\n //console.log(\"called\");\r\n let tempObj = JSON.parse(JSON.stringify(selectedObject));\r\n tempObj.RoutingSerNo = parseInt(d.target.id);\r\n setSelectedObject(tempObj);\r\n funFillFilteredDetailDataRoom(d.target.id);\r\n }\r\n\r\n };\r\n const funFillFilteredDetailDataRoom = (selectedRoutingSerNo) => {\r\n //console.log(selectedObject);\r\n let tempselectedRoutingSerNo = undefined;\r\n if (selectedRoutingSerNo == undefined || selectedRoutingSerNo == \"\") {\r\n tempselectedRoutingSerNo = selectedObject.RoutingSerNo;\r\n }\r\n else {\r\n tempselectedRoutingSerNo = selectedRoutingSerNo;\r\n }\r\n if (roomRoutingDetail != undefined && selectedObject != undefined) {\r\n if (roomRoutingDetail.length > 0 && tempselectedRoutingSerNo != undefined) {\r\n let selectedRoute = roomRoutingGroup.find(x => x.RoutedReservationSerNo == selectedObject.RoutedReservationSerNo && x.RoutingSerNo == tempselectedRoutingSerNo);\r\n if (selectedRoute != undefined) {\r\n let tempRouteObj = JSON.parse(JSON.stringify(selectedObject));\r\n tempRouteObj.RoutingSerNo = parseInt(tempselectedRoutingSerNo);\r\n tempRouteObj.RoutingName = selectedRoute.Name;\r\n setSelectedObject(tempRouteObj);\r\n }\r\n\r\n let filterData = roomRoutingDetail.filter(x => x.RoutedReservationSerNo == selectedObject.RoutedReservationSerNo && x.RoutingSerNo == tempselectedRoutingSerNo);\r\n if (filterData != undefined) {\r\n setRoomRoutingDetailFiltered(filterData);\r\n }\r\n }\r\n }\r\n //console.log(\"roomRoutingGroup\", roomRoutingGroup);\r\n };\r\n //select room from room list popup.\r\n // const funSaveRoutedRoomData = () => {\r\n // let tempRoutedRoomObject = roomRoutingAddEditObject;\r\n // let tempSelectedRoom = undefined;\r\n // if (roomDetailList != undefined) {\r\n // tempSelectedRoom = roomDetailList.find(x => x.ReservationSerNo == selectedRoomReservationSerNo);\r\n // if (tempSelectedRoom != undefined) {\r\n // tempRoutedRoomObject.RoomSerNo = tempSelectedRoom.RoomSerNo;\r\n // tempRoutedRoomObject.GuestProfileName = tempSelectedRoom.GuestName;\r\n // tempRoutedRoomObject.BookingNo = tempSelectedRoom.BookingNo;\r\n // }\r\n // }\r\n // tempRoutedRoomObject.RoutedReservationSerNo = selectedRoomReservationSerNo;\r\n // setRoomRoutingAddEditObject(tempRoutedRoomObject);\r\n // console.log(\"tempRoutedRoomObject>>\", tempRoutedRoomObject);\r\n // setShowWindowRoutingAddModal(false);\r\n // } Changed\r\n\r\n // const funSetRoutedRoomName = (e) => {\r\n // console.log(\"funSetRoutedRoomName>>\", e);\r\n // let tempRoutedRoomObject = roomRoutingAddEditObject;\r\n // tempRoutedRoomObject.RoutedRoomName = e;\r\n // setRoomRoutingAddEditObject(tempRoutedRoomObject);\r\n // } Changed\r\n\r\n // const funSetRoutedRoomSerNo = (e) => {\r\n // setSelectedRoomReservationSerNo(e);\r\n // } Changed\r\n //*****END Room Routing*****/\r\n //#endregion\r\n\r\n //#region Event handle\r\n\r\n //Main Save button click\r\n const handlebtnResetRoutingMain = async () => {\r\n if (popupMode.current == \"insert\") {\r\n let routingMode = 'W';\r\n let alertMessage = \"Would you like to delete all the routing?\";\r\n if (wrRouting == \"Room Routing\") {\r\n routingMode = 'R';\r\n alertMessage = \"Would you like to delete all the room routing?\";\r\n }\r\n else {\r\n routingMode = 'W';\r\n alertMessage = \"Would you like to delete all the window routing?\";\r\n }\r\n\r\n let IsReset = await innkeyAlert(alertMessage);\r\n if (IsReset == true) {\r\n setIsActive(true);\r\n ResetReservationRouting(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo, routingMode).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == 200) {\r\n alert(d.data.Message);\r\n }\r\n else {\r\n alert(d.data.Message);\r\n }\r\n }).catch(d => {\r\n setIsActive(false);\r\n });\r\n }\r\n //setWindowRoutingPopup(!showWindowRoutingPopup);\r\n }\r\n else {\r\n let IsReset = await innkeyAlert(\"Would you like to discard the changes and keep the previous value?\");\r\n if (IsReset == true) {\r\n funGetReservationWindowRouting();\r\n }\r\n }\r\n\r\n };\r\n const handlebtnSaveRoutingMain = () => {\r\n alert(wrRouting);\r\n if (wrRouting == \"Room Routing\") {\r\n funAddReservationRoomRouting();\r\n }\r\n else {\r\n funAddReservationWindowRouting();\r\n }\r\n };\r\n const handleRdbWindowRoomRoutingSelectionChange = (value) => {\r\n setwrRouting(value);\r\n if (value == \"Room Routing\") {\r\n funGetReservationRoomRouting();\r\n funGetReservationRoomRoutingApplyOn();\r\n }\r\n else {\r\n funGetReservationWindowRouting();\r\n funGetReservationWindowRoutingApplyOn();\r\n }\r\n };\r\n const handlechkGroupSelectAll = (isChecked) => {\r\n if (wrRouting == \"Room Routing\") {\r\n if (roomRoutingGroupFiltered != undefined) {\r\n let temp = JSON.parse(JSON.stringify(roomRoutingGroupFiltered));\r\n temp.forEach(ele => {\r\n ele.isChecked = isChecked;\r\n });\r\n setRoomRoutingGroupFiltered(temp);\r\n }\r\n }\r\n else {\r\n if (windowRoutingGroupFiltered != undefined) {\r\n //if(isChecked == true){\r\n let temp = JSON.parse(JSON.stringify(windowRoutingGroupFiltered));\r\n temp.forEach(ele => {\r\n ele.isChecked = isChecked;\r\n });\r\n setWindowRoutingGroupFiltered(temp);\r\n // }\r\n // else{ \r\n // let temp = windowRoutingGroupFiltered;\r\n // let i = 0;\r\n // temp.forEach(ele => {\r\n // ele[i].isChecked = false;\r\n // i+=1;\r\n // //ele = { ...ele,isChecked:false};\r\n // });\r\n // setWindowRoutingGroupFiltered(temp);\r\n // }\r\n //console.log(\"selectedObject>>\",isChecked,selectedObject);\r\n }\r\n }\r\n };\r\n const handlechkDetailSelectAll = (isChecked) => {\r\n if (wrRouting == \"Room Routing\") {\r\n if (roomRoutingDetailFiltered != undefined) {\r\n let temp = JSON.parse(JSON.stringify(roomRoutingDetailFiltered));\r\n temp.forEach(ele => {\r\n ele.isChecked = isChecked;\r\n });\r\n setRoomRoutingDetailFiltered(temp);\r\n }\r\n }\r\n else {\r\n if (windowRoutingDetailFiltered != undefined) {\r\n let temp = JSON.parse(JSON.stringify(windowRoutingDetailFiltered));\r\n temp.forEach(ele => {\r\n ele.isChecked = isChecked;\r\n });\r\n setWindowRoutingDetailFiltered(temp);\r\n }\r\n // if(isChecked == true){\r\n // let temp = windowRoutingDetailFiltered;\r\n // temp.forEach(ele => {\r\n // ele = { ...ele,isChecked:true};\r\n // });\r\n // setWindowRoutingDetailFiltered(temp);\r\n // }\r\n // else{\r\n // //console.log(\"tempMainObj>>\",tempMainObj);\r\n // // let temp = windowRoutingDetailFiltered;\r\n // // temp.forEach(ele => {\r\n // // ele = { ...ele,isChecked:false};\r\n // // });\r\n // }\r\n // console.log(\"selectedObject>>\",isChecked,selectedObject);\r\n }\r\n };\r\n const handlechkGroupSelect = (isChecked, e) => {\r\n if (wrRouting == \"Room Routing\") {\r\n if (roomRoutingGroupFiltered != undefined) {\r\n let temp = JSON.parse(JSON.stringify(roomRoutingGroupFiltered));\r\n temp.forEach(ele => {\r\n if (ele.RoutingSerNo == e.target.id) {\r\n ele.isChecked = isChecked;\r\n }\r\n });\r\n setRoomRoutingGroupFiltered(temp);\r\n }\r\n }\r\n else {\r\n if (windowRoutingGroupFiltered != undefined) {\r\n //if(isChecked == true){\r\n let temp = JSON.parse(JSON.stringify(windowRoutingGroupFiltered));\r\n temp.forEach(ele => {\r\n if (ele.RoutingSerNo == e.target.id) {\r\n ele.isChecked = isChecked;\r\n }\r\n });\r\n setWindowRoutingGroupFiltered(temp);\r\n }\r\n }\r\n };\r\n const handleChkDetailSelect = (isChecked, e) => {\r\n if (wrRouting == \"Room Routing\") {\r\n if (roomRoutingDetailFiltered != undefined) {\r\n let temp = JSON.parse(JSON.stringify(roomRoutingDetailFiltered));\r\n temp.forEach(ele => {\r\n if (ele.TransactionSerNo == e.target.id) {\r\n ele.isChecked = isChecked;\r\n }\r\n });\r\n setRoomRoutingDetailFiltered(temp);\r\n }\r\n }\r\n else {\r\n if (windowRoutingDetailFiltered != undefined) {\r\n let temp = JSON.parse(JSON.stringify(windowRoutingDetailFiltered));\r\n temp.forEach(ele => {\r\n {\r\n if (ele.TransactionSerNo == e.target.id) {\r\n ele.isChecked = isChecked;\r\n }\r\n }\r\n });\r\n setWindowRoutingDetailFiltered(temp);\r\n }\r\n }\r\n };\r\n const handlebtnAddWindow = () => {\r\n // let tmpWinList = windowList;\r\n // let i;\r\n // let max = tmpWinList[0].value;\r\n // for (i = 1; i < tmpWinList.length; i++) {\r\n // if (tmpWinList[i].value > max)\r\n // max = tmpWinList[i].value;\r\n // }\r\n let tmpWinList = windowRoutingData;\r\n let i;\r\n let max = tmpWinList[0].WindowSerNo;\r\n for (i = 1; i < tmpWinList.length; i++) {\r\n if (tmpWinList[i].WindowSerNo > max)\r\n max = tmpWinList[i].WindowSerNo;\r\n }\r\n // tempWindow.WindowSerNo = parseInt(max)+1;\r\n // tempWindow.GuestProfileSerNo = reservationInfoData.GuestProfileSerNo;\r\n // tempWindow.GuestProfileName = reservationInfoData.GuestName;\r\n // tempWindow.PaymentTransactionSerNo = reservationInfoData.PaymentTransactionSerNo;\r\n console.log(windowRoutingData);\r\n let tempWindObj = windowRoutingData.find(item => item.WindowSerNo == 1);\r\n console.log(tempWindObj);\r\n let tempWindow = {\r\n \"WindowName\": \"\",\r\n \"WindowSerNo\": parseInt(max) + 1,\r\n \"PaymentTransactionSerNo\": reservationInfoData.PaymentTransactionSerNo,\r\n \"PaymentTransactionName\": \"\",\r\n \"GuestProfileSerNo\": reservationInfoData.GuestProfileSerNo,\r\n \"GuestProfileName\": reservationInfoData.GuestName,\r\n \"CompanyOnFolioProfileSerNo\": tempWindObj.CompanyOnFolioProfileSerNo,\r\n \"CompanyOnFolioName\": tempWindObj.CompanyOnFolioName,\r\n \"CompanyOnFolioType\": tempWindObj.CompanyOnFolioType,\r\n \"Mode\": \"Add\",\r\n \"CustomErrorWindowName\": \"\",\r\n \"CustomErrorPaymentTransactionName\": \"\",\r\n \"CustomErrorGuestProfileName\": \"\",\r\n };\r\n console.log(\"addobject\", tempWindow);\r\n setWindowRoutingAddEditObject(tempWindow);\r\n setShowWindowRoutingEditModal(!showWindowRoutingEditModal);\r\n\r\n };\r\n const handlebtnEditWindow = () => {\r\n //let tempWindow = windowRoutingAddEditObject;\r\n let tempWindObj = windowRoutingData.find(item => item.WindowSerNo == selectedObject.WindowSerNo);\r\n console.log(tempWindObj);\r\n if (tempWindObj != undefined) {\r\n let tempWindow = {\r\n \"WindowName\": tempWindObj.WindowName,\r\n \"WindowSerNo\": tempWindObj.WindowSerNo,\r\n \"PaymentTransactionSerNo\": tempWindObj.PaymentTransactionSerNo,\r\n \"PaymentTransactionName\": tempWindObj.PaymentTransactionName,\r\n \"GuestProfileSerNo\": tempWindObj.GuestProfileSerNo,\r\n \"GuestProfileName\": tempWindObj.GuestProfileName,\r\n \"CompanyOnFolioProfileSerNo\": tempWindObj.CompanyOnFolioProfileSerNo,\r\n \"CompanyOnFolioName\": tempWindObj.CompanyOnFolioName,\r\n \"CompanyOnFolioType\": tempWindObj.CompanyOnFolioType,\r\n \"Mode\": \"Edit\",\r\n \"CustomErrorWindowName\": \"\",\r\n \"CustomErrorPaymentTransactionName\": \"\",\r\n \"CustomErrorGuestProfileName\": \"\"\r\n };\r\n setWindowRoutingAddEditObject(tempWindow);\r\n setShowWindowRoutingEditModal(!showWindowRoutingEditModal);\r\n }\r\n else {\r\n alert(\"Problem to get selected window detail.!\");\r\n }\r\n };\r\n const handlebtnDeleteWindow = () => {\r\n let tempWindow = windowRoutingAddEditObject;\r\n tempWindow.WindowSerNo = parseInt(selectedObject.WindowSerNo);\r\n tempWindow.Mode = \"Delete\";\r\n //console.log(\"delete tempWindow\",tempWindow);\r\n setWindowRoutingAddEditObject(tempWindow);\r\n funAddEditReservationWindow();\r\n };\r\n // const handlebtnSaveWindow = () => {\r\n // let tempGuest = windowRoutingAddEditObject;\r\n // tempGuest.CompanyOnFolioProfileSerNo = props.para.CompanyProfileSerNo;\r\n // setWindowRoutingAddEditObject(tempGuest);\r\n // funAddEditReservationWindow();\r\n // } Changed\r\n\r\n const handleWindowSelectionAllChangeGroup = (item1, name1) => {\r\n if (item1.key != \"Select Window\") {\r\n let newWindowSerNo = item1.key;\r\n let oldWindowSerNo = selectedObject.WindowSerNo;\r\n //let tempGroupObj = windowRoutingGroup.filter(item => item.WindowSerNo == oldWindowSerNo);\r\n let tempGroupObj = windowRoutingGroupFiltered.filter(item => item.WindowSerNo == oldWindowSerNo);\r\n //let routingSerNo = selectedObject.RoutingSerNo;\r\n console.log(\"tempGroupObj<<\", tempGroupObj);\r\n if (tempGroupObj != undefined) {\r\n tempGroupObj.forEach(ele => {\r\n if (ele.isChecked == true) {\r\n console.log(\"ele.RoutingSerNo\", ele.RoutingSerNo);\r\n handleWindowSelectionChangeGroupCore(oldWindowSerNo, newWindowSerNo, ele.RoutingSerNo);\r\n //console.log(\"windowRoutingGroup\", windowRoutingGroup);\r\n }\r\n });\r\n //funFillFilteredGroupData();\r\n }\r\n }\r\n };\r\n const handleWindowSelectionChangeGroup = (item1, name1) => {\r\n let oldWindowSerNo = selectedObject.WindowSerNo;\r\n let newWindowSerNo = item1.key;\r\n let routingSerNo = item1.routingSerNo;\r\n handleWindowSelectionChangeGroupCore(oldWindowSerNo, newWindowSerNo, routingSerNo);\r\n funFillFilteredGroupData();\r\n };\r\n const handleWindowRemoveGroup = (d) => {\r\n d.stopPropagation();\r\n let oldWindowSerNo = selectedObject.WindowSerNo;\r\n let newWindowSerNo = 1;\r\n let routingSerNo = d.target.id;//selectedObject.RoutingSerNo;\r\n handleWindowSelectionChangeGroupCore(oldWindowSerNo, newWindowSerNo, routingSerNo);\r\n funFillFilteredGroupData();\r\n };\r\n const handleWindowSelectionChangeGroupCore = (oldWindowSerNo, newWindowSerNo, routingSerNo) => {\r\n // let newWindowSerNo = item1.key;\r\n // let routingSerNo = selectedObject.RoutingSerNo;\r\n if (oldWindowSerNo != newWindowSerNo) {\r\n let tempGroupObj = windowRoutingGroup;\r\n //let tempGroupObj = JSON.parse(JSON.stringify(windowRoutingGroup));\r\n let i = 0;\r\n let IsExit = false;\r\n let indexOfObject = -1;\r\n tempGroupObj.forEach(ele => {\r\n //console.log(ele.WindowSerNo,ele.RoutingSerNo);\r\n let tempObj = windowRoutingGroup.find(item => item.WindowSerNo == newWindowSerNo && item.RoutingSerNo == routingSerNo);\r\n console.log(\"tempObj>>\", tempObj);\r\n if (tempObj == undefined) {\r\n if (ele.WindowSerNo == oldWindowSerNo && ele.RoutingSerNo == routingSerNo) {\r\n tempGroupObj[i].WindowSerNo = newWindowSerNo;\r\n }\r\n }\r\n else if (tempObj.length == 0) {\r\n if (ele.WindowSerNo == oldWindowSerNo && ele.RoutingSerNo == routingSerNo) {\r\n tempGroupObj[i].WindowSerNo = newWindowSerNo;\r\n }\r\n }\r\n else {\r\n indexOfObject = i;\r\n IsExit = true;\r\n }\r\n i += 1;\r\n });\r\n //console.log(\"indexOfObject>>\", IsExit, indexOfObject);\r\n if (IsExit == true && indexOfObject > -1) {\r\n tempGroupObj.splice(indexOfObject, 1);\r\n }\r\n setWindowRoutingGroup(tempGroupObj);\r\n funFillFilteredGroupData();\r\n console.log(\"tempGroupObj>>\", tempGroupObj);\r\n\r\n let tempDetailObj = windowRoutingDetail;\r\n i = 0;\r\n tempDetailObj.forEach(ele => {\r\n //console.log(ele.WindowSerNo,ele.RoutingSerNo);\r\n if (ele.WindowSerNo == oldWindowSerNo && ele.RoutingSerNo == routingSerNo) {\r\n tempDetailObj[i].WindowSerNo = newWindowSerNo;\r\n //console.log(ele);\r\n }\r\n i += 1;\r\n });\r\n //console.log(\"tempDetailObj>>\",tempDetailObj);\r\n setWindowRoutingDetail(tempDetailObj);\r\n }\r\n };\r\n\r\n const handleWindowSelectionAllChangeDetail = (item1, name1) => {\r\n if (item1.key != \"Select Window\") {\r\n let newWindowSerNo = item1.key;\r\n let oldWindowSerNo = selectedObject.WindowSerNo;\r\n let routingSerNo = selectedObject.RoutingSerNo;\r\n let tempDetailObj = windowRoutingDetail.filter(item => item.WindowSerNo == oldWindowSerNo && item.RoutingSerNo == routingSerNo);\r\n if (tempDetailObj != undefined) {\r\n tempDetailObj.forEach(ele => {\r\n //if(ele.isChecked == true){\r\n handleWindowSelectionChangeDetailCore(oldWindowSerNo, newWindowSerNo, ele.TransactionSerNo);\r\n //} \r\n });\r\n //funFillFilteredGroupData();\r\n }\r\n }\r\n };\r\n const handleWindowSelectionChangeDetail = (item1, name1) => {\r\n let oldWindowSerNo = selectedObject.WindowSerNo;\r\n let newWindowSerNo = item1.key;\r\n let transactionSerNo = item1.transactionSerNo;\r\n handleWindowSelectionChangeDetailCore(oldWindowSerNo, newWindowSerNo, transactionSerNo);\r\n funFillFilteredDetailData();\r\n };\r\n const handleWindowRemoveDetail = (d) => {\r\n d.stopPropagation();\r\n let oldWindowSerNo = selectedObject.WindowSerNo;\r\n let newWindowSerNo = 1;\r\n let transactionSerNo = d.target.id;//selectedObject.RoutingSerNo;\r\n handleWindowSelectionChangeDetailCore(oldWindowSerNo, newWindowSerNo, transactionSerNo);\r\n funFillFilteredDetailData();\r\n };\r\n const handleWindowSelectionChangeDetailCore = (oldWindowSerNo, newWindowSerNo, transactionSerNo) => {\r\n // console.log(\"selectedObject>> \",selectedObject);\r\n // console.log(\"newWindowSerNo>> \",newWindowSerNo);\r\n let i = 0;\r\n //Add routing only if it not exist in targeted window.\r\n let tempObj = windowRoutingGroup.find(item => item.WindowSerNo == newWindowSerNo && item.RoutingSerNo == selectedObject.RoutingSerNo);\r\n if (tempObj == undefined || tempObj.length == 0) {\r\n let tempGroupObj = windowRoutingGroup;\r\n tempGroupObj.push({ WindowSerNo: newWindowSerNo, RoutingSerNo: selectedObject.RoutingSerNo, Name: selectedObject.RoutingName });\r\n setWindowRoutingGroup(tempGroupObj);\r\n //console.log(tempGroupObj);\r\n }\r\n\r\n let tempDetailObj = windowRoutingDetail;\r\n //Remove the routing also, when last/all transaction detail removed.\r\n let IsExit = false;\r\n let indexOfObject = -1;\r\n let totalRoutingDetailObj = tempDetailObj.filter(item => item.WindowSerNo == oldWindowSerNo && item.RoutingSerNo == selectedObject.RoutingSerNo);\r\n if (totalRoutingDetailObj != undefined) {\r\n if (totalRoutingDetailObj.length == 1) {\r\n windowRoutingGroup.forEach(ele => {\r\n //console.log(ele.WindowSerNo,ele.RoutingSerNo);\r\n if (ele.WindowSerNo == oldWindowSerNo && ele.RoutingSerNo == selectedObject.RoutingSerNo) {\r\n indexOfObject = i;\r\n IsExit = true;\r\n }\r\n i += 1;\r\n });\r\n }\r\n }\r\n if (IsExit == true && indexOfObject > -1) {\r\n let tempGroupObj = windowRoutingGroup;\r\n tempGroupObj.splice(indexOfObject, 1);\r\n setWindowRoutingGroup(tempGroupObj);\r\n funFillFilteredGroupData();\r\n }\r\n i = 0;\r\n tempDetailObj.forEach(ele => {\r\n //console.log(ele);\r\n if (ele.WindowSerNo == oldWindowSerNo && ele.RoutingSerNo == selectedObject.RoutingSerNo && ele.TransactionSerNo == transactionSerNo) {\r\n tempDetailObj[i].WindowSerNo = newWindowSerNo;\r\n }\r\n i += 1;\r\n });\r\n setWindowRoutingDetail(tempDetailObj);\r\n };\r\n\r\n //*****START Room Routing*****/\r\n const handlebtnAddRoom = (d) => {\r\n d.stopPropagation();\r\n let tempRoom = {\r\n \"RoutedReservationSerNo\": \"\",\r\n \"RoutedRoomName\": \"\",\r\n \"RoomSerNo\": \"\",\r\n \"GuestProfileName\": \"\",\r\n \"BookingNo\": \"\",\r\n \"Mode\": \"Add\",\r\n \"CustomErrorRoutedRoomName\": \"\",\r\n \"CustomErrorRoutedRoomData\": \"\"\r\n };\r\n setRoomRoutingAddEditObject(tempRoom);\r\n setShowRoomRoutingEditModal(!showRoomRoutingEditModal);\r\n //funGetReservationRoomRoutingRoomDetailList();\r\n };\r\n const handlebtnEditRoom = (d) => {\r\n d.stopPropagation();\r\n let tempObj = selectedObject;\r\n tempObj.RoutedReservationSerNo = parseInt(d.target.id);\r\n setSelectedObject(tempObj);\r\n //let tempWindow = windowRoutingAddEditObject;\r\n let tempRoomObj = roomRoutingData.find(x => x.RoutedReservationSerNo == tempObj.RoutedReservationSerNo);\r\n if (tempRoomObj != undefined) {\r\n let tempRoom = {\r\n \"RoutedReservationSerNo\": tempRoomObj.RoutedReservationSerNo,\r\n \"RoutedRoomName\": tempRoomObj.RoutedRoomName,\r\n \"RoomSerNo\": tempRoomObj.RoomSerNo,\r\n \"GuestProfileName\": tempRoomObj.GuestProfileName,\r\n \"BookingNo\": tempRoomObj.BookingNo,\r\n \"Mode\": \"Edit\",\r\n \"CustomErrorRoutedRoomName\": \"\",\r\n \"CustomErrorRoutedRoomData\": \"\"\r\n };\r\n console.log(tempRoomObj);\r\n setRoomRoutingAddEditObject(tempRoom);\r\n setShowRoomRoutingEditModal(!showRoomRoutingEditModal);\r\n }\r\n else {\r\n alert(\"Problem to get selected room detail.!\");\r\n }\r\n\r\n //funGetReservationRoomRoutingRoomDetailList();\r\n };\r\n // const handlebtnSaveRoom = () => {\r\n // if (roomRoutingAddEditObject.RoutedReservationSerNo == undefined || roomRoutingAddEditObject.RoutedReservationSerNo == \"\") {\r\n // alert(\"Select valid Room.\");\r\n // }\r\n // else if (roomRoutingAddEditObject.RoutedRoomName == undefined || roomRoutingAddEditObject.RoutedRoomName == \"\") {\r\n // alert(\"Enter valid Routed Room Name.\");\r\n // }\r\n // else {\r\n // funAddEditReservationRoom();\r\n // }\r\n\r\n // } Changed\r\n const handlebtnDeleteRoom = () => {\r\n let tempRoom = roomRoutingAddEditObject;\r\n tempRoom.RoutedReservationSerNo = parseInt(selectedObject.RoutedReservationSerNo);\r\n tempRoom.Mode = \"Delete\";\r\n //console.log(\"delete tempWindow\",tempWindow);\r\n setRoomRoutingAddEditObject(tempRoom);\r\n funAddEditReservationRoom();\r\n };\r\n\r\n const handleRoomSelectionAllChangeGroup = (item1, name1) => {\r\n if (item1.key != \"Select\") {\r\n let newRoutedReservationSerNo = item1.key;\r\n let oldRoutedReservationSerNo = selectedObject.RoutedReservationSerNo;\r\n let tempGroupObj = roomRoutingGroup.filter(x => x.RoutedReservationSerNo == oldRoutedReservationSerNo);\r\n //let routingSerNo = selectedObject.RoutingSerNo;\r\n if (tempGroupObj != undefined) {\r\n tempGroupObj.forEach(ele => {\r\n //if(ele.isChecked == true){\r\n //console.log(\"ele.RoutingSerNo\", ele.RoutingSerNo);\r\n handleRoomSelectionChangeGroupCore(oldRoutedReservationSerNo, newRoutedReservationSerNo, ele.RoutingSerNo);\r\n //console.log(\"windowRoutingGroup\", windowRoutingGroup);\r\n //}\r\n });\r\n }\r\n }\r\n };\r\n const handleRoomSelectionChangeGroup = (item1, name1) => {\r\n console.log(item1);\r\n let oldRoutedReservationSerNo = selectedObject.RoutedReservationSerNo;\r\n let newRoutedReservationSerNo = item1.key;\r\n let routingSerNo = item1.routingSerNo;\r\n handleRoomSelectionChangeGroupCore(oldRoutedReservationSerNo, newRoutedReservationSerNo, routingSerNo);\r\n funFillFilteredGroupDataRoom(\"\");\r\n };\r\n const handleRoomRemoveGroup = (d) => {\r\n d.stopPropagation();\r\n let oldRoutedReservationSerNo = selectedObject.RoutedReservationSerNo;\r\n let newRoutedReservationSerNo = 1;\r\n let routingSerNo = d.target.id;//selectedObject.RoutingSerNo;\r\n handleRoomSelectionChangeGroupCore(oldRoutedReservationSerNo, newRoutedReservationSerNo, routingSerNo);\r\n funFillFilteredGroupDataRoom(\"\");\r\n };\r\n const handleRoomSelectionChangeGroupCore = (oldRoutedReservationSerNo, newRoutedReservationSerNo, routingSerNo) => {\r\n // let newRoutedReservationSerNo = item1.key;\r\n // let routingSerNo = selectedObject.RoutingSerNo;\r\n if (oldRoutedReservationSerNo != newRoutedReservationSerNo) {\r\n //let tempGroupObj = windowRoutingGroup;\r\n let tempGroupObj = JSON.parse(JSON.stringify(roomRoutingGroup));\r\n let i = 0;\r\n let IsExit = false;\r\n let indexOfObject = -1;\r\n tempGroupObj.forEach(ele => {\r\n //console.log(ele.WindowSerNo,ele.RoutingSerNo);\r\n let tempObj = roomRoutingGroup.find(x => x.RoutedReservationSerNo == newRoutedReservationSerNo && x.RoutingSerNo == routingSerNo);\r\n if (tempObj == undefined) {\r\n if (ele.RoutedReservationSerNo == oldRoutedReservationSerNo && ele.RoutingSerNo == routingSerNo) {\r\n tempGroupObj[i].RoutedReservationSerNo = newRoutedReservationSerNo;\r\n }\r\n }\r\n else if (tempObj.length == 0) {\r\n if (ele.RoutedReservationSerNo == oldRoutedReservationSerNo && ele.RoutingSerNo == routingSerNo) {\r\n tempGroupObj[i].WindowSerNo = newRoutedReservationSerNo;\r\n }\r\n }\r\n else {\r\n indexOfObject = i;\r\n IsExit = true;\r\n }\r\n i += 1;\r\n });\r\n console.log(\"indexOfObject>>\", IsExit, indexOfObject);\r\n if (IsExit == true && indexOfObject > -1) {\r\n tempGroupObj.splice(indexOfObject, 1);\r\n }\r\n setRoomRoutingGroup(tempGroupObj);\r\n funFillFilteredGroupDataRoom(\"\");\r\n console.log(tempGroupObj);\r\n\r\n let tempDetailObj = roomRoutingDetail;\r\n i = 0;\r\n tempDetailObj.forEach(ele => {\r\n //console.log(ele.WindowSerNo,ele.RoutingSerNo);\r\n if (ele.RoutedReservationSerNo == oldRoutedReservationSerNo && ele.RoutingSerNo == routingSerNo) {\r\n tempDetailObj[i].RoutedReservationSerNo = newRoutedReservationSerNo;\r\n //console.log(ele);\r\n }\r\n i += 1;\r\n });\r\n setRoomRoutingDetail(tempDetailObj);\r\n }\r\n };\r\n\r\n const handleRoomSelectionAllChangeDetail = (item1, name1) => {\r\n if (item1.key != \"Select\") {\r\n let newRoutedReservationSerNo = item1.key;\r\n let oldRoutedReservationSerNo = selectedObject.RoutedReservationSerNo;\r\n let routingSerNo = selectedObject.RoutingSerNo;\r\n let tempDetailObj = roomRoutingDetail.filter(x => x.RoutedReservationSerNo == oldRoutedReservationSerNo && x.RoutingSerNo == routingSerNo);\r\n if (tempDetailObj != undefined) {\r\n tempDetailObj.forEach(ele => {\r\n //if(ele.isChecked == true){\r\n handleRoomSelectionChangeDetailCore(oldRoutedReservationSerNo, newRoutedReservationSerNo, ele.TransactionSerNo);\r\n //} \r\n });\r\n }\r\n }\r\n };\r\n const handleRoomSelectionChangeDetail = (item1, name1) => {\r\n let oldRoutedReservationSerNo = selectedObject.RoutedReservationSerNo;\r\n let newRoutedReservationSerNo = item1.key;\r\n let transactionSerNo = item1.transactionSerNo;\r\n handleRoomSelectionChangeDetailCore(oldRoutedReservationSerNo, newRoutedReservationSerNo, transactionSerNo);\r\n funFillFilteredDetailDataRoom(\"\");\r\n };\r\n const handleRoomRemoveDetail = (d) => {\r\n d.stopPropagation();\r\n let oldRoutedReservationSerNo = selectedObject.RoutedReservationSerNo;\r\n let newRoutedReservationSerNo = 1;\r\n let transactionSerNo = d.target.id;//selectedObject.RoutingSerNo;\r\n handleRoomSelectionChangeDetailCore(oldRoutedReservationSerNo, newRoutedReservationSerNo, transactionSerNo);\r\n funFillFilteredDetailDataRoom(\"\");\r\n };\r\n const handleRoomSelectionChangeDetailCore = (oldRoutedReservationSerNo, newRoutedReservationSerNo, transactionSerNo) => {\r\n // console.log(\"selectedObject>> \",selectedObject);\r\n // console.log(\"newRoutedReservationSerNo>> \",newRoutedReservationSerNo);\r\n let i = 0;\r\n //Add routing only if it not exist in targeted window.\r\n let tempObj = roomRoutingGroup.find(x => x.RoutedReservationSerNo == newRoutedReservationSerNo && x.RoutingSerNo == selectedObject.RoutingSerNo);\r\n if (tempObj == undefined || tempObj.length == 0) {\r\n let tempGroupObj = roomRoutingGroup;\r\n tempGroupObj.push({ RoutedReservationSerNo: newRoutedReservationSerNo, RoutingSerNo: selectedObject.RoutingSerNo, Name: selectedObject.RoutingName });\r\n setRoomRoutingGroup(tempGroupObj);\r\n //console.log(tempGroupObj);\r\n }\r\n\r\n let tempDetailObj = roomRoutingDetail;\r\n //Remove the routing also, when last/all transaction detail removed.\r\n let IsExit = false;\r\n let indexOfObject = -1;\r\n let totalRoutingDetailObj = tempDetailObj.filter(x => x.RoutedReservationSerNo == oldRoutedReservationSerNo && x.RoutingSerNo == selectedObject.RoutingSerNo);\r\n if (totalRoutingDetailObj != undefined) {\r\n if (totalRoutingDetailObj.length == 1) {\r\n roomRoutingGroup.forEach(ele => {\r\n //console.log(ele.WindowSerNo,ele.RoutingSerNo);\r\n if (ele.RoutedReservationSerNo == oldRoutedReservationSerNo && ele.RoutingSerNo == selectedObject.RoutingSerNo) {\r\n indexOfObject = i;\r\n IsExit = true;\r\n }\r\n i += 1;\r\n });\r\n }\r\n }\r\n if (IsExit == true && indexOfObject > -1) {\r\n let tempGroupObj = roomRoutingGroup;\r\n tempGroupObj.splice(indexOfObject, 1);\r\n setRoomRoutingGroup(tempGroupObj);\r\n funFillFilteredGroupDataRoom(\"\");\r\n }\r\n i = 0;\r\n tempDetailObj.forEach(ele => {\r\n //console.log(ele);\r\n if (ele.RoutedReservationSerNo == oldRoutedReservationSerNo && ele.RoutingSerNo == selectedObject.RoutingSerNo && ele.TransactionSerNo == transactionSerNo) {\r\n tempDetailObj[i].RoutedReservationSerNo = newRoutedReservationSerNo;\r\n }\r\n i += 1;\r\n });\r\n setRoomRoutingDetail(tempDetailObj);\r\n };\r\n //*****END Room Routing*****/\r\n //#endregion\r\n\r\n\r\n const RoomRoutingTooltip = () => {\r\n if (roomRoutingData != undefined && roomRoutingData.length > 1) {\r\n popupMode.current = \"edit\";\r\n }\r\n else {\r\n popupMode.current = \"insert\";\r\n }\r\n return (\r\n
\r\n
\r\n {roomRoutingData && roomRoutingData.map(d =>\r\n d.IsDeleted == false ?\r\n <>\r\n
\r\n
{d.RoomSerNo == \"\" ? \"\" : d.RoomSerNo + \" - \"}{d.GuestProfileName}
\r\n
Conf. No. {d.BookingNo}
\r\n
{d.RoutedRoomName}
\r\n
\r\n : <>\r\n )}\r\n
\r\n {\r\n showEditDiv ?\r\n
\r\n setWindowRoutingPopup(!showWindowRoutingPopup)}\r\n >\r\n Edit\r\n \r\n console.log(item, name)}\r\n >\r\n
\r\n :\r\n <>\r\n }\r\n
\r\n );\r\n };\r\n\r\n const WindowRoutingTooltip = () => {\r\n if (windowRoutingData != undefined && windowRoutingData.length > 1) {\r\n popupMode.current = \"edit\";\r\n }\r\n else {\r\n popupMode.current = \"insert\";\r\n }\r\n return (\r\n
\r\n
\r\n {windowRoutingData && windowRoutingData.map(d =>\r\n d.IsDeleted == false ?\r\n <>\r\n
\r\n
\r\n {d.WindowSerNo + ' - '}{d.WindowName} {d.PaymentTransactionName}\r\n
\r\n
Company on Folio: {d.CompanyOnFolioName}
\r\n
Payee : {d.GuestProfileName}
\r\n
\r\n : <>\r\n )}\r\n
\r\n {\r\n showEditDiv ?\r\n
\r\n setWindowRoutingPopup(!showWindowRoutingPopup)}\r\n >\r\n Edit\r\n \r\n console.log(item, name)}\r\n >\r\n
\r\n :\r\n <>\r\n }\r\n
\r\n );\r\n };\r\n return (\r\n <>\r\n
\r\n {t('INN_RoutingInstruction')}\r\n \r\n \r\n\r\n \r\n W ({windowRoutingData == undefined || windowRoutingData.length == 0 ? \"0\" : windowRoutingData.filter(item => item.IsDeleted == false).length})\r\n \r\n \r\n  , \r\n \r\n {\r\n (props.para.BlockSerNo == undefined && (reservationInfoData.IsSharer == undefined || reservationInfoData.IsSharer == false)) ?\r\n \r\n R ({roomRoutingData == undefined || roomRoutingData.length == 0 ? \"0\" : roomRoutingData.filter(item => item.IsDeleted == false).length})\r\n \r\n :\r\n <>\r\n }\r\n \r\n \r\n
\r\n {/* Main Routing View Popup */}\r\n {showWindowRoutingPopup ? (\r\n {\r\n setWindowRoutingPopup(!showWindowRoutingPopup);\r\n if (props.onUpdate != undefined) {\r\n setTimeout(() => {\r\n props.onUpdate(true);\r\n }, 200);\r\n } // for Departure-List Window List Update\r\n else {\r\n console.log(\"props.onUpdate is undefined\");\r\n }\r\n }}\r\n >\r\n \r\n
\r\n
\r\n
\r\n

Window Routing

\r\n
\r\n
\r\n \r\n Reset All\r\n \r\n \r\n Save\r\n \r\n
\r\n
\r\n
\r\n
\r\n {/* ROW1 - Confirmation no and Guestname row. */}\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    Confirmation No.
    \r\n
    {reservationInfoData.BookingNo}
    \r\n
  • \r\n
  • \r\n
    Guest Name
    \r\n
    {reservationInfoData.GuestName}
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n {/* ROW2 - Routing Radio btn - Date Selection - Group Individual Radio btn. */}\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    \r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n\r\n {\r\n //console.log(item,\"name\", name);\r\n // setSelectMulti(item); \r\n if (item.length > 0) {\r\n if (item[item.length - 1] == \"Entire Stay\") {\r\n setSelectMulti([\"Entire Stay\"]);\r\n setNoOfSelectedStayDays(selectedStay.length - 1);\r\n }\r\n else {\r\n\r\n let tmpSelectedStay = item.find(item => item == \"Entire Stay\");\r\n //console.log(\"tmpSelectedStay\", tmpSelectedStay);\r\n if (tmpSelectedStay != undefined && tmpSelectedStay.length > 0) {\r\n let indexOfEntireStay = 0;\r\n indexOfEntireStay = item.indexOf(\"Entire Stay\");\r\n item.splice(indexOfEntireStay, 1);\r\n //console.log(\"item\", item);\r\n let tempItem = JSON.parse(JSON.stringify(item));\r\n setSelectMulti(tempItem);\r\n setNoOfSelectedStayDays(item.length);\r\n }\r\n else {\r\n setNoOfSelectedStayDays(item.length);\r\n }\r\n }\r\n }\r\n else {\r\n setSelectMulti([\"Entire Stay\"]);\r\n setNoOfSelectedStayDays(selectedStay.length - 1);\r\n }\r\n }}\r\n label=\"Select *\"\r\n customError={\r\n \"Please select atleast one option or Multiple option\"\r\n }\r\n select={selectMulti}\r\n disabled={false}\r\n >\r\n\r\n
    \r\n \r\n {noOfSelectedStayDays ? noOfSelectedStayDays : 0} Days\r\n \r\n
  • \r\n
  • \r\n
    \r\n {\r\n //console.log(\"selection changed called : \" + value);\r\n }}\r\n >\r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n {wrRouting == \"Window Routing\" ? (\r\n //#region --Commented Design \r\n /* Old HTML, Do not remove untill confirmation\r\n
\r\n
\r\n
\r\n
\r\n
\r\n console.log(item, name)}\r\n >\r\n
\r\n
\r\n
\r\n
\r\n console.log(v)}\r\n >\r\n \r\n
\r\n
\r\n \r\n +\r\n \r\n
\r\n
\r\n
\r\n
\r\n Select All\r\n console.log(v)}\r\n >\r\n
\r\n
    \r\n
  • \r\n Parent Item\r\n
      \r\n
    • \r\n Item 1\r\n
    • \r\n
    • \r\n Item 2\r\n
    • \r\n
    • \r\n Item 3\r\n
    • \r\n
    \r\n
  • \r\n
  • \r\n Parent Item\r\n
      \r\n
    • \r\n Item 1\r\n
    • \r\n
    • \r\n Item 2\r\n
    • \r\n
    • \r\n Item 3\r\n
    • \r\n
    \r\n
  • \r\n
\r\n \r\n
\r\n \r\n \r\n Move to W2-Food Beverage\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n console.log(item, name)}\r\n >\r\n
\r\n
\r\n
\r\n
\r\n console.log(v)}\r\n >\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Select All\r\n console.log(v)}\r\n >\r\n
\r\n
    \r\n
  • \r\n Parent Item\r\n
      \r\n
    • \r\n Item 1\r\n
    • \r\n
    • \r\n Item 2\r\n
    • \r\n
    • \r\n Item 3\r\n
    • \r\n
    \r\n
  • \r\n
  • \r\n Parent Item\r\n
      \r\n
    • \r\n Item 1\r\n
    • \r\n
    • \r\n Item 2\r\n
    • \r\n
    • \r\n Item 3\r\n
    • \r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n console.log(item, name)}\r\n >\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n console.log(v)}\r\n >\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Select All\r\n console.log(v)}\r\n >\r\n
\r\n
    \r\n
  • \r\n Parent Item\r\n
      \r\n
    • \r\n Item 1\r\n
    • \r\n
    • \r\n Item 2\r\n
    • \r\n
    • \r\n Item 3\r\n
    • \r\n
    \r\n
  • \r\n
  • \r\n Parent Item\r\n
      \r\n
    • \r\n Item 1\r\n
    • \r\n
    • \r\n Item 2\r\n
    • \r\n
    • \r\n Item 3\r\n
    • \r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
*/\r\n //#endregion\r\n
{ console.log(\"div click\"); }}>\r\n
\r\n
\r\n
\r\n
    \r\n {windowRoutingData && windowRoutingData.map(d => {\r\n return
  • {\r\n d.stopPropagation();\r\n let tempObj = selectedObject;\r\n tempObj.WindowSerNo = parseInt(d.target.id);\r\n setSelectedObject(tempObj);\r\n funFillFilteredGroupData();\r\n setGroupSelectAll(false);\r\n setDetailSelectAll(false);\r\n }}>\r\n
    {d.WindowSerNo} - {d.WindowName}
    \r\n
    {d.PaymentTransactionName}
    {d.GuestProfileName}
    {d.CompanyOnFolioName} {d.IsDeleted == true ? \"Deleted\" : null}
    \r\n {d.WindowSerNo == \"1\" ?\r\n {\r\n d.stopPropagation();\r\n handlebtnAddWindow();\r\n\r\n }}>+\r\n :\r\n <>\r\n {\r\n //setShowWindowRoutingEditModal(!showWindowRoutingEditModal);\r\n d.stopPropagation();\r\n let tempObj = selectedObject;\r\n tempObj.WindowSerNo = parseInt(d.target.id);\r\n setSelectedObject(tempObj);\r\n handlebtnEditWindow();\r\n }}\r\n disabled={d.IsDeleted}>\r\n {\r\n //setShowWindowRoutingEditModal(!showWindowRoutingEditModal);\r\n d.stopPropagation();\r\n let tempObj = selectedObject;\r\n tempObj.WindowSerNo = parseInt(d.target.id);\r\n setSelectedObject(tempObj);\r\n handlebtnDeleteWindow();\r\n }}\r\n disabled={d.IsDeleted}>\r\n \r\n }\r\n
  • ;\r\n }\r\n )}\r\n
\r\n
\r\n
\r\n {/* Group Routing Grid Start */}\r\n
\r\n
\r\n
{selectedObject.WindowSerNo} - {selectedObject.WindowName}
\r\n
\r\n
\r\n {\r\n //console.log(\"checkbox is \" + isChecked);\r\n handlechkGroupSelectAll(isChecked);\r\n setGroupSelectAll(isChecked);\r\n }} >\r\n Select All\r\n \r\n
\r\n
\r\n
\r\n {groupSelectAll == true ?\r\n <>\r\n \r\n \r\n : null\r\n }\r\n
\r\n
\r\n
\r\n\r\n\r\n
    \r\n {windowRoutingGroupFiltered && windowRoutingGroupFiltered.map(d =>\r\n
  • {\r\n d.stopPropagation();\r\n //console.log(\"li click \",d,d.target.attributes[\"name\"].value);\r\n if (d.target.attributes[\"name\"] && (d.target.attributes[\"name\"].value == \"liRoute\" ||\r\n d.target.attributes[\"name\"].value == \"div1Route\" || d.target.attributes[\"name\"].value == \"label1Route\" ||\r\n d.target.attributes[\"name\"].value == \"p1Route\")) {\r\n //console.log(\"called\");\r\n let tempObj = selectedObject;\r\n tempObj.RoutingSerNo = parseInt(d.target.id);\r\n setSelectedObject(tempObj);\r\n funFillFilteredDetailData();\r\n }\r\n }}>\r\n\r\n {groupSelectAll == true ?\r\n <>\r\n {d.Name}\r\n :\r\n <>\r\n
    \r\n \r\n
    \r\n
    \r\n {\r\n d.stopPropagation();\r\n }}\r\n >\r\n { \r\n // d.stopPropagation();\r\n // console.log(\"onClick\",d); \r\n // if (selectedObject.WindowSerNo != 1){\r\n // handleWindowSelectionChangeGroup(1,parseInt(d.target.id)); //if any routing is removed, it will move to window 1.\r\n // }\r\n // }}\r\n >\r\n
    \r\n }\r\n
  • \r\n )}\r\n
\r\n
\r\n
\r\n {/* Detail Grid Start */}\r\n
\r\n
\r\n
{selectedObject.RoutingName}
\r\n
\r\n
\r\n {\r\n //console.log(\"checkbox is \" + isChecked);\r\n handlechkDetailSelectAll(isChecked);\r\n setDetailSelectAll(isChecked);\r\n }} >\r\n Select All\r\n \r\n
\r\n
\r\n
\r\n {detailSelectAll == true ?\r\n <>\r\n \r\n : null}\r\n
\r\n
\r\n
\r\n\r\n
    {/* window-feature-list mrgn-tp6 */}\r\n {windowRoutingDetailFiltered && windowRoutingDetailFiltered.map(d =>\r\n
  • \r\n {detailSelectAll == true ?\r\n <>\r\n {d.Name}\r\n :\r\n <>\r\n
    \r\n \r\n
    \r\n
    \r\n {\r\n d.stopPropagation();\r\n }}\r\n >\r\n \r\n
    \r\n }\r\n
  • \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n ) : wrRouting == \"Room Routing\" ? (\r\n\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n {/*
  • \r\n
    Routing Codes
    \r\n
    \r\n +\r\n
  • */}\r\n {roomRoutingData && roomRoutingData.map(d =>\r\n (d.RoutedReservationSerNo == d.ReservationSerNo ?\r\n <>\r\n
  • \r\n
    Routing Codes
    \r\n
    \r\n +\r\n
  • \r\n \r\n : <>\r\n )\r\n )}\r\n {roomRoutingData && roomRoutingData.map(d =>\r\n (d.RoutedReservationSerNo == d.ReservationSerNo ?\r\n <>\r\n : <>\r\n
  • \r\n
    {d.RoomSerNo == \"\" ? \"\" : d.RoomSerNo + \" - \"}{d.GuestProfileName}{d.BookingNo}
    \r\n
    {d.RoutedRoomName} {d.IsDeleted == true ? \"Deleted\" : null}
    Created on: {d.EntryDateTime} By: {d.EntryUserID}
    \r\n \r\n \r\n
  • \r\n \r\n )\r\n )}\r\n
\r\n
\r\n
\r\n {/* Group Routing Grid Start - Room */}\r\n
\r\n
\r\n
{selectedObject.RoutedRoomName}
\r\n
\r\n
\r\n {\r\n //console.log(\"checkbox is \" + isChecked);\r\n handlechkGroupSelectAll(isChecked);\r\n setGroupSelectAll(isChecked);\r\n }} >\r\n Select All\r\n \r\n
\r\n
\r\n
\r\n {groupSelectAll == true ?\r\n <>\r\n \r\n \r\n : null\r\n }\r\n
\r\n
\r\n
\r\n\r\n\r\n
    \r\n {roomRoutingGroupFiltered && roomRoutingGroupFiltered.map(d =>\r\n
  • \r\n {groupSelectAll == true ?\r\n <>\r\n {\r\n //console.log(\"checkbox is \" + isChecked);\r\n }}\r\n >{d.Name}\r\n :\r\n <>\r\n
    \r\n \r\n
    \r\n
    \r\n {\r\n d.stopPropagation();\r\n }}\r\n >\r\n \r\n
    \r\n }\r\n
  • \r\n )}\r\n
\r\n
\r\n
\r\n {/* Detail Grid Start - Room */}\r\n
\r\n
\r\n
{selectedObject.RoutingName}
\r\n
\r\n
\r\n {\r\n //console.log(\"checkbox is \" + isChecked);\r\n handlechkDetailSelectAll(isChecked);\r\n setDetailSelectAll(isChecked);\r\n }} >\r\n Select All\r\n \r\n
\r\n
\r\n
\r\n {detailSelectAll == true ?\r\n <>\r\n \r\n : null}\r\n
\r\n
\r\n
\r\n\r\n
    {/* window-feature-list mrgn-tp6 */}\r\n {roomRoutingDetailFiltered && roomRoutingDetailFiltered.map(d =>\r\n
  • \r\n {detailSelectAll == true ?\r\n <>\r\n { //console.log(\"checkbox is \" + isChecked); \r\n }}\r\n >{d.Name}\r\n :\r\n <>\r\n
    \r\n \r\n
    \r\n
    \r\n {\r\n d.stopPropagation();\r\n }}\r\n >\r\n \r\n
    \r\n }\r\n
  • \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n //#region \r\n\r\n /*
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Room 204\r\n Mr. Rohit Sharma\r\n
\r\n
\r\n \r\n +\r\n \r\n
\r\n
\r\n
\r\n
\r\n Select All\r\n console.log(v)}\r\n >\r\n
\r\n
    \r\n
  • \r\n Parent Item\r\n
      \r\n
    • \r\n Item 1\r\n
    • \r\n
    • \r\n Item 2\r\n
    • \r\n
    • \r\n Item 3\r\n
    • \r\n
    \r\n
  • \r\n
  • \r\n Parent Item\r\n
      \r\n
    • \r\n Item 1\r\n
    • \r\n
    • \r\n Item 2\r\n
    • \r\n
    • \r\n Item 3\r\n
    • \r\n
    \r\n
  • \r\n
\r\n \r\n
\r\n \r\n \r\n Move to W2-Food Beverage\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Room 206\r\n \r\n Mr. David Thompson\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Select All\r\n console.log(v)}\r\n >\r\n
\r\n
    \r\n
  • \r\n Parent Item\r\n
      \r\n
    • \r\n Item 1\r\n
    • \r\n
    • \r\n Item 2\r\n
    • \r\n
    • \r\n Item 3\r\n
    • \r\n
    \r\n
  • \r\n
  • \r\n Parent Item\r\n
      \r\n
    • \r\n Item 1\r\n
    • \r\n
    • \r\n Item 2\r\n
    • \r\n
    • \r\n Item 3\r\n
    • \r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Room 207\r\n Mr. Hemang Shah\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Select All\r\n console.log(v)}\r\n >\r\n
\r\n
    \r\n
  • \r\n Parent Item\r\n
      \r\n
    • \r\n Item 1\r\n
    • \r\n
    • \r\n Item 2\r\n
    • \r\n
    • \r\n Item 3\r\n
    • \r\n
    \r\n
  • \r\n
  • \r\n Parent Item\r\n
      \r\n
    • \r\n Item 1\r\n
    • \r\n
    • \r\n Item 2\r\n
    • \r\n
    • \r\n Item 3\r\n
    • \r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
*/\r\n //#endregion\r\n ) : (\r\n <>\r\n )}\r\n
\r\n \r\n ) : null}\r\n\r\n {/* Room Routing >> Add/Edit Room window */}\r\n {showRoomRoutingEditModal ? (\r\n {\r\n setShowRoomRoutingEditModal(false);\r\n }}\r\n OnSelect={(v) => {\r\n console.log(\"Object from Popup\", v);\r\n setRoomRoutingAddEditObject(v);\r\n funGetReservationRoomRouting();\r\n }}\r\n >\r\n ) : null}\r\n\r\n {/* Room Routing >> Add/Edit Room window */}\r\n {/* {showRoomRoutingEditModal ? (\r\n {\r\n // //console.log(\"save clicked\");\r\n // setShowRoomRoutingEditModal(false);\r\n // }}\r\n Onclose={() => setShowRoomRoutingEditModal(false)}\r\n >\r\n
\r\n
\r\n
\r\n

{roomRoutingAddEditObject.Mode}

\r\n
\r\n
\r\n \r\n Save\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n Routed Room Name\r\n \r\n\r\n
{\r\n setShowWindowRoutingAddModal(!showWindowRoutingAddModal);\r\n funGetReservationRoomRoutingRoomDetailList();\r\n }}>\r\n {\r\n //console.log(v);\r\n }}\r\n >\r\n Select Room / Reservation\r\n \r\n {\r\n setShowWindowRoutingAddModal(!showWindowRoutingAddModal);\r\n funGetReservationRoomRoutingRoomDetailList();\r\n }}>\r\n \r\n \r\n
\r\n
    \r\n
  • \r\n {roomRoutingAddEditObject.RoomSerNo == \"\" ? \"\" : roomRoutingAddEditObject.RoomSerNo + \" - \"}{roomRoutingAddEditObject.GuestProfileName}\r\n
    \r\n Conf.No. {roomRoutingAddEditObject.BookingNo}\r\n \r\n
    \r\n
  • \r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n \r\n ) : null} */}\r\n\r\n {/* Window Routing >> Add/Edit window */}\r\n {/* {showWindowRoutingEditModal ? (\r\n {\r\n //console.log(\"save clicked\");\r\n setShowWindowRoutingEditModal(false);\r\n }}\r\n Onclose={() => setShowWindowRoutingEditModal(false)}\r\n >\r\n
\r\n
\r\n
\r\n

{windowRoutingAddEditObject.Mode}

\r\n
\r\n
\r\n {\r\n handlebtnSaveWindow();\r\n }}\r\n >Save\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n //console.log(v);\r\n let tempGuest = windowRoutingAddEditObject;\r\n tempGuest.WindowName = v;\r\n setWindowRoutingAddEditObject(tempGuest);\r\n if (v.trim() === \"\") {\r\n setWindowRoutingAddEditObject(prev => ({ ...prev, CustomErrorWindowName: \"Enter Valid Window name.!\" }));\r\n }\r\n else {\r\n setWindowRoutingAddEditObject(prev => ({ ...prev, CustomErrorWindowName: \"\" }));\r\n }\r\n }}\r\n type=\"text\"\r\n required={false}\r\n //customError={\"Enter Only 3 Char!!\"}\r\n >\r\n Window Name\r\n \r\n {\r\n //console.log(v)\r\n }}\r\n type=\"text\"\r\n required={false}\r\n disabled={true}\r\n //customError={\"Enter Only 3 Char!!\"}\r\n >\r\n Window\r\n \r\n\r\n
\r\n {\r\n //console.log(item, name);\r\n let tempGuest = windowRoutingAddEditObject;\r\n tempGuest.PaymentTransactionSerNo = item.key;\r\n tempGuest.PaymentTransactionName = item.value;\r\n setWindowRoutingAddEditObject(tempGuest);\r\n }}\r\n >\r\n
\r\n\r\n\r\n
\r\n {\r\n //console.log(item, name);\r\n let tempGuest = windowRoutingAddEditObject;\r\n tempGuest.GuestProfileSerNo = item.key;\r\n tempGuest.GuestProfileName = item.value;\r\n setWindowRoutingAddEditObject(tempGuest);\r\n }}\r\n >\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n ) : null} */}\r\n\r\n {/* Window Routing >> Add/Edit window*/}\r\n {showWindowRoutingEditModal ? (\r\n {\r\n setShowWindowRoutingEditModal(!showWindowRoutingEditModal);\r\n }}\r\n OnSelect={(v) => {\r\n console.log(\"Object from Popup\", v);\r\n setWindowRoutingAddEditObject(v);\r\n funGetReservationWindowRouting();\r\n }}\r\n >\r\n ) : null}\r\n\r\n \r\n );\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnPrimaryButton,\r\n InnModalPopup,\r\n InnSingleSelectDropdown,\r\n InnTooltip,\r\n InnCheckbox,\r\n InnTextbox,\r\n InnTextarea,\r\n InnRadioButton,\r\n InnActionButton,\r\n InnSingleDateSelection,\r\n InnTableGrid,\r\n InnButtonTypeWithDropdown,\r\n InnTimeSelection,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport {\r\n GetDepositRuleMaster, GetReservationInfoDepositRequestList, GetReservationInfoData,\r\n GetReservationInfoDepositRuleDetail, AddEditReservationDepositRequest, DeleteReservationDepositRequest\r\n} from \"../../../../services/reservationService\";\r\nimport { nothing } from \"@reduxjs/toolkit/node_modules/immer\";\r\nimport Moment from \"moment\";\r\nimport { element } from \"prop-types\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useAlert } from \"../../../../utils/hooks/useAlert\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { ManageRights } from \"../../../../services/generalService\";\r\n\r\nexport function IndiDepositeRule(props) {\r\n const { t } = useTranslation();\r\n const { confirm } = useConfirm();\r\n const currUser = useSelector(currentUser);\r\n const { innkeyAlert } = useAlert();\r\n const [showDepositRulePopup, setDepositRulePopup] = useState(false);\r\n const [showDepositCustomRule, setDepositCustomRule] = useState(false);\r\n const [showDepositRuleDropdown, setDepositRuleDropdown] = useState(true);\r\n const [showAlert, setShowAlert] = useState(false);\r\n const [gridSelectedItem, setGridSelectedItem] = useState([]);\r\n const [rbDepositValue, setRBDepositValue] = useState(\"Before Arrival\");\r\n const [cmbDepositRuleMaster, setCmbDepositRuleMaster] = useState([]);\r\n const [depositRuleMasterList, setDepositRuleMasterList] = useState([]);\r\n const [depositRuleDetail, setDepositRuleDetail] = useState([]);\r\n const [depositRequestList, setDepositRequestList] = useState([]);\r\n const [gridDepositRuleDetail, setGridDepositRuleDetail] = useState([]);\r\n const [selectedDepositRuleSerNo, setSelectedDepositRuleSerNo] = useState(0);\r\n const [depositRuleDescription, setDepositRuleDescription] = useState(\"\");\r\n const [depositRuleMode, setDepositRuleMode] = useState(\"View\");\r\n const [divDepositRuleEnable, setDivDepositRuleEnable] = useState(\"none\");\r\n const [showDaysBeforeArrivalTextBox, setShowDaysBeforeArrivalTextBox] = useState(\"Before Arrival\");\r\n const [isCustomeRuleChecked, setIsCustomeRuleChecked] = useState(false);\r\n const [isDisableCustomeRuleName, setDisableCustomeRuleName] = useState(false);\r\n const [ReservationData, setReservationData] = useState([]);\r\n const [showEditDiv, setShowEditDiv] = useState(true);//use to show Edit button\r\n const [userRightsData, setUserRightsData] = useState([]);\r\n const [depositRequestObj, setDepositRequestObj] = useState([\r\n {\r\n \"ClientSerNo\": parseInt(props.para.ClientSerNo),\r\n \"PropertySerNo\": parseInt(props.para.PropertySerNo),\r\n \"ReservationSerNo\": parseInt(props.para.ReservationSerNo),\r\n \"DepositRequestSerNo\": null,\r\n \"DepositRuleSerNo\": null,\r\n \"Name\": \"\",\r\n \"LongDescription\": \"\",\r\n \"ResDepositRequestDetail\": [],\r\n }\r\n ]);\r\n const [customDepositRequestObj, setCustomDepositRequestObj] = useState({\r\n \"Name\": \"\",\r\n \"LongDescription\": \"\",\r\n \"DepositAmount\": 0,\r\n \"DaysBeforeArrival\": 0,\r\n \"DaysAfterBooking\": 0,\r\n \"AfterBookingTime\": \"1990-01-01T00:00:00\",\r\n \"OnArrival\": false,\r\n \"DepositRequestSerNo\": 0,\r\n \"DepositRequestSubSerNo\": 0,\r\n \"DepositTermType\": \"\",\r\n \"DepositTermTypeValue\": \"\",\r\n \"DepositRuleSerNo\": 0\r\n\r\n });\r\n const [customDepositRequestValidationObj, setCustomDepositRequestValidationObj] = useState({\r\n \"Name\": \"\",\r\n \"LongDescription\": \"\",\r\n \"DepositAmount\": \"\",\r\n \"DaysBeforeArrival\": \"\",\r\n \"DaysAfterBooking\": \"\",\r\n \"AfterBookingTime\": \"\"\r\n });\r\n const optBtnResDeposit = [\r\n { key: \"Edit\", value: \"Edit\" },\r\n { key: \"Delete\", value: \"Delete\" },\r\n ];\r\n const columHeaderDeposit = [\r\n { key: \"Deposit Rule\", value: \"desc\", type: \"txt\", sorting: \"N\" },\r\n { key: \"No. of Days After Booking Date\", value: \"daysafter\", type: \"txt\", sorting: \"N\", align: \"center\" },\r\n { key: \"No. of Days Before Arrival\", value: \"daysbefore\", type: \"txt\", sorting: \"N\", align: \"center\" },\r\n { key: \"Time\", value: \"time\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Amount\", value: \"amount\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\", align: \"center\" },\r\n ];\r\n\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n const rbDepositRule = [\r\n { key: \"After Booking Date\", value: \"After Booking Date\" },\r\n { key: \"Before Arrival\", value: \"Before Arrival\" },\r\n ];\r\n\r\n useEffect(() => {\r\n if (selectedDepositRuleSerNo != 0) {\r\n let depositRuleDescription = depositRuleMasterList.filter(obj => (obj.DepositRuleSerNo == selectedDepositRuleSerNo))[0].LongDescription;\r\n setDepositRuleDescription(depositRuleDescription);\r\n }\r\n else {\r\n setDepositRuleDescription(\"\");\r\n }\r\n }, [selectedDepositRuleSerNo]);\r\n\r\n useEffect(() => {\r\n if (isCustomeRuleChecked == true) {\r\n setDepositCustomRule(true);\r\n setDepositRuleDropdown(false);\r\n }\r\n else {\r\n setDepositCustomRule(false);\r\n setDepositRuleDropdown(true);\r\n }\r\n }, [isCustomeRuleChecked]);\r\n\r\n useEffect(() => {\r\n if (props.para != undefined) {\r\n if (props.para.IsShowTooltipActionButton == \"hide\") {\r\n setShowEditDiv(false);\r\n }\r\n else {\r\n setShowEditDiv(true);\r\n }\r\n }\r\n getDepositRuleList();\r\n fillUserRights();\r\n GetReservationInfoData(parseInt(props.para.ClientSerNo), parseInt(props.para.PropertySerNo), props.para.ReservationSerNo).then(d => {\r\n setReservationData(d.data);\r\n });\r\n\r\n }, [props.para.ReservationSerNo]);\r\n\r\n useEffect(() => {\r\n fillUserRights();\r\n }, []);\r\n\r\n\r\n const handleEditOnClick = () => {\r\n GetDepositRuleMaster(props.para.ClientSerNo, props.para.PropertySerNo).then(d => {\r\n setDepositRuleMasterList(d.data);\r\n let depositRuleMasterList = [];\r\n depositRuleMasterList.push({ key: 0, value: \"Select\" });\r\n d.data.map(element => {\r\n depositRuleMasterList.push({ key: element.DepositRuleSerNo, value: element.Name });\r\n });\r\n setCmbDepositRuleMaster(depositRuleMasterList);\r\n }).catch(error => {\r\n setDepositRuleMasterList([]);\r\n setCmbDepositRuleMaster([]);\r\n });\r\n setDepositRulePopup(!showDepositRulePopup);\r\n\r\n };\r\n const getDepositRuleDetail = (ruleSerNO) => {\r\n GetReservationInfoDepositRuleDetail(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo, ruleSerNO).then(d => {\r\n setDepositRuleDetail(d.data);\r\n let depositRuleDetailList = [];\r\n let depositRuleName = depositRuleMasterList.filter(obj => (obj.DepositRuleSerNo == ruleSerNO))[0].Name;\r\n d.data.map(element => {\r\n depositRuleDetailList.push(\r\n {\r\n ruleserno: 0,\r\n rulesubserno: 0,\r\n desc: depositRuleName,\r\n daysafter: element.DaysAfterBooking,\r\n daysbefore: element.DaysBeforeArrival,\r\n time: Moment(new Date(element.AfterBookingTime)).format(\"hh:mm\"),\r\n amount: element.DepositAmount,\r\n });\r\n });\r\n setGridDepositRuleDetail(depositRuleDetailList);\r\n let depositRuleDescription = depositRuleMasterList.filter(obj => (obj.DepositRuleSerNo == ruleSerNO))[0].LongDescription;\r\n setDepositRequestObj(prev => ({\r\n ...prev,\r\n ClientSerNo: parseInt(props.para.ClientSerNo),\r\n PropertySerNo: parseInt(props.para.PropertySerNo),\r\n ReservationSerNo: parseInt(props.para.ReservationSerNo),\r\n DepositRuleSerNo: ruleSerNO,\r\n Name: depositRuleName,\r\n LongDescription: depositRuleDescription,\r\n ResDepositRequestDetail: d.data\r\n }));\r\n\r\n }).catch(error => {\r\n setDepositRuleDetail([]);\r\n setGridDepositRuleDetail([]);\r\n });\r\n };\r\n const getDepositRuleList = () => {\r\n GetReservationInfoDepositRequestList(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo).then(d => {\r\n setDepositRequestList(d.data);\r\n setDepositRuleGrid(d.data);\r\n }).catch(error => {\r\n setDepositRequestList([]);\r\n setGridDepositRuleDetail([]);\r\n });\r\n };\r\n const fillUserRights = () => {\r\n ManageRights(currUser.ClientSerNo, currUser.UserID, \"56,57,69\").then((d) => {\r\n console.log(\"deposit user rights\", d.data);\r\n if (d.data.length > 0) {\r\n setUserRightsData(d.data);\r\n }\r\n else {\r\n console.log(\"No user rights\");\r\n }\r\n });\r\n };\r\n\r\n const isValidData = () => {\r\n let isValid = true;\r\n if (customDepositRequestObj.Name == \"\" || customDepositRequestObj.Name == null) {\r\n isValid = false;\r\n setCustomDepositRequestValidationObj(prev => ({ ...prev, Name: \"Enter the deposit rule\" }));\r\n }\r\n if (customDepositRequestObj.LongDescription == \"\" || customDepositRequestObj.LongDescription == null) {\r\n isValid = false;\r\n setCustomDepositRequestValidationObj(prev => ({ ...prev, LongDescription: \"Enter the deposit request description\" }));\r\n }\r\n if (parseInt(customDepositRequestObj.DepositAmount) == 0 || customDepositRequestObj.DepositAmount == null) {\r\n isValid = false;\r\n setCustomDepositRequestValidationObj(prev => ({ ...prev, DepositAmount: \"Enter deposit amount\" }));\r\n }\r\n if (parseInt(customDepositRequestObj.DepositAmount) < 0) {\r\n isValid = false;\r\n setCustomDepositRequestValidationObj(prev => ({ ...prev, DepositAmount: \"Enter positive amount\" }));\r\n }\r\n if (isNaN(parseInt(customDepositRequestObj.DepositAmount))) {\r\n isValid = false;\r\n setCustomDepositRequestValidationObj(prev => ({ ...prev, DepositAmount: \"Invalid Amount\" }));\r\n }\r\n\r\n if (rbDepositValue == \"Before Arrival\") {\r\n if (customDepositRequestObj.DaysBeforeArrival == null) {\r\n isValid = false;\r\n setCustomDepositRequestValidationObj(prev => ({ ...prev, DaysBeforeArrival: \"Enter No. of days before arrival\" }));\r\n }\r\n if (parseInt(customDepositRequestObj.DaysBeforeArrival) < 0) {\r\n isValid = false;\r\n setCustomDepositRequestValidationObj(prev => ({ ...prev, DaysBeforeArrival: \"Enter positive No. of days before arrival\" }));\r\n }\r\n if (isNaN(parseInt(customDepositRequestObj.DaysBeforeArrival))) {\r\n isValid = false;\r\n setCustomDepositRequestValidationObj(prev => ({ ...prev, DaysBeforeArrival: \"Invalid No. of days before arrival\" }));\r\n }\r\n if (customDepositRequestObj.AfterBookingTime == \"\" || customDepositRequestObj.AfterBookingTime == null) {\r\n isValid = false;\r\n setCustomDepositRequestValidationObj(prev => ({ ...prev, AfterBookingTime: \"Enter No. of days before arrival\" }));\r\n }\r\n }\r\n else {\r\n if (customDepositRequestObj.DaysAfterBooking == null) {\r\n isValid = false;\r\n setCustomDepositRequestValidationObj(prev => ({ ...prev, DaysAfterBooking: \"Enter No. of days after booking date\" }));\r\n }\r\n\r\n }\r\n\r\n return isValid;\r\n };\r\n\r\n const handleAddOnClick = () => {\r\n setDivDepositRuleEnable(\"auto\");\r\n setDepositRuleMode(\"Add\");\r\n\r\n if (depositRequestList.length > 0) {\r\n let Selectedobj = depositRequestList.filter(obj => obj.DepositRequestSerNo == 1)[0];\r\n let SelectedobjDetail = Selectedobj.ResDepositRequestDetail.filter(obj => obj.DepositRequestSerNo == 1)[0];\r\n\r\n if (Selectedobj.DepositRuleSerNo == 0 || Selectedobj.DepositRuleSerNo == null) {\r\n setDisableCustomeRuleName(true);\r\n setCustomDepositRequestObj(prev => ({\r\n ...prev,\r\n Name: Selectedobj.Name,\r\n LongDescription: Selectedobj.LongDescription,\r\n AfterBookingTime: \"1990-01-01T00:00:00\",\r\n DaysAfterBooking: 0,\r\n DaysBeforeArrival: 0,\r\n DepositAmount: 0,\r\n DepositRequestSerNo: Selectedobj.DepositRequestSerNo,\r\n DepositRequestSubSerNo: 0,\r\n })\r\n );\r\n if (parseInt(SelectedobjDetail.DaysBeforeArrival) != 0) {\r\n setRBDepositValue(\"Before Arrival\");\r\n setShowDaysBeforeArrivalTextBox(\"Before Arrival\");\r\n\r\n }\r\n else {\r\n setRBDepositValue(\"After Booking Date\");\r\n setShowDaysBeforeArrivalTextBox(\"After Booking Date\");\r\n\r\n }\r\n }\r\n else {\r\n setDisableCustomeRuleName(false);\r\n setSelectedDepositRuleSerNo(depositRequestList.length != 0 ? depositRequestList[0].DepositRuleSerNo : 0);\r\n setCustomeDepositRuleObj();\r\n }\r\n\r\n }\r\n else {\r\n setDisableCustomeRuleName(false);\r\n setSelectedDepositRuleSerNo(0);\r\n setGridDepositRuleDetail([]);\r\n setCustomeDepositRuleObj();\r\n }\r\n\r\n };\r\n\r\n const handleSaveOnClick = () => {\r\n\r\n if (showDepositRuleDropdown == true) {\r\n\r\n AddEditReservationDepositRequest(depositRequestObj).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n getDepositRuleList();\r\n handleCancleOnClick();\r\n\r\n }\r\n }).catch(error => {\r\n\r\n });\r\n\r\n }\r\n if (showDepositCustomRule == true) {\r\n let IsPageValid = isValidData();\r\n if (IsPageValid) {\r\n let depositObj = [];\r\n let objDaysArrival = showDaysBeforeArrivalTextBox == \"Before Arrival\" ? customDepositRequestObj.DaysBeforeArrival == null ? 0 : parseInt(customDepositRequestObj.DaysBeforeArrival) : 0;\r\n let objDaysBooking = showDaysBeforeArrivalTextBox == \"Before Arrival\" ? 0 : customDepositRequestObj.DaysAfterBooking == null ? 0 : parseInt(customDepositRequestObj.DaysAfterBooking);\r\n\r\n depositObj.push({\r\n DepositAmount: customDepositRequestObj.DepositAmount == null ? 0 : customDepositRequestObj.DepositAmount,\r\n DaysBeforeArrival: objDaysArrival,\r\n DaysAfterBooking: objDaysBooking,\r\n AfterBookingTime: customDepositRequestObj.AfterBookingTime,\r\n OnArrival: customDepositRequestObj.OnArrival,\r\n DepositRequestSerNo: customDepositRequestObj.DepositRequestSerNo,\r\n DepositRequestSubSerNo: customDepositRequestObj.DepositRequestSubSerNo,\r\n DepositTermType: \"\",\r\n DepositTermTypeValue: \"\",\r\n });\r\n let depositRequest = [];\r\n depositRequest.push(\r\n {\r\n ClientSerNo: parseInt(props.para.ClientSerNo),\r\n PropertySerNo: parseInt(props.para.PropertySerNo),\r\n ReservationSerNo: parseInt(props.para.ReservationSerNo),\r\n DepositRequestSerNo: customDepositRequestObj.DepositRequestSerNo,\r\n DepositRuleSerNo: 0,\r\n Name: customDepositRequestObj.Name,\r\n LongDescription: customDepositRequestObj.LongDescription,\r\n ResDepositRequestDetail: depositObj,\r\n }\r\n );\r\n AddEditReservationDepositRequest(depositRequest[0]).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n getDepositRuleList();\r\n handleCancleOnClick();\r\n }\r\n }).catch(error => {\r\n\r\n });\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n };\r\n const handleCancleOnClick = () => {\r\n setSelectedDepositRuleSerNo(0);\r\n setDisableCustomeRuleName(false);\r\n setIsCustomeRuleChecked(false);\r\n setDivDepositRuleEnable(\"none\");\r\n setDepositRuleMode(\"View\");\r\n setDepositRuleGrid(depositRequestList);\r\n setCustomeDepositRuleObj();\r\n };\r\n const setCustomeDepositRuleObj = () => {\r\n setCustomDepositRequestObj(prev => ({\r\n ...prev,\r\n Name: \"\",\r\n LongDescription: \"\",\r\n AfterBookingTime: \"1990-01-01T00:00:00\",\r\n DaysAfterBooking: \"\",\r\n DaysBeforeArrival: \"\",\r\n DepositAmount: \"\",\r\n DepositRequestSerNo: 0,\r\n DepositRequestSubSerNo: 0,\r\n DepositRuleSerNo: 0,\r\n OnArrival: false\r\n })\r\n );\r\n\r\n };\r\n const setDepositRuleGrid = (ruleList) => {\r\n let depositRuleDetailList = [];\r\n ruleList.map(element => {\r\n element.ResDepositRequestDetail.map(elementdetail => {\r\n depositRuleDetailList.push(\r\n {\r\n ruleserno: elementdetail.DepositRequestSerNo,\r\n rulesubserno: elementdetail.DepositRequestSubSerNo,\r\n desc: elementdetail.DepositDescription,\r\n daysafter: elementdetail.DaysAfterBooking,\r\n daysbefore: elementdetail.DaysBeforeArrival,\r\n time: Moment(new Date(elementdetail.AfterBookingTime)).format(\"hh:mm\"),\r\n amount: elementdetail.DepositAmount,\r\n action: \"...\"\r\n });\r\n });\r\n });\r\n setGridDepositRuleDetail(depositRuleDetailList);\r\n\r\n };\r\n const handleClickOnCustomeRuleCheckBox = (isChecked) => {\r\n setSelectedDepositRuleSerNo(0);\r\n setIsCustomeRuleChecked(isChecked);\r\n\r\n if (isChecked) {\r\n setDepositCustomRule(true);\r\n setDepositRuleDropdown(false);\r\n }\r\n else {\r\n setDepositCustomRule(false);\r\n setDepositRuleDropdown(true);\r\n }\r\n };\r\n const handleOptionClick = async (option) => {\r\n //console.log(gridSelectedItem)\r\n if (option.value == \"Delete\") {\r\n if (gridSelectedItem.ruleserno != 0) {\r\n let Selectedobj = depositRequestList.filter(obj => obj.DepositRequestSerNo == parseInt(gridSelectedItem.ruleserno))[0];\r\n if (Selectedobj.DepositRuleSerNo == 0) {\r\n let conf = await innkeyAlert(\"Would you like to delete the deposit rule?\");\r\n if (conf) {\r\n handleDeleteonClick();\r\n }\r\n }\r\n else {\r\n alert(\"'This action cannot be performed. A deposit rule cannot be deleted when selected from the list. Please click on add rule to change the deposit rule and select from the list.'\");\r\n }\r\n //setShowAlert(true);\r\n // let conf = await confirm({\r\n // Message: \"Are You Sure Want To Delete this Deposit Request?\",\r\n // Type: \"txt\",\r\n // Buttons: [\r\n // { value: 'N', title: \"No\", type: \"Action\" },\r\n // { value: 'Y', title: \"Yes\", type: \"\" },\r\n // ],\r\n // });\r\n }\r\n }\r\n else if (option.value == \"Edit\") {\r\n setDisableCustomeRuleName(false);\r\n let Selectedobj = depositRequestList.filter(obj => obj.DepositRequestSerNo == parseInt(gridSelectedItem.ruleserno))[0];\r\n let SelectedobjDetail = Selectedobj.ResDepositRequestDetail.filter(obj => obj.DepositRequestSerNo == parseInt(gridSelectedItem.ruleserno) && obj.DepositRequestSubSerNo == parseInt(gridSelectedItem.rulesubserno))[0];\r\n if (Selectedobj.DepositRuleSerNo == 0 || Selectedobj.DepositRuleSerNo == null) {\r\n setCustomDepositRequestObj(prev => ({\r\n ...prev,\r\n Name: Selectedobj.Name,\r\n LongDescription: Selectedobj.LongDescription,\r\n AfterBookingTime: SelectedobjDetail.AfterBookingTime,\r\n DaysAfterBooking: SelectedobjDetail.DaysAfterBooking,\r\n DaysBeforeArrival: SelectedobjDetail.DaysBeforeArrival,\r\n DepositAmount: SelectedobjDetail.DepositAmount,\r\n DepositRequestSerNo: SelectedobjDetail.DepositRequestSerNo,\r\n DepositRequestSubSerNo: SelectedobjDetail.DepositRequestSubSerNo,\r\n })\r\n );\r\n if (parseInt(SelectedobjDetail.DaysBeforeArrival) != 0) {\r\n setRBDepositValue(\"Before Arrival\");\r\n setShowDaysBeforeArrivalTextBox(\"Before Arrival\");\r\n\r\n }\r\n else {\r\n setRBDepositValue(\"After Booking Date\");\r\n setShowDaysBeforeArrivalTextBox(\"After Booking Date\");\r\n\r\n }\r\n setIsCustomeRuleChecked(true);\r\n setSelectedDepositRuleSerNo(0);\r\n setDivDepositRuleEnable(\"auto\");\r\n setDepositRuleMode(\"Add\");\r\n\r\n }\r\n }\r\n\r\n };\r\n const handleGridRowSelectionChange = (rowdata) => {\r\n let Selectedobj = depositRequestList.filter(obj => obj.DepositRequestSerNo == parseInt(rowdata.ruleserno))[0];\r\n let SelectedobjDetail = depositRequestList.filter(obj => obj.DepositRequestSerNo == parseInt(rowdata.ruleserno))[0].ResDepositRequestDetail.filter(obj => obj.DepositRequestSerNo == parseInt(rowdata.ruleserno) && obj.DepositRequestSubSerNo == parseInt(rowdata.rulesubserno))[0];\r\n if (Selectedobj.DepositRuleSerNo == 0 || Selectedobj.DepositRuleSerNo == null) {\r\n setCustomDepositRequestObj(prev => ({\r\n ...prev,\r\n Name: Selectedobj.Name,\r\n LongDescription: Selectedobj.LongDescription,\r\n AfterBookingTime: SelectedobjDetail.AfterBookingTime,\r\n DaysAfterBooking: SelectedobjDetail.DaysAfterBooking,\r\n DaysBeforeArrival: SelectedobjDetail.DaysBeforeArrival,\r\n DepositAmount: SelectedobjDetail.DepositAmount,\r\n DepositRequestSerNo: SelectedobjDetail.DepositRequestSerNo,\r\n DepositRequestSubSerNo: 0,\r\n })\r\n );\r\n if (parseInt(SelectedobjDetail.DaysBeforeArrival) != 0) {\r\n setRBDepositValue(\"Before Arrival\");\r\n setShowDaysBeforeArrivalTextBox(\"Before Arrival\");\r\n\r\n }\r\n else {\r\n setRBDepositValue(\"After Booking Date\");\r\n setShowDaysBeforeArrivalTextBox(\"After Booking Date\");\r\n\r\n }\r\n setDisableCustomeRuleName(true);\r\n setIsCustomeRuleChecked(true);\r\n }\r\n\r\n };\r\n\r\n const handleDeleteonClick = () => {\r\n DeleteReservationDepositRequest(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo, gridSelectedItem.ruleserno, gridSelectedItem.rulesubserno).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n getDepositRuleList();\r\n setCustomDepositRequestObj(prev => ({\r\n ...prev,\r\n Name: \"\",\r\n LongDescription: \"\",\r\n AfterBookingTime: \"1990-01-01T00:00:00\",\r\n DaysAfterBooking: 0,\r\n DaysBeforeArrival: 0,\r\n DepositAmount: 0,\r\n DepositRequestSerNo: 0,\r\n DepositRequestSubSerNo: 0,\r\n })\r\n );\r\n }\r\n }).catch(error => {\r\n });\r\n };\r\n\r\n const handleUserRights = async (strRightsSerNo) => {\r\n if (strRightsSerNo != undefined) {\r\n const userRightObj = userRightsData.find((x) => x.RightsSerNo == strRightsSerNo);\r\n // userRightObj.IsApply = false\r\n if (userRightObj != undefined) {\r\n if (userRightObj.IsApply != undefined) {\r\n if (userRightObj.IsApply) {\r\n return true;\r\n } else {\r\n await confirm({\r\n Message: `${userRightObj.Name} : ${userRightObj.PromptMessage}`,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n }\r\n };\r\n\r\n const validateCustomDepositRule = (checked) => {\r\n handleUserRights(\"56\").then(d => {\r\n if (d) {\r\n handleClickOnCustomeRuleCheckBox(checked);\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n };\r\n\r\n\r\n\r\n const depositeRuleValueTooltip = () => {\r\n return (\r\n
\r\n
\r\n {\r\n gridDepositRuleDetail.map(element => {\r\n\r\n if (element.desc != \"\" && element.desc != null) {\r\n return (\r\n
\r\n
Short Description : {element.desc}
\r\n
Amount Requested : {element.amount}
\r\n
{parseInt(element.daysafter) != 0 ? \"No. Of Days After Booking\" : \"No. Of Days Before Arrival\"}: {parseInt(element.daysafter) != 0 ? element.daysafter : element.daysbefore}
\r\n
\r\n );\r\n }\r\n })\r\n }\r\n\r\n\r\n
\r\n {\r\n showEditDiv ?\r\n
\r\n {\r\n if (gridDepositRuleDetail.length > 0) {\r\n handleUserRights(\"69\").then(d => {\r\n if (d) {\r\n console.log(\"deposit data?>>>>\", gridDepositRuleDetail);\r\n handleEditOnClick();\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n }\r\n else {\r\n handleUserRights(\"57\").then(d => {\r\n if (d) {\r\n console.log(\"deposit data?>>>>\", gridDepositRuleDetail);\r\n handleEditOnClick();\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n }\r\n\r\n }}\r\n >\r\n Edit\r\n \r\n console.log(item, name)}\r\n >\r\n
\r\n :\r\n <>\r\n }\r\n
\r\n );\r\n };\r\n return (\r\n <>\r\n \r\n
\r\n {/* */}\r\n {t('INN_DepositRule')}\r\n \r\n ({depositRequestList.length})\r\n \r\n\r\n
\r\n \r\n {showDepositRulePopup ? (\r\n setDepositRulePopup(!showDepositRulePopup)}\r\n >\r\n
\r\n
\r\n
\r\n

Deposit Rule

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    \r\n Confirmation No.\r\n
    \r\n
    \r\n {ReservationData != undefined ? ReservationData.BookingNo : \"\"}\r\n
    \r\n
  • \r\n
  • \r\n
    Guest Name
    \r\n
    \r\n {ReservationData != undefined ? ReservationData.GuestName : \"\"}\r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {showDepositRuleDropdown == true && (\r\n
\r\n
\r\n {\r\n setSelectedDepositRuleSerNo(parseInt(item.key));\r\n getDepositRuleDetail(parseInt(item.key));\r\n }}\r\n >\r\n
\r\n
\r\n

\r\n {depositRuleDescription}\r\n

\r\n
\r\n
\r\n Or\r\n
\r\n
\r\n )}\r\n {\r\n validateCustomDepositRule(checked);\r\n }} >Custom Deposit Rule\r\n\r\n {showDepositCustomRule == true && (\r\n
\r\n {\r\n setCustomDepositRequestObj(prev => ({ ...prev, LongDescription: v }));\r\n }}\r\n customError={customDepositRequestValidationObj.LongDescription}\r\n >Short Description\r\n {\r\n setCustomDepositRequestObj(prev => ({ ...prev, Name: v }));\r\n }}\r\n customError={customDepositRequestValidationObj.Name}\r\n >Deposit Rule\r\n {\r\n setCustomDepositRequestObj(prev => ({ ...prev, DepositAmount: parseFloat(v) }));\r\n if (v) {\r\n setCustomDepositRequestValidationObj(prev => ({ ...prev, DepositAmount: \"\" }));\r\n }\r\n }}\r\n customError={customDepositRequestValidationObj.DepositAmount}\r\n >Amount\r\n
\r\n {\r\n setShowDaysBeforeArrivalTextBox(value);\r\n setRBDepositValue(value);\r\n }}\r\n >\r\n
\r\n {showDaysBeforeArrivalTextBox == \"Before Arrival\" ?\r\n
\r\n {\r\n setCustomDepositRequestObj(prev => ({ ...prev, DaysBeforeArrival: parseInt(v) }));\r\n if (v) {\r\n setCustomDepositRequestValidationObj(prev => ({ ...prev, DaysBeforeArrival: \"\" }));\r\n }\r\n }}\r\n customError={customDepositRequestValidationObj.DaysBeforeArrival}\r\n\r\n >No. of Days Before Arrival Date\r\n {\r\n var dt = new Date(Moment(v, \"hh:mm tt\")).toUTCString();\r\n setCustomDepositRequestObj(prev => ({ ...prev, AfterBookingTime: dt }));\r\n }}\r\n placeholder=\"Time\"\r\n label=\"Time\"\r\n timeformat=\"HH:mm\"\r\n dateformat=\"HH:mm\"\r\n selected={customDepositRequestObj.AfterBookingTime}\r\n customError={customDepositRequestValidationObj.AfterBookingTime}\r\n >\r\n
\r\n :\r\n {\r\n setCustomDepositRequestObj(prev => ({ ...prev, DaysAfterBooking: parseInt(v) }));\r\n }}\r\n customError={customDepositRequestValidationObj.DaysAfterBooking}\r\n\r\n >No. of Days After Booking Date\r\n }\r\n\r\n
\r\n\r\n )}\r\n
\r\n
\r\n {\r\n depositRuleMode == \"View\" ?\r\n <>\r\n handleAddOnClick()}>Add Deposit Rule\r\n \r\n :\r\n <>\r\n {\r\n handleSaveOnClick();\r\n }\r\n }>Save\r\n handleCancleOnClick()}>Cancel\r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n handleOptionClick(v);\r\n }}\r\n fixedHeaderNo={1}\r\n handleRowSelect={(rowdata) => {\r\n setGridSelectedItem(rowdata);\r\n handleGridRowSelectionChange(rowdata);\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/* \r\n
\r\n
\r\n
\r\n {\r\n handleOptionClick(v);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n setGridSelectedItem(rowdata);\r\n }}\r\n >\r\n
\r\n
\r\n
*/}\r\n
\r\n
\r\n \r\n ) : null}\r\n\r\n {/* {showAlert == true ? (\r\n {\r\n setShowAlert(!showAlert);\r\n if (v == \"Ok\")\r\n {\r\n handleDeleteonClick();\r\n }\r\n }}\r\n message=\"Are You Sure Want To Delete this Deposit Request?\"\r\n buttons={[\r\n { \"value\": \"Ok\", \"title\": \"OK\" },\r\n { \"value\": \"No\", \"title\": \"Cancel\" }\r\n ]}> \r\n ) : null} */}\r\n\r\n \r\n );\r\n}","import { element } from \"prop-types\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnFileUpload,\r\n InnFileUploadPreview,\r\n InnLoader,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnRadioButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnToastMessage,\r\n InnTabs,\r\n InnStatusLabel,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnButton3Darrow,\r\n InnButtonTypeWithDropdown,\r\n InnPlainTextbox,\r\n InnSingleDateSelection,\r\n InnTimeSelection,\r\n InnSingleRadioButton,\r\n InnContextMenu,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport {\r\n GetReservationTransaction, GetReservationWindowRouting, GetTransactionMaster, GetReservationDepositReceivedData,\r\n AddReservationTransaction\r\n} from \"../../../../services/reservationService\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { PaymentModalPopup } from \"../modalPopup/paymentModalPopup\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { ManageRights } from \"../../../../services/generalService\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\n\r\nexport function IndiDepositeReceived(props) {\r\n const { t } = useTranslation();\r\n const { confirm } = useConfirm();\r\n const currUser = useSelector(currentUser);\r\n const [showDepositReceivedPopup, setDepositReceivedPopup] = useState(false);\r\n const [showPaymentPopup, setShowPaymentPopup] = useState(false);\r\n const [reservationDepositReceivedData, setReservationDepositReceivedData] = useState([]);\r\n const [gridSelectedItem, setGridSelectedItem] = useState([]);\r\n const [reservationTransactionList, setReservationTransactionList] = useState([]);\r\n const [transactionMode, setTransactionMode] = useState(\"Payment\");//Payment , Refund, Correction\r\n const [filterDataDepositReceived, setFilterDataDepositReceived] = useState([]);\r\n const [filterDataDepositDue, setFilterDataDepositDue] = useState([]);\r\n const [selectedReservationTransactionSerNo, setSelectedReservationTransactionSerNo] = useState(0);\r\n const [showEditDiv, setShowEditDiv] = useState(true);//use to show Edit button\r\n const [userRightsData, setUserRightsData] = useState([]);\r\n const columHeaderDepositDue = [\r\n { key: \"Date\", value: \"date\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Amount\", value: \"amount\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Deposit Rule\", value: \"terms\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Status\", value: \"status\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\", align: \"center\" },\r\n ];\r\n const optBtnDepoDue = [\r\n { key: \"Reminder Email\", value: \"Reminder Email\" },\r\n { key: \"Reminder SMS\", value: \"Reminder SMS\" },\r\n ];\r\n const columHeaderDepositReceived = [\r\n { key: \"Date\", value: \"date\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Mode Of Payment\", value: \"mode\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Amount\", value: \"amount\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Receipt No.\", value: \"recpt\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\", align: \"center\" },\r\n ];\r\n const optBtnDepoRec = [\r\n { key: \"Print Receipt\", value: \"Print Receipt\" },\r\n { key: \"Email Receipt\", value: \"Email Receipt\" },\r\n { key: \"Payment Correction\", value: \"Payment Correction\" },\r\n { key: \"Refund\", value: \"Refund\" },\r\n ];\r\n const DepositDueAction = (v) => {\r\n if (v.value == \"Payment Correction\") {\r\n setShowPaymentPopup(true);\r\n } else if (v.value == \"Refund\") {\r\n setShowPaymentPopup(true);\r\n }\r\n };\r\n\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n useEffect(() => {\r\n getReservationTransaction();\r\n if (props.para != undefined) {\r\n if (props.para.IsShowTooltipActionButton == \"hide\") {\r\n setShowEditDiv(false);\r\n }\r\n else {\r\n setShowEditDiv(true);\r\n }\r\n }\r\n }, [props.para.ReservationSerNo]);\r\n useEffect(() => {\r\n fillUserRights();\r\n }, []);\r\n\r\n\r\n const fillUserRights = () => {\r\n ManageRights(currUser.ClientSerNo, currUser.UserID, \"34,35\").then((d) => {\r\n if (d.data.length > 0) {\r\n setUserRightsData(d.data);\r\n }\r\n else {\r\n console.log(\"No user rights\");\r\n }\r\n });\r\n };\r\n\r\n const handleAddDepositOnClick = () => {\r\n setTransactionMode(\"Payment\");\r\n setShowPaymentPopup(!showPaymentPopup);\r\n\r\n };\r\n const getReservationDeposiReceivedData = () => {\r\n console.log(\"call data\");\r\n GetReservationDepositReceivedData(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo, \"P\").then(d => {\r\n setReservationDepositReceivedData(d.data);\r\n console.log(d.data);\r\n let depositruleList = [];\r\n d.data.map(element => {\r\n depositruleList.push(\r\n {\r\n date: element.DepositDate,\r\n amount: element.DepositAmount,\r\n terms: element.Name,\r\n status: element.DepositStatus,\r\n action: \"...\",\r\n });\r\n });\r\n setFilterDataDepositDue(depositruleList);\r\n\r\n }).catch(error => {\r\n setReservationDepositReceivedData([]);\r\n setFilterDataDepositDue([]);\r\n });\r\n };\r\n\r\n const getReservationTransaction = () => {\r\n GetReservationTransaction(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo, \"P\").then(d => {\r\n setReservationTransactionList(d.data);\r\n let depositList = [];\r\n d.data.map(element => {\r\n depositList.push(\r\n {\r\n serno: element.ReservationTransactionSerNo,\r\n date: element.TransactionDate,\r\n mode: element.TransactionName,\r\n amount: element.Amount,\r\n recpt: element.ReceiptNo,\r\n action: \"...\",\r\n });\r\n });\r\n\r\n setFilterDataDepositReceived(depositList);\r\n\r\n }).catch(error => {\r\n setReservationTransactionList([]);\r\n setFilterDataDepositReceived([]);\r\n });\r\n };\r\n\r\n\r\n const handleEditOnClick = () => {\r\n setDepositReceivedPopup(!showDepositReceivedPopup);\r\n getReservationDeposiReceivedData();\r\n\r\n };\r\n const handleUserRights = async (strRightsSerNo) => {\r\n if (strRightsSerNo != undefined) {\r\n const userRightObj = userRightsData.find((x) => x.RightsSerNo == strRightsSerNo);\r\n if (userRightObj != undefined) {\r\n if (userRightObj.IsApply != undefined) {\r\n if (userRightObj.IsApply) {\r\n return true;\r\n } else {\r\n await confirm({\r\n Message: `${userRightObj.Name} : ${userRightObj.PromptMessage}`,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n }\r\n };\r\n\r\n const handleDepositReceivedOptionClick = (v) => {\r\n if (gridSelectedItem.serno != 0) {\r\n let Selectedobj = reservationTransactionList.filter(obj => obj.ReservationTransactionSerNo == parseInt(gridSelectedItem.serno))[0];\r\n if (v == \"Refund\" && Selectedobj.PaymentType == \"P\") {\r\n handleUserRights(\"35\").then(d => {\r\n if (d) {\r\n setTransactionMode(\"Refund\");\r\n setSelectedReservationTransactionSerNo(Selectedobj.ReservationTransactionSerNo);\r\n setShowPaymentPopup(true);\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n\r\n }\r\n\r\n else if (v == \"Payment Correction\" && Selectedobj.PaymentType == \"P\") {\r\n handleUserRights(\"34\").then(d => {\r\n if (d) {\r\n setTransactionMode(\"PaymentCorrection\");\r\n setSelectedReservationTransactionSerNo(Selectedobj.ReservationTransactionSerNo);\r\n setShowPaymentPopup(true);\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n\r\n }\r\n }\r\n };\r\n const depositeReceivedTooltip = () => {\r\n return (\r\n
\r\n
{\r\n reservationTransactionList.map(element => {\r\n return (\r\n
\r\n Deposite Received: {element.Amount}\r\n
Payment Type : {element.TransactionName}
\r\n
Receipt No : {element.ReceiptNo}
\r\n
Note : {element.Remarks}
\r\n
\r\n );\r\n })\r\n }\r\n
\r\n {\r\n showEditDiv ?\r\n
\r\n handleEditOnClick()}>\r\n Edit\r\n \r\n console.log(item, name)}\r\n >\r\n
\r\n :\r\n <>\r\n }\r\n
\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n
\r\n {t('INN_DepositReceived')}\r\n \r\n {\r\n Array.isArray(reservationDepositReceivedData) && reservationDepositReceivedData.length > 0 ? -(reservationDepositReceivedData[0].DepositReceivedAmount) : 0\r\n }\r\n \r\n
\r\n \r\n {showDepositReceivedPopup ? (\r\n setDepositReceivedPopup(!showDepositReceivedPopup)}\r\n >\r\n
\r\n
\r\n
\r\n

Deposit Received

\r\n
\r\n
\r\n handleAddDepositOnClick()}>Add Deposit\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    \r\n Confirmation No.\r\n
    \r\n
    \r\n {Array.isArray(reservationDepositReceivedData) && reservationDepositReceivedData.length > 0 ? reservationDepositReceivedData[0].BookingNo : \"\"}\r\n
    \r\n
  • \r\n
  • \r\n
    Guest Name
    \r\n
    \r\n {Array.isArray(reservationDepositReceivedData) && reservationDepositReceivedData.length > 0 ? reservationDepositReceivedData[0].GuestName : \"\"}\r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {\r\n setGridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n setShowPaymentPopup(true);\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnDepoDue}\r\n optClick={(v) =>\r\n DepositDueAction(v)\r\n }\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}\r\n >\r\n
\r\n
\r\n {\r\n // handleDepositReceivedOptionClick(v)\r\n\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnDepoRec}\r\n optClick={(v) =>\r\n handleDepositReceivedOptionClick(v.value)\r\n }\r\n handleRowSelect={(rowdata) => {\r\n setGridSelectedItem(rowdata);\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n ) : null}\r\n\r\n {/* Payment Popup start */}\r\n {showPaymentPopup ? (\r\n {\r\n setShowPaymentPopup(false);\r\n getReservationTransaction();\r\n getReservationDeposiReceivedData();\r\n }\r\n }\r\n >\r\n ) : null}\r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { InnTooltip } from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetReservationBalanceData } from \"../../../../services/reservationService\";\r\n\r\nexport function IndiBalance(props) {\r\n const { t } = useTranslation();\r\n const currUser = useSelector(currentUser);\r\n\r\n const [folioAmount, setFolioAmount] = useState(0);\r\n const [unsettledAmount, setUnsettledAmount] = useState(0);\r\n\r\n const BalanceTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
Folio Balance : {folioAmount.toFixed(2)} INR
\r\n
Unsettled Bills at POS : {unsettledAmount} INR
\r\n
Total Balance : {(folioAmount + unsettledAmount).toFixed(2)} INR
\r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n if (props.para.ReservationSerNo) {\r\n GetReservationBalanceData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo),\r\n props.para.ReservationSerNo).then(d => {\r\n if (d.data != undefined) {\r\n if (d.data.Amount) {\r\n setFolioAmount(d.data.Amount)\r\n }\r\n }\r\n })\r\n }\r\n }, [props.para.ReservationSerNo])\r\n\r\n return (\r\n \r\n
\r\n {t('INN_Balance')}\r\n {(folioAmount + unsettledAmount).toFixed(2)}\r\n
\r\n \r\n )\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnFileUpload,\r\n InnFileUploadPreview,\r\n InnLoader,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnRadioButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnToastMessage,\r\n InnTabs,\r\n InnStatusLabel,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnButton3Darrow,\r\n InnButtonTypeWithDropdown,\r\n InnPlainTextbox,\r\n InnSingleDateSelection,\r\n InnTimeSelection,\r\n InnSingleRadioButton,\r\n InnContextMenu\r\n} from \"../../../../component\";\r\nimport rightbluearrow from \"../../../../assets/images/right-blue-round-arrow.svg\";\r\nimport smsIcon from \"../../../../assets/images/sms-tooltip-icon.svg\";\r\nimport EmailTooltipIcon from \"../../../../assets/images/email-tooltip-icon.svg\";\r\nimport { GetReservationAccompanyGuest,GetReservationInfoProfileData } from \"../../../../services/reservationService\";\r\n\r\n\r\nexport function IndiGuestProfile(props) {\r\n\r\n const [guestInfo,setGuestInfo] = useState([]);\r\n const [guestProfileInfo,setGuestProfileInfo] = useState({});\r\n const [selectedGuest,setSelectedGuest] = useState({});\r\n const [showEditDiv, setShowEditDiv] = useState(true)//use to show Edit button\r\n\r\n useEffect(()=>{\r\n GetReservationAccompanyGuest(props.para.ClientSerNo,props.para.PropertySerNo,props.para.ReservationSerNo).then(d=>{\r\n d.data.forEach(ele => {\r\n ele.key = ele.GuestProfileSerNo;\r\n ele.value = ele.GuestName;\r\n });\r\n setGuestInfo(d.data);\r\n let tempGuest = d.data.find(x=> x.IsPrimary == true);\r\n if(tempGuest != undefined){\r\n setSelectedGuest(tempGuest);\r\n if(props.onSelect != undefined){\r\n props.onSelect(tempGuest);\r\n }\r\n }\r\n })\r\n if(props.para!=undefined){\r\n if (props.para.IsShowTooltipActionButton == \"hide\") {\r\n setShowEditDiv(false)\r\n }\r\n else{\r\n setShowEditDiv(true)\r\n }\r\n }\r\n },[props.para.IsIncognitoChanged]);\r\n\r\n useEffect(()=>{\r\n if(selectedGuest != undefined && selectedGuest.GuestProfileSerNo != undefined){\r\n GetReservationInfoProfileData(props.para.ClientSerNo,selectedGuest.GuestProfileSerNo,\"GU\").then(d=>{\r\n setGuestProfileInfo(d.data);\r\n })\r\n }\r\n },[selectedGuest]);\r\n\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n const Profile2Tooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
Membership No.
\r\n
\r\n 32452342\r\n  (Gold Member)\r\n
\r\n
\r\n
Base Points : 10000
\r\n
Bonus Points : 4000
\r\n
\r\n Total Points :\r\n  14000\r\n
\r\n
\r\n
\r\n
\r\n {\r\n showEditDiv ?\r\n
\r\n Edit\r\n console.log(item, name)}\r\n >\r\n
\r\n :\r\n <>\r\n }\r\n
\r\n );\r\n };\r\n \r\n const ProfileGuestTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
{guestProfileInfo.ProfileName}
\r\n
\r\n Mobile: {guestProfileInfo.ContactMobile}\r\n \r\n SMS\r\n \r\n
\r\n
\r\n Email: {guestProfileInfo.ContactEmail}\r\n \r\n Email\r\n \r\n
\r\n
\r\n
\r\n {\r\n showEditDiv ?\r\n
\r\n {/* Edit\r\n \r\n console.log(item, name)}\r\n > */}\r\n
\r\n :\r\n <>\r\n }\r\n
\r\n );\r\n };\r\n const DummyOption = [\r\n { key: \"Option 1\", value: \"1\" },\r\n { key: \"Option 2\", value: \"2\" },\r\n { key: \"Option 3\", value: \"3\" },\r\n { key: \"Option 4\", value: \"4\" },\r\n { key: \"Option 5\", value: \"5\" },\r\n ];\r\n return (\r\n <>\r\n
\r\n
\r\n\r\n {\r\n setSelectedGuest(item);\r\n if(props.onSelect != undefined){\r\n props.onSelect(item);\r\n }\r\n }}\r\n >\r\n \r\n {selectedGuest.GuestName}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
Sharing
\r\n \r\n \r\n Member: {guestProfileInfo.MembershipNo} ({guestProfileInfo.MemberShipName})\r\n \r\n \r\n
\r\n \r\n )\r\n}","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport function IndiLoyalty(props) {\r\n const { t } = useTranslation();\r\n\r\n return(\r\n
\r\n {t('INN_Loyalty')}\r\n \r\n
\r\n )\r\n}","import React, { useEffect,useState } from \"react\";\r\nimport {\r\n InnPrimaryButton,\r\n InnSwitch,\r\n InnTooltip,\r\n InnModalPopup,\r\n InnButtonTypeWithDropdown\r\n} from \"../../../../component\";\r\nimport { GetReservationInfoProfileData } from \"../../../../services/reservationService\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport function IndiVipStatus(props) {\r\n const { t } = useTranslation();\r\n\r\n const [guestProfileInfo,setGuestProfileInfo] = useState({});\r\n const [showEditDiv, setShowEditDiv] = useState(true)//use to show Edit button\r\n\r\n useEffect(()=>{\r\n if(props.para.ProfileSerNo != undefined){\r\n GetReservationInfoProfileData(props.para.ClientSerNo,props.para.ProfileSerNo,\"GU\").then(d=> {\r\n setGuestProfileInfo(d.data);\r\n })\r\n }\r\n if(props.para!=undefined){\r\n if (props.para.IsShowTooltipActionButton == \"hide\") {\r\n setShowEditDiv(false)\r\n }\r\n else {\r\n setShowEditDiv(true)\r\n } \r\n }\r\n },[props.para.ProfileSerNo]);\r\n\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n\r\n const VIPstatusTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n VIP 2\r\n
\r\n
Celebrity, MLAs
\r\n
\r\n\r\n
\r\n {\r\n showEditDiv ?\r\n
\r\n \r\n Edit\r\n \r\n console.log(item, name)}\r\n >\r\n
\r\n :\r\n <>\r\n }\r\n
\r\n );\r\n };\r\n return (\r\n \r\n
\r\n {t('INN_VIPStatus')}\r\n \r\n {guestProfileInfo.VIPStatusName}\r\n \r\n
\r\n \r\n )\r\n}","import React ,{useState,useEffect}from \"react\";\r\nimport {\r\n InnPrimaryButton,\r\n InnTooltip,\r\n InnButtonTypeWithDropdown\r\n} from \"../../../../component\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport function IndiPastStay(props) {\r\n const { t } = useTranslation();\r\n const [showEditDiv, setShowEditDiv] = useState(true)//use to show Edit button\r\n\r\n useEffect(() => { \r\n if (props.para != undefined) {\r\n if (props.para.IsShowTooltipActionButton == \"hide\") {\r\n setShowEditDiv(false)\r\n }\r\n else {\r\n setShowEditDiv(true)\r\n }\r\n }\r\n}, []);\r\n\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n const PastStayTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
Year 2021 (Last Year)
\r\n
Revenue
\r\n
\r\n
\r\n
Room Revenue
\r\n
2,00,000.00
\r\n
\r\n
\r\n
F& B Revenue
\r\n
48,000.00
\r\n
\r\n
\r\n
Other Revenue
\r\n
5,845.00
\r\n
\r\n
\r\n
Total Revenue
\r\n
2,53,845.00
\r\n
\r\n
\r\n
Nights
\r\n
\r\n
\r\n
Occupied
\r\n
75
\r\n
\r\n
\r\n
Day Use
\r\n
6
\r\n
\r\n
\r\n
Cancelled
\r\n
7
\r\n
\r\n
\r\n
No-Show
\r\n
2
\r\n
\r\n
\r\n
\r\n
\r\n
Year 2022 (Current Year)
\r\n
Revenue
\r\n
\r\n
\r\n
Room Revenue
\r\n
15,845.00
\r\n
\r\n
\r\n
F& B Revenue
\r\n
3875.50
\r\n
\r\n
\r\n
Other Revenue
\r\n
1,500.00
\r\n
\r\n
\r\n
Total Revenue
\r\n
21,220.50
\r\n
\r\n
\r\n
Nights
\r\n
\r\n
\r\n
Occupied
\r\n
2
\r\n
\r\n
\r\n
Day Use
\r\n
0
\r\n
\r\n
\r\n
Cancelled
\r\n
1
\r\n
\r\n
\r\n
No-Show
\r\n
0
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n showEditDiv ?\r\n
\r\n Edit\r\n console.log(item, name)}\r\n >\r\n
\r\n :\r\n <>\r\n }\r\n
\r\n );\r\n };\r\n return(\r\n \r\n
\r\n {t('INN_Paststay')}\r\n \r\n 12 (P) 18 (G)\r\n \r\n
\r\n \r\n )\r\n}","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport function IndiFutureStay(props) {\r\n const { t } = useTranslation();\r\n\r\n return(\r\n
\r\n {t('INN_FutureStay')}\r\n \r\n
\r\n )\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnFileUpload,\r\n InnFileUploadPreview,\r\n InnLoader,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnRadioButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnToastMessage,\r\n InnTabs,\r\n InnStatusLabel,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnButton3Darrow,\r\n InnButtonTypeWithDropdown,\r\n InnPlainTextbox,\r\n InnSingleDateSelection,\r\n InnTimeSelection,\r\n InnSingleRadioButton,\r\n InnContextMenu\r\n} from \"../../../../component\";\r\nimport JPGIcon from \"../../../../assets/images/jpg-file-icon.svg\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport function IndiAttachment(props) {\r\n const { t } = useTranslation();\r\n\r\n const [showAttachmentGuestPopup, setAttachmentGuestPopup] = useState(false);\r\n const [gridSelectedItem, SetgridSelectedItem] = useState([]);\r\n const [temp, settemp] = useState(false);\r\n const [showEditDiv, setShowEditDiv] = useState(true)//use to show Edit button\r\n const optBtnResAttachment = [\r\n // { key: \"Edit\", value: \"edt\" },\r\n { key: \"Preview\", value: \"pre\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Email\", value: \"email\" },\r\n { key: \"Download\", value: \"download\" },\r\n // { key: \"Delete\", value: \"del\" },\r\n ]\r\n const selectdata = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n const PurgeDD = [\r\n { key: \"Purge after 10 days of check out\", value: \"con\" },\r\n { key: \"Purge after 3 days of check out\", value: \"wait\" },\r\n ];\r\n const columHeaderAttachmentProfile = [\r\n { key: \"File\", value: \"file\", type: \"img\", sorting: \"N\" },\r\n { key: \"Document Type\", value: \"doctype\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Nationality\", value: \"nationality\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Document No.\", value: \"docno\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Date of Issue\", value: \"dateofissue\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Place of Issue\", value: \"placeofissue\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Date of Expiry\", value: \"doe\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Arriving From\", value: \"arrivingfrom\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Returning To\", value: \"returningto\", type: \"txt\", sorting: \"Y\" },\r\n // { key: \"Purge (i)\", value: \"purgeday\", type: \"txt\", sorting: \"N\", align: \"center\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\", align: \"center\" },\r\n ];\r\n const [filterDataAttachmentProfile] = useState([\r\n {\r\n file: JPGIcon,\r\n doctype: \"Passport\",\r\n nationality: \"Great Britain\",\r\n docno: \"G1005478F\",\r\n dateofissue: \"05-07-2016\",\r\n placeofissue: \"Bristol\",\r\n doe: \"05-07-2036\",\r\n arrivingfrom: \"Edinburgh\",\r\n returningto: \"Bristol\",\r\n purgeday: \"15 Days\",\r\n Action: \"...\",\r\n },\r\n {\r\n file: JPGIcon,\r\n doctype: \"Passport\",\r\n nationality: \"Great Britain\",\r\n docno: \"G1005478F\",\r\n dateofissue: \"05-07-2016\",\r\n placeofissue: \"Bristol\",\r\n doe: \"05-07-2036\",\r\n arrivingfrom: \"Edinburgh\",\r\n returningto: \"Bristol\",\r\n purgeday: \"15 Days\",\r\n Action: \"...\",\r\n },\r\n ]);\r\n const setSelectedItem = (items) => {\r\n SetgridSelectedItem(items);\r\n settemp(!temp);\r\n };\r\n const AttachmentGuestTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
Passport Front Page
\r\n
Purge : 3 days
\r\n
\r\n
\r\n
Aadhar Card
\r\n
Purge : 3 days
\r\n\r\n
\r\n
\r\n
Passport Back Page
\r\n
Purge : 3 days
\r\n\r\n
\r\n
\r\n {\r\n showEditDiv ?\r\n
\r\n setAttachmentGuestPopup(!showAttachmentGuestPopup)}\r\n >\r\n Edit\r\n \r\n console.log(item, name)}\r\n >\r\n
\r\n :\r\n <>\r\n }\r\n
\r\n );\r\n };\r\n useEffect(() => {\r\n if (props.para != undefined) {\r\n if (props.para.IsShowTooltipActionButton == \"hide\") {\r\n setShowEditDiv(false)\r\n }\r\n else {\r\n setShowEditDiv(true)\r\n }\r\n }\r\n }, []);\r\n return (\r\n <>\r\n \r\n
\r\n {t('INN_Attachment')}\r\n\r\n (5)\r\n
\r\n \r\n\r\n {showAttachmentGuestPopup ? (\r\n setAttachmentGuestPopup(!showAttachmentGuestPopup)}\r\n >\r\n
\r\n
\r\n
\r\n

Profile Attachment

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    Confirmation No.
    \r\n
    12345678910
    \r\n
  • \r\n
  • \r\n
    Guest Name
    \r\n
    Viral Shah
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/*
\r\n
\r\n
\r\n console.log(item, name)}\r\n >\r\n
\r\n console.log(v)}>\r\n Upload Document\r\n \r\n
\r\n \r\n Description\r\n \r\n
\r\n
\r\n console.log(item, name)}\r\n >\r\n
\r\n
\r\n Add attachment\r\n
\r\n
\r\n
*/}\r\n
\r\n {/* Old Design - we will remove after at development stage\r\n
\r\n
\r\n
\r\n
\r\n \r\n Uploaded Photo ID\r\n (Front Side)\r\n \r\n \r\n \r\n setShowPreviewModal(!showPreviewModal)\r\n }\r\n >\r\n Preview\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Uploaded Photo ID\r\n (Back Side)\r\n \r\n \r\n \r\n setShowPreviewModal(!showPreviewModal)\r\n }\r\n >\r\n Preview\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Uploaded Passport\r\n \r\n \r\n \r\n setShowPreviewModal(!showPreviewModal)\r\n }\r\n >\r\n Preview\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Uploaded VISA\r\n stamp page\r\n \r\n \r\n \r\n setShowPreviewModal(!showPreviewModal)\r\n }\r\n >\r\n Preview\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
*/}\r\n\r\n
\r\n
\r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnResAttachment}\r\n fixedHeaderNo={1}\r\n optClick={(v, d) => {\r\n console.log(v, d);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n ) : null}\r\n \r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n InnPrimaryButton,\r\n InnTooltip,\r\n InnButtonTypeWithDropdown\r\n} from \"../../../../component\";\r\nimport { GetProfileRoomFeature, GetProfileSpecial } from \"../../../../services/reservationService\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport function IndiPreference(props) {\r\n const { t } = useTranslation();\r\n\r\n const [profileRoomFeature, setProfileRoomFeature] = useState([]);\r\n const [profileSpecial, setProfileSpecial] = useState([]);\r\n const [showEditDiv, setShowEditDiv] = useState(true)//use to show Edit button\r\n\r\n useEffect(() => {\r\n if (props.para.ProfileSerNo != undefined) {\r\n setTimeout(() => {\r\n GetProfileRoomFeature(props.para.ClientSerNo, props.para.ProfileSerNo).then(d => {\r\n setProfileRoomFeature(d.data);\r\n });\r\n GetProfileSpecial(props.para.ClientSerNo, props.para.ProfileSerNo).then(d => {\r\n setProfileSpecial(d.data);\r\n });\r\n }, 100);\r\n if (props.para != undefined) {\r\n if (props.para.IsShowTooltipActionButton == \"hide\") {\r\n setShowEditDiv(false)\r\n }\r\n else {\r\n setShowEditDiv(true)\r\n }\r\n }\r\n }\r\n }, [props.para.UpdatePreference]);\r\n\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n const FeaturesTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n\r\n
R - Room Features
\r\n
    \r\n {\r\n profileRoomFeature.length > 0 ?\r\n profileRoomFeature.map(d =>\r\n
  • \r\n - {d.DisplayName}\r\n
  • \r\n )\r\n :\r\n <>\r\n }\r\n
\r\n\r\n
\r\n\r\n
\r\n {\r\n showEditDiv ?\r\n
\r\n {/* Edit\r\n console.log(item, name)}\r\n > */}\r\n
\r\n :\r\n <>\r\n }\r\n
\r\n );\r\n };\r\n\r\n const SpecialsTooltip = () => {\r\n return (\r\n
\r\n
\r\n\r\n
\r\n\r\n
S - Specials
\r\n
    \r\n {\r\n profileSpecial.length > 0 ?\r\n profileSpecial.map(d =>\r\n
  • \r\n - {d.Name}\r\n
  • \r\n )\r\n :\r\n <>\r\n }\r\n\r\n
\r\n\r\n
\r\n
\r\n {\r\n showEditDiv ?\r\n
\r\n {/* Edit\r\n console.log(item, name)}\r\n > */}\r\n
\r\n :\r\n <>\r\n }\r\n
\r\n );\r\n };\r\n\r\n const selectdata = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n\r\n return (\r\n\r\n
\r\n {t('INN_Preference')}\r\n\r\n\r\n \r\n \r\n R ({profileRoomFeature.length}) \r\n ,\r\n \r\n S ({profileSpecial.length})\r\n \r\n\r\n \r\n
\r\n\r\n\r\n )\r\n}","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport function IndiInternalComment(props) {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n
\r\n {t('INN_InternalComment')}\r\n 2 (P) 3(G)\r\n
\r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnSwitch,\r\n} from \"../../../../component\";\r\nimport { GetReservationAccompanyGuest,manageReservationAccompanyguest } from \"../../../../services/reservationService\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport function IndiIncognito(props){\r\n const { t } = useTranslation();\r\n\r\n const [guestInfo,setGuestInfo] = useState([]);\r\n const [guest,setGuest] = useState({});\r\n\r\n const fillGuestInfo = () => {\r\n if(props.para.ReservationSerNo != undefined){\r\n GetReservationAccompanyGuest(props.para.ClientSerNo,props.para.PropertySerNo,props.para.ReservationSerNo).then(d=> {\r\n setGuestInfo(d.data);\r\n if(props.para.ProfileSerNo != undefined){\r\n let tempGuest = d.data.find(x=> x.GuestProfileSerNo == props.para.ProfileSerNo);\r\n if(tempGuest != undefined)\r\n setGuest(tempGuest);\r\n }\r\n })\r\n }\r\n }\r\n\r\n useEffect(()=>{\r\n fillGuestInfo();\r\n },[props.para.ProfileSerNo]);\r\n\r\n const handleIncognitoOnChange = (v) => { \r\n manageReservationAccompanyguest(props.para.ClientSerNo,props.para.PropertySerNo,props.para.ReservationSerNo,\r\n props.para.ProfileSerNo,v).then(d=> {\r\n alert(d.data.Message);\r\n if(d.data.Code == \"200\" ){\r\n fillGuestInfo();\r\n if(props.onChange != undefined){\r\n props.onChange(v);\r\n }\r\n }\r\n alert(\"This change in status is not carry forwarded to guest profile. Please change on the profile as required.\");\r\n })\r\n }\r\n\r\n const handleOnClick = () => {\r\n if(guest.ProfileIsIncognito){\r\n alert(\"Incognito is marked from the guest profile and hence this action cannot be performed. Please visit the profile to make any changes.\");\r\n } \r\n }\r\n\r\n return(\r\n
\r\n {t('INN_Incognito')}\r\n \r\n
\r\n )\r\n}","export const ReservationArrivalListModel = {\r\n Data: {\r\n ClientSerNo: 0,\r\n PropertySerNo: 0,\r\n PageNumber: 1,\r\n SortCol: \"\",\r\n SortType: \"ASC\",\r\n Adult: 0,\r\n Child: 0,\r\n ArrivalDate: \"\",\r\n strRoomType: \"\",\r\n CompanyProfileSerNo: 0,\r\n AgentProfileSerNo: 0,\r\n BookingNo: \"\",\r\n BookingReferenceNo: \"\",\r\n MembershipNo: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n strVIPStatus: \"\",\r\n IsIncognito: false,\r\n strMemberShipLevel: \"\",\r\n ETAFrom: \"\",\r\n ETATo: \"\",\r\n SameDayReservationNArrival: false,\r\n RoomSerNo: 0,\r\n IsRoomAssign: 0,\r\n RoomFeatureSerNo: \"\",\r\n RoomFeatureValueSerNo: \"\",\r\n Nights: 0,\r\n DueoutNAssign: false,\r\n RoomStatus: \"\",\r\n },\r\n};\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnPrimaryButton,\r\n InnTooltip,\r\n InnToastMessage,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport { RoomFeatureModalPopup } from \"../modalPopup/roomFeatureModalPopup\";\r\nimport { ReservationArrivalListModel } from \"../../../../utils/Model/ReservationArrivalListModel\";\r\nimport { GetReservationRoomFeatureBySerNo } from \"../../../../services/reservationService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport function IndiRoomFeature(props) {\r\n const { t } = useTranslation();\r\n const { confirm } = useConfirm();\r\n\r\n //roomfeature popup hide show varible start\r\n const [roomFeaturesPopupShow, setroomFeaturesPopupShow] = useState(false);\r\n //roomfeature popup hide show varible end\r\n //selected Room Feature Data Start\r\n const [selectedRoomFeatureData, setselectedRoomFeatureData] = useState([]);\r\n //Selected Room Feature Data end\r\n const [active, setactive] = useState(false);\r\n const [showEditDiv, setShowEditDiv] = useState(true);//use to show Edit button\r\n const currUser = useSelector(currentUser);\r\n\r\n // const ReservationSerNo = 12;\r\n // const ProfileSerNo = 8;\r\n\r\n //first time load start\r\n useEffect(() => {\r\n if (props.para.ReservationSerNo != undefined) {\r\n GetReservationRoomFeatureBySerNo(\r\n currUser.ClientSerNo,\r\n currUser.PropertySerNo,\r\n props.para.ReservationSerNo\r\n ).then((response) => {\r\n setselectedRoomFeatureData(response.data);\r\n });\r\n }\r\n if (props.para != undefined) {\r\n if (props.para.IsShowTooltipActionButton == \"hide\") {\r\n setShowEditDiv(false);\r\n }\r\n else {\r\n setShowEditDiv(true);\r\n }\r\n }\r\n }, [props.para.ReservationSerNo]);\r\n //first time load end\r\n\r\n //Tooltip start\r\n const RoomFeaturesTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {\" \"}\r\n Room Features ({\" \"}\r\n {selectedRoomFeatureData.length == 0\r\n ? \"0\"\r\n : selectedRoomFeatureData.length}{\" \"}\r\n )\r\n
\r\n
    \r\n {selectedRoomFeatureData.length == undefined ? (\r\n <>\r\n ) : (\r\n selectedRoomFeatureData.map((o) => (\r\n
  • \r\n \r\n {o.DisplayName}\r\n
  • \r\n ))\r\n )}\r\n
\r\n
\r\n
\r\n {\r\n showEditDiv ?\r\n
\r\n {\r\n setroomFeaturesPopupShow(true);\r\n if (props.para.IsSharer == true) {\r\n await confirm({\r\n Message: \"These features are only applied for the sharer reservation and will not be copied to the primary sharing reservation.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n }}>\r\n Edit\r\n \r\n
\r\n :\r\n <>\r\n }\r\n
\r\n );\r\n };\r\n //Tooltip end\r\n return (\r\n <>\r\n {/* */}\r\n \r\n
\r\n {t('INN_RoomFeatures')}\r\n\r\n \r\n (\r\n {selectedRoomFeatureData.length == 0\r\n ? \"0\"\r\n : selectedRoomFeatureData.length}\r\n )\r\n \r\n
\r\n \r\n {roomFeaturesPopupShow == true ? (\r\n setroomFeaturesPopupShow(false)}\r\n handleOnSelect={(selected) => {\r\n let RoomFeatureSerNoStr = \"\";\r\n let RoomFeatureValueSerNoStr = \"\";\r\n if (selected.length > 0) {\r\n selected.map((o) => {\r\n RoomFeatureSerNoStr =\r\n RoomFeatureSerNoStr + o.RoomFeatureSerNo + \",\";\r\n ReservationArrivalListModel.Data.RoomFeatureSerNo =\r\n RoomFeatureSerNoStr;\r\n\r\n RoomFeatureValueSerNoStr =\r\n RoomFeatureValueSerNoStr + o.RoomFeatureValueSerNo + \",\";\r\n ReservationArrivalListModel.Data.RoomFeatureValueSerNo =\r\n RoomFeatureValueSerNoStr;\r\n });\r\n } else {\r\n ReservationArrivalListModel.Data.RoomFeatureSerNo =\r\n RoomFeatureSerNoStr;\r\n\r\n ReservationArrivalListModel.Data.RoomFeatureValueSerNo =\r\n RoomFeatureValueSerNoStr;\r\n }\r\n\r\n setroomFeaturesPopupShow(false);\r\n setselectedRoomFeatureData(selected);\r\n setactive(true);\r\n if (props.onUpdate != undefined) {\r\n setTimeout(() => {\r\n props.onUpdate(true);\r\n }, 2000);\r\n }\r\n }}\r\n data={selectedRoomFeatureData}\r\n >\r\n ) : (\r\n <>\r\n )}\r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { InnPrimaryButton, InnTooltip, useConfirm } from \"../../../../component\";\r\nimport { SpecialModalPopup } from \"../modalPopup/specialModalPopup\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetReservationSpecials } from \"../../../../services/reservationService\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport function IndiSpecial(props) {\r\n const { t } = useTranslation();\r\n const { confirm } = useConfirm();\r\n\r\n //Hide show popup varible start\r\n const [showRoomSpecialsModal, setShowRoomSpecialsModal] = useState(false);\r\n //Hide show popup varible end\r\n //special data varible start\r\n const [specialData, setspecialData] = useState([]);\r\n const [showEditDiv, setShowEditDiv] = useState(true);//use to show Edit button\r\n //special data varible end\r\n const currUser = useSelector(currentUser);\r\n\r\n\r\n //Tooltip start\r\n const SpecialsTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
Specials ({specialData.length})
\r\n
    \r\n {specialData ? (\r\n specialData.map((d) => (\r\n
  • \r\n \r\n {d.Name}\r\n
  • \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n
\r\n
\r\n
\r\n {\r\n showEditDiv ?\r\n
\r\n {\r\n if (props.para.IsSharer == true) {\r\n await confirm({\r\n Message: \"These features are only applied for the sharer reservation and will not be copied to the primary sharing reservation.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n setShowRoomSpecialsModal(!showRoomSpecialsModal);\r\n }}\r\n >\r\n Edit\r\n \r\n
\r\n :\r\n <>\r\n }\r\n
\r\n );\r\n };\r\n //Tooltip end\r\n\r\n //First Time Load useeffect start\r\n useEffect(() => {\r\n if (props.para.ReservationSerNo != undefined) {\r\n GetReservationSpecials(\r\n currUser.ClientSerNo,\r\n currUser.PropertySerNo,\r\n props.para.ReservationSerNo\r\n ).then((response) => {\r\n setspecialData(response.data);\r\n console.log(\"special data \", response.data);\r\n });\r\n }\r\n if (props.para != undefined) {\r\n if (props.para.IsShowTooltipActionButton == \"hide\") {\r\n setShowEditDiv(false);\r\n }\r\n else {\r\n setShowEditDiv(true);\r\n }\r\n }\r\n }, [props.para.ReservationSerNo]);\r\n //First Time Load useeffect end\r\n return (\r\n <>\r\n \r\n
\r\n {t('INN_Specials')}\r\n\r\n ({specialData.length})\r\n
\r\n \r\n\r\n {showRoomSpecialsModal ? (\r\n setShowRoomSpecialsModal(false)}\r\n hanldeOnSelection={(v) => {\r\n setShowRoomSpecialsModal(false);\r\n setspecialData(v);\r\n if (props.onUpdate != undefined) {\r\n setTimeout(() => {\r\n props.onUpdate(true);\r\n }, 2000);\r\n }\r\n }}\r\n >\r\n ) : null}\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport function IndiEarlyArrival(props) {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n
\r\n {\r\n props.para.ArrivalHours == \"0\" ?\r\n <> {t('INN_ArrivalTime')}\r\n \r\n :\r\n <>Early Arrival ({props.para.ArrivalHours} hrs)\r\n } \r\n {props.para.ActualArrivalTime}\r\n
\r\n )\r\n}","import React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport function IndiLateDeparture(props) {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n
\r\n {\r\n props.para.DepartureHours == \"0\" ?\r\n <> {t('INN_DepartureTime')}\r\n \r\n :\r\n <>Late Departure ({props.para.DepartureHours} hrs)\r\n } \r\n {props.para.ActualDepartureTime}\r\n
\r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnSingleSelectDropdown,\r\n InnTooltip,\r\n InnLoader,\r\n InnButtonTypeWithDropdown,\r\n InnTextbox,\r\n useConfirm,\r\n InnDataGrid\r\n} from \"../../../../component\";\r\nimport {\r\n GetAlertCombo,\r\n GetAreaofAlertCombo,\r\n GetAlertData,\r\n AddEditReservationViewAlert,\r\n GetAlertToolTipData,\r\n DeleteReservationAlertData,\r\n GetReservationInfoSalesMarketingData,\r\n} from \"../../../../services/reservationService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { ManageRights } from \"../../../../services/generalService\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport function IndiAlert(props) {\r\n const { t } = useTranslation();\r\n const { confirm } = useConfirm();\r\n\r\n //#region Local Variable\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: 0,\r\n ReservationAlertSerNo: 0,\r\n AlertSerNo: 0,\r\n FunctionalAreaSerNo: 0,\r\n DeliveryType: \"\",\r\n AdditionalNote: \"\",\r\n PurgeAfterDays: \"0\",\r\n Mode: \"View\",\r\n };\r\n const validationObj = {\r\n PurgeAfterDays: 0,\r\n DeliveryType: \"\",\r\n AdditionalNote: \"\",\r\n };\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n const columHeaderAlert = [\r\n { key: \"Alerts\", value: \"alert\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Area Of Alert\", value: \"area\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Delivery Type\", value: \"delivery\", type: \"txt\", sorting: \"Y\" },\r\n {\r\n key: \"Purge\",\r\n value: \"PurgeAfterDays\",\r\n type: \"txt\",\r\n sorting: \"Y\",\r\n align: \"center\",\r\n },\r\n {\r\n key: \"Created By\",\r\n value: \"UserID\",\r\n type: \"texticon\",\r\n sorting: \"N\",\r\n align: \"left\",\r\n icon: \"info-dark-gray-icon mrgn-lt5\",\r\n iconposition: \"left\",\r\n },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n const setSelectedItem = (items) => {\r\n SetgridSelectedItem(items);\r\n settemp(!temp);\r\n };\r\n const optBtnData = [\r\n { key: \"Edit\", value: \"Edit\" },\r\n { key: \"Delete\", value: \"Delete\" },\r\n ];\r\n //#endregion\r\n //#region state variable\r\n const [isActive, setIsActive] = useState(false);\r\n const [alertObj, setAlertObj] = useState(defaultObj);\r\n const [alertEditObj, setAlertEditObj] = useState(defaultObj);\r\n const [alertComboData, setAlertComboData] = useState([]);\r\n const [areaOfAlertComboData, setAreaOfAlertComboData] = useState([]);\r\n const [alertData, setAlertData] = useState([]);\r\n const [alertValidation, setAlertValidation] = useState(validationObj);\r\n const [popUp, setPopUp] = useState(false);\r\n const [mobile, setMobile] = useState(false);\r\n const [report, setReport] = useState(false);\r\n const [gridSelectedItem, SetgridSelectedItem] = useState([]);\r\n const [temp, settemp] = useState(false);\r\n const [showAlertPopup, setAlertPopup] = useState(false);\r\n const [showEditDiv, setShowEditDiv] = useState(true)//use to show Edit button\r\n const [userRightsData, setUserRightsData] = useState([]);\r\n const [resObj, setResObj] = useState({});\r\n\r\n //#endregion\r\n //#region UseEffect\r\n useEffect(() => {\r\n fillAlertGrid();\r\n //getReservationInfo();\r\n if (props.para != undefined) {\r\n if (props.para.IsShowTooltipActionButton == \"hide\") {\r\n setShowEditDiv(false)\r\n }\r\n else {\r\n setShowEditDiv(true)\r\n }\r\n }\r\n }, [props.para.ReservationSerNo]);\r\n useEffect(() => {\r\n if (showAlertPopup) {\r\n fillAlertCombo();\r\n fillAlertGrid();\r\n getReservationInfo();\r\n }\r\n }, [showAlertPopup]);\r\n useEffect(() => {\r\n fillUserRights();\r\n }, [])\r\n //#endregion\r\n //#region custom function\r\n const fillAlertCombo = () => {\r\n setIsActive(true);\r\n GetAlertCombo(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo)\r\n ).then((d) => {\r\n setAlertComboData(d.data);\r\n setIsActive(false);\r\n });\r\n GetAreaofAlertCombo(parseInt(currUser.ClientSerNo)).then((d) => {\r\n setAreaOfAlertComboData(d.data);\r\n setIsActive(false);\r\n });\r\n };\r\n\r\n const getReservationInfo = () => {\r\n GetReservationInfoSalesMarketingData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), props.para.ReservationSerNo).then(d => {\r\n setResObj(d.data);\r\n });\r\n }\r\n\r\n const fillAlertGrid = () => {\r\n setIsActive(true);\r\n GetAlertData(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n props.para.ReservationSerNo\r\n ).then((a) => {\r\n setIsActive(false);\r\n //console.log(\"AlertData\",a.data);\r\n let tempData = a.data;\r\n tempData.forEach((ele) => {\r\n let tempTool = [];\r\n let tempEntryDate = { tooltip: \"Date\" + \": \" + ele.EntryDate };\r\n let tempEntryTime = { tooltip: \"Time\" + \": \" + ele.EntryTime };\r\n //let tempUser = { tooltip: ele.UserID };\r\n tempTool.push(tempEntryDate);\r\n tempTool.push(tempEntryTime);\r\n // tempTool.push(tempUser);\r\n ele.srno = ele.AlertSerNo;\r\n ele.TooltipContent = tempTool;\r\n ele.TooltipContentType = \"multi\";\r\n ele.Mode = \"View\";\r\n ele.UserID = \"SuperUser\";\r\n if (ele.PurgeAfterDays == 0) {\r\n ele.PurgeAfterDays = \"NA\";\r\n }\r\n });\r\n console.log(\"Alert data\", tempData);\r\n setAlertData(tempData);\r\n if (tempData.length > 0) {\r\n if (tempData[0].PurgeAfterDays == 0) {\r\n tempData[0].PurgeAfterDays = \"NA\";\r\n }\r\n if (tempData[0].delivery == \"Mobile\") {\r\n setMobile(true);\r\n setPopUp(false);\r\n setReport(false);\r\n }\r\n if (tempData[0].delivery == \"PopUp\") {\r\n setPopUp(true);\r\n setReport(false);\r\n setMobile(false);\r\n }\r\n if (tempData[0].delivery == \"Report\") {\r\n setReport(true);\r\n setPopUp(false);\r\n setMobile(false);\r\n }\r\n setAlertObj(tempData[0]);\r\n }\r\n else {\r\n setAlertObj(defaultObj);\r\n setPopUp(false);\r\n setMobile(false);\r\n setReport(false);\r\n }\r\n });\r\n };\r\n const fillUserRights = () => {\r\n ManageRights(currUser.ClientSerNo, currUser.UserID, \"36,37\").then((d) => {\r\n if (d.data.length > 0) {\r\n setUserRightsData(d.data);\r\n }\r\n else {\r\n console.log(\"No user rights\");\r\n }\r\n })\r\n }\r\n const handleUserRights = async (strRightsSerNo) => {\r\n if (strRightsSerNo != undefined) {\r\n const userRightObj = userRightsData.find((x) => x.RightsSerNo == strRightsSerNo);\r\n if (userRightObj != undefined) {\r\n if (userRightObj.IsApply != undefined) {\r\n if (userRightObj.IsApply) {\r\n return true;\r\n } else {\r\n await confirm({\r\n Message: `${userRightObj.Name} : ${userRightObj.PromptMessage}`,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n }\r\n };\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (alertObj.AlertSerNo == 0) {\r\n isValid = false;\r\n setAlertValidation((prev) => ({ ...prev, AlertSerNo: \"Invalid input\" }));\r\n }\r\n if (alertObj.FunctionalAreaSerNo == 0) {\r\n isValid = false;\r\n setAlertValidation((prev) => ({\r\n ...prev,\r\n FunctionalAreaSerNo: \"Invalid input\",\r\n }));\r\n }\r\n if (alertObj.AdditionalNote == \"\") {\r\n isValid = false;\r\n setAlertValidation((prev) => ({\r\n ...prev,\r\n AdditionalNote: \"Invalid input\",\r\n }));\r\n }\r\n if (\r\n alertObj.PurgeAfterDays == \"\" ||\r\n (isNaN(+alertObj.PurgeAfterDays.toString()) && alertObj.PurgeAfterDays != 0) ||\r\n parseInt(alertObj.PurgeAfterDays) < 0 //||\r\n // alertObj.PurgeAfterDays.includes(\".\")\r\n ) {\r\n isValid = false;\r\n setAlertValidation((prev) => ({\r\n ...prev,\r\n PurgeAfterDays: \"text not Allowed\",\r\n }));\r\n }\r\n if (popUp == false && mobile == false && report == false) {\r\n isValid = false;\r\n setAlertValidation((prev) => ({ ...prev, popUp: \"Invalid input\" }));\r\n }\r\n return isValid;\r\n };\r\n const clearValidation = () => {\r\n setPopUp(false);\r\n setMobile(false);\r\n setReport(false);\r\n setAlertValidation(validationObj);\r\n };\r\n //#endregion\r\n //#region Events\r\n const handleOnAddClick = () => {\r\n setPopUp(false);\r\n setMobile(false);\r\n setReport(false);\r\n let obj = defaultObj;\r\n obj.Mode = \"Add\";\r\n obj.UserID = \"SuperUser\";\r\n //console.log(\"Alert\", obj);\r\n setAlertObj(obj);\r\n };\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n setIsActive(true);\r\n alertObj.ReservationSerNo = props.para.ReservationSerNo;\r\n alertObj.PurgeAfterDays = parseInt(alertObj.PurgeAfterDays);\r\n alertObj.UserID = \"SuperUser\";\r\n const NewArray = [];\r\n\r\n if (popUp == true) {\r\n let obj = JSON.parse(JSON.stringify(alertObj));\r\n obj.DeliveryType = \"pop\";\r\n NewArray.push(obj);\r\n }\r\n if (mobile == true) {\r\n let obj2 = JSON.parse(JSON.stringify(alertObj));\r\n obj2.DeliveryType = \"mob\";\r\n NewArray.push(obj2);\r\n }\r\n if (report == true) {\r\n let obj3 = JSON.parse(JSON.stringify(alertObj));\r\n obj3.DeliveryType = \"rep\";\r\n NewArray.push(obj3);\r\n }\r\n //console.log(\"newArray\", NewArray);\r\n AddEditReservationViewAlert(NewArray).then((d) => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n fillAlertGrid();\r\n } else {\r\n alert(\"Something went wrong\");\r\n }\r\n });\r\n setAlertObj((prev) => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alert(\r\n \"One or more field has an invalid entry. Please verify accordingly.\"\r\n );\r\n }\r\n };\r\n const hanldeOnCancelClick = () => {\r\n setAlertObj((prev) => ({ ...prev, Mode: \"View\" }));\r\n if (alertObj.Mode == \"Add\") {\r\n clearValidation();\r\n setAlertObj(defaultObj);\r\n }\r\n if (alertObj.Mode == \"Edit\") {\r\n setAlertObj(alertEditObj);\r\n }\r\n };\r\n\r\n //#endregion\r\n\r\n const AlertTooltip = () => {\r\n return (\r\n
\r\n
\r\n {alertData &&\r\n alertData.map((d) => (\r\n <>\r\n
\r\n
\r\n {d.alert} {d.delivery}\r\n
\r\n
{d.AdditionalNote}
\r\n
\r\n \r\n ))}\r\n
\r\n {\r\n showEditDiv ?\r\n
\r\n {\r\n handleUserRights(\"36\").then(d => {\r\n if (d) {\r\n setAlertPopup(!showAlertPopup)\r\n }\r\n else {\r\n console.log(\"No Operation\")\r\n }\r\n })\r\n }}>\r\n Edit\r\n \r\n {/* console.log(item, name)}\r\n > */}\r\n
\r\n :\r\n <>\r\n }\r\n
\r\n );\r\n };\r\n return (\r\n <>\r\n \r\n
\r\n {t('INN_Alerts')}\r\n ({alertData.length})\r\n
\r\n
\r\n\r\n {showAlertPopup ? (\r\n {\r\n setAlertPopup(!showAlertPopup)\r\n setAlertObj(defaultObj)\r\n }}\r\n >\r\n \r\n
\r\n
\r\n
\r\n

Alerts

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    Confirmation No.
    \r\n {/* {console.log(alertData)} */}\r\n
    {resObj.BookingNo}
    \r\n
  • \r\n
  • \r\n
    Guest Name
    \r\n
    \r\n {resObj.GuestName}\r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ({\r\n key: AlertSerNo,\r\n value: Name,\r\n }))}\r\n name=\"Single Select\"\r\n label=\"Alert\"\r\n selectedSerNo={alertObj.AlertSerNo}\r\n onChange={(item) =>\r\n\r\n setAlertObj((prev) => ({\r\n ...prev,\r\n AlertSerNo: item.key,\r\n }))\r\n }\r\n >\r\n
\r\n
\r\n ({\r\n key: FunctionalAreaSerNo,\r\n value: Name,\r\n })\r\n )}\r\n name=\"Single Select\"\r\n label=\"Area Of Alert\"\r\n selectedSerNo={alertObj.FunctionalAreaSerNo}\r\n onChange={(item) =>\r\n setAlertObj((prev) => ({\r\n ...prev,\r\n FunctionalAreaSerNo: item.key,\r\n }))\r\n }\r\n >\r\n
\r\n \r\n Delivery Type\r\n
\r\n setPopUp(ischecked)}\r\n >\r\n Popup\r\n \r\n setMobile(ischecked)}\r\n >\r\n Mobile App\r\n \r\n setReport(ischecked)}\r\n >\r\n Report\r\n \r\n\r\n {\r\n setAlertObj((prev) => ({ ...prev, AdditionalNote: v }));\r\n setAlertValidation((prev) => ({\r\n ...prev,\r\n AdditionalNote: \"\",\r\n }));\r\n }}\r\n >\r\n Description\r\n \r\n
\r\n {\r\n setAlertObj((prev) => ({ ...prev, PurgeAfterDays: v }));\r\n setAlertValidation((prev) => ({\r\n ...prev,\r\n PurgeAfterDays: \"\",\r\n }));\r\n }}\r\n >\r\n Purge Days\r\n \r\n
\r\n
\r\n {alertObj.Mode == \"View\" ? (\r\n <>\r\n \r\n Add Alert\r\n \r\n \r\n ) : (\r\n <>\r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 0 && alertData[0].ReservationAlertSerNo != 0) ? alertData : null}\r\n getSelectedItem={(items) => {\r\n setSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n handleIconClick={(d) => {\r\n console.log(d);\r\n //setShowAlertGridTooltip(true);\r\n }}\r\n optData={optBtnData}\r\n optClick={(v, d) => {\r\n if (v.key == \"Edit\") {\r\n handleUserRights(\"36\").then(d => {\r\n if (d) {\r\n setAlertObj((prev) => ({\r\n ...prev,\r\n Mode: \"Edit\",\r\n }));\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n\r\n } else {\r\n handleUserRights(\"37\").then(d => {\r\n if (d) {\r\n setIsActive(true);\r\n DeleteReservationAlertData(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n props.para.ReservationSerNo,\r\n alertObj.ReservationAlertSerNo\r\n ).then((d) => {\r\n fillAlertGrid();\r\n });\r\n setIsActive(false);\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n\r\n // }\r\n }\r\n }}\r\n fixedHeaderNo={1}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n rowdata.Mode = \"View\";\r\n if (rowdata.delivery == \"Mobile\") {\r\n setMobile(true);\r\n setPopUp(false);\r\n setReport(false);\r\n }\r\n if (rowdata.delivery == \"PopUp\") {\r\n setPopUp(true);\r\n setReport(false);\r\n setMobile(false);\r\n }\r\n if (rowdata.delivery == \"Report\") {\r\n setReport(true);\r\n setPopUp(false);\r\n setMobile(false);\r\n }\r\n setAlertObj(rowdata);\r\n setAlertEditObj(rowdata);\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n ) : null}\r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnSingleSelectDropdown,\r\n InnTooltip,\r\n InnButtonTypeWithDropdown,\r\n InnSingleDateSelection,\r\n InnLoader,\r\n InnTimeSelection,\r\n useConfirm,\r\n InnDataGrid\r\n} from \"../../../../component\";\r\nimport {\r\n GetDepartmentCombo,\r\n GetTraceCombo,\r\n AddEditReservationAlertTrace,\r\n GetAlertTraceData,\r\n DeleteReservationAlertTrace,\r\n GetPropertyParameterByKeys,\r\n} from \"../../../../services/reservationService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport Moment from \"moment\";\r\nimport moment from \"moment\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useAlert } from \"../../../../utils/hooks/useAlert\";\r\nimport { ManageRights } from \"../../../../services/generalService\";\r\n\r\nexport function IndiTrace(props) {\r\n const { t } = useTranslation();\r\n const { innkeyAlert } = useAlert();\r\n\r\n //#region Local Variable\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: props.para.ReservationSerNo,\r\n DepartmentSerNo: 0,\r\n TraceSerNo: 0,\r\n TraceSubSerNo: 0,\r\n AdditionalNote: \"\",\r\n Date: null,\r\n Date1: null,\r\n Date2: null,\r\n Time: null,\r\n fromdate: null,\r\n todate: null,\r\n Status: \"Open\",\r\n DeliveryUser: \"Super\",\r\n DeliveryDatetime: \"1-jan-2022\",\r\n Mode: \"View\",\r\n };\r\n const validationObj = {\r\n TraceSerNo: 0,\r\n DepartmentSerNo: 0,\r\n AdditionalNote: \"\",\r\n Date: \"\",\r\n Time: \"\",\r\n };\r\n const obj = [\r\n {\r\n TraceSerNo: \"\",\r\n Name: \"\",\r\n },\r\n ];\r\n //#endregion\r\n\r\n //#region State Variable\r\n const [isActive, setIsActive] = useState(false);\r\n const [traceObj, setTraceObj] = useState(defaultObj);\r\n const [traceData, setTraceData] = useState([]);\r\n const [traceToolTip, setTraceToolTip] = useState();\r\n const [traceCombo, setTraceCombo] = useState([]);\r\n const [departmentCombo, setDepartmentCombo] = useState([]);\r\n const [showTracePopup, setTracePopup] = useState(false);\r\n const [traceValidation, setTraceValidation] = useState(validationObj);\r\n const [gridSelectedItem, SetgridSelectedItem] = useState([]);\r\n const [temp, settemp] = useState(false);\r\n const [linkInfo, setlinkInfo] = useState({});\r\n\r\n const [traceEditObj, setTraceEditObj] = useState(defaultObj);\r\n const [showEditDiv, setShowEditDiv] = useState(true);//use to show Edit button\r\n const [userRightsData, setUserRightsData] = useState([]);\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n\r\n //#endregion\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n fillTraceGrid();\r\n if (props.para != undefined) {\r\n if (props.para.IsShowTooltipActionButton == \"hide\") {\r\n setShowEditDiv(false);\r\n }\r\n else {\r\n setShowEditDiv(true);\r\n }\r\n }\r\n }, [props.para.ReservationSerNo]);\r\n useEffect(() => {\r\n if (showTracePopup) {\r\n fillDepartmentCombo();\r\n fillTraceGrid();\r\n }\r\n }, [showTracePopup]);\r\n useEffect(() => {\r\n fillUserRights();\r\n fillPropertyParameter();\r\n }, []);\r\n //#endregion\r\n\r\n //#region Custom Function\r\n const fillUserRights = () => {\r\n ManageRights(currUser.ClientSerNo, currUser.UserID, \"38,39\").then((d) => {\r\n if (d.data.length > 0) {\r\n setUserRightsData(d.data);\r\n }\r\n else {\r\n console.log(\"No user rights\");\r\n }\r\n });\r\n };\r\n const fillPropertyParameter = () => {\r\n GetPropertyParameterByKeys(currUser.ClientSerNo, currUser.PropertySerNo, \"BusinessDate\").then((d) => {\r\n let obj = d.data.find((x) => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(d.data[0].value);\r\n }\r\n });\r\n };\r\n const fillTraceGrid = () => {\r\n if (props.para.ReservationSerNo) {\r\n setIsActive(true);\r\n GetAlertTraceData(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n props.para.ReservationSerNo\r\n ).then((d) => {\r\n console.log(d.data);\r\n if (d.status == 200) {\r\n let tempData = d.data;\r\n tempData.filter((ele) => ele.trace != null).forEach((ele) => {\r\n let tempTool = [];\r\n let tempCreated = { tooltip: \"Created By :\" + \" \" + ele.created };\r\n let tempDate = { tooltip: \"Date :\" + \" \" + ele.Date };\r\n let tempTime = { tooltip: \"Time :\" + \" \" + ele.Time };\r\n tempTool.push(tempCreated);\r\n tempTool.push(tempDate);\r\n tempTool.push(tempTime);\r\n ele.TooltipContent = tempTool;\r\n ele.TooltipContentType = \"multi\";\r\n\r\n // let date2 = ele.fromdate;\r\n // ele.fromdate = Moment(date2).format(\"DD-MMM-YYYY\");\r\n // let date1 = ele.todate;\r\n // ele.todate = Moment(date1).format(\"DD-MMM-YYYY\");\r\n ele.Date1 = Moment(ele.Date1).format(\"DD-MMM-YYYY\");\r\n ele.Date2 = Moment(ele.Date2).format(\"DD-MMM-YYYY\");\r\n ele.Date = Moment(ele.Date).format(\"DD-MMM-YYYY\");\r\n // let date3 = ele.Date;\r\n // ele.Date2 = Moment(date3).format(\"DD-MMM-YYYY\");\r\n\r\n let Time = ele.Time;\r\n ele.Time = \"14-jan-2001 \" + Time;\r\n ele.Mode = \"View\";\r\n });\r\n setTraceData(tempData);\r\n if (tempData[0] != undefined && tempData[0].trace != null) {\r\n setTraceObj(tempData[0]);\r\n getTraceComboData(tempData[0].DepartmentSerNo);\r\n }\r\n\r\n // var groupedPeople = groupArrayOfObjects(tempData, [\"DeprartmentSerNo\",\"TraceSerNo\"]);\r\n var groups = [\"DeprartmentSerNo\", \"TraceSerNo\"];\r\n var grouped = {};\r\n tempData.filter((ele) => ele.trace != null).forEach(function (a) {\r\n groups\r\n .reduce(function (o, g, i) {\r\n // take existing object,\r\n o[a[g]] = o[a[g]] || (i + 1 === groups.length ? [] : {}); // or generate new obj, or\r\n return o[a[g]]; // at last, then an array\r\n }, grouped)\r\n .push(a);\r\n });\r\n var pp = tempData.filter(\r\n (ele, ind) =>\r\n ind ===\r\n tempData.findIndex(\r\n (elem) =>\r\n elem.DepartmentSerNo === ele.DepartmentSerNo &&\r\n elem.TraceSerNo === ele.TraceSerNo && ele.trace != null\r\n )\r\n );\r\n pp.forEach((el) => {\r\n // grouped.forEach(e2 =>{\r\n let temp = [];\r\n tempData.forEach((i) => {\r\n if (\r\n el.DepartmentSerNo == i.DepartmentSerNo &&\r\n el.TraceSerNo == i.TraceSerNo\r\n ) {\r\n let tempEntryDate = {\r\n Time: i.Time,\r\n Date: i.Date,\r\n Status: i.Status,\r\n };\r\n temp.push(tempEntryDate);\r\n }\r\n });\r\n el.Times = temp;\r\n });\r\n\r\n console.log(pp);\r\n setTraceToolTip(pp);\r\n if (d.data.filter(x => x.trace != null || x.trace != undefined).length == 0) {\r\n setTraceObj(defaultObj);\r\n }\r\n }\r\n });\r\n setIsActive(false);\r\n }\r\n };\r\n const getTraceComboData = (departmentSerNo) => {\r\n GetTraceCombo(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo), departmentSerNo).then((d) => {\r\n setTraceCombo(d.data);\r\n });\r\n };\r\n const groupArrayOfObjects = (list, key) => {\r\n return list.reduce(function (rv, x) {\r\n (rv[x[key]] = rv[x[key]] || []).push(x);\r\n return rv;\r\n }, {});\r\n };\r\n const fillDepartmentCombo = () => {\r\n setIsActive(true);\r\n GetDepartmentCombo(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo)\r\n ).then((d) => {\r\n setDepartmentCombo(d.data);\r\n getTraceComboData(d.data[0].DepartmentSerNo);\r\n });\r\n setIsActive(false);\r\n };\r\n const fillTraceData = (e) => {\r\n setIsActive(true);\r\n setTraceObj((prev) => ({ ...prev, TraceSerNo: 0 }));\r\n getTraceComboData(e.key);\r\n setIsActive(false);\r\n };\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (traceObj.DepartmentSerNo == 0) {\r\n isValid = false;\r\n setTraceValidation((prev) => ({\r\n ...prev,\r\n DepartmentSerNo: \"Invalid input\",\r\n }));\r\n }\r\n if (traceObj.TraceSerNo == 0) {\r\n isValid = false;\r\n setTraceValidation((prev) => ({ ...prev, TraceSerNo: \"Invalid input\" }));\r\n }\r\n if (traceObj.Date == \"\") {\r\n isValid = false;\r\n setTraceValidation((prev) => ({ ...prev, Date: \"Invalid input\" }));\r\n }\r\n if (traceObj.Date1 == \"\") {\r\n isValid = false;\r\n setTraceValidation((prev) => ({ ...prev, Date: \"Invalid input\" }));\r\n }\r\n if (traceObj.Time == \"\") {\r\n isValid = false;\r\n setTraceValidation((prev) => ({ ...prev, Time: \"Invalid input\" }));\r\n }\r\n return isValid;\r\n };\r\n const fillTraceOnchange = (rowdata) => {\r\n setIsActive(true);\r\n setTraceObj((prev) => ({ ...prev, TraceSerNo: 0 }));\r\n getTraceComboData(rowdata.DepartmentSerNo);\r\n setTraceObj((prev) => ({ ...prev, TraceSerNo: rowdata.TraceSerNo }));\r\n setIsActive(false);\r\n };\r\n //#endregion\r\n\r\n //#region Events\r\n const handleOnAddClick = () => {\r\n let obj = defaultObj;\r\n obj.Mode = \"Add\";\r\n let now = Moment();\r\n if (traceData.length > 0 && traceData[0] != undefined) {\r\n obj.Date1 = traceData[0].ArrivalDate;\r\n obj.Date2 = traceData[0].DepartureDate;\r\n }\r\n else {\r\n obj.Date1 = now.format();\r\n obj.Date2 = now.format();\r\n\r\n }\r\n obj.Time = now.format();\r\n setTraceObj(obj);\r\n };\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n AddEditReservationAlertTrace(traceObj).then((d) => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n fillTraceGrid();\r\n } else {\r\n setIsActive(false);\r\n alert(\"Something went wrong\");\r\n }\r\n });\r\n setIsActive(false);\r\n setTraceObj((prev) => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alert(\r\n \"One or more field has an invalid entry. Please verify accordingly.\"\r\n );\r\n }\r\n };\r\n const hanldeOnCancelClick = async () => {\r\n let IsReset = await innkeyAlert(\"Would you like to reset all the fields ?\");\r\n if (IsReset) {\r\n if (traceObj.Mode == \"Add\") {\r\n setTraceValidation(validationObj);\r\n setTraceObj(defaultObj);\r\n }\r\n if (traceObj.Mode == \"Edit\") {\r\n setTraceObj(traceEditObj);\r\n }\r\n }\r\n\r\n };\r\n\r\n const hanldeOnDeleteClick = async () => {\r\n let conf = await innkeyAlert(\"Would you like to delete the trace request?\");\r\n if (conf) {\r\n DeleteReservationAlertTrace(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n props.para.ReservationSerNo,\r\n traceObj.TraceSerNo,\r\n traceObj.DepartmentSerNo,\r\n traceObj.Date\r\n ).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n }\r\n fillTraceGrid();\r\n });\r\n }\r\n setIsActive(false);\r\n console.log(traceData.length);\r\n\r\n };\r\n const handleUserRights = async (strRightsSerNo) => {\r\n if (strRightsSerNo != undefined) {\r\n const userRightObj = userRightsData.find((x) => x.RightsSerNo == strRightsSerNo);\r\n if (userRightObj != undefined) {\r\n if (userRightObj.IsApply != undefined) {\r\n if (userRightObj.IsApply) {\r\n return true;\r\n } else {\r\n await confirm({\r\n Message: `${userRightObj.Name} : ${userRightObj.PromptMessage}`,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n }\r\n };\r\n //#endregion\r\n\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n const selectdata = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n const columHeaderTrace = [\r\n { key: \"Department\", value: \"dep\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Trace\", value: \"trace\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Date\", value: \"Date\", type: \"txt\", sorting: \"Y\" },\r\n // { key: \"From Date\", value: \"fromdate\", type: \"txt\", sorting: \"Y\" },\r\n // { key: \"To Date\", value: \"todate\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Time\", value: \"time\", type: \"txt\", sorting: \"Y\" },\r\n {\r\n key: \"Created By\",\r\n value: \"created\",\r\n type: \"texticon\",\r\n sorting: \"N\",\r\n align: \"left\",\r\n icon: \"info-dark-gray-icon mrgn-lt5\",\r\n iconposition: \"right\",\r\n },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n const [filterDataTrace] = useState([\r\n {\r\n dep: \"Travel Desk\",\r\n trace: \"Airport Pickup\",\r\n fromdate: \"25th Sept\",\r\n todate: \"27th Sept\",\r\n time: \"09:30\",\r\n created: \"Rohan Shah\",\r\n Action: \"...\",\r\n TooltipContent: [\r\n { tooltip: \"By Rohan Shah\" },\r\n { tooltip: \"Date : 25th Sept.\" },\r\n { tooltip: \"Time : 15:45\" },\r\n { tooltip: \"PC : 192.168.100.37\" },\r\n ],\r\n TooltipContentType: \"multi\",\r\n },\r\n {\r\n dep: \"Housekeeping\",\r\n trace: \"Provide Rollover Bed\",\r\n fromdate: \"25th Sept\",\r\n todate: \"27th Sept\",\r\n time: \"09:30\",\r\n created: \"Rohan Shah\",\r\n Action: \"...\",\r\n TooltipContent: [\r\n { tooltip: \"By Rohan Shah\" },\r\n { tooltip: \"Date : 25th Sept.\" },\r\n { tooltip: \"Time : 15:45\" },\r\n { tooltip: \"PC : 192.168.100.37\" },\r\n ],\r\n TooltipContentType: \"multi\",\r\n },\r\n {\r\n dep: \"Travel Desk\",\r\n trace: \"Full Day Taxi\",\r\n fromdate: \"25th Sept\",\r\n todate: \"27th Sept\",\r\n time: \"09:30\",\r\n created: \"Rohan Shah\",\r\n Action: \"...\",\r\n TooltipContent: [\r\n { tooltip: \"By Rohan Shah\" },\r\n { tooltip: \"Date : 25th Sept.\" },\r\n { tooltip: \"Time : 15:45\" },\r\n { tooltip: \"PC : 192.168.100.37\" },\r\n ],\r\n TooltipContentType: \"multi\",\r\n },\r\n ]);\r\n const setSelectedItem = (items) => {\r\n SetgridSelectedItem(items);\r\n settemp(!temp);\r\n };\r\n const optBtnData = [\r\n { key: \"Edit\", value: \"Edit\" },\r\n { key: \"Delete\", value: \"Delete\" },\r\n ];\r\n\r\n //grid link info\r\n const handleTraceTime = (e) => {\r\n let d = new Date(\"1-jan-2001 \" + e);\r\n setTraceObj((prev) => ({\r\n ...prev,\r\n Time: Moment(d).format(\"DD-MMM-YYYY HH:mm\"),\r\n }));\r\n };\r\n\r\n const TraceTooltip = () => {\r\n return (\r\n
\r\n
\r\n {traceToolTip &&\r\n traceToolTip.map((d) => (\r\n <>\r\n
\r\n
\r\n {d.dep} {d.Status}\r\n
\r\n
{d.trace}
\r\n {d.Times.map((l) => (\r\n <>\r\n
\r\n ( {Moment(l.Date).format(\"DD-MMM-YYYY\")}{\" \"}\r\n {Moment(l.Time).format(\"HH:mm\")})\r\n {l.Status}\r\n
\r\n \r\n ))}\r\n
\r\n \r\n ))}\r\n
{\r\n showEditDiv ?\r\n
\r\n setTracePopup(!showTracePopup)}>\r\n Edit\r\n \r\n {/* console.log(item, name)}\r\n > */}\r\n
\r\n :\r\n <>\r\n }\r\n
\r\n );\r\n };\r\n return (\r\n <>\r\n \r\n
\r\n {t('INN_AlertsNTrace')}\r\n ({(traceData.length > 0 && traceData[0].trace != null ? traceData.length : 0)})\r\n
\r\n \r\n\r\n {showTracePopup ? (\r\n {\r\n setTracePopup(!showTracePopup);\r\n setTraceObj(defaultObj);\r\n }}\r\n >\r\n \r\n
\r\n
\r\n
\r\n

Alert & Trace

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    Confirmation No.
    \r\n
    {\r\n (traceData.length > 0 && traceData[0] != undefined ?\r\n traceData[0].BookingNo : \"\")}\r\n
    \r\n
  • \r\n
  • \r\n
    Guest Name
    \r\n
    {(traceData.length > 0 && traceData[0] != undefined ?\r\n traceData[0].GuestName : \"\")}\r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n //console.log((new Date(traceObj.Time).getTime()))\r\n console.log(new Date().getTime())\r\n }\r\n ({\r\n key: DepartmentSerNo,\r\n value: Name,\r\n }))\r\n }\r\n name=\"Single Select\"\r\n label=\"Department\"\r\n selectedSerNo={traceObj.DepartmentSerNo}\r\n onChange={(item, name) => {\r\n console.log(item);\r\n setTraceObj((prev) => ({\r\n ...prev,\r\n DepartmentSerNo: item.key,\r\n }));\r\n setTraceValidation((prev) => ({\r\n ...prev,\r\n DepartmentSerNo: 0,\r\n }));\r\n fillTraceData(item);\r\n }}\r\n >\r\n
\r\n
\r\n ({\r\n key: TraceSerNo,\r\n value: Name,\r\n }))}\r\n name=\"Single Select\"\r\n label=\"Trace\"\r\n selectedSerNo={traceObj.TraceSerNo}\r\n onChange={(item) => {\r\n setTraceObj((prev) => ({\r\n ...prev,\r\n TraceSerNo: item.key,\r\n }));\r\n setTraceObj((prev) => ({\r\n ...prev,\r\n AdditionalNote: item.value,\r\n }));\r\n setTraceValidation((prev) => ({\r\n ...prev,\r\n TraceSerNo: 0,\r\n }));\r\n }}\r\n >\r\n
\r\n {\r\n setTraceObj((prev) => ({ ...prev, AdditionalNote: v }));\r\n }}\r\n >\r\n Description\r\n \r\n {traceObj.Mode == \"Add\" ? (\r\n
\r\n {\r\n setTraceObj((prev) => ({ ...prev, Date1: e }));\r\n setTraceValidation((prev) => ({\r\n ...prev,\r\n Date1: \"\",\r\n }));\r\n }}\r\n placeholder=\"Date\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"From Date\"\r\n selected={traceObj.Date1}\r\n >\r\n {\r\n setTraceObj((prev) => ({ ...prev, Date2: e }));\r\n setTraceValidation((prev) => ({\r\n ...prev,\r\n Date2: \"\",\r\n }));\r\n }}\r\n placeholder=\"Date\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"To Date\"\r\n selected={traceObj.Date2}\r\n >\r\n
\r\n ) : (\r\n new Date().getTime()) ? false :\r\n new Date(traceObj.Date).toLocaleDateString() == new Date().toLocaleDateString() && new Date(traceObj.Time).toLocaleTimeString() > new Date().toLocaleTimeString() ? false : true\r\n : true}\r\n onChange={(e) => {\r\n setTraceObj((prev) => ({ ...prev, Date: e }));\r\n setTraceValidation((prev) => ({ ...prev, Date: \"\" }));\r\n }}\r\n placeholder=\"Date\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Date\"\r\n selected={traceObj.Date}\r\n >\r\n )}\r\n\r\n
\r\n
\r\n {\r\n console.log(typeof e);\r\n handleTraceTime(e);\r\n // setTraceObj({Time:Moment(new Date(\"1-jan-2001 \"+e)).format(\"DD-MMM-YY HH:mm\")})\r\n // let d = new Date(\"1-jan-2001 \" + e);\r\n // setTraceObj({Time: Moment(d).format(\"DD-MMM-YYYY HH:mm\")})\r\n // setTraceValidation(prev => ({...prev,Time:\"\"}));\r\n }}\r\n //disabled=\"disabled\"\r\n placeholder=\"Time\"\r\n label=\"Time\"\r\n timeformat=\"HH:mm\"\r\n dateformat=\"HH:mm\"\r\n selected={traceObj.Time}\r\n >\r\n
\r\n
\r\n {/* Add Trace */}\r\n {traceObj.Mode == \"View\" ? (\r\n <>\r\n \r\n Add Alert\r\n \r\n \r\n ) : (\r\n <>\r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n \r\n )}{\" \"}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ele.trace != null)}\r\n getSelectedItem={(items) => {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n setlinkInfo(v);\r\n }}\r\n handleIconClick={(d) => {\r\n console.log(d);\r\n // setShowTraceGridTooltip(true);\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnData}\r\n optClick={(v, d) => {\r\n console.log(traceObj, props.para.ReservationStatus);\r\n if (props.para.ReservationStatus == \"INH\" || props.para.ReservationStatus == \"ARD\" || props.para.ReservationStatus == \"DOT\") {\r\n if (new Date(moment(traceObj.Date).format(\"DD-MMM-YYYY\")).getTime() < new Date(moment(businessDate).format(\"DD-MMM-YYYY\")).getTime()) {\r\n alert(\"Edit or deletion of past dated alert is not allowed.\");\r\n }\r\n else {\r\n if (v.key == \"Edit\") {\r\n handleUserRights(\"38\").then(d => {\r\n if (d) {\r\n setTraceObj((prev) => ({\r\n ...prev,\r\n Mode: \"Edit\",\r\n }));\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n\r\n } else {\r\n handleUserRights(\"39\").then(d => {\r\n if (d) {\r\n setIsActive(true);\r\n hanldeOnDeleteClick();\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n\r\n }\r\n }\r\n }\r\n else {\r\n if (v.key == \"Edit\") {\r\n handleUserRights(\"38\").then(d => {\r\n if (d) {\r\n setTraceObj((prev) => ({\r\n ...prev,\r\n Mode: \"Edit\",\r\n }));\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n\r\n } else {\r\n handleUserRights(\"39\").then(d => {\r\n if (d) {\r\n setIsActive(true);\r\n hanldeOnDeleteClick();\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n\r\n }\r\n }\r\n }\r\n }\r\n fixedHeaderNo={1}\r\n handleRowSelect={(rowdata) => {\r\n setTraceObj(rowdata);\r\n console.log(rowdata);\r\n fillTraceOnchange(rowdata);\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n ) : null}\r\n \r\n );\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnFileUpload,\r\n InnFileUploadPreview,\r\n InnLoader,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnTooltip,\r\n InnButtonTypeWithDropdown,\r\n InnConfirmAlert,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport JPGIcon from \"../../../../assets/images/jpg-file-icon.svg\";\r\nimport AttachmentIcon from \"../../../../assets/images/attachment-icon.svg\";\r\nimport { GetReservationInfoAttachedDocument, AddEditReservationAttachment, GetDocumentTypeMasters, DeleteReservationAttachment } from \"../../../../services/reservationService\";\r\nimport { nothing } from \"@reduxjs/toolkit/node_modules/immer\";\r\nimport { grid } from \"@mui/system\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { ManageRights } from \"../../../../services/generalService\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport function IndiReservationAttachment(props) {\r\n let reader = new FileReader();\r\n const { confirm } = useConfirm();\r\n const currUser = useSelector(currentUser);\r\n const [userRightsData, setUserRightsData] = useState([]);\r\n const [showAttachmentPopup, setAttachmentPopup] = useState(false);\r\n const [showAlert, setShowAlert] = useState(false);\r\n const [gridSelectedItem, setGridSelectedItem] = useState([]);\r\n const [reservationAttachmentList, setReservationAttachmentList] = useState([]);\r\n const [cmbDocumentType, setCmbDocumentType] = useState([]);\r\n const [documentTypeMasterList, setDocumentTypeMasterList] = useState([]);\r\n const [filterDataAttachment, setFilterDataAttachment] = useState([]);\r\n const [reservationAttachmentObj, setreservationAttachmentObj] = useState({\r\n \"ClientSerNo\": parseInt(props.para.ClientSerNo),\r\n \"PropertySerNo\": parseInt(props.para.PropertySerNo),\r\n \"ReservationSerNo\": parseInt(props.para.ReservationSerNo),\r\n \"DocumentTypeSerNo\": nothing,\r\n \"PurgeAfterDays\": nothing,\r\n \"Name\": \"\",\r\n \"Description\": \"\",\r\n \"Path\": \"\",\r\n \"Mode\": \"View\"\r\n });\r\n const [attachmentDetailValidation, setAttachmentDetailValidation] = useState({\r\n \"Name\": \"\",\r\n \"DocumentTypeSerNo\": \"\",\r\n \"PurgeAfterDays\": \"\",\r\n \"Path\": \"\"\r\n });\r\n\r\n useEffect(() => {\r\n getReservationAttachmentData();\r\n }, [props.para.ReservationSerNo]);\r\n useEffect(()=>{\r\n fillUserRights();\r\n },[])\r\n\r\n const getReservationAttachmentData = () => {\r\n GetReservationInfoAttachedDocument(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo).then(d => {\r\n setReservationAttachmentList(d.data);\r\n setreservationAttachmentObj([]);\r\n setreservationAttachmentObj(prev => ({\r\n ...prev, ClientSerNo: parseInt(props.para.ClientSerNo),\r\n PropertySerNo: parseInt(props.para.PropertySerNo),\r\n ReservationSerNo: parseInt(props.para.ReservationSerNo),\r\n DocumentTypeSerNo: nothing,\r\n PurgeAfterDays: nothing,\r\n Name: \"\",\r\n Description: \"\",\r\n Path: \"\",\r\n Mode: \"View\"\r\n }))\r\n if (documentTypeMasterList.length > 0) {\r\n d.data.map(element => {\r\n element.DocumentTypeName = documentTypeMasterList.filter(obj => obj.DocumentTypeSerNo == element.DocumentTypeSerNo)[0].Name;\r\n })\r\n let attachmentList = [];\r\n d.data.map(element => {\r\n attachmentList.push(\r\n {\r\n doctserno: element.AttachmentSerNo,\r\n file: JPGIcon,\r\n docname: element.Name,\r\n doctype: element.DocumentTypeName,\r\n desc: element.Description,\r\n purgeday: element.PurgeAfterDays,\r\n action: \"...\"\r\n })\r\n })\r\n setFilterDataAttachment(attachmentList);\r\n }\r\n\r\n }).catch(error => {\r\n setReservationAttachmentList([]);\r\n setreservationAttachmentObj([]);\r\n setreservationAttachmentObj(prev => ({\r\n ...prev, ClientSerNo: parseInt(props.para.ClientSerNo),\r\n PropertySerNo: parseInt(props.para.PropertySerNo),\r\n ReservationSerNo: parseInt(props.para.ReservationSerNo),\r\n DocumentTypeSerNo: nothing,\r\n PurgeAfterDays: nothing,\r\n Name: \"\",\r\n Description: \"\",\r\n Path: \"\",\r\n Mode: \"View\"\r\n }))\r\n\r\n })\r\n }\r\n const fillUserRights = () => {\r\n ManageRights(currUser.ClientSerNo, currUser.UserID, \"40,41\").then((d) => {\r\n if (d.data.length > 0) {\r\n setUserRightsData(d.data);\r\n }\r\n else {\r\n console.log(\"No user rights\");\r\n }\r\n })\r\n }\r\n const handleUserRights = async (strRightsSerNo) => {\r\n if (strRightsSerNo != undefined) {\r\n const userRightObj = userRightsData.find((x) => x.RightsSerNo == strRightsSerNo);\r\n if (userRightObj != undefined) {\r\n if (userRightObj.IsApply != undefined) {\r\n if (userRightObj.IsApply) {\r\n return true;\r\n } else {\r\n await confirm({\r\n Message: `${userRightObj.Name} : ${userRightObj.PromptMessage}`,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n }\r\n };\r\n\r\n const isValidData = () => {\r\n let isValid = true;\r\n if (reservationAttachmentObj.Name == \"\" || reservationAttachmentObj.Name == null) {\r\n isValid = false;\r\n setAttachmentDetailValidation(prev => ({ ...prev, Name: \"Enter the document name\" }));\r\n }\r\n if (reservationAttachmentObj.DocumentTypeSerNo == nothing) {\r\n isValid = false;\r\n setAttachmentDetailValidation(prev => ({ ...prev, DocumentTypeSerNo: \"Please Select Document Type\" }));\r\n }\r\n if (reservationAttachmentObj.Path == \"\" || reservationAttachmentObj.Path == null) {\r\n isValid = false;\r\n setAttachmentDetailValidation(prev => ({ ...prev, Path: \"Please Select file\" }));\r\n }\r\n if (reservationAttachmentObj.PurgeAfterDays == nothing) {\r\n isValid = false;\r\n setAttachmentDetailValidation(prev => ({ ...prev, PurgeAfterDays: \"Enter the Purge Days\" }));\r\n }\r\n\r\n return isValid;\r\n }\r\n\r\n const handleEditOnClick = () => {\r\n setAttachmentPopup(!showAttachmentPopup);\r\n GetDocumentTypeMasters(props.para.ClientSerNo).then(d => {\r\n setDocumentTypeMasterList(d.data);\r\n let documentTypeList = [];\r\n d.data.map(element => {\r\n documentTypeList.push({ key: element.DocumentTypeSerNo, value: element.Name })\r\n })\r\n setCmbDocumentType(documentTypeList);\r\n console.log(documentTypeList);\r\n\r\n reservationAttachmentList.map(element => {\r\n if (element.Name != null && element.Name != \"\") {\r\n element.DocumentTypeName = d.data.filter(obj => obj.DocumentTypeSerNo == element.DocumentTypeSerNo)[0].Name;\r\n }\r\n })\r\n let attachmentList = [];\r\n reservationAttachmentList.map(element => {\r\n if (element.Name != null && element.Name != \"\") {\r\n\r\n attachmentList.push(\r\n {\r\n doctserno: element.AttachmentSerNo,\r\n file: JPGIcon,\r\n docname: element.Name,\r\n doctype: element.DocumentTypeName,\r\n desc: element.Description,\r\n purgeday: element.PurgeAfterDays,\r\n action: \"...\"\r\n })\r\n }\r\n })\r\n\r\n setFilterDataAttachment(attachmentList);\r\n }).catch(error => {\r\n setDocumentTypeMasterList([]);\r\n setCmbDocumentType([]);\r\n console.log(error);\r\n\r\n })\r\n }\r\n const setAttachmentGridData = () => {\r\n reservationAttachmentList.map(element => {\r\n element.DocumentTypeName = documentTypeMasterList.filter(obj => obj.DocumentTypeSerNo == element.DocumentTypeSerNo)[0].Name;\r\n })\r\n let attachmentList = [];\r\n reservationAttachmentList.map(element => {\r\n attachmentList.push(\r\n {\r\n doctserno: element.AttachmentSerNo,\r\n file: JPGIcon,\r\n docname: element.Name,\r\n doctype: element.DocumentTypeName,\r\n desc: element.Description,\r\n purgeday: element.PurgeAfterDays,\r\n action: \"...\"\r\n })\r\n })\r\n setFilterDataAttachment(attachmentList);\r\n }\r\n const handleAddOnClick = () => {\r\n setreservationAttachmentObj([]);\r\n setreservationAttachmentObj(prev => ({\r\n ...prev, ClientSerNo: parseInt(props.para.ClientSerNo),\r\n PropertySerNo: parseInt(props.para.PropertySerNo),\r\n ReservationSerNo: parseInt(props.para.ReservationSerNo),\r\n DocumentTypeSerNo: nothing,\r\n PurgeAfterDays: nothing,\r\n Name: \"\",\r\n Description: \"\",\r\n Path: \"\",\r\n Mode: \"Insert\"\r\n }))\r\n }\r\n const handleCancleOnClick = () => {\r\n setreservationAttachmentObj([]);\r\n setreservationAttachmentObj(prev => ({\r\n ...prev, ClientSerNo: parseInt(props.para.ClientSerNo),\r\n PropertySerNo: parseInt(props.para.PropertySerNo),\r\n ReservationSerNo: parseInt(props.para.ReservationSerNo),\r\n DocumentTypeSerNo: nothing,\r\n PurgeAfterDays: nothing,\r\n Name: \"\",\r\n Description: \"\",\r\n Path: \"\",\r\n Mode: \"View\"\r\n }))\r\n }\r\n\r\n const handleSaveOnClick = () => {\r\n let IsPageValid = isValidData();\r\n if (IsPageValid) {\r\n //console.log(reservationAttachmentObj); \r\n AddEditReservationAttachment(reservationAttachmentObj).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n setreservationAttachmentObj(prev => ({\r\n ...prev, ClientSerNo: parseInt(props.para.ClientSerNo),\r\n PropertySerNo: parseInt(props.para.PropertySerNo),\r\n ReservationSerNo: parseInt(props.para.ReservationSerNo),\r\n DocumentTypeSerNo: nothing,\r\n PurgeAfterDays: nothing,\r\n Name: \"\",\r\n Description: \"\",\r\n Path: \"\",\r\n Mode: \"View\"\r\n }));\r\n getReservationAttachmentData();\r\n }\r\n }).catch(error => {\r\n })\r\n }\r\n }\r\n const handleAttachmentGridSelection = (item) => {\r\n let Selectedobj = reservationAttachmentList.filter(obj => obj.AttachmentSerNo == parseInt(item.doctserno))[0];\r\n setreservationAttachmentObj(prev => ({\r\n ...prev, ClientSerNo: parseInt(props.para.ClientSerNo),\r\n PropertySerNo: parseInt(props.para.PropertySerNo),\r\n ReservationSerNo: parseInt(props.para.ReservationSerNo),\r\n AttachmentSerNo: Selectedobj.AttachmentSerNo,\r\n DocumentTypeSerNo: Selectedobj.DocumentTypeSerNo,\r\n Name: Selectedobj.Name,\r\n Description: Selectedobj.Description,\r\n PurgeAfterDays: Selectedobj.PurgeAfterDays,\r\n Path: Selectedobj.Path,\r\n Mode: \"View\"\r\n }))\r\n }\r\n const handleDeleteonClick = () => {\r\n DeleteReservationAttachment(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo, gridSelectedItem.doctserno).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n getReservationAttachmentData();\r\n }\r\n }).catch(error => {\r\n })\r\n }\r\n\r\n const handleOptionClick = (option) => {\r\n //console.log(gridSelectedItem)\r\n if (option.value == \"Delete\") {\r\n handleUserRights(\"41\").then(d => {\r\n if (d) {\r\n setShowAlert(true);\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n }\r\n else if (option.value == \"Edit\") {\r\n handleUserRights(\"40\").then(d => {\r\n if (d) {\r\n let Selectedobj = reservationAttachmentList.filter(obj => obj.AttachmentSerNo == parseInt(gridSelectedItem.doctserno))[0];\r\n setreservationAttachmentObj(prev => ({\r\n ...prev, ClientSerNo: parseInt(props.para.ClientSerNo),\r\n PropertySerNo: parseInt(props.para.PropertySerNo),\r\n ReservationSerNo: parseInt(props.para.ReservationSerNo),\r\n AttachmentSerNo: Selectedobj.AttachmentSerNo,\r\n DocumentTypeSerNo: Selectedobj.DocumentTypeSerNo,\r\n Name: Selectedobj.Name,\r\n Description: Selectedobj.Description,\r\n PurgeAfterDays: Selectedobj.PurgeAfterDays,\r\n Path: Selectedobj.Path,\r\n Mode: \"Edit\"\r\n }))\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n\r\n }\r\n\r\n }\r\n const Download = (arrayBuffer, type) => {\r\n var blob = new Blob([arrayBuffer], { type: type });\r\n var url = URL.createObjectURL(blob);\r\n window.open(url);\r\n }\r\n const optBtnResAttachment = [\r\n { key: \"Edit\", value: \"Edit\" },\r\n { key: \"Preview\", value: \"Preview\" },\r\n { key: \"Print\", value: \"Print\" },\r\n { key: \"Email\", value: \"Email\" },\r\n { key: \"Download\", value: \"Download\" },\r\n { key: \"Delete\", value: \"Delete\" },\r\n ]\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n const columHeaderAttachment = [\r\n { key: \"File\", value: \"file\", type: \"img\", sorting: \"N\" },\r\n { key: \"Document Name\", value: \"docname\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Document Type\", value: \"doctype\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Description\", value: \"desc\", type: \"txt\", sorting: \"Y\" },\r\n {\r\n key: \"Purge after number of days\",\r\n value: \"purgeday\",\r\n type: \"txt\",\r\n sorting: \"N\",\r\n align: \"center\"\r\n },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\", align: \"center\" },\r\n ];\r\n\r\n const AttachmentTooltip = () => {\r\n return (\r\n
\r\n
\r\n {\r\n reservationAttachmentList.map(element => {\r\n if (element.Name != \"\" && element.Name != null) {\r\n return (\r\n
\r\n
Document Name: {element.Name}
\r\n
Purge: {element.PurgeAfterDays}
\r\n \r\n
)\r\n }\r\n })\r\n }\r\n\r\n\r\n
\r\n
\r\n handleEditOnClick()} >\r\n Edit\r\n \r\n console.log(item, name)}\r\n >\r\n
\r\n
\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n {reservationAttachmentList.filter(element => element.Name != null && element.Name != \"\").length}\r\n \r\n {showAttachmentPopup ? (\r\n setAttachmentPopup(!showAttachmentPopup)}\r\n >\r\n
\r\n
\r\n
\r\n

Reservation Attachment

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    \r\n Confirmation No.\r\n
    \r\n
    \r\n {reservationAttachmentList[0].BookingNo}\r\n
    \r\n
  • \r\n
  • \r\n
    Guest Name
    \r\n
    \r\n {reservationAttachmentList[0].GuestName}\r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n setreservationAttachmentObj(prev => ({ ...prev, Name: v }))\r\n }}>\r\n Document Name\r\n \r\n
\r\n {\r\n setreservationAttachmentObj(prev => ({ ...prev, DocumentTypeSerNo: parseInt(item.key) }))\r\n }}\r\n >\r\n
\r\n {\r\n console.log(v);\r\n setreservationAttachmentObj(prev => ({ ...prev, Path: (v.fpath) }))\r\n }}>\r\n Upload Document\r\n \r\n
\r\n {\r\n setreservationAttachmentObj(prev => ({ ...prev, Description: v }))\r\n }}>\r\n Description\r\n \r\n
\r\n
\r\n {\r\n setreservationAttachmentObj(prev => ({ ...prev, PurgeAfterDays: parseInt(v) }))\r\n }}>\r\n Purge (i)\r\n \r\n
\r\n
\r\n {\r\n reservationAttachmentObj.Mode == \"View\" ?\r\n <>\r\n handleAddOnClick()}>Add\r\n \r\n :\r\n <>\r\n handleSaveOnClick()}>Save\r\n handleCancleOnClick()}>Cancle\r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n handleOptionClick(v);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n setGridSelectedItem(rowdata);\r\n handleAttachmentGridSelection(rowdata);\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n ) : null}\r\n\r\n\r\n {showAlert == true ? (\r\n {\r\n setShowAlert(!showAlert);\r\n if (v == \"Ok\") {\r\n handleDeleteonClick();\r\n }\r\n }}\r\n message=\"Are You Sure Want To Delete this Attachment?\"\r\n buttons={[\r\n { \"value\": \"Ok\", \"title\": \"OK\" },\r\n { \"value\": \"No\", \"title\": \"Cancle\" }\r\n ]}>\r\n ) : null}\r\n\r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { InnMovablePanel } from \"../../../../component\";\r\nimport { GetReservationTaskList } from \"../../../../services/reservationCashieringService\";\r\nexport function IndiTaskCompleted(props) {\r\n\r\n const rbDataTasks = [\r\n { key: \"All\", value: \"All\" },\r\n { key: \"Completed\", value: \"Completed\" },\r\n { key: \"Pending\", value: \"Pending\" },\r\n ];\r\n const [showTaskMovableBox, setShowTaskMovableBox] = useState(false);\r\n const [completedTask, setCompletedTask] = useState(0);\r\n const [totalTask, setTotalTask] = useState(0);\r\n const fillTaskDetails = () => {\r\n if (props.para != undefined) {\r\n GetReservationTaskList(props.para.ClientSerNo, props.para.PropertySerNo, props.para?.ReservationSerNo?.toString()).then((d) => {\r\n console.log(\"Task list\", d.data);\r\n let completedCount = 0;\r\n d.data.forEach((x) => {\r\n if (x.IsCompleted === true) {\r\n completedCount += 1;\r\n }\r\n });\r\n setTotalTask(d.data.length);\r\n setCompletedTask(completedCount);\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n fillTaskDetails();\r\n }, [props.para?.ReservationSerNo]);\r\n return (\r\n <>\r\n
{ setShowTaskMovableBox(!showTaskMovableBox); }}>\r\n
\r\n Task Completed\r\n
\r\n
{`${completedTask}/${totalTask}`}
\r\n
\r\n {showTaskMovableBox ?\r\n {\r\n setTotalTask(total);\r\n setCompletedTask(comp);\r\n if(props.onCheck !== undefined){\r\n props.onCheck(total, comp);\r\n }\r\n }}\r\n onClose={() => {\r\n setShowTaskMovableBox(false);\r\n }}\r\n >\r\n :\r\n null}\r\n \r\n );\r\n}","export default __webpack_public_path__ + \"static/media/innkeypmslogo.396a07de.svg\";","import React, { useState, useEffect } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnPlainTabs,\r\n Tab,\r\n InnTableGrid,\r\n InnDataGrid,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport Moment from \"moment\";\r\nimport { ModifiedRateDetailData } from \"../../../../utils/helpers/reservation\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { setName, setRateAndPackages, reservation } from '../../../../reducer/frontSlice';\r\nimport { GetReservationRoomRateSummary, GetRateAndPackageRate, groupByKey } from \"../../../../services/reservationService\";\r\n\r\n\r\n\r\nexport function RateSummaryModalPopup(props) {\r\n\r\n const res = useSelector(reservation);\r\n const dispatch = useDispatch();\r\n\r\n const [gridSelectedItem, SetgridSelectedItem] = useState([]);\r\n const [temp, settemp] = useState(false);\r\n const [roomRateData, setRoomRateData] = useState({});\r\n const [rateDetailData, setRateDetailData] = useState([]);\r\n const [grandTotal, setGrandTotal] = useState(0);\r\n\r\n const columHeaderRatesRevenueSummary = [\r\n { key: \"Revenue\", value: \"revenue\", type: \"txt\", sorting: \"N\" },\r\n { key: \"\", value: \"total\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n ];\r\n const [filterDataRatesRevenueSummary, setFilterDataRatesRevenueSummary] = useState([\r\n {\r\n revenue: \"Accommodation \",\r\n total: \"2400.00\",\r\n },\r\n ]);\r\n\r\n const [packageInclData, setPackageInclData] = useState([\r\n {\r\n PackageSerNo: \"\",\r\n Name: \"\",\r\n PackagePrice: \"\",\r\n },\r\n ]);\r\n\r\n\r\n const fillRoomRateSummary = () => {\r\n GetReservationRoomRateSummary(props.para.ClientSerNo, props.para.PropertySerNo, props.para.RoomTypeSerNo, props.para.RateCodeSerNo).then(d => {\r\n setRoomRateData(d.data); \r\n })\r\n }\r\n\r\n const fillRateAndPackageRate = () => {\r\n GetRateAndPackageRate(props.para.ClientSerNo, props.para.PropertySerNo, 0, true, props.para.RateCodeSerNo, \r\n props.para.RoomTypeSerNo, props.para.FromDate, props.para.ToDate, props.para.Adult, props.para.Child, \"-1\",\r\n props.para.CompanyProfileSerNo,props.para.AgentProfileSerNo).then(d => {\r\n\r\n let obj = ModifiedRateDetailData(d.data);\r\n //dispatch(setRateAndPackages(obj));\r\n\r\n // // calculate total taxes from TaxDetails \r\n // let o = [];\r\n // d.data.TaxDetails.map(n => {\r\n // let o1 = o.find(x => x.TransactionSerNo == n.TransactionSerNo);\r\n // if (o1 == undefined) {\r\n // o.push({ TransactionSerNo: n.TransactionSerNo, Name: n.Name });\r\n // }\r\n // });\r\n // o.map(n => {\r\n // let RMTotalTax = d.data.TaxDetails.filter(x => x.TransactionSerNo == n.TransactionSerNo && x.Type == \"RM\").reduce((t, v) => t = t + parseFloat(v.Amount), 0);\r\n // let PITotalTax = d.data.TaxDetails.filter(x => x.TransactionSerNo == n.TransactionSerNo && x.Type == \"PI\").reduce((t, v) => t = t + parseFloat(v.Amount), 0);\r\n // n.Taxes = (RMTotalTax + (PITotalTax)).toFixed(2);\r\n // })\r\n // d.data.ChargeDetails = o;\r\n\r\n // let orgData = d.data;\r\n\r\n // let NewPackageDetails = [];\r\n // d.data.PackageDetails.map(np => {\r\n // let n1 = NewPackageDetails.find(x => x.PackageSerNo == np.PackageSerNo);\r\n // if (n1 == undefined) {\r\n // NewPackageDetails.push({\r\n // PackageSerNo: np.PackageSerNo, Name: np.Name,\r\n // PackagePrice: np.PackagePrice, CalculationRule: np.CalculationRule,\r\n // PostingRhythm: np.PostingRhythm, PostingType: np.PostingType,\r\n // Component: (np.IsTaxInclusive ? np.PackagePrice + \" Incl.Tax\" : np.PackagePrice + \" + Tax\"),\r\n // Total: (parseFloat(np.PackagePrice) + parseFloat(np.Taxes)).toFixed(2),\r\n // Person: \"2A, 1C\", Qty: \"4\", Action: \"Included\",\r\n // });\r\n // }\r\n // })\r\n // orgData.NewPackageDetails = NewPackageDetails;\r\n\r\n // //const totalPackage = orgData.PackageDetails.reduce((t, v) => t = t + parseFloat(v.PackagePrice), 0);\r\n // //const totalPackageTaxes = orgData.PackageDetails.reduce((t, v) => t = t + parseFloat(v.Taxes), 0);\r\n const totalRoomRate = d.data.RateCodeDetails.reduce((t, v) => t = t + parseFloat(v.RoomRate), 0);\r\n // orgData.RateCodeDetails.map(d => {\r\n // const totalPackage = orgData.PackageDetails.filter(x => x.Date == d.Date).reduce((t, v) => t = t + parseFloat(v.PackagePrice), 0);\r\n // const totalPackageTaxes = orgData.PackageDetails.filter(x => x.Date == d.Date).reduce((t, v) => t = t + parseFloat(v.Taxes), 0);\r\n // d.PackagePrice = (totalPackage).toFixed(2);\r\n // d.SubTotal = (parseFloat(d.RoomRate) + parseFloat(totalPackage)).toFixed(2);\r\n // d.TotalTaxes = (parseFloat(d.Taxes) + parseFloat(totalPackageTaxes)).toFixed(2);\r\n // d.Amount = (parseFloat(d.SubTotal) + parseFloat(d.TotalTaxes)).toFixed(2);\r\n // })\r\n\r\n\r\n //setRateDetailData(d.data);\r\n setRateDetailData(obj);\r\n ////dispatch(setRateAndPackages(d.data));\r\n let revenue = [...filterDataRatesRevenueSummary];\r\n revenue[0] = { ...revenue[0], total: totalRoomRate.toFixed(2) };\r\n setFilterDataRatesRevenueSummary(revenue);\r\n\r\n // let tempPackage = [];\r\n // d.data.PackageDetails.map(np => {\r\n // let len = tempPackage.filter(x => x.PackageSerNo == np.PackageSerNo).length;\r\n // if (len == 0) {\r\n // tempPackage.push({\r\n // PackageSerNo: np.PackageSerNo, \r\n // Name: np.Name,\r\n // PackagePrice: np.PackagePrice\r\n // });\r\n // }\r\n // })\r\n\r\n // tempPackage.map(tp=>{\r\n // let pkgTotal = d.data.PackageDetails.filter(x => x.PackageSerNo == tp.PackageSerNo).reduce((t, v) => t = t + parseFloat(v.PackagePrice), 0);\r\n // tp.PackagePrice = pkgTotal.toFixed(2);\r\n // })\r\n // setPackageInclData(tempPackage);\r\n\r\n\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n \r\n\r\n if (props.IsCache == \"1\") {\r\n let tempRateDetail = JSON.parse(JSON.stringify(res.rateDetailData));\r\n console.log(\"store data \", tempRateDetail);\r\n setRateDetailData(tempRateDetail);\r\n //const totalRoomRate = res.rateDetailData.RateCodeDetails.reduce((t, v) => t = t + parseFloat(v.RoomRate), 0);\r\n const totalRoomRate = tempRateDetail.RateCodeDetails.reduce((t, v) => t = t + parseFloat(v.RoomRate), 0);\r\n let revenue = [...filterDataRatesRevenueSummary];\r\n revenue[0] = { ...revenue[0], total: totalRoomRate.toFixed(2) };\r\n setFilterDataRatesRevenueSummary(revenue);\r\n\r\n } else {\r\n fillRateAndPackageRate();\r\n fillRoomRateSummary();\r\n }\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n //console.log(\"Main object \",rateDetailData);\r\n if (rateDetailData.RateCodeDetails != undefined) {\r\n let total = 0;\r\n rateDetailData.RateCodeDetails.map(d => {\r\n total += parseFloat(d.RoomRate) + (d.IsTaxInclusive ? 0 : parseFloat(d.Taxes));\r\n })\r\n\r\n rateDetailData.PackageDetails.map(d => {\r\n total += parseFloat(d.PackagePrice) + (d.IsTaxInclusive ? 0 : parseFloat(d.Taxes));\r\n })\r\n\r\n if (props.para.CallingFrom == \"Total\") {\r\n let extraPackage = [];\r\n let o = [];\r\n res.extraPackage.map(d => {\r\n if (d.RateCodeDetail != undefined) {\r\n d.RateCodeDetail.PackageDetails.map(pk => {\r\n total = parseFloat(total) + ((parseFloat(pk.PackagePrice) + (pk.IsTaxInclusive ? 0 : parseFloat(pk.Taxes))));\r\n let calculatedQty = 1;\r\n if (pk.CalculationRuleSerNo == \"PP\") {\r\n calculatedQty = parseInt(pk.Adult) + parseInt(pk.Child);\r\n } else if (pk.CalculationRuleSerNo == \"PA\") {\r\n calculatedQty = parseInt(pk.Adult);\r\n } else if (pk.CalculationRuleSerNo == \"PC\") {\r\n calculatedQty = parseInt(pk.Child);\r\n } else {\r\n calculatedQty = 1;\r\n }\r\n\r\n extraPackage.push({\r\n \"Date\": pk.Date,\r\n \"Name\": pk.Name,\r\n \"Rate\": (pk.IsTaxInclusive ? pk.PackageRate + \" Incl. Tax\" : pk.PackageRate + \" + Tax\"),\r\n \"Person\": d.Adult + \" A,\" + d.Child + \" C\",\r\n \"Qty\": calculatedQty,\r\n \"Value\": (parseFloat(pk.PackagePrice)).toFixed(2),\r\n \"Taxes\": (parseFloat(pk.Taxes)).toFixed(2),\r\n \"Amount\": ((pk.IsTaxInclusive ? parseFloat(pk.PackagePrice) : parseFloat(pk.PackagePrice) + parseFloat(pk.Taxes))).toFixed(2)\r\n });\r\n })\r\n\r\n if (d.RateCodeDetail.TaxDetails != undefined) {\r\n d.RateCodeDetail.TaxDetails.map(n => {\r\n let o1 = o.find(x => x.TransactionSerNo == n.TransactionSerNo);\r\n if (o1 == undefined) {\r\n o.push({ TransactionSerNo: n.TransactionSerNo, Name: n.Name, Taxes: 0 });\r\n }\r\n })\r\n }\r\n\r\n o.map(n => {\r\n let PETotalTax = d.RateCodeDetail.TaxDetails.filter(x => x.TransactionSerNo == n.TransactionSerNo && x.Type == \"PE\").reduce((t, v) => t = t + parseFloat(v.Amount), 0);\r\n n.Taxes = (parseFloat(n.Taxes) + PETotalTax).toFixed(2);\r\n })\r\n\r\n }\r\n\r\n })\r\n setExtraPackageData(extraPackage);\r\n setExtraPackageTax(o);\r\n\r\n }\r\n\r\n setGrandTotal(total.toFixed(2));\r\n }\r\n }, [rateDetailData]);\r\n\r\n const setSelectedItem = (items) => {\r\n SetgridSelectedItem(items);\r\n settemp(!temp);\r\n };\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n }\r\n\r\n const handleOnContinueClick = () => {\r\n if (props.handleOnContinueClick === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnContinueClick(false);\r\n }\r\n }\r\n\r\n\r\n const columHeaderRatesSummary = [\r\n { key: \"Date\", value: \"Date\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Rate Code\", value: \"Name\", type: \"txt\", sorting: \"Y\", align: \"left\" },\r\n { key: \"Rate\", value: \"RoomRate\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n { key: \"Event / Premium\", value: \"Event\", type: \"txt\", sorting: \"Y\", align: \"left\" },\r\n { key: \"Package\", value: \"PackagePrice\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n {\r\n key: \"Sub-Total\",\r\n value: \"SubTotal\",\r\n type: \"txt\",\r\n sorting: \"Y\",\r\n align: \"right\",\r\n },\r\n { key: \"Taxes\", value: \"TotalTaxes\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n {\r\n key: \"Amount\",\r\n value: \"Amount\",\r\n type: \"txt\",\r\n sorting: \"Y\",\r\n align: \"right\",\r\n },\r\n ];\r\n\r\n\r\n\r\n const columHeaderRatesPackagesSummary = [\r\n { key: \"Packages (Included)\", value: \"Name\", type: \"txt\", sorting: \"N\" },\r\n { key: \"\", value: \"TotalPackagePrice\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n ];\r\n\r\n const headerExtraPackages = [\r\n { key: \"Date\", value: \"Date\", type: \"txt\", sorting: \"N\", align: \"left\" },\r\n { key: \"Name\", value: \"Name\", type: \"txt\", sorting: \"N\", align: \"left\" },\r\n { key: \"Rate\", value: \"Rate\", type: \"txt\", sorting: \"N\", align: \"left\" },\r\n { key: \"Person\", value: \"Person\", type: \"txt\", sorting: \"N\", align: \"right\" },\r\n { key: \"Qty\", value: \"Qty\", type: \"txt\", sorting: \"N\", align: \"right\" },\r\n { key: \"Value\", value: \"Value\", type: \"txt\", sorting: \"N\", align: \"right\" },\r\n { key: \"Taxes\", value: \"Taxes\", type: \"txt\", sorting: \"N\", align: \"right\" },\r\n { key: \"Amount\", value: \"Amount\", type: \"txt\", sorting: \"N\", align: \"right\" },\r\n ];\r\n const [extraPackageData, setExtraPackageData] = useState([\r\n {\r\n \"Date\": \"\",\r\n \"Name\": \"\",\r\n \"Rate\": \"\",\r\n \"Person\": \"\",\r\n \"Qty\": \"\",\r\n \"Value\": \"\",\r\n \"Taxes\": \"\",\r\n \"Amount\": \"\"\r\n }]);\r\n const [extraPackageTax, setExtraPackageTax] = useState([{\r\n \"Name\": \"\",\r\n \"Taxes\": \"\"\r\n }]);\r\n\r\n const [filterDataRatesPackagesSummary] = useState([\r\n {\r\n packages: \"Breakfast\",\r\n total: \"2400.00\",\r\n },\r\n {\r\n packages: \"Packages 2\",\r\n total: \"2400.00\",\r\n },\r\n ]);\r\n\r\n const columHeaderRatesTaxesSummary = [\r\n { key: \"Taxes\", value: \"Name\", type: \"txt\", sorting: \"N\" },\r\n { key: \"\", value: \"Taxes\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n ];\r\n\r\n const columHeaderRatesExtraPackageTaxesSummary = [\r\n { key: \"Taxes on additional packages\", value: \"Name\", type: \"txt\", sorting: \"N\" },\r\n { key: \"\", value: \"Taxes\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n ];\r\n const [filterDataRatesTaxesSummary] = useState([\r\n {\r\n packages: \"CGST @ 18%\",\r\n total: \"2052\",\r\n },\r\n ]);\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n

{roomRateData.RateName}

\r\n
\r\n\r\n
\r\n\r\n Continue\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {/* {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n fixedHeaderNo={0} \r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n handleRowSelect={(rowdata) => { \r\n }}\r\n > */}\r\n {\r\n setSelectedItem(items);\r\n }}\r\n fixedHeaderNo={0}\r\n uniqueColumn=\"srno\"\r\n handleRowSelect={(rowdata) => {\r\n }}\r\n >\r\n
\r\n
\r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n fixedHeaderNo={0}\r\n /* handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n setShowReceivedPopup(true)\r\n }} */\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n handleRowSelect={(rowdata) => {\r\n //console.log(rowdata);\r\n }}\r\n >\r\n
\r\n
\r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n fixedHeaderNo={0}\r\n /* handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n setShowReceivedPopup(true)\r\n }} */\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n handleRowSelect={(rowdata) => {\r\n //console.log(rowdata);\r\n }}\r\n >\r\n
\r\n
\r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n fixedHeaderNo={0}\r\n /* handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n setShowReceivedPopup(true)\r\n }} */\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n handleRowSelect={(rowdata) => {\r\n //console.log(rowdata);\r\n }}\r\n >\r\n
\r\n {\r\n props.para.CallingFrom == \"Total\" ?\r\n <>\r\n
\r\n {/* {\r\n setSelectedItem(items); \r\n }}\r\n fixedHeaderNo={0} \r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n handleRowSelect={(rowdata) => { \r\n }}\r\n > */}\r\n
Packages (Additional)
\r\n {\r\n setSelectedItem(items);\r\n }}\r\n fixedHeaderNo={0}\r\n uniqueColumn=\"srno\"\r\n handleRowSelect={(rowdata) => {\r\n }}\r\n >\r\n
\r\n
\r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n fixedHeaderNo={0}\r\n /* handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n setShowReceivedPopup(true)\r\n }} */\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n handleRowSelect={(rowdata) => {\r\n //console.log(rowdata);\r\n }}\r\n >\r\n
\r\n \r\n : <>\r\n }\r\n\r\n
\r\n
\r\n
\r\n Total Cost of Stay: {grandTotal}\r\n
\r\n
\r\n
\r\n
\r\n {\r\n props.para.CallingFrom == \"RateCodeModal\" ?\r\n \r\n
\r\n
\r\n
\r\n
Room Type
\r\n
\r\n {roomRateData.RoomTypeName}\r\n
\r\n
\r\n
Features
\r\n
    \r\n {\r\n roomRateData.RoomFeatures ?\r\n roomRateData.RoomFeatures.map(d =>\r\n
  • \r\n {d.RoomFeature}\r\n
  • \r\n )\r\n : <>\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {roomRateData.RateLongDesc}\r\n

\r\n
\r\n Rate Information\r\n
\r\n
    \r\n {\r\n roomRateData.RatePackages ?\r\n roomRateData.RatePackages.map(d =>\r\n
  • \r\n {d.RatePackage}\r\n
  • \r\n )\r\n : <>\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n : <>\r\n }\r\n
\r\n {/*
    \r\n
  • Room & Rate Summary
  • \r\n
  • Room Information
  • \r\n
*/}\r\n {/* */}\r\n
\r\n
\r\n \r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\n//import closeIcon from \"../../../assets/images/model-cls-btn.png\";\r\nimport {\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnSearchTextbox,\r\n InnRadioButton,\r\n InnCheckbox,\r\n InnTextbox,\r\n InnLoader,\r\n} from \"../../../../component\";\r\nimport {\r\n cmbGetBillingInstructionMaster,\r\n manage_reservation_fields,\r\n GetReservationBasicData\r\n} from \"../../../../services/reservationService\";\r\n\r\nexport function BillingInstructionModalPopup(props) {\r\n const [billingData, setBillingData] = useState([]);\r\n const [filteredBillingData, setFilteredBillingData] = useState([]);\r\n const [filBilling, setFilBilling] = useState(\"\");\r\n const [selectedInstruction, setSelectedInstruction] = useState(\r\n props.para.BillingInstruction\r\n );\r\n const [selectedRBvalue, setSelectedRBvalue] = useState(\r\n props.para.BillingInstructionSerNo\r\n );\r\n const [isManually, setIsManually] = useState(false);\r\n const [reservationData, setReservationData] = useState({});\r\n\r\n useEffect(() => {\r\n console.log('hello', props.para);\r\n fillBilling();\r\n fillReservationData();\r\n }, []);\r\n\r\n const fillBilling = () => {\r\n cmbGetBillingInstructionMaster(\r\n props.para.ClientSerNo,\r\n props.para.PropertySerNo\r\n ).then((d) => {\r\n setBillingData(d.data);\r\n setFilteredBillingData(d.data);\r\n\r\n if (props.para.BillingInstruction !== \"\") {\r\n let exObj = d.data.filter(\r\n (x) => x.value == props.para.BillingInstruction\r\n );\r\n if (exObj && exObj.length > 0) setIsManually(false);\r\n else setIsManually(true);\r\n }\r\n });\r\n };\r\n\r\n const fillReservationData = () => {\r\n GetReservationBasicData(props.para.ClientSerNo, props.para.PropertySerNo,props.para.ReservationSerNo).then(d=>{\r\n if(d.data != null || d.data != undefined){\r\n setReservationData(d.data);\r\n }\r\n })\r\n }\r\n\r\n\r\n const handleFilterBillingData = (filterText) => {\r\n let filteredRes = billingData.filter((obj) =>\r\n obj.value.toLowerCase().includes(filterText.toLowerCase())\r\n );\r\n setFilteredBillingData(filteredRes);\r\n setFilBilling(filterText);\r\n };\r\n\r\n const handleResetClick = () => {\r\n setFilBilling(\"\");\r\n setSelectedInstruction(\"\");\r\n setSelectedRBvalue(\"\");\r\n setIsManually(false);\r\n setFilteredBillingData(billingData);\r\n };\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n };\r\n\r\n const handleApplyClick = () => {\r\n if (props.para.Mode == \"ADD\") {\r\n if (props.handleOnSelection == undefined)\r\n console.log(\"handleOnSelection is not defined\");\r\n else{ \r\n if(isManually == false){\r\n props.handleOnSelection(\"\", selectedRBvalue);\r\n }\r\n else{\r\n props.handleOnSelection(selectedInstruction, selectedRBvalue);\r\n } \r\n }\r\n } else if (props.para.Mode == \"EDIT\") {\r\n if (props.handleOnSelection == undefined)\r\n console.log(\"handleOnSelection is not defined\");\r\n else {\r\n if(isManually == false){\r\n props.handleOnSelection(\"\", selectedRBvalue);\r\n }\r\n else{\r\n props.handleOnSelection(selectedInstruction, selectedRBvalue);\r\n }\r\n }\r\n manage_reservation_fields(\r\n props.para.ClientSerNo,\r\n props.para.PropertySerNo,\r\n props.para.ReservationSerNo,\r\n \"BillingInstructionRemarks\",\r\n selectedInstruction\r\n ).then((response) => alert(response.data.Message));\r\n } else {\r\n console.log(\"Mode is Not Defined\");\r\n }\r\n };\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n

Billing Instruction

\r\n
\r\n
\r\n Reset\r\n \r\n Save\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    Confirmation No.
    \r\n
    \r\n {reservationData.BookingNo}\r\n
    \r\n
  • \r\n
  • \r\n
    Guest Name
    \r\n
    \r\n {reservationData.GuestName}\r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n handleFilterBillingData(v)}\r\n >\r\n Search in the list\r\n \r\n
\r\n select from the below list\r\n
\r\n
\r\n
\r\n {\r\n console.log(\"key\", key);\r\n console.log(\"value\", value);\r\n setSelectedRBvalue(key);\r\n //setSelectedInstruction(value);\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n
\r\n
And
\r\n {\r\n if (selectedRBvalue == \"\" && ischecked) {\r\n alert(\"Please select instruction from the list.\");\r\n } else {\r\n setIsManually(ischecked);\r\n if (!ischecked) setSelectedInstruction(selectedInstruction);\r\n }\r\n }}\r\n >\r\n Add Additional Instruction\r\n \r\n setSelectedInstruction(v)}\r\n type=\"text\"\r\n value={selectedInstruction}\r\n >\r\n Billing Instruction\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSingleSelectDropdown,\r\n InnModalPopup,\r\n InnTextarea,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetReasonMaster } from \"../../../../services/generalService\";\r\nimport { ReservationCancel } from \"../../../../services/reservationCancelService\";\r\n\r\nexport function CancelReservationModalPopup(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"ReservationSerNo\": parseInt(props.para.ReservationSerNo),\r\n \"Remarks\": \"\",\r\n \"ReasonSerNo\": 0,\r\n \"ReasonType\": \"\",\r\n \"IsNoShow\": false\r\n }\r\n const defaultValidationObj = {\r\n \"Reason\": \"\",\r\n }\r\n\r\n const selectdata = [\r\n { key: \"ARR\", value: \"Arrival Date\" },\r\n { key: \"DEPT\", value: \"Departure Date\" },\r\n { key: \"BOOK\", value: \"Booking Date\" },\r\n { key: \"STAY\", value: \"Stay Date\" },\r\n ]\r\n\r\n const [cancelReasonData, setCancelReasonData] = useState([]);\r\n const [selectedReason, setSelectedReason] = useState({ key: 0, value: \"Select\" });\r\n const [cancelReservationObj, setCancelReservationObj] = useState(defaultObj);\r\n const [validationObj, setValidationObj] = useState(defaultValidationObj);\r\n const [note, setNote] = useState(\"\");\r\n\r\n //#region Service Call\r\n const fillCancelReason = () => {\r\n GetReasonMaster(currUser.ClientSerNo, currUser.PropertySerNo, \"CAN\").then(d => {\r\n let defaultReason = [];\r\n d.data.map((e) => {\r\n defaultReason =\r\n [...defaultReason,\r\n {\r\n key: e.ReasonSerNo,\r\n value: e.Name,\r\n }]\r\n })\r\n setCancelReasonData(defaultReason);\r\n })\r\n }\r\n //#endregion\r\n\r\n //#region events\r\n const handleReasonOnChange = (item) => {\r\n setSelectedReason(item);\r\n setCancelReservationObj(prev => ({ ...prev, ReasonType: \"CAN\", ReasonSerNo: item.key }));\r\n }\r\n const validation = () => {\r\n let isValid = true;\r\n if (selectedReason.key == 0) {\r\n isValid = false;\r\n // await confirm({\r\n // Message: `Provide a valid reason`,\r\n // Buttons: [{ value: \"Y\", title: \"Close\", type: \"\" }],\r\n // });\r\n alert(\"Provide a valid reason\");\r\n setValidationObj((prev) => ({ ...prev, Reason: \"Provide a valid reason\" }))\r\n }\r\n return isValid;\r\n }\r\n\r\n const handleSaveClick = () => {\r\n let validObject = validation();\r\n let obj = cancelReservationObj;\r\n\r\n if (validObject) {\r\n if (props.Mode == \"NSH\") {\r\n obj.IsNoShow = true;\r\n }\r\n if (props.Mode == \"CAN\") {\r\n obj.IsNoShow = false;\r\n }\r\n console.log(\"Rsult>>\", obj);\r\n props.OnClose();\r\n ReservationCancel(obj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n }\r\n else {\r\n alert(d.data.Message);\r\n }\r\n })\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region useEffects\r\n\r\n useEffect(() => {\r\n fillCancelReason();\r\n }, [])\r\n\r\n //#endregion\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Reason
\r\n
\r\n
\r\n handleReasonOnChange(item)}\r\n >\r\n
\r\n {\r\n setNote(v);\r\n setCancelReservationObj(prev => ({ ...prev, Remarks: v }));\r\n }}\r\n >\r\n Notes\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n props.OnClose()}\r\n >\r\n Cancel\r\n \r\n \r\n Apply\r\n \r\n
\r\n \r\n \r\n )\r\n}","export default __webpack_public_path__ + \"static/media/adhar-card.f59a8a9e.png\";","import axios from \"axios\";\r\nimport { relativeTimeRounding } from \"moment\";\r\n\r\nexport const GetBrandMaster = (clientSerNo) => {\r\n const apiUrl = \"/BrandMaster/manage-brands/\" + clientSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddEditBrandMaster = (para) => {\r\n const apiUrl = \"/BrandMaster/manage-brand\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const GetProfileCommunicationTypeMaster = (clientSerNo) => {\r\n const apiUrl =\r\n \"/ProfileCommunicationTypeMaster/manage-communication-type/\" +\r\n clientSerNo;\r\n // console.log (\"GET PROFILECOMMType\",apiUrl);\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddEditProfileCommunicationTypeMaster = (para) => {\r\n const apiUrl =\r\n \"/ProfileCommunicationTypeMaster/manage-communication-type\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//#ProfileAddressTypeMaster\r\nexport const GetProfileAddressTypeMaster = (clientSerNo) => {\r\n const apiUrl = \"/Masters/manage-profile-address-type/\" + clientSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddEditProfileAddressTypeMaster = (para) => {\r\n const apiUrl = \"/Masters/manage-profile-address-type/\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//endregion\r\n//#region Masters\r\nexport const GetMasters = (moduleSerNo, pageType) => {\r\n const apiUrl = \"/Masters/manage-masters/\" + moduleSerNo + \"/\" + pageType;\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion\r\n\r\n//#region Region Master\r\nexport const GetRegionMaster = (ClientSerNo) => {\r\n const apiUrl = \"/Masters/manage-region/\" + ClientSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const AddEditRegionMaster = (para) => {\r\n const apiUrl = \"/Masters/manage-region/\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\n//#endregion\r\n\r\n//#region Reason Master\r\nexport const GetReasonMaster = (ClientSerNo, PropertySerNo, ReasonType) => {\r\n const apiUrl = \"/ReasonMaster/manage-Reason/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + ReasonType;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetReasonType = () => {\r\n const apiUrl = \"/CmbKeyValue/manage-reason-type\";\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const AddEditReason = (para) => {\r\n const apiUrl = \"/ReasonMaster/manage-Reason\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const GetUserCategoryMaster = (ClientSerNo) => {\r\n const apiUrl = \"/UserCategory/manage-UserCategory/\" + ClientSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddEditUserCategory = (para) => {\r\n const apiUrl = \"/UserCategory/manage-UserCategory\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const GetVIPStatusMaster = (ClientSerNo) => {\r\n const apiUrl = \"/VIPStatusMaster/GetVipMaster/\" + ClientSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const AddEditVIPStatus = (para) => {\r\n const apiUrl = \"/VIPStatusMaster/manage-vip-status\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//#endregion\r\n\r\n//#region Profile Title Master\r\nexport const GetProfileTitleMaster = (clientSerNo) => {\r\n const apiUrl = \"/ProfileTitleMaster/manage-profile-title/\" + clientSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddEditProfileTitleMaster = (para) => {\r\n const apiUrl = \"/ProfileTitleMaster/manage-profile-title\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//#endregion\r\n//#region Identification Type Master\r\nexport const GetIdentificationTypeMaster = () => {\r\n const apiUrl = \"/IdentificationTypeMaster/manage-identifications\";\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddEditIdentificationTypeMaster = (para) => {\r\n const apiUrl = \"/IdentificationTypeMaster/manage-identification\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const ManageRights = (clientSerNo, userID, strRightsSerNo) => {\r\n const apiUrl = \"/UserRights/manage-multiple-rights/\" + clientSerNo + \"/\" + userID + \"/\" + strRightsSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion\r\n\r\n//#deposit rule Master\r\nexport const GetDepositRuleMaster = (clientSerNo, propetrySerNo) => {\r\n const apiUrl =\r\n \"/DepositRuleMaster/manage-deposit-rule/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propetrySerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddEditDepositRuleMaster = (para) => {\r\n const apiUrl = \"/DepositRuleMaster/manage-deposit-rule\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\n// detail APIs\r\nexport const GetDepositRuleDetail = (\r\n clientSerNo,\r\n propertySerNo,\r\n depositRuleSerNo\r\n) => {\r\n const apiUrl =\r\n \"/DepositRuleMaster/manage-deposit-rule-detail/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n depositRuleSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddEditDepositRuleDetail = (para) => {\r\n const apiUrl = \"/DepositRuleMaster/manage-deposit-rule-detail\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\n//endregion\r\n\r\nexport const GetCompanyProfileList = (para) => {\r\n const apiUrl = \"/Profile/manage-company-profile-list\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\n\r\n//#NightAuditProcess\r\nexport const ProcessNightAudit = (ClientSerNo, PropertySerNo, UserID, PcName, IpAddress, OutputPara) => {\r\n const apiUrl =\r\n \"/NightAudit/manage-process-nightaudit/\" +\r\n ClientSerNo + \"/\" + PropertySerNo + \"/\" + UserID + \"/\" + PcName + \"/\" + IpAddress + \"/\" + OutputPara;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetNightAuditDueOutList = (ClientSerNo, PropertySerNo, BusinessDate) => {\r\n const apiUrl = \"/NightAudit/manage-night-audit-dueout/\" +\r\n ClientSerNo +\r\n \"/\" +\r\n PropertySerNo +\r\n \"/\" +\r\n BusinessDate;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetNightAuditExpectedArrivalList = (ClientSerNo, PropertySerNo, BusinessDate) => {\r\n const apiUrl = \"/NightAudit/manage-night-audit-expected-arrival/\" +\r\n ClientSerNo +\r\n \"/\" +\r\n PropertySerNo +\r\n \"/\" +\r\n BusinessDate;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetNightAuditOpenFolioList = (ClientSerNo, PropertySerNo, BusinessDate) => {\r\n const apiUrl = \"/NightAudit/manage-night-audit-openfolio/\" +\r\n ClientSerNo +\r\n \"/\" +\r\n PropertySerNo +\r\n \"/\" +\r\n BusinessDate;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetNightAuditPayMasterList = (ClientSerNo, PropertySerNo, BusinessDate) => {\r\n const apiUrl = \"/NightAudit/manage-night-audit-paymaster/\" +\r\n ClientSerNo +\r\n \"/\" +\r\n PropertySerNo +\r\n \"/\" +\r\n BusinessDate;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetNightAuditPostNightList = (ClientSerNo, PropertySerNo, BusinessDate) => {\r\n const apiUrl = \"/NightAudit/manage-night-audit-postnight/\" +\r\n ClientSerNo +\r\n \"/\" +\r\n PropertySerNo +\r\n \"/\" +\r\n BusinessDate;\r\n return axios.get(apiUrl);\r\n};\r\nexport const ExtendReservation = (ClientSerNo, PropertySerNo, ReservationSerNo, Nights) => {\r\n const apiUrl = \"/NightAudit/manage-extend-reservation/\" +\r\n ClientSerNo +\r\n \"/\" +\r\n PropertySerNo +\r\n \"/\" +\r\n ReservationSerNo +\r\n \"/\" +\r\n Nights;\r\n return axios.post(apiUrl);\r\n};\r\nexport const PostponeReservation = (ClientSerNo, PropertySerNo, ReservationSerNo, Nights) => {\r\n const apiUrl = \"/NightAudit/manage-postpone-reservation/\" +\r\n ClientSerNo +\r\n \"/\" +\r\n PropertySerNo +\r\n \"/\" +\r\n ReservationSerNo +\r\n \"/\" +\r\n Nights;\r\n return axios.post(apiUrl);\r\n};\r\n//endregion\r\n\r\n//#region CountryMaster\r\nexport const AddEditCountryMaster = (para) => {\r\n const apiUrl = \"/CountryMaster/manage-AddEditCountry\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const GetCountryMaster = (ClientSerNo) => {\r\n const apiUrl = \"/CountryMaster/manage-country/\" + ClientSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n//endregion\r\n\r\n// IndustryMaster\r\nexport const GetIndustryMaster = () => {\r\n const apiUrl = \"/IndustryMaster/manage-industry\";\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const AddEditIndustryMaster = (para) => {\r\n const apiUrl = \"/IndustryMaster/manage-industry-master\";\r\n return axios.post(apiUrl, para);\r\n};\r\n// end IndustryMaster\r\n\r\n// StateMaster\r\nexport const GetStateMaster = (ClientSerNo, CountrySerNo) => {\r\n const apiUrl = \"/StateMaster/manage-state/\" + ClientSerNo + \"/\" + CountrySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n//End StateMaster\r\n\r\n//cityMaster\r\nexport const GetCityMaster = (ClientSerNo, CountrySerNo, StateSerNo) => {\r\n const apiUrl = \"/CityMaster/manage-city/\" + ClientSerNo + \"/\" + CountrySerNo + \"/\" + StateSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const AddEditCityMaster = (para) => {\r\n const apiUrl = \"/CityMaster/manage-addEditCity\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//End CityMaster\r\n\r\n//#region AddEditStateMaster\r\nexport const AddEditStateMaster = (para) => {\r\n const apiUrl = \"/StateMaster/manage-statemaster\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//endregion\r\n\r\n// StateMaster\r\nexport const GetMembershipLevelMaster = (ClientSerNo) => {\r\n const apiUrl = \"/MembershipLevelMaster/manage-membership-level/\" + ClientSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n//End StateMaster\r\n//#region AddEditStateMaster\r\nexport const AddEditMembershipLevelMaster = (para) => {\r\n const apiUrl = \"/MembershipLevelMaster/manage-membership-level\";\r\n return axios.post(apiUrl, para);\r\n}\r\n//endregion\r\n\r\nexport const GetCalculationRuleList = () => {\r\n const apiUrl = \"/Masters/manage-calculation-rule\"\r\n return axios.get(apiUrl);\r\n}\r\n\r\n//endregion\r\n\r\n// AddEditFunctionalAreaMaster\r\nexport const AddEditFunctionalAreaMaster = (para) => {\r\n const apiUrl = \"/AreaOfAlert/manage-functional-area-master\"\r\n return axios.post(apiUrl, para);\r\n}\r\n//endregion//#region RateTypeMaster\r\nexport const AddEditRateTypeMaster = (para) => {\r\n const apiUrl = \"/RateTypeMaster/manage-rateType-master\"\r\n return axios.post(apiUrl, para)\r\n};\r\nexport const GetRateTypeMaster = () => {\r\n const apiUrl = \"/RateTypeMaster/manage-rateType-master\";\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion \r\n//#region EmployeeMaster\r\nexport const AddEditEmployeeMaster = (para) => {\r\n const apiUrl = \"/EmployeeMaster/manage-employee-master\"\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const GetEmployeeMaster = (clientSerNo, propetrySerNo) => {\r\n const apiUrl =\r\n \"/EmployeeMaster/manage-employee-master/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propetrySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion\r\n//#region RelationShip Type Master\r\nexport const GetRelationShipTypeMaster = () => {\r\n const apiUrl = \"/RelationShipType/manage-relationshiptypes\"\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditRelationShipTypeMaster = (para) => {\r\n const apiUrl = \"/RelationShipType/manage-relationshiptypes\"\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion\r\n\r\n//#region reference master\r\nexport const AddEditReferenceMaster = (para) => {\r\n const apiUrl = \"/ReferenceMaster/manage-reference-master\"\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion\r\n\r\n//#region Device Master\r\nexport const AddEditDeviceMaster = (para) => {\r\n const apiUrl = \"/DeviceMaster/manage-device-master\"\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const GetDeviceMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/DeviceMaster/manage-device-master/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n//#endregion\r\n\r\n//#region transaction master data\r\nexport const GetTransactionMasterData = (ClientSerNo, PropertySerNo, Module) => {\r\n const apiUrl = \"/TransactionMaster/manage-transaction-master-data/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + Module;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditTransactionMasterData = (para) => {\r\n const apiUrl = \"/TransactionMaster/manage-transaction-master-data\"\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion\r\n\r\n//#region TransactionTax/Sub\r\nexport const GetTransactionSub = (ClientSerNo, PropertySerNo, TransactionSerNo) => {\r\n const apiUrl = \"/TransactionMaster/manage-transaction-tax/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + TransactionSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetTransactionSubSub = (ClientSerNo, PropertySerNo, TransactionSerNo) => {\r\n const apiUrl = \"/TransactionMaster/manage-transaction-master-sub-sub/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + TransactionSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddTransactionSubSub = (para) => {\r\n const apiUrl = \"/TransactionMaster/manage-transaction-master-sub-sub\"\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const DeleteTransactionSubMaster = (ClientSerNo, PropertySerNo, TransactionSerNo, AssoTransactionSerNo) => {\r\n const apiUrl = \"/TransactionMaster/manage-transaction-sub-master/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + TransactionSerNo + \"/\" + AssoTransactionSerNo;\r\n return axios.delete(apiUrl);\r\n}\r\n\r\nexport const AddEditTransactionSub = (para) => {\r\n const apiUrl = \"/TransactionMaster/manage-transaction-sub\"\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const DeleteTransactionSubSub = (ClientSerNo, PropertySerNo, TransactionSerNo, AssoTransactionSerNo) => {\r\n const apiUrl = \"/TransactionMaster/manage-delete-transaction-sub/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + TransactionSerNo + \"/\" + AssoTransactionSerNo;\r\n return axios.delete(apiUrl);\r\n}\r\n\r\n//#endregion//#region Exemption Master\r\nexport const AddEditExemptionMaster = (para) => {\r\n const apiUrl = \"/ExemptionMaster/manage-exemption-master\"\r\n return axios.post(apiUrl, para);\r\n}\r\nexport const GetExemptionMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/ExemptionMaster/manage-Exemption-Master/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetExemptionMasterSub = (ClientSerNo, PropertySerNo, ExemptionSerNo) => {\r\n const apiUrl = \"/ExemptionMaster/manage-exemption-mastersub/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + ExemptionSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const AddEditExemptionSubMaster = (para) => {\r\n const apiUrl = \"/ExemptionMaster/manage-exemptionsub-master\"\r\n return axios.post(apiUrl, para);\r\n}\r\n//#region User Rights Master\r\nexport const GetUserRightsMaster = () => {\r\n const apiUrl = \"/UserRightsMaster/manage-user-rights-master\";\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetUserByUserCategorySerNo = (ClientSerNo, UserCategorySerNo) => {\r\n const apiUrl = \"/UserRightsMaster/manage-user-rights-master-by-category/\" + ClientSerNo + \"/\" + UserCategorySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetUserCategoryByRightsSerNo = (ClientSerNo, RightsSerNo) => {\r\n const apiUrl = \"/UserRightsMaster/GetUserCategoryByRightsSerNo/\" + ClientSerNo + \"/\" + RightsSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const UserRightsApply = (para) => {\r\n const apiUrl = \"/UserRightsMaster/manage-user-rights\";\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion\r\nexport const GetCurrencyMaster = () => {\r\n const apiUrl = \"/CurrencyMaster/manage-currency-master\"\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetPropertyInvoiceDetails = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/PropertyDetail/manage-property-invoicedetails/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetUserMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/UserMaster/manage-user-master/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const AddEditUserMaster = (para) => {\r\n const apiUrl = \"/UserMaster/manage-user-master\";\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const GetClientMaster = () => {\r\n const apiUrl = \"/ClientMaster/manage-client-master\";\r\n return axios.get(apiUrl);\r\n}\r\nexport const AddEditClientMaster = (para) => {\r\n const apiUrl = \"/ClientMaster/manage-client-master\";\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const GetChargeTypeMaster = () => {\r\n const apiUrl = \"/TransactionMaster/manage-charge-type-master\";\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEdtiPayModeMaster = (para) => {\r\n const apiUrl = \"/TransactionMaster/manage-paymode-master\";\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\n//#region Room Feature Modal Popup\r\nexport const GetClientRoomFeatureGroupMaster = (ClientSerNo) => {\r\n const apiUrl = \"/ClientMaster/manage-client-room-feature-group-master/\" + ClientSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetClientRoomFeatureMaster = (ClientSerNo) => {\r\n const apiUrl = \"/ClientMaster/manage-client-room-feature-master/\" + ClientSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetClientRoomFeatureValueMaster = (ClientSerNo) => {\r\n const apiUrl = \"/ClientMaster/manage-client-room-feature-value-master/\" + ClientSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const AddEditClientRoomFeatureGroupMaster = (para) => {\r\n const apiUrl = \"/ClientMaster/manage-client-room-feature-group-master\";\r\n return axios.post(apiUrl, para);\r\n}\r\nexport const AddEditClientRoomFeatureMaster = (para) => {\r\n const apiUrl = \"/ClientMaster/manage-client-room-feature-master\";\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion\r\n//#region Special Modal Popup\r\nexport const GetClientSpecialGroupMaster = (ClientSerNo) => {\r\n const apiUrl = \"/ClientMaster/manage-client-special-group-master/\" + ClientSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetClientSpecialMaster = (ClientSerNo) => {\r\n const apiUrl = \"/ClientMaster/manage-client-special-master/\" + ClientSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const AddEditClientSpecialGroupMaster = (para) => {\r\n const apiUrl = \"/ClientMaster/manage-client-special-group-master\";\r\n return axios.post(apiUrl, para)\r\n}\r\nexport const AddEditClientSpecialMaster = (para) => {\r\n const apiUrl = \"/ClientMaster/manage-client-special-master\";\r\n return axios.post(apiUrl, para)\r\n}\r\n//#endregion\r\n//#region Property Master\r\nexport const GetPropertyMasters = (ClientSerNo) => {\r\n const apiUrl = \"/PropertyDetail/manage-property-master/\" + ClientSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditPropertyMaster = (para) => {\r\n const apiUrl = \"/PropertyDetail/manage-property-master/\"\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const GetPropertySpecialsMaster = (ClientSerNo) => {\r\n const apiUrl = \"/PropertyDetail/manage-property-master-specials/\" + ClientSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditPropertySpecialsMaster = (para) => {\r\n const apiUrl = \"/PropertyDetail/manage-property-master-specials/\"\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const GetPropertyRoomFeatureMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/PropertyDetail/manage-property-room-feature-master/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const ManagePropertyRoomFeatures = (para) => {\r\n const apiUrl = \"/PropertyDetail/manage-property-room-feature-master\"\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion\r\n//#region Grouping\r\nexport const grouping = (objectArray, property) => {\r\n return objectArray.reduce((acc, obj) => {\r\n // console.log(typeof acc)\r\n const key = obj[property];\r\n if (!acc[key]) {\r\n console.log(\"first>>>>.\");\r\n acc[key] = [];\r\n }\r\n acc[key].push(obj);\r\n return acc;\r\n }, {});\r\n}\r\n\r\nexport const groupingTwoTotalFunc = (data, group, TotalColumn, firstCol, IsGroupingOneTotal, IsGroupingTwoTotal,IsGrandTotal) => {\r\n let temp = JSON.parse(JSON.stringify(group));\r\n let structObj = {};\r\n let totalStructObj = {};\r\n let col = TotalColumn;\r\n data.forEach((x, indexO) => {\r\n let t = {};\r\n x.Grouping1.forEach((y, index) => {\r\n let totalObj = JSON.parse(JSON.stringify((group[x.Grouping2][y][0])));\r\n if (index == 0) {\r\n structObj = JSON.parse(JSON.stringify(totalObj));\r\n }\r\n if (indexO == 0) {\r\n totalStructObj = JSON.parse(JSON.stringify(totalObj));\r\n }\r\n Object.keys(totalObj).forEach((a, index1) => {\r\n if (a == firstCol) {\r\n totalObj[a] = \"Sub Total :\";\r\n if (index == 0) {\r\n structObj[a] = 'Total :';\r\n }\r\n if (indexO === 0) {\r\n totalStructObj[a] = 'Grand Total :'\r\n }\r\n }\r\n else {\r\n totalObj[a] = null;\r\n if (index == 0) {\r\n structObj[a] = null;\r\n }\r\n if (indexO === 0) {\r\n totalStructObj[a] = null;\r\n }\r\n }\r\n })\r\n col.forEach((z) => {\r\n let total = 0;\r\n group[x.Grouping2][y].forEach((b) => {\r\n if (z in b) {\r\n total = total + b[z];\r\n }\r\n })\r\n totalObj[z] = (total);\r\n structObj[z] = structObj[z] + (total);\r\n })\r\n if (IsGroupingOneTotal) {\r\n temp[x.Grouping2][y].push(totalObj);\r\n }\r\n console.log(structObj)\r\n })\r\n if (IsGroupingTwoTotal) {\r\n temp[x.Grouping2].Total = structObj;\r\n }\r\n Object.keys(totalStructObj).forEach(x => {\r\n if (structObj[x] !== null && !isNaN(structObj[x])) {\r\n totalStructObj[x] += (structObj[x]);\r\n }\r\n })\r\n })\r\n if(IsGrandTotal){\r\n temp['GrandTotal'] = totalStructObj;\r\n }\r\n return temp;\r\n}\r\n\r\nexport const groupingThreeTotalFunc = (data, group, TotalColumn, firstCol, IsGroupingOneTotal, IsGroupingTwoTotal, IsGroupingThreeTotal, IsGrandTotal) => {\r\n let temp = JSON.parse(JSON.stringify(group));\r\n let structObj = {};\r\n let totalStructObj = {};\r\n let grandTotalStructObj = {};\r\n let col = TotalColumn;\r\n\r\n data.forEach((x, index) => {\r\n x.Grouping2.forEach((y, indexO) => {\r\n y.G1.forEach((z, index2) => {\r\n let totalObj = JSON.parse(JSON.stringify((group[x.Grouping3][y.G2][z][0])));\r\n if (index2 == 0) {\r\n structObj = JSON.parse(JSON.stringify(totalObj));\r\n }\r\n if (indexO == 0) {\r\n totalStructObj = JSON.parse(JSON.stringify(totalObj));\r\n }\r\n if (index == 0) {\r\n grandTotalStructObj = JSON.parse(JSON.stringify(totalObj));\r\n }\r\n Object.keys(totalObj).forEach((a, index1) => {\r\n if (a == firstCol) {\r\n totalObj[a] = \"Sub Total :\";\r\n if (index2 == 0) {\r\n structObj[a] = 'SubTotal -B :';\r\n }\r\n if (indexO === 0) {\r\n totalStructObj[a] = 'Total :'\r\n }\r\n if (index === 0) {\r\n grandTotalStructObj[a] = 'Grand Total :'\r\n }\r\n }\r\n else {\r\n totalObj[a] = null;\r\n if (index2 == 0) {\r\n structObj[a] = null;\r\n }\r\n if (indexO === 0) {\r\n totalStructObj[a] = null\r\n }\r\n if (index === 0) {\r\n grandTotalStructObj[a] = null\r\n }\r\n }\r\n })\r\n col.forEach((c) => {\r\n let total = 0;\r\n group[x.Grouping3][y.G2][z].forEach((b) => {\r\n if (c in b) {\r\n total = total + b[c];\r\n }\r\n })\r\n totalObj[c] = (total);\r\n structObj[c] = structObj[c] + (total);\r\n })\r\n if (IsGroupingOneTotal) {\r\n temp[x.Grouping3][y.G2][z].push(totalObj);\r\n }\r\n })\r\n console.log(\"structobj>>\", structObj, x.Grouping3, y.G2)\r\n if (IsGroupingTwoTotal) {\r\n temp[x.Grouping3][y.G2].Total = structObj;\r\n }\r\n Object.keys(totalStructObj).forEach(x => {\r\n if (structObj[x] !== null && !isNaN(structObj[x])) {\r\n totalStructObj[x] += structObj[x];\r\n }\r\n })\r\n console.log(\"TotalStructObj\", totalStructObj)\r\n\r\n })\r\n if (IsGroupingThreeTotal) {\r\n temp[x.Grouping3].Total = totalStructObj;\r\n }\r\n\r\n Object.keys(grandTotalStructObj).forEach(x => {\r\n if (totalStructObj[x] !== null && !isNaN(totalStructObj[x])) {\r\n grandTotalStructObj[x] += totalStructObj[x];\r\n }\r\n })\r\n })\r\n if (IsGrandTotal) {\r\n temp['GrandTotal'] = grandTotalStructObj;\r\n }\r\n\r\n\r\n console.log(temp)\r\n // temp['GrandTotal'] = totalStructObj;\r\n return temp;\r\n}\r\n\r\nexport const groupingTotalOneFunc = (groupingData, group, col,firstCol, IsGroupingOneTotal, IsGroupingTwoTotal) => {\r\n let temp = JSON.parse(JSON.stringify(group));\r\n let structObj = {};\r\n\r\n groupingData.forEach((x, index) => {\r\n let totalObj = JSON.parse(JSON.stringify((group[x][0])));\r\n if (index == 0) {\r\n structObj = JSON.parse(JSON.stringify(totalObj));\r\n }\r\n Object.keys(totalObj).forEach((a, index1) => {\r\n if (a == firstCol) {\r\n totalObj[a] = \"Sub Total :\";\r\n if (index == 0) {\r\n structObj[a] = 'Total :';\r\n }\r\n }\r\n else {\r\n totalObj[a] = null;\r\n if (index == 0) {\r\n structObj[a] = null;\r\n }\r\n }\r\n })\r\n col.forEach((y) => {\r\n let total = 0;\r\n group[x].forEach((b) => {\r\n if (y in b) {\r\n total = total + b[y];\r\n }\r\n })\r\n totalObj[y] = (total);\r\n structObj[y] = structObj[y] + (total);\r\n })\r\n if (IsGroupingOneTotal) {\r\n temp[x].push(totalObj);\r\n }\r\n console.log(structObj)\r\n })\r\n if (IsGroupingTwoTotal) {\r\n temp.Total = structObj;\r\n }\r\n \r\n console.log(temp)\r\n return temp;\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnTooltip,\r\n InnPrimaryButton,\r\n InnPlainButton,\r\n} from \"../../../../component\";\r\nimport {\r\n IndiReservationContact,\r\n IndiBookedOn,\r\n IndiAccompanyGuest,\r\n IndiSharer,\r\n IndiBillingInstruction,\r\n IndiRoutingInstruction,\r\n IndiRoomFeature,\r\n IndiSpecial,\r\n IndiAlert,\r\n IndiTrace,\r\n IndiGuestProfile,\r\n IndiArrival,\r\n IndiAdultChild,\r\n IndiRoomRate,\r\n IndiInclusion,\r\n IndiRoomType,\r\n IndiAgent,\r\n IndiCompany,\r\n IndiRateCode,\r\n IndiDailyRate,\r\n IndiFutureStay,\r\n IndiVipStatus\r\n} from \"../indicators\";\r\nimport smsIcon from \"../../../../assets/images/sms-tooltip-icon.svg\";\r\nimport EmailTooltipIcon from \"../../../../assets/images/email-tooltip-icon.svg\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n GetReservationInfoData,\r\n manageReservationBalanceIndicator,\r\n GetReservationInfoProfileData\r\n} from \"../../../../services/reservationService\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nexport function TipArrived(props) {\r\n //#region UseState Variable\r\n const currUser = useSelector(currentUser);\r\n const history = useHistory();\r\n const [reservationInfoData, setReservationInfoData] = useState({});\r\n const [isReloadTransportation, setIsReloadTransportation] = useState(false);\r\n const [updatePreference, setUpdatePreference] = useState(false);\r\n const [selectedGuestProfile, setSelectedGuestProfile] = useState({});\r\n const [totalBalance, setTotalBalance] = useState({});\r\n const [guestInfo, setGuestInfo] = useState({});\r\n //#endregion\r\n //#region Local Variable\r\n const reservationObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: props.para.ReservationSerNo,\r\n };\r\n //#endregion\r\n\r\n //#region APICallFunction\r\n\r\n const getSelectedGuestInfo = (guestProfileSerNo) => {\r\n GetReservationInfoProfileData(currUser.ClientSerNo, guestProfileSerNo,\"GU\").then(d => {\r\n setGuestInfo(d.data);\r\n })\r\n }\r\n //#endregion\r\n //#region Event\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n };\r\n //#endregion\r\n //#region UseEffect \r\n useEffect(() => {\r\n if (props.para.ReservationSerNo != undefined) {\r\n GetReservationInfoData(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n props.para.ReservationSerNo\r\n ).then((d) => {\r\n setReservationInfoData(d.data);\r\n getSelectedGuestInfo(d.data.GuestProfileSerNo);\r\n });\r\n }\r\n }, [props.para.ReservationSerNo]);\r\n\r\n useEffect(() => {\r\n manageReservationBalanceIndicator(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n reservationObj.ReservationSerNo\r\n ).then((d) => {\r\n setTotalBalance(d.data);\r\n });\r\n }, []);\r\n //#endregion\r\n //#region ToolTip Function\r\n const GuestTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
{guestInfo.ContactName}
\r\n
\r\n {guestInfo.ContactMobile}\r\n \r\n SMS\r\n \r\n
\r\n
\r\n {guestInfo.ContactEmail}\r\n \r\n Email\r\n \r\n
\r\n
\r\n
\r\n {/*
\r\n Edit\r\n
*/}\r\n
\r\n );\r\n };\r\n\r\n const ArrivedStatusTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n Checked In By\r\n Mr. Hemang\r\n
\r\n
Date: 12 Mar.
\r\n
Time: 10:20PM
\r\n
PC: 192.168.600.789
\r\n
\r\n
\r\n
\r\n );\r\n };\r\n //#endregion\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {reservationInfoData.GuestName}\r\n \r\n \r\n \r\n Booking No:{reservationInfoData.BookingNo}\r\n
\r\n
\r\n
\r\n \r\n Arrived\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {totalBalance.Nights} Nights  Inclusive of all taxes\r\n
\r\n
\r\n {totalBalance.Balance}\r\n
\r\n\r\n {\r\n history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: reservationInfoData.ReservationSerNo,filterObj: (props.para.filterObj) == undefined ? undefined : props.para.filterObj} });\r\n }}>View\r\n
\r\n
\r\n
\r\n
Reservation
\r\n \r\n \r\n {\r\n setIsReloadTransportation(!isReloadTransportation);\r\n }}\r\n >\r\n \r\n
BILLING
\r\n \r\n \r\n
\r\n
\r\n {\r\n setSelectedGuestProfile(item);\r\n setUpdatePreference(!updatePreference);\r\n }}\r\n >\r\n \r\n \r\n
\r\n Stay History\r\n (2)\r\n
\r\n setUpdatePreference(!updatePreference)}\r\n para={{ ...reservationInfoData, IsShowTooltipActionButton: \"hide\" }}\r\n >\r\n setUpdatePreference(!updatePreference)}\r\n para={{ ...reservationInfoData, IsShowTooltipActionButton: \"hide\" }}\r\n >\r\n
\r\n Notification\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n InnActionButton,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnSingleRadioButton,\r\n InnTextbox,\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { AddEditReservationWindow, GetPaymentMethod, GetReservationAccompanyGuest, } from \"../../../../services/reservationService\";\r\nimport { IndiCompanyOnFolio } from \"../indicators/indi-company-on-folio\";\r\n\r\nexport function AddEditWindowRoutingModalPopup(props) {\r\n const currUser = useSelector(currentUser);\r\n\r\n const [reservationObj, setReservationObj] = useState({\r\n ClientSerNo: currUser.ClientSerNo,\r\n PropertySerNo: currUser.PropertySerNo,\r\n ReservationSerNo: 0,\r\n });\r\n const [reservationAccompanyGuest, setReservationAccompanyGuest] = useState([]); // Use in window add/edit mode to select payee.\r\n const [paymentMethodData, setPaymentMethodData] = useState([]); // Use in window add/edit mode to select payee.\r\n const [windowRoutingAddEditObject, setWindowRoutingAddEditObject] = useState({\r\n \"WindowName\": \"\",\r\n \"WindowSerNo\": 0,\r\n \"PaymentTransactionSerNo\": 0,\r\n \"PaymentTransactionName\": \"\",\r\n \"GuestProfileSerNo\": 0,\r\n \"GuestProfileName\": \"\",\r\n \"CompanyOnFolioProfileSerNo\": 0,\r\n \"CompanyOnFolioName\": \"\",\r\n \"CompanyOnFolioType\": \"\",\r\n \"Mode\": \"Add\",\r\n \"IsManual\": props.Data?.IsManual\r\n });\r\n\r\n const funAddEditReservationWindow = () => {\r\n // console.log(\"windowRoutingAddEditObject\");\r\n //console.log(\"windowRoutingAddEditObject>>\", windowRoutingAddEditObject);\r\n let para = windowRoutingAddEditObject;\r\n para = {\r\n ...para,\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: reservationObj.ReservationSerNo\r\n };\r\n AddEditReservationWindow([para]).then(d => {\r\n if (d.data.Code == 200) {\r\n props.Onclose();\r\n console.log(\"hey\", windowRoutingAddEditObject, para);\r\n props.OnSelect(windowRoutingAddEditObject);\r\n }\r\n else {\r\n alert(d.data.Message);\r\n }\r\n });\r\n };\r\n\r\n const handlebtnSaveWindow = () => {\r\n let tempGuest = windowRoutingAddEditObject;\r\n // tempGuest.CompanyOnFolioProfileSerNo = props.para.CompanyProfileSerNo;\r\n setWindowRoutingAddEditObject(tempGuest);\r\n funAddEditReservationWindow();\r\n props.Onclose();\r\n };\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n if (props.para != undefined) {\r\n setReservationObj((prev) => ({ ...prev, ReservationSerNo: props.para.ReservationSerNo }));\r\n setTimeout(() => {\r\n GetReservationAccompanyGuest(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), props.para.ReservationSerNo).then(d => {\r\n //console.log(\"d.data>>\",d.data);\r\n var temp = (d.data);\r\n let SortedList = temp.sort((a, b) => (a.GuestName > b.GuestName) ? 1 : -1);\r\n var tmpData = [];\r\n SortedList.forEach(ele => {\r\n tmpData.push({ \"key\": ele.GuestProfileSerNo, \"value\": ele.GuestName, \"IsPrimary\": ele.IsPrimary });\r\n });\r\n setReservationAccompanyGuest(tmpData);\r\n //console.log(\"Detail SortedList>>\",SortedList);\r\n });\r\n }, 50);\r\n }\r\n GetPaymentMethod(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n var temp = (d.data);\r\n let SortedList = temp.sort((a, b) => (a.Name > b.Name) ? 1 : -1);\r\n var tmpData = [];\r\n SortedList.forEach(ele => {\r\n tmpData.push({ \"key\": ele.TransactionSerNo, \"value\": ele.Name });\r\n });\r\n setPaymentMethodData(tmpData);\r\n });\r\n //console.log(\"Window Data>>\", props.Data);\r\n if (props.Data != undefined) {\r\n setWindowRoutingAddEditObject(props.Data);\r\n }\r\n }, []);\r\n //#endregion\r\n\r\n return (\r\n <>\r\n props.Onclose()}\r\n >\r\n
\r\n
\r\n
\r\n

{windowRoutingAddEditObject.Mode}

\r\n
\r\n
\r\n {\r\n handlebtnSaveWindow();\r\n }}\r\n >Save\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n //console.log(v);\r\n let tempGuest = windowRoutingAddEditObject;\r\n tempGuest.WindowName = v;\r\n setWindowRoutingAddEditObject(tempGuest);\r\n if (v.trim() === \"\") {\r\n setWindowRoutingAddEditObject(prev => ({ ...prev, CustomErrorWindowName: \"Enter Valid Window name.!\" }));\r\n }\r\n else {\r\n setWindowRoutingAddEditObject(prev => ({ ...prev, CustomErrorWindowName: \"\" }));\r\n }\r\n }}\r\n type=\"text\"\r\n required={false}\r\n //customError={\"Enter Only 3 Char!!\"}\r\n >\r\n Window Name\r\n \r\n {\r\n //console.log(v)\r\n }}\r\n type=\"text\"\r\n required={false}\r\n disabled={true}\r\n //customError={\"Enter Only 3 Char!!\"}\r\n >\r\n Window\r\n \r\n\r\n
\r\n {\r\n //console.log(item, name);\r\n let tempGuest = windowRoutingAddEditObject;\r\n tempGuest.PaymentTransactionSerNo = item.key;\r\n tempGuest.PaymentTransactionName = item.value;\r\n setWindowRoutingAddEditObject(tempGuest);\r\n }}\r\n >\r\n
\r\n\r\n\r\n
\r\n {\r\n //console.log(item, name);\r\n let tempGuest = windowRoutingAddEditObject;\r\n tempGuest.GuestProfileSerNo = item.key;\r\n tempGuest.GuestProfileName = item.value;\r\n setWindowRoutingAddEditObject(tempGuest);\r\n }}\r\n >\r\n
\r\n
\r\n {\r\n //console.log(\"company from indicator\", companyontype,companyonserno,companyonfolioname)\r\n setWindowRoutingAddEditObject(prev => ({\r\n ...prev,\r\n CompanyOnFolioType: companyontype,\r\n CompanyOnFolioProfileSerNo: companyonserno,\r\n CompanyOnFolioName: companyonfolioname\r\n }));\r\n }}>\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n );\r\n}","import axios from \"axios\";\r\n\r\nexport const GetRoomMaster = (clientSerNo,propertySerNo) => {\r\n const apiUrl = \"/RoomMaster/manage-rooms/\"+ clientSerNo + \"/\" + propertySerNo; \r\n return axios.get(apiUrl); \r\n}\r\nexport const cmbGetRoomTypeMaster = (clientSerNo,propertySerNo) => {\r\n const apiUrl = \"/CmbKeyValue/cmbGetRoomTypeMaster/\"+ clientSerNo + \"/\" + propertySerNo; \r\n return axios.get(apiUrl); \r\n}\r\nexport const CmbGetRoomClassMaster = (clientSerNo,propertySerNo) => {\r\n const apiUrl = \"/CmbKeyValue/CmbGetRoomClassMaster/\"+ clientSerNo + \"/\" + propertySerNo; \r\n return axios.get(apiUrl); \r\n}\r\nexport const GetRoomMasterBySerNo = (clientSerNo,propertySerNo,roomSerNo) => {\r\n const apiUrl = \"/RoomMaster/manage-rooms/\"+ clientSerNo + \"/\" + propertySerNo + \"/\" + roomSerNo;\r\n return axios.get(apiUrl); \r\n}\r\nexport const GetRoomFeatures = (ClientSerNo,PropertySerNo) => {\r\n const apiUrl = \"/RoomMasterFeature/manage-room-master-features/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}","import axios from \"axios\";\r\n\r\n//#region\r\n\r\nexport const ReservationCancel = (para) => {\r\n const apiUrl = \"/ReservationCancel/manage-cancel-reservation\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const CancelReservationCharge = (para) => {\r\n const apiUrl = \"/ReservationCancel/manage-cancel-reservation-charge\";\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const GetCancelReservationList = (para) => {\r\n const apiUrl = \"/ReservationCancel/manage-cancel-reservation-list\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const GetReservationCancelInfo = (ClientSerNo, PropertySerNo, ReservationSerNo) => {\r\n const apiUrl = \"/ReservationCancel/manage-cancel-reservation-info/\"\r\n + ClientSerNo\r\n + \"/\"\r\n + PropertySerNo\r\n + \"/\"\r\n + ReservationSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\n//#end region\r\n","export const ReservationListFilterModel = {\r\n Data: {\r\n ClientSerNo: 0,\r\n PropertySerNo: 0,\r\n PageNumber: 1,\r\n SortCol: \"\",\r\n SortType: \"ASC\",\r\n Adult: 0,\r\n Child: 0,\r\n DtType: \"ARR\",\r\n FromDate: \"\",\r\n ToDate: \"\",\r\n RoomTypeSerNo: 0,\r\n RateSerNo: 0,\r\n ReservationTypeSerNo: 0,\r\n CompanyProfileSerNo: 0,\r\n AgentProfileSerNo: 0,\r\n BookingNo: \"\",\r\n BookingReferenceNo: \"\",\r\n MembershipNo: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n VIPLevelSerNo: 0,\r\n IsIncognitoName: false,\r\n NightsFrom: 0,\r\n NightsTo: 0,\r\n strMemberShipLevel: \"\",\r\n ReservationStatus: \"\",\r\n BlockSerNo: \"\",\r\n PartyNo: \"\",\r\n RoomSerNo: 0, \r\n\t IsEarlyDeparture: false,\r\n\t IsShowBlockRoomsOnly: false,\r\n Submenu:\"\",\r\n Mainmenu:\"\",\r\n IsOnlyComplimentary: false,\r\n IsOnlyHouseUsed: false\r\n },\r\n};\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport ReactHTMLTableToExcel from 'react-html-table-to-excel';\r\nimport { InnActionButton, InnTableGrid, InnButtonTypeWithDropdown } from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { useSelector } from \"react-redux\";\r\nimport moment from \"moment\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nexport function ReportPreviewLevelZero(props) {\r\n const history = useHistory();\r\n const currUser = useSelector(currentUser);\r\n const reactToExcelRef = useRef();\r\n const selectdata = [\r\n { key: \"Excel\", value: \"Excel\" },\r\n ];\r\n const optBtnData = [\r\n { key: \"Edit\", value: \"edt\" },\r\n { key: \"Delete\", value: \"del\" },\r\n ];\r\n \r\n const [date, setDate] = useState(new Date());\r\n const [gridSelectedItem, SetgridSelectedItem] = useState([]);\r\n const [temp, settemp] = useState(false);\r\n\r\n useEffect(() => {\r\n const interval = setInterval(() => {\r\n setDate(new Date());\r\n }, 1000);\r\n return () => clearInterval(interval);\r\n }, []);\r\n\r\n useEffect(() => {\r\n console.log(\"selected data\", gridSelectedItem);\r\n console.log(\"selected length\", gridSelectedItem.length);\r\n }, [gridSelectedItem, temp]);\r\n\r\n const setSelectedItem = (items) => {\r\n SetgridSelectedItem(items);\r\n settemp(!temp);\r\n };\r\n\r\n //grid header\r\n const [isActive, setActive] = useState(false);\r\n const [colSpanVal, setColSpanVal] = useState(0);\r\n const [linkInfo, setlinkInfo] = useState({});\r\n const [list, setList] = useState([]);\r\n const [excelList, setExcelList] = useState([]);\r\n const [reportObj, setReportObj] = useState({});\r\n const [filterList, setFilterList] = useState(\"\");\r\n const [columnList, setColumnList] = useState([]);\r\n const [reportSerNo, setReportSerNo] = useState(0);\r\n const [reportName, setReportName] = useState(\"\");\r\n const [propertyName, setPropertyName] = useState(\"\");\r\n const [previewObj, setPreviewObj] = useState({});\r\n\r\n useEffect(() => {\r\n let o = props.para;\r\n if (o != undefined) {\r\n console.log(o)\r\n setList(o.list);\r\n setPreviewObj(o)\r\n console.log(\"ExcellData>>>>>\", o.list)\r\n setReportObj(o.obj);\r\n setColumnList(o.columnList);\r\n setReportSerNo(o.reportserno);\r\n setReportName(o.reportname);\r\n setFilterList(o.filterList);\r\n setPropertyName(o.propertyName);\r\n console.log(\"ColunmnList>>>\", columnList);\r\n }\r\n // if (o.columnList?.length != 0) {\r\n // setColSpanVal(o.columnList.length)\r\n // }\r\n }, [props.para]);\r\n return (\r\n
\r\n {\r\n props.IsSummarised ? null :\r\n
\r\n
\r\n
\r\n
\r\n

Preview

\r\n
\r\n
\r\n
\r\n
\r\n }\r\n\r\n
\r\n \r\n {\r\n props.IsSummarised ? null :\r\n \r\n
\r\n {previewObj?.propertyName}\r\n {previewObj?.reportname}\r\n List: {previewObj?.filterList}\r\n
\r\n \r\n }\r\n\r\n \r\n
\r\n \r\n \r\n \r\n {\r\n columnList && columnList.map(d => {\r\n return (\r\n\r\n \r\n\r\n )\r\n })\r\n }\r\n \r\n \r\n \r\n {\r\n list && list.map((d, index, arr) => {\r\n return (\r\n <>\r\n {\r\n \r\n {\r\n columnList && columnList.map((z) => {\r\n return (\r\n previewObj?.IsTotal && index == list.length - 1 ?\r\n \r\n :\r\n // \r\n \r\n )\r\n })\r\n }\r\n \r\n }\r\n \r\n )\r\n })\r\n }\r\n \r\n {/* \r\n \r\n \r\n \r\n \r\n */}\r\n
{d.key}
{!isNaN(d[z.value]) && d[z.value] !== null ? d[z.value].toFixed(2) : d[z.value]}
{!isNaN(d[z.value]) && d[z.value] != null ? parseFloat(d[z.value]).toFixed(2) : d[z.value]}{!isNaN(d[z.value]) && d[z.value] !== null ? typeof d[z.value] != \"string\" ? parseFloat(d[z.value]).toFixed(2) : d[z.value] : d[z.value]}
Total:
10,667.57
\r\n\r\n
\r\n \r\n {\r\n props.ShowDateTime\r\n ?\r\n \r\n [Date :{moment(date).format(\"DD MMM YYYY\")}]  \r\n [Time :{moment(date).format(\"HH:mm\")}]  \r\n [User :{currUser.UserID}]\r\n \r\n :\r\n <>\r\n }\r\n\r\n \r\n {\r\n props.IsSummarised ? null :\r\n
\r\n \r\n
\r\n }\r\n {\r\n props.IsSummarised ? null :\r\n
\r\n
\r\n \r\n {/* Last Update: 10 Dec. 2019, 10:20:25    */}\r\n \r\n
\r\n
\r\n {\r\n history.push({\r\n pathname: previewObj?.goBackPath,\r\n state: {\r\n filterObj: reportObj,\r\n reportserno: previewObj?.reportserno,\r\n reportname: previewObj?.reportname\r\n }\r\n });\r\n console.log(previewObj)\r\n }}>Back\r\n\r\n console.log(item, name)}\r\n >\r\n {\r\n if (item.key === 'Excel') {\r\n console.log(reactToExcelRef.current)\r\n reactToExcelRef.current.handleDownload();\r\n }\r\n console.log(item, name)\r\n }}\r\n >\r\n console.log(item, name)}\r\n >\r\n {/*
\r\n \r\n
*/}\r\n
\r\n
\r\n }\r\n\r\n
\r\n
\r\n )\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport ReactHTMLTableToExcel from 'react-html-table-to-excel';\r\nimport { InnActionButton, InnButtonTypeWithDropdown } from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport moment, { min } from \"moment\";\r\nexport function ReportPreviewLevelTwo(props) {\r\n const history = useHistory();\r\n const currUser = useSelector(currentUser);\r\n const reactToExcelRef = useRef();\r\n const selectdata = [\r\n { key: \"Excel\", value: \"Excel\" },\r\n ];\r\n const optBtnData = [\r\n { key: \"Edit\", value: \"edt\" },\r\n { key: \"Delete\", value: \"del\" },\r\n ];\r\n\r\n const [date, setDate] = useState(new Date());\r\n const [isActive, setActive] = useState(false);\r\n const [colSpanVal, setColSpanVal] = useState(0);\r\n const [list, setList] = useState([]);\r\n const [reportObj, setReportObj] = useState({});\r\n const [columnList, setColumnList] = useState([]);\r\n const [groupingColumn, setGroupingColumn] = useState([]);\r\n const [groupingOneTotal, setGroupingOneTotal] = useState(false);\r\n const [groupingTwoTotal, setGroupingTwoTotal] = useState(false);\r\n const [previewObj, setPreviewObj] = useState({});\r\n const [grandTotal, setGrandTotal] = useState(false);\r\n\r\n useEffect(() => {\r\n const interval = setInterval(() => {\r\n setDate(new Date());\r\n }, 1000);\r\n return () => clearInterval(interval);\r\n }, []);\r\n\r\n useEffect(() => {\r\n let o = props.para;\r\n console.log('para : ', props.para);\r\n if (o != undefined) {\r\n console.log(o)\r\n setList(o.list);\r\n setPreviewObj(o);\r\n setReportObj(o.obj);\r\n setColumnList(o.columnList);\r\n setGroupingColumn(o.groupingColumn);\r\n setGroupingOneTotal(o.IsGroupingOneTotal);\r\n setGroupingTwoTotal(o.IsGroupingTwoTotal);\r\n setGrandTotal(o.IsGrandTotal);\r\n\r\n }\r\n // if (o.columnList?.length != 0) {\r\n // setColSpanVal(o.columnList.length)\r\n // }\r\n }, [props.para]);\r\n return (\r\n <>\r\n
\r\n\r\n {\r\n props.IsSummarised ?\r\n null\r\n :\r\n
\r\n
\r\n
\r\n
\r\n

Preview

\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n \r\n\r\n {\r\n props.IsSummarised ?\r\n null\r\n :\r\n \r\n
\r\n {previewObj.propertyName}\r\n {previewObj.reportname}\r\n List: {previewObj.filterList}\r\n
\r\n \r\n }\r\n \r\n
\r\n \r\n \r\n \r\n {\r\n columnList && columnList.map(d => {\r\n return (\r\n\r\n \r\n\r\n )\r\n })\r\n }\r\n \r\n \r\n \r\n {\r\n groupingColumn && groupingColumn.map((x) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n\r\n {\r\n x.Grouping1 && x.Grouping1.map((y) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n {\r\n list[x.Grouping2] && list[x.Grouping2][y] && list[x.Grouping2][y].map((d, index, arr) => {\r\n return (\r\n <>\r\n {\r\n \r\n {\r\n columnList && columnList.map((z) => {\r\n return (\r\n groupingOneTotal && index == list[x.Grouping2][y].length - 1 ?\r\n \r\n :\r\n // \r\n \r\n )\r\n })\r\n }\r\n \r\n }\r\n \r\n )\r\n })\r\n }\r\n\r\n \r\n\r\n )\r\n })\r\n\r\n }\r\n {\r\n groupingTwoTotal ?\r\n \r\n {\r\n columnList && columnList.map((d) => {\r\n return (\r\n <>\r\n {\r\n list[x.Grouping2] && list[x.Grouping2][\"Total\"] ?\r\n \r\n :\r\n null\r\n }\r\n \r\n )\r\n })\r\n }\r\n\r\n \r\n\r\n :\r\n null\r\n }\r\n \r\n\r\n )\r\n })\r\n\r\n }\r\n \r\n\r\n \r\n \r\n {\r\n grandTotal ?\r\n columnList && columnList.map((s) => {\r\n return (\r\n <>\r\n {\r\n list?.GrandTotal ?\r\n\r\n : null\r\n }\r\n \r\n )\r\n })\r\n : null\r\n }\r\n {/* \r\n */}\r\n \r\n \r\n
{d.key}
{x.Grouping2}
{y}
{!isNaN(d[z.value]) && d[z.value] != null ? d[z.value].toFixed(2) : d[z.value]}
{!isNaN(d[z.value]) && d[z.value] != null && d[z.value] != \"\" ? parseFloat(d[z.value]).toFixed(3) : d[z.value]}{!isNaN(d[z.value]) && d[z.value] != null && typeof d[z.value] != \"string\" ? parseFloat(d[z.value]).toFixed(2) : d[z.value]}
{\r\n !isNaN(list[x.Grouping2][\"Total\"][d.value]) && list[x.Grouping2][\"Total\"][d.value] != null ? list[x.Grouping2][\"Total\"][d.value].toFixed(2) : list[x.Grouping2][\"Total\"][d.value]}\r\n
\r\n {\r\n !isNaN(list.GrandTotal[s.value]) && list.GrandTotal[s.value] != null ?\r\n list.GrandTotal[s.value]?.toFixed(2) :\r\n list.GrandTotal[s.value]}\r\n
GrandTotal:
10,667.57
\r\n
\r\n \r\n {\r\n props.ShowDateTime\r\n ?\r\n \r\n [Date :{moment(date).format(\"DD MMM YYYY\")}]  \r\n [Time :{moment(date).format(\"HH:mm\")}]  \r\n [User :{currUser.UserID}]\r\n \r\n :\r\n <>\r\n }\r\n \r\n {\r\n props.IsSummarised ? null :\r\n
\r\n \r\n
\r\n }\r\n
\r\n {\r\n props.IsSummarised ? null :\r\n
\r\n
\r\n
\r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
\r\n
\r\n {\r\n history.push({\r\n pathname: previewObj.goBackPath,\r\n state: {\r\n filterObj: reportObj,\r\n reportserno: previewObj.reportserno,\r\n reportname: previewObj.reportname\r\n }\r\n });\r\n }}>Back\r\n\r\n console.log(item, name)}\r\n >\r\n {\r\n if (item.key === 'Excel') {\r\n console.log(reactToExcelRef.current)\r\n reactToExcelRef.current.handleDownload();\r\n }\r\n console.log(item, name)\r\n }}\r\n >\r\n console.log(item, name)}\r\n >\r\n
\r\n
\r\n
\r\n }\r\n\r\n
\r\n \r\n )\r\n}","export default __webpack_public_path__ + \"static/media/right-blue-round-arrow.2fe0ad60.svg\";","export default __webpack_public_path__ + \"static/media/attachment-icon.0eecab0b.svg\";","import React, { useState, useEffect } from \"react\";\r\n\r\nexport function InnRadioButton(props) {\r\n const [rbValue, setrbValue] = useState(props.value);\r\n const [rbKey, setrbKey] = useState(props.value);\r\n\r\n const handlechange = (e) => {\r\n //setrbValue(e.target.value);\r\n setrbKey(e.target.id);\r\n if (props.onSelectionChange != undefined) {\r\n props.onSelectionChange(e.target.value, e.target.id);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n // setrbValue(props.value);\r\n if (props.value != undefined) {\r\n console.log('props.value >>', props.value, props.data);\r\n setrbKey(props.value);\r\n }\r\n }, [props.value]);\r\n\r\n const content =\r\n props.data &&\r\n props.data.map((d) => {\r\n return (\r\n \r\n \r\n
{d.value}
\r\n \r\n \r\n \r\n \r\n );\r\n });\r\n\r\n return (\r\n
\r\n {content}\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialState = {\r\n commonGlobal: {\r\n IsMenuOpen: false,\r\n },\r\n};\r\n\r\nexport const commonSlice = createSlice({\r\n name: \"common\",\r\n initialState,\r\n reducers: {\r\n toggleMenu: (state, action) => {\r\n state.commonGlobal.IsMenuOpen = action.payload;\r\n // if (state.commonGlobal.IsMenuOpen) state.commonGlobal.IsMenuOpen = false;\r\n // else state.commonGlobal.IsMenuOpen = true;\r\n },\r\n },\r\n});\r\n\r\nexport const { toggleMenu } = commonSlice.actions;\r\nexport const cGlobal = (state) => state.common.commonGlobal;\r\n\r\nexport default commonSlice.reducer;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnEditor,\r\n InnLoader,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport {\r\n GetDocumentRemarkMaster, AddEditDocumentRemarkMaster, GetDocumentRemarkMasterBySerNo\r\n} from \"../../../../services/posMasterService\";\r\n\r\nexport function DocumentRemarkMaster(props) {\r\n\r\n //#region local variable\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n RemarkSerNo: 0,\r\n Description: \"\",\r\n Remarks: \"\",\r\n Module: currUser.CurrentModule,\r\n IsSystemGenerated: false,\r\n ModuleSerNo: 0,\r\n Name: \"\",\r\n Mode: \"View\"\r\n }\r\n const validation = {\r\n Description: \"\",\r\n Remarks: \"\",\r\n Name: \"\",\r\n IsSystemGenerated: false\r\n }\r\n //#endregion\r\n //#region State Variable\r\n const [documentObj, setDocumentObj] = useState(defaultObj);\r\n const [documentValidation, setDocumentValidation] = useState(validation);\r\n const [documentList, setDocumentList] = useState([]);\r\n const [filterDocument, setFilterDocument] = useState([]);\r\n const [selectedSerNo, setSelectedSerNo] = useState(0);\r\n const [search, setSearch] = useState(\"\");\r\n const [isActive, setIsActive] = useState(false);\r\n //#endregion\r\n //#region useEffect\r\n useEffect(() => {\r\n fillDocumentRemarks();\r\n }, []);\r\n\r\n\r\n //#endregion\r\n //#region Custom Function\r\n const fillDocumentRemarks = () => {\r\n setIsActive(true);\r\n GetDocumentRemarkMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setIsActive(false)\r\n let temp = []\r\n if (d.data.length > 0) {\r\n d.data.forEach((x) => {\r\n if (x.Module == currUser.CurrentModule) {\r\n temp.push(x)\r\n }\r\n })\r\n }\r\n setFilterDocument(temp);\r\n setDocumentList(temp);\r\n if (temp.length > 0 && documentObj.Mode == \"View\") {\r\n fillDocumentBySerNo(temp[0].RemarkSerNo);\r\n }\r\n });\r\n }\r\n\r\n const fillDocumentBySerNo = (RemarkSerNo) => {\r\n setIsActive(true)\r\n GetDocumentRemarkMasterBySerNo(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), RemarkSerNo).then((d) => {\r\n setIsActive(false)\r\n if (d.data) {\r\n let obj = d.data;\r\n obj.Mode = \"View\";\r\n setDocumentObj(obj);\r\n console.log(\">>>>>>\", d.data);\r\n }\r\n });\r\n }\r\n const clearValidation = () => {\r\n setDocumentValidation(validation);\r\n }\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (documentValidation.Description != \"\") {\r\n setDocumentValidation((prev) => ({ ...prev, Description: \"Please enter valid Description\" }))\r\n isValid = false;\r\n }\r\n if (/[-’/`~!#*$@_%+=.,^&(){}[\\]|;:”<>?\\\\]/g.test(documentObj.Description) == true || documentObj.Description.trim().length == 0) {\r\n isValid = false;\r\n setDocumentValidation((prev) => ({ ...prev, Description: \"invalid description\" }));\r\n }\r\n if (documentObj.Remarks == \"\") {\r\n isValid = false;\r\n setDocumentValidation((prev) => ({ ...prev, Remarks: \"invalid remark\" }));\r\n }\r\n return isValid;\r\n }\r\n //#endregion\r\n //#region Event handlers\r\n const handleOnSearchChange = (e) => {\r\n setSearch(e);\r\n setDocumentObj(defaultObj);\r\n let temp = [];\r\n documentList.forEach((ele) => {\r\n if (ele.Description.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(ele);\r\n }\r\n });\r\n setFilterDocument(temp);\r\n }\r\n const handleOnClickDocument = (e) => {\r\n clearValidation();\r\n let obj = documentList.find(d => d.RemarkSerNo == e.target.id);\r\n obj.Mode = \"View\";\r\n setDocumentObj(obj);\r\n console.log(\"ClickOnDescription->>\", obj);\r\n fillDocumentBySerNo(e.target.id);\r\n setSelectedSerNo(e.target.id);\r\n }\r\n const handleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj))\r\n obj.Mode = \"Add\";\r\n setDocumentObj(obj);\r\n }\r\n const handleOnEditClick = () => {\r\n if (documentObj.Description == \"\") {\r\n alertFunction(\"please select document remarks\");\r\n }\r\n else {\r\n setDocumentObj((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n setSelectedSerNo(documentObj.RemarkSerNo);\r\n }\r\n }\r\n const handleOnCancelClick = () => {\r\n clearValidation();\r\n let existingObj = documentList.find(d => d.RemarkSerNo == selectedSerNo);\r\n console.log(\"Cancel-->>\", existingObj);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setDocumentObj(existingObj);\r\n }\r\n else {\r\n setDocumentObj(defaultObj);\r\n }\r\n if (documentObj.Mode == \"Edit\") {\r\n fillDocumentBySerNo(selectedSerNo);\r\n }\r\n }\r\n const searchEdit = () => {\r\n GetDocumentRemarkMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n let temp = d.data.filter(x => x.Description.toLowerCase().includes(search.toLowerCase()));\r\n setFilterDocument(temp);\r\n });\r\n }\r\n const handleOnSaveClick = () => {\r\n let isValid = isValidPage();\r\n if (isValid) {\r\n setIsActive(true);\r\n AddEditDocumentRemarkMaster(documentObj).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n fillDocumentRemarks();\r\n if (documentObj.Mode == \"Add\" || documentObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit();\r\n return;\r\n }\r\n fillDocumentBySerNo(parseInt(d.data.ReturnValue));\r\n }\r\n }\r\n else {\r\n alertFunction(\"Failed\");\r\n }\r\n });\r\n setDocumentObj((prev) => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n //#endregion\r\n const selectdata = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Document Remarks Master

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Search\r\n
\r\n \r\n
\r\n
\r\n
Document Remarks
\r\n
\r\n
    \r\n {\r\n filterDocument.map(d =>\r\n
  • \r\n {d.Description}\r\n
  • \r\n )\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
{/* disabled-section */}\r\n
\r\n
\r\n {\r\n if ((filterDocument.every((x) => x.Description.toLowerCase() != e.toLowerCase()))) {\r\n setDocumentValidation((prev) => ({ ...prev, Description: \"\" }))\r\n setDocumentObj(prev => ({ ...prev, Description: e }));\r\n } else {\r\n setDocumentValidation(prev => ({ ...prev, Description: \"Document Remark already exist.\" }))\r\n }\r\n }}\r\n >Description\r\n
\r\n
\r\n Is System Generated\r\n {\r\n setDocumentObj((prev) => ({ ...prev, IsSystemGenerated: v }));\r\n console.log(\"IsSystemGenerated\", v);\r\n }}\r\n id=\"docremarks\"\r\n disabled\r\n value={documentObj.IsSystemGenerated}>\r\n
\r\n
\r\n
\r\n
\r\n

Remark

\r\n {\r\n setDocumentObj((prev) => ({ ...prev, Remarks: e }));\r\n setDocumentValidation((prev) => ({ ...prev, Remarks: \"\" }));\r\n console.log(\"Remarks Data-->>\", e);\r\n }}\r\n hide={false}\r\n disable={documentObj.Mode == \"View\" ? true : false}\r\n hideToolbar={false}\r\n >\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
\r\n
\r\n Activate console.log(v)} id=\"kd\">\r\n {\r\n documentObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n {/* setShowDepositTermTypeModal(!showDepositTermTypeModal)}>Add Deposit Term Type*/}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import React, { useState } from \"react\";\r\nimport { InnActionButton, InnPrimaryButton } from \".\";\r\n\r\nexport function InnModalPopup(props) {\r\n const [isClose, setisClose] = useState(false);\r\n\r\n const handleCloseclick = () => {\r\n setisClose(true);\r\n props.Onclose(false);\r\n };\r\n\r\n const handleSaveclick = () => {\r\n props.OnSave();\r\n };\r\n\r\n const classNm = \"agent-popup \" + props.className;\r\n return (\r\n
\r\n
\r\n \r\n {/*
\r\n
\r\n

Modal Name

\r\n
\r\n Cancel \r\n Save\r\n
\r\n
\r\n
\r\n
\r\n {props.children}\r\n
*/}\r\n {props.children}\r\n
\r\n
\r\n );\r\n}\r\n","import { element } from \"prop-types\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnFileUpload,\r\n InnFileUploadPreview,\r\n InnLoader,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnRadioButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnToastMessage,\r\n InnTabs,\r\n InnStatusLabel,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnButton3Darrow,\r\n InnButtonTypeWithDropdown,\r\n InnPlainTextbox,\r\n InnSingleDateSelection,\r\n InnTimeSelection,\r\n InnSingleRadioButton,\r\n InnContextMenu,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport { AgentModalPopup } from \"../modalPopup/AgentModalPopup\";\r\n\r\nimport { GetCoutryMaster, GetStateMaster, GetCityMaster, GetReservationInfoCompanyOnFolioProfileData, GetCompanyOnFolioProfilData, AddCompanyOnFolioProfilData } from \"../../../../services/reservationService\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { ManageRights } from \"../../../../services/generalService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport function IndiCompanyOnFolio(props) {\r\n const { t } = useTranslation();\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n\r\n const [userRights, setUserRights] = useState([]);\r\n const [showGSTClaimPopup, setGSTClaimPopup] = useState(false);\r\n const [companyOnFolioProfileDetailObj, setCompanyOnFolioProfileDetailObj] = useState([]);\r\n const [rbSelectedGstClaim, setRBSelectedGstClaim] = useState(\"NA\");\r\n const [disableAddBtn, setdisableAddBtn] = useState(true);\r\n const [showAddNewCompanyDiv, setShowAddNewCompanyDiv] = useState(false);\r\n const [companyOnFolioProfileData, setCompanyOnFolioProfileData] = useState([]);\r\n const [countryList, setCountryList] = useState([]);\r\n const [stateList, setStateList] = useState([]);\r\n const [cityList, setCityList] = useState([]);\r\n const [selectedCompany, setSelectedCompany] = useState({\r\n AgentName: \"Select\",\r\n AgentSerNo: \"0\",\r\n });\r\n const [showCompanySearchFilterModal, setShowCompanySearchFilterModal] = useState(false);\r\n const [showEditDiv, setShowEditDiv] = useState(true); //use to show Edit button\r\n const [companyProfileObj, setCompanyProfileObj] = useState({\r\n ClientSerNo: props.para.ClientSerNo,\r\n PropertySerNo: props.para.PropertySerNo,\r\n ReservationSerNo: props.para.ReservationSerNo,\r\n ProfileSerNo: 0,\r\n GuestProfileSerNo: 0,\r\n ProfileType: \"COP\",\r\n FullName: \"\",\r\n StatutoryName: \"\",\r\n GSTNo: \"\",\r\n Street: \"\",\r\n PostCode: \"\",\r\n CountrySerNo: 0,\r\n StateSerNo: 0,\r\n CitySerNo: 0,\r\n });\r\n const [companyOnFolioValidationObj, setCompanyOnFolioValidationObj] = useState({\r\n Name: \"\",\r\n GSTNO: \"\",\r\n Street: \"\",\r\n });\r\n const [rbDataGST, setRbDataGST] = useState([\r\n { value: \"NA\", label: \"Not Applicable\", disabled: false },\r\n { value: \"CO\", label: \"Company on Reservation\", disabled: false },\r\n { value: \"AG\", label: \"Agent on Reservation\", disabled: false },\r\n { value: \"COP\", label: \"Company on Profile\", disabled: false },\r\n ]);\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n useEffect(() => {\r\n getReservationCompanyOnFolioDetail();\r\n if (props.para != undefined) {\r\n if (props.para.IsShowTooltipActionButton == \"hide\") {\r\n setShowEditDiv(false);\r\n } else {\r\n setShowEditDiv(true);\r\n }\r\n }\r\n }, [props.para.ReservationSerNo]);\r\n useEffect(() => {\r\n funGetUserRights();\r\n }, []);\r\n\r\n const isValidData = () => {\r\n let isValid = true;\r\n if (companyProfileObj.FullName == \"\" || companyProfileObj.FullName == null) {\r\n isValid = false;\r\n setCompanyOnFolioValidationObj((prev) => ({ ...prev, Name: \"Enter the company Name\" }));\r\n }\r\n if (companyProfileObj.GSTNo == \"\" || companyProfileObj.GSTNo == null) {\r\n isValid = false;\r\n setCompanyOnFolioValidationObj((prev) => ({ ...prev, GSTNO: \"Enter GST No\" }));\r\n }\r\n if (companyProfileObj.Street == \"\" || companyProfileObj.Street == null) {\r\n isValid = false;\r\n setCompanyOnFolioValidationObj((prev) => ({ ...prev, Street: \"Enter Addres\" }));\r\n }\r\n\r\n return isValid;\r\n };\r\n\r\n const getCoutryMasterList = () => {\r\n GetCoutryMaster(props.para.ClientSerNo)\r\n .then((d) => {\r\n let countryData = [];\r\n d.data.map((element) => {\r\n countryData.push({ key: element.CountrySerNo, value: element.Name });\r\n });\r\n setCountryList(countryData);\r\n })\r\n .catch((error) => {\r\n setCountryList([]);\r\n });\r\n };\r\n const getStateMasterList = (countrySerNo) => {\r\n GetStateMaster(props.para.ClientSerNo, countrySerNo)\r\n .then((d) => {\r\n let stateData = [];\r\n d.data.map((element) => {\r\n stateData.push({ key: element.StateSerNo, value: element.Name });\r\n });\r\n setStateList(stateData);\r\n })\r\n .catch((error) => {\r\n setStateList([]);\r\n });\r\n };\r\n const getCityMasterList = (countrySerNo, stateSerNo) => {\r\n GetCityMaster(props.para.ClientSerNo, countrySerNo, stateSerNo)\r\n .then((d) => {\r\n let cityData = [];\r\n d.data.map((element) => {\r\n cityData.push({ key: element.CitySerNo, value: element.Name });\r\n });\r\n setCityList(cityData);\r\n })\r\n .catch((error) => {\r\n setCityList([]);\r\n });\r\n };\r\n\r\n const getReservationCompanyOnFolioDetail = () => {\r\n //console.log(props.para.WindowSerNo)\r\n GetReservationInfoCompanyOnFolioProfileData(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo, (props.para.WindowSerNo == undefined || props.para.WindowSerNo == 0) ? 1 : props.para.WindowSerNo)\r\n .then((d) => {\r\n setCompanyOnFolioProfileDetailObj(d.data);\r\n console.log(\"company on folio profile data>>\", d.data);\r\n })\r\n .catch((error) => {\r\n setCompanyOnFolioProfileDetailObj([]);\r\n });\r\n };\r\n const funGetUserRights = () => {\r\n if (currUser.ClientSerNo != undefined && currUser.UserID != undefined) {\r\n ManageRights(currUser.ClientSerNo, currUser.UserID, \"28,29,30,33\").then(async (d) => {\r\n console.log(\"user rights data>>>\", d.data);\r\n if (d.data.length > 0) {\r\n setUserRights(d.data);\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n });\r\n } else {\r\n console.log(\"UserID or clientId is undefined\");\r\n }\r\n };\r\n const handleRights = async (rightSerNo) => {\r\n if (rightSerNo != undefined) {\r\n const userRight = userRights.find((x) => x.RightsSerNo == rightSerNo);\r\n if (userRight != undefined) {\r\n if (userRight.IsApply != undefined) {\r\n if (userRight.IsApply) {\r\n return true;\r\n } else {\r\n await confirm({\r\n Message: `${userRight.Name} : ${userRight.PromptMessage}`,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n }\r\n };\r\n const handleEditOnClick = () => {\r\n companyOnFolioProfileDetailObj.CompanyOnFolioType = props.para.CompanyOnFolioType == undefined ? companyOnFolioProfileDetailObj.CompanyOnFolioType : props.para.CompanyOnFolioType;\r\n if ((props.para.from != undefined && props.para.from == \"Routing\" && companyOnFolioProfileDetailObj.NumberOfCompanyOnFolioProfile <= 2) || (props.para.from == undefined && companyOnFolioProfileDetailObj.NumberOfCompanyOnFolioProfile <= 1)) {\r\n if (companyOnFolioProfileDetailObj.CompanyOnFolioType == \"\") {\r\n if (companyOnFolioProfileDetailObj.AgentProfileSerNo != 0 && (companyOnFolioProfileDetailObj.IsSharer == false)) {\r\n setRBSelectedGstClaim(\"AG\");\r\n handleRBGstClaimChangeClick(\"AG\");\r\n } else if (companyOnFolioProfileDetailObj.CompanyProfileSerNo != 0 && (companyOnFolioProfileDetailObj.IsSharer == false)) {\r\n setRBSelectedGstClaim(\"CO\");\r\n handleRBGstClaimChangeClick(\"CO\");\r\n } else {\r\n setRBSelectedGstClaim(\"NA\");\r\n handleRBGstClaimChangeClick(\"NA\");\r\n }\r\n if (parseInt(companyOnFolioProfileDetailObj.AgentProfileSerNo) == 0 || (companyOnFolioProfileDetailObj.IsSharer == true)) {\r\n rbDataGST.filter((element) => element.value == \"AG\")[0].disabled = true;\r\n setRbDataGST(rbDataGST);\r\n }\r\n if (parseInt(companyOnFolioProfileDetailObj.CompanyProfileSerNo) == 0 || (companyOnFolioProfileDetailObj.IsSharer == true)) {\r\n rbDataGST.filter((element) => element.value == \"CO\")[0].disabled = true;\r\n setRbDataGST(rbDataGST);\r\n }\r\n } else {\r\n setRBSelectedGstClaim(companyOnFolioProfileDetailObj.CompanyOnFolioType);\r\n handleRBGstClaimChangeClick(companyOnFolioProfileDetailObj.CompanyOnFolioType);\r\n }\r\n setGSTClaimPopup(!showGSTClaimPopup);\r\n } else {\r\n alert(\"Diffrent company names selected forr diffrent windows on the windows routing indicator,hense this action can not be performed.Please visit the window rounting popup to make changes\");\r\n }\r\n };\r\n const handleRBGstClaimChangeClick = (selectedClaim) => {\r\n if (parseInt(companyOnFolioProfileDetailObj.AgentProfileSerNo) == 0 || (companyOnFolioProfileDetailObj.IsSharer == true)) {\r\n rbDataGST.filter((element) => element.value == \"AG\")[0].disabled = true;\r\n setRbDataGST(rbDataGST);\r\n }\r\n if (parseInt(companyOnFolioProfileDetailObj.CompanyProfileSerNo) == 0 || (companyOnFolioProfileDetailObj.IsSharer == true)) {\r\n rbDataGST.filter((element) => element.value == \"CO\")[0].disabled = true;\r\n setRbDataGST(rbDataGST);\r\n }\r\n\r\n if (selectedClaim != \"NA\") {\r\n if (selectedClaim == \"COP\" && companyOnFolioProfileDetailObj.CompanyOnProfileSerNo == 0) {\r\n setdisableAddBtn(false);\r\n } else {\r\n setdisableAddBtn(true);\r\n }\r\n\r\n let profileSerNo =\r\n selectedClaim == \"AG\" ? companyOnFolioProfileDetailObj.AgentProfileSerNo : selectedClaim == \"CO\" ? companyOnFolioProfileDetailObj.CompanyProfileSerNo : selectedClaim == \"COP\" ? companyOnFolioProfileDetailObj.CompanyOnProfileSerNo : 0;\r\n GetCompanyOnFolioProfilData(props.para.ClientSerNo, profileSerNo)\r\n .then((d) => {\r\n setCompanyOnFolioProfileData(d.data);\r\n if (props.para.from != undefined && props.para.from == \"Routing\") {\r\n setCompanyOnFolioProfileData((prev) => ({\r\n ...prev,\r\n WindowSerNo: props.para.WindowSerNo,\r\n }));\r\n }\r\n setCompanyOnFolioProfileData((prev) => ({\r\n ...prev,\r\n ClientSerNo: props.para.ClientSerNo,\r\n PropertySerNo: props.para.PropertySerNo,\r\n ReservationSerNo: props.para.ReservationSerNo,\r\n ProfileType: selectedClaim,\r\n GuestProfileSerNo: companyOnFolioProfileDetailObj.GuestProfileSerNo,\r\n\r\n }));\r\n\r\n })\r\n .catch((error) => {\r\n setCompanyOnFolioProfileData([]);\r\n setCompanyOnFolioProfileData((prev) => ({\r\n ...prev,\r\n ClientSerNo: props.para.ClientSerNo,\r\n PropertySerNo: props.para.PropertySerNo,\r\n ReservationSerNo: props.para.ReservationSerNo,\r\n ProfileType: selectedClaim,\r\n GuestProfileSerNo: companyOnFolioProfileDetailObj.GuestProfileSerNo,\r\n }));\r\n if (props.para.from != undefined && props.para.from == \"Routing\") {\r\n setCompanyOnFolioProfileData((prev) => ({\r\n ...prev,\r\n WindowSerNo: props.para.WindowSerNo,\r\n }));\r\n }\r\n\r\n });\r\n } else {\r\n setCompanyOnFolioProfileData([]);\r\n setCompanyOnFolioProfileData((prev) => ({\r\n ...prev,\r\n ClientSerNo: props.para.ClientSerNo,\r\n PropertySerNo: props.para.PropertySerNo,\r\n ReservationSerNo: props.para.ReservationSerNo,\r\n ProfileType: selectedClaim,\r\n GuestProfileSerNo: companyOnFolioProfileDetailObj.GuestProfileSerNo,\r\n }));\r\n if (props.para.from != undefined && props.para.from == \"Routing\") {\r\n setCompanyOnFolioProfileData((prev) => ({\r\n ...prev,\r\n WindowSerNo: props.para.WindowSerNo,\r\n }));\r\n } else {\r\n setCompanyOnFolioProfileData(prev => ({ ...prev, WindowSerNo: 1, ProfileSerNo: 0 }));\r\n }\r\n\r\n }\r\n // console.log(companyOnFolioProfileDetailObj.GuestProfileSerNo);\r\n };\r\n const handleAddOnClick = () => {\r\n handleRights(\"33\").then((d) => {\r\n if (d) {\r\n setShowAddNewCompanyDiv(true);\r\n setShowCompanySearchFilterModal(false);\r\n setCompanyProfileObj((prev) => ({ ...prev, GuestProfileSerNo: companyOnFolioProfileDetailObj.GuestProfileSerNo }));\r\n getCoutryMasterList();\r\n } else {\r\n console.log(\"Not Allowed\");\r\n }\r\n });\r\n };\r\n const handleSaveOnClick = () => {\r\n if (showAddNewCompanyDiv == false) {\r\n AddEditCompanyOnFolio(companyOnFolioProfileData);\r\n }\r\n if (showAddNewCompanyDiv == true) {\r\n let IsPageValid = isValidData();\r\n if (IsPageValid) {\r\n setShowAddNewCompanyDiv(false);\r\n setdisableAddBtn(true);\r\n AddEditCompanyOnFolio(companyProfileObj);\r\n }\r\n }\r\n };\r\n const AddEditCompanyOnFolio = (profileObj) => {\r\n if (props.para.from != undefined && props.para.from == \"Routing\" && showAddNewCompanyDiv == false) {\r\n props.OnSelect(profileObj.ProfileType, profileObj.ProfileSerNo, profileObj.FullName);\r\n props.para.CompanyOnFolioName = profileObj.FullName;\r\n GSTClaimTooltip();\r\n setGSTClaimPopup(!showGSTClaimPopup);\r\n\r\n }\r\n else if (props.para.from != undefined && props.para.from == \"Routing\" && showAddNewCompanyDiv == true) {\r\n AddCompanyOnFolioProfilData(profileObj)\r\n .then((d) => {\r\n if (d.data.Code == \"200\") {\r\n alert(\"Profile data updated successfully\");\r\n companyOnFolioProfileData.ProfileType = profileObj.ProfileType;\r\n companyOnFolioProfileData.ProfileSerNo = d.data.ReturnValue;\r\n companyOnFolioProfileData.FullName = profileObj.FullName;\r\n //console.log(companyOnFolioProfileData.ProfileType,companyOnFolioProfileData.ProfileSerNo,companyOnFolioProfileData.FullName)\r\n props.OnSelect(profileObj.ProfileType, d.data.ReturnValue, profileObj.FullName);\r\n props.para.CompanyOnFolioName = profileObj.FullName;\r\n GSTClaimTooltip();\r\n setGSTClaimPopup(!showGSTClaimPopup);\r\n }\r\n })\r\n .catch((error) => { });\r\n\r\n }\r\n else {\r\n AddCompanyOnFolioProfilData(profileObj)\r\n .then((d) => {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n getReservationCompanyOnFolioDetail();\r\n setGSTClaimPopup(!showGSTClaimPopup);\r\n }\r\n })\r\n .catch((error) => { });\r\n\r\n }\r\n };\r\n const handleAgentEditOnClick = () => {\r\n handleRights(\"30\").then((d) => {\r\n if (d) {\r\n // console.log(\"click\");\r\n // console.log(companyOnFolioProfileDetailObj.CompanyOnProfileSerNo);\r\n // console.log(rbSelectedGstClaim);\r\n setShowAddNewCompanyDiv(false);\r\n if (rbSelectedGstClaim == \"COP\" && parseInt(companyOnFolioProfileDetailObj.CompanyOnProfileSerNo) == 0) {\r\n setShowCompanySearchFilterModal(true);\r\n } else {\r\n setShowCompanySearchFilterModal(false);\r\n }\r\n } else {\r\n console.log(\"Not Allowed\");\r\n }\r\n });\r\n };\r\n const GSTClaimTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {(props.para.from == \"Routing\" && companyOnFolioProfileData.FullName != undefined) ? companyOnFolioProfileData.FullName : companyOnFolioProfileDetailObj.CompanyOnFolioName}   \r\n {(props.para.from == \"Routing\" && companyOnFolioProfileData.FullName != undefined) ?\r\n \r\n {companyOnFolioProfileData.CompanyOnFolioType == \"AG\"\r\n ? \"(Company On Agent)\"\r\n : companyOnFolioProfileData.CompanyOnFolioType == \"CO\"\r\n ? \"(Company on Reservation)\"\r\n : companyOnFolioProfileData.CompanyOnFolioType == \"COP\"\r\n ? \"(Company on Profile)\"\r\n : \"\"}\r\n :\r\n \r\n {companyOnFolioProfileDetailObj.CompanyOnFolioType == \"AG\"\r\n ? \"(Company On Agent)\"\r\n : companyOnFolioProfileDetailObj.CompanyOnFolioType == \"CO\"\r\n ? \"(Company on Reservation)\"\r\n : companyOnFolioProfileDetailObj.CompanyOnFolioType == \"COP\"\r\n ? \"(Company on Profile)\"\r\n : \"\"}\r\n \r\n }\r\n
\r\n {(props.para.from == \"Routing\" && companyOnFolioProfileData.FullName != undefined) ?\r\n <>\r\n
{companyOnFolioProfileData.GSTNo}
\r\n
{companyOnFolioProfileData.StateCode}
\r\n \r\n :\r\n <>\r\n
{companyOnFolioProfileDetailObj.GSTNo}
\r\n
{companyOnFolioProfileDetailObj.StateCode}
\r\n\r\n \r\n }\r\n
\r\n
\r\n {showEditDiv ? (\r\n
\r\n {\r\n // console.log(\"companyOnFolioProfileDetailObj.CompanyOnFolioName\", companyOnFolioProfileDetailObj.CompanyOnFolioName);\r\n if (companyOnFolioProfileDetailObj.CompanyOnFolioProfileSerNo > 0 && companyOnFolioProfileDetailObj.CompanyOnFolioProfileSerNo != undefined) {\r\n handleRights(\"29\").then((d) => {\r\n if (d) {\r\n handleEditOnClick();\r\n } else {\r\n console.log(\"Not Allowed\");\r\n }\r\n });\r\n } else {\r\n handleRights(\"28\").then((d) => {\r\n if (d) {\r\n handleEditOnClick();\r\n } else {\r\n console.log(\"Not Allowed\");\r\n }\r\n });\r\n }\r\n }}>\r\n Edit\r\n \r\n console.log(item, name)}>\r\n
\r\n ) : (\r\n <>\r\n )}\r\n
\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n
\r\n {t(\"INN_CompanyOnFolio\")}\r\n {\r\n (props.para.from == \"Routing\" && companyOnFolioProfileData.FullName != undefined) ?\r\n companyOnFolioProfileData.FullName : companyOnFolioProfileDetailObj.CompanyOnFolioName}\r\n
\r\n
\r\n\r\n {showGSTClaimPopup ? (\r\n setGSTClaimPopup(!showGSTClaimPopup)}>\r\n
\r\n
\r\n
\r\n

Company on Folio

\r\n
\r\n\r\n
\r\n handleSaveOnClick()}>Save\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    Confirmation No.
    \r\n
    {companyOnFolioProfileDetailObj.BookingNo}
    \r\n
  • \r\n
  • \r\n
    Guest Name
    \r\n
    {companyOnFolioProfileDetailObj.GuestName}
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Who Claims GST?
\r\n {/* {\r\n console.log(\"selection changed called : \" + value);\r\n }}\r\n > */}\r\n {rbDataGST.map((element) => {\r\n return (\r\n
\r\n {\r\n setRBSelectedGstClaim(value);\r\n handleRBGstClaimChangeClick(value);\r\n }}>\r\n
\r\n );\r\n })}\r\n \r\n Agent/Company Name\r\n \r\n {/* handleAgentEditOnClick()}>\r\n */}\r\n
\r\n
\r\n {companyOnFolioProfileData.FullName} handleAgentEditOnClick()}>\r\n
\r\n
\r\n {companyOnFolioProfileData.Street}\r\n
\r\n {companyOnFolioProfileData.CityName},
\r\n {companyOnFolioProfileData.StateName} ({companyOnFolioProfileData.CountryName})\r\n
\r\n
\r\n
\r\n
\r\n State Code:\r\n {companyOnFolioProfileData.StateCode} \r\n
\r\n
\r\n GSTIN:\r\n {companyOnFolioProfileData.GSTNo} \r\n
\r\n
\r\n
\r\n handleAddOnClick()}>\r\n Add New\r\n \r\n
\r\n
\r\n
\r\n {showAddNewCompanyDiv ? (\r\n
\r\n
\r\n
\r\n
Add Company
\r\n {\r\n setCompanyProfileObj((prev) => ({ ...prev, FullName: v }));\r\n }}\r\n customError={companyOnFolioValidationObj.Name}>\r\n Name\r\n \r\n {/* {\r\n setCompanyProfileObj(prev => ({...prev,FullName:v}));\r\n }}\r\n >Short Name */}\r\n {\r\n setCompanyProfileObj((prev) => ({ ...prev, StatutoryName: v }));\r\n }}>\r\n Statutory Name\r\n \r\n {\r\n setCompanyProfileObj((prev) => ({ ...prev, GSTNo: v }));\r\n }}\r\n customError={companyOnFolioValidationObj.GSTNO}>\r\n GST Number\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Contact
\r\n {\r\n setCompanyProfileObj((prev) => ({ ...prev, Street: v }));\r\n }}\r\n customError={companyOnFolioValidationObj.Street}>\r\n Address\r\n \r\n
\r\n {\r\n setCompanyProfileObj((prev) => ({ ...prev, CountrySerNo: parseInt(item.key) }));\r\n getStateMasterList(parseInt(item.key));\r\n getCityMasterList(parseInt(item.key), 0);\r\n }}\r\n searchable={[\"Search for Country\", \"No matching Country\"]}>\r\n
\r\n
\r\n {\r\n setCompanyProfileObj((prev) => ({ ...prev, StateSerNo: parseInt(item.key) }));\r\n getCityMasterList(companyProfileObj.CountrySerNo, parseInt(item.key));\r\n }}\r\n searchable={[\"Search for State\", \"No matching State\"]}>\r\n
\r\n
\r\n {\r\n setCompanyProfileObj((prev) => ({ ...prev, CitySerNo: parseInt(item.key) }));\r\n }}\r\n searchable={[\"Search for City\", \"No matching City\"]}>\r\n
\r\n {\r\n setCompanyProfileObj((prev) => ({ ...prev, PostCode: v }));\r\n }}>\r\n Pin / Postal Code\r\n \r\n
\r\n
\r\n
\r\n
\r\n ) : null}\r\n
\r\n
\r\n
\r\n ) : null}\r\n {showCompanySearchFilterModal ? (\r\n setShowCompanySearchFilterModal(false)}\r\n handleOnSelect={(selected) => {\r\n setSelectedCompany(selected);\r\n setShowCompanySearchFilterModal(false);\r\n GetCompanyOnFolioProfilData(props.para.ClientSerNo, selected.AgentSerNo)\r\n .then((d) => {\r\n setCompanyOnFolioProfileData(d.data);\r\n setCompanyOnFolioProfileData((prev) => ({\r\n ...prev,\r\n ClientSerNo: props.para.ClientSerNo,\r\n PropertySerNo: props.para.PropertySerNo,\r\n ReservationSerNo: props.para.ReservationSerNo,\r\n ProfileType: \"COP\",\r\n GuestProfileSerNo: companyOnFolioProfileDetailObj.GuestProfileSerNo,\r\n }));\r\n if (props.para.from != undefined && props.para.from == \"Routing\") {\r\n setCompanyOnFolioProfileData((prev) => ({\r\n ...prev,\r\n WindowSerNo: props.para.WindowSerNo,\r\n }));\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n setCompanyOnFolioProfileData([]);\r\n });\r\n }}\r\n ProfileType=\"Co\">\r\n ) : (\r\n <>\r\n )}\r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnTooltip,\r\n InnPrimaryButton,\r\n InnPlainButton,\r\n} from \"../../../../component\";\r\nimport {\r\n IndiReservationContact,\r\n IndiBookedOn,\r\n IndiRoutingInstruction,\r\n IndiDepositeRule,\r\n IndiVipStatus,\r\n IndiAlert,\r\n IndiTrace,\r\n IndiGuestProfile,\r\n IndiArrival,\r\n IndiAdultChild,\r\n IndiRoomRate,\r\n IndiInclusion,\r\n IndiRoomType,\r\n IndiAgent,\r\n IndiCompany,\r\n IndiReservationType,\r\n IndiRateCode,\r\n IndiDailyRate,\r\n IndiCancellationRule\r\n} from \"../indicators\";\r\nimport smsIcon from \"../../../../assets/images/sms-tooltip-icon.svg\";\r\nimport EmailTooltipIcon from \"../../../../assets/images/email-tooltip-icon.svg\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n GetReservationInfoData,\r\n manageReservationBalanceIndicator,\r\n GetReservationInfoProfileData\r\n} from \"../../../../services/reservationService\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nexport function TipCancelled(props) {\r\n //#region UseState Variable\r\n const currUser = useSelector(currentUser);\r\n const history = useHistory();\r\n const [reservationInfoData, setReservationInfoData] = useState({});\r\n const [isReloadTransportation, setIsReloadTransportation] = useState(false);\r\n const [updatePreference, setUpdatePreference] = useState(false);\r\n const [selectedGuestProfile, setSelectedGuestProfile] = useState({});\r\n const [totalBalance, setTotalBalance] = useState({});\r\n const [guestInfo, setGuestInfo] = useState({});\r\n //#endregion\r\n //#region Local Variable\r\n const reservationObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: props.para.ReservationSerNo,\r\n };\r\n //#endregion\r\n\r\n //#region APICallFunction\r\n\r\n const getSelectedGuestInfo = (guestProfileSerNo) => {\r\n GetReservationInfoProfileData(currUser.ClientSerNo, guestProfileSerNo,\"GU\").then(d => {\r\n setGuestInfo(d.data);\r\n })\r\n }\r\n //#endregion\r\n //#region Event\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n };\r\n //#endregion\r\n //#region UseEffect \r\n useEffect(() => {\r\n if (props.para.ReservationSerNo != undefined) {\r\n GetReservationInfoData(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n props.para.ReservationSerNo\r\n ).then((d) => {\r\n setReservationInfoData(d.data);\r\n getSelectedGuestInfo(d.data.GuestProfileSerNo);\r\n });\r\n }\r\n }, [props.para.ReservationSerNo]);\r\n\r\n useEffect(() => {\r\n manageReservationBalanceIndicator(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n reservationObj.ReservationSerNo\r\n ).then((d) => {\r\n setTotalBalance(d.data);\r\n });\r\n }, []);\r\n //#endregion\r\n //#region ToolTip Function\r\n const GuestTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
{guestInfo.ContactName}
\r\n
\r\n {guestInfo.ContactMobile}\r\n \r\n SMS\r\n \r\n
\r\n
\r\n {guestInfo.ContactEmail}\r\n \r\n Email\r\n \r\n
\r\n
\r\n
\r\n {/*
\r\n Edit\r\n
*/}\r\n
\r\n );\r\n };\r\n const CancelledStatusTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n Cancelled By\r\n Mr. Hemang\r\n
\r\n
\r\n Date: 15 Dec. 2021\r\n
\r\n
Time: 10:20PM
\r\n
PC: 192.168.600.789
\r\n
\r\n
\r\n
\r\n );\r\n };\r\n //#endregion\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {reservationInfoData.GuestName}\r\n \r\n \r\n \r\n Booking No:{reservationInfoData.BookingNo}\r\n
\r\n
\r\n
\r\n \r\n Cancelled\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {totalBalance.Nights} Nights  Inclusive of all taxes\r\n
\r\n
\r\n {totalBalance.Balance}\r\n
\r\n\r\n {\r\n history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: reservationInfoData.ReservationSerNo,filterObj: (props.para.filterObj) == undefined ? undefined : props.para.filterObj } });\r\n }}>View\r\n
\r\n
\r\n
\r\n
Reservation
\r\n \r\n \r\n \r\n
\r\n Cancelled By\r\n Mr. Hemang\r\n
\r\n
Billing
\r\n \r\n \r\n
\r\n
\r\n {\r\n setSelectedGuestProfile(item);\r\n setUpdatePreference(!updatePreference);\r\n }}\r\n >\r\n \r\n
\r\n Stay History\r\n (2)\r\n
\r\n
\r\n Notification\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n InnTooltip,\r\n InnPrimaryButton,\r\n InnPlainButton,\r\n} from \"../../../../component\";\r\nimport {\r\n IndiArrival,\r\n IndiRoomType,\r\n IndiAdultChild,\r\n IndiAgent,\r\n IndiCompany,\r\n IndiRateCode,\r\n IndiRoomRate,\r\n IndiDailyRate,\r\n IndiInclusion,\r\n IndiPackege,\r\n IndiReservationContact,\r\n IndiBookedOn,\r\n IndiBillingInstruction,\r\n IndiRoutingInstruction,\r\n IndiGuestProfile,\r\n IndiVipStatus,\r\n IndiLateDeparture,\r\n IndiFutureStay,\r\n IndiAlert,\r\n IndiTrace,\r\n} from \"../indicators\";\r\nimport {\r\n GetReservationInfoData,\r\n manageReservationBalanceIndicator,\r\n GetReservationInfoProfileData\r\n} from \"../../../../services/reservationService\";\r\nimport smsIcon from \"../../../../assets/images/sms-tooltip-icon.svg\";\r\nimport EmailTooltipIcon from \"../../../../assets/images/email-tooltip-icon.svg\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nexport function TipCheckedOut(props) {\r\n \r\n //#region UseState Variable\r\n const [reservationInfoData, setReservationInfoData] = useState({});\r\n const currUser = useSelector(currentUser);\r\n const history = useHistory();\r\n const [totalBalance, setTotalBalance] = useState({});\r\n const [selectedGuestProfile, setSelectedGuestProfile] = useState({});\r\n const [updatePreference, setUpdatePreference] = useState(false);\r\n const [guestInfo, setGuestInfo] = useState({});\r\n //#endregion\r\n //#region Local Variable\r\n const reservationObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: props.para.ReservationSerNo,\r\n };\r\n //#endregion\r\n //#region Event\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n };\r\n //#endregion\r\n //#region APICallFunction\r\n\r\n const getSelectedGuestInfo = (guestProfileSerNo)=>{\r\n GetReservationInfoProfileData(currUser.ClientSerNo,guestProfileSerNo,\"GU\").then(d => {\r\n setGuestInfo(d.data);\r\n })\r\n }\r\n //#endregion\r\n //#region useEffect\r\n useEffect(() => {\r\n if (props.para.ReservationSerNo != undefined) {\r\n GetReservationInfoData(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n props.para.ReservationSerNo\r\n ).then((d) => {\r\n setReservationInfoData(d.data);\r\n getSelectedGuestInfo(d.data.GuestProfileSerNo);\r\n });\r\n }\r\n }, [props.para.ReservationSerNo]);\r\n useEffect(() => {\r\n manageReservationBalanceIndicator(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n reservationObj.ReservationSerNo\r\n ).then((d) => {\r\n setTotalBalance(d.data);\r\n });\r\n }, []);\r\n //#endregion\r\n //#region TooltipFunction\r\n const GuestTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
{guestInfo.ContactName}
\r\n
\r\n {guestInfo.ContactMobile}\r\n \r\n SMS\r\n \r\n
\r\n
\r\n {guestInfo.ContactEmail}\r\n \r\n Email\r\n \r\n
\r\n
\r\n
\r\n {/*
\r\n Edit\r\n
*/}\r\n
\r\n );\r\n };\r\n const CheckedOutStatusTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n Check Out By\r\n Mr. Hemang\r\n
\r\n
Date: 16 Mar.
\r\n
Time: 05:36
\r\n
PC: 192.168.600.789
\r\n
\r\n
\r\n
\r\n );\r\n };\r\n //#endregion\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {reservationInfoData.GuestName}\r\n \r\n \r\n \r\n Booking No:{reservationInfoData.BookingNo}\r\n
\r\n
\r\n
\r\n \r\n Checked-out\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {totalBalance.Nights} Nights  Inclusive of all taxes\r\n
\r\n
\r\n {totalBalance.Balance}\r\n
\r\n\r\n {\r\n history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: reservationInfoData.ReservationSerNo,filterObj: (props.para.filterObj) == undefined ? undefined : props.para.filterObj } });\r\n }}>View\r\n
\r\n
\r\n
\r\n
Reservation
\r\n \r\n \r\n\r\n
BILLING
\r\n \r\n \r\n
\r\n
\r\n {\r\n setSelectedGuestProfile(item);\r\n setUpdatePreference(!updatePreference);\r\n }}\r\n >\r\n \r\n \r\n \r\n
\r\n Stay History\r\n (2)\r\n
\r\n
\r\n notification\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n InnTooltip,\r\n InnPrimaryButton,\r\n InnPlainButton,\r\n} from \"../../../../component\";\r\nimport smsIcon from \"../../../../assets/images/sms-tooltip-icon.svg\";\r\nimport EmailTooltipIcon from \"../../../../assets/images/email-tooltip-icon.svg\";\r\nimport {\r\n IndiAlert,\r\n IndiTrace,\r\n IndiSpecial,\r\n IndiRoomFeature,\r\n IndiFutureStay,\r\n IndiLateDeparture,\r\n IndiVipStatus,\r\n IndiGuestProfile,\r\n IndiRoutingInstruction,\r\n IndiBillingInstruction,\r\n IndiBalance,\r\n IndiSharer,\r\n IndiAccompanyGuest,\r\n IndiBookedOn,\r\n IndiReservationContact,\r\n IndiInclusion,\r\n IndiDailyRate,\r\n IndiRoomRate,\r\n IndiRateCode,\r\n IndiCompany,\r\n IndiAgent,\r\n IndiAdultChild,\r\n IndiArrival,\r\n IndiRoomType,\r\n} from \"../indicators\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport {\r\n GetReservationInfoData,\r\n manageReservationBalanceIndicator,\r\n GetReservationInfoProfileData\r\n} from \"../../../../services/reservationService\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nexport function TipInHouse(props) {\r\n //#region UseState Variable\r\n const currUser = useSelector(currentUser);\r\n const history = useHistory();\r\n const [reservationInfoData, setReservationInfoData] = useState({});\r\n const [isReloadTransportation, setIsReloadTransportation] = useState(false);\r\n const [updatePreference, setUpdatePreference] = useState(false);\r\n const [selectedGuestProfile, setSelectedGuestProfile] = useState({});\r\n const [totalBalance, setTotalBalance] = useState({});\r\n const [guestInfo, setGuestInfo] = useState({});\r\n //#endregion\r\n //#region Local Variable\r\n const reservationObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: props.para.ReservationSerNo,\r\n };\r\n //#endregion\r\n \r\n //#region APICallFunction\r\n \r\n const getSelectedGuestInfo = (guestProfileSerNo) => {\r\n GetReservationInfoProfileData(currUser.ClientSerNo, guestProfileSerNo,\"GU\").then(d => {\r\n setGuestInfo(d.data);\r\n })\r\n }\r\n //#endregion\r\n //#region Event\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n };\r\n //#endregion\r\n //#region UseEffect \r\n useEffect(() => {\r\n if (props.para.ReservationSerNo != undefined) {\r\n GetReservationInfoData(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n props.para.ReservationSerNo\r\n ).then((d) => {\r\n setReservationInfoData(d.data);\r\n getSelectedGuestInfo(d.data.GuestProfileSerNo);\r\n });\r\n }\r\n }, [props.para.ReservationSerNo]);\r\n \r\n useEffect(() => {\r\n manageReservationBalanceIndicator(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n reservationObj.ReservationSerNo\r\n ).then((d) => {\r\n setTotalBalance(d.data);\r\n });\r\n }, []);\r\n //#endregion\r\n \r\n //#region ToolTip Function\r\n const GuestTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
{guestInfo.ContactName}
\r\n
\r\n {guestInfo.ContactMobile}\r\n \r\n SMS\r\n \r\n
\r\n
\r\n {guestInfo.ContactEmail}\r\n \r\n Email\r\n \r\n
\r\n
\r\n
\r\n {/*
\r\n Edit\r\n
*/}\r\n
\r\n );\r\n };\r\n const InHouseStatusTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n Checked In By\r\n Mr. Hemang\r\n
\r\n
Date: 12 Mar.
\r\n
Time: 10:20PM
\r\n
PC: 192.168.600.789
\r\n
\r\n
\r\n
\r\n );\r\n };\r\n//#endregion\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {reservationInfoData.GuestName}\r\n \r\n \r\n \r\n Booking No: {reservationInfoData.BookingNo}\r\n
\r\n
\r\n
\r\n \r\n In House\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {totalBalance.Nights} Nights  Inclusive of all taxes\r\n
\r\n
\r\n {totalBalance.Balance}\r\n
\r\n\r\n {\r\n history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: reservationInfoData.ReservationSerNo,filterObj: (props.para.filterObj) == undefined ? undefined : props.para.filterObj } });\r\n }}>View\r\n
\r\n
\r\n
\r\n
Reservation
\r\n \r\n \r\n {\r\n setIsReloadTransportation(!isReloadTransportation);\r\n }}\r\n >\r\n \r\n
Billing
\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setSelectedGuestProfile(item);\r\n setUpdatePreference(!updatePreference);\r\n }}\r\n >\r\n \r\n \r\n \r\n
\r\n Stay History\r\n (2)\r\n
\r\n setUpdatePreference(!updatePreference)}\r\n para={{ ...reservationInfoData, IsShowTooltipActionButton: \"hide\" }}\r\n >\r\n setUpdatePreference(!updatePreference)}\r\n para={{ ...reservationInfoData, IsShowTooltipActionButton: \"hide\" }}\r\n >\r\n
\r\n notification\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnTooltip,\r\n InnPrimaryButton,\r\n InnPlainButton,\r\n} from \"../../../../component\";\r\nimport {\r\n IndiReservationContact,\r\n IndiBookedOn,\r\n IndiVipStatus,\r\n IndiAlert,\r\n IndiTrace,\r\n IndiGuestProfile,\r\n IndiArrival,\r\n IndiAdultChild,\r\n IndiRoomRate,\r\n IndiInclusion,\r\n IndiRoomType,\r\n IndiAgent,\r\n IndiCompany,\r\n IndiRateCode,\r\n IndiDailyRate,\r\n IndiRoutingInstruction,\r\n IndiReservationType,\r\n IndiCancellationRule,\r\n IndiDepositeRule\r\n} from \"../indicators\";\r\nimport smsIcon from \"../../../../assets/images/sms-tooltip-icon.svg\";\r\nimport EmailTooltipIcon from \"../../../../assets/images/email-tooltip-icon.svg\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n GetReservationInfoData,\r\n manageReservationBalanceIndicator,\r\n GetReservationInfoProfileData\r\n} from \"../../../../services/reservationService\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nexport function TipNoShow(props) {\r\n //#region UseState Variable\r\n const currUser = useSelector(currentUser);\r\n const history = useHistory();\r\n const [reservationInfoData, setReservationInfoData] = useState({});\r\n const [isReloadTransportation, setIsReloadTransportation] = useState(false);\r\n const [updatePreference, setUpdatePreference] = useState(false);\r\n const [selectedGuestProfile, setSelectedGuestProfile] = useState({});\r\n const [totalBalance, setTotalBalance] = useState({});\r\n const [guestInfo, setGuestInfo] = useState({});\r\n //#endregion\r\n //#region Local Variable\r\n const reservationObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: props.para.ReservationSerNo,\r\n };\r\n //#endregion\r\n\r\n //#region APICallFunction\r\n\r\n const getSelectedGuestInfo = (guestProfileSerNo) => {\r\n GetReservationInfoProfileData(currUser.ClientSerNo, guestProfileSerNo,\"GU\").then(d => {\r\n setGuestInfo(d.data);\r\n })\r\n }\r\n //#endregion\r\n //#region Event\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n };\r\n //#endregion\r\n //#region UseEffect \r\n useEffect(() => {\r\n if (props.para.ReservationSerNo != undefined) {\r\n GetReservationInfoData(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n props.para.ReservationSerNo\r\n ).then((d) => {\r\n setReservationInfoData(d.data);\r\n getSelectedGuestInfo(d.data.GuestProfileSerNo);\r\n });\r\n }\r\n }, [props.para.ReservationSerNo]);\r\n\r\n useEffect(() => {\r\n manageReservationBalanceIndicator(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n reservationObj.ReservationSerNo\r\n ).then((d) => {\r\n setTotalBalance(d.data);\r\n });\r\n }, []);\r\n //#endregion\r\n\r\n //#region ToolTip Function\r\n const GuestTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
{guestInfo.ContactName}
\r\n
\r\n {guestInfo.ContactMobile}\r\n \r\n SMS\r\n \r\n
\r\n
\r\n {guestInfo.ContactEmail}\r\n \r\n Email\r\n \r\n
\r\n
\r\n
\r\n {/*
\r\n Edit\r\n
*/}\r\n
\r\n );\r\n };\r\n const NoShowStatusTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n No Show By\r\n Mr. Hemang\r\n
\r\n
\r\n Date: 15 Dec. 2021\r\n
\r\n
Time: 10:20PM
\r\n
PC: 192.168.600.789
\r\n
\r\n
\r\n
\r\n );\r\n };\r\n //#endregion\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {reservationInfoData.GuestName}\r\n \r\n \r\n \r\n Booking No:{reservationInfoData.BookingNo}\r\n
\r\n
\r\n
\r\n \r\n No-show\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {totalBalance.Nights} Nights  Inclusive of all taxes\r\n
\r\n
\r\n {totalBalance.Balance}\r\n
\r\n\r\n {\r\n history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: reservationInfoData.ReservationSerNo,filterObj: (props.para.filterObj) == undefined ? undefined : props.para.filterObj } });\r\n }}>View\r\n
\r\n
\r\n
\r\n
Reservation
\r\n \r\n \r\n \r\n
\r\n No-Show By\r\n Mr. Hemang\r\n
\r\n
Billing
\r\n \r\n \r\n
\r\n
\r\n {\r\n setSelectedGuestProfile(item);\r\n setUpdatePreference(!updatePreference);\r\n }}\r\n >\r\n \r\n
\r\n Stay History\r\n (2)\r\n
\r\n
\r\n notification\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n useConfirm,\r\n InnLoader,\r\n} from \"../../../../component\";\r\nimport { GetMarketGroupMaster, GetMarketGroupMasterBySerNo, AddEditMarketGroupMaster, GetMarketMaster, AddEditMarketMaster, GetmarketMasterBySerNo } from \"../../../../services/frontMasterService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nexport function MarketGroupMaster(props) {\r\n //#region Local MarketGroupMaster Variable\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const defaultObj = {\r\n \"ClientSerNo\": (parseInt(currUser.ClientSerNo)),\r\n \"PropertySerNo\": (parseInt(currUser.PropertySerNo)),\r\n \"MarketGroupSerNo\": 0,\r\n \"Name\": \"\",\r\n \"Sequence\": 0,\r\n \"Mode\": \"View\"\r\n }\r\n\r\n const validationObj = {\r\n \"Name\": \"\",\r\n \"Sequence\": \"\",\r\n }\r\n //#endregion Local Variable\r\n\r\n //#region Local MarketMaster Variable \r\n const defaultMarketObj = {\r\n \"ClientSerNo\": (parseInt(currUser.ClientSerNo)),\r\n \"Color\": \"\",\r\n \"MarketGroupSerNo\": 0,\r\n \"MarketSerNo\": 0,\r\n \"Mode\": \"View\",\r\n \"Name\": \"\",\r\n \"PropertySerNo\": (parseInt(currUser.PropertySerNo)),\r\n \"Sequence\": 0\r\n }\r\n const validationMarketObj = {\r\n \"Name\": \"\",\r\n \"Sequence\": 0,\r\n \"Color\": \"\",\r\n }\r\n //#endregion \r\n\r\n //#region State MarketGroupMaster Variable\r\n const [marketGroupMasterObj, setMarketGroupMasterObj] = useState(defaultObj);\r\n const [marketGroupMasterData, setMarketGroupMasterData] = useState([]);\r\n const [filterMarketGroupMaster, setFilterMarketGroupMaster] = useState([]);\r\n const [isDisabled, setIsDisabled] = useState(false);\r\n const [searchString, setSearchString] = useState(\"\");\r\n const [isValidationMarketGroupMaster, setIsValidationMarketGroupMaster] = useState(validationObj);\r\n const [selectedMarketGroupMaster, setSelectedMarketGroupMaster] = useState(\"\");\r\n //#endregion MarketGroupMaster\r\n\r\n //#region State MarketMaster Variable\r\n const [marketMasterObj, setMarketMasterObj] = useState(defaultMarketObj);\r\n const [marketMasterData, setMarketMasterData] = useState([]);\r\n const [filterMarketMaster, setFilterMarketMaster] = useState([]);\r\n const [isActive, setIsActive] = useState(false);\r\n const [searchMarketString, setSearchMarketString] = useState(\"\");\r\n const [isValidationMarketMaster, setIsValidationMarketMaster] = useState(validationMarketObj);\r\n const [selectedMarketMaster, setSelectedMarketMaster] = useState(\"\");\r\n //#endregion MarketMaster \r\n\r\n //#region useEffects\r\n useEffect(() => {\r\n fillMarketGroupMaster();\r\n }, []);\r\n\r\n useEffect(() => {\r\n fillMarketMaster();\r\n }, [marketGroupMasterObj.MarketGroupSerNo]);\r\n //#endregion \r\n\r\n //#region Custom MarketGroupMaster Functions\r\n const fillMarketGroupMaster = () => {\r\n GetMarketGroupMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setMarketGroupMasterData(d.data);\r\n setFilterMarketGroupMaster(d.data);\r\n })\r\n }\r\n\r\n const fillSelectedMarketGroupMaster = (MarketGroupSerNo) => {\r\n setIsDisabled(true);\r\n GetMarketGroupMasterBySerNo(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), MarketGroupSerNo).then(d => {\r\n d.data.Mode = \"View\";\r\n setMarketGroupMasterObj(d.data);\r\n setIsDisabled(false);\r\n })\r\n }\r\n\r\n const clearValidation = () => {\r\n setIsValidationMarketGroupMaster(validationObj);\r\n setIsValidationMarketMaster(validationMarketObj);\r\n }\r\n\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (marketGroupMasterObj.Name == \"\" || /[-’/`~!#*$@_%+=,^&(){}[\\]|;.:”<>?\\\\]/g.test(marketGroupMasterObj.Name)) {\r\n isValid = false;\r\n setIsValidationMarketGroupMaster(prev => ({ ...prev, Name: \"Enter valid Room Feature\" }));\r\n }\r\n if (marketGroupMasterObj.Sequence == 0 || isNaN(marketGroupMasterObj.Sequence) || parseInt(marketGroupMasterObj.Sequence) <= 0) {\r\n isValid = false;\r\n setIsValidationMarketGroupMaster(prev => ({ ...prev, Sequence: \"Enter valid Sequence\" }));\r\n }\r\n return isValid;\r\n }\r\n //#endregion\r\n\r\n //#region Custom MarketMaster Functions\r\n const fillMarketMaster = () => {\r\n if (marketGroupMasterObj.MarketGroupSerNo > 0) {\r\n GetMarketMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(marketGroupMasterObj.MarketGroupSerNo)).then((d) => {\r\n setMarketMasterData(d.data);\r\n setFilterMarketMaster(d.data);\r\n })\r\n }\r\n }\r\n\r\n const fillSelectedMarketMaster = (MarketSerNo) => {\r\n setIsActive(true);\r\n GetmarketMasterBySerNo(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), MarketSerNo).then(d => {\r\n d.data.Mode = \"View\";\r\n setMarketMasterObj(d.data);\r\n setSelectedMarketMaster(d.data.MarketSerNo);\r\n setIsActive(false);\r\n })\r\n }\r\n\r\n const isValidMarketPage = () => {\r\n let isValidMarket = true;\r\n if (marketMasterObj.Name == \"\" || /[-’/`~!#*$@_%+=,^&(){}[\\]|;.:”<>?\\\\]/g.test()) {\r\n isValidMarket = false;\r\n setIsValidationMarketMaster(prev => ({ ...prev, Name: \"Enter valid Name\" }));\r\n }\r\n return isValidMarket;\r\n }\r\n //#endregion\r\n\r\n //#region MarketGroupMaster Events\r\n const handleOnSearchChange = (b) => {\r\n let filterData = marketGroupMasterData.filter(obj => obj.Name.toLowerCase().includes(b.toLowerCase()));\r\n setFilterMarketGroupMaster(filterData);\r\n setSearchString(b);\r\n }\r\n\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n setIsDisabled(true);\r\n marketGroupMasterObj.Sequence = parseInt(marketGroupMasterObj.Sequence)\r\n AddEditMarketGroupMaster(marketGroupMasterObj).then(d => {\r\n setIsDisabled(false);\r\n if (d.data.Code == \"200\") {\r\n fillMarketGroupMaster();\r\n alertFunction(d.data.Message);\r\n if (marketGroupMasterObj.Mode == \"Add\") {\r\n setSelectedMarketGroupMaster(parseInt(d.data.ReturnValue));\r\n fillSelectedMarketGroupMaster(parseInt(d.data.ReturnValue));\r\n }\r\n }\r\n else {\r\n alertFunction(\"Something went wrong\");\r\n }\r\n })\r\n setSearchString(\"\");\r\n setMarketGroupMasterObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alertFunction(\"Invalid entry varify the field.\");\r\n }\r\n }\r\n\r\n const handleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setMarketGroupMasterObj(obj);\r\n }\r\n\r\n const handleOnEditClick = () => {\r\n if (marketGroupMasterObj.Name == \"\") {\r\n alertFunction(\"No market group selected.\")\r\n } else {\r\n setMarketGroupMasterObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n }\r\n\r\n const handleOnCancelClick = () => {\r\n clearValidation();\r\n let existingObj = marketGroupMasterData.find(x => x.MarketGroupSerNo == selectedMarketGroupMaster);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setMarketGroupMasterObj(existingObj);\r\n }\r\n else {\r\n setMarketGroupMasterObj(defaultObj);\r\n }\r\n if (marketGroupMasterObj.Mode == \"Edit\") {\r\n fillSelectedMarketGroupMaster(selectedMarketGroupMaster);\r\n }\r\n }\r\n\r\n const handleMarketClick = (e) => {\r\n clearValidation();\r\n let obj = marketGroupMasterData.find(x => x.MarketGroupSerNo == e.target.id);\r\n obj.Mode = \"View\";\r\n setMarketGroupMasterObj(obj);\r\n fillSelectedMarketGroupMaster(e.target.id);\r\n setSelectedMarketGroupMaster(e.target.id);\r\n }\r\n //#endregion MarketGroupMaster\r\n\r\n //#region Market Master\r\n const handleOnMarketSearchChange = (b) => {\r\n let filterObj = marketMasterData.filter(x => x.Name.toLowerCase().includes(b.toLowerCase()));\r\n setFilterMarketMaster(filterObj);\r\n setSearchMarketString(b);\r\n setMarketMasterObj(defaultMarketObj);\r\n }\r\n\r\n const handleOnMarketSaveClick = () => {\r\n let IsPageValidMarket = isValidMarketPage();\r\n if (IsPageValidMarket) {\r\n setIsActive(true);\r\n AddEditMarketMaster(marketMasterObj).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n fillMarketMaster();\r\n alertFunction(d.data.Message);\r\n if (marketMasterObj.Mode == \"Add\") {\r\n setSelectedMarketMaster(parseInt(d.data.ReturnValue));\r\n fillSelectedMarketMaster(parseInt(d.data.ReturnValue));\r\n }\r\n }\r\n else {\r\n alertFunction(\"Something went wrong.\");\r\n }\r\n })\r\n setSearchMarketString(\"\");\r\n setMarketMasterObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n\r\n const handleOnMarketAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultMarketObj));\r\n obj.MarketGroupSerNo = marketGroupMasterObj.MarketGroupSerNo;\r\n obj.Mode = \"Add\";\r\n setMarketMasterObj(obj);\r\n }\r\n\r\n const handleOnMarketEditClick = () => {\r\n if (marketMasterObj.Name == \"\") {\r\n alertFunction(\"No market group selected.\");\r\n } else {\r\n setMarketMasterObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n }\r\n\r\n const handleOnMarketClick = (e) => {\r\n clearValidation();\r\n let obj = marketMasterData.find(x => x.MarketSerNo == e.target.id)\r\n obj.Mode = \"View\";\r\n setMarketMasterObj(obj);\r\n fillSelectedMarketMaster(e.target.id);\r\n setSelectedMarketMaster(e.target.id);\r\n }\r\n\r\n const handleOnMarketCancelClick = () => {\r\n clearValidation();\r\n let exitObj = marketMasterData.find(x => x.MarketSerNo == selectedMarketMaster);\r\n if (exitObj != undefined) {\r\n exitObj.Mode = \"View\";\r\n setMarketMasterObj(exitObj);\r\n }\r\n else {\r\n setMarketMasterObj(defaultMarketObj);\r\n }\r\n }\r\n\r\n const clearMarketData = () => {\r\n setMarketMasterObj(defaultMarketObj);\r\n setShowMarketGroupModal(!showMarketGroupModal)\r\n }\r\n\r\n //#endregion \r\n\r\n const selectdata = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n\r\n const [showMarketGroupModal, setShowMarketGroupModal] = useState();\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Market Group Master

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Search\r\n \r\n
\r\n \r\n
\r\n
\r\n
Market Group Names
\r\n
\r\n
    \r\n {\r\n (filterMarketGroupMaster.map((d) =>\r\n
  • \r\n {d.Name}
  • \r\n ))\r\n }\r\n\r\n
\r\n
\r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
\r\n
\r\n\r\n
{/* disabled-section */}\r\n
\r\n
\r\n {\r\n setMarketGroupMasterObj(prev => ({ ...prev, Name: m }));\r\n if (m == \"\") {\r\n setIsValidationMarketGroupMaster(prev => ({ ...prev, Name: \"Enter valid Room Feature\" }));\r\n } else {\r\n setIsValidationMarketGroupMaster(prev => ({ ...prev, Name: \"\" }));\r\n }\r\n }}>Room Features Group\r\n\r\n {/* console.log(v)}>Long Description */}\r\n\r\n {\r\n setMarketGroupMasterObj(prev => ({ ...prev, Sequence: m }))\r\n if (m) {\r\n setIsValidationMarketGroupMaster(prev => ({ ...prev, Sequence: \"\" }));\r\n }\r\n }}>Sequence\r\n
\r\n
\r\n
\r\n
\r\n Market\r\n \r\n {\r\n MarketGroupMaster.length > marketMasterData.length ?\r\n <>\r\n {\r\n if (marketGroupMasterObj.Name == \"\") {\r\n alertFunction(\"Select the market group name.\")\r\n }\r\n else {\r\n setShowMarketGroupModal(!showMarketGroupModal)\r\n }\r\n setMarketMasterObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n } className=\"plus-gray-btn m0\">+\r\n \r\n :\r\n <>\r\n {\r\n setShowMarketGroupModal(!showMarketGroupModal);\r\n setMarketMasterObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n }>\r\n \r\n \r\n }\r\n \r\n
\r\n
    \r\n {\r\n filterMarketMaster.map((d) => {\r\n return (\r\n
  • {d.Name}
  • \r\n )\r\n })\r\n }\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
\r\n
\r\n\r\n Activate { console.log(v); }}>\r\n {\r\n marketGroupMasterObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {showMarketGroupModal ? (\r\n clearMarketData()}>\r\n
\r\n
\r\n
\r\n

Market

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Search\r\n
\r\n \r\n
\r\n
\r\n
Market Names
\r\n
\r\n
    \r\n {\r\n filterMarketMaster.map((d) => {\r\n return (\r\n
  • \r\n {d.Name}\r\n
  • \r\n )\r\n })\r\n }\r\n
\r\n
\r\n {/* Add Deposit Term */}\r\n\r\n
\r\n\r\n
\r\n\r\n {\r\n setMarketMasterObj(prev => ({ ...prev, Name: v }));\r\n setIsValidationMarketMaster(prev => ({ ...prev, Name: \"\" }));\r\n }}>Market \r\n\r\n {/* console.log(v)}>Long Description */}\r\n\r\n
\r\n Active console.log(v)} id=\"3\">\r\n
\r\n
\r\n\r\n {\r\n marketMasterObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ) : null}\r\n
\r\n );\r\n}\r\n\r\n","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnSingleRadioButton,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport { GetReservationType } from \"../../../../services/reservationService\";\r\nimport { useAlert } from \"../../../../utils/hooks/useAlert\";\r\n\r\n\r\nexport function ReservationTypeModalPopup(props) {\r\n\r\n const {innkeyAlert } = useAlert();\r\n const [isActive, setActive] = useState(false);\r\n const [reservationTypeData, setreservationTypeData] = useState([]);\r\n const [selectedReservationType, setSelectedReservationType] = useState({\r\n \"ReservationTypeSerNo\": props.para.ReservationTypeSerNo ? props.para.ReservationTypeSerNo : 0,\r\n \"ReservationType\": props.para.ReservationType ? props.para.ReservationType : \"\"\r\n });\r\n\r\n useEffect(() => {\r\n console.log(\"props\",props);\r\n setActive(true);\r\n GetReservationType(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ArrivalDate).then((d) => {\r\n setActive(false);\r\n setreservationTypeData(d.data);\r\n console.log(\"data\",d.data);\r\n })\r\n }, []);\r\n\r\n const handleOnclose = async() => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else { \r\n if(props.para.ReservationTypeSerNo != undefined && props.para.ReservationTypeSerNo != 0){\r\n if(props.para.ReservationTypeSerNo != selectedReservationType.ReservationTypeSerNo){\r\n let IsOk = await innkeyAlert(\"Would you like to save the changes?\");\r\n if(IsOk){\r\n handleOnTypeSelection();\r\n }\r\n }else\r\n props.handleOnclose(false); \r\n }else{\r\n props.handleOnclose(false);\r\n } \r\n }\r\n }\r\n\r\n const handleOnTypeSelection = () => {\r\n if (selectedReservationType.ReservationTypeSerNo != 0) {\r\n if (props.handleOnTypeSelection == undefined)\r\n console.log(\"handleOnTypeSelection is not defined\");\r\n else\r\n props.handleOnTypeSelection(selectedReservationType);\r\n } else {\r\n alert(\"Please select reservation type.\");\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n
\r\n

{props.para.RateCodeName}

\r\n
\r\n
\r\n \r\n Continue\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/* custom HTML Start*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {reservationTypeData.map((o) => (\r\n {\r\n let obj = reservationTypeData.find(x=> x.ReservationTypeSerNo == e.target.id);\r\n if(obj != undefined){\r\n setSelectedReservationType(obj);\r\n }\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
\r\n
\r\n
Reservation TypesInventory StatusRequired DetailsDeposit Rule & Cancellation Rule
\r\n
\r\n {\r\n let obj = reservationTypeData.find(x=> x.ReservationTypeSerNo == value);\r\n if(obj != undefined){\r\n setSelectedReservationType(obj);\r\n }\r\n // setSelectedReservationType(prev => ({ ...prev, ReservationTypeSerNo: value }));\r\n // setSelectedReservationType(prev => ({ ...prev, ReservationType: o.ReservationType }));\r\n }}\r\n checked={selectedReservationType.ReservationTypeSerNo == o.ReservationTypeSerNo}\r\n >\r\n
\r\n
{o.ReservationType}{o.InvStatus}{o.RequiredDetail}\r\n Deposite Rule : {o.DepositName}
Cancellation Rule\r\n : {o.CancellationName}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n )\r\n}","import React, { useState, useEffect, useRef, useLayoutEffect } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport smsIcon from \"../../../../assets/images/sms-tooltip-icon.svg\";\r\nimport EmailTooltipIcon from \"../../../../assets/images/email-tooltip-icon.svg\";\r\nimport {\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnTooltip,\r\n InnCheckbox,\r\n InnSingleSelectDropdown,\r\n InnButtonTypeWithDropdown,\r\n InnLoader,\r\n} from \"../../../../component\";\r\nimport Moment from \"moment\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { ModifiedRateDetailData } from \"../../../../utils/helpers/reservation\";\r\nimport {\r\n reservation,\r\n setRateAndPackages,\r\n setTempRateAndPackage,\r\n} from \"../../../../reducer/frontSlice\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport { RateSummaryModalPopup } from \"./rateSummaryModalPopup\";\r\nimport { ReservationTypeModalPopup } from \"./reservationTypeModalPopup\";\r\nimport { UpgradeReasonModalPopup } from \"./upgradeReasonModalPopup\";\r\nimport {\r\n cmbGetRateGroupMaster,\r\n GetReservationRateCode,\r\n GetRateAndPackageRate,\r\n} from \"../../../../services/reservationService\";\r\n\r\nexport function RateCodeModalPopup(props) {\r\n const currUser = useSelector(currentUser);\r\n const res = useSelector(reservation);\r\n const dispatch = useDispatch();\r\n const [rateCodeData2, setRateCodeData2] = useState([]);\r\n const [rateGroupData, setRateGroupData] = useState([]);\r\n const [isSelectionCompleted, setIsSelectionCompleted] = useState(false);\r\n const [showRateSelectionSummaryModal, setShowRateSelectionSummaryModal] =\r\n useState(false);\r\n const [showReservationTypeModal, setShowReservationTypeModal] =\r\n useState(false);\r\n const [showUpgradeReasonModal, setShowUpgradeReasonModal] = useState(false);\r\n const [selectedRateGroup, setSelectedRateGroup] = useState(\"0\");\r\n const [agentCompanyProfileSerNo, setAgentCompanyProfileSerNo] = useState(0);\r\n const [allRate, setAllRate] = useState(true);\r\n const [showAllRoomType, setShowAllRoomType] = useState(\r\n props.para.ChargeableRoomTypeSerNo == props.para.RoomTypeSerNo\r\n ? false\r\n : true\r\n );\r\n const [selectedRateCode, setSelectedRateCode] = useState({\r\n RateSerNo: \"\",\r\n RoomTypeSerNo: \"\",\r\n ChargeableRoomTypeSerNo: \"\",\r\n ReservationTypeSerNo: props.para.ReservationTypeSerNo,\r\n ReservationType: props.para.ReservationType,\r\n RateCodeName: \"\",\r\n RoomRate: \"0\",\r\n IsInclusive: false,\r\n IsComplimentary: false,\r\n IsHouseUse: false,\r\n IsDiscloseRate: true,\r\n Discountable: false,\r\n IsRateMappedToProfile: true,\r\n IsPrintRate: true,\r\n UpgradeReason: props.para.UpgradeReason,\r\n });\r\n\r\n //Grid Solution\r\n const divRef = useRef();\r\n const tableRef = useRef();\r\n const [gridSolution, setGridSolution] = useState(true);\r\n const [divWidth, setDivWidth] = useState(0);\r\n const [thWidth, setThWidth] = useState(0);\r\n const [tableWidth, setTableWidth] = useState(0);\r\n\r\n var PageWidth = Math.max(\r\n document.documentElement.clientWidth || 0,\r\n window.innerWidth || 0\r\n );\r\n useEffect(() => {\r\n setDivWidth(divRef.current.clientWidth);\r\n console.log(\"div\", divRef.current.clientWidth);\r\n console.log(\"table\", tableRef.current.clientWidth);\r\n if (tableWidth > divWidth) {\r\n setGridSolution(false);\r\n console.log(false);\r\n } else {\r\n setGridSolution(true);\r\n console.log(true);\r\n }\r\n setThWidth(PageWidth / 2);\r\n }, [tableWidth]);\r\n\r\n //end Grid Solution\r\n\r\n // It is used to get more detail of rate code\r\n // on click of MORE link\r\n // RoomType is always actual\r\n const [roomSummaryPara, setRoomSummaryPara] = useState({\r\n ClientSerNo: currUser.ClientSerNo,\r\n PropertySerNo: props.para.PropertySerNo,\r\n FromDate: props.para.ArrivalDate,\r\n ToDate: props.para.DepartureDate,\r\n RoomTypeSerNo: props.para.RoomTypeSerNo,\r\n Adult: props.para.Adult,\r\n Child: props.para.Child,\r\n RateCodeSerNo: \"\",\r\n CallingFrom: \"RateCodeModal\",\r\n CompanyProfileSerNo: props.para.CompanyProfileSerNo,\r\n AgentProfileSerNo: props.para.AgentProfileSerNo,\r\n });\r\n\r\n const fillRateGroup = () => {\r\n if (\r\n props.para.PropertySerNo != undefined &&\r\n props.para.PropertySerNo != \"\"\r\n ) {\r\n cmbGetRateGroupMaster(\r\n currUser.ClientSerNo,\r\n props.para.PropertySerNo\r\n ).then((d) => {\r\n let RateGroupSerNo = 0;\r\n if (props.para.CompanyRateGroupSerNo != 0)\r\n RateGroupSerNo = props.para.CompanyRateGroupSerNo;\r\n if (props.para.AgentRateGroupSerNo != 0)\r\n RateGroupSerNo = props.para.AgentRateGroupSerNo;\r\n\r\n let data = [];\r\n\r\n if (RateGroupSerNo == 0) {\r\n data = d.data;\r\n data.splice(0, 0, { key: \"0\", value: \"Select\" });\r\n } else {\r\n data = d.data.filter((x) => x.key == RateGroupSerNo);\r\n }\r\n setRateGroupData(data);\r\n });\r\n }\r\n };\r\n console.log(rateGroupData);\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n };\r\n const handleBlockReservationRateClick = (id) => {\r\n if (id != \"\") {\r\n let obj = rateCodeData2.ResRateCodeDetailModel.find(\r\n (x) => x.RateSerNo == id\r\n );\r\n if (obj != undefined) {\r\n setSelectedRateCode((prev) => ({ ...prev, RateSerNo: id }));\r\n setSelectedRateCode((prev) => ({\r\n ...prev,\r\n IsComplimentary: obj.IsComplimentary,\r\n }));\r\n setSelectedRateCode((prev) => ({\r\n ...prev,\r\n IsHouseUse: obj.IsHouseUse,\r\n }));\r\n setSelectedRateCode((prev) => ({\r\n ...prev,\r\n IsDiscloseRate: obj.IsDiscloseRate,\r\n }));\r\n setSelectedRateCode((prev) => ({\r\n ...prev,\r\n Discountable: obj.Discountable,\r\n }));\r\n setSelectedRateCode((prev) => ({\r\n ...prev,\r\n IsRateMappedToProfile: obj.IsRateMappedToProfile,\r\n }));\r\n setSelectedRateCode((prev) => ({\r\n ...prev,\r\n IsInclusive: obj.IsTaxInclusive,\r\n }));\r\n setSelectedRateCode((prev) => ({\r\n ...prev,\r\n RateCodeName: obj.RateName,\r\n }));\r\n setSelectedRateCode((prev) => ({\r\n ...prev,\r\n IsPrintRate: obj.IsPrintRate,\r\n }));\r\n }\r\n if (props.para.ReservationTypeSerNo == \"\")\r\n setShowReservationTypeModal(true);\r\n else setIsSelectionCompleted(true);\r\n // setIsSelectionCompleted(true);\r\n }\r\n };\r\n const handleRoomRateClick = (e) => {\r\n cellClick(e, \"cell\");\r\n };\r\n\r\n const cellClick = (e, callingFrom) => {\r\n if (e.target.id != \"\") {\r\n let data = e.target.id.split(\"_\");\r\n if (data.length > 2) {\r\n let roomTypeObj = rateCodeData2.ResAvailabilityModel.find(\r\n (x) => x.RoomTypeSerNo == data[0]\r\n );\r\n if (roomTypeObj != undefined) {\r\n if (roomTypeObj.Phy_Occ.split(\"_\")[1] == \"--\") {\r\n alert(\"Room not available.\");\r\n } else {\r\n let obj = rateCodeData2.ResRateCodeDetailModel.find(\r\n (x) => x.RateSerNo == data[1]\r\n );\r\n console.log(\"rate code - 3 \",e.target.id, rateCodeData2, props.para);\r\n let tempO = rateCodeData2.ResRateCodeDetailModel.filter(\r\n (x) => x.RateSerNo == data[1]\r\n );\r\n let rateValue = \"0\";\r\n //rateValue = tempO[0][\"Col\" + (parseInt(data[2]) + 1)];\r\n\r\n let tempRateObj = rateCodeData2.ResRateDetailModel.find(\r\n (x) =>\r\n x.RateSerNo == data[1] &&\r\n x.RoomTypeSerNo == props.para.ChargeableRoomTypeSerNo\r\n );\r\n console.log(\"temprateobj \", tempRateObj);\r\n if (tempRateObj != undefined) {\r\n rateValue = tempRateObj.RoomRate.toFixed(2);\r\n setSelectedRateCode((prev) => ({\r\n ...prev,\r\n IsPrintRate: tempRateObj.IsPrintRate,\r\n }));\r\n } else {\r\n //alert(\"Rate not found.\")\r\n rateValue = \"0\";\r\n }\r\n\r\n // get value from the cell\r\n\r\n if (\r\n obj.IsComplimentary == false &&\r\n obj.IsHouseUse == false &&\r\n !isNaN(+rateValue) &&\r\n parseFloat(rateValue) == 0\r\n ) {\r\n alert(\"Invalid room rate.\");\r\n } else {\r\n setSelectedRateCode((prev) => ({\r\n ...prev,\r\n RoomTypeSerNo: data[0],\r\n }));\r\n setSelectedRateCode((prev) => ({\r\n ...prev,\r\n ChargeableRoomTypeSerNo: props.para.ChargeableRoomTypeSerNo,\r\n }));\r\n setSelectedRateCode((prev) => ({ ...prev, RateSerNo: data[1] }));\r\n\r\n setSelectedRateCode((prev) => ({\r\n ...prev,\r\n IsComplimentary: obj.IsComplimentary,\r\n }));\r\n setSelectedRateCode((prev) => ({\r\n ...prev,\r\n IsHouseUse: obj.IsHouseUse,\r\n }));\r\n setSelectedRateCode((prev) => ({\r\n ...prev,\r\n IsDiscloseRate: obj.IsDiscloseRate,\r\n }));\r\n setSelectedRateCode((prev) => ({\r\n ...prev,\r\n Discountable: obj.Discountable,\r\n }));\r\n setSelectedRateCode((prev) => ({\r\n ...prev,\r\n IsRateMappedToProfile: obj.IsRateMappedToProfile,\r\n }));\r\n setSelectedRateCode((prev) => ({\r\n ...prev,\r\n IsInclusive: obj.IsTaxInclusive,\r\n }));\r\n setSelectedRateCode((prev) => ({\r\n ...prev,\r\n RateCodeName: obj.RateName,\r\n }));\r\n\r\n setSelectedRateCode((prev) => ({ ...prev, RoomRate: rateValue }));\r\n if (callingFrom == \"upgrade\" && props.para.UpgradeReason == \"\") {\r\n setShowUpgradeReasonModal(true);\r\n } else {\r\n if (props.para.from == \"daily\") {\r\n setIsSelectionCompleted(true);\r\n } else {\r\n if (props.para.ReservationTypeSerNo == \"\")\r\n {\r\n props.para.RateCodeName = obj.RateName;\r\n setShowReservationTypeModal(true);\r\n }\r\n else setIsSelectionCompleted(true);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n const handleOnUpgradeClick = (e) => {\r\n cellClick(e, \"upgrade\");\r\n e.stopPropagation();\r\n };\r\n\r\n const handleOnTypeSelection = (v) => {\r\n setSelectedRateCode((prev) => ({\r\n ...prev,\r\n ReservationTypeSerNo: v.ReservationTypeSerNo,\r\n ReservationType: v.ReservationType,\r\n SelectedReservationType: v,\r\n }));\r\n // setSelectedRateCode((prev) => ({\r\n // ...prev,\r\n // ReservationType: v.ReservationType,\r\n // }));\r\n setShowReservationTypeModal(false);\r\n setIsSelectionCompleted(true);\r\n };\r\n\r\n const fillRateAndPackageRate = () => {\r\n let taxableAmount = \"-1\";\r\n if (selectedRateCode.IsRateMappedToProfile == false) {\r\n taxableAmount = selectedRateCode.RoomRate;\r\n }\r\n GetRateAndPackageRate(\r\n currUser.ClientSerNo,\r\n props.para.PropertySerNo,\r\n 0,\r\n true,\r\n selectedRateCode.RateSerNo,\r\n selectedRateCode.ChargeableRoomTypeSerNo,\r\n props.para.ArrivalDate,\r\n props.para.DepartureDate,\r\n props.para.Adult,\r\n props.para.Child,\r\n taxableAmount,\r\n props.para.CompanyProfileSerNo,\r\n props.para.AgentProfileSerNo\r\n ).then((d) => {\r\n let orgData = ModifiedRateDetailData(d.data);\r\n\r\n // // calculate total taxes from TaxDetails\r\n // let o = [];\r\n // d.data.TaxDetails.map(n => {\r\n // let o1 = o.find(x => x.TransactionSerNo == n.TransactionSerNo);\r\n // if (o1 == undefined) {\r\n // o.push({ TransactionSerNo: n.TransactionSerNo, Name: n.Name });\r\n // }\r\n // });\r\n // o.map(n => {\r\n // let RMTotalTax = d.data.TaxDetails.filter(x => x.TransactionSerNo == n.TransactionSerNo && x.Type == \"RM\").reduce((t, v) => t = t + parseFloat(v.Amount), 0);\r\n // let PITotalTax = d.data.TaxDetails.filter(x => x.TransactionSerNo == n.TransactionSerNo && x.Type == \"PI\").reduce((t, v) => t = t + parseFloat(v.Amount), 0);\r\n // n.Taxes = (RMTotalTax + (PITotalTax)).toFixed(2);\r\n // })\r\n // d.data.ChargeDetails = o;\r\n\r\n // let orgData = d.data;\r\n\r\n // let NewPackageDetails = [];\r\n // d.data.PackageDetails.map(np => {\r\n // let n1 = NewPackageDetails.find(x => x.PackageSerNo == np.PackageSerNo && x.RateSerNo == np.RateSerNo);\r\n // if (n1 == undefined) {\r\n // NewPackageDetails.push({RateSerNo: np.RateSerNo, PackageSerNo: np.PackageSerNo, Name: np.Name,\r\n // PackagePrice: np.PackagePrice,CalculationRule : np.CalculationRule,\r\n // PostingRhythm: np.PostingRhythm,PostingType:np.PostingType,\r\n // Component : (np.IsTaxInclusive ? np.PackagePrice + \" Incl.Tax\" : np.PackagePrice + \" + Tax\"),\r\n // Total : (parseFloat(np.PackagePrice) + parseFloat(np.Taxes)).toFixed(2),\r\n // Person : \"2A, 1C\",Qty : \"4\",Action : \"Included\", });\r\n // }\r\n // })\r\n\r\n // NewPackageDetails.map(np=>{\r\n // np.Qty = orgData.PackageDetails.filter(x=> x.RateSerNo == np.RateSerNo && x.PackageSerNo == np.PackageSerNo).length;\r\n // })\r\n\r\n // orgData.NewPackageDetails = NewPackageDetails;\r\n\r\n // //const totalPackage = orgData.PackageDetails.reduce((t, v) => t = t + parseFloat(v.PackagePrice), 0);\r\n // //const totalPackageTaxes = orgData.PackageDetails.reduce((t, v) => t = t + parseFloat(v.Taxes), 0);\r\n // //const totalRoomRate = orgData.RateCodeDetails.reduce((t, v) => t = t + parseFloat(v.RoomRate), 0);\r\n // orgData.RateCodeDetails.map(d => {\r\n // const totalPackage = orgData.PackageDetails.filter(x => x.Date == d.Date).reduce((t, v) => t = t + parseFloat(v.PackagePrice), 0);\r\n // const totalPackageTaxes = orgData.PackageDetails.filter(x => x.Date == d.Date).reduce((t, v) => t = t + parseFloat(v.Taxes), 0);\r\n // d.PackagePrice = (totalPackage).toFixed(2);\r\n // d.SubTotal = (parseFloat(d.RoomRate) + parseFloat(totalPackage)).toFixed(2);\r\n // d.TotalTaxes = (parseFloat(d.Taxes) + parseFloat(totalPackageTaxes)).toFixed(2);\r\n // d.Amount = (parseFloat(d.SubTotal) + parseFloat(d.TotalTaxes)).toFixed(2);\r\n // })\r\n // console.log(\"daily data\", orgData);\r\n dispatch(setRateAndPackages(orgData));\r\n });\r\n };\r\n\r\n const modifyRateAndPackageRate = () => {\r\n let ToDt = props.para.DepartureDate;\r\n // if (props.para.ArrivalDate == props.para.DepartureDate) {\r\n ToDt = new Date(props.para.DepartureDate);\r\n ToDt.setDate(ToDt.getDate() + 1);\r\n ToDt = Moment(ToDt).format(\"DD MMM YYYY\");\r\n // }\r\n let taxableAmount = \"-1\";\r\n if (selectedRateCode.IsRateMappedToProfile == false) {\r\n taxableAmount = selectedRateCode.RoomRate;\r\n }\r\n GetRateAndPackageRate(\r\n currUser.ClientSerNo,\r\n props.para.PropertySerNo,\r\n 0,\r\n true,\r\n selectedRateCode.RateSerNo,\r\n selectedRateCode.ChargeableRoomTypeSerNo,\r\n props.para.ArrivalDate,\r\n ToDt,\r\n props.para.Adult,\r\n props.para.Child,\r\n taxableAmount,\r\n props.para.CompanyProfileSerNo,\r\n props.para.AgentProfileSerNo\r\n ).then((d) => {\r\n let orgData = d.data;\r\n\r\n // It is modify when rate code popup open from daily\r\n //let newRateDetail = orgData.RateCodeDetails;\r\n let tempRateDetail = JSON.parse(JSON.stringify(res.rateDetailData));\r\n tempRateDetail.RateCodeDetails.map((d) => {\r\n if (d.Date < props.para.ArrivalDate || d.Date >= ToDt) {\r\n orgData.RateCodeDetails.push(d);\r\n }\r\n });\r\n\r\n tempRateDetail.PackageDetails.map((d) => {\r\n if (d.Date < props.para.ArrivalDate || d.Date >= ToDt) {\r\n orgData.PackageDetails.push(d);\r\n }\r\n });\r\n\r\n let pkgExist = tempRateDetail.PackageDetails.filter(\r\n (x) => x.RateSerNo == selectedRateCode.RateSerNo\r\n ).length;\r\n //let newTaxes = orgData.TaxDetails;\r\n tempRateDetail.TaxDetails.map((d) => {\r\n if (d.Type == \"RM\") {\r\n if (d.Date < props.para.ArrivalDate || d.Date >= ToDt) {\r\n orgData.TaxDetails.push(d);\r\n }\r\n }\r\n if (d.Type == \"PI\") {\r\n if (d.Date < props.para.ArrivalDate || d.Date >= ToDt) {\r\n orgData.TaxDetails.push(d);\r\n }\r\n }\r\n });\r\n\r\n // calculate total taxes from TaxDetails\r\n let o = [];\r\n orgData.TaxDetails.map((n) => {\r\n let o1 = o.find((x) => x.TransactionSerNo == n.TransactionSerNo);\r\n if (o1 == undefined) {\r\n o.push({ TransactionSerNo: n.TransactionSerNo, Name: n.Name });\r\n }\r\n });\r\n o.map((n) => {\r\n let RMTotalTax = orgData.TaxDetails.filter(\r\n (x) => x.TransactionSerNo == n.TransactionSerNo && x.Type == \"RM\"\r\n ).reduce((t, v) => (t = t + parseFloat(v.Amount)), 0);\r\n let PITotalTax = orgData.TaxDetails.filter(\r\n (x) => x.TransactionSerNo == n.TransactionSerNo && x.Type == \"PI\"\r\n ).reduce((t, v) => (t = t + parseFloat(v.Amount)), 0);\r\n n.Taxes = (RMTotalTax + PITotalTax).toFixed(2);\r\n });\r\n d.data.ChargeDetails = o;\r\n\r\n let NewPackageDetails = [];\r\n orgData.PackageDetails.map((np) => {\r\n let n1 = NewPackageDetails.find(\r\n (x) =>\r\n x.PackageSerNo == np.PackageSerNo && x.RateSerNo == np.RateSerNo\r\n );\r\n if (n1 == undefined) {\r\n NewPackageDetails.push({\r\n RateSerNo: np.RateSerNo,\r\n PackageSerNo: np.PackageSerNo,\r\n Name: np.Name,\r\n PackagePrice: np.PackagePrice,\r\n CalculationRule: np.CalculationRule,\r\n PostingRhythm: np.PostingRhythm,\r\n PostingType: np.PostingType,\r\n Component: np.IsTaxInclusive\r\n ? np.PackagePrice + \" Incl.Tax\"\r\n : np.PackagePrice + \" + Tax\",\r\n Total: (parseFloat(np.PackagePrice) + parseFloat(np.Taxes)).toFixed(\r\n 2\r\n ),\r\n Person: \"2A, 1C\",\r\n Qty: \"\",\r\n Action: \"Included\",\r\n });\r\n }\r\n });\r\n\r\n NewPackageDetails.map((np) => {\r\n np.Qty = orgData.PackageDetails.filter(\r\n (x) =>\r\n x.RateSerNo == np.RateSerNo && x.PackageSerNo == np.PackageSerNo\r\n ).length;\r\n });\r\n\r\n orgData.NewPackageDetails = NewPackageDetails;\r\n\r\n orgData.RateCodeDetails.map((d) => {\r\n const totalPackage = orgData.PackageDetails.filter(\r\n (x) => x.Date == d.Date\r\n ).reduce((t, v) => (t = t + parseFloat(v.PackagePrice)), 0);\r\n const totalPackageTaxes = orgData.PackageDetails.filter(\r\n (x) => x.Date == d.Date\r\n ).reduce((t, v) => (t = t + parseFloat(v.Taxes)), 0);\r\n d.PackagePrice = totalPackage.toFixed(2);\r\n d.SubTotal = (\r\n parseFloat(d.RoomRate) + parseFloat(totalPackage)\r\n ).toFixed(2);\r\n d.TotalTaxes = (\r\n parseFloat(d.Taxes) + parseFloat(totalPackageTaxes)\r\n ).toFixed(2);\r\n d.Amount = (parseFloat(d.SubTotal) + parseFloat(d.TotalTaxes)).toFixed(\r\n 2\r\n );\r\n });\r\n dispatch(setTempRateAndPackage(orgData));\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (isSelectionCompleted) {\r\n console.log(\"selected rate \", selectedRateCode);\r\n if (props.para.from == \"Block\") {\r\n props.handleOnBlockReservationRateSelect(selectedRateCode);\r\n } else {\r\n if (props.para.from == \"daily\") {\r\n modifyRateAndPackageRate();\r\n } else {\r\n fillRateAndPackageRate();\r\n }\r\n\r\n if (props.handleOnRateSelect == undefined)\r\n console.log(\"handleOnRateSelect is not defined.\");\r\n else props.handleOnRateSelect(selectedRateCode);\r\n }\r\n }\r\n }, [isSelectionCompleted]);\r\n\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n\r\n useEffect(() => {\r\n fillRateGroup();\r\n setTimeout(() => {\r\n setTableWidth(tableRef.current.clientWidth);\r\n }, 50);\r\n // Rate Group is set from company or agent rate group\r\n let RateGroupSerNo = 0;\r\n let agentCompanyProfileSerNo = 0;\r\n let isAllRate = true;\r\n\r\n if (\r\n props.para.CompanyProfileSerNo != undefined &&\r\n props.para.CompanyProfileSerNo != 0\r\n ) {\r\n if (props.para.CompanyHasRateMapping) {\r\n RateGroupSerNo = props.para.CompanyRateGroupSerNo;\r\n agentCompanyProfileSerNo = props.para.CompanyProfileSerNo;\r\n }\r\n isAllRate = false;\r\n }\r\n\r\n if (\r\n props.para.AgentProfileSerNo != undefined &&\r\n props.para.AgentProfileSerNo != 0\r\n ) {\r\n if (props.para.AgentHasRateMapping) {\r\n RateGroupSerNo = props.para.AgentRateGroupSerNo;\r\n agentCompanyProfileSerNo = props.para.AgentProfileSerNo;\r\n }\r\n isAllRate = false;\r\n }\r\n\r\n setAllRate(isAllRate);\r\n setSelectedRateGroup(RateGroupSerNo);\r\n setAgentCompanyProfileSerNo(agentCompanyProfileSerNo);\r\n\r\n //if (props.para.from == \"daily\")\r\n fillRateCode(\r\n props.para.ChargeableRoomTypeSerNo,\r\n RateGroupSerNo,\r\n agentCompanyProfileSerNo,\r\n isAllRate\r\n );\r\n //else\r\n // fillRateCode(props.para.RoomTypeSerNo, RateGroupSerNo, agentCompanyProfileSerNo);\r\n\r\n if (props.para.ArrivalDate == props.para.DepartureDate) {\r\n let dt = new Date(props.para.DepartureDate);\r\n dt.setDate(dt.getDate() + 1);\r\n dt = Moment(dt).format(\"DD MMM YYYY\");\r\n setRoomSummaryPara((prev) => ({ ...prev, ToDate: dt }));\r\n //console.log(\"para \", props.para, dt);\r\n }\r\n }, []);\r\n\r\n const fillRateCode = (\r\n RoomTypeSerNo,\r\n GroupSerNo,\r\n agentCompanyProfileSerNo,\r\n IsAllRate\r\n ) => {\r\n let isDayUsed = false;\r\n // first compare arrival and departure , it is day used if both are same otherwise not\r\n if (\r\n Moment(props.para.ArrivalDate).format(\"DD MMM YYYY\") ==\r\n Moment(props.para.DepartureDate).format(\"DD MMM YYYY\")\r\n ) {\r\n isDayUsed = true;\r\n }\r\n // by force it not day used even if arrival and departure are same when calling from daily\r\n if (props.para.from && props.para.from == \"daily\") {\r\n isDayUsed = false;\r\n }\r\n // Note :- Never change if sequence\r\n\r\n if (showAllRoomType) {\r\n RoomTypeSerNo = 0;\r\n }\r\n\r\n GetReservationRateCode(\r\n currUser.ClientSerNo,\r\n props.para.PropertySerNo,\r\n props.para.ArrivalDate,\r\n props.para.DepartureDate,\r\n RoomTypeSerNo,\r\n GroupSerNo,\r\n props.para.Adult,\r\n props.para.Child,\r\n agentCompanyProfileSerNo,\r\n isDayUsed,\r\n IsAllRate\r\n ).then((d) => {\r\n let tempRateCodeData =JSON.parse(JSON.stringify(d.data));\r\n if (props.para.from && props.para.from == \"daily\")\r\n {\r\n if(tempRateCodeData.ResRateCodeDetailModel && tempRateCodeData.ResRateCodeDetailModel.length > 0)\r\n {\r\n let objSelectedRate = tempRateCodeData.ResRateCodeDetailModel.find((x) => x.RateSerNo == props.para.RateSerNo);\r\n if(objSelectedRate != undefined){\r\n let IsTaxInclusive = objSelectedRate.IsTaxInclusive;\r\n let FilteredRate = tempRateCodeData.ResRateCodeDetailModel.filter((x) => x.IsTaxInclusive == IsTaxInclusive);\r\n if(FilteredRate != undefined){\r\n tempRateCodeData.ResRateCodeDetailModel = FilteredRate;\r\n }else\r\n {\r\n console.log(\"No incl/Exl Rate Found (Based on selected Rate code in main page).\")\r\n tempRateCodeData.ResRateCodeDetailModel = [];\r\n }\r\n }\r\n }\r\n }\r\n setRateCodeData2(tempRateCodeData);\r\n });\r\n };\r\n console.log(rateCodeData2);\r\n\r\n const handleApplyClick = () => {\r\n setTimeout(() => {\r\n setTableWidth(tableRef.current.clientWidth);\r\n }, 50);\r\n\r\n let RoomTypeSerNo = \"0\";\r\n if (!showAllRoomType) {\r\n //if (props.para.from == \"daily\")\r\n RoomTypeSerNo = props.para.ChargeableRoomTypeSerNo;\r\n //else RoomTypeSerNo = props.para.RoomTypeSerNo;\r\n }\r\n fillRateCode(\r\n RoomTypeSerNo,\r\n selectedRateGroup,\r\n agentCompanyProfileSerNo,\r\n allRate\r\n );\r\n };\r\n const RoomUpgradReasonTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n Room was not available, MD's guest\r\n
\r\n
\r\n
\r\n setShowRoomUpgradeReasonModal(!showRoomUpgradeReasonModal)}\r\n >\r\n Edit\r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n const AgentTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
Make My Trip
\r\n
\r\n 9842342434\r\n \r\n SMS\r\n \r\n
\r\n
\r\n preetiiyengar@innkeypms.net\r\n \r\n Email\r\n \r\n
\r\n
\r\n
\r\n
\r\n Edit\r\n \r\n Action\r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n const CompanyTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
Arvind Ltd.
\r\n
\r\n 9842342434\r\n \r\n SMS\r\n \r\n
\r\n
\r\n preetiiyengar@innkeypms.net\r\n \r\n Email\r\n \r\n
\r\n
\r\n
\r\n
\r\n Edit\r\n \r\n Action\r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n

Rate Code

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/* Orchid Hotel Mumbai */}\r\n {props.para.PropertyName}\r\n
\r\n {props.para.from == \"daily\" ? (\r\n <>\r\n
\r\n Begin Date\r\n \r\n {/* Wed, 12th March */}\r\n {props.para.ArrivalDate}\r\n \r\n
\r\n
\r\n End Date\r\n \r\n {/* Sat, 15th March */}\r\n {props.para.DepartureDate}\r\n \r\n
\r\n \r\n ) : (\r\n <>\r\n
\r\n Arrival\r\n \r\n {/* Wed. 14th Aug (4 Night) */}\r\n {props.para.ArrivalDate} ( {props.para.Nights} Nights)\r\n \r\n
\r\n \r\n )}\r\n {props.para.from != \"Block\" ? (\r\n <>\r\n
\r\n {props.para.ChargeableRoomTypeSerNo <\r\n props.para.RoomTypeSerNo ? (\r\n \r\n ) : props.para.ChargeableRoomTypeSerNo >\r\n props.para.RoomTypeSerNo ? (\r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n {/* Executive */}\r\n {props.para.RoomTypeName}\r\n \r\n \r\n {/* 1 */}\r\n {props.para.Rooms}\r\n Room\r\n \r\n
\r\n \r\n ):<>}\r\n
\r\n {props.para.Adult} Adult\r\n {props.para.Child} Child\r\n
\r\n {props.para.Agent && props.para.Agent != \"\" ? (\r\n
\r\n {props.para.Agent}\r\n \r\n \r\n \r\n
\r\n ) : (\r\n <>\r\n )}\r\n {props.para.Company && props.para.Company != \"\" ? (\r\n
\r\n {props.para.Company}\r\n \r\n \r\n \r\n
\r\n ) : (\r\n <>\r\n )}\r\n {props.para.from == \"Block\" ? (\r\n <>\r\n
\r\n \r\n Rate for double occupancy will be displayed by default. If a double occupancy rate is not contracted then single occupancy rate will be displayed. In a scenario where single and double both rates are not contracted, triple occupancy rates will be displayed.\r\n \r\n
\r\n \r\n ):<>\r\n }\r\n
\r\n
\r\n
FILTERS
\r\n
\r\n {\r\n setShowAllRoomType(ischecked);\r\n }}\r\n >\r\n Show All Room Types\r\n \r\n
\r\n setSelectedRateGroup(item.key)}\r\n >\r\n
\r\n
\r\n \r\n Apply\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/* Custom Html Code Start*/}\r\n \r\n \r\n \r\n \r\n \r\n {rateCodeData2.ResAvailabilityModel ? (\r\n rateCodeData2.ResAvailabilityModel.map((d) => (\r\n <>\r\n \r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n {gridSolution ? (\r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n \r\n {rateCodeData2.ResAvailabilityModel ? (\r\n rateCodeData2.ResAvailabilityModel.map((d) => (\r\n <>\r\n \r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n {gridSolution ? (\r\n \r\n ) : null}\r\n \r\n \r\n \r\n {rateCodeData2.ResAvailabilityModel ? (\r\n rateCodeData2.ResAvailabilityModel.map((d) => (\r\n <>\r\n \r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n {gridSolution ? (\r\n \r\n ) : null}\r\n \r\n {rateCodeData2.ResRateCodeDetailModel ? (\r\n rateCodeData2.ResRateCodeDetailModel.map((d) => (\r\n \r\n {\r\n if (props.para.from == \"Block\") {\r\n handleBlockReservationRateClick(d.RateSerNo);\r\n }\r\n }}\r\n >\r\n {d.RateName}\r\n
\r\n \r\n {d.IsTaxInclusive ? \"Inclusive\" : \"Exclusive\"}\r\n \r\n {\r\n setShowRateSelectionSummaryModal(\r\n !showRateSelectionSummaryModal\r\n );\r\n setRoomSummaryPara((prev) => ({\r\n ...prev,\r\n RateCodeSerNo: e.target.id,\r\n }));\r\n }}\r\n >\r\n More\r\n \r\n \r\n {rateCodeData2.ResAvailabilityModel.map((data, i) => (\r\n \r\n {i == 0\r\n ? d.Col1\r\n : i == 1\r\n ? d.Col2\r\n : i == 2\r\n ? d.Col3\r\n : i == 3\r\n ? d.Col4\r\n : i == 4\r\n ? d.Col5\r\n : i == 5\r\n ? d.Col6\r\n : i == 6\r\n ? d.Col7\r\n : i == 7\r\n ? d.Col8\r\n : i == 8\r\n ? d.Col9\r\n : i == 9\r\n ? d.Col10\r\n : i == 10\r\n ? d.Col11\r\n : i == 11\r\n ? d.Col12\r\n : i == 12\r\n ? d.Col13\r\n : i == 13\r\n ? d.Col14\r\n : i == 14\r\n ? d.Col15\r\n : \"\"}\r\n
\r\n {data.RoomTypeSerNo >\r\n props.para.ChargeableRoomTypeSerNo ? (\r\n \r\n Upgrade\r\n \r\n ) : (\r\n <>\r\n )}\r\n
\r\n {data.RoomTypeSerNo <\r\n props.para.ChargeableRoomTypeSerNo ? (\r\n \r\n Downgrade\r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n ))}\r\n {gridSolution ? (\r\n
\r\n ) : null}\r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n\r\n {/* {RateCodeData.map((o, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))} */}\r\n \r\n
Room Type{d.RoomTypeName}
Physical Rooms{d.Phy_Occ.split(\"_\")[0]}
Available Rooms{d.Phy_Occ.split(\"_\")[1]}
\r\n {o.RoomType}\r\n
\r\n {o.type == \"Rate\" ? (\r\n \r\n // setShowRateSelectionSummaryModal(\r\n // !showRateSelectionSummaryModal\r\n // )\r\n // }\r\n >\r\n More\r\n \r\n ) : (\r\n <>\r\n )}\r\n
\r\n {o.Executive}\r\n \r\n {o.ExeSuite}\r\n \r\n setShowRateSelectionPoliciesModal(!showRateSelectionPoliciesModal)}\r\n >{o.PreSuite}\r\n
\r\n {o.type == \"Rate\" ? (\r\n setShowRoomUpgradeReasonModal(!showRoomUpgradeReasonModal)}\r\n >upgrade\r\n ) : (\r\n <>\r\n )}\r\n
\r\n {o.Deluxe}\r\n \r\n
\r\n
Upgraded
\r\n
From Executive
\r\n
\r\n \r\n\r\n
\r\n
\r\n {/* Custom Html Code End */}\r\n {/* {\r\n setSelectedItem(items);\r\n }}\r\n fixedHeaderNo={0}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optClick={(v, d) => {\r\n console.log(v, d);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}\r\n > */}\r\n
\r\n
\r\n
\r\n {showRateSelectionSummaryModal ? (\r\n {\r\n setShowRateSelectionSummaryModal(!showRateSelectionSummaryModal);\r\n }}\r\n handleOnclose={() => {\r\n setShowRateSelectionSummaryModal(!showRateSelectionSummaryModal);\r\n }}\r\n >\r\n ) : (\r\n <>\r\n )}\r\n {showReservationTypeModal ? (\r\n {\r\n setShowReservationTypeModal(false);\r\n props.para.RateCodeName = \"\";\r\n }}\r\n handleOnTypeSelection={handleOnTypeSelection}\r\n >\r\n ) : (\r\n <>\r\n )}\r\n {showUpgradeReasonModal ? (\r\n {\r\n setShowUpgradeReasonModal(false);\r\n }}\r\n OnSelection={(v) => {\r\n console.log(\"upgrade \", selectedRateCode);\r\n setSelectedRateCode((prev) => ({ ...prev, UpgradeReason: v }));\r\n setShowUpgradeReasonModal(false);\r\n if (props.para.from == \"daily\") {\r\n setIsSelectionCompleted(true);\r\n } else {\r\n if (props.para.ReservationTypeSerNo == \"\")\r\n setShowReservationTypeModal(true);\r\n else setIsSelectionCompleted(true);\r\n }\r\n }}\r\n >\r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnLoader,\r\n InnTextbox,\r\n InnPlainButton,\r\n InnSingleSelectDropdown,\r\n InnCheckbox,\r\n InnContextMenu,\r\n InnTooltip,\r\n InnSearchTextbox,\r\n InnMultiSelectDropdown,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n GetRoomAssignSelectedReservationList,\r\n GetReservationRoomFeatureBySerNo,\r\n cmbGetRoomTypeMaster,\r\n GetRoomFeature,\r\n GetRoomAssignRoomListByFilter,\r\n GetRoomAssignmentAssignRoom,\r\n GetRoomAssignmentUnAssignRoom,\r\n GetRoomAssignmentSwapRoom,\r\n GetPropertyParameterByKeys,\r\n EditCheckedInReservation,\r\n ValidateRoomForUpDowngrad\r\n} from \"../../../../services/reservationService\";\r\nimport { GetRoomFeatures } from \"../../../../services/roomMasterService\";\r\nimport { RoomFeatureModalPopup } from \"../modalPopup/roomFeatureModalPopup\";\r\nimport { GetHKStatusMaster } from \"../../../../services/housekeepingServiceMaster\";\r\nimport { GetFloorMaster } from \"../../../../services/frontMasterService\";\r\nimport moment from \"moment/moment\";\r\nimport { TipDueIn, TipDueOut, TipInHouse } from \"../tooltips\";\r\nimport { useRef } from \"react\";\r\nimport { ManageRights } from \"../../../../services/generalService\";\r\nimport SharerImg from \"../../../../assets/images/sharer-secondary-icon.svg\"\r\nimport SharerPrimaryImg from \"../../../../assets/images/sharer-primary-icon.svg\";\r\nimport { useAlert } from \"../../../../utils/hooks/useAlert\";\r\nimport { UpgradeReasonModalPopup } from \"./upgradeReasonModalPopup\";\r\n\r\nexport function RoomAssignmentModal(props) {\r\n\r\n const { confirm } = useConfirm();\r\n const currUser = useSelector(currentUser);\r\n const { innkeyAlert } = useAlert();\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n SelectedReservationSerNo: parseInt(props.para.split(\",\")[0]),\r\n pArrivalDate: \"\",\r\n RoomTypeFilter: null,\r\n HKStatusFilter: null,\r\n FloorFilter: null,\r\n RoomFeatureFilter: null,\r\n IsIncludeOccupiedRoom: null,\r\n IsIncludeAssignRoom: null,\r\n IsIncludeDueoutRoom: null,\r\n IsIncludeFutureRoom: null,\r\n IsIncludeMatchingPreferenceRoom: true,\r\n };\r\n const [inputRmObj, setInputRmObj] = useState({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: 1,\r\n ArrivalDate: \"\"\r\n })\r\n\r\n //#region State Variables\r\n const propertyParameters = ['BusinessDate'];\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n const [roomAssignGridObj, setRoomAssignGridObj] = useState([]);\r\n const [selectedRoomSwapCheckBoxData, setSelectedRoomSwapCheckBoxData] = useState([]);\r\n const [showRoomFeaturesModal, setShowRoomFeaturesModal] = useState(false);\r\n const [showRoomAssignFilterModal, setShowRoomAssignFilterModal] = useState(false);\r\n const [colList, setColList] = useState([]);\r\n const [ind, setIndex] = useState(0);\r\n const [isSwapDisabled, setIsSwapDisabled] = useState(true);\r\n const [roomAssignmentData, setRoomAssignmentData] = useState([]);\r\n const [roomAssignObj, setRoomAssignObj] = useState([]);\r\n const [roomAssignmentFilterListData, setRoomAssignmentFilterListData] = useState([]);\r\n const [filterRoomAssignmentFilterListData, setFilterRoomAssignmentFilterListData] = useState([]);\r\n const [roomAssignmentfilterListObj, setRoomAssignmentFilterListObj] = useState(defaultObj);\r\n const [selectedRoomType, setSelectedRoomType] = useState([]);\r\n const [selectedRmFeatureData, setSelectedRmFeatureData] = useState([]);\r\n const [selectedRmFeature, setSelectedRmFeature] = useState([]);\r\n const [selectedHKStatus, setSelectedHKStatus] = useState([]);\r\n const [selectedFloor, setSelectedFloor] = useState([]);\r\n const [selectedSmokingType, setSelectedSmokingType] = useState({\r\n key: 0,\r\n value: \"Select\",\r\n });\r\n const [selectedBedType, setSelectedBedType] = useState({\r\n key: 0,\r\n value: \"Select\",\r\n });\r\n const [searchstring, setSearchString] = useState(\"\");\r\n const [isIncludeOccupiedRoom, setIsIncludeOccupiedRoom] = useState(false);\r\n const [isIncludeFutureRoom, setIsIncludeFutureRoom] = useState(false);\r\n const [IsIncludeAssignRoom, setIsIncludeAssignRoom] = useState(false);\r\n const [IsIncludeDueoutRoom, setIsIncludeDueoutRoom] = useState(false);\r\n const [IsIncludeMatchingPreferenceRoom, setIsIncludeMatchingPreferenceRoom] = useState(true);\r\n const [rmFeatureMatchingDataByResSerNo, setRmFeatureMatchingDataByResSerNo] = useState([]);\r\n const [rmFeatureMatchingDataByRoomNo, setRmFeatureMatchingDataByRoomNo] = useState([]);\r\n const [rmFeatureValuesData, setRmFeatureValuesData] = useState([]);\r\n const [rmMatchedArr, setRmMatchedArr] = useState([]);\r\n const [storeSearchArray, setStoreSearchArray] = useState([]);\r\n const [oldRoomNo, setOldRoomNo] = useState(\"\");\r\n const [toolTipObj, setToolTipObj] = useState({});\r\n const [userRightsData, setUserRightsData] = useState([]);\r\n const [roomIndex, setRoomIndex] = useState();\r\n const [primarySharerList, setPrimarySharerList] = useState([]);\r\n const [showUpgradeReasonModalPopup, setShowUpgradeReasonModalPopup] = useState(false);\r\n const [assignFlag, setAssignFlag] = useState(false);\r\n const [checkIn, setCheckIn] = useState(false);\r\n const [modeOfAssign, setModeOfAssign] = useState();\r\n const [roomNo, setRoomNo] = useState();\r\n // State Variables for Filter Functionality\r\n const [fillRoomTypeData, setFillRoomTypeData] = useState([]);\r\n const [fillHKStatusData, setFillHKStatusData] = useState([]);\r\n const [fillFloorData, setFillFloorData] = useState([]);\r\n const [fillSmokingData, setFillSmokingData] = useState([]);\r\n const [fillBedTypeData, setFillBedTypeData] = useState([]);\r\n\r\n //Declarations related to Room feature filters\r\n const [roomFeatureData, setroomFeatureData] = useState([]);\r\n const [finalResponse, setFinalResponse] = useState([]);\r\n const [updatedKey, setUpdatedKey] = useState(1);\r\n //#endregion\r\n\r\n const CheckoutTimeDD = [\r\n { key: \"ActualArrivalTime\", value: \"No Info\" },\r\n //{ key: \"No Response\", value: \"No Response\" },\r\n { key: \"ActualArrivalTime\", value: \"00:00\" },\r\n { key: \"ActualArrivalTime\", value: \"00:30\" },\r\n { key: \"ActualArrivalTime\", value: \"01:00\" },\r\n { key: \"ActualArrivalTime\", value: \"01:30\" },\r\n { key: \"ActualArrivalTime\", value: \"02:00\" },\r\n { key: \"ActualArrivalTime\", value: \"02:30\" },\r\n { key: \"ActualArrivalTime\", value: \"03:00\" },\r\n { key: \"ActualArrivalTime\", value: \"03:30\" },\r\n { key: \"ActualArrivalTime\", value: \"04:00\" },\r\n { key: \"ActualArrivalTime\", value: \"04:30\" },\r\n { key: \"ActualArrivalTime\", value: \"05:00\" },\r\n { key: \"ActualArrivalTime\", value: \"05:30\" },\r\n { key: \"ActualArrivalTime\", value: \"06:00\" },\r\n { key: \"ActualArrivalTime\", value: \"06:30\" },\r\n { key: \"ActualArrivalTime\", value: \"07:00\" },\r\n { key: \"ActualArrivalTime\", value: \"07:30\" },\r\n { key: \"ActualArrivalTime\", value: \"08:00\" },\r\n { key: \"ActualArrivalTime\", value: \"08:30\" },\r\n { key: \"ActualArrivalTime\", value: \"09:00\" },\r\n { key: \"ActualArrivalTime\", value: \"09:30\" },\r\n { key: \"ActualArrivalTime\", value: \"10:00\" },\r\n { key: \"ActualArrivalTime\", value: \"10:30\" },\r\n { key: \"ActualArrivalTime\", value: \"11:00\" },\r\n { key: \"ActualArrivalTime\", value: \"11:30\" },\r\n { key: \"ActualArrivalTime\", value: \"12:00\" },\r\n { key: \"ActualArrivalTime\", value: \"12:30\" },\r\n { key: \"ActualArrivalTime\", value: \"13:00\" },\r\n { key: \"ActualArrivalTime\", value: \"13:30\" },\r\n { key: \"ActualArrivalTime\", value: \"14:00\" },\r\n { key: \"ActualArrivalTime\", value: \"14:30\" },\r\n { key: \"ActualArrivalTime\", value: \"15:00\" },\r\n { key: \"ActualArrivalTime\", value: \"15:30\" },\r\n { key: \"ActualArrivalTime\", value: \"16:00\" },\r\n { key: \"ActualArrivalTime\", value: \"16:30\" },\r\n { key: \"ActualArrivalTime\", value: \"17:00\" },\r\n { key: \"ActualArrivalTime\", value: \"17:30\" },\r\n { key: \"ActualArrivalTime\", value: \"18:00\" },\r\n { key: \"ActualArrivalTime\", value: \"18:30\" },\r\n { key: \"ActualArrivalTime\", value: \"19:00\" },\r\n { key: \"ActualArrivalTime\", value: \"19:30\" },\r\n { key: \"ActualArrivalTime\", value: \"20:00\" },\r\n { key: \"ActualArrivalTime\", value: \"20:30\" },\r\n { key: \"ActualArrivalTime\", value: \"21:00\" },\r\n { key: \"ActualArrivalTime\", value: \"21:30\" },\r\n { key: \"ActualArrivalTime\", value: \"22:00\" },\r\n { key: \"ActualArrivalTime\", value: \"22:30\" },\r\n { key: \"ActualArrivalTime\", value: \"23:00\" },\r\n { key: \"ActualArrivalTime\", value: \"23:30\" },\r\n ];\r\n const assignData = [\r\n { key: \"Assign\", value: \"Assign\" },\r\n { key: \"Assign & Check In\", value: \"Assign & Check In\" },\r\n ];\r\n\r\n const RoomAssignSort = [\r\n { key: \"RoomNo\", value: \"Room\" },\r\n { key: \"RoomTypeName\", value: \"Room Type\" },\r\n { key: \"HKStatusCode\", value: \"HK Status\" },\r\n { key: \"FO Status\", value: \"FO Status\" },\r\n { key: \"ArrivalDate\", value: \"Arrival Date\" },\r\n { key: \"Depart. Date\", value: \"Depart. Date\" },\r\n { key: \"ReservationStatus\", value: \"Reservation Status\" },\r\n { key: \"Conf. No.\", value: \"Conf. No.\" },\r\n { key: \"GuestName\", value: \"Guest Name\" },\r\n ];\r\n\r\n //#region ToolTip\r\n const RoomFeaturesInfoTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n This section will display the room feature preference of the guest as updated in their reservation. Further the room features that cannot be matched will be striked off and the features that are in italic would mean as the ones available in the selected room but not requested by the guest in the reservation.\r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n const RoomTypeTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n Sea view, Near Elevator,
\r\n Inter-Connected, Twin Bed, Smoking Room\r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n const FutureArrivalToolTip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n Only those rooms will be displayed as result that are assigned
\r\n for future and falls between the
\r\n stay dates of the reservation for which the search
\r\n is being made, when this filter is applied.\r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n\r\n //#region Custom Functions\r\n\r\n const renderChild = () => {\r\n let newkey = Math.floor(Math.random() * 100);\r\n setUpdatedKey(newkey);\r\n }\r\n\r\n const compare = (a, b) => {\r\n if (a.GuestName > b.GuestName) {\r\n return -1;\r\n }\r\n if (a.GuestName < b.GuestName) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n const fillRoomAssigmentData = () => {\r\n GetRoomAssignSelectedReservationList(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n props.para\r\n ).then((d) => {\r\n let tempTime = [];\r\n let tempData = d.data.filter((z) => z.ReservationStatus != \"NSH\" && z.ReservationStatus != \"CAN\" && z.ReservationStatus != \"COT\")\r\n tempData.forEach((x) => {\r\n x.isChecked = false;\r\n if (x.ActualArrivalTime != null) {\r\n tempTime = x.ActualArrivalTime.split(\"\");\r\n tempTime.pop();\r\n tempTime.pop();\r\n tempTime.pop();\r\n x.ActualArrivalTime = tempTime.join(\"\");\r\n }\r\n });\r\n setRoomAssignmentData(tempData);\r\n setRoomAssignObj(tempData[0]);\r\n setIndex(0);\r\n setInputRmObj((prev) => ({ ...prev, ReservationSerNo: parseInt(tempData[0].ReservationSerNo), ArrivalDate: tempData[0].ArrivalDate }))\r\n setRoomAssignmentFilterListObj((prev) => ({ ...prev, SelectedReservationSerNo: parseInt(tempData[0].ReservationSerNo), IsIncludeMatchingPreferenceRoom: IsIncludeMatchingPreferenceRoom }))\r\n handleRoomFeaturesMatchingBySerNo(tempData[0].ReservationSerNo);\r\n handleRoomFeaturesMatchingByRoomNo();\r\n });\r\n };\r\n\r\n const fillUserRights = () => {\r\n ManageRights(currUser.ClientSerNo, currUser.UserID, \"15,16,50,53,54\").then((d) => {\r\n if (d.data.length > 0) {\r\n setUserRightsData(d.data);\r\n }\r\n else {\r\n console.log(\"No user rights\");\r\n }\r\n })\r\n }\r\n\r\n const fillRoomAssignmentFilter = () => {\r\n GetRoomAssignRoomListByFilter(roomAssignmentfilterListObj).then((d) => {\r\n setPrimarySharerList(d.data.PrimarySharerList);\r\n d.data.ReservationRoomAssignList.forEach((x) => {\r\n x.isChecked = false;\r\n x[\"Preference\"] = \"N\";\r\n if (x.ArrivalTime != null) {\r\n let tempTime = [];\r\n tempTime = x.ArrivalTime.split(\" \");\r\n tempTime.shift();\r\n x.ArrivalTime = tempTime.join(\"\");\r\n }\r\n if (x.DepartureTime != null) {\r\n let tempTime = [];\r\n tempTime = x.DepartureTime.split(\" \");\r\n tempTime.shift();\r\n x.DepartureTime = tempTime.join(\"\");\r\n }\r\n d.data.PrimarySharerList.forEach((z) => {\r\n if (z.ReservationSerNo == parseInt(x.ReservationSerNo) || z.ReservationSerNo == x.SharerReservationSerNo) {\r\n x.Assignable = false;\r\n x.UnAssignable = false;\r\n }\r\n })\r\n }\r\n );\r\n if (searchstring != \"\") {\r\n let tempData = d.data.ReservationRoomAssignList.filter((x) => x.RoomNo.includes(searchstring));\r\n setFilterRoomAssignmentFilterListData(tempData.sort(compare));\r\n // setStoreSearchArray(tempData);\r\n }\r\n else {\r\n setFilterRoomAssignmentFilterListData(d.data.ReservationRoomAssignList.sort(compare));\r\n // setStoreSearchArray(d.data.ReservationRoomAssignList);\r\n }\r\n console.log(\"sorting\",d.data.ReservationRoomAssignList.sort(compare))\r\n setRoomAssignmentFilterListData(d.data.ReservationRoomAssignList.sort(compare));\r\n handleRoomFeaturesMatchingBySerNo(roomAssignmentfilterListObj.SelectedReservationSerNo);\r\n setRoomIndex(0);\r\n });\r\n };\r\n\r\n const handlevalidateRoomForUpDowngrad = (RoomNo) => {\r\n ValidateRoomForUpDowngrad(currUser.ClientSerNo, currUser.PropertySerNo, RoomNo).then((d) => {\r\n console.log(d.data)\r\n let obj = d.data;\r\n if (obj.ResultMessage == \"Success\") {\r\n handleRoomUpDwnGrade(obj, \"Direct\").then((z) => {\r\n if (z == \"Upgrd\" || z == \"Dwngrd\") {\r\n setAssignFlag(true);\r\n setRoomNo(obj.RoomSerNo);\r\n }\r\n else {\r\n if (z == \"EqlSeq\") {\r\n handleUserRights(\"50\").then(e => {\r\n if (e) {\r\n assignRoom(obj.RoomSerNo);\r\n }\r\n else {\r\n }\r\n })\r\n }\r\n }\r\n })\r\n }\r\n else {\r\n alert(\"Invalid Room No.\")\r\n renderChild();\r\n //fillRoomAssigmentData();\r\n }\r\n })\r\n }\r\n\r\n const handleIncludeMatchingPrefCheckBox = () => {\r\n console.log(\"run\")\r\n let temp = [];\r\n let fullMatchPref = [];\r\n // if (!IsIncludeMatchingPreferenceRoom) {\r\n if (rmFeatureMatchingDataByResSerNo.length > 0) {\r\n let temproomAssignmentFilterListData = JSON.parse(JSON.stringify(roomAssignmentFilterListData));\r\n for (let i = rmFeatureMatchingDataByResSerNo.length; i > 0; i--) {\r\n\r\n for (let j in temproomAssignmentFilterListData) {\r\n let count = 0;\r\n let data = rmFeatureMatchingDataByRoomNo.filter((y) => y.RoomSerNo == temproomAssignmentFilterListData[j].RoomSerNo)\r\n for (let k in rmFeatureMatchingDataByResSerNo) {\r\n if (data.some(o => (o.RoomFeatureSerNo == rmFeatureMatchingDataByResSerNo[k].RoomFeatureSerNo && o.RoomFeatureValueSerNo == rmFeatureMatchingDataByResSerNo[k].RoomFeatureValueSerNo))) {\r\n count += 1;\r\n\r\n }\r\n if (parseInt(k) === rmFeatureMatchingDataByResSerNo.length - 1) {\r\n if (count === i) {\r\n if (count === rmFeatureMatchingDataByResSerNo.length) {\r\n let obj = temproomAssignmentFilterListData[j]\r\n obj[\"Preference\"] = \"F\"\r\n temp.push(obj);\r\n // fullMatchPref.push(obj);\r\n } else {\r\n if (!IsIncludeMatchingPreferenceRoom) {\r\n let obj = temproomAssignmentFilterListData[j]\r\n obj[\"Preference\"] = \"P\"\r\n temp.push(obj);\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n }\r\n }\r\n if (!IsIncludeMatchingPreferenceRoom) {\r\n for (let i in temproomAssignmentFilterListData) {\r\n if (!temp.some((x) => x.RoomSerNo == temproomAssignmentFilterListData[i].RoomSerNo)) {\r\n let obj = temproomAssignmentFilterListData[i]\r\n obj[\"Preference\"] = \"N\"\r\n temp.push(obj)\r\n }\r\n }\r\n console.log(temp)\r\n }\r\n if (searchstring != \"\") {\r\n let tempData = temp.filter((x) => x.RoomNo.includes(searchstring))\r\n\r\n setFilterRoomAssignmentFilterListData(tempData.sort(compare));\r\n // setStoreSearchArray(tempData);\r\n }\r\n else {\r\n console.log(temp)\r\n setFilterRoomAssignmentFilterListData(temp.sort(compare));\r\n setStoreSearchArray(JSON.parse(JSON.stringify(temp.sort(compare))));\r\n }\r\n }\r\n else if (rmFeatureMatchingDataByResSerNo.length == 0 && IsIncludeMatchingPreferenceRoom == true) {\r\n setFilterRoomAssignmentFilterListData(JSON.parse(JSON.stringify(roomAssignmentFilterListData)));\r\n setStoreSearchArray(JSON.parse(JSON.stringify(roomAssignmentFilterListData)))\r\n }\r\n else {\r\n if (searchstring != \"\") {\r\n let tempData = roomAssignmentFilterListData.filter((x) => x.RoomNo.includes(searchstring))\r\n setFilterRoomAssignmentFilterListData(tempData.sort(compare));\r\n // setStoreSearchArray(tempData);\r\n }\r\n else {\r\n let tempData1 = roomAssignmentFilterListData.filter((x) => x.RoomNo.includes(searchstring))\r\n setFilterRoomAssignmentFilterListData(tempData1.sort(compare))\r\n setStoreSearchArray(JSON.parse(JSON.stringify(tempData1.sort(compare))))\r\n }\r\n }\r\n // }\r\n // else {\r\n // if (searchstring != \"\") {\r\n // let tempData = roomAssignmentFilterListData.filter((x) => x.RoomNo.includes(searchstring))\r\n // setFilterRoomAssignmentFilterListData(tempData);\r\n // setStoreSearchArray(tempData);\r\n // }\r\n // else {\r\n // setFilterRoomAssignmentFilterListData(roomAssignmentFilterListData)\r\n // setStoreSearchArray(roomAssignmentFilterListData)\r\n // }\r\n // setFilterRoomAssignmentFilterListData(roomAssignmentFilterListData);\r\n // setStoreSearchArray(JSON.parse(JSON.stringify(roomAssignmentFilterListData)))\r\n\r\n\r\n // }\r\n }\r\n\r\n const handleRoomUpDwnGrade = async (obj, Mode) => {\r\n let IsUpgradable = false;\r\n let IsDowngradable = false;\r\n console.log(obj)\r\n setModeOfAssign(Mode);\r\n if (Mode == \"Btn\") {\r\n if (roomAssignObj.RoomTypeToChargeSequence < obj.RoomTypeSequence) {\r\n IsUpgradable = await innkeyAlert(\"Would you like to upgrade the room type of this reservation\");\r\n console.log(IsUpgradable)\r\n if (IsUpgradable) {\r\n setShowUpgradeReasonModalPopup(true);\r\n return \"Upgrd\";\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n else if (roomAssignObj.RoomTypeToChargeSequence > obj.RoomTypeSequence) {\r\n IsDowngradable = await innkeyAlert(\"Would you like to downgrade the room type of this reservation\");\r\n if (IsDowngradable) {\r\n setShowUpgradeReasonModalPopup(true);\r\n return \"Dwngrd\";\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n else if (roomAssignObj.RoomTypeToChargeSequence == obj.RoomTypeSequence) {\r\n return \"EqlSeq\";\r\n }\r\n }\r\n else if (Mode == \"Direct\") {\r\n if (roomAssignObj.RoomTypeToChargeSequence < obj.Sequence) {\r\n IsUpgradable = await innkeyAlert(\"Would you like to upgrade the room type of this reservation\");\r\n console.log(IsUpgradable)\r\n if (IsUpgradable) {\r\n setShowUpgradeReasonModalPopup(true);\r\n return \"Upgrd\";\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n else if (roomAssignObj.RoomTypeToChargeSequence > obj.Sequence) {\r\n IsDowngradable = await innkeyAlert(\"Would you like to downgrade the room type of this reservation\");\r\n if (IsDowngradable) {\r\n setShowUpgradeReasonModalPopup(true);\r\n return \"Dwngrd\";\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n else if (roomAssignObj.RoomTypeToChargeSequence == obj.Sequence) {\r\n return \"EqlSeq\";\r\n }\r\n }\r\n\r\n console.log(IsDowngradable, IsUpgradable);\r\n }\r\n\r\n\r\n const assignRoom = (roomSerNo, reasonobj) => {\r\n console.log(roomSerNo, reasonobj);\r\n let tempObj = { UpgradeReasonSerNo: 0, UpgradeReason: \"0\" }\r\n if (reasonobj != undefined) {\r\n tempObj = reasonobj;\r\n }\r\n let selectedResSerNo;\r\n let IsAssignable = false;\r\n if (roomAssignObj.ReservationSerNo == roomAssignmentfilterListObj.SelectedReservationSerNo) {\r\n if (roomAssignObj.IsSharer == true) {\r\n let obj = {};\r\n obj = roomAssignmentData.find(x => x.ReservationSerNo == roomAssignObj.SharerReservationSerNo);\r\n if (obj.ReservationStatus != \"INH\") {\r\n selectedResSerNo = obj.ReservationSerNo;\r\n IsAssignable = true;\r\n }\r\n }\r\n else {\r\n if (roomAssignObj.ReservationStatus != \"INH\") {\r\n selectedResSerNo = roomAssignObj.ReservationSerNo;\r\n IsAssignable = true;\r\n }\r\n }\r\n if (IsAssignable) {\r\n GetRoomAssignmentAssignRoom(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n selectedResSerNo,\r\n roomSerNo,\r\n tempObj.UpgradeReason,\r\n tempObj.UpgradeReasonSerNo\r\n ).then((d) => {\r\n if (d.data.Code == \"success\") {\r\n //alert(d.data.Message);\r\n alert(\"Room \" + roomSerNo + \" is successfully assigned.\");\r\n fillRoomAssignmentFilter();\r\n fillRoomAssigmentData();\r\n }\r\n else {\r\n alert(d.data.Message)\r\n renderChild();\r\n fillRoomAssigmentData();\r\n }\r\n });\r\n }\r\n else {\r\n alert(\"Cannot perform this functionality.\")\r\n }\r\n }\r\n else {\r\n alert(\"No Guest Selected\");\r\n }\r\n };\r\n\r\n const handleAssignandCheckIn = (obj, roomSerNo, reasonobj) => {\r\n console.log(obj, roomSerNo, reasonobj);\r\n let tempObj = { UpgradeReasonSerNo: 0, UpgradeReason: \"0\" }\r\n if (reasonobj != undefined) {\r\n tempObj = reasonobj;\r\n }\r\n console.log(tempObj)\r\n let IsAssignable = false;\r\n if (obj.ReservationStatus != \"DOT\") {\r\n if (new Date(moment(businessDate).format(\"DD-MMM-YYYY\")).getTime() == new Date(moment(inputRmObj.ArrivalDate).format(\"DD-MMM-YYYY\")).getTime()) {\r\n let selectedResSerNo;\r\n if (roomAssignObj.ReservationSerNo == roomAssignmentfilterListObj.SelectedReservationSerNo) {\r\n if (roomAssignObj.IsSharer == true) {\r\n let tempobj = {};\r\n tempobj = roomAssignmentData.find(x => x.ReservationSerNo == roomAssignObj.SharerReservationSerNo);\r\n if (tempobj.ReservationStatus != \"INH\") {\r\n selectedResSerNo = obj.ReservationSerNo;\r\n IsAssignable = true;\r\n }\r\n }\r\n else {\r\n if (roomAssignObj.ReservationStatus != \"INH\") {\r\n selectedResSerNo = roomAssignObj.ReservationSerNo;\r\n IsAssignable = true;\r\n }\r\n }\r\n if (IsAssignable) {\r\n GetRoomAssignmentAssignRoom(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n selectedResSerNo,\r\n roomSerNo,\r\n tempObj.UpgradeReason,\r\n tempObj.UpgradeReasonSerNo\r\n ).then((d) => {\r\n if (d.data.Code == \"success\") {\r\n alert(d.data.Message);\r\n EditCheckedInReservation(inputRmObj).then((d) => {\r\n alert(d.data.Message);\r\n })\r\n fillRoomAssignmentFilter();\r\n fillRoomAssigmentData();\r\n }\r\n else {\r\n alert(d.data.Message)\r\n renderChild();\r\n }\r\n });\r\n }\r\n else {\r\n alert(\"Cannot perform this functionality.\")\r\n }\r\n }\r\n else {\r\n alert(\"No Guest Selected\");\r\n }\r\n }\r\n else {\r\n alert(\"Arrival Date must be equal to business date for check-in.\")\r\n }\r\n }\r\n else {\r\n alert(\"Assign & Check-In with DOT reservation is not allowed.Only Assign can be performed.\")\r\n }\r\n };\r\n\r\n const UnassignRoom = (d) => {\r\n let IsUnAssign = true;\r\n roomAssignmentData.forEach((x) => {\r\n if (d.IsSharer == true) {\r\n if (d.SharerReservationSerNo == x.ReservationSerNo && x.ReservationStatus == \"INH\") {\r\n IsUnAssign = false;\r\n }\r\n }\r\n else {\r\n if (d.ReservationSerNo == x.SharerReservationSerNo && d.ReservationStatus == \"INH\") {\r\n IsUnAssign = false;\r\n }\r\n }\r\n })\r\n if (d.ReservationStatus == \"INH\") {\r\n IsUnAssign = false;\r\n }\r\n\r\n if (IsUnAssign) {\r\n let selectedResSerNo = '';\r\n if (d.IsSharer == true) {\r\n selectedResSerNo = d.SharerReservationSerNo;\r\n }\r\n else {\r\n selectedResSerNo = d.ReservationSerNo;\r\n }\r\n GetRoomAssignmentUnAssignRoom(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n selectedResSerNo\r\n ).then((d) => {\r\n if (d.data.Code == \"success\") {\r\n alert(d.data.Message);\r\n fillRoomAssignmentFilter();\r\n fillRoomAssigmentData();\r\n }\r\n else {\r\n alert(d.data.Message);\r\n fillRoomAssigmentData();\r\n renderChild();\r\n }\r\n });\r\n }\r\n else {\r\n alert(\"Primary sharing reservation has already checked in. This action cannot be performed.\")\r\n renderChild();\r\n }\r\n\r\n };\r\n\r\n const handleSwapRoom = () => {\r\n let IsSwapable = true;\r\n\r\n if (roomAssignmentData.some((x => x.ReservationSerNo == selectedRoomSwapCheckBoxData[0].SharerReservationSerNo || x.ReservationSerNo == selectedRoomSwapCheckBoxData[1].SharerReservationSerNo))) {\r\n let obj = roomAssignmentData.find((x => x.ReservationSerNo == selectedRoomSwapCheckBoxData[0].SharerReservationSerNo || x.ReservationSerNo == selectedRoomSwapCheckBoxData[1].SharerReservationSerNo))\r\n if (obj.ReservationStatus == \"INH\") {\r\n IsSwapable = false;\r\n }\r\n }\r\n else if (primarySharerList.some((x => x.ReservationSerNo == selectedRoomSwapCheckBoxData[0].SharerReservationSerNo || x.ReservationSerNo == selectedRoomSwapCheckBoxData[1].SharerReservationSerNo))) {\r\n IsSwapable = false;\r\n }\r\n\r\n if (IsSwapable) {\r\n let reslist = [];\r\n let obj = {\r\n ReservationSerNo: 0,\r\n RoomSerNo: 0\r\n }\r\n selectedRoomSwapCheckBoxData.map((d) => {\r\n if (d.ReservationSerNo === '') {\r\n d.ReservationSerNo = 0;\r\n }\r\n })\r\n if (selectedRoomSwapCheckBoxData[1].IsSharer == true && selectedRoomSwapCheckBoxData[0].IsSharer == true) {\r\n selectedRoomSwapCheckBoxData.forEach((d) => {\r\n obj = { ReservationSerNo: d.SharerReservationSerNo, RoomSerNo: d.RoomSerNo }\r\n reslist.push(obj);\r\n })\r\n }\r\n else {\r\n if (selectedRoomSwapCheckBoxData[0].IsSharer == true) {\r\n obj = { ReservationSerNo: selectedRoomSwapCheckBoxData[0].SharerReservationSerNo, RoomSerNo: selectedRoomSwapCheckBoxData[0].RoomSerNo }\r\n reslist.push(obj)\r\n reslist.push({ ReservationSerNo: parseInt(selectedRoomSwapCheckBoxData[1].ReservationSerNo), RoomSerNo: selectedRoomSwapCheckBoxData[1].RoomSerNo })\r\n }\r\n else if (selectedRoomSwapCheckBoxData[1].IsSharer == true) {\r\n reslist.push({ ReservationSerNo: parseInt(selectedRoomSwapCheckBoxData[0].ReservationSerNo), RoomSerNo: selectedRoomSwapCheckBoxData[0].RoomSerNo })\r\n obj = { ReservationSerNo: selectedRoomSwapCheckBoxData[1].SharerReservationSerNo, RoomSerNo: selectedRoomSwapCheckBoxData[1].RoomSerNo }\r\n reslist.push(obj);\r\n }\r\n else {\r\n selectedRoomSwapCheckBoxData.forEach((d) => {\r\n obj = { ReservationSerNo: parseInt(d.ReservationSerNo), RoomSerNo: d.RoomSerNo }\r\n reslist.push(obj);\r\n })\r\n }\r\n }\r\n console.log(\"reslist\", reslist)\r\n GetRoomAssignmentSwapRoom(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n reslist[0].ReservationSerNo,\r\n reslist[0].RoomSerNo,\r\n reslist[1].ReservationSerNo,\r\n reslist[1].RoomSerNo\r\n ).then((d) => {\r\n if (d.data.Code == \"success\") {\r\n alert(d.data.Message);\r\n fillRoomAssignmentFilter();\r\n fillRoomAssigmentData();\r\n setSelectedRoomSwapCheckBoxData([]);\r\n }\r\n else {\r\n alert(d.data.Message);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const handleRoomFeaturesMatchingBySerNo = (ReservationSerNo) => {\r\n GetReservationRoomFeatureBySerNo(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n ReservationSerNo\r\n ).then((d) => {\r\n setRmFeatureMatchingDataByResSerNo(d.data);\r\n })\r\n }\r\n\r\n const handleRoomFeaturesMatchingByRoomNo = () => {\r\n GetRoomFeatures(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo)\r\n ).then(d => {\r\n setRmFeatureMatchingDataByRoomNo(d.data.RoomFeatures);\r\n setRmFeatureValuesData(d.data.RoomFeatureValues);\r\n })\r\n }\r\n\r\n const handleRmFeaturesMatching = () => {\r\n\r\n if (rmFeatureMatchingDataByResSerNo.length > 0 && rmFeatureMatchingDataByRoomNo.length > 0) {\r\n let tempSerNo = [];\r\n let tempRoomNo = [];\r\n let finalArr = [];\r\n rmFeatureMatchingDataByResSerNo.forEach((x) => {\r\n tempSerNo.push(x);\r\n })\r\n rmFeatureMatchingDataByRoomNo.forEach((x) => {\r\n tempRoomNo.push(x);\r\n })\r\n let tempArr = tempRoomNo.filter((x) => x.RoomSerNo === roomAssignGridObj.RoomSerNo);\r\n for (let i = 1; i <= tempSerNo.length; i++) {\r\n if (tempArr.some((u) => u.RoomFeatureValueSerNo === tempSerNo[i - 1].RoomFeatureValueSerNo && u.RoomFeatureSerNo === tempSerNo[i - 1].RoomFeatureSerNo)) {\r\n tempSerNo[i - 1][\"Match\"] = 0;\r\n finalArr.push(tempSerNo[i - 1]);\r\n let x = tempArr.find((u) => u.RoomFeatureValueSerNo === tempSerNo[i - 1].RoomFeatureValueSerNo && u.RoomFeatureSerNo === tempSerNo[i - 1].RoomFeatureSerNo)\r\n tempArr.splice(tempArr.indexOf(x), 1);\r\n tempSerNo.splice(i - 1, 1);\r\n i--;\r\n }\r\n }\r\n for (let i in tempSerNo) {\r\n tempSerNo[i][\"Match\"] = 1;\r\n let temp = tempSerNo[i]\r\n finalArr.push(temp);\r\n }\r\n for (let i in tempArr) {\r\n for (let j in rmFeatureValuesData) {\r\n if (tempArr[i].RoomFeatureValueSerNo == rmFeatureValuesData[j].RoomFeatureValueSerNo) {\r\n tempArr[i][\"DisplayName\"] = rmFeatureValuesData[j].DisplayName\r\n tempArr[i][\"Match\"] = 2;\r\n let temp = tempArr[i]\r\n finalArr.push(temp);\r\n }\r\n }\r\n }\r\n setRmMatchedArr(finalArr);\r\n }\r\n else if (rmFeatureMatchingDataByResSerNo.length == 0 && rmFeatureMatchingDataByRoomNo.length > 0) {\r\n\r\n let tempRoomNoArr = [];\r\n let finalArray = [];\r\n rmFeatureMatchingDataByRoomNo.forEach((x) => {\r\n tempRoomNoArr.push(x);\r\n })\r\n let tempArr = tempRoomNoArr.filter((x) => x.RoomSerNo === roomAssignGridObj.RoomSerNo);\r\n for (let i in tempArr) {\r\n for (let j in rmFeatureValuesData) {\r\n if (tempArr[i].RoomFeatureValueSerNo == rmFeatureValuesData[j].RoomFeatureValueSerNo) {\r\n tempArr[i][\"DisplayName\"] = rmFeatureValuesData[j].DisplayName\r\n tempArr[i][\"Match\"] = 2;\r\n let temp = tempArr[i]\r\n finalArray.push(temp);\r\n }\r\n }\r\n }\r\n setRmMatchedArr(finalArray);\r\n }\r\n }\r\n\r\n const handleRoomAssignClick = (e) => {\r\n setRoomAssignmentFilterListObj((prev) => ({\r\n ...prev,\r\n SelectedReservationSerNo: parseInt(e.ReservationSerNo),\r\n }));\r\n };\r\n\r\n const handleFilterApply = () => {\r\n fillRoomAssignmentFilter();\r\n let temp = selectedRoomSwapCheckBoxData;\r\n let ans = []\r\n temp.forEach((x) => {\r\n if (roomAssignmentData.some(o => o.ReservationSerNo === x.ReservationSerNo)) {\r\n ans.push(x)\r\n }\r\n })\r\n setSelectedRoomSwapCheckBoxData(ans);\r\n setShowRoomAssignFilterModal(!showRoomAssignFilterModal)\r\n };\r\n\r\n const handleResetFilters = () => {\r\n setSelectedBedType({ key: 0, value: \"Select\" });\r\n setSelectedSmokingType({ key: 0, value: \"Select\" });\r\n setSelectedHKStatus([]);\r\n setSelectedFloor([]);\r\n setSelectedRoomType([]);\r\n setIsIncludeOccupiedRoom(false);\r\n setIsIncludeFutureRoom(false);\r\n setRoomAssignmentFilterListObj((prev) => ({\r\n ...prev,\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n pArrivalDate: \"\",\r\n RoomTypeFilter: null,\r\n HKStatusFilter: null,\r\n FloorFilter: null,\r\n RoomFeatureFilter: null,\r\n IsIncludeOccupiedRoom: null,\r\n IsIncludeFutureRoom: null\r\n }));\r\n setSelectedRmFeature([]);\r\n setSelectedRmFeatureData([]);\r\n setFinalResponse([]);\r\n };\r\n\r\n const handleRoomSwapCheckBox = (isChecked, d) => {\r\n if (isChecked === true) {\r\n d.isChecked = true;\r\n setSelectedRoomSwapCheckBoxData((prev) => [...prev, d]);\r\n } else {\r\n d.isChecked = false;\r\n setSelectedRoomSwapCheckBoxData(\r\n selectedRoomSwapCheckBoxData.filter((x) => x != d)\r\n );\r\n }\r\n };\r\n\r\n const handleBedTypeChange = (item) => {\r\n setSelectedBedType(item);\r\n let obj = roomFeatureData.RoomFeatureValues.find((f) => f.key == item.key);\r\n if (obj) {\r\n obj.DisplayName = item.value;\r\n obj.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n obj.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n let fr = [...finalResponse];\r\n let exObj = fr.find((x) => x.RoomFeatureSerNo == obj.RoomFeatureSerNo);\r\n if (exObj) {\r\n let index = fr.indexOf(exObj);\r\n fr.splice(index, 1);\r\n }\r\n fr.push(obj);\r\n setFinalResponse(fr);\r\n } else {\r\n let fr = [...finalResponse];\r\n let filterRes = fr.filter((x) => x.RoomFeatureTypeSerNo != \"BDT\");\r\n setFinalResponse(filterRes);\r\n }\r\n };\r\n\r\n const handleSmokingTypeChange = (item) => {\r\n setSelectedSmokingType(item);\r\n let obj = roomFeatureData.RoomFeatureValues.find((f) => f.key == item.key);\r\n if (obj) {\r\n obj.DisplayName = item.value;\r\n obj.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n obj.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n let fr = [...finalResponse];\r\n\r\n let exObj = fr.find((x) => x.RoomFeatureSerNo == obj.RoomFeatureSerNo);\r\n if (exObj) {\r\n let index = fr.indexOf(exObj);\r\n fr.splice(index, 1);\r\n }\r\n fr.push(obj);\r\n setFinalResponse(fr);\r\n } else {\r\n let fr = [...finalResponse];\r\n let filterRes = fr.filter((x) => x.RoomFeatureTypeSerNo != \"SMK\");\r\n setFinalResponse(filterRes);\r\n }\r\n };\r\n\r\n const handleFilterCheckBoxClick = (e) => {\r\n if (e.target.checked) {\r\n let obj = roomFeatureData.RoomFeatureValues.find(\r\n (f) => f.RoomFeatureSerNo == e.target.id && f.Value == \"1\"\r\n );\r\n obj.checked = true;\r\n let displayName = roomFeatureData.RoomFeatures.find(\r\n (f1) => f1.RoomFeatureSerNo == obj.RoomFeatureSerNo\r\n );\r\n obj.DisplayName = displayName.Name;\r\n obj.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n obj.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n let fr = [...finalResponse];\r\n fr.push(obj);\r\n setFinalResponse(fr);\r\n } else {\r\n let filterRes = finalResponse.filter(\r\n (x) => x.RoomFeatureSerNo != e.target.id\r\n );\r\n setFinalResponse(filterRes);\r\n }\r\n };\r\n\r\n const handleOnSearchChange = (e) => {\r\n let filterData = storeSearchArray.filter((item) => item.RoomNo.includes(e));\r\n console.log(\"search\", filterData);\r\n setFilterRoomAssignmentFilterListData(filterData);\r\n setSearchString(e);\r\n }\r\n\r\n // const handleSort = (e) => {\r\n // setStoreSortValue(e);\r\n // let temp = [...filterRoomAssignmentFilterListData];\r\n // if (e.length > 0) {\r\n // let sortedarray = temp.sort((a, b) => {\r\n // let result = [];\r\n // let i = 0;\r\n // while (i < e.length) {\r\n // result = (a[e[i]] < b[e[i]]\r\n // ? -1\r\n // :\r\n // (a[e[i]] > b[e[i]]\r\n // ? 1\r\n // : 0));\r\n // i++;\r\n // }\r\n // return result;\r\n // })\r\n // setFilterRoomAssignmentFilterListData(sortedarray);\r\n // }\r\n // if (e.length == 0) {\r\n // setFilterRoomAssignmentFilterListData(roomAssignmentFilterListData);\r\n // }\r\n // }\r\n\r\n\r\n const handleRemoveGuestTile = (d) => {\r\n let array = roomAssignmentData.filter((x) => parseInt(x.ReservationSerNo) == parseInt(d.ReservationSerNo) || parseInt(x.SharerReservationSerNo) == d.ReservationSerNo);\r\n if (roomAssignmentData.length > 1 && array.length < roomAssignmentData.length) {\r\n // let temp = roomAssignmentData.filter((x) => parseInt(x.ReservationSerNo) != parseInt(d.ReservationSerNo));\r\n let temp = roomAssignmentData.filter((x) => parseInt(x.ReservationSerNo) != parseInt(d.ReservationSerNo) && x.SharerReservationSerNo != parseInt(d.ReservationSerNo));\r\n console.log(temp);\r\n if (roomAssignmentfilterListObj.SelectedReservationSerNo == parseInt(d.ReservationSerNo)) {\r\n if (roomAssignmentData.length > 2) {\r\n let index = roomAssignmentData.findIndex((z) => parseInt(z.ReservationSerNo) == parseInt(d.ReservationSerNo));\r\n if (index != temp.length) {\r\n setRoomAssignmentFilterListObj((prev)=>({...prev,SelectedReservationSerNo:parseInt(temp[index].ReservationSerNo)}))\r\n setIndex(temp.findIndex((y) => parseInt(y.ReservationSerNo) == parseInt(temp[index].ReservationSerNo)))\r\n }\r\n else {\r\n setRoomAssignmentFilterListObj((prev)=>({...prev,SelectedReservationSerNo:parseInt(temp[0].ReservationSerNo)}))\r\n setIndex(0);\r\n }\r\n }\r\n else {\r\n setRoomAssignmentFilterListObj((prev)=>({...prev,SelectedReservationSerNo:parseInt(temp[0].ReservationSerNo)}))\r\n setIndex(0);\r\n }\r\n }\r\n setRoomAssignmentData(temp);\r\n } else {\r\n alert(\"Atleast one Guest should be present\");\r\n }\r\n }\r\n\r\n const tempDirectRoomAssignment = (v, d) => {\r\n // if (isNaN(v)) {\r\n // alert(\"Invalid Input\");\r\n // }\r\n if (v === \"\" && d.RoomSerNo == 0) {\r\n alert(\"Room already unassigned\");\r\n }\r\n else if (v === \"\") {\r\n handleUserRights(\"15\").then(o => {\r\n if (o) {\r\n UnassignRoom(d);\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n }\r\n else {\r\n handlevalidateRoomForUpDowngrad(v);\r\n }\r\n }\r\n\r\n const handleUserRights = async (strRightsSerNo) => {\r\n if (strRightsSerNo != undefined) {\r\n const userRightObj = userRightsData.find((x) => x.RightsSerNo == strRightsSerNo);\r\n if (userRightObj != undefined) {\r\n if (userRightObj.IsApply != undefined) {\r\n if (userRightObj.IsApply) {\r\n return true;\r\n } else {\r\n await confirm({\r\n Message: `${userRightObj.Name} : ${userRightObj.PromptMessage}`,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n }\r\n };\r\n //#endRegion\r\n\r\n //#region Validation\r\n const swapValidation = () => {\r\n let isLengthVerified = false;\r\n let isRoomSerNoVerified = false;\r\n let isRoomTypeVerifed = false;\r\n let isReservationStatusInh = false;\r\n let isReservationStatusDot = false;\r\n let isReservationSerNo = false;\r\n let isReservationAndRoomSerNo = false;\r\n let isSameRoomSerNoverified = false;\r\n if (selectedRoomSwapCheckBoxData.length === 2) {\r\n isLengthVerified = true;\r\n if (\r\n selectedRoomSwapCheckBoxData[0].RoomSerNo == 0 &&\r\n selectedRoomSwapCheckBoxData[1].RoomSerNo == 0\r\n ) {\r\n isRoomSerNoVerified = false;\r\n } else {\r\n isRoomSerNoVerified = true;\r\n }\r\n if (selectedRoomSwapCheckBoxData[0].RoomSerNo == 0 && selectedRoomSwapCheckBoxData[1].ReservationSerNo == \"\" || selectedRoomSwapCheckBoxData[1].RoomSerNo == 0 && selectedRoomSwapCheckBoxData[0].ReservationSerNo == \"\") {\r\n isReservationAndRoomSerNo = false;\r\n }\r\n else {\r\n isReservationAndRoomSerNo = true;\r\n }\r\n if (\r\n selectedRoomSwapCheckBoxData[0].RoomTypeSerNo ===\r\n selectedRoomSwapCheckBoxData[1].RoomTypeSerNo\r\n ) {\r\n isRoomTypeVerifed = true;\r\n }\r\n if (\r\n selectedRoomSwapCheckBoxData[0].ReservationStatus == \"INH\" ||\r\n selectedRoomSwapCheckBoxData[1].ReservationStatus == \"INH\"\r\n ) {\r\n isReservationStatusInh = false;\r\n } else {\r\n isReservationStatusInh = true;\r\n }\r\n if (\r\n selectedRoomSwapCheckBoxData[0].ReservationStatus == \"DOT\" ||\r\n selectedRoomSwapCheckBoxData[1].ReservationStatus == \"DOT\"\r\n ) {\r\n isReservationStatusDot = false;\r\n } else {\r\n isReservationStatusDot = true;\r\n }\r\n if (\r\n selectedRoomSwapCheckBoxData[0].ReservationSerNo == \"\" &&\r\n selectedRoomSwapCheckBoxData[1].ReservationSerNo == \"\"\r\n ) {\r\n isReservationSerNo = false;\r\n } else {\r\n isReservationSerNo = true;\r\n\r\n }\r\n if (selectedRoomSwapCheckBoxData[0].RoomSerNo == selectedRoomSwapCheckBoxData[1].RoomSerNo ||\r\n selectedRoomSwapCheckBoxData[1].RoomSerNo == selectedRoomSwapCheckBoxData[0].RoomSerNo) {\r\n isSameRoomSerNoverified = false;\r\n }\r\n else {\r\n isSameRoomSerNoverified = true;\r\n }\r\n\r\n }\r\n if (\r\n isLengthVerified &&\r\n isRoomSerNoVerified &&\r\n isRoomTypeVerifed &&\r\n isReservationStatusInh &&\r\n isReservationStatusDot &&\r\n isReservationSerNo &&\r\n isReservationAndRoomSerNo &&\r\n isSameRoomSerNoverified\r\n ) {\r\n setIsSwapDisabled(false);\r\n } else {\r\n setIsSwapDisabled(true);\r\n }\r\n };\r\n\r\n const validateSwapUserRights = () => {\r\n handleUserRights(\"53\").then(d => {\r\n if (d) {\r\n handleSwapRoom();\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n }\r\n\r\n const validateUnAssignUserRights = (d) => {\r\n handleUserRights(\"54\").then(o => {\r\n if (o) {\r\n UnassignRoom(d)\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n }\r\n //#endRegion\r\n\r\n //#region UseEffect\r\n useEffect(() => {\r\n swapValidation();\r\n }, [selectedRoomSwapCheckBoxData.length]);\r\n\r\n\r\n useEffect(() => {\r\n handleRmFeaturesMatching();\r\n }, [rmFeatureMatchingDataByResSerNo, roomAssignGridObj.RoomSerNo, roomAssignObj.ReservationSerNo, rmFeatureMatchingDataByRoomNo])\r\n\r\n useEffect(() => {\r\n // if (filterRoomAssignmentFilterListData.length > 0 && rmFeatureMatchingDataByRoomNo.length > 0) {\r\n handleIncludeMatchingPrefCheckBox();\r\n // }\r\n }, [roomAssignmentFilterListData.length, rmFeatureMatchingDataByResSerNo, rmFeatureMatchingDataByRoomNo.length, IsIncludeMatchingPreferenceRoom])\r\n\r\n useEffect(() => {\r\n fillRoomAssigmentData();\r\n fillUserRights();\r\n cmbGetRoomTypeMaster(currUser.ClientSerNo, currUser.PropertySerNo).then(\r\n (d) => {\r\n setFillRoomTypeData(d.data);\r\n }\r\n );\r\n\r\n GetHKStatusMaster(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo)\r\n ).then((d) => {\r\n let defaultHKStatusData = [];\r\n d.data.map((e) => {\r\n defaultHKStatusData = [\r\n ...defaultHKStatusData,\r\n {\r\n key: e.HKStatusSerNo,\r\n value: e.Name,\r\n },\r\n ];\r\n });\r\n setFillHKStatusData(defaultHKStatusData);\r\n });\r\n\r\n GetFloorMaster(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo)\r\n ).then((d) => {\r\n let defaultFloorData = [];\r\n d.data.map((e) => {\r\n defaultFloorData = [\r\n ...defaultFloorData,\r\n {\r\n key: e.FloorSerNo,\r\n value: e.Name,\r\n },\r\n ];\r\n });\r\n setFillFloorData(defaultFloorData);\r\n });\r\n\r\n GetRoomFeature(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo)\r\n ).then((d) => {\r\n if (d.data != undefined) {\r\n d.data.RoomFeatures.map((o) => {\r\n o.checked = false;\r\n //fill bed type combo start\r\n if (o.RoomFeatureTypeSerNo == \"BDT\") {\r\n let obj = [{ key: 0, value: \"Select\" }];\r\n d.data.RoomFeatureValues.map((b) => {\r\n if (o.RoomFeatureSerNo == b.RoomFeatureSerNo) {\r\n obj.push({ key: b.key, value: b.Value });\r\n }\r\n });\r\n setFillBedTypeData(obj);\r\n }\r\n //fill bed type combo end\r\n\r\n //fill smoking type combo start\r\n if (o.RoomFeatureTypeSerNo == \"SMK\") {\r\n let obj = [{ key: 0, value: \"Select\" }];\r\n d.data.RoomFeatureValues.map((s) => {\r\n if (o.RoomFeatureSerNo == s.RoomFeatureSerNo) {\r\n obj.push({ key: s.key, value: s.Value });\r\n }\r\n setFillSmokingData(obj);\r\n });\r\n }\r\n //fill smoking type combo end\r\n });\r\n }\r\n setroomFeatureData(d.data);\r\n });\r\n\r\n GetPropertyParameterByKeys(currUser.ClientSerNo, currUser.PropertySerNo, propertyParameters).then(d => {\r\n let obj = d.data.find(x => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(d.data[0].value);\r\n }\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n fillRoomAssignmentFilter();\r\n let temp = selectedRoomSwapCheckBoxData;\r\n let ans = []\r\n temp.forEach((x) => {\r\n if (roomAssignmentData.some(o => o.ReservationSerNo === x.ReservationSerNo)) {\r\n ans.push(x)\r\n }\r\n })\r\n setSelectedRoomSwapCheckBoxData(ans);\r\n }, [\r\n roomAssignmentfilterListObj.SelectedReservationSerNo,\r\n IsIncludeAssignRoom,\r\n IsIncludeDueoutRoom,\r\n ]);\r\n\r\n\r\n useEffect(() => {\r\n let tempArr = [];\r\n let displayName = [];\r\n if (finalResponse.length > 0) {\r\n for (let i = 0; i < finalResponse.length; i++) {\r\n tempArr = tempArr + finalResponse[i].RoomFeatureValueSerNo + \",\";\r\n if (finalResponse[i].RoomFeatureTypeSerNo == \"BDT\") {\r\n setSelectedBedType({ key: finalResponse[i].key, value: finalResponse[i].Value });\r\n }\r\n if (finalResponse[i].RoomFeatureTypeSerNo == \"SMK\") {\r\n setSelectedSmokingType({ key: finalResponse[i].key, value: finalResponse[i].Value });\r\n }\r\n setRoomAssignmentFilterListObj((prev) => ({\r\n ...prev,\r\n RoomFeatureFilter: tempArr,\r\n }));\r\n if (finalResponse.length <= 2) {\r\n displayName.push(finalResponse[i].DisplayName);\r\n }\r\n }\r\n if (finalResponse.length > 2) {\r\n displayName.push(finalResponse[0].DisplayName, finalResponse[1].DisplayName + \"...\");\r\n }\r\n setSelectedRmFeature(displayName);\r\n }\r\n else {\r\n setSelectedRmFeature([]);\r\n setRoomAssignmentFilterListObj((prev) => ({\r\n ...prev,\r\n RoomFeatureFilter: \"\",\r\n }));\r\n setSelectedBedType({ key: 0, value: \"Select\" });\r\n setSelectedSmokingType({ key: 0, value: \"Select\" });\r\n }\r\n setSelectedRmFeatureData(finalResponse);\r\n }, [finalResponse]);\r\n // #endregion\r\n\r\n return (\r\n \r\n
\r\n
\r\n

Room Assignment (Arriving on {moment(roomAssignObj.ArrivalDate).format(\"ddd, D MMM\")})

\r\n
\r\n
\r\n
\r\n {showRoomAssignFilterModal ? (\r\n
\r\n
\r\n
\r\n
\r\n

Filters

\r\n
\r\n
\r\n handleResetFilters()}>\r\n Reset\r\n \r\n handleFilterApply()}>\r\n Apply\r\n \r\n \r\n setShowRoomAssignFilterModal(!showRoomAssignFilterModal)\r\n }\r\n >\r\n
\r\n
\r\n
\r\n
\r\n {\" \"}\r\n {/* filter-elements-section */}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n let temp = \"\";\r\n setSelectedRoomType(item);\r\n if (item.length > 0) {\r\n item.map((d) => {\r\n temp = temp + d + \",\";\r\n setRoomAssignmentFilterListObj((prev) => ({\r\n ...prev,\r\n RoomTypeFilter: temp,\r\n }));\r\n });\r\n } else {\r\n setRoomAssignmentFilterListObj((prev) => ({\r\n ...prev,\r\n RoomTypeFilter: null,\r\n }));\r\n }\r\n }}\r\n >\r\n {\r\n setRoomAssignmentFilterListObj((prev) => ({\r\n ...prev,\r\n RoomTypeFilter: null,\r\n }));\r\n setSelectedRoomType([]);\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n let temp = \"\";\r\n setSelectedHKStatus(item);\r\n if (item.length > 0) {\r\n item.map((d) => {\r\n temp = temp + d + \",\";\r\n setRoomAssignmentFilterListObj((prev) => ({\r\n ...prev,\r\n HKStatusFilter: temp,\r\n }));\r\n });\r\n } else {\r\n setRoomAssignmentFilterListObj((prev) => ({\r\n ...prev,\r\n HKStatusFilter: null,\r\n }));\r\n }\r\n }}\r\n >\r\n {\r\n setRoomAssignmentFilterListObj((prev) => ({\r\n ...prev,\r\n HKStatusFilter: null,\r\n }));\r\n setSelectedHKStatus([]);\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n setShowRoomFeaturesModal(!showRoomFeaturesModal)\r\n }\r\n >\r\n Room Features\r\n \r\n {\r\n setShowRoomFeaturesModal(!showRoomFeaturesModal);\r\n }}\r\n >\r\n {/* */}\r\n \r\n {\r\n setRoomAssignmentFilterListObj((prev) => ({\r\n ...prev,\r\n RoomFeatureFilter: \"\",\r\n }));\r\n setSelectedRmFeatureData([]);\r\n setSelectedRmFeature([]);\r\n setSelectedBedType({ key: 0 });\r\n setSelectedSmokingType({ key: 0 });\r\n setFinalResponse([])\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n let temp = \"\";\r\n setSelectedFloor(item);\r\n if (item.length > 0) {\r\n item.map((d) => {\r\n temp = temp + d + \",\";\r\n setRoomAssignmentFilterListObj((prev) => ({\r\n ...prev,\r\n FloorFilter: temp,\r\n }));\r\n });\r\n } else {\r\n setRoomAssignmentFilterListObj((prev) => ({\r\n ...prev,\r\n FloorFilter: null,\r\n }));\r\n }\r\n }}\r\n >\r\n {\r\n setRoomAssignmentFilterListObj((prev) => ({\r\n ...prev,\r\n FloorFilter: null,\r\n }));\r\n setSelectedFloor([]);\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n handleSmokingTypeChange(item);\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n handleBedTypeChange(item);\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n <>\r\n {roomFeatureData.RoomFeatures.map((o) =>\r\n o.RoomFeatureTypeSerNo == \"INCN\" ? (\r\n
\r\n
\r\n handleFilterCheckBoxClick(e)}\r\n checked={\r\n finalResponse.filter(\r\n (x) =>\r\n x.RoomFeatureSerNo == o.RoomFeatureSerNo\r\n ).length > 0\r\n ? true\r\n : false\r\n }\r\n >\r\n Connecting Rooms Only\r\n \r\n
\r\n
\r\n ) : o.RoomFeatureTypeSerNo == \"ADJ\" ? (\r\n
\r\n
\r\n handleFilterCheckBoxClick(e)}\r\n checked={\r\n finalResponse.filter(\r\n (x) =>\r\n x.RoomFeatureSerNo == o.RoomFeatureSerNo\r\n ).length > 0\r\n ? true\r\n : false\r\n }\r\n >\r\n Adjoining Rooms Only\r\n \r\n
\r\n
\r\n ) : o.RoomFeatureTypeSerNo == \"ARM\" ? (\r\n
\r\n
\r\n handleFilterCheckBoxClick(e)}\r\n className=\"mrgn-tp15\"\r\n checked={\r\n finalResponse.filter(\r\n (x) =>\r\n x.RoomFeatureSerNo == o.RoomFeatureSerNo\r\n ).length > 0\r\n ? true\r\n : false\r\n }\r\n >\r\n Accessible\r\n \r\n
\r\n
\r\n ) : (\r\n <>\r\n )\r\n )}\r\n \r\n
\r\n
\r\n {\r\n if (ischecked === true) {\r\n setIsIncludeOccupiedRoom(true);\r\n setRoomAssignmentFilterListObj((prev) => ({\r\n ...prev,\r\n IsIncludeOccupiedRoom: ischecked,\r\n }));\r\n } else {\r\n setIsIncludeOccupiedRoom(false);\r\n setRoomAssignmentFilterListObj((prev) => ({\r\n ...prev,\r\n IsIncludeOccupiedRoom: null,\r\n }));\r\n }\r\n }}\r\n >\r\n Include Occupied Rooms\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n if (ischecked === true) {\r\n setIsIncludeFutureRoom(true);\r\n setRoomAssignmentFilterListObj((prev) => ({\r\n ...prev,\r\n IsIncludeFutureRoom: ischecked,\r\n }));\r\n } else {\r\n setIsIncludeFutureRoom(false);\r\n setRoomAssignmentFilterListObj((prev) => ({\r\n ...prev,\r\n IsIncludeFutureRoom: null,\r\n }));\r\n }\r\n }}\r\n >\r\n \r\n Include Future Arrival Rooms (i)\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ) : null}\r\n\r\n
\r\n
\r\n
\r\n
    \r\n {roomAssignmentData.map((d, index) => {\r\n return (\r\n {\r\n m.stopPropagation();\r\n if (m.target.localName == \"button\") {\r\n if (m.target.attributes[\"id\"].value == \"btnRemoveRes\") { }\r\n else {\r\n handleRoomAssignClick(d);\r\n console.log(d);\r\n setRoomAssignObj(d);\r\n setInputRmObj((prev) => ({ ...prev, ReservationSerNo: parseInt(d.ReservationSerNo), ArrivalDate: d.ArrivalDate }))\r\n setIndex(index);\r\n }\r\n }\r\n else {\r\n handleRoomAssignClick(d);\r\n console.log(d);\r\n setRoomAssignObj(d);\r\n setInputRmObj((prev) => ({ ...prev, ReservationSerNo: parseInt(d.ReservationSerNo), ArrivalDate: d.ArrivalDate }))\r\n setIndex(index);\r\n }\r\n }}\r\n //className={`${index === ind ? \"active\" : \"\"}${d.IsSharer ? \"disabled\" : \"\"}`}\r\n\r\n >\r\n
    \r\n
    \r\n \r\n handleRoomSwapCheckBox(isChecked, d)\r\n }\r\n className=\"d-inline-block\"\r\n >\r\n {d.RoomTypeCode} \r\n {d.RoomTypeToChargeSequence < d.RoomTypeSequence ? (\r\n \r\n ) : d.RoomTypeToChargeSequence > d.RoomTypeSequence ? (\r\n \r\n ) : (\r\n <>\r\n )}\r\n {\r\n d.HKStatusCode == \"\" || d.HKStatusCode == null || d.HKStatusCode == undefined ?\r\n null :\r\n {d.HKStatusCode}\r\n }\r\n {\r\n d.IsSharer ?\r\n <>\r\n \r\n \r\n :\r\n <>\r\n \r\n \r\n }\r\n
    \r\n
    \r\n {/* */}\r\n {\r\n d.ActualArrivalTime == null ?\r\n
    \r\n No Info\r\n
    \r\n :\r\n
    \r\n {d.ActualArrivalTime}\r\n
    \r\n }\r\n {/* */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setOldRoomNo(v.target.value)\r\n }}\r\n onBlur={(event) => {\r\n tempDirectRoomAssignment(event.target.value, d)\r\n\r\n // if (event.target.value != \"\") {\r\n // //tempDirectRoomAssignment(event.target.value, d)\r\n // let temp = roomAssignmentData;\r\n // temp.forEach((x) => {\r\n // if (x.ReservationSerNo == d.ReservationSerNo) {\r\n // if (oldRoomNo === \"\") {\r\n // x.RoomNo = \"\";\r\n // }\r\n // else {\r\n // x.RoomNo = parseInt(oldRoomNo);\r\n // }\r\n // }\r\n // })\r\n // }\r\n }}\r\n />\r\n
    \r\n {d.GuestName}\r\n
    \r\n
    \r\n {\r\n handleRemoveGuestTile(d);\r\n }}\r\n >\r\n
    \r\n \r\n );\r\n })}\r\n
\r\n
\r\n
\r\n
\r\n Room Features ({rmMatchedArr.filter((x) => x.Match == 0).length}/{rmMatchedArr.length})\r\n \r\n \r\n \r\n
\r\n
\r\n
    \r\n {\r\n rmMatchedArr.map((d) => {\r\n return (\r\n\r\n d.Match === 0 ?\r\n
  • \r\n {d.DisplayName}\r\n
  • \r\n :\r\n d.Match === 1 ?\r\n
  • \r\n {d.DisplayName}\r\n
  • \r\n :\r\n d.Match === 2 ?\r\n
  • \r\n {d.DisplayName}\r\n
  • \r\n :\r\n <>\r\n )\r\n })\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n setSearchString(\"\");\r\n setFilterRoomAssignmentFilterListData(storeSearchArray);\r\n }}\r\n >\r\n
\r\n
\r\n {/* handleSort(e)}\r\n label=\"Multiple Sort\"\r\n //searchable={[\"Search\", \"No matching property\"]}\r\n className=\"button-plain-dd sort-btn d-inline-block\"\r\n buttonLayout={true}\r\n > */}\r\n\r\n \r\n setShowRoomAssignFilterModal(!showRoomAssignFilterModal)\r\n }\r\n >\r\n \r\n
\r\n {isSwapDisabled ? (\r\n \r\n Swap\r\n \r\n ) : (\r\n validateSwapUserRights()}\r\n >\r\n Swap\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n {\r\n if (ischecked) {\r\n setIsIncludeAssignRoom(ischecked);\r\n setRoomAssignmentFilterListObj((prev) => ({\r\n ...prev,\r\n IsIncludeAssignRoom: ischecked,\r\n }));\r\n } else {\r\n setIsIncludeAssignRoom(ischecked);\r\n setRoomAssignmentFilterListObj((prev) => ({\r\n ...prev,\r\n IsIncludeAssignRoom: null,\r\n }));\r\n }\r\n }}\r\n >\r\n Include Assigned Rooms\r\n \r\n {\r\n if (ischecked === true) {\r\n setIsIncludeDueoutRoom(true);\r\n setRoomAssignmentFilterListObj((prev) => ({\r\n ...prev,\r\n IsIncludeDueoutRoom: ischecked,\r\n }));\r\n } else {\r\n setIsIncludeDueoutRoom(false);\r\n setRoomAssignmentFilterListObj((prev) => ({\r\n ...prev,\r\n IsIncludeDueoutRoom: null,\r\n }));\r\n }\r\n }}\r\n >\r\n Include Due out Rooms\r\n \r\n {\r\n if (ischecked === true) {\r\n setIsIncludeMatchingPreferenceRoom(true);\r\n setRoomAssignmentFilterListObj((prev) => ({\r\n ...prev,\r\n IsIncludeMatchingPreferenceRoom: ischecked,\r\n }));\r\n }\r\n if (ischecked === false) {\r\n setIsIncludeMatchingPreferenceRoom(false);\r\n setRoomAssignmentFilterListObj((prev) => ({\r\n ...prev,\r\n IsIncludeMatchingPreferenceRoom: null,\r\n }));\r\n }\r\n\r\n }}\r\n >\r\n Include Rooms with Matching Preference\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filterRoomAssignmentFilterListData.map((d, index) => {\r\n return (\r\n {\r\n setRoomAssignGridObj(d);\r\n console.log(d)\r\n setRoomIndex(index)\r\n }}\r\n className={index == roomIndex ? \"selected\" : \"\"}\r\n >\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n
Room No.\r\n {/* \r\n \r\n */}\r\n Room Type\r\n HK StatusArv. TimeDept. TimeRes. statusAssigned toAction
\r\n {\r\n handleRoomSwapCheckBox(isChecked, d);\r\n }}\r\n >\r\n \r\n {d.Preference == \"P\" ? (\r\n
\r\n ) : d.Preference == \"F\" ? (\r\n
\r\n ) : d.Preference == \"N\" ? (\r\n
\r\n ) : (\r\n <>\r\n )}\r\n
\r\n {d.RoomNo}\r\n \r\n {d.RoomTypeName}{\" \"}\r\n {roomAssignObj.RoomTypeToChargeSequence < d.RoomTypeSequence ? (\r\n \r\n ) : roomAssignObj.RoomTypeToChargeSequence > d.RoomTypeSequence ? (\r\n \r\n ) : (\r\n <>\r\n )}\r\n {d.HKStatusCode}{d.ArrivalTime}{d.DepartureTime} { setToolTipObj(d) }}>\r\n {d.ReservationStatus === \"\" ? (\r\n <>\r\n ) : (\r\n \r\n )}\r\n {d.ReservationStatus}\r\n {d.GuestName}\r\n {d.Assignable === true ? (\r\n \r\n {\r\n handleRoomUpDwnGrade(d, \"Btn\").then((z) => {\r\n if (z == \"Upgrd\" || z == \"Dwngrd\") {\r\n if (item.key === \"Assign\") {\r\n setAssignFlag(true);\r\n }\r\n else if (item.key === \"Assign & Check In\") {\r\n setCheckIn(true);\r\n }\r\n }\r\n else {\r\n if (z == \"EqlSeq\") {\r\n handleUserRights(\"50\").then(e => {\r\n if (e) {\r\n if (item.key === \"Assign\") {\r\n assignRoom(parseInt(d.RoomSerNo));\r\n }\r\n if (item.key === \"Assign & Check In\") {\r\n handleAssignandCheckIn(d, parseInt(d.RoomSerNo));\r\n }\r\n }\r\n else {\r\n }\r\n })\r\n }\r\n }\r\n })\r\n\r\n }}\r\n >\r\n Assign\r\n \r\n \r\n ) : (\r\n\r\n \r\n Assign\r\n \r\n )}\r\n\r\n {d.UnAssignable === true ?\r\n (\r\n validateUnAssignUserRights(d)}>\r\n Un-Assign\r\n \r\n )\r\n :\r\n (\r\n \r\n Un-Assign\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {\r\n toolTipObj.ReservationStatus == \"DIN\" ?\r\n (\r\n { setToolTipObj(\"\") }}>\r\n )\r\n :\r\n toolTipObj.ReservationStatus == \"DOT\" ?\r\n (\r\n { setToolTipObj(\"\") }} >\r\n )\r\n :\r\n toolTipObj.ReservationStatus == \"INH\" ?\r\n (\r\n { setToolTipObj(\"\") }} >\r\n )\r\n :\r\n <>\r\n }\r\n {showRoomFeaturesModal ? (\r\n setShowRoomFeaturesModal(false)}\r\n handleOnSelect={(v) => {\r\n setSelectedRmFeatureData(v);\r\n setFinalResponse(v);\r\n let tempValueSerNo = [];\r\n let displayName = [];\r\n for (let i = 0; i < v.length; i++) {\r\n tempValueSerNo =\r\n tempValueSerNo + v[i].RoomFeatureValueSerNo + \",\";\r\n if (v.length <= 2) {\r\n displayName.push(v[i].DisplayName);\r\n }\r\n }\r\n\r\n if (v.length > 2) {\r\n displayName.push(v[0].DisplayName, v[1].DisplayName + \"...\");\r\n }\r\n setSelectedRmFeature(displayName);\r\n setShowRoomFeaturesModal(false);\r\n }}\r\n >\r\n ) : (\r\n <>\r\n )}\r\n {\r\n showUpgradeReasonModalPopup ?\r\n {\r\n setShowUpgradeReasonModalPopup(false);\r\n }}\r\n OnSelection={(reason, reasonserno) => {\r\n let obj;\r\n if (reasonserno == \"\" && reason == \"\") {\r\n alert(\"Please select a reason.\")\r\n }\r\n else if (reasonserno != \"\" && reason == \"\") {\r\n alert(\"Please select a reason.\")\r\n }\r\n else if (reasonserno == \"\" && reason != \"\") {\r\n obj = { UpgradeReasonSerNo: 0, UpgradeReason: reason }\r\n setShowUpgradeReasonModalPopup(false);\r\n }\r\n else {\r\n obj = { UpgradeReasonSerNo: parseInt(reasonserno), UpgradeReason: reason }\r\n setShowUpgradeReasonModalPopup(false);\r\n }\r\n console.log(obj);\r\n if (obj != undefined && assignFlag == true) {\r\n handleUserRights(\"50\").then(e => {\r\n if (e) {\r\n if (modeOfAssign == \"Btn\") {\r\n assignRoom(parseInt(roomAssignGridObj.RoomSerNo), obj)\r\n }\r\n else if (modeOfAssign == \"Direct\") {\r\n assignRoom(roomNo, obj);\r\n }\r\n }\r\n else {\r\n }\r\n })\r\n }\r\n else if (obj != undefined && checkIn == true) {\r\n handleUserRights(\"50\").then(e => {\r\n if (e) {\r\n handleAssignandCheckIn(roomAssignGridObj, parseInt(roomAssignGridObj.RoomSerNo), obj);\r\n }\r\n else {\r\n }\r\n })\r\n }\r\n else {\r\n console.log(\"Nothing!!!\")\r\n }\r\n }}\r\n >\r\n \r\n :\r\n null\r\n }\r\n \r\n\r\n );\r\n}\r\n","export default __webpack_public_path__ + \"static/media/action-dwn-arrow.51079c5c.svg\";","import axios from \"axios\";\r\n\r\n// Unit Master\r\nexport const GetUnitMaster = (clientSerNo) => {\r\n const apiUrl = \"/UnitMaster/manage-inv-unit/\" + clientSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddEditUnitMaster = (para) => {\r\n const apiUrl = \"/UnitMaster/manage-inv-unit\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\n// Inv Department Master\r\nexport const GetInvDepartmentMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/InvDepartmentMaster/manage-inv-department/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddEditInvDepartmentMaster = (para) => {\r\n const apiUrl = \"/InvDepartmentMaster/manage-inv-department\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//#region Inv Store Master \r\nexport const GetInvStoreMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/InvStoreMaster/manage-inv-store/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddEditInvStoreMaster = (para) => {\r\n const apiUrl = \"/InvStoreMaster/manage-inv-store\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const GetInvStoreUserMaster = (ClientSerNo) => {\r\n const apiUrl = \"/InvStoreMaster/manage-inv-store-user/\" + ClientSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddInvStoreUserMaster = (para) => {\r\n const apiUrl = \"/InvStoreMaster/manage-inv-store-user\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//#endregion\r\nexport const GetGSTUnitMaster = () => {\r\n const apiUrl = \"/UnitMaster/manage-gst-unit\";\r\n return axios.get(apiUrl);\r\n};\r\n//#region Inv-Category-Master\r\nexport const AddEditInvCategoryMaster = (para) => {\r\n const apiUrl = \"/InvCategoryMaster/manage-inv-category\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const GetInvCategoryMaster = (ClientSerNo) => {\r\n const apiUrl = \"/InvCategoryMaster/manage-inv-category/\" + ClientSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion\r\n//#region Inv-Sub-Category-Master\r\nexport const AddEditInvSubCategoryMaster = (para) => {\r\n const apiUrl = \"/InvCategoryMaster/manage-inv-sub-category\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const GetInvSubCategoryMaster = (ClientSerNo, CategorySerNo) => {\r\n const apiUrl = \"/InvCategoryMaster/manage-inv-sub-category/\" + ClientSerNo + \"/\" + CategorySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion\r\nexport const GetInvVenderMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/InvVenderMaster/manage-inv-vender/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddEditInvVenderMaster = (para) => {\r\n const apiUrl = \"/InvVenderMaster/manage-inv-vender\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const GetInventoryItemFromCatgSubCatg = (ClientSerNo, PropertySerNo, SourceSerNo, DestSerNo, SourceType, DestType, CatgSerNo, SubCatgSerNo) => {\r\n const apiUrl = \"/InventoryManagement/manage-inventory-item-from-catg-subcatg/\"\r\n + ClientSerNo + \"/\" + PropertySerNo + \"/\" + SourceSerNo + \"/\"\r\n + DestSerNo + \"/\" + SourceType + \"/\" + DestType + \"/\"\r\n + CatgSerNo + \"/\" + SubCatgSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetInvVenderMasterDetail = (ClientSerNo, PropertySerNo, VenderSerNo) => {\r\n const apiUrl = \"/InvVenderMaster/manage-inv-venderdetail/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + VenderSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n//#region Movement\r\nexport const GetMovementForBasicInventoryTransaction = (ClientSerNo) => {\r\n const apiUrl = \"/MovementMaster/manage-movement-master/\" + ClientSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\n//#region InvItemClassMaster\r\nexport const GetInvItemClassMaster = (ClientSerNo) => {\r\n const apiUrl = \"/InvItemClassMaster/manage-inv-item-class/\" + ClientSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddEditInvItemClassMaster = (para) => {\r\n const apiUrl = \"/InvItemClassMaster/manage-inv-item-class\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//#endregion\r\n//#region InvItemClassCategoryMapping\r\nexport const GetInvItemClassCategoryMapping = (ClientSerNo, ItemClassSerNo) => {\r\n const apiUrl = \"/InvItemClassMaster/manage-inv-item-class-category-mapping/\" + ClientSerNo + \"/\" + ItemClassSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddDeleteInvItemClassCategoryMapping = (para) => {\r\n const apiUrl = \"/InvItemClassMaster/manage-inv-item-class-category-mapping\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//#endregion\r\n\r\n//#endregion\r\n//#region Department Request Header\r\nexport const GetRequestHeader = (ClientSerNo, PropertySerNo, SerNo) => {\r\n const apiUrl = \"/InventoryManagement/manage-request/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + SerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddEditRequestHeader = (para) => {\r\n const apiUrl = \"/InventoryManagement/manage-request\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//#endregion\r\nexport const ApproveStoreRequisition = (para) => {\r\n const apiUrl = \"/StoreRequest/manage-inventory-approve-requisition-item\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const GetItemLastRequestAndPurchaseDetail = (ClientSerNo, PropertySerNo, SerNo, RmitSerNo) => {\r\n const apiUrl = \"/InventoryManagement/manage-item-last-request-purchase-detail/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + SerNo + '/'\r\n + RmitSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetMaterialTransactionList = (para) => {\r\n const apiUrl = \"/InventoryManagement/manage-material-transaction-list\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const ApprovePurchaseRequisition = (para) => {\r\n const apiUrl = \"/PurchaseRequest/manage-inventory-approve-requisition-item\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\n//#region Item Request Services\r\nexport const GetItemLastPurchasePrice = (ClientSerNo, PropertySerNo, SerNo, RmitSerNo) => {\r\n const apiUrl = \"/InventoryManagement/manage-item-last-purchase-price/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + SerNo + '/'\r\n + RmitSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetRequisitionItemList = (ClientSerNo, PropertySerNo, SerNo) => {\r\n const apiUrl = \"/InventoryManagement/manage-inventory-requisition-item/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + SerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const SavePurchaseRequisitionItem = (para) => {\r\n const apiUrl = \"/PurchaseRequest/manage-inventory-purchase-requisition-item\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const SaveStoreRequisitionItem = (para) => {\r\n const apiUrl = \"/StoreRequest/manage-inventory-requisition-item\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const GetCurrentStock = (ClientSerNo, PropertySerNo, SourceSerNo, RmitSerNo) => {\r\n const apiUrl = \"/InventoryManagement/manage-item-current-stock/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + SourceSerNo + '/'\r\n + RmitSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion\r\n//#region Inv report\r\nexport const GetVenderDetailReport = (ClientSerNo, PropertySerNo, VenderSerNo) => {\r\n const apiUrl = \"/InvReport/manage-vender-detail-report/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + VenderSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetItemListReport = (ClientSerNo, PropertySerNo, SourceSerNo, Stockable, SourceType) => {\r\n const apiUrl = \"/InvReport/manage-item-list-report/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + SourceSerNo + \"/\" + Stockable + \"/\" + SourceType;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetStockLevelReport = (ClientSerNo, PropertySerNo, StoreSerNo) => {\r\n const apiUrl = \"/InvReport/manage-stock-level-report/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + StoreSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetNonMovingItemReport = (ClientSerNo,PropertySerNo,StoreSerNo,UserID,BusinessDate,IsMonthYear,NoOfMonthDays,ItemCategorySerNo,ItemSubCategorySerNo) => {\r\n const apiUrl = \"/InvReport/manage-inv-non-moving-item-report/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + StoreSerNo + \"/\" + UserID + \"/\" + BusinessDate + \"/\" + IsMonthYear + \"/\" + NoOfMonthDays + \"/\" + ItemCategorySerNo + \"/\" + ItemSubCategorySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetInvMaterialMovementReport = (ClientSerNo,PropertySerNo,MovementID,StartDate,EndDate,SourceSerNo,DestSerNo,CategorySerNo,SubCategorySerNo) => {\r\n const apiUrl = \"/InvReport/manage-material-movement-report/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + MovementID + \"/\" + StartDate + \"/\" + EndDate + \"/\" + SourceSerNo + \"/\" + DestSerNo + \"/\" + CategorySerNo + \"/\" + SubCategorySerNo;\r\n return axios.get(apiUrl);\r\n\r\n}\r\n//#endregion\r\n\r\n//#region Issue Purchase Transaction\r\nexport const GetIssueTransactionList = (ClientSerNo, PropertySerNo, SerNo, Mode) => {\r\n const apiUrl = \"/StoreRequest/manage-issue-transaction-list/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + SerNo + '/'\r\n + Mode;\r\n return axios.get(apiUrl);\r\n};\r\nexport const IssueStoreRequisition = (para) => {\r\n const apiUrl = \"/StoreRequest/manage-issue-transaction\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const ProcessPurchaseRequest = (para) => {\r\n const apiUrl = '/PurchaseRequest/manage-purchase-transaction';\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const UnApproveRequest = (ClientSerNo, PropertySerNo, SerNo) => {\r\n const apiUrl = \"/InventoryManagement/manage-unapprove-request/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + SerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const DeleteInventoryTransaction = (ClientSerNo, PropertySerNo, SerNo) => {\r\n const apiUrl = \"/InventoryManagement/delete-inventory-transaction/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + SerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetInvMonthClosing = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/InventoryManagement/manage-inventory-month-closing/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetInvTransactionSlip = (ClientSerNo, PropertySerNo, SerNo) => {\r\n const apiUrl = \"/InvReport/manage-inv-transaction-slip/\"\r\n + ClientSerNo + \"/\"\r\n + PropertySerNo + \"/\"\r\n + SerNo;\r\n return axios.get(apiUrl);\r\n}\r\n//#endregion\r\n\r\n//#region raw material charge master\r\nexport const GetRawMaterialChargeMaster = (ClientSerNo, PropertySerNo, RmitSerNo) => {\r\n const apiUrl = \"/RawMaterialMaster/manage-raw-material-charge-master/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + RmitSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const AddEditRawMaterialChargeMaster = (para) => {\r\n const apiUrl = \"/RawMaterialMaster/manage-raw-material-charge-master\";\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion\r\n\r\n//#region Item Store Master\r\nexport const GetItemStoreMaster = (ClientSerNo, PropertySerNo, RmitSerNo) => {\r\n const apiUrl = \"/RawMaterialMaster/manage-item-store-master/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + RmitSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditItemStoreMaster = (para) => {\r\n const apiUrl = \"/RawMaterialMaster/manage-item-store-master\";\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion\r\n//#region Item Vender \r\nexport const GetItemVenderMaster = (ClientSerNo, PropertySerNo, RmitSerNo) => {\r\n const apiUrl = \"/RawMaterialMaster/manage-item-vender-master/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + RmitSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const AddEditItemVenderMaster = (para) => {\r\n const apiUrl = \"/RawMaterialMaster/manage-item-vender-master\";\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion\r\n//RawMaterial Api\r\nexport const GetRawMaterialMaster = (ClientSerNo) => {\r\n const apiUrl = \"/RawMaterialMaster/manage-raw-material-master/\" + ClientSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetRawMaterialMasterDetail = (ClientSerNo, RmitSerNo) => {\r\n const apiUrl = \"/RawMaterialMaster/manage-raw-material-masterdetail/\" + ClientSerNo + \"/\" + RmitSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const AddEditRawMaterialMaster = (para) => {\r\n const apiUrl = \"/RawMaterialMaster/manage-raw-material-master\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//#region Item Department Services\r\nexport const GetItemDepartmentMaster = (ClientSerNo, PropertySerNo, RmitSerNo) => {\r\n const apiUrl = \"/RawMaterialMaster/manage-item-department-master/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + RmitSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const AddEditItemDepartmentMaster = (para) => {\r\n const apiUrl = \"/RawMaterialMaster/manage-item-department-master\";\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\n//#endregion\r\n\r\n//#region Other charges & Tax\r\n\r\nexport const GetInvOtherCharges = (ClientSerNo, PropertySerNo, SerNo) => {\r\n const apiUrl = \"/InventoryManagement/manage-inventory-other-charges/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + SerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const AddEditInvOtherCharges = (para) => {\r\n const apiUrl = \"/InventoryManagement/manage-inventory-other-charges\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const GetInvTransactionTaxSummary = (ClientSerNo, PropertySerNo, SerNo) => {\r\n const apiUrl = \"/InventoryManagement/manage-inventory-tax-summary/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + SerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetInvTransactionTaxBreakup = (ClientSerNo, PropertySerNo, SerNo) => {\r\n const apiUrl = \"/InventoryManagement/manage-inventory-tax-breakup/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + SerNo;\r\n return axios.get(apiUrl);\r\n}\r\n//#endregion\r\n//#region MMS Day Closing Service\r\nexport const ProcessInvNightAudit = (ClientSerNo, PropertySerNo, CurrentInvBusinessDate, UserID, PcName, IpAddress) => {\r\n const apiUrl = \"/InvNightAudit/manage-process-inv-night-audit/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + CurrentInvBusinessDate + '/'\r\n + UserID + '/'\r\n + PcName + '/'\r\n + IpAddress;\r\n return axios.get(apiUrl);\r\n}\r\nexport const ValidateInvNightAuditAtMonthLastDate = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/InvNightAudit/manage-validate-inv-night-audit-at-month-last-date/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n//#endregion//#endregion\r\nexport const GetInvStockValuationReport = (ClientSerNo, PropertySerNo,StoreSerNo, UserID, StockValationDate) => {\r\n const apiUrl = \"/InvReport/manage-stock-valuation-report/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + StoreSerNo + '/'\r\n + UserID + '/'\r\n + StockValationDate;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetDayCloseLogReport = (ClientSerNo, PropertySerNo,FromDate,ToDate) => {\r\n const apiUrl = \"/InvReport/manage-inv-day-close-log/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + FromDate + '/'\r\n + ToDate;\r\n return axios.get(apiUrl);\r\n};","export default __webpack_public_path__ + \"static/media/innkeypmslogo.59f462d7.png\";","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n InnCheckbox,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnSingleDateSelection\r\n} from \"../../../../component\";\r\nimport {\r\n IndiAgent, IndiCompany, IndiAdultChild, IndiArrival, IndiDailyRate, IndiGuestName, IndiInclusion,\r\n IndiPackege, IndiRateCode, IndiReservationType, IndiRoomRate, IndiRoomType\r\n} from \"../indicators\";\r\nimport {\r\n GetReservationTransaction, GetReservationWindowRoutingData, GetTransactionMaster,\r\n AddReservationTransaction\r\n} from \"../../../../services/reservationService\";\r\nimport { GetReservationWindowRoutingList, ManageSettleAndPrint, PostAddCheckoutTransaction } from \"../../../../services/reservationCashieringService\";\r\nimport { GetPropertyParameterByKeys } from \"../../../../services/reservationService\";\r\nimport { GetReasonMaster } from \"../../../../services/generalService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useConfirm } from \"../../../../component\";\r\nimport moment from \"moment\";\r\nexport function PaymentModalPopup(props) {\r\n const currUser = useSelector(currentUser);\r\n\r\n const { confirm } = useConfirm();\r\n\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const [reservationInfoData, setReservationInfoData] = useState({});\r\n const reservationObj = {\r\n // ClientSerNo: parseInt(currUser.ClientSerNo),\r\n // PropertySerNo: parseInt(currUser.PropertySerNo),\r\n // ReservationSerNo: location.state.reservationSerNo\r\n ClientSerNo: 1201,\r\n PropertySerNo: 1,\r\n ReservationSerNo: 10\r\n };\r\n const [paymodeTypeList, setPaymodeTypeList] = useState([]);\r\n const [transactionChargeList, setTransactionChargeList] = useState([]);\r\n const [cmbPaymentMode, setCmbPaymentMode] = useState([]);\r\n const [cmbWindow, setCmbWindow] = useState([]);\r\n const [cmbReason, setCmbReason] = useState([]);\r\n const [paymentMethodType, setPaymentMethodType] = useState(\"\");\r\n const [transactionMode, setTransactionMode] = useState(\"Payment\");//Payment , Refund, PaymentCorrection\r\n const [disabledAmountText, setdDisabledAmountText] = useState(false);\r\n const [disableCmbPaymentMode, setDisableCmbPaymentMode] = useState(false);\r\n const [disableCmbCharge, setDisableCmbCharge] = useState(false);\r\n const [disableCmbWindow, setDisableCmbWindow] = useState(false);\r\n const [depositCorrectionAmount, setDepositCorrectionAmount] = useState(0);\r\n const [IsTaxCalcOnAdvance, setIsTaxCalcOnAdvance] = useState(false);\r\n // CCNo change\r\n const [creditCardNo, setCreditCardNo] = useState(\"\");\r\n\r\n const [reservationTransactionObj, setReservationTransactionObj] = useState({\r\n ClientSerNo: props.para.ClientSerNo,\r\n PropertySerNo: props.para.PropertySerNo,\r\n ReservationSerNo: props.para.ReservationSerNo,\r\n OrgReservationSerNo: props.para.ReservationSerNo,\r\n TransactionType: \"\",\r\n Amount: 0,\r\n TransactionDate: \"\",\r\n DocumentNo: \"\",\r\n TransactionSerNo: 0,\r\n PaymentMethodType: \"\",\r\n WindowSerNo: props.para?.WindowSerNo,\r\n CCNo: \"\",\r\n CCHolderName: \"\",\r\n CCExpiryDate: \"\",\r\n PanCardNo: \"\",\r\n PanHolderName: \"\",\r\n ChequeNo: \"\",\r\n BankName: \"\",\r\n BranchName: \"\",\r\n NameOfAccount: \"\",\r\n PaymentReceivedDate: moment(new Date()).format('DD-MMM-YYYY'),\r\n UPIId: \"\",\r\n Remarks: \"\",\r\n TransactionName: \"\",\r\n AssoTransactionSerNo: 0,\r\n RefundRemarks: \"\",\r\n CorrectionRemarks: \"\",\r\n ReceiptNo: \"\",\r\n RefReservationTransactionSerNo: 0,\r\n PaymentType: \"P\",\r\n IsPaidOut: false,\r\n ReasonSerNo: 0,\r\n IsTaxInclusive: true\r\n });\r\n const [transactionValidationObj, setTransactionValidationObj] = useState({\r\n Amount: \"\",\r\n DocumentNo: \"\",\r\n TransactionSerNo: \"\",\r\n CCNo: \"\",\r\n CCHolderName: \"\",\r\n CCExpiryDate: \"\",\r\n PanCardNo: \"\",\r\n PanHolderName: \"\",\r\n ChequeNo: \"\",\r\n BankName: \"\",\r\n BranchName: \"\",\r\n NameOfAccount: \"\",\r\n PaymentReceivedDate: moment(new Date()).format('DD-MMM-YYYY'),\r\n UPIId: \"\",\r\n RefundRemarks: \"\",\r\n CorrectionRemarks: \"\",\r\n CorrectionAmount: \"\",\r\n ReasonSerNo: \"\"\r\n });\r\n\r\n // for checkout\r\n const [windowList, setWindowList] = useState(\"\");\r\n //\r\n\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n\r\n useEffect(() => {\r\n console.log(\"props \", props);\r\n getTransactionMasterData();\r\n getReservationwindowRoutingList();\r\n setTransactionMode(props.para.TransactionMode);\r\n fillPropertyParameterData();\r\n\r\n setTimeout(() => {\r\n if (props.para.from == \"CheckoutPageSettle\" || props.para.from == 'CheckoutPageSettleandPrint') {\r\n let windowlist = \"\";\r\n let windowSerNoList = \"\";\r\n console.log(paymodeTypeList);\r\n if (props.para.WindowList.length > 0) {\r\n for (let i = 0; i < props.para.WindowList.length; i++) {\r\n if (i == props.para.WindowList.length - 1) {\r\n windowlist = windowlist + props.para.WindowList[i].WindowName;\r\n windowSerNoList = windowSerNoList + props.para.WindowList[i].WindowSerNo;\r\n }\r\n else {\r\n windowlist = windowlist + props.para.WindowList[i].WindowName + \", \";\r\n windowSerNoList = windowSerNoList + props.para.WindowList[i].WindowSerNo + \",\";\r\n }\r\n }\r\n setWindowList(windowlist);\r\n }\r\n if (props.para.Amount != undefined && props.para.PaymentMethodType != undefined) {\r\n setReservationTransactionObj((prev) => ({\r\n ...prev, WindowSerNo: windowSerNoList, Amount: props.para.Amount,\r\n PaymentMethodType: props.para.PaymentMethodType, TransactionType: \"P\"\r\n }));\r\n console.log(\"here payment method type\", props.para.PaymentMethodType);\r\n setPaymentMethodType(props.para.PaymentMethodType);\r\n }\r\n setdDisabledAmountText(true);\r\n setDisableCmbCharge(true);\r\n setReservationTransactionObj(prev => ({ ...prev, AssoTransactionSerNo: 0 }));\r\n //setDisableCmbPaymentMode(true);\r\n }\r\n }, 100);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (transactionMode == \"Payment\") {\r\n setDisableCmbPaymentMode(false);\r\n setdDisabledAmountText(false);\r\n setDisableCmbCharge(false);\r\n setDisableCmbWindow(false);\r\n setReservationTransactionObj(prev => ({\r\n ...prev,\r\n ClientSerNo: props.para.ClientSerNo,\r\n PropertySerNo: props.para.PropertySerNo,\r\n ReservationSerNo: props.para.ReservationSerNo,\r\n WindowSerNo: props.para?.WindowSerNo,\r\n Amount: 0,\r\n PaymentType: \"P\"\r\n }));\r\n }\r\n else if (transactionMode == \"Refund\" || transactionMode == \"PaymentCorrection\") {\r\n getReservationTransaction(transactionMode);\r\n }\r\n else if (transactionMode == \"PaidOut\") {\r\n getReasonMasterData();\r\n setReservationTransactionObj(prev => ({\r\n ...prev,\r\n ClientSerNo: props.para.ClientSerNo,\r\n PropertySerNo: props.para.PropertySerNo,\r\n ReservationSerNo: props.para.ReservationSerNo,\r\n WindowSerNo: 1,\r\n Amount: 0,\r\n PaymentType: \"P\",\r\n IsPaidOut: true,\r\n }));\r\n }\r\n\r\n }, [transactionMode]);\r\n const getReservationTransaction = (v) => {\r\n GetReservationTransaction(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo, \"P\").then(d => {\r\n let Selectedobj = d.data.filter(obj => obj.ReservationTransactionSerNo == parseInt(props.para.ReservationTransactionSerNo))[0];\r\n console.log(Selectedobj);\r\n if (v == \"Refund\" && Selectedobj.PaymentType == \"P\") {\r\n setReservationTransactionObj(prev => ({\r\n ...prev,\r\n TransactionSerNo: Selectedobj.TransactionSerNo,\r\n PaymentMethodType: Selectedobj.PaymentMethodType,\r\n TransactionType: \"P\",\r\n WindowSerNo: Selectedobj.WindowSerNo,\r\n TransactionName: Selectedobj.TransactionName,\r\n CCNo: Selectedobj.CCNo,\r\n CCHolderName: Selectedobj.CCHolderName,\r\n CCExpiryDate: Selectedobj.CCExpiryDate,\r\n PanCardNo: Selectedobj.PanCardNo,\r\n PanHolderName: Selectedobj.PanHolderName,\r\n ChequeNo: Selectedobj.ChequeNo,\r\n BankName: Selectedobj.BankName,\r\n BranchName: Selectedobj.BranchName,\r\n NameOfAccount: Selectedobj.NameOfAccount,\r\n PaymentReceivedDate: Selectedobj.PaymentReceivedDate,\r\n UPIId: Selectedobj.UPIId,\r\n Remarks: \"\",\r\n ReceiptNo: Selectedobj.ReceiptNo,\r\n AssoTransactionSerNo: Selectedobj.AssoTransactionSerNo,\r\n PaymentType: \"R\",\r\n RefReservationTransactionSerNo: Selectedobj.ReservationTransactionSerNo\r\n }));\r\n setPaymentMethodType(Selectedobj.PaymentMethodType);\r\n setDepositCorrectionAmount(Selectedobj.OriginalDepositAmount * (-1));\r\n setDisableCmbPaymentMode(true);\r\n setDisableCmbCharge(true);\r\n setDisableCmbWindow(true);\r\n }\r\n else if (v == \"PaymentCorrection\" && Selectedobj.PaymentType == \"P\") {\r\n console.log(Selectedobj);\r\n\r\n setDepositCorrectionAmount(Selectedobj.OriginalDepositAmount * (-1));\r\n setReservationTransactionObj(prev => ({\r\n ...prev,\r\n TransactionSerNo: Selectedobj.TransactionSerNo,\r\n PaymentMethodType: Selectedobj.PaymentMethodType,\r\n TransactionType: \"P\",\r\n WindowSerNo: Selectedobj.WindowSerNo,\r\n TransactionName: Selectedobj.TransactionName,\r\n CCNo: Selectedobj.CCNo,\r\n CCHolderName: Selectedobj.CCHolderName,\r\n CCExpiryDate: Selectedobj.CCExpiryDate,\r\n PanCardNo: Selectedobj.PanCardNo,\r\n PanHolderName: Selectedobj.PanHolderName,\r\n ChequeNo: Selectedobj.ChequeNo,\r\n BankName: Selectedobj.BankName,\r\n BranchName: Selectedobj.BranchName,\r\n NameOfAccount: Selectedobj.NameOfAccount,\r\n PaymentReceivedDate: Selectedobj.PaymentReceivedDate,\r\n UPIId: Selectedobj.UPIId,\r\n Remarks: \"\",\r\n ReceiptNo: Selectedobj.ReceiptNo,\r\n AssoTransactionSerNo: Selectedobj.AssoTransactionSerNo,\r\n PaymentType: \"C\",\r\n RefReservationTransactionSerNo: Selectedobj.ReservationTransactionSerNo\r\n }));\r\n setPaymentMethodType(Selectedobj.PaymentMethodType);\r\n setDisableCmbPaymentMode(true);\r\n setDisableCmbCharge(true);\r\n setDisableCmbWindow(true);\r\n }\r\n });\r\n };\r\n const getReasonMasterData = () => {\r\n console.log(\"callreason\");\r\n GetReasonMaster(props.para.ClientSerNo, props.para.PropertySerNo, 'POUT').then(d => {\r\n let reasonList = [];\r\n d.data.map(element => {\r\n reasonList.push({ key: element.ReasonSerNo, value: element.Name });\r\n });\r\n setCmbReason(reasonList);\r\n\r\n }).catch(error => {\r\n setCmbReason([]);\r\n });\r\n };\r\n const getTransactionMasterData = () => {\r\n GetTransactionMaster(props.para.ClientSerNo, props.para.PropertySerNo, 'P', 'ALL').then(d => {\r\n let temp = d.data.filter(x => x.Module === \"R\" || x.Module === \"G\");\r\n setPaymodeTypeList(temp);\r\n let paymodeList = [];\r\n temp.map(element => {\r\n paymodeList.push({ key: element.TransactionSerNo, value: element.Name });\r\n });\r\n setCmbPaymentMode(paymodeList);\r\n if (props.para.TransactionMode == \"PaidOut\") {\r\n let tempPaymodeSerNo = temp.filter(e => e.Name == \"By Cash\")[0].TransactionSerNo;\r\n // console.log(tempPaymodeSerNo)\r\n setReservationTransactionObj(prev => ({ ...prev, TransactionSerNo: tempPaymodeSerNo, PaymentMethodType: \"CASH\", TransactionType: \"P\", WindowSerNo: 1 }));\r\n setDisableCmbPaymentMode(true);\r\n setPaymentMethodType(\"CASH\");\r\n }\r\n // for Checkout popup\r\n if (props.para.from == \"CheckoutPageSettle\" || props.para.from == 'CheckoutPageSettleandPrint') {\r\n if (props.para.PaymentMethodType != undefined) {\r\n let obj = temp.find((x) => props.para.PaymentMethodType == x.PaymentMethodType);\r\n console.log(obj);\r\n setReservationTransactionObj((prev) => ({ ...prev, TransactionSerNo: parseInt(obj.TransactionSerNo) }));\r\n }\r\n }\r\n //\r\n }).catch(error => {\r\n setPaymodeTypeList([]);\r\n setCmbPaymentMode([]);\r\n });\r\n };\r\n\r\n const getReservationwindowRoutingList = () => {\r\n GetReservationWindowRoutingList(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo).then(d => {\r\n let cmbWindowList = [];\r\n d.data.map(element => {\r\n if (element.IsDeleted !== true) {\r\n cmbWindowList.push({ key: element.WindowSerNo, value: element.WindowName });\r\n }\r\n });\r\n setCmbWindow(cmbWindowList);\r\n }).catch(error => {\r\n setCmbWindow([]);\r\n });\r\n };\r\n\r\n const getChargeMasterData = () => {\r\n GetTransactionMaster(props.para.ClientSerNo, props.para.PropertySerNo, 'C', 'F').then(d => {\r\n let chargeList = [];\r\n d.data.map(element => {\r\n chargeList.push({ key: element.TransactionSerNo, value: element.Name });\r\n });\r\n setTransactionChargeList(chargeList);\r\n }).catch(error => {\r\n setTransactionChargeList([]);\r\n });\r\n };\r\n\r\n const handleModeOfPaymentChange = (paymodeSerNo) => {\r\n let paymentMethodType = paymodeTypeList.filter(element => element.TransactionSerNo == paymodeSerNo)[0].PaymentMethodType;\r\n setPaymentMethodType(paymentMethodType);\r\n setReservationTransactionObj(prev => ({ ...prev, TransactionSerNo: paymodeSerNo, PaymentMethodType: paymentMethodType, TransactionType: \"P\" }));\r\n };\r\n const handleSaveOnClick = () => {\r\n let IsPageValid = isValidData();\r\n console.log(transactionValidationObj);\r\n console.log(reservationTransactionObj);\r\n console.log(IsPageValid);\r\n if (IsPageValid) {\r\n let o = props.para.from;\r\n if (o != undefined) {\r\n if (o === 'CheckoutPageSettle') {\r\n PostAddCheckoutTransaction(reservationTransactionObj).then((d) => {\r\n console.log('Checkout Transaction', d.data);\r\n if (d.data != undefined) {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n setReservationTransactionObj([]);\r\n setReservationTransactionObj(prev => ({\r\n ...prev,\r\n ClientSerNo: props.para.ClientSerNo,\r\n PropertySerNo: props.para.PropertySerNo,\r\n ReservationSerNo: props.para.ReservationSerNo,\r\n Amount: 0,\r\n PaymentType: \"P\"\r\n }));\r\n handleOnclose(d.data.ReturnValue);\r\n }\r\n }\r\n });\r\n } else if (o === 'CheckoutPageSettleandPrint') {\r\n let obj = reservationTransactionObj;\r\n obj[\"UserID\"] = currUser.UserID;\r\n ManageSettleAndPrint(obj).then((d) => {\r\n console.log('Checkout Transaction', d.data);\r\n if (d.data != undefined) {\r\n alertFunction('Checkout transaction added and invoice generated successfully.');\r\n setReservationTransactionObj([]);\r\n setReservationTransactionObj(prev => ({\r\n ...prev,\r\n ClientSerNo: props.para.ClientSerNo,\r\n PropertySerNo: props.para.PropertySerNo,\r\n ReservationSerNo: props.para.ReservationSerNo,\r\n Amount: 0,\r\n PaymentType: \"P\"\r\n }));\r\n handleOnclose(d.data);\r\n }\r\n });;\r\n } else {\r\n AddReservationTransaction(reservationTransactionObj).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n setReservationTransactionObj([]);\r\n setReservationTransactionObj(prev => ({\r\n ...prev,\r\n ClientSerNo: props.para.ClientSerNo,\r\n PropertySerNo: props.para.PropertySerNo,\r\n ReservationSerNo: props.para.ReservationSerNo,\r\n Amount: 0,\r\n PaymentType: \"P\"\r\n }));\r\n handleOnclose();\r\n }\r\n }).catch(error => {\r\n\r\n });\r\n }\r\n }\r\n }\r\n };\r\n const isValidData = () => {\r\n let isValid = true;\r\n setTransactionValidationObj([]);\r\n if (reservationTransactionObj.TransactionSerNo == 0 || reservationTransactionObj.TransactionSerNo == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, TransactionSerNo: \"Select Payment Method\" }));\r\n }\r\n if (reservationTransactionObj.Amount <= 0 || reservationTransactionObj.Amount == \"\") {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, Amount: \"Enter valid deposit Amount\" }));\r\n }\r\n if (transactionMode == \"PaidOut\" && (reservationTransactionObj.ReasonSerNo == 0 || reservationTransactionObj.ReasonSerNo == null)) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, ReasonSerNo: \"Select Paid out reason\" }));\r\n\r\n }\r\n if (paymentMethodType == \"CASH\") {\r\n if (parseInt(reservationTransactionObj.Amount) >= 50000) {\r\n if (reservationTransactionObj.PanCardNo == \"\" || reservationTransactionObj.PanCardNo == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, PanCardNo: \"Enter PanCard No\" }));\r\n }\r\n if (reservationTransactionObj.PanHolderName == \"\" || reservationTransactionObj.PanHolderName == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, PanHolderName: \"Enter Pan Holder Name\" }));\r\n }\r\n\r\n }\r\n }\r\n if (paymentMethodType == \"CH\") {\r\n if (reservationTransactionObj.ChequeNo == \"\" || reservationTransactionObj.ChequeNo == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, ChequeNo: \"Enter ChequeNo\" }));\r\n }\r\n if (reservationTransactionObj.BankName == \"\" || reservationTransactionObj.BankName == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, BankName: \"Enter Bank Name\" }));\r\n }\r\n if (reservationTransactionObj.BranchName == \"\" || reservationTransactionObj.BranchName == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, BranchName: \"Enter Branch Name\" }));\r\n }\r\n if (reservationTransactionObj.NameOfAccount == \"\" || reservationTransactionObj.NameOfAccount == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, NameOfAccount: \"Enter Name Of Account\" }));\r\n }\r\n }\r\n if (paymentMethodType == \"CD\") {\r\n if (reservationTransactionObj.CCNo == \"\" || reservationTransactionObj.CCNo == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, CCNo: \"Enter Card No\" }));\r\n }\r\n if (creditCardNo.length !== 4) {\r\n isValid = false;\r\n setTransactionValidationObj((prev) => ({ ...prev, CCNo: \"Please enter last four digits\" }))\r\n }\r\n if (creditCardNo.length == 4 && isNaN(creditCardNo)) {\r\n isValid = false;\r\n setTransactionValidationObj((prev) => ({ ...prev, CCNo: \"Please enter valid credit card number\" }))\r\n }\r\n if (creditCardNo.length == 4 && !(/^[0-9]+$/.test(creditCardNo))) {\r\n isValid = false;\r\n setTransactionValidationObj((prev) => ({ ...prev, CCNo: \"Please enter valid credit card number\" }))\r\n }\r\n if (reservationTransactionObj.CCExpiryDate == \"\" || reservationTransactionObj.CCExpiryDate == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, CCExpiryDate: \"Enter Expiry Date\" }));\r\n }\r\n if (reservationTransactionObj.CCHolderName == \"\" || reservationTransactionObj.CCHolderName == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, CCHolderName: \"Enter Card Holder Name\" }));\r\n }\r\n }\r\n if (paymentMethodType == \"BT\") {\r\n if (reservationTransactionObj.BankName == \"\" || reservationTransactionObj.BankName == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, BankName: \"Enter Bank Name\" }));\r\n }\r\n if (reservationTransactionObj.PaymentReceivedDate == \"\" || reservationTransactionObj.PaymentReceivedDate == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, PaymentReceivedDate: \"Enter Payment Receive Date\" }));\r\n }\r\n if (reservationTransactionObj.NameOfAccount == \"\" || reservationTransactionObj.NameOfAccount == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, NameOfAccount: \"Enter Name Of Account\" }));\r\n }\r\n }\r\n if (paymentMethodType == \"UP\") {\r\n if (reservationTransactionObj.UPIId == \"\" || reservationTransactionObj.UPIId == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, UPIId: \"Enter UPI ID\" }));\r\n }\r\n if (reservationTransactionObj.PaymentReceivedDate == \"\" || reservationTransactionObj.PaymentReceivedDate == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, PaymentReceivedDate: \"Enter Payment Receive Date\" }));\r\n }\r\n }\r\n if (transactionMode == \"Refund\") {\r\n if (reservationTransactionObj.RefundRemarks == \"\" || reservationTransactionObj.RefundRemarks == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, RefundRemarks: \"Enter Refund Reason\" }));\r\n }\r\n if (parseFloat(reservationTransactionObj.Amount) <= 0 || parseFloat(reservationTransactionObj.Amount) > depositCorrectionAmount * (-1)) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, Amount: \"Enter valid Amount\" }));\r\n }\r\n }\r\n if (transactionMode == \"PaymentCorrection\") {\r\n console.log(depositCorrectionAmount, reservationTransactionObj);\r\n\r\n if (reservationTransactionObj.CorrectionRemarks == \"\" || reservationTransactionObj.CorrectionRemarks == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, CorrectionRemarks: \"Enter Correction Reason\" }));\r\n }\r\n console.log(\"transactionAmount\", reservationTransactionObj.Amount,);\r\n if (parseFloat(reservationTransactionObj.Amount) <= 0) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, CorrectionAmount: \"Enter valid Amount\" }));\r\n alertFunction(\"Please enter a numeric value not greater than the original transaction value.\");\r\n }\r\n else if (parseFloat(reservationTransactionObj.Amount) > Math.abs(depositCorrectionAmount)) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, CorrectionAmount: \"Enter valid Amount\" }));\r\n alertFunction(\"Please enter a value between zero and the original transaction value to proceed further.\");\r\n }\r\n }\r\n return isValid;\r\n };\r\n const handleOnclose = (v) => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(v);\r\n }\r\n };\r\n\r\n //property parameter\r\n\r\n const fillPropertyParameterData = () => {\r\n GetPropertyParameterByKeys(parseInt(props.para.ClientSerNo), parseInt(props.para.PropertySerNo), [\"IsTaxCalculateOnAdvance\", \"BusinessDate\"]).then((d) => {\r\n console.log('property data', d.data);\r\n if (d.data.length > 0) {\r\n if (d.data[0].value == '1') {\r\n setIsTaxCalcOnAdvance(true);\r\n getChargeMasterData();\r\n } else if (d.data[0].value == '0') {\r\n setIsTaxCalcOnAdvance(false);\r\n setTransactionChargeList([]);\r\n }\r\n let obj = d.data.find(x => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(obj.value);\r\n setReservationTransactionObj(prev => ({ ...prev, TransactionDate: moment(new Date(obj.value)).format(\"DD-MMM-YYYY\") }));\r\n }\r\n }\r\n });\r\n };\r\n\r\n //end\r\n return (\r\n \r\n
\r\n
\r\n
\r\n

\r\n {\r\n transactionMode == \"Payment\" ?\r\n 'Payment'\r\n :\r\n transactionMode == \"Refund\" ?\r\n 'Refund'\r\n :\r\n transactionMode == \"PaymentCorrection\" ?\r\n 'Payment Correction'\r\n : null\r\n }\r\n

\r\n
\r\n
\r\n handleSaveOnClick()}>Save\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n handleModeOfPaymentChange(parseInt(item.key))}\r\n >\r\n
\r\n
\r\n
\r\n {transactionMode == \"PaymentCorrection\" ?\r\n \r\n Amount\r\n :\r\n {\r\n console.log(v);\r\n if (parseInt(v) < 0 || isNaN(v)) {\r\n setTransactionValidationObj(prev => ({ ...prev, Amount: \"enter valid amount\" }));\r\n } else {\r\n setTransactionValidationObj(prev => ({ ...prev, Amount: \"\" }));\r\n }\r\n setReservationTransactionObj(prev => ({ ...prev, Amount: parseFloat(v) }));\r\n }}>Amount\r\n }\r\n
\r\n
\r\n
\r\n
\r\n {/*
\r\n console.log(item, name)}\r\n >\r\n\r\n
*/}\r\n {/*
4000
*/}\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, DocumentNo: v }));\r\n }}>Document Reference\r\n {transactionMode == \"Refund\" ?\r\n \r\n Refundable Amount\r\n : null}\r\n {transactionMode == \"Refund\" ?\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, RefundRemarks: v }));\r\n }}>Refund Reason\r\n : null\r\n }\r\n {transactionMode == \"PaymentCorrection\" ?\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, CorrectionRemarks: v }));\r\n }}>Correction Reason\r\n : null}\r\n {transactionMode == \"PaymentCorrection\" ?\r\n {\r\n console.log(v);\r\n setReservationTransactionObj(prev => ({ ...prev, Amount: (depositCorrectionAmount * (-1) - parseFloat(v)) }));\r\n }} >\r\n Correction Amount\r\n : null}\r\n {transactionMode == \"Refund\" ?\r\n Receipt No\r\n : null\r\n }\r\n {IsTaxCalcOnAdvance ?\r\n
\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, AssoTransactionSerNo: parseInt(item.key) }));\r\n }}\r\n >\r\n
\r\n :\r\n null}\r\n {\r\n (props.para.from == \"CheckoutPageSettle\" || props.para.from == 'CheckoutPageSettleandPrint') ?\r\n // {\r\n // setReservationTransactionObj(prev => ({ ...prev, DocumentNo: v }));\r\n // }}>\r\n // Window\r\n // \r\n \r\n Window\r\n \r\n :\r\n null\r\n }\r\n {props.para.from == \"Billing\" ?\r\n
\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, WindowSerNo: parseInt(item.key) }));\r\n }}\r\n >\r\n
\r\n : null}\r\n {props.para.TransactionMode == \"PaidOut\" ?\r\n
\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, ReasonSerNo: parseInt(item.key) }));\r\n }}\r\n >\r\n
\r\n : null}\r\n
\r\n
\r\n {paymentMethodType == \"CD\" ?\r\n
\r\n
\r\n
Card Details
\r\n \r\n Credit Card Number\r\n \r\n {\r\n setCreditCardNo(v)\r\n setTransactionValidationObj((prev) => ({ ...prev, CCNo: \"\" }))\r\n setReservationTransactionObj(prev => ({ ...prev, CCNo: 'XXXX-XXXX-XXXX-' + v }));\r\n }}\r\n maxlength=\"4\"\r\n >\r\n \r\n
{transactionValidationObj.CCNo}
\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, CCExpiryDate: e }));\r\n let oldDate = reservationTransactionObj.CCExpiryDate;\r\n if (new Date(moment(businessDate).format(\"DD-MMM-YYYY\")).getTime() <= new Date(moment(e).format(\"DD-MMM-YYYY\")).getTime()) {\r\n setReservationTransactionObj(prev => ({ ...prev, CCExpiryDate: e }));\r\n }\r\n else {\r\n setReservationTransactionObj(prev => ({ ...prev, CCExpiryDate: e }));\r\n setTimeout(() => {\r\n setReservationTransactionObj(prev => ({ ...prev, CCExpiryDate: oldDate }));\r\n }, 50);\r\n alertFunction(\"Invalid Date\");\r\n }\r\n }}\r\n placeholder=\"mm/yyyy\"\r\n dateformat=\"MM-yyyy\"\r\n selected={reservationTransactionObj.CCExpiryDate}\r\n calendarStartDay={1}\r\n label=\"Expiry Date\"\r\n customError={transactionValidationObj.CCExpiryDate}\r\n >\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, CCHolderName: v }));\r\n }}>Card Holder Name\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, Remarks: v }));\r\n }}>Note\r\n
\r\n
\r\n : null\r\n }\r\n {paymentMethodType == \"CASH\" ?\r\n
\r\n
Cash Payment Details
\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, PanCardNo: v }));\r\n\r\n }}>PAN Card No\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, PanHolderName: v }));\r\n\r\n }}>Name on PAN Card\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, Remarks: v }));\r\n\r\n }}>Note\r\n
\r\n : null\r\n }\r\n {paymentMethodType == \"CH\" ?\r\n
\r\n
Cheque Details
\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, ChequeNo: v }));\r\n }}>Cheque No\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, BankName: v }));\r\n }}>Bank Name\r\n\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, BranchName: v }));\r\n\r\n }}>Branch Name\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, NameOfAccount: v }));\r\n\r\n }}>Name on Account\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, Remarks: v }));\r\n\r\n }}>Note\r\n
\r\n : null}\r\n {paymentMethodType == \"BT\" ?\r\n
\r\n\r\n
Bank Transfer Details
\r\n\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, BankName: v }));\r\n }}>Bank Name\r\n\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, NameOfAccount: v }));\r\n\r\n }}>Name on Account\r\n {/*
\r\n console.log(item, name)}\r\n >\r\n
*/}\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, PaymentReceivedDate: e }));\r\n }}\r\n placeholder=\"mm/yyyy\"\r\n selected={reservationTransactionObj.PaymentReceivedDate}\r\n calendarStartDay={1}\r\n label=\"Payment Received Date\"\r\n >\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, Remarks: v }));\r\n\r\n }}>Note\r\n
\r\n : null}\r\n {paymentMethodType == \"UP\" ?\r\n
\r\n\r\n
UPI payment details
\r\n {/*
\r\n console.log(item, name)}\r\n >\r\n
*/}\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, UPIId: v }));\r\n\r\n }}>UPI ID\r\n\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, NameOfAccount: v }));\r\n\r\n }}>Name on Account\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, PaymentReceivedDate: e }));\r\n }}\r\n placeholder=\"mm/yyyy\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Payment Received Date\"\r\n selected={reservationTransactionObj.PaymentReceivedDate}\r\n >\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, Remarks: v }));\r\n }}>Note\r\n
\r\n : null}\r\n
\r\n
\r\n \r\n\r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnCheckbox,\r\n InnSearchTextbox,\r\n InnRadioButton,\r\n InnTextbox,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport { GetReasonMaster } from \"../../../../services/generalService\";\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\n\r\nexport function UpgradeReasonModalPopup(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const [reasonData, setReasonData] = useState([]);\r\n const [filterReasonData, setFilterReasonData] = useState([]);\r\n const [filterText, setFilterText] = useState(\"\");\r\n const [isManually, setIsManually] = useState(false);\r\n const [selectedReason, setSelectedReason] = useState(\"\");\r\n const [selectedRBvalue, setSelectedRBvalue] = useState(\"\");\r\n\r\n useEffect(() => {\r\n GetReasonMaster(currUser.ClientSerNo, currUser.PropertySerNo, \"UDGRD\").then(d => {\r\n let tempData = [];\r\n d.data.map(x => {\r\n let obj = {\r\n key: x.ReasonSerNo,\r\n value: x.Name\r\n }\r\n tempData.push(obj);\r\n });\r\n console.log(tempData)\r\n setReasonData(tempData);\r\n setFilterReasonData(tempData);\r\n })\r\n }, []);\r\n\r\n const handleFilterData = (filterText) => {\r\n let filteredRes = reasonData.filter(obj => obj.value.toLowerCase().includes(filterText.toLowerCase()));\r\n setFilterReasonData(filteredRes);\r\n setFilterText(filterText);\r\n }\r\n\r\n const handleResetClick = () => {\r\n setFilterText(\"\");\r\n setFilterReasonData(reasonData);\r\n setSelectedReason(\"\");\r\n setSelectedRBvalue(\"\");\r\n setIsManually(false);\r\n }\r\n\r\n const handleOnclose = () => {\r\n if (props.OnClose != undefined) {\r\n props.OnClose();\r\n }\r\n }\r\n\r\n const handleApplyClick = () => {\r\n if (props.OnSelection == undefined)\r\n console.log(\"OnSelection is not defined\");\r\n else\r\n props.OnSelection(selectedReason,selectedRBvalue);\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n

Reason for Upgrade / Downgrade

\r\n
\r\n
\r\n Reset\r\n Apply\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n handleFilterData(v)}>\r\n Search\r\n \r\n
\r\n select from the below list\r\n
\r\n
\r\n
\r\n {\r\n console.log('value', value, key);\r\n //setSelectedRBvalue(value);\r\n setSelectedRBvalue(key);\r\n setSelectedReason(value);\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n
\r\n
Or
\r\n {\r\n setIsManually(ischecked);\r\n if (!ischecked)\r\n setSelectedReason(selectedReason);\r\n //setSelectedReason(selectedRBvalue);\r\n }}\r\n >\r\n Enter Manually\r\n \r\n setSelectedReason(v)}\r\n type=\"text\"\r\n value={selectedReason}\r\n >\r\n Message\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n InnModalPopup,\r\n InnKeyboard,\r\n InnPrimaryButton,\r\n InnLoader,\r\n InnSingleSelectDropdown,\r\n InnTextbox\r\n} from \"../../../../component\";\r\n\r\nimport rightarrow from \"../../../../assets/images/right-circle-arrow-gray.svg\";\r\nimport { AddProfileMaster, cmbGetProfileTitleMaster } from \"../../../../services/reservationService\";\r\nimport { GetProfileCommunicationTypeMaster } from \"../../../../services/generalService\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useAlert } from \"../../../../utils/hooks/useAlert\";\r\n\r\nexport function AddGuestPopUp(props) {\r\n\r\n //#region state variable \r\n const { innkeyAlert } = useAlert();\r\n const currUser = useSelector(currentUser);\r\n const [titleData, setTitleData] = useState([]);\r\n const [isOpenCompany, setIsOpenCompany] = useState(false);\r\n const [showKeyBoard, setShowKeyBoard] = useState(false);\r\n const [searchInput, setSearchInput] = useState(\"\");\r\n const [flagClick, setFlagClick] = useState(\"\");\r\n const [profileObj, setProfileObj] = useState({\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"ProfileType\": \"Gu\",\r\n \"TitleSerNo\": \"\",\r\n \"FirstName\": \"\",\r\n \"MiddleName\": \"\",\r\n \"LastName\": \"\",\r\n \"FullName\": \"\",\r\n \"Designation\": \"\",\r\n \"Department\": \"\",\r\n \"VIPStatusSerNo\": 0,\r\n \"MembershipLevelSerNo\": 0,\r\n \"ProfileCommunication\": {\r\n \"CommunicationTypeSerNo\": 0,\r\n \"Mobile\": \"\",\r\n \"Email\": \"\",\r\n \"Landline\": \"\",\r\n \"IsPrimary\": true\r\n },\r\n \"ProfileAddress\": {\r\n \"ProfileAddressTypeSerNo\": 0,\r\n \"CountrySerNo\": 0,\r\n \"StateSerNo\": 0,\r\n \"CitySerNo\": 0,\r\n \"PostCode\": \"\",\r\n \"Street\": \"\",\r\n \"IsPrimary\": true\r\n },\r\n \"ProfileBusinessInfo\": {\r\n \"CompanyProfileSerNo\": 0,\r\n \"CompanyName\": \"\",\r\n \"Designation\": \"\",\r\n \"SetCurrent\": true\r\n },\r\n \"ProfileContactDetail\": {\r\n\r\n }\r\n });\r\n\r\n //#endregion state variable\r\n\r\n const [communicationTypeData, setCommunicationTypeData] = useState([]);\r\n //#region custom function \r\n\r\n const fillTitleMaster = () => {\r\n cmbGetProfileTitleMaster(parseInt(currUser.ClientSerNo)).then(d => {\r\n setTitleData(d.data);\r\n })\r\n }\r\n const fillCommunicationTypeMaster = () => {\r\n GetProfileCommunicationTypeMaster(currUser.ClientSerNo).then((d) => {\r\n let lstCommunication = [];\r\n d.data.forEach((x) => {\r\n lstCommunication = [...lstCommunication, { key: x.CommunicationTypeSerNo, value: x.Name }]\r\n })\r\n setCommunicationTypeData(lstCommunication);\r\n })\r\n }\r\n const validatePage = () => {\r\n let isValidPage = true;\r\n\r\n if (profileObj.TitleSerNo == \"\") {\r\n isValidPage = false;\r\n }\r\n if (profileObj.FirstName == \"\") {\r\n isValidPage = false;\r\n }\r\n if (profileObj.LastName == \"\") {\r\n isValidPage = false;\r\n }\r\n\r\n return isValidPage;\r\n }\r\n\r\n const addProfile = () => {\r\n if (validatePage()) {\r\n AddProfileMaster(profileObj).then(d => {\r\n if (d.data.result.Code == \"200\") {\r\n alert(d.data.result.Message);\r\n if (props.handleSave == undefined)\r\n console.log(\"handleSave is not defined.\")\r\n else\r\n props.handleSave(d.data);\r\n }\r\n })\r\n } else {\r\n alert(\"Guest name is required.\")\r\n }\r\n }\r\n //#endregion custom function \r\n\r\n //#region Useeffect \r\n useEffect(() => {\r\n fillTitleMaster();\r\n fillCommunicationTypeMaster();\r\n }, []);\r\n\r\n //#endregion Useeffect \r\n\r\n //#region Events\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose == undefined)\r\n console.log(\"handleOnclose is not defined\");\r\n else\r\n props.handleOnclose(false);\r\n }\r\n const handleSaveClick = () => {\r\n addProfile();\r\n }\r\n const handleOnMobileChanged = (v) => {\r\n let obj = profileObj;\r\n obj.ProfileCommunication.Mobile = v;\r\n setProfileObj(obj);\r\n }\r\n const handleOnEmailChanged = (v) => {\r\n let obj = profileObj;\r\n obj.ProfileCommunication.Email = v;\r\n setProfileObj(obj);\r\n }\r\n const handleOnCompanySelection = (v) => {\r\n let obj = profileObj;\r\n obj.ProfileBusinessInfo.CompanyProfileSerNo = v.ProfileSerNo;\r\n obj.ProfileBusinessInfo.CompanyName = v.CompanyName;\r\n setProfileObj(obj);\r\n setIsOpenCompany(false);\r\n }\r\n\r\n //#endregion Events\r\n\r\n const firstNameClick = () => {\r\n setFlagClick(\"firstname\");\r\n setSearchInput(\"\");\r\n setShowKeyBoard(true);\r\n };\r\n const lastNameClick = () => {\r\n setFlagClick(\"lastname\");\r\n setSearchInput(\"\");\r\n setShowKeyBoard(true);\r\n };\r\n const mobileClick = () => {\r\n setFlagClick(\"mobile\");\r\n setSearchInput(\"\");\r\n setShowKeyBoard(true);\r\n };\r\n const emailClick = () => {\r\n setFlagClick(\"email\");\r\n setSearchInput(\"\");\r\n setShowKeyBoard(true);\r\n }\r\n const departmentClick = () => {\r\n setFlagClick(\"department\");\r\n setSearchInput(\"\");\r\n setShowKeyBoard(true);\r\n }\r\n const designationClick = () => {\r\n setFlagClick(\"designation\");\r\n setSearchInput(\"\");\r\n setShowKeyBoard(true);\r\n }\r\n\r\n useEffect(() => {\r\n if (flagClick == \"firstname\") {\r\n setProfileObj(prev => ({ ...prev, FirstName: searchInput }));\r\n } else if (flagClick == \"lastname\") {\r\n setProfileObj(prev => ({ ...prev, LastName: searchInput }));\r\n } else if (flagClick == \"mobile\") {\r\n let obj = profileObj;\r\n obj.ProfileCommunication.Mobile = searchInput;\r\n setProfileObj(obj);\r\n } else if (flagClick == \"email\") {\r\n let obj = profileObj;\r\n obj.ProfileCommunication.Email = searchInput;\r\n setProfileObj(obj);\r\n } else if (flagClick == \"department\") {\r\n setProfileObj(prev => ({ ...prev, Department: searchInput }));\r\n } else if (flagClick == \"designation\") {\r\n setProfileObj(prev => ({ ...prev, Designation: searchInput }));\r\n }\r\n }, [searchInput]);\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n

Add Guest

\r\n
\r\n
\r\n Save\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n setProfileObj(prev => ({ ...prev, TitleSerNo: parseInt(item.key) }))\r\n }}\r\n >\r\n
\r\n setProfileObj(prev => ({ ...prev, FirstName: v }))}\r\n onClick={firstNameClick}>First Name*\r\n setProfileObj(prev => ({ ...prev, LastName: v }))}\r\n onClick={lastNameClick}>Last Name*\r\n
\r\n
\r\n
\r\n x.key == profileObj.ProfileCommunication.CommunicationTypeSerNo)?.value}\r\n list={communicationTypeData}\r\n selectedSerNo={profileObj.ProfileCommunication.CommunicationTypeSerNo}\r\n name=\"Single Select\"\r\n label=\"Communication Type\"\r\n onChange={(item) => {\r\n let obj = profileObj;\r\n obj.ProfileCommunication.CommunicationTypeSerNo = item.key;\r\n setProfileObj(obj);\r\n }}\r\n >\r\n
\r\n Email\r\n Mobile\r\n
\r\n
\r\n\r\n
\r\n Company {/* onClick={() => setShowCompanyModal(!showCompanyModal)} */}\r\n \r\n
\r\n setProfileObj(prev => ({ ...prev, Department: v }))}\r\n onClick={departmentClick}>Department\r\n setProfileObj(prev => ({ ...prev, Designation: v }))}\r\n onClick={designationClick}>Designation\r\n
\r\n
\r\n
\r\n {showKeyBoard ?\r\n {\r\n let tempStr = searchInput;\r\n if (isBackSpace) {\r\n tempStr = v;\r\n }\r\n else {\r\n tempStr += v;\r\n }\r\n setSearchInput(tempStr);\r\n }}\r\n onEscape={() => {\r\n setShowKeyBoard(false);\r\n }}\r\n >\r\n : null\r\n }\r\n
\r\n
\r\n \r\n )\r\n}","import React, { useState } from \"react\";\r\nimport {\r\n InnPlainButton,\r\n InnTextbox,\r\n InnTooltip,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnSearchTextbox,\r\n InnModalPopup,\r\n InnSingleSelectDropdown,\r\n InnCheckbox,\r\n InnKeyboard,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport { useSelector } from \"react-redux\";\r\nimport closeIcon from \"../../../../assets/images/model-cls-btn.png\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { ProfilePreferenceModalPopup } from \"../../reservation/modalPopup/profilePreferenceModalPopup\";\r\nimport { GetGuestProfileByFilter, GetGuestProfileByFilterWithNo, GetProfileRoomFeature, GetProfileSpecial } from \"../../../../services/reservationService\";\r\nimport { useEffect } from \"react\";\r\nimport { Pagination } from \"@mui/material\";\r\nimport { AddGuestModalPopup } from \"../../reservation/modalPopup/addGuestModalPopup\";\r\nimport { AddGuestPopUp } from \"./addGuestPopup\";\r\nimport { Navigation, A11y } from 'swiper';\r\nimport { Scrollbar, FreeMode, Mousewheel } from 'swiper';\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nexport function GuestPopUp(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const [showPOSGuestAddPopup, setShowPOSGuestAddPopup] = useState();\r\n const [showPOSGuestFilterPopup, setShowPOSGuestFilterPopup] = useState();\r\n const [isActive, setActive] = useState(false);\r\n const [isOpenAddGuest, setIsOpenAddGuest] = useState(false);\r\n const [showGuestAdvancedSearchModal, setShowGuestAdvancedSearchModal] = useState(false);\r\n const [showGuestAttachmentList, setShowGuestAttachmentList] = useState(false);\r\n const [showGuestSelectAndContinueModal, setShowGuestSelectAndContinueModal] = useState(false);\r\n const [guestData, setGuestData] = useState([]);\r\n const [guestObject, setGuestObject] = useState({});\r\n const [page, setPage] = useState(1);\r\n const [pageCount, setPageCount] = useState(1);\r\n const [profileSpecial, setProfileSpecial] = useState([]);\r\n const [profileRoomFeature, setProfileRoomFeature] = useState([]);\r\n const [filGuestPara, setFilGuestPara] = useState({\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"FirstName\": \"\",\r\n \"LastName\": \"\",\r\n \"Mobile\": \"\",\r\n \"Email\": \"\",\r\n \"MembershipNo\": \"\",\r\n \"CompanyName\": \"\",\r\n \"CityName\": \"\",\r\n \"IsIncognito\": false,\r\n \"PageNumber\": page\r\n });\r\n const [showKeyBoard, setShowKeyBoard] = useState(false);\r\n const [searchInput, setSearchInput] = useState(\"\");\r\n const [flagClick, setFlagClick] = useState(\"\");\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n };\r\n\r\n const handleApplyClick = () => {\r\n if (page === 1)\r\n fillGuest();\r\n else {\r\n setFilGuestPara(prev => ({ ...prev, PageNumber: 1 }));\r\n setPage(1)\r\n }\r\n setShowGuestAdvancedSearchModal(!showGuestAdvancedSearchModal)\r\n }\r\n\r\n const fillGuest = () => {\r\n setActive(true);\r\n GetGuestProfileByFilter(filGuestPara).then(d => {\r\n setActive(false);\r\n setGuestData(d.data);\r\n\r\n let pCount = 0\r\n let pModuler\r\n try {\r\n pCount = parseInt(parseInt(d.data[0].Total) / 20);\r\n try {\r\n pModuler = parseInt(parseInt(d.data[0].Total) % 20);\r\n if (pModuler > 0)\r\n pCount = pCount + 1;\r\n } catch (e1) {\r\n }\r\n setPageCount(pCount);\r\n } catch (e) {\r\n setPageCount(1);\r\n }\r\n\r\n })\r\n }\r\n\r\n const getGuestProfile = (e) => {\r\n GetGuestProfileByFilterWithNo(parseInt(currUser.ClientSerNo), e.target.id).then((d) => {\r\n setGuestObject(d.data);\r\n })\r\n GetProfileSpecial(parseInt(currUser.ClientSerNo), e.target.id).then((d) => {\r\n setProfileSpecial(d.data);\r\n })\r\n GetProfileRoomFeature(parseInt(currUser.ClientSerNo), e.target.id).then((d) => {\r\n setProfileRoomFeature(d.data);\r\n })\r\n }\r\n\r\n const handleReset = () => {\r\n setFilGuestPara({\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"FirstName\": \"\",\r\n \"LastName\": \"\",\r\n \"Mobile\": \"\",\r\n \"Email\": \"\",\r\n \"MembershipNo\": \"\",\r\n \"CompanyName\": \"\",\r\n \"CityName\": \"\",\r\n \"IsIncognito\": false,\r\n \"PageNumber\": page\r\n })\r\n }\r\n\r\n const handleOnSelect = () => {\r\n if (props.OnSelect == undefined)\r\n console.log(\"OnSelect is not defined\");\r\n else\r\n props.OnSelect({ ...guestObject, ProfileRoomFeatures: [], ProfileSpecials: [] });\r\n }\r\n\r\n useEffect(() => {\r\n fillGuest();\r\n }, [page]);\r\n\r\n const firstNameClick = () => {\r\n setFlagClick(\"firstname\");\r\n setSearchInput(\"\");\r\n setShowKeyBoard(true);\r\n };\r\n const lastNameClick = () => {\r\n setFlagClick(\"lastname\");\r\n setSearchInput(\"\");\r\n setShowKeyBoard(true);\r\n };\r\n const mobileClick = () => {\r\n setFlagClick(\"mobile\");\r\n setSearchInput(\"\");\r\n setShowKeyBoard(true);\r\n };\r\n\r\n useEffect(() => {\r\n if (flagClick == \"firstname\") {\r\n setFilGuestPara(prev => ({ ...prev, FirstName: searchInput }))\r\n } else if (flagClick == \"lastname\") {\r\n setFilGuestPara(prev => ({ ...prev, LastName: searchInput }))\r\n } else if (flagClick == \"mobile\") {\r\n setFilGuestPara(prev => ({ ...prev, Mobile: searchInput }))\r\n }\r\n }, [searchInput]);\r\n\r\n return (\r\n
\r\n {\r\n }}\r\n Onclose={handleOnclose}\r\n >\r\n \r\n
\r\n
\r\n
\r\n

Guest

\r\n
\r\n
\r\n \r\n setShowGuestAdvancedSearchModal(\r\n !showGuestAdvancedSearchModal\r\n )\r\n }\r\n >\r\n \r\n
\r\n {\r\n props.para?.IsGuestCalling != undefined && props.para.IsGuestCalling ?\r\n <> :\r\n { setIsOpenAddGuest(!isOpenAddGuest); setShowGuestAdvancedSearchModal(false) }}\r\n >\r\n Add New\r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n {showGuestAdvancedSearchModal ? (\r\n
\r\n
\r\n
\r\n
\r\n

Filters

\r\n
\r\n
\r\n \r\n Reset\r\n \r\n \r\n Apply\r\n \r\n \r\n setShowGuestAdvancedSearchModal(\r\n !showGuestAdvancedSearchModal\r\n )\r\n }\r\n >\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n setFilGuestPara(prev => ({ ...prev, FirstName: v }))}\r\n onClick={firstNameClick}\r\n >\r\n First Name\r\n \r\n
\r\n
\r\n setFilGuestPara(prev => ({ ...prev, LastName: v }))}\r\n onClick={lastNameClick}\r\n >\r\n Last Name\r\n \r\n
\r\n
\r\n setFilGuestPara(prev => ({ ...prev, Mobile: v }))}\r\n onClick={mobileClick}\r\n >\r\n Mobile\r\n \r\n
\r\n
\r\n setFilGuestPara(prev => ({ ...prev, Email: v }))}\r\n >\r\n Email\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n setFilGuestPara(prev => ({ ...prev, CompanyName: v }))}\r\n >\r\n Company\r\n \r\n
\r\n
\r\n
\r\n setFilGuestPara(prev => ({ ...prev, MembershipNo: v }))}\r\n >\r\n Membership No\r\n \r\n
\r\n
\r\n setFilGuestPara(prev => ({ ...prev, CityName: v }))}\r\n >\r\n City\r\n \r\n
\r\n
\r\n setFilGuestPara(prev => ({ ...prev, IsIncognito: ischecked }))} >\r\n Incognito\r\n \r\n
\r\n
\r\n {showKeyBoard ?\r\n {\r\n let tempStr = searchInput;\r\n if (isBackSpace) {\r\n tempStr = v;\r\n }\r\n else {\r\n tempStr += v;\r\n }\r\n setSearchInput(tempStr);\r\n }}\r\n onEscape={() => {\r\n setShowKeyBoard(false);\r\n }}\r\n >\r\n : null\r\n }\r\n
\r\n
\r\n ) : null}\r\n
\r\n
\r\n
\r\n RESULT FOUND: {guestData.length > 0 ? guestData[0].Total : 0}\r\n
\r\n
\r\n console.log(swiper)}\r\n >\r\n \r\n \r\n
 
\r\n
\r\n
\r\n \r\n
\r\n\r\n { setFilGuestPara(prev => ({ ...prev, PageNumber: v })); setPage(v); }} style={{ float: \"left\" }} />\r\n
\r\n
\r\n
\r\n
\r\n {guestObject.GuestName}\r\n {guestObject.Mobile}\r\n \r\n {guestObject.Email}\r\n \r\n
\r\n
\r\n
\r\n
\r\n {guestObject.Country == undefined ?\r\n <>\r\n :\r\n <>\r\n {guestObject.Street}\r\n {guestObject.CityName == \"\" ? \" \" : \" , \" + guestObject.CityName}\r\n {guestObject.StateName == \"\" ? \" \" : \" , \" + guestObject.StateName}\r\n {guestObject.Country == \"\" ? \" \" : \" , ( \" + guestObject.Country + \")\"}\r\n \r\n }\r\n
\r\n
\r\n
\r\n \r\n setShowGuestAttachmentList(!showGuestAttachmentList)\r\n }\r\n >\r\n Attachment (4)\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Membership
\r\n
\r\n {guestObject.MemberShipName == undefined ? \" \" : guestObject.MemberShipName}\r\n {guestObject.MembershipNo == undefined ? \" \" : \" ( \" + guestObject.MembershipNo + \" )\"}\r\n
\r\n
\r\n Associated Company\r\n
\r\n
\r\n {guestObject.CompanyName == undefined ? \" \" : guestObject.CompanyName}\r\n {guestObject.Designation == undefined ? \" \" : \" ( \" + guestObject.Designation + \" )\"}\r\n
\r\n
\r\n
\r\n {showGuestAttachmentList ? (\r\n
\r\n
\r\n \r\n Aadhar Card\r\n (Front Side)\r\n \r\n ADH 234234987654\r\n
\r\n
\r\n \r\n Aadhar Card\r\n (Back Side)\r\n \r\n ADH 234234987654\r\n
\r\n
\r\n \r\n Passport\r\n (Front Side)\r\n \r\n ADH 234234987654\r\n
\r\n
\r\n \r\n Passport (Back\r\n Side)\r\n \r\n ADH 234234987654\r\n
\r\n
\r\n ) : null}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Room Features\r\n
\r\n
    \r\n {\r\n profileRoomFeature && profileRoomFeature.map(d =>\r\n
  • \r\n {d.DisplayName}\r\n
  • \r\n )\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Specials\r\n
\r\n
    \r\n {\r\n profileSpecial && profileSpecial.map(d =>\r\n
  • \r\n {d.Name}\r\n
  • \r\n )\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n { \r\n handleOnSelect();\r\n }}\r\n >\r\n Select & Continue\r\n \r\n
\r\n
\r\n
\r\n {\r\n isOpenAddGuest ?\r\n {\r\n setIsOpenAddGuest(!isOpenAddGuest);\r\n setGuestObject(d.guest)\r\n let data = [d.guest, ...guestData];\r\n setGuestData(data);\r\n }}\r\n handleOnclose={(e) => {\r\n setIsOpenAddGuest(!isOpenAddGuest);\r\n }}\r\n >\r\n \r\n : <>\r\n }\r\n \r\n \r\n \r\n )\r\n}","import axios from \"axios\";\r\n\r\n//#region Room Master\r\nexport const GetRoomMaster = (clientSerNo, propertySerNo) => {\r\n const apiUrl = \"/RoomMaster/manage-rooms/\" + clientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const CmbGetRoomClassMaster = (clientSerNo, propertySerNo) => {\r\n const apiUrl = \"/CmbKeyValue/CmbGetRoomClassMaster/\" + clientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetRoomMasterBySerNo = (clientSerNo, propertySerNo, roomSerNo) => {\r\n const apiUrl = \"/RoomMaster/manage-rooms/\" + clientSerNo + \"/\" + propertySerNo + \"/\" + roomSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n//#endregion Room Master\r\n\r\n//#region Room Type Master\r\n\r\nexport const GetRoomTypeMaster = (clientSerNo, propertySerNo) => {\r\n const apiUrl = \"/RoomType/manage-room-types/\" + clientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetRoomTypeMasterBySerNo = (clientSerNo, propertySerNo, roomTypeSerNo) => {\r\n const apiUrl = \"/RoomType/manage-room-types/\" + clientSerNo + \"/\" + propertySerNo + \"/\" + roomTypeSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const AddEditRoomTypeMaster = (para) => {\r\n const apiUrl = \"/RoomType/manage-room-type\";\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\n//#endregion Room Type Master\r\n\r\n//#region Upgrade and Downgrade Master\r\n\r\nexport const GetUpDowngradeReasonMaster = (clientSerNo) => {\r\n const apiUrl = \"/UpDowngradeReason/manage-updown-grade-reasons/\" + clientSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\n//#endregion\r\n\r\n//#region Rate Group Master\r\nexport const GetRateGroupMaster = (clientSerNo, propertySerNo) => {\r\n const apiUrl = \"/RateGroup/manage-rate-groups/\" + clientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetRateGroupMasterBySerNo = (clientSerNo, propertySerNo, RateGroupSerNo) => {\r\n const apiUrl = \"/RateGroup/manage-rate-groups/\" + clientSerNo + \"/\" + propertySerNo + \"/\" + RateGroupSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const AddEditRateGroupMaster = (objRateGroupMaster) => {\r\n const apiUrl = \"/RateGroup/manage-rate-group\";\r\n return axios.post(apiUrl, objRateGroupMaster);\r\n}\r\nexport const cmbGetRateTypeMaster = (clientSerNo) => {\r\n const apiUrl = \"/CmbKeyValue/cmbGetRateTypeMaster/\" + clientSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n//#endregion Rate group Master\r\n\r\n//#region Upgarde Reason Master\r\nexport const GetUpDowngardeReasonMaster = (clientSerNo) => {\r\n const apiUrl = \"/UpDowngradeReason/manage-updown-grade-reasons/\" + clientSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const AddEditUpDowngardeReasonMaster = (para) => {\r\n const apiUrl = \"/UpDowngradeReason/manage-updown-grade-reason\";\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion Upgarde Reason Master\r\n\r\n//#region Building Master\r\n\r\nexport const GetBuildingMaster = (clientSerNo, propertySerNo) => {\r\n const apiUrl = \"/BuildingMaster/manage-buildings/\" + clientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditBuildingMaster = (para) => {\r\n const apiUrl = \"/BuildingMaster/manage-building\";\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\n//#endregion Building Master\r\n\r\n//#region SpecialGroupMaster\r\nexport const GetSpecialGroupMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/SpecialGroupMaster/manage-special-group/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const AddEditSpecialGroupMaster = (para) => {\r\n const apiUrl = \"/SpecialGroupMaster/manage-special-group\";\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const GetSpecialGroupMasterBySerNo = (clientSerNo, propertySerNo, SpecialGroupSerNo) => {\r\n const apiUrl = \"/SpecialGroupMaster/manage-special-group/\" + clientSerNo + \"/\" + propertySerNo + \"/\" + SpecialGroupSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetSpecialMaster = (ClientSerNo, PropertySerNo, SpecialGroupSerNo) => {\r\n const apiUrl = \"/SpecialGroupMaster/manage-specials/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + SpecialGroupSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const AddEditSpecialMaster = (para) => {\r\n const apiUrl = \"/SpecialGroupMaster/manage-specials\";\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion\r\n\r\n//#region Floor Master\r\n\r\nexport const GetFloorMaster = (clientSerNo, propertySerNo) => {\r\n const apiUrl = \"/FloorMaster/manage-floors/\" + clientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetFloorMasterCombo = (clientSerNo, propertySerNo) => {\r\n const apiUrl = \"/FloorMaster/GetFloorMasterCombo/\" + clientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetFloorMasterBySerNo = (clientSerNo, propertySerNo, roomTypeSerNo) => {\r\n const apiUrl = \"/FloorMaster/manage-floors/\" + clientSerNo + \"/\" + propertySerNo + \"/\" + roomTypeSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const AddEditFloorMaster = (para) => {\r\n const apiUrl = \"/FloorMaster/manage-floor\";\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion Floor Master\r\n\r\n//#region Source Master\r\nexport const GetSourceMaster = (clientSerNo, propertySerNo,SourceGroupSerNo ) => {\r\n const apiUrl = \"/SourceMaster/manage-sources/\" + clientSerNo + \"/\" + propertySerNo + \"/\" + SourceGroupSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetSourceMasterBySerNo = (clientSerNo, propertySerNo, sourceSerNo) => {\r\n const apiUrl = \"/SourceMaster/manage-source/\" + clientSerNo + \"/\" + propertySerNo + \"/\" + sourceSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const AddEditSourceMaster = (sourceMasterObj) => {\r\n const apiUrl = \"/SourceMaster/manage-source\";\r\n return axios.post(apiUrl, sourceMasterObj);\r\n}\r\nexport const CmbGetSourceGroupMaster = (clientSerNo, propertySerNo) => {\r\n const apiUrl = \"/CmbKeyValue/CmbGetSourceGroupMaster/\" + clientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n//#endregion\r\n\r\n//#region Billing Instruction Master\r\nexport const GetBillingInstructionMaster = (ClientSerNo, propertySerNo) => {\r\n const apiUrl = \"/BillingInstructionMaster/manage-billing-instruction/\" + ClientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const AddEditBillingInstructionMaster = (para) => {\r\n const apiUrl = \"/BillingInstructionMaster/manage-billing-instruction\";\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion Billing Instruction Master\r\n\r\n//#region Market Master\r\nexport const GetMarketMaster = (ClientSerNo, propertySerNo, MarketGroupSerNo) => {\r\n const apiUrl = \"/MarketMaster/GetMarketMaster/\" + ClientSerNo + \"/\" + propertySerNo + \"/\" + MarketGroupSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const AddEditMarketMaster = (para) => {\r\n const apiUrl = \"/MarketMaster/AddEditMarketMaster\";\r\n return axios.post(apiUrl, para);\r\n}\r\nexport const GetmarketMasterBySerNo = (ClientSerNo, propertySerNo, MarketSerNo) => {\r\n const apiUrl = \"/Market/manage-market/\" + ClientSerNo + \"/\" + propertySerNo + \"/\" + MarketSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const cmbGetMarketGroupMaster = (ClientSerNo, propertySerNo) => {\r\n const apiUrl = \"/CmbKeyValue/cmbGetMarketGroupMaster/\" + ClientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n// export const AddEditMarketGroupMaster = (para) => {\r\n// const apiUrl = \"/Market/manage-market-group\";\r\n// return axios.post(apiUrl,para);\r\n// }\r\n// export const GetMarketGroupMaster =(ClientSerNo,propertySerNo) =>{\r\n// const apiUrl = \"/Market/manage-market-group/\" + ClientSerNo + \"/\" + propertySerNo ;\r\n// return axios.get(apiUrl);\r\n//}\r\nexport const GetMarketGroupMasterBySerNo = (ClientSerNo, propertySerNo, MarketGroupSerNo) => {\r\n const apiUrl = \"/Market/manage-market-group/\" + ClientSerNo + \"/\" + propertySerNo + \"/\" + MarketGroupSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n//#endregion Market Master\r\n\r\n//#region Market Group Master\r\nexport const GetMarketGroupMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/Market/manage-market-group/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditMarketGroupMaster = (para) => {\r\n const apiUrl = \"/Market/manage-market-group\";\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion Market Group Master\r\n\r\n\r\n//#region Cancellation Reason Master\r\nexport const GetCancelReasonData = (clientSerNo, propertySerNo) => {\r\n const apiUrl = \"/CancellationReasonMaster/manage-cancel-reason/\" + clientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const AddEditCancelReasonData = (CancelReasonObj) => {\r\n const apiUrl = \"/CancellationReasonMaster/manage-cancel-reason\";\r\n return axios.post(apiUrl, CancelReasonObj);\r\n}\r\n//#endregion Cancellation Reason Master\r\n//#region - TransportationTypeMaster\r\nexport const GetTransportationTypeMaster = (clientSerNo, propertySerNo) => {\r\n const apiUrl = \"/TransportationTypeMaster/manage-transportation-type/\" + clientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditTransportationTypeMaster = (para) => {\r\n const apiUrl = \"/TransportationTypeMaster/manage-transportation-type\"\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion - TransportationTypeMaster\r\n\r\n//#region DayTypeMaster\r\nexport const GetDayTypemaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/DayTypeMaster/manage-day-type-master/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditDayTypemaster = (para) => {\r\n const apiUrl = \"/DayTypeMaster/manage-day-type-master\"\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\n//#endregion\r\n//#region CancellationRuleMaster\r\nexport const GetCancellationRuleMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/CancellationRuleMaster/manage-cancellation-rule/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditCancellationRuleMaster = (para) => {\r\n const apiUrl = \"/CancellationRuleMaster/manage-cancellation-rule\";\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const GetCancellationRuleDetail = (ClientSerNo, PropertySerNo, CancellationRuleSerNo) => {\r\n const apiUrl = \"/CancellationRuleMaster/manage-cancellation-rule-detail/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + CancellationRuleSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditCancellationRuleDetail = (para) => {\r\n const apiUrl = \"/CancellationRuleMaster/manage-cancellation-rule-detail\";\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion\r\n\r\n//#region RateCodeMaster\r\nexport const GetRateCodeMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/RateCodeMaster/manage-rate-code-master/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetRateCodeMasterBySerNo = (ClientSerNo, PropertySerNo, RateSerNo) => {\r\n const apiUrl = \"/RateCodeMaster/manage-rate-code-master-BySerNo/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + RateSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetRoomTypeForRateCode = (ClientSerNo, PropertySerNo, RateSerNo) => {\r\n const apiUrl = \"/RateCodeMaster/manage-roomtype-for-ratecode/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + RateSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetRateCodeDetailRoomTypeBySerNo = (ClientSerNo, PropertySerNo, RateSerNo) => {\r\n const apiUrl = \"/RateCodeMaster/manage-rate-code-detail-RoomTypeBySerNo/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + RateSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetRateCodeDetailRateMonth = (ClientSerNo, PropertySerNo, RateSerNo, RoomTypeSerNo) => {\r\n const apiUrl = \"/RateCodeMaster/manage-ratecode-DetailRateMonth/\" +\r\n ClientSerNo + \"/\" +\r\n PropertySerNo + \"/\" +\r\n RateSerNo + \"/\" +\r\n RoomTypeSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetRateCodeDetailRate = (ClientSerNo, PropertySerNo, RateSerNo, RoomTypeSerNo, Year, Month) => {\r\n const apiUrl = \"/RateCodeMaster/manage-ratecode-DetailRate/\" +\r\n ClientSerNo + \"/\" +\r\n PropertySerNo + \"/\" +\r\n RateSerNo + \"/\" +\r\n RoomTypeSerNo + \"/\" +\r\n Year + \"/\" +\r\n Month;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const UpdateRateCodeDetailRate = (para) => {\r\n const apiUrl = \"/RateCodeMaster/manage-updateratecode-Detailrate\";\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const AddRateCodeDetailRoomType = (para) => {\r\n const apiUrl = \"/RateCodeMaster/manage-insertratecode-Detailroomtype\";\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const AddEditRateCodeMaster = (para) => {\r\n const apiUrl = \"/RateCodeMaster/manage-addEdit-rate-code-master\";\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion\r\n\r\nexport const GetPackageTypeMaster = (ClientSerNo) => {\r\n const apiUrl = \"/PackageMaster/manage-package-type/\" + ClientSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetPackageMaster = (ClientSerNo, PropertySerNo, PackageType) => {\r\n const apiUrl = \"/PackageMaster/manage-package-master/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + PackageType;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetPackageMasterList = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/PackageMaster/manage-package-master/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetRateCodeMiscellaneousMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/RateCodeMiscellaneousMaster/manage-RateCode-MiscellaneousMaster/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetRateCodeMiscellaneous = (ClientSerNo, PropertySerNo, RateSerNo) => {\r\n const apiUrl = \"/RateCodeMaster/manage-RateCode-Miscellaneous/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + RateSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetRateInclusionMaster = (ClientSerNo, PropertySerNo, RateSerNo) => {\r\n const apiUrl = \"/RateCodeMaster/manage-rate-inclusion-master/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + RateSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetReasonType = () => {\r\n const apiUrl = \"/CmbKeyValue/manage-reason-type\"\r\n return axios.get(apiUrl);\r\n}\r\n\r\n//#region Event Master\r\nexport const GetEventMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/EventMaster/manage-event-master/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditEventMaster = (para) => {\r\n const apiUrl = \"/EventMaster/manage-event-master\"\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion\r\n\r\nexport const GetDepartmentMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/Department/manage-department/\" + ClientSerNo + \"/\" + PropertySerNo\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditDepartment = (para) => {\r\n const apiUrl = \"/Department/manage-department\";\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const GetTransportationProviderMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/TransportationProvider/manage-transportation-provider/\" + ClientSerNo + \"/\" + PropertySerNo\r\n return axios.get(apiUrl);\r\n}\r\nexport const AddEditTransportationProviderMaster = (para) => {\r\n const apiUrl = \"/TransportationProvider/manage-transportation-provider\"\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const GetNoteTypeMaster = () => {\r\n const apiUrl = \"/NoteTypeMaster/manage-notetype\"\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditNoteTypeMaster = (para) => {\r\n const apiUrl = \"/NoteTypeMaster/manage-notetype\"\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\n//#region SourceGroupMaster\r\nexport const GetSourceGroupMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/SourceMaster/manage-source-group/\" + ClientSerNo + \"/\" + PropertySerNo\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditSourceGroupMaster = (para) => {\r\n const apiUrl = \"/SourceMaster/manage-source-group\"\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion\r\n\r\n","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnSingleSelectDropdown,\r\n InnLoader,\r\n InnTextbox\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from 'react-redux';\r\nimport { CompanyModalPopup } from \"./companyModalPopup\";\r\nimport rightarrow from \"../../../../assets/images/right-circle-arrow-gray.svg\";\r\nimport { cmbGetProfileTitleMaster, AddProfileMaster } from \"../../../../services/reservationService\";\r\nimport {GetProfileCommunicationTypeMaster} from \"../../../../services/generalService\";\r\nimport { useAlert } from \"../../../../utils/hooks/useAlert\";\r\n\r\nexport function AddGuestModalPopup(props) {\r\n\r\n //#region state variable \r\n const { innkeyAlert } = useAlert();\r\n const currUser = useSelector(currentUser);\r\n const [titleData, setTitleData] = useState([]);\r\n const [isOpenCompany, setIsOpenCompany] = useState(false);\r\n const [profileObj, setProfileObj] = useState({\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"ProfileType\": \"Gu\",\r\n \"TitleSerNo\": \"\",\r\n \"FirstName\": \"\",\r\n \"MiddleName\": \"\",\r\n \"LastName\": \"\",\r\n \"FullName\": \"\",\r\n \"Designation\": \"\",\r\n \"Department\": \"\",\r\n \"VIPStatusSerNo\": 0,\r\n \"MembershipLevelSerNo\": 0,\r\n \"ProfileCommunication\": {\r\n \"CommunicationTypeSerNo\": 0,\r\n \"Mobile\": \"\",\r\n \"Email\": \"\",\r\n \"Landline\": \"\",\r\n \"IsPrimary\": true\r\n },\r\n \"ProfileAddress\": {\r\n \"ProfileAddressTypeSerNo\": 0,\r\n \"CountrySerNo\": 0,\r\n \"StateSerNo\": 0,\r\n \"CitySerNo\": 0,\r\n \"PostCode\": \"\",\r\n \"Street\": \"\",\r\n \"IsPrimary\": true\r\n },\r\n \"ProfileBusinessInfo\": {\r\n \"CompanyProfileSerNo\": 0,\r\n \"CompanyName\": \"\",\r\n \"Designation\": \"\",\r\n \"SetCurrent\": true\r\n },\r\n \"ProfileContactDetail\": {\r\n\r\n }\r\n });\r\n\r\n //#endregion state variable\r\n \r\n const [communicationTypeData, setCommunicationTypeData] = useState([]);\r\n //#region custom function \r\n\r\n const fillTitleMaster = () => {\r\n cmbGetProfileTitleMaster(parseInt(currUser.ClientSerNo)).then(d => {\r\n setTitleData(d.data);\r\n })\r\n }\r\n const fillCommunicationTypeMaster = () => {\r\n GetProfileCommunicationTypeMaster(currUser.ClientSerNo).then((d) => { \r\n let lstCommunication = [];\r\n d.data.forEach((x) => {\r\n lstCommunication = [...lstCommunication, { key: x.CommunicationTypeSerNo, value: x.Name }]\r\n })\r\n setCommunicationTypeData(lstCommunication);\r\n })\r\n }\r\n const validatePage = () => {\r\n let isValidPage = true;\r\n\r\n if (profileObj.TitleSerNo == \"\") {\r\n isValidPage = false;\r\n }\r\n if (profileObj.FirstName == \"\") {\r\n isValidPage = false;\r\n }\r\n if (profileObj.LastName == \"\") {\r\n isValidPage = false;\r\n }\r\n\r\n return isValidPage;\r\n }\r\n\r\n const addProfile = () => {\r\n if (validatePage()) {\r\n AddProfileMaster(profileObj).then(d => {\r\n if (d.data.result.Code == \"200\") {\r\n alert(d.data.result.Message);\r\n if (props.handleSave == undefined)\r\n console.log(\"handleSave is not defined.\")\r\n else\r\n props.handleSave(d.data);\r\n }\r\n })\r\n } else {\r\n alert(\"Guest name is required.\")\r\n }\r\n }\r\n //#endregion custom function \r\n\r\n //#region Useeffect \r\n useEffect(() => {\r\n fillTitleMaster();\r\n fillCommunicationTypeMaster();\r\n }, []);\r\n\r\n //#endregion Useeffect \r\n\r\n //#region Events\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose == undefined)\r\n console.log(\"handleOnclose is not defined\");\r\n else\r\n props.handleOnclose(false);\r\n }\r\n const handleSaveClick = () => {\r\n //console.log(\"obj \",profileObj);\r\n addProfile();\r\n }\r\n const handleOnMobileChanged = (v) => {\r\n let obj = profileObj;\r\n console.log(\"error mobile \",obj);\r\n obj.ProfileCommunication.Mobile = v;\r\n setProfileObj(obj);\r\n }\r\n const handleOnEmailChanged = (v) => {\r\n let obj = profileObj;\r\n obj.ProfileCommunication.Email = v;\r\n setProfileObj(obj);\r\n }\r\n const handleOnCompanySelection = (v) => {\r\n let obj = profileObj;\r\n obj.ProfileBusinessInfo.CompanyProfileSerNo = v.ProfileSerNo;\r\n obj.ProfileBusinessInfo.CompanyName = v.CompanyName;\r\n setProfileObj(obj);\r\n setIsOpenCompany(false);\r\n }\r\n\r\n //#endregion Events\r\n\r\n const selectData = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n

Add Guest

\r\n
\r\n
\r\n \r\n Save\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n setProfileObj(prev => ({ ...prev, TitleSerNo: parseInt(item.key) }))\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n setProfileObj(prev => ({ ...prev, FirstName: v }))}>First Name*\r\n
\r\n
\r\n setProfileObj(prev => ({ ...prev, LastName: v }))}>Last Name*\r\n
\r\n
\r\n
\r\n x.key == profileObj.ProfileCommunication.CommunicationTypeSerNo)?.value}\r\n list={communicationTypeData}\r\n selectedSerNo={profileObj.ProfileCommunication.CommunicationTypeSerNo}\r\n name=\"Single Select\"\r\n label=\"Communication Type\"\r\n onChange={(item) => {\r\n let obj = profileObj;\r\n obj.ProfileCommunication.CommunicationTypeSerNo = item.key;\r\n setProfileObj(obj);\r\n }}\r\n >\r\n \r\n
\r\n Mobile\r\n Email\r\n
\r\n { }}\r\n onClick={() => setIsOpenCompany(true)}\r\n >\r\n Company\r\n \r\n setIsOpenCompany(true)}\r\n >\r\n \r\n \r\n
\r\n
\r\n {/* { \r\n \r\n }}\r\n > */}\r\n setProfileObj(prev => ({ ...prev, Department: v }))}>Department\r\n
\r\n
\r\n {/* { \r\n \r\n }}\r\n > */}\r\n setProfileObj(prev => ({ ...prev, Designation: v }))}>Designation\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n {\r\n isOpenCompany ?\r\n { setIsOpenCompany(false); }}>\r\n \r\n : <>\r\n }\r\n
\r\n \r\n )\r\n}","import React, { useState } from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n InnTooltip,\r\n InnFileUpload,\r\n InnSwitch,\r\n InnSingleDateSelection,\r\n InnSingleSelectDropdown,\r\n InnTextbox,\r\n InnPlainButton,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnModalPopup,\r\n InnButtonTypeWithDropdown,\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { AddEditGuestProfileIdentification, GetGuestProfileIdentificationList, GetIdentificationTypeMaster, GetCountryMaster } from \"../../../../services/guestProfileMasterService\";\r\n\r\nexport function GuestProfileIdentification(props) {\r\n const [showIdentificationModal, setShowIdentificationModal] = useState(false);\r\n const selectdata = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n const ActionOption = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n ];\r\n\r\n console.log(\"PROPS\", props.para);\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"ProfileSerNo\": parseInt(props.para),\r\n \"ProfileIdentificationSerNo\": 0,\r\n \"IdentificationTypeSerNo\": 0,\r\n \"IdentificationNo\": \"\",\r\n \"DateofIssue\": \"\",\r\n \"DateofExpiry\": \"\",\r\n \"IssuingCountrySerNo\": 0,\r\n \"PlaceofIssue\": \"\",\r\n \"FrontsideImagePath\": \"\",\r\n \"BacksideImagePath\": \"\",\r\n \"IsPrimary\": false,\r\n \"ArrivingFrom\": \"\",\r\n \"ReturningTo\": \"\",\r\n \"Mode\": \"View\"\r\n }\r\n\r\n const validationObj = {\r\n \"IdentificationTypeSerNo\": \"\",\r\n \"IdentificationNo\": \"\",\r\n \"PlaceofIssue\": \"\",\r\n \"IssuingCountrySerNo\": \"\",\r\n \"ArrivingFrom\":\"\",\r\n \"ReturningTo\":\"\"\r\n // \"FrontsideImagePath\": \"\",\r\n // \"BacksideImagePath\": \"\"\r\n }\r\n // const ProfileSerNo = 1;\r\n const [guestProfileIdentificationList, setGuestProfileIdentificationList] = useState([]);\r\n const [guestProfileIdentificationObj, setGuestProfileIdentificationObj] = useState(defaultObj);\r\n const [guestProfileIdentificationValidation, setGuestProfileIdentificationValidation] = useState(validationObj);\r\n const [selectedDocType, setSelectedDocType] = useState(0);\r\n const [ddlIdentificationType, setDdlIdentificationType] = useState([]);\r\n const [ddlIssueCountry, setDdlIssueCountry] = useState([]);\r\n\r\n let MatchProfileIdentification = guestProfileIdentificationObj.ProfileIdentificationSerNo;\r\n\r\n useEffect(() => {\r\n fillGuestProfileIdentification();\r\n loadIdentificationType();\r\n loadIssueCountry();\r\n }, []);\r\n\r\n const clearValidation = () => {\r\n setGuestProfileIdentificationValidation(validationObj);\r\n }\r\n\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (guestProfileIdentificationObj.IdentificationTypeSerNo == 0) {\r\n isValid = false;\r\n setGuestProfileIdentificationValidation(prev => ({ ...prev, IdentificationTypeSerNo: \"Please Select Identification Type\" }));\r\n }\r\n if (guestProfileIdentificationObj.IdentificationNo == \"\" || guestProfileIdentificationObj.IdentificationNo == null) {\r\n isValid = false;\r\n setGuestProfileIdentificationValidation(prev => ({ ...prev, IdentificationNo: \"Please Enter Identification Number\" }));\r\n }\r\n if (guestProfileIdentificationObj.PlaceofIssue == \"\" || guestProfileIdentificationObj.PlaceofIssue == null) {\r\n isValid = false;\r\n setGuestProfileIdentificationValidation(prev => ({ ...prev, PlaceofIssue: \"Please Enter Place of Issue\" }));\r\n }\r\n if (guestProfileIdentificationObj.IssuingCountrySerNo == 0) {\r\n isValid = false;\r\n setGuestProfileIdentificationValidation(prev => ({ ...prev, IssuingCountrySerNo: \"Please Select Issuing Country\" }));\r\n }\r\n // if (guestProfileIdentificationObj.FrontsideImagePath == \"\" || guestProfileIdentificationObj.FrontsideImagePath == null) {\r\n // isValid = false;\r\n // setGuestProfileIdentificationValidation(prev => ({ ...prev, FrontsideImagePath: \"Please Select Front Side Image\" }));\r\n // }\r\n // if (guestProfileIdentificationObj.BacksideImagePath == \"\" || guestProfileIdentificationObj.BacksideImagePath == null) {\r\n // isValid = false;\r\n // setGuestProfileIdentificationValidation(prev => ({ ...prev, BacksideImagePath: \"Please Select Back Side Image\" }));\r\n // }\r\n if(guestProfileIdentificationObj.IssuingCountrySerNo!=98){\r\n if((guestProfileIdentificationObj.ArrivingFrom).trim()==\"\" ||(guestProfileIdentificationObj.ArrivingFrom).trim()==null ){\r\n setGuestProfileIdentificationValidation(prev => ({ ...prev, ArrivingFrom: \"Please Enter arrving from\" }));\r\n isValid = false;\r\n }\r\n if((guestProfileIdentificationObj.ReturningTo).trim()==\"\" ||(guestProfileIdentificationObj.ReturningTo).trim()==null ){\r\n setGuestProfileIdentificationValidation(prev => ({ ...prev, ReturningTo: \"Please enter returning to\" }));\r\n isValid = false; \r\n }\r\n }\r\n return isValid;\r\n }\r\n\r\n console.log(\"selectedDocType>>>\", selectedDocType);\r\n\r\n const fillGuestProfileIdentification = () => {\r\n GetGuestProfileIdentificationList(parseInt(currUser.ClientSerNo), parseInt(props.para)).then(d => {\r\n console.log(d.data);\r\n setGuestProfileIdentificationList(d.data);\r\n })\r\n }\r\n\r\n const loadIdentificationType = () => {\r\n GetIdentificationTypeMaster().then(d => {\r\n let identificationType = [{ key: 0, value: \"Select\" }];\r\n d.data.map(ele => {\r\n identificationType.push({ key: parseInt(ele.IdentificationTypeSerNo), value: ele.Name });\r\n })\r\n setDdlIdentificationType(identificationType);\r\n })\r\n }\r\n\r\n const loadIssueCountry = () => {\r\n GetCountryMaster(parseInt(currUser.ClientSerNo)).then(d => {\r\n let IssueCountryList = [{ key: 0, value: \"Select\" }];\r\n d.data.map(ele => {\r\n IssueCountryList.push({ key: (ele.CountrySerNo), value: ele.Name });\r\n })\r\n setDdlIssueCountry(IssueCountryList);\r\n })\r\n }\r\n\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n console.log(guestProfileIdentificationObj);\r\n if (IsPageValid) {\r\n AddEditGuestProfileIdentification(guestProfileIdentificationObj).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n fillGuestProfileIdentification();\r\n setGuestProfileIdentificationValidation(validationObj)\r\n setGuestProfileIdentificationObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alert(\"Something went wrong\");\r\n }\r\n })\r\n }\r\n else {\r\n alert(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n\r\n const handleOnAddClick = () => {\r\n setSelectedDocType(0);\r\n let obj = defaultObj;\r\n obj.Mode = \"Add\";\r\n setGuestProfileIdentificationObj(obj);\r\n }\r\n\r\n const handleOnEditClick = () => {\r\n if (guestProfileIdentificationObj.PlaceofIssue == \"\") {\r\n alert(\"No Profile Identification Selected.\");\r\n } else {\r\n setGuestProfileIdentificationObj(prev => ({ ...prev, Mode: \"Edit\", ClientSerNo: parseInt(currUser.ClientSerNo) }));\r\n }\r\n }\r\n\r\n const hanldeOnCancelClick = () => {\r\n setSelectedDocType(0);\r\n clearValidation();\r\n\r\n if (guestProfileIdentificationList.length > 0) {\r\n let existingObj;\r\n if (guestProfileIdentificationObj.ProfileIdentificationSerNo != 0) {\r\n existingObj = guestProfileIdentificationList.find(x => x.ProfileIdentificationSerNo == guestProfileIdentificationObj.ProfileIdentificationSerNo);\r\n } else {\r\n existingObj = guestProfileIdentificationList[0];\r\n }\r\n if (guestProfileIdentificationObj.Mode == \"Add\") {\r\n if (existingObj != undefined) {\r\n existingObj.Mode = 'View';\r\n setSelectedDocType(existingObj.IdentificationTypeSerNo);\r\n setGuestProfileIdentificationObj(existingObj);\r\n } else {\r\n setGuestProfileIdentificationObj(defaultObj);\r\n }\r\n }\r\n if (guestProfileIdentificationObj.Mode == \"Edit\") {\r\n if (existingObj != undefined) {\r\n existingObj.Mode = 'View';\r\n setSelectedDocType(existingObj.IdentificationTypeSerNo);\r\n setGuestProfileIdentificationObj(existingObj);\r\n } else {\r\n setGuestProfileIdentificationObj(defaultObj);\r\n }\r\n }\r\n }\r\n }\r\n\r\n const handlePopEditClick = () => {\r\n setShowIdentificationModal(!showIdentificationModal);\r\n setGuestProfileIdentificationObj(defaultObj);\r\n }\r\n\r\n const IdentificationTooltip = () => {\r\n return (\r\n
\r\n
\r\n {\r\n guestProfileIdentificationList.map(d => {\r\n return (\r\n <>\r\n
\r\n
{d.Name}
\r\n
\r\n
\r\n
Issue Date : {d.DateofIssue}
\r\n
Expiry Date : {d.DateofExpiry}
\r\n
\r\n \r\n )\r\n })\r\n }\r\n\r\n
\r\n
\r\n handlePopEditClick()}>Edit\r\n \r\n Actions\r\n \r\n
\r\n
\r\n );\r\n };\r\n return (\r\n <>\r\n {showIdentificationModal ? (\r\n setShowIdentificationModal(false)}>\r\n
\r\n
\r\n
\r\n

Identification

\r\n
\r\n
\r\n {\r\n guestProfileIdentificationObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n IDENTIFICATION LIST\r\n +\r\n
\r\n {\r\n guestProfileIdentificationList.map((d) => {\r\n // console.log(\"D ProfileIdentificationSerNo >> \", d.ProfileIdentificationSerNo);\r\n // console.log(\"Data Match >>\", MatchProfileIdentification);\r\n\r\n return
{\r\n setGuestProfileIdentificationObj({ ...d, Mode: \"View\" })\r\n }}>{d.Name}
\r\n })\r\n }\r\n {/*
Passport
\r\n
Aadhar Card
*/}\r\n
\r\n
\r\n
\r\n
\r\n
IDENTIFICATION
\r\n
\r\n {\r\n // console.log(item, name);\r\n setGuestProfileIdentificationObj(prev => ({ ...prev, IdentificationTypeSerNo: parseInt(item.key) }));\r\n setSelectedDocType(item);\r\n }}>\r\n
\r\n
\r\n {\r\n setGuestProfileIdentificationObj(prev => ({ ...prev, IdentificationNo: e }));\r\n setGuestProfileIdentificationValidation(prev => ({ ...prev, IdentificationNo: \"\" }));\r\n }}\r\n >\r\n Identification Number\r\n \r\n
\r\n
\r\n {\r\n setGuestProfileIdentificationObj(prev => ({ ...prev, PlaceofIssue: e }));\r\n setGuestProfileIdentificationValidation(prev => ({ ...prev, PlaceofIssue: \"\" }));\r\n }}\r\n >Place of Issue\r\n
\r\n
\r\n {\r\n // console.log(item, name);\r\n setGuestProfileIdentificationObj(prev => ({ ...prev, IssuingCountrySerNo: parseInt(item.key) }));\r\n setSelectedDocType(item);\r\n }}>\r\n
\r\n
\r\n {\r\n setGuestProfileIdentificationObj(prev => ({ ...prev, DateofIssue: e }));\r\n }}\r\n >\r\n
\r\n
\r\n {\r\n setGuestProfileIdentificationObj(prev => ({ ...prev, DateofExpiry: e }));\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n
\r\n
Front Side
\r\n
\r\n
\r\n {\r\n // console.log(v);\r\n setGuestProfileIdentificationObj(prev => ({ ...prev, FrontsideImagePath: v }));\r\n // setGuestProfileIdentificationValidation(prev => ({ ...prev, FrontsideImagePath: \"\" }));\r\n }}\r\n >\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Back Side
\r\n
\r\n
\r\n {\r\n // console.log(v);\r\n setGuestProfileIdentificationObj(prev => ({ ...prev, BacksideImagePath: v }));\r\n // guestProfileIdentificationValidation(prev => ({ ...prev, BacksideImagePath: \"\" }));\r\n }}\r\n >\r\n \r\n
\r\n
\r\n
\r\n
\r\n {\r\n setGuestProfileIdentificationObj(prev => ({ ...prev, ArrivingFrom: v }));\r\n setGuestProfileIdentificationValidation(prev => ({ ...prev, ArrivingFrom: \"\" }));\r\n }}\r\n >\r\n Arriving From\r\n \r\n
\r\n
\r\n {\r\n setGuestProfileIdentificationObj(prev => ({ ...prev, ReturningTo: v }));\r\n setGuestProfileIdentificationValidation(prev => ({ ...prev, ReturningTo: \"\" }));\r\n }}\r\n >\r\n Returning to\r\n \r\n
\r\n
\r\n
\r\n Primary\r\n {\r\n console.log(v);\r\n setGuestProfileIdentificationObj((prev) => ({ ...prev, IsPrimary: v }));\r\n }}\r\n >\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n ) : null\r\n }\r\n \r\n
\r\n\r\n Identification\r\n\r\n ({guestProfileIdentificationList.length})\r\n
\r\n
\r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnTooltip,\r\n InnPrimaryButton,\r\n InnPlainButton,\r\n} from \"../../../../component\";\r\nimport {\r\n IndiReservationContact,\r\n IndiBookedOn,\r\n IndiAccompanyGuest,\r\n IndiSharer,\r\n IndiTransportation,\r\n IndiBillingInstruction,\r\n IndiRoutingInstruction,\r\n IndiDepositeRule,\r\n IndiVipStatus,\r\n IndiRoomFeature,\r\n IndiSpecial,\r\n IndiAlert,\r\n IndiTrace,\r\n IndiGuestProfile,\r\n IndiArrival,\r\n IndiAdultChild,\r\n IndiRoomRate,\r\n IndiInclusion,\r\n IndiPackege,\r\n IndiRoomType,\r\n IndiAgent,\r\n IndiCompany,\r\n IndiReservationType,\r\n IndiRateCode,\r\n IndiDailyRate,\r\n IndiGuestName\r\n} from \"../indicators\";\r\nimport smsIcon from \"../../../../assets/images/sms-tooltip-icon.svg\";\r\nimport EmailTooltipIcon from \"../../../../assets/images/email-tooltip-icon.svg\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n GetReservationInfoData,\r\n manageReservationBalanceIndicator,\r\n GetReservationInfoProfileData\r\n} from \"../../../../services/reservationService\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nexport function TipDueIn(props) {\r\n //#region UseState Variable\r\n const currUser = useSelector(currentUser);\r\n const history = useHistory();\r\n const [reservationInfoData, setReservationInfoData] = useState({});\r\n const [isReloadTransportation, setIsReloadTransportation] = useState(false);\r\n const [updatePreference, setUpdatePreference] = useState(false);\r\n const [selectedGuestProfile, setSelectedGuestProfile] = useState({});\r\n const [totalBalance, setTotalBalance] = useState({});\r\n const [guestInfo, setGuestInfo] = useState({});\r\n //#endregion\r\n //#region Local Variable\r\n const reservationObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: props.para.ReservationSerNo,\r\n };\r\n //#endregion\r\n\r\n //#region APICallFunction\r\n\r\n const getSelectedGuestInfo = (guestProfileSerNo) => {\r\n GetReservationInfoProfileData(currUser.ClientSerNo, guestProfileSerNo,\"GU\").then(d => {\r\n setGuestInfo(d.data);\r\n })\r\n }\r\n //#endregion\r\n //#region Event\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n };\r\n //#endregion\r\n //#region UseEffect \r\n useEffect(() => {\r\n if (props.para.ReservationSerNo != undefined) {\r\n GetReservationInfoData(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n props.para.ReservationSerNo\r\n ).then((d) => {\r\n setReservationInfoData(d.data);\r\n getSelectedGuestInfo(d.data.GuestProfileSerNo);\r\n });\r\n }\r\n }, [props.para.ReservationSerNo]);\r\n\r\n useEffect(() => {\r\n manageReservationBalanceIndicator(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n reservationObj.ReservationSerNo\r\n ).then((d) => {\r\n setTotalBalance(d.data);\r\n });\r\n }, []);\r\n //#endregion\r\n\r\n //#region ToolTip Function\r\n const GuestTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
{guestInfo.ContactName}
\r\n
\r\n {guestInfo.ContactMobile}\r\n \r\n SMS\r\n \r\n
\r\n
\r\n {guestInfo.ContactEmail}\r\n \r\n Email\r\n \r\n
\r\n
\r\n
\r\n {/*
\r\n Edit\r\n
*/}\r\n
\r\n );\r\n };\r\n const DueInStatusTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n Checked In By\r\n Mr. Hemang\r\n
\r\n
Date: 25th Sept.
\r\n
Time: 15:45
\r\n
PC: 192.168.600.789
\r\n
\r\n
\r\n
\r\n );\r\n };\r\n //#endregion\r\n return (\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {reservationInfoData.GuestName}\r\n \r\n \r\n \r\n Booking No: {reservationInfoData.BookingNo}\r\n
\r\n
\r\n
\r\n \r\n Due In\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {totalBalance.Nights} Nights  Inclusive of all taxes\r\n
\r\n
\r\n {totalBalance.Balance}\r\n
\r\n\r\n {\r\n history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: reservationInfoData.ReservationSerNo,filterObj: (props.para.filterObj) == undefined ? undefined : props.para.filterObj} });\r\n }}>View\r\n
\r\n
\r\n
\r\n
Reservation
\r\n \r\n \r\n {\r\n setIsReloadTransportation(!isReloadTransportation);\r\n }}\r\n >\r\n \r\n \r\n
BILLING
\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n setSelectedGuestProfile(item);\r\n setUpdatePreference(!updatePreference);\r\n }}\r\n >\r\n\r\n \r\n setUpdatePreference(!updatePreference)}\r\n para={{ ...reservationInfoData, IsShowTooltipActionButton: \"hide\" }}\r\n >\r\n setUpdatePreference(!updatePreference)}\r\n para={{ ...reservationInfoData, IsShowTooltipActionButton: \"hide\" }}\r\n >\r\n
\r\n Stay History\r\n (2)\r\n
\r\n
\r\n Notification\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import { tableBodyClasses } from \"@mui/material\";\r\nimport axios from \"axios\";\r\n\r\nexport const GetOutletDataBilling = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/OutletMaster/manage-Outlet-Data-Billing/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetOutletTableDataBilling = (ClientSerNo, PropertySerNo, OutletSerNo, TableSerNo) => {\r\n const apiUrl = \"/OutletMaster/manage-pos-outlet-table-data/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + OutletSerNo + \"/\" + TableSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetMenuMasterDataBilling = (ClientSerNo, PropertySerNo, OutletSerNo) => {\r\n const apiUrl = \"/MenuMaster/manage-Menu-Data-Billing/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + OutletSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetMenuCategoryMasterBilling = (ClientSerNo, PropertySerNo, MenuSerNo) => {\r\n const apiUrl = \"/MenuMaster/manage-Menu-Category-Master/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + MenuSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetMenuSubCategoryMasterBilling = (ClientSerNo, PropertySerNo, MenuSerNo) => {\r\n const apiUrl = \"/MenuMaster/manage-Menu-Sub-Category-Master/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + MenuSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetMenuItemDetailBilling = (ClientSerNo, PropertySerNo, MenuSerNo) => {\r\n const apiUrl = \"/MenuMaster/manage-Menu-item-billing/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + MenuSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetMenuMenuItemToppingBilling = (ClientSerNo, PropertySerNo, MenuSerNo) => {\r\n const apiUrl = \"/MenuMaster/manage-Menu-item-master-topping/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + MenuSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetOpenTableDetails = (ClientSerNo, PropertySerNo, TableSerNo, OutletSerNo, UserID) => {\r\n const apiUrl = \"/POSBilling/manage-open-table-details/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + TableSerNo + \"/\" + OutletSerNo + '/' + UserID;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetCourseMasterBilling = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/CourseMaster/manage-Course-Master/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetServerMasterBilling = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/ServerMaster/manage-Server-Master/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetReferenceMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/ReferenceMaster/manage-reference-master/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetTaxExemptionMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/ExemptionMaster/manage-Exemption-Master/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetRateCodeMasterPOS = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/RateCodeMaster/manage-rate-code-master-pos/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetTransactionMaster = (ClientSerNo, PropertySerNo, TransactionType, Module) => {\r\n const apiUrl = \"/TransactionMaster/manage-transaction-master/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + TransactionType + \"/\" + Module;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetCreditCardMachineMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/CreditCardMachineMaster/manage-credit-card-master/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetCookingInstructionGroupMaster = (ClientSerNo) => {\r\n const apiUrl = \"/CookingInstructionGroupMaster/manage-Cooking-Instruction-Group-Master/\" + ClientSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetCookingInstructionMaster = (ClientSerNo) => {\r\n const apiUrl = \"/CookingInstructionMaster/manage-Cooking-Instruction-Master/\" + ClientSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetPOSShowDetailData = (ClientSerNo, PropertySerNo, CheckSerNo) => {\r\n const apiUrl = \"/POSBilling/manage-pos-show-detail-data/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + CheckSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetPOSRoomSettlementData = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/POSBilling/manage-pos-room-settlement-data/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const CheckDynamicTableForPOS = (ClientSerNo, PropertySerNo, TableSerNo) => {\r\n const apiUrl = \"/POSBilling/manage-check-dynamic-table/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + TableSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetPOSInvoiceDetail = (ClientSerNo, PropertySerNo, CheckSerNo) => {\r\n const apiUrl = \"/POSBilling/manage-pos-invoice-detail/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + CheckSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const InsertPOSItemTableData = (para) => {\r\n const apiUrl = \"/POSBilling/manage-Insert-POS-Table\";\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const InsertPOSSettlement = (para) => {\r\n const apiUrl = \"/POSBilling/manage-insert-pos-settlement\";\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const POSTableField = (para) => {\r\n const apiUrl = \"/POSBilling/manage-pos-table-field\";\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const POSTableItemField = (para) => {\r\n const apiUrl = \"/POSBilling/manage-pos-table-item-field\";\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const POSTableMerge = (para) => {\r\n const apiUrl = \"/POSBilling/manage-POS-Table-Merge\";\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const UpdatePOSItemDiscount = (para) => {\r\n const apiUrl = \"/POSBilling/manage-update-pos-item-discount\";\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const POSSplitQty = (para) => {\r\n const apiUrl = \"/POSBilling/manage-pos-split-qty\";\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const POSShiftItem = (para) => {\r\n const apiUrl = \"/POSBilling/manage-pos-shift-item\";\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const POSTableCloseCheck = (para) => {\r\n const apiUrl = \"/POSBilling/manage-pos-table-close-check\";\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const POSSplitTableInsertPOSItem = (para) => {\r\n const apiUrl = \"/POSBilling/manage-split-table-insert-pos-item\";\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const UpdatePOSPrintFlag = (para) => {\r\n const apiUrl = \"/POSBilling/manage-update-pos-print-flag\";\r\n return axios.post(apiUrl, para);\r\n}\r\nexport const GetPOSCheckHistoryDetail = (ClientSerNo, PropertySerNo, FromDate, ToDate, OutletSerNo,isUnSettleBill, PageNumber) => {\r\n const apiUrl = \"/POSBilling/manage-pos-checkhistory-detail/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + FromDate + \"/\" + ToDate + \"/\" + OutletSerNo + \"/\" + isUnSettleBill + \"/\" + PageNumber;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetPOSInvoiceCheckHistoryDetail = (ClientSerNo, PropertySerNo, CheckSerNo) => {\r\n const apiUrl = \"/POSBilling/manage-pos-invoice-checkhistory-detail/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + CheckSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\n//#region POSVoidCheckDetail\r\nexport const POSVoidCheckDetail = (para) => {\r\n const apiUrl = \"/POSBilling/manage-pos-void-check-detail\"\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion return axios.post(apiUrl,para);\r\n\r\n\r\nexport const InsertMiniBarSettlement = (para) => {\r\n const apiUrl = \"/POSBilling/manage-insert-pos-billing-settelment\";\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const InsertMiniBarRoomSettlement = (para) => {\r\n const apiUrl = \"/POSBilling/manage-insert-post-billing-settelment\";\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const ReSettlePOSBill = (para) => {\r\n const apiUrl = \"/POSBilling/manage-re-settle-pos-bill\"\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const GetBanquetBookingList = (para) => {\r\n const apiUrl = \"/BanquetBooking/manage-banquet-booking-list\";\r\n return axios.post(apiUrl,para);\r\n}\r\n\r\n\r\nexport const GetBanquetHeader=(ClientSerNo,PropertySerNo,BookingSerNo)=>{\r\n const apiUrl=\"/BanquetBooking/manage-banquet-header/\"+ClientSerNo+\"/\"+PropertySerNo+\"/\"+BookingSerNo\r\n return axios.get(apiUrl)\r\n}\r\nexport const GetBanquetOutletData=(ClientSerNo,PropertySerNo)=>{\r\n const apiUrl = \"/BanquetBooking/manage-banquet-outlet-data/\"+ClientSerNo+\"/\"+PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddBanquetBooking=(para)=>{\r\n const apiUrl=\"/BanquetBooking/manage-banquet-booking\"\r\n return axios.post(apiUrl,para); \r\n}\r\n\r\nexport const GetBanquetBookingVenueList=(ClientSerNo,PropertySerNo,BookingSerNo)=>{\r\n const apiUrl=\"/BanquetBooking/manage-banquet-booking-venue/\"+ClientSerNo+\"/\"+PropertySerNo+\"/\"+BookingSerNo \r\n return axios.get(apiUrl);\r\n}\r\n\r\n\r\nexport const AddBanquetBookingVenue=(para)=>{\r\n const apiUrl=\"/BanquetBooking/manage-banquet-booking-venue\";\r\n return axios.post(apiUrl,para)\r\n}\r\n\r\nexport const GetBanquetFunctionMaster=(ClientSerNo,PropertySerNo)=>{\r\n const apiUrl=\"/BanquetBooking/manage-banquet-function-master/\"+ClientSerNo+\"/\"+PropertySerNo\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetSalesPersonMaster=(ClientSerNo,PropertySerNo)=>{\r\n const apiUrl=\"/BanquetBooking/manage-banquet-sales-person/\"+ClientSerNo+\"/\"+PropertySerNo\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddBanquetVenueItem=(para)=>{\r\n const apiUrl=\"/BanquetBooking/manage-banquet-venue-item\"\r\n return axios.post(apiUrl,para)\r\n}\r\n\r\nexport const GetBanquetBookingVenueDetail=(ClientSerNo,PropertySerNo,BookingSerNo,BookingSubSerNo)=>{\r\n const apiUrl=\"/BanquetBooking/manage-banquet-booking-venue-detail/\"+ClientSerNo+\"/\"+PropertySerNo+\"/\"+BookingSerNo +\"/\"+BookingSubSerNo\r\n return axios.get(apiUrl); \r\n} \r\n\r\nexport const GetBanquetBookingStatus=()=>{\r\n const apiUrl=\"/BanquetBooking/manage-banquet-booking-status\"\r\n return axios.get(apiUrl); \r\n} ","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n InnTooltip,\r\n InnPrimaryButton,\r\n InnPlainButton,\r\n} from \"../../../../component\";\r\nimport {\r\n IndiArrival,\r\n IndiRoomType,\r\n IndiAdultChild,\r\n IndiAgent,\r\n IndiCompany,\r\n IndiReservationType,\r\n IndiRateCode,\r\n IndiRoomRate,\r\n IndiDailyRate,\r\n IndiInclusion,\r\n IndiReservationContact,\r\n IndiBookedOn,\r\n IndiAccompanyGuest,\r\n IndiSharer,\r\n IndiCancellationRule,\r\n IndiRoutingInstruction,\r\n IndiDepositeRule,\r\n IndiGuestProfile,\r\n IndiVipStatus,\r\n IndiAlert,\r\n IndiTrace,\r\n} from \"../indicators\";\r\nimport smsIcon from \"../../../../assets/images/sms-tooltip-icon.svg\";\r\nimport EmailTooltipIcon from \"../../../../assets/images/email-tooltip-icon.svg\";\r\nimport {\r\n GetReservationInfoData,\r\n manageReservationBalanceIndicator,\r\n GetReservationInfoProfileData\r\n} from \"../../../../services/reservationService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nexport function TipHold(props) {\r\n \r\n //#region UseState Variable\r\n const [reservationInfoData, setReservationInfoData] = useState({});\r\n const history = useHistory();\r\n const currUser = useSelector(currentUser);\r\n const [totalBalance, setTotalBalance] = useState({});\r\n const [isReloadTransportation, setIsReloadTransportation] = useState(false);\r\n const [selectedGuestProfile, setSelectedGuestProfile] = useState({});\r\n const [updatePreference, setUpdatePreference] = useState(false);\r\n const [guestInfo, setGuestInfo] = useState({});\r\n //#endregion\r\n //#region Local Variable\r\n const reservationObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: props.para.ReservationSerNo,\r\n };\r\n //#endregion\r\n \r\n //#region Event\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n };\r\n //#endregion\r\n //#region APICallFunction\r\n\r\n const getSelectedGuestInfo = (guestProfileSerNo)=>{\r\n GetReservationInfoProfileData(currUser.ClientSerNo,guestProfileSerNo,\"GU\").then(d => {\r\n setGuestInfo(d.data);\r\n })\r\n }\r\n //#endregion\r\n //#region useEffect\r\n useEffect(() => {\r\n if (props.para.ReservationSerNo != undefined) {\r\n GetReservationInfoData(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n props.para.ReservationSerNo\r\n ).then((d) => {\r\n setReservationInfoData(d.data);\r\n getSelectedGuestInfo(d.data.GuestProfileSerNo);\r\n });\r\n }\r\n }, [props.para.ReservationSerNo]);\r\n useEffect(() => {\r\n manageReservationBalanceIndicator(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n reservationObj.ReservationSerNo\r\n ).then((d) => {\r\n setTotalBalance(d.data);\r\n });\r\n }, []);\r\n //#endregion\r\n //#region TooltipFunction\r\n const GuestTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
{guestInfo.ContactName}
\r\n
\r\n {guestInfo.ContactMobile}\r\n \r\n SMS\r\n \r\n
\r\n
\r\n {guestInfo.ContactEmail}\r\n \r\n Email\r\n \r\n
\r\n
\r\n
\r\n {/*
\r\n Edit\r\n
*/}\r\n
\r\n );\r\n };\r\n const ConfirmStatusTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n Created By\r\n Mr. Hemang\r\n
\r\n
\r\n Date: 15 Dec. 2021\r\n
\r\n
Time: 10:20PM
\r\n
PC: 192.168.600.789
\r\n
\r\n
\r\n
\r\n );\r\n };\r\n //#endregion\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {reservationInfoData.GuestName}\r\n \r\n \r\n \r\n Booking No:{reservationInfoData.BookingNo}\r\n
\r\n
\r\n
\r\n \r\n Hold\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {totalBalance.Nights} Nights  Inclusive of all taxes\r\n
\r\n
\r\n {totalBalance.Balance}\r\n
\r\n\r\n {\r\n history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: reservationInfoData.ReservationSerNo,filterObj: (props.para.filterObj) == undefined ? undefined : props.para.filterObj} });\r\n }}>View\r\n
\r\n
\r\n
\r\n
Reservation
\r\n \r\n \r\n {\r\n setIsReloadTransportation(!isReloadTransportation);\r\n }}\r\n >\r\n \r\n \r\n\r\n
BILLING
\r\n {/* */}\r\n \r\n
\r\n
\r\n {\r\n setSelectedGuestProfile(item);\r\n setUpdatePreference(!updatePreference);\r\n }}\r\n >\r\n \r\n
\r\n Stay History\r\n (2)\r\n
\r\n
\r\n notification\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnTooltip,\r\n InnPrimaryButton,\r\n InnPlainButton,\r\n} from \"../../../../component\";\r\nimport {\r\n IndiReservationContact,\r\n IndiBookedOn,\r\n IndiVipStatus,\r\n IndiAlert,\r\n IndiTrace,\r\n IndiGuestProfile,\r\n IndiArrival,\r\n IndiAdultChild,\r\n IndiRoomRate,\r\n IndiInclusion,\r\n IndiRoomType,\r\n IndiAgent,\r\n IndiCompany,\r\n IndiRateCode,\r\n IndiDailyRate,\r\n IndiRoutingInstruction,\r\n IndiReservationType,\r\n IndiCancellationRule,\r\n IndiDepositeRule,IndiSharer,IndiAccompanyGuest\r\n} from \"../indicators\";\r\nimport smsIcon from \"../../../../assets/images/sms-tooltip-icon.svg\";\r\nimport EmailTooltipIcon from \"../../../../assets/images/email-tooltip-icon.svg\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n GetReservationInfoData,\r\n manageReservationBalanceIndicator,\r\n GetReservationInfoProfileData\r\n} from \"../../../../services/reservationService\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nexport function TipTentative(props) {\r\n //#region UseState Variable\r\n const currUser = useSelector(currentUser);\r\n const history = useHistory();\r\n const [reservationInfoData, setReservationInfoData] = useState({});\r\n const [isReloadTransportation, setIsReloadTransportation] = useState(false);\r\n const [updatePreference, setUpdatePreference] = useState(false);\r\n const [selectedGuestProfile, setSelectedGuestProfile] = useState({});\r\n const [totalBalance, setTotalBalance] = useState({});\r\n const [guestInfo, setGuestInfo] = useState({});\r\n //#endregion\r\n //#region Local Variable\r\n const reservationObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: props.para.ReservationSerNo,\r\n };\r\n //#endregion\r\n\r\n //#region APICallFunction\r\n\r\n const getSelectedGuestInfo = (guestProfileSerNo) => {\r\n GetReservationInfoProfileData(currUser.ClientSerNo, guestProfileSerNo,\"GU\").then(d => {\r\n setGuestInfo(d.data);\r\n })\r\n }\r\n //#endregion\r\n //#region Event\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n };\r\n //#endregion\r\n //#region UseEffect \r\n useEffect(() => {\r\n if (props.para.ReservationSerNo != undefined) {\r\n GetReservationInfoData(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n props.para.ReservationSerNo\r\n ).then((d) => {\r\n setReservationInfoData(d.data);\r\n getSelectedGuestInfo(d.data.GuestProfileSerNo);\r\n });\r\n }\r\n }, [props.para.ReservationSerNo]);\r\n\r\n useEffect(() => {\r\n manageReservationBalanceIndicator(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n reservationObj.ReservationSerNo\r\n ).then((d) => {\r\n setTotalBalance(d.data);\r\n });\r\n }, []);\r\n //#endregion\r\n\r\n //#region ToolTip Function\r\n const GuestTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
{guestInfo.ContactName}
\r\n
\r\n {guestInfo.ContactMobile}\r\n \r\n SMS\r\n \r\n
\r\n
\r\n {guestInfo.ContactEmail}\r\n \r\n Email\r\n \r\n
\r\n
\r\n
\r\n {/*
\r\n Edit\r\n
*/}\r\n
\r\n );\r\n };\r\n const ConfirmStatusTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n Created By\r\n Mr. Hemang\r\n
\r\n
\r\n Date: 15 Dec. 2021\r\n
\r\n
Time: 10:20PM
\r\n
PC: 192.168.600.789
\r\n
\r\n
\r\n
\r\n );\r\n };\r\n //#endregion\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {reservationInfoData.GuestName}\r\n \r\n \r\n \r\n Booking No:{reservationInfoData.BookingNo}\r\n
\r\n
\r\n
\r\n \r\n Tentative\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {totalBalance.Nights} Nights  Inclusive of all taxes\r\n
\r\n
\r\n {totalBalance.Balance}\r\n
\r\n\r\n {\r\n history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: reservationInfoData.ReservationSerNo,filterObj: (props.para.filterObj) == undefined ? undefined : props.para.filterObj} });\r\n }}>View\r\n
\r\n
\r\n
\r\n
Reservation
\r\n \r\n \r\n {\r\n setIsReloadTransportation(!isReloadTransportation);\r\n }}\r\n >\r\n \r\n \r\n
Billing
\r\n \r\n \r\n
\r\n
\r\n {\r\n setSelectedGuestProfile(item);\r\n setUpdatePreference(!updatePreference);\r\n }}\r\n >\r\n\r\n \r\n
\r\n Stay History\r\n (2)\r\n
\r\n
\r\n notification\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\n\r\nexport function InnCheckbox(props) {\r\n const handlechange = (e) => {\r\n //console.log(e.target.checked);\r\n if (props.onChecked != undefined) props.onChecked(e.target.checked,e);\r\n };\r\n\r\n return (\r\n \r\n \r\n

{props.children}

\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\n//click event and checked event raise\r\n","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n InnPrimaryButton,\r\n InnTooltip,\r\n InnModalPopup,\r\n InnActionButton,\r\n InnSwitch,\r\n InnCheckbox,\r\n InnTextbox,\r\n InnButtonTypeWithDropdown,\r\n InnLoader,\r\n InnPlainButton,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport { GetReservationFnBDiscountData, GetReservationFnBDiscountOutlet, GetReservationFnBDiscountItemGroup, AddReservationFnBDiscountOutlet, AddReservationFnBDiscountItemGroup, manageReservationFields } from \"../../../../services/reservationService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useAlert } from \"../../../../utils/hooks/useAlert\";\r\nimport { ManageRights } from \"../../../../services/generalService\";\r\nimport { alertClasses } from \"@mui/material\";\r\nimport { fontSize } from \"@mui/system\";\r\n\r\nexport function IndiFnBDiscount(props) {\r\n const { t } = useTranslation();\r\n const { innkeyAlert } = useAlert();\r\n const { confirm } = useConfirm();\r\n\r\n //#region Local Variable\r\n const [ReservationSerNo, setReservationserNo] = useState(props.para.ReservationSerNo);\r\n // let ReservationSerNo = props.para.ReservationSerNo;\r\n\r\n // A = All outlet group Apply;\r\n // O = Only Outlet wise Apply ; \r\n // OI = Outlet Group + Item Group wise Apply ;\r\n // AI = Outlet Group + outlet + Item Group wise Apply ;\r\n //const ReservationFnBDiscountMode = props.FnBDiscountType; \r\n\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = {\r\n \"AllOutlet\": true,\r\n \"ItemGroup\": false,\r\n \"Custom\": false\r\n }\r\n const defaultItemGroup = [{\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"ItemGroupSerNo\": 0,\r\n \"ItemGroupName\": \"\",\r\n \"DiscountPercentage\": 0.00\r\n }]\r\n const defaultOutlet = [{\r\n \"OutletSerNo\": 0,\r\n \"OutletName\": \"\",\r\n \"DiscountPercentage\": 0.00,\r\n \"LstItemGroup\": defaultItemGroup\r\n }]\r\n const defaultOutletWise = [{\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"ReservationSerNo\": ReservationSerNo,\r\n \"OutletGroupSerNo\": 0,\r\n \"OutletGroupName\": \"\",\r\n \"OutletSerNo\": 0,\r\n \"OutletName\": \"\",\r\n \"DiscountPercentage\": 0.00,\r\n \"LstOutlet\": defaultOutlet,\r\n \"customError\": \"\"\r\n }]\r\n const defaultItemGroupWise = [{\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"ReservationSerNo\": ReservationSerNo,\r\n \"OutletGroupSerNo\": 0,\r\n \"OutletGroupName\": \"\",\r\n \"OutletSerNo\": 0,\r\n \"OutletName\": \"\",\r\n \"DiscountPercentage\": 0.00,\r\n \"LstItemGroup\": defaultItemGroup,\r\n \"LstOutlet\": defaultOutlet,\r\n \"ItemGroupSerNo\": 0,\r\n \"ItemGroupName\": \"\"\r\n }]\r\n\r\n //#endregion Local Variable\r\n\r\n //#region State variable\r\n const [showFBDiscountPopup, setFBDiscountPopup] = useState(false);\r\n const [controlMode, setControlMode] = useState(defaultObj);// Based on filter hide/show content. \r\n const [isActive, setIsActive] = useState(false);\r\n const [viewMode, setViewMode] = useState(\"A\");\r\n const [totalFnBDis, setTotalFnBDis] = useState(0);\r\n\r\n const [fnbDiscountHeader, setFnbDiscountHeader] = useState({});\r\n const [selectedOutletGroupData, setSelectedOutletGroupData] = useState(defaultOutletWise[0]);\r\n const [OutletWiseMainData, setOutletWiseMainData] = useState(defaultOutletWise);\r\n const [ItemGroupMainData, setItemGroupMainData] = useState(defaultItemGroupWise);\r\n const [SelectedOutletItemGroupData, setSelectedOutletItemGroupData] = useState(defaultItemGroupWise[0]);\r\n const [isDataUpdated, setIsDataUpdated] = useState(false); // this use to show alert msg, when user close popup without save.\r\n const [showEditDiv, setShowEditDiv] = useState(true)//use to show Edit button\r\n const [userRightsData, setUserRightsData] = useState([]);\r\n const [outletwiseflag, setOutletwiseFlag] = useState(true);\r\n const [outletGroupflag, setOutletGroupFlag] = useState(true);\r\n const [itemGroupFlag, setItemGroupFlag] = useState(true);\r\n const [customFlag, setCustomFlag] = useState(true);\r\n\r\n //#endregion State variable\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n let tempFnBType = \"\";\r\n\r\n //#region UseEffact\r\n useEffect(() => {\r\n if (props.para != undefined) {\r\n if (props.para.IsShowTooltipActionButton == \"hide\") {\r\n setShowEditDiv(false)\r\n }\r\n else {\r\n if (props.para.IsOpenWithReservation == false && props.para.ReservationSerNo == 0) {\r\n //setIsActive(false);\r\n setShowEditDiv(true)\r\n }\r\n if (props.para.IsOpenWithReservation == true && props.para.ReservationSerNo != 0) {\r\n setShowEditDiv(true)\r\n funGetReservationFnBDiscountData();\r\n }\r\n else if (props.para.IsOpenWithReservation == false && props.para.ReservationSerNo != 0) {\r\n alert(\"Reservation Detail Found.\")\r\n setShowEditDiv(true);\r\n setReservationserNo(0);\r\n }\r\n else if (props.para.IsOpenWithReservation == true && props.para.ReservationSerNo == 0) {\r\n alert(\"No Reservation detail found.\")\r\n }\r\n }\r\n }\r\n }, [props.para.ReservationSerNo]);\r\n useEffect(() => {\r\n funcontrolModeSelectionChange();\r\n }, [controlMode]);\r\n useEffect(() => {\r\n fillUserRights();\r\n }, [])\r\n //#endregion End Region\r\n\r\n //#region Custom function\r\n const funGetReservationFnBDiscountData = () => {\r\n setIsActive(true);\r\n GetReservationFnBDiscountData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then(d => {\r\n console.log(\"FnbDiscountHeader\", d.data);\r\n setFnbDiscountHeader(d.data);\r\n tempFnBType = d.data.FnBDiscountType;\r\n setIsActive(false);\r\n if (d.data.FnBDiscountType == \"A\") {\r\n controlMode.AllOutlet = true;\r\n controlMode.ItemGroup = false;\r\n controlMode.Custom = false;\r\n }\r\n else if (d.data.FnBDiscountType == \"O\") {\r\n controlMode.AllOutlet = false;\r\n controlMode.ItemGroup = false;\r\n controlMode.Custom = false;\r\n }\r\n else if (d.data.FnBDiscountType == \"OI\") {\r\n controlMode.AllOutlet = false;\r\n controlMode.ItemGroup = true;\r\n controlMode.Custom = false;\r\n }\r\n else if (d.data.FnBDiscountType == \"AI\") {\r\n controlMode.AllOutlet = false;\r\n controlMode.ItemGroup = false;\r\n controlMode.Custom = true;\r\n }\r\n else {\r\n controlMode.AllOutlet = true;\r\n controlMode.ItemGroup = false;\r\n controlMode.Custom = false;\r\n }\r\n\r\n funcontrolModeSelectionChange();\r\n //console.log(\"controlMode>>\",controlMode);\r\n });\r\n }\r\n const funGetReservationFnBDiscountOutlet = () => {\r\n //if(OutletWiseMainData.length == 0){\r\n setIsActive(true);\r\n GetReservationFnBDiscountOutlet(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then(d => {\r\n setIsActive(false);\r\n console.log(controlMode.AllOutlet);\r\n console.log(tempFnBType);\r\n if (d.data != undefined && d.data.length > 0) {\r\n d.data.forEach(element => {\r\n //element = { ...element,customError:\"\"};\r\n element.LstOutlet.forEach(eleOutlet => {\r\n eleOutlet = { ...eleOutlet, customError: \"\" };\r\n });\r\n });\r\n if (controlMode.AllOutlet == true) {\r\n //if (tempFnBType == \"O\") {\r\n if (outletGroupflag == false) {\r\n d.data.forEach(x => {\r\n x.DiscountPercentage = 0;\r\n })\r\n }\r\n else {\r\n //As there will be only one row,So No any to hide any row.\r\n let temptotalFnBDis = 0;\r\n d.data.forEach(eleGroup => {\r\n if (eleGroup.LstOutlet != undefined && eleGroup.LstOutlet.length > 0) {\r\n let TotalDiscount = 0;\r\n eleGroup.LstOutlet.forEach(eleOutlet => {\r\n TotalDiscount = TotalDiscount + eleOutlet.DiscountPercentage;\r\n if (eleOutlet.DiscountPercentage > 0) {\r\n temptotalFnBDis += 1;\r\n }\r\n })\r\n }\r\n })\r\n setTotalFnBDis(temptotalFnBDis);\r\n }\r\n setOutletGroupFlag(true);\r\n }\r\n else if (controlMode.AllOutlet == false) {\r\n //if (tempFnBType == \"A\") {\r\n if (outletwiseflag == false) {\r\n d.data.forEach(x => {\r\n if (x.LstOutlet != undefined && x.LstOutlet.length > 0) {\r\n x.LstOutlet.forEach(y => y.DiscountPercentage = 0)\r\n }\r\n })\r\n }\r\n else {\r\n let temptotalFnBDis = 0;\r\n d.data.forEach(eleGroup => {\r\n if (eleGroup.LstOutlet != undefined && eleGroup.LstOutlet.length > 0) {\r\n let TotalDiscount = 0;\r\n eleGroup.LstOutlet.forEach(eleOutlet => {\r\n TotalDiscount = TotalDiscount + eleOutlet.DiscountPercentage;\r\n if (eleOutlet.DiscountPercentage > 0) {\r\n temptotalFnBDis += 1;\r\n }\r\n });\r\n if (TotalDiscount > 0) {\r\n eleGroup.IsDisplayOnToolTip = \"Y\";\r\n }\r\n else {\r\n eleGroup.IsDisplayOnToolTip = \"N\";\r\n }\r\n }\r\n });\r\n setTotalFnBDis(temptotalFnBDis);\r\n }\r\n setOutletwiseFlag(true);\r\n }\r\n console.log(\"Modified D.Data\", d.data);\r\n setOutletWiseMainData(d.data);\r\n if (d.data.length > 0) {\r\n setSelectedOutletGroupData(d.data[0]);\r\n }\r\n }\r\n console.log(\"Get Dis outlet wise >>\", OutletWiseMainData);\r\n });\r\n //}\r\n }\r\n const funGetReservationFnBDiscountItemGroup = () => {\r\n //if(OutletWiseMainData.length == 0){\r\n setIsActive(true);\r\n GetReservationFnBDiscountItemGroup(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo, controlMode.Custom).then(d => {\r\n setIsActive(false);\r\n //setItemGroupMainData(d.data); \r\n if (d.data != undefined && d.data.length > 0) {\r\n if (controlMode.Custom == true) {\r\n if (customFlag == false) {\r\n d.data.forEach(eleGroup => {\r\n if (eleGroup.LstOutlet != undefined && eleGroup.LstOutlet.length > 0) {\r\n eleGroup.LstOutlet.forEach(eleOutlet => {\r\n if (eleOutlet.LstItemGroup != undefined && eleOutlet.LstItemGroup.length > 0) {\r\n eleOutlet.LstItemGroup.forEach(eleItemGroup => {\r\n eleItemGroup.DiscountPercentage = 0;\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n else {\r\n let temptotalFnBDis = 0;\r\n d.data.forEach(eleGroup => {\r\n if (eleGroup.LstOutlet != undefined && eleGroup.LstOutlet.length > 0) {\r\n eleGroup.LstOutlet.forEach(eleOutlet => {\r\n if (eleOutlet.LstItemGroup != undefined && eleOutlet.LstItemGroup.length > 0) {\r\n let TotalDiscount = 0;\r\n eleOutlet.LstItemGroup.forEach(eleItemGroup => {\r\n TotalDiscount = TotalDiscount + eleItemGroup.DiscountPercentage;\r\n eleItemGroup = { ...eleItemGroup, customError: \"\" };\r\n if (eleItemGroup.DiscountPercentage > 0) {\r\n temptotalFnBDis += 1;\r\n }\r\n });\r\n if (TotalDiscount > 0) {\r\n eleOutlet.IsDisplayOnToolTip = \"Y\";\r\n }\r\n else {\r\n eleOutlet.IsDisplayOnToolTip = \"N\";\r\n }\r\n }\r\n });\r\n }\r\n });\r\n setTotalFnBDis(temptotalFnBDis);\r\n }\r\n setCustomFlag(true);\r\n }\r\n else if (controlMode.ItemGroup == true) {\r\n if (itemGroupFlag == false) {\r\n let tempData = [];\r\n d.data.forEach(eleGroup => {\r\n let tempGroup = JSON.parse(JSON.stringify(eleGroup));\r\n tempGroup.LstItemGroup = [];\r\n eleGroup.LstItemGroup.forEach(eleItemGroup => {\r\n let tempObj = tempGroup.LstItemGroup.filter(x => parseInt(x.ItemGroupSerNo) == parseInt(eleItemGroup.ItemGroupSerNo));\r\n if (tempObj == undefined || tempObj.length == 0) {\r\n let tempItemGroupObj = eleItemGroup;\r\n tempItemGroupObj.DiscountPercentage = 0;\r\n tempGroup.LstItemGroup.push(tempItemGroupObj);\r\n }\r\n });\r\n tempData.push(tempGroup);\r\n });\r\n if (tempData != undefined && tempData.length > 0) {\r\n d.data = tempData;\r\n }\r\n d.data.forEach(eleOutlet => {\r\n if (eleOutlet.LstItemGroup != undefined && eleOutlet.LstItemGroup.length > 0) {\r\n eleOutlet.LstItemGroup.forEach(eleItemGroup => {\r\n eleItemGroup.DiscountPercentage = 0;\r\n })\r\n }\r\n })\r\n }\r\n else {\r\n let temptotalFnBDis = 0;\r\n if (fnbDiscountHeader.FnBDiscountType == \"AI\") {\r\n let tempData = [];\r\n d.data.forEach(eleGroup => {\r\n let tempGroup = JSON.parse(JSON.stringify(eleGroup));\r\n tempGroup.LstItemGroup = [];\r\n eleGroup.LstItemGroup.forEach(eleItemGroup => {\r\n let tempObj = tempGroup.LstItemGroup.filter(x => parseInt(x.ItemGroupSerNo) == parseInt(eleItemGroup.ItemGroupSerNo));\r\n if (tempObj == undefined || tempObj.length == 0) {\r\n let tempItemGroupObj = eleItemGroup;\r\n tempItemGroupObj.DiscountPercentage = 0;\r\n tempGroup.LstItemGroup.push(tempItemGroupObj);\r\n }\r\n });\r\n tempData.push(tempGroup);\r\n });\r\n if (tempData != undefined && tempData.length > 0) {\r\n d.data = tempData;\r\n }\r\n }\r\n d.data.forEach(eleGroup => {\r\n if (eleGroup.LstItemGroup != undefined && eleGroup.LstItemGroup.length > 0) {\r\n let TotalDiscount = 0;\r\n eleGroup.LstItemGroup.forEach(eleItemGroup => {\r\n TotalDiscount = TotalDiscount + eleItemGroup.DiscountPercentage;\r\n eleItemGroup = { ...eleItemGroup, customError: \"\" };\r\n if (eleItemGroup.DiscountPercentage > 0) {\r\n temptotalFnBDis += 1;\r\n }\r\n });\r\n if (TotalDiscount > 0) {\r\n eleGroup.IsDisplayOnToolTip = \"Y\";\r\n }\r\n else {\r\n eleGroup.IsDisplayOnToolTip = \"N\";\r\n }\r\n }\r\n });\r\n setTotalFnBDis(temptotalFnBDis);\r\n }\r\n setItemGroupFlag(true);\r\n }\r\n }\r\n\r\n console.log(\"d.dataaaaa>>>>>>>>>>>\", d.data);\r\n setItemGroupMainData(d.data);\r\n\r\n console.log(\"Get ITEMGroup wise >>\", viewMode, ItemGroupMainData);\r\n if (d.data.length > 0) {\r\n setSelectedOutletGroupData(d.data[0]);\r\n if (controlMode.Custom == true) {\r\n if (d.data[0].LstOutlet != undefined && d.data[0].LstOutlet.length > 0) {\r\n //setSelectedOutletGroupData(d.data[0]);\r\n if (d.data[0].LstOutlet[0].LstItemGroup != undefined && d.data[0].LstOutlet[0].LstItemGroup.length > 0) {\r\n setSelectedOutletItemGroupData(d.data[0].LstOutlet[0]);\r\n console.log(d.data[0].LstOutlet[0]);\r\n }\r\n }\r\n }\r\n }\r\n //setSelectedOutletItemGroupData(d.data[0]);\r\n });\r\n //}\r\n }\r\n const funIsValidData = () => {\r\n let isValid = true;\r\n console.log(controlMode);\r\n if (controlMode.AllOutlet == true) {\r\n if (selectedOutletGroupData.DiscountPercentage.toString() == \"\" || selectedOutletGroupData.DiscountPercentage < 0 || selectedOutletGroupData.DiscountPercentage > 100) {\r\n isValid = false;\r\n }\r\n }\r\n else {\r\n if (controlMode.Custom == true) {\r\n ItemGroupMainData.forEach(eleOutletGroup => {\r\n eleOutletGroup.LstOutlet.forEach(eleOutlet => {\r\n let filterdata = eleOutlet.LstItemGroup.find(item => item.DiscountPercentage.toString() == \"\" || item.DiscountPercentage < 0 || item.DiscountPercentage > 100);\r\n if (filterdata != undefined) {\r\n isValid = false;\r\n }\r\n });\r\n });\r\n }\r\n else if (controlMode.ItemGroup == true) {\r\n ItemGroupMainData.forEach(eleOutletGroup => {\r\n let filterdata = eleOutletGroup.LstItemGroup.find(item => item.DiscountPercentage.toString() == \"\" || item.DiscountPercentage < 0 || item.DiscountPercentage > 100);\r\n if (filterdata != undefined) {\r\n isValid = false;\r\n }\r\n });\r\n }\r\n else {\r\n OutletWiseMainData.forEach(eleOutletGroup => {\r\n let filterdata = eleOutletGroup.LstOutlet.find(item => item.DiscountPercentage.toString() == \"\" || item.DiscountPercentage < 0 || item.DiscountPercentage > 100);\r\n if (filterdata != undefined) {\r\n isValid = false;\r\n }\r\n });\r\n }\r\n }\r\n return isValid;\r\n }\r\n const funcontrolModeSelectionChange = () => {\r\n handleOnFilterChange();\r\n if (controlMode.AllOutlet == true) {\r\n funGetReservationFnBDiscountOutlet();\r\n }\r\n else {\r\n if ((controlMode.Custom == true) || (controlMode.ItemGroup == true)) {\r\n funGetReservationFnBDiscountItemGroup();\r\n }\r\n else {\r\n funGetReservationFnBDiscountOutlet();\r\n }\r\n }\r\n\r\n }\r\n const fillUserRights = () => {\r\n ManageRights(currUser.ClientSerNo, currUser.UserID, \"58,59,71\").then((d) => {\r\n console.log(\"f&b discount user rigths\", d.data);\r\n if (d.data.length > 0) {\r\n setUserRightsData(d.data);\r\n }\r\n else {\r\n console.log(\"No user rights\");\r\n }\r\n })\r\n }\r\n //#endregion Custom function\r\n\r\n //#region > Event handle\r\n const handleOnFilterChange = () => {\r\n // console.log(controlMode);\r\n if (controlMode.AllOutlet == true) {\r\n setViewMode(\"A\");\r\n }\r\n else {\r\n if (controlMode.Custom == true) {\r\n setViewMode(\"AI\");\r\n }\r\n else if (controlMode.ItemGroup == true) {\r\n setViewMode(\"OI\");\r\n }\r\n else {\r\n setViewMode(\"O\");\r\n }\r\n }\r\n }\r\n const funAddReservationFnBDiscountOutlet = () => {\r\n var BodyData;\r\n if (controlMode.AllOutlet == true) {\r\n BodyData = selectedOutletGroupData;\r\n BodyData = [{ ...BodyData }];\r\n }\r\n else if (controlMode.AllOutlet == false && controlMode.ItemGroup == false && controlMode.Custom == false) {\r\n BodyData = OutletWiseMainData;\r\n }\r\n console.log(\"BodyData Outlet wise >>\", BodyData);\r\n setIsActive(true);\r\n AddReservationFnBDiscountOutlet(BodyData, controlMode.AllOutlet).then(d => {\r\n setIsActive(false);\r\n console.log(\"finish >>\", d.data);\r\n if (d.data.Code == 200) {\r\n setFBDiscountPopup(!showFBDiscountPopup);\r\n manageReservationFields(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo, \"FnBDiscountType\", viewMode).then(d => {\r\n console.log(\"finish manageReservationFields>>\");\r\n });\r\n // let tempData = JSON.parse(JSON.stringify(fnbDiscountHeader));\r\n // tempData.FnBDiscountType = viewMode;\r\n // setFnbDiscountHeader(tempData);\r\n // console.log(\"tempData\",tempData);\r\n tempFnBType = viewMode;\r\n setIsDataUpdated(false);\r\n funGetReservationFnBDiscountOutlet();\r\n }\r\n else {\r\n alert(d.data.Message);\r\n }\r\n });\r\n\r\n }\r\n const funAddReservationFnBDiscountItemGroup = () => {\r\n // added by ketan on 13th jun \r\n // to convert discount to decimal\r\n if (ItemGroupMainData != undefined) {\r\n ItemGroupMainData.map(d => {\r\n if (d.LstItemGroup != undefined) {\r\n d.LstItemGroup.map(i => {\r\n i.DiscountPercentage = parseFloat(i.DiscountPercentage);\r\n })\r\n }\r\n })\r\n }\r\n // added by ketan on 13th jun \r\n setIsActive(true);\r\n console.log(\"final >>\", ItemGroupMainData);\r\n AddReservationFnBDiscountItemGroup(ItemGroupMainData, controlMode.ItemGroup, controlMode.Custom).then(d => {\r\n setIsActive(false);\r\n console.log(\"finish >>\", d.data);\r\n if (d.data.Code == 200) {\r\n setFBDiscountPopup(!showFBDiscountPopup);\r\n manageReservationFields(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo, \"FnBDiscountType\", viewMode).then(d => {\r\n console.log(\"finish manageReservationFields>>\");\r\n });\r\n setIsDataUpdated(false);\r\n funGetReservationFnBDiscountItemGroup();\r\n }\r\n else {\r\n alert(d.data.Message);\r\n }\r\n });\r\n }\r\n\r\n const sendFnBObject = (data, viewMode) => {\r\n let tempObj = {};\r\n tempObj = { ...tempObj, FnbDiscountType: viewMode, fnbdata: data }\r\n setFBDiscountPopup(!showFBDiscountPopup)\r\n props.fnbObject(tempObj);\r\n }\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = funIsValidData();\r\n if (IsPageValid) {\r\n if (controlMode.AllOutlet == true) {\r\n if (props.para.IsOpenWithReservation == true) {\r\n funAddReservationFnBDiscountOutlet();\r\n }\r\n else {\r\n if (controlMode.AllOutlet == true) {\r\n //props.fnbObject(selectedOutletGroupData);\r\n sendFnBObject(selectedOutletGroupData, viewMode);\r\n }\r\n else if (controlMode.AllOutlet == false && controlMode.ItemGroup == false && controlMode.Custom == false) {\r\n //props.fnbObject(OutletWiseMainData);\r\n sendFnBObject(OutletWiseMainData, viewMode);\r\n }\r\n }\r\n }\r\n else {\r\n if (controlMode.Custom == true) {\r\n if (props.para.IsOpenWithReservation == true) {\r\n funAddReservationFnBDiscountItemGroup();\r\n }\r\n else {\r\n //props.fnbObject(ItemGroupMainData);\r\n sendFnBObject(ItemGroupMainData, viewMode);\r\n }\r\n }\r\n else if (controlMode.ItemGroup == true) {\r\n if (props.para.IsOpenWithReservation == true) {\r\n funAddReservationFnBDiscountItemGroup();\r\n }\r\n else {\r\n //props.fnbObject(ItemGroupMainData);\r\n sendFnBObject(ItemGroupMainData, viewMode);\r\n }\r\n }\r\n else {\r\n //funAddReservationFnBDiscountOutlet();\r\n if (props.para.IsOpenWithReservation == true) {\r\n funAddReservationFnBDiscountOutlet();\r\n }\r\n else {\r\n if (controlMode.AllOutlet == true) {\r\n // props.fnbObject(selectedOutletGroupData);\r\n sendFnBObject(selectedOutletGroupData, viewMode);\r\n }\r\n else if (controlMode.AllOutlet == false && controlMode.ItemGroup == false && controlMode.Custom == false) {\r\n //props.fnbObject(OutletWiseMainData);\r\n sendFnBObject(OutletWiseMainData, viewMode);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n alert(\"One or more discount has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n const setOutletDiscPerChange = (DiscountPercentage, d) => {\r\n //console.log(\"ObjOutlet >>\",d);\r\n let tempOutletWiseMainData = [...OutletWiseMainData];\r\n tempOutletWiseMainData.forEach(ele => {\r\n if (ele.OutletGroupSerNo == selectedOutletGroupData.OutletGroupSerNo) {\r\n ele.LstOutlet.forEach(eleOutlet => {\r\n if (eleOutlet.OutletSerNo == d.target.id) {\r\n if (DiscountPercentage == \"\" || DiscountPercentage < 0 || DiscountPercentage > 100 ||\r\n DiscountPercentage == undefined || isNaN(+DiscountPercentage) == true) {\r\n eleOutlet.customError = \"Enter valid Disc.\";\r\n //console.log(\"set validation\");\r\n }\r\n else {\r\n eleOutlet.DiscountPercentage = parseFloat(DiscountPercentage);\r\n eleOutlet.customError = \"\";\r\n //console.log(\"clear validation\");\r\n }\r\n setSelectedOutletGroupData(ele);\r\n }\r\n })\r\n }\r\n });\r\n setOutletWiseMainData(tempOutletWiseMainData);\r\n setIsDataUpdated(true);\r\n }\r\n\r\n const handleOutletGroupChange = (d) => {\r\n let filterData = OutletWiseMainData.filter(item => item.OutletGroupSerNo == d.target.id);\r\n if (filterData != undefined) {\r\n setSelectedOutletGroupData(filterData[0]);\r\n }\r\n }\r\n const handleItemGroupCase_OutletGroupChange = (d) => {\r\n let filterData = ItemGroupMainData.filter(item => item.OutletGroupSerNo == d.target.id);\r\n if (filterData != undefined) {\r\n setSelectedOutletGroupData(filterData[0]);\r\n }\r\n }\r\n\r\n const handleItemGroup_OutletChange = (d) => {\r\n let filterData = selectedOutletGroupData.LstOutlet.filter(item => item.OutletSerNo == d.target.id);\r\n if (filterData != undefined) {\r\n setSelectedOutletItemGroupData(filterData[0]);\r\n }\r\n }\r\n const setItemGroupDiscPerChange = (DiscountPercentage, d) => {\r\n //console.log(\"ObjOutlet >>\",d.target.id);\r\n if (controlMode.Custom == true) {\r\n let tempItemGroupMain = [...ItemGroupMainData];\r\n //let selectedEle = {};\r\n tempItemGroupMain.forEach(ele => {\r\n if (ele.OutletGroupSerNo == selectedOutletGroupData.OutletGroupSerNo) {\r\n ele.LstOutlet.forEach(ele2 => {\r\n if (ele2.OutletSerNo == SelectedOutletItemGroupData.OutletSerNo) {\r\n ele2.LstItemGroup.forEach(ele3 => {\r\n if (ele3.ItemGroupSerNo == d.target.id) {\r\n if (DiscountPercentage == \"\" || DiscountPercentage < 0 || DiscountPercentage > 100 ||\r\n DiscountPercentage == undefined || isNaN(+DiscountPercentage) == true) {\r\n ele3.customError = \"Enter valid Disc.\";\r\n //console.log(\"set validation\");\r\n }\r\n else {\r\n ele3.DiscountPercentage = parseFloat(DiscountPercentage);\r\n ele3.customError = \"\";\r\n }\r\n //selectedEle = ele;\r\n setSelectedOutletItemGroupData(ele2);\r\n }\r\n })\r\n }\r\n })\r\n }\r\n });\r\n setItemGroupMainData(tempItemGroupMain);\r\n }\r\n else {\r\n let tempItemGroupMain = [...ItemGroupMainData];\r\n let selectedEle = {};\r\n tempItemGroupMain.forEach(ele => {\r\n if (ele.OutletGroupSerNo == selectedOutletGroupData.OutletGroupSerNo) {\r\n ele.LstItemGroup.forEach(ele2 => {\r\n if (ele2.ItemGroupSerNo == d.target.id) {\r\n if (DiscountPercentage == \"\" || DiscountPercentage < 0 || DiscountPercentage > 100 ||\r\n DiscountPercentage == undefined || isNaN(+DiscountPercentage) == true) {\r\n ele2.customError = \"Enter valid Disc.\";\r\n //console.log(\"set validation\");\r\n }\r\n else {\r\n ele2.DiscountPercentage = parseFloat(DiscountPercentage);\r\n ele2.customError = \"\";\r\n }\r\n setSelectedOutletGroupData(ele);\r\n }\r\n })\r\n }\r\n });\r\n // setSelectedOutletGroupData(selectedEle);\r\n setItemGroupMainData(tempItemGroupMain);\r\n // //console.log(\"update ItemGroupData >>\",SelectedOutletItemGroupData.LstItemGroup);\r\n }\r\n setIsDataUpdated(true);\r\n }\r\n const handleOnResetClick = async () => {\r\n let IsReset = await innkeyAlert(\"Would you like to reset all the fields ?\"); //pending get data from table if edit mode \r\n if (props.para.IsOpenWithReservation == true) {\r\n if (IsReset == true) {\r\n funGetReservationFnBDiscountData();\r\n // let tempcontrolMode = controlMode;\r\n // tempcontrolMode.AllOutlet = true;\r\n // tempcontrolMode.ItemGroup = false;\r\n // tempcontrolMode.Custom = false; \r\n // setControlMode(tempcontrolMode); \r\n // setViewMode(\"A\");\r\n // setSelectedOutletGroupData(prev => ({...prev,DiscountPercentage:0}));\r\n }\r\n }\r\n else {\r\n setControlMode(defaultObj);\r\n setViewMode(\"A\");\r\n }\r\n\r\n }\r\n const handleOnCrossClick = async () => {\r\n if (isDataUpdated == true) {\r\n let IsOk = await innkeyAlert(\"Do you want to discard changes?\");\r\n if (props.para.IsOpenWithReservation == true) {\r\n if (IsOk == true) {\r\n setFBDiscountPopup(!showFBDiscountPopup);\r\n funGetReservationFnBDiscountData();\r\n }\r\n }\r\n else {\r\n setFBDiscountPopup(!showFBDiscountPopup);\r\n }\r\n }\r\n else {\r\n setFBDiscountPopup(!showFBDiscountPopup);\r\n }\r\n }\r\n\r\n const handleUserRights = async (strRightsSerNo) => {\r\n if (strRightsSerNo != undefined) {\r\n const userRightObj = userRightsData.find((x) => x.RightsSerNo == strRightsSerNo);\r\n if (userRightObj != undefined) {\r\n if (userRightObj.IsApply != undefined) {\r\n if (userRightObj.IsApply) {\r\n return true;\r\n } else {\r\n await confirm({\r\n Message: `${userRightObj.Name} : ${userRightObj.PromptMessage}`,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n }\r\n };\r\n //#endregion region\r\n\r\n const FAndBTooltip = () => {\r\n return (\r\n
\r\n
\r\n {viewMode == \"A\" ? //controlMode.AllOutlet == true && controlMode.ItemGroup == false ?\r\n <>\r\n
\r\n
All :
\r\n
{selectedOutletGroupData ? selectedOutletGroupData.DiscountPercentage : \"\"} % Discount
\r\n
\r\n : null\r\n }\r\n {viewMode == \"O\" ? //controlMode.AllOutlet == false && controlMode.ItemGroup == false ? \r\n <>\r\n {OutletWiseMainData && OutletWiseMainData.map(d =>\r\n (d.IsDisplayOnToolTip == \"Y\"\r\n ? <>\r\n
\r\n
{d.OutletGroupName}
\r\n {d.LstOutlet && d.LstOutlet.map(d1 =>\r\n (d1.DiscountPercentage > 0\r\n ? <>\r\n
\r\n
{d1.OutletName} : {d1.DiscountPercentage}% Discount
\r\n
\r\n \r\n : <>\r\n )\r\n )}\r\n
\r\n \r\n : <>)\r\n )}\r\n {/* { OutletWiseMainData.map(d =>\r\n
\r\n
{d.OutletName} :
\r\n
{d.DiscountPercentage}% Discount
\r\n
\r\n )} */}\r\n : null\r\n }\r\n {viewMode == \"OI\" ? //controlMode.AllOutlet == false && controlMode.ItemGroup == true ?\r\n <>\r\n {ItemGroupMainData && ItemGroupMainData.map(d =>\r\n (d.IsDisplayOnToolTip == \"Y\"\r\n ? <>\r\n
\r\n
{d.OutletGroupName}
\r\n {d.LstItemGroup && d.LstItemGroup.map(d1 =>\r\n (d1.DiscountPercentage > 0\r\n ? <>\r\n
\r\n
{d1.ItemGroupName} : {d1.DiscountPercentage}% Discount
\r\n
\r\n \r\n : <>\r\n )\r\n )}\r\n
\r\n \r\n : <>)\r\n )}\r\n : null\r\n }\r\n {viewMode == \"AI\" ? //controlMode.AllOutlet == true && controlMode.ItemGroup == true ?\r\n <>\r\n {ItemGroupMainData && ItemGroupMainData.map(d =>\r\n d.LstOutlet && d.LstOutlet.map(O1 =>\r\n (O1.IsDisplayOnToolTip == \"Y\"\r\n ? <>\r\n
\r\n
{O1.OutletName}
\r\n {O1.LstItemGroup && O1.LstItemGroup.map(IG1 =>\r\n (IG1.DiscountPercentage > 0\r\n ? <>\r\n
\r\n
{IG1.ItemGroupName} : {IG1.DiscountPercentage}% Discount
\r\n
\r\n \r\n : <>\r\n )\r\n )}\r\n
\r\n \r\n : <>)\r\n\r\n )\r\n )}\r\n : null\r\n }\r\n
\r\n {\r\n showEditDiv ?\r\n
\r\n {\r\n console.log(\"totalfnbdis\", totalFnBDis);\r\n if (props.para.IsOpenWithReservation == true) {\r\n if (totalFnBDis > 0) {\r\n handleUserRights(\"59\").then(d => {\r\n if (d) {\r\n setFBDiscountPopup(!showFBDiscountPopup);\r\n funGetReservationFnBDiscountData();\r\n setIsDataUpdated(false);\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n }\r\n else {\r\n handleUserRights(\"71\").then(d => {\r\n if (d) {\r\n setFBDiscountPopup(!showFBDiscountPopup);\r\n funGetReservationFnBDiscountData();\r\n setIsDataUpdated(false);\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n }\r\n }\r\n else {\r\n setFBDiscountPopup(!showFBDiscountPopup);\r\n setIsDataUpdated(false);\r\n }\r\n }}\r\n >\r\n Edit\r\n \r\n console.log(item, name)}\r\n >\r\n
\r\n :\r\n <>\r\n }\r\n
\r\n );\r\n };\r\n return (\r\n <>\r\n \r\n
\r\n {t('INN_FNBDiscount')}\r\n ({totalFnBDis == undefined || totalFnBDis == \"\" ? \"0\" : totalFnBDis})\r\n
\r\n \r\n {showFBDiscountPopup ? (\r\n \r\n \r\n
\r\n
\r\n
\r\n

F&B Discounts

\r\n
\r\n
\r\n Reset\r\n handleOnSaveClick()}\r\n >\r\n Save\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    \r\n Confirmation No.\r\n
    \r\n
    \r\n {fnbDiscountHeader.BookingNo}\r\n
    \r\n
  • \r\n
  • \r\n
    Guest Name
    \r\n
    \r\n {fnbDiscountHeader.GuestName}\r\n
    \r\n\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Apply to all Outlet \r\n
\r\n
\r\n {\r\n setControlMode(prev => ({ ...prev, AllOutlet: v }));\r\n setIsDataUpdated(true);\r\n if (v == false) {\r\n setOutletwiseFlag(false);\r\n }\r\n if (v == true) {\r\n setOutletGroupFlag(false)\r\n }\r\n //handleOnFilterChange(v);\r\n }}\r\n id=\"Innkey44\"\r\n >\r\n
\r\n
\r\n
\r\n {controlMode.AllOutlet == false ?\r\n <>\r\n {\r\n setControlMode(prev => ({ ...prev, ItemGroup: v }));\r\n setIsDataUpdated(true);\r\n if (v == false) {\r\n setOutletwiseFlag(false);\r\n }\r\n if (v == true) {\r\n setItemGroupFlag(false);\r\n }\r\n //handleOnFilterChange(v);\r\n }}\r\n >Item Group\r\n : null}\r\n
\r\n
\r\n
\r\n
\r\n {controlMode.AllOutlet == false ?\r\n <>\r\n {\r\n handleUserRights(\"58\").then(d => {\r\n if (d) {\r\n setControlMode(prev => ({ ...prev, Custom: v }));\r\n setIsDataUpdated(true);\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n if (v == false) {\r\n setOutletwiseFlag(false);\r\n setItemGroupFlag(false);\r\n }\r\n if (v == true) {\r\n setCustomFlag(false);\r\n }\r\n //handleOnFilterChange(v);\r\n }}\r\n >Custom\r\n : null}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/* --- ALL outlet group case --- */}\r\n {viewMode == \"A\" ? //controlMode.AllOutlet == true && controlMode.ItemGroup == false ?\r\n <>\r\n
\r\n
\r\n
\r\n All Outlet Group\r\n
\r\n
\r\n
\r\n
Discount(%)
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n let DiscountPercentage = v;\r\n if (DiscountPercentage == \"\" || DiscountPercentage < 0 || DiscountPercentage > 100 ||\r\n DiscountPercentage == undefined || isNaN(+DiscountPercentage) == true) {\r\n setSelectedOutletGroupData(prev => ({\r\n ...prev,\r\n customError: \"Enter valid Disc.\"\r\n }));\r\n }\r\n else {\r\n setSelectedOutletGroupData(prev => ({\r\n ...prev,\r\n DiscountPercentage: parseFloat(v),\r\n customError: \"\"\r\n }));\r\n //console.log(\"clear validation\");\r\n }\r\n setIsDataUpdated(true);\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Discount(%)
\r\n
\r\n
\r\n {OutletWiseMainData.map(d =>\r\n
\r\n
\r\n
{d.OutletGroupName}
\r\n
\r\n
\r\n {\r\n // setSelectedOutletGroupData(prev => ({ ...prev, DiscountPercentage : parseFloat(v) }));\r\n // }}\r\n >{selectedOutletGroupData.DiscountPercentage}\r\n
\r\n
\r\n )}\r\n\r\n
\r\n
\r\n \r\n :\r\n <>\r\n }\r\n {/* --- Outlet group >> outlet wise case --- */}\r\n {viewMode == \"O\" ? //controlMode.AllOutlet == false && controlMode.ItemGroup == false ?\r\n <>\r\n
\r\n
\r\n
\r\n Outlet Group\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {OutletWiseMainData.map(d =>\r\n
\r\n
    \r\n
  • handleOutletGroupChange(d)}\r\n >{d.OutletGroupName}
  • \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Outlet wise\r\n
\r\n
\r\n
\r\n
\r\n
Discount(%)
\r\n
\r\n
\r\n {selectedOutletGroupData.LstOutlet && selectedOutletGroupData.LstOutlet.map(d =>\r\n
\r\n
\r\n
{d.OutletName}
\r\n
\r\n
\r\n {\r\n setOutletDiscPerChange(v, d);\r\n // const re = /^[0-9\\b.]+$/;\r\n // if (d.target.value === '' || re.test(d.target.value)) {\r\n // console.log(true);\r\n // }\r\n // else{console.log(d.DiscountPercentage);}\r\n }}\r\n >\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n \r\n :\r\n <>\r\n }\r\n {/* --- Outlet group >> Item group wise case --- */}\r\n {viewMode == \"OI\" ? //controlMode.AllOutlet == false && controlMode.ItemGroup == true ?\r\n <>\r\n
\r\n
\r\n
\r\n Outlet Group\r\n
\r\n
\r\n
    \r\n {ItemGroupMainData && ItemGroupMainData.map(d =>\r\n
  • handleItemGroupCase_OutletGroupChange(d)}\r\n >{d.OutletGroupName}
  • \r\n )}\r\n {/*
  • Restaurant
  • \r\n
  • Coffee Shop
  • \r\n
  • Bar
  • */}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Item Group\r\n
\r\n
\r\n
\r\n
\r\n
Discount(%)
\r\n
\r\n
\r\n {selectedOutletGroupData.LstItemGroup && selectedOutletGroupData.LstItemGroup.map(d =>\r\n
\r\n
\r\n
{d.ItemGroupName}
\r\n
\r\n
\r\n {\r\n setItemGroupDiscPerChange(v, d);\r\n }}\r\n >\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n : <>\r\n }\r\n {/* --- Custome case : Outlet Group >> Outlet >> Item group wise case --- */}\r\n {viewMode == \"AI\" ? //controlMode.AllOutlet == false && (controlMode.ItemGroup == true || controlMode.ItemGroup == false) && controlMode.Custom == true ?\r\n <>\r\n
\r\n
\r\n
\r\n Outlet Group\r\n
\r\n
\r\n
    \r\n {ItemGroupMainData.map(d =>\r\n
  • handleItemGroupCase_OutletGroupChange(d)}\r\n >{d.OutletGroupName}
  • \r\n )}\r\n {/*
  • Restaurant
  • \r\n
  • Coffee Shop
  • \r\n
  • Bar
  • */}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Outlet Wise\r\n
\r\n
\r\n
    \r\n {selectedOutletGroupData.LstOutlet && selectedOutletGroupData.LstOutlet.map(d =>\r\n
  • handleItemGroup_OutletChange(d)}\r\n >{d.OutletName}
  • \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Item Group\r\n
\r\n
\r\n
\r\n
\r\n
Discount(%)
\r\n
\r\n
\r\n {SelectedOutletItemGroupData.LstItemGroup && SelectedOutletItemGroupData.LstItemGroup.map(d =>\r\n
\r\n
\r\n
{d.ItemGroupName}
\r\n
\r\n
\r\n {\r\n setItemGroupDiscPerChange(v, d);\r\n }}\r\n >{d.DiscountPercentage}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n \r\n : <>\r\n }\r\n
\r\n
\r\n
\r\n \r\n ) : null}\r\n \r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport closeIcon from \"../../../../assets/images/model-cls-btn.png\";\r\nimport {\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnCheckbox,\r\n InnLoader,\r\n} from \"../../../../component\";\r\nimport {\r\n AddEditReservationSpecial,\r\n AddProfileSpecial,\r\n GetProfileSpecial,\r\n GetSpecialMaster,\r\n GetReservationBasicData\r\n} from \"../../../../services/reservationService\";\r\n\r\nexport function SpecialModalPopup(props) {\r\n const [specialData, setSpecialData] = useState([]);\r\n const [specialGroupData, setSpecialGroupData] = useState([]);\r\n const [selectedGroup, setSelectedGroup] = useState({});\r\n const [isShowSelected, setIsShowSelected] = useState(false);\r\n const [selectedCount, setSelectedCount] = useState(0);\r\n\r\n //Specials Confirm popup hide show varible start\r\n const [showRoomSpecialConfirmPopupShow, setRoomSpecialConfirmPopupShow] =\r\n useState(false);\r\n //Specials Confirm popup hide show varible end\r\n\r\n const [SpecialAddData, setSpecialAddData] = useState([]);\r\n const [SpecialRemovedData, setSpecialRemovedData] = useState([]);\r\n const [checkedItemGroupWise, setcheckedItemGroupWise] = useState([]);\r\n const [reservationData, setReservationData] = useState({});\r\n\r\n const fillSpecial = () => {\r\n GetSpecialMaster(props.para.ClientSerNo, props.para.PropertySerNo).then(\r\n (d) => {\r\n d.data.map((d) => {\r\n d.checked = false;\r\n if (props.para.Specials) {\r\n props.para.Specials.map((d2) => {\r\n if (d.SpecialSerNo == d2.SpecialSerNo) {\r\n d.checked = true;\r\n d.ClientSerNo = parseInt(props.para.ClientSerNo);\r\n d.PropertySerNo = parseInt(props.para.PropertySerNo);\r\n d.ReservationSerNo = props.para.ReservationSerNo;\r\n d.ProfileSerNo = props.para.ProfileSerNo;\r\n }\r\n });\r\n }\r\n });\r\n console.log(\"special \", d.data);\r\n\r\n setSpecialData(d.data);\r\n\r\n const result = [];\r\n const map = new Map();\r\n for (const item of d.data) {\r\n if (!map.has(item.SpecialGroupSerNo)) {\r\n map.set(item.SpecialGroupSerNo, true); // set any value to Map\r\n result.push({\r\n SpecialGroupSerNo: item.SpecialGroupSerNo,\r\n GroupName: item.GroupName,\r\n });\r\n }\r\n }\r\n console.log(result);\r\n setSpecialGroupData(result);\r\n }\r\n );\r\n };\r\n\r\n const fillReservationData = () => {\r\n GetReservationBasicData(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo).then(d => {\r\n if (d.data != null || d.data != undefined) {\r\n setReservationData(d.data);\r\n }\r\n })\r\n }\r\n\r\n const handleOnchecked = (e) => {\r\n if (e.target.id) {\r\n let obj = specialData.find((x) => x.SpecialSerNo == e.target.id);\r\n if (obj != undefined) {\r\n obj.ClientSerNo = parseInt(props.para.ClientSerNo);\r\n obj.PropertySerNo = parseInt(props.para.PropertySerNo);\r\n obj.ReservationSerNo = props.para.ReservationSerNo;\r\n obj.ProfileSerNo = props.para.ProfileSerNo;\r\n let tempSpecial = [...specialData];\r\n tempSpecial\r\n .filter((x) => x.SpecialSerNo == e.target.id)\r\n .map((v) => {\r\n v.checked = !v.checked;\r\n });\r\n setSpecialData(tempSpecial);\r\n }\r\n }\r\n };\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n };\r\n\r\n const handleGroupClick = (e) => {\r\n if (e.target.id) {\r\n let obj = specialGroupData.find(\r\n ({ SpecialGroupSerNo }) => SpecialGroupSerNo == e.target.id\r\n );\r\n setSelectedGroup(obj);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n fillSpecial();\r\n fillReservationData();\r\n }, []);\r\n\r\n useEffect(() => {\r\n let cnt = 0;\r\n if (isShowSelected) {\r\n let data = groupByKey(\r\n specialData.filter((f) => f.checked == true),\r\n \"GroupName\"\r\n );\r\n console.log(data);\r\n setcheckedItemGroupWise(data);\r\n cnt = specialData.filter((x) => x.checked == true).length;\r\n } else {\r\n cnt = specialData.filter(\r\n (x) =>\r\n x.checked == true &&\r\n x.SpecialGroupSerNo == selectedGroup.SpecialGroupSerNo\r\n ).length;\r\n }\r\n setSelectedCount(cnt);\r\n }, [specialData, isShowSelected, selectedGroup]);\r\n\r\n const handleReset = () => {\r\n let tempSpecial = [...specialData];\r\n tempSpecial.map((d) => {\r\n d.checked = false;\r\n });\r\n setSpecialData(tempSpecial);\r\n setSelectedGroup({});\r\n setIsShowSelected(false);\r\n setSelectedCount(0);\r\n };\r\n\r\n const handleOnApply = () => {\r\n if (props.para.Mode == \"ADD\") {\r\n let result = specialData.filter((x) => x.checked == true);\r\n if (props.hanldeOnSelection == undefined)\r\n console.log(\"hanldeOnSelection is not defined\");\r\n else props.hanldeOnSelection(result);\r\n } else if (props.para.Mode == \"EDIT\") {\r\n let result = specialData.filter((x) => x.checked == true);\r\n if (props.hanldeOnSelection == undefined)\r\n console.log(\"hanldeOnSelection is not defined\");\r\n else props.hanldeOnSelection(result);\r\n AddEditReservationSpecial(result).then((response) => {\r\n console.log(response);\r\n });\r\n } else {\r\n console.log(\"Mode is not defined\");\r\n }\r\n };\r\n\r\n //Profile Special Load Event start\r\n useEffect(() => {\r\n fillProfileSpecial();\r\n }, [showRoomSpecialConfirmPopupShow]);\r\n //Profile Special Load Event end\r\n\r\n const fillProfileSpecial = () => {\r\n let result = specialData.filter((x) => x.checked == true);\r\n console.log(result);\r\n setSpecialAddData(result);\r\n GetProfileSpecial(props.para.ClientSerNo, props.para.ProfileSerNo).then(\r\n (response) => {\r\n let newAddedData = JSON.parse(JSON.stringify(result));\r\n let newRemoveData = [];\r\n response.data.forEach((ele) => {\r\n let tempEle = result.find((x) => x.SpecialSerNo == ele.SpecialSerNo);\r\n\r\n if (tempEle == undefined) {\r\n newRemoveData.push(ele);\r\n }\r\n });\r\n console.log(\"del\", newRemoveData);\r\n console.log(\"add\", newAddedData);\r\n setSpecialAddData(newAddedData);\r\n setSpecialRemovedData(newRemoveData);\r\n }\r\n );\r\n };\r\n\r\n //update profile button click event start\r\n const handleUpdate = () => {\r\n let result = specialData.filter((x) => x.checked == true);\r\n console.log(result);\r\n if (props.para.Mode == \"ADD\") {\r\n if (props.hanldeOnSelection == undefined) {\r\n console.log(\"hanldeOnSelection is not defined\");\r\n } else {\r\n AddProfileSpecial(result).then((response) => {\r\n alert(response.data.Message);\r\n });\r\n props.hanldeOnSelection(result);\r\n }\r\n } else if (props.para.Mode == \"EDIT\") {\r\n if (props.hanldeOnSelection == undefined) {\r\n console.log(\"hanldeOnSelection is not defined\");\r\n } else {\r\n props.hanldeOnSelection(result);\r\n }\r\n AddEditReservationSpecial(result).then((response) => {\r\n alert(response.data.Message);\r\n });\r\n\r\n AddProfileSpecial(result).then((response) => {\r\n alert(response.data.Message);\r\n });\r\n } else {\r\n console.log(\"mode is not defined\");\r\n }\r\n };\r\n //update profile button click event\r\n\r\n //handle don't update button click event start\r\n const handleDonotUpdate = () => {\r\n setRoomSpecialConfirmPopupShow(false);\r\n let result = specialData.filter((x) => x.checked == true);\r\n console.log(result);\r\n if (props.para.Mode == \"ADD\") {\r\n if (props.hanldeOnSelection == undefined) {\r\n console.log(\"hanldeOnSelection is not defined\");\r\n } else {\r\n props.hanldeOnSelection(result);\r\n }\r\n } else if (props.para.Mode == \"EDIT\") {\r\n if (props.hanldeOnSelection == undefined) {\r\n console.log(\"hanldeOnSelection is not defined\");\r\n } else {\r\n props.hanldeOnSelection(result);\r\n }\r\n AddEditReservationSpecial(result).then((response) => {\r\n alert(response.data.Message);\r\n });\r\n }\r\n // handleOnclose();\r\n };\r\n //handle don't update button click event end\r\n\r\n //handle All checked event start\r\n const handleAllChecekd = (ischecked) => {\r\n if (ischecked == true) {\r\n } else {\r\n let temp = [...SpecialRemovedData];\r\n SpecialAddData.map((c) => {\r\n c.checked = false;\r\n //c.ProfileSerNo = props.para.ProfileSerNo;\r\n temp.push(c);\r\n });\r\n setSpecialRemovedData(temp);\r\n setSpecialAddData([]);\r\n }\r\n };\r\n //handle All checked event end\r\n\r\n //handle All checked removed event start\r\n const handleAllChecekdRemoved = (ischecked) => {\r\n if (ischecked) {\r\n let temp = [...SpecialAddData];\r\n SpecialRemovedData.map((c) => {\r\n c.checked = true;\r\n //c.ProfileSerNo = props.para.ProfileSerNo;\r\n temp.push(c);\r\n });\r\n setSpecialAddData(temp);\r\n setSpecialRemovedData([]);\r\n } else {\r\n }\r\n };\r\n //handle All checked removed event end\r\n\r\n //Profile checked and unchecked event start\r\n const handleProfileChecked = (e) => {\r\n if (e.target.checked) {\r\n let checkeddata = SpecialRemovedData.find(\r\n (x) => x.SpecialSerNo == e.target.id\r\n );\r\n let temp = [...SpecialAddData];\r\n temp.push(checkeddata);\r\n setSpecialAddData(temp);\r\n\r\n let uncheckeddata = SpecialRemovedData.filter(\r\n (x) => x.SpecialSerNo != e.target.id\r\n );\r\n setSpecialRemovedData(uncheckeddata);\r\n } else {\r\n let uncheckeddata = SpecialAddData.find(\r\n (x) => x.SpecialSerNo == e.target.id\r\n );\r\n\r\n if (SpecialRemovedData) {\r\n let temp = [...SpecialRemovedData];\r\n temp.push(uncheckeddata);\r\n setSpecialRemovedData(temp);\r\n }\r\n\r\n let checkeddata = SpecialAddData.filter(\r\n (x) => x.SpecialSerNo != e.target.id\r\n );\r\n\r\n setSpecialAddData(checkeddata);\r\n }\r\n };\r\n //Profile checked and unchecked event end\r\n\r\n //For Group By data Function Start\r\n const groupByKey = (array, key) => {\r\n return array.reduce((hash, obj) => {\r\n console.log(hash);\r\n console.log(obj);\r\n if (obj[key] === undefined) return hash;\r\n return Object.assign(hash, {\r\n [obj[key]]: (hash[obj[key]] || []).concat(obj),\r\n });\r\n }, []);\r\n };\r\n //For Group By data function end\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Specials

\r\n
\r\n
\r\n Reset\r\n setRoomSpecialConfirmPopupShow(true)}\r\n >\r\n Save\r\n {\" \"}\r\n {/* onClick={handleOnApply} */}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    Confirmation No.
    \r\n
    \r\n {reservationData.BookingNo}\r\n
    \r\n
  • \r\n
  • \r\n
    Guest Name
    \r\n
    \r\n {reservationData.GuestName}\r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n {\r\n setIsShowSelected(ischecked);\r\n }}\r\n className=\"mrgn-tp10\"\r\n >\r\n Show Selected ({selectedCount})\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {specialGroupData.map((d) => (\r\n \r\n {d.GroupName}\r\n {/* News Paper (3) */}\r\n \r\n \r\n x.checked == true &&\r\n x.SpecialGroupSerNo == d.SpecialGroupSerNo\r\n ).length > 0\r\n ? \"has-preferences\"\r\n : \"\"\r\n }\r\n id={d.SpecialGroupSerNo}\r\n >\r\n \r\n \r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {isShowSelected ? (\r\n
\r\n {Object.keys(checkedItemGroupWise).map((GroupName) => (\r\n
\r\n
\r\n {GroupName}\r\n
\r\n {checkedItemGroupWise[GroupName].map((item) => (\r\n \r\n {item.Name}\r\n \r\n ))}\r\n
\r\n ))}\r\n
\r\n ) : selectedGroup.SpecialGroupSerNo ? (\r\n
\r\n
\r\n {selectedGroup.GroupName}\r\n
\r\n {specialData\r\n .filter(\r\n (d) =>\r\n d.SpecialGroupSerNo == selectedGroup.SpecialGroupSerNo\r\n )\r\n .map((d2) => (\r\n \r\n {d2.Name}\r\n \r\n ))}\r\n
\r\n ) : (\r\n <>\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n {showRoomSpecialConfirmPopupShow == true ? (\r\n \r\n
\r\n
\r\n
\r\n

Specials

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Would you like to apply the changes in specials to the guest\r\n profile?\r\n

\r\n
\r\n
\r\n
\r\n
\r\n Specials Removed\r\n
\r\n
\r\n {\r\n handleAllChecekdRemoved(ischecked);\r\n }}\r\n checked={SpecialRemovedData.length == 0 ? true : false}\r\n >\r\n All\r\n \r\n\r\n {SpecialRemovedData &&\r\n SpecialRemovedData.map((r) => (\r\n r1.SpecialSerNo == r.SpecialSerNo\r\n )\r\n ? false\r\n : true\r\n }\r\n onClick={(e) => handleProfileChecked(e)}\r\n >\r\n {r.Name}\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n Specials Added\r\n
\r\n
\r\n {\r\n handleAllChecekd(ischecked);\r\n }}\r\n checked={SpecialAddData.length > 0 ? true : false}\r\n >\r\n All\r\n \r\n {SpecialAddData &&\r\n SpecialAddData.map((s) => (\r\n r.SpecialSerNo == s.SpecialSerNo\r\n )\r\n ? true\r\n : false\r\n }\r\n onClick={(e) => handleProfileChecked(e)}\r\n >\r\n {s.Name}\r\n \r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Update Profile\r\n \r\n \r\n Don't Update\r\n \r\n
\r\n
\r\n \r\n ) : null}\r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnTimeSelection,\r\n InnFileUpload,\r\n} from \"../../../../component\";\r\nimport {\r\n GetCancellationRuleMaster,\r\n GetCancellationRuleDetail,\r\n AddEditCancellationRuleDetail,\r\n AddEditCancellationRuleMaster,\r\n} from \"../../../../services/frontMasterService\";\r\nimport { GetTransactionMaster } from \"../../../../services/reservationService\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport Moment from \"moment\";\r\n\r\nexport function CancellationRuleMaster(props) {\r\n // #region Local Variable\r\n const currUser = useSelector(currentUser);\r\n const termtype = [\r\n { key: \"DF\", value: \"Select\" },\r\n { key: \"NN\", value: \"No. of Nights\" },\r\n { key: \"FA\", value: \"Flat Amount\" },\r\n { key: \"POS\", value: \"% of Stay\" },\r\n { key: \"NC\", value: \"Non Cancellable\" },\r\n ];\r\n\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n LongDescription: \"\",\r\n TransactionSerNo: 0,\r\n Mode: \"View\",\r\n Name: \"\",\r\n Negotiable: false,\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n Sequence: \"\",\r\n CancellationRuleSerNo: 0,\r\n };\r\n\r\n const defaultDetailObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n CancellationRuleSerNo: 0,\r\n CancellationRuleSubSerNo: 0,\r\n CancellationTermTypeSerNo: \"DF\",\r\n Name: \"\",\r\n DaysBeforeArrival: \"\",\r\n BeforeTime: \"1-jan-2001 00:00\",\r\n Value: \"\",\r\n Mode: \"View\",\r\n };\r\n\r\n const validationObj = {\r\n Name: \"\",\r\n PopName: \"\",\r\n LongDescription: \"\",\r\n Sequence: \"\",\r\n Value: \"\",\r\n DaysBeforeArrival: \"\",\r\n TransactionSerNo: 0\r\n };\r\n //#endregion\r\n\r\n //#region State Variables\r\n const [transactionList, setTransactionList] = useState([]);\r\n const [showCancellationTermTypeModal, setShowCancellationTermTypeModal] =\r\n useState();\r\n const [cancellationRuleData, setCancellationRuleData] = useState([]);\r\n const [cancelRuleObj, setCancelRuleObj] = useState(defaultObj);\r\n const [searchString, setSearchString] = useState(\"\");\r\n const [filterCancellationRuleData, setFilterCancellationRuleData] = useState(\r\n []\r\n );\r\n const [\r\n filterCancellationRuledetailData,\r\n setFilterCancellationRuleDetailData,\r\n ] = useState([]);\r\n const [cancellationRuleDetailData, setCancellationRuleDetailData] = useState(\r\n []\r\n );\r\n const [isDisabled, setIsDisabled] = useState(true);\r\n const [selectedCancellationSubSerNo, setSelectedCancellationSubSerNo] =\r\n useState(1);\r\n const [selectedCancellationRuleSerNo, setSelectedCancellationRuleSerNo] =\r\n useState(1);\r\n const [cancellationRuleValidation, setCancellationRuleValidation] =\r\n useState(validationObj);\r\n const [cancelRuleDetailObj, setCancelRuleDetailObj] =\r\n useState(defaultDetailObj);\r\n const [detailSearchString, setDetailSearchString] = useState(\"\");\r\n // const [addEdit, setAddEdit] = useState(false);\r\n const [isPopupEdit, setIsPopupEdit] = useState(true);\r\n const [clickedListItem, setClickedListItem] = useState(0);\r\n //const [isAddbutton, setIsAddbutton] = useState(false);\r\n const [clickedListPopupItem, setClickedListPopupItem] = useState(0);\r\n //const [disabledEdit,setDisabledEdit] = useState(false);\r\n const [forFirstAdd, setForFirstAdd] = useState(false);\r\n //endregion\r\n\r\n //#region Custom Functions\r\n const clearValidation = () => {\r\n setCancellationRuleValidation(validationObj);\r\n };\r\n const fillCancellationRuleData = () => {\r\n GetCancellationRuleMaster(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo)\r\n ).then((d) => {\r\n setCancellationRuleData(d.data);\r\n setFilterCancellationRuleData(d.data);\r\n if (cancelRuleObj.CancellationRuleSerNo === 0) {\r\n let obj = d.data[0];\r\n obj.Sequence = obj.Sequence.toString();\r\n setCancelRuleObj(obj)\r\n console.log(\"d.data\", d.data[0]);\r\n }\r\n });\r\n };\r\n\r\n\r\n const fillCancellationruleDetail = () => {\r\n GetCancellationRuleDetail(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n cancelRuleObj.CancellationRuleSerNo\r\n ).then((d) => {\r\n if (d.data.length == 0) {\r\n console.log(d.data)\r\n setForFirstAdd(true);\r\n setCancellationRuleDetailData([]);\r\n setFilterCancellationRuleDetailData([]);\r\n } else {\r\n //setClickedListPopupItem(d.data[0].CancellationRuleSubSerNo);\r\n // setCancelRuleDetailObj(d.data[0])\r\n setForFirstAdd(false);\r\n setCancellationRuleDetailData(d.data);\r\n setFilterCancellationRuleDetailData(d.data);\r\n }\r\n\r\n if (\r\n cancelRuleDetailObj.Mode == \"Edit\" ||\r\n cancelRuleDetailObj.Mode == \"Add\"\r\n ) {\r\n let obj = d.data.find(\r\n (x) =>\r\n x.CancellationRuleSubSerNo == cancelRuleDetailObj.CancellationRuleSubSerNo\r\n );\r\n if (obj != undefined) {\r\n if (obj.Name != undefined) {\r\n setCancelRuleDetailObj((prev) => ({\r\n ...prev,\r\n Name: obj.Name,\r\n }));\r\n }\r\n }\r\n }\r\n });\r\n };\r\n // #endregion\r\n const filTransactionMaster = () => {\r\n GetTransactionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"C\", \"ALL\").then(d => {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach((x) => {\r\n temp = [...temp, { key: x.TransactionSerNo, value: x.Name }]\r\n })\r\n setTransactionList(temp);\r\n })\r\n }\r\n // #region UseEffect\r\n\r\n useEffect(() => {\r\n fillCancellationRuleData();\r\n filTransactionMaster();\r\n }, []);\r\n\r\n useEffect(() => {\r\n fillCancellationruleDetail();\r\n }, [cancelRuleObj.CancellationRuleSerNo]);\r\n //#endregion\r\n\r\n //#region Events\r\n const handleOnSearchChange = (e) => {\r\n let filterData = cancellationRuleData.filter((item) =>\r\n item.Name.toLowerCase().includes(e.toLowerCase())\r\n );\r\n setFilterCancellationRuleData(filterData);\r\n setSearchString(e);\r\n setCancelRuleObj(defaultObj);\r\n setCancellationRuleDetailData([]);\r\n //setSelectedCancellationRuleSerNo(0);\r\n setIsDisabled(true);\r\n };\r\n\r\n const handleOnSearchDetail = (e) => {\r\n\r\n if (!forFirstAdd) {\r\n let filterdetail = cancellationRuleDetailData.filter((item) =>\r\n item.Name.toLowerCase().includes(e.toLowerCase())\r\n );\r\n setFilterCancellationRuleDetailData(filterdetail);\r\n setDetailSearchString(e);\r\n setCancelRuleDetailObj(defaultDetailObj);\r\n setClickedListPopupItem();\r\n setIsPopupEdit(false);\r\n //setSelectedCancellationSubSerNo(0);\r\n //setDisabledEdit(true);\r\n }\r\n };\r\n\r\n const handleOnCancellationRuleClick = (e) => {\r\n console.log(cancellationRuleDetailData);\r\n clearValidation();\r\n setIsDisabled(true);\r\n // let tempObj = cancellationRuleData.find(\r\n // (x) => x.CancellationRuleSerNo == e.target.id\r\n // );\r\n let tempObj = e;\r\n tempObj.Mode = \"View\";\r\n tempObj.Sequence = tempObj.Sequence.toString();\r\n setCancelRuleObj(tempObj);\r\n setSelectedCancellationRuleSerNo(e.CancellationRuleSerNo);\r\n setCancelRuleDetailObj(defaultDetailObj);\r\n };\r\n\r\n const handleOnCancellationRuleDetailClick = (e) => {\r\n console.log(e);\r\n clearValidation();\r\n setIsPopupEdit(false);\r\n let tempObj = e;\r\n tempObj.Mode = \"Edit\";\r\n // tempObj.Value = tempObj.Value.toString();\r\n // tempObj.DaysBeforeArrival = tempObj.DaysBeforeArrival.toString();\r\n setCancelRuleDetailObj(tempObj);\r\n setSelectedCancellationSubSerNo(e.CancellationRuleSubSerNo);\r\n // let tempObj = cancellationRuleDetailData.find(\r\n // (x) => x.CancellationRuleSubSerNo == e\r\n // );\r\n // tempObj.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n // tempObj.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n //tempObj.CancellationRuleSerNo = parseInt(cancelRuleObj.CancellationRuleSerNo);\r\n // if (tempObj != undefined) {\r\n // tempObj.Mode = \"Edit\";\r\n // tempObj.Value = tempObj.Value.toString();\r\n // tempObj.DaysBeforeArrival = tempObj.DaysBeforeArrival.toString();\r\n // setCancelRuleDetailObj(tempObj);\r\n // setSelectedCancellationSubSerNo(e);\r\n // }\r\n\r\n // console.log(\"tempobj\", tempObj);\r\n };\r\n\r\n const handleOnAddClick = () => {\r\n setForFirstAdd(true)\r\n // setIsAddbutton(true);\r\n setIsDisabled(false);\r\n let obj = defaultObj;\r\n obj.Mode = \"Add\";\r\n setCancelRuleObj(obj);\r\n setCancellationRuleDetailData([]);\r\n };\r\n\r\n const handleOnEditClick = () => {\r\n if (cancelRuleObj.Name == \"\") {\r\n alert(\"No cancellation rule selected.\");\r\n } else {\r\n setIsDisabled(false);\r\n let obj = cancelRuleObj;\r\n obj.Sequence = obj.Sequence.toString();\r\n obj.Mode = \"Edit\";\r\n setCancelRuleObj(obj);\r\n }\r\n };\r\n\r\n const handleOnSaveClick = () => {\r\n let isValid = true;\r\n\r\n if (cancelRuleObj.Name.trim().length === 0 || /[-’/`~!#*$@_+=,^&(){}[\\]|;.:”<>?\\\\]/.test(cancelRuleObj.Name)) {\r\n //alert(\"Enter valid name.\");\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n Name: \"Please provide a valid Name\",\r\n }));\r\n isValid = false;\r\n }\r\n else {\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n Name: \"\",\r\n }));\r\n }\r\n if (cancelRuleObj.LongDescription.trim().length === 0) {\r\n // alert(\"Enter valid long description.\");\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n LongDescription: \"Enter valid long description.\",\r\n }));\r\n isValid = false;\r\n }\r\n else {\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n LongDescription: \"\",\r\n }));\r\n }\r\n if (\r\n cancelRuleObj.Sequence.trim().length === 0 ||\r\n isNaN(cancelRuleObj.Sequence) || parseInt(cancelRuleObj.Sequence) <= 0\r\n ) {\r\n // alert(\"Please provide a valid sequence.\");\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n Sequence: \"Please enter a valid sequence\",\r\n }));\r\n isValid = false;\r\n }\r\n else {\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n Sequence: \"\",\r\n }));\r\n }\r\n if (cancelRuleObj.TransactionSerNo == 0) {\r\n setCancellationRuleValidation((prev) => ({ ...prev, TransactionSerNo: \"Please enter valid Transaction.\" }));\r\n isValid = false;\r\n }\r\n else {\r\n setCancellationRuleValidation((prev) => ({ ...prev, TransactionSerNo: \"\" }))\r\n }\r\n if (!isValid) {\r\n alert(\"One or more fields are incorrect. Please verify accordingly.\")\r\n }\r\n else {\r\n let tempObj = cancelRuleObj;\r\n tempObj.Sequence = parseInt(tempObj.Sequence);\r\n AddEditCancellationRuleMaster(tempObj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n if (cancelRuleObj.Mode == \"Add\") {\r\n setSelectedCancellationRuleSerNo(d.data.ReturnValue);\r\n tempObj.CancellationRuleSerNo = parseInt(d.data.ReturnValue);\r\n tempObj.Mode = \"View\";\r\n }\r\n else {\r\n setSelectedCancellationRuleSerNo(tempObj.CancellationRuleSerNo);\r\n }\r\n setCancelRuleObj(tempObj);\r\n setSearchString(\"\");\r\n setIsDisabled(true);\r\n fillCancellationRuleData();\r\n }\r\n clearValidation();\r\n });\r\n }\r\n };\r\n\r\n\r\n const handleOnCancelClick = () => {\r\n console.log(\"add\", cancelRuleObj);\r\n clearValidation();\r\n setIsDisabled(true);\r\n let existingObj = cancellationRuleData.find(\r\n (x) => x.CancellationRuleSerNo == selectedCancellationRuleSerNo\r\n );\r\n if (existingObj != undefined) setCancelRuleObj(existingObj);\r\n else setCancelRuleObj(defaultObj);\r\n };\r\n\r\n\r\n\r\n const handleOnPlusButtonClick = (e) => {\r\n setIsPopupEdit(false)\r\n if (cancelRuleObj.CancellationRuleSerNo == 0) {\r\n alert(\"No cancellation rule selected.\");\r\n } else {\r\n if (cancelRuleObj.Mode != \"Add\") {\r\n setShowCancellationTermTypeModal(!showCancellationTermTypeModal);\r\n setForFirstAdd(true);\r\n let obj = defaultDetailObj;\r\n obj.Mode = \"Add\";\r\n obj.CancellationRuleSerNo = cancelRuleObj.CancellationRuleSerNo;\r\n setCancelRuleDetailObj(obj);\r\n clearValidation();\r\n setSelectedCancellationSubSerNo(1);\r\n }\r\n }\r\n };\r\n\r\n const handleOnPencilButtonClick = (e) => {\r\n if (selectedCancellationRuleSerNo === 0) {\r\n alert(\"No cancellation rule selected.\");\r\n } else {\r\n setShowCancellationTermTypeModal(!showCancellationTermTypeModal);\r\n setForFirstAdd(false);\r\n setClickedListItem(1);\r\n setIsPopupEdit(false);\r\n if (cancellationRuleData.length > 0) {\r\n let obj = cancellationRuleDetailData[0];\r\n obj.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n obj.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n //obj.CancellationRuleSerNo = parseInt(selectedCancellationRuleSerNo);\r\n setSelectedCancellationSubSerNo(obj.CancellationRuleSubSerNo);\r\n setClickedListPopupItem(obj.CancellationRuleSubSerNo);\r\n //console.log(\"obj from fill\", obj);\r\n setCancelRuleDetailObj(obj);\r\n }\r\n }\r\n };\r\n\r\n const handleOnPopupAddButtonClick = () => {\r\n setIsPopupEdit(true);\r\n let obj = defaultDetailObj;\r\n obj.Mode = \"Add\";\r\n obj.CancellationRuleSerNo = cancelRuleObj.CancellationRuleSerNo;\r\n console.log(\"onAdd: \", obj);\r\n setCancelRuleDetailObj(obj);\r\n // setSelectedCancellationSubSerNo(1);\r\n clearValidation();\r\n };\r\n\r\n const handleOnPopupEditButtonClick = () => {\r\n clearValidation();\r\n if (cancelRuleDetailObj.Name == \"\") {\r\n alert(\"No cancellation rule detail selected.\");\r\n }\r\n else if (forFirstAdd) {\r\n alert(\"Add a cancellation rule detail first.\");\r\n }\r\n else {\r\n setIsPopupEdit(true);\r\n let obj = cancelRuleDetailObj;\r\n obj.Mode = \"Edit\";\r\n obj.Value = obj.Value.toString();\r\n obj.DaysBeforeArrival = obj.DaysBeforeArrival.toString();\r\n setCancelRuleDetailObj(obj);\r\n // setSelectedCancellationSubSerNo(1);\r\n }\r\n };\r\n\r\n\r\n const handleOnPopupSaveClick = (e) => {\r\n console.log(\"dsdsdsds\", cancelRuleDetailObj)\r\n\r\n if (selectedCancellationSubSerNo === 0) {\r\n alert(\"No cancellation rule selected.\");\r\n } else {\r\n if (\r\n cancelRuleDetailObj.Name.trim().length === 0 ||\r\n cancelRuleDetailObj.Value.trim().length === 0 ||\r\n isNaN(cancelRuleDetailObj.Value) ||\r\n isNaN(cancelRuleDetailObj.DaysBeforeArrival) ||\r\n cancelRuleDetailObj.DaysBeforeArrival.trim().length === 0 ||\r\n (cancelRuleDetailObj.CancellationTermTypeSerNo == \"POS\" && parseInt(cancelRuleDetailObj.Value) > 100)\r\n ) {\r\n console.log(\"1\")\r\n if (\r\n cancelRuleDetailObj.Name.trim().length === 0 &&\r\n cancelRuleDetailObj.Value.trim().length === 0 &&\r\n cancelRuleDetailObj.DaysBeforeArrival.trim().length === 0\r\n\r\n ) {\r\n alert(\"More than one fields are empty!\");\r\n }\r\n if (cancelRuleDetailObj.Name.trim().length === 0) {\r\n //alert(\"Enter valid name.\");\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n PopName: \"Please provide a valid Name\",\r\n }));\r\n }\r\n else {\r\n console.log(\"2\")\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n PopName: \"\",\r\n }));\r\n }\r\n if (cancelRuleDetailObj.CancellationTermTypeSerNo != \"NC\") {\r\n if (\r\n cancelRuleDetailObj.Value.trim().length === 0 ||\r\n isNaN(cancelRuleDetailObj.Value) ||\r\n parseInt(cancelRuleDetailObj.Value) <= 0\r\n ) {\r\n //alert(\" Enter a number greater than 0.\");\r\n console.log(\"Called\")\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n Value: \"Please enter a number.\",\r\n }));\r\n }\r\n else {\r\n if (\r\n cancelRuleDetailObj.CancellationTermTypeSerNo === \"POS\" &&\r\n parseInt(cancelRuleDetailObj.Value) > 100\r\n ) {\r\n alert(\"Enter value less than 100.\");\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n Value: \"Enter value less than 100.\",\r\n }));\r\n }\r\n else {\r\n console.log(\"called2\")\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n Value: \"\",\r\n }));\r\n }\r\n }\r\n }\r\n else {\r\n console.log(\"3\")\r\n if (\r\n cancelRuleDetailObj.Value.trim().length === 0 ||\r\n isNaN(cancelRuleDetailObj.Value)) {\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n Value: \"Please enter a value.\",\r\n }));\r\n }\r\n }\r\n if (\r\n isNaN(cancelRuleDetailObj.DaysBeforeArrival) ||\r\n cancelRuleDetailObj.DaysBeforeArrival.trim().length === 0\r\n ) {\r\n //alert(\"Please enter a number in days.\");\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n DaysBeforeArrival: \"Please enter a number.\",\r\n }));\r\n }\r\n else {\r\n console.log(\"4\")\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n DaysBeforeArrival: \"\",\r\n }));\r\n }\r\n } else {\r\n if (\r\n cancelRuleDetailObj.Value.trim().length === 0 &&\r\n cancelRuleDetailObj.DaysBeforeArrival.trim().length === 0 &&\r\n cancelRuleDetailObj.CancellationTermTypeSerNo === \"DF\"\r\n ) {\r\n console.log(\"object.....\", cancelRuleDetailObj);\r\n alert(\"Please Provide a valid Details.\");\r\n } if (\r\n parseInt(cancelRuleDetailObj.DaysBeforeArrival) < 0 ||\r\n cancelRuleDetailObj.DaysBeforeArrival.trim().length === 0\r\n ) {\r\n alert(\"Enter valid number of days.\");\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n DaysBeforeArrival: \"Enter a valid number of days\",\r\n }));\r\n } if (\r\n cancelRuleDetailObj.Value.trim().length === 0\r\n ) {\r\n alert(\"Enter valid term type value\");\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n Value: \"Enter a valid term type value.\",\r\n }));\r\n }\r\n if (cancelRuleDetailObj.CancellationTermTypeSerNo === \"DF\") {\r\n alert(\"Select valid term type.\")\r\n }\r\n else {\r\n let apiObj = cancelRuleDetailObj;\r\n apiObj.Value = parseFloat(cancelRuleDetailObj.Value);\r\n apiObj.DaysBeforeArrival = parseInt(cancelRuleDetailObj.DaysBeforeArrival);\r\n console.log(apiObj);\r\n AddEditCancellationRuleDetail(apiObj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n fillCancellationruleDetail();\r\n if (cancelRuleDetailObj.Mode == \"Add\") {\r\n setSelectedCancellationSubSerNo(d.data.ReturnValue);\r\n cancelRuleDetailObj.CancellationRuleSubSerNo = parseInt(d.data.ReturnValue);\r\n }\r\n if (cancelRuleDetailObj.Mode == \"Edit\") {\r\n console.log(\"Edit Obj: \", cancelRuleDetailObj);\r\n }\r\n setDetailSearchString(\"\");\r\n setIsPopupEdit(false);\r\n }\r\n clearValidation();\r\n });\r\n }\r\n }\r\n }\r\n };\r\n\r\n\r\n\r\n\r\n const handleOnPopupCancelClick = (e) => {\r\n console.log(\"save\", cancelRuleDetailObj);\r\n // setShowCancellationTermTypeModal(!showCancellationTermTypeModal);\r\n if (cancelRuleDetailObj.Mode == \"Add\" && forFirstAdd) {\r\n //setShowCancellationTermTypeModal(!showCancellationTermTypeModal);\r\n setIsPopupEdit(false);\r\n setCancelRuleDetailObj(defaultDetailObj);\r\n } else {\r\n setIsPopupEdit(!isPopupEdit);\r\n let existingObj = cancellationRuleDetailData.find(\r\n (x) => x.CancellationRuleSubSerNo == selectedCancellationSubSerNo\r\n );\r\n if (existingObj != undefined) setCancelRuleDetailObj(existingObj);\r\n else setCancelRuleDetailObj(defaultDetailObj);\r\n }\r\n clearValidation();\r\n };\r\n //#endregion\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Cancellation Rule Master

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Search\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n Cancellation Rules{\" \"}\r\n
\r\n
\r\n
    \r\n {filterCancellationRuleData.map((d, index) => {\r\n return (\r\n \r\n {\" \"}\r\n handleOnCancellationRuleClick(d)}\r\n id={d.CancellationRuleSerNo}\r\n >\r\n {d.Name}\r\n \r\n \r\n );\r\n })}\r\n
\r\n
\r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
\r\n
\r\n
\r\n {\" \"}\r\n {/* disabled-section */}\r\n
\r\n
\r\n {\r\n setCancelRuleObj((prev) => ({ ...prev, Name: m }));\r\n if (m == \"\" || /[-’/`~!#*$@_+=,^&(){}[\\]|;.:”<>?\\\\]/.test(m)) {\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n Name: \"Invalid Name\",\r\n }));\r\n } else {\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n Name: \"\",\r\n }));\r\n }\r\n }}\r\n\r\n >\r\n Cancellation Rule{\" \"}\r\n \r\n {\r\n setCancelRuleObj((prev) => ({\r\n ...prev,\r\n LongDescription: m,\r\n }));\r\n if (m === \"\") {\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n LongDescription: \"Invalid Input\",\r\n }));\r\n } else {\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n LongDescription: \"\",\r\n }));\r\n }\r\n }}\r\n >\r\n Long Description{\" \"}\r\n \r\n
\r\n \r\n Include Additional Package\r\n {\" \"}\r\n console.log(v)}>\r\n
\r\n\r\n {\r\n setCancelRuleObj((prev) => ({\r\n ...prev,\r\n Sequence: m,\r\n }));\r\n if (\r\n m.trim().length === 0 ||\r\n isNaN(m) ||\r\n parseInt(m) < 0\r\n ) {\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n Sequence: \"Invalid Sequence No\",\r\n }));\r\n } else {\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n Sequence: \"\",\r\n }));\r\n }\r\n }}\r\n >\r\n Sequence\r\n \r\n
\r\n {\r\n setCancelRuleObj((prev) => ({ ...prev, TransactionSerNo: parseInt(item.key), }));\r\n }}\r\n >\r\n
\r\n
\r\n Negotiable{\" \"}\r\n {\r\n setCancelRuleObj((prev) => ({\r\n ...prev,\r\n Negotiable: m,\r\n }));\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Cancellation Term Type \r\n \r\n {forFirstAdd ? (\r\n \r\n +\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n
\r\n
    \r\n {cancellationRuleDetailData.map((d) => {\r\n return (\r\n
  • \r\n \r\n {d.Name}\r\n
  • \r\n );\r\n })}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n \r\n
\r\n
\r\n Activate{\" \"}\r\n console.log(v)} id=\"1\">\r\n {/* setShowCancellationTermTypeModal(!showCancellationTermTypeModal)}>Add Cancellation Term Type */}\r\n {isDisabled ? (\r\n <>\r\n \r\n Edit\r\n \r\n \r\n Add\r\n \r\n \r\n ) : (\r\n <>\r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {showCancellationTermTypeModal ? (\r\n {\r\n setShowCancellationTermTypeModal(!showCancellationTermTypeModal);\r\n setDetailSearchString(\"\");\r\n setFilterCancellationRuleDetailData(cancellationRuleDetailData);\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n

Cancellation Term Type

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Search\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n Cancellation Term Types{\" \"}\r\n
\r\n
\r\n
    \r\n {filterCancellationRuledetailData.map((d, index) => {\r\n return (\r\n {\r\n setClickedListPopupItem(e.target.id);\r\n }}\r\n >\r\n {\" \"}\r\n handleOnCancellationRuleDetailClick(d)}\r\n id={d.CancellationRuleSubSerNo}\r\n >\r\n {d.Name}\r\n \r\n \r\n );\r\n })}\r\n
\r\n
\r\n {/* Add Cancellation Term */}\r\n
\r\n\r\n
\r\n {\r\n setCancelRuleDetailObj((prev) => ({ ...prev, Name: m }));\r\n if (m == \"\") {\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n PopName: \"Invalid Name\",\r\n }));\r\n } else {\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n PopName: \"\",\r\n }));\r\n }\r\n }}\r\n >\r\n Cancellation Term Description\r\n \r\n
\r\n {\r\n // setCancellationTermTypeValue(m.value);\r\n setCancelRuleDetailObj((prev) => ({\r\n ...prev,\r\n CancellationTermTypeSerNo: m.key,\r\n }));\r\n }}\r\n\r\n //onChange={(item, name) => { }}\r\n >\r\n
\r\n {\r\n setCancelRuleDetailObj((prev) => ({\r\n ...prev,\r\n Value: m,\r\n }));\r\n if (cancelRuleDetailObj.CancellationTermTypeSerNo == \"NC\") {\r\n if (m.trim().length === 0 || isNaN(m)) {\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n Value: \"Please Enter type value.\",\r\n }));\r\n }\r\n else {\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n Value: \"\",\r\n }));\r\n };\r\n }\r\n else {\r\n if (m.trim().length === 0 || isNaN(m)) {\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n Value: \"Enter type value more than 0.\",\r\n }));\r\n } else {\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n Value: \"\",\r\n }));\r\n };\r\n }\r\n\r\n }}\r\n >\r\n Cancellation Term Value{\" \"}\r\n \r\n {/*
\r\n { }}\r\n >\r\n
*/}\r\n {\r\n setCancelRuleDetailObj((prev) => ({\r\n ...prev,\r\n DaysBeforeArrival: m,\r\n }));\r\n if (m.trim().length === 0 || isNaN(m)) {\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n DaysBeforeArrival: \"Enter value more than 0.\",\r\n }));\r\n } else {\r\n setCancellationRuleValidation((prev) => ({\r\n ...prev,\r\n DaysBeforeArrival: \"\",\r\n }));\r\n };\r\n }}\r\n >\r\n Days\r\n \r\n {\r\n let d = new Date(\"1-jan-2001 \" + m);\r\n setCancelRuleDetailObj((prev) => ({\r\n ...prev,\r\n BeforeTime: Moment(d).format(\"DD-MMM-YYYY HH:mm\"),\r\n }));\r\n console.log(\"BeforeTime: \", typeof m);\r\n }}\r\n // placeholder=\"Time \"\r\n label=\"Time \"\r\n timeformat=\"HH:mm\" //for 12 hour h:mm aa\r\n dateformat=\"HH:mm\" //for 12 hour h:mm aa\r\n selected={cancelRuleDetailObj.BeforeTime}\r\n >\r\n
\r\n {/* Add Cancellation Term\r\n
*/}\r\n {/* {!isPopupEdit ? (\r\n <>\r\n \r\n Edit\r\n \r\n \r\n Add\r\n \r\n \r\n ) : (\r\n <>\r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n \r\n )} */}\r\n {\r\n !isPopupEdit ?\r\n cancellationRuleDetailData.length > 0 ?\r\n \r\n Edit\r\n \r\n :\r\n \r\n Add\r\n \r\n :\r\n <>\r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n \r\n }\r\n\r\n {/* Cancel\r\n setShowCancellationTermTypeModal(!showCancellationTermTypeModal)}>Save*/}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n ) : null}\r\n
\r\n );\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnButtonTypeWithDropdown,\r\n InnCheckbox,\r\n InnFileUpload,\r\n InnFileUploadPreview,\r\n InnLoader,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnRadioButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnToastMessage,\r\n InnTabs,\r\n InnStatusLabel,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnButton3Darrow,\r\n InnSingleDateSelection,\r\n InnDataGrid,\r\n useConfirm,\r\n} from \"../../../component\";\r\n\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport settingicon from \"../../../assets/images/settings-icon.svg\";\r\nimport infoicon from \"../../../assets/images/info-icon.svg\";\r\nimport sharerSecondryIcon from \"../../../assets/images/sharer-secondary.svg\";\r\nimport sharerPrimaryIcon from \"../../../assets/images/sharer-primary.svg\";\r\nimport {\r\n IndiAgent,\r\n IndiCompany,\r\n IndiAdultChild,\r\n IndiArrival,\r\n IndiDailyRate,\r\n IndiGuestName,\r\n IndiInclusion,\r\n IndiPackege,\r\n IndiRateCode,\r\n IndiReservationType,\r\n IndiRoomRate,\r\n IndiRoomType,\r\n IndiSharer,\r\n} from \"./indicators\";\r\nimport ReservationSubMenu from \"./reservation-sub-menu\";\r\nimport linkIcon from \"../../../assets/images/link-icon.svg\";\r\nimport SharerPrimary from \"../../../assets/images/sharer-primary-icon.svg\";\r\nimport SharerSecondry from \"../../../assets/images/sharer-secondary-icon.svg\";\r\nimport BlockIcon from \"../../../assets/images/block-icon.svg\";\r\nimport { GetCancelReservationList } from \"../../../services/reservationCancelService\";\r\nimport moment from \"moment\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { GetPropertyParameterByKeys } from \"../../../services/reservationService\";\r\nimport { currentUser } from \"../../../reducer/authSlice\";\r\nimport { AgentModalPopup } from \"./modalPopup/AgentModalPopup\";\r\nimport {\r\n cmbGetRoomTypeMaster,\r\n cmbGetReservationStatus,\r\n cmbGetRateCodeMaster,\r\n cmbGetVIPStatusMaster,\r\n cmbGetMemberShipLvl,\r\n} from \"../../../services/reservationService\";\r\nimport { CancelNoShowModalPopup } from \"./modalPopup/cancel-noshow-ModalPopup\";\r\n\r\nexport function ReservationCancelList(props) {\r\n const history = useHistory();\r\n const location = useLocation();\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const [reservationSerNo, setReservationSerNo] = useState(0);\r\n const reservationObj = {\r\n ClientSerNo: 1201,\r\n PropertySerNo: 1,\r\n ReservationSerNo: 10,\r\n };\r\n\r\n const tempObj = {\r\n ClientSerNo: 1201,\r\n PropertySerNo: 1,\r\n SortCol: \"ArrivalDate\",\r\n SortType: \"asc\",\r\n DtType: \"STAY\",\r\n FromDate: \"1-jan-2022\",\r\n ToDate: \"31-dec-2022\",\r\n RoomTypeSerNo: \"\",\r\n RateSerNo: 0,\r\n CompanyProfileSerNo: 0,\r\n AgentProfileSerNo: 10,\r\n BookingNo: \"\",\r\n BookingReferenceNo: \"\",\r\n MembershipNo: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n VIPLevelSerNo: 0,\r\n strMemberShipLevel: \"\",\r\n CanReservationStatus: \"\",\r\n BlockName: \"innkey\",\r\n RoomSerNo: 0,\r\n IsSameDayCancel: false,\r\n IsSameDayArrivalCancel: false,\r\n };\r\n const defaultCancelObj = {\r\n ClientSerNo: 1201,\r\n PropertySerNo: 1,\r\n SortCol: \"ArrivalDate\",\r\n SortType: \"asc\",\r\n DtType: \"CANC\",\r\n FromDate: \"\",\r\n ToDate: \"\",\r\n RoomTypeSerNo: \"\",\r\n RateSerNo: 0,\r\n CompanyProfileSerNo: 0,\r\n AgentProfileSerNo: 0,\r\n BookingNo: \"\",\r\n BookingReferenceNo: \"\",\r\n MembershipNo: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n VIPLevelSerNo: 0,\r\n strMemberShipLevel: \"\",\r\n CanReservationStatus: \"DP\",\r\n BlockName: \"\",\r\n RoomSerNo: 0,\r\n IsSameDayCancel: false,\r\n IsSameDayArrivalCancel: false,\r\n // ReservationStatus: \"CAN,NSH,\",\r\n };\r\n const defaultCancelValidationObj = {\r\n BookingNo: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n MembershipNo: \"\",\r\n BookingReferenceNo: \"\",\r\n };\r\n const columnHeader = [\r\n { key: \"Res. Status\", value: \"ReservationStatus\", type: \"txt\", align: \"left\" },\r\n { key: \"Cancelled Res. Status\", value: \"CancelledResStatus\", type: \"txt\", sorting: \"N\", align: \"left\" },\r\n { key: \"Booking No.\", value: \"BookingNo\", type: \"txt\", sorting: \"N\", align: \"left\" },\r\n { key: \"Room Type\", value: \"RoomTypeName\", type: \"txt\", sorting: \"N\", align: \"left\" },\r\n { key: \"Sharer\", value: \"Sharer\", type: \"img\", sorting: \"N\", align: \"center\" },\r\n { key: \"Block\", value: \"Block\", type: \"img\", sorting: \"N\", align: \"center\" },\r\n { key: \"Party\", value: \"PartyReservation\", type: \"img\", sorting: \"N\", align: \"center\" },\r\n { key: \"Guest Name\", value: \"GuestName\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Rooms\", value: \"NoOfRoom\", type: \"txt\", sorting: \"Y\", align: \"center\" },\r\n { key: \"Arrival Date\", value: \"ArrivalDate\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Nights\", value: \"Nights\", type: \"txt\", sorting: \"N\", align: \"center\" },\r\n { key: \"Person\", value: \"Adult\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Date of Cancellation\", value: \"CancellationDate\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Cancellation Rule\", value: \"CancelationRule\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Reason for Cancellation\", value: \"CancelReason\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Penalty Amount\", value: \"PenaltyAmount\", type: \"txt\", sorting: \"N\", align: \"right\" },\r\n { key: \"Invoice Amount\", value: \"InvoiceAmount\", type: \"txt\", sorting: \"N\", align: \"right\" },\r\n { key: \"Advance Deposit\", value: \"AdvanceDeposit\", type: \"txt\", sorting: \"N\", align: \"right\" },\r\n { key: \"Company\", value: \"CompanyName\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Travel Agent\", value: \"AgentName\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Block No.\", value: \"BlockSerNo\", type: \"txt\", sorting: \"N\", align: \"center\" },\r\n { key: \"Party No.\", value: \"PartySerNo\", type: \"txt\", sorting: \"N\", align: \"center\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n const [reservationCancelObj, setReservationCancelObj] = useState(defaultCancelObj);\r\n const [reservationCancelList, setReservationCancelList] = useState([]);\r\n const [reservationCancelDispalyList, setReservationCancelDisplayList] = useState([]);\r\n const [colList, setColList] = useState([]);\r\n const [colListKeys, setColListKeys] = useState([]);\r\n const [showFilter, setShowFilter] = useState(false);\r\n const [reservationCancelValidation, setReservationCancelValidation] = useState(defaultCancelValidationObj);\r\n const [propertyBusinessDate, setPropertyBusinessDate] = useState(\"\");\r\n const [propertyDepartureTime, setPropertyDepartureTime] = useState(\"\");\r\n const [showCompanyFilterModalPopup, setShowCompanyFilterModalPopup] = useState(false);\r\n const [showAgentFilterModalPopup, setShowAgentFilterModalPopup] = useState(false);\r\n const [selectedAgent, setSelectedAgent] = useState({\r\n AgentSerNo: 0,\r\n AgentName: \"Select\",\r\n });\r\n const [selectedCompany, setSelectedCompany] = useState({\r\n AgentSerNo: 0,\r\n AgentName: \"Select\",\r\n });\r\n const [reservationStatusData, setReservationStatusData] = useState([]);\r\n const [selectedResStatus, setSelectedResStatus] = useState([\"CAN\", \"NSH\"]);\r\n const [roomTypeData, setRoomTypeData] = useState([]);\r\n const [selectedRoomType, setSelectedRoomType] = useState([]);\r\n const [rateCodeData, setRateCodeData] = useState([]);\r\n const [selectedRateCode, setSelectedRateCode] = useState([]);\r\n const [vipStatusData, setVipStatusData] = useState([]);\r\n const [membershipLevelData, setMembershipLevelData] = useState([]);\r\n const [selectedMembershipLevel, setSelectedMembershipLevel] = useState([]);\r\n const [IsLoaderActive, setIsLoaderActive] = useState(true);\r\n const [selectedReservation, setSelectedReservation] = useState({});\r\n const [IsPropsLoaded, setIsPropsLoaded] = useState(false);\r\n const [reloadGrid, setReloadGrid] = useState(false);\r\n\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const fillCancelList = () => {\r\n const obj = reservationCancelObj;\r\n GetCancelReservationList(obj).then((d) => {\r\n setReservationCancelList(d.data);\r\n setIsLoaderActive(false);\r\n d.data.forEach((x) => {\r\n if (x.Block == \"Y\") {\r\n x.Block = BlockIcon;\r\n }\r\n if (x.PartyReservation == \"Y\") {\r\n x.PartyReservation = linkIcon;\r\n }\r\n if (x.Sharer === \"Y\") {\r\n x.Sharer = SharerSecondry;\r\n } else {\r\n x.Sharer = SharerPrimary;\r\n }\r\n });\r\n let tempData = d.data;\r\n if (selectedResStatus.length > 0) {\r\n tempData = d.data.filter((x) => selectedResStatus.includes(x.ReservationStatus));\r\n }\r\n setReservationCancelDisplayList(tempData);\r\n });\r\n };\r\n\r\n const fillPropertyParameterData = () => {\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), [\r\n \"BusinessDate\",\r\n \"DepartureTime\",\r\n ]).then((d) => {\r\n setPropertyBusinessDate(d.data[0].value);\r\n setPropertyDepartureTime(d.data[1].value);\r\n });\r\n };\r\n const [gridSelectedItem, SetgridSelectedItem] = useState([]);\r\n const [temp, settemp] = useState(false);\r\n const [showAdvancedSearchModal, setShowAdvancedSearchModal] = useState(false);\r\n\r\n const selectdatetype = [\r\n { key: \"ARR\", value: \"Arrival Date\" },\r\n { key: \"DEPT\", value: \"Departure Date\" },\r\n { key: \"BOOK\", value: \"Booking Date\" },\r\n { key: \"STAY\", value: \"Stay Date\" },\r\n { key: \"CANC\", value: \"Cancelled Date\" },\r\n ];\r\n const cancResStat = [\r\n { key: \"NA\", value: \"Not Applicable (NA) \" },\r\n { key: \"DP\", value: \"Decision Pending (DP) \" },\r\n { key: \"CP\", value: \"Penalty Charged (PC) \" },\r\n { key: \"GP\", value: \"Generated Proforma Invoice (GPI) \" },\r\n { key: \"CM\", value: \"Cancellation Managed (CM) \" },\r\n { key: \"WO\", value: \"Waive Off (WO) \" },\r\n ];\r\n const [cancellationResStatus, setCancellationResStatus] = useState(cancResStat);\r\n const [selectedCancelledResStatus, setSelectedCancelledResStatus] = useState([\"DP\"]);\r\n\r\n const selectdata = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n const resStatusdata = [\r\n { key: \"Cancelled\", value: \"Cancelled\" },\r\n { key: \"No Show\", value: \"No Show\" },\r\n ];\r\n const selectPropertyName = [\r\n { key: \"The Fern Ahmedabad\", value: \"Option 1\" },\r\n { key: \"The Fern Vadodara\", value: \"Option 2\" },\r\n { key: \"Lords inn Long name 123456978\", value: \"Option 3\" },\r\n { key: \"The Fern Vadodara asdf sdfs rser s \", value: \"Option 4\" },\r\n { key: \"Long property name more then 20 char\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n const MoreFilterData = [\r\n { key: \"fillCompany\", value: \"Company\", ObjectName: \"CompanyProfileSerNo\" },\r\n { key: \"fillAgent\", value: \"Agent\", ObjectName: \"AgentProfileSerNo\" },\r\n { key: \"fillBlockName\", value: \"Block Name\", ObjectName: \"BlockName\" },\r\n { key: \"fillRoomType\", value: \"Room Type\", ObjectName: \"RoomTypeSerNo\" },\r\n { key: \"fillRateCode\", value: \"Rate Code\", ObjectName: \"RateSerNo\" },\r\n { key: \"fillVipStatus\", value: \"VIP Status\", ObjectName: \"VIPLevelSerNo\" },\r\n { key: \"fillMemLevel\", value: \"Membership Level\", ObjectName: \"strMemberShipLevel\" },\r\n { key: \"fillMembershipNo\", value: \"Membership No\", ObjectName: \"MembershipNo\" },\r\n { key: \"fillBookingRefNo\", value: \"Travel Agent No\", ObjectName: \"BookingReferenceNo\" },\r\n { key: \"fillSameDayCan\", value: \"Same Day Cancellation\", ObjectName: \"IsSameDayCancel\" },\r\n { key: \"fillSameDayArrCan\", value: \"Same Day Arrival - Cancellation\", ObjectName: \"IsSameDayArrivalCancel\" },\r\n ];\r\n\r\n //#region filters\r\n\r\n const fillCompany = () => {\r\n return (\r\n
\r\n
\r\n
\r\n {\r\n setShowCompanyFilterModalPopup(true);\r\n }}>\r\n Company\r\n {\" \"}\r\n \r\n \r\n \r\n
\r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillCompany\");\r\n setColList(c);\r\n setReservationCancelObj((prev) => ({ ...prev, CompanyProfileSerNo: 0 }));\r\n setSelectedCompany({ AgentSerNo: 0, AgentName: \"Select\" });\r\n }}>\r\n
\r\n
\r\n );\r\n };\r\n const fillAgent = () => {\r\n return (\r\n
\r\n
\r\n
\r\n {\r\n setShowAgentFilterModalPopup(true);\r\n }}>\r\n Agent{\" \"}\r\n {\" \"}\r\n \r\n \r\n \r\n
\r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillAgent\");\r\n setColList(c);\r\n setReservationCancelObj((prev) => ({ ...prev, AgentProfileSerNo: 0 }));\r\n setSelectedAgent({ AgentSerNo: 0, AgentName: \"Select\" });\r\n }}>\r\n
\r\n
\r\n );\r\n };\r\n const fillBlockName = () => {\r\n return (\r\n
\r\n
\r\n {\r\n setReservationCancelObj((prev) => ({ ...prev, BlockName: e }));\r\n }}>\r\n Block Name\r\n \r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillBlockName\");\r\n setReservationCancelObj((prev) => ({ ...prev, BlockName: \"\" }));\r\n setColList(c);\r\n }}>\r\n
\r\n
\r\n );\r\n };\r\n const fillRoomType = () => {\r\n return (\r\n
\r\n
\r\n
\r\n {\r\n setSelectedRoomType(item);\r\n let str = \"\";\r\n item.forEach((x) => {\r\n str = str + x + \",\";\r\n });\r\n setReservationCancelObj((prev) => ({ ...prev, RoomTypeSerNo: str }));\r\n }}>\r\n
\r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillRoomType\");\r\n setSelectedRoomType([]);\r\n setReservationCancelObj((prev) => ({ ...prev, RoomTypeSerNo: \"\" }));\r\n setColList(c);\r\n }}>\r\n
\r\n
\r\n );\r\n };\r\n const fillRateCode = () => {\r\n return (\r\n
\r\n
\r\n
\r\n {\r\n setSelectedRateCode(e);\r\n let str = \"\";\r\n e.forEach((x) => {\r\n str = str + x + \",\";\r\n });\r\n setReservationCancelObj((prev) => ({ ...prev, RateSerNo: str }));\r\n }}>\r\n
\r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillRateCode\");\r\n setColList(c);\r\n setSelectedRateCode([]);\r\n setReservationCancelObj((prev) => ({ ...prev, RateSerNo: \"\" }));\r\n }}>\r\n
\r\n
\r\n );\r\n };\r\n const fillVipStatus = () => {\r\n return (\r\n
\r\n
\r\n
\r\n {\r\n setReservationCancelObj((prev) => ({ ...prev, VIPLevelSerNo: parseInt(e.key) }));\r\n }}>\r\n
\r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillVipStatus\");\r\n setColList(c);\r\n setReservationCancelObj((prev) => ({ ...prev, VIPLevelSerNo: \"\" }));\r\n }}>\r\n
\r\n
\r\n );\r\n };\r\n const fillMemLevel = () => {\r\n return (\r\n
\r\n
\r\n
\r\n {\r\n setSelectedMembershipLevel(e);\r\n let str = \"\";\r\n e.forEach((x) => {\r\n str = str + x + \",\";\r\n });\r\n setReservationCancelObj((prev) => ({ ...prev, strMemberShipLevel: str }));\r\n }}>\r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillMemLevel\");\r\n setColList(c);\r\n setSelectedMembershipLevel([]);\r\n setReservationCancelObj((prev) => ({ ...prev, strMemberShipLevel: \"\" }));\r\n }}>\r\n
\r\n
\r\n
\r\n );\r\n };\r\n const fillMembershipNo = () => {\r\n return (\r\n
\r\n
\r\n {\r\n setReservationCancelObj((prev) => ({ ...prev, MembershipNo: e }));\r\n if (!isNaN(e)) {\r\n setReservationCancelValidation((prev) => ({ ...prev, MembershipNo: \"\" }));\r\n } else {\r\n setReservationCancelValidation((prev) => ({ ...prev, MembershipNo: \"Please enter number.\" }));\r\n }\r\n }}>\r\n Membership No\r\n \r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillMembershipNo\");\r\n setColList(c);\r\n setReservationCancelObj((prev) => ({ ...prev, MembershipNo: \"\" }));\r\n setReservationCancelValidation((prev) => ({ ...prev, MembershipNo: \"\" }));\r\n }}>\r\n
\r\n
\r\n );\r\n };\r\n const fillBookingRefNo = () => {\r\n return (\r\n
\r\n
\r\n {\r\n setReservationCancelObj((prev) => ({ ...prev, BookingReferenceNo: e }));\r\n if (!isNaN(e)) {\r\n setReservationCancelValidation((prev) => ({ ...prev, BookingReferenceNo: \"\" }));\r\n } else {\r\n setReservationCancelValidation((prev) => ({ ...prev, BookingReferenceNo: \"Please enter number.\" }));\r\n }\r\n }}>\r\n Booking Reference No\r\n \r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillBookingRefNo\");\r\n setColList(c);\r\n setReservationCancelObj((prev) => ({ ...prev, BookingReferenceNo: \"\" }));\r\n setReservationCancelValidation((prev) => ({ ...prev, BookingReferenceNo: \"\" }));\r\n }}>\r\n
\r\n
\r\n );\r\n };\r\n\r\n const fillSameDayCan = () => {\r\n return (\r\n
\r\n
\r\n {\r\n if (ischecked) {\r\n setReservationCancelObj((prev) => ({ ...prev, IsSameDayCancel: true }));\r\n } else {\r\n setReservationCancelObj((prev) => ({ ...prev, IsSameDayCancel: false }));\r\n }\r\n }}>\r\n Same Day Cancellation{\" \"}\r\n \r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillSameDayCan\");\r\n setColList(c);\r\n setReservationCancelObj((prev) => ({ ...prev, IsSameDayCancel: null }));\r\n }}>\r\n
\r\n
\r\n );\r\n };\r\n const fillSameDayArrCan = () => {\r\n return (\r\n
\r\n
\r\n {\r\n if (ischecked) {\r\n setReservationCancelObj((prev) => ({ ...prev, IsSameDayArrivalCancel: true }));\r\n } else {\r\n setReservationCancelObj((prev) => ({ ...prev, IsSameDayArrivalCancel: false }));\r\n }\r\n }}>\r\n Same Day Arrival - Cancellation{\" \"}\r\n \r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillSameDayArrCan\");\r\n setColList(c);\r\n setReservationCancelObj((prev) => ({ ...prev, IsSameDayArrivalCancel: null }));\r\n }}>\r\n
\r\n
\r\n );\r\n };\r\n //#endregion filters\r\n //grid header\r\n const handleFilterReset = () => {\r\n setReservationCancelValidation(defaultCancelValidationObj);\r\n let obj = defaultCancelObj;\r\n if (propertyBusinessDate != undefined) {\r\n obj.FromDate = propertyBusinessDate;\r\n obj.ToDate = propertyBusinessDate;\r\n }\r\n setReservationCancelObj(obj);\r\n setSelectedAgent({ AgentSerNo: 0, AgentName: \"Select\" });\r\n setSelectedCompany({ AgentSerNo: 0, AgentName: \"Select\" });\r\n setSelectedCancelledResStatus([\"DP\"]);\r\n setSelectedResStatus([]);\r\n setSelectedRoomType([]);\r\n setSelectedRateCode([]);\r\n setSelectedMembershipLevel([]);\r\n };\r\n const handleFilterApply = () => {\r\n if (\r\n (/^[A-Za-z0-9]+$/.test(reservationCancelObj.FirstName && reservationCancelObj.FirstName.length >= 3) ||\r\n reservationCancelObj.FirstName == \"\") &&\r\n (/^[A-Za-z0-9]+$/.test(reservationCancelObj.LastName) || reservationCancelObj.LastName == \"\") &&\r\n (/^[A-Za-z0-9]+$/.test(reservationCancelObj.BookingNo) || reservationCancelObj.BookingNo == \"\") &&\r\n (!isNaN(reservationCancelObj.MembershipNo) || reservationCancelObj.MembershipNo == \"\") &&\r\n (!isNaN(reservationCancelObj.BookingReferenceNo) || reservationCancelObj.BookingReferenceNo == \"\")\r\n ) {\r\n fillCancelList();\r\n setShowAdvancedSearchModal(!showAdvancedSearchModal);\r\n } else {\r\n alertFunction(\"Something went wrong\");\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (reservationCancelObj.SortCol != \"\" && reservationCancelObj.SortType != \"\" && IsPropsLoaded) {\r\n fillCancelList();\r\n }\r\n }, [reservationCancelObj.SortCol, reservationCancelObj.SortType]);\r\n\r\n const optBtnData = [\r\n { key: \"Reinstate\", value: \"Reinstate\" },\r\n { key: \"Go to At a Glance\", value: \"Go to At a Glance\" },\r\n { key: \"Go to Cashiering\", value: \"Go to Cashiering\" },\r\n { key: \"Manage Post Cancellation\", value: \"Manage Post Cancellation\" },\r\n ];\r\n\r\n useEffect(() => {\r\n const timeId = setTimeout(() => {\r\n setActive(isActive);\r\n }, 3000);\r\n }, []);\r\n\r\n\r\n\r\n useEffect(() => {\r\n let temp = [];\r\n if (colList && colList.length > 0) {\r\n colList.map((d) => {\r\n temp.push(d.key);\r\n });\r\n }\r\n setColListKeys(temp);\r\n }, [colList]);\r\n\r\n useEffect(() => {\r\n let filterKeys = Object.keys(reservationCancelObj);\r\n let tempObj = reservationCancelObj;\r\n filterKeys.forEach((x) => {\r\n if (MoreFilterData.find((o) => o.ObjectName === x)) {\r\n if (!colListKeys.includes(MoreFilterData.find((o) => o.ObjectName === x).key)) {\r\n if (\r\n tempObj[x] !== null &&\r\n tempObj[x] !== undefined &&\r\n tempObj[x] !== 0 &&\r\n tempObj[x] !== false &&\r\n tempObj[x] !== \"\"\r\n ) {\r\n tempObj[x] = defaultCancelObj[x];\r\n }\r\n }\r\n }\r\n });\r\n }, [colListKeys.length]);\r\n\r\n useEffect(() => {\r\n fillPropertyParameterData();\r\n cmbGetReservationStatus().then((d) => {\r\n setReservationStatusData(d.data);\r\n });\r\n cmbGetRoomTypeMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n setRoomTypeData(d.data);\r\n });\r\n cmbGetRateCodeMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n setRateCodeData(d.data);\r\n });\r\n cmbGetVIPStatusMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n setVipStatusData(d.data);\r\n });\r\n cmbGetMemberShipLvl(currUser.ClientSerNo).then((d) => {\r\n setMembershipLevelData(d.data);\r\n });\r\n if (props.location.state !== undefined) {\r\n if (props.location.state[\"filterObj\"] !== undefined) {\r\n let propsFilterObj = reservationCancelObj;\r\n let propsKeys = Object.keys(props.location.state[\"filterObj\"]);\r\n if (propsKeys.length > 0) {\r\n let j = props.location.state[\"filterObj\"];\r\n if (j[\"CanReservationStatus\"]) {\r\n let temp = j[\"CanReservationStatus\"].split(\",\");\r\n temp = temp.filter((x) => x.trim().length > 0);\r\n setSelectedCancelledResStatus(temp);\r\n propsFilterObj[\"CanReservationStatus\"] = j[\"CanReservationStatus\"];\r\n }\r\n if (j['FromDate'] !== '') {\r\n propsFilterObj['FromDate'] = j['FromDate'];\r\n }\r\n if (j['ToDate'] !== '') {\r\n propsFilterObj['ToDate'] = j['ToDate'];\r\n }\r\n if (j[\"DtType\"]) {\r\n propsFilterObj[\"DtType\"] = j[\"DtType\"];\r\n }\r\n if (j[\"BookingNo\"]) {\r\n propsFilterObj[\"BookingNo\"] = j[\"BookingNo\"];\r\n }\r\n if (j[\"FirstName\"]) {\r\n propsFilterObj[\"FirstName\"] = j[\"FirstName\"];\r\n }\r\n if (j[\"LastName\"]) {\r\n propsFilterObj[\"LastName\"] = j[\"LastName\"];\r\n }\r\n\r\n let tempColList = [];\r\n let tempColListKeys = [];\r\n propsKeys.forEach((o, index) => {\r\n let tempObj = MoreFilterData.find((x) => x.ObjectName === o);\r\n if (tempObj !== undefined) {\r\n if (j[o] !== null && j[o] !== undefined && j[o] !== 0 && j[o] !== false && j[o] !== \"\") {\r\n tempColList.push(tempObj);\r\n tempColListKeys.push(tempObj.key);\r\n if (o === \"strMemberShipLevel\") {\r\n let temp = j[o].split(\",\");\r\n temp = temp.filter((x) => x.trim().length > 0);\r\n setSelectedMembershipLevel(temp);\r\n }\r\n if (o === \"RoomTypeSerNo\") {\r\n let temp = j[o].split(\",\");\r\n temp = temp.filter((x) => x.trim().length > 0);\r\n setSelectedRoomType(temp);\r\n }\r\n if (o === \"RateSerNo\") {\r\n let temp = j[o].split(\",\");\r\n temp = temp.filter((x) => x.trim().length > 0);\r\n setSelectedRateCode(temp);\r\n }\r\n propsFilterObj[o] = j[o];\r\n if (o === 'FromDate') {\r\n //alert('from date');\r\n }\r\n\r\n }\r\n }\r\n });\r\n setColList(tempColList);\r\n setColListKeys(tempColListKeys);\r\n setReservationCancelObj(propsFilterObj);\r\n setIsPropsLoaded(true);\r\n setReloadGrid(!reloadGrid);\r\n }\r\n }\r\n }\r\n }, [props.location.state.filterObj]);\r\n useEffect(() => {\r\n if (IsPropsLoaded) {\r\n fillCancelList();\r\n }\r\n }, [IsPropsLoaded, reloadGrid]);\r\n const setSelectedItem = (items) => {\r\n SetgridSelectedItem(items);\r\n settemp(!temp);\r\n };\r\n\r\n const [isActive, setActive] = useState(false);\r\n const toggleClass = () => {\r\n setActive(!isActive);\r\n };\r\n\r\n const ActionOption = [\r\n { key: \"Cancel\", value: \"can\" },\r\n { key: \"No Show\", value: \"NS\" },\r\n { key: \"Reg. Card\", value: \"reg\" },\r\n { key: \"Porforma Invoice\", value: \"pf\" },\r\n { key: \"Confirmation Email\", value: \"ce\" },\r\n { key: \"Checkin\", value: \"ck\" },\r\n ];\r\n\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n\r\n const [showLeftBlueBar, setshowLeftBlueBar] = useState(false);\r\n\r\n /* Tabs code start */\r\n //tab JSON\r\n const [tabcollection, settabcollection] = useState([\r\n {\r\n Id: \"Ms. Preeti Iyengar\",\r\n Detail: \"MMT23456789\",\r\n isEdit: false,\r\n tooltipTitle: \"Ms. Preeti Iyengar\",\r\n tooltipContent: \"MMT23456789\",\r\n },\r\n {\r\n Id: \"Mr. Vaibhav Jain\",\r\n Detail: \"MMT23456789\",\r\n isEdit: false,\r\n tooltipTitle: \"Mr. Vaibhav Jain\",\r\n tooltipContent: \"MMT23456789\",\r\n },\r\n {\r\n Id: \"Mr. Tan Eng Siong\",\r\n Detail: \"MMT23456789\",\r\n isEdit: false,\r\n tooltipTitle: \"Mr. Tan Eng Siong\",\r\n tooltipContent: \"MMT23456789\",\r\n },\r\n {\r\n Id: \"Mr. Vasantha Raghavan\",\r\n Detail: \"MMT23456789\",\r\n isEdit: false,\r\n tooltipTitle: \"Mr. Vasantha Raghavan\",\r\n tooltipContent: \"MMT23456789\",\r\n },\r\n {\r\n Id: \"Mr. Arvin D'souza\",\r\n Detail: \"MMT23456789\",\r\n isEdit: false,\r\n tooltipTitle: \"Mr. Arvin D'souza\",\r\n tooltipContent: \"MMT23456789\",\r\n },\r\n {\r\n Id: \"Ms. Divya Agarwal\",\r\n Detail: \"MMT23456789\",\r\n isEdit: false,\r\n tooltipTitle: \"Ms. Divya Agarwal\",\r\n tooltipContent: \"MMT23456789\",\r\n },\r\n ]);\r\n\r\n //Add new Tab\r\n const addNewTab = (srno, refno, isEdit, tooltipTitle, tooltipContent) => {\r\n tabcollection.push({\r\n Id: srno,\r\n Detail: refno,\r\n isEdit: isEdit,\r\n tooltipTitle: tooltipTitle,\r\n tooltipContent: tooltipContent,\r\n });\r\n const uniquetabcollection = [...new Map(tabcollection.map((item) => [JSON.stringify(item), item])).values()];\r\n settabcollection(uniquetabcollection);\r\n };\r\n\r\n //Tab ID\r\n const [tabId, settabId] = useState(\"tab1\");\r\n\r\n //inside tab content button click event\r\n const handlesave = (id) => {\r\n const arr1 = JSON.parse(JSON.stringify(tabcollection));\r\n for (let index = 0; index < arr1.length; index++) {\r\n if (arr1[index].Id == id) {\r\n arr1[index].isEdit = true;\r\n }\r\n }\r\n\r\n //settemptab(!temptab);\r\n settabcollection(arr1);\r\n };\r\n /* Tabs code and */\r\n\r\n /* Cancel/ No Show grid data start */\r\n const DummyOption = [\r\n { key: \"1\", value: \"Option 1\" },\r\n { key: \"2\", value: \"Option 2\" },\r\n { key: \"3\", value: \"Option 3\" },\r\n { key: \"4\", value: \"Option 4\" },\r\n { key: \"5\", value: \"Option 5\" },\r\n ];\r\n const [showCancelPopup, setShowCancelPopup] = useState(false);\r\n const optCancelPayment = [\r\n { key: \"print\", value: \"Print Receipt\" },\r\n { key: \"email\", value: \"Email Receipt\" },\r\n { key: \"correction\", value: \"Payment Correction\" },\r\n { key: \"ref\", value: \"Refund\" },\r\n ];\r\n const columHeaderCancellationPolicy = [\r\n { key: \"Cancellation Rule\", value: \"rule\", type: \"txt\", sorting: \"N\" },\r\n { key: \"No. of day before arrival\", value: \"days\", type: \"txt\", sorting: \"N\", align: \"center\" },\r\n { key: \"Date\", value: \"date\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Time\", value: \"time\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Amount\", value: \"amount\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n ];\r\n const [filterDataCancellationPolicy, setfilterDataCancellationPolicy] = useState([\r\n {\r\n rule: \"10% Cancellation Fee\",\r\n days: \"3\",\r\n date: \"12 Sep\",\r\n time: \"12:00\",\r\n amount: \"10,000\",\r\n },\r\n {\r\n rule: \"50% Cancellation Fee\",\r\n days: \"2\",\r\n date: \"12 Sep\",\r\n time: \"12:00\",\r\n amount: \"10,000\",\r\n },\r\n {\r\n rule: \"70% Cancellation Fee\",\r\n days: \"3\",\r\n date: \"12 Sep\",\r\n time: \"12:00\",\r\n amount: \"12,500\",\r\n },\r\n ]);\r\n\r\n const columHeaderDepositPayment = [\r\n { key: \"Date\", value: \"date\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Mode Of Payment\", value: \"mode\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Receipt No.\", value: \"receipt\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Amount\", value: \"amount\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Action\", value: \"action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n const [filterDataDepositPayment, setfilterDataDepositPayment] = useState([\r\n {\r\n date: \"12 Sep\",\r\n mode: \"Credit Card\",\r\n receipt: \"12346789\",\r\n amount: \"5,000\",\r\n action: \"...\",\r\n },\r\n ]);\r\n\r\n const addDays = (date, days) => {\r\n var result = new Date(date);\r\n result.setDate(result.getDate() + days);\r\n return result;\r\n };\r\n\r\n const actionPopup = (item) => {\r\n if (item.value == \"Go to At a Glance\") {\r\n history.push({\r\n pathname: \"/ReservationView\",\r\n state: {\r\n propertySerNo: parseInt(currUser.PropertySerNo), reservationSerNo: parseInt(selectedReservation.ReservationSerNo),\r\n filterObj: {\r\n FromDate: moment(new Date(propertyBusinessDate)).format(\"DD-MMM-YYYY\"),\r\n ToDate: moment(addDays(propertyBusinessDate, 90)).format(\"DD-MMM-YY\"),\r\n DtType: \"ARR\",\r\n ReservationStatus: \"ARD,INH,DOT,DIN,COT\",\r\n Mainmenu: \"Manage Reservation\"\r\n }\r\n }\r\n });\r\n }\r\n if (item.value == \"Go to Cashiering\") {\r\n let tempCancResStat = cancellationResStatus.find(x => x.value.includes(selectedReservation.CancelledResStatus));\r\n if ((selectedReservation.ReservationStatus === 'CAN' || selectedReservation.ReservationStatus === 'NSH') && (selectedReservation.CancelledResStatus === 'Charge Penalty' || selectedReservation.CancelledResStatus === \"Cancellation Managed\")) {\r\n history.push({\r\n pathname: \"/ReservationCashiering\",\r\n state: {\r\n ReservationSerNo: selectedReservation.ReservationSerNo.toString(),\r\n filterObj: {\r\n FromDate: moment(new Date(propertyBusinessDate)).format(\"DD-MMM-YYYY\"),\r\n ToDate: moment(addDays(propertyBusinessDate, 90)).format(\"DD-MMM-YY\"),\r\n DtType: \"ARR\",\r\n ReservationStatus: \"ARD,INH,DOT,DIN,COT\",\r\n Mainmenu: \"Manage Reservation\"\r\n }\r\n }\r\n });\r\n } else {\r\n alertFunction('Can not access cashiering screen because reservation is not Penalty Charged or Cancellation Managed');\r\n }\r\n }\r\n if (item.value == \"Manage Post Cancellation\") {\r\n if (selectedReservation.CancelledResStatus == \"Generate Performa\") {\r\n setShowCancelPopup(true);\r\n }\r\n else if (selectedReservation.CancelledResStatus == \"Decision Pending\") {\r\n setShowCancelPopup(true);\r\n }\r\n else if (selectedReservation.CancelledResStatus == \"Not Applicable\") {\r\n setShowCancelPopup(false);\r\n alertFunction(\"Since no retention is applicable, this action cannot be performed.\");\r\n }\r\n else if (selectedReservation.CancelledResStatus == \"Cancellation Managed\") {\r\n setShowCancelPopup(false);\r\n alertFunction(\"Since the cancellation process is managed, this action cannot be performed.\");\r\n }\r\n else if (selectedReservation.CancelledResStatus == \"Charge Penalty\") {\r\n setShowCancelPopup(false);\r\n alertFunction(\"Since penalty is already charged, this action cannot be performed.\");\r\n }\r\n else if (selectedReservation.CancelledResStatus == \"Waive Off\") {\r\n setShowCancelPopup(false);\r\n alertFunction(\"Since the retention is waived off, this action cannot be performed.\");\r\n }\r\n }\r\n };\r\n /* Cancel/ No Show grid data end */\r\n\r\n /* Tooltip Starts */\r\n const CancellationStatusTooltip = () => {\r\n return (\r\n
\r\n
\r\n
\r\n Expected arrival for next 180 days with reservation status as confirm, order by arrival date\r\n
\r\n
\r\n
\r\n );\r\n };\r\n /* Tooltip End */\r\n\r\n // cancel reservation btn\r\n\r\n const [cancelReservationObj, setCancelReservationObj] = useState();\r\n\r\n const cancelReservationOpt = [\r\n { key: \"Charge Penalty\", value: \"Charge Penalty\" },\r\n { key: \"Generate Performa Invoice \", value: \"Generate Performa Invoice\" },\r\n { key: \"Waive Off \", value: \"Waive Off\" },\r\n ];\r\n\r\n const handleCancelReservationOnClick = (item) => {\r\n let obj = cancelReservationObj;\r\n };\r\n\r\n // cancel reservation btn\r\n\r\n return (\r\n
\r\n {showCompanyFilterModalPopup ? (\r\n {\r\n setShowCompanyFilterModalPopup(false);\r\n setSelectedCompany({\r\n AgentSerNo: 0,\r\n AgentName: \"Select\",\r\n });\r\n }}\r\n handleOnSelect={(selected) => {\r\n setSelectedCompany(selected);\r\n setShowCompanyFilterModalPopup(false);\r\n setReservationCancelObj((prev) => ({\r\n ...prev,\r\n CompanyProfileSerNo: selected.AgentSerNo,\r\n }));\r\n }}\r\n />\r\n ) : null}\r\n {showAgentFilterModalPopup ? (\r\n {\r\n setShowAgentFilterModalPopup(false);\r\n setSelectedAgent({\r\n AgentSerNo: 0,\r\n AgentName: \"Select\",\r\n });\r\n }}\r\n handleOnSelect={(selected) => {\r\n setSelectedAgent(selected);\r\n setShowAgentFilterModalPopup(false);\r\n setReservationCancelObj((prev) => ({\r\n ...prev,\r\n AgentProfileSerNo: selected.AgentSerNo,\r\n }));\r\n }}\r\n />\r\n ) : null}\r\n
\r\n
\r\n
\r\n
\r\n

Cancellation / No Show

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {\r\n setshowLeftBlueBar(!showLeftBlueBar);\r\n }}>\r\n {\r\n setshowLeftBlueBar(!showLeftBlueBar);\r\n }}>\r\n Cancellation / No Show ({reservationCancelDispalyList.length})\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n {showAdvancedSearchModal ? (\r\n
\r\n
\r\n
\r\n
\r\n

Filters

\r\n
\r\n
\r\n
\r\n {\r\n setColList(items);\r\n\r\n let temp = [];\r\n items.forEach((o) => {\r\n temp.push(o.key);\r\n });\r\n setColListKeys(temp);\r\n if (item.length > 0) {\r\n setShowFilter(true);\r\n } else {\r\n setShowFilter(false);\r\n }\r\n }}>\r\n
\r\n Reset\r\n Apply\r\n setShowAdvancedSearchModal(!showAdvancedSearchModal)}\r\n className=\"filter-close-btn\">\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n let str = \"\";\r\n item.forEach((x) => {\r\n str = str + x + \",\";\r\n });\r\n setSelectedCancelledResStatus(item);\r\n setReservationCancelObj((prev) => ({ ...prev, CanReservationStatus: str }));\r\n }}>\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n setReservationCancelObj((prev) => ({ ...prev, DtType: e.key }));\r\n }}\r\n name=\"\"\r\n label=\"Date Type\">\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n if (reservationCancelObj.ToDate != undefined && reservationCancelObj.ToDate != \"\") {\r\n if (new Date(e) <= new Date(reservationCancelObj.ToDate)) {\r\n setReservationCancelObj((prev) => ({ ...prev, FromDate: e }));\r\n } else {\r\n alertFunction(\"Please enter less than to date.\");\r\n let oldDate = reservationCancelObj.FromDate;\r\n setReservationCancelObj((prev) => ({ ...prev, FromDate: e }));\r\n setTimeout(() => {\r\n setReservationCancelObj((prev) => ({ ...prev, FromDate: oldDate }));\r\n }, [50]);\r\n }\r\n } else {\r\n setReservationCancelObj((prev) => ({ ...prev, FromDate: e }));\r\n }\r\n }}\r\n placeholder=\"12th March 2022\"\r\n calendarStartDay={1}\r\n label=\"From Date\">\r\n
\r\n
\r\n
\r\n
\r\n {\r\n if (reservationCancelObj.FromDate != \"\" && reservationCancelObj.FromDate != undefined) {\r\n if (new Date(e) >= new Date(reservationCancelObj.FromDate)) {\r\n setReservationCancelObj((prev) => ({ ...prev, ToDate: e }));\r\n } else {\r\n alertFunction(\"Please enter more than from date.\");\r\n let oldDate = reservationCancelObj.ToDate;\r\n setReservationCancelObj((prev) => ({ ...prev, ToDate: e }));\r\n setTimeout(() => {\r\n setReservationCancelObj((prev) => ({ ...prev, ToDate: oldDate }));\r\n }, [50]);\r\n }\r\n } else {\r\n setReservationCancelObj((prev) => ({ ...prev, ToDate: e }));\r\n }\r\n }}\r\n label=\"To Date\">\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n setReservationCancelObj((prev) => ({ ...prev, BookingNo: e }));\r\n if (/^[A-Za-z0-9 ]+$/.test(e)) {\r\n setReservationCancelValidation((prev) => ({ ...prev, BookingNo: \"\" }));\r\n } else {\r\n setReservationCancelValidation((prev) => ({\r\n ...prev,\r\n BookingNo: \"Please enter complete number\",\r\n }));\r\n }\r\n if (e === \"\") {\r\n setReservationCancelValidation((prev) => ({ ...prev, BookingNo: \"\" }));\r\n }\r\n }}>\r\n Booking No.\r\n \r\n
\r\n
\r\n
\r\n
\r\n {\r\n setReservationCancelObj((prev) => ({ ...prev, FirstName: e }));\r\n if (/^[A-Za-z0-9 ]+$/.test(e)) {\r\n setReservationCancelValidation((prev) => ({ ...prev, FirstName: \"\" }));\r\n } else {\r\n setReservationCancelValidation((prev) => ({\r\n ...prev,\r\n FirstName: \"special characters not allowed\",\r\n }));\r\n }\r\n }}>\r\n {\" \"}\r\n First Name\r\n \r\n
\r\n
\r\n
\r\n
\r\n {\r\n setReservationCancelObj((prev) => ({ ...prev, LastName: e }));\r\n if (/^[A-Za-z0-9 ]+$/.test(e)) {\r\n setReservationCancelValidation((prev) => ({ ...prev, LastName: \"\" }));\r\n } else {\r\n setReservationCancelValidation((prev) => ({\r\n ...prev,\r\n LastName: \"special characters not allowed\",\r\n }));\r\n }\r\n }}>\r\n {\" \"}\r\n Last Name\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n setSelectedResStatus(e);\r\n let str = \"\";\r\n e.forEach((x) => {\r\n str = str + x + \",\";\r\n });\r\n setReservationCancelObj((prev) => ({ ...prev, ReservationStatus: str }));\r\n }}>\r\n
\r\n
\r\n
\r\n {showFilter ? (\r\n \r\n {colList.map((o) =>\r\n o.key === \"fillCompany\" ? (\r\n fillCompany()\r\n ) : o.key === \"fillAgent\" ? (\r\n fillAgent()\r\n ) : o.key === \"fillBlockName\" ? (\r\n fillBlockName()\r\n ) : o.key === \"fillRoomType\" ? (\r\n fillRoomType()\r\n ) : o.key === \"fillRateCode\" ? (\r\n fillRateCode()\r\n ) : o.key === \"fillVipStatus\" ? (\r\n fillVipStatus()\r\n ) : o.key === \"fillMemLevel\" ? (\r\n fillMemLevel()\r\n ) : o.key === \"fillMembershipNo\" ? (\r\n fillMembershipNo()\r\n ) : o.key === \"fillBookingRefNo\" ? (\r\n fillBookingRefNo()\r\n ) : o.key === \"fillSameDayCan\" ? (\r\n fillSameDayCan()\r\n ) : o.key === \"fillSameDayArrCan\" ? (\r\n fillSameDayArrCan()\r\n ) : (\r\n
404
\r\n )\r\n )}\r\n
\r\n ) : (\r\n
\r\n )}\r\n\r\n
\r\n
\r\n ) : null}\r\n
\r\n
\r\n {\r\n history.push(\"/ReservationAdd\");\r\n }}>\r\n + New Reservation\r\n \r\n \r\n Export\r\n \r\n \r\n Actions (50)\r\n \r\n\r\n
setShowAdvancedSearchModal(!showAdvancedSearchModal)}>\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n {\r\n setSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n }}\r\n fixedHeaderNo={2}\r\n uniqueColumn=\"BookingNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n actionPopup(item);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n setSelectedReservation(rowdata);\r\n setReservationSerNo(rowdata.ReservationSerNo);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n setReservationCancelObj(prev => ({ ...prev, SortCol: sn, SortType: st }));\r\n }}>\r\n
\r\n\r\n {/* blue bg inside menu Start */}\r\n {showLeftBlueBar == true && (\r\n {\r\n setshowLeftBlueBar(!showLeftBlueBar);\r\n }}>\r\n )}\r\n {/* blue bg inside menu End */}\r\n\r\n {/* Cancel / No Show Modal Popup Start */}\r\n {\r\n showCancelPopup ?\r\n {\r\n setShowCancelPopup(false);\r\n setTimeout(() => {\r\n fillCancelList();\r\n }, 100);\r\n }}\r\n >\r\n \r\n :\r\n null\r\n }\r\n\r\n {/* Cancel / No Show Modal Popup End */}\r\n
\r\n );\r\n}\r\n\r\nexport default ReservationCancelList;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnPlainButton,\r\n InnLoader,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { GetMembershipLevelMaster, AddEditMembershipLevelMaster } from \"../../../../services/generalService\";\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nexport default function MembershipLevelMaster() {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"MembershipLevelSerNo\": 0,\r\n \"Name\": \"\",\r\n \"Mode\": \"View\"\r\n }\r\n const validationObj = {\r\n \"Name\": \"\"\r\n }\r\n\r\n //#region State Variable\r\n const [membershipLevelObj, setMembershipLevelObj] = useState(defaultObj);\r\n const [membershipLevelData, setMembershipLevelData] = useState([]);\r\n const [filterMembershipLevel, setFilterMembershipLevel] = useState([]);\r\n const [selectedMemberShipSerNo, setSelectedMemberShipSerNo] = useState(\"\");\r\n const [memberShipValidation, setMemberShipValidation] = useState(validationObj);\r\n const [searchString, setsearchString] = useState(\"\");\r\n const [isActive, setIsActive] = useState(false);\r\n //#endregion\r\n const fillMembershipLevelMaster = () => {\r\n setIsActive(true);\r\n GetMembershipLevelMaster(parseInt(currUser.ClientSerNo)).then((d) => {\r\n setIsActive(false);\r\n if (d.data.length > 0 && (membershipLevelObj.MembershipLevelSerNo == 0 || membershipLevelObj.MembershipLevelSerNo == undefined)) {\r\n let obj = d.data[0];\r\n obj.Mode = \"View\";\r\n setMembershipLevelObj(obj);\r\n setSelectedMemberShipSerNo(obj.MembershipLevelSerNo);\r\n }\r\n setMembershipLevelData(d.data);\r\n setFilterMembershipLevel(d.data);\r\n console.log(\"membershipLevelData >>\", membershipLevelData);\r\n })\r\n }\r\n const clearValidation = () => {\r\n setMemberShipValidation(validationObj);\r\n }\r\n\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (membershipLevelObj.Name == \"\") {\r\n isValid = false;\r\n setMemberShipValidation(prev => ({ ...prev, Name: \"Invalid Input\" }));\r\n }\r\n return isValid;\r\n }\r\n\r\n const handleOnSearchChange = (b) => {\r\n let filterdata = membershipLevelData.filter(obj => obj.Name.toLowerCase().includes(b.toLowerCase()));\r\n setFilterMembershipLevel(filterdata);\r\n console.log(\"filterdata >>\", filterdata);\r\n setsearchString(b);\r\n setIsActive(false);\r\n }\r\n\r\n const handleMembershipLevelClick = (e) => {\r\n clearValidation();\r\n let obj = membershipLevelData.find(x => x.MembershipLevelSerNo == e.target.id)\r\n obj.Mode = \"View\";\r\n setMembershipLevelObj(obj);\r\n setSelectedMemberShipSerNo(e.target.id);\r\n }\r\n\r\n const handleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setMembershipLevelObj(obj);\r\n }\r\n\r\n const handleOnEditClick = () => {\r\n if (membershipLevelObj.Name == \"\") {\r\n alertFunction(\"Please Select State Name\");\r\n }\r\n else {\r\n setMembershipLevelObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n setIsActive(false);\r\n }\r\n\r\n const handleOnCancelClick = () => {\r\n clearValidation();\r\n let existingObj = membershipLevelData.find(x => x.MembershipLevelSerNo == selectedMemberShipSerNo);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setMembershipLevelObj(existingObj);\r\n }\r\n else {\r\n setMembershipLevelObj(defaultObj);\r\n }\r\n setsearchString(\"\");\r\n }\r\n\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n setIsActive(true);\r\n let apiObj = membershipLevelObj;\r\n AddEditMembershipLevelMaster(membershipLevelObj).then((d) => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n setIsActive(true)\r\n alertFunction(d.data.Message);\r\n if (membershipLevelObj.Mode == \"Add\") {\r\n setSelectedMemberShipSerNo(parseInt(d.data.ReturnValue));\r\n apiObj.MembershipLevelSerNo = parseInt(d.data.ReturnValue)\r\n apiObj.Mode = \"View\";\r\n setMembershipLevelObj(apiObj);\r\n console.log(apiObj)\r\n }\r\n fillMembershipLevelMaster();\r\n setsearchString(\"\");\r\n } else {\r\n alertFunction(\"Something Went Wrong\");\r\n }\r\n })\r\n setMembershipLevelObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alertFunction(\"Field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n //#region UseEffect\r\n useEffect(() => {\r\n fillMembershipLevelMaster();\r\n }, []);\r\n //#endregion \r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Membership Level Master

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Search\r\n
\r\n \r\n
\r\n
\r\n
Membership Levels
\r\n
\r\n
    \r\n {\r\n filterMembershipLevel.map(d =>\r\n \r\n \r\n {d.Name}\r\n \r\n \r\n )\r\n }\r\n
\r\n
\r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
\r\n
\r\n\r\n
{/* disabled-section */}\r\n
\r\n
\r\n {\r\n setMemberShipValidation((prev) => ({ ...prev, Name: \"\" }))\r\n setMembershipLevelObj(prev => ({ ...prev, Name: m }));\r\n if (m == \"\") {\r\n setMemberShipValidation(prev => ({ ...prev, Name: \"Invalid Name\" }))\r\n }\r\n }}>Name\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
\r\n
\r\n Activate console.log(v)} id=\"1\">\r\n {\r\n membershipLevelObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnLoader,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport {\r\n GetSourceGroupMaster, AddEditSourceGroupMaster, GetSourceMaster,\r\n GetSourceMasterBySerNo, AddEditSourceMaster, CmbGetSourceGroupMaster\r\n} from \"../../../../services/frontMasterService\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nexport function SourceGroupMaster(props) {\r\n\r\n //#region local variable source group master\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"y\", title: \"Ok\", type: \"\" }],\r\n });\r\n }\r\n const defaulObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n SourceGroupSerNo: 0,\r\n Name: \"\",\r\n Sequence: 0,\r\n Mode: \"View\"\r\n }\r\n const valid = {\r\n Name: \"\",\r\n Sequence: 0,\r\n }\r\n //#endregion\r\n //#region local variavle for source master\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"SourceSerNo\": 0,\r\n \"Name\": \"\",\r\n \"SourceGroupSerNo\": 1,\r\n \"Sequence\": 0,\r\n \"Color\": \"\",\r\n \"Mode\": \"View\"\r\n }\r\n const defaultSourceGroup = {\r\n \"key\": '0',\r\n \"value\": 'Select'\r\n }\r\n const validationObj = {\r\n \"SourceGroupSerNo\": \"\",\r\n \"Name\": \"\"\r\n }\r\n //#endregion\r\n //#region State Variable\r\n const [sourceGroupObj, setSourceGroupObj] = useState(defaulObj);\r\n const [validation, setValidation] = useState(valid);\r\n const [sourceGroupData, setSourceGroupData] = useState([]);\r\n const [sourceFilter, setSourceFilter] = useState([]);\r\n const [search, setSearch] = useState(\"\");\r\n const [selectedSerNo, setSelectedSerNo] = useState(0);\r\n const [isActive, setIsActive] = useState(false)\r\n //#endregion\r\n //#region State Variable source master\r\n //const [isActive, setIsActive] = useState(false);\r\n const [sourceMasterData, setSourceMasterData] = useState([]);\r\n const [filtersourceMasterData, setFilterSourceMasterData] = useState([]);\r\n const [sourceGroupMasterData, setSourceGroupMasterData] = useState([]);\r\n const [sourceMasterObj, setSourceMasterObj] = useState(defaultObj);\r\n const [selectedSourceSerNo, setSelectedSourceSerNo] = useState(\"\");\r\n const [validatedSourcedata, setValidatedSourceData] = useState(validationObj);\r\n\r\n //#endregion\r\n useEffect(() => {\r\n fillSourceGroup();\r\n }, []);\r\n \r\n useEffect(() => {\r\n if (selectedSerNo != 0) {\r\n getSourceMasterData();\r\n setIsActive(true);\r\n CmbGetSourceGroupMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n setIsActive(false);\r\n setSourceGroupMasterData([defaultSourceGroup, ...d.data]);\r\n })\r\n }\r\n }, [sourceGroupObj.SourceGroupSerNo]);\r\n\r\n //#region Custom Function source master\r\n const getSourceMasterData = () => {\r\n setIsActive(true);\r\n GetSourceMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), sourceGroupObj.SourceGroupSerNo).then(d => {\r\n setIsActive(false);\r\n console.log(\"GetSourceMaster\",d.data)\r\n setSourceMasterData(d.data);\r\n setFilterSourceMasterData(d.data);\r\n if (d.data.length > 0 && sourceMasterObj.Mode == \"View\") {\r\n getSelectedSourceData(d.data[0].SourceSerNo);\r\n setSelectedSerNo(d.data[0].SourceSerNo);\r\n }\r\n })\r\n }\r\n const getSelectedSourceData = (sourceSerNo) => {\r\n setIsActive(true);\r\n GetSourceMasterBySerNo(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), sourceSerNo).then(d => {\r\n console.log(\"GetSourceMasterBySerNo\",d.data)\r\n setIsActive(false);\r\n d.data.Mode = \"View\";\r\n setSourceMasterObj(d.data);\r\n\r\n })\r\n }\r\n const isValidData = () => {\r\n let isValid = true;\r\n if (sourceMasterObj.Name == \"\") {\r\n isValid = false;\r\n setValidatedSourceData(prev => ({ ...prev, Name: \"Enter Source Name.\" }));\r\n }\r\n if (sourceMasterObj.SourceGroupSerNo == 0) {\r\n isValid = false;\r\n setValidatedSourceData(prev => ({ ...prev, SourceGroupSerNo: \"Please select source group.\" }));\r\n }\r\n if (sourceMasterObj.Sequence == 0) {\r\n isValid = false;\r\n setValidatedSourceData(prev => ({ ...prev, Sequence: \"Please input sequence.\" }));\r\n }\r\n return isValid;\r\n }\r\n //#endregion\r\n //#region fill source group master data\r\n const fillSourceGroup = () => {\r\n setIsActive(true);\r\n GetSourceGroupMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setIsActive(false);\r\n setSourceFilter(d.data);\r\n setSourceGroupData(d.data);\r\n setSelectedSerNo(d.data[0].SourceSerNo);\r\n console.log(\"GetSourceGroupMaster>>\", d.data);\r\n if (d.data.length > 0) {\r\n if (sourceGroupObj.Mode == \"Add\" || sourceGroupObj.Mode == \"Edit\") {\r\n let obj = d.data.find(x => x.SourceGroupSerNo == sourceGroupObj.SourceGroupSerNo);\r\n if (obj) {\r\n obj.Mode = \"View\";\r\n setSourceGroupObj(obj);\r\n console.log(\"AddEditData>>\", obj);\r\n }\r\n }\r\n else {\r\n d.data[0].Mode = \"View\";\r\n setSourceGroupObj(d.data[0]);\r\n console.log(\"defaultData>>\", d.data[0]);\r\n }\r\n }\r\n })\r\n }\r\n //#endregion\r\n //#region Validation\r\n const clearValidation = () => {\r\n setValidation(valid);\r\n }\r\n const isPageValid = () => {\r\n let valid = true;\r\n if (sourceGroupObj.Name.trim().length == 0) {\r\n valid = false\r\n setValidation((prev) => ({ ...prev, Name: \"Please input valid name\" }));\r\n }\r\n if (sourceGroupObj.Sequence == 0) {\r\n valid = false;\r\n setValidation((prev) => ({ ...prev, Sequence: \"Please input valid sequence\" }))\r\n }\r\n return valid;\r\n }\r\n //#endregion\r\n //#region Event Handle\r\n const handleOnSearchClick = (e) => {\r\n setSearch(e);\r\n setSourceGroupObj(defaulObj);\r\n let temp = [];\r\n sourceGroupData.forEach((ele) => {\r\n if (ele.Name.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(ele);\r\n }\r\n });\r\n setSourceFilter(temp);\r\n }\r\n const handleOnSourceNameClick = (e) => {\r\n clearValidation();\r\n setIsActive(false);\r\n let obj = sourceGroupData.find(x => x.SourceGroupSerNo == e.target.id);\r\n obj.Mode = \"View\";\r\n setSourceGroupObj(obj);\r\n setSelectedSerNo(e.target.id);\r\n console.log(\"NameClickData>>\", sourceGroupData);\r\n setSourceGroupObj((prev) => ({ ...prev, SourceGroupSerNo: obj.SourceGroupSerNo}));\r\n }\r\n const handleOnEditClick = () => {\r\n if (sourceGroupObj.Name == \"\") {\r\n alertFunction(\"Please select source group name.\");\r\n }\r\n else {\r\n setSourceGroupObj((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n setSelectedSerNo(sourceGroupObj.SourceGroupSerNo);\r\n }\r\n }\r\n const handleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaulObj));\r\n obj.Mode = \"Add\";\r\n setSourceGroupObj(obj);\r\n }\r\n const handleOnCancelClick = () => {\r\n clearValidation();\r\n let existingObj = sourceGroupData.find(x => x.SourceGroupSerNo == selectedSerNo);\r\n console.log(\"CancelClick>>\", existingObj);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setSourceGroupObj(existingObj);\r\n }\r\n else {\r\n setSourceGroupObj(defaulObj);\r\n }\r\n }\r\n const searchEdit = (e) => {\r\n GetSourceGroupMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n let temp = d.data.filter(x => x.Name.toLowerCase().includes(search.toLocaleLowerCase()));\r\n setSourceFilter(temp);\r\n });\r\n }\r\n const handleOnSaveClick = () => {\r\n let isValid = isPageValid();\r\n if (isValid) {\r\n setIsActive(true);\r\n AddEditSourceGroupMaster(sourceGroupObj).then((d) => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n fillSourceGroup();\r\n if (sourceGroupObj.Mode == \"Add\" || sourceGroupObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit();\r\n return;\r\n }\r\n sourceGroupObj.SourceGroupSerNo = parseInt(d.data.ReturnValue);\r\n }\r\n }\r\n else {\r\n alertFunction(\"Failed\")\r\n }\r\n });\r\n setSourceGroupObj((prev) => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n\r\n //#endregion\r\n //#region Event for souece master\r\n const handleOnSourceMasterNameClick = (e) => {\r\n setValidatedSourceData(validationObj);\r\n getSelectedSourceData(e.target.id);\r\n setSelectedSourceSerNo(e.target.id);\r\n }\r\n const handleOnSearchChanged = (e) => {\r\n setValidatedSourceData(validationObj);\r\n setSourceMasterObj(defaultObj);\r\n let searchData = sourceMasterData.filter(item => item.Name.toLowerCase().includes(e.toLowerCase()));\r\n setFilterSourceMasterData(searchData);\r\n }\r\n const handleOnSourceAddClick = () => {\r\n clearValidation();\r\n defaultObj.Mode = \"Add\";\r\n setSourceMasterObj(defaultObj);\r\n }\r\n const handleOnSourceEditClick = () => {\r\n if (sourceMasterObj.Name == \"\") {\r\n alertFunction(\"Please select source name.\")\r\n }\r\n else {\r\n setSourceMasterObj(prev => ({ ...prev, Mode: \"Edit\" }))\r\n }\r\n }\r\n const handleOnSourceSaveClick = () => {\r\n let IsPageValid = isValidData()\r\n if (IsPageValid) {\r\n setIsActive(true);\r\n AddEditSourceMaster(sourceMasterObj).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n getSourceMasterData();\r\n getSelectedSourceData(d.data.ReturnValue);\r\n } else {\r\n alertFunction(d.data.Message);\r\n }\r\n })\r\n setSourceMasterObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n const hanldeOnCancelClick = () => {\r\n setValidatedSourceData(validationObj);\r\n if (sourceMasterObj.Mode != \"Edit\") {\r\n setSourceMasterObj(defaultObj);\r\n }\r\n else {\r\n getSelectedSourceData(selectedSourceSerNo);\r\n }\r\n }\r\n const onClickSourcePopupClose = () => {\r\n setSourceMasterObj(defaultObj);\r\n setIsActive(false);\r\n setShowSourceGroupModal(!showSourceGroupModal);\r\n }\r\n const onClickSourcePopupOpen = () => {\r\n getSourceMasterData();\r\n setIsActive(false);\r\n setShowSourceGroupModal(!showSourceGroupModal);\r\n }\r\n //#endregion\r\n const selectdata = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n\r\n const [showSourceGroupModal, setShowSourceGroupModal] = useState();\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Sourse Group Master

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Search\r\n
\r\n \r\n
\r\n
\r\n
Source Group Names
\r\n
\r\n
    \r\n {\r\n sourceFilter.map((d) =>\r\n
  • \r\n {d.Name} \r\n
  • \r\n )\r\n }\r\n {/*
  • Property
  • \r\n
  • Central Reservation
  • \r\n
  • National Sales Office
  • */}\r\n
\r\n
\r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
\r\n
\r\n\r\n
{/* disabled-section */}\r\n
\r\n
\r\n {\r\n console.log(v)\r\n setSourceGroupObj((prev) => ({ ...prev, Name: v }));\r\n if (v == \"\") {\r\n setValidation((prev) => ({ ...prev, Name: \"Please input valid name\" }));\r\n }\r\n else {\r\n setValidation((prev) => ({ ...prev, Name: \"\" }));\r\n }\r\n }}>Name\r\n \r\n {\r\n console.log(v)\r\n setSourceGroupObj((prev) => ({ ...prev, Sequence: v }));\r\n if (v == \"\") {\r\n setValidation((prev) => ({ ...prev, Sequence: \"Please input valid sequence~\" }));\r\n }\r\n else {\r\n setValidation((prev) => ({ ...prev, Sequence: \"\" }));\r\n }\r\n }}>Sequence\r\n \r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n Source \r\n \r\n {\r\n sourceMasterData.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 \r\n
\r\n
    \r\n {\r\n sourceMasterData.map(d =>\r\n
  • {d.Name}
  • \r\n )\r\n }\r\n {/*
  • Sales Manager
  • \r\n
  • Director of Sales
  • \r\n
  • General Manager
  • */}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
\r\n
\r\n Activate console.log(v)} id=\"1\">\r\n {\r\n sourceGroupObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {showSourceGroupModal ? (\r\n \r\n \r\n
\r\n
\r\n
\r\n

Source

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Search\r\n
\r\n \r\n
\r\n
\r\n
Source Names
\r\n
\r\n
    \r\n {\r\n filtersourceMasterData.map(d =>\r\n \r\n \r\n {d.Name}\r\n \r\n \r\n )\r\n }\r\n
\r\n
\r\n {/* Add Deposit Term */}\r\n\r\n
\r\n\r\n
\r\n\r\n {\r\n if (v == \"\") {\r\n setValidatedSourceData(prev => ({ ...prev, Name: \"Enter Source Name.\" }));\r\n } else {\r\n setValidatedSourceData(prev => ({ ...prev, Name: \"\" }));\r\n setSourceMasterObj(prev => ({ ...prev, Name: v }))\r\n }\r\n }}\r\n >Name\r\n {\r\n setSourceMasterObj(prev => ({ ...prev, Sequence: v }))\r\n setValidatedSourceData((prev) => ({ ...prev, Sequence: \"\" }))\r\n }\r\n }\r\n >Sequence\r\n
\r\n {\r\n setSourceMasterObj(prev => ({ ...prev, SourceGroupSerNo: parseInt(item.key) }))\r\n }\r\n }\r\n >\r\n
\r\n {/*
\r\n Active console.log(v)} id=\"3\">\r\n
*/}\r\n
\r\n {\r\n sourceMasterObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n {/* Add Source
\r\n Cancel\r\n setShowSourceGroupModal(!showSourceGroupModal)}>Save */}\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n ) : null}\r\n
\r\n );\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n useConfirm,\r\n InnPlainButton,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetModuleMaster } from \"../../../../services/posMasterService\";\r\nimport {GetCashBookTransactionMaster, GetCashbookTransactionTypeMaster, AddEditCashBookTransactionMaster } from \"../../../../services/reservationService\";\r\nexport default function CashBookTransactionMaster() {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"Name\": \"\",\r\n \"CashbookTransactionSerNo\": 0,\r\n \"Module\": 0,\r\n \"Type\": 0,\r\n \"IsSystemGenerated\": false,\r\n \"Mode\": \"View\"\r\n }\r\n const validationObj = {\r\n \"Name\": \"\",\r\n \"Module\": 0\r\n }\r\n //#region State Variable\r\n const [cashBookTransactionObj, setCashBookTransactionObj] = useState(defaultObj);\r\n const [cashBookTransactionData, setCashBookTransactionData] = useState([]);\r\n const [filterCashBookTransaction, setFilterCashBookTransaction] = useState([]);\r\n const [isActive, setIsActive] = useState(true);\r\n const [selectedCashBookTransactionSerNo, setSelectedCashBookTransactionSerNo] = useState(\"\");\r\n const [searchString, setsearchString] = useState(\"\");\r\n const [cashBookTransactionValidation, setCashBookTransactionValidation] = useState(validationObj);\r\n const [loadModules, setLoadModules] = useState([]);\r\n const [cashbookTransactionType, setCashbookTransactionType] = useState([]);\r\n //#endregion \r\n //#region Custom Functions\r\n const fillCashBookTransactionMaster = () => {\r\n GetCashBookTransactionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setIsActive(false);\r\n if (d.data.length > 0 && (cashBookTransactionObj.CashbookTransactionSerNo == 0 || cashBookTransactionObj.CashbookTransactionSerNo == undefined)) {\r\n let obj = d.data[0];\r\n obj.Mode = \"View\";\r\n setCashBookTransactionObj(obj);\r\n setSelectedCashBookTransactionSerNo(obj.CashbookTransactionSerNo);\r\n }\r\n setCashBookTransactionData(d.data);\r\n setFilterCashBookTransaction(d.data);\r\n })\r\n }\r\n //#region SearchChange\r\n const handleOnSearchChange = (b) => {\r\n let filterdata = cashBookTransactionData.filter(obj => obj.Name.toLowerCase().includes(b.toLowerCase()));\r\n setFilterCashBookTransaction(filterdata);\r\n setsearchString(b);\r\n setIsActive(false);\r\n setCashBookTransactionObj(defaultObj);\r\n }\r\n//#endregion\r\n//#region Validation\r\nconst clearValidation = () => {\r\n setCashBookTransactionValidation(validationObj);\r\n}\r\nconst isValidPage = () => {\r\n let isValid = true;\r\n if (cashBookTransactionObj.Name == \"\" || cashBookTransactionObj.Name.trim().length == 0 || /[-’/`~!#*$@_%+=,^&(){}[\\]|;.:”<>?\\\\]/g.test(cashBookTransactionObj.Name) == true) {\r\n isValid = false;\r\n setCashBookTransactionValidation(prev => ({ ...prev, Name: \"Please enter valid Name\" }));\r\n }\r\n if (cashBookTransactionObj.Module == \"\" || cashBookTransactionObj.Module == 0) {\r\n isValid = false;\r\n setCashBookTransactionValidation(prev => ({ ...prev, Module: \"Please Select valid Module\" }));\r\n }\r\n return isValid;\r\n}\r\n//#endregion\r\n//#region Employee Name Click\r\nconst handleCashBookTransactionClick = (e) => {\r\n clearValidation();\r\n let obj = cashBookTransactionData.find(x => x.CashbookTransactionSerNo == e.CashbookTransactionSerNo)\r\n obj.Mode = \"View\";\r\n setCashBookTransactionObj(obj);\r\n setSelectedCashBookTransactionSerNo(e.CashbookTransactionSerNo);\r\n}\r\n//#endregion\r\n//#region Add\r\nconst handleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n console.log(\"HI\", obj)\r\n obj.Mode = \"Add\";\r\n setCashBookTransactionObj(obj);\r\n}\r\n//#endregion\r\n //#region Edit\r\n const handleOnEditClick = () => {\r\n if (cashBookTransactionObj.Name == \"\") {\r\n alertFunction(\"Please Select Name\");\r\n }\r\n else {\r\n setCashBookTransactionObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n setIsActive(false);\r\n}\r\n//#endregion\r\n//#region Cancel\r\nconst handleOnCancelClick = () => {\r\n clearValidation();\r\n let existingObj = cashBookTransactionData.find(x => x.CashbookTransactionSerNo == selectedCashBookTransactionSerNo);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setCashBookTransactionObj(existingObj);\r\n }\r\n else {\r\n setCashBookTransactionObj(defaultObj);\r\n }\r\n setsearchString(\"\");\r\n}\r\n//#endregion\r\n//#region Save\r\nconst handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n let apiObj = cashBookTransactionObj;\r\n AddEditCashBookTransactionMaster(cashBookTransactionObj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n fillCashBookTransactionMaster();\r\n alertFunction(d.data.Message);\r\n setIsActive(true)\r\n if (cashBookTransactionObj.Mode == \"Add\") {\r\n setSelectedCashBookTransactionSerNo(parseInt(d.data.ReturnValue));\r\n apiObj.CashbookTransactionSerNo = parseInt(d.data.ReturnValue)\r\n apiObj.Mode = \"View\";\r\n setCashBookTransactionObj(apiObj);\r\n console.log(apiObj)\r\n }\r\n setsearchString(\"\");\r\n } else {\r\n alertFunction(\"Something Went Wrong\");\r\n }\r\n })\r\n setCashBookTransactionObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alertFunction(\"One Or More Field has an invalid entry. Please verify accordingly.\")\r\n }\r\n}\r\n//#endregion\r\n//#region useEffect\r\nuseEffect(() => {\r\n fillCashBookTransactionMaster();\r\n GetModuleMaster().then((d) => {\r\n let temp = [{ key: \"0\", value: \"Select\" }];\r\n d.data.forEach(d => {\r\n temp.push({ key: d.Module, value: d.Name });\r\n })\r\n setLoadModules(temp);\r\n });\r\n GetCashbookTransactionTypeMaster().then((d) => {\r\n let temp = [{ key: \"0\", value: \"Select\" }];\r\n d.data.forEach(d => {\r\n temp.push({ key: d.CashbookTransactionType, value: d.Name });\r\n })\r\n setCashbookTransactionType(temp);\r\n });\r\n}, []);\r\n//#endregion\r\n\r\n const daytypedata = [\r\n { key: \"Option 1\", value: \"City Wide conference\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Cash Book Transaction Master

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Search\r\n
\r\n \r\n
\r\n
\r\n
Cash Book Transaction List
\r\n
\r\n
    \r\n {\r\n filterCashBookTransaction.map(d =>\r\n
  • \r\n handleCashBookTransactionClick(d)}>{d.Name}\r\n
  • \r\n )\r\n }\r\n
\r\n
\r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
\r\n
\r\n\r\n
{/* disabled-section */}\r\n
\r\n
\r\n {\r\n setCashBookTransactionObj(prev => ({ ...prev, Name: v }))\r\n if (v == \"\") {\r\n setCashBookTransactionValidation(prev => ({ ...prev, Name: \"Invalid Name\" }))\r\n } else {\r\n setCashBookTransactionValidation(prev => ({ ...prev, Name: \"\" }))\r\n }\r\n }}\r\n >Name\r\n
\r\n {\r\n setCashBookTransactionObj((prev) => ({ ...prev, Module: item.key }));\r\n setCashBookTransactionValidation((prev) => ({ ...prev, Module: \"\" }));\r\n }}\r\n selectedSerNo={cashBookTransactionObj.Module}\r\n label=\"Module\"\r\n disabled={cashBookTransactionObj.Mode == \"View\" ? true : false}\r\n customError={cashBookTransactionValidation.Module}\r\n >\r\n
\r\n
\r\n {\r\n setCashBookTransactionObj((prev) => ({ ...prev, Type: item.key }));\r\n }}\r\n selectedSerNo={cashBookTransactionObj.Type}\r\n label=\"Type\"\r\n disabled={cashBookTransactionObj.Mode == \"View\" ? true : false}\r\n >\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
\r\n
\r\n\r\n Activate console.log(v)} id=\"SW1\">\r\n {\r\n cashBookTransactionObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnMultiSelectDropdown\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { useSelector } from 'react-redux';\r\nimport { GetIdentificationTypeMaster, AddEditIdentificationTypeMaster } from \"../../../../services/generalService\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport function PersonalIdentificationTypeMaster(props) {\r\n\r\n // region local variables\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"IdentificationTypeSerNo\": 0,\r\n \"Name\": \"\",\r\n \"Mode\": \"View\",\r\n \"IdentificationType\":\"SEL\"\r\n }\r\n const validationObj = {\r\n \"Name\": \"\",\r\n \"IdentificationType\":\"\"\r\n }\r\n // # endregion\r\n\r\n const IdentificationTypeData = [\r\n { key: \"SEL\", value: \"Select\" },\r\n { key: \"OTH\", value: \"Other\" }\r\n ];\r\n\r\n //#region State Variables\r\n const [personalIdObj, setPersonalIdObj] = useState(defaultObj);\r\n const [personalIdentificationTypeData, setPersonalIdentificationTypeData] = useState([]);\r\n const [personalIdTypeValidation, setPersonalIdTypeValidation] = useState(validationObj);\r\n const [isdisabled, setIsDisabled] = useState(true);\r\n const [selectedPersonalIdTypeNo, setSelectedPersonalIdTypeNo] = useState();\r\n const [filterPersonalIdTypeData, setFilterPersonalIdTypeData] = useState([]);\r\n const [searchString, setSearchString] = useState(\"\");\r\n //#endregion \r\n\r\n // #region custom function \r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (personalIdObj.Name == \"\") {\r\n isValid = false;\r\n setPersonalIdTypeValidation(prev => ({ ...prev, Name: \"Invalid Input\" }));\r\n }\r\n if (!(/^[a-zA-Z0-9 -]*$/).test(personalIdObj.Name)) {\r\n isValid = false;\r\n setPersonalIdTypeValidation(prev => ({ ...prev, Name: \"Special characters are not allowed\" }));\r\n }\r\n if (personalIdObj.Name.trim().length == 0) {\r\n isValid = false;\r\n setPersonalIdTypeValidation(prev => ({ ...prev, Name: \"Invalid Input\" }));\r\n }\r\n if (personalIdObj.IdentificationType == \"SEL\") {\r\n isValid = false;\r\n setPersonalIdTypeValidation(prev => ({ ...prev, IdentificationType: \"Please select Identification Type.\" }));\r\n }\r\n return isValid;\r\n }\r\n\r\n const clearValidation = () => {\r\n setPersonalIdTypeValidation(validationObj);\r\n }\r\n\r\n const fillPersonalIdtype = () => {\r\n GetIdentificationTypeMaster().then(d => {\r\n console.log(d.data);\r\n setPersonalIdentificationTypeData(d.data);\r\n setFilterPersonalIdTypeData(d.data);\r\n if(selectedPersonalIdTypeNo == undefined){\r\n setPersonalIdObj(d.data[0]);\r\n setSelectedPersonalIdTypeNo(d.data[0].IdentificationTypeSerNo);\r\n }\r\n })\r\n }\r\n // #endregion\r\n\r\n // #region UseEffect\r\n useEffect(() => {\r\n fillPersonalIdtype();\r\n }, []);\r\n // #endregion\r\n\r\n // #region Events\r\n const handleOnSearchChange = (b) => {\r\n let searchdata = personalIdentificationTypeData.filter(obj => obj.Name.toLowerCase().includes(b.toLowerCase()));\r\n setFilterPersonalIdTypeData(searchdata);\r\n setSearchString(b);\r\n }\r\n\r\n const handleOnEditClick = () => {\r\n setIsDisabled(false);\r\n let obj = personalIdObj;\r\n obj.Mode = \"Edit\";\r\n setPersonalIdObj(obj);\r\n }\r\n\r\n const handleOnAddClick = () => {\r\n setIsDisabled(false);\r\n let obj = defaultObj;\r\n obj.Mode = \"Add\";\r\n setPersonalIdObj(obj);\r\n }\r\n\r\n const handleOnCancelClick = () => {\r\n clearValidation();\r\n setIsDisabled(true);\r\n let existingObj = personalIdentificationTypeData.find(x => x.IdentificationTypeSerNo == selectedPersonalIdTypeNo);\r\n if (existingObj != undefined)\r\n setPersonalIdObj(existingObj);\r\n else\r\n setPersonalIdObj(defaultObj);\r\n\r\n }\r\n\r\n const handlepersonalIdtypeClick = (e) => {\r\n setIsDisabled(true);\r\n clearValidation();\r\n let obj = personalIdentificationTypeData.find(\r\n x => x.IdentificationTypeSerNo == e.target.id)\r\n obj.Mode = \"View\";\r\n setPersonalIdObj(obj);\r\n setSelectedPersonalIdTypeNo(e.target.id);\r\n }\r\n\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n if (personalIdObj.Name !== \"\")\r\n AddEditIdentificationTypeMaster(personalIdObj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n fillPersonalIdtype();\r\n }\r\n alert(d.data.Message);\r\n setIsDisabled(true);\r\n setSearchString(\"\");\r\n if (personalIdObj.Mode == \"Add\") {\r\n setSelectedPersonalIdTypeNo(parseInt(d.data.ReturnValue));\r\n setPersonalIdObj((prev)=>({...prev,IdentificationTypeSerNo: d.data.ReturnValue}));\r\n }\r\n })\r\n }\r\n\r\n }\r\n // #endregion\r\n\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Personal Identification Type Master

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Search\r\n
\r\n \r\n
\r\n
\r\n
Personal Identification Types
\r\n
\r\n
    \r\n {\r\n filterPersonalIdTypeData && filterPersonalIdTypeData.map(d =>\r\n
  • {d.Name}
  • \r\n )\r\n }\r\n
\r\n
\r\n {/* {\r\n setPage(v);\r\n }} \r\n /> */}\r\n
\r\n
\r\n\r\n
{/* disabled-section */}\r\n
\r\n
\r\n\r\n {\r\n setPersonalIdObj(prev => ({ ...prev, Name: m }))\r\n if (m == \"\") {\r\n setPersonalIdTypeValidation(prev => ({ ...prev, Name: \"Invalid Name\" }))\r\n }\r\n else {\r\n setPersonalIdTypeValidation(validationObj)\r\n }\r\n }}>Name\r\n\r\n
\r\n setPersonalIdObj((prev)=> ({...prev,IdentificationType: item.key}))}\r\n disabled={isdisabled}\r\n >\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
\r\n
\r\n\r\n Activate { console.log(v); }} >\r\n {\r\n isdisabled ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\n// export default PersonalIdentificationTypeMaster;","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnPlainButton,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetCountryMaster } from \"../../../../services/guestProfileMasterService\";\r\nimport { AddEditCountryMaster } from \"../../../../services/generalService\";\r\nexport default function CountryMaster() {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"CountrySerNo\": 0,\r\n \"Name\": \"\",\r\n \"CountryID\": \"\",\r\n \"Nationality\": \"\",\r\n \"AlphaCode2\": \"\",\r\n \"Mode\": \"View\"\r\n }\r\n const validationObj = {\r\n \"Name\": \"\",\r\n \"CountryID\": \"\",\r\n \"Nationality\": \"\",\r\n \"AlphaCode2\": \"\"\r\n }\r\n\r\n //#region State Variable\r\n const [countryObj, setCountryObj] = useState(defaultObj);\r\n const [countryData, setCountrydata] = useState([]);\r\n const [isActive, setIsActive] = useState(true);\r\n const [filterCountryMaster, setFilterCountryMaster] = useState([]);\r\n const [countryValidation, setCountryValidation] = useState(validationObj);\r\n const [selectedCountrySerNo, setSelectedCountrySerNo] = useState(\"\");\r\n const [searchString, setsearchString] = useState(\"\");\r\n\r\n //#endregion\r\n\r\n //#Start fill Country Data\r\n const fillGetCountryMaster = () => {\r\n GetCountryMaster(parseInt(currUser.ClientSerNo)).then((d) => {\r\n setCountrydata(d.data);\r\n setFilterCountryMaster(d.data);\r\n setIsActive(false);\r\n console.log(\"Country data >>\", d.data);\r\n });\r\n };\r\n //#endregion\r\n //#Start Validation\r\n const clearValidation = () => {\r\n setCountryValidation(validationObj);\r\n }\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (countryObj.Name == \"\" || countryValidation.Name !== \"\") {\r\n isValid = false;\r\n setCountryValidation(prev => ({ ...prev, Name: \"Invalid Input\" }));\r\n }\r\n if (countryObj.Nationality == \"\" || countryValidation.Nationality !== \"\") {\r\n isValid = false;\r\n setCountryValidation(prev => ({ ...prev, Nationality: \"Invalid Input\" }));\r\n }\r\n if (countryObj.CountryID == \"\" || countryValidation.CountryID !== \"\") {\r\n isValid = false;\r\n setCountryValidation(prev => ({ ...prev, CountryID: \"Invalid Input\" }));\r\n }\r\n if (countryObj.AlphaCode2 == \"\" || countryValidation.AlphaCode2 !== \"\") {\r\n isValid = false;\r\n setCountryValidation(prev => ({ ...prev, AlphaCode2: \"Invalid Input\" }));\r\n }\r\n return isValid;\r\n }\r\n //#endregion\r\n //#region Events\r\n const handleOnSearchChange = (b) => {\r\n let filterdata = countryData.filter(obj => obj.Name.toLowerCase().includes(b.toLowerCase()));\r\n console.log(filterdata)\r\n setFilterCountryMaster(filterdata);\r\n setsearchString(b);\r\n setIsActive(false);\r\n }\r\n const handleOnAddClick = () => {\r\n setIsActive(true);\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setCountryObj(obj);\r\n }\r\n const handleOnEditClick = () => {\r\n if (countryObj.Name == \"\") {\r\n alertFunction(\"Please Select Country Name\");\r\n }\r\n else {\r\n setCountryObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n setIsActive(true);\r\n }\r\n const handleOnCancelClick = () => {\r\n clearValidation();\r\n setIsActive(false);\r\n if (countryObj.Mode == \"Add\") {\r\n let existingObj = countryData.find(x => x.CountrySerNo == selectedCountrySerNo);\r\n if (existingObj != undefined)\r\n setCountryObj(existingObj);\r\n else\r\n setCountryObj(defaultObj);\r\n }\r\n if (countryObj.Mode == \"Edit\") {\r\n let existingObj = countryData.find(x => x.CountrySerNo == selectedCountrySerNo);\r\n if (existingObj != undefined)\r\n setCountryObj(existingObj);\r\n else\r\n setCountryObj(defaultObj);\r\n }\r\n setsearchString(\"\");\r\n }\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n AddEditCountryMaster(countryObj).then((d) => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n fillGetCountryMaster();\r\n setsearchString(\"\");\r\n } else {\r\n alertFunction(\"Something Went Wrong\");\r\n }\r\n })\r\n setCountryObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n const handleCountryClick = (e) => {\r\n clearValidation();\r\n let obj = countryData.find(x => x.CountrySerNo == e.target.id)\r\n obj.Mode = \"View\";\r\n setCountryObj(obj);\r\n setSelectedCountrySerNo(e.target.id);\r\n console.log(\"Data\", e.target.id)\r\n }\r\n //#End Region\r\n //#region UseEffect\r\n useEffect(() => {\r\n fillGetCountryMaster();\r\n }, []);\r\n //#endregion\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Country Master

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Search\r\n
\r\n \r\n
\r\n
\r\n
Name of Countries
\r\n
\r\n
    \r\n {\r\n filterCountryMaster.map(d =>\r\n \r\n \r\n {d.Name}\r\n \r\n \r\n )\r\n }\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
{/* disabled-section */}\r\n
\r\n
\r\n
\r\n {\r\n if ((countryData.every((x) => x.Name.toLowerCase() != m.toLowerCase()))) {\r\n setCountryValidation((prev) => ({ ...prev, Name: \"\" }))\r\n setCountryObj(prev => ({ ...prev, Name: m }));\r\n } else {\r\n setCountryValidation(prev => ({ ...prev, Name: \"Invalid Country Name\" }))\r\n }\r\n }}\r\n >Name\r\n
\r\n
\r\n {\r\n if ((countryData.every((x) => x.Nationality.toLowerCase() != m.toLowerCase()))) {\r\n setCountryValidation((prev) => ({ ...prev, Nationality: \"\" }))\r\n setCountryObj(prev => ({ ...prev, Nationality: m }));\r\n }\r\n else {\r\n setCountryValidation(prev => ({ ...prev, Nationality: \"Invalid Nationality\" }))\r\n }\r\n }}\r\n >Nationality\r\n
\r\n
\r\n {\r\n if (m == \"\" || m.length != 3) {\r\n setCountryValidation(prev => ({ ...prev, CountryID: \"Invalid Country Code Three\" }))\r\n }\r\n else {\r\n setCountryObj(prev => ({ ...prev, CountryID: m }));\r\n setCountryValidation(prev => ({ ...prev, CountryID: \"\" }))\r\n }\r\n }}\r\n >Country Code(3)\r\n
\r\n
\r\n {\r\n if (m == \"\" || m.length != 2) {\r\n setCountryValidation(prev => ({ ...prev, AlphaCode2: \"Invalid Country Code Two\" }))\r\n }\r\n else {\r\n setCountryObj(prev => ({ ...prev, AlphaCode2: m }));\r\n setCountryValidation(prev => ({ ...prev, AlphaCode2: \"\" }))\r\n }\r\n }}\r\n >Country Code(2)\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
\r\n
\r\n\r\n\r\n Activate console.log(v)} id=\"1\">\r\n {\r\n countryObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnLoader,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnSingleDateSelection,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport { GetRelationShipTypeMaster, AddEditRelationShipTypeMaster } from \"../../../../services/generalService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport function RelationshipTypeMaster(props) {\r\n\r\n //#region Local Variable\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const defaultObj = {\r\n RelationShipTypeSerNo: 0,\r\n RelationShipName: \"\",\r\n Mode: \"View\",\r\n }\r\n const valid = {\r\n RelationShipTypeSerNo: 0,\r\n RelationShipName: \"\",\r\n }\r\n //#endregion\r\n //#region State Variable \r\n const [relationshipObj, setRelationshipObj] = useState(defaultObj);\r\n const [relationshipList, setRelationshipList] = useState([]);\r\n const [filterRelationship, setFilterRelationship] = useState([]);\r\n const [validation, setValidation] = useState(valid);\r\n const [search, setSearch] = useState(\"\");\r\n const [selectedSerNo, setSelectedSerNo] = useState(0);\r\n const [isActive, setIsActive] = useState(false);\r\n //#endregion\r\n //#region useEffect \r\n useEffect(() => {\r\n fillRelationship();\r\n }, [])\r\n //#endregion\r\n //#region fill relationship list\r\n const fillRelationship = () => {\r\n setIsActive(true);\r\n GetRelationShipTypeMaster().then((d) => {\r\n setIsActive(false);\r\n setRelationshipList(d.data);\r\n setFilterRelationship(d.data);\r\n if (d.data.length > 0) {\r\n if (relationshipObj.Mode == \"Add\" || relationshipObj.Mode == \"Edit\") {\r\n let obj = d.data.find(d => d.RelationShipTypeSerNo == relationshipObj.RelationShipTypeSerNo);\r\n if (obj) {\r\n obj.Mode = \"View\";\r\n setRelationshipObj(obj);\r\n console.log(\"AddEditData>>\", d.data);\r\n }\r\n }\r\n else {\r\n d.data[0].Mode = \"View\";\r\n setRelationshipObj(d.data[0]);\r\n console.log(\"DefaultData>>\", d.data[0]);\r\n }\r\n }\r\n })\r\n }\r\n //#endregion\r\n //#region custom validation\r\n const clearValidation = () => {\r\n setValidation(valid);\r\n }\r\n const isValid = () => {\r\n let valid = true;\r\n if (relationshipObj.RelationShipName.trim().length == 0) {\r\n valid = false;\r\n setValidation((prev) => ({ ...prev, RelationShipName: \"Invalid Relationship Name\" }));\r\n }\r\n if(/[’/`~!#*$@_%+=.,^&(){}[\\]|;:”<>?\\\\]/g.test(relationshipObj.RelationShipName) == true){\r\n valid = false;\r\n setValidation((prev) => ({ ...prev, RelationShipName: \"Special charater are not allowed\" }));\r\n }\r\n return valid;\r\n }\r\n //#endregion\r\n //#region click event handler\r\n const hanldeOnClickRelationShip = (e) => {\r\n clearValidation();\r\n setIsActive(false);\r\n let obj = relationshipList.find(d => d.RelationShipTypeSerNo == e.target.id);\r\n obj.Mode = \"View\";\r\n setRelationshipObj(obj);\r\n setSelectedSerNo(e.target.id);\r\n console.log(\"OnClickRelationShipList\", obj);\r\n }\r\n const handleOnClickSearch = (e) => {\r\n setSearch(e);\r\n setRelationshipObj(defaultObj);\r\n let obj = [];\r\n relationshipList.forEach((ele) => {\r\n if (ele.RelationShipName.toLowerCase().includes(e.toLowerCase())) {\r\n obj.push(ele);\r\n }\r\n });\r\n setFilterRelationship(obj);\r\n }\r\n const handleOnClickAdd = () => {\r\n let temp = JSON.parse(JSON.stringify(defaultObj));\r\n temp.Mode = \"Add\";\r\n setRelationshipObj(temp);\r\n\r\n }\r\n const handleOnClickEdit = () => {\r\n if (relationshipObj.RelationShipName == \"\") {\r\n alertFunction(\"Please select a relationship type\");\r\n }\r\n else {\r\n setRelationshipObj((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n setSelectedSerNo(relationshipObj.RelationShipTypeSerNo);\r\n }\r\n }\r\n const handleOnClickCancel = () => {\r\n clearValidation();\r\n let existingObj = relationshipList.find(d => d.RelationShipTypeSerNo == selectedSerNo)\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setRelationshipObj(existingObj);\r\n }\r\n else {\r\n setRelationshipObj(defaultObj);\r\n }\r\n }\r\n const searchEdit = () => {\r\n GetRelationShipTypeMaster().then(d => {\r\n let temp = d.data.filter(x => x.RelationShipName.toLowerCase().includes(search.toLowerCase()))\r\n setFilterRelationship(temp);\r\n });\r\n }\r\n const handleOnClickSave = () => {\r\n let valid = isValid();\r\n if (valid) {\r\n setIsActive(true);\r\n AddEditRelationShipTypeMaster(relationshipObj).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n fillRelationship();\r\n setRelationshipObj((prev) => ({ ...prev, RelationShipTypeSerNo: d.data.ReturnValue }));\r\n setSelectedSerNo(d.data.ReturnValue);\r\n if (relationshipObj.Mode == \"Add\" || relationshipObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit();\r\n return;\r\n }\r\n }\r\n }\r\n else {\r\n alertFunction(\"Something went wrong\");\r\n }\r\n });\r\n setRelationshipObj((prev) => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n //#endregion\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Relationship Type Master

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Search\r\n
\r\n \r\n
\r\n
\r\n
Relationship Type List
\r\n
\r\n
    \r\n {\r\n filterRelationship.map(d =>\r\n
  • \r\n {d.RelationShipName}\r\n
  • \r\n )}\r\n\r\n {/*
  • List 2
  • */}\r\n
\r\n
\r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
\r\n
\r\n\r\n
{/* disabled-section */}\r\n
\r\n
\r\n {\r\n setRelationshipObj((prev) => ({ ...prev, RelationShipName: v }));\r\n setValidation((prev) => ({ ...prev, RelationShipName: \"\" }));\r\n console.log(v)\r\n }}>Relationship Type Name\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
\r\n
\r\n Activate console.log(v)} id=\"1\">\r\n {\r\n relationshipObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n {/* setShowDepositTermTypeModal(!showDepositTermTypeModal)}>Add Deposit Term Type*/}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { InnCheckbox, InnModalPopup, InnPrimaryButton, InnPlainButton, useConfirm, InnLoader } from \"../../../../component\";\r\nimport { AddEditPropertySpecialsMaster, GetClientSpecialGroupMaster, GetPropertySpecialsMaster } from \"../../../../services/generalService\";\r\n\r\nexport function PropertySpecialsModalPopup(props) {\r\n\r\n const [specialsGroupData, setSpecialsGroupData] = useState([]);\r\n const [specialsData, setSpecialsData] = useState([]);\r\n const [filterSpecialData, setFilterSpecialData] = useState([]);\r\n const [selectedspecialGroupSerNo, setSelectedspecialGroupSerNo] = useState();\r\n const [isActive, setIsActive] = useState(false);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"y\", title: \"Ok\", type: \"\" }],\r\n });\r\n }\r\n const fillPropertySpecialData = () => {\r\n if (props.para != undefined) {\r\n GetClientSpecialGroupMaster(props.para.ClientSerNo).then((d) => {\r\n setIsActive(false);\r\n setSpecialsGroupData(d.data);\r\n setSelectedspecialGroupSerNo(d.data[0].SpecialGroupSerNo);\r\n fillSpecialsData(d.data[0].SpecialGroupSerNo)\r\n })\r\n }\r\n }\r\n const fillSpecialsData = (serNo) => {\r\n if (props.para != undefined) {\r\n GetPropertySpecialsMaster(props.para.ClientSerNo).then((d) => {\r\n //setSpecialsData(d.data);\r\n let temp = [];\r\n d.data.SpecialListData.forEach((x) => {\r\n if (x.IsApply == 1) {\r\n x.IsChecked = true;\r\n }\r\n else {\r\n x.IsChecked = false;\r\n }\r\n if (x.SpecialGroupSerNo == serNo) {\r\n temp.push(x);\r\n }\r\n })\r\n console.log(d.data.SpecialListData)\r\n setSpecialsData(d.data)\r\n console.log(temp)\r\n setFilterSpecialData(temp);\r\n })\r\n }\r\n }\r\n\r\n const handleClick = (serNo) => {\r\n let temp = [];\r\n specialsData.SpecialListData.forEach((x) => {\r\n if (x.SpecialGroupSerNo == serNo) {\r\n temp.push(x);\r\n }\r\n })\r\n console.log(temp)\r\n\r\n setFilterSpecialData(temp);\r\n }\r\n\r\n const handleChecked = (d, isChecked) => {\r\n let obj;\r\n console.log(d)\r\n obj = specialsData.ReservationSpecialList.find(x => x.SpecialSerNo == d.SpecialSerNo);\r\n let arr = specialsData;\r\n arr.SpecialListData.forEach((x) => {\r\n if (x.SpecialSerNo == d.SpecialSerNo) {\r\n if (isChecked) {\r\n x.IsChecked = true;\r\n }\r\n else {\r\n if (obj != undefined) {\r\n alertFunction(\"Cannot untick as it is mapped at reservation level.\");\r\n }\r\n else {\r\n x.IsChecked = false;\r\n }\r\n }\r\n }\r\n })\r\n let tempArr = arr.SpecialListData.filter((z) => z.SpecialGroupSerNo == d.SpecialGroupSerNo);\r\n setFilterSpecialData(tempArr);\r\n setSpecialsData(arr);\r\n\r\n }\r\n\r\n const handleSave = () => {\r\n let Arr = [];\r\n let spc = [];\r\n let spgArr = [];\r\n let finalObj = {};\r\n let temp1 = specialsData.SpecialListData.filter((x) => x.IsChecked == true && x.IsApply == 0);\r\n temp1.forEach((x) => {\r\n let obj = x;\r\n obj[\"ClientSerNo\"] = parseInt(props.para.ClientSerNo);\r\n obj[\"PropertySerNo\"] = parseInt(props.para.PropertySerNo);\r\n obj[\"flag\"] = 'Insert';\r\n Arr.push(obj);\r\n spc.push(obj.SpecialGroupSerNo);\r\n })\r\n let temp2 = specialsData.SpecialListData.filter((x) => x.IsChecked == false && x.IsApply == 1);\r\n temp2.forEach((x) => {\r\n let obj = x;\r\n obj[\"ClientSerNo\"] = parseInt(props.para.ClientSerNo);\r\n obj[\"PropertySerNo\"] = parseInt(props.para.PropertySerNo);\r\n obj[\"flag\"] = 'Delete';\r\n Arr.push(obj);\r\n spc.push(obj.SpecialGroupSerNo);\r\n })\r\n console.log(Arr);\r\n spc = [...new Set(spc)]\r\n console.log(spc)\r\n specialsGroupData.forEach((x)=>{\r\n spc.forEach((y)=>{\r\n if(x.SpecialGroupSerNo == y){\r\n let obj = x;\r\n obj[\"PropertySerNo\"] = parseInt(props.para.PropertySerNo);\r\n spgArr.push(obj);\r\n }\r\n })\r\n })\r\n finalObj.PropertySpecialGroup = spgArr;\r\n finalObj.PropertySpecial = Arr;\r\n console.log(finalObj)\r\n if (Object.keys(finalObj).length > 0) {\r\n AddEditPropertySpecialsMaster(finalObj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n props.onClose();\r\n }\r\n })\r\n }\r\n else{\r\n alertFunction(\"No changes detected.\");\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n fillPropertySpecialData();\r\n }, [props.para])\r\n\r\n return (\r\n props.onClose()}>\r\n \r\n
\r\n
\r\n
\r\n

Property Specials

\r\n
\r\n
\r\n handleSave()}>Save\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Features list
\r\n
\r\n
    \r\n {\r\n specialsGroupData && specialsGroupData.map(d => {\r\n return (\r\n
  • { \r\n console.log(d)\r\n setSelectedspecialGroupSerNo(d.SpecialGroupSerNo); handleClick(d.SpecialGroupSerNo) }}> {d.Name}
  • \r\n )\r\n })\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
Features Name
\r\n
\r\n {\r\n filterSpecialData && filterSpecialData.map(d => {\r\n return (\r\n handleChecked(d, ischecked)}>{d.Name}\r\n )\r\n })\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n InnCheckbox,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnPlainButton,\r\n useConfirm,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport { GetClientRoomFeatureGroupMaster, GetClientRoomFeatureMaster, GetPropertyRoomFeatureMaster, ManagePropertyRoomFeatures } from \"../../../../services/generalService\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nexport function PropertyRoomFeatureModalPopup(props) {\r\n\r\n const currUser = useSelector(currentUser)\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const [roomFeatureGroupData, setRoomFeatureGroupData] = useState([]);\r\n const [roomFeaturesData, setRoomFeaturesData] = useState([]);\r\n const [displayFeaturesData, setDisplayFeaturesData] = useState([]);\r\n const [roomMasterFeatureList, setRoomMasterFeatureList] = useState([]);\r\n const [reservationFeatureList, setReservationFeatureList] = useState([]);\r\n const [roomTypeMasterFeatureList, setRoomTypeMasterFeatureList] = useState([]);\r\n const [selectedRoomFeatureGroup, setSelectedRoomFeatureGroup] = useState({});\r\n // const [selectedRoomFeature, setSelectedRoomFeature] = useState({});\r\n const [isActive, setIsActive] = useState(false);\r\n\r\n useEffect(() => {\r\n setIsActive(true)\r\n fillRoomFeatureGroupMaster();\r\n fillRoomFeatureMaster();\r\n }, [])\r\n\r\n const fillRoomFeatureGroupMaster = () => {\r\n GetClientRoomFeatureGroupMaster(parseInt(props.para.ClientSerNo)).then((d) => {\r\n console.log('Group', d.data);\r\n setIsActive(false)\r\n if (d.data.length > 0) {\r\n setRoomFeatureGroupData(d.data)\r\n let obj = d.data[0]\r\n if (obj != undefined) {\r\n setSelectedRoomFeatureGroup(obj)\r\n }\r\n }\r\n })\r\n }\r\n const fillRoomFeatureMaster = () => {\r\n GetPropertyRoomFeatureMaster(parseInt(props.para.ClientSerNo), parseInt(props.para.PropertySerNo)).then((d) => {\r\n setIsActive(false)\r\n if (d.data.RoomFeatureList.length > 0) {\r\n setRoomFeaturesData(d.data.RoomFeatureList)\r\n d.data.RoomFeatureList.forEach(x => {\r\n if (x.IsApply == 1) {\r\n x[\"IsChecked\"] = true\r\n }\r\n else {\r\n x[\"IsChecked\"] = false\r\n }\r\n });\r\n let temp = d.data.RoomFeatureList.filter((x) => x.RoomFeaturesGroupSerNo == 1)\r\n temp.forEach((x) => {\r\n if (x.IsApply == 1) {\r\n x.IsChecked = true\r\n }\r\n else {\r\n x.IsChecked = false\r\n }\r\n });\r\n\r\n console.log('Features', temp);\r\n if (temp) {\r\n setDisplayFeaturesData(temp)\r\n }\r\n // let obj = d.data.RoomFeatureList[0]\r\n // if (obj != undefined) {\r\n // setSelectedRoomFeature(obj)\r\n // }\r\n }\r\n\r\n console.log(d.data.RoomTypeMasterFeatureList, d.data.RoomMasterFeatureList, d.data.ReservationFeatureList);\r\n if (d.data.RoomMasterFeatureList.length > 0) {\r\n setRoomMasterFeatureList(d.data.RoomMasterFeatureList)\r\n }\r\n if (d.data.ReservationFeatureList.length > 0) {\r\n setReservationFeatureList(d.data.ReservationFeatureList)\r\n }\r\n if (d.data.RoomTypeMasterFeatureList.length > 0) {\r\n setRoomTypeMasterFeatureList(d.data.RoomTypeMasterFeatureList)\r\n }\r\n })\r\n }\r\n\r\n const handleRoomFeatureGroupClick = (e) => {\r\n let obj = roomFeatureGroupData.find((x) => x.RoomFeaturesGroupSerNo == e.target.id)\r\n setSelectedRoomFeatureGroup(obj)\r\n\r\n // if (roomFeaturesData.length > 0) {\r\n let temp = roomFeaturesData.filter((x) => x.RoomFeaturesGroupSerNo == e.target.id)\r\n // temp.forEach((x) => {\r\n // if (x.IsApply == 1) {\r\n // x.IsChecked = true\r\n // }\r\n // else {\r\n // x.IsChecked = false\r\n // }\r\n // });\r\n setDisplayFeaturesData(temp)\r\n // }\r\n }\r\n\r\n const handleSaveClick = () => {\r\n let apiArr = []\r\n let temp = roomFeaturesData.filter((x) => x.IsChecked == true && x.IsApply == 0)\r\n temp.forEach((x) => {\r\n let obj = x\r\n obj[\"ClientSerNo\"] = parseInt(props.para.ClientSerNo)\r\n obj[\"PropertySerNo\"] = parseInt(props.para.PropertySerNo)\r\n obj[\"flag\"] = 'Insert'\r\n apiArr.push(obj)\r\n })\r\n let tempp = roomFeaturesData.filter((x) => x.IsChecked == false && x.IsApply == 1)\r\n tempp.forEach((x) => {\r\n let obj = x\r\n obj[\"ClientSerNo\"] = parseInt(props.para.ClientSerNo)\r\n obj[\"PropertySerNo\"] = parseInt(props.para.PropertySerNo)\r\n obj[\"flag\"] = 'Delete'\r\n apiArr.push(obj)\r\n })\r\n if (apiArr.length > 0) {\r\n let tempObj = []\r\n apiArr.forEach((x) => {\r\n if (x.flag == 'Insert') {\r\n tempObj.push(roomFeatureGroupData.find((o) => o.RoomFeaturesGroupSerNo == x.RoomFeaturesGroupSerNo))\r\n }\r\n })\r\n let finArr = tempObj.filter((value, index, self) =>\r\n self.map(x => x.RoomFeaturesGroupSerNo).indexOf(value.RoomFeaturesGroupSerNo) == index)\r\n\r\n finArr.forEach((x) => {\r\n x[\"PropertySerNo\"] = parseInt(props.para.PropertySerNo)\r\n })\r\n\r\n console.log(apiArr, finArr);\r\n let apiObj = {\r\n PropertyRoomFeatureGroupModel: finArr,\r\n PropertyRoomFeatureModel: apiArr\r\n }\r\n ManagePropertyRoomFeatures(apiObj).then((d) => {\r\n if (d.data) {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message)\r\n props.OnClose();\r\n }\r\n }\r\n })\r\n }\r\n else {\r\n alertFunction(\"No changes done\")\r\n }\r\n }\r\n\r\n return (\r\n props.OnClose()}\r\n >\r\n \r\n
\r\n
\r\n
\r\n

Property Room features

\r\n
\r\n
\r\n \r\n Save\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Features list
\r\n
\r\n
    \r\n {\r\n roomFeatureGroupData.map((x) => {\r\n return (\r\n < li\r\n className={\r\n selectedRoomFeatureGroup.RoomFeaturesGroupSerNo == x.RoomFeaturesGroupSerNo ?\r\n \"active\"\r\n :\r\n \"\"\r\n }\r\n id={x.RoomFeaturesGroupSerNo}\r\n >\r\n \r\n {x.Name}\r\n \r\n \r\n )\r\n })\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
Features Name
\r\n
\r\n {\r\n displayFeaturesData && displayFeaturesData.map((x) => {\r\n return (\r\n {\r\n let temp = roomFeaturesData\r\n temp.forEach((d) => {\r\n if (x.RoomFeatureSerNo == d.RoomFeatureSerNo) {\r\n if (ischecked) {\r\n d.IsChecked = true\r\n }\r\n else {\r\n if (reservationFeatureList.find((y) => y.RoomFeatureSerNo == x.RoomFeatureSerNo)) {\r\n alertFunction(`Can not untick as it is mapped in Reservation`)\r\n }\r\n else if (roomMasterFeatureList.find((y) => y.RoomFeatureSerNo == x.RoomFeatureSerNo)) {\r\n alertFunction(`Can not untick as it is mapped in Room master`)\r\n }\r\n else if (roomTypeMasterFeatureList.find((y) => y.RoomFeatureSerNo == x.RoomFeatureSerNo)) {\r\n alertFunction(`Can not untick as it is mapped in Room type`)\r\n }\r\n else {\r\n d.IsChecked = false\r\n }\r\n }\r\n }\r\n })\r\n let data = temp.filter((d) => d.RoomFeaturesGroupSerNo == x.RoomFeaturesGroupSerNo)\r\n setDisplayFeaturesData(data)\r\n }}\r\n >\r\n {x.Name}\r\n \r\n )\r\n })\r\n\r\n }\r\n
\r\n
\r\n
\r\n
\r\n \r\n )\r\n}","import React, { useCallback, useEffect, useState } from \"react\";\r\nimport { InnActionButton, InnCheckbox, InnFileUpload, InnModalPopup, InnPrimaryButton, InnSearchTextbox, InnTextarea, InnTextbox, InnSingleSelectDropdown, InnPlainButton, InnSingleDateSelection, InnTooltip, useConfirm } from \"../../../../component\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport { InnPlainTabs, Tab } from \"../../../../component\";\r\nimport { AddEditPropertyMaster, GetCityMaster, GetCountryMaster, GetCurrencyMaster, GetPropertyMasters, GetStateMaster } from \"../../../../services/generalService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { PropertySpecialsModalPopup } from \"../modalPopup/PropertySpecialsModalPopup\";\r\nimport { PropertyRoomFeatureModalPopup } from \"../modalPopup/PropertyRoomFeatureModalPopup\";\r\nexport default function PropertyMaster() {\r\n const selectdata = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"y\", title: \"Ok\", type: \"\" }],\r\n });\r\n }\r\n const defaultObj = {\r\n \"ClientSerNo\": currUser.ClientSerNo,\r\n \"PropertySerNo\": 0,\r\n \"PropertyName\": \"\",\r\n \"StatutoryName\": \"\",\r\n \"Address1\": \"\",\r\n \"Address2\": \"\",\r\n \"CountrySerNo\": 0,\r\n \"StateSerNo\": 0,\r\n \"CitySerNo\": 0,\r\n \"Postcode\": \"\",\r\n \"Email\": \"\",\r\n \"Telephone\": \"\",\r\n \"Website\": \"\",\r\n \"LogoPath\": null,\r\n \"LicenceExpiryDate\": \"01-July-2023\",\r\n \"BankName\": \"\",\r\n \"BranchName\": \"\",\r\n \"AccountName\": \"\",\r\n \"AccountNumber\": \"\",\r\n \"SwiftCode\": \"\",\r\n \"IFSCCode\": \"\",\r\n \"PANNo\": \"\",\r\n \"GSTNo\": \"\",\r\n \"Jurisdiction\": \"\",\r\n \"CurrencyID\": \"\",\r\n \"Mode\": \"View\"\r\n }\r\n\r\n const defaultValidation = {\r\n PropertyName: \"\",\r\n LicenceExpiryDate: \"\",\r\n Address1: \"\",\r\n CountrySerNo: \"\",\r\n StateSerNo: \"\",\r\n CitySerNo: \"\",\r\n CurrencyID: \"\"\r\n }\r\n const [showPropertyRoomfeaturesModal, setShowPropertyRoomfeaturesModal] = useState(false);\r\n const [showPropertySpecialsModal, setShowPropertySpecialsModal] = useState(false);\r\n const [propertyData, setPropertyData] = useState([]);\r\n const [propertyObj, setPropertyObj] = useState(defaultObj);\r\n const [countryData, setCountryData] = useState([]);\r\n const [cityData, setCityData] = useState([]);\r\n const [stateData, setStateData] = useState([]);\r\n const [currencyData, setCurrencyData] = useState([]);\r\n const [selectedSerNo, setSelectedSerNo] = useState(0);\r\n const [validation, setValidation] = useState(defaultValidation);\r\n const [searchString,setSearchString] = useState(\"\");\r\n const [filterPropertyData, setFilterPropertyData] = useState([]);\r\n const LastUpdateTooltip = () => {\r\n return (\r\n
\r\n
\r\n
    \r\n
  • By Rohan Shah
  • \r\n
  • Date: 25th Sept.
  • \r\n
  • Time: 15:45
  • \r\n
  • PC: 192.168.600.789
  • \r\n
\r\n
\r\n\r\n
\r\n );\r\n };\r\n\r\n const clearValidation = () => {\r\n setValidation(defaultValidation);\r\n }\r\n const handleValidation = () => {\r\n console.log(propertyData.filter(x => x.PropertyName.toLowerCase() == (propertyObj.PropertyName.toLowerCase().trim())))\r\n let isValid = true;\r\n if (propertyObj.PropertyName == \"\") {\r\n setValidation((prev) => ({ ...prev, PropertyName: \"Invalid Name\" }));\r\n isValid = false;\r\n }\r\n if (propertyData.filter(x => x.PropertyName.toLowerCase().trim() == (propertyObj.PropertyName.toLowerCase().trim())).length > 0 && propertyObj.Mode == \"Add\") {\r\n setValidation((prev) => ({ ...prev, PropertyName: \"Name Exist\" }));\r\n isValid = false;\r\n }\r\n if (propertyObj.LicenceExpiryDate == \"\") {\r\n setValidation((prev) => ({ ...prev, LicenceExpiryDate: \"Invalid Date\" }));\r\n isValid = false;\r\n }\r\n if (propertyObj.Address1 == \"\") {\r\n setValidation((prev) => ({ ...prev, Address1: \"Invalid Input\" }));\r\n isValid = false;\r\n }\r\n if (propertyObj.CountrySerNo == 0) {\r\n setValidation((prev) => ({ ...prev, CountrySerNo: \"Invalid Input\" }));\r\n isValid = false;\r\n }\r\n if (propertyObj.StateSerNo == 0) {\r\n setValidation((prev) => ({ ...prev, StateSerNo: \"Invalid Input\" }));\r\n isValid = false;\r\n }\r\n if (propertyObj.CitySerNo == 0) {\r\n console.log(\"first\")\r\n setValidation((prev) => ({ ...prev, CitySerNo: \"Invalid Input\" }));\r\n isValid = false;\r\n }\r\n if (propertyObj.CurrencyID == \"\") {\r\n setValidation((prev) => ({ ...prev, CurrencyID: \"Invalid Input\" }));\r\n isValid = false;\r\n }\r\n return isValid;\r\n }\r\n const fillProperty = () => {\r\n GetPropertyMasters(currUser.ClientSerNo).then(d => {\r\n if (d.data.length > 0) {\r\n d.data.forEach(x => x.Mode = \"View\")\r\n setPropertyData(d.data);\r\n setFilterPropertyData(d.data);\r\n console.log(d.data[0], d.data)\r\n if (propertyObj.PropertySerNo == 0) {\r\n setSelectedSerNo(d.data[0].PropertySerNo);\r\n setPropertyObj(d.data[0]);\r\n }\r\n }\r\n })\r\n }\r\n\r\n const handlePropertyClick = (d) => {\r\n clearValidation();\r\n console.log(d)\r\n let obj = d;\r\n setSelectedSerNo(obj.PropertySerNo);\r\n setPropertyObj(obj);\r\n }\r\n\r\n const handleAddClick = () => {\r\n let obj = defaultObj;\r\n obj.Mode = \"Add\";\r\n setPropertyObj(obj);\r\n setStateData([{ key: 0, value: \"Select\" }]);\r\n setCityData([{ key: 0, value: \"Select\" }])\r\n }\r\n\r\n // const handleEditClick = () => {\r\n // let obj = propertyObj;\r\n // obj.Mode = \"Edit\";\r\n // setPropertyObj(obj);\r\n // }\r\n\r\n const handleCancelClick = () => {\r\n console.log(validation)\r\n clearValidation();\r\n let exObj = propertyData.find(x => x.PropertySerNo == selectedSerNo);\r\n setPropertyObj(exObj);\r\n }\r\n\r\n const handleOnSearchChange = (e) => {\r\n let filterData = propertyData.filter((obj) =>\r\n obj.PropertyName.toLowerCase().includes(e.toLowerCase()))\r\n setSearchString(e);\r\n setFilterPropertyData(filterData);\r\n }\r\n const handleSaveClick = () => {\r\n let IsValid = handleValidation();\r\n if (IsValid) {\r\n let obj = propertyObj;\r\n obj.PropertySerNo = parseInt(obj.PropertySerNo);\r\n AddEditPropertyMaster(obj).then(d => {\r\n if (d.data.Code = \"200\") {\r\n obj.PropertySerNo = d.data.ReturnValue;\r\n obj.Mode = \"View\";\r\n alertFunction(d.data.Message);\r\n setSelectedSerNo(d.data.ReturnValue);\r\n setPropertyObj(obj);\r\n }\r\n fillProperty();\r\n })\r\n }\r\n else {\r\n alertFunction(\"One or more fields are incorrect. Please verify accordingly. \")\r\n }\r\n\r\n }\r\n useEffect(() => {\r\n fillProperty();\r\n GetCountryMaster(currUser.ClientSerNo).then((d) => {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach((x) => {\r\n temp = [...temp, { key: x.CountrySerNo, value: x.Name }];\r\n });\r\n setCountryData(temp);\r\n });\r\n GetCurrencyMaster().then((d) => {\r\n let temp = [];\r\n d.data.forEach(d => {\r\n temp.push({ key: d.CurrencyID, value: d.Name });\r\n })\r\n setCurrencyData(temp);\r\n });\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (propertyObj.CountrySerNo != 0) {\r\n GetStateMaster(currUser.ClientSerNo, propertyObj.CountrySerNo).then((d) => {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach((x) => {\r\n temp = [...temp, { key: x.StateSerNo, value: x.Name }];\r\n });\r\n setStateData(temp);\r\n });\r\n }\r\n }, [propertyObj.CountrySerNo]);\r\n\r\n useEffect(() => {\r\n if (propertyObj.CountrySerNo != 0 && propertyObj.StateSerNo != 0) {\r\n GetCityMaster(currUser.ClientSerNo, propertyObj.CountrySerNo, propertyObj.StateSerNo).then((d) => {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach((x) => {\r\n temp = [...temp, { key: x.CitySerNo, value: x.Name }];\r\n });\r\n setCityData(temp);\r\n });\r\n }\r\n }, [propertyObj.StateSerNo]);\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Property Masters

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n handleOnSearchChange(e)} OnCancelClick={()=>{\r\n setSearchString(\"\");\r\n setFilterPropertyData(propertyData);\r\n }}>Search\r\n
Property list
\r\n
\r\n
    \r\n {\r\n filterPropertyData && filterPropertyData.map(d => {\r\n return (\r\n
  • handlePropertyClick(d)}>{d.PropertyName}
  • \r\n )\r\n })\r\n }\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n { setPropertyObj((prev) => ({ ...prev, PropertyName: v })); setValidation((prev) => ({ ...prev, PropertyName: \"\" })); }}>Property Name\r\n setPropertyObj((prev) => ({ ...prev, StatutoryName: v }))}>Statutory Name\r\n { setPropertyObj((prev) => ({ ...prev, Address1: v })); setValidation((prev) => ({ ...prev, Address1: \"\" })) }}>Address 1\r\n setPropertyObj((prev) => ({ ...prev, Address2: v }))}>Address 2\r\n
\r\n
\r\n
\r\n { setPropertyObj((prev) => ({ ...prev, CountrySerNo: item.key })); setValidation((prev) => ({ ...prev, CountrySerNo: \"\" })) }}\r\n selectedSerNo={propertyObj.CountrySerNo}\r\n >\r\n
\r\n
\r\n { setPropertyObj((prev) => ({ ...prev, StateSerNo: item.key })); setValidation((prev) => ({ ...prev, StateSerNo: \"\" })) }}\r\n selectedSerNo={propertyObj.StateSerNo}\r\n >\r\n
\r\n
\r\n { setPropertyObj((prev) => ({ ...prev, CitySerNo: item.key })); setValidation((prev) => ({ ...prev, CitySerNo: \"\" })) }}\r\n selectedSerNo={propertyObj.CitySerNo}\r\n >\r\n
\r\n setPropertyObj((prev) => ({ ...prev, Postcode: v }))} className=\"form-group\" value={propertyObj.Postcode}>Post Code\r\n
\r\n
\r\n setPropertyObj((prev) => ({ ...prev, Telephone: v }))} className=\"form-group\" value={propertyObj.Telephone}>Telephone\r\n setPropertyObj((prev) => ({ ...prev, Email: v }))} className=\"form-group\" value={propertyObj.Email}>Email\r\n setPropertyObj((prev) => ({ ...prev, Website: v }))} className=\"form-group\" value={propertyObj.Website}>Website\r\n
\r\n
\r\n
\r\n
Logo
\r\n
\r\n
\r\n console.log(v)} disabled={false}>\r\n \r\n
\r\n
\r\n
\r\n setPropertyObj((prev) => ({ ...prev, LicenceExpiryDate: v }))}\r\n >\r\n
\r\n
\r\n
setShowPropertyRoomfeaturesModal(!showPropertyRoomfeaturesModal)}>Room Features
\r\n
setShowPropertySpecialsModal(!showPropertySpecialsModal)}>Room Specials
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n setPropertyObj((prev) => ({ ...prev, BankName: v }))} className=\"form-group\" value={propertyObj.BankName}>Bank Name\r\n setPropertyObj((prev) => ({ ...prev, BranchName: v }))} className=\"form-group\" value={propertyObj.BranchName}>Branch Name\r\n setPropertyObj((prev) => ({ ...prev, AccountName: v }))} className=\"form-group\" value={propertyObj.AccountName ? propertyObj.AccountName : \"\"}>Account Name\r\n setPropertyObj((prev) => ({ ...prev, AccountNumber: v }))} className=\"form-group\" value={propertyObj.AccountNumber ? propertyObj.AccountNumber : \"\"}>Account Number\r\n setPropertyObj((prev) => ({ ...prev, SwiftCode: v }))} className=\"form-group\" value={propertyObj.SwiftCode ? propertyObj.SwiftCode : \"\"}>Swift Code\r\n setPropertyObj((prev) => ({ ...prev, IFSCCode: v }))} className=\"form-group\" value={propertyObj.IFSCCode ? propertyObj.IFSCCode : \"\"}>IFSC Code\r\n
\r\n
\r\n setPropertyObj((prev) => ({ ...prev, PANNo: v }))} className=\"form-group\" value={propertyObj.PANNo ? propertyObj.PANNo : \"\"}>PAN No.\r\n setPropertyObj((prev) => ({ ...prev, GSTNo: v }))} className=\"form-group\" value={propertyObj.GSTNo ? propertyObj.GSTNo : \"\"}>GST No.\r\n setPropertyObj((prev) => ({ ...prev, Jurisdiction: v }))} className=\"form-group\" value={propertyObj.Jurisdiction ? propertyObj.Jurisdiction : \"\"}>Jurisdiction\r\n
\r\n { setPropertyObj((prev) => ({ ...prev, CurrencyID: item.key })); setValidation((prev) => ({ ...prev, CurrencyID: \"\" })) }}\r\n selectedSerNo={propertyObj.CurrencyID}\r\n >\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n\r\n
\r\n
\r\n {\r\n propertyObj.Mode == \"View\" ?\r\n <>\r\n setPropertyObj((prev) => ({ ...prev, Mode: \"Edit\" }))}>Edit\r\n handleAddClick()}>Add\r\n \r\n :\r\n <>\r\n handleCancelClick()}>Cancel\r\n handleSaveClick()}>Save\r\n \r\n }\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/* {showPropertyRoomfeaturesModal ? (\r\n setShowPropertyRoomfeaturesModal(!showPropertyRoomfeaturesModal)}>\r\n
\r\n
\r\n
\r\n

Property Room features

\r\n
\r\n
\r\n Save\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Features list
\r\n
\r\n
    \r\n
  • Features Name (22)
  • \r\n
  • Features Name (2)
  • \r\n
  • Features Name (1)
  • \r\n
  • Features Name (0)
  • \r\n
  • Features Name (15)
  • \r\n
  • Features Name (12)
  • \r\n
\r\n
\r\n
\r\n
\r\n
Features Name
\r\n
\r\n { }}>Some text\r\n { }}>Some text\r\n { }}>Some text\r\n { }}>Some text\r\n { }}>Some text\r\n { }}>Some text\r\n { }}>Some text\r\n { }}>Some text\r\n { }}>Some text\r\n { }}>Some text\r\n { }}>Some text\r\n { }}>Some text\r\n { }}>Some text\r\n { }}>Some text\r\n { }}>Some text\r\n { }}>Some text\r\n { }}>Some text\r\n
\r\n
\r\n
\r\n
\r\n
\r\n ) : null} */}\r\n {showPropertyRoomfeaturesModal ? (\r\n {\r\n setShowPropertyRoomfeaturesModal(false)\r\n }}\r\n para={{\r\n ClientSerNo: propertyObj.ClientSerNo,\r\n PropertySerNo: propertyObj.PropertySerNo\r\n }}\r\n >\r\n ) : null}\r\n {showPropertySpecialsModal ?\r\n setShowPropertySpecialsModal(false)}> : <>\r\n }\r\n
\r\n )\r\n}\r\n","import axios from \"axios\";\r\n\r\nexport const GetClientIDbyDomain = (DomainAlias) => {\r\n const apiUrl = \"/Authentication/GetClientbyDomain/\" + DomainAlias;\r\n return axios.get(apiUrl);\r\n};\r\n\r\n// export const GetReservationList = (clientSerNo,propertySerNo,pageNumber,sortCol1,sortCol2,sortType) =>{\r\n// const apiUrl = \"/Reservation/GetReservationList/\" + clientSerNo + \"/\" + propertySerNo + \"/\" + pageNumber + \"/\" + sortCol1 + \"/\" + sortCol2 + \"/\" + sortType\r\n// return axios.get(apiUrl);\r\n// }\r\n\r\n// export const GetReservationList = (pageNumber,filData) =>{\r\n// const apiUrl = \"/Reservation/GetReservation\"\r\n// ReservationListFilterModel.Data.ClientSerNo = filData.ClientSerNo\r\n// ReservationListFilterModel.Data.PropertySerNo = filData.PropertySerNo\r\n// ReservationListFilterModel.Data.PageNumber = pageNumber\r\n// ReservationListFilterModel.Data.SortCol = filData.SortCol\r\n// ReservationListFilterModel.Data.SortType = filData.SortType\r\n// ReservationListFilterModel.Data.FromDate = filData.FromDate\r\n// ReservationListFilterModel.Data.ToDate = filData.ToDate\r\n// ReservationListFilterModel.Data.BookingNo = filData.BookingNo\r\n// ReservationListFilterModel.Data.FirstName = filData.FirstName\r\n// ReservationListFilterModel.Data.LastName = filData.LastName\r\n// ReservationListFilterModel.Data.RoomTypeSerNo = parseInt(filData.RoomTypeSerNo)\r\n// ReservationListFilterModel.Data.ReservationStatus = filData.ReservationStatus\r\n// ReservationListFilterModel.Data.MembershipNo = filData.MembershipNo\r\n// ReservationListFilterModel.Data.RateSerNo = parseInt(filData.RateSerNo)\r\n// ReservationListFilterModel.Data.ReservationTypeSerNo = parseInt(filData.ReservationTypeSerNo)\r\n// ReservationListFilterModel.Data.VIPLevelSerNo = parseInt(filData.VIPLevelSerNo)\r\n// ReservationListFilterModel.Data.BookingReferenceNo = filData.BookingReferenceNo\r\n// if(filData.Adult === \"\")\r\n// ReservationListFilterModel.Data.Adult = 0\r\n// else\r\n// ReservationListFilterModel.Data.Adult = parseInt(filData.Adult)\r\n// if(filData.Child === \"\")\r\n// ReservationListFilterModel.Data.Child = 0\r\n// else\r\n// ReservationListFilterModel.Data.Child = parseInt(filData.Child)\r\n// if(filData.NightsFrom === \"\")\r\n// ReservationListFilterModel.Data.NightsFrom = 0\r\n// else\r\n// ReservationListFilterModel.Data.NightsFrom = parseInt(filData.NightsFrom)\r\n// if(filData.NightsTo === \"\")\r\n// ReservationListFilterModel.Data.NightsTo = 0\r\n// else\r\n// ReservationListFilterModel.Data.NightsTo = parseInt(filData.NightsTo)\r\n\r\n// ReservationListFilterModel.Data.IsIncognitoName = filData.IsIncognitoName\r\n// ReservationListFilterModel.Data.strMemberShipLevel = filData.strMemberShipLevel\r\n// //ReservationListFilterModel.Data.strMemberShipLevel = ReservationListFilterModel.Data.strMemberShipLevel.substring(0,ReservationListFilterModel.Data.strMemberShipLevel.length -1)\r\n// console.log(\"sub string\",ReservationListFilterModel);\r\n// return axios.post(apiUrl,ReservationListFilterModel.Data);\r\n// }\r\n\r\nexport const AuthenticateUser = (ClientID, UserID, Password) => {\r\n let buff = Buffer.from(Password);\r\n Password = buff.toString(\"base64\");\r\n\r\n ClientID = Buffer.from(ClientID).toString(\"base64\");\r\n UserID = Buffer.from(UserID).toString(\"base64\"); \r\n\r\n const data = {\r\n Client_ID: ClientID,\r\n User_ID: UserID,\r\n Password: Password,\r\n GrantType: \"cGFzc3dvcmQ=\",\r\n RefreshToken: \"\",\r\n SecureKey: \"\",\r\n IP: \"\",\r\n }; \r\n const apiUrl = \"/Authentication/Authenticate\";\r\n return axios.post(apiUrl, data);\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n InnCheckbox,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnSingleDateSelection,\r\n InnTooltip,\r\n} from \"../../../../component\";\r\nimport {\r\n IndiAgent,\r\n IndiCompany,\r\n IndiAdultChild,\r\n IndiArrival,\r\n IndiDailyRate,\r\n IndiGuestName,\r\n IndiInclusion,\r\n IndiPackege,\r\n IndiRateCode,\r\n IndiReservationType,\r\n IndiRoomRate,\r\n IndiRoomType,\r\n} from \"../indicators\";\r\nimport { GetCalculatedTaxByTransaction, GetTransactionMaster, GetPropertyParameterByKeys } from \"../../../../services/reservationService\";\r\nimport { GetReservationWindowRoutingList, PostReservationTransaction } from \"../../../../services/reservationCashieringService\";\r\nimport moment from \"moment\";\r\n\r\nexport function PostReservationTransactionModalPopup(props) {\r\n const [reservationInfoData, setReservationInfoData] = useState({});\r\n const reservationObj = {\r\n // ClientSerNo: parseInt(currUser.ClientSerNo),\r\n // PropertySerNo: parseInt(currUser.PropertySerNo),\r\n // ReservationSerNo: location.state.reservationSerNo\r\n ClientSerNo: 1201,\r\n PropertySerNo: 1,\r\n ReservationSerNo: 10,\r\n };\r\n const [transactionChargeList, setTransactionChargeList] = useState([]);\r\n const [cmbWindow, setCmbWindow] = useState([]);\r\n const [reservationTransactionTaxDetail, setReservationTransactionTaxDetail] = useState([]);\r\n const [totalTax, setTotalTax] = useState(0);\r\n const [totalAmount, setTotalAmount] = useState(0);\r\n const [taxTooltipList, setTaxTooltiplist] = useState([]);\r\n\r\n const cmbQuantity = [...new Array(100)].map((each, index) => {\r\n const val = index + 1;\r\n return { key: val, value: val };\r\n });\r\n\r\n const [reservationTransactionObj, setReservationTransactionObj] = useState({\r\n ClientSerNo: props.para.ClientSerNo,\r\n PropertySerNo: props.para.PropertySerNo,\r\n ReservationSerNo: props.para.ReservationSerNo,\r\n OrgReservationSerNo: props.para.ReservationSerNo,\r\n TransactionType: \"\",\r\n Amount: 0,\r\n DocumentNo: \"\",\r\n TransactionSerNo: 0,\r\n WindowSerNo: props.para?.WindowSerNo,\r\n Remarks: \"\",\r\n TransactionName: \"\",\r\n AssoTransactionSerNo: 0,\r\n Quantity: 0,\r\n IsTaxInclusive: false,\r\n IsPaidOut: false,\r\n TransactionDate: \"\"\r\n });\r\n const [transactionValidationObj, setTransactionValidationObj] = useState({\r\n Amount: \"\",\r\n WindowSerNo: \"\",\r\n TransactionSerNo: \"\",\r\n Quantity: \"\",\r\n });\r\n useEffect(() => {\r\n getReservationwindowRoutingList();\r\n getChargeMasterData();\r\n fillPropertyParameterData();\r\n }, []);\r\n\r\n const fillPropertyParameterData = () => {\r\n GetPropertyParameterByKeys(props.para.ClientSerNo, props.para.PropertySerNo, [\r\n \"BusinessDate\"\r\n ]).then((d) => {\r\n setReservationTransactionObj(prev => ({ ...prev, TransactionDate: moment(new Date(d.data[0].value)).format(\"DD-MMM-YYYY\") }));\r\n });\r\n };\r\n\r\n const getReservationwindowRoutingList = () => {\r\n GetReservationWindowRoutingList(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo)\r\n .then((d) => {\r\n let cmbWindowList = [];\r\n d.data.map((element) => {\r\n if (element.IsDeleted !== true) {\r\n cmbWindowList.push({ key: element.WindowSerNo, value: element.WindowName });\r\n }\r\n });\r\n setCmbWindow(cmbWindowList);\r\n })\r\n .catch((error) => {\r\n setCmbWindow([]);\r\n });\r\n };\r\n\r\n const getChargeMasterData = () => {\r\n GetTransactionMaster(props.para.ClientSerNo, props.para.PropertySerNo, \"C\", \"ALL\")\r\n .then((d) => {\r\n let chargeList = [];\r\n d.data.map((element) => {\r\n chargeList.push({ key: element.TransactionSerNo, value: element.Name });\r\n });\r\n setTransactionChargeList(chargeList);\r\n })\r\n .catch((error) => {\r\n setTransactionChargeList([]);\r\n });\r\n };\r\n\r\n const getTaxDetail = (tranSerno, isTaxInclusive, taxableAmount) => {\r\n GetCalculatedTaxByTransaction(props.para.ClientSerNo, props.para.PropertySerNo, 0, false, isTaxInclusive, tranSerno, taxableAmount)\r\n .then((d) => {\r\n let tax = 0;\r\n let total = 0;\r\n d.data.forEach((element) => {\r\n if (element.TransactionSerNo != 0) {\r\n tax = tax + (element.TransType == \"D\" ? parseFloat(element.Amount) : parseFloat(element.Amount) * -1);\r\n }\r\n });\r\n total = total + taxableAmount + (isTaxInclusive == false ? tax : 0);\r\n console.log(d.data);\r\n setTotalTax(tax);\r\n setTotalAmount(total);\r\n\r\n let taxList = [];\r\n let taxTooltip = [];\r\n d.data.forEach((element) => {\r\n if (element.TransactionSerNo != 0) {\r\n taxList.push({\r\n TransactionSerNo: element.TransactionSerNo,\r\n ParentTransactionSerNo: reservationTransactionObj.TransactionSerNo,\r\n Amount: parseFloat(element.Amount),\r\n OnAmount: parseFloat(element.OnAmount),\r\n Percentage: parseFloat(element.OnAmountPer),\r\n TransType: element.TransType,\r\n });\r\n taxTooltip.push({ Title: element.Name, Detail: element.OnAmountPer + \"%\" });\r\n }\r\n });\r\n taxTooltip.push({ Title: \"Taxable Amount\", Detail: taxableAmount - (isTaxInclusive == true ? tax : 0) });\r\n taxTooltip.push({ Title: \"Tax Amount\", Detail: tax });\r\n console.log(taxTooltip);\r\n setTaxTooltiplist(taxTooltip);\r\n setReservationTransactionTaxDetail(taxList);\r\n })\r\n .catch((error) => {\r\n setReservationTransactionTaxDetail([]);\r\n });\r\n };\r\n const handleSaveOnClick = () => {\r\n let IsPageValid = isValidData();\r\n console.log(transactionValidationObj);\r\n console.log(reservationTransactionObj);\r\n console.log(reservationTransactionTaxDetail);\r\n let ReservationTransactionDetail = {\r\n ReservationTransaction: reservationTransactionObj,\r\n ReservationTransactionTaxList: reservationTransactionTaxDetail,\r\n };\r\n console.log(ReservationTransactionDetail);\r\n if (IsPageValid) {\r\n PostReservationTransaction(ReservationTransactionDetail)\r\n .then((d) => {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n setReservationTransactionObj([]);\r\n handleOnclose(d.data.ReturnValue);\r\n }\r\n })\r\n .catch((error) => { });\r\n }\r\n };\r\n const isValidData = () => {\r\n let isValid = true;\r\n setTransactionValidationObj([]);\r\n if (reservationTransactionObj.TransactionSerNo == 0 || reservationTransactionObj.TransactionSerNo == null) {\r\n isValid = false;\r\n setTransactionValidationObj((prev) => ({ ...prev, TransactionSerNo: \"Select Transaction Method\" }));\r\n }\r\n if (reservationTransactionObj.Amount == 0 || reservationTransactionObj.Amount == \"\") {\r\n isValid = false;\r\n setTransactionValidationObj((prev) => ({ ...prev, Amount: \"Enter the Amount\" }));\r\n }\r\n if (reservationTransactionObj.WindowSerNo == 0 || reservationTransactionObj.WindowSerNo == null) {\r\n isValid = false;\r\n setTransactionValidationObj((prev) => ({ ...prev, WindowSerNo: \"Select Window\" }));\r\n }\r\n if (reservationTransactionObj.Quantity == 0 || reservationTransactionObj.Quantity == null) {\r\n isValid = false;\r\n setTransactionValidationObj((prev) => ({ ...prev, Quantity: \"Select Quantity\" }));\r\n }\r\n\r\n return isValid;\r\n };\r\n const handleOnclose = (x) => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(x);\r\n }\r\n };\r\n\r\n const TaxesTooltip = () => {\r\n return (\r\n
\r\n
\r\n {taxTooltipList.map((element) => {\r\n return (\r\n
\r\n
\r\n {element.Title} {element.Detail}\r\n
\r\n
\r\n );\r\n })}\r\n {/*
\r\n
\r\n SGST 6%\r\n
\r\n
\r\n
\r\n
\r\n Taxable Amount 4,500\r\n
\r\n
\r\n
\r\n
\r\n Tax Amount 140\r\n
\r\n
*/}\r\n
\r\n
\r\n );\r\n };\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n

Post Transaction

\r\n
\r\n
\r\n handleSaveOnClick()}>Save\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    Room No / Room Type
    \r\n
    304/Executive
    \r\n
  • \r\n
  • \r\n
    Confirmation No.
    \r\n
    12345678910
    \r\n
  • \r\n
  • \r\n
    Guest Name
    \r\n
    Mr. Rohit Sharma
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n setReservationTransactionObj((prev) => ({\r\n ...prev,\r\n TransactionSerNo: parseInt(item.key),\r\n AssoTransactionSerNo: parseInt(item.key),\r\n TransactionType: \"C\",\r\n }));\r\n getTaxDetail(parseInt(item.key), reservationTransactionObj.IsTaxInclusive, reservationTransactionObj.Amount);\r\n }}>\r\n
\r\n
\r\n setReservationTransactionObj((prev) => ({ ...prev, Quantity: parseInt(item.key) }))}>\r\n
\r\n
\r\n {\r\n setReservationTransactionObj((prev) => ({ ...prev, WindowSerNo: parseInt(item.key) }));\r\n }}>\r\n
\r\n {\r\n setReservationTransactionObj((prev) => ({ ...prev, DocumentNo: v }));\r\n }}\r\n\r\n >\r\n Document Reference\r\n \r\n
\r\n
\r\n
\r\n
\r\n {\r\n setReservationTransactionObj((prev) => ({ ...prev, IsTaxInclusive: ischecked }));\r\n getTaxDetail(reservationTransactionObj.TransactionSerNo, ischecked, reservationTransactionObj.Amount);\r\n }}>\r\n Inclusive of Taxes\r\n \r\n
\r\n
\r\n {\r\n setReservationTransactionObj((prev) => ({ ...prev, Amount: parseFloat(v) }));\r\n //getTaxDetail(reservationTransactionObj.TransactionSerNo,reservationTransactionObj.IsTaxInclusive,parseFloat(v))\r\n }}\r\n onBlur={() => {\r\n getTaxDetail(reservationTransactionObj.TransactionSerNo, reservationTransactionObj.IsTaxInclusive, reservationTransactionObj.Amount);\r\n }}>\r\n {\" \"}\r\n Amount\r\n \r\n
\r\n
\r\n
\r\n
Taxes
\r\n \r\n
{totalTax}
\r\n
\r\n
\r\n
\r\n
\r\n setReservationTransactionObj((prev) => ({ ...prev, Remarks: v }))}>\r\n Note\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n InnTableGrid,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnModalPopup,\r\n InnKeyboard,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetPOSRoomSettlementData } from \"../../../../services/posbillingService\";\r\n\r\nexport function RoomSettlementPopUp(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const [isActive, setActive] = useState(false);\r\n const [gridSelectedItem, setGridSelectedItem] = useState([]);\r\n const [ocMainRoomSettlementData, setMainOcRoomSettlementData] = useState([]);\r\n const [ocRoomSettlementData, setOcRoomSettlementData] = useState([]);\r\n const [showKeyBoard, setShowKeyBoard] = useState(false);\r\n const [searchInput, setSearchInput] = useState(\"\");\r\n\r\n const RoomSettlementHeader = [\r\n { key: \"Room No\", value: \"RoomNo\", type: \"txt\", sorting: \"N\", align: \"left\" },\r\n { key: \"Room Type\", value: \"RoomTypeName\", type: \"txt\", sorting: \"N\", align: \"left\" },\r\n { key: \"Booking No.\", value: \"BookingNo\", type: \"txt\", sorting: \"N\", align: \"left\" },\r\n { key: \"Plan\", value: \"RateCodeName\", type: \"txt\", sorting: \"N\", align: \"left\" },\r\n { key: \"Guest\", value: \"GuestName\", type: \"txt\", sorting: \"N\", align: \"left\" },\r\n ];\r\n \r\n const setSelectedItem = (items) => {\r\n setGridSelectedItem(items);\r\n };\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose == undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose();\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n setActive(true);\r\n GetPOSRoomSettlementData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setActive(false);\r\n let tempObj = [];\r\n if (d.data != undefined) {\r\n d.data.forEach(ele => {\r\n tempObj.push(ele);\r\n });\r\n setGridSelectedItem(tempObj[0]);\r\n }\r\n setMainOcRoomSettlementData(tempObj);\r\n setOcRoomSettlementData(tempObj);\r\n });\r\n }, []);\r\n\r\n const handleSaveOnClick = () => {\r\n let objRoom = {};\r\n objRoom = gridSelectedItem;\r\n if(gridSelectedItem == undefined){\r\n objRoom = {}; \r\n }\r\n props.handleSaveOnClose(objRoom)\r\n };\r\n\r\n const serachOnClick = () => {\r\n setShowKeyBoard(true);\r\n };\r\n\r\n useEffect(() => {\r\n let objItem = [];\r\n \r\n objItem = ocMainRoomSettlementData.filter(post => {\r\n if (searchInput === \"\") return ocMainRoomSettlementData\r\n return (post.GuestName.toLowerCase().includes(searchInput.toLowerCase()) || \r\n post.RoomNo.toLowerCase().includes(searchInput.toLowerCase()))\r\n });\r\n\r\n setOcRoomSettlementData(objItem);\r\n },[searchInput]);\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n
\r\n

Room Selection

\r\n
\r\n
\r\n Save\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Search\r\n
\r\n
\r\n
Company on folio
\r\n
A Field Production Pvt Ltd
\r\n
\r\n
\r\n
\r\n {\r\n setSelectedItem(rowdata);\r\n }}\r\n >\r\n
\r\n {showKeyBoard ?\r\n {\r\n let tempStr = searchInput;\r\n if (isBackSpace) {\r\n tempStr = v;\r\n }\r\n else {\r\n tempStr += v;\r\n }\r\n setSearchInput(tempStr);\r\n }}\r\n onEscape={() => {\r\n setShowKeyBoard(false);\r\n }}\r\n >\r\n : null\r\n }\r\n
\r\n
\r\n
\r\n \r\n )\r\n}","import axios from \"axios\";\r\n\r\n//#region HouseKeeping Section Group\r\n\r\nexport const GetHouseKeepingSectionGroup = (clientSerNo, propertySerNo) => {\r\n const apiUrl = \"/HouseKeepingSectionGroup/manage-houseKeeping-section-group/\" + clientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddEditHouseKeepingSectionGroup = (para) => {\r\n const apiUrl = \"/HouseKeepingSectionGroup/manage-houseKeeping-section-group\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\n//#endregion HouseKeeping Section Group\r\n//#region Housekepping Section Master\r\nexport const cmbGetHousekeepingSectionGroup = (clientSerNo, propertySerNo) => {\r\n console.log(\"api call\");\r\n const apiUrl = \"/HousekeepingSection/cmbGetHousekeepingSectionGroup/\" + clientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n\r\n};\r\nexport const GetHousekeepingSectionMaster = (clientSerNo, propertySerNo, HKSectionGroupSerNo) => {\r\n console.log(\"api call\");\r\n const apiUrl = \"/HousekeepingSection/manage-housekeeping-section/\" + clientSerNo + \"/\" + propertySerNo + \"/\" + HKSectionGroupSerNo;\r\n return axios.get(apiUrl);\r\n\r\n};\r\n\r\nexport const GetHousekeepingSectionMasterBySerNo = (clientSerNo, propertySerNo, hkSectionSerNo) => {\r\n console.log(\"api call\");\r\n const apiUrl = \"/HousekeepingSection/GetHousekeepingSectionMasterBySerNo/\" + clientSerNo + \"/\" + propertySerNo + \"/\" + hkSectionSerNo;\r\n return axios.get(apiUrl);\r\n\r\n};\r\nexport const AddEditHouseKeepingSectionMaster = (para) => {\r\n const apiUrl = \"/HousekeepingSection/manage-housekeeping-section\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const GetHKStatusMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/HKStatusMaster/manage-hkstatus/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const AddEditHKStatusMaster = (para) => {\r\n const apiUrl = \"/HKStatusMaster/manage-hkstatus\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//#endregion Housekepping Section Master\r\nexport const GetHktypecombo = () => {\r\n const apiUrl = \"/HKStatusMaster/manage-hkstatus-type\";\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetLaundryItemMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/LaundryItemMaster/manage-laundry-item/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const AddEditLaundryItemMaster = (para) => {\r\n const apiUrl = \"/LaundryItemMaster/manage-laundry-item\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const GetLaundryCategoryMaster = (ClientSerNo) => {\r\n const apiUrl = \"/LaundryItemCategoryMaster/manage-laundry-item-category/\" + ClientSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const AddEditLaundryCategoryMaster = (para) => {\r\n const apiUrl = \"/LaundryItemCategoryMaster/manage-laundry-item-category\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//#region LaundryReturnInMaster\r\nexport const GetLaundryReturnInMaster = (ClientSerNo) => {\r\n const apiUrl = \"/LaundryReturnInMaster/manage-Laundry-Return-In-Master/\" + ClientSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetLaundryServiceMaster = (ClientSerNo) => {\r\n const apiUrl = \"/LaundryServiceMaster/manage-laundry-service/\" + ClientSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddEditLaundryServiceMaster = (para) => {\r\n const apiUrl = \"/LaundryServiceMaster/manage-laundry-service\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const AddEditLaundryMaster = (para) => {\r\n const apiUrl = \"/LaundryMaster/manage-laundry\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const AddEditLaundryReturnInMaster = (para) => {\r\n const apiUrl = \"/LaundryReturnInMaster/manage-Laundry-Return-In-Master\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//endregion\r\n//#region LaundryHotelServiceMaster\r\nexport const GetLaundryHotelServiceMaster = (ClientSerNo) => {\r\n const apiUrl = \"/LaundryHotelServiceMaster/manage-Laundry-Hotel-Service-Master/\" + ClientSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const AddEditLaundryHotelServiceMaster = (para) => {\r\n const apiUrl = \"/LaundryHotelServiceMaster/manage-Laundry-Hotel-Service-Master\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//endregion\r\n//#region LaundryHotelServiceMaster\r\nexport const GetLaundryVenderMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/LaundryVenderMaster/manage-Laundry-Vender-Master/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const AddEditLaundryVenderMaster = (para) => {\r\n const apiUrl = \"/LaundryVenderMaster/manage-Laundry-Vender-Master\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//endregion\r\nexport const GetLaundryMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/LaundryMaster/manage-laundry/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetLaundryItemRateMaster = (ClientSerNo, PropertySerNo, LaundryItemSerNo, VenderSerNo) => {\r\n const apiUrl = \"/LaundryItemRateMaster/manage-laundry-item-rate/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + LaundryItemSerNo + \"/\" + VenderSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const AddEditItemRateMaster = (para) => {\r\n const apiUrl = \"/LaundryItemRateMaster/manage-laundry-item-rate\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const GetHKServiceMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/HKServiceMaster/manage-hkService/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const AddEditHKServiceMaster = (para) => {\r\n const apiUrl = \"/HKServiceMaster/manage-hkService\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\n//#region Transaction\r\nexport const GetLaundryTransaction = (para) => {\r\n const apiUrl = \"/HouseKeeping/manage-laundry-transaction\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const GetLaundryItemList = (ClientSerNo, PropertySerNo, VenderSerNo, HotelServiceSerNo, ServiceSerNo) => {\r\n const apiUrl = \"/HouseKeeping/manage-laundryitem-list/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + VenderSerNo + \"/\" + HotelServiceSerNo + \"/\" + ServiceSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const validateReservationByRoomNo = (ClientSerNo, PropertySerNo, RoomNo) => {\r\n const apiUrl = \"/HouseKeeping/validate-reservation-by-RoomNo/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + RoomNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const PostLaundryTransaction = (para) => {\r\n const apiUrl = \"/HouseKeeping/post-laundry-transaction\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const GetLaundryBillDetail = (ClientSerNo, PropertySerNo, SerNo) => {\r\n const apiUrl = \"/HouseKeeping/manage-laundry-bill-detail/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + SerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const PostLaundrySettlement = (para) => {\r\n const apiUrl = \"/HouseKeeping/manage-laundry-settlement\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const GetLaundrySettlementList = (ClientSerNo, PropertySerNo, SerNo) => {\r\n const apiUrl = \"/HouseKeeping/manage-laundry-settlement/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + SerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetLaundryDetailBySerNo = (ClientSerNo, PropertySerNo, SerNo) => {\r\n const apiUrl = \"/HouseKeeping/manage-laundry-detail/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + SerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddLaundryInvoice = (ClientSerNo, PropertySerNo, SerNo) => {\r\n const apiUrl = \"/HouseKeeping/manage-laundry-invoice/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + SerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const PostLaundryTransactionToRoom = (ClientSerNo, PropertySerNo, SerNo, ReservationSerNo, IsTaxInclusive, UserID) => {\r\n const apiUrl = \"/Housekeeping/manage-laundry-postToRoom/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + SerNo + \"/\" + ReservationSerNo + \"/\" + IsTaxInclusive + \"/\" + UserID;\r\n return axios.get(apiUrl);\r\n}\r\n//#endregion\r\n\r\n//#region HK Management Page\r\nexport const GetHKManagementList = (para) => {\r\n const apiUrl = \"/HKManagementList/manage-HK-Management-list\";\r\n return axios.post(apiUrl, para)\r\n}\r\n\r\nexport const GetHKDetailByRoomSerNo = (ClientSerNo, PropertySerNo, RoomSerNo, Date) => {\r\n const apiUrl = \"/HKManagementList/manage-room-hk-details/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + RoomSerNo + \"/\" + Date;\r\n return axios.get(apiUrl)\r\n}\r\n\r\nexport const ValidateOOStatus = (ClientSerNo, PropertySerNo, RoomSerNo, StartDate, EndDate) => {\r\n const apiUrl = \"/HKManagementList/validate-room-for-out-of-order/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + RoomSerNo + \"/\" + StartDate + \"/\" + EndDate;\r\n return axios.get(apiUrl)\r\n}\r\n\r\nexport const ChangeHouseKeepingStatus = (para) => {\r\n const apiUrl = \"/HKManagementList/manage-house-keeping-status\";\r\n return axios.post(apiUrl, para)\r\n}\r\n//#endregion","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnModalPopup,\r\n useConfirm,\r\n InnTextarea\r\n} from \"../../../../component\";\r\nimport { GetReasonMaster } from \"../../../../services/generalService\";\r\nimport { POSVoidCheckDetail } from \"../../../../services/posbillingService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GuestPopUp } from \"./guestPopup\";\r\nimport { GetRateCodeMasterPOS } from \"../../../../services/posbillingService\";\r\nimport { GetReferenceMaster } from \"../../../../services/posbillingService\";\r\n\r\nexport function VoidCheckDetailPopup(props) {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const selectdata = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ]\r\n\r\n //#region default object\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n UserId: \"\",\r\n Password: \"\",\r\n RateSerNo: 0,\r\n ReasonSerNo: 0,\r\n CheckSerNo: props.para.CheckSerNo,\r\n ReferenceSerNo: 0,\r\n GuestName: \"\",\r\n GuestSerNo: 0,\r\n Remarks: \"\",\r\n IsVoidNew: props.para.IsShowRate == true ? true : false\r\n }\r\n\r\n const validObj = {\r\n UserId: \"\",\r\n Password: \"\",\r\n ReasonSerNo: \"\",\r\n ReferenceSerNo: \"\",\r\n GuestName: \"\",\r\n }\r\n //#endregion\r\n\r\n //#region state variable\r\n const [reasonMasterList, setReasonMasterList] = useState([]);\r\n const [rateMasterList, setRateMasterList] = useState([]);\r\n const [referenceList, setReferenceList] = useState([]);\r\n const [rateData, setRateData] = useState([]);\r\n const [voidCheckDetailObj, setVoidCheckDetailObj] = useState(defaultObj);\r\n const [voidCheckDetailValidation, setVoidCheckDetailValidation] = useState(validObj);\r\n const [IsComp, setIsComp] = useState(false);\r\n const [showGuestPopup, setShowGuestPopup] = useState(false);\r\n const [selectedGuest, setSelectedGuest] = useState({});\r\n //#endregion\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n GetReasonMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), voidCheckDetailObj.ReasonSerNo).then(d => {\r\n if (d.data && d.data.length > 0) {\r\n let tempList = [{ key: 0, value: \"Select\" }];\r\n d.data.filter(x => x.ReasonType === 'VOID').forEach(ele => {\r\n tempList.push({ key: parseInt(ele.ReasonSerNo), value: ele.Name })\r\n })\r\n setReasonMasterList(tempList);\r\n }\r\n });\r\n }, [])\r\n\r\n useEffect(() => {\r\n GetRateCodeMasterPOS(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n if (d.data && d.data.length > 0) {\r\n let rateList = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach(ele => {\r\n rateList.push({ key: parseInt(ele.RateSerNo), value: ele.Name });\r\n if (ele.IsBarRate === true) {\r\n setVoidCheckDetailObj(prev => ({ ...prev, RateSerNo: ele.RateSerNo }))\r\n }\r\n });\r\n setRateMasterList(rateList);\r\n }\r\n setRateData(d.data);\r\n });\r\n }, [])\r\n\r\n useEffect(() => {\r\n GetReferenceMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n if (d.data && d.data.length > 0) {\r\n let referenceList = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach(ele => {\r\n referenceList.push({ key: parseInt(ele.ReferenceSerNo), value: ele.Name });\r\n });\r\n setReferenceList(referenceList);\r\n }\r\n });\r\n }, [])\r\n //#endregion\r\n\r\n //#region functions\r\n const handleOnClose = (isHidePopup) => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.Onclose();\r\n props.handleOnclose(isHidePopup);\r\n }\r\n };\r\n\r\n const isValidData = () => {\r\n let valid = true;\r\n if (voidCheckDetailObj.UserId == \"\" || /\\s/g.test(voidCheckDetailObj.UserId)) {\r\n valid = false\r\n setVoidCheckDetailValidation(prev => ({ ...prev, UserId: \"Please provide a valid user name\" }));\r\n }\r\n if (voidCheckDetailObj.Password == \"\") {\r\n valid = false\r\n setVoidCheckDetailValidation(prev => ({ ...prev, Password: \"Please provide a valid password\" }));\r\n }\r\n if (voidCheckDetailObj.ReasonSerNo == 0) {\r\n valid = false\r\n setVoidCheckDetailValidation(prev => ({ ...prev, ReasonSerNo: \"Please select reason\" }));\r\n }\r\n return valid;\r\n }\r\n\r\n const isValidation = () => {\r\n let valid = true;\r\n let isDataValid = rateData.find(x => x.RateSerNo === voidCheckDetailObj.RateSerNo);\r\n if (isDataValid != undefined) {\r\n if (isDataValid.IsComplimentary) {\r\n if (voidCheckDetailObj.ReferenceSerNo == 0) {\r\n valid = false\r\n setVoidCheckDetailValidation(prev => ({ ...prev, ReferenceSerNo: \"Please select Reference\" }));\r\n }\r\n if (selectedGuest.GuestName == \"\") {\r\n valid = false\r\n setVoidCheckDetailValidation(prev => ({ ...prev, GuestName: \"Please provide a valid guest name\" }));\r\n }\r\n }\r\n }\r\n return valid;\r\n }\r\n\r\n const handleOnApply = () => {\r\n let isValid = isValidData();\r\n let dataValid = isValidation();\r\n if (isValid) {\r\n if (dataValid) {\r\n POSVoidCheckDetail(voidCheckDetailObj).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n //#region handleOnClose\r\n handleOnClose(false);\r\n //#endregion\r\n } else {\r\n alertFunction(d.data.Message);\r\n }\r\n })\r\n } else {\r\n alertFunction(\"Something went wrong.\");\r\n }\r\n } else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n //#endregion\r\n\r\n return (\r\n
\r\n handleOnClose()}\r\n >\r\n
\r\n
\r\n
\r\n

User Rights Confirmation

\r\n
\r\n
\r\n Apply\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Do you want void this selected Check Details ?

\r\n
\r\n
\r\n
\r\n {\r\n setVoidCheckDetailObj(prev => ({ ...prev, UserId: v }));\r\n setVoidCheckDetailValidation(prev => ({ ...prev, UserId: \"\" }))\r\n }}>\r\n User Name\r\n \r\n {\r\n setVoidCheckDetailObj(prev => ({ ...prev, Password: v }));\r\n setVoidCheckDetailValidation(prev => ({ ...prev, Password: \"\" }))\r\n }}>\r\n Password\r\n \r\n\r\n {props.para.IsShowRate ?\r\n
\r\n {\r\n let temp = rateData.find(x => x.RateSerNo === item.key);\r\n if (temp != undefined) {\r\n setIsComp(temp.IsComplimentary)\r\n } else {\r\n setIsComp(false);\r\n }\r\n setVoidCheckDetailObj(prev => ({ ...prev, RateSerNo: item.key }));\r\n }}\r\n >\r\n
\r\n :\r\n null}\r\n {IsComp ?\r\n <>\r\n
\r\n {\r\n setVoidCheckDetailObj(prev => ({ ...prev, ReferenceSerNo: item.key }));\r\n setVoidCheckDetailValidation(prev => ({ ...prev, ReferenceSerNo: \"\" }));\r\n }}\r\n >\r\n
\r\n
{\r\n // setShowGuestPopup(true);\r\n // }}\r\n >\r\n {\r\n setShowGuestPopup(!showGuestPopup)\r\n }}\r\n >\r\n Guest Name\r\n \r\n {\r\n setShowGuestPopup(!showGuestPopup)\r\n }}\r\n >\r\n \r\n {/* */}\r\n \r\n
\r\n \r\n :\r\n null}\r\n
\r\n {\r\n setVoidCheckDetailObj(prev => ({ ...prev, ReasonSerNo: item.key }));\r\n setVoidCheckDetailValidation(prev => ({ ...prev, ReasonSerNo: \"\" }))\r\n }}\r\n >\r\n
\r\n {\r\n setVoidCheckDetailObj(prev => ({ ...prev, Remarks: v }));\r\n }}>\r\n Remarks\r\n \r\n
\r\n
\r\n
\r\n \r\n {showGuestPopup ?\r\n { setShowGuestPopup(false) }}\r\n OnSelect={(v) => {\r\n console.log(\"Select v>>\", v);\r\n setSelectedGuest(v);\r\n setShowGuestPopup(false);\r\n setVoidCheckDetailObj(prev => ({\r\n ...prev, GuestSerNo: v.ProfileSerNo\r\n }))\r\n }}\r\n />\r\n :\r\n null}\r\n
\r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnTableGrid,\r\n InnModalPopup,\r\n useConfirm,\r\n InnTextarea\r\n} from \"../../../../component\";\r\nimport { GetTransactionMaster, GetPropertyParameterByKeys } from \"../../../../services/reservationService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetCreditCardMachineMaster } from \"../../../../services/posbillingService\";\r\nimport { GetReasonMaster } from \"../../../../services/generalService\";\r\nimport { ReSettlePOSBill } from \"../../../../services/posbillingService\";\r\nimport { CompanyPopUp } from \"./companyPopup\";\r\nimport { RoomSettlementPopUp } from \"./roomSettlementPopup\";\r\n\r\nexport function ReSettlePOSBillPopup(props) {\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const selectdata = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n\r\n const optBtnData = [\r\n { key: \"Preview Check\", value: \"Preview Check\" },\r\n { key: \"Print Check\", value: \"Print Check\" },\r\n { key: \"Void Check\", value: \"Void Check\" },\r\n { key: \"Void & Revert\", value: \"Void & Revert\" },\r\n ];\r\n\r\n const ResettlebillHeader = [\r\n { key: \"Payment\", value: \"Payment\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Amount\", value: \"Amount\", type: \"txt\", sorting: \"N\", align: 'center' },\r\n\r\n ];\r\n\r\n const [filterDataResettlebill, setfilterDataResettlebill] = useState([\r\n { \r\n Payment: props.para.AmountPayment.ItemDesc,\r\n Amount: props.para.AmountPayment.SettleAmount\r\n }\r\n ]);\r\n\r\n const actionPopup = (item) => {\r\n if (item.key == \"Preview Check\") {\r\n // history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n //setShowCheckPreviewModal(true);\r\n console.log(\"Action pupup\");\r\n }\r\n }\r\n\r\n const [ChequeNoLabel, setChequeNoLabel] = useState(\"Charge Slip\");\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n CheckSerNo: props.para.Data.CheckSerNo,\r\n SettleSerNo: props.para.AmountPayment.SetteleSerNo,\r\n oldTransactionSerNo: props.para.AmountPayment.TransactionSerNo,\r\n newTransactionSerNo: 0,\r\n CompanyProfileSerNo: 0,\r\n ReasonSerNo: 0,\r\n Remarks: \"\",\r\n SlipNo: \"\",\r\n NewAmount: parseFloat(props.para.AmountPayment.SettleAmount),\r\n ReservationSerNo: props.para.Data.ReservationSerNo,\r\n UserID: props.para.Data.UserID,\r\n IsAllAmtRoomSettle: false,\r\n\r\n RoomNo: \"\",\r\n GuestName: \"\",\r\n CardMachine: 0,\r\n CompanyName: \"\",\r\n RoomDetailSelect: \"\"\r\n }\r\n const validObj = {\r\n newTransactionSerNo: \"\",\r\n NewAmount: \"\",\r\n SlipNo: \"\",\r\n //CardMachine: \"\",\r\n ReasonSerNo: \"\",\r\n\r\n ReservationSerNo: \"\",\r\n RoomNo: \"\",\r\n GuestName: \"\",\r\n Remarks: \"\",\r\n CompanyName: \"\",\r\n RoomDetailSelect: \"\"\r\n }\r\n //#region state variable\r\n const [reSettlePOSBillObj, setReSettlePOSBillObj] = useState(defaultObj);\r\n const [reSettlePOSBillValidation, setReSettlePOSBillValidation] = useState(validObj);\r\n const [paymentMethods, setPaymentMethods] = useState([]);\r\n const [selectedPaymentMethod, setSelectedPaymentMethod] = useState('');\r\n const [listnewTransactionSerNo, setListnewTransactionSerNo] = useState([]);\r\n const [IsUseCreditCardMachine, setIsUseCreditCardMachine] = useState(false);\r\n const [ocCreditCardMachine, setOcCreditCardMachine] = useState([]); \r\n const [reasonMasterList, setReasonMasterList] = useState([]);\r\n const [showCompanyPopUp, setShowCompanyPopUp] = useState(false);\r\n const [showRoomSettlementPopUp, setShowRoomSettlementPopUp] = useState(false);\r\n const [selectedRoom, setSelectedRoom] = useState({});\r\n const [roomSettleValue, setRoomSettleValue] = useState(\"\");\r\n const [selectedCompany, setSelectedCompany] = useState({});\r\n const [comapnyValue, setComapanyValue] = useState(\"\");\r\n //#endregion\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n GetTransactionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"P\", \"ALL\").then(d => {\r\n setPaymentMethods(d.data);\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.filter(x => x.Module === \"P\" || x.Module === \"G\").forEach(x => {\r\n temp.push({ key: x.TransactionSerNo, value: x.Name });\r\n });\r\n setListnewTransactionSerNo(temp);\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), [\"IsUseCreditCardMachine\"]).then((d) => {\r\n setIsUseCreditCardMachine(d.data[0].value);\r\n });\r\n }, [])\r\n\r\n useEffect(() => {\r\n GetCreditCardMachineMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n let tempCardMachine = [{ key: 0, value: \"Select\" }];\r\n if (d.data != undefined) {\r\n d.data.forEach(ele => {\r\n tempCardMachine.push({ key: ele.CardMachineSerNo, value: ele.Name })\r\n })\r\n setOcCreditCardMachine(tempCardMachine); \r\n }\r\n });\r\n }, [])\r\n\r\n useEffect(() => {\r\n GetReasonMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), '0').then(d => {\r\n if (d.data && d.data.length > 0) {\r\n let tempList = [{ key: 0, value: \"Select\" }];\r\n d.data.filter(x => x.ReasonType === 'RESET').forEach(ele => {\r\n tempList.push({ key: parseInt(ele.ReasonSerNo), value: ele.Name });\r\n })\r\n setReasonMasterList(tempList);\r\n }\r\n });\r\n }, [])\r\n //#endregion\r\n\r\n //#region function \r\n const isValid = () => {\r\n let valid = true;\r\n if (reSettlePOSBillObj.newTransactionSerNo == 0) {\r\n valid = false;\r\n setReSettlePOSBillValidation(prev => ({ ...prev, newTransactionSerNo: \"Please select paymode\" }));\r\n }\r\n if (reSettlePOSBillObj.NewAmount === \"\" || isNaN(+reSettlePOSBillObj.NewAmount) || /\\s/g.test(reSettlePOSBillObj.NewAmount) || reSettlePOSBillObj.NewAmount < 0) {\r\n valid = false;\r\n setReSettlePOSBillValidation(prev => ({ ...prev, NewAmount: \"Please provide valid amount\" }));\r\n }\r\n // if (reSettlePOSBillObj.CardMachine == 0) {\r\n // valid = false;\r\n // setReSettlePOSBillValidation(prev => ({ ...prev, CardMachine: \"Please select card machine\" }));\r\n // }\r\n if (reSettlePOSBillObj.ReasonSerNo == 0) {\r\n valid = false;\r\n setReSettlePOSBillValidation(prev => ({ ...prev, ReasonSerNo: \"Please select reason\" }));\r\n }\r\n if (reSettlePOSBillObj.Remarks == \"\") {\r\n valid = false;\r\n setReSettlePOSBillValidation(prev => ({ ...prev, Remarks: \"Please provide valid remark\" }));\r\n }\r\n return valid;\r\n }\r\n\r\n const isValidation = () => {\r\n let valid = true; \r\n if (selectedPaymentMethod === \"\") {\r\n valid = false;\r\n setReSettlePOSBillValidation(prev => ({ ...prev, SlipNo: \"Please provide valid charge slip\" }));\r\n }\r\n if (selectedPaymentMethod === \"CH\") {\r\n if (reSettlePOSBillObj.SlipNo == \"\") {\r\n valid = false;\r\n setReSettlePOSBillValidation(prev => ({ ...prev, SlipNo: \"Please provide valid chequeno\" }));\r\n }\r\n }\r\n if (selectedPaymentMethod === \"CD\") {\r\n if (reSettlePOSBillObj.SlipNo == \"\") {\r\n valid = false;\r\n setReSettlePOSBillValidation(prev => ({ ...prev, SlipNo: \"Please provide valid slip number\" }));\r\n }\r\n }\r\n return valid;\r\n }\r\n\r\n const handleOnSaveClick = () => {\r\n let isValidData = isValid();\r\n let isValidationData = isValidation();\r\n if (isValidData) {\r\n if (isValidationData) {\r\n ReSettlePOSBill(reSettlePOSBillObj).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n props.Onclose();\r\n } else {\r\n alertFunction(d.data.Message);\r\n }\r\n })\r\n } else {\r\n alertFunction(\"Something went wrong.\")\r\n }\r\n } else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n //#endregion\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Re-Settle POS Bill

\r\n
\r\n
\r\n Save\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Outlet
\r\n
{props.para.Data.OutletName}
\r\n {/* {props.para.Outlet.value} */}\r\n
\r\n
\r\n
\r\n
\r\n
Check No
\r\n
{props.para.Data.CheckSerNo}
\r\n
\r\n
\r\n
\r\n
\r\n
Table No.
\r\n
{props.para.Data.TableName}
\r\n
\r\n
\r\n
\r\n
\r\n
User
\r\n
{props.para.Data.UserID}
\r\n
\r\n
\r\n\r\n {\r\n console.log(items);\r\n //setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n //setReservationStatus(v);\r\n //setShowGuestPopup(true);\r\n }}\r\n fixedHeaderNo={2}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n actionPopup(item)\r\n //history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n //setSelectedReservation(rowdata);\r\n // handleRmAssignmentData([rowdata]);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {\r\n let temp = paymentMethods.find(x => x.TransactionSerNo === item.key);\r\n if (temp !== undefined) {\r\n setSelectedPaymentMethod(temp.PaymentMethodType)\r\n\r\n if (temp.PaymentMethodType != 'RS') {\r\n setRoomSettleValue(\"\")\r\n }\r\n if (temp.PaymentMethodType != 'BC') {\r\n setComapanyValue(\"\")\r\n }\r\n\r\n if (temp.PaymentMethodType == \"CH\") {\r\n setChequeNoLabel(\"Cheque No\");\r\n if (reSettlePOSBillValidation.SlipNo != \"\") {\r\n setReSettlePOSBillValidation(prev => ({ ...prev, SlipNo: \"\" }))\r\n }\r\n }\r\n else if (temp.PaymentMethodType == \"CD\") {\r\n if (reSettlePOSBillValidation.SlipNo != \"\") {\r\n setReSettlePOSBillValidation(prev => ({ ...prev, SlipNo: \"\" }))\r\n }\r\n setChequeNoLabel(\"Slip No\");\r\n } else {\r\n setChequeNoLabel(\"Charge Slip\");\r\n if (reSettlePOSBillValidation.SlipNo != \"\") {\r\n setReSettlePOSBillValidation(prev => ({ ...prev, SlipNo: \"\" }))\r\n }\r\n }\r\n } else {\r\n setChequeNoLabel(\"Charge Slip\");\r\n }\r\n setReSettlePOSBillObj(prev => ({ ...prev, newTransactionSerNo: item.key }));\r\n setReSettlePOSBillValidation(prev => ({ ...prev, newTransactionSerNo: \"\", CompanyName: \"\", RoomDetailSelect: \"\" }));\r\n }}\r\n >\r\n
\r\n\r\n {\r\n if (!isNaN(+v) && parseFloat(v) >= 0) {\r\n setReSettlePOSBillObj(prev => ({ ...prev, NewAmount: parseFloat(v) }));\r\n setReSettlePOSBillValidation(prev => ({ ...prev, NewAmount: \"\" }));\r\n } else {\r\n setReSettlePOSBillValidation(prev => ({ ...prev, NewAmount: \"Please provide valid amount\" }));\r\n setReSettlePOSBillObj(prev => ({ ...prev, NewAmount: v }));\r\n }\r\n }}>Amount\r\n\r\n {\r\n selectedPaymentMethod !== \"BC\" && selectedPaymentMethod !== \"RS\" ?\r\n {\r\n setReSettlePOSBillObj(prev => ({ ...prev, SlipNo: v }));\r\n setReSettlePOSBillValidation(prev => ({ ...prev, SlipNo: \"\" }));\r\n }}>{ChequeNoLabel}\r\n :\r\n <>\r\n }\r\n\r\n {selectedPaymentMethod == \"BC\" ?\r\n { setShowCompanyPopUp(true) }}\r\n onBlur={(e) => {\r\n if (e.target.value != undefined) {\r\n if (e.target.value.trim() === \"\") {\r\n setComapanyValue(\"\")\r\n }\r\n }\r\n }}\r\n >Company Profile\r\n \r\n :\r\n null}\r\n {selectedPaymentMethod == \"RS\" ?\r\n { setShowRoomSettlementPopUp(true) }}\r\n onBlur={(e) => {\r\n if (e.target.value != undefined) {\r\n if (e.target.value.trim() === \"\") {\r\n setRoomSettleValue(\"\")\r\n }\r\n }\r\n }}\r\n >Room settlement\r\n \r\n :\r\n null}\r\n\r\n {\r\n IsUseCreditCardMachine == 1 && selectedPaymentMethod == \"CD\" ?\r\n
\r\n { \r\n setReSettlePOSBillObj(prev => ({ ...prev, CardMachine: item.key }));\r\n //setReSettlePOSBillValidation(prev => ({ ...prev, CardMachine: \"\" }));\r\n }}\r\n >\r\n
\r\n : <>\r\n }\r\n\r\n
\r\n {\r\n setReSettlePOSBillObj(prev => ({ ...prev, ReasonSerNo: item.key }));\r\n setReSettlePOSBillValidation(prev => ({ ...prev, ReasonSerNo: \"\" }));\r\n }}\r\n >\r\n
\r\n {\r\n setReSettlePOSBillObj(prev => ({ ...prev, Remarks: v }));\r\n }}>Remarks\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n {\r\n showCompanyPopUp ?\r\n {\r\n setSelectedCompany(v);\r\n let temp = \"\"\r\n if (v.CompanyName != undefined) {\r\n temp += v.CompanyName\r\n }\r\n setComapanyValue(temp);\r\n setShowCompanyPopUp(false);\r\n setReSettlePOSBillObj(prev => ({ ...prev, CompanyName: v.CompanyName, CompanyProfileSerNo: v.ProfileSerNo, SlipNo: \"0\" }));\r\n }}\r\n handleOnclose={() => { setShowCompanyPopUp(false) }}\r\n >\r\n \r\n :\r\n null\r\n }\r\n\r\n {\r\n showRoomSettlementPopUp ?\r\n { setShowRoomSettlementPopUp(false) }}\r\n handleSaveOnClose={(v) => {\r\n setSelectedRoom(v);\r\n let temp = \"\"\r\n if (v.ReservationSerNo != undefined) {\r\n temp += v.ReservationSerNo + ' | '\r\n }\r\n if (v.RoomNo != undefined) {\r\n temp += v.RoomNo + ' | '\r\n }\r\n if (v.GuestName != undefined) {\r\n temp += v.GuestName\r\n }\r\n setRoomSettleValue(temp)\r\n setShowRoomSettlementPopUp(false);\r\n setReSettlePOSBillObj(prev => ({ ...prev, ReservationSerNo: v.ReservationSerNo, RoomNo: v.RoomNo, GuestName: v.GuestName, SlipNo: \"0\" }))\r\n }\r\n }\r\n >\r\n \r\n :\r\n null\r\n }\r\n
\r\n )\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n useConfirm,\r\n InnTableGrid,\r\n InnModalPopup,\r\n} from \"../../../../component\";\r\nimport moment from \"moment\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { posCollection } from \"../../../../reducer/posSlice\";\r\nimport { GetPOSInvoiceCheckHistoryDetail } from \"../../../../services/posbillingService\";\r\nimport { VoidCheckDetailPopup } from \"./voidCheckDetailPopup\";\r\nimport { ReSettlePOSBillPopup } from \"./reSettlePOSBill\";\r\n\r\nexport function CheckHistoryPreviewPopup(props) {\r\n const currUser = useSelector(currentUser);\r\n const dispatch = useDispatch();\r\n const posData = useSelector(posCollection);\r\n const [showCheckPreviewModal, setShowCheckPreviewModal] = useState(false);\r\n const [reservationInfoData, setReservationInfoData] = useState({});\r\n const [isShowVoidCheckDetails, setIsShowVoidCheckDetails] = useState(\r\n props.isHidePopup != undefined ? props.isHidePopup : false\r\n );\r\n const [IsTrue, setIsTrue] = useState(false);\r\n const [showReSettlePOSBillPopup, setShowReSettlePOSBillModal] =\r\n useState(false);\r\n const [reSettlePOSBill, setReSettlePOSBill] = useState({});\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const Checkpreview1Header = [\r\n { key: \"Item Name\", value: \"ItemName\", type: \"txt\", sorting: \"Y\" },\r\n {\r\n key: \"QTY.\",\r\n value: \"ItemQty\",\r\n type: \"txt\",\r\n sorting: \"Y\",\r\n align: \"center\",\r\n },\r\n {\r\n key: \"Rate\",\r\n value: \"ItemRate\",\r\n type: \"txt\",\r\n sorting: \"Y\",\r\n align: \"center\",\r\n },\r\n {\r\n key: \"Amount\",\r\n value: \"Gross\",\r\n type: \"txt\",\r\n sorting: \"N\",\r\n align: \"right\",\r\n },\r\n ];\r\n\r\n const optBtnData = [\r\n { key: \"Preview Check\", value: \"Preview Check\" },\r\n { key: \"Print Check\", value: \"Print Check\" },\r\n { key: \"Void Check\", value: \"Void Check\" },\r\n { key: \"Void & Revert\", value: \"Void & Revert\" },\r\n ];\r\n\r\n const Checkpreview3Header = [\r\n { key: \"Date\", value: \"SettleDate\", type: \"txt\", sorting: \"Y\" },\r\n {\r\n key: \"Complimentary\",\r\n value: \"ItemDesc\",\r\n type: \"txt\",\r\n sorting: \"Y\",\r\n align: \"center\",\r\n },\r\n {\r\n key: \"Amount\",\r\n value: \"SettleAmount\",\r\n type: \"txt\",\r\n sorting: \"Y\",\r\n align: \"right\",\r\n },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n const Checkpreview2Header = [\r\n { key: \"Add\", value: \"ItemDesc\", type: \"txt\", sorting: \"Y\" },\r\n {\r\n key: \"Amount\",\r\n value: \"TaxAmount\",\r\n type: \"txt\",\r\n sorting: \"Y\",\r\n align: \"right\",\r\n },\r\n ];\r\n\r\n const checkpreviewdata = [{ key: \"Re-settle Bill\", value: \"Re-settle Bill\" }];\r\n const [posItemDetail, setPOSItemDetail] = useState({});\r\n const [posChargeDetail, setPOSChargeDetail] = useState({});\r\n const [posSettlementDetail, setPOSSettlementDetail] = useState([]);\r\n const [posKOTDetail, setPOSKOTDetail] = useState([]);\r\n const [previewList, setPreviewList] = useState({});\r\n const [posHeaderDetail, setPosHeaderDetail] = useState({});\r\n\r\n const actionPopup = (item) => {\r\n if (item.key == \"Preview Check\") {\r\n // history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n setShowCheckPreviewModal(true);\r\n }\r\n };\r\n const handleOnclose = (flag) => {\r\n if (props.handleOnclose == undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(flag);\r\n }\r\n };\r\n // const handlePopup = (flag) => {\r\n // props.handlePopup(flag)\r\n // }\r\n\r\n const fillTableDataGrid = () => {\r\n GetPOSInvoiceCheckHistoryDetail(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n parseInt(props.para.CheckSerNo)\r\n ).then((d) => {\r\n setPreviewList(d.data);\r\n //console.log(\"DDDDd\", d.data);\r\n setPosHeaderDetail(d.data.InvoiceHeaderDetail);\r\n\r\n d.data.InvoiceItemDetail.forEach((x) => {\r\n x.ItemRate = x.ItemRate.toFixed(2);\r\n });\r\n let TotalData = {};\r\n if (d.data.InvoiceItemDetail != undefined) {\r\n let TotalAmount = 0;\r\n d.data.InvoiceItemDetail.forEach((element) => {\r\n TotalAmount = TotalAmount + element.Gross;\r\n });\r\n let TotalQuanty = 0;\r\n d.data.InvoiceItemDetail.forEach((element) => {\r\n TotalQuanty = TotalQuanty + element.ItemQty;\r\n });\r\n\r\n d.data.InvoiceItemDetail.forEach((x) => {\r\n x.Gross = x.Gross.toFixed(2);\r\n });\r\n TotalData = {\r\n TotalA: TotalAmount,\r\n TotalQ: TotalQuanty,\r\n data: d.data.InvoiceItemDetail,\r\n };\r\n setPOSItemDetail(TotalData);\r\n setReservationInfoData(TotalData);\r\n }\r\n if (d.data.InvoiceChargeDetail != undefined) {\r\n let TotalChargeData = {};\r\n let TotalChargeAmount = 0;\r\n d.data.InvoiceChargeDetail.forEach((element) => {\r\n TotalChargeAmount = TotalChargeAmount + element.TaxAmount;\r\n });\r\n //console.log(\"Ammm\", TotalData.TotalA);\r\n TotalChargeData = {\r\n TotalAmount: TotalChargeAmount + TotalData.TotalA,\r\n Data: d.data.InvoiceChargeDetail,\r\n };\r\n d.data.InvoiceChargeDetail.forEach((x) => {\r\n x.TaxAmount = x.TaxAmount.toFixed(2);\r\n });\r\n setPOSChargeDetail(TotalChargeData);\r\n }\r\n d.data.InvoiceSettlementDetail.forEach((x) => {\r\n x.SettleAmount = x.SettleAmount.toFixed(2);\r\n });\r\n setPOSSettlementDetail(d.data.InvoiceSettlementDetail);\r\n\r\n const uniqueKOTNo = [];\r\n d.data.InvoiceKOTDetail.map((d) => {\r\n if (uniqueKOTNo.indexOf(d.KOTNo) === -1) {\r\n uniqueKOTNo.push(d.KOTNo);\r\n //console.log(\"uniqueKOTNo\", uniqueKOTNo);\r\n }\r\n });\r\n const KOTWiseData = [];\r\n for (let i = 0; i < uniqueKOTNo.length; i++) {\r\n let dateFilterData = d.data.InvoiceKOTDetail.filter(\r\n (item) => item.KOTNo == uniqueKOTNo[i]\r\n );\r\n let date = \"\";\r\n if (dateFilterData.length > 0) {\r\n date = dateFilterData[0].KOTDatetime;\r\n }\r\n let TotalQuanty = 0;\r\n dateFilterData.forEach((element) => {\r\n TotalQuanty = TotalQuanty + element.ItemQty;\r\n });\r\n KOTWiseData.push({\r\n KOTNo: uniqueKOTNo[i],\r\n KOTDatetime: date,\r\n KOTQuanty: TotalQuanty,\r\n data: dateFilterData,\r\n });\r\n }\r\n //console.log(\"HHH\", KOTWiseData);\r\n setPOSKOTDetail(KOTWiseData);\r\n });\r\n };\r\n useEffect(() => {\r\n fillTableDataGrid();\r\n }, []);\r\n \r\n return (\r\n handleOnclose()}\r\n >\r\n
\r\n
\r\n
\r\n

Preview Check

\r\n
\r\n
\r\n {\r\n setIsTrue(true);\r\n if (\r\n posHeaderDetail.cnlRerenceSerNo == 0 &&\r\n posHeaderDetail.IsVoidBill == 0\r\n ) {\r\n setIsShowVoidCheckDetails(true);\r\n } else {\r\n alertFunction(\"Bill Already Void.\");\r\n }\r\n }}\r\n >\r\n Void & Revert\r\n \r\n {\r\n setIsTrue(false);\r\n if (\r\n posHeaderDetail.cnlRerenceSerNo == 0 &&\r\n posHeaderDetail.IsVoidBill == 0\r\n ) {\r\n setIsShowVoidCheckDetails(true);\r\n } else {\r\n alertFunction(\"Bill Already Void.\");\r\n }\r\n }}\r\n >\r\n Void Check\r\n \r\n Print Check\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Bill No\r\n \r\n {posHeaderDetail.BillNo}\r\n \r\n
\r\n
\r\n Check No\r\n \r\n {posHeaderDetail.CheckSerNo}\r\n \r\n
\r\n
\r\n Bill Date\r\n \r\n {moment(new Date(posHeaderDetail.BusinessDate)).format(\r\n \"DD-MMM-YYYY\"\r\n )}\r\n \r\n
\r\n
\r\n No. Of Person\r\n \r\n {posHeaderDetail.NoOfPax}\r\n \r\n
\r\n
\r\n Server\r\n \r\n {posHeaderDetail.ServerName}\r\n \r\n
\r\n
\r\n Guest\r\n \r\n {posHeaderDetail.GuestName}\r\n \r\n
\r\n
\r\n Company\r\n \r\n {posHeaderDetail.CompanyName}\r\n \r\n
\r\n {/* {posHeaderDetail.GuestName} */}\r\n {/* \r\n {posHeaderDetail.CompanyName}\r\n */}\r\n
\r\n Tax Exemption\r\n \r\n {posHeaderDetail.TaxExamption}\r\n \r\n
\r\n
\r\n Rate Group\r\n \r\n {posHeaderDetail.RateName}\r\n \r\n
\r\n
\r\n Nationality\r\n INDIA\r\n
\r\n
\r\n Discount\r\n \r\n {posHeaderDetail.DiscoutAmt}\r\n \r\n
\r\n
\r\n Comp. Ref.\r\n Sales & Marketing\r\n
\r\n
\r\n Cashier/User\r\n \r\n {posHeaderDetail.UserID}\r\n \r\n
\r\n
\r\n Shift\r\n 1\r\n
\r\n
\r\n Check Open Time\r\n \r\n {posHeaderDetail.OpeningTime}\r\n \r\n
\r\n
\r\n Check Closing Time\r\n \r\n {posHeaderDetail.ClosingTime}\r\n \r\n
\r\n
\r\n Table/Room No.\r\n \r\n {posHeaderDetail.TableName}\r\n \r\n
\r\n
\r\n Remark\r\n \r\n {posHeaderDetail.Remarks}\r\n \r\n
\r\n
\r\n Folio Detail\r\n \r\n {posHeaderDetail.ReservationSerNo}\r\n \r\n
\r\n
\r\n Company on Folio\r\n \r\n {posHeaderDetail.CompanyOnCheck}\r\n \r\n
\r\n
\r\n
\r\n
\r\n {\r\n console.log(items);\r\n //setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n //setReservationStatus(v);\r\n //setShowGuestPopup(true);\r\n }}\r\n fixedHeaderNo={2}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n actionPopup(item);\r\n //history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n //setSelectedReservation(rowdata);\r\n // handleRmAssignmentData([rowdata]);\r\n }}\r\n handleSortClick={(sn, st) => { }}\r\n >\r\n
\r\n
\r\n
QTY. Total : {posItemDetail.TotalQ}
\r\n
Sub Total : {posItemDetail.TotalA?.toFixed(2)}
\r\n
\r\n
\r\n {\r\n console.log(items);\r\n //setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n //setReservationStatus(v);\r\n //setShowGuestPopup(true);\r\n }}\r\n fixedHeaderNo={2}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n actionPopup(item);\r\n //history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n //setSelectedReservation(rowdata);\r\n // handleRmAssignmentData([rowdata]);\r\n }}\r\n handleSortClick={(sn, st) => { }}\r\n >\r\n
\r\n
\r\n
\r\n
Net Total : {posChargeDetail.TotalAmount?.toFixed(2)}
\r\n
\r\n
\r\n {\r\n console.log(items);\r\n //setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n //setReservationStatus(v);\r\n //setShowGuestPopup(true);\r\n }}\r\n fixedHeaderNo={2}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={checkpreviewdata}\r\n optClick={(item, d) => {\r\n if (\r\n posHeaderDetail.cnlRerenceSerNo == 0 &&\r\n posHeaderDetail.IsVoidBill == 0\r\n ) {\r\n if (item.key == \"Re-settle Bill\") {\r\n if (\r\n reSettlePOSBill.SettleDate == props.param //BussinessDate\r\n ) {\r\n setShowReSettlePOSBillModal(true);\r\n } else {\r\n alertFunction(\"Back dated check not allowed to resettle.\");\r\n }\r\n }\r\n } else {\r\n alertFunction(\"Bill Already Void.\");\r\n }\r\n //history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n setReSettlePOSBill(rowdata);\r\n //setSelectedReservation(rowdata);\r\n // handleRmAssignmentData([rowdata]);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n console.log(\"sn, st>>\", sn, st);\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Order DescriptionQTY.
\r\n
\r\n {posKOTDetail.map((x) => {\r\n return (\r\n <>\r\n
\r\n KOT No. {x.KOTNo}  {x.KOTDatetime}\r\n   (\r\n {x.KOTQuanty} Items)\r\n
\r\n
\r\n
\r\n \r\n \r\n {x.data.map((item, index) => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n
{item.Name}{item.ItemQty}
\r\n
\r\n
\r\n \r\n );\r\n })}\r\n
\r\n
\r\n
\r\n {isShowVoidCheckDetails ? (\r\n {\r\n if (flag !== undefined) {\r\n setIsShowVoidCheckDetails(false);\r\n handleOnclose();\r\n } else {\r\n setIsShowVoidCheckDetails(false);\r\n }\r\n }}\r\n Onclose={() => setIsShowVoidCheckDetails(false)}\r\n >\r\n ) : (\r\n <>\r\n )}\r\n {showReSettlePOSBillPopup ? (\r\n setShowReSettlePOSBillModal(false)}\r\n >\r\n ) : (\r\n <>\r\n )}\r\n \r\n );\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnLoader,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnSwitch,\r\n InnKeyboard\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from 'react-redux';\r\nimport { AddProfileMaster } from \"../../../../services/reservationService\";\r\nimport { GuestPopUp } from \"./guestPopup\";\r\n\r\nexport function AddCompanyPopUp(props) {\r\n const currUser = useSelector(currentUser);\r\n const [showGuestModal, setShowGuestModal] = useState(false);\r\n const [profileObj, setProfileObj] = useState({\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"ProfileType\": props.para.ProfileType,\r\n \"TitleSerNo\": 0,\r\n \"FirstName\": \"\",\r\n \"MiddleName\": \"\",\r\n \"LastName\": \"\",\r\n \"FullName\": \"\",\r\n \"GSTNo\": \"\",\r\n \"IATANo\": \"\",\r\n \"Mode\": \"ADD\",\r\n \"ProfileCommunication\": {\r\n \"CommunicationTypeSerNo\": 0,\r\n \"Mobile\": \"\",\r\n \"Email\": \"\",\r\n \"Landline\": \"\",\r\n \"IsPrimary\": true\r\n },\r\n \"ProfileAddress\": {\r\n \"ProfileAddressTypeSerNo\": 0,\r\n \"CountrySerNo\": 0,\r\n \"StateSerNo\": 0,\r\n \"CitySerNo\": 0,\r\n \"PostCode\": \"\",\r\n \"Street\": \"\",\r\n \"IsPrimary\": true\r\n },\r\n \"ProfileContactDetail\": {\r\n \"ContactProfileSerNo\": 0,\r\n \"Designation\": \"\",\r\n \"IsPrimary\": true,\r\n \"Name\": \"\"\r\n }\r\n });\r\n const [showKeyBoard, setShowKeyBoard] = useState(false);\r\n const [searchInput, setSearchInput] = useState(\"\");\r\n const [flagClick, setFlagClick] = useState(\"\");\r\n\r\n //#endregion State variable\r\n const selectData = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n //#region Events\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n }\r\n const handleOnGuestSelection = (g) => {\r\n let temp = profileObj;\r\n temp.ProfileContactDetail.ContactProfileSerNo = g.ProfileSerNo;\r\n temp.ProfileContactDetail.Name = g.GuestName;\r\n temp.ProfileCommunication.Mobile = g.Mobile;\r\n temp.ProfileCommunication.Email = g.Email;\r\n setProfileObj(temp);\r\n setShowGuestModal(false);\r\n }\r\n const handleOnSaveClick = () => {\r\n AddProfileMaster(profileObj).then(d => {\r\n if (d.data.result.Code == \"200\") {\r\n alert(\"Profile is created successfully.\")\r\n if (props.OnSave != undefined) {\r\n props.OnSave(d.data.result.ReturnValue);\r\n }\r\n } else {\r\n alert(\"Something went wrong, please try again later.\")\r\n }\r\n })\r\n }\r\n //#endregion Events\r\n\r\n const nameClick = () => {\r\n setFlagClick(\"name\");\r\n setSearchInput(\"\");\r\n setShowKeyBoard(true);\r\n };\r\n const identificationNo1Click = () => {\r\n setFlagClick(\"ind1\");\r\n setSearchInput(\"\");\r\n setShowKeyBoard(true);\r\n };\r\n const identificationNo2Click = () => {\r\n setFlagClick(\"ind2\");\r\n setSearchInput(\"\");\r\n setShowKeyBoard(true);\r\n };\r\n\r\n useEffect(() => {\r\n if (flagClick == \"name\") {\r\n setProfileObj(prev => ({ ...prev, FullName: searchInput }));\r\n } else if (flagClick == \"ind1\") {\r\n\r\n } else if (flagClick == \"ind2\") {\r\n\r\n }\r\n }, [searchInput]);\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n

Add {props.para.ProfileType == \"CO\" ? \"Company\" : \"Agent\"}

\r\n
\r\n
\r\n \r\n Save\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n { setProfileObj(prev => ({ ...prev, FullName: v })) }}\r\n className=\"form-group\"\r\n onClick={nameClick}>{props.para.ProfileType == \"CO\" ? \"Company\" : \"Agent\"} Name*\r\n
\r\n \r\n
\r\n Identification No.\r\n
\r\n
\r\n Primary\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n Identification No.\r\n
\r\n
\r\n Primary\r\n \r\n
\r\n
\r\n setShowGuestModal(true)} className=\"form-group\">Contact Name\r\n
\r\n
\r\n Mobile\r\n Email\r\n
\r\n
\r\n
\r\n {showKeyBoard ?\r\n {\r\n let tempStr = searchInput;\r\n if (isBackSpace) {\r\n tempStr = v;\r\n }\r\n else {\r\n tempStr += v;\r\n }\r\n setSearchInput(tempStr);\r\n }}\r\n onEscape={() => {\r\n setShowKeyBoard(false);\r\n }}\r\n >\r\n : null\r\n }\r\n
\r\n
\r\n {\r\n showGuestModal ?\r\n setShowGuestModal(false)}\r\n OnSelect={handleOnGuestSelection}\r\n >\r\n : null\r\n }\r\n \r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport closeIcon from \"../../../../assets/images/model-cls-btn.png\";\r\nimport {\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnPlainButton,\r\n InnTextbox,\r\n InnLoader,\r\n InnKeyboard,\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport {\r\n GetAgentCompanyProfileByFilter,\r\n GetAgentCompanyProfileByFilterWithNo,\r\n} from \"../../../../services/reservationService\";\r\nimport { AddCompanyPopUp } from \"./addCompanyPopup\";\r\nimport { Navigation } from 'swiper';\r\nimport { Scrollbar, FreeMode, Mousewheel } from 'swiper';\r\nimport { Swiper,SwiperSlide } from \"swiper/react\";\r\nexport function CompanyPopUp(props) {\r\n const currUser = useSelector(currentUser);\r\n const [isActive, setActive] = useState(false);\r\n const [showCompanyAdvancedSearchModal, setShowCompanyAdvancedSearchModal] =\r\n useState(false);\r\n const [showAddCompany, setShowAddCompany] = useState(false);\r\n const [page, setPage] = useState(1);\r\n const [pageCount, setPageCount] = useState(1);\r\n const [companyData, setCompanyData] = useState([]);\r\n const [selectedCompany, setSelectedCompany] = useState({});\r\n const [filCompanyPara, setFilCompanyPara] = useState({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PageNumber: page,\r\n ProfileType: props.type,\r\n AgentCompanyName: \"\",\r\n CityName: \"\",\r\n GSTNo: \"\",\r\n ARID: \"\",\r\n });\r\n const [showKeyBoard, setShowKeyBoard] = useState(false);\r\n const [searchInput, setSearchInput] = useState(\"\");\r\n const [flagClick, setFlagClick] = useState(\"\");\r\n\r\n const fillCompany = () => {\r\n setActive(true);\r\n GetAgentCompanyProfileByFilter(filCompanyPara).then((d) => {\r\n setActive(false);\r\n setCompanyData(d.data);\r\n\r\n let pCount = 0;\r\n let pModuler;\r\n try {\r\n pCount = parseInt(parseInt(d.data[0].Total) / 20);\r\n try {\r\n pModuler = parseInt(parseInt(d.data[0].Total) % 20);\r\n if (pModuler > 0) pCount = pCount + 1;\r\n } catch (e1) {\r\n }\r\n setPageCount(pCount);\r\n } catch (e) {\r\n setPageCount(1);\r\n }\r\n });\r\n };\r\n\r\n const handleApplyClick = () => {\r\n if (page === 1) fillCompany();\r\n else {\r\n setFilCompanyPara((prev) => ({ ...prev, PageNumber: 1 }));\r\n setPage(1);\r\n }\r\n setShowCompanyAdvancedSearchModal(!showCompanyAdvancedSearchModal);\r\n setSelectedCompany({});\r\n };\r\n\r\n const getCompanyProfile = (e) => {\r\n GetAgentCompanyProfileByFilterWithNo(\r\n currUser.ClientSerNo,\r\n e.target.id,\r\n (props.para?.PropertySerNo == undefined ? 0 : props.para?.PropertySerNo),\r\n (props.para?.FromDate == undefined ? \"1-jan-2001\" : props.para?.FromDate),\r\n (props.para?.ToDate == undefined ? \"2-jan-2001\" : props.para?.ToDate)\r\n ).then((d) => {\r\n setSelectedCompany(d.data);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n fillCompany();\r\n }, [page]);\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n };\r\n const handleReset = () => {\r\n setFilCompanyPara({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PageNumber: 1,\r\n ProfileType: props.type,\r\n AgentCompanyName: \"\",\r\n CityName: \"\",\r\n GSTNo: \"\",\r\n ARID: \"\",\r\n });\r\n };\r\n\r\n const handleOnSelect = () => {\r\n if (props.OnSelect == undefined) console.log(\"OnSelect is not defined\");\r\n else props.OnSelect(selectedCompany);\r\n };\r\n\r\n const handleOnCompanySave = (ProfileSerNo) => {\r\n GetAgentCompanyProfileByFilterWithNo(\r\n currUser.ClientSerNo,\r\n parseInt(ProfileSerNo),\r\n (props.para?.PropertySerNo == undefined ? 0 : props.para?.PropertySerNo),\r\n (props.para?.FromDate == undefined ? \"1-jan-2001\" : props.para?.FromDate),\r\n (props.para?.ToDate == undefined ? \"2-jan-2001\" : props.para?.ToDate)\r\n ).then((d) => {\r\n setSelectedCompany(d.data);\r\n let newCompany = {\r\n ProfileSerNo: d.data.ProfileSerNo,\r\n FullName: d.data.CompanyName,\r\n CityName: \"\",\r\n Total: 0,\r\n GSTNo: d.data.GSTNo,\r\n };\r\n let tempCompany = [newCompany, ...companyData];\r\n setCompanyData(tempCompany);\r\n });\r\n setShowAddCompany(false);\r\n };\r\n\r\n const compnayNameClick = () => {\r\n setFlagClick(\"companyname\");\r\n setSearchInput(\"\");\r\n setShowKeyBoard(true);\r\n };\r\n const gstNoClick = () => {\r\n setFlagClick(\"gstno\");\r\n setSearchInput(\"\");\r\n setShowKeyBoard(true);\r\n };\r\n\r\n useEffect(() => {\r\n if (flagClick == \"companyname\") {\r\n setFilCompanyPara((prev) => ({\r\n ...prev,\r\n AgentCompanyName: searchInput,\r\n }))\r\n } else if (flagClick == \"gstno\") {\r\n setFilCompanyPara((prev) => ({ ...prev, GSTNo: searchInput }))\r\n }\r\n }, [searchInput]);\r\n\r\n return (\r\n {\r\n \r\n }}\r\n Onclose={handleOnclose}\r\n >\r\n \r\n
\r\n
\r\n
\r\n

{props.type == \"CO\" ? \"Company\" : \"Agent\"}

\r\n
\r\n
\r\n \r\n setShowCompanyAdvancedSearchModal(\r\n !showCompanyAdvancedSearchModal\r\n )\r\n }\r\n >\r\n \r\n
\r\n {\r\n props.para?.IsCompanyCalling != undefined && props.para.IsCompanyCalling ?\r\n <> :\r\n { setShowAddCompany(true); setShowCompanyAdvancedSearchModal(false) }}>\r\n Add New\r\n \r\n }\r\n
\r\n
\r\n \r\n
\r\n {showCompanyAdvancedSearchModal ? (\r\n
\r\n
\r\n
\r\n
\r\n

Filters

\r\n
\r\n
\r\n Reset\r\n \r\n Apply\r\n \r\n \r\n setShowCompanyAdvancedSearchModal(\r\n !showCompanyAdvancedSearchModal\r\n )\r\n }\r\n >\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n // setFilCompanyPara((prev) => ({\r\n // ...prev,\r\n // AgentCompanyName: v,\r\n // }))\r\n // }\r\n onClick={compnayNameClick}\r\n >\r\n Company Name\r\n \r\n
\r\n
\r\n \r\n // setFilCompanyPara((prev) => ({ ...prev, GSTNo: v }))\r\n // }\r\n onClick={gstNoClick}\r\n >\r\n GST No.\r\n \r\n
\r\n
\r\n \r\n setFilCompanyPara((prev) => ({ ...prev, ARID: v }))\r\n }\r\n >\r\n AR ID\r\n \r\n
\r\n
\r\n \r\n setFilCompanyPara((prev) => ({ ...prev, CityName: v }))\r\n }\r\n >\r\n City\r\n \r\n
\r\n
\r\n {showKeyBoard ?\r\n {\r\n let tempStr = searchInput;\r\n if (isBackSpace) {\r\n tempStr = v;\r\n }\r\n else {\r\n tempStr += v;\r\n }\r\n setSearchInput(tempStr);\r\n }}\r\n onEscape={() => {\r\n setShowKeyBoard(false);\r\n }}\r\n >\r\n : null\r\n }\r\n
\r\n
\r\n ) : null}\r\n
\r\n
\r\n
\r\n RESULT FOUND:{\" \"}\r\n {companyData.length > 0 ? companyData[0].Total : 0}\r\n
\r\n
\r\n \r\n \r\n console.log(swiper)}\r\n >\r\n \r\n
\r\n \r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n
 
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n {\r\n setFilCompanyPara((prev) => ({ ...prev, PageNumber: v }));\r\n setPage(v);\r\n }}\r\n style={{ float: \"left\" }}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n {selectedCompany.CompanyName}\r\n \r\n GST : {selectedCompany.GSTNo}\r\n \r\n
\r\n
\r\n
\r\n
\r\n {selectedCompany.Street}, {selectedCompany.CityName},{\" \"}\r\n {selectedCompany.StateName} ({selectedCompany.Country})\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Sales Account Holder Name\r\n
\r\n
Mr. Ashish Singh
\r\n
\r\n
\r\n
Company Contact
\r\n
{selectedCompany.ContactName}
\r\n
\r\n
\r\n
AR ID
\r\n
{selectedCompany.ARID}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Select & Continue\r\n \r\n
\r\n
\r\n
\r\n {showAddCompany ? (\r\n setShowAddCompany(false)}\r\n OnSave={handleOnCompanySave}\r\n >\r\n ) : null}\r\n \r\n \r\n )\r\n}","import React from \"react\";\r\nimport { useState, useEffect, useRef } from \"react\";\r\n\r\nexport default function InnLineBarChart(props) {\r\n const svgRef = useRef();\r\n const svgDivRef = useRef();\r\n const [svgWidth, setSvgWidth] = useState(0);\r\n const getContainerDimension = useRef();\r\n const [containerHeight, setContainerHeight] = useState(0);\r\n const [containerWidth, setContainerWidth] = useState(0);\r\n const [toolTipX, setToolTipX] = useState(0);\r\n const [toolTipY, setToolTipY] = useState(0);\r\n const [toolTip, setToolTip] = useState(false);\r\n const [toolTipValue, setToolTipValue] = useState(0);\r\n const [xAxisData, setXAxisData] = useState(props.xData);\r\n const size = useWindowSize();\r\n useEffect(() => {\r\n if (getContainerDimension.current != undefined) {\r\n setContainerHeight(getContainerDimension.current.clientHeight);\r\n setContainerWidth(getContainerDimension.current.clientWidth);\r\n }\r\n setTimeout(() => {\r\n if (\r\n (xAxisData.length - 1) * props.gapBetweenXAxisTicks +\r\n props.graphStart +\r\n props.graphEnd +\r\n 3 * props.barWidth +\r\n 2 * props.gapBetweenBars +\r\n props.paddingFromScreen >\r\n containerWidth - props.paddingLeftForXAxis\r\n ) {\r\n setSvgWidth(\r\n (xAxisData.length - 1) * props.gapBetweenXAxisTicks +\r\n props.graphStart +\r\n props.graphEnd +\r\n 3 * props.barWidth +\r\n 2 * props.gapBetweenBars +\r\n props.paddingFromScreen\r\n );\r\n } else {\r\n if (getContainerDimension.current != undefined) {\r\n setSvgWidth(getContainerDimension.current.clientWidth - props.paddingLeftForXAxis);\r\n }\r\n }\r\n }, 50);\r\n }, [size.height, size.width]);\r\n\r\n useEffect(() => {\r\n setXAxisData(props.xData);\r\n }, [props.xData]);\r\n function useWindowSize() {\r\n const [windowSize, setWindowSize] = useState({\r\n width: undefined,\r\n height: undefined,\r\n });\r\n useEffect(() => {\r\n function handleResize() {\r\n setWindowSize({\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n });\r\n }\r\n window.addEventListener(\"resize\", handleResize);\r\n handleResize();\r\n return () => window.removeEventListener(\"resize\", handleResize);\r\n }, []);\r\n return windowSize;\r\n }\r\n\r\n const x_axis_x1_point = 0;\r\n const x_axis_y1_point = containerHeight - props.paddingFromScreen;\r\n const x_axis_x2_point = svgWidth - props.paddingFromScreen;\r\n //const x_axis_x2_point = containerWidth - 2 * props.paddingFromScreen;\r\n const x_axis_y2_point = x_axis_y1_point;\r\n\r\n const gapBetweenYAxisTicks = (containerHeight - props.paddingFromScreen * 2) / props.yData.length;\r\n\r\n const render_x_axis = () => {\r\n let xTicksData = [];\r\n let currX1 = 0;\r\n let currY = 0;\r\n let currX2 = svgWidth - props.paddingFromScreen;\r\n //let currX2 = containerWidth - 2 * props.paddingFromScreen;\r\n\r\n for (let i = 0; i < props.yData.length; i++) {\r\n currY = containerHeight - props.paddingFromScreen - gapBetweenYAxisTicks * (i + 1);\r\n xTicksData.push({ x1: currX1, x2: currX2, y: currY });\r\n }\r\n return (\r\n \r\n \r\n {xTicksData.map((item, index) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n );\r\n };\r\n // const render_y_axis = () => {\r\n // return (\r\n // \r\n // \r\n // \r\n // );\r\n // };\r\n const render_x_axis_tick_lable = () => {\r\n let xTicksData = [];\r\n let currX = 0;\r\n let currWidth = props.graphStart + props.barWidth + props.gapBetweenBars + props.gapBetweenXAxisTicks / 2;\r\n let currY = 0;\r\n for (let i = 0; i < xAxisData?.length; i++) {\r\n if (i === 0) {\r\n currX = 0;\r\n currY = containerHeight - props.paddingFromScreen + props.axisWidth / 2;\r\n } else if (i === 1) {\r\n currX = currWidth;\r\n currWidth = props.gapBetweenXAxisTicks + props.gapBetweenBars;\r\n currY = containerHeight - props.paddingFromScreen + props.axisWidth / 2;\r\n } else if (i === 2) {\r\n currX = currX + props.gapBetweenXAxisTicks - props.gapBetweenBars;\r\n currY = containerHeight - props.paddingFromScreen + props.axisWidth / 2;\r\n currWidth = props.gapBetweenXAxisTicks + props.gapBetweenBars;\r\n } else {\r\n currX = currX + props.gapBetweenXAxisTicks;\r\n currY = containerHeight - props.paddingFromScreen + props.axisWidth / 2;\r\n currWidth = props.gapBetweenXAxisTicks + props.gapBetweenBars;\r\n }\r\n\r\n xTicksData.push({ x: currX, y: currY, width: currWidth });\r\n }\r\n\r\n return xTicksData.map((item, index) => {\r\n return (\r\n \r\n {xAxisData[index].name}\r\n \r\n );\r\n });\r\n };\r\n const render_y_axis_tick_label = () => {\r\n let yTicksData = [];\r\n let currX = 0;\r\n let currY = gapBetweenYAxisTicks * 4 + props.paddingFromScreen - props.yAxisFontSize * 1.5;\r\n for (let i = 0; i < props.yData.length; i++) {\r\n currX = props.paddingLeftForXAxis - 35;\r\n currY = currY - gapBetweenYAxisTicks;\r\n yTicksData.push({ x: currX, y: currY });\r\n }\r\n return yTicksData.map((item, index) => {\r\n return (\r\n \r\n {props.yData[index]}\r\n \r\n );\r\n });\r\n };\r\n const render_barChart = () => {\r\n let currentValue = [];\r\n let curr = 0;\r\n let topVal = 0;\r\n for (let i = 0; i < xAxisData.length; i++) {\r\n curr = (xAxisData[i].data1 * gapBetweenYAxisTicks) / props.yData[0];\r\n topVal = containerHeight - curr - props.paddingFromScreen;\r\n currentValue.push({ curr: curr, topVal: topVal });\r\n }\r\n return xAxisData.map((item, index) => {\r\n return (\r\n
\r\n
\r\n \r\n \r\n );\r\n });\r\n };\r\n\r\n const render_LineChart = () => {\r\n //let currX = gapBetweenXAxisTicks;\r\n currX = props.graphStart + props.barWidth * 1.5 + props.gapBetweenBars;\r\n let currY = 0;\r\n let points = [\r\n `${props.graphStart / 2} ${\r\n containerHeight -\r\n props.paddingFromScreen +\r\n gapBetweenYAxisTicks / 2 -\r\n (xAxisData[0].data4 * gapBetweenYAxisTicks) / props.yData[0]\r\n }`,\r\n ];\r\n let pointsForCircle = [];\r\n for (let i = 0; i < xAxisData.length; i++) {\r\n currY = containerHeight - (xAxisData[i].data4 * gapBetweenYAxisTicks) / props.yData[0] - props.paddingFromScreen;\r\n if (i > 0) {\r\n currX = currX + props.gapBetweenXAxisTicks;\r\n }\r\n points.push(`${currX} ${currY}`);\r\n pointsForCircle.push({ x: currX, y: currY });\r\n }\r\n\r\n return (\r\n \r\n \r\n {xAxisData.map((item, index) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n );\r\n };\r\n // const renderBarChartUsingSvgRectangle = () => {\r\n // let currentValue = [];\r\n // let curr1 = 0;\r\n // //let currX1 = gapBetweenXAxisTicks - barWidth - gapBetweenBars;\r\n // //let currX2 = gapBetweenXAxisTicks + gapBetweenBars;\r\n // let currX1 = props.graphStart;\r\n // let currX2 = props.graphStart + props.barWidth + props.gapBetweenBars;\r\n // let topVal1 = 0;\r\n // let curr2 = 0;\r\n // let topVal2 = 0;\r\n // let radius = props.barWidth / 2;\r\n // for (let i = 0; i < xAxisData.length; i++) {\r\n // curr1 = (xAxisData[i].data1 * gapBetweenYAxisTicks) / props.yData[0] - radius;\r\n // topVal1 = containerHeight - curr1 - props.paddingFromScreen;\r\n // let circleCenterVal1 = topVal1;\r\n // if (i > 0) {\r\n // currX1 = currX1 + props.gapBetweenXAxisTicks;\r\n // currX2 = currX2 + props.gapBetweenXAxisTicks;\r\n // }\r\n // curr2 = (xAxisData[i].data2 * gapBetweenYAxisTicks) / props.yData[0] - radius;\r\n // topVal2 = containerHeight - curr2 - props.paddingFromScreen;\r\n // let circleCenterVal2 = topVal2;\r\n // // if (xData[i].data1 <= barWidth) {\r\n // // topVal1 = containerHeight - barWidth;\r\n // // }\r\n // // if (xData[i].data2 <= barWidth) {\r\n // // topVal2 = containerHeight - paddingFromScreen;\r\n // // circleCenterVal2 = containerHeight - curr2 - paddingFromScreen;\r\n // // }\r\n // currentValue.push({\r\n // curr1: curr1,\r\n // currX1: currX1,\r\n // topVal1: topVal1,\r\n // circleCenterVal1: circleCenterVal1,\r\n // curr2: curr2,\r\n // currX2: currX2,\r\n // topVal2: topVal2,\r\n // circleCenterVal2: circleCenterVal2,\r\n // });\r\n // }\r\n\r\n // return (\r\n // \r\n // {xAxisData.map((item, index) => {\r\n // return (\r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // );\r\n // })}\r\n // \r\n // );\r\n // };\r\n const renderBarChartUsingSvgRectangle = () => {\r\n let currentValue = [];\r\n let curr1 = 0;\r\n let currX1 = props.graphStart;\r\n let topVal1 = 0;\r\n let currX2 = props.graphStart + props.barWidth + props.gapBetweenBars;\r\n let currX3 = props.graphStart + props.barWidth * 2 + props.gapBetweenBars * 2;\r\n let curr2 = 0;\r\n let topVal2 = 0;\r\n let curr3 = 0;\r\n let topVal3 = 0;\r\n let radius = props.barWidth / 2;\r\n for (let i = 0; i < xAxisData.length; i++) {\r\n curr1 = (xAxisData[i].data1 * gapBetweenYAxisTicks) / props.yData[0] - radius;\r\n topVal1 = containerHeight - curr1 - props.paddingFromScreen;\r\n if (i > 0) {\r\n currX1 = currX1 + props.gapBetweenXAxisTicks;\r\n currX2 = currX2 + props.gapBetweenXAxisTicks;\r\n currX3 = currX3 + props.gapBetweenXAxisTicks;\r\n }\r\n curr2 = (xAxisData[i].data2 * gapBetweenYAxisTicks) / props.yData[0] - radius;\r\n topVal2 = containerHeight - curr2 - props.paddingFromScreen;\r\n curr3 = (xAxisData[i].data3 * gapBetweenYAxisTicks) / props.yData[0] - radius;\r\n topVal3 = containerHeight - curr3 - props.paddingFromScreen;\r\n if (curr1 < 0 || curr2 < 0 || curr3 < 0) {\r\n if (curr1 < 0) {\r\n curr1 = 0;\r\n }\r\n if (curr2 < 0) {\r\n curr2 = 0;\r\n }\r\n if (curr3 < 0) {\r\n curr3 = 0;\r\n }\r\n }\r\n currentValue.push({\r\n curr1: curr1,\r\n currX1: currX1,\r\n topVal1: topVal1,\r\n circleCenterVal1: topVal1,\r\n curr2: curr2,\r\n currX2: currX2,\r\n topVal2: topVal2,\r\n circleCenterVal2: topVal2,\r\n curr3: curr3,\r\n currX3: currX3,\r\n topVal3: topVal3,\r\n circleCenterVal3: topVal3,\r\n });\r\n }\r\n\r\n return (\r\n \r\n {xAxisData.map((item, index) => {\r\n return (\r\n \r\n \r\n {currentValue[index].curr1 > 0 ? (\r\n \r\n ) : null}\r\n \r\n {currentValue[index].curr2 > 0 ? (\r\n \r\n ) : null}\r\n \r\n {currentValue[index].curr3 > 0 ? (\r\n \r\n ) : null}\r\n \r\n );\r\n })}\r\n \r\n );\r\n };\r\n let pointsForCircle = [];\r\n let currY = 0;\r\n let currX = props.graphStart + props.barWidth;\r\n for (let i = 0; i < xAxisData.length; i++) {\r\n currY = containerHeight - (xAxisData[i].data3 * gapBetweenYAxisTicks) / props.yData[0] - props.paddingFromScreen;\r\n if (i > 0) {\r\n currX = currX + props.gapBetweenXAxisTicks;\r\n }\r\n pointsForCircle.push({\r\n x: currX - props.circleRadius - props.circleBorderWidth / 2,\r\n y: currY - props.circleRadius - props.circleBorderWidth / 2,\r\n });\r\n }\r\n const showToolTip = (d, index) => {\r\n console.log(index);\r\n setToolTip(true);\r\n setToolTipX(d.offsetX - props.tooltipwidth / 2);\r\n setToolTipY(d.offsetY - props.tooltipheight);\r\n setToolTipValue(index);\r\n };\r\n const notShowToolTip = (d) => {\r\n // console.log(d);\r\n setToolTip(false);\r\n };\r\n return (\r\n \r\n {\r\n console.log(\"hello\");\r\n }}\r\n style={{\r\n height: `${containerHeight}px`,\r\n width: `${props.paddingLeftForXAxis}px`,\r\n position: \"relative\",\r\n backgroundColor: props.backColor,\r\n }}>\r\n {props.yData.length > 0 && render_y_axis_tick_label()}\r\n \r\n \r\n {xAxisData.map((item, index) => {\r\n return (\r\n {\r\n showToolTip(nativeEvent, index);\r\n }}\r\n onMouseLeave={(nativeEvent) => {\r\n notShowToolTip(nativeEvent);\r\n }}>\r\n {\" \"}\r\n \r\n );\r\n })}\r\n \r\n {xAxisData.length > 0 ? (\r\n <>\r\n {render_x_axis()}\r\n {renderBarChartUsingSvgRectangle()}\r\n {render_LineChart()}\r\n \r\n {render_x_axis_tick_lable()}\r\n {toolTip ? (\r\n \r\n {xAxisData[toolTipValue].data3}\r\n \r\n ) : null}\r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n );\r\n}\r\n","import axios from \"axios\";\r\n\r\n//#region Location Master\r\nexport const GetLocationMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/LocationMaster/manage-location-master/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditLocationMaster = (para) => {\r\n const apiUrl = \"/LocationMaster/manage-location-master\"\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion\r\n\r\n//MenuMaster\r\nexport const GetMenuMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/MenuMaster/manage-Menu-master/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetMenuCategoryMaster = (ClientSerNo, PropertySerNo, MenuSerNo) => {\r\n const apiUrl = \"/MenuMaster/manage-Menu-Category-Master/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + MenuSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetMenuSubCategory = (ClientSerNo, PropertySerNo, MenuSerNo, MenuCategorySerNo) => {\r\n const apiUrl = \"/MenuMaster/manage-menu-sub-category/\"\r\n + ClientSerNo + \"/\"\r\n + PropertySerNo + \"/\"\r\n + MenuSerNo + \"/\"\r\n + MenuCategorySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditMenuCategoryMaster = (para) => {\r\n const apiUrl = \"/MenuMaster/manage-menu-category-master\"\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const AddEditMenuSubCategoryMaster = (para) => {\r\n const apiUrl = \"/MenuMaster/manage-menu-sub-category-master\"\r\n return axios.post(apiUrl, para);\r\n}\r\n//end \r\n\r\n\r\nexport const GetServerMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/ServerMaster/manage-Server-Master/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl)\r\n}\r\nexport const AddEditServerMaster = (para) => {\r\n const apiUrl = \"/ServerMaster/manage-Server-Master\"\r\n return axios.post(apiUrl, para)\r\n}\r\n\r\nexport const GetItemGroupMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/ItemGroupMaster/manage-Item-Group-Master/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetItemGroupMasterBySerNo = (ClientSerNo, PropertySerNo, ItemGroupSerNo) => {\r\n const apiUrl = \"/ItemSubGroupMaster/manage-Item-Group-MasterBySerNo/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + ItemGroupSerNo;\r\n return axios.get(apiUrl)\r\n}\r\n\r\nexport const AddEditItemGroupMaster = (para) => {\r\n const apiUrl = \"/ItemGroupMaster/manage-Item-Group-Master\"\r\n return axios.post(apiUrl, para)\r\n}\r\nexport const AddEditItemGroupMasterBySerNo = (para) => {\r\n const apiUrl = \"/ItemSubGroupMaster/manage-Item-Sub-Group-Master\"\r\n return axios.post(apiUrl, para)\r\n}\r\n\r\nexport const GetPOSItemMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/PosItemMaster/manage-positem-Master/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const AddEditGetPOSItemMaster = (para) => {\r\n const apiUrl = \"/PosItemMaster/manage-positem-Master\"\r\n return axios.post(apiUrl, para)\r\n}\r\nexport const GetItemSubGroupMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/ItemSubGroupMaster/manage-Item-Sub-Group-Master/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetCourseMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/CourseMaster/manage-Course-Master/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetHSN_SAC_CodeMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/HSNSACCodeMaster/manage-hsn-sac-code-master/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetItemToppingMaster = (ClientSerNo) => {\r\n const apiUrl = \"/ItemToppingMaster/manage-Item-Topping-Master/\" + ClientSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditItemToppingMaster = (para) => {\r\n const apiUrl = \"/ItemToppingMaster/manage-Item-Topping-Master\"\r\n return axios.post(apiUrl, para)\r\n}\r\n\r\nexport const GetOutletMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/OutletMaster/manange-outlet-master/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditOutletMaster = (para) => {\r\n const apiUrl = \"/OutletMaster/manage-outlet-master\"\r\n return axios.post(apiUrl, para)\r\n}\r\n\r\nexport const GetOutletMenuMapping = (ClientSerNo, PropertySerNo, OutletSerNo) => {\r\n const apiUrl = \"/OutletMaster/manage-outlet-menu-mapping/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + OutletSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditOutletMenuMapping = (para) => {\r\n const apiUrl = \"/OutletMaster/manage-outlet-menu-mapping\"\r\n return axios.post(apiUrl, para)\r\n}\r\n\r\n//#region DocumentRemarkMaster\r\nexport const GetDocumentRemarkMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/DocumentRemarkMaster/manage-Document-Remarks/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const AddEditDocumentRemarkMaster = (para) => {\r\n const apiUrl = \"/DocumentRemarkMaster/manage-Document-Remarks\"\r\n return axios.post(apiUrl, para)\r\n}\r\nexport const GetModuleMaster = () => {\r\n const apiUrl = \"/Masters/manage-module-master/\"\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetDocumentRemarkMasterBySerNo = (ClientSerNo, PropertySerNo, RemarkSerNo) => {\r\n const apiUrl = \"/DocumentRemarkMaster/manage-document-remarks-detail/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + RemarkSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n//#endregion\r\nexport const GetOutletTableMaster = (ClientSerNo, PropertySerNo, OutletSerNo) => {\r\n const apiUrl = \"/OutletMaster/manage-outlet-tablemaster/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + OutletSerNo;\r\n return axios.get(apiUrl)\r\n}\r\nexport const AddEditOutletTableMaster = (para) => {\r\n const apiUrl = \"/OutletMaster/manage-outlet-tablemaster\"\r\n return axios.post(apiUrl, para)\r\n}\r\nexport const AddEditMenuMaster = (para) => {\r\n const apiUrl = \"/MenuMaster/manage-menu-master\"\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\n//#region MenuItemToppingMapping\r\nexport const GetMenuItemToppingMapping = (ClientSerNo, PropertySerNo, MenuSerNo, ItemSerNo) => {\r\n const apiUrl = \"/MenuMaster/manage-menu-item-topping-mapping/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + MenuSerNo + \"/\" + ItemSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditMenuItemToppingMapping = (para) => {\r\n const apiUrl = \"/MenuMaster/manage-menu-item-topping-mapping\"\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion\r\n\r\n//#region POS invoice\r\nexport const GetPOSInvoiceDetail = (ClientSerNo, PropertySerNo, CheckSerNo) => {\r\n const apiUrl = \"/POSBilling/manage-pos-invoice-detail/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + CheckSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n//#endregion\r\n//#region Menu Item Master\r\nexport const GetMenuMasterItem = (ClientSerNo, PropertySerNo, MenuSerNo) => {\r\n const apiUrl = \"/MenuMaster/manage-Menu-Item-Master/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + MenuSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const AddEditMenuItemMaster = (para) => {\r\n const apiUrl = \"/MenuMaster/manage-Menu-Item-Master\"\r\n return axios.post(apiUrl, para)\r\n}\r\nexport const GetMenuMasterMultiItem = (ClientSerNo, PropertySerNo, MenuSerNo) => {\r\n const apiUrl = \"/MenuMaster/manage-Menu-Multi-Item-Master/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + MenuSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n//#endregion\r\nexport const AddEditCourseMaster = (para) => {\r\n const apiUrl = \"/CourseMaster/manage-Course-Master\"\r\n return axios.post(apiUrl, para)\r\n}\r\n\r\nexport const GetMiniBarTransaction = (ClientSerNo, PropertySerNo, FromDate, ToDate, BillNo, FirstName, LastName, UserID, RoomNo, SortCol, SortType, PageNumber) => {\r\n const apiUrl = \"/Minibar/manage-minibaar-transaction/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + FromDate + \"/\" + ToDate + \"/\" + BillNo + \"/\" + FirstName + \"/\" + LastName + \"/\" + UserID + \"/\" + RoomNo + \"/\" + SortCol + \"/\" + SortType + \"/\" + PageNumber;\r\n return axios.get(apiUrl)\r\n}\r\n\r\nexport const GetMiniBarOutletData = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/Minibar/manage-minibar-outletdata/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\";\r\n return axios.get(apiUrl)\r\n}\r\n\r\nexport const GetOutletWeekHappyHoursMaster = (ClientSerNo, PropertySerNo, OutletSerNo) => {\r\n const apiUrl = \"/OutletWeekHappyHours/manage-outlet-week-happy-hours-master/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + OutletSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditOutletWeekHappyHoursMaster = (para) => {\r\n const apiUrl = \"/OutletWeekHappyHours/manage-outlet-week-happy-hours-master\"\r\n return axios.post(apiUrl, para)\r\n}\r\n\r\n//PosReport\r\nexport const GetKOTRegisterReport = (ClientSerNo, PropertySerNo, FromDate, ToDate, OutletSerNo) => {\r\n const apiUrl = \"/POSAuditAndMIS/manage-pos-audit-and-mis/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + FromDate + \"/\" + ToDate + \"/\" + OutletSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetBillwiseSalesMISReport = (ClientSerNo, PropertySerNo, FromDate, ToDate, OutletSerNo, KOTType, IsMIS) => {\r\n const apiUrl = \"/POSSales/manage-pos-billwise-sales-mis/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + FromDate + \"/\" + ToDate + \"/\" + OutletSerNo + \"/\" + KOTType + \"/\" + IsMIS;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetDailywiseSalesMISReport = (ClientSerNo, PropertySerNo, FromDate, ToDate, OutletSerNo,KOTType,IsMIS) => {\r\n const apiUrl = \"/POSSales/manage-pos-dailywise-sales-mis/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + FromDate + \"/\" + ToDate + \"/\" + OutletSerNo + \"/\" + KOTType + \"/\" + IsMIS;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetPOSSalesSummray = (ClientSerNo, PropertySerNo, FromDate, ToDate, OutletSerNo, KOTType) => {\r\n const apiUrl = \"/POSSales/manage-pos-sales-summray/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + FromDate + \"/\" + ToDate + \"/\" + OutletSerNo + \"/\" + KOTType;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetPOSManualKOTRegister = (ClientSerNo, PropertySerNo, FromDate, ToDate, OutletSerNo, KOTType) => {\r\n const apiUrl = \"/POSAuditAndMIS/manage-manual-kot-register/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + FromDate + \"/\" + ToDate + \"/\" + OutletSerNo + \"/\" + KOTType;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetPOSPendingKOT = (ClientSerNo, PropertySerNo, UserID) => {\r\n const apiUrl = \"/POSAuditAndMIS/manage-pending-kot/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + UserID;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetPOSVoidBillReport = (ClientSerNo, PropertySerNo, FromDate, ToDate, OutletSerNo, ReferenceSerNo) => {\r\n const apiUrl = \"/POSAuditAndMIS/manage-void-bill-report/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + FromDate + \"/\" + ToDate + \"/\" + OutletSerNo + \"/\" + ReferenceSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetReferenceMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/ReferenceMaster/manage-reference-master/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetPOSMenuPrinting = (ClientSerNo, PropertySerNo, MenuSerNo) => {\r\n const apiUrl = \"/POSAuditAndMIS/manage-menu-printing/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + MenuSerNo;\r\n return axios.get(apiUrl);\r\n\r\n}\r\nexport const GetItemWiseSalesReport = (ClientSerNo, PropertySerNo, FromDate, ToDate, OutletSerNo) => {\r\n const apiUrl = \"/POSAuditAndMIS/manage-item-wise-sales-report/\"\r\n + ClientSerNo + \"/\"\r\n + PropertySerNo + \"/\"\r\n + FromDate + \"/\"\r\n + ToDate + \"/\"\r\n + OutletSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetPOSTaxExemption = (ClientSerNo, PropertySerNo, FromDate, ToDate) => {\r\n let apiUrl = \"/POSStatutory/manage-tax-exemption-report/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + FromDate + '/'\r\n + ToDate;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetPOSAdvancePending = (ClientSerNo, PropertySerNo, AsOnDate, companyFilter) => {\r\n const apiUrl = \"/POSCashiering/manage-POS-advance-pending/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + AsOnDate + '/'\r\n + companyFilter;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetBillwiseSales = (ClientSerNo, PropertySerNo, FromDate, ToDate, OutletSerNo, KOTType, IsMIS) => {\r\n const apiUrl = \"/POSSales/manage-billwise-sales/\"\r\n + ClientSerNo + \"/\"\r\n + PropertySerNo + \"/\"\r\n + FromDate + \"/\"\r\n + ToDate + \"/\"\r\n + OutletSerNo + \"/\"\r\n + KOTType + \"/\"\r\n + IsMIS;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetPOSCheckTimeGap = (ClientSerNo, PropertySerNo, FromDate, ToDate, OutletSerNo, KOTType) => {\r\n const apiUrl = \"/POSAuditAndMIS/manage-POS-check-time-gap-report/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + FromDate + \"/\" + ToDate + \"/\" + OutletSerNo + \"/\" + KOTType;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetCancellationReport = (ClientSerNo, PropertySerNo, FromDate, ToDate) => {\r\n const apiUrl = \"/POSAuditAndMIS/manage-cancellation-report/\"\r\n + ClientSerNo + \"/\"\r\n + PropertySerNo + \"/\"\r\n + FromDate + \"/\"\r\n + ToDate;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetBanquetBookingCancelReport = (ClientSerNo, PropertySerNo, FromDate, ToDate) => {\r\n let apiUrl = \"/POSAuditAndMIS/manage-booking-cancellation/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + FromDate + '/'\r\n + ToDate;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetPOSAdvanceAdjusted = (ClientSerNo, PropertySerNo, FromDate, ToDate, CompanyFilter) => {\r\n const apiUrl = \"/POSCashiering/manage-POS-advance-adjusted/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + FromDate + \"/\" + ToDate + \"/\" + CompanyFilter;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetPOSCancelBill = (ClientSerNo, PropertySerNo, FromDate, ToDate) => {\r\n let apiUrl = \"/POSAuditAndMIS/manage-cancelled-bill-report/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + FromDate + '/'\r\n + ToDate;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetMenuEngineeringReport = (ClientSerNo, PropertySerNo, FromDate, ToDate, OutletSerNo, ItemGroupSerNo, ItemSubGroupSerNo, KOTType) => {\r\n let apiUrl = \"/POSAuditAndMIS/manage-menu-engineering-report-summary/\"\r\n + ClientSerNo + \"/\"\r\n + PropertySerNo + \"/\"\r\n + FromDate + \"/\"\r\n + ToDate + \"/\"\r\n + OutletSerNo + \"/\"\r\n + ItemGroupSerNo + \"/\"\r\n + ItemSubGroupSerNo + \"/\"\r\n + KOTType;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetPOSCashBook = (ClientSerNo, PropertySerNo, FromDate, ToDate, TransactionSerNo) => {\r\n let apiUrl = \"/POSCashiering/manage-POS-cashbook/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + FromDate + '/'\r\n + ToDate + '/'\r\n + TransactionSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetBillRegisterReport = (ClientSerNo, PropertySerNo, FromDate, ToDate, OutletSerNo) => {\r\n let apiUrl = \"/POSSales/manage-pos-bill-register/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + FromDate + \"/\" + ToDate + \"/\" + OutletSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetPOSPostSettlement = (ClientSerNo, PropertySerNo, FromDate, ToDate, CashBookTransactionSerNo, TransactionSerNo) => {\r\n let apiUrl = \"/POSCashiering/manage-POS-post-settlement/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + FromDate + '/'\r\n + ToDate + '/'\r\n + CashBookTransactionSerNo + '/'\r\n + TransactionSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetPOSComplimentaryKOT = (ClientSerNo, PropertySerNo, FromDate, ToDate, OutletSerNo, ReferenceSerNo) => {\r\n let apiUrl = \"/POSAuditAndMIS/manage-pos-complimentary-kot/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + FromDate + '/'\r\n + ToDate + '/'\r\n + OutletSerNo + '/'\r\n + ReferenceSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetPOSServerwiseSales = (ClientSerNo, PropertySerNo, FromDate, ToDate, ServerSerNo, KOTType) => {\r\n const apiUrl = \"/POSSales/manage-pos-serverwise-sales/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + FromDate + \"/\" + ToDate + \"/\" + ServerSerNo + \"/\" + KOTType;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetMenuEngineeringReportDetail = (ClientSerNo, PropertySerNo, FromDate, ToDate, OutletSerNo, ItemGroupSerNo, ItemSubGroupSerNo, KOTType) => {\r\n const apiUrl = \"/POSAuditAndMIS/manage-menu-engineering-report-detail/\"\r\n + ClientSerNo + \"/\"\r\n + PropertySerNo + \"/\"\r\n + FromDate + \"/\"\r\n + ToDate + \"/\"\r\n + OutletSerNo + \"/\"\r\n + ItemGroupSerNo + \"/\"\r\n + ItemSubGroupSerNo + \"/\"\r\n + KOTType;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetPOSTaxSummary = (ClientSerNo, PropertySerNo, FromDate, ToDate) => {\r\n const apiUrl = \"/POSStatutory/manage-tax-summary/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + FromDate + \"/\" + ToDate;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetFrontTaxSummaryBillwise = (ClientSerNo, PropertySerNo, FromDate, ToDate) => {\r\n const apiUrl = \"/POSStatutory/manage-front-tax-summary-billwise/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + FromDate + \"/\" + ToDate;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetPOSTaxSummaryBillwise = (ClientSerNo, PropertySerNo, FromDate, ToDate,OutletSerNo) => {\r\n const apiUrl = \"/POSStatutory/manage-POS-tax-summary-billwise/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + FromDate + \"/\" + ToDate + \"/\" + OutletSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetLaundryTaxSummaryBillwise = (ClientSerNo, PropertySerNo, FromDate, ToDate) => {\r\n const apiUrl = \"/POSStatutory/manage-laundry-tax-summary-billwise/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + FromDate + \"/\" + ToDate ;\r\n return axios.get(apiUrl);\r\n}","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialState = {\r\n pos: {\r\n name: \"pos collection\",\r\n ocOutlet: [],\r\n ocMenuMasterData: [],\r\n ocMenuCatgeoryData: [],\r\n ocMenuSubCategoryData: [],\r\n ocMenuItemData: [],\r\n ocMenuItemTopping: [],\r\n objPOSHeaderDetail: {},\r\n ocPOSItemDetail: [],\r\n ocPOSItemToppingDetail: [],\r\n ocPOSItemDetailSearch: [],\r\n ocPOSItemToppingDetailSearch: [],\r\n objPOSTableTotalDetail: {},\r\n ocPOSSettlementDetail: [],\r\n }\r\n};\r\n\r\nexport const posSlice = createSlice({\r\n name: \"pos\",\r\n initialState: initialState,\r\n reducers: {\r\n setOutletData: (state, action) => {\r\n let obj = action.payload;\r\n obj.forEach(ele => {\r\n state.pos.ocOutlet.push(ele);\r\n });\r\n },\r\n\r\n clearOutletData: (state) => {\r\n let obj = [];\r\n state.pos.ocOutlet = obj;\r\n },\r\n setMenuMasterData: (state, action) => {\r\n let obj = action.payload;\r\n obj.forEach(ele => {\r\n state.pos.ocMenuMasterData.push(ele);\r\n });\r\n },\r\n\r\n setMenuCategoryData: (state, action) => {\r\n let obj = action.payload;\r\n obj.forEach(ele => {\r\n state.pos.ocMenuCatgeoryData.push(ele);\r\n });\r\n },\r\n\r\n setMenuSubCategoryData: (state, action) => {\r\n let obj = action.payload;\r\n obj.forEach(ele => {\r\n state.pos.ocMenuSubCategoryData.push(ele);\r\n });\r\n },\r\n setMenuItemData: (state, action) => {\r\n let obj = action.payload;\r\n obj.forEach(ele => {\r\n state.pos.ocMenuItemData.push(ele);\r\n });\r\n },\r\n setMenuItemtoppingData: (state, action) => {\r\n let obj = action.payload;\r\n obj.forEach(ele => {\r\n state.pos.ocMenuItemTopping.push(ele);\r\n });\r\n },\r\n setPOSHeaderDetail: (state, action) => {\r\n state.pos.objPOSHeaderDetail = action.payload;\r\n },\r\n updateRateDetail: (state, action) => {\r\n let obj = {};\r\n obj = action.payload;\r\n state.pos.objPOSHeaderDetail.RateSerNo = obj.RateSerNo;\r\n if (obj.IsComplimentary) {\r\n state.pos.objPOSHeaderDetail.ReferenceSerNo = obj.ReferenceSerNo;\r\n state.pos.objPOSHeaderDetail.Remarks = obj.Remarks;\r\n state.pos.objPOSHeaderDetail.IsComplimentary = true;\r\n } else {\r\n state.pos.objPOSHeaderDetail.ReferenceSerNo = 0;\r\n state.pos.objPOSHeaderDetail.Remarks = \"\";\r\n state.pos.objPOSHeaderDetail.IsComplimentary = false;\r\n }\r\n },\r\n updateServerDetail: (state, action) => {\r\n let obj = {};\r\n obj = action.payload;\r\n state.pos.objPOSHeaderDetail.ServerSerNo = obj.ServerSerNo;\r\n state.pos.objPOSHeaderDetail.ServerName = obj.Name;\r\n },\r\n updateTableDiscountDetail: (state, action) => {\r\n let obj = {};\r\n obj = action.payload;\r\n state.pos.objPOSHeaderDetail.Discount = obj.Discount;\r\n state.pos.objPOSHeaderDetail.Percentage = obj.Percentage;\r\n },\r\n updateTableNameDetail: (state, action) => {\r\n state.pos.objPOSHeaderDetail.TableName = action.payload;\r\n },\r\n updatePrintFlagDetail: (state, action) => {\r\n state.pos.objPOSHeaderDetail.IsPrinted = action.payload;\r\n },\r\n updateTableProfileDetail: (state, action) => {\r\n let obj = {};\r\n obj = action.payload;\r\n state.pos.objPOSHeaderDetail.ProfileSerNo = obj.ProfileSerNo;\r\n },\r\n updateTableCompanyProfileDetail: (state, action) => {\r\n let obj = {};\r\n obj = action.payload;\r\n state.pos.objPOSHeaderDetail.CompanyProfileSerNo = obj.ProfileSerNo;\r\n },\r\n updateTableAgentProfileDetail: (state, action) => {\r\n let obj = {};\r\n obj = action.payload;\r\n state.pos.objPOSHeaderDetail.AgentProfileSerNo = obj.ProfileSerNo;\r\n },\r\n updateTableMapToToRoomCompanyProfileDetail: (state, action) => {\r\n let obj = {};\r\n obj = action.payload;\r\n state.pos.objPOSHeaderDetail.CompanyProfileSerNo = obj.CompanyProfileSerNo;\r\n },\r\n updateTableMapToToRoomDetail: (state, action) => {\r\n let obj = {};\r\n obj = action.payload;\r\n state.pos.objPOSHeaderDetail.ProfileSerNo = obj.GuestProfileSerNo;\r\n state.pos.objPOSHeaderDetail.RoomSerNo = obj.RoomNo;\r\n state.pos.objPOSHeaderDetail.ReservationSerNo = obj.ReservationSerNo;\r\n },\r\n updateTableRoomServiceOutletDetail: (state, action) => {\r\n let obj = {};\r\n obj = action.payload;\r\n state.pos.objPOSHeaderDetail.RoomSerNo = obj.RoomSerNo;\r\n state.pos.objPOSHeaderDetail.ReservationSerNo = obj.ReservationSerNo;\r\n state.pos.objPOSHeaderDetail.ProfileSerNo = obj.GuestProfileSerNo;\r\n state.pos.objPOSHeaderDetail.CompanyProfileSerNo = obj.CompanyProfileSerNo;\r\n state.pos.objPOSHeaderDetail.AgentProfileSerNo = obj.AgentProfileSerNo;\r\n state.pos.objPOSHeaderDetail.SourceProfileSerNo = obj.SourceProfileSerNo;\r\n state.pos.objPOSHeaderDetail.MarketSerNo = obj.MarketSerNo;\r\n },\r\n updateTableNoOfPax: (state, action) => {\r\n state.pos.objPOSHeaderDetail.NoOfPax = action.payload;\r\n },\r\n updateTableExemption: (state, action) => {\r\n state.pos.objPOSHeaderDetail.ExamptionSerNo = action.payload;\r\n },\r\n setPOSItemDetail: (state, action) => {\r\n let obj = action.payload;\r\n obj.forEach(ele => {\r\n state.pos.ocPOSItemDetail.push(ele);\r\n });\r\n },\r\n setPOSItemDetailSearch: (state, action) => {\r\n let obj = action.payload;\r\n obj.forEach(ele => {\r\n state.pos.ocPOSItemDetailSearch.push(ele);\r\n });\r\n },\r\n clearPOSItemDetail: (state, action) => {\r\n let obj = [];\r\n state.pos.ocPOSItemDetail = obj;\r\n },\r\n clearPOSItemDetailSearch: (state, action) => {\r\n let obj = [];\r\n state.pos.ocPOSItemDetailSearch = obj;\r\n },\r\n setPOSItemToppingDetail: (state, action) => {\r\n let obj = action.payload;\r\n obj.forEach(ele => {\r\n state.pos.ocPOSItemToppingDetail.push(ele);\r\n });\r\n },\r\n clearPOSItemToppingDetail: (state, action) => {\r\n let obj = [];\r\n state.pos.ocPOSItemToppingDetail = obj;\r\n },\r\n setPOSItemToppingDetailSearch: (state, action) => {\r\n let obj = action.payload;\r\n obj.forEach(ele => {\r\n state.pos.ocPOSItemToppingDetailSearch.push(ele);\r\n });\r\n },\r\n clearPOSItemToppingDetailSearch: (state, action) => {\r\n let obj = [];\r\n state.pos.ocPOSItemToppingDetailSearch = obj;\r\n },\r\n setPOSTableTotalDetail: (state, action) => {\r\n state.pos.objPOSTableTotalDetail = action.payload;\r\n },\r\n setPOSSettlementDetail: (state, action) => {\r\n let obj = action.payload;\r\n obj.forEach(ele => {\r\n state.pos.ocPOSSettlementDetail.push(ele);\r\n });\r\n },\r\n\r\n clearOpenTableData: (state) => {\r\n let obj1 = {};\r\n state.pos.objPOSHeaderDetail = obj1;\r\n let obj2 = [];\r\n state.pos.ocPOSItemDetail = obj2;\r\n let obj3 = [];\r\n state.pos.ocPOSItemToppingDetail = obj3;\r\n let obj4 = {};\r\n state.pos.objPOSTableTotalDetail = obj4;\r\n let obj5 = [];\r\n state.pos.ocPOSSettlementDetail = obj5;\r\n },\r\n\r\n clearMenuItemData: (state) => {\r\n state.pos.ocMenuItemData = [];\r\n },\r\n },\r\n});\r\n\r\nexport const { setOutletData, setMenuMasterData, setMenuCategoryData, setMenuSubCategoryData, setMenuItemData,\r\n setMenuItemtoppingData, clearOutletData, clearMenuItemData,\r\n setPOSHeaderDetail, setPOSItemDetail, setPOSItemToppingDetail, setPOSTableTotalDetail,\r\n setPOSSettlementDetail, setPOSItemDetailSearch, setPOSItemToppingDetailSearch,\r\n clearOpenTableData, clearPOSItemDetail, clearPOSItemDetailSearch,\r\n clearPOSItemToppingDetailSearch, clearPOSItemToppingDetail,\r\n updateRateDetail, updateServerDetail, updateTableDiscountDetail, updateTableProfileDetail,\r\n updateTableCompanyProfileDetail, updateTableNoOfPax, updateTableExemption,\r\n updateTableMapToToRoomDetail, updateTableMapToToRoomCompanyProfileDetail,\r\n updateTableNameDetail, updateTableAgentProfileDetail, updatePrintFlagDetail,\r\n updateTableRoomServiceOutletDetail } = posSlice.actions;\r\n\r\nexport const posCollection = (state) => state.pos.pos;\r\nexport default posSlice.reducer;","import React, { useState, useEffect } from \"react\";\r\n\r\nexport function InnTextbox(props) {\r\n const [textvalue, settextvalue] = useState(props.value);\r\n //For Display Error Message Varible\r\n const [inputErrors, setinputErrors] = useState(false);\r\n const [errorMessage, seterrorMessage] = useState(false);\r\n const [errorstring, seterrorstring] = useState(\"\");\r\n\r\n useEffect(() => {\r\n settextvalue(props.value);\r\n }, [props.value]);\r\n\r\n //change event of textbox start\r\n const handlechange = (e) => {\r\n settextvalue(e.target.value);\r\n txtValidation(e.target.value);\r\n if (props.onChange) {\r\n props.onChange(e.target.value, e);\r\n }\r\n };\r\n //change event of textbox end\r\n\r\n //Textbox validation function start\r\n const txtValidation = (val) => {\r\n if (val != \"\") {\r\n setinputErrors(false);\r\n seterrorMessage(false);\r\n seterrorstring(\"\");\r\n if (props.type == \"password\") {\r\n if (val.length < props.min || val.length > props.max) {\r\n setinputErrors(true);\r\n seterrorMessage(true);\r\n seterrorstring(\r\n \"Password should be min \" +\r\n props.min +\r\n \" char and max \" +\r\n props.max +\r\n \" char\"\r\n );\r\n }\r\n } else if (props.type == \"email\") {\r\n if (\r\n new RegExp(/[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,15}/g).test(val) ==\r\n false\r\n ) {\r\n setinputErrors(true);\r\n seterrorMessage(true);\r\n seterrorstring(\"Please Enter Valid Email Address...\");\r\n }\r\n } else if (props.customError && props.customError.length > 0) {\r\n setinputErrors(true);\r\n seterrorMessage(true);\r\n seterrorstring(props.customError);\r\n } else {\r\n if (props.required == true && val == \"\") {\r\n setinputErrors(true);\r\n seterrorMessage(true);\r\n seterrorstring(\"Field is Required..\");\r\n } else {\r\n setinputErrors(false);\r\n seterrorMessage(false);\r\n seterrorstring(\"\");\r\n }\r\n }\r\n }\r\n };\r\n //Textbox validation function end\r\n\r\n //Focus Event For validation start\r\n const handleFocus = (e) => {\r\n if (e.target.value == \"\") {\r\n setinputErrors(true);\r\n seterrorMessage(true);\r\n if (props.required == true && e.target.value == \"\") {\r\n seterrorstring(\"Field is Required..\");\r\n } else {\r\n setinputErrors(false);\r\n seterrorMessage(false);\r\n seterrorstring(\"\");\r\n }\r\n }\r\n };\r\n //Focus Event For Validation end\r\n\r\n //#region handleOnKeyDown\r\n const handleOnKeyDown = (e) => {\r\n if(props.tag == \"integer\"){\r\n if((e.keyCode >= 48 && e.keyCode <= 57 && e.shiftKey == false ) || (e.keyCode >= 96 && e.keyCode <= 105 && e.shiftKey == false ) || (e.keyCode == 8 && e.shiftKey == false ) || (e.keyCode == 9 && e.shiftKey == false ) || (e.keyCode == 37) || (e.keyCode == 39) || (e.keyCode == 46 && e.shiftKey == false ))\r\n {}\r\n else\r\n { \r\n e.preventDefault();\r\n }\r\n }\r\n else if(props.tag == \"decimal\"){\r\n if((e.keyCode >= 48 && e.keyCode <= 57 && e.shiftKey == false ) || (e.keyCode >= 96 && e.keyCode <= 105 && e.shiftKey == false ) || (e.keyCode == 8 && e.shiftKey == false ) || (e.keyCode == 9 && e.shiftKey == false ) || (e.keyCode == 37) || (e.keyCode == 39) || (e.keyCode == 46 && e.shiftKey == false ) || (e.keyCode == 110 && e.shiftKey == false ) || (e.keyCode == 190 && e.shiftKey == false ))\r\n {\r\n if(textvalue.toString().split('.').length <= 1 ){}\r\n else\r\n {\r\n if((e.keyCode == 110 && e.shiftKey == false ) || (e.keyCode == 190 && e.shiftKey == false )){\r\n e.preventDefault();\r\n }\r\n }\r\n } \r\n else\r\n { \r\n e.preventDefault();\r\n }\r\n }\r\n }\r\n //#endregion handleOnKeyDown\r\n \r\n //for customerror useeffect start\r\n useEffect(() => {\r\n if (props.customError && props.customError.length > 0) {\r\n setinputErrors(true);\r\n seterrorMessage(true);\r\n seterrorstring(props.customError);\r\n } else {\r\n setinputErrors(false);\r\n seterrorMessage(false);\r\n seterrorstring(\"\");\r\n }\r\n }, [props.customError]);\r\n //for customerror useeffect end\r\n\r\n return (\r\n \r\n \r\n \r\n {inputErrors == true && errorMessage == true ? (\r\n
\r\n {errorstring}\r\n
\r\n ) : (\r\n <>\r\n )}\r\n \r\n );\r\n}\r\n\r\nexport function InnPlainTextbox(props) {\r\n return ;\r\n}\r\n","export default __webpack_public_path__ + \"static/media/small-close-icon.abbbb1d7.svg\";","import React, { useRef, useState, useEffect } from \"react\";\r\nimport closeicon from \"../assets/images/small-close-icon.svg\";\r\n\r\nexport function InnSearchTextbox(props) {\r\n const [searchString, setsearchString] = useState(props.value);\r\n\r\n const handlechange = (e) => {\r\n setsearchString(e.target.value);\r\n if (props.onChange != undefined) {\r\n props.onChange(e.target.value);\r\n } else {\r\n console.log(\"onChange is not defined\");\r\n }\r\n };\r\n\r\n const handlOnCancelClick = () => {\r\n setsearchString(\"\");\r\n if (props.OnCancelClick != undefined) {\r\n props.OnCancelClick(\"\");\r\n } else {\r\n console.log(\"OnCancelClick is not defined\");\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n setsearchString(props.value);\r\n }, [props.value]);\r\n\r\n const divRef = React.useRef(null);\r\n\r\n const addClass = () => {\r\n divRef.current.classList.add(\"toggle\");\r\n };\r\n const removeClass = () => {\r\n divRef.current.classList.remove(\"toggle\");\r\n if(props.onClick != undefined){\r\n props.onClick();\r\n }\r\n };\r\n const classNm = \"expandable-container-search \" + props.className;\r\n\r\n return (\r\n
\r\n \r\n \r\n {props.innToggle == \"true\" ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n );\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport closeicon from \"../assets/images/small-close-icon.svg\";\r\n\r\nexport function InnSwitch(props) {\r\n const [switchValue, setSwitchvalue] = useState(props.value);\r\n\r\n const handleChange = (e) => {\r\n // if (switchValue == false) {\r\n // setSwitchvalue(true);\r\n // } else {\r\n // setSwitchvalue(false);\r\n // }\r\n props.onChange(!switchValue,e);\r\n setSwitchvalue(!switchValue); \r\n \r\n };\r\n\r\n useEffect(() => {\r\n //if (switchValue != props.value) {\r\n setSwitchvalue(props.value);\r\n //}\r\n }, [props.value]);\r\n\r\n // useEffect(() => {\r\n // setSwitchvalue(props.value);\r\n // }, []);\r\n\r\n return (\r\n
\r\n
\r\n

{props.children}

\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport \"../assets/css/innkeyPMS.css\";\r\n\r\nexport function InnLoader(props) {\r\n const classNm = \"overlay \" + props.className;\r\n \r\n return (\r\n
\r\n
\r\n
\r\n \r\n     Loading\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport uploadedimg from \"../assets/images/adhar-card.png\";\r\nimport { InnPreviewImage } from \".\";\r\n\r\nexport function InnFileUpload(props) {\r\n const inputFile = useRef(null);\r\n\r\n const [FilePath, setFilePath] = useState(\"\");\r\n const [previewModal, setpreviewModal] = useState(false);\r\n\r\n let base64string = \"\";\r\n\r\n useEffect(() => {\r\n if (FilePath != props.src) {\r\n setFilePath(props.src);\r\n }\r\n }, [props.src]);\r\n\r\n //For open uploader,file selection dialog box\r\n const onFileClick = () => {\r\n inputFile.current.click();\r\n };\r\n\r\n //File Change\r\n const handleChange = (e) => {\r\n let file = e.target.files[0];\r\n\r\n if (file) {\r\n let reader = new FileReader();\r\n reader.onload = () => {\r\n base64string = reader.result.replace(\"data:\", \"\").replace(/^.+,/, \"\");\r\n setFilePath(\r\n \"data:'\" + e.target.files[0].type + \"';base64,\" + base64string\r\n );\r\n //file obj\r\n let obj = {\r\n fname: e.target.files[0].name,\r\n fpath: \"data:'\" + e.target.files[0].type + \"';base64,\" + base64string,\r\n };\r\n\r\n if (props.onChange) {\r\n props.onChange(obj);\r\n }\r\n };\r\n reader.readAsDataURL(file);\r\n }\r\n };\r\n\r\n //For Close Button Click Event\r\n const handlClick = (e) => {\r\n e.stopPropagation();\r\n setFilePath(\"\");\r\n inputFile.current.value = \"\";\r\n };\r\n\r\n //For Preview Button Click Event\r\n const handlePreviewBtn = (e) => {\r\n e.stopPropagation();\r\n setpreviewModal(true);\r\n };\r\n\r\n return (\r\n //
\r\n \r\n
\r\n
\r\n {props.children}\r\n {props.customError != undefined && props.customError != \"\" ? (\r\n
\r\n {props.customError}\r\n
\r\n ) : (\r\n <>\r\n )}\r\n
\r\n
\r\n
\r\n {FilePath !== \"\" ? (\r\n
\r\n \r\n \r\n \r\n
\r\n ) : (\r\n <>\r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n {previewModal == true ? (\r\n setpreviewModal(false)}\r\n >\r\n
\r\n \r\n
\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n
\r\n );\r\n}\r\n","export default __webpack_public_path__ + \"static/media/icon-up.896c665b.svg\";","export default __webpack_public_path__ + \"static/media/icon-down.e3876917.svg\";","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n InnCheckbox,\r\n InnSingleSelectDropdown,\r\n InnTooltip,\r\n InnContextMenu,\r\n} from \".\";\r\nimport upicon from \"../assets/images/icon-up.svg\";\r\nimport downicon from \"../assets/images/icon-down.svg\";\r\nimport { Pagination } from \"@mui/material\";\r\n\r\nexport function InnTableGrid(props) {\r\n const [data, setdata] = useState([]);\r\n const [isAsc, setisAsc] = useState(\"Asc\");\r\n const [sortingColumnName, setsortingColumnName] = useState(\"\");\r\n const [pageNumber, setpageNumber] = useState(0);\r\n const [pageSize, setpageSize] = useState(5);\r\n const [paginationData, setpaginationData] = useState([]);\r\n const [activeRow, setactiveRow] = useState(\"0\");\r\n const [cellIndex, setcellIndex] = useState(0);\r\n const [isKeyUp, setisKeyUp] = useState(false);\r\n\r\n //first time called start\r\n useEffect(() => {\r\n //console.log(props.data);\r\n\r\n if (props.data) {\r\n let copy = JSON.parse(JSON.stringify(props.data));\r\n copy.map((o, i) => {\r\n o.checked = \"\";\r\n o.key = i + 1;\r\n });\r\n //console.log(copy);\r\n setdata(copy);\r\n setsortingColumnName(\"\");\r\n if (props.pagination == true) {\r\n setpaginationData(copy);\r\n setpageNumber(1);\r\n } else {\r\n setpaginationData(copy);\r\n setpageSize(props.data.length);\r\n }\r\n }\r\n }, []);\r\n //first time called end\r\n\r\n //useEffect for Props.data start\r\n useEffect(() => {\r\n if (props.data) {\r\n let copy = JSON.parse(JSON.stringify(props.data));\r\n copy.map((o, i) => {\r\n o.checked = \"\";\r\n o.key = i + 1;\r\n });\r\n //console.log(copy);\r\n setdata(copy);\r\n if (props.pagination == true) {\r\n setpaginationData(copy);\r\n setpageNumber(1);\r\n } else {\r\n setpaginationData(copy);\r\n setpageSize(props.data.length);\r\n }\r\n // setpaginationData(copy);\r\n setsortingColumnName(\"\");\r\n // setpageNumber(1);\r\n }\r\n }, [props.data]);\r\n // useeffect for props.data end\r\n\r\n //useeffect for data start\r\n useEffect(() => {\r\n //console.log(data);\r\n setpaginationData(data);\r\n if (pageNumber == 1) {\r\n handlePagination();\r\n } else {\r\n setpageNumber(1);\r\n }\r\n }, [data]);\r\n //useeffect for data end\r\n\r\n //checkbox event start\r\n const handleclick = (e) => {\r\n if (e.target.id) {\r\n let obj = paginationData.find(\r\n (x) => x[props.uniqueColumn] == e.target.id\r\n );\r\n\r\n if (obj != undefined) {\r\n let temp = [...paginationData];\r\n\r\n temp\r\n .filter((x) => x[props.uniqueColumn] == e.target.id)\r\n .map((v) => {\r\n v.checked = !v.checked;\r\n });\r\n\r\n setpaginationData(temp);\r\n\r\n let temp1 = [...data];\r\n temp1.map((c) => c.checked == true);\r\n\r\n setdata(temp1);\r\n\r\n let checkedItem = temp1.filter((f) => f.checked == true);\r\n\r\n if (props.getSelectedItem) {\r\n props.getSelectedItem(checkedItem);\r\n }\r\n }\r\n }\r\n };\r\n //checkbox event end\r\n\r\n //All checkbox checked event start\r\n const handleAllChecked = (isChecked) => {\r\n if (isChecked == true) {\r\n let temp = [...data];\r\n temp.map((c) => {\r\n if (c.isEnabled != undefined) {\r\n if (c.isEnabled == true) {\r\n c.checked = true;\r\n }\r\n }\r\n else {\r\n c.checked = true;\r\n }\r\n });\r\n setdata(temp);\r\n setpageNumber(1);\r\n let checkedItem = [];\r\n temp.map((x) => {\r\n if (x.checked == true) {\r\n checkedItem.push(x)\r\n }\r\n })\r\n console.log(checkedItem);\r\n if (props.getSelectedItem) {\r\n props.getSelectedItem(checkedItem);\r\n }\r\n } else {\r\n let temp = [...data];\r\n temp.map((c) => {\r\n c.checked = false;\r\n });\r\n setdata(temp);\r\n setpageNumber(1);\r\n let checkedItem = [];\r\n if (props.getSelectedItem) {\r\n props.getSelectedItem(checkedItem);\r\n }\r\n }\r\n };\r\n //All checkbox checked event end\r\n\r\n //sorting by ascending event start\r\n const handleSortByAscending = (e) => {\r\n const temp = [...data];\r\n let sortedAsceding = temp.sort((a, b) => {\r\n return a[e.target.id] > b[e.target.id]\r\n ? 1\r\n : a[e.target.id] < b[e.target.id]\r\n ? -1\r\n : 0;\r\n });\r\n\r\n //console.log(\"sort data \", sortedAsceding);\r\n setdata(sortedAsceding);\r\n setisAsc(\"Desc\");\r\n setsortingColumnName(e.target.id);\r\n if (pageNumber == 1) {\r\n handlePagination();\r\n } else {\r\n setpageNumber(1);\r\n }\r\n };\r\n //sorting by ascending event end\r\n\r\n //sorting by descending event start\r\n const handleSortByDescending = (e) => {\r\n const temp = [...data];\r\n let sortedDescending = temp.sort((a, b) => {\r\n return b[e.target.id] > a[e.target.id]\r\n ? 1\r\n : b[e.target.id] < a[e.target.id]\r\n ? -1\r\n : 0;\r\n });\r\n setdata(sortedDescending);\r\n setisAsc(\"Asc\");\r\n setsortingColumnName(e.target.id);\r\n if (pageNumber == 1) {\r\n handlePagination();\r\n } else {\r\n setpageNumber(1);\r\n }\r\n };\r\n //sorting by descending event end\r\n\r\n //Logic For Pagination start\r\n const handlePagination = () => {\r\n //console.log(data);\r\n const indexOfLastData = pageNumber * pageSize;\r\n const indexOfFirstData = indexOfLastData - pageSize;\r\n const currentData = data.slice(indexOfFirstData, indexOfLastData);\r\n //console.log(currentData);\r\n setpaginationData(currentData);\r\n };\r\n //Logic for Pagination end\r\n\r\n // Logic for displaying page numbers start\r\n const pageNumbers = [];\r\n for (let i = 1; i <= Math.ceil(data.length / pageSize); i++) {\r\n pageNumbers.push(i);\r\n }\r\n //Logic for displaying page numbers end\r\n\r\n //render pagenumbers logic start\r\n const renderPageNumbers = pageNumbers.map((number) => {\r\n if (number === 1 && pageNumber === 1) {\r\n return (\r\n \r\n handlePageNumberClick(e)}>\r\n {number}\r\n \r\n \r\n );\r\n } else if (number < pageSize + 1 && number > 0) {\r\n return (\r\n \r\n handlePageNumberClick(e)}\r\n >\r\n {number}\r\n \r\n \r\n );\r\n }\r\n });\r\n //render pagenumbers logic end\r\n\r\n //handle pagenumber click event start\r\n const handlePageNumberClick = (e) => {\r\n let listid = Number(e.target.id);\r\n //console.log(listid);\r\n setpageNumber(listid);\r\n };\r\n //handle pagenumber click event end\r\n\r\n //pagenumber and pagesize useeffect start\r\n useEffect(() => {\r\n if (pageNumber != 0) {\r\n handlePagination();\r\n }\r\n }, [pageNumber, pageSize]);\r\n //pagenumber and pagesize useeffect end\r\n\r\n //handle link click event start\r\n const handleLinkClick = (e) => {\r\n e.stopPropagation();\r\n const temp = [...data];\r\n let linkData = temp.find((x) => x[props.uniqueColumn] == e.target.id);\r\n if (props.handleLinkClick) {\r\n props.handleLinkClick(linkData);\r\n }\r\n };\r\n //handle link click event end\r\n\r\n //handle group button click event start\r\n const handleGrpBtn = (e) => {\r\n e.stopPropagation();\r\n let obj = [{ id: e.target.id, grpname: e.target.name }];\r\n let rowData = data.find((x) => x[props.uniqueColumn] === e.target.id);\r\n if (props.handleGrpBtn) {\r\n props.handleGrpBtn(obj, rowData);\r\n }\r\n };\r\n //handle group button click event end\r\n\r\n //handle icon click event start\r\n const handleIconClick = (e) => {\r\n e.stopPropagation();\r\n let iconData = data.find((x) => x[props.uniqueColumn] == e.target.id);\r\n //console.log(iconData);\r\n if (props.handleIconClick) {\r\n props.handleIconClick(iconData);\r\n }\r\n };\r\n //handle icon click event end\r\n\r\n //Tooltip Dynamic Content start\r\n const toolContent = (d) => {\r\n return (\r\n
\r\n
\r\n
    \r\n {d &&\r\n d.TooltipContent &&\r\n d.TooltipContent.map((p) =>
  • {p.tooltip}
  • )}\r\n
\r\n
\r\n
\r\n );\r\n };\r\n //Tooltip Dynamic Content end\r\n\r\n //Footer Functionality column wise total logic start\r\n const getTotal = (colnm) => {\r\n let total = 0;\r\n if (paginationData != undefined) {\r\n for (var i = 0; i < paginationData.length; i++) {\r\n total += paginationData[i][colnm];\r\n }\r\n return total;\r\n }\r\n };\r\n //Footer Functionality column wise total logic start\r\n\r\n //handle Row Select function start\r\n const handleRowSelect = (e, i) => {\r\n e.stopPropagation();\r\n setactiveRow(e.currentTarget.id);\r\n setcellIndex(0);\r\n let rowSelectedData = data.find((x) => x.key == e.currentTarget.id);\r\n if (props.handleRowSelect) {\r\n props.handleRowSelect(rowSelectedData, i);\r\n }\r\n };\r\n //handle Row select function end\r\n\r\n //using keyboard up/down/left/right key logic start\r\n const handleKeyUp = (e) => {\r\n setisKeyUp(true);\r\n if (e.keyCode == 40) {\r\n let s = pageSize - (activeRow % pageSize);\r\n //console.log(\"s down with active\", s, activeRow);\r\n if (s > 0) {\r\n setactiveRow(parseInt(activeRow) + 1);\r\n }\r\n }\r\n if (e.keyCode == 38) {\r\n let s = activeRow % pageSize;\r\n s = s - 1;\r\n //console.log(\"s up with active\", s, activeRow);\r\n if (s > 0) {\r\n setactiveRow(parseInt(activeRow) - 1);\r\n }\r\n }\r\n if (e.keyCode == 39) {\r\n //console.log(\"Right Key Pressed\");\r\n let s = props.header.length - 1 - parseInt(cellIndex);\r\n if (s > 0) {\r\n setcellIndex(parseInt(cellIndex) + 1);\r\n }\r\n }\r\n if (e.keyCode == 37) {\r\n if (parseInt(cellIndex) > 0) {\r\n //console.log(\"Left Key Pressed\");\r\n setcellIndex(parseInt(cellIndex) - 1);\r\n }\r\n }\r\n };\r\n //using keyboard up/down/left/right key logic end\r\n\r\n return (\r\n
\r\n {props.disabled == true ? (\r\n
\r\n ) : (\r\n \r\n )}\r\n \r\n handleKeyUp(e)}\r\n >\r\n \r\n \r\n {props.showSelection == true ? (\r\n \r\n 0 ?\r\n paginationData.every((x) => x.isEnabled == false) ?\r\n true\r\n :\r\n false\r\n :\r\n false\r\n }\r\n onChecked={(isChecked) => {\r\n handleAllChecked(isChecked);\r\n }}\r\n >{\" \"}\r\n \r\n ) : (\r\n <>\r\n )}\r\n {props.header == undefined ? (\r\n <>\r\n ) : (\r\n props.header.map((h) =>\r\n h.sorting == \"Y\" ? (\r\n \r\n {h.key}\r\n
\r\n {isAsc == \"Asc\" ? (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n ) : (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n \r\n ) : (\r\n {h.key}\r\n )\r\n )\r\n )}\r\n \r\n \r\n \r\n {paginationData == undefined ? (\r\n <>\r\n ) : (\r\n paginationData.map((d, i) => (\r\n handleRowSelect(e, i)}\r\n >\r\n {props.showSelection == true ? (\r\n \r\n handleclick(e)}\r\n id={d[props.uniqueColumn]}\r\n checked={d.checked}\r\n >\r\n \r\n ) : (\r\n <>\r\n )}\r\n {props.header == undefined ? (\r\n <>\r\n ) : (\r\n props.header.map((h, j) =>\r\n h.type == \"lnk\" ? (\r\n \r\n {\" \"}\r\n handleLinkClick(e)}\r\n id={d[props.uniqueColumn]}\r\n >\r\n {\" \"}\r\n {d[h.value]}\r\n \r\n \r\n ) : h.type == \"btnGrp\" ? (\r\n \r\n {h.btnClass.map((btncls) =>\r\n btncls ? (\r\n handleGrpBtn(e)}\r\n name={btncls.type}\r\n style={{ textAlign: h.align }}\r\n >\r\n ) : (\r\n <>\r\n )\r\n )}\r\n \r\n ) : h.type == \"status\" ? (\r\n \r\n {\" \"}\r\n \r\n {d[h.value]}\r\n \r\n ) : h.type == \"txt\" ? (\r\n \r\n {d[h.value]}\r\n \r\n ) : h.type == \"txt2Decimal\" ? (\r\n \r\n {d[h.value].toFixed(2)}\r\n \r\n ) : h.type == \"img\" ? (\r\n \r\n \r\n \r\n ) : h.type == \"opt\" ? (\r\n \r\n {\r\n props.optClick(item, name);\r\n }}\r\n />\r\n \r\n ) : h.type == \"texticon\" ? (\r\n \r\n \r\n {d.TooltipContent &&\r\n d.TooltipContent[0].tooltip == \"\" ? (\r\n
\r\n \r\n {d[h.value]}\r\n
\r\n ) : (\r\n \r\n {d[h.value]}\r\n
\r\n \r\n )}\r\n \r\n \r\n ) : h.type == \"textimg\" ? (\r\n \r\n {d[h.value]}{\" \"}\r\n \r\n \r\n ) : h.type == \"textdetails\" ? (\r\n \r\n {d[h.value]}\r\n {d[h.details1] != \"\" ?
: <>}\r\n {d[h.details1] != \"\" ? {d[h.details1]} : <>}\r\n {d[h.details2] != \"\" ?
: <>}\r\n {d[h.details2] != \"\" ? {d[h.details2]} : <>}\r\n {/* {d[h.details1]}
\r\n {d[h.details2]} */}\r\n \r\n ) : (\r\n \r\n {d[h.value]}\r\n \r\n )\r\n )\r\n )}\r\n \r\n ))\r\n )}\r\n \r\n {props.footer === true ? (\r\n \r\n \r\n {props.showSelection === true ? : <>}{\" \"}\r\n {props.header.map((o) =>\r\n o.total === \"Y\" ? (\r\n \r\n {getTotal(o.value)}\r\n \r\n ) : (\r\n \r\n )\r\n )}\r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n
\r\n {props.pagination == true ? (\r\n
\r\n
\r\n {\r\n setpageNumber(1);\r\n setpageSize(item.value);\r\n }}\r\n label=\"Select Number Per Records\"\r\n style={{ float: \"left\" }}\r\n >\r\n
\r\n
\r\n \r\n setpageNumber(pageNumber - 1)}\r\n >\r\n {\" \"}\r\n Previous\r\n \r\n ){renderPageNumbers}\r\n setpageNumber(pageNumber + 1)}\r\n >\r\n {\" \"}\r\n Next\r\n \r\n \r\n
\r\n
\r\n ) : (\r\n <>\r\n )}\r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\n\r\nexport function InnToastMessage(props) {\r\n const [isActive, setisActive] = useState(props.active);\r\n\r\n //set timer for hide toas message useeffect start\r\n useEffect(() => {\r\n setTimeout(() => {\r\n setisActive(false);\r\n }, 3000);\r\n }, []);\r\n //set timer for hide toas message useeffect end\r\n\r\n useEffect(() => {\r\n if (isActive != props.active) {\r\n setisActive(props.active);\r\n }\r\n setTimeout(() => {\r\n setisActive(false);\r\n }, 3000);\r\n }, [props.active]);\r\n\r\n //close button click event start\r\n const handleClose = () => {\r\n setisActive(false);\r\n };\r\n //close button click event end\r\n\r\n return (\r\n
\r\n {props.type == \"Success\" ? (\r\n \r\n
\r\n
\r\n
\r\n {props.type}! {props.message}\r\n
\r\n
\r\n
\r\n ) : props.type == \"Error\" ? (\r\n \r\n
\r\n
\r\n
\r\n {props.type}! {props.message}\r\n your data.\r\n
\r\n
\r\n \r\n ) : props.type == \"Warning\" ? (\r\n \r\n
\r\n
\r\n
\r\n {props.type}! {props.message}\r\n
\r\n
\r\n \r\n ) : props.type == \"Info\" ? (\r\n \r\n
\r\n
\r\n
\r\n {props.type}! {props.message}\r\n
\r\n
\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnButtonTabMore,\r\n InnStatusLabel,\r\n InnTooltip,\r\n InnButtonTypeWithDropdown,\r\n} from \".\";\r\n\r\nexport function InnTabs(props) {\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n\r\n const [activeTabId, setActiveTabId] = useState(\"tab1\");\r\n\r\n //Tab Click Event\r\n const handleTabClick = (e) => {\r\n e.stopPropagation();\r\n if (props.handleTabClick) {\r\n props.handleTabClick(e.currentTarget.id);\r\n }\r\n\r\n let index = props.collection.findIndex((x) => x.Id == e.currentTarget.id);\r\n if (index >= 7) {\r\n let temp = props.collection[6];\r\n props.collection[6] = props.collection[index];\r\n props.collection[index] = temp;\r\n }\r\n setActiveTabId(e.currentTarget.id);\r\n };\r\n\r\n //Tab Remove and Delete Event\r\n const handleTabClose = (e) => {\r\n e.stopPropagation();\r\n let filterTab = props.collection.filter((item) => item.Id !== e.target.id);\r\n setActiveTabId(\"tab1\");\r\n if (props.handleTabClose) {\r\n props.handleTabClose(filterTab);\r\n }\r\n };\r\n\r\n const Tooltip = (title, content) => {\r\n return (\r\n
\r\n
\r\n unsaved\r\n
\r\n {\" \"}\r\n
{title}
\r\n {/*
{content}
*/}\r\n
Booking No 123456
\r\n
Folio No 1234567
\r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n return (\r\n
\r\n
    \r\n {props.collection &&\r\n props.collection.map(\r\n (o, i, arr) =>\r\n i < 7 && (\r\n
  • \r\n {props.disabled == true ? (\r\n
    \r\n ) : (\r\n \r\n )}\r\n\r\n \r\n {o.isEdit == true ? (\r\n \r\n unsaved {o.isEdit}\r\n \r\n ) : (\r\n <>\r\n )}\r\n\r\n \r\n
    \r\n {o.Id}\r\n {/* {\" \"}\r\n {o.Detail} */}\r\n {\" \"}\r\n
    \r\n \r\n \r\n
  • \r\n )\r\n )}\r\n
\r\n {props.collection && props.collection.length > 7 ? (\r\n \r\n console.log(e)}\r\n >\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n
\r\n );\r\n}\r\n\r\n// export function InnTabsPlain(props) {\r\n// return (\r\n//
\r\n//
    \r\n//
  • Room & Rate Summary
  • \r\n//
  • Room Information
  • \r\n//
\r\n//
\r\n// );\r\n// }\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { InnPrimaryButton } from \".\";\r\n//import data1 from './resData.json';\r\n\r\nexport function InnInnerGrid(props) {\r\n const [temp, setTemp] = useState(false);\r\n const [data, setData] = useState(props.data);\r\n const [chlHeader, setChlHeader] = useState([]);\r\n const [chlData, setChlData] = useState([]);\r\n const [chlSelected, setChlSelected] = useState(undefined);\r\n\r\n useEffect(() => {\r\n for (var i = 0; i < props.data.length; i++) {\r\n props.data[i].IsOpen = false;\r\n }\r\n setData(props.data);\r\n console.log(props);\r\n }, [props.data]);\r\n\r\n const getData = () => {\r\n fetch(\"data.json\", {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Accept: \"application/json\",\r\n },\r\n })\r\n .then(function (response) {\r\n //console.log(response)\r\n return response.json();\r\n })\r\n .then(function (data1) {\r\n setChlHeader(data1.columHeader);\r\n setChlData(data1.data);\r\n });\r\n };\r\n\r\n const handleBtnClick = (e) => {\r\n getData();\r\n // call API and get data from server and assign to columnheader and data\r\n // setChlHeader(data1.columHeader);\r\n // setChlData(data1.data);\r\n if (JSON.parse(JSON.stringify(data))[e.target.id].IsOpen === false) {\r\n const newData = data.slice(0);\r\n newData[e.target.id].IsOpen = true;\r\n let obj = JSON.parse(JSON.stringify(data))[e.target.id];\r\n obj.srno = \"-1\";\r\n newData.splice(parseInt(e.target.id) + 1, 0, obj);\r\n setData(newData);\r\n } else {\r\n const newData = data.slice(0);\r\n newData[e.target.id].IsOpen = false;\r\n newData.splice(parseInt(e.target.id) + 1, 1);\r\n setData(newData);\r\n }\r\n setTemp(!temp);\r\n };\r\n\r\n const handleImgClick = (e) => {\r\n let o = JSON.parse(JSON.stringify(data))[e.target.id];\r\n console.log(\"Child\", JSON.parse(JSON.stringify(data))[e.target.id]);\r\n props.handleInnerImgClick(o);\r\n };\r\n\r\n const handleInnerImgClick2 = (o) => {\r\n console.log(\"inner called\", o);\r\n props.handleInnerImgClick(o);\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n {props.header && props.header.map((h) => )}\r\n \r\n \r\n {data &&\r\n data.map((d, i, arr) => (\r\n \r\n {d.srno === \"-1\" ? (\r\n \r\n ) : (\r\n <>\r\n {props.header.map((o) =>\r\n o.type === \"img\" ? (\r\n \r\n ) : o.type === \"txt\" ? (\r\n \r\n ) : o.type === \"lnk\" ? (\r\n \r\n ) : o.type === \"opt\" ? (\r\n \r\n \r\n {d.IsOpen ? \"-\" : \"+\"}\r\n \r\n \r\n ) : (\r\n <>\r\n )\r\n )}\r\n \r\n )}\r\n \r\n ))}\r\n \r\n
{h.key}
\r\n
\r\n \r\n
\r\n
\r\n {\" \"}\r\n \r\n {d[o.value]}\r\n \r\n {d[o.value]}\r\n {\" \"}\r\n \r\n {\" \"}\r\n {d[o.value]}\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\n\r\nexport function InnPreviewImage(props) {\r\n const [isClose, setisClose] = useState(false);\r\n\r\n const handleCloseclick = () => {\r\n setisClose(true);\r\n props.Onclose(false);\r\n };\r\n\r\n const classNm = \"agent-popup \" + props.className;\r\n return (\r\n
\r\n
\r\n \r\n {props.children}\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { InnCheckbox, InnContextMenu } from \".\";\r\nimport upicon from \"../assets/images/icon-up.svg\";\r\nimport downicon from \"../assets/images/icon-down.svg\";\r\n\r\nexport function InnDataGrid(props) {\r\n const [isasc, setisasc] = useState(\"ASC\");\r\n //column Data var\r\n const [Data, setdata] = useState(props.data);\r\n //For checkbox checked Item\r\n const [checkedItem, setcheckedItem] = useState([]);\r\n const [temp, settemp] = useState(false);\r\n //For set Itemsperpage var\r\n const [record, setrecord] = useState(5);\r\n //For Set Sorting Column Color\r\n const [sortcolcolor, setsortcolcolor] = useState(false);\r\n //For Set Sorting Column Name\r\n const [sortColumname, setsortColumname] = useState(\"\");\r\n //For Row Selected change color\r\n const [activeRow, setActiveRow] = useState(\"1\");\r\n //For Keyup and Down Move table\r\n //const [tabIndex, settabIndex] = useState(0);\r\n //For CellIndex\r\n const [cellIndex, setcellIndex] = useState(-1);\r\n\r\n useEffect(() => {\r\n if (props.data != undefined) {\r\n for (var i = 0; i < props.data.length; i++) {\r\n let obj = checkedItem.find(\r\n (x) => x[props.uniqueColumn] === props.data[i][props.uniqueColumn]\r\n );\r\n if (obj) props.data[i].checked = \"checked\";\r\n else props.data[i].checked = \"\";\r\n\r\n props.data[i].Key = i + 1;\r\n }\r\n setdata(props.data);\r\n setsortcolcolor(false);\r\n setrecord(props.data.length);\r\n\r\n }\r\n }, [props.data]);\r\n\r\n useEffect(() => {\r\n const t = temp;\r\n //Selected Items Get In ANother Page Functionality\r\n if (props.getSelectedItem) {\r\n props.getSelectedItem(checkedItem);\r\n }\r\n }, [temp]);\r\n\r\n //Link Click And Data Get In ANother Page Functionality\r\n const handleLinkClick = (e) => {\r\n e.stopPropagation();\r\n let rowClickabledata = Data.find(\r\n (x) => x[props.uniqueColumn] == e.target.id\r\n );\r\n if (props.handleLinkClick === undefined) {\r\n console.log(\"handleLinkClick not define\");\r\n } else {\r\n props.handleLinkClick(rowClickabledata);\r\n }\r\n };\r\n\r\n const handleSort = (e) => {\r\n e.stopPropagation();\r\n if (props.handleSortClick === undefined) {\r\n console.log(\"handleSortClick is not defined\");\r\n } else {\r\n if (isasc === \"ASC\") setisasc(\"DESC\");\r\n else setisasc(\"ASC\");\r\n props.handleSortClick(e.target.id, isasc);\r\n }\r\n };\r\n\r\n //group Button Click Event\r\n const handlegrpbtn = (e) => {\r\n e.stopPropagation();\r\n let obj = [{ id: e.target.id, grpname: e.target.name }];\r\n let rowData = Data.find((x) => x[props.uniqueColumn] === e.target.id);\r\n if (props.handleGrpBtn === undefined) {\r\n console.log(\"handleGrpBtn not define\");\r\n } else {\r\n props.handleGrpBtn(obj, rowData);\r\n }\r\n };\r\n\r\n //icon Click Event\r\n const handleIconClick = (e) => {\r\n e.stopPropagation();\r\n let rowData = Data.find((x) => x[props.uniqueColumn] === e.target.id);\r\n if (props.handleIconClick === undefined) {\r\n console.log(\"handleIconClick not define\");\r\n } else {\r\n props.handleIconClick(rowData);\r\n }\r\n };\r\n\r\n //Pagination Functionality\r\n // const Pagination = () => {\r\n // var listItems = [];\r\n // //console.log(record);\r\n // for (let i = offset * record; i < offset * record + record; i++) {\r\n // if (i >= props.data.length) {\r\n // break;\r\n // }\r\n // listItems.push(props.data[i]);\r\n // }\r\n // setdata(listItems);\r\n // //console.log(\"pagi called \", listItems);\r\n // };\r\n\r\n // const btns = [];\r\n // for (let i = 1; i <= Math.ceil(props.data.length / record); i++) {\r\n // const elem = (\r\n // setOffset(i - 1)}\r\n // >\r\n // {i}\r\n // \r\n // );\r\n // btns.push(elem);\r\n // }\r\n\r\n //Footer Functionality column wise total\r\n const getTotal = (colnm) => {\r\n let total = 0;\r\n for (var i = 0; i < Data.length; i++) {\r\n total += Data[i][colnm];\r\n }\r\n return total;\r\n };\r\n\r\n //Row Selected Click Event\r\n const handleRowSelect = (e) => {\r\n setActiveRow(e.currentTarget.id);\r\n //setcellIndex(0);\r\n if (props.handleRowSelect === undefined) {\r\n console.log(\"handleRowSelect is not define\");\r\n } else {\r\n let rowSelectedData = Data.find((x) => x.Key == e.currentTarget.id);\r\n props.handleRowSelect(rowSelectedData);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n {props.disabled == true ? (\r\n
\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {props.showSelection == true ? (\r\n \r\n ) : (\r\n <>\r\n )}\r\n {props.header &&\r\n props.header.map((h) =>\r\n h.sorting == \"Y\" ? (\r\n \r\n ) : (\r\n \r\n )\r\n )}\r\n \r\n \r\n \r\n {Data &&\r\n Data.map((d, i, arr) => (\r\n \r\n {props.showSelection == true ? (\r\n \r\n {\r\n if (isChecked) {\r\n arr[i].checked = \"checked\";\r\n checkedItem.push(d);\r\n setcheckedItem(checkedItem);\r\n settemp(!temp);\r\n } else {\r\n let obj = Data.find((x) => x == d);\r\n let index = checkedItem.indexOf(obj);\r\n checkedItem.splice(index, 1);\r\n setcheckedItem(checkedItem);\r\n arr[i].checked = \"\";\r\n settemp(!temp);\r\n }\r\n }}\r\n >\r\n \r\n ) : (\r\n <>\r\n )}\r\n {props.header.map((o, i, arr) =>\r\n o.type === \"status\" ? (\r\n \r\n {\" \"}\r\n \r\n {d[o.value]}\r\n \r\n \r\n ) : o.type === \"txt\" ? (\r\n \r\n {d[o.value]}\r\n \r\n ) : o.type === \"texticon\" ? (\r\n \r\n \r\n \r\n\r\n {d[o.value]}\r\n \r\n \r\n ) : o.type === \"lnk\" ? (\r\n \r\n {\" \"}\r\n \r\n {\" \"}\r\n {d[o.value]}\r\n \r\n \r\n ) : o.type === \"img\" ? (\r\n \r\n \r\n \r\n ) : o.type === \"opt\" ? (\r\n \r\n {/* props.optClick(item, name)}\r\n > */}\r\n 1 ?\r\n true\r\n :\r\n false\r\n }\r\n id={d.Key}\r\n list={props.optData}\r\n type=\"Dot\"\r\n name=\"Dot Select\"\r\n onChange={(item, name) => props.optClick(item, name)}\r\n />\r\n \r\n ) : o.type === \"btnGrp\" ? (\r\n \r\n
\r\n {o.btnClass.map((btncls, j, arr) =>\r\n btncls ? (\r\n \r\n ) : (\r\n <>\r\n )\r\n )}\r\n
\r\n \r\n ) : (\r\n <>\r\n )\r\n )}\r\n \r\n ))}\r\n
\r\n {props.footer === true ? (\r\n \r\n \r\n {props.showSelection === true ? : <>}{\" \"}\r\n {props.header.map((o) =>\r\n o.total === \"Y\" ? (\r\n \r\n ) : (\r\n \r\n )\r\n )}\r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n
\r\n 0 ?\r\n Data.every((x) => x.isEnabled == false) ?\r\n true\r\n :\r\n false\r\n :\r\n false\r\n }\r\n onChecked={(isChecked) => {\r\n if (isChecked) {\r\n let allCheckedData = Data;\r\n let tempData = []\r\n for (var i = 0; i < allCheckedData.length; i++) {\r\n if (allCheckedData[i].isEnabled != undefined) {\r\n if (allCheckedData[i].isEnabled == true) {\r\n console.log(allCheckedData[i]);\r\n allCheckedData[i].checked = \"checked\";\r\n }\r\n else {\r\n allCheckedData[i].checked = \"\";\r\n }\r\n }\r\n else {\r\n allCheckedData[i].checked = \"checked\";\r\n }\r\n }\r\n setdata(allCheckedData);\r\n allCheckedData.forEach(x => {\r\n if (x.checked == \"checked\") {\r\n tempData.push(x)\r\n }\r\n });\r\n setcheckedItem(tempData);\r\n settemp(!temp);\r\n } else {\r\n let allUnCheckedData = Data;\r\n for (var i = 0; i < allUnCheckedData.length; i++) {\r\n allUnCheckedData[i].checked = \"\";\r\n }\r\n setdata(allUnCheckedData);\r\n setcheckedItem([]);\r\n settemp(!temp);\r\n }\r\n }}\r\n >{\" \"}\r\n \r\n {h.key}\r\n
\r\n {isasc === \"ASC\" ? (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n ) : (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n
{h.key}
\r\n {getTotal(o.value)}\r\n
\r\n
\r\n \r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport Moment from \"moment\";\r\nimport { InnSingleSelectDropdown } from \".\";\r\n\r\nexport function InnMultiDateSelection(props) {\r\n const [startDate, setStartDate] = useState(new Date());\r\n const [endDate, setEndDate] = useState(null);\r\n const years = [];\r\n for (var i = 1900; i <= new Date().getFullYear() + 10; i++) {\r\n years.push({ key: i, value: i });\r\n }\r\n const months = [\r\n { key: \"Jan\", value: \"Jan\" },\r\n { key: \"Feb\", value: \"Feb\" },\r\n { key: \"Mar\", value: \"Mar\" },\r\n { key: \"Apr\", value: \"Apr\" },\r\n { key: \"May\", value: \"May\" },\r\n { key: \"Jun\", value: \"Jun\" },\r\n { key: \"Jul\", value: \"Jul\" },\r\n { key: \"Aug\", value: \"Aug\" },\r\n { key: \"Sep\", value: \"Sep\" },\r\n { key: \"Oct\", value: \"Oct\" },\r\n { key: \"Nov\", value: \"Nov\" },\r\n { key: \"Dec\", value: \"Dec\" },\r\n ];\r\n\r\n const handleChange = (e) => {\r\n const [start, end] = e;\r\n setStartDate(start);\r\n setEndDate(end);\r\n if (props.onChange) {\r\n props.onChange([\r\n Moment(new Date(e[0]).toISOString().split(\"T\")[0]).format(\"DD-MMM-YY\"),\r\n Moment(new Date(e[1]).toISOString().split(\"T\")[0]).format(\"DD-MMM-YY\"),\r\n ]);\r\n }\r\n };\r\n\r\n return (\r\n \r\n
{props.label}
\r\n (\r\n
\r\n \r\n
\r\n \r\n changeMonth(\r\n months.findIndex((obj) => obj.value == item.value)\r\n )\r\n }\r\n selectedSerNo={months[date.getMonth()].value}\r\n >\r\n changeYear(item.value)}\r\n selectedSerNo={date.getFullYear()}\r\n >\r\n
\r\n \r\n
\r\n )}\r\n >\r\n \r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport Moment from \"moment\";\r\nimport { InnSingleSelectDropdown } from \".\";\r\n\r\nexport function InnDateTimeSelection(props) {\r\n const [startDate, setstartDate] = useState(new Date());\r\n const years = [];\r\n for (var i = 1900; i <= new Date().getFullYear() + 10; i++) {\r\n years.push({ key: i, value: i });\r\n }\r\n\r\n const months = [\r\n { key: \"Jan\", value: \"Jan\" },\r\n { key: \"Feb\", value: \"Feb\" },\r\n { key: \"Mar\", value: \"Mar\" },\r\n { key: \"Apr\", value: \"Apr\" },\r\n { key: \"May\", value: \"May\" },\r\n { key: \"Jun\", value: \"Jun\" },\r\n { key: \"Jul\", value: \"Jul\" },\r\n { key: \"Aug\", value: \"Aug\" },\r\n { key: \"Sep\", value: \"Sep\" },\r\n { key: \"Oct\", value: \"Oct\" },\r\n { key: \"Nov\", value: \"Nov\" },\r\n { key: \"Dec\", value: \"Dec\" },\r\n ];\r\n\r\n const handleChange = (e) => {\r\n setstartDate(e);\r\n if (props.onChange) {\r\n props.onChange(\r\n Moment(new Date(e).toISOString()).format(\"DD-MMM-YY HH:mm:ss\")\r\n );\r\n }\r\n };\r\n\r\n return (\r\n \r\n
{props.label}
\r\n (\r\n
\r\n \r\n
\r\n \r\n changeMonth(\r\n months.findIndex((obj) => obj.value == item.value)\r\n )\r\n }\r\n selectedSerNo={months[date.getMonth()].value}\r\n >\r\n changeYear(item.value)}\r\n selectedSerNo={date.getFullYear()}\r\n >\r\n
\r\n \r\n
\r\n )}\r\n >\r\n \r\n );\r\n}\r\n","import React, { useState, useRef, useEffect } from \"react\";\r\nimport \"../assets/css/bootstrap-grid.css\";\r\nimport \"../assets/css/innkeyPMS.css\";\r\nimport styles from \"../assets/css/dropdown.css\";\r\nimport DownArrow from \"../assets/images/down-arrow.svg\";\r\nimport UpArrow from \"../assets/images/up-arrow.svg\";\r\n\r\nexport function InnDropdownWithRadioButton(props) {\r\n const [isListOpen, setisListOpen] = useState(false);\r\n const [keyword, setkeyword] = useState(\"\");\r\n const [inputErrors, setinputErrors] = useState(false);\r\n const [errorMessage, seterrorMessage] = useState(false);\r\n const [errorString, seterrorString] = useState(\"\");\r\n const [selected, setselected] = useState([]);\r\n\r\n //reference varible for searching field start\r\n const searchField = useRef(null);\r\n //reference varible for searching field end\r\n\r\n //For Open Close Dropdown start\r\n const toggleList = () => {\r\n setisListOpen(true);\r\n setkeyword(\"\");\r\n\r\n //for search functionality toggle event\r\n if (isListOpen && searchField.current) {\r\n searchField.current.focus();\r\n setkeyword(\"\");\r\n }\r\n\r\n if (isListOpen == false) {\r\n console.log(isListOpen);\r\n\r\n if (selected) {\r\n console.log(selected.value);\r\n setTimeout(() => {\r\n const element = document.getElementsByClassName(\r\n `dd-scroll-list ${props.id}`\r\n );\r\n console.log(element);\r\n if (document.getElementById(selected.value) !== null) {\r\n console.log(selected.value);\r\n element[0].scrollTo({\r\n top: document.getElementById(selected.value).offsetTop - 100,\r\n behavior: \"smooth\",\r\n });\r\n }\r\n }, 0);\r\n }\r\n }\r\n };\r\n //For Open Close Dropdown End\r\n\r\n //For Display ListItems Start\r\n const listItems = () => {\r\n let tempList = [...props.list];\r\n console.log(\"list of props\", tempList);\r\n\r\n if (keyword.length) {\r\n //check the keyword is match to key or not\r\n tempList = props.list.filter((item) =>\r\n item.value.toLowerCase().includes(keyword.toLowerCase())\r\n );\r\n }\r\n\r\n if (tempList.length > 0) {\r\n return tempList.map((item) => (\r\n
\r\n selectItem(item)}\r\n id={item.value}\r\n >\r\n
{item.value}
\r\n selectItem(item)}\r\n checked={item == selected ? item.value : \"\"}\r\n />\r\n \r\n \r\n
\r\n ));\r\n }\r\n\r\n return (\r\n \r\n {props.searchable && props.searchable[1]}\r\n \r\n );\r\n };\r\n //For Display ListItems End\r\n\r\n //For TextBox Search Function start\r\n const filterList = (e) => {\r\n setkeyword(e.target.value.toLowerCase());\r\n };\r\n //For TextBox Search Function End\r\n\r\n //For Close Dropdown Start\r\n const close = () => {\r\n setisListOpen(false);\r\n };\r\n //For Close Dropdown End\r\n\r\n useEffect(() => {\r\n window.removeEventListener(\"click\", close);\r\n return () => {\r\n window.removeEventListener(\"click\", close);\r\n };\r\n }, [isListOpen]);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n if (isListOpen) {\r\n window.addEventListener(\"click\", close);\r\n } else {\r\n window.removeEventListener(\"click\", close);\r\n }\r\n }, 0);\r\n }, [isListOpen]);\r\n\r\n //For Display Selected Items\r\n const selectItem = (item) => {\r\n console.log(item);\r\n let foundItem;\r\n let tempList = [...props.list];\r\n\r\n if (item) {\r\n if (!item.key) {\r\n foundItem = tempList.find((i) => i.value === item.value);\r\n console.log(foundItem);\r\n }\r\n setselected(item);\r\n props.onChange(item);\r\n }\r\n\r\n // this.setState(\r\n // {\r\n // // title: item.key || foundItem.key,\r\n // title: item.value || foundItem.value,\r\n // isListOpen: false,\r\n // selectedItem: item,\r\n // },\r\n\r\n // () => {\r\n // onChange(item, name);\r\n // if (this.state.selectedItem == null || undefined) {\r\n // console.log(\"validation called\");\r\n // this.setState({\r\n // inputErrors: true,\r\n // errorMessage: true,\r\n // errorstring: this.props.customError,\r\n // });\r\n // } else {\r\n // console.log(\"validation not called\");\r\n // this.setState({\r\n // inputErrors: false,\r\n // errorMessage: false,\r\n // errorstring: \"\",\r\n // });\r\n // }\r\n // console.log(\"state value is \", this.state.selectedItem);\r\n // }\r\n // );\r\n //}\r\n };\r\n\r\n //only one time call useeffect start\r\n useEffect(() => {\r\n if (props.select) {\r\n setselected(props.select);\r\n } else {\r\n setselected([]);\r\n }\r\n\r\n if (props.select) {\r\n selectSingleItem(props.select);\r\n }\r\n }, []);\r\n //only one time call useeffect end\r\n\r\n const selectSingleItem = (item) => {\r\n if (item && props.list) {\r\n const selectedItem = props.list.find((i) => i.value === item.value);\r\n selectItem(selectedItem);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (props.select !== selected) {\r\n setselected(props.select);\r\n }\r\n }, [props.select]);\r\n\r\n return (\r\n \r\n
{props.label}
\r\n
\r\n \r\n \r\n {props.buttonLayout == false ? selected && selected.value : \"\"}\r\n
\r\n {isListOpen ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n {isListOpen && (\r\n \r\n {props.searchable && (\r\n e.stopPropagation()}\r\n onChange={(e) => filterList(e)}\r\n />\r\n )}\r\n \r\n {listItems()}\r\n \r\n \r\n )}\r\n \r\n {inputErrors == true && errorMessage == true ? (\r\n
\r\n {errorString}\r\n
\r\n ) : (\r\n <>\r\n )}\r\n \r\n );\r\n}\r\n","// import React, { useEffect, useState, useRef } from \"react\";\r\n// import actiondownarrow from \"../assets/images/action-dwn-arrow.svg\";\r\n// import threedots from \"../assets/images/hr-three-dot.svg\";\r\n\r\n// export function InnPlainButtonWithDropdown(props) {\r\n// const [isOpen, setisOpen] = useState(false);\r\n// const [ddValue, setddValue] = useState(\"\");\r\n// const wrapperRef = useRef(null);\r\n// const handleSelection = () => {\r\n// console.log(ddValue);\r\n// props.onSelectionChange(ddValue);\r\n// setisOpen(!isOpen);\r\n// };\r\n// const handleClickOuside = (e) => {\r\n// if (wrapperRef.current && !wrapperRef.current.contains(e.target)) {\r\n// setisOpen(false);\r\n// }\r\n// };\r\n// useEffect(() => {\r\n// document.addEventListener(\"click\", handleClickOuside, false);\r\n// return () => {\r\n// document.removeEventListener(\"click\", handleClickOuside, false);\r\n// };\r\n// }, [isOpen]);\r\n// const content =\r\n// props.data &&\r\n// props.data.map((d) => {\r\n// return (\r\n//
  • setddValue(d.value)} onClick={handleSelection}>\r\n// {d.value}\r\n//
  • \r\n// );\r\n// });\r\n// return (\r\n// \r\n// {props.children}\r\n// {isOpen ? (\r\n//
    \r\n//
    \r\n//
      {content}
    \r\n//
    \r\n//
    \r\n// ) : (\r\n// <>\r\n// )}\r\n// \r\n// );\r\n// }\r\n\r\n// export function InnButton3Darrow(props) {\r\n// const [isOpen, setisOpen] = useState(false);\r\n// const [ddValue, setddValue] = useState(\"\");\r\n// const wrapperRef = useRef(null);\r\n// const handleSelection = () => {\r\n// console.log(ddValue);\r\n// props.onSelectionChange(ddValue);\r\n// setisOpen(!isOpen);\r\n// };\r\n// const handleClickOuside = (e) => {\r\n// if (wrapperRef.current && !wrapperRef.current.contains(e.target)) {\r\n// setisOpen(false);\r\n// }\r\n// };\r\n// useEffect(() => {\r\n// document.addEventListener(\"click\", handleClickOuside, false);\r\n// return () => {\r\n// document.removeEventListener(\"click\", handleClickOuside, false);\r\n// };\r\n// }, [isOpen]);\r\n// const content =\r\n// props.data &&\r\n// props.data.map((d) => {\r\n// return (\r\n//
  • setddValue(d.value)} onClick={handleSelection}>\r\n// {d.key}\r\n//
  • \r\n// );\r\n// });\r\n// const classNm = \"right-arrow-3d \" + props.className;\r\n// return (\r\n//
    \r\n// \r\n// {isOpen ? (\r\n//
    \r\n//
    {content}
    \r\n//
    \r\n// ) : (\r\n// <>\r\n// )}\r\n//
    \r\n// );\r\n// }\r\n\r\n// export function InnButtonTypeWithDropdown(props) {\r\n// const [isOpen, setisOpen] = useState(false);\r\n// const [ddValue, setddValue] = useState(\"\");\r\n// const [popX, setPopX] = useState(0);\r\n// const [popY, setPopY] = useState(0);\r\n// const wrapperRef = useRef(null);\r\n// useEffect(() => {\r\n// if (props.PopWidth) setPopX(props.PopWidth);\r\n// if (props.PopHeight) setPopY(props.PopHeight);\r\n// }, []);\r\n// const handleSelection = () => {\r\n// console.log(ddValue);\r\n// props.onSelectionChange(ddValue);\r\n// setisOpen(!isOpen);\r\n// };\r\n// const handleClickOuside = (e) => {\r\n// if (wrapperRef.current && !wrapperRef.current.contains(e.target)) {\r\n// setisOpen(false);\r\n// }\r\n// };\r\n// useEffect(() => {\r\n// document.addEventListener(\"click\", handleClickOuside, false);\r\n// return () => {\r\n// document.removeEventListener(\"click\", handleClickOuside, false);\r\n// };\r\n// }, [isOpen]);\r\n// const content =\r\n// props.data &&\r\n// props.data.map((d) => {\r\n// return (\r\n//
  • setddValue(d.value)} onClick={handleSelection}>\r\n// {d.key}\r\n//
  • \r\n// );\r\n// });\r\n// return (\r\n//
    \r\n// \r\n// {props.children}\r\n// {props.buttonType == \"DropdownWithButton\" ? (\r\n// \r\n// \r\n// \r\n// ) : props.buttonType == \"DropdownWithDotsButton\" ? (\r\n// \r\n// \r\n// \r\n// ) : (\r\n// <>\r\n// )}\r\n// \r\n// {isOpen ? (\r\n//
    \r\n//
    \r\n//
      {content}
    \r\n//
    \r\n//
    \r\n// ) : (\r\n// <>\r\n// )}\r\n//
    \r\n// );\r\n// }\r\n\r\nimport React, { Component, useRef, useEffect, useState } from \"react\";\r\nimport TooltipTrigger from \"react-popper-tooltip\";\r\nimport \"react-popper-tooltip/dist/styles.css\";\r\nimport \"../assets/css/bootstrap-grid.css\";\r\nimport \"../assets/css/innkeyPMS.css\";\r\n\r\nimport propTypes from \"prop-types\";\r\nimport styles from \"../assets/css/dropdown.css\";\r\nimport actiondownarrow from \"../assets/images/action-dwn-arrow.svg\";\r\nimport threedots from \"../assets/images/hr-three-dot.svg\";\r\n\r\nimport DownArrow from \"../assets/images/down-arrow.svg\";\r\nimport UpArrow from \"../assets/images/up-arrow.svg\";\r\n\r\nexport function InnButtonTabMore(props) {\r\n const [isOpen, setisOpen] = useState(false);\r\n const [ddValue, setddValue] = useState(\"\");\r\n const wrapperRef = useRef(null);\r\n\r\n const handleSelection = () => {\r\n props.onSelectionChange(ddValue);\r\n setisOpen(!isOpen);\r\n };\r\n\r\n const handleClickOuside = (e) => {\r\n if (wrapperRef.current && !wrapperRef.current.contains(e.target)) {\r\n setisOpen(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n document.addEventListener(\"click\", handleClickOuside, false);\r\n return () => {\r\n document.removeEventListener(\"click\", handleClickOuside, false);\r\n };\r\n }, [isOpen]);\r\n\r\n const classNm = \"right-arrow-3d \" + props.className;\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n {isOpen ? (\r\n
    \r\n
    {props.children}
    \r\n
    \r\n ) : (\r\n <>\r\n )}\r\n
    \r\n );\r\n}\r\n\r\n//ButtonWithDropdown Component start\r\nexport function InnButtonTypeWithDropdown(props) {\r\n const [isListOpen, setisListOpen] = useState(false);\r\n const [keyword, setkeyword] = useState(\"\");\r\n const [selected, setselected] = useState(\"\");\r\n\r\n //reference varible for searching field start\r\n const searchField = useRef(null);\r\n const btnRef = useRef(null);\r\n const popupRef = useRef(null);\r\n const childSpanRef = useRef(null);\r\n //reference varible for searching field end\r\n\r\n //For Open Close Dropdown start\r\n const toggleList = () => {\r\n if (isListOpen == false) {\r\n setisListOpen(true);\r\n } else {\r\n setisListOpen(false);\r\n }\r\n\r\n setkeyword(\"\");\r\n\r\n //for search functionality toggle event\r\n if (isListOpen && searchField.current) {\r\n searchField.current.focus();\r\n setkeyword(\"\");\r\n }\r\n\r\n if (isListOpen == false) {\r\n //console.log(isListOpen);\r\n\r\n if (selected) {\r\n //console.log(selected.value);\r\n setTimeout(() => {\r\n const element = document.getElementsByClassName(\r\n `dd-scroll-list ${props.id}`\r\n );\r\n //console.log(element);\r\n if (document.getElementById(selected) != null) {\r\n //console.log(selected.value);\r\n element[0].scrollTo({\r\n top: document.getElementById(selected).offsetTop - 100,\r\n behavior: \"smooth\",\r\n });\r\n }\r\n }, 0);\r\n }\r\n\r\n //For Dropdown Position\r\n if (props.type == \"Plain\") {\r\n setTimeout(() => {\r\n if (\r\n childSpanRef.current.getBoundingClientRect().x +\r\n popupRef.current.getBoundingClientRect().width >\r\n window.innerWidth\r\n ) {\r\n popupRef.current.style.left =\r\n -(\r\n popupRef.current.getBoundingClientRect().width -\r\n childSpanRef.current.getBoundingClientRect().width\r\n ) + \"px\";\r\n }\r\n if (\r\n childSpanRef.current.getBoundingClientRect().y +\r\n popupRef.current.getBoundingClientRect().height >\r\n window.innerHeight\r\n ) {\r\n popupRef.current.style.bottom = \"100%\";\r\n }\r\n }, 0);\r\n } else {\r\n setTimeout(() => {\r\n console.log(\"btn\", btnRef.current.getBoundingClientRect());\r\n console.log(\"popup\", popupRef.current.getBoundingClientRect());\r\n console.log(window.innerWidth);\r\n if (\r\n btnRef.current.getBoundingClientRect().x +\r\n popupRef.current.getBoundingClientRect().width >\r\n window.innerWidth\r\n ) {\r\n popupRef.current.style.left =\r\n -(\r\n popupRef.current.getBoundingClientRect().width -\r\n btnRef.current.getBoundingClientRect().width\r\n ) + \"px\";\r\n }\r\n if (\r\n btnRef.current.getBoundingClientRect().y +\r\n popupRef.current.getBoundingClientRect().height >\r\n window.innerHeight\r\n ) {\r\n popupRef.current.style.bottom = \"100%\";\r\n }\r\n }, 0);\r\n }\r\n }\r\n };\r\n //For Open Close Dropdown End\r\n\r\n //For Display ListItems Start\r\n const listItems = () => {\r\n let tempList = JSON.parse(JSON.stringify(props.list));\r\n //console.log(\"list of props\", tempList);\r\n\r\n if (keyword.length) {\r\n //check the keyword is match to key or not\r\n tempList = props.list.filter((item) =>\r\n item.value.toLowerCase().includes(keyword.toLowerCase())\r\n );\r\n }\r\n\r\n if (tempList.length > 0) {\r\n return tempList.map((item) => (\r\n selectItem(item)}\r\n id={item.value}\r\n >\r\n {item.value}\r\n \r\n ));\r\n }\r\n\r\n return (\r\n \r\n {props.searchable && props.searchable[1]}\r\n \r\n );\r\n };\r\n //For Display ListItems End\r\n\r\n //For TextBox Search Function start\r\n const filterList = (e) => {\r\n setkeyword(e.target.value.toLowerCase());\r\n };\r\n //For TextBox Search Function End\r\n\r\n //For Close Dropdown Start\r\n const close = () => {\r\n setisListOpen(false);\r\n };\r\n //For Close Dropdown End\r\n\r\n useEffect(() => {\r\n window.removeEventListener(\"click\", close);\r\n return () => {\r\n window.removeEventListener(\"click\", close);\r\n };\r\n }, [isListOpen]);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n if (isListOpen) {\r\n window.addEventListener(\"click\", close);\r\n } else {\r\n window.removeEventListener(\"click\", close);\r\n }\r\n }, 0);\r\n }, [isListOpen]);\r\n\r\n //For Display Selected Items\r\n const selectItem = (item) => {\r\n //console.log(item);\r\n let foundItem;\r\n let tempList = JSON.parse(JSON.stringify(props.list));\r\n if (item) {\r\n if (!item.key) {\r\n foundItem = tempList.find((i) => i.value == item.value);\r\n //console.log(foundItem);\r\n }\r\n setselected(item.value);\r\n if (props.onChange != undefined) props.onChange(item);\r\n }\r\n };\r\n\r\n const selectSingleItem = (item) => {\r\n let tempList = JSON.parse(JSON.stringify(props.list));\r\n if (item && props.list) {\r\n const selectedItem = tempList.find((i) => i.value == item.value);\r\n selectItem(selectedItem);\r\n }\r\n\r\n if (item && props.list && props.selectedSerNo) {\r\n const selectedItem = tempList.find((i) => i.key == props.selectedSerNo);\r\n selectItem(selectedItem);\r\n }\r\n };\r\n //only one time call useeffect start\r\n useEffect(() => {\r\n //for unique key\r\n if (props.selectedSerNo) {\r\n const obj = props.list.find((f) => f.key == selected);\r\n if (obj) {\r\n setselected(obj.value);\r\n }\r\n } else {\r\n setselected([]);\r\n }\r\n //for unique key\r\n if (props.selectedSerNo) {\r\n selectSingleItem(props.selectedSerNo);\r\n }\r\n }, []);\r\n //only one time call useeffect end\r\n\r\n useEffect(() => {\r\n let tempList = JSON.parse(JSON.stringify(props.list));\r\n if (selected != undefined) {\r\n if (props.selectedSerNo != selected) {\r\n const obj = tempList.find((f) => f.key == props.selectedSerNo);\r\n\r\n if (obj) {\r\n setselected(obj.value);\r\n }\r\n }\r\n }\r\n }, [props.selectedSerNo]);\r\n return (\r\n \r\n {/*
    {props.label}
    */}\r\n \r\n {props.type == \"Plain\" ? (\r\n \r\n {props.children}\r\n \r\n ) : (\r\n \r\n \r\n {/* {selected ? selected.value : \"\"} */}\r\n {props.title}\r\n \r\n {props.type == \"Action\" ? (\r\n \r\n \r\n \r\n ) : props.type == \"Dot\" ? (\r\n \r\n \r\n \r\n ) : props.type == \"Arrow\" ? (\r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n )}\r\n {isListOpen && (\r\n \r\n {props.searchable && (\r\n e.stopPropagation()}\r\n onChange={(e) => filterList(e)}\r\n />\r\n )}\r\n
    {listItems()}
    \r\n \r\n )}\r\n \r\n \r\n );\r\n}\r\n//ButtonWithDropdown Component End\r\n","import React, { useRef, useEffect, useState } from \"react\";\r\nimport SunEditor from \"suneditor-react\";\r\nimport \"../assets/css/suneditor.min.css\";\r\nimport \"../assets/css/editor.css\";\r\n\r\nexport function InnEditor(props) {\r\n\r\n //For Display Error Message Varible\r\n const [inputErrors, setinputErrors] = useState(false);\r\n const [errorMessage, seterrorMessage] = useState(false);\r\n const [errorstring, seterrorstring] = useState(\"\");\r\n \r\n //get html code for editor text change event start\r\n const handleChange = (content) => {\r\n const html =\r\n \"Document\" +\r\n content +\r\n \"\";\r\n console.log(html);\r\n props.editorChange(html);\r\n if (content) {\r\n setinputErrors(false);\r\n seterrorMessage(false);\r\n seterrorstring(\"\");\r\n }\r\n };\r\n //get html code foe editor text change event end\r\n\r\n useEffect(() => {\r\n if (props.customError && props.customError.length > 0) {\r\n setinputErrors(true);\r\n seterrorMessage(true);\r\n seterrorstring(props.customError);\r\n } else {\r\n setinputErrors(false);\r\n seterrorMessage(false);\r\n seterrorstring(\"\");\r\n }\r\n }, [props.customError]);\r\n\r\n return (\r\n
    \r\n {\" \"}\r\n {inputErrors == true && errorMessage == true ? (\r\n
    \r\n {errorstring}\r\n
    \r\n ) : (\r\n <>\r\n )}\r\n
    \r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport Moment from \"moment\";\r\nimport { InnSingleSelectDropdown } from \".\";\r\n\r\nexport function InnCalendar(props) {\r\n let temp;\r\n temp = new Date();\r\n\r\n //Months Array Start\r\n const months = [\r\n { key: \"Jan\", value: \"Jan\" },\r\n { key: \"Feb\", value: \"Feb\" },\r\n { key: \"Mar\", value: \"Mar\" },\r\n { key: \"Apr\", value: \"Apr\" },\r\n { key: \"May\", value: \"May\" },\r\n { key: \"Jun\", value: \"Jun\" },\r\n { key: \"Jul\", value: \"Jul\" },\r\n { key: \"Aug\", value: \"Aug\" },\r\n { key: \"Sep\", value: \"Sep\" },\r\n { key: \"Oct\", value: \"Oct\" },\r\n { key: \"Nov\", value: \"Nov\" },\r\n { key: \"Dec\", value: \"Dec\" },\r\n ];\r\n //Months Array End\r\n\r\n //set startdate var start\r\n const [startDate, setstartDate] = useState(temp);\r\n //set startdate var End\r\n\r\n //Date Change Event Start\r\n const handleChange = (e) => {\r\n setstartDate(e);\r\n if (props.onChange) {\r\n props.onChange(Moment(new Date(e).toDateString()).format(\"DD-MMM-YY\"));\r\n }\r\n };\r\n //Date Change Event End\r\n\r\n //Years Array Start\r\n const years = [];\r\n for (var i = 1900; i <= new Date().getFullYear() + 10; i++) {\r\n years.push({ key: i, value: i });\r\n }\r\n //Years Array End\r\n\r\n //if change props.selected var then call start\r\n useEffect(() => {\r\n let temp;\r\n if (\r\n props.selected == \"\" ||\r\n props.selected == null ||\r\n props.selected == undefined\r\n ) {\r\n temp = new Date();\r\n } else {\r\n temp = new Date(props.selected);\r\n }\r\n setstartDate(temp);\r\n }, [props.selected]);\r\n //if change props.selected var then call end\r\n\r\n return (\r\n \r\n (\r\n
    \r\n \r\n
    \r\n {\r\n changeMonth(\r\n months.findIndex((obj) => obj.value == item.value)\r\n );\r\n }}\r\n selectedSerNo={months[date.getMonth()].value}\r\n >\r\n changeYear(item.value)}\r\n selectedSerNo={date.getFullYear()}\r\n >\r\n
    \r\n \r\n
    \r\n )}\r\n >\r\n \r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\n\r\nexport function InnSingleRadioButton(props) {\r\n //change event of single radio start\r\n const handleChangePackageRadio = (e) => {\r\n setrbvalue(e.target.value);\r\n if (props.onSingleSelectionChange) {\r\n props.onSingleSelectionChange(e.target.value);\r\n }\r\n };\r\n //change event of single radio end\r\n\r\n //set single radio button value start\r\n const [rbvalue, setrbvalue] = useState(\"\");\r\n //set single radio button value end\r\n\r\n return (\r\n
    \r\n \r\n {props.label == undefined ? <> :
    {props.label}
    }\r\n \r\n \r\n \r\n
    \r\n );\r\n}\r\n","import react, { useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { HIDE_CONFIRM, SHOW_CONFIRM } from \"../reducer/authSlice\";\r\nimport { confirmData } from \"../reducer/authSlice\";\r\n\r\nlet resolveCallback;\r\nexport function useConfirm() {\r\n const dispatch = useDispatch();\r\n const selector = useSelector(confirmData);\r\n\r\n const onConfirm = () => {\r\n dispatch(HIDE_CONFIRM(false));\r\n resolveCallback({ value: true });\r\n };\r\n\r\n const onCancle = () => {\r\n dispatch(HIDE_CONFIRM(false));\r\n resolveCallback({ value: false });\r\n };\r\n\r\n const onSelection = (btnval, txtval) => {\r\n dispatch(HIDE_CONFIRM(false));\r\n resolveCallback({ value: btnval, text: txtval });\r\n };\r\n\r\n const confirm = (text, type, buttons) => {\r\n dispatch(SHOW_CONFIRM(text, type, buttons));\r\n\r\n return new Promise((res, rej) => {\r\n return (resolveCallback = res);\r\n });\r\n };\r\n\r\n return {\r\n confirm,\r\n onConfirm,\r\n onCancle,\r\n onSelection,\r\n selector,\r\n };\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { InnActionButton, InnPrimaryButton } from \"./innButton\";\r\nimport { InnModalPopup } from \"./innModalPopup\";\r\nimport { InnRadioButton } from \"./innRadiobutton\";\r\nimport { InnTextbox } from \"./innTextbox\";\r\nimport { useConfirm } from \"./useConfirm\";\r\n\r\nexport function InnConfirmAlert(props) {\r\n const { selector, onSelection } = useConfirm();\r\n\r\n const [remarkvalue, setremarkvalue] = useState(\"\");\r\n\r\n const handleOnBtnClick = (e) => {\r\n onSelection(e.target.id, remarkvalue);\r\n };\r\n\r\n useEffect(() => {\r\n setremarkvalue(\"\");\r\n }, [selector.show]);\r\n\r\n const rbData = [\r\n { key: \"Upgrade\", value: \"Upgrade\" },\r\n { key: \"Upsell\", value: \"Upsell\" },\r\n { key: \"Change category without Upgrade & Upsell\", value: \"Change category without Upgrade & Upsell\" },\r\n ];\r\n\r\n return selector.show ? (\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    {selector.Message}
    \r\n {selector.Type == \"upsell\" ? (\r\n
    \r\n
    \r\n {\r\n console.log(\"selection changed called : \" + value);\r\n }}\r\n position=\"V\"\r\n disabled={false}\r\n >\r\n
    \r\n
    \r\n {\" \"}\r\n

    {selector.Message}

    \r\n setremarkvalue(v)}\r\n value={remarkvalue}\r\n >\r\n Remarrks\r\n \r\n
    \r\n
    \r\n\r\n ) : (<>)}\r\n
    \r\n\r\n
    \r\n {selector.Type == \"lbl\" ? (\r\n <>\r\n //
    \r\n //

    {selector.Message}

    \r\n //
    \r\n ) : selector.Type == \"txt\" ? (\r\n
    \r\n {\" \"}\r\n {/*

    {selector.Message}

    */}\r\n setremarkvalue(v)}\r\n value={remarkvalue}\r\n >\r\n Remarrks\r\n \r\n
    \r\n ) : (\r\n <>\r\n //
    \r\n //

    {selector.Message}

    \r\n //
    \r\n )}\r\n
    \r\n
    \r\n {selector.Buttons.map((b) =>\r\n b.type == \"Action\" ? (\r\n \r\n {b.title}\r\n \r\n ) : (\r\n \r\n {b.title}\r\n \r\n )\r\n )}\r\n
    \r\n
    \r\n ) : (\r\n <>\r\n );\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { InnActionButton, InnPrimaryButton } from \"./innButton\";\r\nimport { InnModalPopup } from \"./innModalPopup\";\r\nimport { InnTextbox } from \"./innTextbox\";\r\nimport { useAlert } from \"../utils/hooks/useAlert\";\r\n\r\nexport function InnAlert(props) {\r\n\r\n const {selector,onCancle,onConfirm } = useAlert();\r\n\r\n return selector.show ? (\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    {selector.Message}
    \r\n
    \r\n {/*

    Lorem Ipsum is simply dummy text of the printing and typesetting industry. text of the printing and typesetting industry.

    */}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n No\r\n \r\n \r\n Yes\r\n \r\n
    \r\n
    \r\n ) : (\r\n <>\r\n );\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nexport function InnKeyboard(props) {\r\n\r\n const [textBoxValue, setTextBoxValue] = useState(props.value)\r\n const [isCapsOn, setIsCapsOn] = useState(false)\r\n\r\n const handleKeyboardValue = (v) => {\r\n let isBackSpaceKey = false;\r\n let newVal = \"\";\r\n let isCapsLockOn = false;\r\n // Keys -->\r\n if (v.target.id == \"Backspace\") {\r\n isBackSpaceKey = true\r\n if (textBoxValue) {\r\n if (textBoxValue.length == 1) {\r\n newVal = textBoxValue.substr(0, 0);\r\n }\r\n else {\r\n newVal = textBoxValue.substr(0, textBoxValue.length - 1);\r\n }\r\n }\r\n }\r\n if (v.target.id == \"Del\") {\r\n isBackSpaceKey = true;\r\n if (textBoxValue) {\r\n newVal = textBoxValue.substr(0, 0);\r\n }\r\n }\r\n if (v.target.id == \"Caps\") {\r\n setIsCapsOn(!isCapsOn);\r\n isCapsLockOn = true;\r\n }\r\n // End\r\n // Events -->\r\n if (v.target.id == \"Enter\") {\r\n if (props.onEnter != undefined) {\r\n props.onEnter();\r\n }\r\n else {\r\n console.log(\"onEnter is undefined\");\r\n }\r\n }\r\n else if (v.target.id == \"Esc\") {\r\n if (props.onEscape != undefined) {\r\n props.onEscape();\r\n }\r\n else {\r\n console.log(\"onEscape is undefined\");\r\n }\r\n }\r\n else if (v.target.id == \"LT\") {\r\n if (props.goLeft != undefined) {\r\n props.goLeft();\r\n }\r\n else {\r\n console.log(\"goLeft is undefined\");\r\n }\r\n }\r\n else if (v.target.id == \"RT\") {\r\n if (props.goRight != undefined) {\r\n props.goRight();\r\n }\r\n else {\r\n console.log(\"goRight is undefined\");\r\n }\r\n }\r\n else {\r\n if (props.onChange != undefined) {\r\n if (isBackSpaceKey) {\r\n props.onChange(newVal, true);\r\n setTextBoxValue(newVal);\r\n }\r\n else {\r\n if (isCapsLockOn == true || isCapsOn) {\r\n if (v.target.id != \"Caps\") {\r\n props.onChange((v.target.id).toUpperCase(), false);\r\n }\r\n }\r\n else {\r\n props.onChange(v.target.id, false);\r\n }\r\n }\r\n }\r\n else {\r\n console.log(\"onChange is undefined\");\r\n }\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n setTextBoxValue(props.value);\r\n }, [props.value])\r\n\r\n return (\r\n
    \r\n \r\n {\r\n isCapsOn == false ?\r\n <>\r\n
    .
    \r\n
    1
    \r\n
    2
    \r\n
    3
    \r\n
    4
    \r\n
    5
    \r\n
    6
    \r\n
    7
    \r\n
    8
    \r\n
    9
    \r\n
    0
    \r\n
    -
    \r\n
    Backspace
    \r\n
    q
    \r\n
    w
    \r\n
    e
    \r\n
    r
    \r\n
    t
    \r\n
    y
    \r\n
    u
    \r\n
    i
    \r\n
    o
    \r\n
    p
    \r\n
    [
    \r\n
    =
    \r\n
    Enter
    \r\n
    a
    \r\n
    s
    \r\n
    d
    \r\n
    f
    \r\n
    g
    \r\n
    h
    \r\n
    j
    \r\n
    k
    \r\n
    l
    \r\n
    ;
    \r\n
    '
    \r\n
    ]
    \r\n
    Delete
    \r\n
    \\
    \r\n
    z
    \r\n
    x
    \r\n
    c
    \r\n
    v
    \r\n
    b
    \r\n
    n
    \r\n
    m
    \r\n
    ,
    \r\n
    .
    \r\n
    /
    \r\n
    Caps Lock
    \r\n
    Esc
    \r\n
    Space
    \r\n
    <
    \r\n
    >
    \r\n \r\n :\r\n <>\r\n
    ~
    \r\n
    !
    \r\n
    @
    \r\n
    #
    \r\n
    $
    \r\n
    %
    \r\n
    ^
    \r\n
    &
    \r\n
    *
    \r\n
    {`(`}
    \r\n
    {`)`}
    \r\n
    -
    \r\n
    Backspace
    \r\n
    Q
    \r\n
    W
    \r\n
    E
    \r\n
    R
    \r\n
    T
    \r\n
    Y
    \r\n
    U
    \r\n
    I
    \r\n
    O
    \r\n
    P
    \r\n
    {`[`}
    \r\n
    =
    \r\n
    Enter
    \r\n
    A
    \r\n
    S
    \r\n
    D
    \r\n
    F
    \r\n
    G
    \r\n
    H
    \r\n
    J
    \r\n
    K
    \r\n
    L
    \r\n
    ;
    \r\n
    '
    \r\n
    {`]`}
    \r\n
    Delete
    \r\n
    \\
    \r\n
    Z
    \r\n
    X
    \r\n
    C
    \r\n
    V
    \r\n
    B
    \r\n
    N
    \r\n
    M
    \r\n
    ,
    \r\n
    .
    \r\n
    /
    \r\n
    Caps Lock
    \r\n
    Esc
    \r\n
    Space
    \r\n
    <
    \r\n
    >
    \r\n \r\n }\r\n
    \r\n \r\n );\r\n}\r\n\r\n","import axios from \"axios\";\r\n\r\nexport const GetReservationCashieringList = (ClientSerNo, PropertySerNo, ReservationSerNo) => {\r\n const apiUrl = \"/ReservationCashiering/manage-reservation-cashiering/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + ReservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n//#region Reservation Transaction\r\n\r\nexport const GetReservationTransactionData = (ClientSerNo, PropertySerNo, ReservationSerNo, InvoiceSerNo) => {\r\n const apiUrl = \"/ReservationCashiering/manage-reservation-transaction\" + \"/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + ReservationSerNo + '/' + InvoiceSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetReservationWindowTransactionData = (ClientSerNo, PropertySerNo, ReservationSerNo) => {\r\n const apiUrl = \"/ReservationCashiering/manage-reservation-window-transaction/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + ReservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetReservationWindowRoutingList = (ClientSerNo, PropertySerNo, ReservationSerNo) => {\r\n const apiUrl = \"/ReservationCashiering/manage-reservation-window-rounting-list/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + ReservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetReservationTransactions = (para) => {\r\n console.log(para);\r\n const apiUrl = \"/ReservationTransaction/manage-reservation-transactions\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const GetValidateRoomForTransaction = (ClientSerNo, PropertySerNo, RoomSerNo) => {\r\n const apiUrl = \"/ReservationTransaction/validate-room-for-reservation/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + RoomSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const PostReservationTransaction = (para) => {\r\n const apiUrl = \"/ReservationTransaction/manage-reservation-transaction\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const PostTransferTransactionToAnotherRoom = (para) => {\r\n const apiUrl = \"/ReservationTransaction/transfer-transaction-to-room\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const PostReservationWindowTransferSingleWindow = (para) => {\r\n const apiUrl = \"/ReservationTransaction/move-reservation-transaction\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const PostReservationWindowTransferMultipleWindow = (para) => {\r\n const apiUrl = \"/ReservationTransaction/move-reservation-transactions\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const GetReservationTransactionSplitDetail = (para) => {\r\n const apiUrl = \"/ReservationCashiering/manage-Reservation-TransactionSplit-Detail\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const PostReservationTransactionSplitItemGroupDetail = (para) => {\r\n const apiUrl = \"/ReservationCashiering/manage-ProcessReservation-TransactionItemGroupSplit\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const ProcessReservationTransactionFandBAllowance = (para) => {\r\n const apiUrl = \"/ReservationCashiering/manage-ProcessReservation-TransactionFandBAllowance\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//#endregion\r\n\r\n//#region paymentsplit\r\n\r\nexport const GetPaymentSplitDetail = (ClientSerNo, PropertySerNo, ReservationSerNo, ReservationTransactionSerNo) => {\r\n const apiUrl = \"/Reservation/manage-reservation-paymentsplit-transaction/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + ReservationSerNo + \"/\" + ReservationTransactionSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddReservationPaymentSplitDetail = (para) => {\r\n const apiUrl = \"/Reservation/manage-reservation-paymentsplit-detail\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const GetReservationTaskList = (ClientSerNo, PropertySerNo, ReservationSerNo) => {\r\n const apiUrl = \"/ReservationCashiering/manage-reservation-task/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + ReservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const AddEditReservationTask = (para) => {\r\n const apiUrl = \"/ReservationCashiering/manage-reservation-task\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const ManageNoPostAtCheckout = (para) => {\r\n const apiUrl = '/ReservationCashiering/manage-nopost-at-checkout';\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const GetCheckoutInvoiceDetail = (ClientSerNo, PropertySerNo, ReservationSerNo, InvoiceNo) => {\r\n const apiUrl = '/ReservationCashiering/manage-reservation-Invoice-list/' + ClientSerNo + '/' + PropertySerNo + '/' + ReservationSerNo + '/' + InvoiceNo;\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion\r\n\r\n//#endregion\r\n//#region Checkout-Payment\r\nexport const PostAddCheckoutTransaction = (para) => {\r\n const apiUrl = '/ReservationCashiering/manage-checkout-transaction';\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const GetCheckoutTransaction = (ClientSerNo, PropertySerNo, ReservationSerNo, strRestransactionSerNo) => {\r\n const apiUrl = '/ReservationCashiering/manage-Checkout-Transaction/' + ClientSerNo + '/' + PropertySerNo + '/' + ReservationSerNo + '/' + strRestransactionSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const ManageCheckOutInvoice = (ClientSerNo, PropertySerNo, ReservationSerNo, strWindowSerNo, userID) => {\r\n let apiUrl = '/ReservationCashiering/manage-Checkout-Invoice/' + ClientSerNo + '/' + PropertySerNo + '/' + ReservationSerNo + '/' + strWindowSerNo + '/' + userID;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const ManageSettleAndPrint = (para) => {\r\n let apiUrl = '/ReservationCashiering/manage-settle-and-print';\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const ManageOpenFolio = (para) => {\r\n let apiUrl = \"/ReservationCashiering/manage-open-folio\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const PostCheckoutWithOpenFolio = (para) => {\r\n let apiUrl = \"/ReservationCashiering/manage-checkout-with-open-folio\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const AutoCheckout = (para) => {\r\n let apiUrl = \"/ReservationCashiering/manage-auto-checkout\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const AutoCheckoutSharer = (para) => {\r\n let apiUrl = \"/ReservationCashiering/manage-auto-checkout-sharer\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const AddCheckoutInvoices = (para) => {\r\n let apiUrl = \"/ReservationCashiering/manage-checkout-invoices\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const ReinstateReservations = (para) => {\r\n let apiUrl = \"/ReservationCashiering/manage-reinstate-reservations\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const EditReservationEarlyDeparture = (para) => {\r\n let apiUrl = \"/ReservationCashiering/manage-early-departure-reservation\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const GetAdvanceBillList = (ClientSerNo, PropertySerNo, ReservationSerNo) => {\r\n let apiUrl = \"/ReservationCashiering/manage-reservation-advance-bill/\"\r\n + ClientSerNo\r\n + \"/\" + PropertySerNo\r\n + \"/\" + ReservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion\r\n\r\n//#region \r\nexport const AddReservationPaymentGateway = (para) => {\r\n const apiUrl = '/ReservationCashiering/manage-payment-gateway';\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const FetchPaymentStatus = (para) => {\r\n const apiUrl = '/ReservationCashiering/fetch-payment-status';\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const UpdateReservationPaymentGateway = (para) => {\r\n const apiUrl = '/ReservationCashiering/manage-update-payment-gateway';\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const CancelReservationPaymentGatewayTransaction = (para) => {\r\n const apiUrl = '/ReservationCashiering/Cancel-payment-gateway-transaction';\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const ManageRoutingWindow = (para) => {\r\n const apiUrl = '/ReservationCashiering/manage-routing-window';\r\n return axios.delete(apiUrl, { data: para });\r\n};\r\n//#endregion\r\n\r\nexport const GetFrontInvoiceDetails = (para) => {\r\n const apiUrl = \"/ReservationCashiering/manage-front-invoice-details\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const GetReservationLinkPartyList = (ClientSerNo, PropertySerNo, ReservationSerNo) => {\r\n const apiUrl = \"/ReservationCashiering/manage-reservation-linkparty-list/\" +\r\n ClientSerNo + '/' +\r\n PropertySerNo + '/' +\r\n ReservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetGSTEInvoiceList=(para)=>{\r\n const apiUrl=\"/GstEInvoice/manage-GstEinvoice\"\r\n return axios.post(apiUrl,para);\r\n}\r\n\r\nexport const GetInvoiceQr=(ClientSerNo,PropertySerNo,SerNo)=>{\r\n const apiUrl=\"/GstEInvoice/manage-GstQr/\"+ClientSerNo+\"/\"+PropertySerNo+\"/\"+SerNo\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetGSTEInvoiceDetails=(ClientSerNo,PropertySerNo,SerNo)=>{\r\n const apiUrl=\"/GstEInvoice/manage-GSTinvoiceDetail/\"+ClientSerNo+\"/\"+PropertySerNo+\"/\"+SerNo\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetGSTeInvoiceItemDetail=(ClientSerNo,PropertySerNo,SerNo)=>{\r\n const apiUrl=\"/GstEInvoice/manage-gsteinvoice-itemdetail/\"+ClientSerNo+\"/\"+PropertySerNo+\"/\"+SerNo\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetGSTeInvoiceLastResponse=(ClientSerNo,PropertySerNo,SerNo)=>{\r\n const apiUrl=\"/GstEInvoice/manage-gsteinvoice-lastresponse/\"+ClientSerNo+\"/\"+PropertySerNo+\"/\"+SerNo\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const PostReservationAllowance = (para) => {\r\n const apiUrl = \"/ReservationCashiering/manage-other-allowance\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const PostReservationGroupAllowance = (para) => {\r\n const apiUrl = \"/ReservationCashiering/manage-other-allowance-group\";\r\n return axios.post(apiUrl, para);\r\n};","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnCheckbox\r\n} from \"../../../../component\";\r\n\r\n\r\nexport function ProfilePreferenceModalPopup(props) {\r\n\r\n const [profileSpecial, setProfileSpecial] = useState([]);\r\n const [profileRoomFeature, setProfileRoomFeature] = useState([]);\r\n\r\n useEffect(()=>{\r\n let tempSpecials = [];\r\n let tempFeature = [];\r\n props.para.ProfileSpecials.forEach(ele => { \r\n tempSpecials.push({...ele,checked : false});\r\n });\r\n setProfileSpecial(tempSpecials);\r\n props.para.ProfileRoomFeatures.forEach(ele => { \r\n tempFeature.push({...ele,checked : false});\r\n });\r\n setProfileRoomFeature(tempFeature); \r\n },[]);\r\n\r\n const handleOnSpecialchecked = (e) => {\r\n if (e.target.id) {\r\n let obj = profileSpecial.find((x) => x.SpecialSerNo == e.target.id);\r\n if (obj != undefined) { \r\n let tempSpecial = [...profileSpecial];\r\n tempSpecial\r\n .filter((x) => x.SpecialSerNo == e.target.id)\r\n .map((v) => {\r\n v.checked = !v.checked;\r\n });\r\n setProfileSpecial(tempSpecial);\r\n }\r\n }\r\n };\r\n\r\n const handleOnFeaturechecked = (e) => {\r\n if (e.target.id) {\r\n let obj = profileRoomFeature.find((x) => x.RoomFeatureSerNo == e.target.id);\r\n if (obj != undefined) { \r\n let tempFeature = [...profileRoomFeature];\r\n tempFeature\r\n .filter((x) => x.RoomFeatureSerNo == e.target.id)\r\n .map((v) => {\r\n v.checked = !v.checked;\r\n });\r\n setProfileRoomFeature(tempFeature);\r\n }\r\n }\r\n };\r\n\r\n const handleOnCheckAllSpecial = (ischecked) => {\r\n let tempSpecial = [...profileSpecial];\r\n tempSpecial.forEach(ele => {\r\n ele.checked = ischecked;\r\n });\r\n setProfileSpecial(tempSpecial);\r\n }\r\n\r\n const handleOnCheckAllFeature = (ischecked) => {\r\n let tempFeature = [...profileRoomFeature];\r\n tempFeature.forEach(ele => {\r\n ele.checked = ischecked;\r\n });\r\n setProfileRoomFeature(tempFeature);\r\n }\r\n\r\n const handleOnContinue = (e) => {\r\n let tempSpecial = [];\r\n let tempFeature = [];\r\n if(e.target.id == \"pALL\"){\r\n tempSpecial = profileSpecial;\r\n tempFeature = profileRoomFeature;\r\n }else if(e.target.id == \"pADD\"){\r\n tempSpecial = profileSpecial.filter(x=> x.checked == true);\r\n tempFeature = profileRoomFeature.filter(x=> x.checked == true);\r\n } \r\n if(props.OnSave != undefined){\r\n props.OnSave({ProfileRoomFeatures : tempFeature, ProfileSpecials : tempSpecial});\r\n } \r\n }\r\n\r\n return (\r\n props.Onclose(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Profile Preference

    \r\n
    \r\n
    \r\n Ignore & Continue\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    The selected profile has following room features and specials. Select the respective features and specials that you would like to carry forward to the reservation.
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Features\r\n
    \r\n
    \r\n {\r\n profileRoomFeature?.length > 0 ?\r\n {\r\n handleOnCheckAllFeature(ischecked);\r\n }}\r\n >\r\n All\r\n \r\n :\r\n <>\r\n }\r\n {\r\n profileRoomFeature && profileRoomFeature.map(d =>\r\n \r\n {d.DisplayName}\r\n \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n Specials\r\n
    \r\n
    \r\n {\r\n profileSpecial?.length > 0 ?\r\n {\r\n handleOnCheckAllSpecial(ischecked);\r\n }}\r\n >\r\n All\r\n \r\n :\r\n <>\r\n }\r\n {\r\n profileSpecial && profileSpecial.map(d =>\r\n \r\n {d.Name}\r\n \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Add & Continue\r\n Select All & Continue\r\n\r\n
    \r\n
    \r\n \r\n )\r\n}","export default __webpack_public_path__ + \"static/media/info-icon-2.50c065a0.svg\";","import React, { useState, useEffect } from \"react\"\r\nimport {\r\n InnActionButton,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnSingleRadioButton,\r\n InnTextbox,\r\n} from \"../../../../component\";\r\nimport closeIcon from \"../../../../assets/images/model-cls-btn.png\";\r\nimport { GetReservationRoomRoutingRoomDetailList } from \"../../../../services/reservationService\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nexport function RoomRoutingRoomSelectionModalPopup(props) {\r\n const currUser = useSelector(currentUser);\r\n const [reservationObj, setReservationObj] = useState({\r\n ClientSerNo: currUser.ClientSerNo,\r\n PropertySerNo: currUser.PropertySerNo,\r\n ReservationSerNo: 0,\r\n })\r\n const selectdata = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" }\r\n ];\r\n const [showAddRoomAdvancedSearchModal, setShowAddRoomAdvancedSearchModal] = useState(false);\r\n const [roomDetailList, setRoomDetailList] = useState([]);\r\n const [selectedRoomReservationSerNo, setSelectedRoomReservationSerNo] = useState(\"\");\r\n const [roomRoutingAddEditObject, setRoomRoutingAddEditObject] = useState({\r\n \"RoutedReservationSerNo\": 0,\r\n \"RoutedRoomName\": \"\",\r\n \"RoomSerNo\": \"\",\r\n \"GuestProfileName\": \"\",\r\n \"BookingNo\": \"\",\r\n \"Mode\": \"Add\"\r\n });\r\n\r\n const funSaveRoutedRoomData = () => {\r\n let tempRoutedRoomObject = roomRoutingAddEditObject;\r\n let tempSelectedRoom = undefined;\r\n if (roomDetailList != undefined) {\r\n tempSelectedRoom = roomDetailList.find(x => x.ReservationSerNo == selectedRoomReservationSerNo);\r\n if (tempSelectedRoom != undefined) {\r\n tempRoutedRoomObject.RoomSerNo = tempSelectedRoom.RoomSerNo;\r\n tempRoutedRoomObject.GuestProfileName = tempSelectedRoom.GuestName;\r\n tempRoutedRoomObject.BookingNo = tempSelectedRoom.BookingNo;\r\n }\r\n }\r\n tempRoutedRoomObject.RoutedReservationSerNo = selectedRoomReservationSerNo;\r\n setRoomRoutingAddEditObject(tempRoutedRoomObject);\r\n if (props.OnSelect != undefined) {\r\n props.OnSelect(tempRoutedRoomObject)\r\n }\r\n props.Onclose()\r\n // console.log(\"tempRoutedRoomObject>>\", tempRoutedRoomObject);\r\n //setShowWindowRoutingAddModal(false);\r\n }\r\n const funSetRoutedRoomSerNo = (e) => {\r\n setSelectedRoomReservationSerNo(e);\r\n }\r\n const funGetReservationRoomRoutingRoomDetailList = () => {\r\n GetReservationRoomRoutingRoomDetailList(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), props.para.ReservationSerNo).then(d => {\r\n console.log(\"GetRoomRoutingRoomDetailList>>\", d.data);\r\n var temp = (d.data);\r\n let SortedList = temp.sort((a, b) => (a.BookingNo > b.BookingNo) ? 1 : -1);\r\n setRoomDetailList(SortedList);\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n if (props.Data != undefined) {\r\n setRoomRoutingAddEditObject(props.Data)\r\n }\r\n if (props.para != undefined) {\r\n setReservationObj((prev) => ({ ...prev, ReservationSerNo: props.para.ReservationSerNo }))\r\n setTimeout(() => {\r\n funGetReservationRoomRoutingRoomDetailList();\r\n }, 50);\r\n }\r\n }, [])\r\n\r\n return (\r\n <>\r\n {\r\n // //console.log(\"save clicked\");\r\n // setShowWindowRoutingAddModal(false);\r\n // }}\r\n Onclose={() => props.Onclose()}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Add Room

    \r\n
    \r\n
    \r\n
    setShowAddRoomAdvancedSearchModal(!showAddRoomAdvancedSearchModal)}>\r\n \r\n
    \r\n \r\n Apply\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {roomDetailList && roomDetailList.map(d =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
    \r\n
    \r\n
    Confirmation No.Res. StatusRoom No.Guest NameArrival DateNightsGuest TypeCompanyAgent
    \r\n
    \r\n \r\n
    \r\n
    {d.BookingNo} {d.ReservationStatus}{d.RoomSerNo}{d.GuestName}{d.ArrivalDate}{d.Nights}{d.GuestType}{d.CompanyName}{d.AgentName}
    \r\n
    \r\n
    \r\n {/* Room advance search filter model */}\r\n {showAddRoomAdvancedSearchModal ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Filters

    \r\n
    \r\n
    \r\n \r\n setShowAddRoomAdvancedSearchModal(\r\n !showAddRoomAdvancedSearchModal\r\n )\r\n }\r\n >\r\n Reset\r\n \r\n \r\n setShowAddRoomAdvancedSearchModal(\r\n !showAddRoomAdvancedSearchModal\r\n )\r\n }\r\n >\r\n Apply\r\n \r\n props.Onclose()}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(v)}\r\n >\r\n Guest Name\r\n \r\n
    \r\n
    \r\n console.log(v)}\r\n >\r\n Room No.\r\n \r\n
    \r\n
    \r\n console.log(v)}\r\n >\r\n Confirmation No.\r\n \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnPlainButton,\r\n InnTextbox,\r\n} from \"../../../../component\";\r\nimport rightarrow from \"../../../../assets/images/right-circle-arrow-gray.svg\";\r\nimport { AddEditReservationRoom } from \"../../../../services/reservationService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { RoomRoutingRoomSelectionModalPopup } from \"./roomRoutingRoomSelectionModalPopup\";\r\n\r\n\r\nexport function AddEditRoomRoutingModalPopup(props) {\r\n\r\n const currUser = useSelector(currentUser)\r\n const [reservationObj, setReservationObj] = useState({\r\n ClientSerNo: currUser.ClientSerNo,\r\n PropertySerNo: currUser.PropertySerNo,\r\n ReservationSerNo: 0,\r\n })\r\n\r\n const [roomRoutingAddEditObject, setRoomRoutingAddEditObject] = useState({\r\n \"RoutedReservationSerNo\": 0,\r\n \"RoutedRoomName\": \"\",\r\n \"RoomSerNo\": \"\",\r\n \"GuestProfileName\": \"\",\r\n \"BookingNo\": \"\",\r\n \"Mode\": \"Add\"\r\n }); // Use in window add/edit mode.\r\n const [showRoomRoutingAddModal, setShowRoomRoutingAddModal] = useState(false)\r\n\r\n const handlebtnSaveRoom = () => {\r\n if (roomRoutingAddEditObject.RoutedReservationSerNo == undefined || roomRoutingAddEditObject.RoutedReservationSerNo == \"\") {\r\n alert(\"Select valid Room.\");\r\n }\r\n else if (roomRoutingAddEditObject.RoutedRoomName == undefined || roomRoutingAddEditObject.RoutedRoomName == \"\") {\r\n alert(\"Enter valid Routed Room Name.\");\r\n }\r\n else {\r\n funAddEditReservationRoom();\r\n }\r\n\r\n }\r\n const funSetRoutedRoomName = (e) => {\r\n console.log(\"funSetRoutedRoomName>>\", e);\r\n let tempRoutedRoomObject = roomRoutingAddEditObject;\r\n tempRoutedRoomObject.RoutedRoomName = e;\r\n setRoomRoutingAddEditObject(tempRoutedRoomObject);\r\n }\r\n\r\n const funAddEditReservationRoom = () => {\r\n //console.log(\"roomRoutingAddEditObject\");\r\n let para = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: reservationObj.ReservationSerNo,\r\n RoutedReservationSerNo: parseInt(roomRoutingAddEditObject.RoutedReservationSerNo),\r\n RoutedRoomName: roomRoutingAddEditObject.RoutedRoomName,\r\n EntryUserId: \"SUPER1201\",\r\n Mode: roomRoutingAddEditObject.Mode\r\n };//pending to set entry userid.\r\n console.log(\"hey\", para);\r\n AddEditReservationRoom([para]).then(d => {\r\n if (d.data.Code == 200) {\r\n props.Onclose()\r\n props.OnSelect(roomRoutingAddEditObject)\r\n }\r\n else {\r\n alert(d.data.Message);\r\n }\r\n });\r\n\r\n }\r\n useEffect(() => {\r\n if (props.Data != undefined) {\r\n setRoomRoutingAddEditObject(props.Data)\r\n }\r\n if (props.para != undefined) {\r\n setReservationObj((prev) => ({ ...prev, ReservationSerNo: props.para.ReservationSerNo }))\r\n }\r\n }, [])\r\n\r\n return (\r\n <>\r\n {\r\n // //console.log(\"save clicked\");\r\n // setShowRoomRoutingEditModal(false);\r\n // }}\r\n Onclose={() => props.Onclose()}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    {roomRoutingAddEditObject.Mode}

    \r\n
    \r\n
    \r\n \r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n Routed Room Name\r\n \r\n\r\n
    {\r\n setShowRoomRoutingAddModal(!showRoomRoutingAddModal);\r\n // funGetReservationRoomRoutingRoomDetailList();\r\n }}>\r\n {\r\n //console.log(v);\r\n }}\r\n >\r\n Select Room / Reservation\r\n \r\n {\r\n setShowRoomRoutingAddModal(!showRoomRoutingAddModal);\r\n // funGetReservationRoomRoutingRoomDetailList();\r\n }}>\r\n \r\n \r\n
    \r\n
      \r\n
    • \r\n {roomRoutingAddEditObject.RoomSerNo == \"\" ? \"\" : roomRoutingAddEditObject.RoomSerNo + \" - \"}{roomRoutingAddEditObject.GuestProfileName}\r\n
      \r\n Conf.No. {roomRoutingAddEditObject.BookingNo}\r\n \r\n
      \r\n
    • \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n \r\n {/* Room Routing >> select Room */}\r\n {showRoomRoutingAddModal ? (\r\n {\r\n setShowRoomRoutingAddModal(!showRoomRoutingAddModal)\r\n }}\r\n OnSelect={(v) => {\r\n console.log(\"Object from Popup\", v)\r\n setRoomRoutingAddEditObject(v);\r\n }}\r\n >\r\n ) : null}\r\n \r\n )\r\n}","import React, { useState, useRef, useEffect } from \"react\";\r\nimport \"../assets/css/bootstrap-grid.css\";\r\nimport \"../assets/css/innkeyPMS.css\";\r\nimport styles from \"../assets/css/dropdown.css\";\r\nimport DownArrow from \"../assets/images/down-arrow.svg\";\r\nimport UpArrow from \"../assets/images/up-arrow.svg\";\r\nimport { InnCheckbox } from \".\";\r\nimport Tippy from \"@tippyjs/react\";\r\nimport \"tippy.js/dist/tippy.css\";\r\n\r\nexport function InnMultiSelectDropdown(props) {\r\n const [isListOpen, setisListOpen] = useState(false);\r\n const [keyword, setkeyword] = useState(\"\");\r\n const [title, settitle] = useState(\"\");\r\n const [selectedItems, setselectedItems] = useState(props.select);\r\n const [clientWidth, setclientWidth] = useState(0);\r\n //use ref varible start\r\n const searchField = useRef(null);\r\n const btnRef = useRef(null);\r\n //use ref varible end\r\n\r\n const toggleList = () => {\r\n setisListOpen(true);\r\n setkeyword(\"\");\r\n\r\n if (isListOpen && searchField.current) {\r\n searchField.current.focus();\r\n setkeyword(\"\");\r\n }\r\n\r\n if (isListOpen == false) {\r\n console.log(btnRef.current.clientWidth);\r\n setclientWidth(btnRef.current.clientWidth);\r\n }\r\n };\r\n\r\n const filterList = (e) => {\r\n setkeyword(e.target.value.toLowerCase());\r\n };\r\n\r\n const listItems = () => {\r\n let tempList = JSON.parse(JSON.stringify(props.list));\r\n\r\n if (keyword.length) {\r\n tempList = props.list.filter((item) =>\r\n item.value.toLowerCase().includes(keyword.toLowerCase())\r\n );\r\n }\r\n\r\n if (tempList.length) {\r\n return tempList.map((item) => (\r\n i === item.key)\r\n ? `dd-list-item active ${props.id}`\r\n : `dd-list-item ${props.id}`\r\n }\r\n key={item.key}\r\n onChecked={() => selectItem(item)}\r\n checked={\r\n selectedItems && selectedItems.find((i) => i === item.key)\r\n ? item.key\r\n : \"\"\r\n }\r\n >\r\n {item.value}{\" \"}\r\n \r\n ));\r\n }\r\n\r\n return (\r\n \r\n {props.searchable && props.searchable[1]}\r\n \r\n );\r\n };\r\n\r\n const selectItem = (item) => {\r\n //setisListOpen(false);\r\n handleSelection(item);\r\n };\r\n\r\n const handleSelection = (item) => {\r\n const index = selectedItems.findIndex((i) => i == item.key);\r\n\r\n let tempSelectedList = [];\r\n\r\n if (index == -1 && item) {\r\n let temp = [...selectedItems];\r\n if (item.key != undefined) {\r\n temp = [...selectedItems, item.key];\r\n setselectedItems(temp);\r\n }\r\n // if (props.buttonLayout == true || !props.select) {\r\n // settitle(props.title);\r\n // } else {\r\n // settitle(`${temp.map((o) => o)}`);\r\n // }\r\n console.log(temp);\r\n if (props.onChange) {\r\n\r\n props.list.map(d => {\r\n temp.map(v => {\r\n if (d.key == v) {\r\n tempSelectedList.push(d);\r\n }\r\n })\r\n })\r\n\r\n if (props.buttonLayout == true || !props.select) {\r\n settitle(props.title);\r\n } else {\r\n settitle(`${tempSelectedList.map((o) => o.value)}`);\r\n }\r\n\r\n props.onChange(temp, tempSelectedList);\r\n }\r\n } else {\r\n \r\n const selectedItemsCopy = [...selectedItems];\r\n selectedItemsCopy.splice(index, 1);\r\n\r\n setselectedItems(selectedItemsCopy);\r\n // if (props.buttonLayout == true || !props.select) {\r\n // settitle(props.title);\r\n // } else {\r\n // settitle(`${selectedItemsCopy.map((o) => o)}`);\r\n // }\r\n\r\n if (props.onChange) {\r\n\r\n props.list.map(d => {\r\n selectedItemsCopy.map(v => {\r\n if (d.key == v) {\r\n tempSelectedList.push(d);\r\n }\r\n })\r\n }) \r\n \r\n if (props.buttonLayout == true || !props.select) {\r\n settitle(props.title);\r\n } else {\r\n settitle(`${tempSelectedList.map((o) => o.value)}`);\r\n }\r\n\r\n props.onChange(selectedItemsCopy,tempSelectedList);\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (props.select != undefined) {\r\n setselectedItems(props.select);\r\n } else {\r\n setselectedItems([]);\r\n }\r\n\r\n if (props.select != undefined) {\r\n selectMultipleItems(props.select);\r\n } else {\r\n selectMultipleItems([]);\r\n }\r\n\r\n if (props.buttonLayout == true || !props.select) {\r\n settitle(props.title);\r\n }\r\n }, []);\r\n\r\n const selectMultipleItems = (items) => {\r\n selectItem(items);\r\n // let temp = JSON.parse(JSON.stringify(props.list));\r\n // items.forEach((item) => {\r\n // const selectedItem = temp.find((i) => i.value == item);\r\n // console.log(selectedItem);\r\n // setTimeout(() => {\r\n // selectItem(selectedItem);\r\n // });\r\n // });\r\n };\r\n\r\n const close = () => {\r\n setisListOpen(false);\r\n };\r\n\r\n useEffect(() => {\r\n window.removeEventListener(\"click\", close);\r\n return () => {\r\n window.removeEventListener(\"click\", close);\r\n };\r\n }, [isListOpen]);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n if (isListOpen) {\r\n window.addEventListener(\"click\", close);\r\n } else {\r\n window.removeEventListener(\"click\", close);\r\n }\r\n }, 0);\r\n }, [isListOpen]);\r\n\r\n useEffect(() => {\r\n if (props.select != selectedItems) {\r\n setselectedItems(props.select);\r\n\r\n let temp = [...props.select];\r\n let tempSelectedList =[]\r\n props.list.map(d => {\r\n temp.map(v => {\r\n if (d.key == v) {\r\n tempSelectedList.push(d);\r\n }\r\n })\r\n })\r\n\r\n if (props.buttonLayout == true || !props.select) {\r\n settitle(props.title);\r\n } else {\r\n //settitle(`${temp.map((o) => o)}`);\r\n settitle(`${tempSelectedList.map((o) => o.value)}`);\r\n \r\n }\r\n }\r\n }, [props.select]);\r\n\r\n return (\r\n e.stopPropagation()}\r\n >\r\n {props.searchable && (\r\n filterList(e)}\r\n />\r\n )}\r\n \r\n {listItems()}\r\n \r\n \r\n )\r\n }\r\n arrow={false}\r\n allowHTML={true}\r\n interactive={true}\r\n appendTo={document.body}\r\n visible={isListOpen}\r\n placement=\"bottom-start\"\r\n >\r\n \r\n
    {props.label}
    \r\n \r\n \r\n \r\n {title}\r\n \r\n {isListOpen ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n // \r\n //
    {props.label}
    \r\n // \r\n // \r\n // \r\n // {title}\r\n // \r\n // {isListOpen ? (\r\n // \r\n // \r\n // \r\n // ) : (\r\n // \r\n // \r\n // \r\n // )}\r\n // \r\n // {isListOpen && (\r\n // e.stopPropagation()}\r\n // >\r\n // {props.searchable && (\r\n // filterList(e)}\r\n // />\r\n // )}\r\n // \r\n // {listItems()}\r\n // \r\n // \r\n // )}\r\n // \r\n // {/* {this.state.inputErrors == true && this.state.errorMessage == true ? (\r\n //
    \r\n // {this.state.errorstring}\r\n //
    \r\n // ) : (\r\n // <>\r\n // )} */}\r\n // \r\n );\r\n}\r\n","import React, { useEffect, useState, useRef } from \"react\";\r\nimport TooltipTrigger from \"react-popper-tooltip\";\r\nimport \"react-popper-tooltip/dist/styles.css\";\r\n\r\nexport function InnTooltip(props) {\r\n const [active, setActive] = useState(false);\r\n\r\n let timeout;\r\n const wrapperRef = useRef(null);\r\n\r\n // This Function Called When outside click tooltip is close or hide\r\n const handleClickOuside = (e) => {\r\n if (wrapperRef.current && !wrapperRef.current.contains(e.target)) {\r\n setActive(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n document.addEventListener(\"click\", handleClickOuside, false);\r\n return () => {\r\n //document.removeEventListener(\"click\", handleClickOuside, false);\r\n };\r\n }, [active]);\r\n\r\n //This Function Called When inside Click tooltip is not close or hide\r\n const handleInsideClick = (e) => {\r\n e.stopPropagation();\r\n };\r\n\r\n return props.toolType == \"click\" ? (\r\n (\r\n \r\n \r\n\r\n \r\n {props.content}\r\n \r\n \r\n )}\r\n >\r\n {({ getTriggerProps, triggerRef }) => (\r\n \r\n {props.children}\r\n \r\n )}\r\n \r\n ) : (\r\n (\r\n \r\n \r\n\r\n \r\n {props.content}\r\n \r\n \r\n )}\r\n >\r\n {({ getTriggerProps, triggerRef }) => (\r\n \r\n {props.children}\r\n \r\n )}\r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport Moment from \"moment\";\r\nimport { InnSingleSelectDropdown } from \".\";\r\n\r\nexport function InnSingleDateSelection(props) {\r\n let temp;\r\n temp = new Date();\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [startDate, setstartDate] = useState(temp);\r\n const [dateFormat, setDateFormat] = useState(\"dd-MMM-yy\");\r\n const years = [];\r\n for (var i = 1900; i <= new Date().getFullYear() + 10; i++) {\r\n years.push({ key: i, value: i });\r\n }\r\n const months = [\r\n { key: \"Jan\", value: \"Jan\" },\r\n { key: \"Feb\", value: \"Feb\" },\r\n { key: \"Mar\", value: \"Mar\" },\r\n { key: \"Apr\", value: \"Apr\" },\r\n { key: \"May\", value: \"May\" },\r\n { key: \"Jun\", value: \"Jun\" },\r\n { key: \"Jul\", value: \"Jul\" },\r\n { key: \"Aug\", value: \"Aug\" },\r\n { key: \"Sep\", value: \"Sep\" },\r\n { key: \"Oct\", value: \"Oct\" },\r\n { key: \"Nov\", value: \"Nov\" },\r\n { key: \"Dec\", value: \"Dec\" },\r\n ];\r\n\r\n const handleChange = (e) => {\r\n setstartDate(e);\r\n if (props.onChange) {\r\n props.onChange(Moment(new Date(e).toDateString()).format(\"DD-MMM-YY\"));\r\n }\r\n else{\r\n \r\n }\r\n setIsOpen(false);\r\n };\r\n\r\n useEffect(() => {\r\n let temp;\r\n if (\r\n props.selected == \"\" ||\r\n props.selected == null ||\r\n props.selected == undefined\r\n ) {\r\n temp = new Date();\r\n } else {\r\n temp = new Date(props.selected);\r\n }\r\n setstartDate(temp);\r\n }, [props.selected]);\r\n\r\n useEffect(() => {\r\n if (props.dateFormat) setDateFormat(props.dateFormat); \r\n }, []);\r\n\r\n return (\r\n \r\n
    {props.label}
    \r\n {\r\n setIsOpen(true);\r\n console.log(\"onInputClick\");\r\n }}\r\n onClickOutside={(e)=>{\r\n if(e.target.id != \"Month\" && e.target.id != \"Year\" && e.target.id != \"scroll Month\" && e.target.id != \"scroll Year\" && e.target.parentElement.id != \"scroll Month\" && e.target.parentElement.id != \"scroll Year\"){\r\n setIsOpen(false);\r\n }\r\n console.log(\"onClickOutside\",e);\r\n }}\r\n open={isOpen}\r\n tabIndex={props.tabindex}\r\n selected={startDate}\r\n onChange={handleChange}\r\n dateFormat={dateFormat}\r\n placeholderText={props.placeholder}\r\n disabled={props.disabled}\r\n calendarStartDay={props.calendarStartDay}\r\n peekNextMonth\r\n renderCustomHeader={({\r\n date,\r\n changeYear,\r\n changeMonth,\r\n decreaseMonth,\r\n increaseMonth,\r\n prevMonthButtonDisabled,\r\n nextMonthButtonDisabled,\r\n }) => (\r\n
    \r\n \r\n
    \r\n {\r\n changeMonth(\r\n months.findIndex((obj) => obj.value == item.value)\r\n );\r\n setIsOpen(true);\r\n }}\r\n onScroll={()=>{setIsOpen(true);}}\r\n selectedSerNo={months[date.getMonth()].value}\r\n >\r\n changeYear(item.value)}\r\n selectedSerNo={date.getFullYear()}\r\n >\r\n
    \r\n \r\n
    \r\n )}\r\n >\r\n \r\n );\r\n}\r\n\r\n//dateFormat ==\"E, dd MMMM YYY, h:mm aa\" (Tue,01 February 2022, 4:30 PM)\r\n//dateFormat == \"dd-MMM-yy\" (14-feb-2022)\r\n","import React, { useState, useEffect } from \"react\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport Moment from \"moment\";\r\n\r\nexport function InnTimeSelection(props) {\r\n let temp;\r\n temp = new Date();\r\n const [startDate, setstartDate] = useState(temp);\r\n\r\n const handleChange = (e) => {\r\n setstartDate(e); \r\n if (props.onChange) {\r\n if(e == null){\r\n props.onChange(e);\r\n }else{\r\n props.onChange(Moment(new Date(e).toISOString()).format(\"HH:mm\"));\r\n } \r\n }\r\n };\r\n\r\n useEffect(() => {\r\n console.log(props.selected);\r\n let temp;\r\n if (\r\n //props.selected == undefined ||\r\n props.selected == \"\" ||\r\n props.selected == null\r\n ) {\r\n //temp = new Date();\r\n temp = null\r\n } else if (props.selected == undefined) {\r\n temp = null\r\n }else {\r\n temp = new Date(props.selected);\r\n }\r\n setstartDate(temp);\r\n }, [props.selected]);\r\n\r\n return (\r\n \r\n
    {props.label}
    \r\n \r\n \r\n );\r\n}\r\n\r\n//if timepiccker display 24 hour then dateFormat & timeFormat = \"HH:mm\"\r\n//if timepicker display 12 hour then dateFormat & timeFormat =\"h:mm aa\"\r\n","import React, { useEffect, useState } from \"react\";\r\n\r\nexport function InnPlainTabs(props) {\r\n console.log(props);\r\n const [activeTab, setactiveTab] = useState(\"\");\r\n\r\n useEffect(()=>{\r\n\r\n if(props.activeTab != undefined)\r\n setactiveTab(props.activeTab);\r\n else \r\n setactiveTab(props.children[0].props.id);\r\n\r\n },[]);\r\n\r\n const changeTab = (tab) => {\r\n setactiveTab(tab.id);\r\n if(props.onClick != undefined){\r\n props.onClick(tab);\r\n }\r\n };\r\n\r\n let content;\r\n let buttons = [];\r\n return (\r\n
    \r\n {React.Children.map(props.children, (child) => {\r\n buttons.push({\"label\" : child.props.label,\"id\" : child.props.id}); \r\n if (child.props.id === activeTab) content = child.props.children;\r\n })}\r\n\r\n \r\n
    {content}
    \r\n
    \r\n );\r\n}\r\n\r\nexport function TabButtons({ buttons, changeTab, activeTab }) {\r\n return (\r\n
    \r\n
      \r\n {buttons.map((button) => {\r\n return (\r\n changeTab(button)}\r\n id={button.id}\r\n >\r\n {button.label}\r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport function Tab(props) {\r\n return (\r\n \r\n {props.children != undefined ? props.children : \"\"}\r\n \r\n );\r\n}\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialState = {\r\n reservation: {\r\n Name: \"\",\r\n rateDetailData: {},\r\n tempRateDetailData: {},\r\n extraPackage: [],\r\n IsWalkIn : false,\r\n IsSharer : false,\r\n SharerReservationSerNo : 0,\r\n },\r\n};\r\n\r\nexport const frontSlice = createSlice({\r\n name: \"front\",\r\n initialState: initialState,\r\n reducers: {\r\n setName: (state, action) => {\r\n console.log(action.payload);\r\n state.reservation.Name = action.payload;\r\n },\r\n setRateAndPackages: (state, action) => {\r\n state.reservation.rateDetailData = action.payload;\r\n },\r\n setTempRateAndPackage: (state, action) => {\r\n state.reservation.tempRateDetailData = action.payload;\r\n },\r\n setExtraPackage: (state, action) => {\r\n let obj = action.payload;\r\n state.reservation.extraPackage.push(obj);\r\n },\r\n reSetExtraPackage: (state, action) => {\r\n state.reservation.extraPackage = action.payload;\r\n },\r\n setIsWalkIn: (state, action) => {\r\n state.reservation.IsWalkIn = action.payload;\r\n },\r\n setIsSharer: (state, action) => {\r\n state.reservation.IsSharer = action.payload;\r\n },\r\n setSharerReservationSerNo: (state, action) => {\r\n state.reservation.SharerReservationSerNo = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport const\r\n { setName, setRateAndPackages, setTempRateAndPackage,\r\n setExtraPackage, reSetExtraPackage,setIsWalkIn,setIsSharer,setSharerReservationSerNo } = frontSlice.actions;\r\nexport const reservation = (state) => state.front.reservation;\r\nexport default frontSlice.reducer;","import React, { useState, useRef, useEffect } from \"react\";\r\nimport \"../assets/css/bootstrap-grid.css\";\r\nimport \"../assets/css/innkeyPMS.css\";\r\nimport styles from \"../assets/css/dropdown.css\";\r\nimport DownArrow from \"../assets/images/down-arrow.svg\";\r\nimport UpArrow from \"../assets/images/up-arrow.svg\";\r\nimport Tippy from \"@tippyjs/react\";\r\nimport \"tippy.js/dist/tippy.css\";\r\nimport { width } from \"@mui/system\";\r\n\r\nexport function InnSingleSelectDropdown(props) {\r\n\r\n const [isPageLoaded,setIsPageLoaded] = useState(true);\r\n\r\n const [isListOpen, setisListOpen] = useState(false);\r\n\r\n const [keyword, setkeyword] = useState(\"\");\r\n const [inputErrors, setinputErrors] = useState(false);\r\n const [errorMessage, seterrorMessage] = useState(false);\r\n const [errorString, seterrorString] = useState(\"\");\r\n const [selected, setselected] = useState(\"\");\r\n const [clientWidth, setclientWidth] = useState(0);\r\n\r\n //reference varible for searching field start\r\n const searchField = useRef(null);\r\n const btnRef = useRef(null);\r\n\r\n //For Open Close Dropdown start\r\n const toggleList = () => { \r\n setisListOpen(true);\r\n setkeyword(\"\"); \r\n //for search functionality toggle event\r\n if (isListOpen && searchField.current) {\r\n searchField.current.focus();\r\n setkeyword(\"\");\r\n }\r\n if (isListOpen == false) { \r\n setclientWidth(btnRef.current.clientWidth);\r\n if (selected) {\r\n try{\r\n setTimeout(() => {\r\n const elementToScroll = document.getElementsByClassName(`dd-list-item active ${selected}`);\r\n const scrollControl = document.getElementsByClassName(`dd-scroll-list ${props.id}`); \r\n if (elementToScroll != undefined && scrollControl != undefined){\r\n if (elementToScroll.length > 0 && scrollControl.length > 0){\r\n scrollControl[0].scrollTop = elementToScroll[0].offsetTop - 60; \r\n }\r\n }\r\n }, 10);\r\n } \r\n catch(ex){\r\n\r\n }\r\n }\r\n }\r\n };\r\n //For Open Close Dropdown End\r\n\r\n //For Display ListItems Start\r\n const listItems = () => {\r\n let tempList = [...props.list];\r\n\r\n if (keyword.length) {\r\n //check the keyword is match to key or not\r\n tempList = props.list.filter((item) =>\r\n item.value.toLowerCase().includes(keyword.toLowerCase())\r\n );\r\n }\r\n\r\n if (tempList.length > 0) {\r\n return tempList.map((item) => (\r\n selectItem(item,e)}\r\n >\r\n {item.value}\r\n \r\n ));\r\n }\r\n\r\n return (\r\n
    \r\n {props.searchable && props.searchable[1]}\r\n
    \r\n );\r\n };\r\n //For Display ListItems End\r\n\r\n //For TextBox Search Function start\r\n const filterList = (e) => {\r\n setkeyword(e.target.value.toLowerCase());\r\n };\r\n //For TextBox Search Function End\r\n\r\n //For Close Dropdown Start\r\n const close = () => {\r\n setisListOpen(false);\r\n };\r\n //For Close Dropdown End\r\n\r\n useEffect(() => {\r\n window.removeEventListener(\"click\", close);\r\n return () => {\r\n window.removeEventListener(\"click\", close);\r\n };\r\n }, [isListOpen]);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n if (isListOpen) {\r\n window.addEventListener(\"click\", close);\r\n } else {\r\n window.removeEventListener(\"click\", close);\r\n }\r\n }, 0);\r\n }, [isListOpen]);\r\n\r\n //For Display Selected Items\r\n const selectItem = (item,e) => {\r\n let foundItem;\r\n let tempList = [...props.list]; \r\n if (item) {\r\n if (!item.key) {\r\n foundItem = tempList.find((i) => i.value == item.value);\r\n }\r\n setselected(item.value); \r\n\r\n console.log(\"is page loaded \",isPageLoaded);\r\n\r\n if(!isPageLoaded){\r\n if (props.onChange != undefined){\r\n props.onChange(item,e);\r\n close();\r\n } \r\n } \r\n\r\n if (item == null || item == undefined) {\r\n seterrorMessage(true);\r\n seterrorString(props.customError);\r\n setinputErrors(true);\r\n } else {\r\n seterrorMessage(false);\r\n seterrorString(\"\");\r\n setinputErrors(false);\r\n }\r\n }\r\n };\r\n\r\n const selectSingleItem = (item) => {\r\n let tempList = [...props.list];\r\n \r\n // comment by ketan on 24th nov 22 due to not using value as unique id\r\n // if (item && props.list) {\r\n // const selectedItem = tempList.find((i) => i.value == item);\r\n // selectItem(selectedItem);\r\n // }\r\n\r\n if (item && props.list && props.selectedSerNo) {\r\n const selectedItem = tempList.find((i) => i.key == props.selectedSerNo);\r\n selectItem(selectedItem);\r\n }\r\n\r\n // comment by ketan on 24th nov 22 due to not using select as a object \r\n // if (item && props.list && props.select) {\r\n // const selectedItem = tempList.find((i) => i == props.select);\r\n // selectItem(selectedItem);\r\n // }\r\n };\r\n\r\n //only one time call useeffect start\r\n useEffect(() => {\r\n\r\n // comment by ketan on 24th nov 22 due to not using select as a object \r\n // if (props.select) {\r\n // setselected(props.select);\r\n // } else {\r\n // setselected([]);\r\n // }\r\n // //for unique key\r\n if (props.selectedSerNo) {\r\n const obj = props.list.find((f) => f.key == selected);\r\n if (obj) {\r\n //setselected(props.selectedSerNo);\r\n setselected(obj.value);\r\n }\r\n } else {\r\n setselected([]);\r\n }\r\n \r\n // comment by ketan on 24th nov 22 due to not using select as a object \r\n // if (props.select) {\r\n // selectSingleItem(props.select);\r\n // }\r\n //for unique key\r\n if (props.selectedSerNo) {\r\n selectSingleItem(props.selectedSerNo);\r\n }\r\n setIsPageLoaded(false);\r\n }, []);\r\n //only one time call useeffect end\r\n\r\n //// comment by ketan on 24th nov 22 due to not using select as a object \r\n // useEffect(() => {\r\n // let tempList = [...props.list];\r\n // if (props.select != selected) {\r\n // const obj = tempList.find((f) => f == props.select);\r\n\r\n // if (obj) {\r\n // setselected(props.select);\r\n // }\r\n // }\r\n // }, [props.select]);\r\n\r\n useEffect(() => {\r\n let tempList = [...props.list];\r\n if (selected != undefined) {\r\n if (props.selectedSerNo != selected) {\r\n const obj = tempList.find((f) => f.key == props.selectedSerNo);\r\n\r\n if (obj) {\r\n setselected(obj.value);\r\n }\r\n }\r\n }\r\n }, [props.selectedSerNo]);\r\n\r\n //for customerror useeffect start\r\n useEffect(() => {\r\n if (props.customError && props.customError.length > 0) {\r\n setinputErrors(true);\r\n seterrorMessage(true);\r\n seterrorString(props.customError);\r\n } else {\r\n setinputErrors(false);\r\n seterrorMessage(false);\r\n seterrorString(\"\");\r\n }\r\n }, [props.customError]);\r\n //for customerror useeffect end\r\n\r\n useEffect(() => {\r\n if (props.selectedSerNo != undefined) {\r\n let obj = props.list.find((f) => f.key == props.selectedSerNo);\r\n if (obj) {\r\n setselected(obj.value);\r\n }\r\n } else {\r\n setselected([]);\r\n }\r\n }, [props.list]);\r\n\r\n return (\r\n \r\n {props.searchable && (\r\n e.stopPropagation()}\r\n onChange={(e) => filterList(e)}\r\n />\r\n )}\r\n \r\n {listItems()}\r\n \r\n \r\n )\r\n }\r\n // trigger=\"click\"\r\n arrow={false}\r\n allowHTML={true}\r\n interactive={true}\r\n appendTo={document.body}\r\n visible={isListOpen}\r\n placement=\"bottom-start\"\r\n >\r\n
    \r\n
    {props.label}
    \r\n
    \r\n \r\n \r\n {/* {selected ? selected.value : \"\"} */}\r\n {selected ? selected : \"\"}\r\n
    \r\n {isListOpen ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n
    \r\n {inputErrors == true && errorMessage == true ? (\r\n
    \r\n {errorString}\r\n
    \r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n );\r\n}\r\n","import React, { Component, useRef, useEffect, useState } from \"react\";\r\nimport TooltipTrigger from \"react-popper-tooltip\";\r\nimport \"react-popper-tooltip/dist/styles.css\";\r\nimport styles from \"../assets/css/dropdown.css\";\r\nimport actiondownarrow from \"../assets/images/action-dwn-arrow.svg\";\r\nimport threedots from \"../assets/images/hr-three-dot.svg\";\r\nimport Tippy from \"@tippyjs/react\";\r\nimport \"tippy.js/dist/tippy.css\";\r\n\r\nexport function InnContextMenu(props) {\r\n const [isListOpen, setisListOpen] = useState(false);\r\n\r\n const [keyword, setkeyword] = useState(\"\");\r\n const [inputErrors, setinputErrors] = useState(false);\r\n const [errorMessage, seterrorMessage] = useState(false);\r\n const [errorString, seterrorString] = useState(\"\");\r\n const [selected, setselected] = useState(\"\");\r\n\r\n //reference varible for searching field start\r\n const searchField = useRef(null);\r\n const btnRef = useRef(null);\r\n const popupRef = useRef(null);\r\n const childSpanRef = useRef(null);\r\n //reference varible for searching field end\r\n //For Open Close Dropdown start\r\n const toggleList = () => {\r\n console.log(isListOpen);\r\n if (isListOpen == false) {\r\n setisListOpen(true);\r\n } else {\r\n setisListOpen(false);\r\n }\r\n\r\n setkeyword(\"\");\r\n\r\n //for search functionality toggle event\r\n if (isListOpen && searchField.current) {\r\n searchField.current.focus();\r\n setkeyword(\"\");\r\n }\r\n\r\n if (isListOpen == false) {\r\n //console.log(isListOpen);\r\n\r\n if (selected) {\r\n //console.log(selected.value);\r\n setTimeout(() => {\r\n const element = document.getElementsByClassName(\r\n `dd-scroll-list ${props.id}`\r\n );\r\n //console.log(element);\r\n if (document.getElementById(selected) != null) {\r\n //console.log(selected.value);\r\n element[0].scrollTo({\r\n top: document.getElementById(selected).offsetTop - 100,\r\n behavior: \"smooth\",\r\n });\r\n }\r\n }, 0);\r\n }\r\n }\r\n };\r\n //For Open Close Dropdown End\r\n\r\n //For Display ListItems Start\r\n const listItems = () => {\r\n let tempList = [...props.list];\r\n //console.log(\"list of props\", tempList);\r\n\r\n if (keyword.length) {\r\n //check the keyword is match to key or not\r\n tempList = props.list.filter((item) =>\r\n item.value.toLowerCase().includes(keyword.toLowerCase())\r\n );\r\n }\r\n\r\n if (tempList.length > 0) {\r\n return tempList.map((item) => (\r\n {\r\n e.stopPropagation();\r\n selectItem(item);\r\n }}\r\n id={item.value}\r\n >\r\n {item.value}\r\n \r\n ));\r\n }\r\n\r\n return (\r\n \r\n {props.searchable && props.searchable[1]}\r\n \r\n );\r\n };\r\n //For Display ListItems End\r\n\r\n //For TextBox Search Function start\r\n const filterList = (e) => {\r\n setkeyword(e.target.value.toLowerCase());\r\n };\r\n //For TextBox Search Function End\r\n\r\n //For Close Dropdown Start\r\n const close = () => {\r\n console.log(\"close\", isListOpen);\r\n setisListOpen(false);\r\n };\r\n //For Close Dropdown End\r\n\r\n // useEffect(() => {\r\n // console.log(\"effect 1\", isListOpen);\r\n // console.log(close);\r\n // window.removeEventListener(\"click\", close());\r\n // return () => {\r\n // window.removeEventListener(\"click\", close());\r\n // };\r\n // }, [isListOpen]);\r\n\r\n // useEffect(() => {\r\n // console.log(\"effect 2\", isListOpen);\r\n // setTimeout(() => {\r\n // if (isListOpen) {\r\n // window.addEventListener(\"click\", close());\r\n // } else {\r\n // window.removeEventListener(\"click\", close());\r\n // }\r\n // }, 0);\r\n // }, [isListOpen]);\r\n\r\n //For Display Selected Items\r\n const selectItem = (item) => {\r\n //console.log(item);\r\n let foundItem;\r\n let tempList = [...props.list];\r\n\r\n if (item) {\r\n if (!item.key) {\r\n foundItem = tempList.find((i) => i.value == item.value);\r\n //console.log(foundItem);\r\n }\r\n setselected(item.value);\r\n setisListOpen(false);\r\n if (props.onChange != undefined) {\r\n props.onChange(item);\r\n }\r\n }\r\n };\r\n\r\n const selectSingleItem = (item) => {\r\n let tempList = [...props.list];\r\n if (item && props.list) {\r\n const selectedItem = tempList.find((i) => i.value == item.value);\r\n selectItem(selectedItem);\r\n }\r\n\r\n if (item && props.list && props.selectedSerNo) {\r\n const selectedItem = tempList.find((i) => i.key == props.selectedSerNo);\r\n selectItem(selectedItem);\r\n }\r\n };\r\n //only one time call useeffect start\r\n useEffect(() => {\r\n //for unique key\r\n if (props.selectedSerNo) {\r\n const obj = props.list.find((f) => f.key == selected);\r\n if (obj) {\r\n setselected(obj.value);\r\n }\r\n } else {\r\n setselected([]);\r\n }\r\n //for unique key\r\n if (props.selectedSerNo) {\r\n selectSingleItem(props.selectedSerNo);\r\n }\r\n }, []);\r\n //only one time call useeffect end\r\n\r\n useEffect(() => {\r\n let tempList = [...props.list];\r\n if (selected != undefined) {\r\n if (props.selectedSerNo != selected) {\r\n const obj = tempList.find((f) => f.key == props.selectedSerNo);\r\n\r\n if (obj) {\r\n setselected(obj.value);\r\n }\r\n }\r\n }\r\n }, [props.selectedSerNo]);\r\n return (\r\n \r\n {props.searchable && (\r\n e.stopPropagation()}\r\n onChange={(e) => filterList(e)}\r\n />\r\n )}\r\n \r\n {listItems()}\r\n \r\n \r\n )\r\n }\r\n // trigger=\"click\"\r\n arrow={false}\r\n allowHTML={true}\r\n interactive={true}\r\n appendTo={document.body}\r\n visible={isListOpen}\r\n placement=\"bottom-start\"\r\n onClickOutside={() => setisListOpen(!isListOpen)}\r\n >\r\n \r\n
    \r\n {props.type == \"Plain\" ? (\r\n \r\n {props.children}\r\n \r\n ) : (\r\n \r\n \r\n {props.title}\r\n
    \r\n {props.type == \"Action\" ? (\r\n \r\n \r\n \r\n ) : props.type == \"Dot\" ? (\r\n \r\n \r\n \r\n ) : props.type == \"Arrow\" ? (\r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { InnActionButton } from \".\";\r\n\r\nclass InnColorPicker extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n selectedColor: '',\r\n showSelectColor: false,\r\n };\r\n\r\n this.wrapperRef = React.createRef();\r\n this.handleClickOutside = this.handleClickOutside.bind(this);\r\n }\r\n\r\n /* Outside click start */\r\n componentDidMount() {\r\n document.addEventListener(\"mousedown\", this.handleClickOutside);\r\n }\r\n\r\n componentWillUnmount() {\r\n document.removeEventListener(\"mousedown\", this.handleClickOutside);\r\n }\r\n\r\n handleClickOutside(event) {\r\n if (this.wrapperRef && !this.wrapperRef.current.contains(event.target)) {\r\n this.setState({ showSelectColor: false })\r\n\r\n }\r\n }\r\n /* Outside click end */\r\n setColor = color => {\r\n this.setState({ selectedColor: color });\r\n this.setState({ showSelectColor: false })\r\n //this.props.onChange(color);\r\n };\r\n\r\n render() {\r\n //const { colors } = this.props;\r\n const colors = [\r\n \"#FF8282\",\r\n \"#FFC46C\",\r\n \"#3FE98B\",\r\n \"#929BFF\",\r\n \"#A7E3FF\",\r\n \"#D19FF7\",\r\n \"#FFF683\",\r\n \"#FFBEE8\",\r\n \"#D17575\",\r\n \"#444444\",\r\n \"#CCCCCC\",\r\n \"#7FFCCA\",\r\n \"#DB88D8\",\r\n \"#B2DE70\",\r\n \"#DBB07F\",\r\n \"#FEB8B8\",\r\n \"#8686CC\",\r\n \"#78C6CF\",\r\n \"#D1BE46\",\r\n \"#D93A3A\",\r\n ];\r\n const { selectedColor } = this.state;\r\n const toggle = () => { this.setState({ showSelectColor: true }); }\r\n const clear = () => {this.setState({ showSelectColor: false }); this.setState({ selectedColor: \"\" });}\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n
    {/* onChange={setSelectedColor} */}\r\n
    \r\n {this.state.showSelectColor ? (\r\n
    \r\n {colors.map(color => {\r\n return (\r\n
    this.setColor(color)}\r\n >
    \r\n );\r\n })}\r\n Clear\r\n \r\n
    ) : null}\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default InnColorPicker;\r\n/* \r\nconst ColorCircle = styled.div`\r\n box-sizing: border-box;\r\n width: 35px;\r\n height: 35px;\r\n flex-shrink: 0;\r\n max-width: 100%;\r\n border-radius: 50%;\r\n cursor: pointer;\r\n ${p => p.color && `background: ${p.color};`};\r\n ${p =>\r\n p.selected &&\r\n `border: 5px solid ${\r\n p.color\r\n }; background: white; transition: all .2s ease-in-out; transform: scale(1.5)`};\r\n`;\r\n\r\nconst Wrapper = styled.div`\r\n display: flex;\r\n flex-wrap: wrap;\r\n ${ColorCircle} {\r\n margin: 10px 20px 0px 0px;\r\n }\r\n`; */\r\n","import React, { useEffect, useState } from \"react\";\r\n\r\nexport function InnTextarea(props) {\r\n const [textareavalue, settextareavalue] = useState();\r\n //For Display Error Message Varible\r\n const [inputErrors, setinputErrors] = useState(false);\r\n const [errorMessage, seterrorMessage] = useState(false);\r\n const [errorstring, seterrorstring] = useState(\"\");\r\n\r\n const handlechange = (e) => {\r\n settextareavalue(e.target.value);\r\n if (e.target.value != \"\") {\r\n setinputErrors(false);\r\n seterrorMessage(false);\r\n seterrorstring(\"\");\r\n } else {\r\n if (props.required == true) {\r\n setinputErrors(true);\r\n seterrorMessage(true);\r\n seterrorstring(\"This Field is Required..\");\r\n } else {\r\n setinputErrors(false);\r\n seterrorMessage(false);\r\n seterrorstring(\"\");\r\n }\r\n }\r\n if (props.onChange) {\r\n props.onChange(e.target.value);\r\n }\r\n };\r\n\r\n //Focus Event For validation\r\n const handleFocus = (e) => {\r\n if (e.target.value == \"\") {\r\n if (props.required == true) {\r\n setinputErrors(true);\r\n seterrorMessage(true);\r\n seterrorstring(\"This Field is Required..\");\r\n } else {\r\n setinputErrors(false);\r\n seterrorMessage(false);\r\n seterrorstring(\"\");\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (textareavalue != props.value) {\r\n settextareavalue(props.value);\r\n }\r\n }, [props.value]);\r\n //for customerror useeffect start\r\n useEffect(() => {\r\n if (props.customError && props.customError.length > 0) {\r\n setinputErrors(true);\r\n seterrorMessage(true);\r\n seterrorstring(props.customError);\r\n } else {\r\n setinputErrors(false);\r\n seterrorMessage(false);\r\n seterrorstring(\"\");\r\n }\r\n }, [props.customError]);\r\n //for customerror useeffect end\r\n\r\n return (\r\n \r\n \r\n \r\n {inputErrors == true && errorMessage == true ? (\r\n
    \r\n {errorstring}\r\n
    \r\n ) : (\r\n <>\r\n )}\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\n\r\nexport function InnStatusLabel(props) {\r\n return (\r\n \r\n {props.disabled == true ? (\r\n
    \r\n ) : (\r\n \r\n )}\r\n {props.children}\r\n \r\n );\r\n}\r\n","import { flexbox } from \"@mui/system\";\r\nimport React, { useState, useEffect, useRef } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../reducer/authSlice\";\r\nimport { AddEditReservationTask, GetReservationTaskList } from \"../services/reservationCashieringService\";\r\nimport { InnPlainButton } from \"./innButton\";\r\nimport { InnCheckbox } from \"./innCheckbox\";\r\nimport { InnRadioButton } from \"./innRadiobutton\";\r\n\r\nexport function InnMovablePanel(props) {\r\n const [styles, setstyles] = useState({});\r\n const [diffPos, setdiffPos] = useState({ diffX: 0, diffY: 0 });\r\n const [isDragging, setisDragging] = useState(false);\r\n const [isShow, setisShow] = useState(true);\r\n\r\n const [list, setList] = useState([]);\r\n const [reservationTaskList, setReservationTaskList] = useState([]);\r\n const [completedTasksCount, setCompletedTasksCount] = useState(0);\r\n const [selectedHeader, setSelectedHeader] = useState(\"\");\r\n\r\n const dragStart = (e) => {\r\n const boundingReact = e.target.getBoundingClientRect();\r\n\r\n if (boundingReact != undefined) {\r\n setdiffPos({\r\n diffX: e.screenX - boundingReact.left,\r\n diffY: e.screenY - boundingReact.top,\r\n });\r\n setisDragging(true);\r\n return true;\r\n }\r\n };\r\n const dragging = (e) => {\r\n const left = e.screenX - diffPos.diffX;\r\n const top = e.screenY - diffPos.diffY;\r\n setstyles({ left: left, top: top, cursor: \"move\" });\r\n };\r\n //Radio Button Selection Event Start\r\n const handleSelectionChange = (data, value) => {\r\n setSelectedHeader(value);\r\n console.log(value);\r\n if (value == \"All\") {\r\n setReservationTaskList(data);\r\n } else if (value == \"Completed\") {\r\n //console.log(\"list\", data.filter((x) => x.IsCompleted === true));\r\n setReservationTaskList(data.filter((x) => x.IsCompleted === true));\r\n } else if (value == \"Pending\") {\r\n setReservationTaskList(data.filter((x) => x.IsCompleted === false));\r\n }\r\n };\r\n //Radio Button Selection Event End\r\n\r\n const fillTaskList = () => {\r\n\r\n if (props.para != undefined) {\r\n GetReservationTaskList(props.para.ClientSerNo, props.para.PropertySerNo, props.para?.ReservationSerNo?.toString()).then((d) => {\r\n console.log(\"Task list\", d.data);\r\n setList(d.data);\r\n setReservationTaskList(d.data);\r\n if (selectedHeader != \"\") {\r\n handleSelectionChange(d.data, selectedHeader);\r\n }\r\n let completedCount = 0;\r\n d.data.forEach((x) => {\r\n if (x.IsCompleted === true) {\r\n completedCount += 1;\r\n }\r\n });\r\n if (props.onUpdate != undefined) {\r\n props.onUpdate(completedCount, d.data.length);\r\n }\r\n setCompletedTasksCount(completedCount);\r\n });\r\n }\r\n };\r\n const handleTaskCheck = (e, item) => {\r\n item[\"ClientSerNo\"] = props.para.ClientSerNo;\r\n item[\"PropertySerNo\"] = props.para.PropertySerNo;\r\n item[\"ReservationSerNo\"] = props.para.ReservationSerNo;\r\n if (e) {\r\n item.IsCompleted = true;\r\n } else {\r\n item.IsCompleted = false;\r\n }\r\n if (item != undefined) {\r\n console.log(item);\r\n AddEditReservationTask(item);\r\n setTimeout(() => {\r\n fillTaskList();\r\n }, 100);\r\n }\r\n };\r\n useEffect(() => {\r\n if (props.para != undefined) {\r\n if (props.para.ReservationSerNo != undefined) {\r\n fillTaskList();\r\n }\r\n }\r\n }, [props.para?.ReservationSerNo]);\r\n\r\n return isShow == true ? (\r\n \r\n
    \r\n dragStart(e)}\r\n onDragEnd={(e) => dragging(e)}\r\n draggable={true}\r\n >\r\n
    \r\n
    \r\n {props.title}\r\n
    \r\n
    \r\n {completedTasksCount}/{list.length}\r\n
    \r\n
    \r\n {\r\n setisShow(false);\r\n if (props.onClose != undefined) {\r\n props.onClose();\r\n }\r\n }}\r\n >\r\n
    \r\n {\r\n handleSelectionChange(list, value);\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n reservationTaskList.map((item, index) => (\r\n handleTaskCheck(e, item)}\r\n checked={item.IsCompleted}\r\n >\r\n {item.TaskName}\r\n \r\n ))}\r\n
    \r\n
    \r\n \r\n \r\n ) : (\r\n <>\r\n );\r\n}\r\n","//https://www.npmjs.com/package/react-collapsible-component\r\nimport React from 'react'\r\n\r\nexport class InnCollapsibleHead extends React.Component {\r\n \r\n render() {\r\n\r\n const { className } = this.props;\r\n let addClassName = className ? className : '';\r\n\r\n return ()\r\n }\r\n}\r\n\r\nexport class InnCollapsibleContent extends React.Component {\r\n \r\n render() {\r\n\r\n const { className } = this.props;\r\n let addClassName = className ? className : '';\r\n\r\n return (\r\n
    \r\n {this.props.children}\r\n
    )\r\n }\r\n}\r\n\r\nexport class InnCollapsibleComponent extends React.Component {\r\n \r\n componentDidMount() {\r\n\r\n const { name } = this.props;\r\n let selector = name ? '#rcc' + name + ' ' : '';\r\n let acc = document.querySelectorAll(selector + '.accordion-head');\r\n let i;\r\n\r\n for (i = 0; i < acc.length; i++) {\r\n acc[i].classList.toggle('active-accordion');\r\n \r\n acc[i].addEventListener('click', function(e) {\r\n e.preventDefault();\r\n //e.stopPropagation();\r\n \r\n\r\n /* Highlight the button - add/remove \"active-accordion\" class */\r\n this.classList.toggle('active-accordion');\r\n \r\n\r\n /* Hide/show the active panel */\r\n let panel;\r\n\r\n if (this.dataset.showContentAboveButton === 'true' &&\r\n this.previousElementSibling !== null &&\r\n this.previousElementSibling.classList.contains('panel-accordion')) {\r\n panel = this.previousElementSibling;\r\n } else if (this.nextElementSibling !== null &&\r\n this.previousElementSibling !== null &&\r\n this.nextElementSibling.classList.contains('panel-accordion') &&\r\n this.previousElementSibling.classList.contains('panel-accordion')) {\r\n panel = this.nextElementSibling;\r\n \r\n } else if (this.nextElementSibling !== null &&\r\n this.previousElementSibling !== null &&\r\n !this.nextElementSibling.classList.contains('panel-accordion') &&\r\n this.previousElementSibling.classList.contains('panel-accordion')) {\r\n panel = this.previousElementSibling;\r\n } else if (this.nextElementSibling !== null &&\r\n this.nextElementSibling.classList.contains('panel-accordion')) {\r\n panel = this.nextElementSibling;\r\n \r\n } else {\r\n return false;\r\n }\r\n \r\n \r\n if (panel.style.display === 'block') {\r\n panel.style.display = 'none'\r\n } else {\r\n panel.style.display = 'block' \r\n }\r\n })\r\n }\r\n }\r\n \r\n render() {\r\n return (
    \r\n {this.props.children}\r\n
    \r\n )\r\n }\r\n}\r\n","export default __webpack_public_path__ + \"static/media/qr-code.18f667b5.png\";","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnButtonTypeWithDropdown,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnPlainButton,\r\n InnSingleDateSelection,\r\n useConfirm,\r\n InnTableGrid\r\n} from \"../../../component\";\r\nimport { useSelector } from \"react-redux\";\r\nimport moment from \"moment/moment\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { currentUser } from \"../../../reducer/authSlice\";\r\nimport { GetPOSCheckHistoryDetail, GetOutletDataBilling } from \"../../../services/posbillingService\";\r\nimport { GetPropertyParameterByKeys } from \"../../../services/reservationService\";\r\nimport { CheckHistoryPreviewPopup } from './modalPopup/checkHistoryPreviewPopup';\r\nexport default function CheckHistory() {\r\n const history = useHistory();\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const columHeader = [\r\n { key: \"Check No.\", value: \"CheckSerNo\", type: \"txt\", sorting: \"Y\", align: 'left', ObjectName: \"CheckSerNo\" },\r\n { key: \"Bill No.\", value: \"BillNo\", type: \"txt\", sorting: \"Y\", align: 'left', ObjectName: \"BillNo\" },\r\n { key: \"Date\", value: \"CheckDate\", type: \"txt\", sorting: \"Y\", align: 'left', ObjectName: \"CheckDate\" },\r\n { key: \"Start Time\", value: \"OpeningTime\", type: \"txt\", sorting: \"N\", align: 'left', ObjectName: \"StartTime\" },\r\n { key: \"End Time\", value: \"ClosingTime\", type: \"txt\", sorting: \"N\", align: 'left', ObjectName: \"EndTime\" },\r\n { key: \"Table No.\", value: \"TableName\", type: \"txt\", sorting: \"N\", align: 'left', ObjectName: \"TableNo\" },\r\n { key: \"User\", value: \"UserID\", type: \"txt\", sorting: \"N\", align: 'left', ObjectName: \"User\" },\r\n { key: \"Gross Amount\", value: \"TotalAmount\", type: \"txt\", sorting: \"N\", align: 'right', ObjectName: \"TotalAmount\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\", ObjectName: \"Action\" }\r\n ];\r\n /* Page content height set start */\r\n var Pageheight = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);\r\n var GridHeight = Pageheight - 153;\r\n /* Page content height set end */\r\n const [showFilter, setShowFilter] = useState(false);\r\n const [colList, setColList] = useState([]);\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n\r\n const ActionOption = [\r\n { key: \"Preview Check\", value: \"Preview Check\" },\r\n { key: \"Print Check\", value: \"Print Check\" },\r\n { key: \"Void Check\", value: \"Void Check\" },\r\n { key: \"Void & Revert\", value: \"Void & Revert\" },\r\n ];\r\n const optBtnData = [\r\n { key: \"Preview Check\", value: \"Preview Check\" },\r\n // { key: \"Print Check\", value: \"Print Check\" },\r\n // { key: \"Void Check\", value: \"Void Check\" },\r\n // { key: \"Void & Revert\", value: \"Void & Revert\" },\r\n ];\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n const MoreFilterOption = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n const selectdata = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n const actionPopup = (item) => {\r\n if (item.key == \"Preview Check\") {\r\n // history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n setShowCheckPreviewModal(true);\r\n }\r\n }\r\n const [showCheckPreviewModal, setShowCheckPreviewModal] = useState(false);\r\n const [showAdvancedSearchModal, setShowAdvancedSearchModal] = useState();\r\n const [page, setPage] = useState(1);\r\n const [pageCount, setPageCount] = useState(1);\r\n const [colListKeys, setColListKeys] = useState([1]);\r\n const [gridSelectedItem, setgridSelectedItem] = useState([]);\r\n const [showUnSettleBill, setUnSettleBill] = useState(false);\r\n const [selectedSerNo, setSelectedSerNo] = useState(1);\r\n const [checkHistoryFilterObj, setCheckHistoryFilterObj] = useState({\r\n ClientSerNo: currUser.ClientSerNo,\r\n PropertySerNo: currUser.PropertySerNo,\r\n FromDate: \"\",\r\n ToDate: \"\",\r\n OutletSerNo: 0,\r\n isUnSettleBill: false,\r\n PageNumber: 1\r\n })\r\n const [filterData, setfilterData] = useState([]);\r\n const [isPageLoad, setIsPageLoad] = useState(false);\r\n const [outletBiilingData, setOutletBiilingData] = useState([]);\r\n const [postCheckHistoryChargeObj, setPostCheckHistoryChargeObj] = useState({})\r\n const setSelectedItem = (items) => {\r\n setgridSelectedItem(items);\r\n };\r\n const HeaderDefaultDataCall = () => {\r\n GetOutletData();\r\n }\r\n\r\n const GetOutletData = () => {\r\n GetOutletDataBilling(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n let temp = []\r\n if (d.data != undefined) {\r\n d.data.forEach((x) => {\r\n if (x.IsMiniBarOutlet == false) {\r\n temp = [...temp, { key: x.OutletSerNo, value: x.Name }]\r\n }\r\n })\r\n setOutletBiilingData(temp);\r\n setCheckHistoryFilterObj((prev) => ({ ...prev, OutletSerNo: parseInt(temp[0].key), }));\r\n }\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n if (checkHistoryFilterObj.FromDate != \"\" && checkHistoryFilterObj.ToDate != \"\" & checkHistoryFilterObj.OutletSerNo != 0 && isPageLoad) {\r\n fillDataGrid();\r\n }\r\n }, [checkHistoryFilterObj])\r\n\r\n useEffect(() => {\r\n setIsPageLoad(true);\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"BusinessDate\").then((d) => {\r\n let obj = d.data.find((x) => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(d.data[0].value);\r\n setCheckHistoryFilterObj((prev) => ({ ...prev, FromDate: moment(new Date(d.data[0].value)).format(\"DD-MMM-yyyy\"), ToDate: moment(new Date(d.data[0].value)).format(\"DD-MMM-yyyy\") }));\r\n // setPosBussinessDateObj((prev) => ({ ...prev, BussinessDate: moment(new Date(businessDate)).format(\"DD MMM yyyy\") }));\r\n }\r\n });\r\n HeaderDefaultDataCall();\r\n }, []);\r\n\r\n const fillDataGrid = () => {\r\n setIsPageLoad(false);\r\n GetPOSCheckHistoryDetail(checkHistoryFilterObj.ClientSerNo, checkHistoryFilterObj.PropertySerNo, checkHistoryFilterObj.FromDate, checkHistoryFilterObj.ToDate, checkHistoryFilterObj.OutletSerNo, checkHistoryFilterObj.isUnSettleBill, checkHistoryFilterObj.PageNumber).then((d) => {\r\n if (d.data.CheckHistoryDetail.length > 0) {\r\n let temp = Math.ceil(parseInt(d.data.CheckHistoryDetail[0].TotalRows) / 50);\r\n setPageCount(temp);\r\n } else {\r\n setPageCount(1);\r\n }\r\n d.data.CheckHistoryDetail.forEach((x) => {\r\n x.CheckDate = moment(new Date(x.CheckDate)).format(\"DD-MMM-YYYY\");\r\n })\r\n d.data.CheckHistoryDetail.forEach((x) => {\r\n x.TotalAmount = parseFloat(x.TotalAmount).toFixed(2)\r\n })\r\n d.data.CheckHistoryDetail.sort(function(a, b){return a.CheckSerNo-b.CheckSerNo});\r\n \r\n if (d.data != undefined) {\r\n setfilterData(d.data.CheckHistoryDetail);\r\n }\r\n });\r\n };\r\n\r\n const ResetFilter = () => {\r\n setCheckHistoryFilterObj({\r\n ClientSerNo: currUser.ClientSerNo,\r\n PropertySerNo: currUser.PropertySerNo,\r\n FromDate: businessDate != undefined ? moment(new Date(businessDate)).format(\"DD-MMM-yyyy\") : moment(new Date()).format(\"DD-MMM-yyyy\"),\r\n ToDate: businessDate != undefined ? moment(new Date(businessDate)).format(\"DD-MMM-yyyy\") : moment(new Date()).format(\"DD-MMM-yyyy\"),\r\n OutletSerNo: selectedSerNo,\r\n isUnSettleBill: false,\r\n PageNumber: 1\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n if (checkHistoryFilterObj.FromDate != \"\" && checkHistoryFilterObj.ToDate != \"\" & checkHistoryFilterObj.OutletSerNo != 0) {\r\n fillDataGrid();\r\n }\r\n }, [page]);\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Check History

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n {/* {\r\n setshowLeftBlueBar(true);\r\n }}\r\n >\r\n */}\r\n
    \r\n
    \r\n {/* \r\n Export\r\n */}\r\n \r\n setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }\r\n >\r\n \r\n
    \r\n \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* */}\r\n {\r\n setSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n //setReservationStatus(v);\r\n //setShowGuestPopup(true);\r\n }}\r\n fixedHeaderNo={2}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n actionPopup(item)\r\n //history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n //console.log(\"Hey>>\", rowdata)\r\n setgridSelectedItem(rowdata);\r\n setPostCheckHistoryChargeObj(rowdata);\r\n }}\r\n // handleRowSelect={(rowdata) => {\r\n //setSelectedReservation(rowdata);\r\n // handleRmAssignmentData([rowdata]);\r\n //setCheckHistoryFilterObj((prev) => ({ ...prev, OutletSerNo: rowdata.OutletSerNo, Mode: \"Edit\" }))\r\n // }}\r\n handleSortClick={(sn, st) => {\r\n //setCheckHistoryFilterObj((prev) => ({ ...prev, FromDate: sn, ToDate: st }))\r\n }}\r\n >\r\n {\r\n setPage(v);\r\n setCheckHistoryFilterObj((prev) => ({ ...prev, PageNumber: v }))\r\n }}\r\n style={{ float: \"right\" }}\r\n />\r\n
    \r\n {/* Advanced Filter Popup Start */}\r\n {showAdvancedSearchModal ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Filters

    \r\n
    \r\n
    \r\n {\r\n ResetFilter();\r\n }}>\r\n Reset\r\n \r\n {\r\n if (page === 1) fillDataGrid();\r\n else setPage(1);\r\n setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }}>\r\n Apply\r\n \r\n \r\n setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n if (checkHistoryFilterObj.ToDate != undefined && checkHistoryFilterObj.ToDate != \"\") {\r\n if (new Date(value) <= new Date(checkHistoryFilterObj.ToDate)) {\r\n setCheckHistoryFilterObj((prev) => ({ ...prev, FromDate: value }));\r\n } else {\r\n alertFunction(\"Please enter less than To date\");\r\n let oldDate = checkHistoryFilterObj.FromDate;\r\n setCheckHistoryFilterObj((prev) => ({ ...prev, FromDate: value }));\r\n setTimeout(() => {\r\n setCheckHistoryFilterObj((prev) => ({ ...prev, FromDate: oldDate }));\r\n }, 1);\r\n }\r\n } else {\r\n setCheckHistoryFilterObj((prev) => ({ ...prev, FromDate: value }));\r\n }\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n if (checkHistoryFilterObj.FromDate != undefined && checkHistoryFilterObj.FromDate != \"\") {\r\n if (new Date(value) >= new Date(checkHistoryFilterObj.FromDate) && new Date(value) <= new Date(businessDate)) {\r\n setCheckHistoryFilterObj((prev) => ({ ...prev, ToDate: value }));\r\n } else {\r\n alertFunction(\"Please enter more than From date or business date\");\r\n let oldDate = checkHistoryFilterObj.ToDate;\r\n setCheckHistoryFilterObj((prev) => ({ ...prev, ToDate: value }));\r\n setTimeout(() => {\r\n setCheckHistoryFilterObj((prev) => ({ ...prev, ToDate: oldDate }));\r\n }, 1);\r\n }\r\n } else {\r\n setCheckHistoryFilterObj((prev) => ({ ...prev, ToDate: value }));\r\n }\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setCheckHistoryFilterObj((prev) => ({ ...prev, isUnSettleBill: ischecked }));\r\n }}>Un-Settled Bills\r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n Print Original\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setCheckHistoryFilterObj((prev) => ({ ...prev, OutletSerNo: parseInt(item.key), }));\r\n setSelectedSerNo(checkHistoryFilterObj.OutletSerNo)\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n {showCheckPreviewModal ? (\r\n {\r\n setShowCheckPreviewModal(false);\r\n fillDataGrid();\r\n }}\r\n // para={{\r\n // Check: gridSelectedItem,\r\n // BussinessDate: moment(new Date(businessDate)).format(\"DD MMM yyyy\") \r\n // }}\r\n param={moment(new Date(businessDate)).format(\"DD MMM yyyy\")} //Bussinessdate\r\n para={postCheckHistoryChargeObj}\r\n >\r\n ) : null}\r\n \r\n )\r\n}\r\n","import React, { useState } from \"react\";\r\nimport {\r\n InnTextbox,\r\n InnPrimaryButton,\r\n InnModalPopup,\r\n InnKeyboard\r\n} from \"../../../../component\";\r\nimport { useEffect } from \"react\";\r\n\r\nexport function ManualRemarksPopUp(props) {\r\n\r\n const [remarks, setRemarks] = useState(\"\");\r\n const [headerLable, setHeaderLable] = useState(\"\");\r\n const [errMsg, setErrMsg] = useState(\"\");\r\n const [showKeyBoard, setShowKeyBoard] = useState(false);\r\n \r\n const handleOnclose = () => {\r\n if (props.handleOnclose == undefined) {\r\n console.log(\"HandleOnclose not define in parent.\");\r\n } else {\r\n props.handleOnclose();\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if(props.type == \"DynamicTable\"){\r\n setHeaderLable(\"Create Table\");\r\n }else {\r\n setHeaderLable(\"Cancellation Remarks\");\r\n }\r\n }, []);\r\n\r\n const handleSaveOnClick = () => {\r\n let IsValid = true;\r\n if(remarks == \"\"){\r\n if(props.type == \"DynamicTable\"){\r\n setErrMsg(\"Please enter table name\");\r\n }else {\r\n setErrMsg(\"Please enter remarks\");\r\n }\r\n IsValid = false;\r\n }\r\n\r\n if (IsValid) {\r\n let str = remarks;\r\n props.handleCancelletionRemarkClose(str);\r\n }\r\n }\r\n\r\n const remarksOnClick = () => {\r\n setShowKeyBoard(true);\r\n };\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n

    {headerLable}

    \r\n
    \r\n
    \r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n {props.type == \"DynamicTable\"?\r\n
    \r\n
    \r\n
    \r\n
    \r\n {setRemarks(v);}}\r\n onClick={remarksOnClick}\r\n >Table Name\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n :\r\n
    \r\n
    \r\n
    \r\n
    \r\n {setRemarks(v);}}\r\n onClick={remarksOnClick}\r\n >Enter Value\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n }\r\n \r\n \r\n {showKeyBoard ?\r\n {\r\n setRemarks((prev) => ({ ...prev, remarks: \"\" }));\r\n let tempStr = remarks;\r\n if (isBackSpace) {\r\n tempStr = v;\r\n }\r\n else {\r\n tempStr += v;\r\n }\r\n setRemarks(tempStr);\r\n }}\r\n onEnter={() => {\r\n handleSaveOnClick();\r\n }}\r\n onEscape={() => {\r\n setShowKeyBoard(false);\r\n }}\r\n >\r\n : null\r\n }\r\n
    \r\n \r\n )\r\n}","import React, { useState } from \"react\";\r\nimport { cloneElement } from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport {\r\n InnPlainButton,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnSearchTextbox,\r\n InnModalPopup,\r\n InnKeyboard,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport {\r\n setMenuMasterData, setMenuCategoryData,\r\n setMenuSubCategoryData, setMenuItemData, setMenuItemtoppingData, posCollection\r\n} from \"../../../../reducer/posSlice\";\r\nimport {\r\n CheckDynamicTableForPOS,\r\n GetMenuCategoryMasterBilling, GetMenuItemDetailBilling, GetMenuMasterDataBilling,\r\n GetMenuMenuItemToppingBilling, GetMenuSubCategoryMasterBilling, GetOutletTableDataBilling, POSShiftItem, POSTableField, POSTableMerge\r\n} from \"../../../../services/posbillingService\";\r\nimport { ManualRemarksPopUp } from \"./manualRemarksPopup\";\r\nimport { Navigation, Pagination, A11y } from 'swiper';\r\nimport { Scrollbar, FreeMode, Mousewheel } from 'swiper';\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nlet Mode = \"\";\r\nlet ShiftCheckSerNo = 0;\r\nlet MergeDetail = {\r\n FromCheckSerNo: 0,\r\n FromRateSerNo: 0,\r\n FromOutletSerNo: 0,\r\n FromTableSerNo: 0,\r\n FromPrintFlag: 0,\r\n ToCheckSerNo: 0,\r\n ToRateSerNo: 0,\r\n ToOutletSerNo: 0,\r\n ToTableSerNo: 0,\r\n ToPrintFlag: 0,\r\n}\r\n\r\nexport function TableLookUp(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const posData = useSelector(posCollection);\r\n const dispatch = useDispatch();\r\n const [isActive, setActive] = useState(false);\r\n const [selectedOutlet, setSelectedOutlet] = useState(0);\r\n const [ocMainTableListData, setOCMainTableListData] = useState([]);\r\n const [ocTableListData, setOCTableListData] = useState([]);\r\n const [showDynamicTablePopup, setShowDynamicTablePopup] = useState();\r\n const [showKeyBoard, setShowKeyBoard] = useState(false);\r\n const [searchInput, setSearchInput] = useState(\"\");\r\n //const [ModePass, setModePass] = useState();\r\n\r\n useEffect(() => {\r\n let objOutlet = {};\r\n if (props.para?.OutletSerNo != \"\") {\r\n objOutlet = posData.ocOutlet.filter((x) => x.OutletSerNo == props.para?.OutletSerNo)[0];\r\n } else {\r\n objOutlet = posData.ocOutlet[0];\r\n }\r\n\r\n setSelectedOutlet(objOutlet);\r\n handleOutletClick(objOutlet);\r\n }, []);\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n }\r\n\r\n const handleTableSelect = (d) => {\r\n if (props.handleTableSelect === undefined) {\r\n console.log(\"handleTableSelect is not defined\");\r\n } else {\r\n if (props.para?.Mode == \"ShiftItem\") {\r\n let para = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n CheckSerNo: parseInt(posData.objPOSHeaderDetail.CheckSerNo),\r\n CheckItemSerNo: parseInt(props.para?.CheckItemSerNo),\r\n TableSerNo: d.TableSerNo,\r\n OutletSerNo: d.OutletSerNo\r\n }\r\n\r\n POSShiftItem(para).then((e) => {\r\n if (e.data != undefined) {\r\n if (e.data.Code === \"200\") {\r\n let selectedTable = {};\r\n selectedTable.OutletSerNo = props.para?.OutletSerNo;\r\n selectedTable.TableSerNo = posData.objPOSHeaderDetail.TableSerNo;\r\n props.handleTableSelect(selectedTable);\r\n } else {\r\n if (e.data.Message == \"printed\") {\r\n alert(\"Table is all ready printed, please refresh your page ...\");\r\n } else {\r\n alert(\"Problem in shift item.\");\r\n }\r\n }\r\n } else {\r\n alert(\"Problem for fetching detail\");\r\n }\r\n });\r\n } else {\r\n if (d.TableSerNo == 999) {\r\n setShowDynamicTablePopup(true);\r\n } else {\r\n if (Mode === \"\") {\r\n let selectedTable = {};\r\n selectedTable.OutletSerNo = d.OutletSerNo;\r\n selectedTable.TableSerNo = d.TableSerNo;\r\n selectedTable.TableName = d.Name;\r\n if (selectedOutlet.IsRoomServiceOutlet === true) {\r\n selectedTable.RoomSerNo = d.RoomSerNo;\r\n selectedTable.ReservationSerNo = d.ReservationSerNo;\r\n selectedTable.GuestProfileSerNo = d.GuestProfileSerNo;\r\n selectedTable.CompanyProfileSerNo = d.CompanyProfileSerNo;\r\n selectedTable.AgentProfileSerNo = d.AgentProfileSerNo;\r\n selectedTable.SourceProfileSerNo = d.SourceProfileSerNo;\r\n selectedTable.MarketSerNo = d.MarketSerNo;\r\n }\r\n props.handleTableSelect(selectedTable);\r\n } else if (Mode === \"shift\" && ShiftCheckSerNo === 0) {\r\n if (d.PrintFlag === 1) {\r\n Mode = \"\";\r\n ShiftCheckSerNo = 0;\r\n alert(\"Table already printed, shift not allow.\");\r\n } else {\r\n ShiftCheckSerNo = d.CheckSerNo;\r\n }\r\n } else if (Mode === \"shift\" && ShiftCheckSerNo != 0) {\r\n Mode = \"\";\r\n if (d.CheckSerNo === 0) {\r\n let para = {};\r\n para = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n CheckSerNo: parseInt(ShiftCheckSerNo),\r\n TableName: \"pPOSTable\",\r\n FieldName: \"TableSerNo\",\r\n FieldValue: d.TableSerNo.toString()\r\n }\r\n\r\n setActive(true);\r\n POSTableField(para).then((d1) => {\r\n setActive(false);\r\n if (d1.data != undefined) {\r\n ShiftCheckSerNo = 0;\r\n if (d1.data.Code === \"200\") {\r\n handleOutletClick(selectedOutlet);\r\n } else {\r\n alert(\"Problem in shift\");\r\n }\r\n }\r\n })\r\n } else {\r\n Mode = \"\";\r\n ShiftCheckSerNo = 0;\r\n alert(\"Only vacant table shift allow.\")\r\n }\r\n } else if (Mode === \"merge\" && MergeDetail.FromCheckSerNo === 0 && d.CheckSerNo != 0) {\r\n MergeDetail.FromCheckSerNo = d.CheckSerNo;\r\n MergeDetail.FromOutletSerNo = d.OutletSerNo;\r\n MergeDetail.FromRateSerNo = d.RateSerNo;\r\n MergeDetail.FromTableSerNo = d.TableSerNo;\r\n MergeDetail.FromPrintFlag = d.PrintFlag;\r\n } else if (Mode === \"merge\" && MergeDetail.FromTableSerNo != 0 && MergeDetail.FromCheckSerNo != 0) {\r\n Mode = \"\";\r\n MergeDetail.ToCheckSerNo = d.CheckSerNo;\r\n MergeDetail.ToOutletSerNo = d.OutletSerNo;\r\n MergeDetail.ToRateSerNo = d.RateSerNo;\r\n MergeDetail.ToTableSerNo = d.TableSerNo;\r\n MergeDetail.ToPrintFlag = d.PrintFlag;\r\n\r\n if (MergeDetail.FromCheckSerNo === MergeDetail.ToCheckSerNo) {\r\n MergeDetail = {};\r\n alert(\"Table cannot be merged itself.\");\r\n } else if (MergeDetail.FromOutletSerNo === MergeDetail.ToOutletSerNo) {\r\n if (MergeDetail.FromPrintFlag === 1) {\r\n alert(\"Table cannot be merged because table bill is printed.\");\r\n MergeDetail = {\r\n FromCheckSerNo: 0,\r\n FromRateSerNo: 0,\r\n FromOutletSerNo: 0,\r\n FromTableSerNo: 0,\r\n FromPrintFlag: 0,\r\n ToCheckSerNo: 0,\r\n ToRateSerNo: 0,\r\n ToOutletSerNo: 0,\r\n ToTableSerNo: 0,\r\n ToPrintFlag: 0,\r\n };\r\n } else if (MergeDetail.ToPrintFlag === 1) {\r\n alert(\"Table cannot be merged because table bill is printed.\");\r\n MergeDetail = {\r\n FromCheckSerNo: 0,\r\n FromRateSerNo: 0,\r\n FromOutletSerNo: 0,\r\n FromTableSerNo: 0,\r\n FromPrintFlag: 0,\r\n ToCheckSerNo: 0,\r\n ToRateSerNo: 0,\r\n ToOutletSerNo: 0,\r\n ToTableSerNo: 0,\r\n ToPrintFlag: 0,\r\n };\r\n } else if (MergeDetail.FromRateSerNo != MergeDetail.ToRateSerNo) {\r\n alert(\"Table cannot be merged because rate are different for both table.\");\r\n MergeDetail = {\r\n FromCheckSerNo: 0,\r\n FromRateSerNo: 0,\r\n FromOutletSerNo: 0,\r\n FromTableSerNo: 0,\r\n FromPrintFlag: 0,\r\n ToCheckSerNo: 0,\r\n ToRateSerNo: 0,\r\n ToOutletSerNo: 0,\r\n ToTableSerNo: 0,\r\n ToPrintFlag: 0,\r\n };\r\n } else {\r\n let para = {};\r\n para = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n FromCheckSerNo: parseInt(MergeDetail.FromCheckSerNo),\r\n ToCheckSerNo: parseInt(MergeDetail.ToCheckSerNo)\r\n }\r\n\r\n setActive(true);\r\n POSTableMerge(para).then((d1) => {\r\n setActive(false);\r\n if (d1.data != undefined) {\r\n if (d1.data.Code === \"200\") {\r\n handleOutletClick(selectedOutlet);\r\n MergeDetail = {\r\n FromCheckSerNo: 0,\r\n FromRateSerNo: 0,\r\n FromOutletSerNo: 0,\r\n FromTableSerNo: 0,\r\n FromPrintFlag: 0,\r\n ToCheckSerNo: 0,\r\n ToRateSerNo: 0,\r\n ToOutletSerNo: 0,\r\n ToTableSerNo: 0,\r\n ToPrintFlag: 0,\r\n };\r\n } else {\r\n alert(\"Problem in merge\");\r\n }\r\n }\r\n })\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n const handleOutletClick = (d) => {\r\n Mode = \"\";\r\n setSelectedOutlet(d);\r\n if (posData.ocMenuMasterData != undefined) {\r\n if (posData.ocMenuMasterData.filter((x) => x.OutletSerNo === d.OutletSerNo).length == 0) {\r\n getMenuDetail(d.OutletSerNo);\r\n }\r\n } else {\r\n getMenuDetail(d.OutletSerNo);\r\n }\r\n\r\n setActive(true);\r\n GetOutletTableDataBilling(parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo), parseInt(d.OutletSerNo), 0).then((d) => {\r\n setActive(false);\r\n if (d.data != undefined) {\r\n setOCMainTableListData(d.data);\r\n\r\n if (props.para?.Mode == \"ShiftItem\") {\r\n let temp = [];\r\n temp = d.data.filter((x) => x.CheckSerNo != 0 && x.PrintFlag == 0)\r\n let obj = [];\r\n temp.forEach(element => {\r\n obj.push(element);\r\n });\r\n setOCTableListData(obj);\r\n } else {\r\n setOCTableListData(d.data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n const handleOccupiedTable = () => {\r\n Mode = \"\";\r\n let temp = [];\r\n temp = ocMainTableListData.filter((x) => x.CheckSerNo != 0 && x.PrintFlag == 0)\r\n let obj = [];\r\n temp.forEach(element => {\r\n obj.push(element);\r\n });\r\n setOCTableListData(obj);\r\n }\r\n\r\n const handleAllTable = () => {\r\n Mode = \"\";\r\n let temp = [];\r\n temp = ocMainTableListData\r\n let obj = [];\r\n temp.forEach(element => {\r\n obj.push(element);\r\n });\r\n setOCTableListData(obj);\r\n }\r\n\r\n const handleVacantTable = () => {\r\n Mode = \"\";\r\n let temp = [];\r\n temp = ocMainTableListData.filter((x) => x.CheckSerNo == 0 && x.PrintFlag == 0)\r\n let obj = [];\r\n temp.forEach(element => {\r\n obj.push(element);\r\n });\r\n setOCTableListData(obj);\r\n }\r\n\r\n const getMenuDetail = (OutletSerNo) => {\r\n GetMenuMasterDataBilling(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo),\r\n parseInt(OutletSerNo)).then((d) => {\r\n if (d.data != undefined) {\r\n dispatch(setMenuMasterData(d.data));\r\n GetMenuCategoryMasterBilling(parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo), parseInt(d.data[0].MenuSerNo)).then((e) => {\r\n if (e.data != undefined) {\r\n dispatch(setMenuCategoryData(e.data));\r\n }\r\n });\r\n\r\n GetMenuSubCategoryMasterBilling(parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo), parseInt(d.data[0].MenuSerNo)).then((f) => {\r\n if (f.data != undefined) {\r\n dispatch(setMenuSubCategoryData(f.data));\r\n }\r\n });\r\n\r\n GetMenuItemDetailBilling(parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo), parseInt(d.data[0].MenuSerNo)).then((g) => {\r\n if (g.data != undefined) {\r\n dispatch(setMenuItemData(g.data));\r\n }\r\n });\r\n\r\n GetMenuMenuItemToppingBilling(parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo), parseInt(d.data[0].MenuSerNo)).then((h) => {\r\n if (h.data != undefined) {\r\n dispatch(setMenuItemtoppingData(h.data));\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n const handleShiftClick = () => {\r\n Mode = \"shift\";\r\n ShiftCheckSerNo = 0;\r\n }\r\n\r\n const handleMergeClick = () => {\r\n Mode = \"merge\";\r\n MergeDetail = {\r\n FromCheckSerNo: 0,\r\n FromRateSerNo: 0,\r\n FromOutletSerNo: 0,\r\n FromTableSerNo: 0,\r\n FromPrintFlag: 0,\r\n ToCheckSerNo: 0,\r\n ToRateSerNo: 0,\r\n ToOutletSerNo: 0,\r\n ToTableSerNo: 0,\r\n ToPrintFlag: 0,\r\n };\r\n };\r\n\r\n const handleDynamicTableClose = (v) => {\r\n setShowDynamicTablePopup(false);\r\n let tempObj = [];\r\n tempObj = JSON.parse(JSON.stringify(ocTableListData));\r\n let maxTableSerNo = 0;\r\n tempObj.filter((x) => x.TableSerNo != 999).forEach(element => {\r\n if (maxTableSerNo == 0) {\r\n maxTableSerNo = element.TableSerNo;\r\n }\r\n if (maxTableSerNo < element.TableSerNo) {\r\n maxTableSerNo = element.TableSerNo;\r\n } else {\r\n }\r\n });\r\n if (tempObj.length > 0) {\r\n let obj = {\r\n OutletSerNo: selectedOutlet.OutletSerNo,\r\n TableSerNo: parseInt(maxTableSerNo + 1),\r\n Name: v.toString(),\r\n PrintFlag: 0,\r\n CheckSerNo: 0,\r\n ProfileName: \"\",\r\n SequenceNo: 98,\r\n IsDynamicTable: 1,\r\n RateSerNo: 0\r\n }\r\n tempObj.push(obj);\r\n }\r\n let sortItem = [].concat(tempObj)\r\n .sort((a, b) => a.SequenceNo > b.SequenceNo ? 1 : -1);\r\n setOCTableListData(sortItem);\r\n };\r\n\r\n const serachOnClick = () => {\r\n setShowKeyBoard(true);\r\n };\r\n\r\n useEffect(() => {\r\n let objItem = [];\r\n objItem = ocMainTableListData.filter(post => {\r\n if (searchInput === \"\") return ocMainTableListData\r\n return post.Name.toLowerCase().includes(searchInput.toLowerCase())\r\n })\r\n setOCTableListData(objItem);\r\n }, [searchInput]);\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    Lookup

    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(swiper)}\r\n >\r\n \r\n
    \r\n {\r\n ocTableListData ? ocTableListData.map((d) =>\r\n d.PrintFlag ?\r\n {\r\n handleTableSelect(d);\r\n }}>\r\n {d.Name}\r\n \r\n :\r\n d.CheckSerNo != 0 ?\r\n {\r\n handleTableSelect(d);\r\n }}>\r\n {d.Name}\r\n \r\n :\r\n {\r\n handleTableSelect(d);\r\n }}>\r\n {d.Name}\r\n \r\n ) : <>\r\n }\r\n
    \r\n
     
    \r\n
    \r\n
    \r\n
    \r\n
    Vacant Table
    \r\n
    Occupied Table
    \r\n
    Printed Table
    \r\n
    \r\n
    \r\n \r\n {showKeyBoard ?\r\n {\r\n let tempStr = searchInput;\r\n if (isBackSpace) {\r\n tempStr = v;\r\n }\r\n else {\r\n tempStr += v;\r\n }\r\n setSearchInput(tempStr);\r\n }}\r\n onEscape={() => {\r\n setShowKeyBoard(false);\r\n }}\r\n >\r\n : null\r\n }\r\n
    \r\n
    \r\n\r\n\r\n\r\n\r\n {\r\n props.para?.Mode == \"ShiftItem\" ?\r\n
    \r\n Shift\r\n All\r\n Occupied\r\n Vacant\r\n Merge\r\n
    \r\n :\r\n
    \r\n Shift\r\n All\r\n Occupied\r\n Vacant\r\n Merge\r\n
    \r\n }\r\n\r\n
    \r\n
    \r\n {\r\n props.para?.Mode == \"ShiftItem\" ?\r\n Search\r\n :\r\n setSearchInput(v)}\r\n onClick={serachOnClick}>Search\r\n }\r\n\r\n
    \r\n console.log(swiper)}\r\n >\r\n \r\n {\r\n posData.ocOutlet ? posData.ocOutlet.map((d) =>\r\n props.para?.Mode == \"ShiftItem\" ?\r\n {\r\n handleOutletClick(d);\r\n }}\r\n >{d.Name}\r\n :\r\n {\r\n handleOutletClick(d);\r\n }}\r\n >{d.Name}\r\n ) : <>\r\n }\r\n
     
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n {showDynamicTablePopup ?\r\n setShowDynamicTablePopup(false)}\r\n handleCancelletionRemarkClose={(v) => handleDynamicTableClose(v)}\r\n >\r\n : null\r\n }\r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n InnTableGrid,\r\n InnTextarea,\r\n InnActionButton,\r\n InnSearchTextbox,\r\n InnModalPopup,\r\n InnKeyboard,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetRateCodeMasterPOS, GetReferenceMaster } from \"../../../../services/posbillingService\";\r\nimport { Navigation, Pagination, A11y } from 'swiper';\r\nimport { Scrollbar, FreeMode, Mousewheel } from 'swiper';\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nlet RateSerNo = 0;\r\nexport function RatePopUp(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const [isActive, setActive] = useState(false);\r\n const [showCompRemarks, setShowCompRemarks] = useState(false);\r\n const [gridSelectedItem, setGridSelectedItem] = useState({});\r\n const [ocRateDetail, setOcRateDetail] = useState([]);\r\n const [ocMainReferenceMaster, setMainOcReferenceMaster] = useState([]);\r\n const [ocReferenceMaster, setOcReferenceMaster] = useState([]);\r\n const [remark, setRemark] = useState(\"\");\r\n const [errList, setErrList] = useState({\r\n remarkError: \"\"\r\n });\r\n const [showKeyBoard, setShowKeyBoard] = useState(false);\r\n const [searchInput, setSearchInput] = useState(\"\");\r\n const [searchText, setSearchText] = useState(\"\");\r\n const [flagClick, setFlagClick] = useState(\"\");\r\n\r\n const POSRerefernceHeader = [\r\n { key: \"Name\", value: \"Name\", type: \"txt\", sorting: \"N\" },\r\n ];\r\n\r\n const setSelectedItem = (items) => {\r\n setGridSelectedItem(items);\r\n };\r\n\r\n useEffect(() => {\r\n setActive(true);\r\n GetRateCodeMasterPOS(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setActive(false);\r\n let tempRate = [];\r\n if (d.data != undefined) {\r\n d.data.forEach(ele => {\r\n tempRate.push(ele);\r\n });\r\n } else {\r\n alert(\"Problem to fetch rate data.\");\r\n }\r\n setOcRateDetail(tempRate);\r\n });\r\n\r\n setActive(true);\r\n GetReferenceMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setActive(false);\r\n let tempReference = [];\r\n if (d.data != undefined) {\r\n d.data.forEach(ele => {\r\n tempReference.push(ele);\r\n });\r\n setSelectedItem(tempReference[0]);\r\n } else {\r\n }\r\n setMainOcReferenceMaster(tempReference);\r\n setOcReferenceMaster(tempReference);\r\n })\r\n }, []);\r\n\r\n const handleRateClick = (d) => {\r\n RateSerNo = d.RateSerNo;\r\n setShowCompRemarks(d.IsComplimentary);\r\n if (d.IsComplimentary === false) {\r\n let tempRate = {\r\n RateSerNo: d.RateSerNo,\r\n ReferenceSerNo: 0,\r\n Remarks: \"\",\r\n IsComplimentary: d.IsComplimentary\r\n }\r\n props.handleRateClick(tempRate);\r\n }\r\n };\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n };\r\n\r\n const handleOnCompClose = () => {\r\n if (remark === \"\") {\r\n setErrList((prev) => ({ ...prev, remarkError: \"Please enter remarks.\" }));\r\n } else {\r\n setErrList((prev) => ({ ...prev, remarkError: \"\" }));\r\n if (gridSelectedItem.ReferenceSerNo == undefined) {\r\n alert(\"Please select any reference.\");\r\n } else {\r\n let tempRate = {\r\n RateSerNo: RateSerNo,\r\n ReferenceSerNo: gridSelectedItem.ReferenceSerNo,\r\n Remarks: remark,\r\n IsComplimentary: true\r\n }\r\n props.handleRateClick(tempRate);\r\n }\r\n }\r\n };\r\n\r\n const serachOnClick = () => {\r\n setFlagClick(\"search\");\r\n setSearchInput(\"\");\r\n setShowKeyBoard(true);\r\n };\r\n\r\n const remarksOnClick = () => {\r\n setFlagClick(\"remark\");\r\n setSearchInput(\"\");\r\n setShowKeyBoard(true);\r\n };\r\n\r\n useEffect(() => {\r\n if (flagClick == \"search\") {\r\n setSearchText(searchInput);\r\n setSelectedItem({});\r\n let objItem = [];\r\n objItem = ocMainReferenceMaster.filter(post => {\r\n if (searchInput === \"\") return ocMainReferenceMaster\r\n return post.Name.toLowerCase().includes(searchInput.toLowerCase())\r\n })\r\n setOcReferenceMaster(objItem);\r\n } else {\r\n setRemark(searchInput);\r\n }\r\n }, [searchInput]);\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    Rate

    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n
    \r\n \r\n {\r\n showCompRemarks ?\r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedItem(items);\r\n }}\r\n fixedHeaderNo={2}\r\n uniqueColumn=\"ReferenceSerNo\"\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n setRemark(v)\r\n }\r\n onClick={remarksOnClick}\r\n >Remark\r\n
    \r\n
    \r\n
    \r\n : <>\r\n }\r\n {showKeyBoard ?\r\n {\r\n let tempStr = searchInput;\r\n if (isBackSpace) {\r\n tempStr = v;\r\n }\r\n else {\r\n tempStr += v;\r\n }\r\n setSearchInput(tempStr);\r\n }}\r\n onEnter={() => {\r\n handleOnCompClose();\r\n }}\r\n onEscape={() => {\r\n setShowKeyBoard(false);\r\n }}\r\n >\r\n : null\r\n }\r\n \r\n
    \r\n \r\n\r\n
    \r\n {/* \r\n COMP Done */}\r\n console.log(swiper)}\r\n >\r\n \r\n {\r\n ocRateDetail ? ocRateDetail.map((d) =>\r\n { handleRateClick(d) }}\r\n >\r\n {d.Name}\r\n \r\n ) : <>\r\n }\r\n
     
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n InnPlainButton,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnModalPopup,\r\n InnLoader,\r\n} from \"../../../../component\";\r\nimport { posCollection } from \"../../../../reducer/posSlice\";\r\nimport { Navigation, Pagination, A11y } from 'swiper';\r\nimport { Scrollbar, FreeMode, Mousewheel } from 'swiper';\r\nimport { Swiper,SwiperSlide } from \"swiper/react\";\r\nexport function MandatoryModifierPopup(props) {\r\n\r\n const [isActive, setActive] = useState(false);\r\n const [ocMandatoryModifier, setOcMandatoryModifier] = useState([]);\r\n const [selectedMandatoryModifier, setSelectedMandatoryModifier] = useState([]);\r\n const [selectedModifier, setSelectedModifier] = useState(\"\");\r\n const posData = useSelector(posCollection);\r\n\r\n useEffect(() => {\r\n let objModifier = [];\r\n if (posData.ocMenuItemTopping.filter((x) => x.ItemSerNo == props.para?.ItemSerNo).length != 0) {\r\n let tempObj = [];\r\n tempObj = posData.ocMenuItemTopping.filter((x) => x.ItemSerNo == props.para?.ItemSerNo);\r\n tempObj.forEach(element => {\r\n objModifier.push(element);\r\n });\r\n }\r\n setOcMandatoryModifier(objModifier);\r\n }, []);\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n let strOrginal = selectedModifier;\r\n\r\n if (selectedModifier == undefined) {\r\n strOrginal = \"\";\r\n }\r\n\r\n let tempObj = {\r\n ItemSerNo: props.para?.ItemSerNo,\r\n ToppingName: strOrginal,\r\n selectedModifier: selectedMandatoryModifier\r\n }\r\n props.handleOnclose(tempObj);\r\n }\r\n }\r\n\r\n const handleOnClick = (d) => {\r\n let tempModifier = []\r\n tempModifier = JSON.parse(JSON.stringify(selectedMandatoryModifier));\r\n let strOrginal = selectedModifier;\r\n\r\n if (selectedModifier == undefined) {\r\n strOrginal = \"\";\r\n }\r\n if (strOrginal === \"\") {\r\n let obj = {\r\n ItemSerNo: parseInt(props.para?.ItemSerNo),\r\n ToppingSerNo: d.ToppingSerNo,\r\n Amount: d.Amount\r\n }\r\n tempModifier.push(obj);\r\n if (d.Amount > 0) {\r\n setSelectedModifier(strOrginal + d.Name + \" (\" + d.Amount + \")\");\r\n } else {\r\n setSelectedModifier(strOrginal + d.Name);\r\n }\r\n } else {\r\n if (strOrginal.includes(d.Name)) {\r\n tempModifier = tempModifier.filter((x) => x.ToppingSerNo != d.ToppingSerNo);\r\n if (d.Amount > 0) {\r\n strOrginal = strOrginal.replace(\",\" + d.Name + \" (\" + d.Amount + \")\", \"\");\r\n strOrginal = strOrginal.replace(d.Name + \" (\" + d.Amount + \")\" + \",\", \"\");\r\n strOrginal = strOrginal.replace(d.Name + \" (\" + d.Amount + \")\", \"\");\r\n } else {\r\n strOrginal = strOrginal.replace(\",\" + d.Name, \"\");\r\n strOrginal = strOrginal.replace(d.Name + \",\", \"\");\r\n strOrginal = strOrginal.replace(d.Name, \"\");\r\n }\r\n setSelectedModifier(strOrginal);\r\n } else {\r\n let obj = {\r\n ItemSerNo: parseInt(props.para?.ItemSerNo),\r\n ToppingSerNo: d.ToppingSerNo,\r\n Amount: d.Amount\r\n }\r\n tempModifier.push(obj);\r\n if (d.Amount > 0) {\r\n setSelectedModifier(strOrginal + \",\" + d.Name + \" (\" + d.Amount + \")\");\r\n } else {\r\n setSelectedModifier(strOrginal + \",\" + d.Name);\r\n }\r\n }\r\n }\r\n setSelectedMandatoryModifier(tempModifier);\r\n }\r\n\r\n const handleOnSaveClick = () => {\r\n let strOrginal = selectedModifier;\r\n\r\n if (selectedModifier == undefined) {\r\n strOrginal = \"\";\r\n }\r\n let tempObj = {\r\n ItemSerNo: props.para?.ItemSerNo,\r\n ToppingName: strOrginal\r\n }\r\n }\r\n\r\n return (\r\n \r\n {/*
    \r\n
    \r\n
    \r\n

    Mandatory Modifier

    \r\n Taha\r\n {selectedModifier}\r\n
    \r\n
    \r\n
    */}\r\n \r\n
    \r\n
    \r\n
    \r\n

    Mandatory Modifier

    \r\n
    \r\n
    \r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(swiper)}\r\n >\r\n \r\n
    \r\n {\r\n ocMandatoryModifier ? ocMandatoryModifier.map((d) =>\r\n x.ToppingSerNo == d.ToppingSerNo).length == 0 ? \"pos-btn backced9ff33\" : \"pos-btn backced9ff33 active\"}\r\n id={d.Name}\r\n onClick={() => { handleOnClick(d) }}\r\n >\r\n {d.Name}\r\n \r\n ) : <>\r\n }\r\n
    \r\n
     
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    {selectedModifier}
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n InnPlainButton,\r\n InnTextbox,\r\n InnTooltip,\r\n InnTableGrid,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnSearchTextbox,\r\n InnModalPopup,\r\n InnKeyboard\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport {\r\n clearMenuItemData,\r\n clearPOSItemDetail, clearPOSItemDetailSearch, clearPOSItemToppingDetail,\r\n clearPOSItemToppingDetailSearch, posCollection, setMenuItemData, setPOSItemDetailSearch,\r\n setPOSItemToppingDetailSearch, setPOSTableTotalDetail\r\n} from \"../../../../reducer/posSlice\";\r\nimport { MandatoryModifierPopup } from \"./madatoryModifierPopup\";\r\nimport { Navigation, Pagination, A11y } from 'swiper';\r\nimport { Scrollbar, FreeMode, Mousewheel } from 'swiper';\r\nimport { Swiper,SwiperSlide } from \"swiper/react\";\r\nlet ItemFlag = false;\r\nexport function ItemSearchPopup(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const [gridSelectedItem, SetgridSelectedItem] = useState([]);\r\n const posData = useSelector(posCollection);\r\n const dispatch = useDispatch();\r\n //const [ocPOSItemDetail, setOcPOSItemDetail] = useState([]);\r\n const [selectItemName, setSelectItemName] = useState(\"\");\r\n const [selectQty, setSelectQty] = useState(\"1\");\r\n const [selectItemSerNo, setSelectItemSerNo] = useState(0);\r\n const [showPOSMandatoryModifierPopup, setShowPOSMandatoryModifierPopup] = useState(false);\r\n const [showKeyBoard, setShowKeyBoard] = useState(false);\r\n const [posItemData, setPOSItemData] = useState([]);\r\n\r\n const posInfoTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n

    hfk hsfh lsah flas flsa

    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const setSelectedItem = (items) => {\r\n SetgridSelectedItem(items);\r\n setSelectQty(\"1\");\r\n setSelectItemName(items.Name);\r\n };\r\n\r\n //grid header\r\n const columHeader = [\r\n { key: \"Item\", value: \"Name\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Regular Rate\", value: \"RegularRate\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n { key: \"SubCategory\", value: \"SubCategoryName\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Category\", value: \"CategoryName\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Item Code\", value: \"ItemCode\", type: \"txt\", sorting: \"Y\" },\r\n ];\r\n\r\n useEffect(() => {\r\n dispatch(setPOSItemDetailSearch(posData.ocPOSItemDetail));\r\n dispatch(setPOSItemToppingDetailSearch(posData.ocPOSItemToppingDetailSearch));\r\n setPOSItemData(posData.ocMenuItemData);\r\n //setOcPOSItemDetail(posData.ocPOSItemDetail);\r\n }, []);\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n dispatch(clearPOSItemDetailSearch());\r\n dispatch(clearPOSItemToppingDetailSearch());\r\n props.handleOnclose(false);\r\n }\r\n }\r\n const onCancelClick = (d, i) => {\r\n let objSelectedItem = [];\r\n if (posData.ocPOSItemDetailSearch != undefined) {\r\n objSelectedItem = JSON.parse(JSON.stringify(posData.ocPOSItemDetailSearch));\r\n }\r\n dispatch(clearPOSItemDetailSearch());\r\n\r\n var x = objSelectedItem.splice(i, 1);\r\n dispatch(setPOSItemDetailSearch(objSelectedItem));\r\n }\r\n\r\n useEffect(() => {\r\n if (ItemFlag) {\r\n openModifierPopup();\r\n }\r\n }, [selectItemSerNo]);\r\n\r\n const openModifierPopup = () => {\r\n setShowPOSMandatoryModifierPopup(true);\r\n }\r\n\r\n const handleAddItemClick = () => {\r\n setShowKeyBoard(false);\r\n let selectedItem = {};\r\n let objItem = {};\r\n selectedItem = gridSelectedItem;\r\n\r\n if (posData.ocMenuItemTopping.filter((x) => x.ItemSerNo == selectedItem.ItemSerNo).length != 0) {\r\n if (selectItemSerNo === selectedItem.ItemSerNo) {\r\n openModifierPopup();\r\n } else {\r\n ItemFlag = true;\r\n setSelectItemSerNo(selectedItem.ItemSerNo);\r\n }\r\n } else {\r\n let ItemRate = \"0\";\r\n if (posData.objPOSHeaderDetail.IsComplimentary === true) {\r\n ItemRate = selectedItem.CostRate.toFixed(2);\r\n } else {\r\n ItemRate = selectedItem.RegularRate.toFixed(2);\r\n }\r\n\r\n objItem = {\r\n CheckSerNo: 0,\r\n CheckItemSerNo: 0,\r\n KOTNo: 0,\r\n ItemSerNo: parseInt(selectedItem.ItemSerNo),\r\n ItemName: selectedItem.Name,\r\n ItemQty: parseInt(selectQty),\r\n ItemRate: parseFloat(ItemRate),\r\n ToppingSerNo: 0,\r\n CookingInsName: \"\",\r\n ToppingName: \"\",\r\n UserID: currUser.UserID,\r\n ItemGroupSerNo: selectedItem.ItemGroupSerNo,\r\n ItemSubGroupSerNo: selectedItem.ItemSubGroupSerNo,\r\n DiscountAmt: 0,\r\n IsPercentage: false,\r\n CancelCheckItemSerNo: 0,\r\n ManKOTNo: \"0\",\r\n IsNewItem: true\r\n };\r\n\r\n let objSelectedItem = [];\r\n if (posData.ocPOSItemDetailSearch != undefined) {\r\n objSelectedItem = JSON.parse(JSON.stringify(posData.ocPOSItemDetailSearch));\r\n }\r\n dispatch(clearPOSItemDetailSearch());\r\n\r\n if (objSelectedItem.filter((x) => x.ItemSerNo == selectedItem.ItemSerNo && x.IsNewItem === true).length == 0) {\r\n objSelectedItem.push(objItem);\r\n } else if (objSelectedItem.filter((x) => x.ItemSerNo == selectedItem.ItemSerNo && x.IsNewItem === true).length != 0) {\r\n objSelectedItem.forEach(element => {\r\n if (element.ItemSerNo == selectedItem.ItemSerNo && element.IsNewItem === true) {\r\n element.ItemQty = element.ItemQty + 1\r\n }\r\n });\r\n }\r\n\r\n dispatch(setPOSItemDetailSearch(objSelectedItem));\r\n let objTotal = {\r\n TotalQty: 0,\r\n TotalAmount: 0.00\r\n }\r\n objSelectedItem.forEach(element => {\r\n objTotal.TotalQty = objTotal.TotalQty + element.ItemQty;\r\n objTotal.TotalAmount = objTotal.TotalAmount + (element.ItemQty * element.ItemRate);\r\n });\r\n\r\n dispatch(setPOSTableTotalDetail(objTotal));\r\n setSelectItemName(\"\");\r\n }\r\n }\r\n\r\n const handleOnMandatoryModifier = (v) => {\r\n setShowPOSMandatoryModifierPopup(false);\r\n let selectedItemSerNo = v.ItemSerNo;\r\n let selectedItem = {};\r\n let objItem = {};\r\n selectedItem = gridSelectedItem;\r\n\r\n let ItemRate = \"0\";\r\n if (posData.objPOSHeaderDetail.IsComplimentary === true) {\r\n ItemRate = selectedItem.CostRate.toFixed(2);\r\n } else {\r\n ItemRate = selectedItem.RegularRate.toFixed(2);\r\n }\r\n\r\n objItem = {\r\n CheckSerNo: 0,\r\n CheckItemSerNo: 0,\r\n KOTNo: 0,\r\n ItemSerNo: parseInt(selectedItemSerNo),\r\n ItemName: selectedItem.Name,\r\n ItemQty: parseInt(selectQty),\r\n ItemRate: parseFloat(ItemRate),\r\n ToppingSerNo: 0,\r\n CookingInsName: \"\",\r\n ToppingName: v.ToppingName,\r\n UserID: currUser.UserID,\r\n ItemGroupSerNo: selectedItem.ItemGroupSerNo,\r\n ItemSubGroupSerNo: selectedItem.ItemSubGroupSerNo,\r\n DiscountAmt: 0,\r\n IsPercentage: false,\r\n CancelCheckItemSerNo: 0,\r\n ManKOTNo: \"0\",\r\n IsNewItem: true\r\n };\r\n\r\n let objSelectedItem = [];\r\n if (posData.ocPOSItemDetailSearch != undefined) {\r\n objSelectedItem = JSON.parse(JSON.stringify(posData.ocPOSItemDetailSearch));\r\n }\r\n dispatch(clearPOSItemDetailSearch());\r\n\r\n if (objSelectedItem.filter((x) => x.ItemSerNo == selectedItemSerNo && x.IsNewItem === true && x.ToppingName == v.ToppingName).length == 0) {\r\n objSelectedItem.push(objItem);\r\n dispatch(setPOSItemToppingDetailSearch(v.selectedModifier));\r\n } else if (objSelectedItem.filter((x) => x.ItemSerNo == selectedItemSerNo && x.IsNewItem === true && x.ToppingName == v.ToppingName).length != 0) {\r\n objSelectedItem.forEach(element => {\r\n if (element.ItemSerNo == selectedItemSerNo && element.IsNewItem === true) {\r\n element.ItemQty = element.ItemQty + 1\r\n }\r\n });\r\n }\r\n\r\n dispatch(setPOSItemDetailSearch(objSelectedItem));\r\n let objTotal = {\r\n TotalQty: 0,\r\n TotalAmount: 0.00\r\n }\r\n objSelectedItem.forEach(element => {\r\n objTotal.TotalQty = objTotal.TotalQty + element.ItemQty;\r\n objTotal.TotalAmount = objTotal.TotalAmount + (element.ItemQty * element.ItemRate);\r\n });\r\n\r\n dispatch(setPOSTableTotalDetail(objTotal));\r\n setSelectItemName(\"\");\r\n }\r\n\r\n const handleOnSubmitClick = () => {\r\n dispatch(clearPOSItemDetail());\r\n dispatch(clearPOSItemToppingDetail());\r\n props.handleOnSubmit();\r\n }\r\n\r\n const handleQtyChange = (v) => {\r\n const re = /^[0-9\\b]+$/;\r\n if (v == \"\") {\r\n setSelectQty(\"1\");\r\n }\r\n if (re.test(v)) {\r\n if (v < 1) {\r\n setSelectQty(\"1\");\r\n } else {\r\n setSelectQty(v);\r\n }\r\n } else {\r\n setSelectQty(\"1\");\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n let objItem = [];\r\n objItem = posData.ocMenuItemData.filter(post => {\r\n if (selectItemName === \"\") return posData.ocMenuItemData\r\n return post.Name.toLowerCase().includes(selectItemName.toLowerCase())\r\n })\r\n // if (selectItemName == \"\") {\r\n // objItem = JSON.parse(JSON.stringify(posData.ocMenuItemData));\r\n // } else {\r\n // objItem = posData.ocMenuItemData.filter((x) => x.Name.toLowerCase().includes(selectItemName.toLowerCase()));\r\n // }\r\n setPOSItemData(objItem);\r\n }, [selectItemName]);\r\n\r\n const serachOnClick = () => {\r\n setShowKeyBoard(true);\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n

    Item Search

    \r\n
    \r\n
    \r\n \r\n Submit (F8)\r\n \r\n\r\n
    \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n setSelectItemName(v)}>\r\n Search\r\n \r\n
    \r\n
    \r\n handleQtyChange(v)}>\r\n QTY\r\n \r\n \r\n Add\r\n \r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n setSelectedItem(rowdata);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n
    \r\n {showKeyBoard ?\r\n {\r\n let tempStr = selectItemName;\r\n if (isBackSpace) {\r\n tempStr = v;\r\n }\r\n else {\r\n tempStr += v;\r\n }\r\n setSelectItemName(tempStr);\r\n }}\r\n onEscape={() => {\r\n setShowKeyBoard(false);\r\n }}\r\n >\r\n\r\n \r\n : null\r\n }\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Item DescriptionQTY.
    \r\n \r\n console.log(swiper)}\r\n >\r\n \r\n \r\n \r\n \r\n {\r\n posData.ocPOSItemDetailSearch ? posData.ocPOSItemDetailSearch.map((d, index) =>\r\n \r\n \r\n \r\n \r\n ) : <>\r\n }\r\n \r\n
    \r\n {d.ItemName}\r\n {\r\n d.ToppingName != \"\" ?\r\n
    \r\n

    {d.ToppingName}

    \r\n
    : null\r\n }\r\n {\r\n d.CookingInsName != \"\" ?\r\n
    \r\n

    {d.CookingInsName}

    \r\n
    : null\r\n }\r\n
    \r\n {d.ItemQty}\r\n {\r\n d.IsNewItem ?\r\n onCancelClick(d, index)}>\r\n \r\n : <>\r\n }\r\n
    \r\n
     
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {\r\n showPOSMandatoryModifierPopup ?\r\n handleOnMandatoryModifier(v)}\r\n para={{\r\n \"ItemSerNo\": selectItemSerNo\r\n }}\r\n >\r\n\r\n \r\n : null\r\n }\r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n InnTableGrid,\r\n InnSearchTextbox,\r\n InnModalPopup,\r\n InnKeyboard,\r\n InnPrimaryButton,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetServerMasterBilling } from \"../../../../services/posbillingService\";\r\n\r\nexport function ServerPopUp(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const [isActive, setActive] = useState(false);\r\n const [selectedItem, setSelectedItem] = useState(\"\");\r\n const [ocMainServerData, setMainocServerData] = useState([]);\r\n const [ocServerData, setOcServerData] = useState([]);\r\n const [showKeyBoard, setShowKeyBoard] = useState(false);\r\n const [searchInput, setSearchInput] = useState(\"\");\r\n\r\n const columHeader = [\r\n { key: \"Name\", value: \"Name\", type: \"txt\", sorting: \"N\" },\r\n ];\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n setActive(true);\r\n GetServerMasterBilling(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setActive(false);\r\n let tempServer = [];\r\n if (d.data != undefined) {\r\n d.data.forEach(element => {\r\n tempServer.push(element);\r\n });\r\n setSelectedItem(d.data[0]);\r\n }\r\n setMainocServerData(tempServer);\r\n setOcServerData(tempServer);\r\n });\r\n }, []);\r\n\r\n const handleServerClick = () => {\r\n if (props.handleServerClick === undefined) {\r\n console.log(\"handleServerClick is not defined\");\r\n } else {\r\n if(selectedItem == \"\"){\r\n alert(\"Please select server.\");\r\n }else {\r\n props.handleServerClick(selectedItem);\r\n setShowKeyBoard(false);\r\n } \r\n }\r\n };\r\n\r\n const serachOnClick = () => {\r\n setShowKeyBoard(true);\r\n };\r\n\r\n useEffect(() => {\r\n setSelectedItem(\"\");\r\n let objItem = [];\r\n objItem = ocMainServerData.filter(post => {\r\n if (searchInput === \"\") return ocMainServerData\r\n return post.Name.toLowerCase().includes(searchInput.toLowerCase())\r\n })\r\n setOcServerData(objItem);\r\n },[searchInput]);\r\n\r\n return (\r\n handleOnclose(false)}\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n

    Server

    \r\n
    \r\n
    \r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {setSearchInput(v)}}\r\n onClick={serachOnClick}>Search\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n {\r\n setSelectedItem(rowdata);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n
    \r\n {showKeyBoard ?\r\n {\r\n let tempStr = searchInput;\r\n if (isBackSpace) {\r\n tempStr = v;\r\n }\r\n else {\r\n tempStr += v;\r\n }\r\n setSearchInput(tempStr);\r\n }}\r\n onEnter={() => {\r\n handleServerClick();\r\n }}\r\n onEscape={() => {\r\n setShowKeyBoard(false);\r\n }}\r\n >\r\n : null\r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n}","import React, { useState } from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport {\r\n InnTextbox,\r\n InnTooltip,\r\n InnTableGrid,\r\n InnActionButton,\r\n InnModalPopup,\r\n InnCheckbox,\r\n InnLoader,\r\n InnPrimaryButton\r\n} from \"../../../../component\";\r\nimport { posCollection, updateTableDiscountDetail } from \"../../../../reducer/posSlice\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { UpdatePOSItemDiscount } from \"../../../../services/posbillingService\";\r\n\r\nlet selectedOutlet = {};\r\nlet tempItemGroupDiscountData = [];\r\nexport function DiscountPopUp(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const posData = useSelector(posCollection);\r\n const dispatch = useDispatch();\r\n const [isActive, setActive] = useState(false);\r\n const [DiscountGroup, setDiscountGroup] = useState(\"Item Group wise\");\r\n const [gridSelectedItem, SetgridSelectedItem] = useState([]);\r\n const [temp, settemp] = useState(false);\r\n const [headerDiscount, setHeaderDiscount] = useState(0);\r\n const [tableDiscountData, setTableDiscountData] = useState({})\r\n const [itemGroupDiscountData, setItemGroupDiscountData] = useState([])\r\n const [discountRemark, setDiscountRemark] = useState(\"\");\r\n const [manualAmount, setManualAmount] = useState(\"\");\r\n\r\n const POSDiscountHeader = [\r\n { key: \"Check\", value: \"CheckSerNo\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Amount\", value: \"Amount\", type: \"txt\", sorting: \"N\", align: \"right\" },\r\n { key: \"Discount\", value: \"DiscountAmt\", type: \"txt\", sorting: \"N\", align: \"right\" },\r\n ];\r\n\r\n const POSRateHeader2 = [\r\n { key: \"GroupName\", value: \"ItemGroupName\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Amount\", value: \"Amount\", type: \"txt\", sorting: \"N\", align: \"right\" },\r\n { key: \"Discount\", value: \"DiscountAmt\", type: \"txt\", sorting: \"N\", align: \"right\" },\r\n ];\r\n \r\n const setSelectedItem = (items) => {\r\n SetgridSelectedItem(items);\r\n tempItemGroupDiscountData = [];\r\n\r\n itemGroupDiscountData.forEach(element => {\r\n let cnt = items.filter(x=> x.ItemGroupSerNo == element.ItemGroupSerNo).length;\r\n if(cnt == 0){\r\n tempItemGroupDiscountData.push(element);\r\n }\r\n });\r\n items.forEach(element => {\r\n tempItemGroupDiscountData.push(element);\r\n });\r\n\r\n settemp(!temp);\r\n };\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n }\r\n\r\n const ItemGroupWiseTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n

    Loreium ipsume del to rikca....

    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n function onDiscountChangeValue(event) {\r\n if (event.target.value === \"Table Wise\") {\r\n CheckWiseData();\r\n } else if (event.target.value === \"Item Group wise\") {\r\n ItemGroupWiseData();\r\n }\r\n setDiscountGroup(event.target.value);\r\n };\r\n\r\n const handleDiscountClick = (e) => { \r\n let IsValid = true;\r\n let IsPercentage = false;\r\n let Discount = 0;\r\n if (e.target.id === \"INR\") {\r\n if (manualAmount != \"\") {\r\n let DiscountAmt = 0;\r\n try {\r\n let TotalAmount = 0;\r\n posData.ocPOSItemDetail.forEach(element => {\r\n TotalAmount = TotalAmount + (element.ItemQty * element.ItemRate);\r\n });\r\n if (selectedOutlet[0].IsDiscountPercentage === true) {\r\n DiscountAmt = ((TotalAmount * selectedOutlet[0].DiscountAmt) / 100);\r\n } else {\r\n DiscountAmt = selectedOutlet[0].DiscountAmt;\r\n }\r\n if (DiscountAmt < manualAmount) {\r\n IsValid = false;\r\n }\r\n } catch (ex) {\r\n\r\n }\r\n } else {\r\n alert(\"Please Enter Discount Value.\");\r\n }\r\n } else if (e.target.id === \"%\") {\r\n if (manualAmount != \"\") {\r\n let DiscountAmt = 0;\r\n try {\r\n let TotalAmount = 0;\r\n posData.ocPOSItemDetail.forEach(element => {\r\n TotalAmount = TotalAmount + (element.ItemQty * element.ItemRate);\r\n });\r\n DiscountAmt = selectedOutlet[0].DiscountAmt;\r\n if (DiscountAmt < manualAmount) {\r\n IsValid = false;\r\n }\r\n } catch (ex) {\r\n\r\n }\r\n } else {\r\n alert(\"Please Enter Discount Value.\");\r\n }\r\n } else {\r\n let DiscountAmt = 0;\r\n DiscountAmt = selectedOutlet[0].DiscountAmt;\r\n if (DiscountAmt < e.target.id) {\r\n IsValid = false;\r\n }\r\n }\r\n\r\n if (IsValid) {\r\n if (e.target.id === \"INR\") {\r\n if (DiscountGroup == \"Item Group wise\") {\r\n alert(\"Item group wise discount in INR not allow.\");\r\n } else {\r\n let TotalAmount = 0;\r\n posData.ocPOSItemDetail.forEach(element => {\r\n TotalAmount = TotalAmount + (element.ItemQty * element.ItemRate);\r\n });\r\n\r\n if (manualAmount <= TotalAmount) {\r\n let tempTableData = [];\r\n tempTableData = tableDiscountData;\r\n tempTableData.forEach(element => {\r\n element.DiscountAmt = parseFloat(manualAmount);\r\n element.IsPercentage = false;\r\n });\r\n setTableDiscountData(tempTableData);\r\n\r\n let obj = {\r\n Discount: manualAmount,\r\n Percentage: false,\r\n }\r\n dispatch(updateTableDiscountDetail(obj))\r\n\r\n if (posData.objPOSHeaderDetail.CheckSerNo != 0) {\r\n let para = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n CheckSerNo: parseInt(posData.objPOSHeaderDetail.CheckSerNo),\r\n POSItemDiscountDetails: tempTableData,\r\n IsUpdateAll: true,\r\n IsSubGroupDiscount: false,\r\n UserID: currUser.UserID,\r\n Remarks: \"\"\r\n }\r\n\r\n setActive(true);\r\n UpdatePOSItemDiscount(para).then((d) => {\r\n setActive(false);\r\n if (d.data != undefined) {\r\n if (d.data.Message === \"printed\") {\r\n alert(\"Bill is already printed, please refresh your page ...\")\r\n } else {\r\n if (d.data.Message != \"Done\") {\r\n alert(\"Discount not updated, Please try again.\");\r\n }\r\n }\r\n props.handleDiscountOnClose();\r\n }\r\n });\r\n }\r\n } else {\r\n alert(\"Discount amount can not be more than bill amount.\");\r\n }\r\n }\r\n } else if (e.target.id === \"%\") {\r\n if (manualAmount <= 100) {\r\n if (DiscountGroup == \"Item Group wise\") {\r\n let tempObj = [];\r\n tempItemGroupDiscountData.forEach(element => {\r\n if (element.checked) {\r\n element.DiscountAmt = parseFloat(manualAmount);\r\n }\r\n element.checked = false;\r\n tempObj.push(element);\r\n });\r\n setItemGroupDiscountData(tempObj);\r\n } else {\r\n let tempTableData = [];\r\n tempTableData = tableDiscountData;\r\n tempTableData.forEach(element => {\r\n element.DiscountAmt = parseFloat(manualAmount);\r\n element.IsPercentage = true;\r\n });\r\n setTableDiscountData(tempTableData);\r\n\r\n let obj = {\r\n Discount: manualAmount,\r\n Percentage: true,\r\n }\r\n dispatch(updateTableDiscountDetail(obj))\r\n\r\n if (posData.objPOSHeaderDetail.CheckSerNo != 0) {\r\n let para = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n CheckSerNo: parseInt(posData.objPOSHeaderDetail.CheckSerNo),\r\n POSItemDiscountDetails: tempTableData,\r\n IsUpdateAll: true,\r\n IsSubGroupDiscount: false,\r\n UserID: currUser.UserID,\r\n Remarks: \"\"\r\n }\r\n\r\n setActive(true);\r\n UpdatePOSItemDiscount(para).then((d) => {\r\n setActive(false);\r\n if (d.data != undefined) {\r\n if (d.data.Message === \"printed\") {\r\n alert(\"Bill is already printed, please refresh your page ...\")\r\n } else {\r\n if (d.data.Message != \"Done\") {\r\n alert(\"Discount not updated, Please try again.\");\r\n }\r\n }\r\n props.handleDiscountOnClose();\r\n }\r\n });\r\n }\r\n }\r\n } else {\r\n alert(\"Discount amount can not be more than bill amount.\");\r\n }\r\n } else {\r\n if (DiscountGroup == \"Item Group wise\") {\r\n let tempObj = [];\r\n tempItemGroupDiscountData.forEach(element => {\r\n if (element.checked) {\r\n element.DiscountAmt = parseFloat(e.target.id);\r\n }\r\n element.checked = false;\r\n tempObj.push(element);\r\n });\r\n setItemGroupDiscountData(tempObj);\r\n } else {\r\n let tempTableData = [];\r\n tempTableData = tableDiscountData;\r\n tempTableData.forEach(element => {\r\n element.DiscountAmt = parseFloat(e.target.id);\r\n element.IsPercentage = true;\r\n });\r\n setTableDiscountData(tempTableData);\r\n\r\n let obj = {\r\n Discount: e.target.id,\r\n Percentage: true,\r\n }\r\n dispatch(updateTableDiscountDetail(obj))\r\n\r\n if (posData.objPOSHeaderDetail.CheckSerNo != 0) {\r\n let para = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n CheckSerNo: parseInt(posData.objPOSHeaderDetail.CheckSerNo),\r\n POSItemDiscountDetails: tempTableData,\r\n IsUpdateAll: true,\r\n IsSubGroupDiscount: false,\r\n UserID: currUser.UserID,\r\n Remarks: \"\"\r\n }\r\n\r\n setActive(true);\r\n UpdatePOSItemDiscount(para).then((d) => {\r\n setActive(false);\r\n if (d.data != undefined) {\r\n if (d.data.Message === \"printed\") {\r\n alert(\"Bill is already printed, please refresh your page ...\")\r\n } else {\r\n if (d.data.Message != \"Done\") {\r\n alert(\"Discount not updated, Please try again.\");\r\n }\r\n }\r\n props.handleDiscountOnClose();\r\n }\r\n });\r\n }\r\n }\r\n }\r\n } else {\r\n alert(\"Discount should less than max discount of outlet.\");\r\n }\r\n };\r\n\r\n const handleItemGroupDiscount = () => {\r\n setActive(true);\r\n if (posData.objPOSHeaderDetail.CheckSerNo != 0) {\r\n setActive(false);\r\n let para = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n CheckSerNo: parseInt(posData.objPOSHeaderDetail.CheckSerNo),\r\n POSItemDiscountDetails: itemGroupDiscountData.filter((x) => x.DiscountAmt != 0),\r\n IsUpdateAll: false,\r\n IsSubGroupDiscount: false,\r\n UserID: currUser.UserID,\r\n Remarks: \"\"\r\n }\r\n\r\n UpdatePOSItemDiscount(para).then((d) => {\r\n if (d.data != undefined) {\r\n if (d.data.Message === \"printed\") {\r\n alert(\"Bill is already printed, please refresh your page ...\")\r\n } else {\r\n if (d.data.Message != \"Done\") {\r\n alert(\"Discount not updated, Please try again.\");\r\n }\r\n }\r\n props.handleDiscountOnClose();\r\n }\r\n });\r\n }\r\n };\r\n\r\n const handleKeyBoardClick = (e) => {\r\n let str = \"\";\r\n str = manualAmount\r\n if (manualAmount == undefined) {\r\n str = \"\";\r\n }\r\n if (e.target.id === \"C\") {\r\n str = \"\";\r\n } else if (e.target.id === \"1\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"2\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"3\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"4\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"5\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"6\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"7\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"8\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"9\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"0\") {\r\n str = str + e.target.id;\r\n }\r\n\r\n setManualAmount(str); \r\n };\r\n\r\n const CheckWiseData = () => {\r\n setActive(true);\r\n let TotalAmount = 0;\r\n posData.ocPOSItemDetail.forEach(element => {\r\n TotalAmount = TotalAmount + (element.ItemQty * element.ItemRate);\r\n });\r\n\r\n let obj = {\r\n CheckSerNo: posData.objPOSHeaderDetail.CheckSerNo,\r\n DiscountAmt: posData.objPOSHeaderDetail.Discount,\r\n IsPercentage: posData.objPOSHeaderDetail.Percentage,\r\n Amount: TotalAmount,\r\n ItemGroupSerNo: 0,\r\n ItemSubGroupSerNo: 0\r\n };\r\n if (posData.objPOSHeaderDetail.Discount === 0) {\r\n setDiscountRemark(\"Discount not apply\");\r\n }\r\n let tempObj = [];\r\n tempObj.push(obj);\r\n setTableDiscountData(tempObj);\r\n setActive(false);\r\n };\r\n\r\n const ItemGroupWiseData = () => {\r\n let ItemGroupSerNo = 0;\r\n let DiscountAmount = 0;\r\n let ItemGroupName = \"\";\r\n let tempGroup = [];\r\n let TotalAmount = 0;\r\n setActive(true);\r\n let sortItem = [].concat(posData.ocPOSItemDetail)\r\n .sort((a, b) => a.ItemGroupSerNo > b.ItemGroupSerNo ? 1 : -1);\r\n TotalAmount = 0;\r\n for (let index = 0; index < sortItem.length; index++) {\r\n if (sortItem[index].ItemGroupSerNo != ItemGroupSerNo) {\r\n if (ItemGroupSerNo == 0) {\r\n ItemGroupSerNo = sortItem[index].ItemGroupSerNo;\r\n ItemGroupName = sortItem[index].ItemGroupName;\r\n TotalAmount = TotalAmount + (sortItem[index].ItemQty * sortItem[index].ItemRate);\r\n DiscountAmount = sortItem[index].DiscountAmt;\r\n } else {\r\n let obj = {\r\n ItemGroupSerNo: ItemGroupSerNo,\r\n ItemGroupName: ItemGroupName,\r\n Amount: TotalAmount,\r\n DiscountAmt: DiscountAmount,\r\n IsPercentage: true,\r\n ItemSubGroupSerNo: 0\r\n }\r\n tempGroup.push(obj);\r\n TotalAmount = 0;\r\n ItemGroupSerNo = sortItem[index].ItemGroupSerNo;\r\n ItemGroupName = sortItem[index].ItemGroupName;\r\n TotalAmount = TotalAmount + (sortItem[index].ItemQty * sortItem[index].ItemRate);\r\n DiscountAmount = sortItem[index].DiscountAmt;\r\n }\r\n } else {\r\n TotalAmount = TotalAmount + (sortItem[index].ItemQty * sortItem[index].ItemRate);\r\n }\r\n\r\n if (index === sortItem.length - 1) {\r\n let obj = {\r\n ItemGroupSerNo: ItemGroupSerNo,\r\n ItemGroupName: ItemGroupName,\r\n Amount: TotalAmount,\r\n DiscountAmt: parseFloat(DiscountAmount),\r\n IsPercentage: true,\r\n ItemSubGroupSerNo: 0\r\n }\r\n tempGroup.push(obj);\r\n }\r\n }\r\n setItemGroupDiscountData(tempGroup);\r\n setActive(false);\r\n };\r\n\r\n useEffect(() => {\r\n let isItemGroupDiscount = 0;\r\n selectedOutlet = props.para?.Outlet;\r\n\r\n posData.ocPOSItemDetail.forEach(element => {\r\n if (element.DiscountAmt > 0) {\r\n isItemGroupDiscount = 1;\r\n }\r\n });\r\n\r\n if (isItemGroupDiscount === 0) {\r\n CheckWiseData();\r\n setDiscountGroup(\"Table Wise\");\r\n } else {\r\n ItemGroupWiseData();\r\n setDiscountGroup(\"Item Group wise\");\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    Discount

    \r\n
    \r\n
    \r\n {DiscountGroup === \"Item Group wise\" ?\r\n Save\r\n \r\n : <>\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    Table Wise ({headerDiscount}%)
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    Subgroup Wise
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    \r\n {/* Discount already applied by MD sir (10% discount on all food). */}\r\n {discountRemark}\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {DiscountGroup === \"Table Wise\" ?\r\n {\r\n }}\r\n > : null}\r\n {DiscountGroup === \"Item Group wise\" ?\r\n { \r\n setSelectedItem(items);\r\n }}\r\n fixedHeaderNo={2}\r\n > : null}\r\n {DiscountGroup === \"Subgroup Wise\" ?\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Item GroupAmountDiscount
    Sub 214000
    Sub 214000
    Minibar14000
    Sub 214000
    Minibar14000
    Minibar14000
    \r\n
    : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n 5%\r\n 10%\r\n 15%\r\n 20%\r\n 30%\r\n 40%\r\n 50%\r\n
    \r\n
    \r\n INR\r\n %\r\n
    \r\n
    \r\n setManualAmount(v)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    789
    456
    123
    .0Clear
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnPlainButton,\r\n InnTextbox,\r\n InnTooltip,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnSearchTextbox,\r\n InnModalPopup,\r\n InnSingleSelectDropdown,\r\n InnCheckbox,\r\n InnKeyboard\r\n} from \"../../../../component\";\r\nimport { GetCreditCardMachineMaster, GetTransactionMaster } from \"../../../../services/posbillingService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetPropertyParameterByKeys } from \"../../../../services/reservationService\";\r\nimport { posCollection } from \"../../../../reducer/posSlice\";\r\nimport { Navigation, Pagination, A11y } from 'swiper';\r\nimport { Scrollbar, FreeMode, Mousewheel } from 'swiper';\r\nimport { Swiper,SwiperSlide } from \"swiper/react\";\r\nlet Mode = \"Slip\";\r\nexport function MediaPopUp(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const posData = useSelector(posCollection);\r\n // const [showPOSMediaPopup, setShowPOSMediaPopup] = useState();\r\n // const [showPOSRoomSettlementPopup, setShowPOSRoomSettlementPopup] = useState();\r\n const [ocTransactionMaster, setOcTransactionMaster] = useState([]);\r\n const [ocCreditCardMachine, setOcCreditCardMachine] = useState([]);\r\n const [selectedMachine, setSelectedMachine] = useState({});\r\n const [AllowTipAmount, setAllowTipAmount] = useState(false);\r\n const [IsUseCreditCardMachine, setIsUseCreditCardMachine] = useState(false);\r\n const [TipAmount, setTipAmount] = useState(\"\");\r\n const [ChequeNo, setChequeNo] = useState(\"\");\r\n const [ChequeNoLabel, setChequeNoLabel] = useState(\"\");\r\n const [showRightPanel, setShowRightPanel] = useState(true);\r\n const [slipError, setSlipError] = useState(\"\");\r\n const [selectedTransaction, setSelectedTransaction] = useState({});\r\n\r\n useEffect(() => {\r\n\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), [\"AllowTipAmount\", \"IsUseCreditCardMachine\"]).then((d) => {\r\n setAllowTipAmount(d.data[0].value);\r\n setIsUseCreditCardMachine(d.data[1].value);\r\n });\r\n\r\n GetTransactionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"P\", \"ALL\").then((d) => {\r\n let tempObj = [];\r\n if (d.data != undefined) {\r\n d.data.forEach(element => {\r\n if (element.PaymentMethodType != \"CASH\") {\r\n tempObj.push(element);\r\n }\r\n });\r\n }\r\n setOcTransactionMaster(tempObj);\r\n handleOnClickTransaction(tempObj[0]);\r\n });\r\n\r\n GetCreditCardMachineMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n let tempObj = [];\r\n if (d.data != undefined) {\r\n d.data.forEach(element => {\r\n let obj = {\r\n key: \"\",\r\n value: \"\"\r\n };\r\n obj.key = element.CardMachineSerNo;\r\n obj.value = element.Name;\r\n tempObj.push(obj);\r\n });\r\n } else {\r\n let obj = {\r\n key: \"\",\r\n value: \"\"\r\n };\r\n tempObj.push(obj);\r\n }\r\n setOcCreditCardMachine(tempObj);\r\n setSelectedMachine(tempObj[0]);\r\n });\r\n\r\n }, []);\r\n\r\n const handleOnClickTransaction = (e) => {\r\n setSelectedTransaction(e);\r\n setTipAmount(\"\");\r\n setChequeNo(\"\");\r\n if (e.PaymentMethodType == \"CH\") {\r\n setShowRightPanel(true);\r\n setChequeNoLabel(\"Cheque No\");\r\n } else if (e.PaymentMethodType == \"COMP\") {\r\n setShowRightPanel(false);\r\n } else if (e.PaymentMethodType == \"RS\") {\r\n let obj = {\r\n \"selectedPayMode\": e,\r\n \"SlipNo\": \"\",\r\n \"Tip\": \"0.00\",\r\n \"CardMachine\": 0\r\n }\r\n props.handlOnClickSave(obj);\r\n } else {\r\n setShowRightPanel(true);\r\n setChequeNoLabel(\"Slip No\");\r\n }\r\n }\r\n\r\n const handleOnClickTipAmount = () => {\r\n Mode = \"Tip\";\r\n }\r\n\r\n const handleOnClickChequeNo = () => {\r\n Mode = \"Slip\";\r\n setSlipError(\"\");\r\n }\r\n\r\n const handleKeyBoardClick = (e) => {\r\n let str = \"\";\r\n\r\n if (Mode == \"Tip\") {\r\n str = TipAmount;\r\n if (TipAmount == undefined) {\r\n str = \"\";\r\n }\r\n } else {\r\n str = ChequeNo;\r\n if (ChequeNo == undefined) {\r\n str = \"\";\r\n }\r\n }\r\n\r\n if (e.target.id === \"C\") {\r\n str = \"\";\r\n } else if (e.target.id === \"1\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"2\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"3\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"4\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"5\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"6\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"7\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"8\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"9\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"0\") {\r\n str = str + e.target.id;\r\n }\r\n\r\n if (Mode == \"Tip\") {\r\n setTipAmount(str);\r\n } else {\r\n setChequeNo(str);\r\n }\r\n }\r\n\r\n const handlOnClickSave = () => {\r\n let IsValid = true;\r\n if (selectedTransaction.PaymentMethodType == \"CH\") {\r\n if (ChequeNo == \"\") {\r\n setSlipError(\"Please enter chequeno.\");\r\n IsValid = false;\r\n }\r\n } else if (selectedTransaction.PaymentMethodType == \"CD\") {\r\n if (ChequeNo == \"\") {\r\n setSlipError(\"Please enter slip number.\");\r\n IsValid = false;\r\n }\r\n }\r\n if (posData.objPOSHeaderDetail.IsComplimentary === true) {\r\n if (selectedTransaction.PaymentMethodType != \"COMP\") {\r\n alert(\"Only complimentary settlement allow.\");\r\n IsValid = false;\r\n return;\r\n }\r\n }\r\n\r\n if (IsValid) {\r\n let obj = {\r\n \"selectedPayMode\": selectedTransaction,\r\n \"SlipNo\": ChequeNo,\r\n \"Tip\": TipAmount,\r\n \"CardMachine\": selectedMachine\r\n }\r\n props.handlOnClickSave(obj);\r\n }\r\n }\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose == undefined) {\r\n\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n

    Media

    \r\n
    \r\n
    \r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n showRightPanel ?\r\n
    \r\n {\r\n AllowTipAmount == 1 ?\r\n
    \r\n Tip Amount\r\n
    \r\n : <>\r\n }\r\n\r\n
    \r\n {ChequeNoLabel}\r\n
    \r\n {\r\n IsUseCreditCardMachine == 1 ?\r\n
    \r\n \r\n
    \r\n : <>\r\n }\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    789
    456
    123
    .0Clear
    \r\n
    \r\n \r\n
    \r\n :\r\n
    \r\n }\r\n
    \r\n \r\n \r\n console.log(swiper)}\r\n >\r\n \r\n
    \r\n {ocTransactionMaster ? ocTransactionMaster.map((item) =>\r\n { handleOnClickTransaction(item) }}\r\n >{item.Name}\r\n ) : <>}\r\n
    \r\n
     
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnPlainButton,\r\n InnTextbox,\r\n InnTooltip,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnSearchTextbox,\r\n InnModalPopup,\r\n InnSingleSelectDropdown,\r\n InnCheckbox,\r\n InnSwitch,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetPOSShowDetailData } from \"../../../../services/posbillingService\";\r\n\r\nexport function ShowDetailsPopUp(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const [isActive, setActive] = useState(false);\r\n const [showDetailData,setShowDetailData] = useState({});\r\n\r\n useEffect(() => {\r\n setActive(true);\r\n GetPOSShowDetailData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(props?.CheckSerNo)).then((d) => {\r\n if(d.data != undefined){\r\n setShowDetailData(d.data);\r\n }\r\n setActive(false);\r\n });\r\n },[]);\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose == undefined){\r\n console.log(\"handleOnclose is not defined\");\r\n }else{\r\n props.handleOnclose();\r\n }\r\n }\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    Details

    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Guest Name{showDetailData.GuestName}
    \r\n
    Rate{showDetailData.RateName}
    \r\n
    Discount{showDetailData.DiscoutAmt}
    \r\n
    Agent{showDetailData.CompanyName}
    \r\n
    Mobile{showDetailData.Mobile}
    \r\n
    Address{showDetailData.Address}
    \r\n
    Pax{showDetailData.NoOfPax}
    \r\n
    Server{showDetailData.ServerName}
    \r\n
    Reference.
    \r\n
    Menu{showDetailData.MenuName}
    \r\n
    Table Modifier.
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Tax Examp.{showDetailData.ExamptionName}
    \r\n
    Gross{parseFloat(showDetailData?.Gross).toFixed(2)}
    \r\n
    Add Tax{parseFloat(showDetailData?.Tax).toFixed(2)}
    \r\n
    Less Discount{parseFloat(showDetailData?.Discount).toFixed(2)}
    \r\n
    Less Received{parseFloat(showDetailData?.Settle).toFixed(2)}
    \r\n
    Guest Point.
    \r\n
    Remarks{showDetailData.Remarks}
    \r\n
    ₹  {parseFloat(showDetailData?.TotalAmount).toFixed(2)}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n InnPlainButton,\r\n InnTextbox,\r\n InnTooltip,\r\n InnTableGrid,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnSearchTextbox,\r\n InnModalPopup,\r\n InnKeyboard,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetTaxExemptionMaster } from \"../../../../services/posbillingService\";\r\nimport { posCollection } from \"../../../../reducer/posSlice\";\r\nimport { Navigation, Pagination, A11y } from 'swiper';\r\nimport { Scrollbar, FreeMode, Mousewheel } from 'swiper';\r\nimport { Swiper,SwiperSlide } from \"swiper/react\";\r\nexport function TaxExemptionPopUp(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const posData = useSelector(posCollection);\r\n const [isActive, setActive] = useState(false);\r\n const [ocExemptionMaster, setOcExamptionMaster] = useState([]);\r\n const [selectedExemption, setSelectedExemption] = useState(0);\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose == undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose();\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n setActive(true);\r\n GetTaxExemptionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setActive(false);\r\n let tempObj = [];\r\n if (d.data != undefined) {\r\n d.data.filter((x) => x.ExemptionSerNo != 0 && (x.Module == \"P\" || x.Module == \"G\")).forEach(element => {\r\n tempObj.push(element);\r\n });\r\n }\r\n setOcExamptionMaster(tempObj);\r\n if (posData.objPOSHeaderDetail.ExamptionSerNo != 0) {\r\n setSelectedExemption(tempObj.filter((x) => x.ExemptionSerNo == posData.objPOSHeaderDetail.ExamptionSerNo)[0].ExemptionSerNo);\r\n }\r\n })\r\n }, []);\r\n\r\n const handleCancelOnClick = () => {\r\n let obj = {\r\n ExemptionSerNo: 0\r\n }\r\n props.handleSaveOnClose(obj);\r\n }\r\n\r\n const handleSaveOnClick = () => {\r\n let obj = {\r\n ExemptionSerNo: selectedExemption\r\n }\r\n props.handleSaveOnClose(obj);\r\n }\r\n\r\n const handleExemptionOnClik = (e) => {\r\n if (ocExemptionMaster != undefined) {\r\n setSelectedExemption(ocExemptionMaster.filter((x) => x.ExemptionSerNo == e.target.id)[0].ExemptionSerNo);\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    Tax Exemption

    \r\n
    \r\n
    \r\n Clear\r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(swiper)}\r\n >\r\n \r\n
    \r\n {\r\n ocExemptionMaster ? ocExemptionMaster.map((d) =>\r\n \r\n {d.Name}\r\n )\r\n : null\r\n }\r\n
    \r\n
     
    \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n}","import React, { useState } from \"react\";\r\nimport {\r\n InnPlainButton,\r\n InnTextbox,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnSearchTextbox,\r\n InnModalPopup,\r\n InnKeyboard,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport { useEffect } from \"react\";\r\n\r\nexport function NumberkeyPadPopUp(props) {\r\n\r\n const [header, setHeader] = useState(\"\");\r\n const [headerLabel, setHeaderLabel] = useState(\"\");\r\n const [txtValue, setTxtValue] = useState();\r\n const [errMsg, setErrMsg] = useState(\"\");\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose == undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose();\r\n }\r\n };\r\n\r\n const handleKeyBoardClick = (e) => {\r\n let str = \"\";\r\n\r\n str = txtValue;\r\n if (txtValue == undefined) {\r\n str = \"\";\r\n }\r\n\r\n if (e.target.id === \"C\") {\r\n str = \"\";\r\n setErrMsg(\"\");\r\n } else if (e.target.id === \"1\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"2\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"3\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"4\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"5\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"6\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"7\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"8\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"9\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"0\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \".\") {\r\n str = str + e.target.id;\r\n }\r\n\r\n setTxtValue(str);\r\n }\r\n\r\n const handleSaveOnClose = () => {\r\n if (props.para?.Mode == \"CashTip\") {\r\n let returnValue = \"0\";\r\n returnValue = txtValue;\r\n if (txtValue == undefined) {\r\n returnValue = \"0\";\r\n }\r\n props.handleSaveOnClose(returnValue);\r\n } else if (props.para?.Mode == \"ManualKOT\") {\r\n let returnValue = \"\";\r\n returnValue = txtValue;\r\n if (txtValue == undefined) {\r\n returnValue = \"\";\r\n }\r\n let IsValid = true;\r\n if (returnValue == \"\") {\r\n setErrMsg(\"Please enter manual KOT no.\");\r\n IsValid = false;\r\n }\r\n\r\n if(IsValid){\r\n props.handleSaveOnClose(returnValue);\r\n }\r\n } else if (props.para?.Mode == \"SplitQty\") { \r\n let IsValid = true;\r\n let returnValue = \"\";\r\n returnValue = txtValue;\r\n if (txtValue == undefined) {\r\n returnValue = \"\";\r\n } \r\n if(returnValue.toString().includes(\".\") == true){\r\n setErrMsg(\".(Dot) not allow.\");\r\n IsValid = false;\r\n return;\r\n }\r\n if(parseInt(returnValue) > parseInt(props.para?.Qty)){\r\n setErrMsg(\"Only \" + props.para?.Qty + \" qty allow\");\r\n IsValid = false;\r\n return;\r\n }\r\n if(IsValid){\r\n props.handleSaveOnClose(returnValue);\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (props.para?.Mode == \"CashTip\") {\r\n setHeader(\"Tip\");\r\n setHeaderLabel(\"Tip Amount\");\r\n } else if (props.para?.Mode == \"ManualKOT\") {\r\n setHeader(\"Manual KOT\");\r\n setHeaderLabel(\"Manual KOT No.\");\r\n } else if (props.para?.Mode == \"SplitQty\") {\r\n setHeader(\"Change Quantity\");\r\n setHeaderLabel(\"Enter Quantity\");\r\n setTxtValue(props.para?.Qty);\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n

    {header}

    \r\n
    \r\n
    \r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {headerLabel}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    789
    456
    123
    .0Clear
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n InnTableGrid,\r\n InnSearchTextbox,\r\n InnModalPopup,\r\n InnKeyboard,\r\n InnPrimaryButton,\r\n InnLoader,\r\n InnPlainButton,\r\n InnCheckbox,\r\n InnActionButton,\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetCookingInstructionGroupMaster, GetCookingInstructionMaster } from \"../../../../services/posbillingService\";\r\nimport { Navigation } from 'swiper';\r\nimport { Scrollbar, FreeMode, Mousewheel } from 'swiper';\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nexport function OptionalMadifierPopUp(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const [isActive, setActive] = useState(false);\r\n const [ocCookingGroupMaster, setOcCookingGroupMaster] = useState([]);\r\n const [ocCookingItemMaster, setOcCookingItemMaster] = useState([]);\r\n const [ocSelectedCookingItemMaster, setOcSelectedCookingItemMaster] = useState([]);\r\n const [selectedCookingGroup, setSelectedCookingGroup] = useState(0);\r\n const [selectedModifier, setSelectedModifier] = useState(\"\");\r\n const [selectedOptionalModifier, setSelectedOptionalModifier] = useState([]);\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n let tempObjGroup = [];\r\n setActive(true);\r\n try {\r\n GetCookingInstructionGroupMaster(parseInt(currUser.ClientSerNo)).then((d) => {\r\n setActive(false);\r\n if (d.data != undefined) {\r\n tempObjGroup = JSON.parse(JSON.stringify(d.data));\r\n }\r\n if (tempObjGroup.length > 0) {\r\n setSelectedCookingGroup(tempObjGroup[0].CookingInsGroupSerNo);\r\n }\r\n setOcCookingGroupMaster(tempObjGroup);\r\n });\r\n } catch (e) {\r\n setActive(false);\r\n setOcCookingGroupMaster(tempObjGroup);\r\n }\r\n\r\n setActive(true);\r\n try {\r\n GetCookingInstructionMaster(parseInt(currUser.ClientSerNo)).then((d) => {\r\n setActive(false);\r\n let tempObj = [];\r\n if (d.data != undefined) {\r\n tempObj = JSON.parse(JSON.stringify(d.data));\r\n }\r\n setOcCookingItemMaster(tempObj);\r\n let obj = [];\r\n if (tempObj.length > 0) {\r\n tempObj.filter((x) => x?.CookingInsGroupSerNo == tempObjGroup[0]?.CookingInsGroupSerNo).forEach(element => {\r\n obj.push(element);\r\n });\r\n setOcSelectedCookingItemMaster(obj);\r\n }\r\n });\r\n } catch (e) {\r\n setActive(false);\r\n let tempObj = [];\r\n setOcCookingItemMaster(tempObj);\r\n }\r\n }, []);\r\n\r\n const handleGroupClick = (e) => {\r\n setSelectedCookingGroup(e.target.id);\r\n let tempObj = [];\r\n if (ocCookingItemMaster != undefined) {\r\n tempObj = JSON.parse(JSON.stringify(ocCookingItemMaster));\r\n }\r\n let obj = [];\r\n tempObj.filter((x) => x.CookingInsGroupSerNo == e.target.id).forEach(element => {\r\n obj.push(element);\r\n });\r\n setOcSelectedCookingItemMaster(obj);\r\n }\r\n\r\n const handleOnItemClick = (d) => {\r\n let tempModifier = []\r\n tempModifier = JSON.parse(JSON.stringify(selectedOptionalModifier));\r\n let strOrginal = selectedModifier;\r\n\r\n if (selectedModifier == undefined) {\r\n strOrginal = \"\";\r\n }\r\n if (strOrginal === \"\") {\r\n let obj = {\r\n CookingInsSerNo: d.CookingInsSerNo\r\n }\r\n tempModifier.push(obj);\r\n setSelectedModifier(strOrginal + d.Name);\r\n } else {\r\n if (strOrginal.includes(d.Name)) {\r\n tempModifier = tempModifier.filter((x) => x.CookingInsSerNo != d.CookingInsSerNo);\r\n strOrginal = strOrginal.replace(\",\" + d.Name, \"\");\r\n strOrginal = strOrginal.replace(d.Name + \",\", \"\");\r\n strOrginal = strOrginal.replace(d.Name, \"\");\r\n setSelectedModifier(strOrginal);\r\n } else {\r\n let obj = {\r\n CookingInsSerNo: d.CookingInsSerNo\r\n }\r\n tempModifier.push(obj);\r\n setSelectedModifier(strOrginal + \",\" + d.Name);\r\n }\r\n }\r\n setSelectedOptionalModifier(tempModifier);\r\n }\r\n\r\n const handleSaveClick = () => {\r\n let strOrginal = selectedModifier;\r\n\r\n if (selectedModifier == undefined) {\r\n strOrginal = \"\";\r\n }\r\n\r\n let tempObj = {\r\n ItemSerNo: props.para?.ItemSerNo,\r\n CookingInsName: \"Remarks: \" + strOrginal\r\n }\r\n props.handleSaveOptionalModifierclick(tempObj);\r\n };\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    Optional Modifier

    \r\n
    \r\n
    \r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n console.log(swiper)}\r\n >\r\n \r\n
    \r\n {\r\n ocSelectedCookingItemMaster ? ocSelectedCookingItemMaster.map((d) =>\r\n x.CookingInsSerNo == d.CookingInsSerNo).length == 0 ? \"pos-btn backced9ff33\" : \"pos-btn backced9ff33 active\"}\r\n id={d.CookingInsSerNo}\r\n onClick={() => { handleOnItemClick(d) }}\r\n >{d.Name}\r\n ) : null\r\n }\r\n
    \r\n
     
    \r\n
    \r\n
    \r\n { console.log(\"checkbox is \" + ischecked); }}>\r\n {/* Apply table level modifier ? */}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n {/*
      \r\n
    • {selectedModifier}
    • \r\n
    */}\r\n
    \r\n
    {selectedModifier}
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n console.log(swiper)}\r\n >\r\n \r\n {\r\n ocCookingGroupMaster ? ocCookingGroupMaster.map((d) =>\r\n {d.Name}\r\n ) : null\r\n }\r\n
     
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n {/* // setShowPOSManualPopup(true)}>Manual\r\n // Soup/Tea Instructions\r\n // Preparation Related\r\n // No Onion No Garlic */}\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n}","import { InnActionButton, InnModalPopup } from \"../../../../component\";\r\nimport { Navigation, Pagination, A11y } from 'swiper';\r\nimport { Scrollbar, FreeMode, Mousewheel } from 'swiper';\r\nimport { Swiper,SwiperSlide } from \"swiper/react\";\r\nexport function FunctionPopUp(props){\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose == undefined) {\r\n console.log(\"HandleOnclose not define in parent.\");\r\n } else {\r\n props.handleOnclose();\r\n }\r\n }\r\n\r\n const handleButtonOnClick = (e) => {\r\n let returnData = {\r\n \"flag\": e.target.id,\r\n }\r\n props.handleFunctionClick(returnData)\r\n }\r\n\r\n return(\r\n \r\n
    \r\n
    \r\n
    \r\n

    Function

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(swiper)}\r\n >\r\n \r\n Map Room\r\n Agent\r\n Close Check\r\n Un-Settle Bill\r\n
     
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n )\r\n}","import React, { useState } from \"react\";\r\nimport {\r\n InnPlainButton,\r\n InnTextbox,\r\n InnTooltip,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnSearchTextbox,\r\n InnModalPopup,\r\n InnSingleSelectDropdown,\r\n InnCheckbox,\r\n InnSwitch,\r\n InnLoader\r\n} from \"../../../../component\";\r\n\r\nimport { Navigation, Pagination, A11y } from 'swiper';\r\nimport { Scrollbar, FreeMode, Mousewheel } from 'swiper';\r\nimport { Swiper, SwiperSlide } from 'swiper/react';\r\nimport { useSelector } from \"react-redux\";\r\nimport { posCollection } from \"../../../../reducer/posSlice\";\r\nimport { useEffect } from \"react\";\r\nimport { ManualRemarksPopUp } from \"./manualRemarksPopup\";\r\nimport { NumberkeyPadPopUp } from \"./numberKeypadPopup\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { POSSplitTableInsertPOSItem } from \"../../../../services/posbillingService\";\r\n\r\n\r\nlet srcItem = {};\r\nlet srcGrid = \"\";\r\nlet srcClick = false;\r\nlet dstGrid = \"\";\r\nlet dstClick = false;\r\n\r\nexport function SplitTablePopUp(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const posData = useSelector(posCollection);\r\n const [isActive, setActive] = useState(false);\r\n const [showDynamicTablePopup, setShowDynamicTablePopup] = useState();\r\n const [showNumberKeyboardPopup, setShowNumberKeyboardPopup] = useState();\r\n const [pObj, setPobj] = useState([]);\r\n const [pObj1, setPobj1] = useState([]);\r\n const [pObj2, setPobj2] = useState([]);\r\n const [pObj3, setPobj3] = useState([]);\r\n const [pObj4, setPobj4] = useState([]);\r\n const [pObj5, setPobj5] = useState([]);\r\n const [pObj6, setPobj6] = useState([]);\r\n const [pObj7, setPobj7] = useState([]);\r\n\r\n const [table, setTable] = useState(0);\r\n const [tableName, setTableName] = useState([]);\r\n const [tableName1, setTableName1] = useState([]);\r\n const [tableName2, setTableName2] = useState([]);\r\n const [tableName3, setTableName3] = useState([]);\r\n const [tableName4, setTableName4] = useState([]);\r\n const [tableName5, setTableName5] = useState([]);\r\n const [tableName6, setTableName6] = useState([]);\r\n const [tableName7, setTableName7] = useState([]);\r\n\r\n const [passQty, setPassQty] = useState(0);\r\n const [returnQty, setReturnQty] = useState(0);\r\n const [totalQty,setTotalQty] = useState(0);\r\n const [qty, setQty] = useState([]);\r\n const [qty1, setQty1] = useState([]);\r\n const [qty2, setQty2] = useState([]);\r\n const [qty3, setQty3] = useState([]);\r\n const [qty4, setQty4] = useState([]);\r\n const [qty5, setQty5] = useState([]);\r\n const [qty6, setQty6] = useState([]);\r\n const [qty7, setQty7] = useState([]);\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose == undefined) {\r\n console.log(\"HandleOnclose not define in parent.\");\r\n } else {\r\n props.handleOnclose();\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n let tempObj = [];\r\n let tempObjNew = [];\r\n let tempObjCancel = [];\r\n tempObj = JSON.parse(JSON.stringify(posData.ocPOSItemDetail));\r\n\r\n if (tempObj.length > 0) {\r\n if (tempObj.filter((x) => x.CancelCheckItemSerNo != 0).length != 0) {\r\n tempObj.filter((x) => x.CancelCheckItemSerNo != 0).forEach(element => {\r\n tempObjCancel.push(element);\r\n });\r\n }\r\n\r\n if(tempObjCancel.length != 0){\r\n tempObj.filter((x) => x.CancelCheckItemSerNo == 0).forEach(e1 => {\r\n tempObjCancel.forEach(e2 => {\r\n if(e1.CheckItemSerNo == e2.CancelCheckItemSerNo){\r\n e1.ItemQty = (parseInt(e1.ItemQty) - (parseInt(e2.ItemQty) * -1));\r\n }\r\n });\r\n });\r\n }\r\n\r\n tempObj.filter((x) => x.CancelCheckItemSerNo == 0 && x.ItemQty > 0).forEach(element => {\r\n tempObjNew.push(element);\r\n });\r\n }\r\n\r\n setPobj(tempObjNew);\r\n setTotalQty(CalculateQty(tempObjNew, \"ItemQty\"));\r\n\r\n setTableName(posData.objPOSHeaderDetail.TableSerNo);\r\n setTableName1(posData.objPOSHeaderDetail.TableSerNo + \"/1\");\r\n setTableName2(posData.objPOSHeaderDetail.TableSerNo + \"/2\");\r\n setTableName3(posData.objPOSHeaderDetail.TableSerNo + \"/3\");\r\n setTableName4(posData.objPOSHeaderDetail.TableSerNo + \"/4\");\r\n setTableName5(posData.objPOSHeaderDetail.TableSerNo + \"/5\");\r\n setTableName6(posData.objPOSHeaderDetail.TableSerNo + \"/6\");\r\n setTableName7(posData.objPOSHeaderDetail.TableSerNo + \"/7\");\r\n\r\n setQty(\"QTY: \" + CalculateQty(tempObjNew, \"ItemQty\"));\r\n setQty1(\"QTY: 0\");\r\n setQty2(\"QTY: 0\");\r\n setQty3(\"QTY: 0\");\r\n setQty4(\"QTY: 0\");\r\n setQty5(\"QTY: 0\");\r\n setQty6(\"QTY: 0\");\r\n setQty7(\"QTY: 0\");\r\n }, []);\r\n\r\n function CalculateQty(array, property) {\r\n const total = array.reduce((accumulator, object) => { return accumulator + object[property]; }, 0);\r\n return total;\r\n }\r\n\r\n function clearSelectedData() {\r\n srcClick = false;\r\n dstClick = false;\r\n srcGrid = \"\";\r\n dstGrid = \"\";\r\n srcItem = {};\r\n }\r\n\r\n const handlepObjClick = (e) => {\r\n let temp = {};\r\n temp = pObj.find((x) => x.CheckItemSerNo == e.target.id);\r\n e.stopPropagation();\r\n\r\n if (srcGrid == \"dgItem00\") {\r\n srcClick = false;\r\n }\r\n if (srcClick == false) {\r\n srcGrid = \"dgItem00\"\r\n srcClick = true;\r\n srcItem = temp;\r\n } else {\r\n srcClick = false;\r\n }\r\n\r\n if (srcClick == false) {\r\n if (dstClick == false) {\r\n dstClick = true;\r\n } else {\r\n dstClick = false;\r\n }\r\n } else {\r\n dstClick = true;\r\n }\r\n };\r\n\r\n const handlepObj1Click = (e) => {\r\n let temp = {};\r\n temp = pObj1.find((x) => x.CheckItemSerNo == e.target.id);\r\n e.stopPropagation();\r\n\r\n if (srcGrid == \"dgItem01\") {\r\n srcClick = false;\r\n }\r\n if (srcClick == false) {\r\n srcGrid = \"dgItem01\"\r\n srcClick = true;\r\n srcItem = temp;\r\n } else {\r\n srcClick = false;\r\n }\r\n\r\n if (srcClick == false) {\r\n if (dstClick == false) {\r\n dstClick = true;\r\n } else {\r\n dstClick = false;\r\n }\r\n } else {\r\n dstClick = true;\r\n }\r\n };\r\n\r\n const handlepObj2Click = (e) => {\r\n let temp = {};\r\n temp = pObj2.find((x) => x.CheckItemSerNo == e.target.id);\r\n e.stopPropagation();\r\n\r\n if (srcGrid == \"dgItem02\") {\r\n srcClick = false;\r\n }\r\n if (srcClick == false) {\r\n srcGrid = \"dgItem02\"\r\n srcClick = true;\r\n srcItem = temp;\r\n } else {\r\n srcClick = false;\r\n }\r\n\r\n if (srcClick == false) {\r\n if (dstClick == false) {\r\n dstClick = true;\r\n } else {\r\n dstClick = false;\r\n }\r\n } else {\r\n dstClick = true;\r\n }\r\n };\r\n\r\n const handlepObj3Click = (e) => {\r\n let temp = {};\r\n temp = pObj3.find((x) => x.CheckItemSerNo == e.target.id);\r\n e.stopPropagation();\r\n\r\n if (srcGrid == \"dgItem03\") {\r\n srcClick = false;\r\n }\r\n if (srcClick == false) {\r\n srcGrid = \"dgItem03\"\r\n srcClick = true;\r\n srcItem = temp;\r\n } else {\r\n srcClick = false;\r\n }\r\n\r\n if (srcClick == false) {\r\n if (dstClick == false) {\r\n dstClick = true;\r\n } else {\r\n dstClick = false;\r\n }\r\n } else {\r\n dstClick = true;\r\n }\r\n };\r\n\r\n const handlepObj4Click = (e) => {\r\n let temp = {};\r\n temp = pObj4.find((x) => x.CheckItemSerNo == e.target.id);\r\n e.stopPropagation();\r\n\r\n if (srcGrid == \"dgItem04\") {\r\n srcClick = false;\r\n }\r\n if (srcClick == false) {\r\n srcGrid = \"dgItem04\"\r\n srcClick = true;\r\n srcItem = temp;\r\n } else {\r\n srcClick = false;\r\n }\r\n\r\n if (srcClick == false) {\r\n if (dstClick == false) {\r\n dstClick = true;\r\n } else {\r\n dstClick = false;\r\n }\r\n } else {\r\n dstClick = true;\r\n }\r\n };\r\n\r\n const handlepObj5Click = (e) => {\r\n let temp = {};\r\n temp = pObj5.find((x) => x.CheckItemSerNo == e.target.id);\r\n e.stopPropagation();\r\n\r\n if (srcGrid == \"dgItem05\") {\r\n srcClick = false;\r\n }\r\n if (srcClick == false) {\r\n srcGrid = \"dgItem05\"\r\n srcClick = true;\r\n srcItem = temp;\r\n } else {\r\n srcClick = false;\r\n }\r\n\r\n if (srcClick == false) {\r\n if (dstClick == false) {\r\n dstClick = true;\r\n } else {\r\n dstClick = false;\r\n }\r\n } else {\r\n dstClick = true;\r\n }\r\n };\r\n\r\n const handlepObj6Click = (e) => {\r\n let temp = {};\r\n temp = pObj6.find((x) => x.CheckItemSerNo == e.target.id);\r\n e.stopPropagation();\r\n\r\n if (srcGrid == \"dgItem06\") {\r\n srcClick = false;\r\n }\r\n if (srcClick == false) {\r\n srcGrid = \"dgItem06\"\r\n srcClick = true;\r\n srcItem = temp;\r\n } else {\r\n srcClick = false;\r\n }\r\n\r\n if (srcClick == false) {\r\n if (dstClick == false) {\r\n dstClick = true;\r\n } else {\r\n dstClick = false;\r\n }\r\n } else {\r\n dstClick = true;\r\n }\r\n };\r\n\r\n const handlepObj7Click = (e) => {\r\n let temp = {};\r\n temp = pObj7.find((x) => x.CheckItemSerNo == e.target.id);\r\n e.stopPropagation();\r\n\r\n if (srcGrid == \"dgItem07\") {\r\n srcClick = false;\r\n }\r\n if (srcClick == false) {\r\n srcGrid = \"dgItem07\"\r\n srcClick = true;\r\n srcItem = temp;\r\n } else {\r\n srcClick = false;\r\n }\r\n\r\n if (srcClick == false) {\r\n if (dstClick == false) {\r\n dstClick = true;\r\n } else {\r\n dstClick = false;\r\n }\r\n } else {\r\n dstClick = true;\r\n }\r\n };\r\n\r\n const hanldeDivOnClick = (e) => {\r\n if (srcGrid == \"dgItem01\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj = [];\r\n tempObj = JSON.parse(JSON.stringify(pObj));\r\n if (tempObj.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj.push(obj);\r\n }\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n\r\n let tempObj1Old = [];\r\n tempObj1Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj1 = [];\r\n tempObj1Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj1.push(element);\r\n }\r\n });\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(0);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem02\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj = [];\r\n tempObj = JSON.parse(JSON.stringify(pObj));\r\n if (tempObj.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj.push(obj);\r\n }\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n\r\n let tempObj2Old = [];\r\n tempObj2Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj2 = [];\r\n tempObj2Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj2.push(element);\r\n }\r\n });\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(0);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem03\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj = [];\r\n tempObj = JSON.parse(JSON.stringify(pObj));\r\n if (tempObj.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj.push(obj);\r\n }\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n\r\n let tempObj3Old = [];\r\n tempObj3Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj3 = [];\r\n tempObj3Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj3.push(element);\r\n }\r\n });\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(0);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem04\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj = [];\r\n tempObj = JSON.parse(JSON.stringify(pObj));\r\n if (tempObj.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj.push(obj);\r\n }\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n\r\n let tempObj4Old = [];\r\n tempObj4Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj4 = [];\r\n tempObj4Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj4.push(element);\r\n }\r\n });\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(0);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem05\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj = [];\r\n tempObj = JSON.parse(JSON.stringify(pObj));\r\n if (tempObj.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj.push(obj);\r\n }\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n\r\n let tempObj5Old = [];\r\n tempObj5Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj5 = [];\r\n tempObj5Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj5.push(element);\r\n }\r\n });\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(0);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem06\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj = [];\r\n tempObj = JSON.parse(JSON.stringify(pObj));\r\n if (tempObj.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj.push(obj);\r\n }\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n\r\n let tempObj6Old = [];\r\n tempObj6Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj6 = [];\r\n tempObj6Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj6.push(element);\r\n }\r\n });\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(0);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem07\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj = [];\r\n tempObj = JSON.parse(JSON.stringify(pObj));\r\n if (tempObj.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj.push(obj);\r\n }\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n\r\n let tempObj7Old = [];\r\n tempObj7Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj7 = [];\r\n tempObj7Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj7.push(element);\r\n }\r\n });\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(0);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n }\r\n };\r\n\r\n const hanldeDiv1OnClick = (e) => {\r\n if (srcGrid == \"dgItem00\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n if (pObj.length > 1) {\r\n let tempObj1 = [];\r\n tempObj1 = JSON.parse(JSON.stringify(pObj1));\r\n if (tempObj1.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj1.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj1.push(obj);\r\n }\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n\r\n let tempObjOld = [];\r\n tempObjOld = JSON.parse(JSON.stringify(pObj));\r\n let tempObj = [];\r\n tempObjOld.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj.push(element);\r\n }\r\n });\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n } else {\r\n alert(\"Required atleast 1 item in main bill\");\r\n }\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(1);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem02\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj1 = [];\r\n tempObj1 = JSON.parse(JSON.stringify(pObj1));\r\n if (tempObj1.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj1.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj1.push(obj);\r\n }\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n\r\n let tempObj2Old = [];\r\n tempObj2Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj2 = [];\r\n tempObj2Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj2.push(element);\r\n }\r\n });\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(1);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem03\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj1 = [];\r\n tempObj1 = JSON.parse(JSON.stringify(pObj1));\r\n if (tempObj1.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj1.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj1.push(obj);\r\n }\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n\r\n let tempObj3Old = [];\r\n tempObj3Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj3 = [];\r\n tempObj3Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj3.push(element);\r\n }\r\n });\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(1);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem04\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj1 = [];\r\n tempObj1 = JSON.parse(JSON.stringify(pObj1));\r\n if (tempObj1.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj1.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj1.push(obj);\r\n }\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n\r\n let tempObj4Old = [];\r\n tempObj4Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj4 = [];\r\n tempObj4Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj4.push(element);\r\n }\r\n });\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(1);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem05\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj1 = [];\r\n tempObj1 = JSON.parse(JSON.stringify(pObj1));\r\n if (tempObj1.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj1.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj1.push(obj);\r\n }\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n\r\n let tempObj5Old = [];\r\n tempObj5Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj5 = [];\r\n tempObj5Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj5.push(element);\r\n }\r\n });\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(1);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem06\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj1 = [];\r\n tempObj1 = JSON.parse(JSON.stringify(pObj1));\r\n if (tempObj1.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj1.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj1.push(obj);\r\n }\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n\r\n let tempObj6Old = [];\r\n tempObj6Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj6 = [];\r\n tempObj6Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj6.push(element);\r\n }\r\n });\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(1);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem07\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj1 = [];\r\n tempObj1 = JSON.parse(JSON.stringify(pObj1));\r\n if (tempObj1.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj1.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj1.push(obj);\r\n }\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n\r\n let tempObj7Old = [];\r\n tempObj7Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj7 = [];\r\n tempObj7Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj7.push(element);\r\n }\r\n });\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(1);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n }\r\n };\r\n\r\n const hanldeDiv2OnClick = (e) => {\r\n if (srcGrid == \"dgItem00\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n if (pObj.length > 1) {\r\n let tempObj2 = [];\r\n tempObj2 = JSON.parse(JSON.stringify(pObj2));\r\n if (tempObj2.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj2.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj2.push(obj);\r\n }\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n\r\n let tempObjOld = [];\r\n tempObjOld = JSON.parse(JSON.stringify(pObj));\r\n let tempObj = [];\r\n tempObjOld.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj.push(element);\r\n }\r\n });\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n } else {\r\n alert(\"Required atleast 1 item in main bill\");\r\n }\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(2);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem01\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj2 = [];\r\n tempObj2 = JSON.parse(JSON.stringify(pObj2));\r\n if (tempObj2.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj2.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj2.push(obj);\r\n }\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n\r\n let tempObj1Old = [];\r\n tempObj1Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj1 = [];\r\n tempObj1Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj1.push(element);\r\n }\r\n });\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(2);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem03\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj2 = [];\r\n tempObj2 = JSON.parse(JSON.stringify(pObj2));\r\n if (tempObj2.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj2.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj2.push(obj);\r\n }\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n\r\n let tempObj3Old = [];\r\n tempObj3Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj3 = [];\r\n tempObj3Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj3.push(element);\r\n }\r\n });\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(2);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem04\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj2 = [];\r\n tempObj2 = JSON.parse(JSON.stringify(pObj2));\r\n if (tempObj2.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj2.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj2.push(obj);\r\n }\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n\r\n let tempObj4Old = [];\r\n tempObj4Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj4 = [];\r\n tempObj4Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj4.push(element);\r\n }\r\n });\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(2);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem05\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj2 = [];\r\n tempObj2 = JSON.parse(JSON.stringify(pObj2));\r\n if (tempObj2.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj2.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj2.push(obj);\r\n }\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n\r\n let tempObj5Old = [];\r\n tempObj5Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj5 = [];\r\n tempObj5Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj5.push(element);\r\n }\r\n });\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(2);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem06\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj2 = [];\r\n tempObj2 = JSON.parse(JSON.stringify(pObj2));\r\n if (tempObj2.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj2.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj2.push(obj);\r\n }\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n\r\n let tempObj6Old = [];\r\n tempObj6Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj6 = [];\r\n tempObj6Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj6.push(element);\r\n }\r\n });\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(2);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem07\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj2 = [];\r\n tempObj2 = JSON.parse(JSON.stringify(pObj2));\r\n if (tempObj2.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj2.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj2.push(obj);\r\n }\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n\r\n let tempObj7Old = [];\r\n tempObj7Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj7 = [];\r\n tempObj7Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj7.push(element);\r\n }\r\n });\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(2);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n }\r\n };\r\n\r\n const hanldeDiv3OnClick = (e) => {\r\n if (srcGrid == \"dgItem00\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n if (pObj.length > 1) {\r\n let tempObj3 = [];\r\n tempObj3 = JSON.parse(JSON.stringify(pObj3));\r\n if (tempObj3.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj3.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj3.push(obj);\r\n }\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n\r\n let tempObjOld = [];\r\n tempObjOld = JSON.parse(JSON.stringify(pObj));\r\n let tempObj = [];\r\n tempObjOld.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj.push(element);\r\n }\r\n });\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n } else {\r\n alert(\"Required atleast 1 item in main bill\");\r\n }\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(3);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem01\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj3 = [];\r\n tempObj3 = JSON.parse(JSON.stringify(pObj3));\r\n if (tempObj3.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj3.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj3.push(obj);\r\n }\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n\r\n let tempObj1Old = [];\r\n tempObj1Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj1 = [];\r\n tempObj1Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj1.push(element);\r\n }\r\n });\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(3);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem02\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj3 = [];\r\n tempObj3 = JSON.parse(JSON.stringify(pObj3));\r\n if (tempObj3.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj3.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj3.push(obj);\r\n }\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n\r\n let tempObj2Old = [];\r\n tempObj2Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj2 = [];\r\n tempObj2Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj2.push(element);\r\n }\r\n });\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(3);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem04\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj3 = [];\r\n tempObj3 = JSON.parse(JSON.stringify(pObj3));\r\n if (tempObj3.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj3.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj3.push(obj);\r\n }\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n\r\n let tempObj4Old = [];\r\n tempObj4Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj4 = [];\r\n tempObj4Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj4.push(element);\r\n }\r\n });\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(3);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem05\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj3 = [];\r\n tempObj3 = JSON.parse(JSON.stringify(pObj3));\r\n if (tempObj3.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj3.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj3.push(obj);\r\n }\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n\r\n let tempObj5Old = [];\r\n tempObj5Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj5 = [];\r\n tempObj5Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj5.push(element);\r\n }\r\n });\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(3);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem06\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj3 = [];\r\n tempObj3 = JSON.parse(JSON.stringify(pObj3));\r\n if (tempObj3.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj3.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj3.push(obj);\r\n }\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n\r\n let tempObj6Old = [];\r\n tempObj6Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj6 = [];\r\n tempObj6Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj6.push(element);\r\n }\r\n });\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(3);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem07\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj3 = [];\r\n tempObj3 = JSON.parse(JSON.stringify(pObj3));\r\n if (tempObj3.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj3.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj3.push(obj);\r\n }\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n\r\n let tempObj7Old = [];\r\n tempObj7Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj7 = [];\r\n tempObj7Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj7.push(element);\r\n }\r\n });\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(3);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n }\r\n };\r\n\r\n const hanldeDiv4OnClick = (e) => {\r\n if (srcGrid == \"dgItem00\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n if (pObj.length > 1) {\r\n let tempObj4 = [];\r\n tempObj4 = JSON.parse(JSON.stringify(pObj4));\r\n if (tempObj4.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj4.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj4.push(obj);\r\n }\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n\r\n let tempObjOld = [];\r\n tempObjOld = JSON.parse(JSON.stringify(pObj));\r\n let tempObj = [];\r\n tempObjOld.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj.push(element);\r\n }\r\n });\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n } else {\r\n alert(\"Required atleast 1 item in main bill\");\r\n }\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(4);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem01\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj4 = [];\r\n tempObj4 = JSON.parse(JSON.stringify(pObj4));\r\n if (tempObj4.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj4.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj4.push(obj);\r\n }\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n\r\n let tempObj1Old = [];\r\n tempObj1Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj1 = [];\r\n tempObj1Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj1.push(element);\r\n }\r\n });\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(4);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem02\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj4 = [];\r\n tempObj4 = JSON.parse(JSON.stringify(pObj4));\r\n if (tempObj4.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj4.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj4.push(obj);\r\n }\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n\r\n let tempObj2Old = [];\r\n tempObj2Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj2 = [];\r\n tempObj2Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj2.push(element);\r\n }\r\n });\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(4);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem03\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj4 = [];\r\n tempObj4 = JSON.parse(JSON.stringify(pObj4));\r\n if (tempObj4.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj4.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj4.push(obj);\r\n }\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n\r\n let tempObj3Old = [];\r\n tempObj3Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj3 = [];\r\n tempObj3Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj3.push(element);\r\n }\r\n });\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(4);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem05\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj4 = [];\r\n tempObj4 = JSON.parse(JSON.stringify(pObj4));\r\n if (tempObj4.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj4.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj4.push(obj);\r\n }\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n\r\n let tempObj5Old = [];\r\n tempObj5Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj5 = [];\r\n tempObj5Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj5.push(element);\r\n }\r\n });\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(4);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem06\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj4 = [];\r\n tempObj4 = JSON.parse(JSON.stringify(pObj4));\r\n if (tempObj4.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj4.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj4.push(obj);\r\n }\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n\r\n let tempObj6Old = [];\r\n tempObj6Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj6 = [];\r\n tempObj6Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj6.push(element);\r\n }\r\n });\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(4);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem07\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj4 = [];\r\n tempObj4 = JSON.parse(JSON.stringify(pObj4));\r\n if (tempObj4.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj4.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj4.push(obj);\r\n }\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n\r\n let tempObj7Old = [];\r\n tempObj7Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj7 = [];\r\n tempObj7Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj7.push(element);\r\n }\r\n });\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(4);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n }\r\n };\r\n\r\n const hanldeDiv5OnClick = (e) => {\r\n if (srcGrid == \"dgItem00\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n if (pObj.length > 1) {\r\n let tempObj5 = [];\r\n tempObj5 = JSON.parse(JSON.stringify(pObj5));\r\n if (tempObj5.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj5.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj5.push(obj);\r\n }\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n\r\n let tempObjOld = [];\r\n tempObjOld = JSON.parse(JSON.stringify(pObj));\r\n let tempObj = [];\r\n tempObjOld.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj.push(element);\r\n }\r\n });\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n } else {\r\n alert(\"Required atleast 1 item in main bill\");\r\n }\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(5);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem01\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj5 = [];\r\n tempObj5 = JSON.parse(JSON.stringify(pObj5));\r\n if (tempObj5.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj5.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj5.push(obj);\r\n }\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n\r\n let tempObj1Old = [];\r\n tempObj1Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj1 = [];\r\n tempObj1Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj1.push(element);\r\n }\r\n });\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(5);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem02\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj5 = [];\r\n tempObj5 = JSON.parse(JSON.stringify(pObj5));\r\n if (tempObj5.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj5.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj5.push(obj);\r\n }\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n\r\n let tempObj2Old = [];\r\n tempObj2Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj2 = [];\r\n tempObj2Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj2.push(element);\r\n }\r\n });\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(5);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem03\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj5 = [];\r\n tempObj5 = JSON.parse(JSON.stringify(pObj5));\r\n if (tempObj5.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj5.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj5.push(obj);\r\n }\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n\r\n let tempObj3Old = [];\r\n tempObj3Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj3 = [];\r\n tempObj3Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj3.push(element);\r\n }\r\n });\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(5);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem04\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj5 = [];\r\n tempObj5 = JSON.parse(JSON.stringify(pObj5));\r\n if (tempObj5.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj5.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj5.push(obj);\r\n }\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n\r\n let tempObj4Old = [];\r\n tempObj4Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj4 = [];\r\n tempObj4Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj4.push(element);\r\n }\r\n });\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(5);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem06\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj5 = [];\r\n tempObj5 = JSON.parse(JSON.stringify(pObj5));\r\n if (tempObj5.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj5.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj5.push(obj);\r\n }\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n\r\n let tempObj6Old = [];\r\n tempObj6Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj6 = [];\r\n tempObj6Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj6.push(element);\r\n }\r\n });\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(5);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem07\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj5 = [];\r\n tempObj5 = JSON.parse(JSON.stringify(pObj5));\r\n if (tempObj5.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj5.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj5.push(obj);\r\n }\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n\r\n let tempObj7Old = [];\r\n tempObj7Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj7 = [];\r\n tempObj7Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj7.push(element);\r\n }\r\n });\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(5);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n }\r\n };\r\n\r\n const hanldeDiv6OnClick = (e) => {\r\n if (srcGrid == \"dgItem00\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n if (pObj.length > 1) {\r\n let tempObj6 = [];\r\n tempObj6 = JSON.parse(JSON.stringify(pObj6));\r\n if (tempObj6.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj6.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj6.push(obj);\r\n }\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n\r\n let tempObjOld = [];\r\n tempObjOld = JSON.parse(JSON.stringify(pObj));\r\n let tempObj = [];\r\n tempObjOld.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj.push(element);\r\n }\r\n });\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n } else {\r\n alert(\"Required atleast 1 item in main bill\");\r\n }\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(6);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem01\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj6 = [];\r\n tempObj6 = JSON.parse(JSON.stringify(pObj6));\r\n if (tempObj6.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj6.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj6.push(obj);\r\n }\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n\r\n let tempObj1Old = [];\r\n tempObj1Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj1 = [];\r\n tempObj1Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj1.push(element);\r\n }\r\n });\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(6);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem02\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj6 = [];\r\n tempObj6 = JSON.parse(JSON.stringify(pObj6));\r\n if (tempObj6.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj6.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj6.push(obj);\r\n }\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n\r\n let tempObj2Old = [];\r\n tempObj2Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj2 = [];\r\n tempObj2Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj2.push(element);\r\n }\r\n });\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(6);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem03\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj6 = [];\r\n tempObj6 = JSON.parse(JSON.stringify(pObj6));\r\n if (tempObj6.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj6.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj6.push(obj);\r\n }\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n\r\n let tempObj3Old = [];\r\n tempObj3Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj3 = [];\r\n tempObj3Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj3.push(element);\r\n }\r\n });\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(6);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem04\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj6 = [];\r\n tempObj6 = JSON.parse(JSON.stringify(pObj6));\r\n if (tempObj6.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj6.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj6.push(obj);\r\n }\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n\r\n let tempObj4Old = [];\r\n tempObj4Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj4 = [];\r\n tempObj4Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj4.push(element);\r\n }\r\n });\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(6);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem05\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj6 = [];\r\n tempObj6 = JSON.parse(JSON.stringify(pObj6));\r\n if (tempObj6.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj6.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj6.push(obj);\r\n }\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n\r\n let tempObj5Old = [];\r\n tempObj5Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj5 = [];\r\n tempObj5Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj5.push(element);\r\n }\r\n });\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(6);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem07\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj6 = [];\r\n tempObj6 = JSON.parse(JSON.stringify(pObj6));\r\n if (tempObj6.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj6.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj6.push(obj);\r\n }\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n\r\n let tempObj7Old = [];\r\n tempObj7Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj7 = [];\r\n tempObj7Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj7.push(element);\r\n }\r\n });\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(6);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n }\r\n };\r\n\r\n const hanldeDiv7OnClick = (e) => {\r\n if (srcGrid == \"dgItem00\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n if (pObj.length > 1) {\r\n let tempObj7 = [];\r\n tempObj7 = JSON.parse(JSON.stringify(pObj7));\r\n if (tempObj7.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj7.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj7.push(obj);\r\n }\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n\r\n let tempObjOld = [];\r\n tempObjOld = JSON.parse(JSON.stringify(pObj));\r\n let tempObj = [];\r\n tempObjOld.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj.push(element);\r\n }\r\n });\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n } else {\r\n alert(\"Required atleast 1 item in main bill\");\r\n }\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(7);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem01\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj7 = [];\r\n tempObj7 = JSON.parse(JSON.stringify(pObj7));\r\n if (tempObj7.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj7.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj7.push(obj);\r\n }\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n\r\n let tempObj1Old = [];\r\n tempObj1Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj1 = [];\r\n tempObj1Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj1.push(element);\r\n }\r\n });\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(7);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem02\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj7 = [];\r\n tempObj7 = JSON.parse(JSON.stringify(pObj7));\r\n if (tempObj7.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj7.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj7.push(obj);\r\n }\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n\r\n let tempObj2Old = [];\r\n tempObj2Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj2 = [];\r\n tempObj2Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj2.push(element);\r\n }\r\n });\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(7);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem03\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj7 = [];\r\n tempObj7 = JSON.parse(JSON.stringify(pObj7));\r\n if (tempObj7.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj7.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj7.push(obj);\r\n }\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n\r\n let tempObj3Old = [];\r\n tempObj3Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj3 = [];\r\n tempObj3Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj3.push(element);\r\n }\r\n });\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(7);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem04\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj7 = [];\r\n tempObj7 = JSON.parse(JSON.stringify(pObj7));\r\n if (tempObj7.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj7.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj7.push(obj);\r\n }\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n\r\n let tempObj4Old = [];\r\n tempObj4Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj4 = [];\r\n tempObj4Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj4.push(element);\r\n }\r\n });\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(7);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem05\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj7 = [];\r\n tempObj7 = JSON.parse(JSON.stringify(pObj7));\r\n if (tempObj7.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj7.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj7.push(obj);\r\n }\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n\r\n let tempObj5Old = [];\r\n tempObj5Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj5 = [];\r\n tempObj5Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj5.push(element);\r\n }\r\n });\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(7);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n } else if (srcGrid == \"dgItem06\") {\r\n if (srcItem != undefined) {\r\n if (srcItem.ItemQty <= 1) {\r\n let tempObj7 = [];\r\n tempObj7 = JSON.parse(JSON.stringify(pObj7));\r\n if (tempObj7.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj7.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(srcItem.ItemQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n tempObj7.push(obj);\r\n }\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n\r\n let tempObj6Old = [];\r\n tempObj6Old = JSON.parse(JSON.stringify(pObj1));\r\n let tempObj6 = [];\r\n tempObj6Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n } else {\r\n tempObj6.push(element);\r\n }\r\n });\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n\r\n clearSelectedData();\r\n } else {\r\n setReturnQty(7);\r\n setPassQty(srcItem.ItemQty);\r\n setShowNumberKeyboardPopup(true);\r\n }\r\n }\r\n }\r\n };\r\n\r\n const btnRefreshClick = () => {\r\n let tempObj = [];\r\n let tempObjNew = [];\r\n let tempObjCancel = [];\r\n tempObj = JSON.parse(JSON.stringify(posData.ocPOSItemDetail));\r\n\r\n if (tempObj.length > 0) {\r\n if (tempObj.filter((x) => x.CancelCheckItemSerNo != 0).length != 0) {\r\n tempObj.filter((x) => x.CancelCheckItemSerNo != 0).forEach(element => {\r\n tempObjCancel.push(element);\r\n });\r\n }\r\n\r\n if(tempObjCancel.length != 0){\r\n tempObj.filter((x) => x.CancelCheckItemSerNo == 0).forEach(e1 => {\r\n tempObjCancel.forEach(e2 => {\r\n if(e1.CheckItemSerNo == e2.CancelCheckItemSerNo){\r\n e1.ItemQty = (parseInt(e1.ItemQty) - (parseInt(e2.ItemQty) * -1));\r\n }\r\n });\r\n });\r\n }\r\n\r\n tempObj.filter((x) => x.CancelCheckItemSerNo == 0 && x.ItemQty > 0).forEach(element => {\r\n tempObjNew.push(element);\r\n });\r\n }\r\n setPobj(tempObjNew);\r\n\r\n let tempObj1 = [];\r\n setPobj1(tempObj1);\r\n let tempObj2 = [];\r\n setPobj2(tempObj2);\r\n let tempObj3 = [];\r\n setPobj3(tempObj3);\r\n let tempObj4 = [];\r\n setPobj4(tempObj4);\r\n let tempObj5 = [];\r\n setPobj5(tempObj5);\r\n let tempObj6 = [];\r\n setPobj6(tempObj6);\r\n let tempObj7 = [];\r\n setPobj7(tempObj7);\r\n\r\n setTableName(posData.objPOSHeaderDetail.TableSerNo);\r\n setTableName1(posData.objPOSHeaderDetail.TableSerNo + \"/1\");\r\n setTableName2(posData.objPOSHeaderDetail.TableSerNo + \"/2\");\r\n setTableName3(posData.objPOSHeaderDetail.TableSerNo + \"/3\");\r\n setTableName4(posData.objPOSHeaderDetail.TableSerNo + \"/4\");\r\n setTableName5(posData.objPOSHeaderDetail.TableSerNo + \"/5\");\r\n setTableName6(posData.objPOSHeaderDetail.TableSerNo + \"/6\");\r\n setTableName7(posData.objPOSHeaderDetail.TableSerNo + \"/7\");\r\n\r\n setQty(\"QTY: \" + CalculateQty(tempObjNew, \"ItemQty\"));\r\n setQty1(\"QTY: 0\");\r\n setQty2(\"QTY: 0\");\r\n setQty3(\"QTY: 0\");\r\n setQty4(\"QTY: 0\");\r\n setQty5(\"QTY: 0\");\r\n setQty6(\"QTY: 0\");\r\n setQty7(\"QTY: 0\");\r\n };\r\n\r\n const table1OnClick = (e) => {\r\n setTable(e.target.id);\r\n setShowDynamicTablePopup(true);\r\n };\r\n\r\n const handleDynamicTableClose = (v) => {\r\n setShowDynamicTablePopup(false);\r\n if (table == 1) {\r\n setTableName1(v.toString());\r\n } else if (table == 2) {\r\n setTableName2(v.toString());\r\n } else if (table == 3) {\r\n setTableName3(v.toString());\r\n } else if (table == 4) {\r\n setTableName4(v.toString());\r\n } else if (table == 5) {\r\n setTableName5(v.toString());\r\n } else if (table == 6) {\r\n setTableName6(v.toString());\r\n } else if (table == 7) {\r\n setTableName7(v.toString());\r\n }\r\n };\r\n\r\n const handleNumpadSaveClick = (v) => {\r\n let currQty = v.toString();\r\n if (pObj.length == 1) {\r\n if (pObj[0].ItemQty <= currQty) {\r\n alert(\"Required atleast 1 Qty in main bill\");\r\n clearSelectedData();\r\n return;\r\n }\r\n }\r\n\r\n if (srcItem != undefined) {\r\n let oldQty = srcItem.ItemQty;\r\n if (returnQty == 0) {\r\n if (srcGrid == \"dgItem01\") {\r\n let tempObj = [];\r\n tempObj = JSON.parse(JSON.stringify(pObj));\r\n if (tempObj.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj.push(obj);\r\n }\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n\r\n let tempObj1Old = [];\r\n let tempObj1 = [];\r\n tempObj1Old = JSON.parse(JSON.stringify(pObj1));\r\n tempObj1Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj1.push(element);\r\n }\r\n } else {\r\n tempObj1.push(element);\r\n }\r\n });\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem02\") {\r\n let tempObj = [];\r\n tempObj = JSON.parse(JSON.stringify(pObj));\r\n if (tempObj.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj.push(obj);\r\n }\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n\r\n let tempObj2Old = [];\r\n let tempObj2 = [];\r\n tempObj2Old = JSON.parse(JSON.stringify(pObj2));\r\n tempObj2Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj2.push(element);\r\n }\r\n } else {\r\n tempObj2.push(element);\r\n }\r\n });\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem03\") {\r\n let tempObj = [];\r\n tempObj = JSON.parse(JSON.stringify(pObj));\r\n if (tempObj.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj.push(obj);\r\n }\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n\r\n let tempObj3Old = [];\r\n let tempObj3 = [];\r\n tempObj3Old = JSON.parse(JSON.stringify(pObj3));\r\n tempObj3Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj3.push(element);\r\n }\r\n } else {\r\n tempObj3.push(element);\r\n }\r\n });\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem04\") {\r\n let tempObj = [];\r\n tempObj = JSON.parse(JSON.stringify(pObj));\r\n if (tempObj.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj.push(obj);\r\n }\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n\r\n let tempObj4Old = [];\r\n let tempObj4 = [];\r\n tempObj4Old = JSON.parse(JSON.stringify(pObj4));\r\n tempObj4Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj4.push(element);\r\n }\r\n } else {\r\n tempObj4.push(element);\r\n }\r\n });\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem05\") {\r\n let tempObj = [];\r\n tempObj = JSON.parse(JSON.stringify(pObj));\r\n if (tempObj.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj.push(obj);\r\n }\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n\r\n let tempObj5Old = [];\r\n let tempObj5 = [];\r\n tempObj5Old = JSON.parse(JSON.stringify(pObj5));\r\n tempObj5Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj5.push(element);\r\n }\r\n } else {\r\n tempObj5.push(element);\r\n }\r\n });\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem06\") {\r\n let tempObj = [];\r\n tempObj = JSON.parse(JSON.stringify(pObj));\r\n if (tempObj.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj.push(obj);\r\n }\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n\r\n let tempObj6Old = [];\r\n let tempObj6 = [];\r\n tempObj6Old = JSON.parse(JSON.stringify(pObj6));\r\n tempObj6Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj6.push(element);\r\n }\r\n } else {\r\n tempObj6.push(element);\r\n }\r\n });\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem07\") {\r\n let tempObj = [];\r\n tempObj = JSON.parse(JSON.stringify(pObj));\r\n if (tempObj.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj.push(obj);\r\n }\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n\r\n let tempObj7Old = [];\r\n let tempObj7 = [];\r\n tempObj7Old = JSON.parse(JSON.stringify(pObj7));\r\n tempObj7Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj7.push(element);\r\n }\r\n } else {\r\n tempObj7.push(element);\r\n }\r\n });\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n }\r\n } else if (returnQty == 1) {\r\n if (srcGrid == \"dgItem00\") {\r\n let tempObj1 = [];\r\n tempObj1 = JSON.parse(JSON.stringify(pObj1));\r\n if (tempObj1.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj1.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj1.push(obj);\r\n }\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n\r\n let tempObjold = [];\r\n let tempObj = [];\r\n tempObjold = JSON.parse(JSON.stringify(pObj));\r\n tempObjold.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj.push(element);\r\n }\r\n } else {\r\n tempObj.push(element);\r\n }\r\n });\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem02\") {\r\n let tempObj1 = [];\r\n tempObj1 = JSON.parse(JSON.stringify(pObj1));\r\n if (tempObj1.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj1.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj1.push(obj);\r\n }\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n\r\n let tempObj2Old = [];\r\n let tempObj2 = [];\r\n tempObj2Old = JSON.parse(JSON.stringify(pObj2));\r\n tempObj2Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj2.push(element);\r\n }\r\n } else {\r\n tempObj2.push(element);\r\n }\r\n });\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem03\") {\r\n let tempObj1 = [];\r\n tempObj1 = JSON.parse(JSON.stringify(pObj1));\r\n if (tempObj1.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj1.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj1.push(obj);\r\n }\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n\r\n let tempObj3Old = [];\r\n let tempObj3 = [];\r\n tempObj3Old = JSON.parse(JSON.stringify(pObj3));\r\n tempObj3Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj3.push(element);\r\n }\r\n } else {\r\n tempObj3.push(element);\r\n }\r\n });\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem04\") {\r\n let tempObj1 = [];\r\n tempObj1 = JSON.parse(JSON.stringify(pObj1));\r\n if (tempObj1.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj1.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj1.push(obj);\r\n }\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n\r\n let tempObj4Old = [];\r\n let tempObj4 = [];\r\n tempObj4Old = JSON.parse(JSON.stringify(pObj4));\r\n tempObj4Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj4.push(element);\r\n }\r\n } else {\r\n tempObj4.push(element);\r\n }\r\n });\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem05\") {\r\n let tempObj1 = [];\r\n tempObj1 = JSON.parse(JSON.stringify(pObj1));\r\n if (tempObj1.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj1.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj1.push(obj);\r\n }\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n\r\n let tempObj5Old = [];\r\n let tempObj5 = [];\r\n tempObj5Old = JSON.parse(JSON.stringify(pObj5));\r\n tempObj5Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj5.push(element);\r\n }\r\n } else {\r\n tempObj5.push(element);\r\n }\r\n });\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem06\") {\r\n let tempObj1 = [];\r\n tempObj1 = JSON.parse(JSON.stringify(pObj1));\r\n if (tempObj1.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj1.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj1.push(obj);\r\n }\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n\r\n let tempObj6Old = [];\r\n let tempObj6 = [];\r\n tempObj6Old = JSON.parse(JSON.stringify(pObj6));\r\n tempObj6Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj6.push(element);\r\n }\r\n } else {\r\n tempObj6.push(element);\r\n }\r\n });\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem07\") {\r\n let tempObj1 = [];\r\n tempObj1 = JSON.parse(JSON.stringify(pObj1));\r\n if (tempObj1.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj1.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj1.push(obj);\r\n }\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n\r\n let tempObj7Old = [];\r\n let tempObj7 = [];\r\n tempObj7Old = JSON.parse(JSON.stringify(pObj7));\r\n tempObj7Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj7.push(element);\r\n }\r\n } else {\r\n tempObj7.push(element);\r\n }\r\n });\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n }\r\n } else if (returnQty == 2) {\r\n if (srcGrid == \"dgItem00\") {\r\n let tempObj2 = [];\r\n tempObj2 = JSON.parse(JSON.stringify(pObj2));\r\n if (tempObj2.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj2.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj2.push(obj);\r\n }\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n\r\n let tempObjold = [];\r\n let tempObj = [];\r\n tempObjold = JSON.parse(JSON.stringify(pObj));\r\n tempObjold.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj.push(element);\r\n }\r\n } else {\r\n tempObj.push(element);\r\n }\r\n });\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem01\") {\r\n let tempObj2 = [];\r\n tempObj2 = JSON.parse(JSON.stringify(pObj2));\r\n if (tempObj2.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj2.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj2.push(obj);\r\n }\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n\r\n let tempObj1Old = [];\r\n let tempObj1 = [];\r\n tempObj1Old = JSON.parse(JSON.stringify(pObj1));\r\n tempObj1Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj1.push(element);\r\n }\r\n } else {\r\n tempObj1.push(element);\r\n }\r\n });\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem03\") {\r\n let tempObj2 = [];\r\n tempObj2 = JSON.parse(JSON.stringify(pObj2));\r\n if (tempObj2.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj2.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj2.push(obj);\r\n }\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n\r\n let tempObj3Old = [];\r\n let tempObj3 = [];\r\n tempObj3Old = JSON.parse(JSON.stringify(pObj3));\r\n tempObj3Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj3.push(element);\r\n }\r\n } else {\r\n tempObj3.push(element);\r\n }\r\n });\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem04\") {\r\n let tempObj2 = [];\r\n tempObj2 = JSON.parse(JSON.stringify(pObj2));\r\n if (tempObj2.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj2.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj2.push(obj);\r\n }\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n\r\n let tempObj4Old = [];\r\n let tempObj4 = [];\r\n tempObj4Old = JSON.parse(JSON.stringify(pObj4));\r\n tempObj4Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj4.push(element);\r\n }\r\n } else {\r\n tempObj4.push(element);\r\n }\r\n });\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem05\") {\r\n let tempObj2 = [];\r\n tempObj2 = JSON.parse(JSON.stringify(pObj2));\r\n if (tempObj2.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj2.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj2.push(obj);\r\n }\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n\r\n let tempObj5Old = [];\r\n let tempObj5 = [];\r\n tempObj5Old = JSON.parse(JSON.stringify(pObj5));\r\n tempObj5Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj5.push(element);\r\n }\r\n } else {\r\n tempObj5.push(element);\r\n }\r\n });\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem06\") {\r\n let tempObj2 = [];\r\n tempObj2 = JSON.parse(JSON.stringify(pObj2));\r\n if (tempObj2.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj2.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj2.push(obj);\r\n }\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n\r\n let tempObj6Old = [];\r\n let tempObj6 = [];\r\n tempObj6Old = JSON.parse(JSON.stringify(pObj6));\r\n tempObj6Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj6.push(element);\r\n }\r\n } else {\r\n tempObj6.push(element);\r\n }\r\n });\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem07\") {\r\n let tempObj2 = [];\r\n tempObj2 = JSON.parse(JSON.stringify(pObj2));\r\n if (tempObj2.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj2.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj2.push(obj);\r\n }\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n\r\n let tempObj7Old = [];\r\n let tempObj7 = [];\r\n tempObj7Old = JSON.parse(JSON.stringify(pObj7));\r\n tempObj7Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj7.push(element);\r\n }\r\n } else {\r\n tempObj7.push(element);\r\n }\r\n });\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n }\r\n } else if (returnQty == 3) {\r\n if (srcGrid == \"dgItem00\") {\r\n let tempObj3 = [];\r\n tempObj3 = JSON.parse(JSON.stringify(pObj3));\r\n if (tempObj3.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj3.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj3.push(obj);\r\n }\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n\r\n let tempObjold = [];\r\n let tempObj = [];\r\n tempObjold = JSON.parse(JSON.stringify(pObj));\r\n tempObjold.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj.push(element);\r\n }\r\n } else {\r\n tempObj.push(element);\r\n }\r\n });\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem01\") {\r\n let tempObj3 = [];\r\n tempObj3 = JSON.parse(JSON.stringify(pObj3));\r\n if (tempObj3.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj3.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj3.push(obj);\r\n }\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n\r\n let tempObj1Old = [];\r\n let tempObj1 = [];\r\n tempObj1Old = JSON.parse(JSON.stringify(pObj1));\r\n tempObj1Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj1.push(element);\r\n }\r\n } else {\r\n tempObj1.push(element);\r\n }\r\n });\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem02\") {\r\n let tempObj3 = [];\r\n tempObj3 = JSON.parse(JSON.stringify(pObj3));\r\n if (tempObj3.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj3.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj3.push(obj);\r\n }\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n\r\n let tempObj2Old = [];\r\n let tempObj2 = [];\r\n tempObj2Old = JSON.parse(JSON.stringify(pObj2));\r\n tempObj2Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj2.push(element);\r\n }\r\n } else {\r\n tempObj2.push(element);\r\n }\r\n });\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem04\") {\r\n let tempObj3 = [];\r\n tempObj3 = JSON.parse(JSON.stringify(pObj3));\r\n if (tempObj3.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj3.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj3.push(obj);\r\n }\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n\r\n let tempObj4Old = [];\r\n let tempObj4 = [];\r\n tempObj4Old = JSON.parse(JSON.stringify(pObj4));\r\n tempObj4Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj4.push(element);\r\n }\r\n } else {\r\n tempObj4.push(element);\r\n }\r\n });\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem05\") {\r\n let tempObj3 = [];\r\n tempObj3 = JSON.parse(JSON.stringify(pObj3));\r\n if (tempObj3.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj3.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj3.push(obj);\r\n }\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n\r\n let tempObj5Old = [];\r\n let tempObj5 = [];\r\n tempObj5Old = JSON.parse(JSON.stringify(pObj5));\r\n tempObj5Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj5.push(element);\r\n }\r\n } else {\r\n tempObj5.push(element);\r\n }\r\n });\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem06\") {\r\n let tempObj3 = [];\r\n tempObj3 = JSON.parse(JSON.stringify(pObj3));\r\n if (tempObj3.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj3.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj3.push(obj);\r\n }\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n\r\n let tempObj6Old = [];\r\n let tempObj6 = [];\r\n tempObj6Old = JSON.parse(JSON.stringify(pObj6));\r\n tempObj6Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj6.push(element);\r\n }\r\n } else {\r\n tempObj6.push(element);\r\n }\r\n });\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem07\") {\r\n let tempObj3 = [];\r\n tempObj3 = JSON.parse(JSON.stringify(pObj3));\r\n if (tempObj3.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj3.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj3.push(obj);\r\n }\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n\r\n let tempObj7Old = [];\r\n let tempObj7 = [];\r\n tempObj7Old = JSON.parse(JSON.stringify(pObj7));\r\n tempObj7Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj7.push(element);\r\n }\r\n } else {\r\n tempObj7.push(element);\r\n }\r\n });\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n }\r\n } else if (returnQty == 4) {\r\n if (srcGrid == \"dgItem00\") {\r\n let tempObj4 = [];\r\n tempObj4 = JSON.parse(JSON.stringify(pObj4));\r\n if (tempObj4.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj4.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj4.push(obj);\r\n }\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n\r\n let tempObjold = [];\r\n let tempObj = [];\r\n tempObjold = JSON.parse(JSON.stringify(pObj));\r\n tempObjold.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj.push(element);\r\n }\r\n } else {\r\n tempObj.push(element);\r\n }\r\n });\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem01\") {\r\n let tempObj4 = [];\r\n tempObj4 = JSON.parse(JSON.stringify(pObj4));\r\n if (tempObj4.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj4.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj4.push(obj);\r\n }\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n\r\n let tempObj1Old = [];\r\n let tempObj1 = [];\r\n tempObj1Old = JSON.parse(JSON.stringify(pObj1));\r\n tempObj1Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj1.push(element);\r\n }\r\n } else {\r\n tempObj1.push(element);\r\n }\r\n });\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem02\") {\r\n let tempObj4 = [];\r\n tempObj4 = JSON.parse(JSON.stringify(pObj4));\r\n if (tempObj4.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj4.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj4.push(obj);\r\n }\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n\r\n let tempObj2Old = [];\r\n let tempObj2 = [];\r\n tempObj2Old = JSON.parse(JSON.stringify(pObj2));\r\n tempObj2Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj2.push(element);\r\n }\r\n } else {\r\n tempObj2.push(element);\r\n }\r\n });\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem03\") {\r\n let tempObj4 = [];\r\n tempObj4 = JSON.parse(JSON.stringify(pObj4));\r\n if (tempObj4.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj4.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj4.push(obj);\r\n }\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n\r\n let tempObj3Old = [];\r\n let tempObj3 = [];\r\n tempObj3Old = JSON.parse(JSON.stringify(pObj3));\r\n tempObj3Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj3.push(element);\r\n }\r\n } else {\r\n tempObj3.push(element);\r\n }\r\n });\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem05\") {\r\n let tempObj4 = [];\r\n tempObj4 = JSON.parse(JSON.stringify(pObj4));\r\n if (tempObj4.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj4.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj4.push(obj);\r\n }\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n\r\n let tempObj5Old = [];\r\n let tempObj5 = [];\r\n tempObj5Old = JSON.parse(JSON.stringify(pObj5));\r\n tempObj5Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj5.push(element);\r\n }\r\n } else {\r\n tempObj5.push(element);\r\n }\r\n });\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem06\") {\r\n let tempObj4 = [];\r\n tempObj4 = JSON.parse(JSON.stringify(pObj4));\r\n if (tempObj4.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj4.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj4.push(obj);\r\n }\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n\r\n let tempObj6Old = [];\r\n let tempObj6 = [];\r\n tempObj6Old = JSON.parse(JSON.stringify(pObj6));\r\n tempObj6Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj6.push(element);\r\n }\r\n } else {\r\n tempObj6.push(element);\r\n }\r\n });\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem07\") {\r\n let tempObj4 = [];\r\n tempObj4 = JSON.parse(JSON.stringify(pObj4));\r\n if (tempObj4.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj4.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj4.push(obj);\r\n }\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n\r\n let tempObj7Old = [];\r\n let tempObj7 = [];\r\n tempObj7Old = JSON.parse(JSON.stringify(pObj7));\r\n tempObj7Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj7.push(element);\r\n }\r\n } else {\r\n tempObj7.push(element);\r\n }\r\n });\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n }\r\n } else if (returnQty == 5) {\r\n if (srcGrid == \"dgItem00\") {\r\n let tempObj5 = [];\r\n tempObj5 = JSON.parse(JSON.stringify(pObj5));\r\n if (tempObj5.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj5.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj5.push(obj);\r\n }\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n\r\n let tempObjold = [];\r\n let tempObj = [];\r\n tempObjold = JSON.parse(JSON.stringify(pObj));\r\n tempObjold.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj.push(element);\r\n }\r\n } else {\r\n tempObj.push(element);\r\n }\r\n });\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem01\") {\r\n let tempObj5 = [];\r\n tempObj5 = JSON.parse(JSON.stringify(pObj5));\r\n if (tempObj5.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj5.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj5.push(obj);\r\n }\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n\r\n let tempObj1Old = [];\r\n let tempObj1 = [];\r\n tempObj1Old = JSON.parse(JSON.stringify(pObj1));\r\n tempObj1Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj1.push(element);\r\n }\r\n } else {\r\n tempObj1.push(element);\r\n }\r\n });\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem02\") {\r\n let tempObj5 = [];\r\n tempObj5 = JSON.parse(JSON.stringify(pObj5));\r\n if (tempObj5.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj5.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj5.push(obj);\r\n }\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n\r\n let tempObj2Old = [];\r\n let tempObj2 = [];\r\n tempObj2Old = JSON.parse(JSON.stringify(pObj2));\r\n tempObj2Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj2.push(element);\r\n }\r\n } else {\r\n tempObj2.push(element);\r\n }\r\n });\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem03\") {\r\n let tempObj5 = [];\r\n tempObj5 = JSON.parse(JSON.stringify(pObj5));\r\n if (tempObj5.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj5.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj5.push(obj);\r\n }\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n\r\n let tempObj3Old = [];\r\n let tempObj3 = [];\r\n tempObj3Old = JSON.parse(JSON.stringify(pObj3));\r\n tempObj3Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj3.push(element);\r\n }\r\n } else {\r\n tempObj3.push(element);\r\n }\r\n });\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem04\") {\r\n let tempObj5 = [];\r\n tempObj5 = JSON.parse(JSON.stringify(pObj5));\r\n if (tempObj5.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj5.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj5.push(obj);\r\n }\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n\r\n let tempObj4Old = [];\r\n let tempObj4 = [];\r\n tempObj4Old = JSON.parse(JSON.stringify(pObj4));\r\n tempObj4Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj4.push(element);\r\n }\r\n } else {\r\n tempObj4.push(element);\r\n }\r\n });\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem06\") {\r\n let tempObj5 = [];\r\n tempObj5 = JSON.parse(JSON.stringify(pObj5));\r\n if (tempObj5.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj5.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj5.push(obj);\r\n }\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n\r\n let tempObj6Old = [];\r\n let tempObj6 = [];\r\n tempObj6Old = JSON.parse(JSON.stringify(pObj6));\r\n tempObj6Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj6.push(element);\r\n }\r\n } else {\r\n tempObj6.push(element);\r\n }\r\n });\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem07\") {\r\n let tempObj5 = [];\r\n tempObj5 = JSON.parse(JSON.stringify(pObj5));\r\n if (tempObj5.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj5.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj5.push(obj);\r\n }\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n\r\n let tempObj7Old = [];\r\n let tempObj7 = [];\r\n tempObj7Old = JSON.parse(JSON.stringify(pObj7));\r\n tempObj7Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj7.push(element);\r\n }\r\n } else {\r\n tempObj7.push(element);\r\n }\r\n });\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n }\r\n } else if (returnQty == 6) {\r\n if (srcGrid == \"dgItem00\") {\r\n let tempObj6 = [];\r\n tempObj6 = JSON.parse(JSON.stringify(pObj6));\r\n if (tempObj6.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj6.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj6.push(obj);\r\n }\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n\r\n let tempObjold = [];\r\n let tempObj = [];\r\n tempObjold = JSON.parse(JSON.stringify(pObj));\r\n tempObjold.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj.push(element);\r\n }\r\n } else {\r\n tempObj.push(element);\r\n }\r\n });\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem01\") {\r\n let tempObj6 = [];\r\n tempObj6 = JSON.parse(JSON.stringify(pObj6));\r\n if (tempObj6.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj6.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj6.push(obj);\r\n }\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n\r\n let tempObj1Old = [];\r\n let tempObj1 = [];\r\n tempObj1Old = JSON.parse(JSON.stringify(pObj1));\r\n tempObj1Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj1.push(element);\r\n }\r\n } else {\r\n tempObj1.push(element);\r\n }\r\n });\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem02\") {\r\n let tempObj6 = [];\r\n tempObj6 = JSON.parse(JSON.stringify(pObj6));\r\n if (tempObj6.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj6.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj6.push(obj);\r\n }\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n\r\n let tempObj2Old = [];\r\n let tempObj2 = [];\r\n tempObj2Old = JSON.parse(JSON.stringify(pObj2));\r\n tempObj2Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj2.push(element);\r\n }\r\n } else {\r\n tempObj2.push(element);\r\n }\r\n });\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem03\") {\r\n let tempObj6 = [];\r\n tempObj6 = JSON.parse(JSON.stringify(pObj6));\r\n if (tempObj6.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj6.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj6.push(obj);\r\n }\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n\r\n let tempObj3Old = [];\r\n let tempObj3 = [];\r\n tempObj3Old = JSON.parse(JSON.stringify(pObj3));\r\n tempObj3Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj3.push(element);\r\n }\r\n } else {\r\n tempObj3.push(element);\r\n }\r\n });\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem04\") {\r\n let tempObj6 = [];\r\n tempObj6 = JSON.parse(JSON.stringify(pObj6));\r\n if (tempObj6.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj6.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj6.push(obj);\r\n }\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n\r\n let tempObj4Old = [];\r\n let tempObj4 = [];\r\n tempObj4Old = JSON.parse(JSON.stringify(pObj4));\r\n tempObj4Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj4.push(element);\r\n }\r\n } else {\r\n tempObj4.push(element);\r\n }\r\n });\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem05\") {\r\n let tempObj6 = [];\r\n tempObj6 = JSON.parse(JSON.stringify(pObj6));\r\n if (tempObj6.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj6.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj6.push(obj);\r\n }\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n\r\n let tempObj5Old = [];\r\n let tempObj5 = [];\r\n tempObj5Old = JSON.parse(JSON.stringify(pObj5));\r\n tempObj5Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj5.push(element);\r\n }\r\n } else {\r\n tempObj5.push(element);\r\n }\r\n });\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem07\") {\r\n let tempObj6 = [];\r\n tempObj6 = JSON.parse(JSON.stringify(pObj6));\r\n if (tempObj6.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj6.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj6.push(obj);\r\n }\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n\r\n let tempObj7Old = [];\r\n let tempObj7 = [];\r\n tempObj7Old = JSON.parse(JSON.stringify(pObj7));\r\n tempObj7Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj7.push(element);\r\n }\r\n } else {\r\n tempObj7.push(element);\r\n }\r\n });\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n }\r\n } else if (returnQty == 7) {\r\n if (srcGrid == \"dgItem00\") {\r\n let tempObj7 = [];\r\n tempObj7 = JSON.parse(JSON.stringify(pObj7));\r\n if (tempObj7.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj7.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj7.push(obj);\r\n }\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n\r\n let tempObjold = [];\r\n let tempObj = [];\r\n tempObjold = JSON.parse(JSON.stringify(pObj));\r\n tempObjold.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj.push(element);\r\n }\r\n } else {\r\n tempObj.push(element);\r\n }\r\n });\r\n setPobj(tempObj);\r\n setQty(\"QTY: \" + CalculateQty(tempObj, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem01\") {\r\n let tempObj7 = [];\r\n tempObj7 = JSON.parse(JSON.stringify(pObj7));\r\n if (tempObj7.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj7.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj7.push(obj);\r\n }\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n\r\n let tempObj1Old = [];\r\n let tempObj1 = [];\r\n tempObj1Old = JSON.parse(JSON.stringify(pObj1));\r\n tempObj1Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj1.push(element);\r\n }\r\n } else {\r\n tempObj1.push(element);\r\n }\r\n });\r\n setPobj1(tempObj1);\r\n setQty1(\"QTY: \" + CalculateQty(tempObj1, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem02\") {\r\n let tempObj7 = [];\r\n tempObj7 = JSON.parse(JSON.stringify(pObj7));\r\n if (tempObj7.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj7.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj7.push(obj);\r\n }\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n\r\n let tempObj2Old = [];\r\n let tempObj2 = [];\r\n tempObj2Old = JSON.parse(JSON.stringify(pObj2));\r\n tempObj2Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj2.push(element);\r\n }\r\n } else {\r\n tempObj2.push(element);\r\n }\r\n });\r\n setPobj2(tempObj2);\r\n setQty2(\"QTY: \" + CalculateQty(tempObj2, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem03\") {\r\n let tempObj7 = [];\r\n tempObj7 = JSON.parse(JSON.stringify(pObj7));\r\n if (tempObj7.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj7.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj7.push(obj);\r\n }\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n\r\n let tempObj3Old = [];\r\n let tempObj3 = [];\r\n tempObj3Old = JSON.parse(JSON.stringify(pObj3));\r\n tempObj3Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj3.push(element);\r\n }\r\n } else {\r\n tempObj3.push(element);\r\n }\r\n });\r\n setPobj3(tempObj3);\r\n setQty3(\"QTY: \" + CalculateQty(tempObj3, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem04\") {\r\n let tempObj7 = [];\r\n tempObj7 = JSON.parse(JSON.stringify(pObj7));\r\n if (tempObj7.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj7.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj7.push(obj);\r\n }\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n\r\n let tempObj4Old = [];\r\n let tempObj4 = [];\r\n tempObj4Old = JSON.parse(JSON.stringify(pObj4));\r\n tempObj4Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj4.push(element);\r\n }\r\n } else {\r\n tempObj4.push(element);\r\n }\r\n });\r\n setPobj4(tempObj4);\r\n setQty4(\"QTY: \" + CalculateQty(tempObj4, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem05\") {\r\n let tempObj7 = [];\r\n tempObj7 = JSON.parse(JSON.stringify(pObj7));\r\n if (tempObj7.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj7.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj7.push(obj);\r\n }\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n\r\n let tempObj5Old = [];\r\n let tempObj5 = [];\r\n tempObj5Old = JSON.parse(JSON.stringify(pObj5));\r\n tempObj5Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj5.push(element);\r\n }\r\n } else {\r\n tempObj5.push(element);\r\n }\r\n });\r\n setPobj5(tempObj5);\r\n setQty5(\"QTY: \" + CalculateQty(tempObj5, \"ItemQty\"));\r\n } else if (srcGrid == \"dgItem06\") {\r\n let tempObj7 = [];\r\n tempObj7 = JSON.parse(JSON.stringify(pObj7));\r\n if (tempObj7.filter((x) => x.KOTNo == srcItem.KOTNo && x.ItemSerNo == srcItem.ItemSerNo && x.CheckItemSerNo == srcItem.CheckItemSerNo).length != 0) {\r\n tempObj7.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n element.ItemQty = parseInt(element.ItemQty) + parseInt(currQty);\r\n }\r\n });\r\n } else {\r\n let obj = {};\r\n obj = JSON.parse(JSON.stringify(srcItem));\r\n obj.ItemQty = parseInt(currQty);\r\n tempObj7.push(obj);\r\n }\r\n setPobj7(tempObj7);\r\n setQty7(\"QTY: \" + CalculateQty(tempObj7, \"ItemQty\"));\r\n\r\n let tempObj6Old = [];\r\n let tempObj6 = [];\r\n tempObj6Old = JSON.parse(JSON.stringify(pObj6));\r\n tempObj6Old.forEach(element => {\r\n if (element.KOTNo == srcItem.KOTNo && element.ItemSerNo == srcItem.ItemSerNo && element.CheckItemSerNo == srcItem.CheckItemSerNo) {\r\n if ((parseInt(oldQty) - parseInt(currQty)) == 0) {\r\n\r\n } else {\r\n element.ItemQty = parseInt(oldQty) - parseInt(currQty);\r\n tempObj6.push(element);\r\n }\r\n } else {\r\n tempObj6.push(element);\r\n }\r\n });\r\n setPobj6(tempObj6);\r\n setQty6(\"QTY: \" + CalculateQty(tempObj6, \"ItemQty\"));\r\n }\r\n }\r\n }\r\n\r\n clearSelectedData();\r\n setShowNumberKeyboardPopup(false);\r\n };\r\n\r\n const btnProcessClick = () => {\r\n if (pObj1.length != 0) {\r\n let currQty = 0;\r\n currQty = CalculateQty(pObj1, \"ItemQty\");\r\n if (parseInt(currQty) <= 0) {\r\n alert(\"Atleast 1 Qty require in table\");\r\n return;\r\n }\r\n\r\n if (tableName1 == tableName || tableName1 == tableName2 || tableName1 == tableName3 || tableName1 == tableName4 || tableName1 == tableName5 || tableName1 == tableName6 || tableName1 == tableName7) {\r\n alert(\"Table already occupied. Please change table name for \" + tableName1 + \" table.\")\r\n return;\r\n }\r\n }\r\n\r\n if (pObj2.length != 0) {\r\n let currQty = 0;\r\n currQty = CalculateQty(pObj2, \"ItemQty\");\r\n if (parseInt(currQty) <= 0) {\r\n alert(\"Atleast 1 Qty require in table\");\r\n return;\r\n }\r\n\r\n if (tableName2 == tableName || tableName2 == tableName1 || tableName2 == tableName3 || tableName2 == tableName4 || tableName2 == tableName5 || tableName2 == tableName6 || tableName2 == tableName7) {\r\n alert(\"Table already occupied. Please change table name for \" + tableName2 + \" table.\")\r\n return;\r\n }\r\n }\r\n\r\n if (pObj3.length != 0) {\r\n let currQty = 0;\r\n currQty = CalculateQty(pObj3, \"ItemQty\");\r\n if (parseInt(currQty) <= 0) {\r\n alert(\"Atleast 1 Qty require in table\");\r\n return;\r\n }\r\n\r\n if (tableName3 == tableName || tableName3 == tableName1 || tableName3 == tableName2 || tableName3 == tableName4 || tableName3 == tableName5 || tableName3 == tableName6 || tableName3 == tableName7) {\r\n alert(\"Table already occupied. Please change table name for \" + tableName3 + \" table.\")\r\n return;\r\n }\r\n }\r\n\r\n if (pObj4.length != 0) {\r\n let currQty = 0;\r\n currQty = CalculateQty(pObj4, \"ItemQty\");\r\n if (parseInt(currQty) <= 0) {\r\n alert(\"Atleast 1 Qty require in table\");\r\n return;\r\n }\r\n\r\n if (tableName4 == tableName || tableName4 == tableName1 || tableName4 == tableName2 || tableName4 == tableName3 || tableName4 == tableName5 || tableName4 == tableName6 || tableName4 == tableName7) {\r\n alert(\"Table already occupied. Please change table name for \" + tableName4 + \" table.\")\r\n return;\r\n }\r\n }\r\n\r\n if (pObj5.length != 0) {\r\n let currQty = 0;\r\n currQty = CalculateQty(pObj5, \"ItemQty\");\r\n if (parseInt(currQty) <= 0) {\r\n alert(\"Atleast 1 Qty require in table\");\r\n return;\r\n }\r\n\r\n if (tableName5 == tableName || tableName5 == tableName1 || tableName5 == tableName2 || tableName5 == tableName3 || tableName5 == tableName4 || tableName5 == tableName6 || tableName5 == tableName7) {\r\n alert(\"Table already occupied. Please change table name for \" + tableName5 + \" table.\")\r\n return;\r\n }\r\n }\r\n\r\n if (pObj6.length != 0) {\r\n let currQty = 0;\r\n currQty = CalculateQty(pObj6, \"ItemQty\");\r\n if (parseInt(currQty) <= 0) {\r\n alert(\"Atleast 1 Qty require in table\");\r\n return;\r\n }\r\n\r\n if (tableName6 == tableName || tableName6 == tableName1 || tableName6 == tableName2 || tableName6 == tableName3 || tableName6 == tableName4 || tableName6 == tableName5 || tableName6 == tableName7) {\r\n alert(\"Table already occupied. Please change table name for \" + tableName6 + \" table.\")\r\n return;\r\n }\r\n }\r\n\r\n if (pObj7.length != 0) {\r\n let currQty = 0;\r\n currQty = CalculateQty(pObj7, \"ItemQty\");\r\n if (parseInt(currQty) <= 0) {\r\n alert(\"Atleast 1 Qty require in table\");\r\n return;\r\n }\r\n\r\n if (tableName7 == tableName || tableName7 == tableName1 || tableName7 == tableName2 || tableName7 == tableName3 || tableName7 == tableName4 || tableName7 == tableName5 || tableName7 == tableName6) {\r\n alert(\"Table already occupied. Please change table name for \" + tableName7 + \" table.\")\r\n return;\r\n }\r\n }\r\n\r\n if (pObj.length != 0) {\r\n let currQty = 0;\r\n currQty = CalculateQty(pObj, \"ItemQty\");\r\n if (parseInt(currQty) <= 0) {\r\n alert(\"Atleast 1 Qty require in table\");\r\n return;\r\n }\r\n }\r\n\r\n let tempObj1 = [];\r\n tempObj1 = JSON.parse(JSON.stringify(pObj1));\r\n tempObj1.forEach(element => {\r\n element.TableName = tableName1;\r\n });\r\n setPobj1(tempObj1);\r\n\r\n let tempObj2 = [];\r\n tempObj2 = JSON.parse(JSON.stringify(pObj2));\r\n tempObj2.forEach(element => {\r\n element.TableName = tableName2;\r\n });\r\n setPobj2(tempObj2);\r\n\r\n let tempObj3 = [];\r\n tempObj3 = JSON.parse(JSON.stringify(pObj3));\r\n tempObj3.forEach(element => {\r\n element.TableName = tableName3;\r\n });\r\n setPobj3(tempObj3);\r\n\r\n let tempObj4 = [];\r\n tempObj4 = JSON.parse(JSON.stringify(pObj4));\r\n tempObj4.forEach(element => {\r\n element.TableName = tableName4;\r\n });\r\n setPobj4(tempObj4);\r\n\r\n let tempObj5 = [];\r\n tempObj5 = JSON.parse(JSON.stringify(pObj5));\r\n tempObj5.forEach(element => {\r\n element.TableName = tableName5;\r\n });\r\n setPobj5(tempObj5);\r\n\r\n let tempObj6 = [];\r\n tempObj6 = JSON.parse(JSON.stringify(pObj6));\r\n tempObj6.forEach(element => {\r\n element.TableName = tableName6;\r\n });\r\n setPobj6(tempObj6);\r\n\r\n let tempObj7 = [];\r\n tempObj7 = JSON.parse(JSON.stringify(pObj7));\r\n tempObj7.forEach(element => {\r\n element.TableName = tableName7;\r\n });\r\n setPobj7(tempObj7);\r\n\r\n let currTotalAmount = 0;\r\n posData.ocPOSItemDetail.forEach(element => {\r\n currTotalAmount = currTotalAmount + (element.ItemQty * element.ItemRate);\r\n });\r\n\r\n let para = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"CheckSerNo\": parseInt(posData.objPOSHeaderDetail.CheckSerNo),\r\n \"Discount\": posData.objPOSHeaderDetail.Discount,\r\n \"Percentage\": posData.objPOSHeaderDetail.Percentage,\r\n \"TotalAmount\": currTotalAmount,\r\n \"UserID\": currUser.UserID,\r\n \"TotalQty\": totalQty,\r\n \"pObj1\" : tempObj1,\r\n \"pObj2\" : tempObj2,\r\n \"pObj3\" : tempObj3,\r\n \"pObj4\" : tempObj4,\r\n \"pObj5\" : tempObj5,\r\n \"pObj6\" : tempObj6,\r\n \"pObj7\" : tempObj7\r\n };\r\n\r\n setActive(true);\r\n POSSplitTableInsertPOSItem(para).then((d) => {\r\n setActive(false);\r\n if(d.data != undefined){\r\n if(d.data == \"Done\"){\r\n props.hanldeOnSave();\r\n }else {\r\n alert(\"Please refresh table data.\");\r\n }\r\n }\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    Split Bill (Check No. {posData.objPOSHeaderDetail.CheckSerNo})

    \r\n
    \r\n
    \r\n Refresh\r\n Process\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    ItemQTY
    \r\n
    \r\n console.log(swiper)}\r\n >\r\n \r\n
    \r\n \r\n \r\n {\r\n pObj ? pObj.map((d) =>\r\n \r\n \r\n \r\n \r\n ) : null\r\n }\r\n \r\n
    {d.ItemName}{d.ItemQty}
    \r\n
    \r\n
     
    \r\n
    \r\n
    \r\n
    {tableName}
    \r\n
    setShowNumberKeyboardPopup(true)}>{qty}
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    ItemQTY
    \r\n
    \r\n console.log(swiper)}\r\n >\r\n \r\n
    \r\n \r\n \r\n {\r\n pObj1 ? pObj1.map((d) =>\r\n \r\n \r\n \r\n \r\n ) : null\r\n }\r\n \r\n
    {d.ItemName}{d.ItemQty}
    \r\n
    \r\n
     
    \r\n
    \r\n
    \r\n
    {tableName1}
    \r\n
    {qty1}
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    ItemQTY
    \r\n
    \r\n console.log(swiper)}\r\n >\r\n \r\n
    \r\n \r\n \r\n {\r\n pObj2 ? pObj2.map((d) =>\r\n \r\n \r\n \r\n \r\n ) : null\r\n }\r\n \r\n
    {d.ItemName}{d.ItemQty}
    \r\n
    \r\n
     
    \r\n
    \r\n
    \r\n
    {tableName2}
    \r\n
    {qty2}
    \r\n
    \r\n \r\n
    \r\n\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    ItemQTY
    \r\n
    \r\n console.log(swiper)}\r\n >\r\n \r\n
    \r\n \r\n \r\n {\r\n pObj3 ? pObj3.map((d) =>\r\n \r\n \r\n \r\n \r\n ) : null\r\n }\r\n \r\n
    {d.ItemName}{d.ItemQty}
    \r\n
    \r\n
     
    \r\n
    \r\n
    \r\n
    {tableName3}
    \r\n
    {qty3}
    \r\n
    \r\n \r\n
    \r\n\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    ItemQTY
    \r\n
    \r\n console.log(swiper)}\r\n >\r\n \r\n
    \r\n \r\n \r\n {\r\n pObj4 ? pObj4.map((d) =>\r\n \r\n \r\n \r\n \r\n ) : null\r\n }\r\n \r\n
    {d.ItemName}{d.ItemQty}
    \r\n
    \r\n
     
    \r\n
    \r\n
    \r\n
    {tableName4}
    \r\n
    {qty4}
    \r\n
    \r\n \r\n
    \r\n\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    ItemQTY
    \r\n
    \r\n console.log(swiper)}\r\n >\r\n \r\n
    \r\n \r\n \r\n {\r\n pObj5 ? pObj5.map((d) =>\r\n \r\n \r\n \r\n \r\n ) : null\r\n }\r\n \r\n
    {d.ItemName}{d.ItemQty}
    \r\n
    \r\n
     
    \r\n
    \r\n
    \r\n
    {tableName5}
    \r\n
    {qty5}
    \r\n
    \r\n \r\n
    \r\n\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    ItemQTY
    \r\n
    \r\n console.log(swiper)}\r\n >\r\n \r\n
    \r\n \r\n \r\n {\r\n pObj6 ? pObj6.map((d) =>\r\n \r\n \r\n \r\n \r\n ) : null\r\n }\r\n \r\n
    {d.ItemName}{d.ItemQty}
    \r\n
    \r\n
     
    \r\n
    \r\n
    \r\n
    {tableName6}
    \r\n
    {qty6}
    \r\n
    \r\n \r\n
    \r\n\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    ItemQTY
    \r\n
    \r\n console.log(swiper)}\r\n >\r\n \r\n
    \r\n \r\n \r\n {\r\n pObj7 ? pObj7.map((d) =>\r\n \r\n \r\n \r\n \r\n ) : null\r\n }\r\n \r\n
    {d.ItemName}{d.ItemQty}
    \r\n
    \r\n
     
    \r\n
    \r\n
    \r\n
    {tableName7}
    \r\n
    {qty7}
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {showDynamicTablePopup ?\r\n setShowDynamicTablePopup(false)}\r\n handleCancelletionRemarkClose={(v) => handleDynamicTableClose(v)}\r\n >\r\n : null\r\n }\r\n\r\n {showNumberKeyboardPopup ?\r\n { setShowNumberKeyboardPopup(false) }}\r\n handleSaveOnClose={(v) => handleNumpadSaveClick(v)}>\r\n \r\n : null}\r\n \r\n )\r\n}","import React, { useState } from \"react\";\r\nimport {\r\n InnPlainButton,\r\n InnTextbox,\r\n InnTooltip,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnSearchTextbox,\r\n InnModalPopup,\r\n InnSingleSelectDropdown,\r\n InnCheckbox,\r\n InnSwitch,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { posCollection } from \"../../../../reducer/posSlice\";\r\nimport { useEffect } from \"react\";\r\nimport { GetPOSInvoiceDetail, UpdatePOSPrintFlag } from \"../../../../services/posbillingService\";\r\n\r\nexport function BuffurPopUp(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const posData = useSelector(posCollection);\r\n const [isActive, setActive] = useState(false);\r\n const [ocPOSItemDetail, setOcPOSItemDetail] = useState([]);\r\n const [ocPOSTaxDetail, setOcPOSTaxDetail] = useState([]);\r\n const [ocPOSSettlementDetail, setOcPOSSettlementDetail] = useState([]);\r\n const [qty, setQty] = useState();\r\n const [subTotal, setSubTotal] = useState();\r\n const [netTotal, setNetTotal] = useState();\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose == undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose();\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n setActive(true);\r\n GetPOSInvoiceDetail(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo),\r\n parseInt(posData.objPOSHeaderDetail.CheckSerNo)).then((d) => {\r\n setActive(false);\r\n if (d.data != undefined) {\r\n let tempItem = [];\r\n tempItem = JSON.parse(JSON.stringify(d.data.InvoiceItemDetail));\r\n setOcPOSItemDetail(tempItem);\r\n\r\n let itemSubTotal = 0;\r\n itemSubTotal = tempItem.reduce((accumulator, object) => { return accumulator + object[\"Gross\"]; }, 0);\r\n\r\n setQty(tempItem.reduce((accumulator, object) => { return accumulator + object[\"ItemQty\"]; }, 0))\r\n setSubTotal(itemSubTotal.toFixed(2));\r\n\r\n let tempCharge = [];\r\n tempCharge = JSON.parse(JSON.stringify(d.data.InvoiceChargeDetail));\r\n setOcPOSTaxDetail(tempCharge);\r\n\r\n let itemNetTotal = 0;\r\n itemNetTotal = tempCharge.reduce((accumulator, object) => { return accumulator + object[\"TaxAmount\"]; }, 0);\r\n\r\n setNetTotal((itemSubTotal + itemNetTotal).toFixed(2))\r\n\r\n let tempSettlement = [];\r\n tempSettlement = JSON.parse(JSON.stringify(d.data.InvoiceSettlementDetail));\r\n setOcPOSSettlementDetail(tempSettlement);\r\n }\r\n });\r\n }, []);\r\n\r\n const handlePrintClick = () => {\r\n let para = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n CheckSerNo: parseInt(posData.objPOSHeaderDetail.CheckSerNo),\r\n IsFromMiniBar: false\r\n };\r\n setActive(true);\r\n UpdatePOSPrintFlag(para).then((d) => {\r\n setActive(false);\r\n if (d.data != undefined) {\r\n if (d.data == \"Done\") {\r\n props.handlePrintClick();\r\n } else {\r\n alert(\"Problem in printing.\");\r\n }\r\n }\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    Check Preview

    \r\n
    \r\n
    \r\n Print\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n ocPOSItemDetail ? ocPOSItemDetail.map((d) =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : null\r\n }\r\n \r\n
    Item NameQtyRateAmount
    \r\n {d.ItemName}\r\n
    \r\n {d.ToppingName != \"\" ?

    d.ToppingName

    : null}\r\n {d.CookingInsName != \"\" ?

    d.CookingInsName

    : null}\r\n
    \r\n
    {d.ItemQty.toFixed(3)}{d.ItemRate.toFixed(2)}{d.Gross.toFixed(2)}
    \r\n
    \r\n
    \r\n
    \r\n
    Qty Total : {qty}
    \r\n
    \r\n
    Sub Total : {subTotal}
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {\r\n ocPOSTaxDetail ? ocPOSTaxDetail.map((d) =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : null\r\n }\r\n \r\n
    {d.ItemDesc}{d.TaxAmount.toFixed(2)}
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Net Total : {netTotal}
    \r\n
    \r\n
    \r\n \r\n \r\n {\r\n ocPOSSettlementDetail ? ocPOSSettlementDetail.map((d) =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : null\r\n }\r\n \r\n
    {d.SettleDate}\r\n {d.ItemDesc}\r\n {/*
    \r\n

    401_0021517_02

    \r\n
    */}\r\n
    {d.SettleAmount.toFixed(2)}
    \r\n\r\n
    \r\n {/*
    \r\n
    \r\n
    \r\n
    \r\n
    Net Total : 1,048.00
    \r\n
    */}\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n )\r\n}","import React, { useState } from \"react\";\r\nimport ReactDOMServer from \"react-dom/server\";\r\nimport ReactDOM from \"react-dom\";\r\nimport {\r\n InnTextbox,\r\n InnTooltip,\r\n InnTableGrid,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n useConfirm,\r\n InnLoader\r\n} from \"../../../component\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { useEffect } from \"react\";\r\nimport {\r\n GetOutletDataBilling, GetOpenTableDetails, InsertPOSItemTableData,\r\n POSTableField, GetTransactionMaster, InsertPOSSettlement, POSSplitQty,\r\n POSTableItemField, GetOutletTableDataBilling, POSTableCloseCheck\r\n} from \"../../../services/posbillingService\";\r\nimport { currentUser } from \"../../../reducer/authSlice\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { TableLookUp } from \"./modalPopup/tableLookupPopup\";\r\nimport {\r\n posCollection, setOutletData, clearOutletData,\r\n setPOSHeaderDetail, setPOSItemDetail, setPOSItemToppingDetail, setPOSTableTotalDetail,\r\n clearOpenTableData, clearPOSItemDetail, updateRateDetail, clearPOSItemDetailSearch,\r\n updateServerDetail, updateTableProfileDetail, updateTableCompanyProfileDetail, updateTableNoOfPax,\r\n updateTableExemption, updateTableMapToToRoomCompanyProfileDetail, updateTableMapToToRoomDetail,\r\n setPOSSettlementDetail, updateTableNameDetail, updateTableAgentProfileDetail, updatePrintFlagDetail, updateTableRoomServiceOutletDetail\r\n} from \"../../../reducer/posSlice\";\r\nimport { RatePopUp } from \"./modalPopup/posRatePopup\";\r\nimport { MandatoryModifierPopup } from \"./modalPopup/madatoryModifierPopup\";\r\nimport { ItemSearchPopup } from \"./modalPopup/itemSearcPopup\";\r\nimport { ServerPopUp } from \"./modalPopup/serverPopup\";\r\nimport { DiscountPopUp } from \"./modalPopup/discountPopup\";\r\nimport { MediaPopUp } from \"./modalPopup/mediaPopup\";\r\nimport { GuestPopUp } from \"./modalPopup/guestPopup\";\r\nimport { CompanyPopUp } from \"./modalPopup/companyPopup\";\r\nimport { ShowDetailsPopUp } from \"./modalPopup/showDetailsPopup\";\r\nimport { ManualRemarksPopUp } from \"./modalPopup/manualRemarksPopup\";\r\nimport { TaxExemptionPopUp } from \"./modalPopup/taxExemptionPopup\";\r\nimport { RoomSettlementPopUp } from \"./modalPopup/roomSettlementPopup\";\r\nimport { NumberkeyPadPopUp } from \"./modalPopup/numberKeypadPopup\";\r\nimport { GetPropertyParameterByKeys } from \"../../../services/reservationService\";\r\nimport { OptionalMadifierPopUp } from \"./modalPopup/optionalModifierPopup\";\r\nimport { FunctionPopUp } from \"./modalPopup/functionPopup\";\r\nimport { SplitTablePopUp } from \"./modalPopup/splitTablePopup\";\r\nimport { BuffurPopUp } from \"./modalPopup/bufferPopup\";\r\nimport { Navigation, Pagination, A11y } from 'swiper';\r\nimport { Scrollbar, FreeMode, Mousewheel } from 'swiper';\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport POSKOT from \"./pos-kot\";\r\nimport { GetPropertyInvoiceDetails } from \"../../../services/generalService\";\r\n\r\nlet selectedOutlet = {};\r\nlet selectedOutletSerNo = 0;\r\nlet selectedTable = 0;\r\nlet selectedTableName = \"\";\r\nlet selectedMenu = 0;\r\nlet selectedMenuCategory = 0;\r\nlet selectedSubMenuCategory = 0;\r\nlet ModeFlag = \"\";\r\nlet KOTNo = \"\";\r\nlet RoomServiceOutlet = {\r\n ReservationSerNo: 0,\r\n RoomSerNo: 0,\r\n GuestProfileSerNo: 0,\r\n CompanyProfileSerNo: 0,\r\n AgentProfileSerNo: 0,\r\n SourceProfileSerNo: 0,\r\n MarketSerNo: 0\r\n}\r\nlet RateDetails = {\r\n RateSerNo: 0,\r\n ReferenceSerNo: 0,\r\n Remarks: \"\",\r\n IsComplimentary: false\r\n}\r\nlet insertPOSItemTable = {\r\n pPOSTableDetail: {},\r\n pPOSItemDetail: [],\r\n pPOSItemTopping: []\r\n}\r\nlet flag = {\r\n IsTableOpenStatus: false,\r\n IsNewItemFlag: false,\r\n ItemFlag: false,\r\n companyType: \"CO\",\r\n}\r\n\r\nexport function POSBilling(props) {\r\n const history = useHistory();\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const dispatch = useDispatch();\r\n const currUser = useSelector(currentUser);\r\n const posData = useSelector(posCollection);\r\n const [isActive, setActive] = useState(false);\r\n const [gridSelectedItem, setGridSelectedItem] = useState([]);\r\n const [temp, settemp] = useState(false);\r\n const [showPOSItemSearchPopup, setShowPOSItemSearchPopup] = useState();\r\n const [showPOSLookupPopup, setShowPOSLookupPopup] = useState();\r\n const [showPOSServerPopup, setShowPOSServerPopup] = useState();\r\n const [showPOSMandatoryModifierPopup, setShowPOSMandatoryModifierPopup] = useState();\r\n const [showPOSDiscountPopup, setShowPOSDiscountPopup] = useState();\r\n const [showPOSRatePopup, setShowPOSRatePopup] = useState();\r\n const [showPOSCompanyPopup, setShowPOSCompanyPopup] = useState();\r\n const [showPOSGuestPopup, setShowPOSGuestPopup] = useState();\r\n const [showPOSShowDetailsPopup, setShowPOSShowDetailsPopup] = useState();\r\n const [showPOSMediaPopup, setShowPOSMediaPopup] = useState();\r\n const [showCancellationRemarkPopup, setShowCancellationRemarkPopup] = useState();\r\n const [showPOSTaxExemptionPopup, setShowPOSTaxExemptionPopup] = useState();\r\n const [showPOSRoomSettlementPopup, setShowPOSRoomSettlementPopup] = useState();\r\n const [showNumberKeyboardPopup, setShowNumberKeyboardPopup] = useState();\r\n const [showPOSOptionalModifierPopup, setShowPOSOptionalModifierPopup] = useState();\r\n const [showPOSFunctionPopup, setShowPOSFunctionPopup] = useState();\r\n const [showPOSSplitBillPopup, setShowPOSSplitBillPopup] = useState();\r\n const [showPOSBufferCheckPopup, setShowPOSBufferCheckPopup] = useState();\r\n const [selectItemSerNo, setSelectItemSerNo] = useState(0);\r\n const [cashTransaction, setCashTransaction] = useState({});\r\n const [roomTransaction, setRoomTransaction] = useState({});\r\n const [subTotalRow, setSubTotalRow] = useState(\"\");\r\n const [AllowTipAmount, setAllowTipAmount] = useState(false);\r\n const [PrintKOTLocationwise, setPrintKOTLocationwise] = useState(\"N\");\r\n const [objMenuMasterData, setObjMenuMasterData] = useState({});\r\n const [ocMenuItemDetail, setOCMenuItemDetail] = useState([]);\r\n const [ocMenuCategoryMaster, setOCMenuCategoryMaster] = useState([]);\r\n const [ocMenuSubCategoryMaster, setOCMenuSubCategoryMaster] = useState([]);\r\n const [unify, setUnify] = useState(\"Unify\");\r\n const [unifyData, setUnifyData] = useState([]);\r\n const [propertyDetails, setPropertyDetails] = useState({});\r\n\r\n useEffect(() => {\r\n HeaderDefaultDataCall();\r\n setActive(true);\r\n GetTransactionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"P\", \"ALL\").then((d) => {\r\n console.log(\"CASh TRabs1 \",d.data);\r\n setActive(false);\r\n if (d.data != undefined) {\r\n d.data.forEach(element => {\r\n if (element.PaymentMethodType == \"CASH\") {\r\n console.log(\"CASh TRabs\",element);\r\n setCashTransaction(element);\r\n } else if (element.PaymentMethodType == \"RS\") {\r\n setRoomTransaction(element);\r\n }\r\n });\r\n }\r\n });\r\n\r\n setActive(true);\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), [\"AllowTipAmount\", \"IsPrintKOTLocation\"]).then((d) => {\r\n setActive(false);\r\n setAllowTipAmount(d.data.find(x => x.key === \"AllowTipAmount\"));\r\n setPrintKOTLocationwise(d.data.find(x => x.key === \"IsPrintKOTLocation\"));\r\n });\r\n\r\n setActive(true);\r\n GetPropertyInvoiceDetails(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setActive(false);\r\n if (d.data != undefined) {\r\n setPropertyDetails(JSON.parse(JSON.stringify(d.data)));\r\n }\r\n })\r\n }, []);\r\n\r\n const HeaderDefaultDataCall = () => {\r\n GetOutletData();\r\n }\r\n\r\n const GetOutletData = () => {\r\n setActive(true);\r\n GetOutletDataBilling(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setActive(false);\r\n if (d.data != undefined) {\r\n dispatch(clearOutletData());\r\n dispatch(setOutletData(d.data));\r\n }\r\n });\r\n }\r\n\r\n const setSelectedItem = (items) => {\r\n setGridSelectedItem(items);\r\n settemp(!temp);\r\n };\r\n\r\n const columHeaderPos = [\r\n { key: \"Item Description\", value: \"ItemName\", details1: \"ToppingName\", details2: \"CookingInsName\", type: \"textdetails\", sorting: \"N\", align: \"left\" },\r\n { key: \"Qty.\", value: \"ItemQty\", type: \"txt\", sorting: \"N\", align: \"center\" },\r\n { key: \"Amount\", value: \"ItemRate\", type: \"txt2Decimal\", sorting: \"Y\", align: \"right\" },\r\n ];\r\n\r\n const LastUpdateTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
      \r\n
    • By Rohan Shah
    • \r\n
    • Date: 25th Sept.
    • \r\n
    • Time: 15:45
    • \r\n
    • PC: 192.168.600.789
    • \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const handleOnRateSelect = (v) => {\r\n setShowPOSRatePopup(false);\r\n if (posData.objPOSHeaderDetail.CheckSerNo === 0) {\r\n RateDetails = v;\r\n if (RateDetails.RateSerNo != 0) {\r\n dispatch(updateRateDetail(RateDetails));\r\n }\r\n setShowPOSGuestPopup(true);\r\n } else {\r\n alertFunction(\"You cannot change rate, Table is already open.\");\r\n RateDetails = {\r\n RateSerNo: 0,\r\n ReferenceSerNo: 0,\r\n Remarks: \"\",\r\n IsComplimentary: false\r\n };\r\n }\r\n }\r\n\r\n const handleTableLookUpClick = () => {\r\n if (flag.IsNewItemFlag === false) {\r\n RateDetails = {\r\n RateSerNo: 0,\r\n ReferenceSerNo: 0,\r\n Remarks: \"\",\r\n IsComplimentary: false\r\n };\r\n setShowPOSLookupPopup(true);\r\n } else {\r\n alertFunction(\"Item does not store.\");\r\n }\r\n }\r\n\r\n const handleTableSelect = (v) => {\r\n flag.IsTableOpenStatus = true;\r\n RoomServiceOutlet = v;\r\n selectedTable = v.TableSerNo;\r\n selectedOutletSerNo = v.OutletSerNo;\r\n selectedTableName = v.TableName;\r\n selectedOutlet = posData.ocOutlet.filter((x) => x.OutletSerNo === v.OutletSerNo);\r\n\r\n GetOpenTableData(v.OutletSerNo, v.TableSerNo);\r\n setShowPOSLookupPopup(false);\r\n };\r\n\r\n const GetOpenTableData = (OutletSerNo, TableSerNo) => {\r\n setActive(true);\r\n GetOpenTableDetails(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo),\r\n parseInt(TableSerNo), parseInt(OutletSerNo), currUser.UserID).then((d) => {\r\n setActive(false);\r\n if (d.data != undefined) {\r\n dispatch(clearOpenTableData());\r\n dispatch(setPOSHeaderDetail(d.data.pPOSTableDetail));\r\n dispatch(setPOSItemDetail(d.data.pPOSItemDetail));\r\n dispatch(setPOSItemToppingDetail(d.data.pPOSItemTopping));\r\n dispatch(setPOSTableTotalDetail(d.data.pPOSItemTotalAmountDetail));\r\n dispatch(setPOSSettlementDetail(d.data.pPOSSettlement));\r\n\r\n // if (RateDetails.RateSerNo != 0) {\r\n // dispatch(updateRateDetail(RateDetails));\r\n // }\r\n\r\n try {\r\n setObjMenuMasterData(posData.ocMenuMasterData.filter((x) => x.OutletSerNo === selectedOutletSerNo)[0]);\r\n selectedMenu = posData.ocMenuMasterData.filter((x) => x?.OutletSerNo === selectedOutletSerNo)[0]?.MenuSerNo;\r\n if (posData.objPOSHeaderDetail.MenuSerNo != 0) {\r\n setOCMenuCategoryMaster(posData.ocMenuCatgeoryData.filter((x) => x?.MenuSerNo === selectedMenu));\r\n\r\n selectedMenuCategory = posData.ocMenuCatgeoryData.filter((x) => x?.MenuSerNo === selectedMenu)[0]?.MenuCategorySerNo;\r\n\r\n setOCMenuSubCategoryMaster(posData.ocMenuSubCategoryData.filter((x) => x?.MenuSerNo === selectedMenu &&\r\n x?.MenuCategorySerNo === selectedMenuCategory));\r\n\r\n selectedSubMenuCategory = posData.ocMenuSubCategoryData.filter((x) => x?.MenuSerNo === selectedMenu &&\r\n x?.MenuCategorySerNo === selectedMenuCategory)[0].MenuSubCategorySerNo;\r\n\r\n setOCMenuItemDetail(posData.ocMenuItemData.filter((x) => x?.MenuSerNo === selectedMenu &&\r\n x?.MenuCategorySerNo === selectedMenuCategory &&\r\n x?.MenuSubCategorySerNo === selectedSubMenuCategory));\r\n }\r\n } catch (ex) {\r\n\r\n }\r\n\r\n if (selectedOutlet[0].IsRoomServiceOutlet === true) {\r\n if (d.data.pPOSTableDetail.CheckSerNo === 0) {\r\n if (RoomServiceOutlet.ReservationSerNo != 0) {\r\n dispatch(updateTableRoomServiceOutletDetail(RoomServiceOutlet));\r\n }\r\n }\r\n }\r\n\r\n if (selectedOutlet[0].IsPrintKOT === true) {\r\n\r\n }\r\n\r\n flag.ItemFlag = true;\r\n flag.IsNewItemFlag = false;\r\n setUnify(\"Unify\");\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n if (d.data.pPOSTableDetail.CheckSerNo == 0) {\r\n dispatch(updateTableNameDetail(selectedTableName));\r\n }\r\n }\r\n });\r\n };\r\n\r\n const MenuCategorySelectionChange = (e) => {\r\n selectedMenuCategory = e.target.id;\r\n let objCatgeory = [];\r\n try {\r\n objCatgeory = posData.ocMenuSubCategoryData.filter((x) => x.MenuSerNo == selectedMenu &&\r\n x.MenuCategorySerNo == selectedMenuCategory);\r\n setOCMenuSubCategoryMaster(objCatgeory);\r\n selectedSubMenuCategory = objCatgeory[0].MenuSubCategorySerNo;\r\n let objItem = [];\r\n objItem = posData.ocMenuItemData.filter((x) => x.MenuSerNo == selectedMenu &&\r\n x.MenuCategorySerNo == selectedMenuCategory &&\r\n x.MenuSubCategorySerNo == selectedSubMenuCategory);\r\n setOCMenuItemDetail(objItem);\r\n } catch {\r\n }\r\n };\r\n\r\n const MenuSubCategorySelectionChange = (e) => {\r\n selectedSubMenuCategory = e.target.id;\r\n let objItem = [];\r\n objItem = posData.ocMenuItemData.filter((x) => x.MenuSerNo == selectedMenu &&\r\n x.MenuCategorySerNo == selectedMenuCategory &&\r\n x.MenuSubCategorySerNo == selectedSubMenuCategory);\r\n setOCMenuItemDetail(objItem);\r\n };\r\n\r\n useEffect(() => {\r\n openModifierPopup();\r\n }, [selectItemSerNo]);\r\n\r\n const openModifierPopup = () => {\r\n if (flag.ItemFlag) {\r\n setShowPOSMandatoryModifierPopup(true);\r\n }\r\n };\r\n\r\n const handleItemClick = (e, cancelRemarks) => {\r\n if (flag.IsTableOpenStatus) {\r\n if (posData.objPOSHeaderDetail.IsPrinted === true) {\r\n alertFunction(\"Bill is printed.\");\r\n return;\r\n }\r\n flag.IsNewItemFlag = true;\r\n let selectedItemSerNo = e.ItemSerNo;\r\n let selectedItem = {};\r\n let objItem = {};\r\n\r\n if (ModeFlag == \"Qty\") {\r\n selectedItem = posData.ocMenuItemData.filter((x) => x.MenuSerNo == selectedMenu &&\r\n x.ItemSerNo == selectedItemSerNo)[0];\r\n } else if (ModeFlag == \"Cancel\") {\r\n selectedItem = posData.ocMenuItemData.filter((x) => x.MenuSerNo == selectedMenu &&\r\n x.ItemSerNo == selectedItemSerNo)[0];\r\n } else {\r\n selectedItem = posData.ocMenuItemData.filter((x) => x.MenuSerNo == selectedMenu &&\r\n x.MenuCategorySerNo == selectedMenuCategory &&\r\n x.MenuSubCategorySerNo == selectedSubMenuCategory &&\r\n x.ItemSerNo == selectedItemSerNo)[0];\r\n }\r\n\r\n if (posData.ocMenuItemTopping.filter((x) => x.ItemSerNo == selectedItemSerNo).length != 0 && ModeFlag != \"Cancel\") {\r\n if (selectItemSerNo === selectedItemSerNo) {\r\n openModifierPopup();\r\n } else {\r\n setSelectItemSerNo(selectedItemSerNo);\r\n }\r\n } else {\r\n let ItemQty = 0;\r\n let CancelCheckItemSerNo = 0;\r\n if (ModeFlag == \"Qty\") {\r\n ItemQty = parseInt(subTotalRow.split(\":\")[1].trim());\r\n } else if (ModeFlag == \"Cancel\") {\r\n CancelCheckItemSerNo = e.CheckItemSerNo;\r\n if (subTotalRow.split(\":\")[1].trim() != \"\") {\r\n ItemQty = parseInt(subTotalRow.split(\":\")[1].trim()) * -1;\r\n } else {\r\n ItemQty = e.ItemQty * -1;\r\n }\r\n } else {\r\n ItemQty = 1;\r\n }\r\n\r\n let ItemRate = \"0\";\r\n if (posData.objPOSHeaderDetail.IsComplimentary === true) {\r\n ItemRate = selectedItem.CostRate.toFixed(2);\r\n } else {\r\n ItemRate = selectedItem.RegularRate.toFixed(2);\r\n }\r\n\r\n objItem = {\r\n CheckSerNo: 0,\r\n CheckItemSerNo: 0,\r\n KOTNo: 0,\r\n ItemSerNo: parseInt(selectedItemSerNo),\r\n ItemName: selectedItem.Name,\r\n ItemQty: ItemQty,\r\n ItemRate: parseFloat(ItemRate),\r\n ToppingSerNo: 0,\r\n CookingInsName: \"\",\r\n ToppingName: \"\",\r\n UserID: currUser.UserID,\r\n ItemGroupSerNo: selectedItem.ItemGroupSerNo,\r\n ItemSubGroupSerNo: selectedItem.ItemSubGroupSerNo,\r\n DiscountAmt: 0,\r\n IsPercentage: false,\r\n CancelCheckItemSerNo: CancelCheckItemSerNo,\r\n CancelRemarks: cancelRemarks,\r\n ManKOTNo: \"0\",\r\n IsNewItem: true\r\n };\r\n\r\n let objSelectedItem = [];\r\n if (posData.ocPOSItemDetail != undefined) {\r\n objSelectedItem = JSON.parse(JSON.stringify(posData.ocPOSItemDetail));\r\n }\r\n dispatch(clearPOSItemDetail());\r\n\r\n if (objSelectedItem.filter((x) => x.ItemSerNo == selectedItemSerNo && x.IsNewItem === true).length == 0) {\r\n objSelectedItem.push(objItem);\r\n } else if (objSelectedItem.filter((x) => x.ItemSerNo == selectedItemSerNo && x.IsNewItem === true).length != 0) {\r\n objSelectedItem.forEach(element => {\r\n if (element.ItemSerNo == selectedItemSerNo && element.IsNewItem === true) {\r\n if (ModeFlag == \"Qty\") {\r\n element.ItemQty = element.ItemQty + parseInt(subTotalRow.split(\":\")[1].trim());\r\n } else if (ModeFlag == \"Cancel\") {\r\n element.ItemQty = element.ItemQty + (parseInt(subTotalRow.split(\":\")[1].trim()) * -1);\r\n } else {\r\n element.ItemQty = element.ItemQty + 1;\r\n }\r\n }\r\n });\r\n }\r\n\r\n dispatch(setPOSItemDetail(objSelectedItem));\r\n let objTotal = {\r\n TotalQty: 0,\r\n TotalAmount: 0.00\r\n }\r\n objSelectedItem.forEach(element => {\r\n objTotal.TotalQty = objTotal.TotalQty + element.ItemQty;\r\n objTotal.TotalAmount = objTotal.TotalAmount + (element.ItemQty * element.ItemRate);\r\n });\r\n\r\n dispatch(setPOSTableTotalDetail(objTotal));\r\n setUnify(\"Unify\");\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n }\r\n }\r\n };\r\n\r\n const handleOnMandatoryModifier = (v) => {\r\n try {\r\n setShowPOSMandatoryModifierPopup(false);\r\n let selectedItemSerNo = v.ItemSerNo;\r\n let selectedItem = {};\r\n let objItem = {};\r\n\r\n selectedItem = posData.ocMenuItemData.filter((x) => x.MenuSerNo == selectedMenu &&\r\n x.MenuCategorySerNo == selectedMenuCategory &&\r\n x.MenuSubCategorySerNo == selectedSubMenuCategory &&\r\n x.ItemSerNo == selectedItemSerNo)[0];\r\n\r\n let ItemRate = \"0\";\r\n if (posData.objPOSHeaderDetail.IsComplimentary === true) {\r\n ItemRate = selectedItem.CostRate.toFixed(2);\r\n } else {\r\n ItemRate = selectedItem.RegularRate.toFixed(2);\r\n }\r\n\r\n objItem = {\r\n CheckSerNo: 0,\r\n CheckItemSerNo: 0,\r\n KOTNo: 0,\r\n ItemSerNo: parseInt(selectedItemSerNo),\r\n ItemName: selectedItem.Name,\r\n ItemQty: 1,\r\n ItemRate: parseFloat(ItemRate),\r\n ToppingSerNo: 0,\r\n CookingInsName: \"\",\r\n ToppingName: v.ToppingName,\r\n UserID: currUser.UserID,\r\n ItemGroupSerNo: selectedItem.ItemGroupSerNo,\r\n ItemSubGroupSerNo: selectedItem.ItemSubGroupSerNo,\r\n DiscountAmt: 0,\r\n IsPercentage: false,\r\n CancelCheckItemSerNo: 0,\r\n CancelRemarks: \"\",\r\n ManKOTNo: \"0\",\r\n IsNewItem: true\r\n };\r\n\r\n let objSelectedItem = [];\r\n if (posData.ocPOSItemDetail != undefined) {\r\n objSelectedItem = JSON.parse(JSON.stringify(posData.ocPOSItemDetail));\r\n }\r\n dispatch(clearPOSItemDetail());\r\n\r\n if (objSelectedItem.filter((x) => x.ItemSerNo == selectedItemSerNo && x.IsNewItem === true && x.ToppingName == v.ToppingName).length == 0) {\r\n objSelectedItem.push(objItem);\r\n dispatch(setPOSItemToppingDetail(v.selectedModifier));\r\n } else if (objSelectedItem.filter((x) => x.ItemSerNo == selectedItemSerNo && x.IsNewItem === true && x.ToppingName == v.ToppingName).length != 0) {\r\n objSelectedItem.forEach(element => {\r\n if (element.ItemSerNo == selectedItemSerNo && element.IsNewItem === true && element.ToppingName == v.ToppingName) {\r\n element.ItemQty = element.ItemQty + 1\r\n }\r\n });\r\n }\r\n\r\n dispatch(setPOSItemDetail(objSelectedItem));\r\n let objTotal = {\r\n TotalQty: 0,\r\n TotalAmount: 0.00\r\n }\r\n objSelectedItem.forEach(element => {\r\n objTotal.TotalQty = objTotal.TotalQty + element.ItemQty;\r\n objTotal.TotalAmount = objTotal.TotalAmount + (element.ItemQty * element.ItemRate);\r\n });\r\n\r\n dispatch(setPOSTableTotalDetail(objTotal));\r\n } catch (e) {\r\n\r\n }\r\n };\r\n\r\n const handleStoreItem = () => {\r\n if (selectedOutlet[0].IsAllowManualKOT) {\r\n ModeFlag = \"ManualKOT\";\r\n setShowNumberKeyboardPopup(true);\r\n } else {\r\n insertPOSItemTable = {\r\n pPOSTableDetail: posData.objPOSHeaderDetail,\r\n pPOSItemDetail: posData.ocPOSItemDetail,\r\n pPOSItemTopping: posData.ocPOSItemToppingDetail\r\n };\r\n\r\n InsertPOSItemTableData(insertPOSItemTable).then((d) => {\r\n if (d.data != undefined) {\r\n if (d.data.ErrorMessage == \"Done\") {\r\n console.log(\"Insert Data : \", d.data);\r\n dispatch(clearOpenTableData());\r\n dispatch(setPOSHeaderDetail(d.data.pPOSTableDetail));\r\n dispatch(setPOSItemDetail(d.data.pPOSItemDetail));\r\n dispatch(setPOSItemToppingDetail(d.data.pPOSItemTopping));\r\n dispatch(setPOSTableTotalDetail(d.data.pPOSItemTotalAmountDetail));\r\n dispatch(setPOSSettlementDetail(d.data.pPOSSettlement));\r\n\r\n flag.ItemFlag = true;\r\n flag.IsNewItemFlag = false;\r\n KOTNo = d.data.KOTNo;\r\n setUnify(\"Unify\");\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n if (d.data.pPOSTableDetail.CheckSerNo == 0) {\r\n dispatch(updateTableNameDetail(selectedTableName));\r\n }\r\n\r\n GetOpenTableData(selectedOutletSerNo, selectedTable);\r\n // if (selectedOutlet[0].IsPrintKOT === true) {\r\n // if (KOTNo != \"\") {\r\n // let htmlstring = \"\"\r\n // let objPrint = [];\r\n // try {\r\n // let NoOfPrintKOT = selectedOutlet[0].NoOfPrintKOT;\r\n\r\n // if (selectedOutlet[0].IsDeptWiseKOTPrint === true) {\r\n // const uniqueLocation = [];\r\n // const uniqueLocation1 = [];\r\n\r\n // try {\r\n // d.data.pPOSItemDetail.filter((x) => x.KOTNo === KOTNo).map(img => {\r\n // if (uniqueLocation.indexOf(img.LocationSerNo) === -1) {\r\n // let objLocation = {\r\n // LocationSerNo: 0,\r\n // printerName: \"\",\r\n // LocationName: \"\"\r\n // }\r\n // objLocation.LocationSerNo = img.LocationSerNo;\r\n // objLocation.printerName = img.KOTPrinter;\r\n // objLocation.LocationName = img.LocationName;\r\n // uniqueLocation.push(img.LocationSerNo);\r\n // uniqueLocation1.push(objLocation);\r\n // }\r\n // });\r\n // } catch (e) {\r\n // alert(\"Problem to select printer.\");\r\n // }\r\n\r\n // for (let i = 0; i < uniqueLocation.length; i++) {\r\n // htmlstring = \"\";\r\n // try {\r\n // htmlstring = \"\";\r\n // htmlstring = ReactDOMServer.renderToString(\r\n // x.LocationSerNo === uniqueLocation[i])[0].LocationName,\r\n // \"pPOSTableDetail\": d.data.pPOSTableDetail,\r\n // \"pPOSItemDetail\": d.data.pPOSItemDetail.filter((x) => x.KOTNo === KOTNo && x.LocationSerNo === uniqueLocation[i]),\r\n // \"pPropertyDetails\": propertyDetails,\r\n // \"User\": currUser.UserID\r\n // }}>\r\n // );\r\n // } catch (err) {\r\n // console.log(err)\r\n // htmlstring = \"\";\r\n // alert(\"Problem to generate KOT.\");\r\n // }\r\n\r\n // try {\r\n // for (let j = 0; j < NoOfPrintKOT; j++) {\r\n // let obj = {\r\n // printerName: \"\",\r\n // html: \"\"\r\n // };\r\n // obj.printerName = uniqueLocation1.filter((x) => x.LocationSerNo === uniqueLocation[i])[0].printerName;\r\n // obj.html = htmlstring;\r\n // objPrint.push(obj);\r\n // }\r\n // } catch (e1) {\r\n // alert(\"Problem to print KOT.\");\r\n // }\r\n // }\r\n // } else {\r\n // const uniqueKOTPrinter = [];\r\n // htmlstring = \"\";\r\n\r\n // try {\r\n // d.data.pPOSItemDetail.filter((x) => x.KOTNo === KOTNo).map(img => {\r\n // if (uniqueKOTPrinter.indexOf(img.KOTPrinter) === -1) {\r\n // uniqueKOTPrinter.push(img.KOTPrinter);\r\n // }\r\n // });\r\n // } catch (e) {\r\n // }\r\n\r\n // try {\r\n // htmlstring = ReactDOMServer.renderToString(\r\n // x.KOTNo === KOTNo),\r\n // \"pPropertyDetails\": propertyDetails,\r\n // \"User\": currUser.UserID\r\n // }}>\r\n // );\r\n // } catch (err) {\r\n // console.log(err)\r\n // htmlstring = \"\";\r\n // alert(\"Problem to generate KOT.\");\r\n // }\r\n\r\n // try {\r\n // for (let j = 0; j < NoOfPrintKOT; j++) {\r\n // let obj = {\r\n // printerName: \"\",\r\n // html: \"\"\r\n // };\r\n // obj.printerName = uniqueKOTPrinter.toString();\r\n // obj.html = htmlstring;\r\n // objPrint.push(obj);\r\n // }\r\n // } catch (e1) {\r\n // alert(\"Problem to print KOT.\");\r\n // }\r\n // }\r\n\r\n // if (PrintKOTLocationwise === \"Y\") {\r\n // const uniqueKOTPrinter2 = [];\r\n\r\n // try {\r\n // d.data.pPOSItemDetail.filter((x) => x.KOTNo === KOTNo).map(img => {\r\n // if (uniqueKOTPrinter2.indexOf(img.KOTPrinter2) === -1) {\r\n // uniqueKOTPrinter2.push(img.KOTPrinter2);\r\n // }\r\n // });\r\n // } catch (e) {\r\n // }\r\n\r\n // if (uniqueKOTPrinter2.length > 0) {\r\n // htmlstring = \"\";\r\n\r\n // try {\r\n // htmlstring = ReactDOMServer.renderToString(\r\n // x.KOTNo === KOTNo),\r\n // \"pPropertyDetails\": propertyDetails,\r\n // \"User\": currUser.UserID\r\n // }}>\r\n // );\r\n // } catch (err) {\r\n // console.log(err)\r\n // htmlstring = \"\";\r\n // alert(\"Problem to generate KOT.\");\r\n // }\r\n\r\n // try {\r\n // for (let j = 0; j < NoOfPrintKOT; j++) {\r\n // let obj = {\r\n // printerName: \"\",\r\n // html: \"\"\r\n // };\r\n // obj.printerName = uniqueKOTPrinter2.toString();\r\n // obj.html = htmlstring;\r\n // objPrint.push(obj);\r\n // }\r\n // } catch (e1) {\r\n // alert(\"Problem to print KOT.\");\r\n // }\r\n // }\r\n // }\r\n // } catch (e) {\r\n // console.log(e);\r\n // }\r\n\r\n // try {\r\n // const { ipcRenderer } = window.require('electron');\r\n // ipcRenderer.send('get_data', JSON.stringify(objPrint));\r\n // } catch (error) {\r\n // console.log(error)\r\n // }\r\n // }\r\n // }\r\n }\r\n }\r\n });\r\n }\r\n };\r\n\r\n const handleRateonClick = () => {\r\n if (flag.IsTableOpenStatus) {\r\n if (posData.objPOSHeaderDetail.CheckSerNo == 0) {\r\n setShowPOSRatePopup(true);\r\n } else {\r\n alertFunction(\"You cannot change Rate, Table is already open.\");\r\n }\r\n } else {\r\n alertFunction(\"Please select the table.\");\r\n }\r\n };\r\n\r\n const handleItemSearchonClick = () => {\r\n if (flag.IsTableOpenStatus) {\r\n if (posData.objPOSHeaderDetail.IsPrinted === true) {\r\n alertFunction(\"Bill is printed.\");\r\n return;\r\n }\r\n setShowPOSItemSearchPopup(true);\r\n } else {\r\n alertFunction(\"Please select the table.\");\r\n }\r\n };\r\n\r\n const handleOnCloseItemSearch = () => {\r\n dispatch(setPOSItemDetail(posData.ocPOSItemDetailSearch));\r\n dispatch(setPOSItemToppingDetail(posData.ocPOSItemToppingDetailSearch));\r\n let objTotal = {\r\n TotalQty: 0,\r\n TotalAmount: 0.00\r\n }\r\n posData.ocPOSItemDetailSearch.forEach(element => {\r\n objTotal.TotalQty = objTotal.TotalQty + element.ItemQty;\r\n objTotal.TotalAmount = objTotal.TotalAmount + (element.ItemQty * element.ItemRate);\r\n });\r\n dispatch(clearPOSItemDetailSearch());\r\n setShowPOSItemSearchPopup(false);\r\n };\r\n\r\n const handleServerOnClick = () => {\r\n if (flag.IsTableOpenStatus) {\r\n if (posData.objPOSHeaderDetail.IsPrinted === true) {\r\n alertFunction(\"Bill is printed.\");\r\n return;\r\n }\r\n if (flag.IsNewItemFlag === false) {\r\n setShowPOSServerPopup(true);\r\n } else {\r\n alertFunction(\"Item does not store.\");\r\n }\r\n } else {\r\n alertFunction(\"Please select the table.\");\r\n }\r\n };\r\n\r\n const handleOnServerClose = (v) => {\r\n if (v != undefined) {\r\n dispatch(updateServerDetail(v));\r\n if (posData.objPOSHeaderDetail.CheckSerNo != 0) {\r\n let para = {};\r\n para = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n CheckSerNo: parseInt(posData.objPOSHeaderDetail.CheckSerNo),\r\n TableName: \"pPOSTable\",\r\n FieldName: \"ServerSerNo\",\r\n FieldValue: v.ServerSerNo.toString()\r\n }\r\n\r\n setActive(true);\r\n POSTableField(para).then((d) => {\r\n setActive(false);\r\n if (d.data != undefined) {\r\n if (d.data.Code === \"200\") {\r\n alertFunction(\"Server is updated.\")\r\n } else {\r\n if (d.data.Message == \"printed\") {\r\n alertFunction(\"Table is all ready printed, please refresh your page ...\");\r\n } else {\r\n alertFunction(\"Server not exists, please try again.\");\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n setShowPOSServerPopup(false);\r\n };\r\n\r\n const handleDiscountOnClick = () => {\r\n if (flag.IsTableOpenStatus) {\r\n if (posData.objPOSHeaderDetail.IsPrinted === true) {\r\n alertFunction(\"Bill is printed.\");\r\n return;\r\n }\r\n if (flag.IsNewItemFlag === false) {\r\n if (posData.objPOSHeaderDetail.IsPrinted === false) {\r\n setShowPOSDiscountPopup(true);\r\n } else {\r\n alertFunction(\"Bill is printed ...\");\r\n }\r\n } else {\r\n alertFunction(\"Item does not store.\");\r\n }\r\n } else {\r\n alertFunction(\"Please select the table.\");\r\n }\r\n };\r\n\r\n const handleDiscountOnClose = () => {\r\n if (posData.objPOSHeaderDetail.CheckSerNo != 0) {\r\n GetOpenTableData(selectedOutletSerNo, selectedTable);\r\n }\r\n setShowPOSDiscountPopup(false);\r\n };\r\n\r\n const handleMediaClick = () => {\r\n if (flag.IsTableOpenStatus) {\r\n if (flag.IsNewItemFlag === false) {\r\n setShowPOSMediaPopup(true);\r\n } else {\r\n alertFunction(\"Item does not store.\");\r\n }\r\n } else {\r\n alertFunction(\"Please select the table.\");\r\n }\r\n };\r\n\r\n const handleMediaSaveClick = (v) => {\r\n if (v.Tip == \"\") {\r\n v.Tip = \"0.00\";\r\n }\r\n if (v.selectedPayMode.PaymentMethodType == \"RS\") {\r\n setShowPOSMediaPopup(false);\r\n setUnify(\"Unify\");\r\n ModeFlag = \"Media\";\r\n setShowPOSRoomSettlementPopup(true);\r\n } else {\r\n let roomSettlement = 0;\r\n if (posData.ocPOSSettlementDetail.length > 0) {\r\n roomSettlement = posData.ocPOSSettlementDetail.filter((x) => x.PaymentMethodType == \"RS\").length;\r\n } else {\r\n roomSettlement = 0;\r\n }\r\n\r\n if (roomSettlement == 0) {\r\n let settleAmount = 0\r\n if (subTotalRow == undefined || subTotalRow == \"\") {\r\n settleAmount = parseFloat(posData.objPOSTableTotalDetail.TotalAmount);\r\n } else {\r\n settleAmount = parseFloat(subTotalRow);\r\n }\r\n\r\n let para = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"CheckSerNo\": parseInt(posData.objPOSHeaderDetail.CheckSerNo),\r\n \"TransactionSerNo\": parseInt(v.selectedPayMode.TransactionSerNo),\r\n \"CompanyProfileSerNo\": parseInt(posData.objPOSHeaderDetail.CompanyProfileSerNo),\r\n \"UserID\": currUser.UserID,\r\n \"SlipNo\": v.SlipNo,\r\n \"RoomSerNo\": 0,\r\n \"Amount\": settleAmount.toFixed(2),\r\n \"TipAmount\": v.Tip,\r\n \"EmployeeSerNo\": 0,\r\n \"ReservationSerNo\": 0,\r\n \"CreditMachineSerNo\": parseInt(v.CardMachine.key)\r\n }\r\n\r\n setActive(true);\r\n InsertPOSSettlement(para).then((d) => {\r\n setActive(false);\r\n if (d.data != undefined) {\r\n if (d.data.IsClosed == \"FolioPrint\") {\r\n alertFunction(\"Folio has been printed\");\r\n } else if (d.data.IsClosed == \"CheckOut\") {\r\n alertFunction(\"Folio has been checkout\");\r\n } else if (d.data.IsClosed == \"room\") {\r\n alertFunction(\"Folio or Room not found\");\r\n } else if (d.data.IsClosed == \"TFC_APPLY\") {\r\n alertFunction(\"Please remove Transfer Folio from window and try again.\");\r\n } else if (d.data.IsClosed == \"Err\") {\r\n alertFunction(\"Settlement not done\");\r\n } else {\r\n alertFunction(\"Payment Sucess\");\r\n GetOpenTableData(selectedOutletSerNo, selectedTable);\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n alertFunction(\"Room Settlement already done. so part payment not allow.\");\r\n }\r\n setShowPOSMediaPopup(false);\r\n }\r\n };\r\n\r\n const handleCashOnClick = () => {\r\n if (flag.IsTableOpenStatus) {\r\n if (flag.IsNewItemFlag === false) {\r\n if (posData.objPOSHeaderDetail.IsComplimentary === true) {\r\n alertFunction(\"Only complimentary settlement allow.\");\r\n } else {\r\n if (AllowTipAmount) {\r\n setUnify(\"Unify\");\r\n ModeFlag = \"CashTip\";\r\n setShowNumberKeyboardPopup(true);\r\n } else {\r\n let roomSettlement = 0;\r\n if (posData.ocPOSSettlementDetail.length > 0) {\r\n roomSettlement = posData.ocPOSSettlementDetail.filter((x) => x.PaymentMethodType == \"RS\").length;\r\n } else {\r\n roomSettlement = 0;\r\n }\r\n\r\n if (roomSettlement == 0) {\r\n if (cashTransaction != undefined) {\r\n let settleAmount = 0\r\n if (subTotalRow == undefined || subTotalRow == \"\") {\r\n settleAmount = parseFloat(posData.objPOSTableTotalDetail.TotalAmount);\r\n } else {\r\n settleAmount = parseFloat(subTotalRow);\r\n }\r\n let para = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"CheckSerNo\": parseInt(posData.objPOSHeaderDetail.CheckSerNo),\r\n \"TransactionSerNo\": parseInt(cashTransaction.TransactionSerNo),\r\n \"CompanyProfileSerNo\": parseInt(posData.objPOSHeaderDetail.CompanyProfileSerNo),\r\n \"UserID\": currUser.UserID,\r\n \"SlipNo\": \"\",\r\n \"RoomSerNo\": 0,\r\n \"Amount\": settleAmount.toFixed(2),\r\n \"TipAmount\": \"0.00\",\r\n \"EmployeeSerNo\": 0,\r\n \"ReservationSerNo\": 0,\r\n \"CreditMachineSerNo\": 0\r\n }\r\n\r\n InsertPOSSettlement(para).then((d) => {\r\n if (d.data != undefined) {\r\n if (d.data.IsClosed == \"FolioPrint\") {\r\n alertFunction(\"Folio has been printed\");\r\n } else if (d.data.IsClosed == \"CheckOut\") {\r\n alertFunction(\"Folio has been checkout\");\r\n } else if (d.data.IsClosed == \"room\") {\r\n alertFunction(\"Folio or Room not found\");\r\n } else if (d.data.IsClosed == \"TFC_APPLY\") {\r\n alertFunction(\"Please remove Transfer Folio from window and try again.\");\r\n } else if (d.data.IsClosed == \"Err\") {\r\n alertFunction(\"Settlement not done\");\r\n } else {\r\n alertFunction(\"Payment Sucess\");\r\n GetOpenTableData(selectedOutletSerNo, selectedTable);\r\n }\r\n }\r\n });\r\n setUnify(\"Unify\");\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n }\r\n } else {\r\n alertFunction(\"Room Settlement already done. so part payment not allow.\");\r\n }\r\n }\r\n }\r\n } else {\r\n alertFunction(\"Item does not store.\");\r\n }\r\n } else {\r\n alertFunction(\"Please select the table.\");\r\n }\r\n };\r\n\r\n const handleNumpadSaveClick = (v) => {\r\n setShowNumberKeyboardPopup(false);\r\n if (ModeFlag == \"CashTip\") {\r\n let roomSettlement = 0;\r\n if (posData.ocPOSSettlementDetail.length > 0) {\r\n roomSettlement = posData.ocPOSSettlementDetail.filter((x) => x.PaymentMethodType == \"RS\").length;\r\n } else {\r\n roomSettlement = 0;\r\n }\r\n\r\n if (roomSettlement == 0) {\r\n if (cashTransaction != undefined) {\r\n let settleAmount = 0\r\n if (subTotalRow == undefined || subTotalRow == \"\") {\r\n settleAmount = parseFloat(posData.objPOSTableTotalDetail.TotalAmount);\r\n } else {\r\n settleAmount = parseFloat(subTotalRow);\r\n }\r\n let para = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"CheckSerNo\": parseInt(posData.objPOSHeaderDetail.CheckSerNo),\r\n \"TransactionSerNo\": parseInt(cashTransaction.TransactionSerNo),\r\n \"CompanyProfileSerNo\": parseInt(posData.objPOSHeaderDetail.CompanyProfileSerNo),\r\n \"UserID\": currUser.UserID,\r\n \"SlipNo\": \"\",\r\n \"RoomSerNo\": 0,\r\n \"Amount\": settleAmount.toFixed(2),\r\n \"TipAmount\": v.toString(),\r\n \"EmployeeSerNo\": 0,\r\n \"ReservationSerNo\": 0,\r\n \"CreditMachineSerNo\": 0\r\n }\r\n\r\n InsertPOSSettlement(para).then((d) => {\r\n if (d.data != undefined) {\r\n if (d.data.IsClosed == \"FolioPrint\") {\r\n alertFunction(\"Folio has been printed\");\r\n } else if (d.data.IsClosed == \"CheckOut\") {\r\n alertFunction(\"Folio has been checkout\");\r\n } else if (d.data.IsClosed == \"room\") {\r\n alertFunction(\"Folio or Room not found\");\r\n } else if (d.data.IsClosed == \"TFC_APPLY\") {\r\n alertFunction(\"Please remove Transfer Folio from window and try again.\");\r\n } else if (d.data.IsClosed == \"Err\") {\r\n alertFunction(\"Settlement not done\");\r\n } else {\r\n alertFunction(\"Payment Sucess\");\r\n GetOpenTableData(selectedOutletSerNo, selectedTable);\r\n }\r\n }\r\n });\r\n }\r\n } else {\r\n alertFunction(\"Room Settlement already done. so part payment not allow.\");\r\n }\r\n } else if (ModeFlag == \"ManualKOT\") {\r\n let objSelectedItem = [];\r\n if (posData.ocPOSItemDetail != undefined) {\r\n objSelectedItem = JSON.parse(JSON.stringify(posData.ocPOSItemDetail));\r\n }\r\n\r\n objSelectedItem.forEach(element => {\r\n if (element.IsNewItem === true) {\r\n element.ManKOTNo = v.toString();\r\n }\r\n });\r\n\r\n let insertPOSItemTable = {\r\n pPOSTableDetail: posData.objPOSHeaderDetail,\r\n pPOSItemDetail: objSelectedItem,\r\n pPOSItemTopping: posData.ocPOSItemToppingDetail\r\n };\r\n\r\n InsertPOSItemTableData(insertPOSItemTable).then((d) => {\r\n if (d.data != undefined) {\r\n GetOpenTableData(selectedOutletSerNo, selectedTable);\r\n }\r\n });\r\n }\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n };\r\n\r\n const handleGuestOnClick = () => {\r\n if (flag.IsTableOpenStatus) {\r\n if (flag.IsNewItemFlag === false) {\r\n setShowPOSGuestPopup(true);\r\n } else {\r\n alertFunction(\"Item does not store.\");\r\n }\r\n } else {\r\n alertFunction(\"Please select the table.\");\r\n }\r\n };\r\n\r\n const handleGuestOnClose = (v) => {\r\n if (v.ProfileSerNo != undefined) {\r\n dispatch(updateTableProfileDetail(v));\r\n if (posData.objPOSHeaderDetail.CheckSerNo != 0) {\r\n let para = {};\r\n para = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n CheckSerNo: parseInt(posData.objPOSHeaderDetail.CheckSerNo),\r\n TableName: \"pPOSTable\",\r\n FieldName: \"ProfileSerNo\",\r\n FieldValue: v.ProfileSerNo.toString()\r\n }\r\n\r\n POSTableField(para).then((d) => {\r\n if (d.data != undefined) {\r\n if (d.data.Code === \"200\") {\r\n alertFunction(\"Profile is updated.\")\r\n }\r\n }\r\n })\r\n }\r\n }\r\n setShowPOSGuestPopup(false);\r\n };\r\n\r\n const handleCompanyOnClick = () => {\r\n if (flag.IsTableOpenStatus) {\r\n if (posData.objPOSHeaderDetail.IsPrinted === true) {\r\n alertFunction(\"Bill is printed.\");\r\n return;\r\n }\r\n if (flag.IsNewItemFlag === false) {\r\n flag.companyType = \"CO\";\r\n setShowPOSCompanyPopup(true);\r\n } else {\r\n alertFunction(\"Item does not store.\");\r\n }\r\n } else {\r\n alertFunction(\"Please select the table.\");\r\n }\r\n };\r\n\r\n const handleCompnayOnClose = (v) => {\r\n if (v.ProfileSerNo != undefined) {\r\n if (flag.companyType == \"CO\") {\r\n dispatch(updateTableCompanyProfileDetail(v));\r\n if (posData.objPOSHeaderDetail.CheckSerNo != 0) {\r\n let para = {};\r\n para = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n CheckSerNo: parseInt(posData.objPOSHeaderDetail.CheckSerNo),\r\n TableName: \"pPOSTable\",\r\n FieldName: \"CompanyProfileSerNo\",\r\n FieldValue: v.ProfileSerNo.toString()\r\n }\r\n\r\n setActive(true);\r\n POSTableField(para).then((d) => {\r\n setActive(false);\r\n if (d.data != undefined) {\r\n if (d.data.Code === \"200\") {\r\n alertFunction(\"Company profile is updated.\")\r\n } else {\r\n if (d.data.Message == \"printed\") {\r\n alertFunction(\"Table is all ready printed, please refresh your page ...\");\r\n } else {\r\n alertFunction(\"Problem to update company, please try again.\");\r\n }\r\n }\r\n }\r\n })\r\n }\r\n } else if (flag.companyType == \"AG\") {\r\n dispatch(updateTableAgentProfileDetail(v));\r\n if (posData.objPOSHeaderDetail.CheckSerNo != 0) {\r\n let para = {};\r\n para = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n CheckSerNo: parseInt(posData.objPOSHeaderDetail.CheckSerNo),\r\n TableName: \"pPOSTable\",\r\n FieldName: \"AgentProfileSerNo\",\r\n FieldValue: v.ProfileSerNo.toString()\r\n }\r\n\r\n setActive(true);\r\n POSTableField(para).then((d) => {\r\n setActive(false);\r\n if (d.data != undefined) {\r\n if (d.data.Code === \"200\") {\r\n alertFunction(\"Agent profile is updated.\")\r\n } else {\r\n if (d.data.Message == \"printed\") {\r\n alertFunction(\"Table is all ready printed, please refresh your page ...\");\r\n } else {\r\n alertFunction(\"Problem to update agent, please try again.\");\r\n }\r\n }\r\n }\r\n })\r\n }\r\n }\r\n }\r\n setShowPOSCompanyPopup(false);\r\n };\r\n\r\n const handleShowDetailsOnClick = () => {\r\n if (flag.IsTableOpenStatus) {\r\n if (flag.IsNewItemFlag === false) {\r\n setShowPOSShowDetailsPopup(true);\r\n } else {\r\n alertFunction(\"Item does not store.\");\r\n }\r\n } else {\r\n alertFunction(\"Please select the table.\");\r\n }\r\n };\r\n\r\n const handleKeyBoardClick = (e) => {\r\n let str = \"\";\r\n str = subTotalRow;\r\n if (subTotalRow == undefined) {\r\n str = \"\";\r\n }\r\n\r\n if (e.target.id === \"C\") {\r\n str = \"\";\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n } else if (e.target.id === \"1\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"2\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"3\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"4\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"5\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"6\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"7\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"8\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"9\") {\r\n str = str + e.target.id;\r\n } else if (e.target.id === \"0\") {\r\n str = str + e.target.id;\r\n }\r\n\r\n setSubTotalRow(str);\r\n };\r\n\r\n const handleQtyOnClick = () => {\r\n if (flag.IsTableOpenStatus) {\r\n if (posData.objPOSHeaderDetail.IsPrinted === true) {\r\n alertFunction(\"Bill is printed.\");\r\n return;\r\n }\r\n setUnify(\"Unify\");\r\n ModeFlag = \"Qty\";\r\n setSubTotalRow(\"Qty : \");\r\n } else {\r\n alertFunction(\"Please select the table.\");\r\n }\r\n };\r\n\r\n const handleCancleOnClick = () => {\r\n if (flag.IsTableOpenStatus) {\r\n if (posData.objPOSHeaderDetail.IsPrinted === true) {\r\n alertFunction(\"Bill is printed.\");\r\n return;\r\n }\r\n setUnify(\"Unify\");\r\n ModeFlag = \"Cancel\";\r\n setSubTotalRow(\"Cancel : \");\r\n } else {\r\n alertFunction(\"Please select the table.\");\r\n }\r\n };\r\n\r\n const handleCancelletionRemarkClose = (v) => {\r\n handleItemClick(gridSelectedItem, v);\r\n setShowCancellationRemarkPopup(false);\r\n };\r\n\r\n const handleSplitQtyOnClick = () => {\r\n if (flag.IsTableOpenStatus) {\r\n if (posData.objPOSHeaderDetail.IsPrinted === true) {\r\n alertFunction(\"Bill is printed.\");\r\n return;\r\n }\r\n if (flag.IsNewItemFlag === false) {\r\n setUnify(\"Unify\");\r\n ModeFlag = \"SplitQty\";\r\n setSubTotalRow(\"Split Qty : \");\r\n } else {\r\n alertFunction(\"Item does not store.\");\r\n }\r\n } else {\r\n alertFunction(\"Please select the table.\");\r\n }\r\n };\r\n\r\n const handleShiftItemOnClick = () => {\r\n if (flag.IsTableOpenStatus) {\r\n if (posData.objPOSHeaderDetail.IsPrinted === true) {\r\n alertFunction(\"Bill is printed.\");\r\n return;\r\n }\r\n if (flag.IsNewItemFlag === false) {\r\n setUnify(\"Unify\");\r\n ModeFlag = \"ShiftItem\";\r\n setSubTotalRow(\"\");\r\n } else {\r\n alertFunction(\"Item does not store.\");\r\n }\r\n } else {\r\n alertFunction(\"Please select the table.\");\r\n }\r\n };\r\n\r\n const handlePriceOnClick = () => {\r\n if (flag.IsTableOpenStatus) {\r\n if (posData.objPOSHeaderDetail.IsPrinted === true) {\r\n alertFunction(\"Bill is printed.\");\r\n return;\r\n }\r\n if (flag.IsNewItemFlag === false) {\r\n setUnify(\"Unify\");\r\n ModeFlag = \"Price\";\r\n setSubTotalRow(\"Price : \");\r\n } else {\r\n alertFunction(\"Item does not store.\");\r\n }\r\n } else {\r\n alertFunction(\"Please select the table.\");\r\n }\r\n };\r\n\r\n const handleUnifyOnClick = () => {\r\n if (unify == \"Unify\") {\r\n setUnify(\"Un-Unify\");\r\n let tempObj = [];\r\n let tempObjNew = [];\r\n let tempObjCancel = [];\r\n tempObj = JSON.parse(JSON.stringify(posData.ocPOSItemDetail));\r\n\r\n if (tempObj.length > 0) {\r\n if (tempObj.filter((x) => x.CancelCheckItemSerNo != 0).length != 0) {\r\n tempObj.filter((x) => x.CancelCheckItemSerNo != 0).forEach(element => {\r\n tempObjCancel.push(element);\r\n });\r\n }\r\n\r\n if (tempObjCancel.length != 0) {\r\n tempObj.filter((x) => x.CancelCheckItemSerNo == 0).forEach(e1 => {\r\n tempObjCancel.forEach(e2 => {\r\n if (e1.CheckItemSerNo == e2.CancelCheckItemSerNo) {\r\n e1.ItemQty = (parseInt(e1.ItemQty) - (parseInt(e2.ItemQty) * -1));\r\n }\r\n });\r\n });\r\n }\r\n\r\n tempObj.filter((x) => x.CancelCheckItemSerNo == 0 && x.ItemQty > 0).forEach(element => {\r\n tempObjNew.push(element);\r\n });\r\n }\r\n\r\n setUnifyData(tempObjNew);\r\n } else {\r\n setUnify(\"Unify\");\r\n }\r\n };\r\n\r\n const handleItemGridSelectionChange = (v, index) => {\r\n setGridSelectedItem(v);\r\n if (ModeFlag == \"Qty\") {\r\n if (posData.objPOSHeaderDetail.IsPrinted == 0) {\r\n handleItemClick(v, \"\");\r\n } else {\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n alertFunction(\"Bill is printed.\");\r\n }\r\n } else if (ModeFlag == \"Cancel\") {\r\n if (posData.objPOSHeaderDetail.IsPrinted == 0) {\r\n if (v.IsNewItem == false) {\r\n let ocCancelItems = [];\r\n let cntCancel = 0;\r\n\r\n if (parseInt(v.ItemQty) > 0) {\r\n posData.ocPOSItemDetail.forEach(element => {\r\n if (element.ItemSerNo == v.ItemSerNo) {\r\n ocCancelItems.push(element);\r\n }\r\n });\r\n\r\n ocCancelItems.forEach(element => {\r\n cntCancel = cntCancel + parseInt(element.ItemQty);\r\n });\r\n\r\n if (subTotalRow.split(\":\")[1].trim() != \"\") {\r\n if (subTotalRow.split(\":\")[1].includes(\".\") == false) {\r\n if (parseInt(subTotalRow.split(\":\")[1].trim()) <= cntCancel) {\r\n if (selectedOutlet[0].ShowCanItemwiseRemarks) {\r\n setShowCancellationRemarkPopup(true);\r\n } else {\r\n handleItemClick(v, \"\");\r\n }\r\n } else {\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n alertFunction(\"Item cannot cancel because cancel quantity is more than bill quantity.\");\r\n }\r\n } else {\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n alertFunction(\"Decimal Qty Does not Allow\");\r\n }\r\n } else {\r\n if (v.ItemQty <= cntCancel) {\r\n if (selectedOutlet[0].ShowCanItemwiseRemarks) {\r\n setShowCancellationRemarkPopup(true);\r\n } else {\r\n handleItemClick(v, \"\");\r\n }\r\n } else {\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n alertFunction(\"Item cannot cancel because cancel quantity is more than bill quantity.\");\r\n }\r\n }\r\n }\r\n } else {\r\n let objSelectedItem = [];\r\n if (posData.ocPOSItemDetail != undefined) {\r\n objSelectedItem = JSON.parse(JSON.stringify(posData.ocPOSItemDetail));\r\n }\r\n dispatch(clearPOSItemDetail());\r\n\r\n var x = objSelectedItem.splice(index, 1);\r\n dispatch(setPOSItemDetail(objSelectedItem));\r\n\r\n if (objSelectedItem.length == 0) {\r\n flag.IsNewItemFlag = false;\r\n }\r\n\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n }\r\n } else {\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n alertFunction(\"Bill is printed.\");\r\n }\r\n } else if (ModeFlag == \"SplitQty\") {\r\n if (posData.objPOSHeaderDetail.IsPrinted == 0) {\r\n if (subTotalRow.split(\":\")[1].trim() != \"\") {\r\n if (subTotalRow.split(\":\")[1].includes(\".\") == false) {\r\n if (parseInt(subTotalRow.split(\":\")[1].trim()) <= v.ItemQty) {\r\n let para = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n CheckSerNo: parseInt(posData.objPOSHeaderDetail.CheckSerNo),\r\n CheckItemSerNo: parseInt(v.CheckItemSerNo),\r\n Qty: parseInt(subTotalRow.split(\":\")[1].trim())\r\n }\r\n\r\n POSSplitQty(para).then((d) => {\r\n if (d.data != undefined) {\r\n if (d.data.Code === \"200\") {\r\n GetOpenTableData(selectedOutletSerNo, selectedTable);\r\n } else {\r\n if (d.data.Message == \"printed\") {\r\n alertFunction(\"Table is all ready printed, please refresh your page ...\");\r\n } else {\r\n alertFunction(\"Problem in split qty.\");\r\n }\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n }\r\n } else {\r\n alertFunction(\"Problem for fetching detail\");\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n }\r\n })\r\n\r\n } else {\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n alertFunction(\"This Item have less Qty.\");\r\n }\r\n } else {\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n alertFunction(\"Decimal Qty Does not Allow\");\r\n }\r\n }\r\n } else {\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n alertFunction(\"Bill is printed.\");\r\n }\r\n } else if (ModeFlag == \"ShiftItem\") {\r\n if (posData.objPOSHeaderDetail.IsPrinted == 0) {\r\n let itemCancel = 0\r\n if (v.ItemQty < 0) {\r\n itemCancel = 1;\r\n }\r\n\r\n if (itemCancel == 0) {\r\n setShowPOSLookupPopup(true);\r\n } else {\r\n alertFunction(\"Cancel item shift not allow.\");\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n }\r\n } else {\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n alertFunction(\"Bill is printed.\");\r\n }\r\n } else if (ModeFlag == \"Price\") {\r\n if (posData.objPOSHeaderDetail.IsPrinted == 0) {\r\n if (objMenuMasterData.AllowRate == 1) {\r\n if (subTotalRow.split(\":\")[1].trim() != \"\") {\r\n if (parseInt(v.ItemQty) > 0) {\r\n let itemCancel = 0\r\n posData.ocPOSItemDetail.forEach(element => {\r\n if (element.CancelCheckItemSerNo == v.CheckItemSerNo) {\r\n itemCancel = 1\r\n }\r\n });\r\n\r\n if (itemCancel == 0) {\r\n let para = {};\r\n para = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n CheckSerNo: parseInt(posData.objPOSHeaderDetail.CheckSerNo),\r\n CheckItemSerNo: parseInt(v.CheckItemSerNo),\r\n TableName: \"pPOSItem\",\r\n FieldName: \"ItemRate\",\r\n FieldValue: subTotalRow.split(\":\")[1].trim().toString()\r\n }\r\n\r\n POSTableItemField(para).then((d) => {\r\n if (d.data != undefined) {\r\n if (d.data.Code === \"200\") {\r\n alertFunction(\"Price updated.\");\r\n GetOpenTableData(selectedOutletSerNo, selectedTable);\r\n } else {\r\n if (d.data.Message == \"printed\") {\r\n alertFunction(\"Table is all ready printed, please refresh your page ...\");\r\n } else {\r\n alertFunction(\"Please try again.\");\r\n }\r\n }\r\n }\r\n });\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n } else {\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n alertFunction(\"Item already cancel. Rate cannot be change.\");\r\n }\r\n } else {\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n alertFunction(\"Cancel item rate cannot be change.\");\r\n }\r\n } else {\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n alertFunction(\"New price of item not found.\");\r\n }\r\n } else {\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n alertFunction(\"Item rate cannot be change in this menu.\");\r\n }\r\n } else {\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n alertFunction(\"Bill is printed.\");\r\n }\r\n } else if (ModeFlag == \"OptionalModifier\") {\r\n if (v.IsNewItem == true) {\r\n setShowPOSOptionalModifierPopup(true);\r\n }\r\n }\r\n };\r\n\r\n const handleNoOfPersonOnClick = () => {\r\n if (flag.IsTableOpenStatus) {\r\n if (posData.objPOSHeaderDetail.IsPrinted === true) {\r\n alertFunction(\"Bill is printed.\");\r\n return;\r\n }\r\n if (flag.IsNewItemFlag === false) {\r\n let strNoOfPax = \"\";\r\n strNoOfPax = subTotalRow;\r\n if (subTotalRow == undefined) {\r\n strNoOfPax = \"\";\r\n }\r\n if (strNoOfPax == \"\") {\r\n alertFunction(\"Please enter noofpax value\");\r\n } else if (strNoOfPax == \"0\") {\r\n alertFunction(\"0 noofpax not update\");\r\n } else if (strNoOfPax.includes(\".\")) {\r\n alertFunction(\"decimal noofpax not update\");\r\n } else {\r\n dispatch(updateTableNoOfPax(strNoOfPax));\r\n if (posData.objPOSHeaderDetail.CheckSerNo != 0) {\r\n let para = {};\r\n para = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n CheckSerNo: parseInt(posData.objPOSHeaderDetail.CheckSerNo),\r\n TableName: \"pPOSTable\",\r\n FieldName: \"NoOfPax\",\r\n FieldValue: strNoOfPax.toString()\r\n }\r\n\r\n POSTableField(para).then((d) => {\r\n if (d.data != undefined) {\r\n if (d.data.Code === \"200\") {\r\n alertFunction(\"NoOfPax is updated.\")\r\n } else {\r\n if (d.data.Message == \"printed\") {\r\n alertFunction(\"Table is all ready printed, please refresh your page ...\");\r\n } else {\r\n alertFunction(\"Please try again.\");\r\n }\r\n }\r\n }\r\n });\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n }\r\n }\r\n } else {\r\n alertFunction(\"Item does not store.\");\r\n }\r\n } else {\r\n alertFunction(\"Please select the table.\");\r\n }\r\n };\r\n\r\n const handleTableOnClick = () => {\r\n let strTable = \"\";\r\n strTable = subTotalRow;\r\n if (subTotalRow == undefined) {\r\n strTable = \"\";\r\n }\r\n if (strTable == \"\") {\r\n alertFunction(\"Please enter table value\");\r\n } else if (strTable == \"0\") {\r\n alertFunction(\"0 table value not allow\");\r\n } else if (strTable.includes(\".\")) {\r\n alertFunction(\"decimal table not allow\");\r\n } else {\r\n setActive(true);\r\n GetOutletTableDataBilling(parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo), parseInt(selectedOutletSerNo), strTable).then((d) => {\r\n setActive(false);\r\n if (d.data != undefined) {\r\n if (d.data.length > 0) {\r\n flag.IsTableOpenStatus = true;\r\n let selectedTable = {};\r\n selectedTable.OutletSerNo = d.data[0].OutletSerNo;\r\n selectedTable.TableSerNo = d.data[0].TableSerNo;\r\n handleTableSelect(selectedTable);\r\n } else {\r\n alertFunction(\"Table not found\");\r\n }\r\n } else {\r\n alertFunction(\"Table not found\");\r\n }\r\n });\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n }\r\n };\r\n\r\n const handleFastMovingOnClick = () => {\r\n if (flag.IsTableOpenStatus) {\r\n selectedMenuCategory = 0;\r\n selectedSubMenuCategory = 0;\r\n let objItem = [];\r\n\r\n objItem = posData.ocMenuItemData.filter((x) => x.MenuSerNo == selectedMenu && x.IsFastMoving === true);\r\n setOCMenuItemDetail(objItem);\r\n } else {\r\n alertFunction(\"Please select the table.\");\r\n }\r\n };\r\n\r\n const handleTaxExemptionOnClick = () => {\r\n if (flag.IsTableOpenStatus) {\r\n if (posData.objPOSHeaderDetail.IsPrinted === true) {\r\n alertFunction(\"Bill is printed.\");\r\n return;\r\n }\r\n if (flag.IsNewItemFlag === false) {\r\n setShowPOSTaxExemptionPopup(true);\r\n } else {\r\n alertFunction(\"Item does not store.\");\r\n }\r\n } else {\r\n alertFunction(\"Please select the table.\");\r\n }\r\n };\r\n\r\n const handleExemptionSaveOnClose = (v) => {\r\n setShowPOSTaxExemptionPopup(false);\r\n dispatch(updateTableExemption(v.ExemptionSerNo));\r\n if (posData.objPOSHeaderDetail.CheckSerNo != 0) {\r\n let para = {};\r\n para = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n CheckSerNo: parseInt(posData.objPOSHeaderDetail.CheckSerNo),\r\n TableName: \"pPOSTable\",\r\n FieldName: \"ExamptionSerNo\",\r\n FieldValue: v.ExemptionSerNo.toString()\r\n }\r\n\r\n setActive(true);\r\n POSTableField(para).then((d) => {\r\n setActive(false);\r\n if (d.data != undefined) {\r\n if (d.data.Code === \"200\") {\r\n alertFunction(\"Tax Exemption is updated.\")\r\n GetOpenTableData(selectedOutletSerNo, selectedTable);\r\n } else {\r\n if (d.data.Message == \"printed\") {\r\n alertFunction(\"Table is all ready printed, please refresh your page ...\");\r\n } else {\r\n alertFunction(\"Please try again.\");\r\n }\r\n }\r\n }\r\n });\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n }\r\n };\r\n\r\n const handleMapToRoomOnClick = () => {\r\n if (flag.IsTableOpenStatus) {\r\n if (flag.IsNewItemFlag === false) {\r\n if (selectedOutlet[0].IsRoomServiceOutlet == false) {\r\n if (posData.objPOSHeaderDetail.CheckSerNo != 0) {\r\n setShowPOSRoomSettlementPopup(true);\r\n } else {\r\n alertFunction(\"Please enter item before map room.\");\r\n }\r\n } else {\r\n alertFunction(\"This functionality not available for ROOM service outlet.\");\r\n }\r\n } else {\r\n alertFunction(\"Item does not store.\");\r\n }\r\n } else {\r\n alertFunction(\"Please select the table.\");\r\n }\r\n };\r\n\r\n const handleMapToRoomOnClose = (v) => {\r\n setShowPOSRoomSettlementPopup(false);\r\n\r\n dispatch(updateTableMapToToRoomCompanyProfileDetail(v));\r\n if (posData.objPOSHeaderDetail.CheckSerNo != 0) {\r\n dispatch(updateTableMapToToRoomDetail(v));\r\n }\r\n\r\n if (ModeFlag == \"Media\") {\r\n let otherSettlement = 0;\r\n let roomSettlement = 0;\r\n if (posData.ocPOSSettlementDetail.length > 0) {\r\n otherSettlement = posData.ocPOSSettlementDetail.filter((x) => x.PaymentMethodType != \"RS\").length;\r\n roomSettlement = posData.ocPOSSettlementDetail.filter((x) => x.PaymentMethodType == \"RS\").length;\r\n } else {\r\n otherSettlement = 0;\r\n roomSettlement = 0;\r\n }\r\n\r\n if (otherSettlement == 0 && roomSettlement == 0) {\r\n let settleAmount = 0;\r\n let partialRoomSettle = 0\r\n if (subTotalRow == undefined || subTotalRow == \"\") {\r\n settleAmount = parseFloat(posData.objPOSTableTotalDetail.TotalAmount);\r\n } else {\r\n partialRoomSettle = 1;\r\n settleAmount = parseFloat(subTotalRow);\r\n }\r\n\r\n if (partialRoomSettle == 0) {\r\n let para = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"CheckSerNo\": parseInt(posData.objPOSHeaderDetail.CheckSerNo),\r\n \"TransactionSerNo\": parseInt(roomTransaction.TransactionSerNo),\r\n \"CompanyProfileSerNo\": parseInt(posData.objPOSHeaderDetail.CompanyProfileSerNo),\r\n \"UserID\": currUser.UserID,\r\n \"SlipNo\": \"\",\r\n \"RoomSerNo\": parseInt(v.RoomNo),\r\n \"Amount\": settleAmount.toFixed(2),\r\n \"TipAmount\": \"0.00\",\r\n \"EmployeeSerNo\": 0,\r\n \"ReservationSerNo\": parseInt(v.ReservationSerNo),\r\n \"CreditMachineSerNo\": 0\r\n }\r\n\r\n setActive(true);\r\n InsertPOSSettlement(para).then((d) => {\r\n setActive(false);\r\n if (d.data != undefined) {\r\n if (d.data.IsClosed == \"FolioPrint\") {\r\n alertFunction(\"Folio has been printed\");\r\n } else if (d.data.IsClosed == \"CheckOut\") {\r\n alertFunction(\"Folio has been checkout\");\r\n } else if (d.data.IsClosed == \"room\") {\r\n alertFunction(\"Folio or Room not found\");\r\n } else if (d.data.IsClosed == \"TFC_APPLY\") {\r\n alertFunction(\"Please remove Transfer Folio from window and try again.\");\r\n } else if (d.data.IsClosed == \"Err\") {\r\n alertFunction(\"Settlement not done\");\r\n } else {\r\n alertFunction(\"Payment Sucess\");\r\n GetOpenTableData(selectedOutletSerNo, selectedTable);\r\n }\r\n }\r\n });\r\n } else {\r\n alertFunction(\"Partial room settlement not allow.\");\r\n }\r\n } else {\r\n if (roomSettlement != 0) {\r\n alertFunction(\"Room Settlement already done. so part payment not allow.\");\r\n } else {\r\n alertFunction(\"Partial room settlement not allow.\");\r\n }\r\n }\r\n } else {\r\n let para = {};\r\n para = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n CheckSerNo: parseInt(posData.objPOSHeaderDetail.CheckSerNo),\r\n TableName: \"pPOSTable\",\r\n FieldName: \"ReservationSerNo\",\r\n FieldValue: v.ReservationSerNo.toString(),\r\n FieldName2: \"ProfileSerNo\",\r\n FieldValue2: v.GuestProfileSerNo.toString()\r\n }\r\n\r\n setActive(true);\r\n POSTableField(para).then((d) => {\r\n setActive(false);\r\n if (d.data != undefined) {\r\n if (d.data.Code === \"200\") {\r\n } else {\r\n if (d.data.Message == \"printed\") {\r\n alertFunction(\"Table is all ready printed, please refresh your page ...\");\r\n } else {\r\n alertFunction(\"Please try again.\");\r\n }\r\n }\r\n }\r\n });\r\n\r\n let para1 = {};\r\n para1 = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n CheckSerNo: parseInt(posData.objPOSHeaderDetail.CheckSerNo),\r\n TableName: \"pPOSTable\",\r\n FieldName: \"CompanyProfileSerNo\",\r\n FieldValue: v.CompanyProfileSerNo.toString(),\r\n FieldName2: \"RoomSerNo\",\r\n FieldValue2: v.RoomNo.toString()\r\n }\r\n\r\n setActive(true);\r\n POSTableField(para1).then((d) => {\r\n setActive(false);\r\n if (d.data != undefined) {\r\n if (d.data.Code === \"200\") {\r\n } else {\r\n if (d.data.Message == \"printed\") {\r\n alertFunction(\"Table is all ready printed, please refresh your page ...\");\r\n } else {\r\n alertFunction(\"Please try again.\");\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n ModeFlag = \"\";\r\n setSubTotalRow(\"\");\r\n };\r\n\r\n const handleSaveOptionalModifierclick = (v) => {\r\n setShowPOSOptionalModifierPopup(false);\r\n let selectedItemSerNo = v.ItemSerNo;\r\n\r\n let objSelectedItem = [];\r\n if (posData.ocPOSItemDetail != undefined) {\r\n objSelectedItem = JSON.parse(JSON.stringify(posData.ocPOSItemDetail));\r\n }\r\n dispatch(clearPOSItemDetail());\r\n\r\n if (objSelectedItem.filter((x) => x.ItemSerNo == selectedItemSerNo && x.IsNewItem === true).length != 0) {\r\n objSelectedItem.forEach(element => {\r\n if (element.ItemSerNo == selectedItemSerNo && element.IsNewItem === true) {\r\n element.CookingInsName = v.CookingInsName;\r\n }\r\n });\r\n }\r\n dispatch(setPOSItemDetail(objSelectedItem));\r\n let objTotal = {\r\n TotalQty: 0,\r\n TotalAmount: 0.00\r\n }\r\n objSelectedItem.forEach(element => {\r\n objTotal.TotalQty = objTotal.TotalQty + element.ItemQty;\r\n objTotal.TotalAmount = objTotal.TotalAmount + (element.ItemQty * element.ItemRate);\r\n });\r\n\r\n dispatch(setPOSTableTotalDetail(objTotal));\r\n };\r\n\r\n const handleModifierClick = () => {\r\n if (flag.IsTableOpenStatus) {\r\n if (posData.objPOSHeaderDetail.IsPrinted === true) {\r\n alertFunction(\"Bill is printed.\");\r\n return;\r\n }\r\n if (flag.IsNewItemFlag === true) {\r\n setUnify(\"Unify\");\r\n ModeFlag = \"OptionalModifier\";\r\n setSubTotalRow(\"\");\r\n } else {\r\n }\r\n } else {\r\n alertFunction(\"Please select the table.\");\r\n }\r\n };\r\n\r\n const handleFunctionOnClick = () => {\r\n if (flag.IsTableOpenStatus) {\r\n if (flag.IsNewItemFlag === false) {\r\n setShowPOSFunctionPopup(true);\r\n } else {\r\n alertFunction(\"Item does not store.\");\r\n }\r\n } else {\r\n alertFunction(\"Please select the table.\");\r\n }\r\n };\r\n\r\n const handleFunctionSelectPopUp = (v) => {\r\n if (v.flag == \"maproom\") {\r\n setShowPOSFunctionPopup(false);\r\n if (posData.objPOSHeaderDetail.IsPrinted === true) {\r\n alertFunction(\"Bill is printed.\");\r\n return;\r\n }\r\n setShowPOSRoomSettlementPopup(true);\r\n } else if (v.flag == \"agent\") {\r\n setShowPOSFunctionPopup(false);\r\n if (posData.objPOSHeaderDetail.IsPrinted === true) {\r\n alertFunction(\"Bill is printed.\");\r\n return;\r\n }\r\n flag.companyType = \"AG\";\r\n setShowPOSCompanyPopup(true);\r\n } else if (v.flag == \"close\") {\r\n setShowPOSFunctionPopup(false);\r\n if (posData.objPOSHeaderDetail.IsPrinted === true) {\r\n let Qty = 0;\r\n let totalBillAmount = 0.00;\r\n posData.ocPOSItemDetail.forEach(ele => {\r\n Qty = Qty + ele.ItemQty;\r\n });\r\n\r\n totalBillAmount = parseFloat(posData.objPOSTableTotalDetail?.TotalAmount);\r\n if (totalBillAmount == undefined) {\r\n totalBillAmount = 0;\r\n }\r\n\r\n if (Qty == 0) {\r\n alertFunction(\"0 qty close check not allow.\");\r\n } else {\r\n if (Qty != 0 && totalBillAmount > -0.5 && totalBillAmount < 0.5) {\r\n let para = {};\r\n para = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n CheckSerNo: parseInt(posData.objPOSHeaderDetail.CheckSerNo)\r\n }\r\n\r\n setActive(true);\r\n POSTableCloseCheck(para).then((d) => {\r\n setActive(false);\r\n if (d.data != undefined) {\r\n if (d.data.Code === \"200\") {\r\n alertFunction(\"Close check done.\")\r\n GetOpenTableData(selectedOutletSerNo, selectedTable);\r\n } else {\r\n if (d.data.Message == \"Amount\") {\r\n alertFunction(\"Bill total amount must be zero.\");\r\n } else if (d.data.Message == \"Settlement\") {\r\n alertFunction(\"Required atleast one settelement.\");\r\n } else {\r\n alertFunction(\"Problem to close check.\");\r\n }\r\n }\r\n }\r\n });\r\n } else {\r\n alertFunction(\"Bill total amount must be zero.\");\r\n }\r\n }\r\n } else {\r\n alertFunction(\"Bill is not printed.\");\r\n }\r\n }\r\n };\r\n\r\n const handleSplitTableOnClick = () => {\r\n if (flag.IsTableOpenStatus) {\r\n if (posData.objPOSHeaderDetail.IsPrinted === true) {\r\n alertFunction(\"Bill is printed.\");\r\n return;\r\n }\r\n if (flag.IsNewItemFlag === false) {\r\n setUnify(\"Unify\");\r\n setShowPOSSplitBillPopup(true);\r\n } else {\r\n alertFunction(\"Item does not store.\");\r\n }\r\n } else {\r\n alertFunction(\"Please select the table.\");\r\n }\r\n };\r\n\r\n const handleSplitTableSaveClick = () => {\r\n setShowPOSSplitBillPopup(false);\r\n GetOpenTableData(selectedOutletSerNo, selectedTable);\r\n };\r\n\r\n const handleBufferClick = () => {\r\n if (flag.IsTableOpenStatus) {\r\n if (flag.IsNewItemFlag === false) {\r\n setShowPOSBufferCheckPopup(true);\r\n } else {\r\n alertFunction(\"Item does not store.\");\r\n }\r\n } else {\r\n alertFunction(\"Please select the table.\");\r\n }\r\n // let htmlstring = \"\"\r\n // let objPrint = [];\r\n // try {\r\n // let ocPOSItemData = posData.ocPOSItemDetail;\r\n // let NoOfPrintKOT = selectedOutlet[0].NoOfPrintKOT;\r\n\r\n // if (selectedOutlet[0].IsDeptWiseKOTPrint === true) {\r\n // const uniqueLocation = [];\r\n // const uniqueLocation1 = [];\r\n\r\n // try {\r\n // ocPOSItemData.filter((x) => x.KOTNo === 120).map(img => {\r\n // if (uniqueLocation.indexOf(img.LocationSerNo) === -1) {\r\n // let objLocation = {\r\n // LocationSerNo: 0,\r\n // printerName: \"\",\r\n // LocationName: \"\"\r\n // }\r\n // objLocation.LocationSerNo = img.LocationSerNo;\r\n // objLocation.printerName = img.KOTPrinter;\r\n // objLocation.LocationName = img.LocationName;\r\n // uniqueLocation.push(img.LocationSerNo);\r\n // uniqueLocation1.push(objLocation);\r\n // }\r\n // });\r\n // } catch (e) {\r\n // alert(\"Problem to select printer.\");\r\n // }\r\n\r\n // for (let i = 0; i < uniqueLocation.length; i++) {\r\n // htmlstring = \"\";\r\n // try {\r\n // htmlstring = \"\";\r\n // htmlstring = ReactDOMServer.renderToString(\r\n // x.LocationSerNo === uniqueLocation[i])[0].LocationName,\r\n // \"pPOSTableDetail\": posData.objPOSHeaderDetail,\r\n // \"pPOSItemDetail\": posData.ocPOSItemDetail.filter((x) => x.KOTNo === 120 && x.LocationSerNo === uniqueLocation[i]),\r\n // \"pPropertyDetails\": propertyDetails,\r\n // \"User\": currUser.UserID\r\n // }}>\r\n // );\r\n // } catch (err) {\r\n // console.log(err)\r\n // htmlstring = \"\";\r\n // alert(\"Problem to generate KOT.\");\r\n // }\r\n\r\n // try {\r\n // for (let j = 0; j < NoOfPrintKOT; j++) {\r\n // let obj = {\r\n // printerName: \"\",\r\n // html: \"\"\r\n // };\r\n // obj.printerName = uniqueLocation1.filter((x) => x.LocationSerNo === uniqueLocation[i])[0].printerName;\r\n // obj.html = htmlstring;\r\n // objPrint.push(obj);\r\n // }\r\n // } catch (e1) {\r\n // alert(\"Problem to print KOT.\");\r\n // }\r\n // }\r\n // } else {\r\n // const uniqueKOTPrinter = [];\r\n // htmlstring = \"\";\r\n\r\n // try {\r\n // ocPOSItemData.filter((x) => x.KOTNo === 120).map(img => {\r\n // if (uniqueKOTPrinter.indexOf(img.KOTPrinter) === -1) {\r\n // uniqueKOTPrinter.push(img.KOTPrinter);\r\n // }\r\n // });\r\n // } catch (e) {\r\n // }\r\n\r\n // try {\r\n // htmlstring = ReactDOMServer.renderToString(\r\n // x.KOTNo === 120),\r\n // \"pPropertyDetails\": propertyDetails,\r\n // \"User\": currUser.UserID\r\n // }}>\r\n // );\r\n // } catch (err) {\r\n // console.log(err)\r\n // htmlstring = \"\";\r\n // alert(\"Problem to generate KOT.\");\r\n // }\r\n\r\n // try {\r\n // for (let j = 0; j < NoOfPrintKOT; j++) {\r\n // let obj = {\r\n // printerName: \"\",\r\n // html: \"\"\r\n // };\r\n // obj.printerName = uniqueKOTPrinter.toString();\r\n // obj.html = htmlstring;\r\n // objPrint.push(obj);\r\n // }\r\n // } catch (e1) {\r\n // alert(\"Problem to print KOT.\");\r\n // }\r\n // }\r\n\r\n // if (PrintKOTLocationwise === \"Y\") {\r\n // const uniqueKOTPrinter2 = [];\r\n\r\n // try {\r\n // ocPOSItemData.filter((x) => x.KOTNo === 120).map(img => {\r\n // if (uniqueKOTPrinter2.indexOf(img.KOTPrinter2) === -1) {\r\n // uniqueKOTPrinter2.push(img.KOTPrinter2);\r\n // }\r\n // });\r\n // } catch (e) {\r\n // }\r\n\r\n // if (uniqueKOTPrinter2.length > 0) {\r\n // htmlstring = \"\";\r\n\r\n // try {\r\n // htmlstring = ReactDOMServer.renderToString(\r\n // x.KOTNo === 120),\r\n // \"pPropertyDetails\": propertyDetails,\r\n // \"User\": currUser.UserID\r\n // }}>\r\n // );\r\n // } catch (err) {\r\n // console.log(err)\r\n // htmlstring = \"\";\r\n // alert(\"Problem to generate KOT.\");\r\n // }\r\n\r\n // try {\r\n // for (let j = 0; j < NoOfPrintKOT; j++) {\r\n // let obj = {\r\n // printerName: \"\",\r\n // html: \"\"\r\n // };\r\n // obj.printerName = uniqueKOTPrinter2.toString();\r\n // obj.html = htmlstring;\r\n // objPrint.push(obj);\r\n // }\r\n // } catch (e1) {\r\n // alert(\"Problem to print KOT.\");\r\n // }\r\n // }\r\n // }\r\n // } catch (e) {\r\n // console.log(e);\r\n // }\r\n\r\n // try {\r\n // const { ipcRenderer } = window.require('electron');\r\n // ipcRenderer.send('get_data', JSON.stringify(objPrint));\r\n // } catch (error) {\r\n // console.log(error)\r\n // }\r\n };\r\n\r\n const handlePrintClick = () => {\r\n setShowPOSBufferCheckPopup(false);\r\n if (posData.objPOSHeaderDetail.IsPrinted == 0) {\r\n dispatch(updatePrintFlagDetail(1));\r\n }\r\n GetOpenTableData(selectedOutletSerNo, selectedTable);\r\n alertFunction(\"Table printed.\")\r\n };\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    {posData.objPOSHeaderDetail.BillNo}
    \r\n
    {posData.objPOSHeaderDetail.TableName}
    \r\n
    {posData.objPOSHeaderDetail.ServerName}
    \r\n
    PAX: {posData.objPOSHeaderDetail.NoOfPax}
    \r\n
    \r\n\r\n
    \r\n {\r\n //setPosTableData(items);\r\n }}\r\n //fixedHeaderNo={1}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n handleRowSelect={(rowdata, index) => {\r\n handleItemGridSelectionChange(rowdata, index);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    QTY. {parseFloat(posData.objPOSTableTotalDetail?.TotalQty).toFixed(3)}
    \r\n
    Total: {parseFloat(posData.objPOSTableTotalDetail?.TotalAmount).toFixed(2)}
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Buffer (F9)CancelModifierValue
    789\r\n {selectedOutlet[0]?.IsPrintKOT === true ? \"Store (F8)\" : \"Finish (F8)\"}\r\n
    Shift Item456QTY
    Split Table123Cash
    Split QTY.0Clear
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(swiper)}\r\n onSlideChange={() => console.log('slide change')}\r\n observer={true}\r\n observeParents={false}\r\n centeredSlides={false}\r\n >\r\n
    \r\n\r\n {\r\n ocMenuCategoryMaster ? ocMenuCategoryMaster.map(d =>\r\n \r\n \r\n {d.Name}\r\n \r\n \r\n ) : <>\r\n }\r\n
    \r\n \r\n \r\n\r\n\r\n
    \r\n
    \r\n\r\n console.log(swiper)}\r\n\r\n >\r\n \r\n
    \r\n {\r\n\r\n ocMenuItemDetail ? ocMenuItemDetail.map(d =>\r\n\r\n { handleItemClick(d, \"\") }}\r\n >\r\n {d.Name}\r\n \r\n\r\n ) : <>\r\n\r\n }\r\n
    \r\n
     
    \r\n
    \r\n\r\n\r\n
    \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(swiper)}\r\n >\r\n \r\n {\r\n ocMenuSubCategoryMaster ? ocMenuSubCategoryMaster.map(d =>\r\n \r\n {d.Name}\r\n \r\n ) : <>\r\n }\r\n
     
    \r\n
    \r\n \r\n \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Table\r\n Fast Moving\r\n Show Details\r\n Price\r\n {unify}\r\n Server\r\n No Of Person\r\n Item Search\r\n Media\r\n Discount\r\n Rate\r\n Lookup\r\n Tax Exemption\r\n Customer\r\n Function\r\n Company\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n {showPOSGuestPopup ?\r\n setShowPOSGuestPopup(false)}\r\n OnSelect={(v) => handleGuestOnClose(v)}>\r\n \r\n : null}\r\n\r\n {showPOSCompanyPopup ?\r\n setShowPOSCompanyPopup(false)}\r\n OnSelect={(v) => handleCompnayOnClose(v)}>\r\n \r\n : null}\r\n
    \r\n\r\n {showPOSItemSearchPopup ?\r\n setShowPOSItemSearchPopup(false)}\r\n handleOnSubmit={() => handleOnCloseItemSearch()}\r\n >\r\n \r\n : null}\r\n\r\n {showPOSLookupPopup ?\r\n setShowPOSLookupPopup(false)}\r\n handleTableSelect={(v) => handleTableSelect(v)}>\r\n : null\r\n }\r\n\r\n {showPOSServerPopup ?\r\n setShowPOSServerPopup(false)}\r\n handleServerClick={(v) => handleOnServerClose(v)}>\r\n\r\n \r\n : null}\r\n\r\n\r\n {showPOSMandatoryModifierPopup ?\r\n handleOnMandatoryModifier(v)}\r\n para={{\r\n \"ItemSerNo\": selectItemSerNo\r\n }}\r\n >\r\n \r\n : null}\r\n\r\n {showPOSDiscountPopup ?\r\n setShowPOSDiscountPopup(false)}\r\n handleDiscountOnClose={() => handleDiscountOnClose()}\r\n para={{\r\n Outlet: selectedOutlet\r\n }}\r\n >\r\n \r\n : null}\r\n\r\n {showPOSRatePopup ?\r\n setShowPOSRatePopup(false)}\r\n handleRateClick={(v) => handleOnRateSelect(v)}\r\n >\r\n \r\n : null}\r\n\r\n {showPOSMediaPopup ?\r\n setShowPOSMediaPopup(false)}\r\n handlOnClickSave={(v) => handleMediaSaveClick(v)}>\r\n : null}\r\n\r\n {showPOSShowDetailsPopup ?\r\n setShowPOSShowDetailsPopup(false)}>\r\n \r\n : null}\r\n\r\n {showCancellationRemarkPopup ?\r\n setShowCancellationRemarkPopup(false)}\r\n handleCancelletionRemarkClose={(v) => handleCancelletionRemarkClose(v)}\r\n >\r\n : null}\r\n\r\n {showPOSTaxExemptionPopup ?\r\n setShowPOSTaxExemptionPopup(false)}\r\n handleSaveOnClose={(v) => handleExemptionSaveOnClose(v)}>\r\n \r\n : null\r\n }\r\n\r\n {showPOSRoomSettlementPopup ?\r\n { setShowPOSRoomSettlementPopup(false) }}\r\n handleSaveOnClose={(v) => handleMapToRoomOnClose(v)}>\r\n \r\n : null\r\n }\r\n\r\n {showNumberKeyboardPopup ?\r\n { setShowNumberKeyboardPopup(false) }}\r\n handleSaveOnClose={(v) => handleNumpadSaveClick(v)}>\r\n \r\n : null}\r\n\r\n {showPOSOptionalModifierPopup ?\r\n { setShowPOSOptionalModifierPopup(false) }}\r\n handleSaveOptionalModifierclick={handleSaveOptionalModifierclick}\r\n >\r\n \r\n : null}\r\n\r\n {showPOSFunctionPopup ?\r\n { setShowPOSFunctionPopup(false) }}\r\n handleFunctionClick={(v) => { handleFunctionSelectPopUp(v) }}\r\n >\r\n : null\r\n\r\n }\r\n\r\n {showPOSSplitBillPopup ?\r\n { setShowPOSSplitBillPopup(false) }}\r\n hanldeOnSave={handleSplitTableSaveClick}\r\n >\r\n \r\n : null}\r\n\r\n {showPOSBufferCheckPopup ?\r\n { setShowPOSBufferCheckPopup(false) }}\r\n handlePrintClick={handlePrintClick}\r\n >\r\n\r\n \r\n : null\r\n }\r\n
    \r\n );\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n useConfirm,\r\n InnSingleDateSelection\r\n} from \"../../../../component\";\r\n\r\nimport {\r\n GetItemGroupMaster,\r\n GetItemGroupMasterBySerNo,\r\n AddEditItemGroupMaster,\r\n AddEditItemGroupMasterBySerNo\r\n} from \"../../../../services/posMasterService\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nexport function ItemGroupMaster() {\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const ValidationObj = {\r\n Name: \"\",\r\n SequenceNo: 0,\r\n }\r\n const ValidationSubObj = {\r\n Name: \"\",\r\n SequenceNo: 0,\r\n }\r\n const itemData = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = { ClientSerNo: parseInt(currUser.ClientSerNo), PropertySerNo: parseInt(currUser.PropertySerNo), ItemGroupSerNo: 0, Name: \"\", SequenceNo: 0, Active: true, Mode: \"\" }\r\n const [selected, setSelected] = useState(defaultObj);\r\n const defaultSubGroup = { ClientSerNo: parseInt(currUser.ClientSerNo), PropertySerNo: parseInt(currUser.PropertySerNo), ItemGroupSerNo: 0, Name: \"\", SequenceNo: 0, Active: true, Mode: \"View\", ItemSubGroupSerNo: 0 }\r\n const [selectedSubGroup, setSelectedSubGroup] = useState(defaultSubGroup);\r\n const [itemGroupList, setItemGroupList] = useState([]);\r\n const [itemSubGroupList, setItemSubGroupList] = useState([]);\r\n const [resultListSub, setResultListSub] = useState([]);\r\n const [resultList, setResultList] = useState([])\r\n const [search, setSearch] = useState(\"\");\r\n const [searchSubGroup, setSearchSubGroup] = useState(\"\");\r\n const [old, setOld] = useState(0);\r\n const [oldSubGroup, setOldSubGroup] = useState(0);\r\n const [validation, setValidation] = useState(ValidationObj);\r\n const [validationSubGroup, setValidationSubGroup] = useState(ValidationSubObj);\r\n const scrollRef = useRef();\r\n const scrollRef1 = useRef();\r\n\r\n //#endregion \r\n\r\n\r\n\r\n //#region UseEffect\r\n useEffect(() => {\r\n GetAllData(0);\r\n\r\n }, []);\r\n //#endregion\r\n\r\n const GetAllData = (x) => {\r\n GetItemGroupMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n let sortDataa = [...resp.data].sort((a, b) => {\r\n return a.Name.toLowerCase() > b.Name.toLowerCase() ? 1 : -1\r\n })\r\n setItemGroupList(sortDataa);\r\n setResultList(sortDataa);\r\n if (x == 0 || x == undefined) {\r\n if (resp.data.length != 0) {\r\n setSelected(resp.data[0]);\r\n GetItemGroupMasterBySerNo(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), resp.data[0].ItemGroupSerNo).then(resp1 => {\r\n let sortData = [...resp.data].sort((a, b) => {\r\n return a.Name.toLowerCase() > b.Name.toLowerCase() ? 1 : -1\r\n })\r\n setItemSubGroupList(sortData);\r\n setResultListSub(sortData)\r\n if (x == 0) {\r\n if (resp1.data.length != 0) {\r\n setSelectedSubGroup(sortData[0]);\r\n }\r\n }\r\n\r\n }\r\n )\r\n }\r\n } else {\r\n setResultListSub([]);\r\n setItemSubGroupList([]);\r\n setSelectedSubGroup(\"\")\r\n GetSubGroupListApi({ItemGroupSerNo : parseInt(x)}); \r\n }\r\n })\r\n }\r\n //#region Events\r\n const handleClickAdd = () => {\r\n setOld(selected.ItemGroupSerNo)\r\n handleChangeSearch(\"\");\r\n setSelected((prev) => ({ ...prev, Name: \"\", SequenceNo: 0, ItemGroupSerNo: 0, Mode: \"Add\" }))\r\n }\r\n const handleClickEdit = () => {\r\n if (selected.ItemGroupSerNo == 0) {\r\n alertFunction(\"Please select the Item Name\")\r\n return\r\n }\r\n setSelected((prev) => ({ ...prev, Mode: \"Edit\" }))\r\n setOld(selected.ItemGroupSerNo)\r\n }\r\n const searchEdit = () => {\r\n GetItemGroupMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n setItemGroupList(resp.data);\r\n let temp = resp.data.filter(x => x.Name.toLowerCase().includes(search.toLowerCase())); \r\n setResultList(temp);\r\n })\r\n }\r\n\r\n const AddEditAPI = (selected) => {\r\n AddEditItemGroupMaster(selected).then(resp => {\r\n if (resp.status == 200) {\r\n alertFunction(resp.data.Message);\r\n setValidation((prev) => ({ ...prev, Name: \"\", SequenceNo: \"\" }))\r\n setSelected((prev) => ({ ...prev, ItemGroupSerNo: parseInt(resp.data.ReturnValue) }))\r\n if (selected.Mode == \"Add\" || selected.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit()\r\n return;\r\n }\r\n setTimeout(() => {\r\n if (scrollRef.current != null) {\r\n scrollRef.current.scrollIntoView({ behaviour: \"smooth\" });\r\n }\r\n }, 100)\r\n }\r\n GetSubGroupListApi({ItemGroupSerNo : parseInt(selected.ItemGroupSerNo)})\r\n }\r\n }\r\n )\r\n }\r\n const isValidpage = () => {\r\n let isValid = true;\r\n if (validation.Name != \"\") {\r\n setValidation((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n isValid = false;\r\n }\r\n if (selected.Name.trim().length == 0 || /[0-9’/`~!#*$@_+=^{}[\\]|;:<>?\\\\]/g.test(selected.Name) == true) {\r\n setValidation((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n isValid = false;\r\n }\r\n if (selected.SequenceNo == 0 || selected.SequenceNo < 0) {\r\n setValidation((prev) => ({ ...prev, SequenceNo: \"Please enter valid Sequence number\" }))\r\n isValid = false;\r\n }\r\n if (isNaN(selected.SequenceNo)) {\r\n setValidation((prev) => ({ ...prev, SequenceNo: \"Please enter only Number.\" }))\r\n isValid = false;\r\n }\r\n return isValid\r\n }\r\n\r\n const handleClickSave = () => {\r\n let isValid = isValidpage();\r\n if (isValid) {\r\n let temp = selected;\r\n temp.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n temp.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n temp.SequenceNo = parseInt(temp.SequenceNo);\r\n AddEditAPI(temp);\r\n setSelected((prev) => ({ ...prev, Mode: \"Save\" }))\r\n } else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\")\r\n }\r\n\r\n }\r\n\r\n const handleClickCancel = () => {\r\n setValidation((prev) => ({ ...prev, Name: \"\", SequenceNo: \"\" }))\r\n if (old == 0) {\r\n setSelected(defaultObj)\r\n }\r\n else {\r\n itemGroupList.forEach(element => {\r\n if (element.ItemGroupSerNo == old) {\r\n setSelected(element);\r\n }\r\n });\r\n }\r\n }\r\n\r\n //#region popup functtions\r\n\r\n const handleChangeSubGroupName = (e) => {\r\n if ((itemSubGroupList.every((x) => x.Name.toLowerCase() != e.toLowerCase()))) {\r\n setValidationSubGroup((prev) => ({ ...prev, Name: \"\" }))\r\n setSelectedSubGroup(prev => ({ ...prev, Name: e }));\r\n } else {\r\n setValidationSubGroup(prev => ({ ...prev, Name: \"SubGroup Name already exist.\" }))\r\n }\r\n }\r\n const handleChangeSubGroupSequenceNo = (e) => {\r\n if (itemSubGroupList.every((x) => x.SequenceNo != e)) {\r\n setValidationSubGroup((prev) => ({ ...prev, SequenceNo: 0 }))\r\n setSelectedSubGroup((prev) => ({ ...prev, SequenceNo: e }));\r\n if (isNaN(e)) {\r\n setValidationSubGroup((prev) => ({ ...prev, SequenceNo: \"Invalid Item SubGroup Sequence.\" }))\r\n }else{\r\n setValidationSubGroup((prev) => ({ ...prev, SequenceNo: \"\" }))\r\n }\r\n } else {\r\n setValidationSubGroup(prev => ({ ...prev, SequenceNo: \"Invalid Item SubGroup Sequence\" }))\r\n }\r\n }\r\n\r\n const handleChangeSearchSubGroup = (e) => {\r\n setSearchSubGroup(e);\r\n setValidationSubGroup((prev) => ({ ...prev, Name: \"\", SequenceNo: \"\" }))\r\n setSelectedSubGroup(defaultSubGroup)\r\n let temp = []\r\n itemSubGroupList.forEach(element => {\r\n if (element.Name.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(element);\r\n }\r\n });\r\n setResultListSub(temp);\r\n }\r\n const handleClickAddSubGroup = () => {\r\n setOldSubGroup(selectedSubGroup.ItemSubGroupSerNo)\r\n handleChangeSearchSubGroup(\"\");\r\n setSelectedSubGroup((prev) => ({ ...prev, Name: \"\", SequenceNo: 0, ItemSubGroupSerNo: 0, Mode: \"Add\" }))\r\n }\r\n const handleClickEditSubGroup = () => {\r\n setSelectedSubGroup((prev) => ({ ...prev, Mode: \"Edit\" }))\r\n setOldSubGroup(selectedSubGroup.ItemSubGroupSerNo)\r\n }\r\n const searchEditSubGroup = () => {\r\n GetItemGroupMasterBySerNo(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), selected.ItemGroupSerNo).then(resp => {\r\n setItemSubGroupList(resp.data);\r\n setSelectedSubGroup(defaultSubGroup)\r\n let temp = []\r\n resp.data.forEach(x => {\r\n if (x.Name.toLowerCase().includes(searchSubGroup.toLowerCase())) {\r\n temp.push(x);\r\n }\r\n });\r\n\r\n setResultListSub(temp);\r\n })\r\n }\r\n\r\n const AddEditAPISubGroup = (selectedSubGroup) => {\r\n\r\n AddEditItemGroupMasterBySerNo(selectedSubGroup).then(resp => {\r\n if (resp.status == 200) {\r\n alertFunction(resp.data.Message);\r\n setValidationSubGroup((prev) => ({ ...prev, Name: \"\", SequenceNo: \"\" }))\r\n setSelectedSubGroup((prev) => ({ ...prev, ItemSubGroupSerNo: parseInt(resp.data.ReturnValue) }))\r\n console.log(\"ItemSub\",selectedSubGroup)\r\n if (selectedSubGroup.Mode == \"Add\" || selectedSubGroup.Mode == \"Edit\") {\r\n if (searchSubGroup != \"\") {\r\n searchEditSubGroup()\r\n return;\r\n }\r\n setTimeout(() => {\r\n if (scrollRef1.current != null) {\r\n scrollRef1.current.scrollIntoView({ behaviour: \"smooth\" });\r\n }\r\n }, 100)\r\n }\r\n // GetAllData();\r\n GetSubGroupListApi({ItemGroupSerNo : parseInt(selected.ItemGroupSerNo && selectedSubGroup)})\r\n }\r\n }\r\n )\r\n }\r\n const isValidpageSubGroup = () => {\r\n let isValid = true;\r\n if (validationSubGroup.Name != \"\") {\r\n setValidationSubGroup((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n isValid = false;\r\n }\r\n if (selectedSubGroup.Name.trim().length == 0 || /[0-9]/g.test(selectedSubGroup.Name)) {\r\n setValidationSubGroup((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n isValid = false;\r\n }\r\n if (selectedSubGroup.SequenceNo == 0 || parseInt(selectedSubGroup.SequenceNo) <= 0) {\r\n setValidationSubGroup((prev) => ({ ...prev, SequenceNo: \"Please enter valid Sequence number\" }))\r\n isValid = false;\r\n }\r\n if (isNaN(selectedSubGroup.SequenceNo)) {\r\n setValidationSubGroup((prev) => ({ ...prev, SequenceNo: \"Please enter only Number.\" }))\r\n isValid = false;\r\n }\r\n return isValid\r\n }\r\n\r\n const handleClickSaveSubGroup = () => {\r\n\r\n let isValid = isValidpageSubGroup();\r\n if (isValid) {\r\n let temp = selectedSubGroup;\r\n temp.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n temp.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n temp.SequenceNo = parseInt(temp.SequenceNo);\r\n temp.ItemGroupSerNo = selected.ItemGroupSerNo;\r\n AddEditAPISubGroup(temp);\r\n setSelectedSubGroup((prev) => ({ ...prev, Mode: \"Save\" }))\r\n } else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n const handleClickCancelSubGroup = () => {\r\n setValidationSubGroup((prev) => ({ ...prev, Name: \"\", SequenceNo: \"\" }))\r\n\r\n if (oldSubGroup == 0) {\r\n setSelectedSubGroup(defaultSubGroup)\r\n }\r\n else {\r\n itemSubGroupList.forEach(element => {\r\n if (element.ItemSubGroupSerNo == oldSubGroup) {\r\n setSelectedSubGroup(element);\r\n }\r\n });\r\n }\r\n }\r\n const handleClickSubGroupType = (itemSubGroup) => {\r\n setValidationSubGroup((prev) => ({ ...prev, Name: \"\", SequenceNo: \"\" }))\r\n setSelectedSubGroup(itemSubGroup);\r\n }\r\n\r\n //#endregion\r\n const handleChangeName = (e) => {\r\n if ((itemGroupList.every((x) => x.Name.toLowerCase() != e.toLowerCase()))) {\r\n setValidation((prev) => ({ ...prev, Name: \"\" }))\r\n setSelected(prev => ({ ...prev, Name: e }));\r\n } else {\r\n setValidation(prev => ({ ...prev, Name: \"Item Group Name already exist.\" }))\r\n }\r\n }\r\n const handleChangeSequenceNo = (e) => {\r\n if (itemGroupList.every((x) => x.SequenceNo != e)) {\r\n setValidation((prev) => ({ ...prev, SequenceNo: \"\" }))\r\n setSelected((prev) => ({ ...prev, SequenceNo: e }));\r\n if (isNaN(e)) {\r\n setValidation((prev) => ({ ...prev, SequenceNo: \"Invalid Item Group Sequence.\" }))\r\n }else{\r\n setValidation((prev) => ({ ...prev, SequenceNo: \"\" }))\r\n }\r\n } else {\r\n setValidation(prev => ({ ...prev, SequenceNo: \"Invalid Item Group Sequence\" }))\r\n }\r\n }\r\n\r\n\r\n const handleChangeSearch = (e) => {\r\n setSearch(e);\r\n setValidation((prev) => ({ ...prev, Name: \"\", SequenceNo: 0 }))\r\n setSelected((prev) => ({ ...prev, Name: \"\", SequenceNo: 0, ItemGroupSerNo: 0, Mode: \"\" }))\r\n let temp = []\r\n itemGroupList.forEach(element => {\r\n if (element.Name.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(element);\r\n }\r\n });\r\n setResultList(temp);\r\n }\r\n const GetSubGroupListApi = (itemGroup) => {\r\n GetItemGroupMasterBySerNo(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), itemGroup.ItemGroupSerNo).then(resp => {\r\n if (resp.data.length == 0) {\r\n setSelectedSubGroup(defaultSubGroup);\r\n setItemSubGroupList([]);\r\n setResultListSub([]);\r\n }\r\n else {\r\n setItemSubGroupList(resp.data);\r\n setResultListSub(resp.data);\r\n setSelectedSubGroup(resp.data[0]);\r\n }\r\n });\r\n }\r\n const handleChangeSubGroup = (itemGroup) => {\r\n GetSubGroupListApi(itemGroup)\r\n }\r\n const handleClickGroupType = (itemGroup) => {\r\n setValidation((prev) => ({ ...prev, Name: \"\", SequenceNo: 0 }))\r\n setSelected(itemGroup)\r\n handleChangeSubGroup(itemGroup);\r\n }\r\n\r\n const [showItemModal, setShowItemModal] = useState(false);\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Item Group Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { handleChangeSearch(e) }} value={search} OnCancelClick={() => handleChangeSearch(\"\")}>Search\r\n
    \r\n \r\n
    \r\n
    \r\n {/*
    \r\n console.log(item, name)}\r\n disabled={false}\r\n >\r\n
    */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n Item Groups\r\n
    \r\n
      \r\n {resultList.map((itemGroup, index) => {\r\n return (\r\n handleClickGroupType(itemGroup)}\r\n ref={(itemGroup.ItemGroupSerNo == selected.ItemGroupSerNo) ? scrollRef : null}\r\n className={(itemGroup.ItemGroupSerNo == selected.ItemGroupSerNo) ? \"active\" : \"\"}\r\n > {itemGroup.Name} \r\n )\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n Name\r\n Sequence no\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    {\r\n if (selected.ItemGroupSerNo != 0) {\r\n setShowItemModal(!showItemModal)\r\n }\r\n else {\r\n alertFunction(\"Please select Item Group to continue.\")\r\n }\r\n }}>Item Sub Group
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n Activate console.log(v)} id=\"Sd\">\r\n {selected.Mode == \"Edit\" || selected.Mode == \"Add\" ?\r\n <>\r\n Cancel\r\n Save\r\n \r\n :\r\n <>\r\n Edit\r\n Add\r\n \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n {showItemModal ? (\r\n setShowItemModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Item Sub Group

    \r\n
    \r\n
    \r\n {selectedSubGroup.Mode == \"Edit\" || selectedSubGroup.Mode == \"Add\" ?\r\n <>\r\n Cancel\r\n Save\r\n \r\n :\r\n <>\r\n Edit\r\n Add\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n { handleChangeSearchSubGroup(e) }} value={search} OnCancelClick={() => handleChangeSearchSubGroup(\"\")}>Search\r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    Item Subgroups
    \r\n
    \r\n
      \r\n {resultListSub.map((itemSubGroup, index) => {\r\n return (\r\n handleClickSubGroupType(itemSubGroup)}\r\n ref={(itemSubGroup.ItemSubGroupSerNo == selectedSubGroup.ItemSubGroupSerNo) ? scrollRef1 : null}\r\n className={(itemSubGroup.ItemSubGroupSerNo == selectedSubGroup.ItemSubGroupSerNo) ? \"active\" : \"\"}\r\n > {itemSubGroup.Name} \r\n )\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n Name\r\n Sequence no\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n
    \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n useConfirm,\r\n InnPlainButton,\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { GetItemToppingMaster, AddEditItemToppingMaster } from \"../../../../services/posMasterService\";\r\n\r\nexport function ItemToppingMaster() {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const validObj ={\r\n Name: \"\", \r\n ShortName: \"\"\r\n }\r\n const defaultObj = { ClientSerNo: parseInt(currUser.ClientSerNo), PropertySerNo: parseInt(currUser.PropertySerNo), Mode: \"\", Name: \"\", ShortName: \"\", ToppingSerNo: 0 }\r\n const [selected, setSelected] = useState(defaultObj);\r\n const [toppingList, setToppingList] = useState([]);\r\n const [resultList, setResultList] = useState([])\r\n const [search, setSearch] = useState(\"\");\r\n const [old, setOld] = useState(0);\r\n const [validation, setValidation] = useState(validObj);\r\n\r\n const scrollRef = useRef();\r\n\r\n //#endregion \r\n\r\n\r\n\r\n //#region UseEffect\r\n useEffect(() => {\r\n GetAllData(0);\r\n }, []);\r\n //#endregion\r\n\r\n const GetAllData = (x) => {\r\n GetItemToppingMaster(parseInt(currUser.ClientSerNo)).then(resp => {\r\n if (x == 0 || x == undefined) {\r\n if (resp.data.length != 0) {\r\n setSelected(resp.data[0]);\r\n }\r\n }\r\n let sortData = [...resp.data].sort((a, b) => {\r\n return a.Name.toLowerCase() > b.Name.toLowerCase() ? 1 : -1\r\n })\r\n setToppingList(sortData);\r\n setResultList(sortData);\r\n })\r\n }\r\n //#region Events\r\n const handleClickAdd = () => {\r\n setOld(selected.ToppingSerNo)\r\n handleChangeSearch(\"\");\r\n setSelected((prev) => ({ ...prev, Name: \"\", ShortName: \"\", ToppingSerNo: 0, Mode: \"Add\" }))\r\n }\r\n const handleClickEdit = () => {\r\n if (selected.ToppingSerNo == 0) {\r\n alertFunction(\"Please select the Topping first\")\r\n return\r\n }\r\n setSelected((prev) => ({ ...prev, Mode: \"Edit\" }))\r\n setOld(selected.ToppingSerNo)\r\n }\r\n const searchEdit = () => {\r\n GetItemToppingMaster(parseInt(currUser.ClientSerNo)).then(resp => {\r\n setToppingList(resp.data);\r\n setSelected(defaultObj)\r\n let temp = []\r\n resp.data.forEach(x => {\r\n if (x.Name.toLowerCase().includes(search.toLowerCase())) {\r\n temp.push(x);\r\n }\r\n });\r\n setResultList(temp);\r\n })\r\n }\r\n\r\n const AddEditAPI = (selected) => {\r\n console.log(\">>>\", selected)\r\n AddEditItemToppingMaster(selected).then(resp => {\r\n if (resp.status == 200) {\r\n alertFunction(resp.data.Message);\r\n setValidation((prev) => ({ ...prev, Name: \"\", ShortName: \"\" }))\r\n setSelected((prev) => ({ ...prev, ToppingSerNo: parseInt(resp.data.ReturnValue) }))\r\n if (selected.Mode == \"Add\" || selected.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit()\r\n return;\r\n }\r\n setTimeout(() => {\r\n if (scrollRef.current != null) {\r\n scrollRef.current.scrollIntoView({ behaviour: \"smooth\" });\r\n }\r\n }, 100)\r\n }\r\n GetAllData();\r\n }\r\n }\r\n )\r\n }\r\n const isValidpage = () => {\r\n console.log('heyy');\r\n let isValid = true;\r\n if (validation.Name != \"\") {\r\n setValidation((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n isValid = false;\r\n }\r\n if (selected.Name.trim().length == 0 || /[0-9’/`~!#*$@_+=^{}[\\]|;:<>?\\\\]/g.test(selected.Name) == true) {\r\n setValidation((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n isValid = false;\r\n }\r\n if (selected.ShortName.trim().length == 0 || /[0-9’/`~!#*$@_+=^{}[\\]|;:<>?\\\\]/g.test(selected.ShortName) == true) {\r\n setValidation((prev) => ({ ...prev, ShortName: \"Please enter valid short name\" }))\r\n isValid = false;\r\n }\r\n return isValid\r\n }\r\n const handleClickSave = () => {\r\n let isValid = isValidpage();\r\n if (isValid) {\r\n let temp = selected;\r\n temp.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n AddEditAPI(temp);\r\n setSelected((prev) => ({ ...prev, Mode: \"Save\" }))\r\n } else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n\r\n const handleClickCancel = () => {\r\n setValidation((prev) => ({ ...prev, Name: \"\", ShortName: \"\" }))\r\n if (old == 0) {\r\n setSelected(defaultObj)\r\n }\r\n else {\r\n toppingList.forEach(element => {\r\n if (element.ToppingSerNo == old) {\r\n setSelected(element);\r\n }\r\n });\r\n }\r\n }\r\n\r\n const handleChangeName = (e) => {\r\n if ((toppingList.every((x) => x.Name.toLowerCase() != e.toLowerCase()))) {\r\n setValidation((prev) => ({ ...prev, Name: \"\" }))\r\n setSelected(prev => ({ ...prev, Name: e }));\r\n } else {\r\n setValidation(prev => ({ ...prev, Name: \"Iteam Topping Name already exist.\" }))\r\n }\r\n }\r\n const handleChangeShortName = (e) => {\r\n setSelected((prev) => ({ ...prev, ShortName: e }));\r\n }\r\n\r\n\r\n const handleChangeSearch = (e) => {\r\n setSearch(e);\r\n setValidation((prev) => ({ ...prev, Name: \"\", ShortName: \"\" }))\r\n setSelected((prev) => ({ ...prev, Name: \"\", ShortName: \"\", ToppingSerNo: 0 ,Mode:\"\"}))\r\n let temp = []\r\n toppingList.forEach(element => {\r\n if (element.Name.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(element);\r\n }\r\n });\r\n setResultList(temp);\r\n }\r\n const handleClickItemToppingType = (item) => {\r\n setValidation((prev) => ({ ...prev, Name: \"\", ShortName: \"\" }))\r\n setSelected(item)\r\n }\r\n \r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Item Topping Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { handleChangeSearch(e) }} value={search} OnCancelClick={() => handleChangeSearch(\"\")}>Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Item Topping
    \r\n
    \r\n {resultList.map((item, index) => {\r\n return (\r\n
      \r\n handleClickItemToppingType(item)}\r\n ref={(item.ToppingSerNo == selected.ToppingSerNo) ? scrollRef : null}\r\n className={(item.ToppingSerNo == selected.ToppingSerNo) ? \"active\" : \"\"}\r\n > {item.Name} \r\n
    \r\n )\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n Name\r\n
    \r\n
    \r\n Short Name
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n {selected.Mode == \"Edit\" || selected.Mode == \"Add\" ?\r\n <>\r\n Cancel\r\n Save\r\n \r\n :\r\n <>\r\n Edit\r\n Add\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnSingleDateSelection,\r\n useConfirm,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport { GetLocationMaster, AddEditLocationMaster } from \"../../../../services/posMasterService\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nexport function LocationMaster() {\r\n\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"LocationSerNo\": 0,\r\n \"Name\": \"\",\r\n \"PrinterName\": \"\",\r\n \"Mode\": \"View\"\r\n }\r\n\r\n const validationObj = {\r\n \"Name\": \"\",\r\n \"PrinterName\": \"\"\r\n }\r\n\r\n //#region State Variable\r\n const [isActive, setIsActive] = useState(true);\r\n const [locationMasterData, setLocationMasterData] = useState([]);\r\n const [locationMasterObj, setLocationMasterObj] = useState(defaultObj);\r\n const [filterLocationMaster, setFilterLocationMaster] = useState([]);\r\n const [LocationMasterValidation, setLocationMasterValidation] = useState(validationObj);\r\n const [selectedLocationMaster, setSelectedLocationMaster] = useState(validationObj);\r\n const [search, setSearch] = useState(\"\");\r\n //#endregion\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n fillLocationMaster();\r\n }, []);\r\n //#endregion\r\n\r\n //#region load data\r\n const fillLocationMaster = () => {\r\n setIsActive(true);\r\n GetLocationMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setIsActive(false);\r\n let sortDataa = [...d.data].sort((a, b) => {\r\n return a.Name.toLowerCase() > b.Name.toLowerCase() ? 1 : -1\r\n })\r\n if (d.data && d.data.length > 0 && (locationMasterObj.LocationSerNo == 0 || locationMasterObj.LocationSerNo == undefined)) {\r\n let obj = sortDataa[0];\r\n obj.Mode = \"View\";\r\n setLocationMasterObj(obj);\r\n setSelectedLocationMaster(obj.LocationSerNo);\r\n }\r\n setLocationMasterData(sortDataa);\r\n setFilterLocationMaster(sortDataa);\r\n })\r\n }\r\n //#endregion\r\n\r\n const clearValidation = () => {\r\n setLocationMasterValidation(validationObj);\r\n }\r\n\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (LocationMasterValidation.Name != \"\") {\r\n setLocationMasterValidation((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n isValid = false;\r\n }\r\n if (locationMasterObj.Name == \"\" || locationMasterObj.Name.trim().length == 0 || /[0-9’/`~!#*$@_+=^{}[\\]|;:<>?\\\\]/g.test(locationMasterObj.Name) == true) {\r\n isValid = false;\r\n setLocationMasterValidation(prev => ({ ...prev, Name: \"Enter the valid name.\" }));\r\n }\r\n if (locationMasterObj.PrinterName == \"\") {\r\n isValid = false;\r\n setLocationMasterValidation(prev => ({ ...prev, PrinterName: \"Enter the valid printer name.\" }));\r\n }\r\n return isValid;\r\n }\r\n\r\n //#region location master functions\r\n const HandleOnSearchClick = (d) => {\r\n setSearch(d);\r\n setLocationMasterObj(defaultObj);\r\n let searchFilter = locationMasterData.filter(x => x.Name.toLowerCase().includes(d.toLowerCase()));\r\n setFilterLocationMaster(searchFilter);\r\n }\r\n\r\n const handleSearchEdit = () => {\r\n GetLocationMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n let filterEdit = d.data.filter(x => x.Name.toLowerCase().includes(search.toLowerCase()));\r\n setFilterLocationMaster(filterEdit);\r\n });\r\n }\r\n\r\n const HandleOnLocationMasterClick = (e) => {\r\n clearValidation();\r\n let obj = locationMasterData.find(x => x.LocationSerNo == e.target.id);\r\n obj.Mode = \"View\";\r\n setLocationMasterObj(obj);\r\n setSelectedLocationMaster(e.target.id);\r\n }\r\n\r\n const HandleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n let obj = locationMasterObj;\r\n AddEditLocationMaster(obj).then((d) => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n setIsActive(true);\r\n alertFunction(d.data.Message);\r\n fillLocationMaster();\r\n if (locationMasterObj.Mode == \"Add\" || locationMasterObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n handleSearchEdit();\r\n }\r\n obj.LocationSerNo = parseInt(d.data.ReturnValue);\r\n obj.Mode = \"View\";\r\n setLocationMasterObj(obj);\r\n setSelectedLocationMaster(d.data.ReturnValue);\r\n }\r\n } else {\r\n alertFunction(\"Something Went Wrong\");\r\n }\r\n })\r\n setLocationMasterObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n\r\n const HandleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setLocationMasterObj(obj);\r\n }\r\n\r\n const HandleOnEditClick = () => {\r\n if (locationMasterObj.Name == \"\") {\r\n alertFunction(\"Please Select Location\");\r\n }\r\n else {\r\n setLocationMasterObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n }\r\n\r\n const HandleOnCancelClick = () => {\r\n clearValidation();\r\n let existingObj = locationMasterData.find(x => x.LocationSerNo == selectedLocationMaster);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setLocationMasterObj(existingObj);\r\n } else {\r\n setLocationMasterObj(defaultObj);\r\n }\r\n }\r\n //#endregion\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Location Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Location Names
    \r\n
    \r\n
      \r\n {\r\n filterLocationMaster.map((d) =>\r\n
    • \r\n {d.Name}\r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n {\r\n if ((locationMasterData.every((x) => x.Name.toLowerCase() != e.toLowerCase()))) {\r\n setLocationMasterValidation((prev) => ({ ...prev, Name: \"\" }))\r\n setLocationMasterObj(prev => ({ ...prev, Name: e }));\r\n } else {\r\n setLocationMasterValidation(prev => ({ ...prev, Name: \"Location Name already exist.\" }))\r\n }\r\n }}>Name\r\n {\r\n setLocationMasterObj(prev => ({ ...prev, PrinterName: v }));\r\n setLocationMasterValidation(prev => ({ ...prev, PrinterName: \"\" }));\r\n }}>Printer Name\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n Activate console.log(v)} id=\"LM\">\r\n {\r\n locationMasterObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n {/* setShowDepositTermTypeModal(!showDepositTermTypeModal)}>Add Deposit Term Type*/}\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n useConfirm,\r\n InnSingleDateSelection,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport {\r\n GetMenuMaster,\r\n GetMenuCategoryMaster,\r\n GetMenuSubCategory,\r\n AddEditMenuCategoryMaster,\r\n AddEditMenuSubCategoryMaster\r\n} from '../../../../services/posMasterService';\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport function MenuCategoryMaster() {\r\n const curr = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const defaultMenuCategory = {\r\n ClientSerNo: parseInt(curr.ClientSerNo),\r\n PropertySerNo: parseInt(curr.PropertySerNo),\r\n MenuSerNo: 0,\r\n MenuCategorySerNo: 0,\r\n Name: \"\",\r\n Sequence: 0,\r\n Mode: \"View\"\r\n }\r\n const defaultMenuSubCategory = {\r\n ClientSerNo: parseInt(curr.ClientSerNo),\r\n PropertySerNo: parseInt(curr.PropertySerNo),\r\n MenuSerNo: 0,\r\n MenuCategorySerNo: 0,\r\n MenuSubCategorySerNo: 0,\r\n Name: \"\",\r\n Sequence: 0,\r\n Mode: \"View\"\r\n }\r\n const validMenuCategory = {\r\n Name: \"\",\r\n Sequence: 0\r\n }\r\n\r\n const validMenuSubCategory = {\r\n Name: \"\",\r\n Sequence: 0\r\n }\r\n // Menu Category variable\r\n const [menuMaster, setMenuMaster] = useState([]);\r\n const [menuCategoryObj, setMenuCategoryObj] = useState(defaultMenuCategory);\r\n const [menuCategoryMaster, setMenuCategoryMaster] = useState([]);\r\n const [filterMenuCategory, setFilterMenuCategory] = useState([]);\r\n const [showMenuModal, setShowMenuModal] = useState(false);\r\n const [isActive, setIsActive] = useState(false);\r\n const [menuCategoryValidation, setMenuCategoryValidation] = useState(validMenuCategory);\r\n const [categoryselectedSerNo, setCategorySelectedSerNo] = useState(0);\r\n const [searchCategory, setSearchCategory] = useState(\"\");\r\n //end Menu Category variable\r\n\r\n //Menu Sub Category variable\r\n const [filterMenuSubCategory, setFilterMenuSubCategory] = useState([]);\r\n const [menuSubCategoryObj, setMenuSubCategoryObj] = useState(defaultMenuSubCategory);\r\n const [menuSubCategoryMaster, setMenuSubCategoryMaster] = useState([]);\r\n const [menuSubCategoryValidation, setMenuSubCategoryValidation] = useState(validMenuSubCategory);\r\n const [categoryselectedSubSerNo, setCategorySelectedSubSerNo] = useState(0);\r\n const [searchSubCategory, setSearchSubCategory] = useState(\"\");\r\n //End Menu Sub Category variable\r\n //-------------------------------------------------- Menu Category ----------------------------------------------------------------------------------------\r\n const fillMenu = () => {\r\n setIsActive(true);\r\n GetMenuMaster(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo)).then(d => {\r\n setIsActive(false);\r\n let menu = [];\r\n d.data.forEach((x) => {\r\n menu = [...menu, { key: x.MenuSerNo, value: x.Name }]\r\n });\r\n setMenuMaster(menu);\r\n });\r\n }\r\n\r\n const fillMenuCategory = () => {\r\n setIsActive(true);\r\n if (parseInt(curr.ClientSerNo) > 0 && parseInt(curr.PropertySerNo) > 0 && menuCategoryObj.MenuSerNo > 0) {\r\n GetMenuCategoryMaster(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo), menuCategoryObj.MenuSerNo).then(d => {\r\n let sortDataa = [...d.data].sort((a, b) => {\r\n return a.Name.toLowerCase() > b.Name.toLowerCase() ? 1 : -1\r\n })\r\n setMenuCategoryMaster(sortDataa);\r\n setFilterMenuCategory(sortDataa);\r\n if (d.data.length !== 0) {\r\n let obj = sortDataa[0];\r\n obj.Mode = \"View\";\r\n setMenuCategoryObj(obj);\r\n setCategorySelectedSerNo(obj.MenuCategorySerNo);\r\n }\r\n // }else{\r\n // d.data[0].Mode = \"View\";\r\n // setMenuCategoryObj(d.data[0]);\r\n // }\r\n // if (d.data.length > 0) {\r\n // if (menuCategoryObj.Mode == \"Add\" || menuCategoryObj.Mode == \"Edit\") {\r\n // let temp = d.data.find(d => d.MenuCategorySerNo == menuCategoryObj.MenuCategorySerNo);\r\n // temp.Mode = \"View\";\r\n // setMenuCategoryObj(temp);\r\n // }\r\n // else {\r\n // d.data[0].Mode = \"View\";\r\n // setMenuCategoryObj(d.data[0]);\r\n // }\r\n // }\r\n setIsActive(false);\r\n });\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n fillMenu();\r\n }, []);\r\n\r\n useEffect(() => {\r\n fillMenuCategory();\r\n }, [menuCategoryObj.MenuSerNo]);\r\n\r\n\r\n const clearCategory = () => {\r\n setMenuCategoryValidation(validMenuCategory);\r\n }\r\n const handleOnCategorySearch = (s) => {\r\n setSearchCategory(s);\r\n //setMenuCategoryObj(defaultMenuCategory);\r\n setMenuCategoryObj(prev => ({ ...prev, MenuCategorySerNo: 0, Name: \"\", Sequence: 0, Mode: \"View\" }));\r\n let filterCategory = menuCategoryMaster.filter(d => d.Name.toLowerCase().includes(s.toLowerCase()));\r\n setFilterMenuCategory(filterCategory);\r\n }\r\n\r\n const searchCategoryEdit = () => {\r\n GetMenuCategoryMaster(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo), menuCategoryObj.MenuSerNo).then(d => {\r\n let filterCategoryEdit = d.data.filter(d => d.Name.toLowerCase().includes(searchCategory.toLowerCase()));\r\n setFilterMenuCategory(filterCategoryEdit);\r\n });\r\n }\r\n\r\n const handleMenuCategoryClick = (e) => {\r\n clearCategory();\r\n let Obj = menuCategoryMaster.find(d => d.MenuCategorySerNo == e.target.id);\r\n Obj.Mode = \"View\";\r\n setMenuCategoryObj(Obj);\r\n setCategorySelectedSerNo(e.target.id);\r\n console.log(\"selected >>\", categoryselectedSerNo);\r\n }\r\n\r\n const handleOnCategoryAdd = () => {\r\n clearCategory();\r\n if (menuCategoryObj.MenuSerNo == 0) {\r\n alertFunction(\"Please Select Menu Category\");\r\n }else{\r\n setMenuCategoryObj(prev => ({ ...prev, MenuCategorySerNo: 0, Name: \"\", Sequence: 0, Mode: \"Add\" }));\r\n }\r\n }\r\n\r\n const handleOnCategoryEdit = () => {\r\n if (menuCategoryObj.Name == \"\") {\r\n alertFunction(\"Please Select Menu Category\");\r\n }\r\n else {\r\n setMenuCategoryObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n }\r\n\r\n const handleOnCategoryCancel = () => {\r\n clearCategory();\r\n let existingObj = menuCategoryMaster.find(x => x.MenuCategorySerNo == categoryselectedSerNo);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setMenuCategoryObj(existingObj);\r\n console.log(\"Cancel >>\", existingObj);\r\n }\r\n else {\r\n setMenuCategoryObj(prev => ({ ...prev, Name: \"\", MenuSerNo: 0, MenuCategorySerNo: 0, MenuSubCategorySerNo: 0,Sequence: 0, Mode: \"View\" }));\r\n }\r\n }\r\n \r\n const isValidPageMenuCategory = () => {\r\n let isvalid = true;\r\n if (menuCategoryValidation.Name != \"\") {\r\n setMenuCategoryValidation((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n isvalid = false;\r\n }\r\n if (menuCategoryObj.Name == \"\" || menuCategoryObj.Name.trim().length == 0 || /[0-9’`~!#*$@_+=^{}[\\]|;:<>?\\\\]/g.test(menuCategoryObj.Name) == true) {\r\n isvalid = false;\r\n setMenuCategoryValidation(prev => ({ ...prev, Name: \"Invalid Name\" }));\r\n }\r\n if (menuCategoryObj.Sequence == 0 || menuCategoryObj.Sequence <= 0) {\r\n isvalid = false;\r\n setMenuCategoryValidation(prev => ({ ...prev, Sequence: \"Invalid sequence\" }));\r\n }\r\n if (isNaN(menuCategoryObj.Sequence)) {\r\n setMenuCategoryValidation((prev) => ({ ...prev, Sequence: \"Please enter only Number.\" }))\r\n isvalid = false;\r\n }\r\n return isvalid;\r\n }\r\n\r\n const handleOnSaveMenuCategory = () => {\r\n let IsValid = isValidPageMenuCategory();\r\n if (IsValid) {\r\n setIsActive(true);\r\n console.log(\"Add >>\", menuCategoryObj);\r\n menuCategoryObj.ClientSerNo = parseInt(curr.ClientSerNo);\r\n menuCategoryObj.PropertySerNo = parseInt(curr.PropertySerNo);\r\n AddEditMenuCategoryMaster(menuCategoryObj).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n fillMenuCategory();\r\n if (menuCategoryObj.Mode == \"Add\" || menuCategoryObj.Mode == \"Edit\") {\r\n if (searchCategory != \"\") {\r\n searchCategoryEdit();\r\n }\r\n menuCategoryObj.MenuCategorySerNo = parseInt(d.data.ReturnValue);\r\n setCategorySelectedSerNo(d.data.ReturnValue);\r\n }\r\n }\r\n else {\r\n alertFunction(\"Something went Wrong\");\r\n }\r\n setIsActive(false);\r\n });\r\n setMenuCategoryObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n //----------------------------------------------------------------- End Menu Category ------------------------------------------------------------------------\r\n\r\n //----------------------------------------------------------------Menu Sub Category ---------------------------------------------------------------------------\r\n const fillMenuSubCategory = () => {\r\n setIsActive(true);\r\n GetMenuSubCategory(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo), menuCategoryObj.MenuSerNo, categoryselectedSerNo).then(d => {\r\n let sortData = [...d.data].sort((a, b) => {\r\n return a.Name.toLowerCase() > b.Name.toLowerCase() ? 1 : -1\r\n })\r\n setMenuSubCategoryMaster(sortData);\r\n setFilterMenuSubCategory(sortData);\r\n if (d.data.length !== 0 ) {\r\n let obj = sortData[0];\r\n obj.Mode = \"View\";\r\n setMenuSubCategoryObj(obj);\r\n }\r\n // if (d.data.length > 0) {\r\n // if (menuSubCategoryObj.Mode == \"Add\" || menuSubCategoryObj.Mode == \"Edit\") {\r\n // let temp = d.data.find(d => d.MenuSubCategorySerNo == menuSubCategoryObj.MenuSubCategorySerNo);\r\n // temp.Mode = \"View\";\r\n // setMenuSubCategoryObj(temp);\r\n // setCategorySelectedSubSerNo(d.data.ReturnValue);\r\n // }\r\n // else {\r\n // d.data[0].Mode = \"View\";\r\n // setMenuSubCategoryObj(d.data[0]);\r\n // }\r\n // }\r\n setIsActive(false);\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n if (menuCategoryObj.MenuSerNo > 0 && categoryselectedSerNo > 0) {\r\n fillMenuSubCategory();\r\n }\r\n }, [menuCategoryObj.MenuSerNo, categoryselectedSerNo]);\r\n\r\n\r\n const handleOnSubCategorySearch = (s) => {\r\n setSearchSubCategory(s);\r\n setMenuSubCategoryObj(prev => ({ ...prev, MenuSubCategorySerNo: 0, Name: \"\", Sequence: 0, Mode: \"View\" }));\r\n let filterSubCategory = menuSubCategoryMaster.filter(d => d.Name.toLowerCase().includes(s.toLowerCase()));\r\n setFilterMenuSubCategory(filterSubCategory);\r\n }\r\n\r\n const clearSubCategory = () => {\r\n setMenuSubCategoryValidation(validMenuSubCategory);\r\n }\r\n\r\n const searchSubCategoryEdit = () => {\r\n GetMenuSubCategory(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo), menuCategoryObj.MenuSerNo, categoryselectedSerNo).then(d => {\r\n let filterSubCategoryEdit = d.data.filter(d => d.Name.toLowerCase().includes(searchSubCategory.toLowerCase()));\r\n setFilterMenuSubCategory(filterSubCategoryEdit);\r\n });\r\n }\r\n\r\n const handleMenuSubCategoryClick = (e) => {\r\n clearSubCategory();\r\n let Obj = menuSubCategoryMaster.find(d => d.MenuSubCategorySerNo == e.target.id);\r\n Obj.Mode = \"View\";\r\n setMenuSubCategoryObj(Obj);\r\n setCategorySelectedSubSerNo(e.target.id);\r\n }\r\n\r\n const handleOnSubCategoryAdd = () => {\r\n setMenuSubCategoryObj(prev => ({ ...prev, MenuSubCategorySerNo: 0, Name: \"\", Sequence: 0, Mode: \"Add\" }));\r\n }\r\n const handleOnCancelMenuSubCategory = () => {\r\n clearSubCategory();\r\n setIsActive(false);\r\n let existingObj = menuSubCategoryMaster.find(x => x.MenuSubCategorySerNo == categoryselectedSubSerNo);\r\n\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setMenuSubCategoryObj(existingObj);\r\n }\r\n else {\r\n setMenuSubCategoryObj(prev => ({ ...prev, Name: \"\", MenuSubCategorySerNo: 0, Mode: \"View\" }));\r\n }\r\n setSearchSubCategory(\"\");\r\n }\r\n\r\n const handleOnSubCategoryEdit = () => {\r\n if (menuSubCategoryObj.Name == \"\") {\r\n alertFunction(\"Please Select Menu Sub Category\");\r\n }\r\n else {\r\n setMenuSubCategoryObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n }\r\n\r\n const isValidPageMenuSubCategory = () => {\r\n let isvalid = true;\r\n if (menuSubCategoryValidation.Name != \"\") {\r\n setMenuSubCategoryValidation((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n isvalid = false;\r\n }\r\n if (menuSubCategoryObj.Name == \"\" || menuSubCategoryObj.Name.trim().length == 0 || /[0-9’`~!#*$@_+=^{}[\\]|;:<>?\\\\]/g.test(menuSubCategoryObj.Name) == true) {\r\n isvalid = false;\r\n setMenuSubCategoryValidation(prev => ({ ...prev, Name: \"Invalid Name\" }));\r\n }\r\n if (menuSubCategoryObj.Sequence == 0 || menuSubCategoryObj.Sequence <= 0) {\r\n isvalid = false;\r\n setMenuSubCategoryValidation(prev => ({ ...prev, Sequence: \"Invalid sequence\" }));\r\n }\r\n if (isNaN(menuSubCategoryObj.Sequence)) {\r\n setMenuSubCategoryValidation((prev) => ({ ...prev, Sequence: \"Please enter only Number.\" }))\r\n isvalid = false;\r\n }\r\n return isvalid;\r\n }\r\n\r\n const handleOnSaveMenuSubCategory = () => {\r\n let IsValid = isValidPageMenuSubCategory();\r\n if (IsValid) {\r\n setIsActive(true);\r\n menuSubCategoryObj.ClientSerNo = parseInt(curr.ClientSerNo);\r\n menuSubCategoryObj.PropertySerNo = parseInt(curr.PropertySerNo);\r\n menuSubCategoryObj.MenuSerNo = parseInt(menuCategoryObj.MenuSerNo);\r\n menuSubCategoryObj.MenuCategorySerNo = parseInt(menuCategoryObj.MenuCategorySerNo);\r\n AddEditMenuSubCategoryMaster(menuSubCategoryObj).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n fillMenuSubCategory();\r\n if (menuSubCategoryObj.Mode == \"Add\" || menuSubCategoryObj.Mode == \"Edit\") {\r\n if (searchSubCategory != \"\") {\r\n searchSubCategoryEdit();\r\n }\r\n menuSubCategoryObj.MenuSubCategorySerNo = parseInt(d.data.ReturnValue);\r\n //setCategorySelectedSerNo(d.data.ReturnValue);\r\n }\r\n }\r\n else {\r\n alertFunction(\"Something went Wrong\");\r\n }\r\n setIsActive(false);\r\n });\r\n setMenuSubCategoryObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n //----------------------------------------------------------------End Menu Sub Category -----------------------------------------------------------------------\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Menu Category Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n setMenuCategoryObj(prev => ({ ...prev, MenuSerNo: item.key }))}\r\n disabled={false}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Menu Category Names\r\n
    \r\n
      \r\n {\r\n filterMenuCategory.map(d =>\r\n
    • \r\n {d.Name}\r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n {\r\n if((menuCategoryMaster.every((x) => x.Name.toLowerCase() != e.toLowerCase()))) {\r\n setMenuCategoryValidation((prev) => ({ ...prev, Name: \"\" }))\r\n setMenuCategoryObj(prev => ({ ...prev, Name: e }));\r\n } else {\r\n setMenuCategoryValidation(prev => ({ ...prev, Name: \"Menu Category already exist.\" }))\r\n }\r\n }}\r\n >Name\r\n {\r\n if (menuCategoryMaster.every((x) => x.Sequence != v)) {\r\n setMenuCategoryObj(prev => ({ ...prev, Sequence: v }))\r\n setMenuCategoryValidation(prev => ({ ...prev, Sequence: \"\" }));\r\n if (isNaN(v)) {\r\n setMenuCategoryValidation((prev) => ({ ...prev, Sequence: \"Invalid Menu Category Sequence.\" }))\r\n } else {\r\n setMenuCategoryValidation((prev) => ({ ...prev, Sequence: \"\" }))\r\n }\r\n } else {\r\n setMenuCategoryValidation(prev => ({ ...prev, Sequence: \"Menu Category Sequence already exist.\" }));\r\n }\r\n }}\r\n >Sequence\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    { menuCategoryObj.Name == \"\" ? alertFunction(\"Please select Menu to continue.\") : setShowMenuModal(!showMenuModal) }}>Sub Category
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n {\r\n menuCategoryObj.Mode == \"View\" ?\r\n <>\r\n Activate console.log(v)} id=\"Ph\">\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {showMenuModal ? (\r\n {\r\n setShowMenuModal(false);\r\n setMenuSubCategoryObj(prev => ({ ...prev, Mode: \"View\" }));\r\n clearSubCategory();\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Sub Category Master

    \r\n
    \r\n
    \r\n {\r\n menuSubCategoryObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    Sub Category Names
    \r\n
    \r\n
      \r\n {\r\n filterMenuSubCategory.map(d =>\r\n
    • \r\n {d.Name}\r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n if ((menuSubCategoryMaster.every((x) => x.Name.toLowerCase() != e.toLowerCase()))) {\r\n setMenuSubCategoryValidation((prev) => ({ ...prev, Name: \"\" }))\r\n setMenuSubCategoryObj(prev => ({ ...prev, Name: e }));\r\n } else {\r\n setMenuSubCategoryValidation(prev => ({ ...prev, Name: \"Menu SubCategory already exist.\" }))\r\n }\r\n }}\r\n >Name\r\n {\r\n if (menuSubCategoryMaster.every((x) => x.Sequence != v)) {\r\n setMenuSubCategoryObj(prev => ({ ...prev, Sequence: v }));\r\n setMenuSubCategoryValidation(prev => ({ ...prev, Sequence: \"\" }));\r\n if (isNaN(v)) {\r\n setMenuSubCategoryValidation((prev) => ({ ...prev, Sequence: \"Invalid Menu SubCategory Sequence.\" }))\r\n } else {\r\n setMenuSubCategoryValidation((prev) => ({ ...prev, Sequence: \"\" }))\r\n }\r\n }else{\r\n setMenuSubCategoryValidation(prev => ({ ...prev, Sequence: \"Invalid Menu SubCategory Sequence\"}));\r\n }\r\n }}\r\n >Sequence\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n
    \r\n )\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport {\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnModalPopup,\r\n InnTextbox,\r\n useConfirm,\r\n InnActionButton\r\n} from \"../../../../component\";\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from '../../../../reducer/authSlice';\r\nimport { GetOutletMenuMapping, GetMenuMaster, AddEditOutletMenuMapping } from '../../../../services/posMasterService';\r\n\r\nexport function OutletMenuMapping(props) {\r\n const [showPOSOutletMasterDetailPopup, setShowPOSOutletMasterDetailPopup] = useState();\r\n\r\n const curr = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const defaultMenuMapping = {\r\n ClientSerNo: parseInt(curr.ClientSerNo),\r\n PropertySerNo: parseInt(curr.PropertySerNo),\r\n OutletSerNo: props.para.OutletSerNo,\r\n MenuSerNo: 0,\r\n Active: false,\r\n Mode: \"View\",\r\n NewMenuSerNo: 0,\r\n }\r\n\r\n const validMenuMapping = {\r\n MenuSerNo: \"\"\r\n }\r\n const [menuMaster, setMenuMaster] = useState([]);\r\n const [outletMenuMapping, setOutletMenuMapping] = useState([]);\r\n const [filterMenuMapping, setFilterMenuMapping] = useState([]);\r\n const [menuMappingObj, setMenuMappingObj] = useState(defaultMenuMapping);\r\n const [menuMappingValidation, setMenuMappingValidation] = useState(validMenuMapping);\r\n //const [search, setSearch] = useState(\"\");\r\n const [selectedMenuSerNo, setSelectedMenuSerNo] = useState(0);\r\n const fillMenu = () => {\r\n GetMenuMaster(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo)).then(d => {\r\n let loadMenu = [];\r\n d.data.forEach(x => {\r\n loadMenu.push({ key: x.MenuSerNo, value: x.Name });\r\n });\r\n loadMenu.splice(0, 0, { \"key\": 0, \"value\": \"Select\" });\r\n setMenuMaster(loadMenu);\r\n });\r\n }\r\n\r\n const fillOutletMenuMapping = () => {\r\n let listSort = []\r\n GetOutletMenuMapping(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo), props.para.OutletSerNo).then(d => {\r\n if (d.data && d.data.length > 0) {\r\n listSort = d.data.sort((a, b) => a.Name - b.Name);\r\n setOutletMenuMapping(listSort);\r\n setFilterMenuMapping(listSort);\r\n setMenuMappingObj((prev) => ({ ...prev, Mode: \"View\" }));\r\n if (selectedMenuSerNo == 0) {\r\n if (listSort.length > 0) {\r\n setSelectedMenuSerNo(listSort[0].MenuSerNo)\r\n let obj = listSort[0];\r\n obj.Mode = \"View\";\r\n setMenuMappingObj(obj);\r\n }\r\n }\r\n else {\r\n setSelectedMenuSerNo(selectedMenuSerNo)\r\n }\r\n }\r\n \r\n // let sortDataa = [...d.data].sort((a, b) => {\r\n // return a.Name.toLowerCase() > b.Name.toLowerCase() ? 1 : -1\r\n // })\r\n // setOutletMenuMapping(sortDataa);\r\n // setFilterMenuMapping(sortDataa);\r\n // if (d.data.length !== 0) {\r\n // let obj = sortDataa[0];\r\n // obj.Mode = \"View\";\r\n // setMenuMappingObj(obj);\r\n // }\r\n\r\n\r\n // if (d.data && d.data.length > 0) {\r\n // if (menuMappingObj.Mode == \"Add\" || menuMappingObj.Mode == \"Edit\") {\r\n // let temp = d.data.find(x => x.MenuSerNo == menuMappingObj.MenuSerNo);\r\n // temp.Mode = \"View\";\r\n // setMenuMappingObj(temp);\r\n // }\r\n // else {\r\n // //if (d.data && d.data.length > 0) {\r\n // d.data[0].Mode = \"View\";\r\n // setMenuMappingObj(d.data[0]);\r\n // // }\r\n // }\r\n // }\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n fillMenu();\r\n }, []);\r\n\r\n useEffect(() => {\r\n fillOutletMenuMapping();\r\n }, [props.para.OutletSerNo]);\r\n\r\n const handleOnSearch = (s) => {\r\n //setSearch(s);\r\n setMenuMappingObj(defaultMenuMapping);\r\n let filter = outletMenuMapping.filter(d => d.Name.toLowerCase().includes(s.toLowerCase()));\r\n setFilterMenuMapping(filter);\r\n }\r\n\r\n // const handleSearchEdit=()=>{\r\n // GetOutletMenuMapping(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo), props.para.OutletSerNo).then(d => {\r\n // let filter = d.data.filter(d => d.Name.toLowerCase().includes(search.toLowerCase()));\r\n // setFilterMenuMapping(filter);\r\n // });\r\n // }\r\n\r\n const handleOnMenuMappingClick = (e) => {\r\n let obj = outletMenuMapping.find(x => x.MenuSerNo == e.target.id);\r\n obj.Mode = \"View\";\r\n setMenuMappingObj(obj);\r\n setMenuMappingValidation(validMenuMapping)\r\n setSelectedMenuSerNo(e.target.id)\r\n }\r\n\r\n const handleOnEdit = () => {\r\n if (menuMappingObj.MenuSerNo == 0) {\r\n alertFunction(\"Please Select Menu\");\r\n }\r\n else {\r\n setMenuMappingObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n }\r\n\r\n const handleOnAdd = () => {\r\n let AddNew = JSON.parse(JSON.stringify(defaultMenuMapping));\r\n AddNew.Mode = \"Add\";\r\n setMenuMappingObj(AddNew);\r\n setMenuMappingValidation(validMenuMapping)\r\n }\r\n\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (menuMappingObj.MenuSerNo == 0) {\r\n isValid = false;\r\n setMenuMappingValidation(prev => ({ ...prev, MenuSerNo: \"Please Select Menu\" }));\r\n }\r\n if (menuMappingObj.Mode == \"Edit\") {\r\n // console.log(first)\r\n if (outletMenuMapping.filter(x => x.MenuSerNo == menuMappingObj.NewMenuSerNo).length > 0) {\r\n isValid = false;\r\n setMenuMappingValidation((prev) => ({ ...prev, MenuSerNo: \"Already Exist\" }))\r\n // alertFunction(\"Already Exist\");\r\n }\r\n }\r\n else if (menuMappingObj.Mode == \"Add\") {\r\n if (outletMenuMapping.filter(x => x.MenuSerNo == menuMappingObj.MenuSerNo).length > 0) {\r\n isValid = false;\r\n setMenuMappingValidation((prev) => ({ ...prev, MenuSerNo: \"Already Exist\" }))\r\n // alertFunction(\"Already Exist\");\r\n }\r\n }\r\n return isValid;\r\n }\r\n const handleOnSave = () => {\r\n let Valid = isValidPage();\r\n if (Valid) {\r\n let apiObj = menuMappingObj\r\n apiObj.ClientSerNo = parseInt(curr.ClientSerNo);\r\n apiObj.PropertySerNo = parseInt(curr.PropertySerNo);\r\n if (apiObj.NewMenuSerNo == undefined || apiObj.NewMenuSerNo == null) {\r\n apiObj.NewMenuSerNo = apiObj.MenuSerNo\r\n }\r\n AddEditOutletMenuMapping(apiObj).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n fillOutletMenuMapping();\r\n if (menuMappingObj.Mode == \"Add\" || menuMappingObj.Mode == \"Edit\") {\r\n // if(search!=\"\"){\r\n // handleSearchEdit();\r\n // }\r\n menuMappingObj.MenuSerNo = parseInt(d.data.ReturnValue);\r\n }\r\n }\r\n else {\r\n alertFunction(\"Something Wents Wrong.\");\r\n }\r\n });\r\n setMenuMappingObj(prev => ({ ...prev, Mode: \"View\" }));\r\n setMenuMappingValidation(validMenuMapping)\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n

    POS Outlet Master Detail

    \r\n
    \r\n
    \r\n {\r\n menuMappingObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    Menu List
    \r\n
    \r\n
      \r\n {\r\n filterMenuMapping.map(d =>\r\n
    • \r\n {d.Name}\r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n if (menuMappingObj.Mode == \"Edit\") {\r\n setMenuMappingObj(prev => ({ ...prev, NewMenuSerNo: v.key }));\r\n }\r\n else {\r\n setMenuMappingObj(prev => ({ ...prev, MenuSerNo: v.key }));\r\n }\r\n // if (menuMappingObj.Mode == \"Edit\") {\r\n // if(outletMenuMapping.filter(x => x.MenuSerNo == menuMappingObj.MenuSerNo))\r\n // {\r\n // console.log('hey1', v,);\r\n // setMenuMappingObj(prev => ({ ...prev, MenuSerNo: v.key }));\r\n // }\r\n // else{\r\n // console.log('hey2', v,);\r\n // setMenuMappingObj(prev => ({ ...prev, NewMenuSerNo: v.key }));\r\n // }\r\n // }\r\n // else {\r\n // console.log('hey3', v,);\r\n // setMenuMappingObj(prev => ({ ...prev, MenuSerNo: v.key }));\r\n // }\r\n // setMenuMappingValidation(prev => ({ ...prev, MenuSerNo: \"\" }));\r\n }}\r\n disabled={menuMappingObj.Mode == \"View\" ? true : false}\r\n >\r\n
    \r\n
    \r\n
    \r\n Active\r\n setMenuMappingObj(prev => ({ ...prev, Active: v }))}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport {\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnSingleSelectDropdown,\r\n InnActionButton,\r\n InnPlainButton,\r\n InnModalPopup,\r\n InnTextbox,\r\n InnLoader,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { GetOutletTableMaster, AddEditOutletTableMaster } from \"../../../../services/posMasterService\"\r\nimport { GetRoomMaster } from '../../../../services/frontMasterService';\r\nexport function OutletTableMaster(props) {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n TableSerNo: 0,\r\n Name: \"\",\r\n ShortName: \"\",\r\n OutletSerNo: props.para.OutletSerNo,\r\n RoomSerNo: 0,\r\n SequenceNo: 0,\r\n IsActiveOutlet: true,\r\n Mode: \"View\"\r\n }\r\n const validationObj = {\r\n \"Name\": \"\",\r\n \"ShortName\": \"\",\r\n \"RoomSerNo\": 0,\r\n \"SequenceNo\": 0\r\n }\r\n const [outletTableObj, setOutletTableObj] = useState(defaultObj);\r\n const [outletTableData, setOutletTableData] = useState([]);\r\n const [filterOutletTable, setFilterOutletTable] = useState([]);\r\n const [searchString, setsearchString] = useState(\"\");\r\n const [selectedrOutletTableSerNo, setSelectedrOutletTableSerNo] = useState();\r\n const [outletTableValidation, setOutletTableValidation] = useState(validationObj);\r\n const [isActive, setIsActive] = useState(false);\r\n const [itemRoomData, setItemRoomData] = useState([]);\r\n const fillSpecialMaster = () => {\r\n GetOutletTableMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), outletTableObj.OutletSerNo)\r\n .then((d) => {\r\n setIsActive(false)\r\n d.data.forEach((x) => {\r\n x.Mode = \"View\";\r\n if (x.RoomSerNo == null) {\r\n x.RoomSerNo = 0;\r\n }\r\n }\r\n )\r\n setOutletTableData(d.data);\r\n setFilterOutletTable(d.data);\r\n if (d.data.length > 0) {\r\n // if (outletTableObj.Mode == \"Add\" || outletTableObj.Mode == \"Edit\") {\r\n // let obj = d.data.find(x => x.TableSerNo == outletTableObj.TableSerNo);\r\n // obj.Mode = \"View\";\r\n // setOutletTableObj(obj);\r\n // }\r\n // else {\r\n d.data[0].Mode = \"View\";\r\n setOutletTableObj(d.data[0]);\r\n //}\r\n }\r\n })\r\n }\r\n\r\n const fillGetRoomMaster = () => {\r\n GetRoomMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setIsActive(false);\r\n let temp = [];\r\n d.data.forEach((x) => {\r\n if (x.IsPseudo == false ){\r\n temp = [...temp, { key: x.RoomSerNo, value: x.Name }]\r\n }\r\n })\r\n //console.log('hey', d.data);\r\n setItemRoomData(temp);\r\n })\r\n }\r\n //#region PosItemClick\r\n const handleOutletTableClick = (e) => {\r\n clearValidation();\r\n let obj = outletTableData.find(x => x.TableSerNo == e.target.id)\r\n setOutletTableObj(obj);\r\n setSelectedrOutletTableSerNo(e.target.id);\r\n }\r\n //#endregion\r\n //#region SearchChange\r\n const handleOnSearchChange = (b) => {\r\n let filterdata = outletTableData.filter(obj => obj.Name.toLowerCase().includes(b.toLowerCase()));\r\n setFilterOutletTable(filterdata);\r\n // console.log(\"filterdata >>\", filterdata);\r\n setsearchString(b);\r\n setIsActive(false);\r\n }\r\n //#endregion\r\n const clearValidation = () => {\r\n setOutletTableValidation(validationObj);\r\n }\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (outletTableValidation.Name != \"\") {\r\n setOutletTableValidation((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n isValid = false;\r\n }\r\n if (/[-’/`~!#*$@_%+=,.^&(){}[\\]|;:”<>?\\\\]/g.test(outletTableObj.Name) == true || outletTableObj.Name.trim().length == 0) {\r\n isValid = false;\r\n setOutletTableValidation((prev) => ({ ...prev, Name: \"Special character not allowed\" }));\r\n }\r\n if (outletTableObj.ShortName == \"\" || outletTableObj.ShortName.trim().length == 0) {\r\n isValid = false;\r\n setOutletTableValidation(prev => ({ ...prev, ShortName: \"Please enter valid Short Name\" }));\r\n }\r\n if (outletTableObj.SequenceNo == 0 || outletTableValidation.SequenceNo != 0) {\r\n setOutletTableValidation((prev) => ({ ...prev, SequenceNo: \"Please enter valid Sequence\" }));\r\n isValid = false;\r\n }\r\n // if (outletTableObj.RoomSerNo == 0 && props.para.IsRoomServiceOutlet == true) {\r\n // setOutletTableValidation((prev) => ({ ...prev, RoomSerNo: \"Please enter valid RoomNo\" }));\r\n // isValid = false;\r\n // }\r\n return isValid;\r\n }\r\n console.log(outletTableObj.Name)\r\n const handleOnCancelClick = () => {\r\n clearValidation();\r\n setIsActive(false);\r\n let existingObj = outletTableData.find(x => x.TableSerNo == selectedrOutletTableSerNo);\r\n\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setOutletTableObj(existingObj);\r\n console.log(\"Cancel >>\", existingObj);\r\n }\r\n else {\r\n setOutletTableObj(prev => ({ ...prev, Name: \"\", TableSerNo: 0, Mode: \"View\" }));\r\n }\r\n setsearchString(\"\");\r\n }\r\n\r\n const handleOnEditClick = () => {\r\n if (outletTableObj.Name == \"\") {\r\n alertFunction(\"Please Select Table Name\");\r\n }\r\n else {\r\n setOutletTableObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n setIsActive(false);\r\n }\r\n\r\n const handleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setOutletTableObj(obj);\r\n }\r\n\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n console.log(outletTableObj)\r\n if (IsPageValid) {\r\n setIsActive(true);\r\n let apiObj = outletTableObj;\r\n AddEditOutletTableMaster(outletTableObj).then((d) => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n setIsActive(true)\r\n alertFunction(d.data.Message);\r\n if (outletTableObj.Mode == \"Add\") {\r\n setOutletTableObj((prev) => ({ ...prev, TableSerNo: parseInt(d.data.ReturnValue) }))\r\n setSelectedrOutletTableSerNo(d.data.TableSerNo);\r\n apiObj.Mode = \"view\";\r\n setOutletTableObj(apiObj);\r\n }\r\n fillSpecialMaster();\r\n setsearchString(\"\");\r\n } else {\r\n alertFunction(\"Something Went Wrong\");\r\n }\r\n })\r\n setOutletTableObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alertFunction(\"One Or More Field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n useEffect(() => {\r\n fillSpecialMaster();\r\n fillGetRoomMaster();\r\n }, [props.para.OutletSerNo]);\r\n //console.log(\"DataRooms\",itemRoomData)\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n

    POS Outlet Table Master

    \r\n
    \r\n
    \r\n {\r\n outletTableObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    Table List
    \r\n
    \r\n
      \r\n {\r\n filterOutletTable.map(d =>\r\n
    • \r\n { handleOutletTableClick(e); console.log(d) }}>{d.Name}\r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n if ((outletTableData.every((x) => x.Name.toLowerCase() != m.toLowerCase()))) {\r\n setOutletTableValidation((prev) => ({ ...prev, Name: \"\" }))\r\n setOutletTableObj(prev => ({ ...prev, Name: m }));\r\n } else {\r\n setOutletTableValidation(prev => ({ ...prev, Name: \"Outlet Table Name already exist.\" }))\r\n }\r\n }}>Table No.\r\n
    \r\n {props.para.IsRoomServiceOutlet == true ?\r\n {\r\n setOutletTableObj((prev) => ({ ...prev, RoomSerNo: item.key, }));\r\n }}\r\n >\r\n :\r\n <>\r\n }\r\n
    \r\n\r\n {\r\n if (m == \"\") {\r\n setOutletTableValidation((prev) => ({ ...prev, ShortName: \"Invalid Short Name\" }))\r\n } else {\r\n setOutletTableObj(prev => ({ ...prev, ShortName: m }));\r\n setOutletTableValidation((prev) => ({ ...prev, ShortName: \"\" }))\r\n }\r\n }}>Short Name\r\n {\r\n if (filterOutletTable.every((x) => x.SequenceNo != m)) {\r\n setOutletTableValidation((prev) => ({ ...prev, SequenceNo: \"\" }))\r\n setOutletTableObj(prev => ({ ...prev, SequenceNo: m }));\r\n } else {\r\n setOutletTableValidation((prev) => ({ ...prev, SequenceNo: \"Invalid Sequence No\" }))\r\n }\r\n }}>Sequence No\r\n \r\n
    \r\n Active\r\n {\r\n setOutletTableObj((prev) => ({ ...prev, IsActiveOutlet: v }));\r\n //console.log(\"IsActiveOutlet\", v);\r\n }}\r\n id=\"s24\"\r\n value={outletTableObj.IsActiveOutlet}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport {\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnPlainButton,\r\n InnModalPopup,\r\n InnTextbox,\r\n InnMultiSelectDropdown,\r\n InnTimeSelection,\r\n InnActionButton,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from '../../../../reducer/authSlice';\r\nimport { GetOutletWeekHappyHoursMaster, AddEditOutletWeekHappyHoursMaster } from '../../../../services/posMasterService';\r\nimport moment from 'moment';\r\n\r\nexport function OutletHappyHourMaster(props) {\r\n const [showPOSOutletWeekHappyHoursPopup, setShowPOSOutletWeekHappyHoursPopup] = useState();\r\n const weekdayData = [\r\n { key: \"Mon\", value: \"Monday\" },\r\n { key: \"Tue\", value: \"Tuesday\" },\r\n { key: \"Wed\", value: \"Wednesday\" },\r\n { key: \"Thu\", value: \"Thursday\" },\r\n { key: \"Fri\", value: \"Friday\" },\r\n { key: \"Sat\", value: \"Saturday\" },\r\n { key: \"Sun\", value: \"Sunday\" },\r\n ];\r\n\r\n const curr = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const defaultHappyHour = {\r\n ClientSerNo: parseInt(curr.ClientSerNo),\r\n PropertySerNo: parseInt(curr.PropertySerNo),\r\n OutletSerNo: props.para.OutletSerNo,\r\n SerNo: 0,\r\n Name: \"\",\r\n WeekDay: \"\",\r\n FromTime: \"\",\r\n ToTime: \"\",\r\n Mon: false,\r\n Tue: false,\r\n Wed: false,\r\n Thu: false,\r\n Fri: false,\r\n Sat: false,\r\n Sun: false,\r\n Active: false,\r\n Mode: \"View\"\r\n }\r\n const defaultValidationObj = {\r\n Name: \"\",\r\n WeekDay: \"\",\r\n FromTime: \"\",\r\n ToTime: \"\"\r\n }\r\n const [outletHappyHourObj, setOutletHappyHourObj] = useState(defaultHappyHour);\r\n const [OutletHappyHourMaster, setOutletHappyHourMaster] = useState([]);\r\n const [filterHappyHourMaster, setFilterHappyHourMaster] = useState([]);\r\n const [selectedWeekDay, setSelectedWeekDay] = useState([]);\r\n const [validationObj, setValidationObj] = useState(defaultValidationObj);\r\n const [searchStr, setSearchStr] = useState(\"\");\r\n\r\n useEffect(() => {\r\n fillOutletHappyHour();\r\n }, [props.para.OutletSerNo]);\r\n\r\n const fillOutletHappyHour = () => {\r\n GetOutletWeekHappyHoursMaster(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo), props.para.OutletSerNo).then(d => {\r\n if (d.data) {\r\n d.data.forEach((x) => {\r\n x.FromTime = moment(x.FromTime).format(\"HH:mm\");\r\n x.ToTime = moment(x.ToTime).format(\"HH:mm\");\r\n });\r\n let sortData = [...d.data].sort((a, b) => {\r\n return a.Name.toLowerCase() > b.Name.toLowerCase() ? 1 : -1\r\n })\r\n setOutletHappyHourMaster(sortData);\r\n setFilterHappyHourMaster(sortData);\r\n\r\n if (d.data.length > 0) {\r\n let obj = sortData[0]\r\n let tempArr = [];\r\n let keys = Object.keys(obj)\r\n keys.map((x) => {\r\n let temp = weekdayData.find((o) => o.key == x)\r\n if (temp != undefined) {\r\n if (obj[x] == true) {\r\n tempArr.push(x)\r\n }\r\n }\r\n })\r\n setSelectedWeekDay(tempArr);\r\n }\r\n }\r\n });\r\n }\r\n\r\n const clearValidation = () => {\r\n setValidationObj(defaultValidationObj);\r\n }\r\n\r\n const handleOnSearch = (s) => {\r\n setSearchStr(s);\r\n setOutletHappyHourObj(defaultHappyHour);\r\n let filter = OutletHappyHourMaster.filter(x => x.Name.toLowerCase().includes(s.toLowerCase()));\r\n setFilterHappyHourMaster(filter);\r\n setSelectedWeekDay([]);\r\n }\r\n\r\n const handleOnSearchEdit = () => {\r\n // let filter = d.data.filter(x => x.Name.toLowerCase().includes(searchStr.toLowerCase()));\r\n // setFilterHappyHourMaster(filter);\r\n }\r\n\r\n const handleOnHappyHourClick = (e) => {\r\n clearValidation();\r\n let obj = OutletHappyHourMaster.find(x => x.SerNo == e.target.id);\r\n obj.Mode = \"View\";\r\n let tempArr = [];\r\n let keys = Object.keys(obj)\r\n\r\n keys.map((x) => {\r\n let temp = weekdayData.find((o) => o.key == x)\r\n if (temp != undefined) {\r\n if (obj[x] == true) {\r\n tempArr.push(x)\r\n }\r\n }\r\n })\r\n setSelectedWeekDay(tempArr);\r\n setOutletHappyHourObj(obj);\r\n }\r\n\r\n const handleOnAdd = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultHappyHour));\r\n obj.Mode = \"Add\";\r\n setOutletHappyHourObj(obj);\r\n setSelectedWeekDay([]);\r\n }\r\n const handleOnEdit = () => {\r\n if (outletHappyHourObj.SerNo !== 0 && outletHappyHourObj.SerNo !== undefined) {\r\n setOutletHappyHourObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n else {\r\n alertFunction(\"Please select outlet happy hour to continue.\");\r\n }\r\n }\r\n\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (validationObj.Name != \"\") {\r\n setValidationObj((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n isValid = false;\r\n }\r\n if (outletHappyHourObj.Name.trim().length == 0) {\r\n isValid = false;\r\n setValidationObj(prev => ({ ...prev, Name: \"Invalid Input\" }));\r\n }\r\n else if (!(/^[a-zA-Z0-9 -]*$/).test(outletHappyHourObj.Name)) {\r\n isValid = false;\r\n setValidationObj(prev => ({ ...prev, Name: \"Special characters are not allowed.\" }));\r\n }\r\n if (selectedWeekDay.length === 0) {\r\n isValid = false;\r\n setValidationObj(prev => ({ ...prev, WeekDay: \"Please select at least one.\" }));\r\n }\r\n if (outletHappyHourObj.FromTime > outletHappyHourObj.ToTime) {\r\n isValid = false;\r\n setValidationObj(prev => ({ ...prev, FromTime: \"Start time can not be greater than End time.\" }));\r\n }\r\n return isValid;\r\n }\r\n\r\n const handleOnSave = () => {\r\n let Valid = isValidPage();\r\n if (Valid) {\r\n let apiObj = outletHappyHourObj\r\n\r\n weekdayData.map((x) => {\r\n let temp = selectedWeekDay.find((o) => o == x.key)\r\n if (temp != undefined) {\r\n apiObj[x.key] = true\r\n }\r\n else {\r\n apiObj[x.key] = false\r\n }\r\n })\r\n AddEditOutletWeekHappyHoursMaster(apiObj).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n fillOutletHappyHour();\r\n if (outletHappyHourObj.Mode == \"Add\" || outletHappyHourObj.Mode == \"Edit\") {\r\n if (searchStr != \"\") {\r\n handleOnSearchEdit();\r\n }\r\n setOutletHappyHourObj((prev) => ({ ...prev, SerNo: parseInt(d.data.ReturnValue) }))\r\n }\r\n }\r\n else {\r\n alertFunction(\"Something Wents Wrong\");\r\n }\r\n });\r\n setOutletHappyHourObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n\r\n const handleOnWeek = (item, index) => {\r\n setSelectedWeekDay(item);\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n

    POS Outlet Week Happy Hours

    \r\n
    \r\n
    \r\n {\r\n outletHappyHourObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    Week Day List
    \r\n
    \r\n
      \r\n {\r\n filterHappyHourMaster.map(d =>\r\n
    • \r\n {d.Name}\r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n if (v != undefined || v != null) {\r\n setOutletHappyHourObj(prev => ({ ...prev, FromTime: v }));\r\n setValidationObj(prev => ({ ...prev, FromTime: \"\" }));\r\n }\r\n else {\r\n setOutletHappyHourObj(prev => ({ ...prev, FromTime: \"\" }));\r\n }\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n if (v != undefined || v != null) {\r\n setOutletHappyHourObj(prev => ({ ...prev, ToTime: v }));\r\n setValidationObj(prev => ({ ...prev, ToTime: \"\" }));\r\n }\r\n else {\r\n setOutletHappyHourObj(prev => ({ ...prev, ToTime: \"\" }));\r\n }\r\n }}\r\n >\r\n
    \r\n
    {validationObj.FromTime}
    \r\n
    \r\n {\r\n if ((OutletHappyHourMaster.every((x) => x.Name.toLowerCase() != v.toLowerCase()))) {\r\n setValidationObj((prev) => ({ ...prev, Name: \"\" }))\r\n setOutletHappyHourObj(prev => ({ ...prev, Name: v }));\r\n } else {\r\n setValidationObj(prev => ({ ...prev, Name: \" Week Happy Hours Name already exist.\" }))\r\n }\r\n }}\r\n >Name\r\n \r\n
    \r\n Active\r\n console.log(v)} id=\"HM\">\r\n {/* {\r\n setOutletHappyHourObj(prev => ({ ...prev, Active: v }));\r\n }}\r\n > */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n );\r\n}","import React, { useState } from 'react';\r\nimport {\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnModalPopup,\r\n InnTextbox\r\n} from \"../../../../component\";\r\n\r\nexport function OutletItemGroupMapping(props) {\r\n const [showPOSOutletItemGroupMappingPopup, setShowPOSOutletItemGroupMappingPopup] = useState();\r\n const selectData = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n

    POS Outlet Item Group Mapping

    \r\n
    \r\n
    \r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    Item Group List
    \r\n
    \r\n
      \r\n
    • Item Group 1
    • \r\n
    • Item Group 2
    • \r\n
    • Item Group 3
    • \r\n
    • Item Group 4
    • \r\n
    • Item Group 5
    • \r\n
    • Item Group 6
    • \r\n
    • Item Group 7
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n Active\r\n console.log(v)} id=\"s23\" value={true}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport {\r\n InnActionButton,\r\n InnMultiSelectDropdown,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnSingleDateSelection,\r\n InnModalPopup,\r\n InnTimeSelection,\r\n InnLoader,\r\n InnCheckbox,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport { OutletMenuMapping } from './outlet-menu-mapping';\r\nimport { OutletTableMaster } from './outlet-table-master';\r\nimport { OutletHappyHourMaster } from './outlet-happy-hour-master';\r\nimport { OutletItemGroupMapping } from './outlet-item-group-mapping';\r\nimport { GetOutletMaster, AddEditOutletMaster } from '../../../../services/posMasterService';\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from '../../../../reducer/authSlice';\r\nimport { GetTransactionMaster } from '../../../../services/reservationService';\r\nimport { GetServerMaster } from '../../../../services/posMasterService';\r\nimport { cmbGetSourceMaster } from '../../../../services/reservationService';\r\nimport { cmbGetMarketMaster } from '../../../../services/reservationService';\r\n\r\nexport function POSOutletMaster(props) {\r\n const weekdayData = [\r\n { key: \"Monday\", value: \"Monday\" },\r\n { key: \"Tuesday\", value: \"Tuesday\" },\r\n { key: \"Wednesday\", value: \"Wednesday\" },\r\n { key: \"Thursday\", value: \"Thursday\" },\r\n { key: \"Friday\", value: \"Friday\" },\r\n { key: \"Suturday\", value: \"Suturday\" },\r\n { key: \"Sunday\", value: \"Sunday\" },\r\n ];\r\n const curr = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const defaultOutlet = {\r\n ClientSerNo: parseInt(curr.ClientSerNo),\r\n PropertySerNo: parseInt(curr.PropertySerNo),\r\n OutletSerNo: 0,\r\n Name: \"\",\r\n ShortName: \"\",\r\n TransactionSerNo: 0,\r\n PaymodeSerNo: 0,\r\n KOTPrinter: \"\",\r\n IsDeptWiseKOTPrint: false,\r\n IsPrintKOT: false,\r\n Prefix: \"\",\r\n //CheckSerNo: 0,\r\n //BillNo: 0,\r\n BillFormat: \"\",\r\n IsOtherPaymodeAllow: false,\r\n IsAllowDayClosing: false,\r\n IsAllowManualKOT: false,\r\n DiscountAmt: 0,\r\n IsDiscountPercentage: false,\r\n IsRoomServiceOutlet: false,\r\n InvoicePrinter: \"\",\r\n NoOfPrintInvoice: 0,\r\n DefaultPax: 0,\r\n DefaultServerSerNo: 0,\r\n IsAllowItemCancel: false,\r\n IsAllowCalSummary: false,\r\n SequenceNo: 0,\r\n IsCashCounterOutlet: false,\r\n NoOfPrintKOT: 0,\r\n ShowOptModifier: false,\r\n IsBanquetOutlet: false,\r\n KOTPrinter2: \"\",\r\n SourceSerNo: 0,\r\n ImplementDisplayOrdNo: false,\r\n //OrderNo: 0,\r\n NoOfCover: 0,\r\n IsMiniBarOutlet: false,\r\n MarketSerNo: 0,\r\n IsImplementClubMember: false,\r\n Mode: \"View\"\r\n }\r\n const validOutlet = {\r\n Name: \"\",\r\n TransactionSerNo: 0,\r\n KOTPrinter: \"\",\r\n DiscountAmt: 0,\r\n InvoicePrinter: \"\",\r\n NoOfPrintInvoice: 0,\r\n DefaultPax: 0,\r\n DefaultServerSerNo: 0,\r\n SequenceNo: 0,\r\n NoOfPrintKOT: 0,\r\n //CheckSerNo: 0,\r\n //BillNo: 0,\r\n SourceSerNo: 0,\r\n //OrderNo: 0,\r\n NoOfCover: 0,\r\n MarketSerNo: 0\r\n }\r\n\r\n const billFormatData = [\r\n { key: \"PLN\", value: \"Plain\" },\r\n { key: \"PRE\", value: \"Pre Printed\" },\r\n { key: \"BTR\", value: \"Butter Paper\" }\r\n ]\r\n\r\n const [outletObj, setOutletObj] = useState(defaultOutlet);\r\n const [outletMaster, setOutletMaster] = useState([]);\r\n const [filterOutletMaster, setFilterOutletMaster] = useState([]);\r\n const [outletValidation, setOutletValidation] = useState(validOutlet);\r\n const [payMode, setPayMode] = useState([{ key: 0, value: \"Select\" }]);\r\n const [selectedOutletSerNo, setSelectedOutletSerNo] = useState(0);\r\n const [search, setSearch] = useState(\"\");\r\n const [isActive, setIsActive] = useState(false);\r\n const [showPOSOutletMasterDetailPopup, setShowPOSOutletMasterDetailPopup] = useState();\r\n const [showPOSOutletTableMasterPopup, setShowPOSOutletTableMasterPopup] = useState();\r\n const [showPOSOutletWeekHappyHoursPopup, setShowPOSOutletWeekHappyHoursPopup] = useState();\r\n const [showPOSOutletItemGroupMappingPopup, setShowPOSOutletItemGroupMappingPopup] = useState();\r\n\r\n //#region TransactionMaster,ServerMaster,SourceMaster,MarketMaster\r\n const [transactionData, setTransactionData] = useState([{ key: 0, value: \"Select\" }]);\r\n const [serverData, setServerData] = useState([{ key: 0, value: \"Select\" }]);\r\n const [sourceData, setSourceData] = useState([]);\r\n const [marketData, setMarketData] = useState([]);\r\n //#endregion\r\n\r\n const fillOutlet = () => {\r\n setIsActive(true);\r\n GetOutletMaster(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo)).then(d => {\r\n let sortData = [...d.data].sort((a, b) => {\r\n return a.Name.toLowerCase() > b.Name.toLowerCase() ? 1 : -1\r\n })\r\n setOutletMaster(sortData);\r\n setFilterOutletMaster(sortData);\r\n if (d.data.length > 0) {\r\n // if (outletObj.Mode == \"Add\" || outletObj.Mode == \"Edit\") {\r\n // let obj = d.data.find(x => x.OutletSerNo == outletObj.OutletSerNo);\r\n // obj.Mode = \"View\";\r\n // setOutletObj(obj);\r\n // }\r\n // else {\r\n d.data[0].Mode = \"View\";\r\n setOutletObj(d.data[0]);\r\n //}\r\n }\r\n setIsActive(false);\r\n });\r\n }\r\n\r\n const fillPayMode = () => {\r\n setIsActive(true);\r\n GetTransactionMaster(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo), \"P\", \"G\").then(d => {\r\n let temp = [];\r\n d.data.forEach((x) => {\r\n temp.push({ key: x.TransactionSerNo, value: x.Name });\r\n });\r\n temp.splice(0, 0, { \"key\": 0, \"value\": \"Select\" });\r\n setPayMode(temp);\r\n setIsActive(false);\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n fillOutlet();\r\n fillPayMode();\r\n }, []);\r\n\r\n useEffect(() => {\r\n fillTransactionData();\r\n fillServerMaster();\r\n fillSourceData();\r\n fillMarketData();\r\n }, []);\r\n\r\n const clearValidation = () => {\r\n setOutletValidation(validOutlet);\r\n }\r\n\r\n //#region TransactionMaster,ServerMaste,SourceMaster,MarketMaster\r\n const fillTransactionData = () => {\r\n GetTransactionMaster(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo), 'C', 'P').then(d => {\r\n if (d.data != undefined) {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach(ele => {\r\n temp.push({ key: parseInt(ele.TransactionSerNo), value: ele.Name });\r\n });\r\n setTransactionData(temp);\r\n }\r\n })\r\n }\r\n\r\n const fillServerMaster = () => {\r\n GetServerMaster(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo)).then(d => {\r\n if (d.data != undefined) {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach(ele => {\r\n temp.push({ key: parseInt(ele.ServerSerNo), value: ele.Name })\r\n });\r\n setServerData(temp);\r\n }\r\n })\r\n }\r\n\r\n const fillSourceData = () => {\r\n cmbGetSourceMaster(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo)).then(d => {\r\n if (d.data != undefined) {\r\n let temp = [];\r\n d.data.forEach(ele => {\r\n temp.push({ key: parseInt(ele.key), value: ele.value })\r\n });\r\n setSourceData(temp);\r\n }\r\n })\r\n }\r\n\r\n const fillMarketData = () => {\r\n cmbGetMarketMaster(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo)).then(d => {\r\n if (d.data != undefined) {\r\n let temp = [];\r\n d.data.forEach(ele => {\r\n temp.push({ key: parseInt(ele.key), value: ele.value })\r\n });\r\n setMarketData(temp);\r\n }\r\n })\r\n }\r\n\r\n //#endregion\r\n\r\n const handleOnSearch = (s) => {\r\n setSearch(s);\r\n setOutletObj(defaultOutlet);\r\n let filterOutlet = outletMaster.filter(x => x.Name.toLowerCase().includes(s.toLowerCase()));\r\n setFilterOutletMaster(filterOutlet);\r\n }\r\n\r\n const handleSearchEdit = () => {\r\n GetOutletMaster(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo)).then(d => {\r\n let filterEdit = d.data.filter(x => x.Name.toLowerCase().includes(search.toLowerCase()));\r\n setFilterOutletMaster(filterEdit);\r\n });\r\n }\r\n\r\n const handleOutletClick = (e) => {\r\n clearValidation();\r\n let obj = outletMaster.find(x => x.OutletSerNo == e.target.id);\r\n obj.Mode = \"View\";\r\n setOutletObj(obj);\r\n console.log(\"Click >>\", obj);\r\n setSelectedOutletSerNo(e.target.id);\r\n }\r\n\r\n const handleOnAdd = () => {\r\n let Add = JSON.parse(JSON.stringify(defaultOutlet));\r\n Add.Mode = \"Add\";\r\n setOutletObj(Add);\r\n }\r\n\r\n const handleOnEdit = () => {\r\n if (outletObj.Name == \"\") {\r\n alertFunction(\"Please Select POS Outlet Type\");\r\n }\r\n else {\r\n setOutletObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n }\r\n\r\n const handleOnCancel = () => {\r\n clearValidation();\r\n let existingObj = outletMaster.find(x => x.OutletSerNo == selectedOutletSerNo);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setOutletObj(existingObj);\r\n }\r\n else {\r\n setOutletObj(defaultOutlet);\r\n }\r\n }\r\n const isValidOnlyIntegerNumber = (value) => {\r\n let isValid = /^[0-9]+$/.test(value);\r\n\r\n if (isNaN(value) || value < 0) {\r\n isValid = false;\r\n }\r\n return isValid;\r\n };\r\n const isValidInteger = (value) => {\r\n let isValid = /^[0-9]+$/.test(value);\r\n return isValid;\r\n };\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (outletValidation.Name != \"\") {\r\n setOutletValidation((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n isValid = false;\r\n }\r\n if (outletObj.Name == \"\" || outletObj.Name.trim().length == 0) {\r\n isValid = false;\r\n setOutletValidation(prev => ({ ...prev, Name: \"Invalid Input\" }));\r\n }\r\n if (isValidOnlyIntegerNumber(outletObj.TransactionSerNo) == false || outletObj.TransactionSerNo == 0) {\r\n isValid = false;\r\n setOutletValidation(prev => ({ ...prev, TransactionSerNo: \"Input Only number\" }));\r\n }\r\n if (outletObj.KOTPrinter == \"\" || outletObj.KOTPrinter.trim().length == 0) {\r\n isValid = false;\r\n setOutletValidation(prev => ({ ...prev, KOTPrinter: \"Input kotPrinter Name\" }));\r\n }\r\n if (isValidOnlyIntegerNumber(outletObj.DiscountAmt) == false || isNaN(outletObj.DiscountAmt)) {\r\n setOutletValidation(prev => ({ ...prev, DiscountAmt: \"Input Only number\" }));\r\n isValid = false;\r\n } else {\r\n if (parseFloat(outletObj.DiscountAmt) > 100 && outletObj.IsDiscountPercentage == true) {\r\n setOutletValidation(prev => ({ ...prev, DiscountAmt: \"Enter discount less than 100\" }));\r\n isValid = false;\r\n }\r\n }\r\n if (outletObj.InvoicePrinter == \"\" || outletObj.InvoicePrinter.trim().length == 0) {\r\n isValid = false;\r\n setOutletValidation(prev => ({ ...prev, InvoicePrinter: \"Input invoice printer\" }));\r\n }\r\n if (isValidOnlyIntegerNumber(outletObj.NoOfPrintInvoice) == false || outletObj.NoOfPrintInvoice == 0) {\r\n isValid = false;\r\n setOutletValidation(prev => ({ ...prev, NoOfPrintInvoice: \"Input No of Print Invoice\" }));\r\n }\r\n if (isValidOnlyIntegerNumber(outletObj.DefaultPax) == false || outletObj.DefaultPax == 0) {\r\n isValid = false;\r\n setOutletValidation(prev => ({ ...prev, DefaultPax: \"Input default Pax\" }));\r\n }\r\n if (isValidOnlyIntegerNumber(outletObj.DefaultServerSerNo) == false || outletObj.DefaultServerSerNo == 0) {\r\n isValid = false;\r\n setOutletValidation(prev => ({ ...prev, DefaultServerSerNo: \"Input default ServerSerNo\" }));\r\n }\r\n if (isValidOnlyIntegerNumber(outletObj.SequenceNo) == false || outletObj.SequenceNo == 0 || parseInt(outletObj.SequenceNo) <= 0) {\r\n isValid = false;\r\n setOutletValidation(prev => ({ ...prev, SequenceNo: \"Input sequence number\" }));\r\n }\r\n if (isValidOnlyIntegerNumber(outletObj.NoOfPrintKOT) == false || outletObj.NoOfPrintKOT == 0) {\r\n isValid = false;\r\n setOutletValidation(prev => ({ ...prev, NoOfPrintKOT: \"Input No of Print Kot\" }));\r\n }\r\n // if (isValidOnlyIntegerNumber(outletObj.CheckSerNo) == false) {\r\n // isValid = false;\r\n // setOutletValidation(prev => ({ ...prev, CheckSerNo: \"Input only number\" }));\r\n // }\r\n // if (isValidOnlyIntegerNumber(outletObj.BillNo) == false) {\r\n // isValid = false;\r\n // setOutletValidation(prev => ({ ...prev, BillNo: \"Input only number\" }));\r\n // }\r\n // if (isValidOnlyIntegerNumber(outletObj.OrderNo) == false) {\r\n // isValid = false;\r\n // setOutletValidation(prev => ({ ...prev, OrderNo: \"Input only number\" }));\r\n // }\r\n if (isValidOnlyIntegerNumber(outletObj.NoOfCover) == false) {\r\n isValid = false;\r\n setOutletValidation(prev => ({ ...prev, NoOfCover: \"Input only number\" }));\r\n }\r\n // if (isValidInteger(outletObj.SourceSerNo) == false) {\r\n // isValid = false;\r\n // setOutletValidation(prev => ({ ...prev, SourceSerNo: \"Input only number\" }));\r\n // }\r\n // if (isValidInteger(outletObj.MarketSerNo) == false) {\r\n // isValid = false;\r\n // setOutletValidation(prev => ({ ...prev, MarketSerNo: \"Input only number\" }));\r\n // }\r\n return isValid;\r\n }\r\n\r\n const handleOnSave = () => {\r\n let Valid = isValidPage();\r\n if (Valid) {\r\n outletObj.ClientSerNo = parseInt(curr.ClientSerNo);\r\n outletObj.PropertySerNo = parseInt(curr.PropertySerNo);\r\n // outletObj.SourceSerNo = parseInt(outletObj.SourceSerNo);\r\n // outletObj.MarketSerNo = parseInt(outletObj.MarketSerNo);\r\n AddEditOutletMaster(outletObj).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n fillOutlet();\r\n if (outletObj.Mode == \"Add\" || outletObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n handleSearchEdit();\r\n }\r\n outletObj.OutletSerNo = parseInt(d.data.ReturnValue);\r\n setSelectedOutletSerNo(d.data.ReturnValue);\r\n }\r\n }\r\n else {\r\n alertFunction(\"Something Wents Wrong\");\r\n }\r\n });\r\n setOutletObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    POS Outlet Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    POS Outlet Type
    \r\n
    \r\n
      \r\n {\r\n filterOutletMaster.map(d =>\r\n
    • \r\n {d.Name}\r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n {\r\n if ((outletMaster.every((x) => x.Name.toLowerCase() != v.toLowerCase()))) {\r\n setOutletValidation((prev) => ({ ...prev, Name: \"\" }))\r\n setOutletObj(prev => ({ ...prev, Name: v }));\r\n } else {\r\n setOutletValidation(prev => ({ ...prev, Name: \"Outlet Name already exist.\" }))\r\n }\r\n }}\r\n >Outlet Name\r\n {\r\n setOutletObj(prev => ({ ...prev, ShortName: v }));\r\n }}\r\n >Short Name\r\n {/* {\r\n setOutletObj(prev => ({ ...prev, TransactionSerNo: v }));\r\n setOutletValidation(prev => ({ ...prev, TransactionSerNo: \"\" }));\r\n }}\r\n >Transaction ID */}\r\n
    \r\n {\r\n setOutletObj(prev => ({ ...prev, TransactionSerNo: v.key }));\r\n setOutletValidation(prev => ({ ...prev, TransactionSerNo: \"\" }));\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n setOutletObj(prev => ({ ...prev, PaymodeSerNo: v.key }));\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setOutletObj(prev => ({ ...prev, DiscountAmt: parseInt(v) }));\r\n setOutletValidation(prev => ({ ...prev, DiscountAmt: \"\" }));\r\n }}\r\n >\r\n Discount Amount\r\n \r\n
    \r\n
    \r\n {\r\n clearValidation();\r\n setOutletObj(prev => ({ ...prev, IsDiscountPercentage: ischecked }))\r\n }}\r\n >\r\n Percentage\r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n setOutletObj(prev => ({ ...prev, DefaultPax: v }));\r\n setOutletValidation(prev => ({ ...prev, DefaultPax: \"\" }));\r\n }}\r\n >Default Pax No\r\n
    \r\n {\r\n setOutletObj(prev => ({ ...prev, DefaultServerSerNo: v.key }));\r\n setOutletValidation(prev => ({ ...prev, DefaultServerSerNo: \"\" }));\r\n }}\r\n >\r\n
    \r\n {\r\n if (filterOutletMaster.every((x) => x.SequenceNo != v)) {\r\n setOutletValidation(prev => ({ ...prev, SequenceNo: \"\" }));\r\n setOutletObj(prev => ({ ...prev, SequenceNo: v }));\r\n } else {\r\n setOutletValidation(prev => ({ ...prev, SequenceNo: \"Invalid Sequence\" }));\r\n }\r\n }}\r\n >Sequence No\r\n
    \r\n {\r\n setOutletObj(prev => ({ ...prev, SourceSerNo: v.key }));\r\n setOutletValidation(prev => ({ ...prev, SourceSerNo: \"\" }));\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n setOutletObj(prev => ({ ...prev, MarketSerNo: v.key }));\r\n setOutletValidation(prev => ({ ...prev, MarketSerNo: \"\" }));\r\n }}\r\n >\r\n
    \r\n {\r\n setOutletObj(prev => ({ ...prev, NoOfCover: v }));\r\n setOutletValidation(prev => ({ ...prev, NoOfCover: \"\" }));\r\n }}\r\n >No Of Cover\r\n\r\n
    \r\n
    \r\n {\r\n setOutletObj(prev => ({ ...prev, KOTPrinter: v }));\r\n setOutletValidation(prev => ({ ...prev, KOTPrinter: \"\" }));\r\n }}\r\n >KOT Printer\r\n {\r\n setOutletObj(prev => ({ ...prev, NoOfPrintKOT: v }));\r\n setOutletValidation(prev => ({ ...prev, NoOfPrintKOT: \"\" }));\r\n }}\r\n >No Of Print KOT\r\n {\r\n setOutletObj(prev => ({ ...prev, KOTPrinter2: v }));\r\n }}\r\n >KOT Printer 2\r\n {\r\n setOutletObj(prev => ({ ...prev, Prefix: v }));\r\n }}\r\n >Prefix\r\n
    \r\n {\r\n setOutletObj(prev => ({ ...prev, BillFormat: v.key }));\r\n setOutletValidation(prev => ({ ...prev, BillFormat: \"\" }));\r\n }}\r\n >\r\n
    \r\n {\r\n setOutletObj(prev => ({ ...prev, InvoicePrinter: v }));\r\n setOutletValidation(prev => ({ ...prev, InvoicePrinter: \"\" }));\r\n }}\r\n >Invoice Printer\r\n {\r\n setOutletObj(prev => ({ ...prev, NoOfPrintInvoice: v }));\r\n setOutletValidation(prev => ({ ...prev, NoOfPrintInvoice: \"\" }));\r\n }}\r\n >No Of Print Invoice\r\n
    \r\n
    \r\n
    \r\n
    \r\n Dept Wise KOT Print\r\n setOutletObj(prev => ({ ...prev, IsDeptWiseKOTPrint: v }))}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n Print KOT\r\n setOutletObj(prev => ({ ...prev, IsPrintKOT: v }))}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n Other Paymode Allow\r\n setOutletObj(prev => ({ ...prev, IsOtherPaymodeAllow: v }))}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n Allow Day Closing\r\n setOutletObj(prev => ({ ...prev, IsAllowDayClosing: v }))}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n Allow Manual KOT\r\n setOutletObj(prev => ({ ...prev, IsAllowManualKOT: v }))}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n Room Service Outlet\r\n setOutletObj(prev => ({ ...prev, IsRoomServiceOutlet: v }))}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n Allow Item Cancel\r\n setOutletObj(prev => ({ ...prev, IsAllowItemCancel: v }))}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n Allow Cal Summary\r\n setOutletObj(prev => ({ ...prev, IsAllowCalSummary: v }))}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n Cash Counter Outlet\r\n setOutletObj(prev => ({ ...prev, IsCashCounterOutlet: v }))}\r\n >\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n Show Opt Modifier\r\n setOutletObj(prev => ({ ...prev, ShowOptModifier: v }))}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n Banquet Outlet\r\n setOutletObj(prev => ({ ...prev, IsBanquetOutlet: v }))}\r\n >\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n Implement Display Ord No\r\n setOutletObj(prev => ({ ...prev, ImplementDisplayOrdNo: v }))}\r\n >\r\n
    \r\n
    \r\n {/* {\r\n setOutletObj(prev => ({ ...prev, OrderNo: v }));\r\n setOutletValidation(prev => ({ ...prev, OrderNo: \"\" }));\r\n }}\r\n >Order No */}\r\n\r\n
    \r\n
    \r\n Mini Bar Outlet\r\n setOutletObj(prev => ({ ...prev, IsMiniBarOutlet: v }))}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n Implement Club Member\r\n setOutletObj(prev => ({ ...prev, IsImplementClubMember: v }))}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {\r\n if (outletObj.OutletSerNo != 0) {\r\n setShowPOSOutletMasterDetailPopup(true)\r\n } else {\r\n alertFunction(\"Please select Outlet Type to continue.\")\r\n }\r\n }} >POS Outlet Master Detail
    \r\n
    {\r\n if (outletObj.OutletSerNo != 0) {\r\n setShowPOSOutletTableMasterPopup(true)\r\n } else {\r\n alertFunction(\"Please select Outlet Type to continue.\")\r\n }\r\n }}>POS Outlet Table Master
    \r\n
    {\r\n if (outletObj.OutletSerNo != 0) {\r\n setShowPOSOutletWeekHappyHoursPopup(true)\r\n } else {\r\n alertFunction(\"Please select Outlet Type to continue.\")\r\n }\r\n }}>POS Outlet Week Happy Hours
    \r\n
    {\r\n if (outletObj.OutletSerNo != 0) {\r\n setShowPOSOutletItemGroupMappingPopup(true)\r\n } else {\r\n alertFunction(\"Please select Outlet Type to continue.\")\r\n }\r\n }}>POS Outlet Item Group Mapping
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n {\r\n outletObj.Mode == \"View\" ?\r\n <>\r\n Activate console.log(v)} id=\"OM\">\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* POS Outlet Master Detail modal popup start */}\r\n {showPOSOutletMasterDetailPopup ?\r\n {\r\n setShowPOSOutletMasterDetailPopup(false)\r\n }}\r\n >\r\n \r\n : null}\r\n {/* POS Outlet Master Detail modal popup end */}\r\n\r\n {/* POS Outlet Table Master start */}\r\n {showPOSOutletTableMasterPopup ?\r\n {\r\n setShowPOSOutletTableMasterPopup(false)\r\n }}\r\n >\r\n \r\n : null}\r\n {/* POS Outlet Table Master end */}\r\n\r\n {/* POS Outlet Week Happy Hours start */}\r\n {showPOSOutletWeekHappyHoursPopup ?\r\n {\r\n setShowPOSOutletWeekHappyHoursPopup(false)\r\n }}\r\n >\r\n \r\n : null}\r\n {/* POS Outlet Week Happy Hours end */}\r\n\r\n {/* POS Outlet Item Group Mapping modal popup start*/}\r\n {showPOSOutletItemGroupMappingPopup ?\r\n {\r\n setShowPOSOutletItemGroupMappingPopup(false)\r\n }}\r\n >\r\n \r\n : null}\r\n {/* POS Outlet Item Group Mapping modal popup end*/}\r\n\r\n
    \r\n );\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnPlainButton,\r\n InnSingleSelectDropdown,\r\n InnFileUpload,\r\n InnLoader,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { GetPOSItemMaster, AddEditGetPOSItemMaster, GetItemGroupMaster, GetCourseMaster, GetHSN_SAC_CodeMaster } from \"../../../../services/posMasterService\"\r\nimport { GetItemGroupMasterBySerNo } from \"../../../../services/posMasterService\";\r\n\r\nexport function PosItemMaster() {\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"ItemSerNo\": 0,\r\n \"Name\": \"\",\r\n \"MaskName\": \"\",\r\n \"BarCode\": \"\",\r\n \"IsOpenItem\": false,\r\n \"ItemGroupSerNo\": 0,\r\n \"ItemSubGroupSerNo\": 0,\r\n \"CourseSerNo\": 0,\r\n \"ItemCode\": \"\",\r\n \"ItemType\": \"\",\r\n \"ItemPath\": \"\",\r\n \"HSNCode\": \"\",\r\n \"Mode\": \"View\"\r\n }\r\n const validationObj = {\r\n \"Name\": \"\",\r\n \"MaskName\": \"\",\r\n \"BarCode\": \"\",\r\n \"ItemCode\": \"\",\r\n \"ItemGroupSerNo\": 0,\r\n \"ItemSubGroupSerNo\": 0,\r\n \"CourseSerNo\": 0,\r\n \"HSNCode\": \"\"\r\n }\r\n const ItemTypeList = [\r\n { key: \"Veg\", value: \"Veg\" },\r\n { key: \"Nveg\", value: \"Non-Veg\" }\r\n ]\r\n //#region State Variable\r\n const [posItemObj, setPosItemObj] = useState(defaultObj);\r\n const [posItemData, setPosItemData] = useState([]);\r\n const [filterPosItem, setFilterPosItem] = useState([]);\r\n const [selectedrPosItemSerNo, setSelectedrPosItemSerNo] = useState();\r\n const [posItemValidation, setPosItemValidation] = useState(validationObj);\r\n const [searchString, setsearchString] = useState(\"\");\r\n const [isActive, setIsActive] = useState(false);\r\n const [itemGroupData, setItemGroupData] = useState([]);\r\n const [courseSerNoData, setCourseSerNoData] = useState([]);\r\n const [hsnSacCodeData, setHsnSacCodeData] = useState([]);\r\n const [loadItemSubGroupData, setLoadItemSubGroupData] = useState([]);\r\n //#endregion\r\n\r\n //#region UseEffect\r\n useEffect(() => {\r\n if (posItemObj.ItemGroupSerNo != undefined) {\r\n fillItemGroupMasterBySerNo();\r\n }\r\n }, [posItemObj.ItemGroupSerNo]);\r\n\r\n useEffect(() => {\r\n fillPosItemMaster();\r\n fillGetItemGroupMaster();\r\n fillGetCourseMaster();\r\n fillGetHsnSacCodeMaster();\r\n }, []);\r\n //#endregion \r\n\r\n //#region fillMasterData \r\n const fillPosItemMaster = () => {\r\n GetPOSItemMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setIsActive(false);\r\n let sortData = [...d.data].sort((a, b) => {\r\n return a.Name.toLowerCase() > b.Name.toLowerCase() ? 1 : -1\r\n })\r\n setPosItemData(sortData);\r\n if (searchString != \"\") {\r\n setFilterPosItem(sortData.filter(obj => obj.Name.toLowerCase().includes(searchString.toLowerCase())))\r\n }\r\n else {\r\n setFilterPosItem(sortData);\r\n }\r\n if (d.data.length > 0) {\r\n if (posItemObj.Mode == \"Add\" || posItemObj.Mode == \"Edit\") {\r\n let obj = sortData.find(x => x.ItemSerNo == posItemObj.ItemSerNo);\r\n obj.Mode = \"View\";\r\n setPosItemObj(obj);\r\n }\r\n else {\r\n sortData[0].Mode = \"View\";\r\n setPosItemObj(sortData[0]);\r\n }\r\n }\r\n })\r\n }\r\n const fillGetItemGroupMaster = () => {\r\n GetItemGroupMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n let temp = [{ key: 0, value: \"Select Item Group Type\" }];\r\n d.data.forEach((x) => {\r\n temp = [...temp, { key: x.ItemGroupSerNo, value: x.Name }]\r\n })\r\n setItemGroupData(temp);\r\n })\r\n }\r\n\r\n const fillItemGroupMasterBySerNo = () => {\r\n GetItemGroupMasterBySerNo(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), posItemObj.ItemGroupSerNo).then(d => {\r\n let temp = [{ key: 0, value: \"Select Item Sub Group Type\" }];\r\n d.data.forEach(ele => {\r\n temp = [...temp, { key: ele.ItemSubGroupSerNo, value: ele.Name }]\r\n })\r\n setLoadItemSubGroupData(temp)\r\n })\r\n }\r\n\r\n const fillGetCourseMaster = () => {\r\n GetCourseMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setIsActive(false);\r\n let temp = [];\r\n d.data.forEach((x) => {\r\n temp = [...temp, { key: x.CourseSerNo, value: x.Name }]\r\n })\r\n setCourseSerNoData(temp);\r\n })\r\n }\r\n const fillGetHsnSacCodeMaster = () => {\r\n GetHSN_SAC_CodeMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setIsActive(false);\r\n let temp = [];\r\n d.data.forEach((x) => {\r\n temp = [...temp, { key: x.HSN_SAC_Code, value: x.Description }]\r\n })\r\n setHsnSacCodeData(temp);\r\n })\r\n }\r\n //#endregion\r\n\r\n //#region Validation \r\n const clearValidation = () => {\r\n setPosItemValidation(validationObj);\r\n }\r\n\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (posItemValidation.Name != \"\") {\r\n setPosItemValidation((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n isValid = false;\r\n }\r\n if (posItemObj.Name == \"\" || posItemObj.Name.trim().length == 0 ) {\r\n isValid = false;\r\n setPosItemValidation(prev => ({ ...prev, Name: \"Please enter valid Name\" }));\r\n }\r\n // if (posItemObj.MaskName == \"\" || posItemValidation.MaskName !== \"\") {\r\n // isValid = false;\r\n // setPosItemValidation(prev => ({ ...prev, MaskName: \"Please enter valid Mask Name\" }));\r\n // }\r\n // if (posItemObj.BarCode == \"\" || posItemValidation.BarCode !== \"\") {\r\n // isValid = false;\r\n // setPosItemValidation(prev => ({ ...prev, BarCode: \"Please enter valid BarCode\" }));\r\n // }\r\n if (posItemObj.ItemGroupSerNo == 0) {\r\n setPosItemValidation((prev) => ({ ...prev, ItemGroupSerNo: \"Please Select valid ItemGroup\" }))\r\n isValid = false;\r\n }\r\n // if (posItemObj.ItemSubGroupSerNo == 0) {\r\n // setPosItemValidation((prev) => ({ ...prev, ItemSubGroupSerNo: \"Please enter valid ItemSubGroup\" }))\r\n // isValid = false;\r\n // }\r\n // if (posItemObj.CourseSerNo == 0) {\r\n // setPosItemValidation((prev) => ({ ...prev, CourseSerNo: \"Please enter valid Course\" }))\r\n // isValid = false;\r\n // }\r\n // if (posItemObj.ItemType == \"\") {\r\n // isValid = false;\r\n // setPosItemValidation(prev => ({ ...prev, ItemType: \"Please enter valid Item Type\" }));\r\n // }\r\n // if (posItemObj.ItemCode == \"\" || posItemValidation.ItemCode !== \"\") {\r\n // isValid = false;\r\n // setPosItemValidation(prev => ({ ...prev, ItemCode: \"Please enter valid ItemCode\" }));\r\n // }\r\n // if (posItemObj.ItemPath == \"\" ) {\r\n // isValid = false;\r\n // setPosItemValidation(prev => ({ ...prev, ItemPath: \"Please Upload valid Item Path\" }));\r\n // }\r\n // if (posItemObj.HSNCode == 0){\r\n // setPosItemValidation((prev) => ({ ...prev, HSNCode: \"Please enter valid HSN Code\" }));\r\n // isValid = false;\r\n // }\r\n return isValid;\r\n }\r\n //#endregion\r\n\r\n //#region SearchChange\r\n const handleOnSearchChange = (b) => {\r\n let filterdata = posItemData.filter(obj => obj.Name.toLowerCase().includes(b.toLowerCase()));\r\n setFilterPosItem(filterdata);\r\n setsearchString(b);\r\n setIsActive(false);\r\n }\r\n //#endregion\r\n\r\n //#region PosItemClick\r\n const handlePosItemClick = (e) => {\r\n clearValidation();\r\n let obj = posItemData.find(x => x.ItemSerNo == e.target.id)\r\n obj.Mode = \"View\";\r\n setPosItemObj(obj);\r\n setSelectedrPosItemSerNo(e.target.id);\r\n }\r\n //#endregion\r\n\r\n //#region EventHandle \r\n const handleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setPosItemObj(obj);\r\n }\r\n const handleOnEditClick = () => {\r\n if (posItemObj.Name == \"\") {\r\n alertFunction(\"Please Select PosItem Name\");\r\n }\r\n else {\r\n setPosItemObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n setIsActive(false);\r\n }\r\n const handleOnCancelClick = () => {\r\n clearValidation();\r\n setIsActive(false);\r\n let existingObj = posItemData.find(x => x.ItemSerNo == posItemObj.ItemSerNo);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setPosItemObj(existingObj);\r\n }\r\n else {\r\n setPosItemObj(prev => ({ ...prev, Name: \"\", ItemSerNo: 0, Mode: \"View\" }));\r\n }\r\n setsearchString(\"\");\r\n }\r\n\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n setIsActive(true);\r\n let apiObj = posItemObj;\r\n AddEditGetPOSItemMaster(apiObj).then((d) => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n setIsActive(true)\r\n alertFunction(d.data.Message);\r\n if (apiObj.Mode == \"Add\") {\r\n apiObj.ItemSerNo = parseInt(d.data.ReturnValue);\r\n setSelectedrPosItemSerNo(parseInt(d.data.ReturnValue));\r\n //apiObj.Mode = \"view\";\r\n setPosItemObj(apiObj);\r\n }\r\n fillPosItemMaster();\r\n } else {\r\n alertFunction(\"Something Went Wrong\");\r\n }\r\n })\r\n setPosItemObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alertFunction(\"One Or More Field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n //#endregion\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    POS Item Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Item List
    \r\n
    \r\n
      \r\n {\r\n filterPosItem.map(d =>\r\n
    • \r\n {d.Name}\r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n {\r\n if ((posItemData.every((x) => x.Name.toLowerCase() != m.toLowerCase()))) {\r\n setPosItemValidation((prev) => ({ ...prev, Name: \"\" }))\r\n setPosItemObj(prev => ({ ...prev, Name: m }));\r\n } else {\r\n setPosItemValidation(prev => ({ ...prev, Name: \"POS Item Name already exist.\" }))\r\n }\r\n if (posItemObj.Mode == \"Add\") {\r\n setPosItemObj((prev) => ({ ...prev, MaskName: \"\" }))\r\n }\r\n }}\r\n onBlur={(v) => {\r\n let tempName = v.target.value;\r\n if (posItemObj.Mode == \"Add\" && tempName.trim().length !== 0) {\r\n setPosItemObj((prev) => ({ ...prev, MaskName: tempName }))\r\n }\r\n }}\r\n >Name\r\n
    \r\n
    \r\n {\r\n setPosItemValidation((prev) => ({ ...prev, MaskName: \"\" }))\r\n setPosItemObj(prev => ({ ...prev, MaskName: m }));\r\n if (m == \"\") {\r\n setPosItemValidation(prev => ({ ...prev, MaskName: \"Invalid POS Item MaskName\" }))\r\n }\r\n }}>Mask Name\r\n
    \r\n
    \r\n {\r\n setPosItemValidation((prev) => ({ ...prev, BarCode: \"\" }))\r\n setPosItemObj(prev => ({ ...prev, BarCode: m }));\r\n if (m == \"\") {\r\n setPosItemValidation(prev => ({ ...prev, BarCode: \"Invalid POS Item BarCode\" }))\r\n }\r\n }}>Barcode\r\n
    \r\n
    \r\n
    \r\n Open Item\r\n {\r\n setPosItemObj((prev) => ({ ...prev, IsOpenItem: v }));\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setPosItemObj((prev) => ({ ...prev, ItemGroupSerNo: item.key, }));\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n setPosItemObj((prev) => ({ ...prev, ItemSubGroupSerNo: item.key, }));\r\n }}\r\n disabled={posItemObj.Mode == \"View\" ? true : false}\r\n >\r\n
    \r\n
    \r\n {\r\n setPosItemObj((prev) => ({ ...prev, CourseSerNo: item.key, }));\r\n }}\r\n disabled={posItemObj.Mode == \"View\" ? true : false}\r\n >\r\n
    \r\n
    \r\n {\r\n setPosItemValidation((prev) => ({ ...prev, ItemCode: \"\" }))\r\n setPosItemObj(prev => ({ ...prev, ItemCode: m }));\r\n if (m == \"\") {\r\n setPosItemValidation(prev => ({ ...prev, ItemCode: \"Invalid POS ItemCode\" }))\r\n }\r\n }}>Item Code\r\n
    \r\n
    \r\n {\r\n setPosItemObj((prev) => ({\r\n ...prev,\r\n ItemType: m.key,\r\n }))\r\n }}\r\n disabled={posItemObj.Mode == \"View\" ? true : false}\r\n >\r\n
    \r\n
    \r\n
    Item Path
    \r\n {\r\n setPosItemObj(prev => ({ ...prev, ItemPath: (v.fpath) }));\r\n }}>\r\n \r\n
    \r\n\r\n
    \r\n {\r\n setPosItemObj((prev) => ({ ...prev, HSNCode: item.key, }));\r\n }}\r\n disabled={posItemObj.Mode == \"View\" ? true : false}\r\n >\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n Activate console.log(v)} id=\"IT\">\r\n {/* setShowDepositTermTypeModal(!showDepositTermTypeModal)}>Add Deposit Term Type*/}\r\n {\r\n posItemObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnPlainButton,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport {\r\n GetServerMaster,\r\n AddEditServerMaster\r\n} from \"../../../../services/posMasterService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nexport function ServerMaster() {\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const ValidObj ={\r\n Name: \"\", \r\n ShortName: \"\"\r\n }\r\n //#region variables\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = { ClientSerNo: parseInt(currUser.ClientSerNo), PropertySerNo: parseInt(currUser.PropertySerNo), Mode: \"\", Name: \"\", ShortName: \"\", ServerSerNo: 0 }\r\n const [selected, setSelected] = useState(defaultObj);\r\n const [serverList, setServerList] = useState([]);\r\n const [resultList, setResultList] = useState([])\r\n const [search, setSearch] = useState(\"\");\r\n const [old, setOld] = useState(0);\r\n const [validation, setValidation] = useState(ValidObj);\r\n\r\n const scrollRef = useRef();\r\n\r\n //#endregion \r\n\r\n\r\n\r\n //#region UseEffect\r\n useEffect(() => {\r\n GetAllData(0);\r\n }, []);\r\n //#endregion\r\n const GetAllData = (x) => {\r\n GetServerMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n let sortData = [...resp.data].sort((a, b) => {\r\n return a.Name.toLowerCase() > b.Name.toLowerCase() ? 1 : -1\r\n })\r\n if (x == 0) {\r\n if (sortData.length != 0) {\r\n setSelected(sortData[0]);\r\n }\r\n }\r\n setServerList(sortData);\r\n setResultList(sortData);\r\n }\r\n )\r\n }\r\n //#region Events\r\n const handleClickAdd = () => {\r\n setOld(selected.ServerSerNo)\r\n handleChangeSearch(\"\");\r\n setSelected((prev) => ({ ...prev, Name: \"\", ShortName: \"\", ServerSerNo: 0, Mode: \"Add\" }))\r\n }\r\n const handleClickEdit = () => {\r\n if (selected.ServerSerNo == 0) {\r\n alertFunction(\"Please select the Server Name\")\r\n return\r\n }\r\n setSelected((prev) => ({ ...prev, Mode: \"Edit\" }))\r\n setOld(selected.ServerSerNo)\r\n }\r\n const searchEdit = () => {\r\n GetServerMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n let sortDataa = [...resp.data].sort((a, b) => {\r\n return a.Name.toLowerCase() > b.Name.toLowerCase() ? 1 : -1\r\n })\r\n setServerList(sortDataa);\r\n setSelected(defaultObj)\r\n let temp = []\r\n sortDataa.forEach(x => {\r\n if (x.Name.toLowerCase().includes(search.toLowerCase())) {\r\n temp.push(x);\r\n }\r\n });\r\n console.log('New List>>', temp);\r\n setResultList(temp);\r\n })\r\n }\r\n\r\n const AddEditAPI = (selected) => {\r\n console.log(\"selected\", selected)\r\n AddEditServerMaster(selected).then(resp => {\r\n if (resp.status == 200) {\r\n alertFunction(resp.data.Message);\r\n setValidation((prev) => ({ ...prev, Name: \"\", ShortName: \"\" }))\r\n setSelected((prev) => ({ ...prev, ServerSerNo: parseInt(resp.data.ReturnValue) }))\r\n if (selected.Mode == \"Add\" || selected.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit()\r\n return;\r\n }\r\n setTimeout(() => {\r\n if (scrollRef.current != null) {\r\n scrollRef.current.scrollIntoView({ behaviour: \"smooth\" });\r\n }\r\n }, 100)\r\n }\r\n GetAllData();\r\n }\r\n }\r\n )\r\n }\r\n const isValidpage = () => {\r\n let isValid = true;\r\n if (validation.Name != \"\") {\r\n setValidation((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n isValid = false;\r\n }\r\n if (selected.Name.trim().length == 0 || /[0-9’/`~!#*$@_+=^{}[\\]|;:<>?\\\\]/g.test(selected.Name) == true) {\r\n setValidation((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n isValid = false;\r\n }\r\n if (selected.ShortName.trim().length == 0 || /[0-9’/`~!#*$@_+=^{}[\\]|;:<>?\\\\]/g.test(selected.ShortName) == true) {\r\n setValidation((prev) => ({ ...prev, ShortName: \"Please enter valid Short Name\" }))\r\n isValid = false;\r\n }\r\n return isValid\r\n }\r\n\r\n const handleClickSave = () => {\r\n let isValid = isValidpage();\r\n if (isValid) {\r\n console.log('selected', selected);\r\n let temp = selected;\r\n temp.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n temp.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n console.log(\"server obj\", temp);\r\n AddEditAPI(temp);\r\n setSelected((prev) => ({ ...prev, Mode: \"Save\" }))\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\")\r\n }\r\n\r\n }\r\n\r\n const handleClickCancel = () => {\r\n setValidation((prev) => ({ ...prev, Name: \"\", ShortName: \"\" }))\r\n if (old == 0) {\r\n setSelected(defaultObj)\r\n }\r\n else {\r\n serverList.forEach(element => {\r\n if (element.ServerSerNo == old) {\r\n setSelected(element);\r\n }\r\n });\r\n }\r\n }\r\n\r\n const handleChangeName = (m) => {\r\n if ((serverList.every((x) => x.Name.toLowerCase() != m.toLowerCase()))) {\r\n setValidation((prev) => ({ ...prev, Name: \"\" }))\r\n setSelected(prev => ({ ...prev, Name: m }));\r\n } else {\r\n setValidation(prev => ({ ...prev, Name: \"Server Name already exist.\" }))\r\n }\r\n }\r\n const handleChangeShortName = (e) => {\r\n setValidation((prev) => ({ ...prev, ShortName: \"\" }))\r\n setSelected((prev) => ({ ...prev, ShortName: e }));\r\n }\r\n\r\n\r\n const handleChangeSearch = (e) => {\r\n setSearch(e);\r\n setValidation((prev) => ({ ...prev, Name: \"\", ShortName: \"\" }))\r\n setSelected((prev) => ({ ...prev, Name: \"\", ShortName: \"\", ServerSerNo: 0, Mode: \"\" }))\r\n let temp = []\r\n serverList.forEach(element => {\r\n if (element.Name.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(element);\r\n }\r\n });\r\n setResultList(temp);\r\n }\r\n const handleClickServerType = (server) => {\r\n setValidation((prev) => ({ ...prev, Name: \"\", ShortName: \"\" }))\r\n setSelected(server)\r\n }\r\n //#endregion\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Server Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { handleChangeSearch(e) }} value={search} OnCancelClick={() => handleChangeSearch(\"\")}>Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Server Names
    \r\n
    \r\n
      \r\n {resultList.map((server, index) => {\r\n return (\r\n
    • handleClickServerType(server)}\r\n ref={(server.ServerSerNo == selected.ServerSerNo) ? scrollRef : null}\r\n className={(server.ServerSerNo == selected.ServerSerNo) ? \"active\" : \"\"}\r\n > {server.Name}
    • \r\n\r\n )\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n Name\r\n Short Name\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n Activate console.log(v)} id=\"1\">\r\n {/* setShowDepositTermTypeModal(!showDepositTermTypeModal)}>Add Deposit Term Type*/}\r\n {selected.Mode == \"Edit\" || selected.Mode == \"Add\" ?\r\n <>\r\n Cancel\r\n Save\r\n \r\n :\r\n <>\r\n Edit\r\n Add\r\n \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n","import React, { useState } from 'react';\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n useConfirm,\r\n InnLoader,\r\n} from \"../../../../component\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport { GetMenuItemToppingMapping, GetItemToppingMaster, AddEditMenuItemToppingMapping } from '../../../../services/posMasterService';\r\nimport { useEffect } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from '../../../../reducer/authSlice';\r\nimport { array } from 'prop-types';\r\n\r\nfunction ItemToppingMapping(props) {\r\n const selectData = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"MenuSerNo\": parseInt(props.para.MenuSerNo),\r\n \"ItemSerNo\": parseInt(props.para.ItemSerNo),\r\n \"ToppingSerNo\": 0,\r\n \"NewToppingSerNo\": 0,\r\n \"Amount\": 0,\r\n \"Active\": true,\r\n \"Mode\": \"View\"\r\n }\r\n\r\n const defaultvalidation = {\r\n \"ToppingSerNo\": 0,\r\n \"Amount\": 0.00\r\n }\r\n\r\n const [isActive, setIsActive] = useState(true);\r\n const [loadToppingType, setLoadToppingType] = useState([]);\r\n const [itemToppingMappingData, setItemToppingMappingData] = useState([]);\r\n const [itemToppingMappingObj, setItemToppingMappingObj] = useState(defaultObj);\r\n const [itemToppingMappingValidation, setItemToppingMappingValidation] = useState(defaultvalidation);\r\n const [itemToppingMappingFilter, setItemToppingMappingFilter] = useState([]);\r\n const [itemToppingMappingSelected, setItemToppingMappingSelected] = useState([]);\r\n const [selectedToppingSerNo, setSelectedToppingSerNo] = useState(0);\r\n const [isValidItem, setIsValidItem] = useState(true);\r\n\r\n useEffect(() => {\r\n fillItemToppingMapping();\r\n loadToppingTypeMaster();\r\n }, [])\r\n\r\n const loadToppingTypeMaster = () => {\r\n GetItemToppingMaster(parseInt(currUser.ClientSerNo)).then(d => {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.map(ele => {\r\n temp.push({ key: parseInt(ele.ToppingSerNo), value: ele.Name })\r\n })\r\n setLoadToppingType(temp);\r\n })\r\n }\r\n\r\n const fillItemToppingMapping = () => {\r\n if (props.para) {\r\n GetMenuItemToppingMapping(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(props.para.MenuSerNo), parseInt(props.para.ItemSerNo)).then(d => {\r\n if (d.data && d.data.length > 0 && (itemToppingMappingObj.ToppingSerNo == 0 || itemToppingMappingObj.ToppingSerNo == undefined)) {\r\n let temp = d.data[0];\r\n temp.Mode = \"View\";\r\n setItemToppingMappingObj(temp);\r\n setItemToppingMappingSelected(temp.ToppingSerNo);\r\n setSelectedToppingSerNo(d.data[0].ToppingSerNo);\r\n }\r\n setIsActive(false);\r\n let sortDataa = [...d.data].sort((a, b) => {\r\n return a.Name.toLowerCase() > b.Name.toLowerCase() ? 1 : -1\r\n })\r\n setItemToppingMappingData(sortDataa);\r\n setItemToppingMappingFilter(sortDataa);\r\n })\r\n }\r\n }\r\n\r\n const clearValidation = () => {\r\n setItemToppingMappingValidation(defaultvalidation);\r\n }\r\n\r\n const isValid = () => {\r\n let valid = true;\r\n if (itemToppingMappingObj.Mode == \"Add\") {\r\n if (itemToppingMappingObj.ToppingSerNo === 0 || /\\s/g.test(itemToppingMappingObj.ToppingSerNo)) {\r\n valid = false;\r\n setItemToppingMappingValidation(prev => ({ ...prev, ToppingSerNo: \"Select the topping type\" }));\r\n }\r\n }\r\n if (itemToppingMappingObj.Mode == \"Edit\") {\r\n if (itemToppingMappingObj.NewToppingSerNo === 0) {\r\n valid = false;\r\n setItemToppingMappingValidation(prev => ({ ...prev, ToppingSerNo: \"Select the topping type\" }));\r\n }\r\n }\r\n if (itemToppingMappingObj.Amount === \"\" || /\\s/g.test(itemToppingMappingObj.Amount) || isNaN(+itemToppingMappingObj.Amount) || itemToppingMappingObj.Amount < 0) {\r\n valid = false;\r\n setItemToppingMappingValidation(prev => ({ ...prev, Amount: \"Enter the amount\" }));\r\n }\r\n return valid;\r\n }\r\n const handleOnToppingMappingClick = (e) => {\r\n clearValidation();\r\n let obj = itemToppingMappingData.find(x => x.ToppingSerNo == e.target.id);\r\n obj.Mode = \"View\";\r\n setItemToppingMappingObj(obj);\r\n setItemToppingMappingSelected(e.target.id);\r\n setSelectedToppingSerNo(e.target.id);\r\n }\r\n\r\n const handleOnSaveClick = () => {\r\n let IsValid = isValid();\r\n let obj = itemToppingMappingObj;\r\n if (IsValid) {\r\n if (isValidItem != false) {\r\n AddEditMenuItemToppingMapping(obj).then(d => {\r\n if (d.data.Code == \"200\") {\r\n setIsActive(true);\r\n alertFunction(d.data.Message);\r\n fillItemToppingMapping();\r\n setItemToppingMappingObj(prev => ({ ...prev, ToppingSerNo: d.data.ReturnValue }))\r\n setSelectedToppingSerNo(d.data.ReturnValue);\r\n } else {\r\n alertFunction(\"Something Went Wrong\");\r\n }\r\n });\r\n setItemToppingMappingObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alertFunction(\"Item already exists\");\r\n }\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n\r\n const handleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setItemToppingMappingObj(obj);\r\n }\r\n\r\n const handleOnCancelClick = () => {\r\n clearValidation()\r\n const tempObj = itemToppingMappingData.find(x => x.ToppingSerNo == itemToppingMappingSelected);\r\n if (tempObj != undefined) {\r\n tempObj.Mode = \"View\";\r\n setItemToppingMappingObj(tempObj);\r\n } else {\r\n setItemToppingMappingObj(defaultObj);\r\n }\r\n }\r\n\r\n const handleOnEditClick = () => {\r\n if (itemToppingMappingObj.ToppingSerNo === 0) {\r\n alertFunction(\"Select the topping\")\r\n } else {\r\n let obj = itemToppingMappingData.find(d => d.ToppingSerNo == selectedToppingSerNo);\r\n obj.NewToppingSerNo = parseInt(selectedToppingSerNo)\r\n setItemToppingMappingObj(obj);\r\n setSelectedToppingSerNo(obj.ToppingSerNo);\r\n setItemToppingMappingObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n console.log(\"ObJ\",obj)\r\n }\r\n }\r\n\r\n const handleOnSearchClick = (d) => {\r\n let searchFilter = itemToppingMappingData.filter(x => x.Name.toLowerCase().includes(d.toLowerCase()));\r\n setItemToppingMappingFilter(searchFilter);\r\n }\r\n\r\n const handleOnClose = () => {\r\n if (props.OnClose != undefined) {\r\n props.OnClose();\r\n }\r\n else {\r\n console.log(\"handleOnClose is undefined\");\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    Item Topping Mapping

    \r\n
    \r\n
    \r\n {\r\n itemToppingMappingObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save \r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Topping List
    \r\n
    \r\n
      \r\n {\r\n itemToppingMappingFilter.map((d, index) =>\r\n
    • \r\n {d.Name}\r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n {\r\n if (itemToppingMappingData) {\r\n if (selectedToppingSerNo != item.key) {\r\n console.log(selectedToppingSerNo, item.key)\r\n setIsValidItem(true);\r\n }\r\n else if (itemToppingMappingData.find((x) => x.ToppingSerNo == item.key)) {\r\n console.log(itemToppingMappingData.find((x) => x.ToppingSerNo == item.key))\r\n setIsValidItem(false);\r\n }\r\n else {\r\n setIsValidItem(true);\r\n }\r\n }\r\n if (itemToppingMappingObj.Mode == \"Add\") {\r\n setItemToppingMappingObj(prev => ({ ...prev, ToppingSerNo: parseInt(item.key) }));\r\n } else {\r\n setItemToppingMappingObj(prev => ({ ...prev, NewToppingSerNo: parseInt(item.key) }));\r\n }\r\n setItemToppingMappingValidation(prev => ({ ...prev, ToppingSerNo: \"\" }));\r\n }}\r\n searchable={[\"Search\", \"No matching Topping\"]}\r\n >\r\n
    \r\n\r\n {\r\n if (!isNaN(+v) && parseInt(v) >= 0) {\r\n setItemToppingMappingValidation(prev => ({ ...prev, Amount: \"\" }));\r\n setItemToppingMappingObj(prev => ({ ...prev, Amount: parseFloat(v) }));\r\n } else {\r\n setItemToppingMappingValidation(prev => ({ ...prev, Amount: \"Enter the amount\" }));\r\n setItemToppingMappingObj(prev => ({ ...prev, Amount: v }));\r\n }\r\n }}>Amount\r\n
    \r\n
    \r\n Active\r\n {\r\n setItemToppingMappingObj(prev => ({ ...prev, Active: v }));\r\n }}>\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default ItemToppingMapping;","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnEditor,\r\n InnLoader,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport {\r\n GetMenuMasterItem, GetMenuCategoryMaster,\r\n GetLocationMaster, GetPOSItemMaster, AddEditMenuItemMaster\r\n} from \"../../../../services/posMasterService\";\r\nimport { GetTransactionMaster } from \"../../../../services/reservationService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetMenuSubCategoryMasterBilling } from \"../../../../services/posbillingService\";\r\nimport ItemToppingMapping from \"./item-topping-mapping\";\r\n\r\nexport function MenuItemMaster(props) {\r\n\r\n //#region Local Variable\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n MenuSerNo: props.para.MenuSerNo,\r\n ItemSerNo: 0,\r\n NewItemSerNo: 0,\r\n Name: \"\",\r\n TransactionSerNo: 0,\r\n MenuCategorySerNo: 0,\r\n MenuSubCategorySerNo: 0,\r\n RegularRate: 0,\r\n HappyRate: 0,\r\n CostRate: 0,\r\n LocationSerNo: 0,\r\n IsDiscountable: false,\r\n IsTaxable: false,\r\n IsFastMoving: false,\r\n Active: false,\r\n Mode: \"View\"\r\n }\r\n const validation = {\r\n Name: \"\",\r\n TransactionSerNo: 0,\r\n MenuCategorySerNo: 0,\r\n MenuSubCategorySerNo: 0,\r\n RegularRate: 0,\r\n HappyRate: 0,\r\n CostRate: 0,\r\n LocationSerNo: 0,\r\n }\r\n //#endregion\r\n //#region State Variable]\r\n const [menuItemObj, setMenuItemObj] = useState(defaultObj);\r\n const [menuItemList, setMenuItemList] = useState([]);\r\n const [menuItemFilter, setMenuItemFilter] = useState([]);\r\n const [menuItemValidation, setMenuItemValidation] = useState(validation);\r\n const [selectedSerNo, setSelectedSerNo] = useState(0);\r\n const [search, setSearch] = useState(\"\");\r\n const [loadItemCombo, setLoadItemCombo] = useState([]);\r\n const [loadTransactions, setLoadTransactions] = useState([]);\r\n const [loadMenuCategory, setLoadMenuCategory] = useState([]);\r\n const [loadMenuSubCategory, setLoadMenuSubCategory] = useState([]);\r\n const [loadLocation, setLocation] = useState([]);\r\n const [isActive, setIsActive] = useState(false);\r\n const [isValidItem, setIsValidItem] = useState(true);\r\n const [showItemToppingMappingPopup, setShowItemToppingMappingPopup] = useState(false);\r\n //#endregion\r\n //#region Load Menu Item\r\n const fillItemList = () => {\r\n setIsActive(true);\r\n GetMenuMasterItem(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), props.para.MenuSerNo).then((d) => {\r\n setIsActive(false);\r\n setMenuItemList(d.data);\r\n setMenuItemFilter(d.data);\r\n if (d.data.length > 0) {\r\n if (menuItemObj.Mode == \"Add\" || menuItemObj.Mode == \"Edit\") {\r\n let obj = d.data.find(x => x.ItemSerNo == menuItemObj.ItemSerNo);\r\n if (obj) {\r\n obj.Mode = \"View\";\r\n setMenuItemObj(obj);\r\n console.log(\"AddEditData>>\", obj);\r\n }\r\n }\r\n else {\r\n d.data[0].Mode = \"View\";\r\n setMenuItemObj(d.data[0]);\r\n console.log(\"DefaultData>>\", d.data[0]);\r\n }\r\n if (selectedSerNo == 0 || selectedSerNo == undefined) {\r\n setSelectedSerNo(d.data[0].ItemSerNo)\r\n }\r\n }\r\n else{\r\n setMenuItemObj((prev)=>({...prev,TransactionSerNo: props.para.TransactionSerNo}))\r\n }\r\n });\r\n }\r\n //#endregion\r\n console.log(props.para)\r\n //#region Item Dropdown Load\r\n const fillItemCombo = () => {\r\n GetPOSItemMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n let temp = [{ key: 0, value: \"Select\" }]\r\n d.data.forEach(ele => {\r\n temp.push({ key: ele.ItemSerNo, value: ele.Name })\r\n })\r\n setLoadItemCombo(temp);\r\n })\r\n }\r\n //#endregion\r\n //#region Transaction Dropdown Load\r\n const fillTransactionDropDown = () => {\r\n GetTransactionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"C\", \"ALL\").then(resp => {\r\n let temp = [{ key: 0, value: \"Select\" }]\r\n resp.data.forEach(element => {\r\n temp.push({ key: element.TransactionSerNo, value: element.Name })\r\n })\r\n setLoadTransactions(temp);\r\n })\r\n }\r\n //#endregion\r\n //#region Menu Category Dropdown Load\r\n const loadMenuCategoryMaster = () => {\r\n GetMenuCategoryMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), props.para.MenuSerNo).then(d => {\r\n let temp = []\r\n d.data.forEach(ele => {\r\n temp.push({ key: ele.MenuCategorySerNo, value: ele.Name })\r\n })\r\n setLoadMenuCategory(temp);\r\n })\r\n }\r\n const loadMenuSubCategoryMaster = () => {\r\n GetMenuSubCategoryMasterBilling(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), props.para.MenuSerNo).then((d) => {\r\n let temp = []\r\n d.data.forEach(ele => {\r\n if (ele.MenuCategorySerNo == menuItemObj.MenuCategorySerNo && props.para.MenuSerNo == ele.MenuSerNo) {\r\n temp.push({ key: ele.MenuSubCategorySerNo, value: ele.Name })\r\n }\r\n\r\n })\r\n setLoadMenuSubCategory(temp);\r\n })\r\n }\r\n //#endregion\r\n //#region Location Dropdown Load\r\n const loadMenuLocation = () => {\r\n GetLocationMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n let temp = [{ key: 0, value: \"Select\" }]\r\n d.data.forEach(ele => {\r\n temp.push({ key: ele.LocationSerNo, value: ele.Name })\r\n })\r\n setLocation(temp);\r\n })\r\n }\r\n //#endregion\r\n //#region Validation\r\n const clearValidation = () => {\r\n setMenuItemValidation(validation);\r\n }\r\n const validPage = () => {\r\n let valid = true;\r\n if (menuItemObj.ItemSerNo == 0) {\r\n setMenuItemValidation((prev) => ({ ...prev, ItemSerNo: \"Please Select Item\" }));\r\n valid = false;\r\n }\r\n if (menuItemObj.TransactionSerNo == 0) {\r\n setMenuItemValidation((prev) => ({ ...prev, TransactionSerNo: \"Please Select Transaction.\" }));\r\n valid = false;\r\n }\r\n if (parseFloat(menuItemObj.RegularRate) == 0 || !(/^\\d+$/).test(parseFloat(menuItemObj.RegularRate))) {\r\n setMenuItemValidation((prev) => ({ ...prev, RegularRate: \"Invalid Regular Rate\" }));\r\n valid = false;\r\n }\r\n if (parseFloat(menuItemObj.HappyRate) == 0 || !(/^\\d+$/).test(parseFloat(menuItemObj.HappyRate))) {\r\n setMenuItemValidation((prev) => ({ ...prev, HappyRate: \"Invalid Happy Rate\" }));\r\n valid = false;\r\n }\r\n if (parseFloat(menuItemObj.CostRate) == 0 || !(/^\\d+$/).test(parseFloat(menuItemObj.CostRate))) {\r\n setMenuItemValidation((prev) => ({ ...prev, CostRate: \"Invalid Cost Rate\" }));\r\n valid = false;\r\n }\r\n if (menuItemObj.LocationSerNo == 0) {\r\n setMenuItemValidation((prev) => ({ ...prev, LocationSerNo: \"Please Select Location.\" }));\r\n valid = false;\r\n }\r\n if (menuItemObj.MenuCategorySerNo == 0) {\r\n setMenuItemValidation((prev) => ({ ...prev, MenuCategorySerNo: \"Please Select Group.\" }));\r\n valid = false;\r\n }\r\n if (menuItemObj.MenuSubCategorySerNo == 0) {\r\n setMenuItemValidation((prev) => ({ ...prev, MenuSubCategorySerNo: \"Please Select Category.\" }));\r\n valid = false;\r\n }\r\n return valid;\r\n }\r\n //#endregion\r\n //#region Click Events\r\n const handleClickSearch = (e) => {\r\n setSearch(e);\r\n setMenuItemObj(defaultObj);\r\n let temp = [];\r\n menuItemList.forEach((ele) => {\r\n if (ele.Name.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(ele);\r\n }\r\n });\r\n setMenuItemFilter(temp);\r\n }\r\n const handleClickOnList = (e) => {\r\n clearValidation();\r\n let obj = menuItemList.find(d => d.ItemSerNo == e.target.id);\r\n obj.Mode = \"View\";\r\n setMenuItemObj(obj);\r\n setSelectedSerNo(e.target.id);\r\n }\r\n const handleClickAdd = () => {\r\n let temp = JSON.parse(JSON.stringify(defaultObj));\r\n temp.Mode = \"Add\";\r\n setMenuItemObj(temp);\r\n\r\n }\r\n const handleClickEdit = () => {\r\n if (menuItemObj.Name == \"\") {\r\n alertFunction(\"Please Select Item From Item List\")\r\n }\r\n else {\r\n let obj = menuItemList.find(d => d.ItemSerNo == selectedSerNo)\r\n obj.NewItemSerNo = parseInt(selectedSerNo)\r\n setMenuItemObj(obj);\r\n setSelectedSerNo(obj.ItemSerNo);\r\n setMenuItemObj((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n }\r\n const handleClickCancel = () => {\r\n clearValidation();\r\n let existingObj = menuItemList.find(d => d.ItemSerNo == selectedSerNo);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setMenuItemObj(existingObj);\r\n }\r\n else {\r\n setMenuItemObj(defaultObj);\r\n }\r\n }\r\n const searchEdit = () => {\r\n GetMenuMasterItem(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), props.para.MenuSerNo).then((d) => {\r\n let temp = d.data.filter(x => x.Name.toLowerCase().includes(search.toLowerCase()));\r\n setMenuItemFilter(temp);\r\n })\r\n }\r\n const handleClickSave = () => {\r\n let valid = validPage();\r\n if (valid) {\r\n if (isValidItem != false) {\r\n setIsActive(true);\r\n AddEditMenuItemMaster(menuItemObj).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n fillItemList();\r\n setMenuItemObj((prev) => ({ ...prev, ItemSerNo: d.data.ReturnValue }))\r\n setSelectedSerNo(d.data.ReturnValue)\r\n if (menuItemObj.Mode == \"Add\" || menuItemObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit();\r\n return;\r\n }\r\n }\r\n }\r\n else {\r\n alertFunction(\"Something went wrong\");\r\n }\r\n });\r\n setMenuItemObj((prev) => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alertFunction(\"Item already exists\");\r\n }\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n //endregion\r\n //#region Popup OnClose Click Event\r\n const handleOnClose = () => {\r\n if (props.OnClose != undefined) {\r\n props.OnClose()\r\n }\r\n }\r\n //#endregion\r\n //#region UseEffect\r\n useEffect(() => {\r\n fillItemList();\r\n fillItemCombo();\r\n fillTransactionDropDown();\r\n loadMenuCategoryMaster();\r\n loadMenuLocation();\r\n }, [])\r\n \r\n useEffect(() => {\r\n loadMenuSubCategoryMaster();\r\n }, [menuItemObj.MenuCategorySerNo])\r\n //#endregion\r\n const selectData = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    Menu Item Master

    \r\n
    \r\n
    \r\n {\r\n menuItemObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/*
    */}\r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Item List
    \r\n
    \r\n
      \r\n {\r\n menuItemFilter.map(d =>\r\n
    • \r\n {d.Name}
    • \r\n )\r\n }\r\n {/*
    • Demo 1
    • \r\n
    • Demo 2
    • \r\n
    • Demo 3
    • */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {\r\n if (menuItemList) {\r\n if (selectedSerNo == v.key) {\r\n setIsValidItem(true)\r\n }\r\n else if (menuItemList.find((x) => x.ItemSerNo == v.key)) {\r\n setIsValidItem(false)\r\n console.log(v);\r\n }\r\n else {\r\n setIsValidItem(true)\r\n }\r\n }\r\n if (menuItemObj.Mode == \"Add\") {\r\n setMenuItemObj((prev) => ({ ...prev, ItemSerNo: v.key }));\r\n }\r\n if (menuItemObj.Mode == \"Edit\") {\r\n setMenuItemObj((prev) => ({ ...prev, NewItemSerNo: v.key }));\r\n }\r\n setMenuItemValidation((prev) => ({ ...prev, ItemSerNo: \"\" }));\r\n }}\r\n selectedSerNo={menuItemObj.ItemSerNo}\r\n customError={menuItemValidation.ItemSerNo}\r\n disabled={menuItemObj.Mode == \"View\" ? true : false}\r\n label=\"Item\"\r\n searchable={[\"Search\", \"No matching item\"]}\r\n >\r\n {/* {\r\n setMenuItemObj((prev) => ({ ...prev, Name: v }));\r\n setMenuItemValidation((prev) => ({ ...prev, Name: \"\" }));\r\n console.log(v)\r\n }}>Item */}\r\n
    \r\n {\r\n setMenuItemObj((prev) => ({ ...prev, TransactionSerNo: v.key }));\r\n setMenuItemValidation((prev) => ({ ...prev, TransactionSerNo: \"\" }));\r\n console.log(v)\r\n }}\r\n selectedSerNo={menuItemObj.TransactionSerNo}\r\n customError={menuItemValidation.TransactionSerNo}\r\n disabled={menuItemObj.Mode == \"View\" ? true : false}\r\n label=\"Transaction\"\r\n searchable={[\"Search\", \"No matching Transaction\"]}\r\n >\r\n
    \r\n {\r\n setMenuItemObj((prev) => ({ ...prev, RegularRate: v }));\r\n setMenuItemValidation((prev) => ({ ...prev, RegularRate: \"\" }));\r\n console.log(v)\r\n }}>Regular Rate\r\n {\r\n setMenuItemObj((prev) => ({ ...prev, HappyRate: v }));\r\n setMenuItemValidation((prev) => ({ ...prev, HappyRate: \"\" }));\r\n console.log(v)\r\n }}>Happy Rate\r\n {\r\n setMenuItemObj((prev) => ({ ...prev, CostRate: v }));\r\n setMenuItemValidation((prev) => ({ ...prev, CostRate: \"\" }));\r\n console.log(v)\r\n }}>Cost Rate\r\n
    \r\n
    \r\n
    \r\n {\r\n setMenuItemObj((prev) => ({ ...prev, LocationSerNo: v.key }));\r\n setMenuItemValidation((prev) => ({ ...prev, LocationSerNo: \"\" }));\r\n }}\r\n selectedSerNo={menuItemObj.LocationSerNo}\r\n label=\"Location\"\r\n searchable={[\"Search\", \"No matching Location\"]}\r\n >\r\n
    \r\n\r\n
    \r\n {\r\n setMenuItemObj((prev) => ({ ...prev, MenuCategorySerNo: v.key }));\r\n setMenuItemValidation((prev) => ({ ...prev, MenuCategorySerNo: \"\" }));\r\n }}\r\n selectedSerNo={menuItemObj.MenuCategorySerNo}\r\n label=\"Group\"\r\n searchable={[\"Search\", \"No matching Group\"]}\r\n >\r\n
    \r\n
    \r\n {\r\n setMenuItemObj((prev) => ({ ...prev, MenuSubCategorySerNo: v.key }));\r\n setMenuItemValidation((prev) => ({ ...prev, MenuSubCategorySerNo: \"\" }));\r\n }}\r\n selectedSerNo={menuItemObj.MenuSubCategorySerNo}\r\n label=\"Category\"\r\n searchable={[\"Search\", \"No matching Category\"]}\r\n >\r\n
    \r\n
    \r\n
    \r\n Discountable\r\n {\r\n console.log(menuItemObj);\r\n setMenuItemObj((prev) => ({ ...prev, IsDiscountable: v }));\r\n console.log(v)\r\n }}\r\n disabled={menuItemObj.Mode == \"View\" ? true : false}\r\n id=\"a1\"\r\n value={menuItemObj.IsDiscountable}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n Taxable\r\n {\r\n console.log(menuItemObj);\r\n setMenuItemObj((prev) => ({ ...prev, IsTaxable: v }));\r\n console.log(v)\r\n }}\r\n disabled={menuItemObj.Mode == \"View\" ? true : false}\r\n id=\"b1\"\r\n value={menuItemObj.IsTaxable}>\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n Fast Moving\r\n {\r\n console.log(menuItemObj);\r\n setMenuItemObj((prev) => ({ ...prev, IsFastMoving: v }));\r\n console.log(v)\r\n }}\r\n disabled={menuItemObj.Mode == \"View\" ? true : false}\r\n id=\"s3\"\r\n value={menuItemObj.IsFastMoving}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n Active\r\n {\r\n console.log(menuItemObj);\r\n setMenuItemObj((prev) => ({ ...prev, Active: v }));\r\n console.log(v)\r\n }}\r\n disabled={menuItemObj.Mode == \"View\" ? true : false}\r\n id=\"s4\"\r\n value={menuItemObj.Active}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {\r\n if (selectedSerNo != 0) {\r\n setShowItemToppingMappingPopup(true)\r\n }\r\n else {\r\n alertFunction(\"Please select menu to continue.\")\r\n }\r\n }} >Item Topping Mapping
    \r\n
    \r\n
    \r\n
    \r\n {\r\n showItemToppingMappingPopup ?\r\n {\r\n setShowItemToppingMappingPopup(false)\r\n }}\r\n >\r\n \r\n :\r\n null\r\n }\r\n \r\n )\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnModalPopup,\r\n InnLoader,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { GetMenuMaster, AddEditMenuMaster } from '../../../../services/posMasterService';\r\nimport { GetTransactionMaster } from \"../../../../services/reservationService\";\r\nimport { MenuItemMaster } from './menu-item-master';\r\nexport function MenuMaster(props) {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"Name\": \"\",\r\n \"MenuSerNo\": 0,\r\n \"AllowRate\": false,\r\n \"IsTaxInclusive\": false,\r\n \"TransactionSerNo\": 0,\r\n \"Active\": false,\r\n \"Mode\": \"View\"\r\n }\r\n const validationObj = {\r\n \"Name\": \"\",\r\n \"TransactionSerNo\": 0,\r\n }\r\n const [posMenuObj, setPosMenuObj] = useState(defaultObj);\r\n const [posMenuData, setPosMenuData] = useState([]);\r\n const [filterPosMenu, setFilterPosMenu] = useState([]);\r\n const [selectedrPosMenuSerNo, setSelectedrPosMenuSerNo] = useState();\r\n const [posMenuValidation, setPosMenuValidation] = useState(validationObj);\r\n const [transactionList, setTransactionList] = useState([]);\r\n const [searchString, setsearchString] = useState(\"\");\r\n const [isActive, setIsActive] = useState(false);\r\n const [posTransactionSerNo, setPosTransactionSerNo] = useState()\r\n\r\n const fillPosMenuMaster = () => {\r\n setIsActive(true);\r\n GetMenuMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setIsActive(false);\r\n if (d.data.length > 0 && (posMenuObj.MenuSerNo == 0 || posMenuObj.MenuSerNo == undefined)) {\r\n let obj = d.data[0];\r\n obj.Mode = \"View\";\r\n setPosMenuObj(obj);\r\n setSelectedrPosMenuSerNo(obj.MenuSerNo);\r\n }\r\n let sortData = [...d.data].sort((a, b) => {\r\n return a.Name.toLowerCase() > b.Name.toLowerCase() ? 1 : -1\r\n })\r\n setPosMenuData(sortData);\r\n setFilterPosMenu(sortData);\r\n })\r\n }\r\n const filTransactionMaster = () => {\r\n GetTransactionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"C\", \"P\").then(d => {\r\n let temp = [];\r\n d.data.forEach((x) => {\r\n temp = [...temp, { key: x.TransactionSerNo, value: x.Name }]\r\n })\r\n setTransactionList(temp);\r\n })\r\n }\r\n const handlePosMenuClick = (e) => {\r\n clearValidation();\r\n let obj = posMenuData.find(x => x.MenuSerNo == e.target.id)\r\n obj.Mode = \"View\";\r\n setPosMenuObj(obj);\r\n setSelectedrPosMenuSerNo(e.target.id);\r\n }\r\n const clearValidation = () => {\r\n setPosMenuValidation(validationObj);\r\n }\r\n\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (posMenuValidation.Name != \"\") {\r\n setPosMenuValidation((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n isValid = false;\r\n }\r\n if (posMenuObj.Name == \"\" || posMenuObj.Name.trim().length == 0 || /[-’/`~!#*$@_%+=,^&(){}[\\]|;.:”<>?\\\\]/g.test(posMenuObj.Name) == true) {\r\n isValid = false;\r\n setPosMenuValidation(prev => ({ ...prev, Name: \"Please enter valid Name\" }));\r\n }\r\n if (posMenuObj.TransactionSerNo == 0) {\r\n setPosMenuValidation((prev) => ({ ...prev, TransactionSerNo: \"Please enter valid charge\" }))\r\n isValid = false;\r\n }\r\n return isValid;\r\n }\r\n //#region SearchChange\r\n const handleOnSearchChange = (b) => {\r\n let filterdata = posMenuData.filter(obj => obj.Name.toLowerCase().includes(b.toLowerCase()));\r\n setFilterPosMenu(filterdata);\r\n setsearchString(b);\r\n setIsActive(false);\r\n setPosMenuObj(defaultObj);\r\n }\r\n //#endregion\r\n //#region EventHandle \r\n const handleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setPosMenuObj(obj);\r\n }\r\n const handleOnEditClick = () => {\r\n if (posMenuObj.Name == \"\") {\r\n alertFunction(\"Please Select Menu\");\r\n }\r\n else {\r\n setPosMenuObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n setIsActive(false);\r\n }\r\n const handleOnCancelClick = () => {\r\n clearValidation();\r\n setIsActive(false);\r\n let existingObj = posMenuData.find(x => x.MenuSerNo == selectedrPosMenuSerNo);\r\n\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setPosMenuObj(existingObj);\r\n }\r\n else {\r\n setPosMenuObj(prev => ({ ...prev, Name: \"\", MenuSerNo: 0, Mode: \"View\" }));\r\n }\r\n setsearchString(\"\");\r\n }\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n setIsActive(true);\r\n let apiObj = posMenuObj;\r\n AddEditMenuMaster(posMenuObj).then((d) => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n setIsActive(true)\r\n alertFunction(d.data.Message);\r\n if (posMenuObj.Mode == \"Add\") {\r\n setSelectedrPosMenuSerNo(parseInt(d.data.ReturnValue));\r\n apiObj.MenuSerNo = parseInt(d.data.ReturnValue)\r\n apiObj.Mode = \"View\";\r\n setPosTransactionSerNo(apiObj.TransactionSerNo);\r\n setPosMenuObj(apiObj);\r\n }\r\n fillPosMenuMaster();\r\n setsearchString(\"\");\r\n } else {\r\n alertFunction(\"Something Went Wrong\");\r\n }\r\n })\r\n setPosMenuObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alertFunction(\"One Or More Field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n //#endregion\r\n useEffect(() => {\r\n fillPosMenuMaster();\r\n filTransactionMaster();\r\n }, []);\r\n const selectData = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n const [showMenuMasterItemPopup, setShowMenuMasterItemPopup] = useState();\r\n const [showItemToppingMappingPopup, setShowItemToppingMappingPopup] = useState();\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Menu Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Menu List
    \r\n
    \r\n
      \r\n {\r\n filterPosMenu.map(d =>\r\n
    • \r\n {d.Name}\r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n\r\n {\r\n if ((posMenuData.every((x) => x.Name.toLowerCase() != m.toLowerCase()))) {\r\n setPosMenuValidation((prev) => ({ ...prev, Name: \"\" }))\r\n setPosMenuObj(prev => ({ ...prev, Name: m }));\r\n } else {\r\n setPosMenuValidation(prev => ({ ...prev, Name: \"Menu already exist.\" }))\r\n }\r\n }}\r\n >Menu Name\r\n\r\n
    \r\n {\r\n setPosMenuObj((prev) => ({ ...prev, TransactionSerNo: item.key, }));\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n Allow Rate\r\n {\r\n setPosMenuObj((prev) => ({ ...prev, AllowRate: v }));\r\n }}\r\n id=\"s0\"\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n Tax Inclusive\r\n {\r\n setPosMenuObj((prev) => ({ ...prev, IsTaxInclusive: v }));\r\n }}\r\n >\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n Active\r\n {\r\n setPosMenuObj((prev) => ({ ...prev, Active: v }));\r\n }}\r\n id=\"s2\"\r\n >\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {\r\n if (posMenuObj.MenuSerNo != 0) {\r\n setShowMenuMasterItemPopup(true)\r\n }\r\n else {\r\n alertFunction(\"Please select menu to continue.\")\r\n }\r\n }} >Menu Item Master
    \r\n\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n Activate console.log(v)} id=\"Gm\">\r\n {\r\n posMenuObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n {showMenuMasterItemPopup ?\r\n {\r\n setShowMenuMasterItemPopup(false)\r\n }}\r\n para={{\r\n MenuSerNo: posMenuObj.MenuSerNo,\r\n TransactionSerNo: posMenuObj.TransactionSerNo\r\n }}\r\n >\r\n \r\n : null}\r\n
    \r\n );\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n useConfirm,\r\n InnSingleDateSelection\r\n} from \"../../../../component\";\r\nimport { GetCourseMaster,AddEditCourseMaster } from \"../../../../services/posMasterService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nexport function CourseMaster() {\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const validObj ={\r\n Name: \"\", \r\n SequenceNo: 0\r\n }\r\n //#region variables\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = { ClientSerNo: parseInt(currUser.ClientSerNo), PropertySerNo: parseInt(currUser.PropertySerNo), Mode: \"\", Name: \"\", SequenceNo: \"\", CourseSerNo: 0 }\r\n const [selected, setSelected] = useState(defaultObj);\r\n const [courseList, setCourseList] = useState([]);\r\n const [resultList, setResultList] = useState([])\r\n const [search, setSearch] = useState(\"\");\r\n const [old, setOld] = useState(0);\r\n const [validation, setValidation] = useState(validObj);\r\n\r\n const scrollRef = useRef();\r\n\r\n //#endregion \r\n\r\n\r\n\r\n //#region UseEffect\r\n useEffect(() => {\r\n GetAllData(0);\r\n }, []);\r\n //#endregion\r\n const GetAllData = (x) => {\r\n GetCourseMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n if (x == 0) {\r\n if (resp.data.length != 0) {\r\n setSelected(resp.data[0]);\r\n }\r\n }\r\n let sortData = [...resp.data].sort((a, b) => {\r\n return a.Name.toLowerCase() > b.Name.toLowerCase() ? 1 : -1\r\n })\r\n setCourseList(sortData);\r\n setResultList(sortData);\r\n }\r\n )\r\n }\r\n //#region Events\r\n const handleClickAdd = () => {\r\n setOld(selected.CourseSerNo)\r\n handleChangeSearch(\"\");\r\n setSelected((prev) => ({ ...prev, Name: \"\", SequenceNo: \"\", CourseSerNo: 0, Mode: \"Add\" }))\r\n }\r\n const handleClickEdit = () => {\r\n if (selected.CourseSerNo == 0) {\r\n alertFunction(\"Please select the Course Name\")\r\n return\r\n }\r\n setSelected((prev) => ({ ...prev, Mode: \"Edit\" }))\r\n setOld(selected.CourseSerNo)\r\n }\r\n const searchEdit = () => {\r\n GetCourseMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n setCourseList(resp.data);\r\n setSelected(defaultObj)\r\n let temp = []\r\n resp.data.forEach(x => {\r\n if (x.Name.toLowerCase().includes(search.toLowerCase())) {\r\n temp.push(x);\r\n }\r\n });\r\n console.log('New List>>', temp);\r\n setResultList(temp);\r\n })\r\n }\r\n\r\n const AddEditAPI = (selected) => {\r\n console.log(\"selected\", selected)\r\n AddEditCourseMaster(selected).then(resp => {\r\n if (resp.status == 200) {\r\n alertFunction(resp.data.Message);\r\n setValidation((prev) => ({ ...prev, Name: \"\", SequenceNo: \"\" }))\r\n setSelected((prev) => ({ ...prev, CourseSerNo: parseInt(resp.data.ReturnValue) }))\r\n if (selected.Mode == \"Add\" || selected.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit()\r\n return;\r\n }\r\n setTimeout(() => {\r\n if(scrollRef.current!=null){\r\n scrollRef.current.scrollIntoView({ behaviour: \"smooth\" });\r\n }\r\n }, 100)\r\n }\r\n GetAllData();\r\n }\r\n }\r\n )\r\n }\r\n const isValidpage = () => {\r\n let isValid = true;\r\n if (validation.Name != \"\") {\r\n setValidation((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n isValid = false;\r\n }\r\n if (selected.Name.trim().length == 0 || /[0-9’/`~!#*$@_+=^{}[\\]|;:<>?\\\\]/g.test(selected.Name) == true) {\r\n setValidation((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n isValid = false;\r\n }\r\n if (selected.SequenceNo == 0 && parseInt(selected.SequenceNo) <= 0) {\r\n setValidation((prev) => ({ ...prev, SequenceNo: \"Please enter valid Sequence no.\" }))\r\n isValid = false;\r\n }\r\n if (isNaN(selected.SequenceNo)) {\r\n setValidation((prev) => ({ ...prev, SequenceNo: \"Please enter only Number.\" }))\r\n isValid = false;\r\n }\r\n return isValid\r\n }\r\n\r\n const handleClickSave = () => {\r\n let isValid = isValidpage();\r\n if (isValid) { \r\n let temp = selected;\r\n temp.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n temp.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n temp.SequenceNo = parseInt(temp.SequenceNo);\r\n AddEditAPI(temp);\r\n setSelected((prev) => ({ ...prev, Mode: \"Save\" }))\r\n }\r\n else{\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n const handleClickCancel = () => {\r\n setValidation((prev) => ({ ...prev, Name: \"\", SequenceNo: \"\" }))\r\n if (old == 0) {\r\n setSelected(defaultObj)\r\n }\r\n else {\r\n courseList.forEach(element => {\r\n if (element.CourseSerNo == old) {\r\n setSelected(element);\r\n }\r\n });\r\n }\r\n }\r\n\r\n const handleChangeName = (e) => {\r\n if ((courseList.every((x) => x.Name.toLowerCase() != e.toLowerCase()))) {\r\n setValidation((prev) => ({ ...prev, Name: \"\" }))\r\n setSelected(prev => ({ ...prev, Name: e }));\r\n } else {\r\n setValidation(prev => ({ ...prev, Name: \"Course already exist.\" }))\r\n }\r\n }\r\n const handleChangeSequenceNo = (e) => {\r\n if (courseList.every((x) => x.SequenceNo != e)) {\r\n setValidation((prev) => ({ ...prev, SequenceNo: \"\" }))\r\n setSelected((prev) => ({ ...prev, SequenceNo: e }));\r\n if (isNaN(e)) {\r\n setValidation((prev) => ({ ...prev, SequenceNo: \"Invalid Course Sequence.\" }))\r\n }\r\n } else {\r\n setValidation(prev => ({ ...prev, SequenceNo: \"Invalid Course Sequence\" }))\r\n }\r\n }\r\n\r\n const handleChangeSearch = (e) => {\r\n setSearch(e);\r\n setValidation((prev) => ({ ...prev, Name: \"\", SequenceNo: \"\" }))\r\n setSelected((prev) => ({ ...prev, Name: \"\", SequenceNo: \"\", CourseSerNo: 0,Mode:\"\" }))\r\n let temp = []\r\n courseList.forEach(element => {\r\n if (element.Name.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(element);\r\n }\r\n });\r\n setResultList(temp);\r\n }\r\n const handleClickServerType = (course) => {\r\n setValidation((prev) => ({ ...prev, Name: \"\", SequenceNo: \"\" }))\r\n setSelected(course)\r\n }\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Course Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { handleChangeSearch(e) }} value={search} OnCancelClick={() => handleChangeSearch(\"\")}>Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Course Names
    \r\n
    \r\n
      \r\n {resultList.map((course, index) => {\r\n return (\r\n
    • handleClickServerType(course)}\r\n ref={(course.CourseSerNo == selected.CourseSerNo) ? scrollRef : null}\r\n className={(course.CourseSerNo == selected.CourseSerNo) ? \"active\" : \"\"}\r\n > {course.Name}
    • \r\n \r\n )\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n Name\r\n Sequence number\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n {selected.Mode == \"Edit\" || selected.Mode == \"Add\" ?\r\n <>\r\n Cancel\r\n Save\r\n \r\n :\r\n <>\r\n Edit\r\n Add\r\n \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n","import React, { useRef, useState, useEffect } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport {\r\n InnSingleDateSelection,\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnSwitch,\r\n InnTableGrid, InnModalPopup, InnTextarea, useConfirm, InnLoader\r\n} from \"../../../../component\";\r\nimport { IndiNoPost, IndiRoutingInstruction } from \"../../reservation/indicators\";\r\nimport { validateReservationByRoomNo } from \"../../../../services/housekeepingServiceMaster\";\r\nimport { GetTaxExemptionMaster } from \"../../../../services/posbillingService\";\r\nimport { GetReservationAccompanyGuest } from \"../../../../services/reservationService\";\r\nimport { GetMenuItemDetailBilling } from \"../../../../services/posbillingService\";\r\nimport { GetMiniBarOutletData } from \"../../../../services/posMasterService\";\r\nimport { InsertPOSItemTableData } from \"../../../../services/posbillingService\";\r\nimport { GetOpenTableDetails } from \"../../../../services/posbillingService\";\r\nimport { GetTransactionMaster } from \"../../../../services/reservationService\";\r\nimport moment from \"moment\";\r\nimport { UpdatePOSPrintFlag } from \"../../../../services/posbillingService\";\r\nimport { InsertMiniBarSettlement } from \"../../../../services/posbillingService\";\r\nimport { InsertMiniBarRoomSettlement } from \"../../../../services/posbillingService\";\r\nimport { GetReservationInfoData } from \"../../../../services/reservationService\";\r\nimport { GetPropertyParameterByKeys } from \"../../../../services/reservationService\";\r\n\r\nlet tempErr = true;\r\nexport default function PostMinibarChargePopup(props) {\r\n const currUser = useSelector(currentUser)\r\n const [selectedItemsList, setSelectedItemsList] = useState([])\r\n const [isActive, setIsActive] = useState(false);\r\n const selectdata = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n const actionPopup = (item) => {\r\n if (item.key == \"Post Minibar\") {\r\n setShowPostMinibarModal(true);\r\n }\r\n }\r\n\r\n const [itemList, setItemList] = useState([])\r\n\r\n //#region \r\n const validationObj = { RoomNo: \"\", GuestName: \"\", ExamptionSerNo: \"\", Discount: \"\" }\r\n const [validation, setValidation] = useState({ validationObj })\r\n const [tax, setTax] = useState({})\r\n const [insertObj, setInsertObj] = useState({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n OutletSerNo: 0,\r\n TableSerNo: 0,\r\n TableName: \"\",\r\n AgentProfileSerNo: 0,\r\n CompanyProfileSerNo: 0,\r\n RateSerNo: 0,\r\n ExamptionSerNo: 0,\r\n Discount: 0,\r\n Percentage: true, //false,\r\n MenuSerNo: 0,\r\n ReferenceSerNo: 0,\r\n UserID: currUser.UserID,\r\n ProfileSerNo: 0,\r\n RoomSerNo: 0,\r\n cnlRerenceSerNo: 0,\r\n Remarks: \"\",\r\n ReservationSerNo: 0,\r\n CompanyOnCheck: 0,\r\n ReasonSerNo: 0,\r\n DiscountRemarks: \"\",\r\n IsTaxInclusive: false,\r\n IsComplimentary: false,\r\n IsDisable: false\r\n })\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const [billingSummary, setBillingSummary] = useState({\r\n Discount: 0,\r\n TotalAmount: 0,\r\n Tax: 0,\r\n Gross: 0\r\n })\r\n const defaultSettlementObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n CheckSerNo: 0,\r\n RoomSerNo: 0,\r\n Amount: 0,\r\n TipAmount: 0,\r\n TransactionSerNo: 0,\r\n UserID: currUser.UserID,\r\n PaymentMethodType: \"\",\r\n PanCardNo: \"\",\r\n PanHolderName: \"\",\r\n ChequeNo: \"\",\r\n BankName: \"\",\r\n BranchName: \"\",\r\n NameOfAccount: \"\",\r\n CCNo: \"\",\r\n CCHolderName: \"\",\r\n CCExpiryDate: \"\",\r\n PaymentReceivedDate: \"\",\r\n UPIId: \"\",\r\n CreditMachineSerNo: 0\r\n };\r\n const defaultPostSettlementValidation = {\r\n Amount: \"\",\r\n TransactionSerNo: \"\",\r\n CCNo: \"\",\r\n CCHolderName: \"\",\r\n CCExpiryDate: \"\",\r\n PanCardNo: \"\",\r\n PanHolderName: \"\",\r\n ChequeNo: \"\",\r\n BankName: \"\",\r\n BranchName: \"\",\r\n NameOfAccount: \"\",\r\n PaymentReceivedDate: \"\",\r\n UPIId: \"\",\r\n };\r\n const defaultDisableObj = {\r\n post: false,\r\n payment: true,\r\n postToRoom: false,\r\n addSettlement: true,\r\n };\r\n //#endregion\r\n\r\n //#region state\r\n const columHeaderPostMinibar =\r\n [\r\n { key: \"Mode Of Payment\", value: \"mode\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Amount\", value: \"amount\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n { key: \"\", value: \"action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n const [filterDataPostMinibar, setfilterDataPostMinibar] = useState([]);\r\n const [savedList, setSavedList] = useState([])\r\n const propertyPara = [\"BusinessDate\"];\r\n const reservationObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: 50,\r\n };\r\n\r\n const [showPostMinibarModal, setShowPostMinibarModal] = useState(false);\r\n\r\n const wrapperRef = useRef(null);\r\n const [showLaundryItemDD, setShowLaundryItemDD] = useState();\r\n const [isInvoicePrinted, setIsInvoicePrinted] = useState(false);\r\n const [roomNo, setRoomNo] = useState(\"\");\r\n const [guestList, setGuestList] = useState([]);\r\n const [taxExemptionList, setTaxExemptionList] = useState([]);\r\n const [reservationStatus, setReservationStatus] = useState(\"\");\r\n const [postSettlementObj, setPostSettlementObj] = useState(defaultSettlementObj);\r\n const [paymentMethodTypeList, setPaymentMethodTypeList] = useState([]);\r\n const [paymentList, setPaymentList] = useState([]);\r\n const [selectedPaymentMethod, setSelectedPaymentMethod] = useState(\"\");\r\n const [postSettlementValidation, setPostSettlementValidation] = useState(defaultPostSettlementValidation);\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n const [disabledObj, setDisabledObj] = useState(defaultDisableObj);\r\n const [IsShowSummary, setIsShowSummary] = useState(true);\r\n const [miniBarOutletData, setMiniBarOutletData] = useState({});\r\n const [postToRoomObj, setPostToRoomObj] = useState({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n CheckSerNo: null,\r\n TransactionSerNo: null,\r\n CompanyProfileSerNo: null,\r\n UserID: currUser.UserID,\r\n RoomSerNo: null,\r\n Amount: null,\r\n ReservationSerNo: null\r\n })\r\n\r\n const GetOutLetData = () => {\r\n GetMiniBarOutletData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n if (resp.data.length != 0) {\r\n let obj = JSON.parse(JSON.stringify(resp.data));\r\n setMiniBarOutletData(obj);\r\n setInsertObj((prev) => ({ ...prev, OutletSerNo: resp.data[0].OutletSerNo, MenuSerNo: resp.data[0].MenuSerNo }))\r\n if (resp.data[0].IsComplimentary) {\r\n setDisabledObj(prev => ({\r\n ...prev,\r\n post: true,\r\n payment: false,\r\n postToRoom: true,\r\n addSettlement: true\r\n }));\r\n setInsertObj((prev) => ({ ...prev, RateSerNo: resp.data[0].CompRateSerNo }))\r\n }\r\n else {\r\n setInsertObj((prev) => ({ ...prev, RateSerNo: resp.data[0].RateSerNo }))\r\n }\r\n setPostToRoomObj((prev) => ({ ...prev, TransactionSerNo: resp.data[0].TransactionSerNo }))\r\n GetMenuItemDetailBilling(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(resp.data[0].MenuSerNo)).then(resp => {\r\n let temp = []\r\n resp.data.forEach(element => {\r\n temp.push({ key: element.ItemSerNo, value: element.Name, RegularRate: element.RegularRate, Qty: 1, CostRate: element.CostRate, IsNewItem: false })\r\n });\r\n setItemList(temp)\r\n })\r\n }\r\n })\r\n }\r\n\r\n const fillPropertyPara = () => {\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), propertyPara).then(resp => {\r\n let obj = resp.data.find(x => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(moment(resp.data[0].value).format(\"DD-MMM-YYYY\"));\r\n setPostSettlementObj((prev) => ({ ...prev, PaymentReceivedDate: moment(resp.data[0].value).format(\"DD-MMM-YYYY\"), CCExpiryDate: moment(resp.data[0].value).format(\"DD-MMM-YYYY\") }))\r\n }\r\n })\r\n };\r\n const fillPaymentMethodType = () => {\r\n GetTransactionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"P\", \"ALL\").then(d => {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.filter(x => x.Module === \"P\" || x.Module === \"G\").forEach(x => {\r\n temp.push({ key: x.TransactionSerNo, value: x.Name });\r\n });\r\n setPaymentMethodTypeList(temp);\r\n setPaymentList(d.data);\r\n });\r\n };\r\n\r\n const handleClickSaveSettelment = () => {\r\n if (IsPaymentValid()) {\r\n let obj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n CheckSerNo: postSettlementObj.CheckSerNo,\r\n RoomSerNo: postSettlementObj.RoomSerNo,\r\n Amount: parseFloat(postSettlementObj.Amount),\r\n TipAmount: postSettlementObj.TipAmount,\r\n TransactionSerNo: postSettlementObj.TransactionSerNo,\r\n UserID: currUser.UserID,\r\n PaymentMethodType: postSettlementObj.PaymentMethodType,\r\n PanCardNo: postSettlementObj.PanCardNo == \"\" ? null : postSettlementObj.PanCardNo,\r\n PanHolderName: postSettlementObj.PanHolderName == \"\" ? null : postSettlementObj.PanHolderName,\r\n ChequeNo: postSettlementObj.ChequeNo == \"\" ? null : postSettlementObj.ChequeNo,\r\n BankName: postSettlementObj.BankName == \"\" ? null : postSettlementObj.BankName,\r\n BranchName: postSettlementObj.BranchName == \"\" ? null : postSettlementObj.BranchName,\r\n NameOfAccount: postSettlementObj.NameOfAccount == \"\" ? null : postSettlementObj.NameOfAccount,\r\n CCNo: postSettlementObj.CCNo == \"\" ? null : postSettlementObj.CCNo,\r\n CCHolderName: postSettlementObj.CCHolderName == \"\" ? null : postSettlementObj.CCHolderName,\r\n CCExpiryDate: postSettlementObj.CCExpiryDate == \"\" ? null : postSettlementObj.CCExpiryDate,\r\n PaymentReceivedDate: postSettlementObj.PaymentReceivedDate == \"\" ? null : postSettlementObj.PaymentReceivedDate,\r\n UPIId: postSettlementObj.UPIId == \"\" ? null : postSettlementObj.UPIId,\r\n CreditMachineSerNo: postSettlementObj.CreditMachineSerNo\r\n }\r\n postSettlementObj.Amount = parseFloat(postSettlementObj.Amount);\r\n InsertMiniBarSettlement(obj).then(resp => {\r\n alertFunction(\"Transaction added successfully\")\r\n setPostSettlementValidation(defaultPostSettlementValidation)\r\n if (parseInt(resp.data.IsClosed) != 0) {\r\n GetOpenTableDetails(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), insertObj.TableSerNo, insertObj.OutletSerNo, currUser.UserID).then(resp1 => {\r\n setIsActive(false)\r\n setIsShowSummary(true);\r\n setPostSettlementObj(defaultSettlementObj)\r\n if (resp1.data.pPOSTableDetail) {\r\n setInsertObj((prev) => ({ ...prev, Discount: resp1.data.pPOSTableDetail.Discount, RoomSerNo: resp1.data.pPOSTableDetail.TableSerNo, ProfileSerNo: resp1.data.pPOSTableDetail.ProfileSerNo, ExamptionSerNo: resp1.data.pPOSTableDetail.ExamptionSerNo, Remarks: resp1.data.pPOSTableDetail.Remarks, IsComplimentary: resp1.data.pPOSTableDetail.IsComplimentary, IsTaxInclusive: resp1.data.pPOSTableDetail.IsTaxInclusive, Percentage: resp1.data.pPOSTableDetail.Percentage }))\r\n setBillingSummary(resp1.data.pPOSItemTotalAmountDetail)\r\n setPostSettlementObj((prev) => ({ ...prev, Amount: parseFloat(resp1.data.pPOSItemTotalAmountDetail?.TotalAmount) }))\r\n if (resp1.data.pPOSTableDetail.IsPrinted) {\r\n setIsInvoicePrinted(true)\r\n setDisabledObj(prev => ({\r\n ...prev,\r\n post: true,\r\n payment: false,\r\n postToRoom: true,\r\n addSettlement: false\r\n }));\r\n }\r\n }\r\n setSavedList(resp1.data.pPOSItemDetail);\r\n let temp = JSON.parse(JSON.stringify(selectedItemsList));\r\n temp.forEach(item => {\r\n item.IsChecked = false\r\n });\r\n let temp1 = JSON.parse(JSON.stringify(itemList));\r\n temp1.forEach(item => {\r\n item.IsChecked = false\r\n });\r\n if (resp1.data.pPOSTableDetail.CheckSerNo != 0) {\r\n setInsertObj((prev) => ({ ...prev, IsExistingTable: true, CheckSerNo: resp1.data.pPOSTableDetail.CheckSerNo }))\r\n setPostSettlementObj((prev) => ({ ...prev, CheckSerNo: resp1.data.pPOSTableDetail.CheckSerNo }))\r\n setPostToRoomObj((prev) => ({ ...prev, CheckSerNo: resp1.data.pPOSTableDetail.CheckSerNo }))\r\n }\r\n let temp2 = [];\r\n resp1.data.pPOSSettlement.forEach(element => {\r\n temp2.push({\r\n mode: element.TransactionName,\r\n amount: element.Amount,\r\n Action: \"...\"\r\n })\r\n });\r\n setfilterDataPostMinibar(temp2);\r\n setItemList(temp1);\r\n setSelectedItemsList(temp);\r\n if (resp1.data.pPOSTableDetail.IsPrinted) {\r\n setIsInvoicePrinted(true)\r\n setDisabledObj(prev => ({\r\n ...prev,\r\n post: true,\r\n payment: false,\r\n postToRoom: true,\r\n addSettlement: false\r\n }));\r\n }\r\n })\r\n }\r\n else {\r\n alertFunction(\"Bill closed successfully\")\r\n handleOnclose()\r\n }\r\n })\r\n }\r\n }\r\n const fillTaxExemptionList = () => {\r\n GetTaxExemptionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n let temp = [];\r\n d.data.forEach(x => {\r\n temp.push({ key: x.ExemptionSerNo, value: (parseInt(x.ExemptionSerNo) === 0) ? \"Select\" : x.Name });\r\n });\r\n setTaxExemptionList(temp);\r\n }).catch(() => {\r\n setTaxExemptionList([{ key: 0, value: \"Select\" }]);\r\n });\r\n };\r\n\r\n\r\n const fillInfoData = (ReservationSerNo) => {\r\n GetReservationInfoData(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n ReservationSerNo\r\n ).then((response) => {\r\n let dates = { ArrivalDate: new Date(response.data.ArrivalDate1).getTime(), DepartureDate1: new Date(response.data.DepartureDate1).getTime(), BusinessDate: new Date(businessDate).getTime() }\r\n\r\n if (dates.ArrivalDate == dates.BusinessDate && dates.ArrivalDate == dates.DepartureDate1) {\r\n setReservationStatus(\"Due-out\")\r\n }\r\n else if (dates.ArrivalDate == dates.BusinessDate && dates.ArrivalDate != dates.DepartureDate1) {\r\n setReservationStatus(\"Arrived\")\r\n }\r\n else if (dates.ArrivalDate != dates.BusinessDate && dates.BusinessDate == dates.DepartureDate1) {\r\n setReservationStatus(\"Due-out\")\r\n }\r\n else if (dates.ArrivalDate != dates.BusinessDate && dates.BusinessDate != dates.DepartureDate1) {\r\n setReservationStatus(\"In-house\")\r\n }\r\n setPostToRoomObj(prev => ({ ...prev, CompanyProfileSerNo: response.data.CompanyProfileSerNo }));\r\n });\r\n };\r\n const fillGuestList = (ReservationSerNo) => {\r\n GetReservationAccompanyGuest(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then((d) => {\r\n if (d.status === 200) {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach(x => {\r\n temp.push({ key: x.GuestProfileSerNo, value: x.GuestName });\r\n });\r\n setGuestList(temp);\r\n }\r\n });\r\n };\r\n const fillReservation = (RoomNo) => {\r\n if (RoomNo.trim() === \"\") {\r\n clearReservationDetails();\r\n }\r\n else {\r\n if ((/^[A-Za-z0-9+$]/).test(RoomNo)) {\r\n validateReservationByRoomNo(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), RoomNo).then(d => {\r\n if (d.data.ReservationSerNo === -1) {\r\n alertFunction(\"Room No. does not exist.\");\r\n clearReservationDetails();\r\n } else if (d.data.ReservationSerNo === 0) {\r\n alertFunction(\"No room reservation found with this room no.\");\r\n clearReservationDetails();\r\n } else {\r\n setInsertObj((prev) => ({ ...prev, RoomSerNo: d.data.RoomSerNo, ReservationSerNo: d.data.ReservationSerNo, TableSerNo: d.data.RoomSerNo, TableName: d.data.RoomSerNo.toString() }))\r\n setPostSettlementObj((prev) => ({ ...prev, RoomSerNo: d.data.RoomSerNo }))\r\n setPostToRoomObj((prev) => ({ ...prev, RoomSerNo: d.data.RoomSerNo, ReservationSerNo: d.data.ReservationSerNo }))\r\n setReservationStatus(\"In-house\");\r\n fillInfoData(d.data.ReservationSerNo);\r\n fillGuestList(d.data.ReservationSerNo);\r\n }\r\n }).catch(() => {\r\n clearReservationDetails();\r\n });\r\n } else {\r\n alertFunction(\"Room No. does not exist.\");\r\n }\r\n }\r\n };\r\n //#endregion\r\n\r\n const TaxesTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    CGST 6%
    \r\n
    \r\n
    \r\n
    SGST 6%
    \r\n
    \r\n
    \r\n
    Taxable Amount 4,500
    \r\n
    \r\n
    \r\n
    Tax Amount 140
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n const InclusionsTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    INCLUSIONS
    \r\n
      \r\n
    • \r\n Item Name\r\n
    • \r\n
    • \r\n Item Name\r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose == undefined) {\r\n\r\n } else {\r\n props.handleOnclose();\r\n }\r\n }\r\n const handleClickItemApply = () => {\r\n setSelectedItemsList(itemList);\r\n setShowLaundryItemDD(!showLaundryItemDD);\r\n }\r\n\r\n const handleChangeQty = (e, x) => {\r\n let temp = JSON.parse(JSON.stringify(selectedItemsList));\r\n temp.forEach(item => {\r\n if (item.key === x.key) {\r\n item.Qty = e.target.value;\r\n }\r\n });\r\n setSelectedItemsList(temp);\r\n }\r\n\r\n const handleRemoveItem = (x) => {\r\n let temp = JSON.parse(JSON.stringify(selectedItemsList));\r\n temp.forEach((item, index) => {\r\n if (item.key === x.key) {\r\n temp.splice(index, 1);\r\n }\r\n });\r\n let temp1 = JSON.parse(JSON.stringify(itemList));\r\n temp1.forEach(item => {\r\n if (item.key === x.key) {\r\n item.IsChecked = false;\r\n item.Qty = 1;\r\n }\r\n });\r\n setSelectedItemsList(temp);\r\n setItemList(temp1);\r\n }\r\n\r\n const handleClickCheckBox = (e, x) => {\r\n let temp = JSON.parse(JSON.stringify(itemList));\r\n temp.forEach(item => {\r\n if (item.key === x.key) {\r\n item.IsChecked = e;\r\n }\r\n });\r\n setItemList(temp);\r\n }\r\n\r\n const IsPageValid = () => {\r\n if (insertObj.RoomSerNo === 0) {\r\n setValidation(prev => ({ ...prev, RoomNo: \"Please enter valid room number.\" }));\r\n return false;\r\n }\r\n if (insertObj.ProfileSerNo === 0) {\r\n setValidation(prev => ({ ...prev, GuestName: \"Please select guestname.\" }));\r\n return false;\r\n }\r\n if (isNaN(insertObj.Discount)) {\r\n setValidation(prev => ({ ...prev, Discount: \"Invalid input\" }));\r\n return false;\r\n } else {\r\n if (parseFloat(insertObj.Discount) > 100) {\r\n setValidation(prev => ({ ...prev, Discount: \"Enter discount less than 100\" }));\r\n return false;\r\n }\r\n }\r\n if (selectedItemsList.filter(x => x.IsChecked === true).length === 0) {\r\n alertFunction(\"No items avaiable.\");\r\n return false;\r\n } else {\r\n let temp = true;\r\n let data = [];\r\n savedList.map(d => {\r\n if (data.indexOf((d.ItemSerNo)) === -1) {\r\n data.push(d.ItemSerNo);\r\n }\r\n });\r\n\r\n let tempArr = []\r\n for (let i = 0; i < data.length; i++) {\r\n let filterData = savedList.filter(item => item.ItemSerNo == data[i]);\r\n let Qty = 0;\r\n filterData.forEach((ele) => {\r\n Qty = Qty + ele.ItemQty;\r\n });\r\n\r\n let objData = {\r\n ItemSerNo: data[i],\r\n Qty: Qty\r\n }\r\n tempArr.push(objData)\r\n }\r\n\r\n selectedItemsList.forEach(x => {\r\n if (isNaN(x.Qty) || parseInt(x.Qty) <= 0 || x.Qty == \"\") {\r\n if (!isNaN(x.Qty) && x.Qty <= 0) {\r\n let obj = tempArr.find(o => o.ItemSerNo === x.ItemSerNo);\r\n if (obj) {\r\n let total = obj.Qty + parseInt(x.Qty)\r\n if (total < 0) {\r\n temp = false;\r\n }\r\n }\r\n } else {\r\n temp = false;\r\n }\r\n }\r\n });\r\n if (temp === false) {\r\n tempErr = false;\r\n alertFunction(\"Item quantity not valid.\");\r\n return false;\r\n } else {\r\n tempErr = true;\r\n }\r\n }\r\n return true;\r\n };\r\n\r\n const handleClickSaveItem = () => {\r\n let temp = []\r\n insertObj.Discount = parseInt(insertObj.Discount)\r\n selectedItemsList.forEach(element => {\r\n if (element.IsChecked == true) {\r\n element.ItemSerNo = element.key\r\n element.ItemQty = parseInt(element.Qty)\r\n element.ItemRate = element.RegularRate\r\n element.MenuSerNo = insertObj.MenuSerNo\r\n element.UserID = currUser.UserID\r\n element.ManKotNo = \"\"\r\n element.CookingInsName = \"\"\r\n element.ToppingName = \"\"\r\n element.DiscountAmt = parseInt(insertObj.Discount)\r\n element.IsPercentage = insertObj.Percentage\r\n element.CancelCheckItemSerNo = 0\r\n element.CancelRemarks = \"\"\r\n element.IsNewItem = true\r\n temp.push(element);\r\n }\r\n });\r\n setSelectedItemsList(temp);\r\n let IsValid = false;\r\n IsValid = IsPageValid();\r\n\r\n if (tempErr === false) {\r\n IsValid = false;\r\n }\r\n\r\n if (IsValid) {\r\n let Addeditobject = {\r\n pPOSTableDetail: insertObj,\r\n pPOSItemDetail: temp,\r\n pPOSItemTopping: []\r\n }\r\n\r\n InsertPOSItemTableData(Addeditobject).then(resp => {\r\n if (resp.data != null) {\r\n alertFunction(\"Items saved\")\r\n setInsertObj((prev) => ({ ...prev, IsDisable: true }))\r\n setValidation(validationObj)\r\n GetOpenTableDetails(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), insertObj.TableSerNo, insertObj.OutletSerNo, currUser.UserID).then(resp1 => {\r\n setIsActive(false)\r\n if (resp1.data.pPOSTableDetail) {\r\n setInsertObj((prev) => ({ ...prev, Discount: resp1.data.pPOSTableDetail.Discount, RoomSerNo: resp1.data.pPOSTableDetail.TableSerNo, ProfileSerNo: resp1.data.pPOSTableDetail.ProfileSerNo, ExamptionSerNo: resp1.data.pPOSTableDetail.ExamptionSerNo, Remarks: resp1.data.pPOSTableDetail.Remarks, IsComplimentary: resp1.data.pPOSTableDetail.IsComplimentary, IsTaxInclusive: resp1.data.pPOSTableDetail.IsTaxInclusive, Percentage: resp1.data.pPOSTableDetail.Percentage }))\r\n setBillingSummary(resp1.data.pPOSItemTotalAmountDetail)\r\n setPostSettlementObj((prev) => ({ ...prev, Amount: parseFloat(resp1.data.pPOSItemTotalAmountDetail.TotalAmount) }))\r\n if (resp1.data.pPOSTableDetail.IsPrinted) {\r\n setIsInvoicePrinted(true)\r\n setDisabledObj(prev => ({\r\n ...prev,\r\n post: true,\r\n payment: false,\r\n postToRoom: false,\r\n addSettlement: true\r\n }));\r\n }\r\n }\r\n\r\n setSavedList(resp1.data.pPOSItemDetail);\r\n let temp = JSON.parse(JSON.stringify(selectedItemsList));\r\n temp.forEach(item => {\r\n item.IsChecked = false\r\n });\r\n let temp1 = JSON.parse(JSON.stringify(itemList));\r\n temp1.forEach(item => {\r\n item.IsChecked = false\r\n });\r\n if (resp1.data.pPOSTableDetail.CheckSerNo != 0) {\r\n setInsertObj((prev) => ({ ...prev, IsExistingTable: true, CheckSerNo: resp1.data.pPOSTableDetail.CheckSerNo }))\r\n setPostSettlementObj((prev) => ({ ...prev, CheckSerNo: resp1.data.pPOSTableDetail.CheckSerNo }))\r\n setPostToRoomObj((prev) => ({ ...prev, CheckSerNo: resp1.data.pPOSTableDetail.CheckSerNo }))\r\n }\r\n let temp2 = [];\r\n resp1.data.pPOSSettlement.forEach(element => {\r\n temp2.push({\r\n mode: element.TransactionName,\r\n amount: element.Amount,\r\n Action: \"...\"\r\n })\r\n });\r\n if (resp1.data.pPOSTableDetail.IsComplimentary) {\r\n let temp3 = paymentList.find(x => x.PaymentMethodType == 'COMP');\r\n if (temp3 != undefined) {\r\n let temp1 = [{ key: 0, value: \"Select\" }]\r\n temp1.push({ key: temp3.TransactionSerNo, value: temp3.Name })\r\n setPaymentMethodTypeList(temp1);\r\n }\r\n }\r\n setfilterDataPostMinibar(temp2);\r\n setItemList(temp1);\r\n setSelectedItemsList(temp);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n const IsPaymentValid = () => {\r\n let IsValid = true;\r\n //#region jindal validation\r\n if (postSettlementObj.TransactionSerNo === 0) {\r\n setPostSettlementValidation(prev => ({ ...prev, TransactionSerNo: \"Select Payment Method\" }));\r\n IsValid = false;\r\n }\r\n if (isNaN(postSettlementObj.Amount)) {\r\n setPostSettlementValidation(prev => ({ ...prev, Amount: \"Enter valid amount\" }));\r\n IsValid = false;\r\n } else {\r\n if (parseFloat(postSettlementObj.Amount) <= 0) {\r\n setPostSettlementValidation(prev => ({ ...prev, Amount: \"Enter amount more than 0\" }));\r\n IsValid = false;\r\n }\r\n }\r\n if (selectedPaymentMethod === \"Cash \") {\r\n if (parseInt(postSettlementObj.Amount) >= 50000) {\r\n if (postSettlementObj.PanCardNo.trim() === \"\") {\r\n setPostSettlementValidation(prev => ({ ...prev, PanCardNo: \"Enter PanCard No\" }));\r\n IsValid = false;\r\n }\r\n if (postSettlementObj.PanHolderName.trim() === \"\") {\r\n setPostSettlementValidation(prev => ({ ...prev, PanHolderName: \"Enter Pan Holder Name\" }));\r\n IsValid = false;\r\n }\r\n }\r\n }\r\n if (selectedPaymentMethod === \"CH\") {\r\n if (isNaN(postSettlementObj.ChequeNo)) {\r\n setPostSettlementValidation(prev => ({ ...prev, ChequeNo: \"“Invalid input. Please enter numeric value.“\" }));\r\n IsValid = false;\r\n }\r\n if (postSettlementObj.ChequeNo.trim() === \"\") {\r\n setPostSettlementValidation(prev => ({ ...prev, ChequeNo: \"Enter ChequeNo\" }));\r\n IsValid = false;\r\n }\r\n if (postSettlementObj.BankName.trim() === \"\") {\r\n setPostSettlementValidation(prev => ({ ...prev, BankName: \"Enter Bank Name\" }));\r\n IsValid = false;\r\n }\r\n if (postSettlementObj.BranchName.trim() === \"\") {\r\n setPostSettlementValidation(prev => ({ ...prev, BranchName: \"Enter Branch Name\" }));\r\n IsValid = false;\r\n }\r\n if (postSettlementObj.NameOfAccount.trim() === \"\") {\r\n setPostSettlementValidation(prev => ({ ...prev, NameOfAccount: \"Enter Name Of Account\" }));\r\n IsValid = false;\r\n }\r\n }\r\n if (selectedPaymentMethod === \"CD\") {\r\n if (postSettlementObj.CCNo.trim() === \"\") {\r\n IsValid = false;\r\n setPostSettlementValidation(prev => ({ ...prev, CCNo: \"Enter Card No\" }));\r\n }\r\n if (isNaN(postSettlementObj.ChequeNo)) {\r\n setPostSettlementValidation(prev => ({ ...prev, CCNo: \"“Invalid input. Please enter numeric value.“\" }));\r\n IsValid = false;\r\n }\r\n if (postSettlementObj.CCExpiryDate.trim() === \"\") {\r\n IsValid = false;\r\n setPostSettlementValidation(prev => ({ ...prev, CCExpiryDate: \"Enter Expiry Date\" }));\r\n }\r\n if (postSettlementObj.CCHolderName.trim() === \"\") {\r\n IsValid = false;\r\n setPostSettlementValidation(prev => ({ ...prev, CCHolderName: \"Enter Card Holder Name\" }));\r\n }\r\n }\r\n if (selectedPaymentMethod === \"BT\") {\r\n if (postSettlementObj.BankName.trim() === \"\") {\r\n IsValid = false;\r\n setPostSettlementValidation(prev => ({ ...prev, BankName: \"Enter Bank Name\" }));\r\n }\r\n if (postSettlementObj.PaymentReceivedDate === \"\") {\r\n IsValid = false;\r\n setPostSettlementValidation(prev => ({ ...prev, PaymentReceivedDate: \"Enter Payment Receive Date\" }));\r\n }\r\n if (postSettlementObj.NameOfAccount.trim() === \"\") {\r\n IsValid = false;\r\n setPostSettlementValidation(prev => ({ ...prev, NameOfAccount: \"Enter Name Of Account\" }));\r\n }\r\n }\r\n if (selectedPaymentMethod === \"UP\") {\r\n if (postSettlementObj.UPIId.trim() === \"\") {\r\n IsValid = false;\r\n setPostSettlementValidation(prev => ({ ...prev, UPIId: \"Enter UPI ID\" }));\r\n }\r\n if (postSettlementObj.PaymentReceivedDate.trim() === \"\") {\r\n IsValid = false;\r\n setPostSettlementValidation(prev => ({ ...prev, PaymentReceivedDate: \"Enter Payment Receive Date\" }));\r\n }\r\n }\r\n if(postSettlementObj.Amount>billingSummary.TotalAmount){\r\n setPostSettlementValidation(prev => ({ ...prev, Amount: \"Please enter amount less than the total maount\" })); \r\n IsValid=false;\r\n }\r\n return IsValid;\r\n };\r\n\r\n const handleClickInvioce = () => {\r\n let temp = { ClientSerNo: insertObj.ClientSerNo, PropertySerNo: insertObj.PropertySerNo, CheckSerNo: insertObj.CheckSerNo }\r\n UpdatePOSPrintFlag(temp).then(resp => {\r\n setIsInvoicePrinted(true)\r\n alertFunction(\"Invoice generated successfully\")\r\n if (resp.data == \"Done\") {\r\n setDisabledObj(prev => ({\r\n ...prev,\r\n post: true,\r\n payment: false,\r\n postToRoom: true,\r\n addSettlement: false\r\n }));\r\n }\r\n })\r\n }\r\n\r\n const handleClickPostToRoom = () => {\r\n postToRoomObj.Amount = billingSummary.TotalAmount\r\n InsertMiniBarRoomSettlement(postToRoomObj).then(resp => {\r\n if (parseInt(resp.data.IsClosed) != 0) {\r\n GetOpenTableDetails(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), insertObj.TableSerNo, insertObj.OutletSerNo, currUser.UserID).then(resp1 => {\r\n setIsInvoicePrinted(true)\r\n setIsActive(false)\r\n if (resp1.data.pPOSTableDetail) {\r\n setInsertObj((prev) => ({ ...prev, Discount: resp1.data.pPOSTableDetail.Discount, RoomSerNo: resp1.data.pPOSTableDetail.TableSerNo, ProfileSerNo: resp1.data.pPOSTableDetail.ProfileSerNo, ExamptionSerNo: resp1.data.pPOSTableDetail.ExamptionSerNo, Remarks: resp1.data.pPOSTableDetail.Remarks, IsComplimentary: resp1.data.pPOSTableDetail.IsComplimentary, IsTaxInclusive: resp1.data.pPOSTableDetail.IsTaxInclusive, Percentage: resp1.data.pPOSTableDetail.Percentage }))\r\n setBillingSummary(resp1.data.pPOSItemTotalAmountDetail)\r\n setPostSettlementObj((prev) => ({ ...prev, Amount: parseFloat(resp1.data.pPOSItemTotalAmountDetail?.TotalAmount) }))\r\n if (resp1.data.pPOSTableDetail.IsPrinted) {\r\n setDisabledObj(prev => ({\r\n ...prev,\r\n post: true,\r\n payment: false,\r\n postToRoom: true,\r\n addSettlement: false\r\n }));\r\n }\r\n }\r\n setSavedList(resp1.data.pPOSItemDetail);\r\n let temp = JSON.parse(JSON.stringify(selectedItemsList));\r\n temp.forEach(item => {\r\n item.IsChecked = false\r\n });\r\n let temp1 = JSON.parse(JSON.stringify(itemList));\r\n temp1.forEach(item => {\r\n item.IsChecked = false\r\n });\r\n if (resp1.data.pPOSTableDetail.CheckSerNo != 0) {\r\n setInsertObj((prev) => ({ ...prev, IsExistingTable: true, CheckSerNo: resp1.data.pPOSTableDetail.CheckSerNo }))\r\n setPostSettlementObj((prev) => ({ ...prev, CheckSerNo: resp1.data.pPOSTableDetail.CheckSerNo }))\r\n setPostToRoomObj((prev) => ({ ...prev, CheckSerNo: resp1.data.pPOSTableDetail.CheckSerNo }))\r\n }\r\n let temp2 = [];\r\n resp1.data.pPOSSettlement.forEach(element => {\r\n temp2.push({\r\n mode: element.TransactionName,\r\n amount: element.Amount,\r\n Action: \"...\"\r\n })\r\n });\r\n setfilterDataPostMinibar(temp2);\r\n setItemList(temp1);\r\n setSelectedItemsList(temp);\r\n if (resp1.data.pPOSTableDetail.IsPrinted) {\r\n setIsInvoicePrinted(true)\r\n setDisabledObj(prev => ({\r\n ...prev,\r\n post: true,\r\n payment: false,\r\n postToRoom: true,\r\n addSettlement: false\r\n }));\r\n }\r\n })\r\n }\r\n else {\r\n alertFunction(\"Successful\")\r\n handleOnclose()\r\n }\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n if (props.para != undefined) {\r\n if (props.para.Complimentary == \"Y\") {\r\n let temp = paymentList.find(x => x.PaymentMethodType == 'COMP');\r\n if (temp != undefined) {\r\n let temp1 = [{ key: 0, value: \"Select\" }]\r\n temp1.push({ key: temp.TransactionSerNo, value: temp.Name })\r\n setPaymentMethodTypeList(temp1);\r\n }\r\n }\r\n }\r\n\r\n }, [props.para, insertObj.IsComplimentary, paymentList])\r\n\r\n useEffect(() => {\r\n if (props.para) {\r\n setInsertObj((prev) => ({ ...prev, IsDisable: true, ClientSerNo: parseInt(currUser.ClientSerNo), PropertySerNo: parseInt(currUser.PropertySerNo), TableSerNo: props.para.TableSerNo, OutletSerNo: props.para.OutletSerNo, UserID: props.para.UserID, RoomSerNo: props.para.RoomSerNo }))\r\n setRoomNo(props.para.RoomNo)\r\n fillReservation(props.para.RoomNo)\r\n GetOpenTableDetails(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), props.para.TableSerNo, props.para.OutletSerNo, props.para.UserID).then(resp1 => {\r\n setIsActive(false)\r\n if (resp1.data.pPOSTableDetail) {\r\n setInsertObj((prev) => ({ ...prev, Discount: resp1.data.pPOSTableDetail.Discount, RoomSerNo: resp1.data.pPOSTableDetail.TableSerNo, ProfileSerNo: resp1.data.pPOSTableDetail.ProfileSerNo, ExamptionSerNo: resp1.data.pPOSTableDetail.ExamptionSerNo, Remarks: resp1.data.pPOSTableDetail.Remarks, IsComplimentary: resp1.data.pPOSTableDetail.IsComplimentary, IsTaxInclusive: resp1.data.pPOSTableDetail.IsTaxInclusive, Percentage: resp1.data.pPOSTableDetail.Percentage }))\r\n setBillingSummary(resp1.data.pPOSItemTotalAmountDetail)\r\n setPostSettlementObj((prev) => ({ ...prev, Amount: parseFloat(resp1.data.pPOSItemTotalAmountDetail?.TotalAmount) }))\r\n if (resp1.data.pPOSTableDetail.IsPrinted) {\r\n setIsInvoicePrinted(true)\r\n setDisabledObj(prev => ({\r\n ...prev,\r\n post: true,\r\n payment: false,\r\n postToRoom: true,\r\n addSettlement: false\r\n }));\r\n }\r\n if (resp1.data.pPOSTableDetail.IsComplimentary) {\r\n setDisabledObj(prev => ({\r\n ...prev,\r\n post: true,\r\n payment: false,\r\n postToRoom: true,\r\n addSettlement: true\r\n }));\r\n }\r\n }\r\n setSavedList(resp1.data.pPOSItemDetail);\r\n let temp = JSON.parse(JSON.stringify(selectedItemsList));\r\n temp.forEach(item => {\r\n item.IsChecked = false\r\n });\r\n let temp1 = JSON.parse(JSON.stringify(itemList));\r\n temp1.forEach(item => {\r\n item.IsChecked = false\r\n });\r\n if (resp1.data.pPOSTableDetail.CheckSerNo != 0) {\r\n setInsertObj((prev) => ({ ...prev, IsExistingTable: true, CheckSerNo: resp1.data.pPOSTableDetail.CheckSerNo }))\r\n setPostSettlementObj((prev) => ({ ...prev, CheckSerNo: resp1.data.pPOSTableDetail.CheckSerNo }))\r\n setPostToRoomObj((prev) => ({ ...prev, CheckSerNo: resp1.data.pPOSTableDetail.CheckSerNo }))\r\n\r\n }\r\n let temp2 = [];\r\n resp1.data.pPOSSettlement.forEach(element => {\r\n temp2.push({\r\n mode: element.TransactionName,\r\n amount: element.Amount,\r\n Action: \"...\"\r\n })\r\n });\r\n setfilterDataPostMinibar(temp2);\r\n setItemList(temp1);\r\n setSelectedItemsList(temp);\r\n });\r\n }\r\n }, []);\r\n\r\n const handleIsComplimentaryChange = (e) => {\r\n if (e) {\r\n setDisabledObj(prev => ({\r\n ...prev,\r\n post: true,\r\n payment: false,\r\n postToRoom: true,\r\n addSettlement: true\r\n }));\r\n setInsertObj((prev) => ({ ...prev, Discount: 0, RateSerNo: miniBarOutletData[0].CompRateSerNo, IsComplimentary: e }));\r\n } else {\r\n setDisabledObj(defaultDisableObj)\r\n setInsertObj((prev) => ({ ...prev, RateSerNo: miniBarOutletData[0].RateSerNo, IsComplimentary: e }));\r\n }\r\n };\r\n const onSettleCancelClick = () => {\r\n setPostSettlementValidation(defaultPostSettlementValidation)\r\n setIsShowSummary(true);\r\n };\r\n const clearReservationDetails = () => {\r\n setGuestList([{ key: 0, value: \"Select\" }]);\r\n setReservationStatus(\"\");\r\n };\r\n useEffect(() => {\r\n GetOutLetData();\r\n fillPropertyPara();\r\n fillPaymentMethodType();\r\n fillTaxExemptionList();\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    Post Minibar

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setRoomNo(e);\r\n setInsertObj((prev) => ({ ...prev, ProfileSerNo: 0 }))\r\n }}\r\n onBlur={(e) => fillReservation(e.target.value)}\r\n customError={validation.RoomNo}\r\n >\r\n Room No.\r\n \r\n {reservationStatus}\r\n
    \r\n\r\n
    \r\n {\r\n setInsertObj((prev) => ({ ...prev, ProfileSerNo: item.key }))\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n Complimentary ?\r\n { handleIsComplimentaryChange(v) }}\r\n //onChange={(v) => setInsertObj((prev) => ({ ...prev, IsComplimentary: v }))}\r\n id=\"P1\" >\r\n
    \r\n
    \r\n\r\n
    \r\n Inclusive of Taxes\r\n setInsertObj((prev) => ({ ...prev, IsTaxInclusive: v }))} id=\"P2\" value={insertObj.IsTaxInclusive}>\r\n
    \r\n
    \r\n {\r\n setInsertObj((prev) => ({ ...prev, ExamptionSerNo: item.key }))\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n { setInsertObj((prev) => ({ ...prev, Discount: e })) }}\r\n disabled={insertObj.IsDisable || (insertObj.IsComplimentary == true ? true : false)}\r\n customError={validation.Discount}\r\n >\r\n Discount\r\n \r\n
    \r\n
    \r\n { setInsertObj((prev) => ({ ...prev, Percentage: e })) }} >\r\n In Percentage\r\n \r\n
    \r\n
    \r\n { setInsertObj((prev) => ({ ...prev, Remarks: e })) }}>\r\n Billing Instruction\r\n \r\n
    \r\n
    Inclusions
    \r\n
      \r\n
    • Breakfast
    • \r\n
    • 1 Way Airport Transfer
    • \r\n
    • 20% F&B
    • \r\n
    \r\n\r\n
    \r\n More\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n setShowLaundryItemDD(!showLaundryItemDD)} disabled={isInvoicePrinted} >Select Items\r\n {showLaundryItemDD ?
    \r\n {itemList.map((x, index) => {\r\n return (\r\n
    \r\n
    \r\n { handleClickCheckBox(e, x) }}\r\n >\r\n {x.value}\r\n \r\n
    \r\n
    {insertObj.IsComplimentary == true ? x.CostRate : x.RegularRate}
    \r\n
    \r\n );\r\n })}\r\n Apply\r\n setShowLaundryItemDD(!showLaundryItemDD)}>Cancel\r\n
    : null}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {savedList.map((x, index) => {\r\n return (\r\n (!x.IsNewItem) ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n :\r\n null\r\n );\r\n })}\r\n {selectedItemsList.map((x, index) => {\r\n return (\r\n (x.IsChecked) ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n :\r\n null\r\n );\r\n })}\r\n \r\n
    Item NameAmountQty.
    {x.ItemName}\r\n {x.ItemRate}\r\n \r\n \r\n \r\n \r\n
    {x.value}\r\n {x.RegularRate}\r\n \r\n { handleChangeQty(e, x) }}\r\n >\r\n \r\n { handleRemoveItem(x) }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n Total : {selectedItemsList.filter(x => x.IsChecked === true).length + savedList.length}{(selectedItemsList.filter(x => x.IsChecked === true).length + savedList.length > 1) ? \" Items\" : \" Item\"}\r\n handleClickSaveItem()}>Save\r\n
    \r\n
    \r\n {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={selectdata}\r\n optClick={(item, d) => {\r\n actionPopup(item)\r\n //history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n }}\r\n >\r\n
    \r\n
    \r\n {IsShowSummary\r\n ?\r\n
    \r\n\r\n
    Billing summary
    \r\n
    \r\n Gross Value\r\n {parseFloat(billingSummary?.Gross)?.toFixed(2)}\r\n
    \r\n
    \r\n Less : Discount\r\n {parseFloat(billingSummary?.Discount)?.toFixed(2)}\r\n
    \r\n
    \r\n Add : Taxes\r\n {parseFloat(billingSummary?.Tax)?.toFixed(2)}\r\n
    \r\n
    \r\n Net Value\r\n {parseFloat(billingSummary?.TotalAmount)?.toFixed(2)}\r\n
    \r\n
    Additional Functions
    \r\n
    \r\n Company on Folio\r\n Arvind Limited\r\n
    \r\n \r\n \r\n
    \r\n Print Information Bill\r\n {\r\n setIsShowSummary(false);\r\n }}\r\n >Add Settlement\r\n Print Invoice\r\n {\r\n setDisabledObj(prev => ({\r\n ...prev,\r\n post: true,\r\n payment: true,\r\n postToRoom: false,\r\n addSettlement: true\r\n }));\r\n handleClickPostToRoom()\r\n }\r\n }\r\n className=\"w100p mrgn-lt0\" >Post to Room\r\n
    \r\n
    \r\n :\r\n
    \r\n
    settlements
    \r\n
    \r\n {\r\n setPostSettlementValidation(defaultPostSettlementValidation)\r\n setPostSettlementObj(prev => ({ ...prev, TransactionSerNo: item.key }));\r\n setPostToRoomObj(prev => ({ ...prev, TransactionSerNo: item.key }));\r\n let temp = paymentList.find(x => x.TransactionSerNo === item.key);\r\n if (temp !== undefined) {\r\n // console.log(temp);\r\n setSelectedPaymentMethod(temp.PaymentMethodType);\r\n } else {\r\n setSelectedPaymentMethod(\"\");\r\n }\r\n }}\r\n disabled={disabledObj.payment}\r\n >\r\n
    \r\n
    \r\n {\r\n setPostSettlementObj(prev => ({ ...prev, Amount: e }));\r\n }}\r\n >Amount\r\n \r\n
    \r\n {selectedPaymentMethod === \"CD\" ?\r\n <>\r\n
    Card Details
    \r\n {\r\n setPostSettlementObj(prev => ({ ...prev, CCNo: v }));\r\n }}>Credit Card Number\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, CCExpiryDate: e }));\r\n let oldDate = postSettlementObj.CCExpiryDate;\r\n if (new Date(moment(businessDate).format(\"DD-MMM-YYYY\")).getTime() <= new Date(moment(e).format(\"DD-MMM-YYYY\")).getTime()) {\r\n setPostSettlementObj(prev => ({ ...prev, CCExpiryDate: e }));\r\n }\r\n else {\r\n setPostSettlementObj(prev => ({ ...prev, CCExpiryDate: e }));\r\n setTimeout(() => {\r\n setPostSettlementObj(prev => ({ ...prev, CCExpiryDate: oldDate }));\r\n }, 50);\r\n alertFunction(\"Invalid Date\");\r\n }\r\n }}\r\n placeholder=\"mm/yyyy\"\r\n dateformat=\"MM-yyyy\"\r\n selected={postSettlementObj.CCExpiryDate}\r\n calendarStartDay={1}\r\n label=\"Expiry Date\"\r\n customError={postSettlementValidation.CCExpiryDate}\r\n >\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, CCHolderName: v }));\r\n }}>Card Holder Name\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, Remarks: v }));\r\n }}>Note\r\n \r\n : null\r\n }\r\n {selectedPaymentMethod === \"Cash \" ?\r\n <>\r\n
    Cash Payment Details
    \r\n {\r\n setPostSettlementObj(prev => ({ ...prev, PanCardNo: v }));\r\n }}>PAN Card No\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, PanHolderName: v }));\r\n\r\n }}>Name on PAN Card\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, Remarks: v }));\r\n\r\n }}>Note\r\n \r\n : null\r\n }\r\n {selectedPaymentMethod === \"CH\" ?\r\n <>\r\n
    Cheque Details
    \r\n {\r\n setPostSettlementObj(prev => ({ ...prev, ChequeNo: v }));\r\n }}>Cheque No\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, BankName: v }));\r\n }}>Bank Name\r\n\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, BranchName: v }));\r\n\r\n }}>Branch Name\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, NameOfAccount: v }));\r\n\r\n }}>Name on Account\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, Remarks: v }));\r\n\r\n }}>Note\r\n \r\n : null}\r\n {selectedPaymentMethod === \"BT\" ?\r\n <>\r\n
    Bank Transfer Details
    \r\n\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, BankName: v }));\r\n }}>Bank Name\r\n\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, NameOfAccount: v }));\r\n\r\n }}>Name on Account\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, PaymentReceivedDate: e }));\r\n }}\r\n placeholder=\"mm/yyyy\"\r\n selected={postSettlementObj.PaymentReceivedDate ? postSettlementObj.PaymentReceivedDate : moment(new Date()).format('DD-MMM-YYYY')}\r\n calendarStartDay={1}\r\n label=\"Payment Received Date\"\r\n >\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, Remarks: v }));\r\n\r\n }}>Note\r\n \r\n : null}\r\n {selectedPaymentMethod === \"UP\" ?\r\n <>\r\n
    UPI payment details
    \r\n {\r\n setPostSettlementObj(prev => ({ ...prev, UPIId: v }));\r\n }}>UPI ID\r\n\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, NameOfAccount: v }));\r\n\r\n }}>Name on Account\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, PaymentReceivedDate: e }));\r\n }}\r\n placeholder=\"mm/yyyy\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Payment Received Date\"\r\n selected={postSettlementObj.PaymentReceivedDate}\r\n >\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, Remarks: v }));\r\n }}>Note\r\n \r\n : null}\r\n {/* console.log(v)}>Credit Card Number \r\n console.log(v)}>Expiry Date\r\n console.log(v)}>Card Holder Name\r\n console.log(v)}>Note */}\r\n
    \r\n Cancel\r\n Save\r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n \r\n )\r\n}\r\n//CreditMachineSerNo,TipAmount,RoomSerNoz\r\n\r\n","import React, { useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnButtonTypeWithDropdown,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnSingleDateSelection,\r\n InnSwitch,\r\n InnDataGrid,\r\n InnTableGrid, InnModalPopup, InnTextarea, InnContextMenu, InnPreviewImage\r\n} from \"../../../component\";\r\nimport PostMinibarChargePopup from \"./modalPopup/postMinibarChargePopup\";\r\nimport { GetMiniBarTransaction } from \"../../../services/posMasterService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../reducer/authSlice\";\r\nimport { IndiNoPost, IndiRoutingInstruction } from \"../reservation/indicators\";\r\nimport { GetPropertyParameterByKeys } from \"../../../services/reservationService\";\r\nimport { useEffect } from \"react\";\r\nimport { GetUsersList } from \"../../../services/reservationService\";\r\nimport { CheckHistoryPreviewPopup } from \"./modalPopup/checkHistoryPreviewPopup\";\r\nimport moment from \"moment\";\r\nexport function Minibar() {\r\n const columHeader = [\r\n { key: \"Bill No.\", value: \"BillNo\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Bill Date\", value: \"BillDate\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Guest Name\", value: \"GuestName\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Room No.\", value: \"RoomNo\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Bill Amount\", value: \"BillAmount\", type: \"txt\", sorting: \"N\", align: 'right' },\r\n { key: \"Tax\", value: \"Tax\", type: \"txt\", sorting: \"N\", align: 'right' },\r\n { key: \"Net Amount\", value: \"NetAmount\", type: \"txt\", sorting: \"N\", align: 'right' },\r\n { key: \"Discount %\", value: \"Discount\", type: \"txt\", sorting: \"Y\", align: 'center' },\r\n { key: \"Post to Room (Y/N)\", value: \"PosttoRoom\", type: \"txt\", sorting: \"Y\", align: 'center' },\r\n { key: \"User Id\", value: \"UserId\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Complimentary (Y/N)\", value: \"Complimentary\", type: \"txt\", sorting: \"Y\", align: 'center' },\r\n { key: \"Company on Folio\", value: \"CompanyonFolio\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n \r\n const [showAdvancedSearchModal, setShowAdvancedSearchModal] = useState(false);\r\n /* Minibar Popup start */\r\n const ActionOption = [\r\n { key: \"Post Minibar\", value: \"Post Minibar\" },\r\n // { key: \"Preview Check\", value: \"Preview Check\" },\r\n // { key: \"Void Check\", value: \"Void Check\" },\r\n // { key: \"Reprint Bill\", value: \"Reprint Bill\" },\r\n // { key: \"E mail Bill\", value: \"E mail Bill\" },\r\n // { key: \"Reopen Check\", value: \"Reopen Check\" },\r\n ];\r\n\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n const optBtnData = [\r\n { key: \"Post Minibar\", value: \"Post Minibar\" },\r\n { key: \"Preview Check\", value: \"Preview Check\" },\r\n { key: \"Void Check\", value: \"Void Check\" },\r\n { key: \"Reprint Bill\", value: \"Reprint Bill\" },\r\n { key: \"E mail Bill\", value: \"E mail Bill\" },\r\n { key: \"Reopen Check\", value: \"Reopen Check\" },\r\n ];\r\n \r\n const [showPostMinibarModal, setShowPostMinibarModal] = useState(false);\r\n const [showPreviewCheckModal, setShowPreviewCheckModal] =useState(false);\r\n const [gridSelectedItem, SetgridSelectedItem] = useState([]);\r\n const setSelectedItem = (items) => {\r\n SetgridSelectedItem(items);\r\n };\r\n const [postMinibarChargeobj,setPostMinibarChargeobj]=useState({})\r\n const [businessDate,setBusinessDate]=useState(\"\");\r\n const [colListKeys, setColListKeys] = useState([]);\r\n const [page, setPage] = useState(1);\r\n const [pageCount, setPageCount] = useState(0);\r\n const MoreFilterOption = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n const [isDateLoaded,setIsDateLoaded]=useState(false)\r\n const currUser=useSelector(currentUser)\r\n const [gridData,setGridData]=useState([]);\r\n const [userIdList,setUserIdList]=useState([])\r\n const [userData,setUserData]=useState(\r\n {\r\n ClientSerNo:parseInt(currUser.ClientSerNo),\r\n PropertySerNo:parseInt(currUser.PropertySerNo),\r\n FromDate:\"\",\r\n ToDate:\"\",\r\n BillNo:\"\",\r\n FirstName:\"\",\r\n LastName:\"\",\r\n UserID:\"\",\r\n RoomNo:\"\",\r\n SortCol:\"\",\r\n SortType:\"\",\r\n PosttoRoom:\"\",\r\n IsComplimentary:\"\",\r\n CompanyOnFolio:\"\",\r\n PageNumber:1\r\n }\r\n )\r\n console.log(\"PosDataObj\",postMinibarChargeobj)\r\n useEffect(() => { \r\n GetPropertyParameterByKeys(userData.ClientSerNo,userData.PropertySerNo,'BusinessDate').then(resp=>{\r\n let obj = resp.data.find(x => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(moment(resp.data[0].value).format(\"DD-MMM-YYYY\"));\r\n setUserData((prev)=>({...prev,FromDate:moment(resp.data[0].value).format(\"DD-MMM-YYYY\"),ToDate:moment(resp.data[0].value).format(\"DD-MMM-YYYY\")}))\r\n setIsDateLoaded(true)\r\n }\r\n })\r\n GetUsersList(parseInt(currUser.ClientSerNo)).then(resp=>{\r\n let temp=[{key:\"\",value:\"Select\"}]\r\n resp.data.forEach(element => {\r\n temp.push({key:element.UserID,value:element.UserID})\r\n });\r\n setUserIdList(temp);\r\n })\r\n }, [])\r\n useEffect(() => {\r\n if(isDateLoaded){\r\n handleClickApply();\r\n }\r\n }, [userData.PageNumber,userData.SortCol,userData.SortType,isDateLoaded])\r\n const handleClickApply=()=>{\r\n console.log(userData);\r\n if(userData){\r\n userData.BillNo == \"\" ? userData.BillNo=null : userData.BillNo=userData.BillNo;\r\n userData.FirstName == \"\" ? userData.FirstName=null : userData.FirstName=userData.FirstName;\r\n userData.LastName == \"\" ? userData.LastName=null : userData.LastName=userData.LastName;\r\n userData.UserID == \"\" ? userData.UserID=null : userData.UserID=userData.UserID;\r\n userData.RoomNo == \"\" ? userData.RoomNo=null : userData.RoomNo=userData.RoomNo;\r\n userData.SortCol == \"\" ? userData.SortCol=null : userData.SortCol=userData.SortCol;\r\n userData.SortType == \"\" ? userData.SortType=null : userData.SortType=userData.SortType;\r\n }\r\n GetMiniBarTransaction(userData.ClientSerNo,userData.PropertySerNo,userData.FromDate,userData.ToDate,userData.BillNo,userData.FirstName,userData.LastName,userData.UserID,userData.RoomNo,userData.SortCol,userData.SortType,userData.PageNumber).then(resp=>{\r\n setPageCount(parseInt(resp.data[0]?.TotalRows/50)+1)\r\n let temp=[]\r\n resp.data.forEach(element => {\r\n temp.push({\r\n BillNo: element.BillNo ,\r\n BillDate: element.BillDate ,\r\n GuestName: element.GuestName ,\r\n RoomNo: element.RoomNo ,\r\n BillAmount: element.Gross.toFixed(2) ,\r\n Tax: element.Tax.toFixed(2) ,\r\n NetAmount: element.NetAmount.toFixed(2) ,\r\n Discount: element.Discount ,\r\n PosttoRoom: element.PostToRoom ,\r\n UserId: element.UserID ,\r\n Complimentary: element.IsComplimentary ,\r\n CompanyonFolio: element.CompanyOnFolio ,\r\n CheckSerNo: element.CheckSerNo ,\r\n TableSerNo: element.TableSerNo ,\r\n OutletSerNo: element.OutletSerNo ,\r\n Action: \"...\",\r\n })\r\n });\r\n setGridData(temp);\r\n }) \r\n }\r\n\r\n const actionPopup = (item,Case) => {\r\n \r\n if (item.key == \"Post Minibar\") {\r\n if(Case==true){\r\n setShowPostMinibarModal(true);\r\n setPostMinibarChargeobj(undefined)\r\n }\r\n else{\r\n if(postMinibarChargeobj.BillDate) {\r\n alert(\"Bill settled already check preview for more details\")\r\n }\r\n else{\r\n setShowPostMinibarModal(true);\r\n } \r\n }\r\n }\r\n if (item.key == \"Preview Check\") {\r\n setShowPreviewCheckModal(true); \r\n }\r\n }\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Minibar

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* {\r\n setshowLeftBlueBar(true);\r\n }}\r\n >\r\n */}\r\n
    \r\n
    \r\n {/* \r\n Export\r\n */}\r\n\r\n {\r\n actionPopup(item,true) \r\n }}\r\n title=\"Action\"\r\n >\r\n Actions (50)\r\n \r\n \r\n setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }\r\n >\r\n \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* */}\r\n {\r\n setSelectedItem(items);\r\n if(gridSelectedItem.length>0){\r\n setPostMinibarChargeobj(gridSelectedItem[0])\r\n }\r\n }}\r\n handleLinkClick={(v) => {\r\n }}\r\n fixedHeaderNo={2}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n actionPopup(item)\r\n //history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n //console.warn(rowdata);\r\n setPostMinibarChargeobj(rowdata)\r\n }}\r\n handleSortClick={(sn, st) => {\r\n if(sn==\"GuestName\"){\r\n setUserData((prev)=>({...prev,SortCol:\"FirstName\",SortType:st})) \r\n }\r\n else{\r\n setUserData((prev)=>({...prev,SortCol:sn,SortType:st}))\r\n }\r\n }}\r\n >\r\n {\r\n setUserData((prev)=>({...prev,PageNumber:v}))\r\n setPage(v);\r\n }}\r\n style={{ float: \"right\" }}\r\n />\r\n
    \r\n {/* Advanced Filter Popup Start */}\r\n {showAdvancedSearchModal ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Filters

    \r\n
    \r\n
    \r\n
    \r\n {/* {\r\n }}\r\n label=\"More Filters\"\r\n searchable={[\"Search\", \"No matching property\"]}\r\n className=\"button-layout-dd gray-btn\"\r\n buttonLayout={true}\r\n > */}\r\n
    \r\n {\r\n setUserData((prev)=>({...prev,\r\n FromDate:businessDate,\r\n ToDate:businessDate,\r\n BillNo:\"\",\r\n FirstName:\"\",\r\n LastName:\"\",\r\n UserID:\"\",\r\n RoomNo:\"\"\r\n }))\r\n }\r\n }\r\n >\r\n Reset\r\n \r\n {\r\n handleClickApply()\r\n setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }}>\r\n Apply\r\n \r\n \r\n setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {setUserData((prev)=>({...prev,FromDate:e}))}}\r\n calendarStartDay={1}\r\n label=\"From Date\"\r\n >\r\n
    \r\n
    \r\n {setUserData((prev)=>({...prev,ToDate:e}))}}\r\n placeholder=\"Date To\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"To Date\"\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {setUserData((prev)=>({...prev,BillNo:e}))}}>\r\n Bill No.\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {setUserData((prev)=>({...prev,FirstName:e}))}}>\r\n First Name\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {setUserData((prev)=>({...prev,LastName:e}))}}>\r\n Last Name\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {setUserData((prev)=>({...prev,UserID:e.key}))}}\r\n label=\"User Id\"\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n {setUserData((prev)=>({...prev,RoomNo:e}))}}>\r\n Room No.\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n\r\n {showPostMinibarModal ? (\r\n {\r\n GetMiniBarTransaction(userData.ClientSerNo,userData.PropertySerNo,userData.FromDate,userData.ToDate,userData.BillNo,userData.FirstName,userData.LastName,userData.UserID,userData.RoomNo,userData.SortCol,userData.SortType,userData.PageNumber).then(resp=>{ \r\n let temp=[]\r\n setPageCount(parseInt(resp.data[0]?.TotalRows/50)+1)\r\n resp.data.forEach(element => {\r\n temp.push({\r\n BillNo: element.BillNo ,\r\n BillDate: element.BillDate ,\r\n GuestName: element.GuestName ,\r\n RoomNo: element.RoomNo ,\r\n BillAmount: element.Gross ,\r\n Tax: element.Tax ,\r\n NetAmount: element.NetAmount ,\r\n Discount: element.Discount ,\r\n PosttoRoom: element.PostToRoom ,\r\n UserId: element.UserID ,\r\n Complimentary: element.IsComplimentary ,\r\n CompanyonFolio: element.CompanyOnFolio ,\r\n CheckSerNo: element.CheckSerNo ,\r\n TableSerNo: element.TableSerNo ,\r\n OutletSerNo: element.OutletSerNo ,\r\n Action: \"...\",\r\n })\r\n });\r\n setGridData(temp);\r\n })\r\n setShowPostMinibarModal(!showPostMinibarModal)}}>\r\n \r\n ) : null}\r\n {showPreviewCheckModal?(\r\n {setShowPreviewCheckModal(!showPreviewCheckModal)}}>\r\n \r\n ):null}\r\n
    \r\n\r\n )\r\n\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnButtonTypeWithDropdown,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnSingleDateSelection,\r\n InnSwitch,\r\n InnTableGrid,\r\n InnModalPopup,\r\n InnTextarea,\r\n InnDataGrid,\r\n useConfirm,\r\n InnTimeSelection\r\n} from \"../../../../component\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetBanquetBookingStatus, AddBanquetBookingVenue, AddBanquetVenueItem, GetBanquetFunctionMaster, GetMenuItemDetailBilling, GetOutletTableDataBilling, GetBanquetBookingVenueList } from \"../../../../services/posbillingService\";\r\nimport moment from \"moment\";\r\nimport { GetPropertyParameterByKeys } from \"../../../../services/reservationService\";\r\nimport { element } from \"prop-types\";\r\nexport default function VenueDetailModalPopup(props) {\r\n const selectdata = [\r\n { key: \"Edit\", value: \"Edit\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n const venuedetailtable = [\r\n { key: \"Item Description\", value: \"ItemDescription\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"QTY.\", value: \"Qty\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Rate\", value: \"Rate\", type: \"txt\", sorting: \"Y\", align: 'right' },\r\n { key: \"Tax\", value: \"Tax\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Amount\", value: \"Amount\", type: \"txt\", sorting: \"N\", align: 'right' },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n\r\n const [filterDatavenuedetailtable, setfiltervenuedetailtable] = useState([]);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n const validationObj = {\r\n EstAdult: \"\",\r\n EstChild: \"\",\r\n Child: \"\",\r\n Adult: \"\",\r\n EventDate: \"\",\r\n StartTime: \"\",\r\n EndTime: \"\",\r\n FunctionSerNo: \"\"\r\n }\r\n const currUser = useSelector(currentUser)\r\n const [functionList, setFunctionList] = useState([])\r\n const [cmbItem, setCmbItem] = useState([])\r\n const [venueList, setVenueList] = useState([])\r\n const [venueVelidation, setVenueValidation] = useState(validationObj)\r\n const defaultVenueObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n BookingSerNo: props.para1?.BookingSerNo,\r\n BookingSubSerNo: 0,\r\n EventDate: moment(new Date()).format(\"DD-MMM-YYYY\"),\r\n StartTime: \"00:00\",\r\n EndTime: \"00:00\",\r\n TableSerNo: 0,\r\n FunctionSerNo: 0,\r\n EstAdult: 0,\r\n EstChild: 0,\r\n Adult: 0,\r\n Child: 0,\r\n BoardToRead: \"\",\r\n SeatingArragement: \"\",\r\n Status: \"CONF\",\r\n Mode: \"\",\r\n IsDisabledVenue: true\r\n }\r\n const defaultItemObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n BookingSerNo: props.para1?.BookingSerNo,\r\n BookingSubSerNo: 0,\r\n ItemSerNo: 0,\r\n ItemQty: 0,\r\n ItemRate: 0,\r\n TransactionSerNo: 0,\r\n IsDiscountable: false,\r\n ItemGroupSerNo: 0,\r\n ItemSubGroupSerNo: 0,\r\n Mode: \"\",\r\n Remarks: \"\",\r\n IsDisabledItem: true\r\n }\r\n const [newVenueObj, setNewVenueObj] = useState(defaultVenueObj)\r\n const [newItemObj, setNewItemObj] = useState(defaultItemObj)\r\n const [itemListData, setItemListData] = useState([])\r\n const [selectedItemObj, setSelectedItemObj] = useState({})\r\n const [bookingStatusList, setBookingStatusList] = useState([])\r\n const [totalVenue, setTotalVenue] = useState([])\r\n const actionPopup = (item) => {\r\n if (item.key == \"Edit\") {\r\n // history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n handleClickEditItem();\r\n // setShowBanquetEditModal(true);\r\n }\r\n }\r\n const GetFunctionMasterData = () => {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n GetBanquetFunctionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n resp.data.forEach(element => {\r\n temp.push({ key: element.FunctionSerNo, value: element.Name })\r\n });\r\n setFunctionList(temp);\r\n })\r\n }\r\n const GetVenueDataCombo = () => {\r\n let temp = [{ key: 0, value: \"Select\" }]\r\n GetOutletTableDataBilling(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(props.para?.OutletSerNo), 0).then(resp => {\r\n resp.data.forEach(element => {\r\n if (element.TableSerNo != 999) {\r\n temp.push({ key: element.TableSerNo, value: element.Name })\r\n }\r\n });\r\n setVenueList(temp);\r\n })\r\n }\r\n const GetBanquetBookingStatusApi = () => {\r\n GetBanquetBookingStatus().then(resp => {\r\n let temp = []\r\n resp.data.forEach(element => {\r\n temp.push({ key: element.Status, value: element.Name })\r\n })\r\n setBookingStatusList(temp)\r\n })\r\n }\r\n const GetItemListData = () => {\r\n let temp = [{ key: 0, value: \"Select\" }]\r\n GetMenuItemDetailBilling(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(props.para?.MenuSerNo)).then(resp => {\r\n resp.data.forEach(element => {\r\n temp.push({ key: element.ItemSerNo, value: element.Name })\r\n });\r\n setItemListData(resp.data)\r\n setCmbItem(temp);\r\n })\r\n }\r\n const handleClickCancelVenue = () => {\r\n // if(props.para2.BookingSerNo!=0){ \r\n // setNewVenueObj((prev)=>({...prev,BookingSerNo:props.para2?.BookingSerNo,EventDate:props.para2?.Date,StartTime:props.para2?.STime,EndTime:props.para2?.ETime,FunctionSerNo:props.para2?.FunctionSerNo,SeatingArragement:props.para2?.SeatingArrangement,BoardToRead:props.para2?.BoardToRead,Mode:props.para2?.Mode,Adult:props.para2?.Adult,\r\n // Child:props.para2?.Child,EstAdult:props.para2?.EstAdult,EstChild:props.para2?.Estchild,TableSerNo:props.para2?.TableSerNo,BookingSubSerNo:props.para2?.BookingSubSerNo,IsDisabledVenue:true}))\r\n // } \r\n setVenueValidation(validationObj)\r\n setNewVenueObj((prev) => ({ ...prev, Mode: \"Cancel\", IsDisabledVenue: true }))\r\n }\r\n const handleClickAddVenue = () => {\r\n setNewVenueObj((prev) => ({ ...prev, Mode: \"Add\", IsDisabledVenue: false }))\r\n }\r\n\r\n const handleClickEditVenue = () => {\r\n if (newVenueObj.BookingSubSerNo == 0) {\r\n alertFunction(\"Please Add venue to edit details\")\r\n return\r\n }\r\n setNewVenueObj((prev) => ({ ...prev, Mode: \"Edit\", IsDisabledVenue: false }))\r\n }\r\n\r\n\r\n const isValidPage = () => {\r\n let validity = true;\r\n if (newVenueObj.EventDate == 0 || newVenueObj.EventDate == null || newVenueObj.EventDate == \"\") {\r\n validity = false;\r\n setVenueValidation((prev) => ({ ...prev, EventDate: \"Please select the event date first\" }))\r\n }\r\n if (newVenueObj.StartTime == 0 || newVenueObj.StartTime == null || newVenueObj.StartTime == \"\") {\r\n setVenueValidation((prev) => ({ ...prev, StartTime: \"Please select the event start time first\" }))\r\n validity = false;\r\n }\r\n if (newVenueObj.EndTime == 0 || newVenueObj.EndTime == null || newVenueObj.EndTime == \"\") {\r\n alertFunction(\"Please select the event end time first \")\r\n setVenueValidation((prev) => ({ ...prev, EndTime: \"Please select the event start time first\" }))\r\n validity = false;\r\n }\r\n if (newVenueObj.StartTime >= newVenueObj.EndTime) {\r\n alertFunction(\"Please check the selected start time and end time.\")\r\n setVenueValidation((prev) => ({ ...prev, EndTime: \"Please select the event start time and end time different.\" }))\r\n validity = false;\r\n }\r\n if (newVenueObj.TableSerNo == 0 || newVenueObj.TableSerNo == null || newVenueObj.TableSerNo == \"\") {\r\n setVenueValidation((prev) => ({ ...prev, TableSerNo: \"Please select the venue first\" }))\r\n validity = false;\r\n }\r\n\r\n if (newVenueObj.FunctionSerNo == 0 || newVenueObj.FunctionSerNo == null || newVenueObj.FunctionSerNo == \"\") {\r\n setVenueValidation((prev) => ({ ...prev, FunctionSerNo: \"Please select the function\" }))\r\n validity = false;\r\n }\r\n if (newVenueObj.Adult == 0 || newVenueObj.Adult == null || newVenueObj.Adult == \"\") {\r\n setVenueValidation((prev) => ({ ...prev, Adult: \"Please Enter the adult first\" }))\r\n validity = false;\r\n }\r\n if (newVenueObj.Child == 0 || newVenueObj.Child == null || newVenueObj.Child == \"\") {\r\n setVenueValidation((prev) => ({ ...prev, Child: \"Please Enter the child first\" }))\r\n validity = false;\r\n }\r\n if (newVenueObj.EstAdult == 0 || newVenueObj.EstAdult == null || newVenueObj.EstAdult == \"\") {\r\n setVenueValidation((prev) => ({ ...prev, EstAdult: \"Please Enter the estimated adult first\" }))\r\n validity = false;\r\n }\r\n if (newVenueObj.EstChild == 0 || newVenueObj.EstChild == null || newVenueObj.EstChild == \"\") {\r\n setVenueValidation((prev) => ({ ...prev, EstChild: \"Please Enter the estimated child first\" }))\r\n validity = false;\r\n }\r\n // if (totalVenue != undefined) {\r\n // totalVenue.forEach(element => {\r\n // if (newVenueObj.Mode == \"Add\") {\r\n // if (new Date(newVenueObj.EventDate).getTime() == new Date(element.EventDate).getTime()) {\r\n // if (element.TableSerNo == newVenueObj.TableSerNo) {\r\n // if ((newVenueObj.StartTime <= moment(new Date(element.EndTime)).format(\"HH:mm\") && newVenueObj.StartTime >= moment(new Date(element.StartTime)).format(\"HH:mm\")) || (newVenueObj.StartTime <= moment(new Date(element.StartTime)).format(\"HH:mm\") && newVenueObj.EndTime >= moment(new Date(element.StartTime)).format(\"HH:mm\"))) {\r\n // alertFunction(\"The booking is already there at the selected date and time on this venue\")\r\n // validity = false;\r\n // }\r\n // }\r\n // }\r\n // }\r\n // })\r\n // }\r\n if (new Date(newVenueObj.EventDate).getTime() < new Date(businessDate).getTime()) {\r\n setNewVenueObj((prev) => ({ ...prev, EventDate: businessDate }))\r\n alertFunction(\"Please select the event date greater then the business date.System automatically set the date as business date.\")\r\n validity = false;\r\n }\r\n return validity;\r\n }\r\n // const GetVenueListApi = () => {\r\n // GetBanquetBookingVenueList(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), newVenueObj.BookingSerNo).then(resp => {\r\n // setTotalVenue(resp.data)\r\n // })\r\n // }\r\n const handleClickSaveVenue = () => {\r\n let isValid = isValidPage()\r\n let temp = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n BookingSerNo: newVenueObj.BookingSerNo,\r\n BookingSubSerNo: newVenueObj.BookingSubSerNo,\r\n EventDate: newVenueObj.EventDate,\r\n StartTime: newVenueObj.StartTime,\r\n EndTime: newVenueObj.EndTime,\r\n TableSerNo: newVenueObj.TableSerNo,\r\n FunctionSerNo: newVenueObj.FunctionSerNo,\r\n Status: newVenueObj.Status,\r\n EstAdult: parseInt(newVenueObj.EstAdult),\r\n EstChild: parseInt(newVenueObj.EstChild),\r\n Adult: parseInt(newVenueObj.Adult),\r\n Child: parseInt(newVenueObj.Child),\r\n BoardToRead: newVenueObj.BoardToRead,\r\n SeatingArrangement: newVenueObj.SeatingArragement,\r\n Mode: newVenueObj.Mode\r\n }\r\n if (isValid) {\r\n\r\n console.log(temp, newVenueObj);\r\n AddBanquetBookingVenue(temp).then(resp => {\r\n console.log(resp.data);\r\n if(resp.data.Message==\"This venue is booked already at the same date and time\"){\r\n alertFunction(resp.data.Message);\r\n return;\r\n }\r\n alertFunction(resp.data.Message);\r\n if(parseInt(resp.data.ReturnValue)!=0){ \r\n setNewItemObj((prev) => ({ ...prev, BookingSubSerNo: parseInt(resp.data.ReturnValue) }))\r\n setNewVenueObj((prev) => ({ ...prev, Mode: \"Save\", IsDisabledVenue: true, BookingSubSerNo: parseInt(resp.data.ReturnValue) }))\r\n setVenueValidation(validationObj)\r\n }\r\n })\r\n }\r\n }\r\n\r\n\r\n const handleClickAddItem = () => {\r\n // setNewItemObj(defaultItemObj)\r\n if (newItemObj.BookingSubSerNo == 0) {\r\n alertFunction(\"Please add venue first to add items\")\r\n }\r\n else {\r\n setNewItemObj((prev) => ({\r\n ...prev,\r\n ItemSerNo: 0,\r\n ItemQty: 0,\r\n ItemRate: 0,\r\n ItemGroupSerNo: 0,\r\n ItemSubGroupSerNo: 0,\r\n Mode: \"Add\",\r\n IsDisabledItem: false\r\n }))\r\n }\r\n\r\n }\r\n const handleClickEditItem = () => {\r\n console.log(selectedItemObj)\r\n setNewItemObj((prev) => ({ ...prev, Mode: \"Edit\", ItemGroupSerNo: selectedItemObj.ItemGroupSerNo, ItemSubGroupSerNo: selectedItemObj.ItemSubGroupSerNo, TransactionSerNo: selectedItemObj.TransactionSerNo, BookingItemSerNo: selectedItemObj.BookingItemSerNo, IsDisabledItem: false, ItemSerNo: selectedItemObj.ItemSerNo, ItemRate: selectedItemObj.Rate, ItemQty: parseInt(selectedItemObj.Qty), Remarks: selectedItemObj.Remarks }))\r\n }\r\n const handleClickCancelItem = () => {\r\n setNewItemObj((prev) => ({ ...prev, Mode: \"Cancel\", IsDisabledItem: true }))\r\n }\r\n\r\n\r\n const isValidItem = () => {\r\n let itemValidity = true;\r\n\r\n }\r\n const handleClickSaveItem = () => {\r\n if (newItemObj.ItemQty == 0) {\r\n alertFunction(\"Please enter quantity\")\r\n return\r\n }\r\n const IsValidItem = isValidItem()\r\n let temp = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n BookingSerNo: newItemObj.BookingSerNo,\r\n BookingSubSerNo: newItemObj.BookingSubSerNo,\r\n BookingItemSerNo: newItemObj?.BookingItemSerNo,\r\n ItemSerNo: newItemObj.ItemSerNo,\r\n ItemQty: parseInt(newItemObj.ItemQty),\r\n ItemRate: parseFloat(newItemObj.ItemRate),\r\n TransactionSerNo: newItemObj.TransactionSerNo,\r\n IsDiscountable: newItemObj.IsDiscountable,\r\n ItemGroupSerNo: newItemObj.ItemGroupSerNo,\r\n ItemSubGroupSerNo: newItemObj.ItemSubGroupSerNo,\r\n Remarks: newItemObj.Remarks,\r\n Mode: newItemObj.Mode\r\n }\r\n\r\n let temp2 = itemListData.filter(x => x.ItemSerNo == newItemObj.ItemSerNo)\r\n\r\n AddBanquetVenueItem(temp).then(resp => {\r\n console.log(resp.data);\r\n alertFunction(\"Item saved successfully\")\r\n let temp1 = JSON.parse(JSON.stringify(filterDatavenuedetailtable))\r\n if (newItemObj.Mode == \"Add\") {\r\n temp1.push({\r\n ItemDescription: temp2[0].Name,\r\n Qty: newItemObj.ItemQty,\r\n Rate: newItemObj.ItemRate,\r\n ItemSerNo: newItemObj.ItemSerNo,\r\n Tax: \"Taxable GST @18%\",\r\n BookingItemSerNo: parseInt(resp.data.ReturnValue),\r\n Amount: newItemObj.ItemQty * newItemObj.ItemRate,\r\n Action: \"...\",\r\n })\r\n }\r\n else {\r\n temp1.forEach(element => {\r\n if (element.BookingItemSerNo == newItemObj?.BookingItemSerNo) {\r\n element.ItemSerNo = newItemObj.ItemSerNo\r\n element.ItemDescription = itemListData.find(o => o.ItemSerNo == newItemObj.ItemSerNo)?.Name\r\n element.Qty = newItemObj.ItemQty\r\n element.Rate = newItemObj.ItemRate\r\n element.Remarks = newItemObj.Remarks\r\n element.Amount = newItemObj.ItemQty * newItemObj.ItemRate\r\n }\r\n })\r\n }\r\n console.log(\"filtered arruy\", temp1)\r\n setfiltervenuedetailtable(temp1)\r\n setSelectedItemObj((prev) => ({ ...prev, BookingItemSerNo: parseInt(resp.data.ReturnValue) }))\r\n setNewItemObj((prev) => ({ ...prev, Mode: \"Save\", IsDisabledItem: true }))\r\n })\r\n }\r\n const handleChangeItem = (v) => {\r\n let temp = itemListData.find(x => x.ItemSerNo == v.key);\r\n console.log(temp);\r\n if (temp != undefined) {\r\n setNewItemObj((prev) => ({ ...prev, ItemSerNo: temp.ItemSerNo, TransactionSerNo: temp.TransactionSerNo, IsDiscountable: temp.IsDiscountable, ItemGroupSerNo: temp.ItemGroupSerNo, ItemSubGroupSerNo: temp.ItemSubGroupSerNo }));\r\n if (props.para4 == true) {\r\n setNewItemObj((prev) => ({ ...prev, ItemRate: temp.CostRate }))\r\n }\r\n else {\r\n setNewItemObj((prev) => ({ ...prev, ItemRate: temp.RegularRate }))\r\n }\r\n }\r\n }\r\n useEffect(() => {\r\n console.log(props.para4)\r\n GetFunctionMasterData()\r\n GetVenueDataCombo()\r\n GetItemListData()\r\n if (props.para2 != undefined) {\r\n if (Object.keys(props.para2).length > 0) {\r\n console.log(\"props here\", props.para2);\r\n console.log(\"item list data\", props.para3);\r\n if (props.para2.BookingSubSerNo) {\r\n let temp = [];\r\n props.para3.forEach(x => {\r\n temp.push({ ...x, Action: \"...\" })\r\n })\r\n setfiltervenuedetailtable(temp);\r\n setNewVenueObj((prev) => ({\r\n ...prev, BookingSerNo: props.para2?.BookingSerNo, EventDate: props.para2?.Date, StartTime: props.para2?.STime, EndTime: props.para2?.ETime, FunctionSerNo: props.para2?.FunctionSerNo, Status: props.para2?.Status, SeatingArragement: props.para2?.SeatingArrangement, BoardToRead: props.para2?.BoardToRead, Mode: props.para2?.Mode, Adult: props.para2?.Adult,\r\n Child: props.para2?.Child, EstAdult: props.para2?.EstAdult, EstChild: props.para2?.Estchild, TableSerNo: props.para2?.TableSerNo, BookingSubSerNo: props.para2?.BookingSubSerNo, Mode: \"Save\", IsDisabledVenue: true\r\n }))\r\n }\r\n if (props.para2?.BookingSubSerNo == 0) {\r\n setNewVenueObj((prev) => ({ ...prev, IsDisabledVenue: true }))\r\n }\r\n setNewItemObj((prev) => ({ ...prev, BookingSerNo: props.para2.BookingSerNo, BookingSubSerNo: props.para2?.BookingSubSerNo }))\r\n }\r\n }\r\n }, [businessDate])\r\n\r\n useEffect(() => {\r\n GetBanquetBookingStatusApi()\r\n // GetVenueListApi()\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), 'BusinessDate').then(resp => {\r\n let obj = resp.data.find(x => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(moment(resp.data[0].value).format(\"DD-MMM-YYYY\"));\r\n setNewVenueObj((prev) => ({ ...prev, EventDate: moment(resp.data[0].value).format(\"DD-MMM-YYYY\") }))\r\n }\r\n })\r\n }, [])\r\n return (\r\n {\r\n if (props.OnClose) {\r\n props.OnClose(newItemObj.BookingSubSerNo);\r\n }\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Venue Details

    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n setNewVenueObj((prev) => ({ ...prev, EventDate: moment(new Date(v)).format(\"DD-MMM-YYYY\") }))}\r\n label=\"Event Date\"\r\n >\r\n
    \r\n
    \r\n
    \r\n setNewVenueObj((prev) => ({ ...prev, StartTime: v }))}\r\n //disabled=\"disabled\"\r\n disabled={newVenueObj.IsDisabledVenue}\r\n placeholder=\"From Time\"\r\n label=\"Start Time\"\r\n timeformat=\"HH:mm\"\r\n dateformat=\"HH:mm\"\r\n selected={\"1-jan-2001 \" + newVenueObj.StartTime}\r\n //selected= {\"10:10\"}\r\n >\r\n\r\n
    \r\n
    \r\n setNewVenueObj((prev) => ({ ...prev, EndTime: v }))}\r\n //disabled=\"disabled\"\r\n disabled={newVenueObj.IsDisabledVenue}\r\n placeholder=\"From Time\"\r\n label=\"End Time\"\r\n timeformat=\"HH:mm\"\r\n dateformat=\"HH:mm\"\r\n selected={\"1-jan-2001 \" + newVenueObj.EndTime}\r\n >\r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n {\r\n setVenueValidation((prev) => ({ ...prev, TableSerNo: \"\" }))\r\n setNewVenueObj((prev) => ({ ...prev, TableSerNo: v.key }))\r\n\r\n }}\r\n\r\n >\r\n
    \r\n
    \r\n {\r\n setVenueValidation((prev) => ({ ...prev, FunctionSerNo: \"\" }))\r\n setNewVenueObj((prev) => ({ ...prev, FunctionSerNo: v.key }))\r\n }\r\n }\r\n >\r\n
    \r\n\r\n\r\n
    \r\n {\r\n // setVenueValidation((prev) => ({ ...prev, Status: \"\" }))\r\n setNewVenueObj((prev) => ({ ...prev, Status: v.key }))\r\n }\r\n }\r\n >\r\n
    \r\n {\r\n setNewVenueObj((prev) => ({ ...prev, Adult: v }))\r\n setVenueValidation((prev) => ({ ...prev, Adult: \"\" }))\r\n }\r\n }>Adult(Guaranteed)\r\n {\r\n setVenueValidation((prev) => ({ ...prev, EstAdult: \"\" }))\r\n setNewVenueObj((prev) => ({ ...prev, EstAdult: v }))\r\n }\r\n }>Adult(Estimated)\r\n {\r\n setVenueValidation((prev) => ({ ...prev, Child: \"\" }))\r\n setNewVenueObj((prev) => ({ ...prev, Child: v }))\r\n }\r\n }>Child(Guaranteed)\r\n {\r\n setVenueValidation((prev) => ({ ...prev, EstChild: \"\" }))\r\n setNewVenueObj((prev) => ({ ...prev, EstChild: v }))\r\n }}> Child(Estimated)\r\n setNewVenueObj((prev) => ({ ...prev, BoardToRead: v }))}>Board To Read\r\n setNewVenueObj((prev) => ({ ...prev, SeatingArragement: v }))}>Seating Arrangement\r\n
    \r\n
    \r\n
    \r\n
    \r\n {newVenueObj.Mode == \"Edit\" || newVenueObj.Mode == \"Add\" ?\r\n <>\r\n Cancel\r\n Save\r\n \r\n :\r\n <>\r\n {\r\n newVenueObj.BookingSubSerNo != 0 ?\r\n Edit\r\n :\r\n <>\r\n \r\n }\r\n {\r\n newVenueObj.BookingSubSerNo == 0 ?\r\n Add\r\n :\r\n <>\r\n \r\n }\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n handleChangeItem(v)\r\n }\r\n }\r\n >\r\n
    \r\n
    \r\n setNewItemObj((prev) => ({ ...prev, ItemQty: v }))}>\r\n Quantity\r\n
    \r\n
    \r\n setNewItemObj((prev) => ({ ...prev, ItemRate: v }))}>\r\n Rate\r\n
    \r\n
    \r\n
    \r\n
    \r\n setNewItemObj((prev) => ({ ...prev, Remarks: v }))}>Remarks
    \r\n\r\n
    \r\n
    \r\n {newItemObj.Mode == \"Edit\" || newItemObj.Mode == \"Add\" ?\r\n <>\r\n Cancel\r\n Save\r\n \r\n :\r\n <>\r\n Add\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n\r\n {\r\n console.log(items);\r\n //setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n //setReservationStatus(v);\r\n //setShowGuestPopup(true);\r\n }}\r\n fixedHeaderNo={2}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={selectdata}\r\n optClick={(item, d) => {\r\n actionPopup(item)\r\n console.log(item, d)\r\n //history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(\"array\", filterDatavenuedetailtable)\r\n console.log(rowdata)\r\n setSelectedItemObj(rowdata)\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnTableGrid, InnModalPopup, InnTextarea, InnTimeSelection\r\n} from \"../../../../component\";\r\nimport { element } from \"prop-types\";\r\n\r\nexport default function TaxBreakupPopup(props) {\r\n const Banquettable3Header = [\r\n { key: \"Add\", value: \"Add\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Amount\", value: \"Amount\", type: \"txt\", sorting: \"Y\", align: 'right' },\r\n ];\r\n\r\n const [filterDataBanquettable3, setfilterBanquettable3] = useState([]);\r\n \r\n \r\n const BanquettaxbreakupHeader = [\r\n { key: \"Item Description\", value: \"ItemDescription\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Rate\", value: \"Rate\", type: \"txt\", sorting: \"Y\", align: 'right' },\r\n { key: \"Tax\", value: \"Tax\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Amount\", value: \"Amount\", type: \"txt\", sorting: \"N\", align: 'right' },\r\n ];\r\n\r\n const [filterDataBanquettaxbreakup, setfilterBanquettaxbreakup] = useState([]);\r\n const optBtnData = [\r\n { key: \"Edit\", value: \"Edit\" },\r\n { key: \"Confirmation Email\", value: \"Confirmation Email\" },\r\n { key: \"Function Prospect\", value: \"Function Prospect\" },\r\n { key: \"Convert To Billing\", value: \"Convert To Billing\" },\r\n { key: \"Cancel\", value: \"Cancel\" },\r\n { key: \"No-Show\", value: \"No-Show\" },\r\n ];\r\n \r\n const [taxList,setTaxList]=useState([])\r\n const actionPopup = (item) => {\r\n if (item.key == \"Edit\") {\r\n // history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n setShowBanquetEditModal(true);\r\n\r\n }\r\n }\r\n const [selectedItemObj,setSelectedItemObj]=useState({})\r\n const [totalAmount,setTotalAmount]=useState({totalVenueWise:0,totalItemwise:0,totalItemtax:0})\r\n const [showBanquetEditModal, setShowBanquetEditModal] = useState(false);\r\n useEffect(()=>{\r\n let temp=[] \r\n let temp1=0\r\n console.log(props.para)\r\n if(props.para){\r\n props.para.pBanquetVenueItem?.forEach(element => {\r\n temp1=temp1+ parseFloat(element.Amount)\r\n temp.push({\r\n BookingItemSerNo:element.BookingItemSerNo,\r\n ItemDescription: element.Name,\r\n Rate: parseFloat(element.ItemRate).toFixed(2),\r\n Tax: element.Tax,\r\n Amount: parseFloat(element.Amount).toFixed(2),\r\n })\r\n });\r\n setSelectedItemObj(temp[0])\r\n // setfilterBanquettable3((prev)=>({...prev, Add: props.para.pBanquetTax[0].ChargeName,Amount: Math.abs(parseInt(props.para.pBanquetTax[0].Amount).toFixed(2))}))\r\n setTotalAmount((prev)=>({...prev,totalVenueWise:temp1}))\r\n setTaxList(props.para)\r\n setfilterBanquettaxbreakup(temp)\r\n let temp3=[]\r\n if(props.para){\r\n if(props.para.pBanquetTax){\r\n temp3=props.para.pBanquetTax?.filter(x=>x.BookingItemSerNo==1)\r\n }\r\n }\r\n let temp4=[]\r\n let temp5=0\r\n temp3.forEach(element=>{\r\n temp5=temp5+parseFloat(element.Amount)\r\n temp4.push({\r\n Add: element.ChargeName,\r\n Amount: Math.abs(parseFloat(element.Amount).toFixed(2))\r\n })\r\n })\r\n setTotalAmount((prev)=>({...prev,totalItemtax:temp5}))\r\n setfilterBanquettable3(temp4)\r\n } \r\n },[props])\r\n return (\r\n {\r\n if(props.OnClose){\r\n props.OnClose();\r\n }\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Tax Breakup

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {\r\n console.log(items);\r\n //setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n //setReservationStatus(v);\r\n //setShowGuestPopup(true);\r\n }}\r\n fixedHeaderNo={2}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n actionPopup(item)\r\n //history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n setSelectedItemObj(rowdata)\r\n let temp=taxList.pBanquetTax.filter(x=>x.BookingItemSerNo==rowdata.BookingItemSerNo)\r\n let temp1=[]\r\n let temp2=0 \r\n temp.forEach(element=>{\r\n temp2=temp2+parseFloat(element.Amount)\r\n temp1.push({\r\n Add: element.ChargeName,\r\n Amount: Math.abs(parseFloat(element.Amount).toFixed(2))\r\n })\r\n }) \r\n setTotalAmount((prev)=>({...prev,totalItemtax:temp2})) \r\n setfilterBanquettable3(temp1);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    Total : {parseFloat(totalAmount.totalVenueWise).toFixed(2)}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {selectedItemObj?.ItemDescription}
    \r\n
    {parseFloat(selectedItemObj?.Amount).toFixed(2)}
    \r\n
    \r\n
    \r\n {\r\n console.log(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n }}\r\n fixedHeaderNo={2}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n actionPopup(item)\r\n //history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n //setSelectedReservation(rowdata);\r\n // handleRmAssignmentData([rowdata]);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    Total: {totalAmount.totalItemtax}
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnButtonTypeWithDropdown,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnSingleDateSelection,\r\n InnSwitch,\r\n InnTableGrid\r\n , InnModalPopup,\r\n InnTextarea, useConfirm,\r\n InnTimeSelection\r\n} from \"../../../../component\";\r\nimport moment from \"moment/moment\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { AddBanquetBooking, GetBanquetHeader, GetBanquetOutletData, GetTaxExemptionMaster } from \"../../../../services/posbillingService\";\r\n// import { GetBanquetBookingList } from \"../../../services/posbillingService\";\r\nimport { CompanyModalPopup } from \"../../reservation/modalPopup/companyModalPopup\";\r\nimport { GuestModalPopup } from \"../../reservation/modalPopup/guestModalPopup\";\r\nimport { GetReferenceMaster, GetSalesPersonMaster, GetBanquetBookingVenueList, GetBanquetBookingVenueDetail } from \"../../../../services/posbillingService\";\r\nimport { cmbGetMarketMaster, cmbGetAgentMaster, cmbGetSourceMaster } from \"../../../../services/reservationService\";\r\nimport VenueDetailModalPopup from \"./venueDetailModalPopup\";\r\nimport TaxBreakupPopup from \"./taxBreakupPopup\";\r\nimport { element } from \"prop-types\";\r\n\r\nexport default function AddEditBanquetModalPopup(props) {\r\n const currUser = useSelector(currentUser)\r\n const defaultHeaderObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n OutletSerNo: 0,\r\n MenuSerNo: 0,\r\n BookingSerNo: 0,\r\n CompanyProfileSerNo: 0,\r\n AgentProfileSerNo: 0,\r\n GuestProfileSerNo: 0,\r\n RateSerNo: 0,\r\n Discount: 0,\r\n IsPercentage: false,\r\n ExemptionSerNo: 0,\r\n IsTaxInclusive: false,\r\n MarketSerNo: 0,\r\n SourceSerNo: 0,\r\n SalesPersonSerNo: 0,\r\n CompanyOnInvoiceSerNo: 0,\r\n IsVenueWise: false,\r\n IsComplimentary: false,\r\n BillingInstruction: \"\",\r\n GeneralRemarks: \"\",\r\n ReferenceSerNo: 0,\r\n CancelPolicy: \"\",\r\n UserID: currUser.UserID,\r\n Remarks:\"\",\r\n Mode: \"\"\r\n }\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const [banquetHeaderObj, setBanquetHeaderObj] = useState(defaultHeaderObj)\r\n const [showAgentModal, setShowAgentModal] = useState(false);\r\n const [isDisabled, setIsDisabled] = useState(true)\r\n const [venueIsDisabled, setVenueIsDisabled] = useState(true)\r\n const Banquettable1Header = [\r\n { key: \"Date\", value: \"Date\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"S. Time\", value: \"STime\", type: \"txt\", sorting: \"N\" },\r\n { key: \"E. Time\", value: \"ETime\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Venue\", value: \"VenueName\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Adult\", value: \"Adult\", type: \"txt\", sorting: \"N\", align: \"right\" },\r\n { key: \"Child\", value: \"Child\", type: \"txt\", sorting: \"N\", align: \"right\" },\r\n { key: \"Function\", value: \"Function\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Booking Amount\", value: \"BookingAmount\", type: \"txt\", sorting: \"N\", align: \"right\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n const [showTaxBreakupPopup, setTaxBreakupPopup] = useState(false);\r\n\r\n const Banquettable2Header = [\r\n { key: \"Item Description\", value: \"ItemDescription\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"QTY.\", value: \"Qty\", type: \"txt\", sorting: \"Y\", align: 'center' },\r\n { key: \"Rate\", value: \"Rate\", type: \"txt\", sorting: \"Y\", align: 'right' },\r\n { key: \"Tax\", value: \"Tax\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Amount\", value: \"Amount\", type: \"txt\", sorting: \"N\", align: 'right' },\r\n ];\r\n const [totalAmountVenue, setTotalAmountVenue] = useState(0)\r\n\r\n const ActionOption = [\r\n { key: \"Edit\", value: \"Edit\" },\r\n { key: \"Confirmation Email\", value: \"Confirmation Email\" },\r\n { key: \"Function Prospect\", value: \"Function Prospect\" },\r\n { key: \"Convert To Billing\", value: \"Convert To Billing\" },\r\n { key: \"Cancel\", value: \"Cancel\" },\r\n { key: \"No-Show\", value: \"No-Show\" },\r\n\r\n ];\r\n const optBtnData = [\r\n { key: \"Edit\", value: \"Edit\" },\r\n { key: \"Confirmation Email\", value: \"Confirmation Email\" },\r\n { key: \"Function Prospect\", value: \"Function Prospect\" },\r\n { key: \"Convert To Billing\", value: \"Convert To Billing\" },\r\n { key: \"Cancel\", value: \"Cancel\" },\r\n { key: \"No-Show\", value: \"No-Show\" },\r\n ];\r\n const selectdata = [\r\n { key: \"Edit\", value: \"Edit\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n\r\n const defaultValidationObj = {\r\n OutletSerNo: \"\",\r\n RateSerNo: \"\",\r\n GuestProfileSerNo: \"\"\r\n }\r\n const [headerValidation, setHeaderValidation] = useState(defaultValidationObj)\r\n const [type, setType] = useState(\"\")\r\n const [showGuestModal, setShowGuestModal] = useState(false);\r\n const [showBanquetAddeventModal, setShowBanquetAddeventModal] = useState(false);\r\n const [showDepositReceivedPopup, setDepositReceivedPopup] = useState(false);\r\n const [displayObj, setDisplayObj] = useState({ GuestName: \"\", CompanyName: \"\", AgentName: \"\" })\r\n const [marketList, setMarketList] = useState([])\r\n const [sourceList, setSourceList] = useState([])\r\n const [salesPersonList, setSalesPersonList] = useState([])\r\n const [referanceList, setReferanceList] = useState([])\r\n const [taxExamptionList, setTaxExamptionList] = useState([])\r\n const [venueList, setVenueList] = useState([])\r\n const [outletData, setOutletData] = useState({});\r\n const [itemListData, setItemListData] = useState([])\r\n const [taxListData, setTaxListData] = useState([])\r\n const [newSerNo, setNewSerNo] = useState({ BookingSerNo: 0, BookingSubSerNo: 0 })\r\n const [totalAmount, setTotalAmount] = useState({ Amount: 0, tax: 0 });\r\n const defaultVenueObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n BookingSerNo: 0,\r\n BookingSubSerNo: 0,\r\n EventDate: \"\",\r\n StartTime: \"\",\r\n EndTime: \"\",\r\n TableSerNo: 0,\r\n FunctionSerNo: 0,\r\n EstAdult: 0,\r\n EstChild: 0,\r\n Adult: 0,\r\n Child: 0,\r\n BoardToRead: \"\",\r\n SeatingArragement: \"\",\r\n Mode: \"\",\r\n IsDisabledVenue: true\r\n }\r\n const [IsValidPage, setIsValidPage] = useState({})\r\n const [venueEditObj, setVenueEditObj] = useState(defaultVenueObj)\r\n const actionPopup = (item) => {\r\n if (item.key == \"Edit\") {\r\n // history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n setShowBanquetAddeventModal(true);\r\n\r\n }\r\n }\r\n const GetOutletDataApi = () => {\r\n GetBanquetOutletData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n setOutletData(resp.data)\r\n setBanquetHeaderObj((prev) => ({ ...prev, OutletSerNo: resp.data.OutletSerNo, MenuSerNo: resp.data.MenuSerNo, RateSerNo: resp.data.RateSerNo }))\r\n })\r\n }\r\n\r\n const GetReferenceApi = () => {\r\n let temp = [{ key: 0, value: \"Select\" }]\r\n GetReferenceMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n resp.data.forEach(element => {\r\n temp.push({ key: element.ReferenceSerNo, value: element.Name })\r\n });\r\n setReferanceList(temp);\r\n })\r\n\r\n }\r\n const GetMarketData = () => {\r\n let temp = []\r\n cmbGetMarketMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n resp.data.forEach(element => {\r\n temp.push({ key: parseInt(element.key), value: element.value })\r\n })\r\n setMarketList(temp);\r\n })\r\n }\r\n const GetSourceData = () => {\r\n cmbGetSourceMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n setSourceList(resp.data)\r\n })\r\n }\r\n const GetSalesPersonData = () => {\r\n let temp = [{ key: 0, value: \"Select\" }]\r\n GetSalesPersonMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n console.log(\"this is the sales person master data\", resp.data)\r\n resp.data.forEach(element => {\r\n temp.push({ key: element.SalesPersonSerNo, value: element.Name })\r\n });\r\n })\r\n setSalesPersonList(temp);\r\n }\r\n const GetTaxExemptionApi = () => {\r\n GetTaxExemptionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n let temp = [{ key: 0, value: \"Select\" }]\r\n resp.data.forEach(element => {\r\n temp.push({ key: element.ExemptionSerNo, value: element.Name })\r\n });\r\n setTaxExamptionList(temp);\r\n })\r\n }\r\n const GetBanquetVenueApi = (BookingSerNo) => {\r\n console.log(\"GetBanquetVenueApi is called\")\r\n GetBanquetBookingVenueList(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), BookingSerNo).then(resp => {\r\n console.log(\"VENUE LIST \", resp.data)\r\n let temp = []\r\n let temp1 = 0\r\n resp.data.forEach(element => {\r\n temp1 = temp1 + element.BookingAmount;\r\n temp.push(\r\n {\r\n Date: moment(new Date(element.EventDate)).format(\"DD-MMM-YYYY\"),\r\n STime: moment(element.StartTime).format(\"HH:mm\"),\r\n ETime: moment(element.EndTime).format(\"HH:mm\"),\r\n VenueName: element.Venue,\r\n Adult: element.Adult,\r\n Child: element.Child,\r\n Function: element.FunctionName,\r\n BookingAmount: parseFloat(element.BookingAmount).toFixed(2),\r\n EstAdult: element.EAdult,\r\n Estchild: element.EChild,\r\n BookingSubSerNo: element.BookingSubSerNo,\r\n SeatingArrangement: element.SeatingArrangement,\r\n BoardToRead: element.BoardToRead,\r\n TableSerNo: element.TableSerNo,\r\n Status:element.Status,\r\n FunctionSerNo: element.FunctionSerNo\r\n })\r\n });\r\n setVenueList(temp);\r\n setTotalAmountVenue(temp1)\r\n })\r\n }\r\n\r\n const GetItemListData = (BookingSubSerNo) => {\r\n console.log(\"GetItemListData is callled\")\r\n GetBanquetBookingVenueDetail(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), newSerNo.BookingSerNo, BookingSubSerNo).then(resp => {\r\n let temp = []\r\n let totalAm = 0;\r\n resp.data.pBanquetVenueItem.forEach(element => {\r\n temp.push(\r\n {\r\n BookingItemSerNo: element.BookingItemSerNo,\r\n ItemSerNo: element.ItemSerNo,\r\n ItemDescription: element.Name,\r\n Qty: element.ItemQty,\r\n Rate: element.ItemRate,\r\n Tax: element.Tax,\r\n ItemGroupSerNo: element.ItemGroupSerNo,\r\n ItemSubGroupSerNo: element.ItemSubGroupSerNo,\r\n TransactionSerNo: element.TransactionSerNo,\r\n Remarks:element.Remarks,\r\n Amount: parseFloat(element.Amount).toFixed(2)\r\n }\r\n )\r\n totalAm = totalAm + element.Amount\r\n });\r\n let temp1 = 0;\r\n resp.data.pBanquetTax.forEach(element => {\r\n temp1 = temp1 + parseFloat(element.Amount)\r\n })\r\n setTotalAmount((prev) => ({ ...prev, Amount: totalAm, tax: temp1 }))\r\n setTaxListData(resp.data)\r\n setItemListData(temp);\r\n })\r\n }\r\n const GetBanquetBookingHeader = (BookingSerNo) => {\r\n console.log(\"GetBanquetBookingHeader is called\")\r\n GetBanquetHeader(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), BookingSerNo).then(resp => {\r\n console.log(resp.data)\r\n setBanquetHeaderObj(resp.data)\r\n setBanquetHeaderObj((prev) => ({ ...prev, BookingSerNo: resp.data.BookingSerNo }))\r\n setDisplayObj((prev) => ({ ...prev, GuestName: resp.data.GuestName, CompanyName: resp.data.CompanyName, AgentName: resp.data.AgentName }))\r\n })\r\n }\r\n\r\n const handleClickCancel = () => {\r\n setIsDisabled(true)\r\n setHeaderValidation(defaultValidationObj)\r\n if (banquetHeaderObj.BookingSerNo != 0 && banquetHeaderObj.BookingSerNo != null) {\r\n GetBanquetBookingHeader(banquetHeaderObj.BookingSerNo);\r\n }\r\n setBanquetHeaderObj((prev) => ({ ...prev, Mode: \"Cancel\" }))\r\n }\r\n const handleClickEdit = () => {\r\n if (banquetHeaderObj.BookingSerNo == 0) {\r\n alertFunction(\"Please add an Reservation first\")\r\n }\r\n else {\r\n setIsDisabled(false)\r\n console.log(banquetHeaderObj)\r\n setBanquetHeaderObj((prev) => ({ ...prev, Mode: \"Edit\" }))\r\n }\r\n }\r\n const handleClickAdd = () => {\r\n setBanquetHeaderObj(defaultHeaderObj)\r\n setBanquetHeaderObj((prev) => ({ ...prev, Mode: \"Add\" }))\r\n GetOutletDataApi()\r\n setDisplayObj((prev) => ({ ...prev, GuestName: \"\", CompanyName: \"\", AgentName: \"\" }))\r\n setIsDisabled(false)\r\n }\r\n\r\n const isValidPage = () => {\r\n let validity = true;\r\n if (banquetHeaderObj.OutletSerNo == 0 || banquetHeaderObj.OutletSerNo == null || banquetHeaderObj.OutletSerNo == undefined) {\r\n setHeaderValidation((prev) => ({ ...prev, OutletSerNo: \"Please Select outlet ser no\" }))\r\n alert(\"Please select outlet\")\r\n validity = false;\r\n }\r\n if (banquetHeaderObj.MenuSerNo == 0 || banquetHeaderObj.MenuSerNo == null || banquetHeaderObj.MenuSerNo == undefined) {\r\n setHeaderValidation((prev) => ({ ...prev, MenuSerNo: \"Please select menue\" }))\r\n validity = false;\r\n }\r\n if (banquetHeaderObj.GuestProfileSerNo == 0 || banquetHeaderObj.GuestProfileSerNo == null || banquetHeaderObj.GuestProfileSerNo == undefined) {\r\n setHeaderValidation((prev) => ({ ...prev, GuestProfileSerNo: \"Please select Guest\" }))\r\n validity = false;\r\n }\r\n if (banquetHeaderObj.RateSerNo == 0 || banquetHeaderObj.RateSerNo == null || banquetHeaderObj.RateSerNo == undefined) {\r\n setHeaderValidation((prev) => ({ ...prev, RateSerNo: \"Please select rate\" }))\r\n validity = false;\r\n }\r\n if (parseFloat(banquetHeaderObj.Discount) >100 && banquetHeaderObj.IsPercentage==true) {\r\n setHeaderValidation((prev) => ({ ...prev, Discount: \"Discount can not be greater than 100%\" }))\r\n validity = false;\r\n }\r\n return validity;\r\n }\r\n const handleClickSave = () => {\r\n let isValid = isValidPage()\r\n if (isValid) {\r\n banquetHeaderObj.Discount = parseFloat(banquetHeaderObj.Discount);\r\n console.log(banquetHeaderObj)\r\n AddBanquetBooking(banquetHeaderObj).then(resp => {\r\n if (resp.data) {\r\n setHeaderValidation(defaultValidationObj)\r\n setVenueIsDisabled(false)\r\n console.log(\"hi \", resp.data)\r\n setNewSerNo((prev) => ({ ...prev, BookingSerNo: parseInt(resp.data.ReturnValue) }))\r\n GetBanquetBookingHeader(parseInt(resp.data.ReturnValue))\r\n alertFunction(\"Saved successfully.\")\r\n }\r\n })\r\n setIsDisabled(true)\r\n }\r\n }\r\n useEffect(() => {\r\n GetOutletDataApi()\r\n GetReferenceApi()\r\n GetMarketData()\r\n GetSourceData()\r\n GetTaxExemptionApi()\r\n GetSalesPersonData()\r\n }, [])\r\n useEffect(() => {\r\n if (props.para.Mode == \"Add\") {\r\n setBanquetHeaderObj(defaultHeaderObj)\r\n }\r\n else if (props.para.Mode == \"Edit\") {\r\n GetBanquetBookingHeader(props.para.BookingSerNo)\r\n setNewSerNo((prev) => ({ ...prev, BookingSerNo: props.para.BookingSerNo }))\r\n GetBanquetVenueApi(props.para.BookingSerNo)\r\n GetBanquetBookingVenueDetail(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), props.para.BookingSerNo, 1).then(resp => {\r\n let temp = []\r\n let totalAm = 0;\r\n if (resp.data) {\r\n resp.data.pBanquetVenueItem.forEach(element => {\r\n temp.push(\r\n {\r\n BookingItemSerNo: element.BookingItemSerNo,\r\n ItemSerNo: element.ItemSerNo,\r\n ItemDescription: element.Name,\r\n Qty: element.ItemQty,\r\n Rate: element.ItemRate,\r\n Tax: element.Tax,\r\n ItemGroupSerNo: element.ItemGroupSerNo,\r\n ItemSubGroupSerNo: element.ItemSubGroupSerNo,\r\n TransactionSerNo: element.TransactionSerNo,\r\n Remarks: element.Remarks,\r\n Amount: parseFloat(element.Amount).toFixed(2)\r\n }\r\n )\r\n totalAm = totalAm + element.Amount\r\n });\r\n let temp1 = 0;\r\n resp.data.pBanquetTax.forEach(element => {\r\n temp1 = temp1 + parseFloat(element.Amount)\r\n })\r\n setTotalAmount((prev) => ({ ...prev, Amount: totalAm, tax: temp1 }))\r\n setItemListData(temp);\r\n setTaxListData(resp.data)\r\n }\r\n })\r\n }\r\n }, [props.para])\r\n\r\n const depositeReceivedTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n\r\n
    \r\n Deposite Received:\r\n
    Payment Type :
    \r\n
    Receipt No :
    \r\n
    Note :
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n setDepositReceivedPopup(!showDepositReceivedPopup)}>\r\n Edit\r\n \r\n \r\n Actions\r\n \r\n
    \r\n\r\n\r\n
    \r\n\r\n );\r\n };\r\n return (\r\n {\r\n if (props.Onclose) {\r\n props.Onclose();\r\n }\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    New Reservation

    \r\n
    \r\n
    \r\n {(banquetHeaderObj.IsVenueWise == false && venueList.length == 1)\r\n ?\r\n null\r\n :\r\n {\r\n let temp = defaultVenueObj\r\n temp.BookingSerNo = banquetHeaderObj.BookingSerNo\r\n setVenueEditObj(temp)\r\n setShowBanquetAddeventModal(!showBanquetAddeventModal)\r\n }\r\n }>Venue Details\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n setShowGuestModal(!showGuestModal)}\r\n >\r\n Guest Name\r\n \r\n {\r\n setBanquetHeaderObj((prev) => ({ ...prev, GuestProfileSerNo: 0 }))\r\n setDisplayObj((prev) => ({ ...prev, GuestName: \"\" }))\r\n console.log(\"\")\r\n }}\r\n >\r\n {banquetHeaderObj.GuestProfileSerNo != 0 ?\r\n :\r\n \r\n }\r\n \r\n
    \r\n\r\n
    \r\n {\r\n setType(\"CO\")\r\n setShowAgentModal(!showAgentModal)\r\n }\r\n }\r\n >\r\n Company\r\n \r\n {\r\n setBanquetHeaderObj((prev) => ({ ...prev, CompanyProfileSerNo: 0 }))\r\n setDisplayObj((prev) => ({ ...prev, AgentName: \"\" }))\r\n console.log(\"\")\r\n }}\r\n >\r\n {banquetHeaderObj.CompanyProfileSerNo != 0 ?\r\n :\r\n \r\n }\r\n \r\n
    \r\n
    \r\n {\r\n setType(\"AG\")\r\n setShowAgentModal(!showAgentModal)\r\n }\r\n }\r\n >\r\n Agent\r\n \r\n {\r\n setBanquetHeaderObj((prev) => ({ ...prev, AgentProfileSerNo: 0 }))\r\n setDisplayObj((prev) => ({ ...prev, AgentName: \"\" }))\r\n console.log(\"\")\r\n }}\r\n >\r\n {banquetHeaderObj.AgentProfileSerNo != 0 ?\r\n :\r\n \r\n }\r\n \r\n
    \r\n
    \r\n {\r\n if (v == false) {\r\n setBanquetHeaderObj((prev) => ({ ...prev, ReferenceSerNo: 0 }))\r\n }\r\n setBanquetHeaderObj((prev) => ({ ...prev, IsComplimentary: v }))\r\n }}\r\n >Complimentory\r\n
    \r\n
    \r\n setBanquetHeaderObj((prev) => ({ ...prev, ReferenceSerNo: v.key }))}\r\n >\r\n
    \r\n setBanquetHeaderObj((prev)=>({...prev,Remarks:v}))}>\r\n Note\r\n \r\n
    \r\n
    \r\n setBanquetHeaderObj((prev) => ({ ...prev, Discount: v }))}>\r\n Discount\r\n \r\n
    \r\n
    \r\n setBanquetHeaderObj((prev) => ({ ...prev, IsPercentage: v }))}\r\n className=\"form-group mrgn-lt10\"\r\n checked={banquetHeaderObj.IsPercentage}\r\n >\r\n In Percentage\r\n \r\n
    \r\n
    \r\n
    \r\n setBanquetHeaderObj((prev) => ({ ...prev, ExemptionSerNo: v.key }))}\r\n >\r\n
    \r\n
    \r\n Inclusive of all Taxes?\r\n setBanquetHeaderObj((prev) => ({ ...prev, IsTaxInclusive: v }))}\r\n id=\"banquet1\"\r\n disabled={isDisabled}\r\n value={banquetHeaderObj.IsTaxInclusive}\r\n >\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n Company on folio\r\n Arvind Limited\r\n
    \r\n \r\n
    \r\n Deposit Received\r\n 2,50,000\r\n
    \r\n \r\n
    \r\n Venue-wise Billing?\r\n setBanquetHeaderObj((prev) => ({ ...prev, IsVenueWise: v }))}\r\n id=\"banquet2\"\r\n disabled={isDisabled}\r\n value={banquetHeaderObj.IsVenueWise}>\r\n \r\n
    \r\n
    \r\n setBanquetHeaderObj((prev) => ({ ...prev, MarketSerNo: v.key }))}\r\n >\r\n
    \r\n
    \r\n setBanquetHeaderObj((prev) => ({ ...prev, SourceSerNo: parseInt(v.key) }))}\r\n >\r\n
    \r\n
    \r\n setBanquetHeaderObj((prev) => ({ ...prev, SalesPersonSerNo: v.key }))}\r\n >\r\n
    \r\n setBanquetHeaderObj((prev) => ({ ...prev, BillingInstruction: v }))}>\r\n Billing Instruction\r\n \r\n setBanquetHeaderObj((prev) => ({ ...prev, CancelPolicy: v }))}>\r\n Cancellation Policy\r\n \r\n setBanquetHeaderObj((prev) => ({ ...prev, GeneralRemarks: v }))}>\r\n General Remarks\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {banquetHeaderObj.Mode == \"Edit\" || banquetHeaderObj.Mode == \"Add\" ?\r\n <>\r\n Cancel\r\n Save\r\n \r\n :\r\n <>\r\n {\r\n banquetHeaderObj.BookingSerNo != 0 ?\r\n Edit\r\n :\r\n <>\r\n \r\n }\r\n {\r\n banquetHeaderObj.BookingSerNo == 0 ?\r\n Add\r\n :\r\n <>\r\n \r\n }\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {\r\n console.log(items);\r\n //setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n //setReservationStatus(v);\r\n //setShowGuestPopup(true);\r\n }}\r\n fixedHeaderNo={1}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={selectdata}\r\n optClick={(item, d) => {\r\n actionPopup(item)\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata)\r\n setVenueEditObj({ ...rowdata, Mode: \"Edit\", BookingSerNo: banquetHeaderObj.BookingSerNo })\r\n if (rowdata.BookingSubSerNo != venueEditObj.BookingSubSerNo) {\r\n GetItemListData(rowdata.BookingSubSerNo)\r\n }\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    Total : {totalAmountVenue.toFixed(2)}
    \r\n
    \r\n
    \r\n\r\n {\r\n console.log(items);\r\n //setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n //setReservationStatus(v);\r\n //setShowGuestPopup(true);\r\n }}\r\n fixedHeaderNo={2}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n actionPopup(item)\r\n //history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n //setSelectedReservation(rowdata);\r\n // handleRmAssignmentData([rowdata]);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    Total : {totalAmount.Amount.toFixed(2)}
    \r\n
    \r\n
    \r\n setTaxBreakupPopup(!showTaxBreakupPopup)\r\n }\r\n >\r\n
    \r\n
    Total Tax : {parseFloat(totalAmount.tax).toFixed(2)}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {showGuestModal ? (\r\n setShowGuestModal(false)}\r\n OnSelect={(v) => {\r\n console.log(v)\r\n setBanquetHeaderObj((prev) => ({ ...prev, GuestProfileSerNo: v.ProfileSerNo }))\r\n setDisplayObj((prev) => ({ ...prev, GuestName: v.GuestName }))\r\n setShowGuestModal(false)\r\n }}\r\n >\r\n \r\n ) : null\r\n }\r\n\r\n {\r\n showAgentModal ? (\r\n { setShowAgentModal(false); }}\r\n OnSelect={(v) => {\r\n if (type == \"CO\") {\r\n setBanquetHeaderObj((prev) => ({ ...prev, CompanyProfileSerNo: v.ProfileSerNo }))\r\n setDisplayObj((prev) => ({ ...prev, CompanyName: v.CompanyName }))\r\n console.log(v);\r\n }\r\n else if (type == \"AG\") {\r\n console.log(v);\r\n setBanquetHeaderObj((prev) => ({ ...prev, AgentProfileSerNo: v.ProfileSerNo }))\r\n setDisplayObj((prev) => ({ ...prev, AgentName: v.CompanyName }))\r\n }\r\n setShowAgentModal(false)\r\n }}\r\n >\r\n \r\n ) : null\r\n }\r\n {showTaxBreakupPopup ? (\r\n {\r\n setTaxBreakupPopup(false)\r\n }}\r\n />\r\n ) : null}\r\n {showBanquetAddeventModal ? (\r\n {\r\n console.log(v);\r\n GetItemListData(parseInt(v));\r\n GetBanquetVenueApi(newSerNo.BookingSerNo)\r\n setShowBanquetAddeventModal(false);\r\n }}\r\n />\r\n ) : null}\r\n
    \r\n\r\n \r\n )\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnButtonTypeWithDropdown,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnSingleDateSelection,\r\n InnSwitch,\r\n InnTableGrid,InnDataGrid, InnModalPopup, InnTextarea, InnTimeSelection\r\n} from \"../../../component\";\r\nimport moment from \"moment/moment\";\r\nimport { GetPropertyParameterByKeys } from \"../../../services/reservationService\";\r\nimport { CompanyModalPopup } from \"../reservation/modalPopup/companyModalPopup\";\r\nimport { currentUser } from \"../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { GetOutletTableDataBilling, GetBanquetOutletData, GetBanquetBookingList, GetBanquetFunctionMaster, GetBanquetBookingStatus } from \"../../../services/posbillingService\";\r\nimport AddEditBanquetModalPopup from \"./modalPopup/addEditBanquetModalPopup\";\r\nimport { element } from \"prop-types\";\r\n\r\nexport function Banquet() {\r\n //#region local variable\r\n const currUser = useSelector(currentUser);\r\n const dateTypeList = [{ key: \"Book\", value: \"Book\" }, { key: \"Event\", value: \"Event\" }]\r\n const columHeader = [\r\n { key: \"Status\", value: \"Status\", type: \"status\", align: \"center\" },\r\n { key: \"Booking No.\", value: \"BookingNo\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Date\", value: \"EventDate\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Guest Name\", value: \"GuestName\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Venue Name\", value: \"venue\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Event Name\", value: \"EventName\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Adult\", value: \"Adult\", type: \"txt\", sorting: \"N\", align: \"right\" },\r\n { key: \"Child\", value: \"Child\", type: \"txt\", sorting: \"N\", align: \"right\" },\r\n { key: \"S.Time\", value: \"StartTime\", type: \"txt\", sorting: \"N\", },\r\n { key: \"E.Time\", value: \"EndTime\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Amount\", value: \"Amount\", type: \"txt\", sorting: \"N\", align: \"right\" },\r\n { key: \"APC\", value: \"APC\", type: \"txt\", sorting: \"N\", align: 'right' },\r\n { key: \"Advance\", value: \"Advance\", type: \"txt\", sorting: \"N\", align: 'right' },\r\n { key: \"Company\", value: \"CompanyName\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Agent\", value: \"AgentName\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Booking Date\", value: \"BookingDate\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n const [selectedEvent, setSelectedEvent] = useState([])\r\n const Depositreceivedtable = [\r\n { key: \"Date\", value: \"Date\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Mode Of Payment\", value: \"ModeOfPayment\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Amount\", value: \"Amount\", type: \"txt\", sorting: \"Y\", align: 'right' },\r\n { key: \"Receipt No.\", value: \"ReceiptNo\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n\r\n const [filterDataDepositreceivedtable, setfilterDepositreceivedtable] = useState([\r\n {\r\n Date: \"Fri, 12 Mar\",\r\n ModeOfPayment: \"Credit Card\",\r\n Amount: \"5000.00\",\r\n ReceiptNo: \"123456789\",\r\n Action: \"...\",\r\n\r\n },\r\n ]);\r\n\r\n const DepositReceivedData = [\r\n { key: \"Print Receipt\", value: \"Print Receipt\" },\r\n { key: \"Email Receipt\", value: \"Email Receipt\" },\r\n { key: \"Payment Correction\", value: \"Payment Correction\" },\r\n { key: \"Refund\", value: \"Refund\" },\r\n ];\r\n const ActionOption = [\r\n { key: \"Convert To Billing\", value: \"Convert To Billing\" },\r\n { key: \"Cancel\", value: \"Cancel\" },\r\n ];\r\n const optBtnData = [\r\n { key: \"Edit\", value: \"Edit\" },\r\n { key: \"Confirmation Email\", value: \"Confirmation Email\" },\r\n { key: \"Function Prospect\", value: \"Function Prospect\" },\r\n { key: \"Convert To Billing\", value: \"Convert To Billing\" },\r\n { key: \"Cancel\", value: \"Cancel\" },\r\n { key: \"No-Show\", value: \"No-Show\" },\r\n ];\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n const MoreFilterOption = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n const selectdata = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n const selectdataWindow = [\r\n { key: \"all\", value: \"All\" },\r\n { key: \"W1\", value: \"W1\" },\r\n { key: \"W2\", value: \"W2\" },\r\n { key: \"W3\", value: \"W3\" },\r\n ];\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n DateType: \"Event\",\r\n FromDate: \"\",\r\n ToDate: \"\",\r\n TableSerNo: null,\r\n FunctionSerNo: null,\r\n CompanyProfileSerNo: null,\r\n AgentProfileSerNo: null,\r\n Status: \"CONF\",\r\n BookingNo: null\r\n }\r\n //#endregion\r\n //#region state variable\r\n const defaultHeaderObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n BookingSerNo: 0,\r\n BookingNo: 0,\r\n Status: \"\",\r\n EventDate: \"\",\r\n GuestName: \" \",\r\n venue: \"\",\r\n EventName: \"\",\r\n Adult: 0,\r\n Child: 0,\r\n StartTime: \"\",\r\n EndTime: \"\",\r\n CompanyName: \"\",\r\n AgentName: \"\",\r\n BookingDate: \"\",\r\n Amount: 0,\r\n APC: 0,\r\n Advance: 0,\r\n checked: \"\",\r\n Mode: \"\",\r\n key: 0\r\n }\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n const [displayObj, setDisplayObj] = useState({ GuestName: \"\", CompanyName: \"\", AgentName: \"\" })\r\n const [type, setType] = useState(\"\")\r\n const [showAgentModal, setShowAgentModal] = useState(false);\r\n const [outletData, setOutletData] = useState({});\r\n const [functionList, setFunctionList] = useState([])\r\n const [venueList, setVenueList] = useState([])\r\n const [banquetBookingList, setBanquetBookingList] = useState([]);\r\n const [banquetObj, setBanquetObj] = useState(defaultObj);\r\n const [banquetHeaderObj, setBanquetHeaderObj] = useState(defaultHeaderObj)\r\n const [bookingStatusList, setBookingStatusList] = useState([])\r\n //#endregion\r\n //#region useEffect\r\n\r\n const GetOutletDataApi = () => {\r\n GetBanquetOutletData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n setOutletData(resp.data)\r\n setBanquetObj((prev) => ({ ...prev, OutletSerNo: resp.data.OutletSerNo }))\r\n })\r\n }\r\n const GetFunctionMasterData = () => {\r\n // let temp = [{ key: null, value: \"Select\" }];\r\n let temp = []\r\n GetBanquetFunctionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n resp.data.forEach(element => {\r\n temp.push({ key: element.FunctionSerNo, value: element.Name })\r\n });\r\n setFunctionList(temp);\r\n })\r\n }\r\n const GetBanquetBookingStatusApi = () => {\r\n GetBanquetBookingStatus().then(resp => {\r\n let temp = []\r\n resp.data.forEach(element => {\r\n temp.push({ key: element.Status, value: element.Name })\r\n })\r\n setBookingStatusList(temp)\r\n })\r\n }\r\n const GetVenueDataCombo = () => {\r\n // let temp = [{ key: null, value: \"Select\" }]\r\n let temp = []\r\n if (banquetObj.OutletSerNo) {\r\n GetOutletTableDataBilling(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), banquetObj.OutletSerNo, 0).then(resp => {\r\n resp.data.forEach(element => {\r\n if (element.TableSerNo != 999) {\r\n temp.push({ key: element.TableSerNo, value: element.Name })\r\n }\r\n });\r\n console.log(temp);\r\n setVenueList(temp);\r\n })\r\n }\r\n }\r\n //#endregion\r\n //#region fill table grid data\r\n\r\n const fillBanquetBookingList = () => {\r\n if(banquetObj.ToDate {\r\n if (d.data) {\r\n d.data.forEach(element => {\r\n element.StartTime = moment(new Date(\"01-jan-1900 \" + element.StartTime)).format(\"HH:mm\")\r\n element.EndTime = moment(new Date(\"01-jan-1900 \" + element.EndTime)).format(\"HH:mm\")\r\n })\r\n }\r\n console.log(\"BanquetBookingList>>>>\", d.data);\r\n setBanquetBookingList(d.data);\r\n })\r\n setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }\r\n //#endregion\r\n\r\n const handleClickReset = () => {\r\n setBanquetObj(defaultObj)\r\n setBanquetObj((prev) => ({ ...prev, FromDate: businessDate, ToDate: businessDate }))\r\n setDisplayObj((prev) => ({ ...prev, GuestName: \"\", CompanyName: \"\", AgentName: \"\" }))\r\n }\r\n const actionPopup = (item) => {\r\n if (item.key == \"Edit\") {\r\n // history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n setShowBanquetEditModal(true);\r\n\r\n }\r\n }\r\n useEffect(() => {\r\n GetOutletDataApi()\r\n GetBanquetBookingStatusApi()\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), 'BusinessDate').then(resp => {\r\n let obj = resp.data.find(x => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(moment(resp.data[0].value).format(\"DD-MMM-YYYY\"));\r\n setBanquetObj((prev) => ({ ...prev, FromDate: moment(resp.data[0].value).format(\"DD-MMM-YYYY\"), ToDate: moment(resp.data[0].value).format(\"DD-MMM-YYYY\") }))\r\n }\r\n })\r\n }, [])\r\n\r\n\r\n useEffect(() => {\r\n if (businessDate != \"\" && banquetObj.OutletSerNo != undefined) {\r\n fillBanquetBookingList();\r\n GetVenueDataCombo()\r\n GetFunctionMasterData()\r\n }\r\n }, [banquetObj.OutletSerNo, businessDate])\r\n\r\n const depositeReceivedTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n Deposite Received:\r\n
    Payment Type :
    \r\n
    Receipt No :
    \r\n
    Note :
    \r\n
    \r\n
    \r\n
    \r\n setDepositReceivedPopup(!showDepositReceivedPopup)}>\r\n Edit\r\n \r\n \r\n Actions\r\n \r\n
    \r\n\r\n\r\n
    \r\n\r\n );\r\n };\r\n\r\n const [showAdvancedSearchModal, setShowAdvancedSearchModal] = useState(false);\r\n const [showBanquetEditModal, setShowBanquetEditModal] = useState(false);\r\n const [showDepositReceivedPopup, setDepositReceivedPopup] = useState(false);\r\n const [showPaymentPopup, setShowPaymentPopup] = useState(false);\r\n const [selectMulti, setselectMulti] = useState([\"1\", \"2\", \"3\"]);\r\n const [page, setPage] = useState(1);\r\n const [pageCount, setPageCount] = useState(1);\r\n const [colListKeys, setColListKeys] = useState([]);\r\n const [selectedVenue, setSelectedVenue] = useState([])\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Banquet

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* {\r\n setshowLeftBlueBar(true);\r\n }}\r\n >\r\n */}\r\n
    \r\n
    \r\n {\r\n\r\n let temp = defaultHeaderObj\r\n temp.Mode = \"Add\"\r\n setBanquetHeaderObj(temp)\r\n setShowBanquetEditModal(!showBanquetEditModal)\r\n }\r\n }>New Reservation\r\n \r\n Export\r\n \r\n\r\n \r\n Actions (50)\r\n \r\n \r\n setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }\r\n >\r\n \r\n
    \r\n \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* */}\r\n {\r\n console.log(items);\r\n //setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n //setReservationStatus(v);\r\n //setShowGuestPopup(true);\r\n }}\r\n fixedHeaderNo={2}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n actionPopup(item)\r\n //history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(\"rOW dATA\", rowdata)\r\n setBanquetHeaderObj({ ...rowdata, Mode: \"Edit\" });\r\n }\r\n }\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n {\r\n setPage(v);\r\n }}\r\n style={{ float: \"right\" }}\r\n />\r\n
    \r\n {/* Advanced Filter Popup Start */}\r\n {showAdvancedSearchModal ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Filters

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n Reset\r\n \r\n {\r\n // banquetObj.BookingNo=parseInt(banquetObj.BookingNo)\r\n // banquetObj.FunctionSerNo=banquetObj.FunctionSerNo?.toString()\r\n // banquetObj.TableSerNo =banquetObj.TableSerNo?.toString()\r\n console.log(banquetObj)\r\n fillBanquetBookingList()\r\n \r\n }}>\r\n Apply\r\n \r\n \r\n setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n setBanquetObj((prev) => ({ ...prev, FromDate: e }))}\r\n label=\"From Date\"\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n setBanquetObj((prev) => ({ ...prev, ToDate: moment(new Date(e)).format(\"DD-MMM-YYYY\") }))}\r\n label=\"To Date\"\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n let temp = \"\"\r\n if (item.length > 0) {\r\n item.forEach(element => {\r\n temp = temp + element + \",\"\r\n })\r\n }\r\n setSelectedVenue(item)\r\n if (temp == \"\") {\r\n setBanquetObj((prev) => ({ ...prev, TableSerNo: null }))\r\n }\r\n else {\r\n setBanquetObj((prev) => ({ ...prev, TableSerNo: temp }))\r\n }\r\n console.log(item)\r\n }}\r\n searchable={[\"Search\", \"No matching property\"]}\r\n\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n let temp = \"\"\r\n if (item.length > 0) {\r\n item.forEach(element => {\r\n temp = temp + element + \",\"\r\n })\r\n }\r\n setSelectedEvent(item)\r\n if (temp == \"\") {\r\n setBanquetObj((prev) => ({ ...prev, FunctionSerNo: null }))\r\n }\r\n else {\r\n setBanquetObj((prev) => ({ ...prev, FunctionSerNo: temp }))\r\n }\r\n }\r\n }\r\n searchable={[\"Search\", \"No matching property\"]}\r\n >\r\n {/* {\r\n setBanquetObj((prev) => ({ ...prev, FunctionSerNo: v.key }))\r\n }\r\n }\r\n // onChange={(item, name) => console.log(item, name)}\r\n > */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setType(\"CO\")\r\n setShowAgentModal(!showAgentModal)\r\n }\r\n }\r\n // onClick={() => setShowAgentModal(!showAgentModal)}\r\n //onChange={(v) => console.log(v)}\r\n >\r\n Company\r\n \r\n {\r\n console.log(\"\")\r\n setBanquetObj((prev) => ({ ...prev, CompanyProfileSerNo: null }))\r\n setDisplayObj((prev) => ({ ...prev, CompanyName: \"\" }))\r\n }}\r\n >\r\n {banquetObj.CompanyProfileSerNo != null ?\r\n :\r\n \r\n }\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setType(\"AG\")\r\n setShowAgentModal(!showAgentModal)\r\n }\r\n }\r\n // onClick={() => setShowAgentModal(!showAgentModal)}\r\n //onChange={(v) => console.log(v)}\r\n >\r\n Travel Agent\r\n \r\n {\r\n setBanquetObj((prev) => ({ ...prev, AgentProfileSerNo: null }))\r\n setDisplayObj((prev) => ({ ...prev, AgentName: \"\" }))\r\n }}\r\n >\r\n {banquetObj.AgentProfileSerNo != null ?\r\n :\r\n \r\n }\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n setBanquetObj((prev) => ({ ...prev, Status: v.key }))}\r\n >\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n setBanquetObj((prev) => ({ ...prev, DateType: item.key }))}\r\n >\r\n
    \r\n
    \r\n
    \r\n setBanquetObj((prev) => ({ ...prev, BookingNo: v }))} >Reservation No {/* onClick={() => setShowAgentModal(!showAgentModal)} */}\r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n {showBanquetEditModal ? (\r\n {\r\n GetBanquetBookingList(banquetObj).then(d => {\r\n setBanquetBookingList(d.data);\r\n console.log(\"BanquetBookingList>>>>\", d.data);\r\n })\r\n setShowBanquetEditModal(!showBanquetEditModal)\r\n }\r\n }\r\n >\r\n ) : null}\r\n {showDepositReceivedPopup ? (\r\n setDepositReceivedPopup(!showDepositReceivedPopup)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Deposit Received

    \r\n
    \r\n
    setShowPaymentPopup(!showPaymentPopup)}>Add Deposit
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      Confirmation No.
      \r\n
      12345678910
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      \r\n Ms. Preeti Iyengar\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {\r\n console.log(items);\r\n //setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n //setReservationStatus(v);\r\n //setShowGuestPopup(true);\r\n }}\r\n //fixedHeaderNo={0}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={DepositReceivedData}\r\n optClick={(item, d) => {\r\n actionPopup(item)\r\n //history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n //setSelectedReservation(rowdata);\r\n // handleRmAssignmentData([rowdata]);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n ) : null}\r\n {showPaymentPopup ? (\r\n setShowPaymentPopup(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Payment / Payment Correction / Refund

    \r\n
    \r\n
    \r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
      \r\n
    • \r\n
      Room No / Room Type
      \r\n
      \r\n 304/Executive\r\n
      \r\n
    • \r\n
    • \r\n
      Confirmation No.
      \r\n
      \r\n 12345678910\r\n
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      \r\n Mr. Rohit Sharma\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n
    \r\n console.log(v)}>Amount\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n select={selectMulti}\r\n >\r\n\r\n
    \r\n {/*
    4000
    */}\r\n console.log(v)}>Document Reference\r\n console.log(v)}>Receipt No\r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n\r\n\r\n console.log(v)}>Correction Reason\r\n console.log(v)}>Refundable Amount\r\n console.log(v)}>Reason for Refund\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Card Details
    \r\n console.log(v)}>Credit Card Number\r\n {/* {\r\n console.log(e);\r\n }}\r\n placeholder=\"mm/yyyy\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Expiry Date\"\r\n selected={\"Nov 2025\"}\r\n > */}\r\n console.log(v)}>Expiry Date\r\n\r\n console.log(v)}>Card Holder Name\r\n console.log(v)}>Note\r\n\r\n
    \r\n
    \r\n
    \r\n
    Cash Payment Details
    \r\n console.log(v)}>PAN Card No\r\n console.log(v)}>Name on PAN Card\r\n console.log(v)}>Note\r\n\r\n
    Cheque Details
    \r\n console.log(v)}>Cheque No\r\n console.log(v)}>Bank Name\r\n\r\n console.log(v)}>Branch Name\r\n console.log(v)}>Name on Account\r\n console.log(v)}>Note\r\n\r\n
    \r\n
    \r\n
    Bank Transfer Details
    \r\n\r\n console.log(v)}>Bank Name\r\n\r\n console.log(v)}>Name on Account\r\n\r\n {\r\n console.log(e);\r\n }}\r\n placeholder=\"mm/yyyy\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Payment Received Date\"\r\n selected={\"14-FEb-2022\"}\r\n >\r\n console.log(v)}>Note\r\n\r\n
    UPI payment details
    \r\n\r\n console.log(v)}>UPI ID\r\n\r\n console.log(v)}>Name on Account\r\n {\r\n console.log(e);\r\n }}\r\n placeholder=\"mm/yyyy\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Payment Received Date\"\r\n selected={\"14-FEb-2022\"}\r\n >\r\n console.log(v)}>Note\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n {\r\n showAgentModal ? (\r\n { setShowAgentModal(false); }}\r\n OnSelect={(v) => {\r\n if (type == \"CO\") {\r\n setBanquetObj((prev) => ({ ...prev, CompanyProfileSerNo: v.ProfileSerNo }))\r\n setDisplayObj((prev) => ({ ...prev, CompanyName: v.CompanyName }))\r\n }\r\n else if (type == \"AG\") {\r\n setBanquetObj((prev) => ({ ...prev, AgentProfileSerNo: v.ProfileSerNo }))\r\n setDisplayObj((prev) => ({ ...prev, AgentName: v.CompanyName }))\r\n }\r\n setShowAgentModal(false)\r\n }}\r\n >\r\n \r\n ) : null\r\n }\r\n \r\n )\r\n}\r\n","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/question-icon-wht.d5d2522e.svg\";","export default __webpack_public_path__ + \"static/media/login-icon.7dca594c.svg\";","export default __webpack_public_path__ + \"static/media/internet-icon.4f0fb6a1.svg\";","import React, { useState, useEffect } from \"react\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport rightarrow from \"../../../../assets/images/right-circle-arrow-gray.svg\";\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport {\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnCheckbox,\r\n InnActionButton,\r\n InnTextbox,\r\n InnSingleDateSelection,\r\n InnSingleRadioButton,\r\n InnButton3Darrow,\r\n InnLoader,useConfirm\r\n} from \"../../../../component\";\r\nimport { RateCodeModalPopup } from \"./rateCodeModalPopup\";\r\nimport { ModifiedRateDetailData } from \"../../../../utils/helpers/reservation\";\r\nimport { reservation, setRateAndPackages, setTempRateAndPackage } from \"../../../../reducer/frontSlice\";\r\nimport { GetReservationDailyRate, GetModifiedRateAndPackageRate } from \"../../../../services/reservationService\";\r\n\r\nexport function DailyRateModalPopup(props) {\r\n\r\n const res = useSelector(reservation);\r\n const dispatch = useDispatch();\r\n const { confirm } = useConfirm();\r\n const [showRateSelectionModal, setShowRateSelectionModal] = useState(false);\r\n const [selectedRateCode, setSelectedRateCode] = useState({});\r\n const [isFixedRate, setIsFixedRate] = useState(false);\r\n const [isTaxInclusive,setIsTaxInclusive] = useState(props.para.IsInclusive);\r\n const [selectedFromDate, setSelectedFromDate] = useState(props.para.ArrivalDate);\r\n const [selectedToDate, setSelectedToDate] = useState(props.para.DepartureDate);\r\n const [dailyRateData, setDailyRateData] = useState([]);\r\n const [selectedDailyRate, setSelectedDailyRate] = useState({});\r\n // const [rateCodePopDetail,setRateCodePopDetail] = useState({\r\n // \"PropertyName\" : \"Orchid Pune\",\r\n // \"ArrivalDate\" : \"1-oct-2020\",\r\n // \"DepartureDate\" : \"5-oct-2020\",\r\n // \"RoomTypeName\" : \"Delux\",\r\n // \"RoomTypeSerNo\" : \"1\",\r\n // \"NoOfRoom\" : \"1\",\r\n // \"Adult\" : \"1\",\r\n // \"Child\" : \"0\",\r\n // \"Agent\" : \"Make my trip\",\r\n // \"Company\" : \"TATA Power LTD\",\r\n // \"from\" : \"daily\"\r\n // });\r\n\r\n const [rateCodePopDetail, setRateCodePopDetail] = useState({ ...props.para, from: \"daily\" });\r\n\r\n useEffect(() => {\r\n //fillDailyRate();\r\n fillDailyRateFromStore(); \r\n }, []);\r\n\r\n const fillDailyRateFromStore = () => {\r\n \r\n let tempDaily = JSON.parse(JSON.stringify(res.rateDetailData.RateCodeDetails)); \r\n let tempTotalRoomRate = -1;\r\n tempDaily.map(d => {\r\n d.ClientSerNo = props.para.ClientSerNo;\r\n d.PropertySerNo = props.para.PropertySerNo;\r\n d.Adult = parseInt(props.para.Adult);\r\n d.Child = parseInt(props.para.Child);\r\n\r\n\r\n // this logic is set isfixrate variable if daily rate is different\r\n if(tempTotalRoomRate == -1){\r\n tempTotalRoomRate = d.TotalRoomRate;\r\n }\r\n if(parseFloat(tempTotalRoomRate) != parseFloat(d.TotalRoomRate)){\r\n setIsFixedRate(true);\r\n }\r\n // this logic is set isfixrate variable if daily rate is different\r\n\r\n })\r\n setDailyRateData(tempDaily);\r\n\r\n if(tempDaily.length > 0 ){\r\n setSelectedDailyRate(tempDaily[0]);\r\n setSelectedFromDate(tempDaily[0].Date);\r\n setSelectedToDate(tempDaily[0].Date);\r\n setIsTaxInclusive(props.para.IsInclusive);\r\n setRateCodePopDetail(prev => ({ ...prev, ArrivalDate: tempDaily[0].Date }));\r\n setRateCodePopDetail(prev => ({ ...prev, DepartureDate: tempDaily[0].Date }));\r\n } \r\n }\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n }\r\n\r\n const handleRightArrowClick = (e) => {\r\n let res = dailyRateData.filter(x => x.Date == e.target.id);\r\n if (res.length > 0) {\r\n setSelectedDailyRate(res[0]);\r\n setSelectedFromDate(res[0].Date);\r\n setSelectedToDate(res[0].Date);\r\n setRateCodePopDetail(prev => ({ ...prev, ArrivalDate: res[0].Date }));\r\n setRateCodePopDetail(prev => ({ ...prev, DepartureDate: res[0].Date }));\r\n }\r\n else {\r\n setSelectedDailyRate({});\r\n setSelectedFromDate(\"1-jan-1900\");\r\n setSelectedToDate(\"1-jan-1900\");\r\n setRateCodePopDetail(prev => ({ ...prev, ArrivalDate: \"1-jan-1900\" }));\r\n setRateCodePopDetail(prev => ({ ...prev, DepartureDate: \"1-jan-1900\" }));\r\n }\r\n }\r\n\r\n const handleBtnUpdate = () => {\r\n let tempDaily = [...dailyRateData];\r\n let isUpdate = false;\r\n tempDaily.map(d => {\r\n if ((new Date(d.Date) >= new Date(selectedFromDate)) && (new Date(d.Date) <= new Date(selectedToDate))) {\r\n d.RoomRate = selectedDailyRate.RoomRate;\r\n d.TotalRoomRate = selectedDailyRate.TotalRoomRate;\r\n d.Name = selectedDailyRate.Name;\r\n d.RateSerNo = parseInt(selectedDailyRate.RateSerNo);\r\n isUpdate = true;\r\n }\r\n })\r\n\r\n if(isUpdate){\r\n setIsFixedRate(true);\r\n }\r\n\r\n setDailyRateData(tempDaily);\r\n }\r\n\r\n const handleBtnReset = () => {\r\n fillDailyRateFromStore();\r\n // setSelectedDailyRate(prev => ({ ...prev, RoomTypeName: \"\", Name: \"\", RoomRate: \"0\",TotalRoomRate : \"0\" }));\r\n // setSelectedFromDate(\"1-jan-1900\");\r\n // setSelectedToDate(\"1-jan-1900\");\r\n // setRateCodePopDetail(prev => ({ ...prev, ArrivalDate: \"1-jan-1900\" }));\r\n // setRateCodePopDetail(prev => ({ ...prev, DepartureDate: \"1-jan-1900\" }));\r\n }\r\n\r\n const handleBtnSave = () => { \r\n GetModifiedRateAndPackageRate(dailyRateData).then(d => {\r\n \r\n let obj = ModifiedRateDetailData(d.data);\r\n dispatch(setRateAndPackages(obj));\r\n dispatch(setTempRateAndPackage(obj));\r\n if (props.handleOnSave === undefined) {\r\n console.log(\"handleOnSave is not defined\");\r\n } else {\r\n props.handleOnSave(isTaxInclusive);\r\n }\r\n });\r\n }\r\n\r\n const handleOnRoomRateChanged = (value, e) => { \r\n if (isNaN(value) || value == \"\" || value < 0) {\r\n confirm({\r\n Message: \"Invalid Room rate.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]}); \r\n if(isNaN(value) || value == \"\")\r\n {\r\n value = 0;\r\n }\r\n else\r\n {\r\n if(value < 0){\r\n let value1 = value;\r\n value = 0;\r\n setTimeout(() => {\r\n value = value1 * -1;\r\n let obj = dailyRateData.find(x => x.Date == e.target.id);\r\n if (obj != undefined) {\r\n let tempdaily = [...dailyRateData];\r\n tempdaily.filter(x => x.Date == e.target.id).map(v => {\r\n v.RoomRate = value;\r\n v.TotalRoomRate = value;\r\n })\r\n setDailyRateData(tempdaily);\r\n }\r\n }, 100);\r\n } \r\n else{\r\n let value1 = value;\r\n value = 0;\r\n setTimeout(() => {\r\n value = value1;\r\n let obj = dailyRateData.find(x => x.Date == e.target.id);\r\n if (obj != undefined) {\r\n let tempdaily = [...dailyRateData];\r\n tempdaily.filter(x => x.Date == e.target.id).map(v => {\r\n v.RoomRate = value;\r\n v.TotalRoomRate = value;\r\n })\r\n setDailyRateData(tempdaily);\r\n }\r\n }, 100);\r\n }\r\n } \r\n }\r\n if (e.target.id && parseFloat(value) >= 0) {\r\n let obj = dailyRateData.find(x => x.Date == e.target.id);\r\n if (obj != undefined) {\r\n let tempdaily = [...dailyRateData];\r\n tempdaily.filter(x => x.Date == e.target.id).map(v => {\r\n v.RoomRate = value;\r\n v.TotalRoomRate = value;\r\n })\r\n setDailyRateData(tempdaily);\r\n }\r\n }\r\n }\r\n\r\n const handleOnTickTaxInclusive = (checked) => {\r\n let tempDaily = [...dailyRateData];\r\n tempDaily.map(d => {\r\n d.IsTaxInclusive = checked;\r\n })\r\n setDailyRateData(tempDaily);\r\n setIsTaxInclusive(checked);\r\n }\r\n\r\n const handleOnFromDateChanged = (e) => { \r\n if(new Date(e) >= new Date(props.para.ArrivalDate) && new Date(e) < new Date(props.para.DepartureDate)){\r\n setSelectedFromDate(e);\r\n setSelectedDailyRate(prev => ({ ...prev, ArrivalDate: e }));\r\n setRateCodePopDetail(prev => ({ ...prev, ArrivalDate: e })); \r\n }else{\r\n let oldDate = selectedFromDate;\r\n setSelectedFromDate(e);\r\n alert(\"Invalid From date.\");\r\n setTimeout(() => {\r\n setSelectedFromDate(oldDate); \r\n }, 200); \r\n } \r\n }\r\n\r\n const handleOnToDateChanged = (e) => { \r\n if(new Date(e) >= new Date(props.para.ArrivalDate) && new Date(e) < new Date(props.para.DepartureDate)){\r\n setSelectedToDate(e);\r\n setSelectedDailyRate(prev => ({ ...prev, DepartureDate: e }));\r\n setRateCodePopDetail(prev => ({ ...prev, DepartureDate: e })); \r\n }else{ \r\n let oldDate = selectedToDate;\r\n setSelectedToDate(e);\r\n alert(\"Invalid To date.\");\r\n setTimeout(() => {\r\n setSelectedToDate(oldDate); \r\n }, 200); \r\n } \r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n

    Daily Rate

    \r\n
    \r\n \r\n Inclusive of Taxes\r\n \r\n
    \r\n
    \r\n {/*
    \r\n { console.log(\"checkbox is \" + ischecked); }} > Inclusive of Taxes \r\n
    */}\r\n
    \r\n \r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n dailyRateData && dailyRateData.map(d =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n
    DateRate CodeRack Rate\r\n {\r\n setIsFixedRate(ischecked);\r\n }}\r\n >\r\n\r\n Fixed Rate\r\n \r\n
    {d.Date}{d.Name}{d.TotalRoomRate}\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n console.log(v)}\r\n disabled={true}\r\n >\r\n Room Type\r\n \r\n\r\n
    \r\n \r\n setShowRateSelectionModal(!showRateSelectionModal)\r\n }\r\n disabled = {props.para.IsSharer}\r\n >\r\n Rate Code*\r\n \r\n \r\n setShowRateSelectionModal(!showRateSelectionModal)\r\n }\r\n disabled = {props.para.IsSharer}\r\n >\r\n \r\n \r\n
    \r\n\r\n console.log(v)}\r\n disabled={true}\r\n >\r\n Room Type to be Charged\r\n \r\n {\r\n var OldTotalRoomRate = selectedDailyRate.TotalRoomRate;\r\n if (isNaN(v) || v == \"\" || v < 0) {\r\n confirm({\r\n Message: \"Invalid Room rate.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n setTimeout(() => {\r\n setSelectedDailyRate(prev => ({ ...prev, TotalRoomRate: 0 })); \r\n }, 100);\r\n setTimeout(() => {\r\n setSelectedDailyRate(prev => ({ ...prev, TotalRoomRate: OldTotalRoomRate })); \r\n }, 100); \r\n }\r\n else{\r\n setSelectedDailyRate(prev => ({ ...prev, TotalRoomRate: v }));\r\n } \r\n }}\r\n disabled = {props.para.IsSharer == true ? true : !isFixedRate}\r\n tag=\"decimal\"\r\n >\r\n Room Rate\r\n \r\n\r\n
    \r\n \r\n Reset\r\n \r\n Update\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n showRateSelectionModal ?\r\n setShowRateSelectionModal(false)}\r\n handleOnRateSelect={(v) => {\r\n setSelectedDailyRate(prev => ({ ...prev, RoomRate: v.RoomRate }));\r\n setSelectedDailyRate(prev => ({ ...prev, TotalRoomRate: v.RoomRate }));\r\n setSelectedDailyRate(prev => ({ ...prev, Name: v.RateCodeName }));\r\n setSelectedDailyRate(prev => ({ ...prev, RateSerNo: v.RateSerNo }));\r\n setSelectedRateCode(v);\r\n //setSelectedDailyRate(prev =>({...prev,RoomRate:v.RoomRate}))\r\n setShowRateSelectionModal(false);\r\n }}\r\n >\r\n : <>\r\n }\r\n
    \r\n \r\n )\r\n}","import { useDispatch,useSelector } from \"react-redux\";\r\nimport { showAlert,hideAlert,alertData } from \"../../reducer/authSlice\";\r\n\r\nlet resolveCallback;\r\nexport function useAlert() {\r\n \r\n const dispatch = useDispatch();\r\n const selector = useSelector(alertData);\r\n\r\n const innkeyAlert = (text) => {\r\n dispatch(showAlert(text));\r\n\r\n return new Promise((res,rej) => {\r\n resolveCallback = res;\r\n })\r\n }\r\n\r\n const onConfirm = () => {\r\n dispatch(hideAlert());\r\n resolveCallback(true);\r\n }\r\n\r\n const onCancle = () => {\r\n dispatch(hideAlert());\r\n resolveCallback(false);\r\n }\r\n\r\n return{\r\n innkeyAlert,\r\n onConfirm,\r\n onCancle,\r\n selector\r\n };\r\n\r\n}","export default __webpack_public_path__ + \"static/media/sms-tooltip-icon.a8164bbb.svg\";","export default __webpack_public_path__ + \"static/media/email-tooltip-icon.8c27d754.svg\";","import React from \"react\";\r\nimport { InnPlainButton, InnSingleSelectDropdown } from \"../../../../component\";\r\n\r\nexport function SingleSelectFilter(props) {\r\n return (\r\n
    \r\n {/* */}\r\n
    \r\n
    \r\n {\r\n if (props.onChange != undefined)\r\n props.onChange(item);\r\n }}\r\n >\r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n}","import React from \"react\";\r\nimport { InnPlainButton,InnTextbox } from \"../../../../component\";\r\n\r\nexport function InputTextFilter(props){\r\n return (\r\n
    \r\n
    \r\n \r\n {props.children}\r\n \r\n \r\n
    \r\n
    \r\n );\r\n}","import React from \"react\";\r\nimport { InnPlainButton, InnCheckbox } from \"../../../../component\";\r\n\r\nexport function CheckboxFilter(props) {\r\n return (\r\n
    \r\n {/* */}\r\n
    \r\n
    \r\n \r\n {props.children}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnCheckbox,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnButtonTypeWithDropdown,\r\n InnDataGrid\r\n} from \"../../../../component\";\r\nimport {\r\n IndiAgent, IndiCompany, IndiAdultChild, IndiArrival, IndiDailyRate, IndiGuestName, IndiInclusion,\r\n IndiPackege, IndiRateCode, IndiReservationType, IndiRoomRate, IndiRoomType\r\n} from \"../indicators\";\r\nimport {\r\n GetReservationInfoData, GetReservationInfoCancellationDetail,\r\n GetReservationTransaction, GetReservationDepositReceivedData,\r\n GetCancelReservationCharge, GetReservationRevenueSummary,\r\n GetPropertyParameterByKeys, PostCancelReservationCharge\r\n} from \"../../../../services/reservationService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetReasonMaster } from \"../../../../services/generalService\";\r\nimport moment from \"moment/moment\";\r\nimport { CancelReservationCharge, GetReservationCancelInfo } from \"../../../../services/reservationCancelService\";\r\nimport { PostReservationTransactionModalPopup } from \"./postReservationTransactionModalPopup\";\r\n\r\nexport function CancelNoShowModalPopup(props) {\r\n\r\n //#region Local Varible\r\n const currUser = useSelector(currentUser);\r\n const reservationObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n // ReservationSerNo: location.state.reservationSerNo\r\n ReservationSerNo: parseInt(props.ReservationSerNo),\r\n };\r\n const parameter = 'BusinessDate';\r\n const defaultValidationObj = {\r\n \"Amount\": \"\",\r\n }\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"ReservationSerNo\": parseInt(reservationObj.ReservationSerNo),\r\n \"Amount\": 0,\r\n \"Remarks\": \"\",\r\n \"IsTaxInclusive\": false,\r\n \"IsDeleteTrace\": false,\r\n \"DocumentNo\": \"\",\r\n \"SelectedStatus\": \"\",\r\n }\r\n\r\n\r\n\r\n const columHeaderCancellationPolicy =\r\n [\r\n { key: \"Cancellation Rule\", value: \"rule\", type: \"txt\", sorting: \"N\" },\r\n { key: \"No. of day before arrival\", value: \"days\", type: \"txt\", sorting: \"N\", align: 'center' },\r\n { key: \"Date\", value: \"date\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Time\", value: \"time\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Amount\", value: \"amount\", type: \"txt\", sorting: \"Y\", align: 'right' },\r\n ];\r\n const columHeaderDepositPayment =\r\n [\r\n { key: \"Date\", value: \"date\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Mode Of Payment\", value: \"mode\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Receipt No.\", value: \"receipt\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Amount\", value: \"amount\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Action\", value: \"action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n //#endregion\r\n\r\n //#region State Variables\r\n const [cancelReservationObj, setCancelReservationObj] = useState(defaultObj);\r\n const [reservationInfoData, setReservationInfoData] = useState({});\r\n const [reservationCancelInfoData, setReservationCancelInfoData] = useState({});\r\n const [reservationRevenueSummary, setReservationRevenueSummary] = useState([]);\r\n const [cancellationRuleSerNo, setCancellationRuleSerNo] = useState(0);\r\n const [filterDataDepositPayment, setfilterDataDepositPayment] = useState([]);\r\n const [filterDataCancellation, setfilterDataCancellation] = useState([]);\r\n const [cancelReasonData, setCancelReasonData] = useState([]);\r\n const [penaltyAmount, setPenaltyAmount] = useState();\r\n const [isTaxInclusive, setIsTaxInclusive] = useState(false);\r\n const [totalDepositRequested, setTotalDepositRequested] = useState(0);\r\n const [totalDepositPayment, setTotalDepositPayment] = useState(0);\r\n const [orgTaxableAmount, setOrgTaxableAmount] = useState(0);\r\n const [taxAmount, setTaxAmount] = useState();\r\n const [taxPercentage, setTaxPercentage] = useState();\r\n const [validationObj, setValidationObj] = useState(defaultValidationObj);\r\n const [isValidAmount, setIsValidAmount] = useState(true);\r\n const [businessDate, setBusinessDate] = useState();\r\n const [selectedTableData, setSelectedTableData] = useState({})\r\n const [showPostTransPopup, setShowPostTransPopup] = useState(false)\r\n //#endregion\r\n\r\n //#region Dummy Data\r\n const optCancelPayment = [\r\n { key: 'print', value: 'Print Receipt' },\r\n { key: 'email', value: 'Email Receipt' },\r\n { key: 'correction', value: 'Payment Correction' },\r\n { key: 'ref', value: 'Refund' },\r\n ]\r\n //#endregion\r\n\r\n //#region Custom Functions\r\n const fillReservationInfoData = () => {\r\n GetReservationInfoData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(reservationObj.ReservationSerNo)).then(d => {\r\n if (d.data != undefined) {\r\n setCancellationRuleSerNo(d.data.CancellationRuleSerNo);\r\n setReservationInfoData(d.data);\r\n }\r\n })\r\n };\r\n const fillReservationCancelInfoData = () => {\r\n GetReservationCancelInfo(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(reservationObj.ReservationSerNo)).then((d) => {\r\n console.log(\"Info Data >> \", d.data);\r\n if (d.data != undefined) {\r\n setReservationCancelInfoData(d.data[0])\r\n }\r\n })\r\n }\r\n const fillPropertyParameter = () => {\r\n GetPropertyParameterByKeys(reservationObj.ClientSerNo, reservationObj.PropertySerNo, parameter).then(d => {\r\n if (d.data != undefined) {\r\n let obj = d.data.find(x => x.key == \"BusinessDate\");\r\n setBusinessDate(obj.value);\r\n }\r\n });\r\n }\r\n const fillReservationRevenueSummary = () => {\r\n GetReservationRevenueSummary(reservationObj.ClientSerNo, reservationObj.PropertySerNo, parseInt(reservationObj.ReservationSerNo))\r\n .then(d => {\r\n if (d.data != undefined && d.data.length > 0) {\r\n setReservationRevenueSummary(d.data);\r\n }\r\n })\r\n }\r\n const fillCancellationPolicy = () => {\r\n GetReservationInfoCancellationDetail(reservationObj.ClientSerNo, reservationObj.PropertySerNo,\r\n parseInt(reservationObj.ReservationSerNo), parseInt(cancellationRuleSerNo)).then(d => {\r\n if (d.data != undefined && d.data.length > 0) {\r\n let defaultData = [];\r\n d.data.map((e) => {\r\n defaultData = [...defaultData,\r\n {\r\n rule: e.CancellationRuleName,\r\n days: e.DaysBeforeArrival,\r\n date: e.CancellationDate,\r\n time: e.CancellationTime,\r\n amount: e.CancellationAmount\r\n }\r\n ]\r\n })\r\n setfilterDataCancellation(defaultData);\r\n }\r\n })\r\n }\r\n const fillAmountFromGrid = () => {\r\n if (filterDataCancellation != undefined) {\r\n let obj = filterDataCancellation[0]\r\n console.log(\"Amount>>>\", parseFloat(obj.amount));\r\n setIsTaxInclusive(true);\r\n setPenaltyAmount(parseFloat(obj.amount));\r\n setOrgTaxableAmount(parseFloat(obj.amount));\r\n setCancelReservationObj(prev => ({ ...prev, IsTaxInclusive: true, Amount: parseFloat(obj.amount) }));\r\n }\r\n\r\n // let a = moment(businessDate, 'DD-MMM-YYYY');\r\n // let b = moment(reservationCancelInfoData.ArrivalDate, 'DD-MMM-YYYY');\r\n\r\n // let defaultDays = [];\r\n // filterDataCancellation.map((e) => {\r\n // defaultDays = [...defaultDays, e.days]\r\n // })\r\n // let c = [];\r\n // defaultDays.map((d) => {\r\n // if ((b.diff(a, 'days')) >= d) {\r\n // c = [...c, d]\r\n // const MaxValue = Math.max.apply(Math, c.map(d => d))\r\n // let obj = filterDataCancellation.find(x => x.days == MaxValue)\r\n // console.log(\"MaxValue,Days \", { MaxValue, defaultDays });\r\n // console.log(\"Object >>>\", obj);\r\n // if (obj != undefined) {\r\n // console.log(\"Amount\", parseFloat(obj.amount));\r\n // setIsTaxInclusive(true);\r\n // setPenaltyAmount(parseFloat(obj.amount));\r\n // setOrgTaxableAmount(parseFloat(obj.amount));\r\n // setCancelReservationObj(prev => ({ ...prev, IsTaxInclusive: true, Amount: parseFloat(obj.amount) }));\r\n // }\r\n // }\r\n // }) // Not-Confirmed(Old)\r\n\r\n // if (c.length === 0) {\r\n // setIsTaxInclusive(true);\r\n // setPenaltyAmount(parseFloat(reservationRevenueSummary[1].Revenue));\r\n // setOrgTaxableAmount(parseFloat(reservationRevenueSummary[1].Revenue));\r\n // setCancelReservationObj(prev => ({ ...prev, IsTaxInclusive: true, Amount: parseFloat(reservationRevenueSummary[1].Revenue) }));\r\n // }\r\n }\r\n const fillDepositPayment = () => {\r\n GetReservationTransaction(reservationObj.ClientSerNo, reservationObj.PropertySerNo,\r\n parseInt(reservationObj.ReservationSerNo), \"P\").then(d => {\r\n if (d.data != undefined && d.data.length > 0) {\r\n let defaultData = [];\r\n let defaultTotalDeposit = 0;\r\n d.data.map((e) => {\r\n // setTransactionSerNo(e.TransactionSerNo);\r\n // setCancelReservationObj(prev => ({ ...prev, TransactionSerNo: e.TransactionSerNo }))\r\n defaultTotalDeposit = defaultTotalDeposit + parseFloat(e.Amount);\r\n defaultData = [...defaultData,\r\n {\r\n date: e.TransactionDate,\r\n mode: e.TransactionName,\r\n receipt: e.ReceiptNo,\r\n amount: e.Amount,\r\n action: e.action,\r\n }]\r\n })\r\n setTotalDepositPayment(defaultTotalDeposit);\r\n setfilterDataDepositPayment(defaultData);\r\n }\r\n })\r\n }\r\n const fillDepositReceievedData = () => {\r\n GetReservationDepositReceivedData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo),\r\n parseInt(reservationObj.ReservationSerNo)).then(d => {\r\n if (d.data != undefined && d.data.length > 0) {\r\n console.log(\"Receieved>>\", d.data);\r\n let defaultDepositReq = 0;\r\n d.data.map(e => {\r\n defaultDepositReq = defaultDepositReq + parseFloat(e.DepositAmount);\r\n })\r\n setTotalDepositRequested(defaultDepositReq);\r\n }\r\n })\r\n }\r\n const fillCancelReason = () => {\r\n GetReasonMaster(reservationObj.ClientSerNo, reservationObj.PropertySerNo, \"CAN\").then(d => {\r\n let defaultReason = [];\r\n if (d.data != undefined && d.data.length > 0) {\r\n d.data.map((e) => {\r\n // if (props.Mode != undefined) {\r\n // if (e.Name == props.Mode.CancelReason) {\r\n // setSelectedCancelReasonSerNo(e.ReasonSerNo)\r\n // }\r\n // }\r\n defaultReason =\r\n [...defaultReason,\r\n {\r\n key: e.ReasonSerNo,\r\n value: e.Name,\r\n }]\r\n })\r\n setCancelReasonData(defaultReason);\r\n }\r\n })\r\n }\r\n // TransactionSerNo 1 taxAmount change\r\n const fillTaxValue = () => {\r\n GetCancelReservationCharge(reservationObj.ClientSerNo, reservationObj.PropertySerNo,\r\n isTaxInclusive, reservationCancelInfoData.TransactionSerNo, parseFloat(orgTaxableAmount)).then(d => {\r\n if (d.data != undefined) {\r\n console.log(\"Tax Data>>\", d.data);\r\n let totalTax = 0;\r\n let totalPer = 0;\r\n d.data.map((d) => {\r\n totalTax += parseFloat(d.Amount);\r\n totalPer += d.OnAmountPer;\r\n setCancelReservationObj(prev => ({ ...prev, Amount: parseFloat(orgTaxableAmount) }));\r\n })\r\n setTaxAmount(totalTax);\r\n setTaxPercentage(totalPer);\r\n }\r\n })\r\n }\r\n //#endregion\r\n\r\n //#region Events\r\n const validation = () => {\r\n let isValid = true;\r\n // if (selectedReason.key == 0) {\r\n // isValid = false;\r\n // alert(\"Provide a valid reason\");\r\n // }\r\n if (penaltyAmount == \"\" || orgTaxableAmount == \"\") {\r\n isValid = false;\r\n setValidationObj(prev => ({ ...prev, Amount: \"Field Can't be Empty\" }));\r\n alert(\"Field Can't be Empty\");\r\n }\r\n else if (isNaN(penaltyAmount) || isNaN(orgTaxableAmount)) {\r\n isValid = false;\r\n console.log(\"isNaN\");\r\n setValidationObj(prev => ({ ...prev, Amount: \"Invalid Input\" }));\r\n alert(\"Invalid Input\");\r\n }\r\n else if (orgTaxableAmount < 0 || penaltyAmount < 0) {\r\n isValid = false;\r\n setValidationObj(prev => ({ ...prev, Amount: \"Amount can not be less than 0\" }));\r\n alert(\"Amount can not be less than 0\");\r\n }\r\n else if (penaltyAmount > reservationRevenueSummary[1].Revenue\r\n && orgTaxableAmount > reservationRevenueSummary[1].Revenue) {\r\n isValid = false;\r\n setValidationObj(prev => ({ ...prev, Amount: \"Amount can not be higher than total revenue\" }));\r\n alert(\"Amount can not be higher than total revenue\");\r\n }\r\n return isValid;\r\n }\r\n const handleInclusiveTaxCheckbox = (ischecked) => {\r\n if (ischecked == true) {\r\n setIsTaxInclusive(true);\r\n setCancelReservationObj(prev => ({ ...prev, IsTaxInclusive: true }));\r\n }\r\n else {\r\n setIsTaxInclusive(false);\r\n setCancelReservationObj(prev => ({ ...prev, IsTaxInclusive: false }));\r\n }\r\n }\r\n const handleTableDataSelect = (item) => {\r\n setIsTaxInclusive(true);\r\n setCancelReservationObj(prev => ({ ...prev, IsTaxInclusive: true }));\r\n console.log(\"Select Row\", item);\r\n }\r\n const handleOnChangeAmount = (v) => {\r\n if (v == \"\") {\r\n setPenaltyAmount(0);\r\n setOrgTaxableAmount(0);\r\n }\r\n else if (parseFloat(v) < 0 || isNaN(v)) {\r\n setIsValidAmount(false);\r\n setValidationObj(prev => ({ ...prev, Amount: \"Please enter valid amount\" }));\r\n }\r\n else {\r\n setIsValidAmount(true);\r\n setPenaltyAmount(parseFloat(v));\r\n setOrgTaxableAmount(parseFloat(v));\r\n setValidationObj(prev => ({ ...prev, Amount: \"\" }));\r\n }\r\n }\r\n const handleOnBlurAmount = () => {\r\n if (isValidAmount == false) {\r\n setTaxAmount(0);\r\n setPenaltyAmount(0);\r\n setOrgTaxableAmount(0);\r\n }\r\n else {\r\n fillTaxValue();\r\n }\r\n }\r\n // const onCancelReservationClick = () => {\r\n // console.log(\"Result Object\", cancelReservationObj);\r\n // let validObject = validation();\r\n // if (validObject) {\r\n // if (reservationStatus == \"CAN\") {\r\n // alert(\"Reservation is cancelled already!\");\r\n // }\r\n // else {\r\n // props.OnClose();\r\n // PostCancelReservationCharge(cancelReservationObj).then(d => {\r\n // alert(d.data.Message);\r\n // if (d.data.Code == \"200\") {\r\n // console.log(\"Reservation Cancelled\");\r\n // setReservationStatus(\"CAN\");\r\n // }\r\n // })\r\n // }\r\n // }\r\n // }\r\n const handleCancelReservationOnClick = (item) => {\r\n let validObject = validation();\r\n let obj = cancelReservationObj;\r\n\r\n if (validObject) {\r\n if (reservationCancelInfoData != undefined) {\r\n // obj.Remarks = reservationCancelInfoData.Remarks\r\n // obj.DocumentNo = reservationCancelInfoData.TransactionName\r\n }\r\n if (item.key === \"Charge Penalty\") {\r\n obj.SelectedStatus = \"CP\"\r\n // setShowPostTransPopup(true)\r\n }\r\n else if (item.key === \"Generate Performa Invoice\") {\r\n obj.SelectedStatus = \"GP\"\r\n }\r\n else if (item.key === \"Waive Off\") {\r\n obj.SelectedStatus = \"WO\"\r\n }\r\n console.log(\"Result>>\", obj);\r\n props.OnClose();\r\n CancelReservationCharge(obj).then((d) => {\r\n if (d.data != undefined) {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n if (obj.SelectedStatus == \"CP\") {\r\n }\r\n }\r\n }\r\n })\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n fillReservationCancelInfoData();\r\n fillReservationInfoData();\r\n fillPropertyParameter();\r\n fillReservationRevenueSummary();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (reservationInfoData != undefined && cancellationRuleSerNo != 0) {\r\n fillCancellationPolicy();\r\n fillDepositPayment();\r\n fillDepositReceievedData();\r\n }\r\n fillCancelReason();\r\n }, [reservationInfoData]);\r\n\r\n useEffect(() => {\r\n if (filterDataCancellation != undefined && filterDataCancellation != \"\") {\r\n fillAmountFromGrid();\r\n }\r\n }, [reservationCancelInfoData, filterDataCancellation, businessDate]);\r\n\r\n useEffect(() => {\r\n if (orgTaxableAmount != 0) {\r\n fillTaxValue();\r\n }\r\n }, [isTaxInclusive]);\r\n\r\n //#endregion\r\n\r\n const cancelReservationOpt = [\r\n { key: \"Charge Penalty\", value: \"Charge Penalty\" },\r\n { key: \"Generate Performa Invoice\", value: \"Generate Performa Invoice\" },\r\n { key: \"Waive Off\", value: \"Waive Off\" },\r\n ];\r\n\r\n // const actionMenu = [\r\n // { key: \"1\", value: \"pdf\" },\r\n // { key: \"2\", value: \"excel\" },\r\n // { key: \"3\", value: \"print\" },\r\n // { key: \"4\", value: \"group\" },\r\n // ]\r\n\r\n return (\r\n <>\r\n \r\n
    \r\n
    \r\n
    \r\n

    Manage Post Cancellation

    \r\n {/* {\r\n props.Mode.ReservationStatus == \"CAN\" ?\r\n

    Cancel Reservation

    \r\n :\r\n

    No-show Reservation

    \r\n } */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    Revenue & deposit summary
    \r\n {\r\n reservationRevenueSummary.map((d) => {\r\n return (\r\n
    {d.Name}{d.Revenue}
    \r\n );\r\n })\r\n }\r\n
    Total Deposit Request{totalDepositRequested}
    \r\n
    Total Deposit Payment{totalDepositPayment}
    \r\n
    Deposit Maturity TypeOn Arrival
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Cancellation Policy
    \r\n
    \r\n {/* {\r\n handleTableDataSelect(item)\r\n }}\r\n > */}\r\n {\r\n handleTableDataSelect(item)\r\n }}\r\n >\r\n \r\n
    \r\n
    Deposit Payment
    \r\n
    \r\n {\r\n console.log(v, d);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    Total Advance Deposit Received
    \r\n
    {totalDepositPayment}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n Note\r\n \r\n \r\n Charge\r\n \r\n \r\n Penalty Amount\r\n \r\n \r\n Inclusive of taxes\r\n \r\n {\r\n if (isChecked) {\r\n setCancelReservationObj(prev => ({ ...prev, IsDeleteTrace: true }))\r\n }\r\n else {\r\n setCancelReservationObj(prev => ({ ...prev, IsDeleteTrace: false }))\r\n }\r\n }}\r\n >\r\n Delete trace for this reservation\r\n \r\n
    \r\n
    \r\n Cancellation Penalty\r\n \r\n {\r\n isNaN(orgTaxableAmount) ?\r\n 0\r\n :\r\n parseFloat(orgTaxableAmount).toFixed(2)\r\n }\r\n \r\n
    \r\n
    \r\n Add : Taxes @ {taxPercentage}\r\n {\r\n isTaxInclusive == true ?\r\n \" (Incl) \"\r\n :\r\n \"\"\r\n }\r\n \r\n {taxAmount}\r\n \r\n
    \r\n
    \r\n Total Penalty Payable\r\n \r\n {\r\n isNaN(orgTaxableAmount) || isNaN(parseFloat(taxAmount)) ?\r\n 0\r\n :\r\n orgTaxableAmount != undefined || penaltyAmount != undefined ?\r\n (isTaxInclusive == true ?\r\n parseFloat(orgTaxableAmount).toFixed(2)\r\n // setCancelReservationObj(prev => ({ ...prev, Amount: parseInt(orgTaxableAmount) }))\r\n :\r\n (isTaxInclusive == false ?\r\n ((parseFloat(orgTaxableAmount) + parseFloat(taxAmount))).toFixed(2)\r\n :\r\n 0)\r\n )\r\n :\r\n 0\r\n }\r\n \r\n
    \r\n
    \r\n Advance Deposit Adjusted\r\n \r\n {totalDepositPayment}\r\n \r\n
    \r\n
    \r\n Net Penalty Payable\r\n \r\n {\r\n isTaxInclusive == true ?\r\n parseFloat(orgTaxableAmount) > parseFloat(totalDepositPayment) ?\r\n (parseFloat(orgTaxableAmount) - parseFloat(totalDepositPayment)).toFixed(2)\r\n :\r\n \"-\"\r\n :\r\n (parseFloat(orgTaxableAmount) + parseFloat(taxAmount)) > parseFloat(totalDepositPayment) ?\r\n ((parseFloat(orgTaxableAmount) + parseFloat(taxAmount)) - parseFloat(totalDepositPayment)).toFixed(2)\r\n :\r\n \"-\"\r\n }\r\n \r\n
    \r\n
    \r\n Un-Adjusted Advance Deposit\r\n \r\n {\r\n isTaxInclusive == true ?\r\n parseFloat(orgTaxableAmount) < parseFloat(totalDepositPayment) ?\r\n (parseFloat(totalDepositPayment) - parseFloat(orgTaxableAmount)).toFixed(2)\r\n :\r\n \"-\"\r\n :\r\n (parseFloat(orgTaxableAmount) + parseFloat(taxAmount)) < parseFloat(totalDepositPayment) ?\r\n (parseFloat(totalDepositPayment) - (parseFloat(orgTaxableAmount) + parseFloat(taxAmount))).toFixed(2)\r\n :\r\n \"-\"\r\n }\r\n \r\n
    \r\n {/* \r\n Cancel Reservation\r\n */}\r\n
    \r\n
    \r\n handleCancelReservationOnClick(item)}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {\r\n showPostTransPopup ?\r\n {\r\n setShowPostTransPopup(false)\r\n }}\r\n >\r\n :\r\n null\r\n }\r\n \r\n )\r\n};","export default \"data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABQAAD/4QMvaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzE0NSA3OS4xNjM0OTksIDIwMTgvMDgvMTMtMTY6NDA6MjIgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxMTNFQTBCNTNBQTgxMUVCQUFCM0FGMUQ4NUI2MEFCRCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxMTNFQTBCNjNBQTgxMUVCQUFCM0FGMUQ4NUI2MEFCRCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjExM0VBMEIzM0FBODExRUJBQUIzQUYxRDg1QjYwQUJEIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjExM0VBMEI0M0FBODExRUJBQUIzQUYxRDg1QjYwQUJEIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/+4ADkFkb2JlAGTAAAAAAf/bAIQAAgICAgICAgICAgMCAgID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\"","import React, { useState, useRef, useEffect } from \"react\";\r\nimport \"../assets/css/bootstrap-grid.css\";\r\nimport \"../assets/css/innkeyPMS.css\";\r\nimport styles from \"../assets/css/dropdown.css\";\r\nimport DownArrow from \"../assets/images/down-arrow.svg\";\r\nimport UpArrow from \"../assets/images/up-arrow.svg\";\r\nimport Tippy from \"@tippyjs/react\";\r\nimport \"tippy.js/dist/tippy.css\";\r\nimport { width } from \"@mui/system\";\r\n\r\nexport function InnDropdownTable(props) {\r\n\r\n const [isPageLoaded, setIsPageLoaded] = useState(true);\r\n\r\n const [isListOpen, setisListOpen] = useState(false);\r\n\r\n const [keyword, setkeyword] = useState(\"\");\r\n const [inputErrors, setinputErrors] = useState(false);\r\n const [errorMessage, seterrorMessage] = useState(false);\r\n const [errorString, seterrorString] = useState(\"\");\r\n const [selected, setselected] = useState(props.selectedSerNo);\r\n const [clientWidth, setclientWidth] = useState(0);\r\n\r\n\r\n\r\n //reference varible for searching field start\r\n const searchField = useRef(null);\r\n const btnRef = useRef(null);\r\n\r\n //For Open Close Dropdown start\r\n const toggleList = () => {\r\n setisListOpen(true);\r\n setkeyword(\"\");\r\n //for search functionality toggle event\r\n if (isListOpen && searchField.current) {\r\n searchField.current.focus();\r\n setkeyword(\"\");\r\n }\r\n if (isListOpen == false) {\r\n setclientWidth(btnRef.current.clientWidth);\r\n if (selected) {\r\n setTimeout(() => {\r\n const element = document.getElementsByClassName(\r\n `dd-scroll-list ${props.id}`\r\n );\r\n\r\n if (document.getElementById(selected) != null) {\r\n element[0].scrollTo({\r\n top: document.getElementById(selected).offsetTop - 100,\r\n behavior: \"auto\",\r\n });\r\n }\r\n }, 0);\r\n }\r\n }\r\n };\r\n //For Open Close Dropdown End\r\n\r\n //For Display ListItems Start\r\n const listItems = () => {\r\n let tempList = [...props.data];\r\n\r\n if (keyword.length) {\r\n //check the keyword is match to key or not\r\n tempList = props.data.filter((item) =>\r\n item.value.toLowerCase().includes(keyword.toLowerCase())\r\n );\r\n }\r\n\r\n if (tempList.length > 0) {\r\n return tempList.map((item) => (\r\n
    \r\n {/* \r\n selectItem(item, e)}\r\n >\r\n {item.value}\r\n \r\n */}\r\n \r\n
    \r\n\r\n ));\r\n }\r\n\r\n return (\r\n
    \r\n {props.searchable && props.searchable[1]}\r\n
    \r\n );\r\n };\r\n //For Display ListItems End\r\n\r\n //For TextBox Search Function start\r\n const filterList = (e) => {\r\n setkeyword(e.target.value.toLowerCase());\r\n };\r\n //For TextBox Search Function End\r\n\r\n //For Close Dropdown Start\r\n const close = () => {\r\n setisListOpen(false);\r\n };\r\n //For Close Dropdown End\r\n\r\n useEffect(() => {\r\n window.removeEventListener(\"click\", close);\r\n return () => {\r\n window.removeEventListener(\"click\", close);\r\n };\r\n }, [isListOpen]);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n if (isListOpen) {\r\n window.addEventListener(\"click\", close);\r\n } else {\r\n window.removeEventListener(\"click\", close);\r\n }\r\n }, 0);\r\n }, [isListOpen]);\r\n\r\n //For Display Selected Items\r\n const selectItem = (item, e) => {\r\n let foundItem;\r\n let tempList = [...props.data];\r\n if (item) {\r\n if (!item.key) {\r\n foundItem = tempList.find((i) => i.value == item.value);\r\n }\r\n setselected(item);\r\n\r\n console.log(\"is page loaded \", isPageLoaded);\r\n\r\n if (!isPageLoaded) {\r\n if (props.onChange != undefined) {\r\n props.onChange(item, e);\r\n close();\r\n }\r\n }\r\n\r\n if (item == null || item == undefined) {\r\n seterrorMessage(true);\r\n seterrorString(props.customError);\r\n setinputErrors(true);\r\n } else {\r\n seterrorMessage(false);\r\n seterrorString(\"\");\r\n setinputErrors(false);\r\n }\r\n }\r\n };\r\n\r\n const selectSingleItem = (item) => {\r\n let tempList = [...props.data];\r\n\r\n // comment by ketan on 24th nov 22 due to not using value as unique id\r\n // if (item && props.data) {\r\n // const selectedItem = tempList.find((i) => i.value == item);\r\n // selectItem(selectedItem);\r\n // }\r\n\r\n if (item && props.data && props.selectedSerNo) {\r\n const selectedItem = tempList.find((i) => i.key == props.selectedSerNo);\r\n selectItem(selectedItem);\r\n }\r\n\r\n // comment by ketan on 24th nov 22 due to not using select as a object \r\n // if (item && props.data && props.select) {\r\n // const selectedItem = tempList.find((i) => i == props.select);\r\n // selectItem(selectedItem);\r\n // }\r\n };\r\n\r\n //only one time call useeffect start\r\n useEffect(() => {\r\n\r\n // comment by ketan on 24th nov 22 due to not using select as a object \r\n // if (props.select) {\r\n // setselected(props.select);\r\n // } else {\r\n // setselected([]);\r\n // }\r\n // //for unique key\r\n if (props.selectedSerNo) {\r\n const obj = props.data.find((f) => f.key == selected);\r\n if (obj) {\r\n //setselected(props.selectedSerNo);\r\n setselected(obj);\r\n console.log('test 1' + obj);\r\n }\r\n } else {\r\n setselected([]);\r\n }\r\n\r\n // comment by ketan on 24th nov 22 due to not using select as a object \r\n // if (props.select) {\r\n // selectSingleItem(props.select);\r\n // }\r\n //for unique key\r\n if (props.selectedSerNo) {\r\n selectSingleItem(props.selectedSerNo);\r\n }\r\n setIsPageLoaded(false);\r\n }, []);\r\n //only one time call useeffect end\r\n\r\n //// comment by ketan on 24th nov 22 due to not using select as a object \r\n // useEffect(() => {\r\n // let tempList = [...props.data];\r\n // if (props.select != selected) {\r\n // const obj = tempList.find((f) => f == props.select);\r\n\r\n // if (obj) {\r\n // setselected(props.select);\r\n // }\r\n // }\r\n // }, [props.select]);\r\n\r\n useEffect(() => {\r\n let tempList = [...props.data];\r\n if (selected != undefined) {\r\n if (props.selectedSerNo != selected) {\r\n //const obj = props.headers.map((h) => tempList.find((f) => h.key == props.selectedSerNo));\r\n const obj = props.data.find((f) => f.key == props.selectedSerNo);\r\n if (obj) {\r\n setselected(props.selectedSerNo);\r\n }\r\n }\r\n }\r\n \r\n }, [props.selectedSerNo]);\r\n\r\n //for customerror useeffect start\r\n useEffect(() => {\r\n if (props.customError && props.customError.length > 0) {\r\n setinputErrors(true);\r\n seterrorMessage(true);\r\n seterrorString(props.customError);\r\n } else {\r\n setinputErrors(false);\r\n seterrorMessage(false);\r\n seterrorString(\"\");\r\n }\r\n }, [props.customError]);\r\n //for customerror useeffect end\r\n\r\n useEffect(() => {\r\n if (props.selectedSerNo != undefined) {\r\n let obj = props.data.find((f) => f.key == props.selectedSerNo);\r\n if (obj) {\r\n setselected(props.selectedSerNo);\r\n }\r\n } else {\r\n setselected([]);\r\n }\r\n }, [props.data]);\r\n\r\n return (\r\n \r\n {props.searchable && (\r\n e.stopPropagation()}\r\n onChange={(e) => filterList(e)}\r\n />\r\n )}\r\n \r\n {/* {listItems()} */}\r\n \r\n \r\n {\r\n props.headers.map((h) => ())\r\n }\r\n \r\n {\r\n props.data.map((d) => (\r\n {\r\n props.headers.map((h, index) => (props.headers == undefined ? (<>) : ( \r\n index === 0 ? (\r\n \r\n ) : (\r\n \r\n )\r\n )))}\r\n \r\n ))\r\n }\r\n
    {h.value}
    selectItem(d[h.key], e)} className={h.align == 'right' ? 'text-right' : 'text-left'}>{d[h.key]}{d[h.key]}
    \r\n \r\n \r\n )\r\n }\r\n // trigger=\"click\"\r\n arrow={false}\r\n allowHTML={true}\r\n interactive={true}\r\n appendTo={document.body}\r\n visible={isListOpen}\r\n placement=\"bottom-start\"\r\n >\r\n
    \r\n
    {props.label}
    \r\n
    \r\n \r\n \r\n {/* {selected ? selected.value : \"\"} */}\r\n {selected ? selected : \"\"}\r\n
    \r\n {isListOpen ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n
    \r\n {inputErrors == true && errorMessage == true ? (\r\n
    \r\n {errorString}\r\n
    \r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport ReactHTMLTableToExcel from 'react-html-table-to-excel';\r\nimport { InnActionButton, InnButtonTypeWithDropdown } from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport moment from \"moment\";\r\nexport function ReportPreviewLevelThree(props) {\r\n\r\n const history = useHistory();\r\n const currUser = useSelector(currentUser);\r\n const reactToExcelRef = useRef();\r\n const selectdata = [\r\n { key: \"Excel\", value: \"Excel\" },\r\n ];\r\n const optBtnData = [\r\n { key: \"Edit\", value: \"edt\" },\r\n { key: \"Delete\", value: \"del\" },\r\n ];\r\n\r\n const [date, setDate] = useState(new Date());\r\n const [isActive, setActive] = useState(false);\r\n const [colSpanVal, setColSpanVal] = useState(0);\r\n const [list, setList] = useState([]);\r\n const [reportObj, setReportObj] = useState({});\r\n const [columnList, setColumnList] = useState([]);\r\n const [groupingColumn, setGroupingColumn] = useState([]);\r\n const [groupingOneTotal, setGroupingOneTotal] = useState(false);\r\n const [groupingTwoTotal, setGroupingTwoTotal] = useState(true);\r\n const [groupingThreeTotal, setGroupingThreeTotal] = useState(false);\r\n const [grandTotal, setGrandTotal] = useState(false);\r\n const [previewObj, setPreviewObj] = useState({});\r\n\r\n useEffect(() => {\r\n const interval = setInterval(() => {\r\n setDate(new Date());\r\n }, 1000);\r\n return () => clearInterval(interval);\r\n }, []);\r\n\r\n useEffect(() => {\r\n let o = props.para;\r\n if (o != undefined) {\r\n console.log(o)\r\n setPreviewObj(o);\r\n setList(o.list);\r\n setReportObj(o.obj);\r\n setColumnList(o.columnList);\r\n setGroupingColumn(o.groupingColumn);\r\n setGroupingOneTotal(o.IsGroupingOneTotal);\r\n setGroupingTwoTotal(o.IsGroupingTwoTotal);\r\n setGroupingThreeTotal(o.IsGroupingThreeTotal);\r\n setGrandTotal(o.IsGrandTotal);\r\n console.log(\"ColunmnList>>>\", columnList);\r\n }\r\n // if (o.columnList?.length != 0) {\r\n // setColSpanVal(o.columnList.length)\r\n // }\r\n }, [props.para]);\r\n return (\r\n
    \r\n {\r\n props.IsSummarised ? null :\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Preview

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n }\r\n\r\n
    \r\n \r\n {\r\n props.IsSummarised ? null :\r\n \r\n
    \r\n {previewObj.propertyName}\r\n {previewObj.reportname}\r\n List: {previewObj.filterList}\r\n
    \r\n \r\n }\r\n\r\n \r\n
    \r\n \r\n \r\n \r\n {\r\n columnList && columnList.map(d => {\r\n return (\r\n\r\n \r\n\r\n )\r\n })\r\n }\r\n \r\n \r\n \r\n {\r\n groupingColumn && groupingColumn.map((x) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n\r\n {\r\n x.Grouping2 && x.Grouping2.map((z) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n {\r\n z.G1 && z.G1.map((y) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n {\r\n list[x.Grouping3][z.G2] && list[x.Grouping3][z.G2][y] && list[x.Grouping3][z.G2][y].map((d, index, arr) => {\r\n return (\r\n <>\r\n \r\n {\r\n columnList && columnList.map((b) => {\r\n return (\r\n groupingOneTotal && index == list[x.Grouping3][z.G2][y].length - 1 ?\r\n \r\n :\r\n \r\n )\r\n })\r\n }\r\n \r\n \r\n )\r\n })\r\n }\r\n\r\n \r\n )\r\n })\r\n }\r\n {\r\n groupingTwoTotal ?\r\n \r\n {\r\n columnList && columnList.map((d) => {\r\n return (\r\n <>\r\n {\r\n list[x.Grouping3] && list[x.Grouping3][z.G2][\"Total\"] ?\r\n \r\n :\r\n null\r\n }\r\n \r\n )\r\n })\r\n }\r\n\r\n \r\n\r\n :\r\n null\r\n }\r\n \r\n )\r\n })\r\n }\r\n\r\n {\r\n groupingThreeTotal ?\r\n \r\n {\r\n columnList && columnList.map((d) => {\r\n return (\r\n <>\r\n {\r\n list[x.Grouping3] && list[x.Grouping3][\"Total\"] ?\r\n \r\n :\r\n null\r\n }\r\n \r\n )\r\n })\r\n }\r\n\r\n \r\n\r\n :\r\n null\r\n }\r\n \r\n\r\n )\r\n })\r\n\r\n }\r\n {\r\n grandTotal ?\r\n \r\n {\r\n columnList && columnList.map((d) => {\r\n return (\r\n <>\r\n {\r\n list?.GrandTotal ?\r\n \r\n :\r\n null\r\n }\r\n \r\n )\r\n })\r\n }\r\n\r\n \r\n\r\n :\r\n null\r\n }\r\n \r\n\r\n {/* \r\n \r\n \r\n \r\n \r\n */}\r\n
    {d.key}
    {x.Grouping3}
    {z.G2}
    {y}
    {!isNaN(d[b.value]) && d[b.value] != null ? d[b.value].toFixed(3) : d[b.value]}
    {d[b.value]}
    {\r\n !isNaN(list[x.Grouping3][z.G2][\"Total\"][d.value]) && list[x.Grouping3][z.G2][\"Total\"][d.value] != null ? list[x.Grouping3][z.G2][\"Total\"][d.value].toFixed(3) : list[x.Grouping3][z.G2][\"Total\"][d.value]}\r\n
    {\r\n !isNaN(list[x.Grouping3][\"Total\"][d.value]) && list[x.Grouping3][\"Total\"][d.value] != null ? list[x.Grouping3][\"Total\"][d.value].toFixed(3) : list[x.Grouping3][\"Total\"][d.value]}\r\n
    {\r\n !isNaN(list.GrandTotal[d.value]) && list.GrandTotal[d.value] != null ? list.GrandTotal[d.value].toFixed(3) : list.GrandTotal[d.value]}\r\n
    Total:
    10,667.57
    \r\n
    \r\n \r\n {\r\n props.ShowDateTime\r\n ?\r\n \r\n [Date :{moment(date).format(\"DD MMM YYYY\")}]  \r\n [Time :{moment(date).format(\"HH:mm\")}]  \r\n [User :{currUser.UserID}]\r\n \r\n :\r\n <>\r\n }\r\n \r\n {\r\n props.IsSummarised ? null :\r\n
    \r\n \r\n
    \r\n }\r\n\r\n {\r\n props.IsSummarised ? null :\r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n {\r\n history.push({\r\n pathname: previewObj.goBackPath,\r\n state: {\r\n filterObj: reportObj,\r\n reportserno: previewObj.reportserno,\r\n reportname: previewObj.reportname\r\n }\r\n });\r\n }}>Back\r\n\r\n console.log(item, name)}\r\n >\r\n {\r\n if (item.key === 'Excel') {\r\n console.log(reactToExcelRef.current)\r\n reactToExcelRef.current.handleDownload();\r\n }\r\n console.log(item, name)\r\n }}\r\n >\r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n }\r\n\r\n
    \r\n
    \r\n )\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n useConfirm,\r\n InnModalPopup,\r\n InnTextarea,\r\n} from \"../../../../component\";\r\nimport {\r\n GetCashBookTransactionMaster,\r\n GetTransactionMaster,\r\n AddPostCashbookEntry,\r\n} from \"../../../../services/reservationService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nexport function RecieptPaymentModal(props) {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n console.log(currUser.CurrentModule,props.para.IsReceipt);\r\n //#region Local Variable\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n CashbookTransactionSerNo: 0,\r\n TransactionSerNo: 0,\r\n Amount: 0.0,\r\n ReceiptNo: \"\",\r\n Module: currUser.CurrentModule,\r\n IsReceipt: props.para.IsReceipt,\r\n Note: \"\",\r\n UserID: currUser.UserID,\r\n };\r\n const validationObj = {\r\n TransactionSerNo: 0,\r\n CashbookTransactionSerNo: 0,\r\n Amount: 0.0,\r\n };\r\n const [recieptPaymentObj, setRecieptPaymentObj] = useState(defaultObj);\r\n const [cashBookTransactionList, setCashBookTransactionList] = useState([]);\r\n const [transactionList, setTransactionList] = useState([]);\r\n const [cashBookTransactionValidataion, setCashBookTransactionValidation] =\r\n useState(validationObj);\r\n\r\n useEffect(() => {\r\n GetCashBookTransactionMaster(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo)\r\n ).then((resp) => {\r\n let temp = [{ key: \"SEL\", value: \"Select\" }];\r\n\r\n resp.data.forEach((element) => {\r\n temp.push({\r\n key: element.CashbookTransactionSerNo,\r\n value: element.Name,\r\n });\r\n });\r\n setCashBookTransactionList(temp);\r\n });\r\n\r\n GetTransactionMaster(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n \"P\",\r\n \"All\"\r\n ).then((d) => {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach((element) => {\r\n if(element.Name == \"By Cash\"){\r\n temp.push({ key: element.TransactionSerNo, value: element.Name });\r\n }\r\n });\r\n setTransactionList(temp);\r\n });\r\n }, []);\r\n\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (\r\n recieptPaymentObj.Amount === \"\" ||\r\n /\\s/g.test(recieptPaymentObj.Amount) ||\r\n isNaN(+recieptPaymentObj.Amount) ||\r\n recieptPaymentObj.Amount < 0\r\n ) {\r\n isValid = false;\r\n setCashBookTransactionValidation((prev) => ({\r\n ...prev,\r\n Amount: \"Enter the amount\",\r\n }));\r\n }\r\n if (\r\n recieptPaymentObj.CashbookTransactionSerNo === 0 ||\r\n /\\s/g.test(recieptPaymentObj.CashbookTransactionSerNo)\r\n ) {\r\n isValid = false;\r\n setCashBookTransactionValidation((prev) => ({\r\n ...prev,\r\n CashbookTransactionSerNo: \"Select the Petty Cash Transaction\",\r\n }));\r\n }\r\n if (\r\n recieptPaymentObj.TransactionSerNo === 0 ||\r\n /\\s/g.test(recieptPaymentObj.TransactionSerNo)\r\n ) {\r\n isValid = false;\r\n setCashBookTransactionValidation((prev) => ({\r\n ...prev,\r\n TransactionSerNo: \"Select the Mode of Payment\",\r\n }));\r\n }\r\n return isValid;\r\n };\r\n const handleOnApplyClick = () => {\r\n let IspageValid = isValidPage();\r\n console.log(recieptPaymentObj);\r\n if (IspageValid) {\r\n let apiObj = recieptPaymentObj;\r\n apiObj.Amount = recieptPaymentObj.Amount;\r\n apiObj.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n apiObj.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n console.log(\"HHh\", recieptPaymentObj);\r\n AddPostCashbookEntry(recieptPaymentObj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n setRecieptPaymentObj(apiObj);\r\n } else {\r\n alertFunction(\"Something Went Wrong\");\r\n }\r\n if (d.data.Code == \"200\") {\r\n props.Onclose(apiObj);\r\n }\r\n });\r\n } else {\r\n alertFunction(\"Field has an invalid entry. Please verify accordingly.\");\r\n }\r\n };\r\n return (\r\n {\r\n props.Onclose();\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n {recieptPaymentObj.IsReceipt == true ? (\r\n

    RECEIPT

    \r\n ) : (\r\n

    PAYMENT

    \r\n )}\r\n
    \r\n
    \r\n \r\n Apply\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setRecieptPaymentObj((prev) => ({\r\n ...prev,\r\n CashbookTransactionSerNo: item.key,\r\n }));\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n setRecieptPaymentObj((prev) => ({\r\n ...prev,\r\n TransactionSerNo: item.key,\r\n }));\r\n }}\r\n >\r\n
    \r\n {\r\n if (!isNaN(+v) && parseInt(v) >= 0) {\r\n setCashBookTransactionValidation((prev) => ({\r\n ...prev,\r\n Amount: \"\",\r\n }));\r\n setRecieptPaymentObj((prev) => ({\r\n ...prev,\r\n Amount: parseFloat(v),\r\n }));\r\n } else {\r\n setCashBookTransactionValidation((prev) => ({\r\n ...prev,\r\n Amount: \"Enter the amount\",\r\n }));\r\n setRecieptPaymentObj((prev) => ({ ...prev, Amount: v }));\r\n }\r\n }}\r\n >\r\n Amount\r\n \r\n {\r\n setRecieptPaymentObj((prev) => ({ ...prev, Note: v }));\r\n }}\r\n >\r\n Note\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnPlainButton,\r\n useConfirm,\r\n InnModalPopup,\r\n} from \"../../../../component\";\r\nimport moment from \"moment/moment\";\r\nimport { CalculateEncashmentTax } from \"../../../../services/reservationService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nexport function EncashmentDenominationModal(props) {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const defaultObj = {\r\n Denomi: 0,\r\n Qty: 0,\r\n TotalDenomi: 0,\r\n CurrencyID: props.para.CurrencyID,\r\n CurrencyRate: props.para.CurrencyRate,\r\n TotalAmount: 0.0,\r\n NetAount: 0.0,\r\n id: 1,\r\n ValidDenomi: \"\",\r\n ValidQty: \"\",\r\n };\r\n const [denominationObj, setDenominationObj] = useState(defaultObj);\r\n const [quantity, setQuantity] = useState(0);\r\n const [Amount, setAmount] = useState(0);\r\n const [taxAmount, setTaxAmount] = useState(0);\r\n const [netAmount, setNetAmount] = useState([]);\r\n const [array, setArray] = useState([defaultObj]);\r\n const [taxPopup, setTaxPopup] = useState(false);\r\n\r\n // console.log(\"Prop\", props.para);\r\n //Add RoW\r\n\r\n const denominationAdd = () => {\r\n let temp = JSON.parse(JSON.stringify(array));\r\n let obj = defaultObj;\r\n obj[\"id\"] = array.length + 1;\r\n temp.push(obj);\r\n setArray(temp);\r\n };\r\n\r\n //tax\r\n const fillTaxCalculation = () => {\r\n let isValid = true;\r\n if (\r\n array.find(\r\n (x) => x.ValidDenomi == \"Invalid Input\" || x.ValidQty == \"Invalid Input\"\r\n )\r\n ) {\r\n isValid = false;\r\n } else {\r\n isValid = true;\r\n }\r\n\r\n if (isValid) {\r\n if (Amount !== 0 && Amount !== undefined) {\r\n CalculateEncashmentTax(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n Amount\r\n ).then((d) => {\r\n setNetAmount(d.data);\r\n //console.log(\"Tax Data\", d.data);\r\n\r\n let netAmount = 0;\r\n let Amt = 0;\r\n d.data.forEach((x) => {\r\n Amt = Amt + x.ChargeAmt;\r\n netAmount = Amount - Amt;\r\n });\r\n setTaxAmount(netAmount);\r\n\r\n setDenominationObj((prev) => ({\r\n ...prev,\r\n NetAount: netAmount,\r\n }));\r\n });\r\n } else {\r\n alertFunction(\"Invalid Denomination Amount\");\r\n }\r\n }\r\n else {\r\n alertFunction(\"Invalid Tax Calculation\")\r\n }\r\n };\r\n //console.log(\"denObj\", denominationObj);\r\n\r\n useEffect(() => {\r\n //console.log(\"Array\", array);\r\n let sum = 0;\r\n array.forEach((x) => {\r\n sum = sum + x.TotalDenomi;\r\n });\r\n setQuantity(sum);\r\n setDenominationObj((prev) => ({\r\n ...prev,\r\n TotalDenomi: sum,\r\n }));\r\n\r\n let Amt = 0;\r\n array.forEach((x) => {\r\n Amt = Amt + x.TotalAmount;\r\n });\r\n setAmount(Amt);\r\n setDenominationObj((prev) => ({\r\n ...prev,\r\n TotalAmount: Amt,\r\n }));\r\n }, [array]);\r\n\r\n useEffect(() => {\r\n if (props.values != undefined) {\r\n if (props.values.ChargeList.length > 0) {\r\n setArray(props.values.ChargeList);\r\n }\r\n if (props.values.TaxList.length > 0) {\r\n setNetAmount(props.values.TaxList);\r\n }\r\n setQuantity(props.values.TotalAmount);\r\n setAmount(props.values.DominiAmount);\r\n setTaxAmount(props.values.NetAmount);\r\n }\r\n }, [props.values]);\r\n //#endregion\r\n\r\n const handleOnApplyClick = () => {\r\n let netAmt = 0;\r\n let tempApplyObj = {};\r\n let isValid = true;\r\n if (\r\n array.find(\r\n (x) => x.ValidDenomi == \"Invalid Input\" || x.ValidQty == \"Invalid Input\"\r\n )\r\n ) {\r\n isValid = false;\r\n } else {\r\n isValid = true;\r\n }\r\n if (isValid) {\r\n if (Amount !== 0 && Amount !== undefined) {\r\n CalculateEncashmentTax(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n Amount\r\n ).then((d) => {\r\n setNetAmount(d.data);\r\n \r\n let Amt = 0;\r\n d.data.forEach((x) => {\r\n Amt = Amt + x.ChargeAmt;\r\n netAmt = Amount - Amt;\r\n console.log(netAmt)\r\n\r\n tempApplyObj = {\r\n ChargeList: array,\r\n TaxList: netAmount,\r\n TotalAmount: quantity,\r\n DominiAmount: Amount,\r\n NetAmount: netAmt,\r\n };\r\n });\r\n setTaxAmount(netAmt);\r\n\r\n setDenominationObj((prev) => ({\r\n ...prev,\r\n NetAount: netAmt,\r\n }));\r\n });\r\n } else {\r\n alertFunction(\"Invalid Denomination Amount\");\r\n }\r\n }\r\n else {\r\n alertFunction(\"Invalid Tax Calculation\")\r\n }\r\n\r\n setTimeout(() => {\r\n if (netAmt != 0) {\r\n props.Onclose(tempApplyObj);\r\n }\r\n }, 200);\r\n\r\n \r\n };\r\n\r\n\r\n return (\r\n {\r\n props.Onclose(props.values);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Currency Denominations

    \r\n
    \r\n
    \r\n \r\n Tax Calculation\r\n \r\n\r\n \r\n Add Denominations\r\n \r\n\r\n \r\n Apply\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {array.map((d, index) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n
    Denomination Nos. Qty Currency RateAmount
    \r\n {\r\n let temp = JSON.parse(JSON.stringify(array));\r\n temp.forEach((x) => {\r\n if (x.id === d.id) {\r\n setTaxPopup(true);\r\n if (!isNaN(+v) && parseInt(v) >= 0) {\r\n x.Denomi = v;\r\n x.ValidDenomi = \"\";\r\n } else {\r\n x.ValidDenomi = \"Invalid Input\";\r\n }\r\n }\r\n });\r\n setArray(temp);\r\n }}\r\n value={d.Denomi}\r\n >\r\n \r\n {\r\n let temp = JSON.parse(JSON.stringify(array));\r\n temp.forEach((x) => {\r\n if (x.id === d.id) {\r\n if (!isNaN(+v) && parseInt(v) >= 0) {\r\n x.Qty = v;\r\n x.ValidQty = \"\";\r\n } else {\r\n x.ValidQty = \"Invalid Input\";\r\n }\r\n }\r\n });\r\n setArray(temp);\r\n }}\r\n value={d.Qty}\r\n >\r\n {(d.TotalDenomi = d.Qty * d.Denomi)}{d.CurrencyRate}\r\n {(d.TotalAmount =\r\n d.CurrencyRate * d.TotalDenomi).toFixed(2)}\r\n \r\n {\r\n if (array.length > 1) {\r\n setArray(array.filter((x) => x.id !== d.id));\r\n }\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n {/* {array.map((d, index) => {\r\n return ( */}\r\n
    \r\n
    \r\n
    \r\n
    Calculate Tax
    \r\n
    \r\n
    \r\n
    {quantity.toFixed(2)}
    \r\n
    {Amount.toFixed(2)}
    \r\n
    \r\n
    \r\n \r\n \r\n {netAmount.map((d, index) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n
    \r\n {d.TransType == \"D\" ? \"Less\" : \"Add\"} :{\" \"}\r\n {d.TransactionName} @ {d.Percentage.toFixed(2)}%\r\n {d.ChargeAmt}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Net Amount :
    \r\n
    {taxAmount.toFixed(2)}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n useConfirm,\r\n InnModalPopup,\r\n InnTextarea,\r\n} from \"../../../../component\";\r\nimport moment from \"moment/moment\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { validateReservationByRoomNo } from \"../../../../services/housekeepingServiceMaster\";\r\nimport {\r\n GetReservationAccompanyGuest,\r\n InsertEncashment,\r\n GetGuestPassportIdentification,\r\n GetEncashmentCurrencyRate,\r\n} from \"../../../../services/reservationService\";\r\nimport { GetPropertyInvoiceDetails } from \"../../../../services/generalService\";\r\nimport { EncashmentDenominationModal } from \"./EncashmentDenominationModalPopup\";\r\nexport function EncashmentModal(props) {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n IdentificationNo: 0,\r\n RoomSerNo: 0,\r\n GuestProfileSerNo: 0,\r\n ReservationSerNo: 0,\r\n DateofIssue: \"\",\r\n DateofExpiry: \"\",\r\n Nationality: \"\",\r\n IssuingCountrySerNo: \"\",\r\n PlaceofIssue: \"\",\r\n //--------------\r\n SerNo: 0,\r\n SubSerNo: 0,\r\n CurrencyID: 0,\r\n CurrencyRate: 0,\r\n CashbookSerNo1: 0,\r\n CashbookSerNo2: 0,\r\n EntryDatetime: \"\",\r\n UserID: currUser.UserID,\r\n };\r\n const defaultValidationObj = {\r\n RoomNo: \"\",\r\n GuestName: \"\",\r\n DateofIssue: \"\",\r\n DateofExpiry: \"\",\r\n Nationality: \"\",\r\n IdentificationNo: 0,\r\n NetAmount: 0,\r\n DominiAmount:0\r\n };\r\n const [roomNo, setRoomNo] = useState(\"\");\r\n const [guestList, setGuestList] = useState([]);\r\n const [propertyIDObj, setPropertyIDObj] = useState({ CountrySerNo: \"\" });\r\n const [encashmentObj, setEncashmentObj] = useState(defaultObj);\r\n const [currencyRateData, setCurrencyRateData] = useState([]);\r\n const [currencyData, setCurrencyData] = useState([]);\r\n const [encashmentValidation, setEncashmentValidation] =\r\n useState(defaultValidationObj);\r\n const [showCurrencyDenominationsPopup, setShowCurrencyDenominationsPopup] =\r\n useState(false);\r\n console.log(\"Props<\", props.para);\r\n const [prevValues, setPrevValues] = useState({\r\n ChargeList: [],\r\n TaxList: [],\r\n TotalAmount: 0,\r\n DominiAmount: 0,\r\n NetAmount: 0,\r\n });\r\n\r\n\r\n const clearValidation = () => {\r\n setEncashmentValidation(defaultValidationObj);\r\n}\r\n const isValidPage = () => {\r\n let isvalid = true;\r\n if (encashmentObj.RoomSerNo === 0) {\r\n setEncashmentValidation((prev) => ({\r\n ...prev,\r\n RoomNo: \"Please enter valid Room Number.\",\r\n }));\r\n isvalid = false;\r\n }\r\n if (encashmentObj.GuestProfileSerNo === 0) {\r\n setEncashmentValidation((prev) => ({\r\n ...prev,\r\n GuestName: \"Please select GuestName.\",\r\n }));\r\n isvalid = false;\r\n }\r\n if (\r\n encashmentObj.DateofExpiry == \"\" ||\r\n encashmentObj.DateofExpiry == undefined\r\n ) {\r\n setEncashmentValidation((prev) => ({\r\n ...prev,\r\n DateofExpiry: \"Invalid Input.\",\r\n }));\r\n isvalid = false;\r\n }\r\n if (\r\n encashmentObj.DateofIssue == \"\" ||\r\n encashmentObj.DateofIssue == undefined\r\n ) {\r\n setEncashmentValidation((prev) => ({\r\n ...prev,\r\n DateofIssue: \"Invalid Input.\",\r\n }));\r\n isvalid = false;\r\n }\r\n if (\r\n encashmentObj.IdentificationNo == \"\" ||\r\n encashmentObj.IdentificationNo == undefined\r\n ) {\r\n setEncashmentValidation((prev) => ({\r\n ...prev,\r\n IdentificationNo: \"Invalid Input.\",\r\n }));\r\n isvalid = false;\r\n }\r\n if (\r\n encashmentObj.NationalityCountrySerNo == \"\" ||\r\n encashmentObj.NationalityCountrySerNo == undefined\r\n ) {\r\n setEncashmentValidation((prev) => ({\r\n ...prev,\r\n Nationality: \"Invalid Country.\",\r\n }));\r\n isvalid = false;\r\n }\r\n if (prevValues.NetAmount == 0 || prevValues.NetAmount == undefined) {\r\n setEncashmentValidation((prev) => ({\r\n ...prev,\r\n NetAmount : \"Invalid Input.\",\r\n }));\r\n isvalid = false;\r\n }\r\n if (prevValues.DominiAmount == 0 || prevValues.DominiAmount == undefined) {\r\n setEncashmentValidation((prev) => ({\r\n ...prev,\r\n DominiAmount : \"Invalid Input.\",\r\n }));\r\n isvalid = false;\r\n }\r\n return isvalid;\r\n };\r\n console.log(\"OBJData >>\", encashmentObj);\r\n const clearDetails = () => {\r\n setGuestList([{ key: 0, value: \"Select\" }]);\r\n };\r\n const fillGuestList = (ReservationSerNo) => {\r\n GetReservationAccompanyGuest(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n ReservationSerNo\r\n ).then((d) => {\r\n if (d.status === 200) {\r\n console.log(\"Guest list\", d.data);\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach((x) => {\r\n temp.push({ key: x.GuestProfileSerNo, value: x.GuestName });\r\n });\r\n setGuestList(temp);\r\n console.log(temp);\r\n }\r\n });\r\n };\r\n console.log(\"objProps\", prevValues);\r\n\r\n const fillGuestProfileIdentification = () => {\r\n if (\r\n encashmentObj.GuestProfileSerNo !== 0 &&\r\n encashmentObj.GuestProfileSerNo !== undefined\r\n ) {\r\n GetGuestPassportIdentification(\r\n parseInt(currUser.ClientSerNo),\r\n encashmentObj.GuestProfileSerNo\r\n ).then((d) => {\r\n console.log(\"data\", d.data);\r\n setEncashmentObj((prev) => ({\r\n ...prev,\r\n DateofExpiry: d.data.DateofExpiry,\r\n DateofIssue: d.data.DateofIssue,\r\n IdentificationNo: d.data.IdentificationNo,\r\n IssuingCountrySerNo: d.data.IssuingCountrySerNo,\r\n Nationality: d.data.Nationality,\r\n PlaceofIssue: d.data.PlaceofIssue,\r\n ProfileSerNo: d.data.ProfileSerNo,\r\n NationalityCountrySerNo: d.data.NationalityCountrySerNo,\r\n }));\r\n });\r\n }\r\n };\r\n\r\n const fillEncashmentCurrencyRate = () => {\r\n GetEncashmentCurrencyRate(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo)\r\n ).then((d) => {\r\n let temp = [];\r\n d.data.forEach((d) => {\r\n temp.push({ key: d.CurrencyID, value: d.CurrencyName });\r\n });\r\n setCurrencyRateData(temp);\r\n\r\n setCurrencyData(d.data);\r\n });\r\n };\r\n\r\n const fillEncashment = () => {\r\n if (roomNo.trim() === \"\") {\r\n console.log(\"clear all data that need to be cleared\");\r\n clearDetails();\r\n } else {\r\n if (/^[A-Za-z0-9+$]/.test(roomNo)) {\r\n validateReservationByRoomNo(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n roomNo\r\n )\r\n .then((d) => {\r\n console.log(\"HHH\", d.data);\r\n if (d.data.ReservationSerNo === -1) {\r\n alertFunction(\"Room No. does not exist.\");\r\n clearDetails();\r\n } else if (d.data.ReservationSerNo === 0) {\r\n alertFunction(\"No room reservation found with this room no.\");\r\n clearDetails();\r\n } else {\r\n setEncashmentObj((prev) => ({\r\n ...prev,\r\n ReservationSerNo: parseInt(d.data.ReservationSerNo),\r\n RoomSerNo: d.data.RoomSerNo,\r\n }));\r\n\r\n GetPropertyInvoiceDetails(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo)\r\n ).then((o) => {\r\n setPropertyIDObj((prev) => ({\r\n ...prev,\r\n CountrySerNo: o.data.CountrySerNo,\r\n }));\r\n });\r\n fillGuestList(d.data.ReservationSerNo);\r\n }\r\n })\r\n .catch(() => {\r\n clearDetails();\r\n });\r\n } else {\r\n alertFunction(\"Room No. does not exist.\");\r\n }\r\n }\r\n };\r\n\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n let Module = currUser.CurrentModule;\r\n if (Module == \"F\") {\r\n Module = \"R\";\r\n }\r\n\r\n let apiObj = {\r\n ClientSerNo: encashmentObj.ClientSerNo,\r\n PropertySerNo: encashmentObj.PropertySerNo,\r\n GuestProfileSerNo: encashmentObj.GuestProfileSerNo,\r\n ReservationSerNo: encashmentObj.ReservationSerNo,\r\n SerNo: encashmentObj.SerNo,\r\n CurrencyID: encashmentObj.CurrencyID,\r\n CashbookSerNo1: encashmentObj.CashbookSerNo1,\r\n CashbookSerNo2: encashmentObj.CashbookSerNo2,\r\n EntryDatetime: encashmentObj.EntryDatetime,\r\n UserID: encashmentObj.UserID,\r\n SubSerNo: encashmentObj.SubSerNo,\r\n Amount: prevValues.TotalAmount,\r\n NetAmount: prevValues.DominiAmount,\r\n CashbookTransactionSerNo: encashmentObj.CashbookTransactionSerNo,\r\n TransactionSerNo: encashmentObj.TransactionSerNo,\r\n Module: Module,\r\n ReceiptNo: encashmentObj.ReceiptNo,\r\n IsReceipt: encashmentObj.IsReceipt,\r\n Note: encashmentObj.Note,\r\n ChargeList: prevValues.ChargeList,\r\n TaxList: prevValues.TaxList,\r\n SubSerNo: 0,\r\n AssoTransactionSerNo: 0,\r\n };\r\n if (encashmentObj.NationalityCountrySerNo == propertyIDObj.CountrySerNo) {\r\n alertFunction(\"Encashment Only Allow Diffrent Nationality\");\r\n } else {\r\n if (IsPageValid) {\r\n console.log(\"apiObj >>\", apiObj);\r\n InsertEncashment(apiObj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n apiObj.SerNo = parseInt(d.data.ReturnValue);\r\n } else {\r\n alertFunction(\"Something Went Wrong\");\r\n }\r\n if (d.data.Code == \"200\") {\r\n props.Onclose(apiObj);\r\n }\r\n });\r\n } else {\r\n alertFunction(\r\n \"One Or More Field has an invalid entry. Please verify accordingly.\"\r\n );\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n fillGuestProfileIdentification();\r\n fillEncashmentCurrencyRate();\r\n }, [encashmentObj.GuestProfileSerNo]);\r\n\r\n useEffect(() => {\r\n fillEncashment();\r\n }, []);\r\n\r\n return (\r\n props.Onclose()}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Encashment

    \r\n
    \r\n
    \r\n \r\n Apply\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setRoomNo(g);\r\n setEncashmentValidation((prev) => ({ ...prev, RoomNo: \"\" }));\r\n }}\r\n onBlur={fillEncashment}\r\n >\r\n Room No.\r\n \r\n
    \r\n
    \r\n {\r\n setEncashmentObj((prev) => ({\r\n ...prev,\r\n GuestProfileSerNo: item.key,\r\n }));\r\n setEncashmentValidation((prev) => ({\r\n ...prev,\r\n GuestName: \"\",\r\n }));\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n \r\n Nationality\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setEncashmentObj((prev) => ({\r\n ...prev,\r\n CurrencyID: item.key,\r\n }));\r\n\r\n let CurrRate = 0;\r\n CurrRate = currencyData.find(\r\n (x) => x.CurrencyID == item.key\r\n )?.CurrencyRate;\r\n console.log(\"Curr\", CurrRate);\r\n setEncashmentObj((prev) => ({\r\n ...prev,\r\n CurrencyRate: CurrRate,\r\n }));\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n x.CurrencyID == encashmentObj.CurrencyID\r\n )?.CurrencyRate\r\n }\r\n >\r\n Currency Rate\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Passport No.\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Issue Date\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Expiry Date\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Place of Issue\r\n \r\n
    \r\n
    \r\n {\r\n clearValidation();\r\n encashmentObj.CurrencyID !== 0\r\n ? setShowCurrencyDenominationsPopup(\r\n !showCurrencyDenominationsPopup\r\n )\r\n : setShowCurrencyDenominationsPopup(\r\n showCurrencyDenominationsPopup,\r\n alertFunction(\"Please Select Currency.\")\r\n );\r\n }}\r\n >\r\n Total Foreign Currency\r\n \r\n
    \r\n
    \r\n \r\n Equivalent Local Currency\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Amount Payable\r\n
    \r\n
    \r\n
    \r\n
    \r\n {prevValues.NetAmount?.toFixed(2)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {showCurrencyDenominationsPopup ? (\r\n {\r\n console.log(\"V\", v);\r\n setShowCurrencyDenominationsPopup(false);\r\n setPrevValues(v);\r\n }}\r\n para={{\r\n CurrencyID: encashmentObj.CurrencyID,\r\n CurrencyRate: encashmentObj.CurrencyRate,\r\n }}\r\n values={prevValues}\r\n >\r\n ) : null}\r\n \r\n );\r\n}\r\n","//#region integer price/amount in the word\r\n// export function price_in_words(price) {\r\n// var sglDigit = [\"Zero\", \"One\", \"Two\", \"Three\", \"Four\", \"Five\", \"Six\", \"Seven\", \"Eight\", \"Nine\"],\r\n// dblDigit = [\"Ten\", \"Eleven\", \"Twelve\", \"Thirteen\", \"Fourteen\", \"Fifteen\", \"Sixteen\", \"Seventeen\", \"Eighteen\", \"Nineteen\"],\r\n// tensPlace = [\"\", \"Ten\", \"Twenty\", \"Thirty\", \"Forty\", \"Fifty\", \"Sixty\", \"Seventy\", \"Eighty\", \"Ninety\"],\r\n// handle_tens = function (dgt, prevDgt) {\r\n// return 0 == dgt ? \"\" : \" \" + (1 == dgt ? dblDigit[prevDgt] : tensPlace[dgt]);\r\n// },\r\n// handle_utlc = function (dgt, nxtDgt, denom) {\r\n// return (0 != dgt && 1 != nxtDgt ? \" \" + sglDigit[dgt] : \"\") + (0 != nxtDgt || dgt > 0 ? \" \" + denom : \"\");\r\n// };\r\n\r\n// var str = \"\",\r\n// digitIdx = 0,\r\n// digit = 0,\r\n// nxtDigit = 0,\r\n// words = [];\r\n// if (price += \"\", isNaN(parseInt(price))) str = \"\";\r\n// else if (parseInt(price) > 0 && price.length <= 10) {\r\n// for (digitIdx = price.length - 1; digitIdx >= 0; digitIdx--) switch (digit = price[digitIdx] - 0, nxtDigit = digitIdx > 0 ? price[digitIdx - 1] - 0 : 0, price.length - digitIdx - 1) {\r\n// case 0:\r\n// words.push(handle_utlc(digit, nxtDigit, \"\"));\r\n// break;\r\n// case 1:\r\n// words.push(handle_tens(digit, price[digitIdx + 1]));\r\n// break;\r\n// case 2:\r\n// words.push(0 != digit ? \" \" + sglDigit[digit] + \" Hundred\" + (0 != price[digitIdx + 1] && 0 != price[digitIdx + 2] ? \" and\" : \"\") : \"\");\r\n// break;\r\n// case 3:\r\n// words.push(handle_utlc(digit, nxtDigit, \"Thousand\"));\r\n// break;\r\n// case 4:\r\n// words.push(handle_tens(digit, price[digitIdx + 1]));\r\n// break;\r\n// case 5:\r\n// words.push(handle_utlc(digit, nxtDigit, \"Lakh\"));\r\n// break;\r\n// case 6:\r\n// words.push(handle_tens(digit, price[digitIdx + 1]));\r\n// break;\r\n// case 7:\r\n// words.push(handle_utlc(digit, nxtDigit, \"Crore\"));\r\n// break;\r\n// case 8:\r\n// words.push(handle_tens(digit, price[digitIdx + 1]));\r\n// break;\r\n// case 9:\r\n// words.push(0 != digit ? \" \" + sglDigit[digit] + \" Hundred\" + (0 != price[digitIdx + 1] || 0 != price[digitIdx + 2] ? \" and\" : \" Crore\") : \"\");\r\n// }\r\n// str = words.reverse().join(\"\");\r\n// } else str = \"\";\r\n// return str;\r\n// }\r\n//#endregion\r\n\r\n//#region floating price/amount in the word\r\nexport function price_in_words(value) {\r\n var fraction = Math.round(frac(value)*100);\r\n var f_text = \"\";\r\n\r\n if(fraction > 0) {\r\n f_text = \"And \"+convert_number(fraction)+\" Paise\";\r\n }\r\n\r\n return convert_number(value)+\" Rupee \"+f_text+\" Only\";\r\n}\r\n\r\nfunction frac(f) {\r\n return f % 1;\r\n}\r\n\r\nfunction convert_number(number)\r\n{\r\n if ((number < 0) || (number > 999999999)) \r\n { \r\n return \"Number out of range!\";\r\n }\r\n var Gn = Math.floor(number / 10000000); \r\n number -= Gn * 10000000; \r\n var kn = Math.floor(number / 100000); \r\n number -= kn * 100000; \r\n var Hn = Math.floor(number / 1000); \r\n number -= Hn * 1000; \r\n var Dn = Math.floor(number / 100); \r\n number = number % 100; \r\n var tn= Math.floor(number / 10); \r\n var one=Math.floor(number % 10); \r\n var res = \"\"; \r\n\r\n if (Gn>0) \r\n { \r\n res += (convert_number(Gn) + \" Crore\"); \r\n } \r\n if (kn>0) \r\n { \r\n res += (((res==\"\") ? \"\" : \" \") + \r\n convert_number(kn) + \" Lakh\"); \r\n } \r\n if (Hn>0) \r\n { \r\n res += (((res==\"\") ? \"\" : \" \") +\r\n convert_number(Hn) + \" Thousand\"); \r\n } \r\n\r\n if (Dn) \r\n { \r\n res += (((res==\"\") ? \"\" : \" \") + \r\n convert_number(Dn) + \" Hundred\"); \r\n } \r\n\r\n var ones = Array(\"\", \"One\", \"Two\", \"Three\", \"Four\", \"Five\", \"Six\",\"Seven\", \"Eight\", \"Nine\", \"Ten\", \"Eleven\", \"Twelve\", \"Thirteen\",\"Fourteen\", \"Fifteen\", \"Sixteen\", \"Seventeen\", \"Eighteen\",\"Nineteen\"); \r\n var tens = Array(\"\", \"\", \"Twenty\", \"Thirty\", \"Fourty\", \"Fifty\", \"Sixty\",\"Seventy\", \"Eighty\", \"Ninety\"); \r\n\r\n if (tn>0 || one>0) \r\n { \r\n if (!(res==\"\")) \r\n { \r\n res += \" And \"; \r\n } \r\n if (tn < 2) \r\n { \r\n res += ones[tn * 10 + one]; \r\n } \r\n else \r\n { \r\n\r\n res += tens[tn];\r\n if (one>0) \r\n { \r\n res += (\"-\" + ones[one]); \r\n } \r\n } \r\n }\r\n\r\n if (res==\"\")\r\n { \r\n res = \"Zero\"; \r\n } \r\n return res;\r\n}\r\n//#endregion","import React, { useState, useEffect, useRef } from 'react'\r\nimport innkeypmslogo from \"../../../../assets/images/innkeypmslogo.svg\"\r\nimport theOrchidLogo from '../../../../assets/images/the_orchid_logo.svg'\r\nimport { GetReceiptDetails } from '../../../../services/reservationService'\r\nimport { GetPropertyInvoiceDetails } from '../../../../services/generalService'\r\nimport { useSelector } from 'react-redux'\r\nimport { currentUser } from '../../../../reducer/authSlice'\r\nimport ReactToPrint from 'react-to-print'\r\nimport Moment from 'moment'\r\nimport { price_in_words } from '../../../../utils/helpers/generalMethod'\r\n\r\nexport default function CashReceipt(props) {\r\n let currUser = useSelector(currentUser);\r\n const myRef = useRef();\r\n const printRef = useRef();\r\n\r\n //#region decalring state variable\r\n const [propertyDetails, setPropertyDetails] = useState([]);\r\n const [receiptData, setReceiptData] = useState([]);\r\n //#endregion\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n if (props.IsPrint) {\r\n fillReceiptDetails()\r\n }\r\n }, [props.IsPrint])\r\n\r\n useEffect(() => {\r\n fillPropertyInvoiceDetails();\r\n }, [])\r\n //#endregion\r\n\r\n //#region function receipt data\r\n const fillPropertyInvoiceDetails = () => {\r\n GetPropertyInvoiceDetails(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n if (d.data != undefined) {\r\n setPropertyDetails(d.data);\r\n }\r\n })\r\n }\r\n\r\n const fillReceiptDetails = () => {\r\n GetReceiptDetails(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(props.para)).then(d => {\r\n if (d.data != undefined) {\r\n setReceiptData(d.data);\r\n }\r\n if (printRef.current) {\r\n printRef.current.handlePrint();\r\n }\r\n if (props.OnPrint != undefined) {\r\n props.OnPrint();\r\n }\r\n })\r\n }\r\n //#endregion \r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n \r\n \r\n
    \r\n

    {propertyDetails?.PropertyName}   ( {propertyDetails?.StatutoryName} )

    \r\n\r\n
    \r\n {propertyDetails?.Address1 + ', ' + propertyDetails?.Address2},
    {propertyDetails?.CityName} - {propertyDetails?.Postcode}\r\n {propertyDetails?.StateName}, {propertyDetails?.CountryName},
    \r\n Tel : {propertyDetails?.Telephone}\r\n Email: {propertyDetails?.Email}Web:\r\n {propertyDetails?.Website}\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    State Code : {propertyDetails?.StateCode + ' ' + propertyDetails?.StateName}
    \r\n
    Pan No : {propertyDetails?.PANNo}
    \r\n
    \r\n
    GSTIN : {propertyDetails?.GSTNo}
    \r\n
    TAN No :
    \r\n
    \r\n
    FSSAI No :
    \r\n
    CIN No :
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    RECEIPT
    \r\n
    \r\n
    \r\n Receipt Date : {Moment(receiptData[0]?.ReceiptDate).format('DD MMM. YYYY')}\r\n
    \r\n
    \r\n Receipt No : {receiptData[0]?.ReceiptNo}\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    ParticularBooking No.Document NoAmount
    {receiptData[0]?.Particular} { }{receiptData[0]?.ReceiptNo}{parseFloat(receiptData[0]?.Amount).toFixed(2)}
    \r\n
    {/* Remark : Some text will be show here. */}
    \r\n
    \r\n {/*
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    Mr. Ashok Sharma
    \r\n
    105, Shree Ganesh, Near Iscon,
    Ahmedabad, Gujarat (India)
    \r\n
    M: 91 9876543210 E-mail: ashoksharma@gmail.com\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Bill To Tata Company
    \r\n
    Tata Building, Gandhi Nagar,
    Gujarat 382421 (India)
    \r\n
    M: 91 9876543210 E-mail: ashoksharma@gmail.com\r\n
    \r\n
    State Code : 18 Gujarat GSTIN: 56acbin56ahmg\r\n
    \r\n
    \r\n
    \r\n
    */}\r\n
    \r\n
    \r\n \r\n \r\n \r\n\r\n \r\n \r\n
    \r\n
    ₹ {parseFloat(receiptData[0]?.Amount).toFixed(2)}
    \r\n
    {price_in_words(parseFloat(receiptData[0]?.Amount).toFixed(2))}
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    Authorized Signature
    \r\n
    For, {propertyDetails?.PropertyName}
    \r\n
    {propertyDetails?.StatutoryName}.
    \r\n
    \r\n
    Guest Signature
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n Date: {Moment(receiptData[0]?.Date).format('DD MMM YYYY')}\r\n   User name: {receiptData[0]?.UserID}\r\n \r\n Powered by \r\n
    \r\n
    \r\n\r\n
    \r\n }\r\n content={() => myRef.current}\r\n onAfterPrint={() => {\r\n setReceiptData([]);\r\n }}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport innkeypmslogo from '../../../../assets/images/innkeypmslogo.svg';\r\nimport theOrchidLogo from '../../../../assets/images/the_orchid_logo.svg';\r\nimport ReactToPrint from 'react-to-print';\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from '../../../../reducer/authSlice';\r\nimport { useRef } from 'react';\r\nimport { useEffect } from 'react';\r\nimport { useState } from 'react';\r\nimport { GetVoucherDetails } from '../../../../services/reservationService';\r\nimport { GetPropertyInvoiceDetails } from '../../../../services/generalService';\r\nimport { price_in_words } from '../../../../utils/helpers/generalMethod';\r\nimport Moment from 'moment';\r\n\r\nexport default function CashVoucher(props) {\r\n let currUser = useSelector(currentUser);\r\n const myRef = useRef();\r\n const showRef = useRef();\r\n\r\n //#region state variable\r\n const [propertyDetails, setPropertyDetails] = useState([]);\r\n const [voucherData, setVoucherData] = useState([]);\r\n //#endregion\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n if (props.IsShow) {\r\n fillVoucherDetails();\r\n }\r\n }, [props.IsShow])\r\n\r\n useEffect(() => {\r\n fillPropertyInvoiceDetails();\r\n }, [])\r\n //#endregion\r\n\r\n //#region function\r\n const fillPropertyInvoiceDetails = () => {\r\n GetPropertyInvoiceDetails(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n if (d.data != undefined) {\r\n setPropertyDetails(d.data);\r\n }\r\n })\r\n }\r\n\r\n const fillVoucherDetails = () => {\r\n GetVoucherDetails(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(props.para)).then(d => {\r\n if (d.data != undefined) {\r\n console.log(\"Data>>\", d.data);\r\n setVoucherData(d.data);\r\n }\r\n if (showRef.current) {\r\n showRef.current.handlePrint();\r\n }\r\n if (props.OnShow != undefined) {\r\n props.OnShow();\r\n }\r\n })\r\n }\r\n //#endregion\r\n return (\r\n <>\r\n
    \r\n
    \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n

    {propertyDetails?.PropertyName}   ( {propertyDetails?.StatutoryName} )

    \r\n\r\n
    \r\n {propertyDetails?.Address1 + ', ' + propertyDetails?.Address2},
    {propertyDetails?.CityName} - {propertyDetails?.Postcode}\r\n {propertyDetails?.StateName}, {propertyDetails?.CountryName},
    \r\n Tel : {propertyDetails?.Telephone}\r\n Email: {propertyDetails?.Email}Web:\r\n {propertyDetails?.Website}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    State Code : {propertyDetails?.StateCode + ' ' + propertyDetails?.StateName}
    \r\n
    Pan No : {propertyDetails?.PANNo}
    \r\n
    \r\n
    GSTIN : {propertyDetails?.GSTNo}
    \r\n
    TAN No :
    \r\n
    \r\n
    FSSAI No :
    \r\n
    CIN No :
    \r\n
    \r\n
    \r\n
    \r\n
    VOUCHER
    \r\n {/*
    */}\r\n
    \r\n
    \r\n Receipt Date : {Moment(voucherData[0]?.ReceiptDate).format('DD MMM. YYYY')}\r\n
    \r\n
    \r\n Receipt No : {voucherData[0]?.ReceiptNo}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Transaction TypeDocument NoDateAmount Paid
    {voucherData[0]?.TransactionType}{voucherData[0]?.ReceiptNo}{voucherData[0]?.ReceiptDate}{parseFloat(voucherData[0]?.Amount).toFixed(2)}
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {/* Remarks: Some text will be show here. */}\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    Payment Done By Cash
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n\r\n \r\n \r\n
    \r\n
    ₹ {parseFloat(voucherData[0]?.Amount).toFixed(2)}
    \r\n
    {price_in_words(parseFloat(voucherData[0]?.Amount).toFixed(2))}
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    Authorized Signature
    \r\n
    For, {propertyDetails?.PropertyName}
    \r\n
    {propertyDetails?.StatutoryName}.
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n Date: {Moment(voucherData[0]?.Date).format('DD MMM YYYY')}\r\n   User name: {voucherData[0]?.UserID}\r\n \r\n Powered by \r\n
    \r\n
    \r\n\r\n
    \r\n }\r\n content={() => myRef.current}\r\n onAfterPrint={() => {\r\n setVoucherData([]);\r\n }}\r\n />\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport innkeypmslogo from '../../../../assets/images/innkeypmslogo.png';\r\nimport the_orchid_logo from '../../../../assets/images/the_orchid_logo.svg'\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from '../../../../reducer/authSlice';\r\nimport { useRef } from 'react';\r\nimport { useState } from 'react';\r\nimport { useEffect } from 'react';\r\nimport ReactToPrint from 'react-to-print';\r\nimport { GetEncashmentCertificateDetails } from '../../../../services/reservationService';\r\nimport { GetPropertyInvoiceDetails } from '../../../../services/generalService';\r\nimport Moment from 'moment';\r\nimport { price_in_words } from '../../../../utils/helpers/generalMethod';\r\n\r\nexport default function Encashment(props) {\r\n let currUser = useSelector(currentUser);\r\n const myRef = useRef();\r\n const showRef = useRef();\r\n\r\n //#region state variable\r\n const [propertyDetails, setPropertyDetails] = useState([]);\r\n const [encashmentData, setEncashmentData] = useState([]);\r\n const [encashmentTotal, setEncashmentTotal] = useState(0);\r\n const [netTotal, setNetTotal] = useState(0);\r\n //#endregion\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n if (props.IsShow) {\r\n fillEncashmentDetails();\r\n }\r\n }, [props.IsShow])\r\n\r\n useEffect(() => {\r\n fillPropertyInvoiceDetails();\r\n }, [])\r\n //#endregion\r\n\r\n //#region functions\r\n const fillPropertyInvoiceDetails = () => {\r\n GetPropertyInvoiceDetails(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n if (d.data != undefined) {\r\n setPropertyDetails(d.data);\r\n }\r\n })\r\n }\r\n\r\n const fillEncashmentDetails = () => {\r\n GetEncashmentCertificateDetails(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(props.para)).then(d => {\r\n if (d.data != undefined) {\r\n setEncashmentData(d.data);\r\n\r\n //#region total\r\n let totalAmount = 0;\r\n let temp = d.data.Encashment;\r\n for (let i = 0; i < temp.length; i++) {\r\n totalAmount = totalAmount + parseFloat(temp[i].Total);\r\n }\r\n setEncashmentTotal(totalAmount);\r\n //#endregion\r\n\r\n //#region net total\r\n let total = 0;\r\n let serviceTot = 0;\r\n let tempTot = d.data.Encashment;\r\n let serTot = d.data.CashbookSettlement;\r\n for (let i = 0; i < tempTot.length; i++) {\r\n total += parseFloat(tempTot[i].Total);\r\n }\r\n for (let j = 0; j < serTot.length; j++) {\r\n serviceTot += parseFloat(serTot[j].Tax);\r\n\r\n }\r\n let netTotal = total - serviceTot;\r\n setNetTotal(netTotal);\r\n //#endregion\r\n }\r\n if (showRef.current) {\r\n showRef.current.handlePrint();\r\n }\r\n if (props.OnShow != undefined) {\r\n props.OnShow();\r\n }\r\n })\r\n }\r\n //#endregion\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n {/* */}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n
    \r\n \r\n \r\n
    \r\n

    {propertyDetails?.PropertyName}   ( {propertyDetails?.StatutoryName} )

    \r\n\r\n
    \r\n {propertyDetails?.Address1 + ', ' + propertyDetails?.Address2},
    {propertyDetails?.CityName} - {propertyDetails?.Postcode}\r\n {propertyDetails?.StateName}, {propertyDetails?.CountryName},
    \r\n Tel : {propertyDetails?.Telephone}\r\n Email: {propertyDetails?.Email}Web:\r\n {propertyDetails?.Website}\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    State Code : {propertyDetails?.StateCode + ' ' + propertyDetails?.StateName}
    \r\n
    GSTIN : {propertyDetails?.GSTNo}
    \r\n
    \r\n
    Authorized Company Name : {propertyDetails?.PropertyName}
    \r\n
    License Number :
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    Encashment certificate
    \r\n {/*
    */}\r\n
    \r\n
    \r\n Ec Date : {Moment(encashmentData.EncashmentCertificateModel?.EncashmentDate).format('DD MMM. YYYY')}\r\n
    \r\n
    \r\n EC No : {encashmentData.EncashmentCertificateModel?.EncashmentCertificateNo != \"\" ? encashmentData.EncashmentCertificateModel?.EncashmentCertificateNo : \"\"}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {/* \"border-right: 2px solid #C7C7C7;\" */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* style=\"border-right: 2px solid #C7C7C7;\" */}\r\n \r\n \r\n \r\n \r\n {\r\n encashmentData.Encashment?.map(d => {\r\n return (\r\n \r\n \r\n \r\n {/* style=\"border-right: 2px solid #C7C7C7;\" */}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n })\r\n }\r\n\r\n \r\n \r\n \r\n {\r\n encashmentData.CashbookSettlement?.map(d => {\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n })\r\n }\r\n\r\n \r\n \r\n \r\n \r\n
    Currency Purchased\r\n AmountBuy RateEquivalent (Rupees)
    CurrencyDenominationQty
    {d.Currency}{d.Denomination}{d.Qty}{parseFloat(d.Amount).toFixed(2)}{parseFloat(d.Rate).toFixed(2)}{parseFloat(d.Total).toFixed(2)}
    Total : {parseFloat(encashmentTotal).toFixed(2)}
    \r\n
    Less : {d.Charge} @ {d.Percentage}% On {parseFloat(d.OnAmount).toFixed(2)}
    \r\n
    \r\n
    {parseFloat(d.Tax).toFixed(2)}
    \r\n
    Net Total : {parseFloat(netTotal).toFixed(2)}
    \r\n
    Note : This certificate should be\r\n preserved by the holder to facilitate reconversion of the rupee balance, if any, into\r\n foreign currency at any time of departure from India and / or for payment of passage/freight cost in\r\n rupees, if necessary.
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    {encashmentData.EncashmentCertificateModel?.Name}
    \r\n
    \r\n {encashmentData.EncashmentCertificateModel?.Street}
    \r\n {encashmentData.EncashmentCertificateModel?.City} - {encashmentData.EncashmentCertificateModel?.PostCode} \r\n {encashmentData.EncashmentCertificateModel?.State}, {encashmentData.EncashmentCertificateModel?.Country}\r\n
    \r\n
    M: {encashmentData.EncashmentCertificateModel?.Mobile} E-mail: {encashmentData.EncashmentCertificateModel?.Email}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Reg No. :
    \r\n
    Room No. : {encashmentData.EncashmentCertificateModel?.RoomNo}
    \r\n
    \r\n\r\n
    Nationality: {encashmentData.EncashmentCertificateModel?.Nationality}
    \r\n
    \r\n
    Passport No. : {encashmentData.EncashmentCertificateModel?.IdentificationNo}
    \r\n
    Place of Issue : {encashmentData.EncashmentCertificateModel?.PlaceofIssue}
    \r\n
    \r\n
    \r\n
    Date of Issue : {encashmentData.EncashmentCertificateModel?.DateofIssue}
    \r\n
    Date of Expiry : {encashmentData.EncashmentCertificateModel?.DateofExpiry}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n\r\n \r\n \r\n
    \r\n
    ₹ {parseFloat(netTotal).toFixed(2)}
    \r\n
    {price_in_words(parseFloat(netTotal))}
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    Authorized Signature
    \r\n
    For, {propertyDetails?.PropertyName}
    \r\n
    {propertyDetails?.StatutoryName}.
    \r\n
    \r\n
    Guest Signature
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n Date: {encashmentData.EncashmentCertificateModel?.EntryDate}\r\n User name: {encashmentData.EncashmentCertificateModel?.UserId}\r\n \r\n Powered by \r\n
    \r\n
    \r\n\r\n
    \r\n }\r\n content={() => myRef.current}\r\n onAfterPrint={() => {\r\n setEncashmentData([]);\r\n }}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnButtonTypeWithDropdown,\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnPlainButton,\r\n InnSingleDateSelection,\r\n InnTableGrid, InnModalPopup\r\n} from \"../../../component\";\r\nimport { useSelector } from \"react-redux\";\r\nimport moment from \"moment/moment\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { currentUser } from \"../../../reducer/authSlice\";\r\nimport { GetCashBookTransactionMaster, GetPropertyParameterByKeys, GetCashbookList } from \"../../../services/reservationService\";\r\nimport { GetCurrencyMaster, GetPropertyInvoiceDetails } from \"../../../services/generalService\";\r\nimport { RecieptPaymentModal } from \"./modalPopup/recieptPaymentModalPopup\";\r\nimport { useSSR } from \"react-i18next\";\r\nimport { EncashmentModal } from \"./modalPopup/EncashmentModalPopup\";\r\nimport CashReceipt from \"./printDocs/cash-receipt\";\r\nimport CashVoucher from \"./printDocs/cash-voucher\";\r\nimport Encashment from \"./printDocs/encashment-certificate\";\r\n\r\nexport default function Cashbook(props) {\r\n const history = useHistory();\r\n const currUser = useSelector(currentUser);\r\n const propertyParameters = [\"BusinessDate\"];\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n const pettyTransaction = {\r\n strTransaction: \"\",\r\n }\r\n const [cashBookFilterObj, setCashBookFilterObj] = useState({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n FromDate: \"\",\r\n ToDate: \"\",\r\n PettyCashType: null,\r\n // TransactionType: \"P\",\r\n // Module : currUser.CurrentModule,\r\n Module : currUser.CurrentModule == \"R\" ? currUser.CurrentModule : \"F\",\r\n CurrencyID: \"INR\"\r\n })\r\n const columHeader = [\r\n { key: \"Date\", value: \"Date\", type: \"txt\", sorting: \"Y\", ObjectName: \"Date\" },\r\n { key: \"Transaction Description\", value: \"TransactionDescription\", type: \"txt\", sorting: \"Y\", ObjectName: \"TransactionDescription\" },\r\n { key: \"Receipt No\", value: \"ReceiptNo\", type: \"txt\", sorting: \"N\", ObjectName: \"ReceiptNo\" },\r\n { key: \"Reservation No\", value: \"ReservationSerNo\", type: \"txt\", sorting: \"N\", ObjectName: \"ReservationSerNo\" },\r\n { key: \"Guest Name\", value: \"GuestName\", type: \"txt\", sorting: \"N\", ObjectName: \"GuestName\" },\r\n { key: \"Mode of Payment\", value: \"ModeOfPayment\", type: \"txt\", sorting: \"N\", ObjectName: \"ModeOfPayment\" },\r\n { key: \"Currency\", value: \"Currency\", type: \"txt\", sorting: \"N\", ObjectName: \"Currency\" },\r\n { key: \"Receipt\", value: \"Receipt\", type: \"txt\", sorting: \"N\", ObjectName: \"Receipt\" },\r\n { key: \"Payment\", value: \"Payment\", type: \"txt\", sorting: \"N\", ObjectName: \"Payment\" },\r\n { key: \"Balance\", value: \"Balance\", type: \"txt\", sorting: \"N\", ObjectName: \"Balance\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\", ObjectName: \"Action\" },\r\n ];\r\n\r\n\r\n const [reciept, setReciept] = useState(false);\r\n const [filterData, setfilterData] = useState([]);\r\n const [gridSelectedItem, setgridSelectedItem] = useState([]);\r\n const [transactionData, setTransactionData] = useState([]);\r\n const [selectedCheckbook, setSelectedCheckbook] = useState([]);\r\n\r\n\r\n const optBtnData = [\r\n { key: \"Receipt\", value: \"Receipt\" },\r\n { key: \"Voucher\", value: \"Voucher\" },\r\n { key: \"Encashment Certificate\", value: \"Encashment Certificate\" },\r\n // { key: \"Voide Encashment\", value: \"Voide Encashment\" },\r\n // { key: \"Cash Book\", value: \"Cash Book\" },\r\n\r\n ];\r\n const selectdata = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n const selectTransactionType = [\r\n { key: \"P\", value: \"Payment\" },\r\n { key: \"R\", value: \"Receipt\" },\r\n { key: \"E\", value: \"Encashment\" }\r\n ];\r\n const MoreFilterOption = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n const [isPageLoad, setIsPageLoad] = useState(false);\r\n const [showAdvancedSearchModal, setShowAdvancedSearchModal] = useState(false);\r\n const [showReceiptPaymentModal, setShowReceiptPaymentModal] = useState(false);\r\n const [showEncashmentModalPopup, setShowEncashmentModalPopup] = useState(false);\r\n const [showCashReceiptPopup, setCashReceiptPopup] = useState(false);\r\n const [showCashVoucherPopup, setCashVoucherPopup] = useState(false);\r\n const [showEncashmentPopup, setShowEncashmentPopup] = useState(false);\r\n const [colListKeys, setColListKeys] = useState([]);\r\n const [showFilter, setShowFilter] = useState(false);\r\n const [colList, setColList] = useState([]);\r\n const [temp, settemp] = useState(false);\r\n const [page, setPage] = useState(1);\r\n const [totalReceipt, setTotalReceipt] = useState(0);\r\n const [totalPayment, setTotalPayment] = useState(0);\r\n const [totalClosingBalance, setTotalClosingBalance] = useState(0);\r\n const [currencyMasterData, setCurrencyMasterData] = useState([]);\r\n // const [propretyData,setPropertyData]= useState([]);\r\n //console.log(\"Props<\", props.para)\r\n const [pageCount, setPageCount] = useState(1);\r\n const handleMultiActionMenu = (item) => { };\r\n const setSelectedItem = (items) => {\r\n setgridSelectedItem(items);\r\n settemp(!temp);\r\n };\r\n\r\n useEffect(() => {\r\n if (cashBookFilterObj.FromDate != \"\" && cashBookFilterObj.ToDate != \"\" && isPageLoad && cashBookFilterObj.Module != \"\" && cashBookFilterObj.CurrencyID != \"\") {\r\n fillDataGrid();\r\n }\r\n }, [cashBookFilterObj])\r\n\r\n useEffect(() => {\r\n setIsPageLoad(true);\r\n GetPropertyParameterByKeys(currUser.ClientSerNo, currUser.PropertySerNo, \"BusinessDate\").then((d) => {\r\n let obj = d.data.find((x) => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(d.data[0].value);\r\n setCashBookFilterObj((prev) => ({ ...prev, FromDate: moment(new Date(d.data[0].value)).format(\"DD-MMM-yyyy\"), ToDate: moment(new Date(d.data[0].value)).format(\"DD-MMM-yyyy\") }));\r\n }\r\n });\r\n\r\n //-------------Transaction\r\n GetCashBookTransactionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n let temp = [];\r\n d.data.forEach((x) => {\r\n temp = [...temp, { key: x.CashbookTransactionSerNo, value: x.Name }]\r\n })\r\n setTransactionData(temp);\r\n });\r\n //----------PropertyCurrency INR\r\n GetPropertyInvoiceDetails(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((o) => {\r\n setCashBookFilterObj(prev => ({ ...prev, CurrencyID: o.data.CurrencyID }));\r\n });\r\n //----------Currency\r\n GetCurrencyMaster().then((d) => {\r\n let temp = [];\r\n d.data.forEach(d => {\r\n temp.push({ key: d.CurrencyID, value: d.Name });\r\n })\r\n setCurrencyMasterData(temp);\r\n\r\n });\r\n }, []);\r\n //console.log(\"Data\", currencyMasterData)\r\n\r\n const fillDataGrid = () => {\r\n setIsPageLoad(false);\r\n GetCashbookList(cashBookFilterObj).then((d) => {\r\n if (d.data != undefined) {\r\n d.data.forEach((x) => {\r\n x.Date = moment(new Date(x.Date)).format(\"DD-MMM-YYYY\");\r\n let TotalRecipt = 0;\r\n d.data.forEach((x) => {\r\n TotalRecipt = TotalRecipt + x.Receipt;\r\n });\r\n setTotalReceipt(TotalRecipt);\r\n\r\n let TotalPayment = 0;\r\n d.data.forEach((x) => {\r\n TotalPayment = TotalPayment + x.Payment;\r\n });\r\n setTotalPayment(TotalPayment);\r\n })\r\n // Balance\r\n for (let i = 1; i < d.data.length; i++) {\r\n if(i % 2 !== 0){\r\n d.data[i].Balance = d.data[i].Receipt - d.data[i].Payment;\r\n }\r\n else if(i % 2 === 0){\r\n d.data[i].Balance = d.data[i-1].Balance + d.data[i].Receipt - d.data[i].Payment;\r\n }\r\n }\r\n\r\n let TotalCloBalance = 0;\r\n d.data.forEach((x) => {\r\n TotalCloBalance = TotalCloBalance + x.Balance;\r\n });\r\n setTotalClosingBalance(TotalCloBalance);\r\n\r\n let temp = []\r\n d.data.forEach(element => {\r\n temp.push({\r\n Balance: element.Balance.toFixed(2),\r\n ClientSerNo: element.ClientSerNo,\r\n Currency: element.Currency,\r\n Date: element.Date,\r\n GuestName: element.GuestName,\r\n ModeOfPayment: element.ModeOfPayment,\r\n Payment: element.Payment.toFixed(2),\r\n PropertySerNo: element.PropertySerNo,\r\n Receipt: element.Receipt.toFixed(2),\r\n ReceiptNo: element.ReceiptNo,\r\n ReservationSerNo: element.ReservationSerNo,\r\n SerNo: element.SerNo,\r\n TransactionDescription: element.TransactionDescription,\r\n })\r\n });\r\n setfilterData(temp);\r\n }\r\n })\r\n }\r\n // console.log(\"Recipt Balance\",recieptBalance,\"Balance\",balance)\r\n const ResetFilter = () => {\r\n setCashBookFilterObj({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n FromDate: businessDate != undefined ? moment(new Date(businessDate)).format(\"DD-MMM-yyyy\") : moment(new Date()).format(\"DD-MMM-yyyy\"),\r\n ToDate: businessDate != undefined ? moment(new Date(businessDate)).format(\"DD-MMM-yyyy\") : moment(new Date()).format(\"DD-MMM-yyyy\"),\r\n PettyCashType: null,\r\n //TransactionType: \"P\",\r\n Module : currUser.CurrentModule == \"R\" ? currUser.CurrentModule : \"F\",\r\n CurrencyID: \"INR\"\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n if (cashBookFilterObj.FromDate != \"\" && cashBookFilterObj.ToDate != \"\" && cashBookFilterObj.Module != \"\" && cashBookFilterObj.CurrencyID != \"\") {\r\n fillDataGrid();\r\n }\r\n }, [page]);\r\n //console.log(\"Hi\", currUser)\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Cashbook

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* {\r\n setshowLeftBlueBar(true);\r\n }}\r\n >\r\n */}\r\n
    \r\n
    \r\n { setShowReceiptPaymentModal(!showReceiptPaymentModal); setReciept(false) }}>Add Payment\r\n { setShowReceiptPaymentModal(!showReceiptPaymentModal); setReciept(true) }}>Add Receipt\r\n {currUser.CurrentModule == \"P\" ? (\r\n <>\r\n ) :\r\n { setShowEncashmentModalPopup(!showEncashmentModalPopup); }}>Add Encashment\r\n }\r\n \r\n \r\n Export\r\n \r\n handleMultiActionMenu(item)}\r\n >\r\n Actions (50)\r\n \r\n
    setShowAdvancedSearchModal(!showAdvancedSearchModal)}>\r\n \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* */}\r\n
    \r\n {\r\n setSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n\r\n }}\r\n fixedHeaderNo={2}\r\n\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n //console.log(item);\r\n if (item.key === 'Receipt') {\r\n setCashReceiptPopup(true)\r\n }\r\n if (item.key === 'Voucher') {\r\n setCashVoucherPopup(true)\r\n }\r\n if (item.key === 'Encashment Certificate') {\r\n setShowEncashmentPopup(true)\r\n }\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n // console.log(rowdata);\r\n setgridSelectedItem(rowdata);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n
    \r\n {\r\n setPage(v);\r\n }}\r\n style={{ float: \"right\" }}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Total{totalReceipt.toFixed(2)}{totalPayment.toFixed(2)}
    Closing Balance{totalClosingBalance.toFixed(2)}
    \r\n
    \r\n
    \r\n
    \r\n\r\n {showAdvancedSearchModal ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Filters

    \r\n
    \r\n
    \r\n
    \r\n {\r\n setColList(items);\r\n setColListKeys(item);\r\n if (item.length > 0) {\r\n setShowFilter(true);\r\n } else {\r\n setShowFilter(false);\r\n }\r\n }}\r\n label=\"More Filters\"\r\n searchable={[\"Search\", \"No matching property\"]}\r\n className=\"button-layout-dd gray-btn\"\r\n buttonLayout={true}\r\n >\r\n
    \r\n {\r\n ResetFilter();\r\n }}>\r\n Reset\r\n \r\n {\r\n if (page === 1) fillDataGrid();\r\n else setPage(1);\r\n setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }}\r\n >\r\n Apply\r\n \r\n \r\n setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n if (new Date(moment(businessDate).format(\"DD-MMM-YYYY\")).getTime() <= new Date(moment(value).format(\"DD-MMM-YYYY\")).getTime()) {\r\n setCashBookFilterObj((prev) => ({\r\n ...prev, FromDate: value\r\n }));\r\n }\r\n else {\r\n setCashBookFilterObj((prev) => ({\r\n ...prev, FromDate: value\r\n }))\r\n }\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n if (new Date(moment(businessDate).format(\"DD-MMM-YYYY\")).getTime() <= new Date(moment(value).format(\"DD-MMM-YYYY\")).getTime()) {\r\n setCashBookFilterObj((prev) => ({\r\n ...prev, ToDate: value\r\n }));\r\n }\r\n else {\r\n setCashBookFilterObj((prev) => ({\r\n ...prev, ToDate: value\r\n }))\r\n }\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n // setCashBookFilterObj(prev => ({ ...prev, TransactionType: item.key }));\r\n // }}\r\n label=\"Transaction Type\"\r\n //selectedSerNo={cashBookFilterObj.TransactionType}\r\n disabled={false}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setCashBookFilterObj(prev => ({ ...prev, CurrencyID: item.key }));\r\n }}\r\n label=\"Currency ID\"\r\n selectedSerNo={cashBookFilterObj.CurrencyID}\r\n searchable={[\"Search\", \"No matching item\"]}\r\n disabled={false}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n let temp = \"\";\r\n setSelectedCheckbook(items);\r\n if (items.length > 0) {\r\n for (let i = 0; i < items.length; i++) {\r\n if (i == items.length - 1) {\r\n temp = temp + items[i]\r\n }\r\n else {\r\n temp = temp + items[i] + \",\";\r\n }\r\n }\r\n setCashBookFilterObj((prev) => ({ ...prev, PettyCashType: temp }));\r\n } else {\r\n setCashBookFilterObj((prev) => ({ ...prev, PettyCashType: temp }));\r\n }\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n {showReceiptPaymentModal ? (\r\n {\r\n fillDataGrid();\r\n setShowReceiptPaymentModal(false);\r\n }}\r\n >\r\n \r\n ) : null}\r\n \r\n {showEncashmentModalPopup ? (\r\n {\r\n fillDataGrid();\r\n setShowEncashmentModalPopup(false);\r\n }}\r\n >\r\n \r\n ) : null}\r\n \r\n
    \r\n {\r\n setCashReceiptPopup(false);\r\n }}\r\n />\r\n
    \r\n
    \r\n {\r\n setCashVoucherPopup(false);\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n setShowEncashmentPopup(false);\r\n }}\r\n >\r\n
    \r\n
    \r\n )\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnSingleSelectDropdown,\r\n InnTextbox,\r\n InnCheckbox,\r\n InnLoader,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport Moment from \"moment\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport {\r\n setExtraPackage,\r\n reservation,\r\n reSetExtraPackage,\r\n} from \"../../../../reducer/frontSlice\";\r\nimport {\r\n cmbGetPackagePostingRhythm,\r\n cmbGetPackagePostingType,\r\n GetPackageBySerNo,\r\n} from \"../../../../services/reservationService\";\r\n\r\nexport function AddPackageModalPopup(props) {\r\n const dispatch = useDispatch();\r\n const { confirm } = useConfirm();\r\n const res = useSelector(reservation);\r\n const [nights, setNights] = useState(0);\r\n const [adult, setAdult] = useState(\"\");\r\n const [child, setChild] = useState(\"\");\r\n const [pkgIsTaxInclusive, setPkgIsTaxInclusive] = useState(\r\n props.para.IsTaxInclusive\r\n );\r\n const [isUpSell, setIsUpSell] = useState(false);\r\n const [isUpSellDisable, setIsUpSellDisable] = useState(false);\r\n const [upSellRemarks, setUpSellRemarks] = useState(\"\");\r\n const [arrivalDate, setArrivalDate] = useState(\"21-jan-2021\");\r\n const [actualPackagePrice, setActualPackagePrice] = useState(\"\");\r\n const [actualPackageTax, setActualPackageTax] = useState(\"\");\r\n const [actualTotalTax, setActualTotalTax] = useState(\"\");\r\n const [actualTotal, setActualTotal] = useState(\"\");\r\n const [selectedPackageDetail, setSelectedPackageDetail] = useState({});\r\n const [postingTypeData, setPostingTypeData] = useState([]);\r\n const [postingRhythmData, setPostingRhythmData] = useState([]);\r\n const [selectedPostingRhythmSerNo, setSelectedPostingRhythmSerNo] = useState(\"0\");\r\n const [selectedPostingRhythmName, setSelectedPostingRhythmName] = useState(\"\");\r\n const [selectedPostingTypeSerNo, setSelectedPostingTypeSerNo] = useState(\"0\");\r\n const [selectedPostingTypeName, setSelectedPostingTypeName] = useState(\"\");\r\n const [filterParaPackage, setFilterParaPackage] = useState([]);\r\n const [rateCodeDetail, setRateCodeDetail] = useState({});\r\n const [calculatedQty, setCalculatedQty] = useState(\"\");\r\n const [calculatedQtyText, setCalculatedQtyText] = useState(\"\");\r\n const [isBtnRefreshAmountClicked, setIsBtnRefreshAmountClicked] = useState(undefined);\r\n\r\n const isValidPage = () =>{\r\n if(selectedPostingRhythmSerNo == 0){\r\n confirm({Message: \"Please select posting rhythm.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n return false;\r\n }\r\n else if(isNaN(nights) || nights == \"\" || nights < 0 ){\r\n confirm({Message: \"Please select at least one night.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n return false;\r\n }\r\n else if ((isNaN(adult) || adult == \"\" || adult <= 0) && selectedPackageDetail.CalculationRuleSerNo != \"PC\"){\r\n confirm({Message: \"Enter valid adult.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n return false;\r\n }\r\n else if((isNaN(child) || child == \"\" || child < 0 ) || ((isNaN(child) || child == \"\" || child <= 0 ) && selectedPackageDetail.CalculationRuleSerNo == \"PC\")){\r\n confirm({Message: \"Enter valid child.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n return false;\r\n }\r\n else if(isNaN(actualTotal) || actualTotal == \"\" || actualTotal <= 0 ){\r\n confirm({Message: \"Package with zero amount is not allowed.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n return false;\r\n }\r\n else if(selectedPostingTypeSerNo == 0){\r\n confirm({Message: \"Please select posting type.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n return false;\r\n }\r\n // else if(isBtnRefreshAmountClicked == undefined){\r\n // confirm({Message: \"No changes to get effect.\",\r\n // Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n // return false;\r\n // }\r\n else if(isBtnRefreshAmountClicked == false){\r\n confirm({Message: \"Please Refresh Amount to get the changes effect.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n return false;\r\n }\r\n else{\r\n return true;\r\n }\r\n\r\n }\r\n const handleAddPackage = () => {\r\n let vIsValidPage = isValidPage();\r\n console.log(vIsValidPage);\r\n if (vIsValidPage == true){\r\n if (props.para.Mode == \"EDIT\") {\r\n let temp = res.extraPackage.filter(\r\n (x) => x.PackageSerNo != props.para.PackageSerNo\r\n );\r\n dispatch(reSetExtraPackage(temp));\r\n }\r\n\r\n let newPackage = {\r\n PackageSerNo: selectedPackageDetail.PackageSerNo,\r\n Name: selectedPackageDetail.Name,\r\n CalculationRule: selectedPackageDetail.CalculationRule,\r\n PostingRhythm: selectedPackageDetail.PostingRhythm,\r\n PostingType: selectedPackageDetail.PostingType,\r\n PackagePrice:\r\n actualPackagePrice +\r\n (selectedPackageDetail.IsTaxInclusive ? \" Incl.Tax\" : \" + Tax\"),\r\n PackageRate: actualPackagePrice,\r\n IsTaxInclusive: selectedPackageDetail.IsTaxInclusive,\r\n Total: selectedPackageDetail.IsTaxInclusive\r\n ? parseFloat(actualPackagePrice).toFixed(2)\r\n : (\r\n parseFloat(actualPackagePrice) + parseFloat(actualPackageTax)\r\n ).toFixed(2),\r\n Person:\r\n (adult == \"\" ? \"\" : adult + \"A,\") + (child == \"\" ? \"\" : child + \"C\"),\r\n Nights: nights,\r\n Qty: calculatedQty,\r\n StayTotal: actualTotal,\r\n Action: \"\",\r\n };\r\n\r\n let tempRateCodeDetail = JSON.parse(JSON.stringify(rateCodeDetail));\r\n console.log(selectedPostingRhythmName);\r\n tempRateCodeDetail.PackageDetails.map(v => {\r\n v.IsUpSell = isUpSell;\r\n v.UpSellRemarks = upSellRemarks;\r\n v.IsUpSellable = props.para.IsUpSellable;\r\n v.PostingTypeSerNo = selectedPostingTypeSerNo;\r\n v.PostingType = selectedPostingTypeName;\r\n v.PostingRhythmSerNo = selectedPostingRhythmSerNo;\r\n v.PostingRhythm = selectedPostingRhythmName;\r\n })\r\n tempRateCodeDetail.NewPackageDetails.map(v => {\r\n v.PostingTypeSerNo = selectedPostingTypeSerNo;\r\n v.PostingType = selectedPostingTypeName;\r\n v.PostingRhythmSerNo = selectedPostingRhythmSerNo;\r\n v.PostingRhythm = selectedPostingRhythmName;\r\n v.IsUpSell = isUpSell;\r\n v.UpSellRemarks = upSellRemarks;\r\n v.IsUpSellable = props.para.IsUpSellable;\r\n if (isUpSell) {\r\n v.imgclass = \"upgrade-arrow\";\r\n //v.imgposition = \"left\";\r\n }\r\n else {\r\n v.imgclass = \"\";\r\n //v.imgposition = \"left\";\r\n }\r\n })\r\n\r\n if (props.handleOnAdd == undefined)\r\n console.log(\"handleOnAdd is not defined\");\r\n else\r\n props.handleOnAdd(\r\n JSON.parse(JSON.stringify(tempRateCodeDetail.NewPackageDetails[0]))\r\n );\r\n\r\n\r\n\r\n let obj = {\r\n RateCodeDetail: tempRateCodeDetail,\r\n PackageSerNo: selectedPackageDetail.PackageSerNo,\r\n Adult: adult,\r\n Child: child,\r\n Name: selectedPackageDetail.Name,\r\n };\r\n dispatch(setExtraPackage(obj));\r\n console.log(\"extra package \", obj, selectedPostingRhythmSerNo, selectedPostingTypeSerNo);\r\n }\r\n };\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n };\r\n\r\n const fillPostingType = () => {\r\n cmbGetPackagePostingType().then((d) => {\r\n //d.data.splice(0, 0, { key: \"0\", value: \"Select\" });\r\n setPostingTypeData(d.data);\r\n\r\n //console.log(\"posting data \", d.data);\r\n });\r\n };\r\n\r\n const fillPostingRhythm = () => {\r\n cmbGetPackagePostingRhythm().then((d) => {\r\n let tempData = [];\r\n tempData.push({ key: \"0\", value: \"Select\", type: \"\" });\r\n d.data.map(dt => {\r\n tempData.push({ key: dt.PostingRhythmSerNo, value: dt.Name, type: dt.RhythmType });\r\n })\r\n //d.data.splice(0, 0, { key: \"0\", value: \"Select\" });\r\n setPostingRhythmData(tempData);\r\n });\r\n };\r\n\r\n const fillSelectedPackageDetail = (para) => {\r\n console.log(\"call before api \", para);\r\n\r\n GetPackageBySerNo(para).then((d) => {\r\n console.log(\"GetPackageBySerNo Resp>>\", d);\r\n let orgData = d.data;\r\n\r\n let NewPackageDetails = [];\r\n orgData.PackageDetails.map((np) => {\r\n let n1 = NewPackageDetails.find(\r\n (x) =>\r\n x.PackageSerNo == np.PackageSerNo && x.RateSerNo == np.RateSerNo\r\n );\r\n if (n1 == undefined) {\r\n NewPackageDetails.push({\r\n RateSerNo: np.RateSerNo,\r\n PackageSerNo: np.PackageSerNo,\r\n Name: np.Name,\r\n PackageRate: np.PackageRate,\r\n PackagePrice: np.PackagePrice,\r\n CalculationRule: np.CalculationRule,\r\n PostingRhythm: np.PostingRhythm,\r\n PostingType: np.PostingType,\r\n Component: np.IsTaxInclusive\r\n ? np.PackageRate + \" Incl.Tax\"\r\n : np.PackageRate + \" + Tax\",\r\n Total: (\r\n parseFloat(np.PackageRate) +\r\n (np.IsTaxInclusive ? 0 : parseFloat(np.Taxes))\r\n ).toFixed(2),\r\n Person: \"2A, 1C\",\r\n Qty: \"\",\r\n Action: \"\",\r\n });\r\n }\r\n });\r\n\r\n NewPackageDetails.map((np) => {\r\n np.Qty = orgData.PackageDetails.filter(\r\n (x) =>\r\n x.RateSerNo == np.RateSerNo && x.PackageSerNo == np.PackageSerNo\r\n ).length;\r\n });\r\n\r\n orgData.NewPackageDetails = NewPackageDetails;\r\n\r\n if (orgData.PackageDetails.length > 0) {\r\n setSelectedPackageDetail(orgData.PackageDetails[0]);\r\n\r\n setActualPackagePrice(orgData.PackageDetails[0].PackagePrice);\r\n setActualPackageTax(orgData.PackageDetails[0].Taxes);\r\n\r\n // if(props.para.Mode != \"EDIT\"){\r\n // const sType = postingTypeData.filter(\r\n // (x) => x.key == orgData.PackageDetails[0].PostingTypeSerNo\r\n // );\r\n // const sRhythm = postingRhythmData.filter(\r\n // (x) => x.key == orgData.PackageDetails[0].PostingRhythmSerNo\r\n // );\r\n // if (sType.length > 0) { \r\n // setSelectedPostingTypeSerNo(sType[0].key);\r\n // };\r\n // if (sRhythm.length > 0) { \r\n // setSelectedPostingRhythmSerNo(sRhythm[0].key);\r\n // }\r\n // } \r\n }\r\n\r\n if (props.para.Mode == \"ADD\") setRateCodeDetail(orgData);\r\n\r\n console.log(\"add obj \", orgData);\r\n // if(props.para.Mode == \"EDIT\"){\r\n // let storeData = res.extraPackage.find(x=> x.PackageSerNo == props.para.PackageSerNo);\r\n // console.log(\"data from store \",storeData);\r\n // }else{\r\n // setRateCodeDetail(orgData);\r\n // }\r\n });\r\n };\r\n\r\n\r\n const modifiedPackageDetail = () => {\r\n GetPackageBySerNo(\r\n filterParaPackage.filter((x) => x.IsChecked == true)\r\n ).then((d) => {\r\n let orgData = d.data;\r\n\r\n let NewPackageDetails = [];\r\n orgData.PackageDetails.map((np) => {\r\n let n1 = NewPackageDetails.find(\r\n (x) =>\r\n x.PackageSerNo == np.PackageSerNo && x.RateSerNo == np.RateSerNo\r\n );\r\n let totalPrice =\r\n parseFloat(np.PackageRate) +\r\n (np.IsTaxInclusive\r\n ? 0\r\n : parseFloat(np.Taxes) /\r\n (parseInt(calculatedQty) / parseInt(nights)));\r\n let stayTotal =\r\n parseFloat(np.PackagePrice) +\r\n (np.IsTaxInclusive ? 0 : parseFloat(np.Taxes));\r\n if (n1 == undefined) {\r\n NewPackageDetails.push({\r\n RateSerNo: np.RateSerNo,\r\n PackageSerNo: np.PackageSerNo,\r\n Name: np.Name,\r\n PackageRate: np.PackageRate,\r\n PackagePrice: np.PackagePrice,\r\n CalculationRule: np.CalculationRule,\r\n PostingRhythm: np.PostingRhythm,\r\n PostingType: np.PostingType,\r\n Component: np.IsTaxInclusive\r\n ? np.PackageRate + \" Incl.Tax\"\r\n : np.PackageRate + \" + Tax\",\r\n Total: totalPrice.toFixed(2),\r\n StayTotal: stayTotal.toFixed(2),\r\n Person: adult + \"A, \" + child + \"C\",\r\n Qty: \"\",\r\n Action: \"\",\r\n });\r\n }\r\n });\r\n\r\n NewPackageDetails.map((np) => {\r\n let night = orgData.PackageDetails.filter(\r\n (x) =>\r\n x.RateSerNo == np.RateSerNo && x.PackageSerNo == np.PackageSerNo\r\n ).length;\r\n np.Nights = night;\r\n np.Qty = parseInt(calculatedQty);\r\n np.StayTotal = (parseFloat(np.StayTotal) * parseInt(nights)).toFixed(2);\r\n });\r\n\r\n orgData.NewPackageDetails = NewPackageDetails;\r\n\r\n setRateCodeDetail(orgData);\r\n console.log(\"Modified collection \", orgData);\r\n });\r\n };\r\n\r\n const calculateTaxAndTotal = () => {\r\n if (rateCodeDetail.PackageDetails != undefined) {\r\n let tax = 0;\r\n rateCodeDetail.TaxDetails.map((t) => {\r\n tax =\r\n tax +\r\n (t.TransType == \"D\"\r\n ? parseFloat(t.Amount)\r\n : parseFloat(t.Amount) * -1);\r\n });\r\n\r\n let T = 0;\r\n rateCodeDetail.PackageDetails.map((t) => {\r\n T =\r\n T +\r\n parseFloat(t.PackagePrice) +\r\n (t.IsTaxInclusive ? 0 : parseFloat(t.Taxes));\r\n });\r\n\r\n // if (adult != \"\") {\r\n // if (!isNaN(+adult))\r\n // tax = tax * parseInt(adult);\r\n // if (!isNaN(+adult))\r\n // T = T * parseInt(adult);\r\n // }\r\n setActualTotalTax(tax.toFixed(2));\r\n setActualTotal(T.toFixed(2));\r\n }\r\n };\r\n\r\n const reCalculateTax = () => {\r\n if(selectedPostingRhythmSerNo == 0){\r\n confirm({Message: \"Please select posting rhythm.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n return false;\r\n }\r\n else if(isNaN(nights) || nights == \"\" || nights < 0 ){\r\n confirm({Message: \"Please select at least one night.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n return false;\r\n }\r\n else if ((isNaN(adult) || adult == \"\" || adult <= 0) && selectedPackageDetail.CalculationRuleSerNo != \"PC\"){\r\n confirm({Message: \"Enter valid adult.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n return false;\r\n }\r\n else if((isNaN(child) || child == \"\" || child < 0 ) || ((isNaN(child) || child == \"\" || child <= 0 ) && selectedPackageDetail.CalculationRuleSerNo == \"PC\")){\r\n confirm({Message: \"Enter valid child.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n return false;\r\n }\r\n else if(isNaN(actualTotal) || actualTotal == \"\" || actualTotal <= 0 ){\r\n confirm({Message: \"Package with zero amount is not allowed.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n return false;\r\n }\r\n else{\r\n if (!isNaN(calculatedQty) && parseInt(calculatedQty) > 0) {\r\n modifiedPackageDetail();\r\n setIsBtnRefreshAmountClicked(true);\r\n } \r\n else {\r\n confirm({Message: \"Calculated quantity is invalid.\",Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n } \r\n }\r\n // if (!isNaN(calculatedQty) && parseInt(calculatedQty) > 0) {\r\n // modifiedPackageDetail();\r\n // } else {\r\n // //alert(\"Calculated quantity is invalid.\");\r\n // if ((isNaN(adult) || adult == \"\" || adult <= 0) && selectedPackageDetail.CalculationRuleSerNo != \"PC\"){\r\n // confirm({Message: \"Enter valid adult.\",\r\n // Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n // }\r\n // else if ((isNaN(child) || child == \"\" || child < 0 ) || ((isNaN(child) || child == \"\" || child <= 0 ) && selectedPackageDetail.CalculationRuleSerNo == \"PC\")){\r\n // confirm({Message: \"Enter valid child.\",\r\n // Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n // }\r\n // else if(isNaN(nights) || nights == \"\" || nights < 0 ){\r\n // confirm({Message: \"Please select at least one night.\",\r\n // Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n // }\r\n // else{\r\n // confirm({Message: \"Calculated quantity is invalid.\",\r\n // Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n // }\r\n // } \r\n };\r\n\r\n const funsetCalculatedQtyAndText = () => {\r\n let qty = 1;\r\n let qtyText = \"( \";\r\n if (selectedPackageDetail.CalculationRuleSerNo == \"PP\") {\r\n if (!isNaN(+adult) && !isNaN(+child)) {\r\n qty = parseInt(adult) + parseInt(child);\r\n qtyText = qtyText + \"(\" + adult + \" Adult + \" + child + \" Child) X \";\r\n } else {\r\n qty = 0;\r\n qtyText = qtyText + \"(\" + adult + \" Adult + \" + child + \" Child) X \";\r\n }\r\n } else if (selectedPackageDetail.CalculationRuleSerNo == \"PA\") {\r\n if (!isNaN(+adult)) {\r\n qty = parseInt(adult);\r\n qtyText = qtyText + adult + \" Adult X \";\r\n } else {\r\n qty = 0;\r\n qtyText = qtyText + adult + \" Adult X \";\r\n }\r\n setChild(\"0\");\r\n } else if (selectedPackageDetail.CalculationRuleSerNo == \"PC\") {\r\n if (!isNaN(+child)) {\r\n qty = parseInt(child);\r\n qtyText = qtyText + child + \" Child X \";\r\n } else {\r\n qty = 0;\r\n qtyText = qtyText + child + \" Child X \";\r\n }\r\n setAdult(\"0\");\r\n } else {\r\n qty = 1;\r\n }\r\n setNights(filterParaPackage.filter((x) => x.IsChecked == true).length);\r\n if (!isNaN(+nights) && !isNaN(+qty)) {\r\n qty = parseInt(nights) * qty;\r\n } else {\r\n qty = 0;\r\n }\r\n qtyText = qty + \" \" + qtyText + nights + \" Nights )\";\r\n\r\n setCalculatedQty(qty);\r\n setCalculatedQtyText(qtyText);\r\n }\r\n\r\n useEffect(() => {\r\n calculateTaxAndTotal();\r\n }, [adult, rateCodeDetail]);\r\n\r\n useEffect(() => {\r\n funsetCalculatedQtyAndText();\r\n }, [adult, nights, child, selectedPackageDetail]);\r\n\r\n useEffect(() => {\r\n console.log(\"props \", props.para);\r\n let storeExtraPackage;\r\n let storeIsTaxInclusive = props.para.IsTaxInclusive;\r\n if (props.para.Mode == \"EDIT\") {\r\n console.log(\"store is \", res, props.para);\r\n storeExtraPackage = res.extraPackage.find(\r\n (x) => x.PackageSerNo == props.para.PackageSerNo\r\n );\r\n if (storeExtraPackage.RateCodeDetail.PackageDetails != undefined) {\r\n let selectedPkg = storeExtraPackage.RateCodeDetail.PackageDetails[0];\r\n storeIsTaxInclusive = selectedPkg.IsTaxInclusive;\r\n setPkgIsTaxInclusive(storeIsTaxInclusive);\r\n setIsUpSell(selectedPkg.IsUpSell);\r\n setUpSellRemarks(selectedPkg.UpSellRemarks);\r\n if (selectedPkg.IsUpSell == true) {\r\n setIsUpSellDisable(true);\r\n }\r\n }\r\n }\r\n\r\n fillPostingRhythm();\r\n fillPostingType();\r\n\r\n let d =\r\n (new Date(props.para.DepartureDate) - new Date(props.para.ArrivalDate)) /\r\n (1000 * 60 * 60 * 24);\r\n let filterObj = [];\r\n // handle day used\r\n if (d == 0) d = 1;\r\n for (var i = 0; i < d; i++) {\r\n var result = new Date(props.para.ArrivalDate);\r\n result.setDate(result.getDate() + i);\r\n\r\n let obj = {\r\n ClientSerNo: props.para.ClientSerNo,\r\n PropertySerNo: props.para.PropertySerNo,\r\n PackageSerNo: parseInt(props.para.PackageSerNo),\r\n Adult: null,\r\n Child: null,\r\n Date: Moment(result).format(\"DD MMM YYYY\"),\r\n IsTaxInclusive:\r\n storeIsTaxInclusive == undefined ? false : storeIsTaxInclusive,\r\n PackagePrice: null,\r\n PackageRate: null,\r\n IsChecked:\r\n Moment(result).format(\"DD MMM YYYY\") ==\r\n Moment(props.para.ArrivalDate).format(\"DD MMM YYYY\")\r\n ? true\r\n : false,\r\n };\r\n\r\n if (props.para.Mode == \"EDIT\") {\r\n obj.IsChecked = false;\r\n obj.Adult = parseInt(storeExtraPackage.Adult);\r\n obj.Child = parseInt(storeExtraPackage.Child);\r\n if (storeExtraPackage.RateCodeDetail.PackageDetails != undefined) {\r\n storeExtraPackage.RateCodeDetail.PackageDetails.map((pkg) => {\r\n if (pkg.Date == Moment(result).format(\"DD MMM YYYY\")) {\r\n //obj.IsTaxInclusive = pkg.IsTaxInclusive;\r\n obj.IsChecked = true;\r\n obj.PackageRate = pkg.PackageRate;\r\n }\r\n });\r\n }\r\n }\r\n filterObj.push(obj);\r\n }\r\n setFilterParaPackage(filterObj);\r\n\r\n if (props.para.Mode == \"EDIT\") {\r\n let selectedPkg = storeExtraPackage.RateCodeDetail.PackageDetails[0];\r\n setRateCodeDetail(storeExtraPackage.RateCodeDetail);\r\n setAdult(storeExtraPackage.Adult);\r\n setChild(storeExtraPackage.Child);\r\n setNights(filterObj.filter((x) => x.IsChecked == true).length);\r\n setSelectedPostingTypeSerNo(selectedPkg.PostingTypeSerNo);\r\n setSelectedPostingTypeName(selectedPkg.PostingType);\r\n setSelectedPostingRhythmSerNo(selectedPkg.PostingRhythmSerNo);\r\n setSelectedPostingRhythmName(selectedPkg.PostingRhythm);\r\n } else {\r\n setNights(1);\r\n setAdult(\"0\");\r\n setChild(\"0\");\r\n }\r\n console.log(\"filter obj on load \", filterObj);\r\n fillSelectedPackageDetail(\r\n filterObj.filter(\r\n (x) =>\r\n Moment(x.Date).format(\"DD MMM YYYY\") ==\r\n Moment(props.para.ArrivalDate).format(\"DD MMM YYYY\")\r\n )\r\n );\r\n }, []);\r\n\r\n const handleOnchecked = (e) => {\r\n if (e.target.id) {\r\n let obj = filterParaPackage.find((x) => x.Date == e.target.id);\r\n if (obj != undefined) {\r\n let temp = [...filterParaPackage];\r\n temp\r\n .filter((x) => x.Date == e.target.id)\r\n .map((v) => {\r\n v.IsChecked = !v.IsChecked;\r\n });\r\n setFilterParaPackage(temp);\r\n setNights(temp.filter((x) => x.IsChecked == true).length);\r\n }\r\n }\r\n setIsBtnRefreshAmountClicked(false);\r\n };\r\n\r\n const handleOnInclChecked = (ischecked) => {\r\n let temp = [...filterParaPackage];\r\n temp.map((d) => {\r\n d.IsTaxInclusive = ischecked;\r\n });\r\n setFilterParaPackage(temp);\r\n setPkgIsTaxInclusive(ischecked);\r\n setIsBtnRefreshAmountClicked(false);\r\n };\r\n\r\n const handleOnRateChanged = (newRate) => {\r\n let temp = [...filterParaPackage];\r\n temp.map((d) => {\r\n d.PackageRate = newRate;\r\n });\r\n setFilterParaPackage(temp);\r\n };\r\n const handleOnAdultChange = (v) => {\r\n if (isNaN(v) || v < 0){\r\n confirm({Message: \"Enter valid adult.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n setAdult(0);\r\n setIsBtnRefreshAmountClicked(false);\r\n }\r\n //else if(v == \"\"){}\r\n else{\r\n if(adult != v){\r\n setIsBtnRefreshAmountClicked(false);\r\n }\r\n setAdult(v);\r\n if (!isNaN(+v)) {\r\n let temp = [...filterParaPackage];\r\n temp.map((d) => {\r\n d.Adult = parseInt(v);\r\n });\r\n setFilterParaPackage(temp);\r\n //console.log(\"filter \", filterParaPackage);\r\n }\r\n } \r\n };\r\n const handleOnChildChange = (v) => {\r\n if (isNaN(v) || v < 0){\r\n confirm({Message: \"Enter valid child.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n setChild(0);\r\n }\r\n //else if(v == \"\"){}\r\n else{\r\n setChild(v);\r\n if (!isNaN(+v)) {\r\n let temp = [...filterParaPackage];\r\n temp.map((d) => {\r\n d.Child = parseInt(v);\r\n });\r\n setFilterParaPackage(temp);\r\n }\r\n }\r\n setIsBtnRefreshAmountClicked(false);\r\n };\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n

    Package

    \r\n
    \r\n
    \r\n \r\n Add Package\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      Package Name
      \r\n
      \r\n {selectedPackageDetail.Name}\r\n
      \r\n
    • \r\n
    • \r\n
      Calculation Rule
      \r\n
      \r\n {selectedPackageDetail.CalculationRule}\r\n
      \r\n
    • \r\n
    • \r\n
      Price
      \r\n
      \r\n {selectedPackageDetail.PackageRate}{\" \"}\r\n {selectedPackageDetail.IsTaxInclusive\r\n ? \" Incl.Tax\"\r\n : \" + Tax\"}{\" \"}\r\n
      \r\n
    • \r\n
    • \r\n
      Taxes
      \r\n
      \r\n {selectedPackageDetail.Taxes}\r\n
      \r\n
    • \r\n
    • \r\n
      Total
      \r\n
      \r\n {selectedPackageDetail.IsTaxInclusive\r\n ? selectedPackageDetail.PackagePrice\r\n : (\r\n parseFloat(selectedPackageDetail.Taxes) +\r\n parseFloat(selectedPackageDetail.PackagePrice)\r\n ).toFixed(2)}\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedPostingRhythmSerNo(item.key);\r\n setSelectedPostingRhythmName(item.value);\r\n if (item.type == \"EN\") {\r\n let tempNights = [...filterParaPackage];\r\n tempNights.map(d => {\r\n d.IsChecked = true;\r\n })\r\n setFilterParaPackage(tempNights);\r\n }\r\n if (item.type == \"AN\") {\r\n let tempNights = [...filterParaPackage];\r\n tempNights.map((d, i) => {\r\n if (i == 0)\r\n d.IsChecked = true;\r\n else\r\n d.IsChecked = false;\r\n })\r\n setFilterParaPackage(tempNights);\r\n }\r\n if (item.type == \"LN\") {\r\n let tempNights = [...filterParaPackage];\r\n tempNights.map((d, i) => {\r\n if (i == (tempNights.length - 1))\r\n d.IsChecked = true;\r\n else\r\n d.IsChecked = false;\r\n })\r\n setFilterParaPackage(tempNights);\r\n }\r\n funsetCalculatedQtyAndText();\r\n setIsBtnRefreshAmountClicked(false);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n \r\n Adult\r\n \r\n
    \r\n
    \r\n \r\n Child\r\n \r\n
    \r\n
    \r\n console.log(v)}\r\n >\r\n Calculated Quantity\r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n {\r\n setActualPackagePrice(v);\r\n handleOnRateChanged(v);\r\n setIsBtnRefreshAmountClicked(false);\r\n }}\r\n tag=\"decimal\"\r\n >\r\n Price\r\n \r\n
    • \r\n
    • \r\n
      Taxes
      \r\n
      \r\n {actualTotalTax}\r\n
      \r\n
    • \r\n
    • \r\n
      Total
      \r\n
      \r\n {actualTotal}\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Refresh Amount\r\n \r\n
    \r\n \r\n Inclusive of Taxes\r\n \r\n
    \r\n { \r\n setSelectedPostingTypeSerNo(item.key); \r\n setSelectedPostingTypeName(item.value);\r\n }}\r\n >\r\n
    \r\n {props.para.IsUpSellable ? (\r\n <>\r\n {\r\n setIsUpSell(v);\r\n if (!v) {\r\n setUpSellRemarks(\"\");\r\n }\r\n }}\r\n >\r\n Up Sell\r\n \r\n { setUpSellRemarks(v) }}\r\n disabled={isUpSellDisable == true ? true : !isUpSell}\r\n >\r\n Up Sell Remarks\r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* { console.log(e); }} \r\n placeholder=\"Arriving\" calendarStartDay={1} label=\"Arriving\" >\r\n 12th Dec, 2021 for 2 Nights\r\n */}\r\n console.log(v)}\r\n >\r\n Arriving\r\n \r\n {\r\n filterParaPackage.map((d) => (\r\n \r\n {d.Date}\r\n \r\n ))\r\n // [...Array(nights)].map((e, i) => { console.log(\"checkbox is \" + ischecked); }} >Sun, 10th May)\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport {\r\n InnModalPopup,\r\n InnSearchTextbox,\r\n InnSingleRadioButton,\r\n InnTableGrid,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport actionDownArrow from \"../../../../assets/images/action-dwn-arrow.svg\";\r\nimport { AddPackageModalPopup } from \"./addPackageModalPopup\";\r\nimport { reservation, setExtraPackage, reSetExtraPackage } from \"../../../../reducer/frontSlice\";\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { GetRatePackage, cmbGetPackagePostingType } from \"../../../../services/reservationService\";\r\n\r\nexport function PackageSelectionModalPopup(props) {\r\n\r\n const res = useSelector(reservation);\r\n const dispatch = useDispatch();\r\n const [total, setTotal] = useState(\"0\");\r\n const [packageData, setPackageData] = useState([]);\r\n const [filPackageData, setFilPackageData] = useState([]);\r\n const [txtSearch, setTxtSearch] = useState(\"\");\r\n const [showAddPackage, setShowAddPackage] = useState(false);\r\n const [rateDetailData, setRateDetailData] = useState([]);\r\n //const [filterDataPackagesSelected, setFilterDataPackagesSelected] = useState([]);\r\n const [filterDataPackagesSelected, setFilterDataPackagesSelected] = useState([\r\n {\r\n \"PackageSerNo\": \"0\",\r\n \"Name\": \"\",\r\n \"CalculationRule\": \"\",\r\n \"PostingRhythm\": \"\",\r\n \"PostingType\": \"\",\r\n \"PackagePrice\": \"\",\r\n \"IsTaxInclusive\": \"\",\r\n \"Total\": \"\",\r\n \"Person\": \"\",\r\n \"Nights\": \"\",\r\n \"Qty\": \"\",\r\n \"StayTotal\": \"\",\r\n \"Action\": \"\"\r\n }\r\n ]);\r\n\r\n const [showPackageListDDModal, setShowPackageListDDModal] = useState(false);\r\n const [selectedPackage, setSelectedPackage] = useState(\"\");\r\n //const [selectedPackageInclusive, setSelectedPackageInclusive] = useState(false);\r\n const [gridSelectedItem, SetgridSelectedItem] = useState([]);\r\n const [temp, settemp] = useState(false);\r\n const [linkInfo, setlinkInfo] = useState({});\r\n const [packagePara, setPackagePara] = useState({ ...props.para, PackageSerNo: \"\", Mode: \"ADD\", IsTaxInclusive: false, IsUpSellable: false });\r\n\r\n\r\n const fillPackageData = () => {\r\n GetRatePackage(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ArrivalDate, props.para.DepartureDate).then(d => {\r\n setPackageData(d.data);\r\n setFilPackageData(d.data);\r\n console.log(\"package data \", d.data);\r\n })\r\n }\r\n\r\n const fillRateAndPackageFromStore = () => {\r\n let tempRateDetail = JSON.parse(JSON.stringify(res.rateDetailData));\r\n setInclusivePackges(tempRateDetail);\r\n //setRateDetailData(tempRateDetail); \r\n }\r\n\r\n const setInclusivePackges = (data) => {\r\n let distinctPkg = [];\r\n\r\n data.PackageDetails && data.PackageDetails.map(p => {\r\n let newPkg = distinctPkg.filter(x => x.PackageSerNo == p.PackageSerNo).length;\r\n if (newPkg == 0) {\r\n distinctPkg.push({ \"PackageSerNo\": p.PackageSerNo, \"Name\": p.Name, \"Adult\": p.Adult, \"Child\": p.Child });\r\n }\r\n })\r\n\r\n let o = {};\r\n o.RateCodeDetails = null;\r\n o.ChargeDetails = null;\r\n o.NewPackageDetails = [];\r\n o.PackageDetails = [];\r\n\r\n distinctPkg.map(dp => {\r\n\r\n o.PackageDetails = data.PackageDetails.filter(x => x.IsAdditional == false && x.PackageSerNo == dp.PackageSerNo);\r\n o.PackageDetails.map((np, i) => {\r\n if (i == 0) {\r\n let calculatedQty = 1;\r\n if (np.CalculationRuleSerNo == \"PP\") {\r\n calculatedQty = parseInt(np.Adult) + parseInt(np.Child);\r\n } else if (np.CalculationRuleSerNo == \"PA\") {\r\n calculatedQty = parseInt(np.Adult);\r\n } else if (np.CalculationRuleSerNo == \"PC\") {\r\n calculatedQty = parseInt(np.Child);\r\n } else {\r\n calculatedQty = 1;\r\n }\r\n\r\n let newPkg = o.NewPackageDetails.filter(x => x.PackageSerNo == np.PackageSerNo).length;\r\n let night = o.PackageDetails.filter(x => x.PackageSerNo == np.PackageSerNo).length;\r\n let totalPrice = (parseFloat(np.PackageRate) + (np.IsTaxInclusive ? 0 : (parseFloat(np.Taxes) / parseInt(calculatedQty))));\r\n let stayTotal = (parseFloat(np.PackagePrice) + (np.IsTaxInclusive ? 0 : parseFloat(np.Taxes)));\r\n if (newPkg == 0) {\r\n o.NewPackageDetails.push({\r\n //RateSerNo: np.RateSerNo,\r\n PackageSerNo: np.PackageSerNo,\r\n Name: np.Name,\r\n PackageRate: np.PackageRate,\r\n PackagePrice: np.PackagePrice,\r\n CalculationRule: np.CalculationRule,\r\n PostingRhythm: np.PostingRhythm,\r\n PostingType: np.PostingType,\r\n Component: (np.IsTaxInclusive ? np.PackageRate + \" Incl.Tax\" : np.PackageRate + \" + Tax\"),\r\n Total: totalPrice.toFixed(2),\r\n TotalPackagePrice: totalPrice.toFixed(2),\r\n Person: np.Adult + \"A, \" + np.Child + \"C\",\r\n Action: \"Included\",\r\n Nights: night,\r\n Qty: calculatedQty * night,\r\n StayTotal: (parseFloat(stayTotal) * parseInt(night)).toFixed(2),\r\n IsUpSell: np.IsUpSell\r\n });\r\n }\r\n }\r\n })\r\n })\r\n setRateDetailData(o);\r\n }\r\n\r\n useEffect(() => {\r\n fillRateAndPackageFromStore();\r\n fillPackageData();\r\n\r\n let temp = JSON.parse(JSON.stringify(res.extraPackage));\r\n let existingPackage = [];\r\n temp.map(d => {\r\n if (d.RateCodeDetail.NewPackageDetails.length > 0) {\r\n d.RateCodeDetail.NewPackageDetails.map(c => {\r\n if (c.IsUpSell) {\r\n c.imgclass = \"upgrade-arrow\";\r\n //c.imgposition = \"left\";\r\n }\r\n else {\r\n c.imgclass = \"\";\r\n //c.imgposition = \"left\";\r\n }\r\n existingPackage.push(c);\r\n })\r\n\r\n }\r\n })\r\n\r\n\r\n console.log(\"extra pack \", temp);\r\n if (existingPackage.length == 0) {\r\n existingPackage = [{\r\n \"PackageSerNo\": \"0\",\r\n \"Name\": \"\",\r\n \"CalculationRule\": \"\",\r\n \"PostingRhythm\": \"\",\r\n \"PostingType\": \"\",\r\n \"PackagePrice\": \"\",\r\n \"IsTaxInclusive\": \"\",\r\n \"Total\": \"\",\r\n \"Person\": \"\",\r\n \"Nights\": \"\",\r\n \"Qty\": \"\",\r\n \"StayTotal\": \"\",\r\n \"Action\": \"\"\r\n }]\r\n //existingPackage = [];\r\n }\r\n setFilterDataPackagesSelected(existingPackage);\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n let grandTotal = 0;\r\n res.extraPackage.map(d => {\r\n let total = 0;\r\n d.RateCodeDetail.PackageDetails.map(p => {\r\n total += parseFloat(p.PackagePrice) + (p.IsTaxInclusive ? 0 : parseFloat(p.Taxes));\r\n })\r\n //total = total * parseInt(d.Adult);\r\n grandTotal += total;\r\n })\r\n setTotal(grandTotal.toFixed(2));\r\n\r\n }, [res.extraPackage]);\r\n\r\n const setSelectedItem = (items) => {\r\n SetgridSelectedItem(items);\r\n settemp(!temp);\r\n };\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n }\r\n\r\n const handleSearchChange = (v) => {\r\n let filList = packageData.filter(obj => obj.Name.toLowerCase().includes(v.toLowerCase()));\r\n setTxtSearch(v);\r\n setFilPackageData(filList);\r\n }\r\n\r\n const handleOnEditDelete = (v) => {\r\n if (v.grpname == \"edit\" && v.id !== \"0\") {\r\n console.log(\"edit is \", v.id);\r\n let pkg = packageData.find(x => x.PackageSerNo == v.id);\r\n if (pkg != undefined) {\r\n setPackagePara(prev => ({ ...prev, IsUpSellable: pkg.IsUpSellable }));\r\n }\r\n setPackagePara(prev => ({ ...prev, PackageSerNo: v.id }));\r\n setPackagePara(prev => ({ ...prev, Mode: \"EDIT\" }));\r\n setShowAddPackage(true);\r\n }\r\n if (v.grpname == \"delete\" && v.id !== \"0\") {\r\n let temp = res.extraPackage.filter(x => x.PackageSerNo != v.id);\r\n dispatch(reSetExtraPackage(temp));\r\n let temp2 = filterDataPackagesSelected.filter(x => x.PackageSerNo != v.id);\r\n if (temp2.length == 0) {\r\n temp2 = [{\r\n \"PackageSerNo\": \"0\",\r\n \"Name\": \"\",\r\n \"CalculationRule\": \"\",\r\n \"PostingRhythm\": \"\",\r\n \"PostingType\": \"\",\r\n \"PackagePrice\": \"\",\r\n \"IsTaxInclusive\": \"\",\r\n \"Total\": \"\",\r\n \"Person\": \"\",\r\n \"Nights\": \"\",\r\n \"Qty\": \"\",\r\n \"StayTotal\": \"\",\r\n \"Action\": \"\"\r\n }]\r\n //temp2 = [];\r\n }\r\n setFilterDataPackagesSelected(temp2);\r\n }\r\n }\r\n\r\n const handleOnPackageSave = (v) => {\r\n console.log(v);\r\n let extraPackage = filterDataPackagesSelected.filter(x => x.PackageSerNo != 0 && x.PackageSerNo != v.PackageSerNo);\r\n extraPackage.push(v);\r\n console.log(\"after selection \", extraPackage);\r\n setFilterDataPackagesSelected(extraPackage);\r\n setShowAddPackage(false)\r\n }\r\n const handleOnPackageSelection = (value) => {\r\n console.log(value);\r\n let packageExist = filterDataPackagesSelected.find(x => x.PackageSerNo == value);\r\n let pkg = packageData.find(x => x.PackageSerNo == value);\r\n if (packageExist == undefined) {\r\n setSelectedPackage(value);\r\n setPackagePara(prev => ({ ...prev, PackageSerNo: value }));\r\n setPackagePara(prev => ({ ...prev, Mode: \"ADD\" }));\r\n setShowPackageListDDModal(!showPackageListDDModal);\r\n setShowAddPackage(!showAddPackage);\r\n if (pkg != undefined) {\r\n setPackagePara(prev => ({ ...prev, IsUpSellable: pkg.IsUpSellable }));\r\n }\r\n } else {\r\n alert(\"Selected Package already exist.\")\r\n }\r\n }\r\n\r\n\r\n const columHeaderPackages = [\r\n { key: \"Package Name\", value: \"Name\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Calculation Rule\", value: \"CalculationRule\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Posting Rhythm\", value: \"PostingRhythm\", type: \"texticon\", sorting: \"N\", align: \"left\", icon: \"info-dark-gray-icon ml-1 d-none\", iconposition: \"left\", },\r\n { key: \"Posting Type\", value: \"PostingType\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Component\", value: \"Component\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Total\", value: \"Total\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Person\", value: \"Person\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Qty\", value: \"Qty\", type: \"txt\", sorting: \"N\" },\r\n {\r\n key: \"Action\",\r\n value: \"Action\",\r\n type: \"status\",\r\n sorting: \"N\",\r\n align: \"left\",\r\n },\r\n ];\r\n\r\n const columHeaderPackagesSelected = [\r\n { key: \"\", value: \"path\", type: \"textimg\", sorting: \"N\" },\r\n { key: \"Package Name\", value: \"Name\", type: \"lnk\", sorting: \"N\" },\r\n { key: \"Calculation Rule\", value: \"CalculationRule\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Posting Rhythm\", value: \"PostingRhythm\", type: \"txt\", sorting: \"N\", align: \"left\", icon: \"info-dark-gray-icon ml-1 d-none\", iconposition: \"left\" },\r\n { key: \"Posting Type\", value: \"PostingType\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Rate\", value: \"PackageRate\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Total\", value: \"Total\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Person\", value: \"Person\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Night\", value: \"Nights\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Qty\", value: \"Qty\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Stay Total\", value: \"StayTotal\", type: \"txt\", sorting: \"N\" },\r\n {\r\n key: \"Action\",\r\n value: \"Action\",\r\n type: \"btnGrp\",\r\n btnClass: [\r\n { c1: \"pencil-btn\", type: \"edit\" },\r\n { c1: \"close-3d\", type: \"delete\" },\r\n ],\r\n sorting: \"N\",\r\n align: \"center\",\r\n },\r\n ];\r\n\r\n\r\n // This Function Called When use click outside package list DD\r\n const wrapperRef = useRef(null);\r\n\r\n const handleClickOuside = (e) => {\r\n if (wrapperRef.current && !wrapperRef.current.contains(e.target)) {\r\n setShowPackageListDDModal(false);\r\n }\r\n };\r\n //#region useEffect \r\n useEffect(() => {\r\n document.addEventListener(\"click\", handleClickOuside, false);\r\n return () => {\r\n //document.removeEventListener(\"click\", handleClickOuside, false);\r\n };\r\n });\r\n // End outside click\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n

    Available Packages

    \r\n
    \r\n
    \r\n
    \r\n \r\n setShowPackageListDDModal(!showPackageListDDModal)\r\n }\r\n >\r\n Add Packages\r\n \r\n \r\n \r\n \r\n {showPackageListDDModal ? (\r\n \r\n
    \r\n
    \r\n
    \r\n Add Packages\r\n
    \r\n
    \r\n
    \r\n handleSearchChange(v)}>\r\n Search\r\n \r\n
    \r\n
    \r\n {/* custom HTML Start*/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n */}\r\n \r\n \r\n \r\n {filPackageData.map((o, i) => (\r\n {\r\n console.log(e);\r\n handleOnPackageSelection(e.target.id);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n {/* \r\n */}\r\n \r\n ))}\r\n \r\n
    \r\n
    \r\n
    Package NameCalculation RulePriceTaxesTotal
    \r\n
    \r\n \r\n
    \r\n
    {o.Name} {o.IsUpSellable ? : <>} {o.CalculationRule}{o.PackagePrice} {o.IsTaxInclusive ? \" Incl.Tax\" : \" + Tax\"}{o.Taxes}{o.Total}
    \r\n {/* custom HTML End*/}\r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedItem(items);\r\n }}\r\n fixedHeaderNo={1}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n setlinkInfo(v);\r\n }}\r\n pagination={false}\r\n optClick={(v, d) => {\r\n console.log(v, d);\r\n }}\r\n // handleGrpBtn={(v, d) => {\r\n // console.log(v, d);\r\n // }}\r\n // handleIconClick={(d) => {\r\n // console.log(d);\r\n // }}\r\n // footer={true}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n fixedHeaderNo={1}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n setlinkInfo(v);\r\n setShowAddPackage(true);\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"PackageSerNo\"\r\n optClick={(v, d) => {\r\n console.log(v, d);\r\n }}\r\n handleGrpBtn={(v, d) => {\r\n handleOnEditDelete(v[0]);\r\n }}\r\n handleIconClick={(d) => {\r\n console.log(d);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n Total :\r\n {total}\r\n
    \r\n
    \r\n\r\n\r\n {showAddPackage == true && (\r\n setShowAddPackage(false)} packageSerNo={selectedPackage}\r\n handleOnAdd={handleOnPackageSave} >\r\n )}\r\n
    \r\n \r\n )\r\n}","import axios from \"axios\";\r\n\r\n//#region GuestProfileIdentification\r\nexport const AddEditGuestProfileIdentification = (para) => {\r\n const apiUrl = \"/ProfileMaster/manage-guest-profile-identification\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const GetGuestProfileIdentificationList = (ClientSerNo, ProfileSerNo) => {\r\n const apiUrl = \"/ProfileMaster/manage-guest-profile-identification/\" + ClientSerNo + \"/\" + ProfileSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetIdentificationTypeMaster = () => {\r\n const apiUrl = \"/IdentificationTypeMaster/manage-identifications\";\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetCountryMaster = (ClientSerNo) => {\r\n const apiUrl = \"/CountryMaster/manage-country/\" + ClientSerNo;\r\n return axios.get(apiUrl)\r\n}\r\n//#endregion\r\n\r\n//#region Profile Master\r\nexport const GetGuestProfileList = (para) => {\r\n const apiUrl = \"/ProfileMaster/manage-guest-profile-list\"\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const AddEditGuestProfileInfo = (para) => {\r\n const apiUrl = \"/ProfileMaster/manage-guest-profile\"\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const GetGuestProfileBySerNo = (ClientSerNo, ProfileSerNo) => {\r\n const apiUrl = \"/ProfileMaster/manage-guest-profile/\" + ClientSerNo + \"/\" + ProfileSerNo\r\n return axios.get(apiUrl);\r\n}\r\n//#endregion\r\n\r\nexport const GetGuestProfileRelationship = (ClientSerNo, ProfileSerNo) => {\r\n const apiUrl = \"/ProfileMaster/manage-guest-profile-relationship/\" + ClientSerNo + \"/\" + ProfileSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetRelationShipTypeMaster = () => {\r\n const apiUrl = \"/RelationShipType/manage-relationshiptypes/\";\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditGuestRelationship = (para) => {\r\n const apiUrl = \"/ProfileMaster/manage-guest-relationship\";\r\n return axios.post(apiUrl, para);\r\n}\r\n//#region Guest Profile InternalComment\r\nexport const GetGuestProfileInternalComment = (ClientSerNo, ProfileSerNo) => {\r\n const apiUrl = \"/ProfileMaster/manage-guest-profile-comment/\" + ClientSerNo + \"/\" + ProfileSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion \r\n//#region AddEditGuestProfileComment\r\nexport const AddEditGuestProfileComment = (para) => {\r\n const apiUrl = \"/ProfileMaster/manage-guest-profile-comment\"\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion\r\n//#region Guest Profile InternalComment\r\nexport const GetNoteTypeMaster = () => {\r\n const apiUrl = \"/NoteTypeMaster/manage-notetype/\";\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion \r\n//#region Guest Profile Corres Privacy Profile Correspondence Post\r\nexport const EditGuestProfileCorrespondence = (para) => {\r\n const apiUrl = \"/ProfileMaster/manage-guestprofile-correspondence\"\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion\r\n//#region Guest Profile Corres Privacy Profile Correspondence Get\r\nexport const GetGuestProfileCorrespondence = (ClientSerNo, ProfileSerNo) => {\r\n const apiUrl = \"/ProfileMaster/manage-guestprofile-correspondence/\" + ClientSerNo + \"/\" + ProfileSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion \r\n\r\nexport const GetCompanyProfileContactDetailList = (ClientSerNo, CompanyProfileSerNo) => {\r\n const apiUrl = \"/Profile/manage-company-profile-contact-detail-list/\" + ClientSerNo + \"/\" + CompanyProfileSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditCompanyProfileContactDetail = (para) => {\r\n const apiUrl = \"/Profile/manage-company-profile-contact-detail\";\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\n//#region Company Profile Master\r\nexport const GetCompanyProfileIdentification = (ClientSerNo, CompanyProfileSerNo) => {\r\n const apiUrl = \"/Profile/manage-company-profile-identification/\" + ClientSerNo + \"/\" + CompanyProfileSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const AddEditCompanyProfileIdentification = (para) => {\r\n const apiUrl = \"/Profile/manage-company-profile-identification\";\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion\r\n\r\n//#region Company Profile Sales\r\nexport const GetIndustryMaster = () => {\r\n const apiUrl = \"/IndustryMaster/manage-industry\";\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const EditCompanySalesInfo = (para) => {\r\n const apiUrl = \"/Profile/manage-company-profile-sales-info\";\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion\r\n//#region company Profile InternalComment\r\nexport const GetCompanyProfileComment = (ClientSerNo, CompanyProfileSerNo) => {\r\n const apiUrl = \"/Profile/manage-company-profile-commentList/\" + ClientSerNo + \"/\" + CompanyProfileSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion \r\n//#region AddEditCompanyProfileComment\r\nexport const AddEditCompanyProfileComment = (para) => {\r\n const apiUrl = \"/Profile/manage-company-profile-comment\"\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion//#endregion \r\n\r\n//#region Add Edit Company Profile\r\nexport const AddEditCompanyProfileInfo = (para) => {\r\n const apiUrl = \"/Profile/manage-company-profile-master\"\r\n return axios.post(apiUrl,para);\r\n}\r\n//#endregion\r\n//#region GetCompanyProfileBySerNo\r\nexport const GetCompanyProfileBySerNo = (ClientSerNo, CompanyProfileSerNo) => {\r\n const apiUrl = \"/Profile/manage-company-profileBySerNo/\" + ClientSerNo + \"/\" + CompanyProfileSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n//#endregion\r\n//#region GetGuestProfileInfoData\r\nexport const GetGuestProfileInfoData = (ClientSerNo, ProfileSerNo) => {\r\n const apiUrl = \"/ProfileMaster/manage-guest-profile-info-data/\" + ClientSerNo + \"/\" + ProfileSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n//#endregion","export default __webpack_public_path__ + \"static/media/history-clock-icon.e7def69d.svg\";","export default __webpack_public_path__ + \"static/media/bell-orange-icon.ec509ce5.svg\";","export default __webpack_public_path__ + \"static/media/three-dot-icon-white.49756a28.svg\";","export default __webpack_public_path__ + \"static/media/sharer-secondary.98dc972c.svg\";","export default __webpack_public_path__ + \"static/media/sharer-primary.44a18566.svg\";","import axios from \"axios\";\r\n\r\nexport const GetReservationReportList = (para) => {\r\n let apiUrl = \"/ReservationReport/manage-reservation-report\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const GetReportMaster = () => {\r\n let apiUrl = \"/ReservationReport/manage-report-master\";\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetReportFilterMaster = (ReportSerNo) => {\r\n let apiUrl = \"/ReservationReport/manage-report-filter-master/\" + ReportSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetReportColumnMaster = (ReportSerNo) => {\r\n let apiUrl = \"/ReservationReport/manage-report-column-master/\" + ReportSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetArrivalReport = (para) => {\r\n let apiUrl = \"/ArrivalReport/manage-arrival-report\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const GetArrivalReportPaymode = (ClientSerNo, PropertySerNo, FromDate, ToDate) => {\r\n let apiUrl = \"/ArrivalReport/manage-arrival-report-paymode/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + FromDate + '/'\r\n + ToDate;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetArrivalReportInclusivePkg = (ClientSerNo, PropertySerNo, FromDate, ToDate, InclPackageSerNo) => {\r\n let apiUrl = \"/ArrivalReport/manage-arrival-report-inclusive-pkg/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + FromDate + '/'\r\n + ToDate + '/'\r\n + InclPackageSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetArrivalReportAdditionalPkg = (ClientSerNo, PropertySerNo, FromDate, ToDate, ExclPakcageSerNo,DtType) => {\r\n let apiUrl = \"/ArrivalReport/manage-arrival-report-additional-pkg/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + FromDate + '/'\r\n + ToDate + '/'\r\n + ExclPakcageSerNo + \"/\"\r\n + DtType;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetArrivalReportDropTransportation = (ClientSerNo, PropertySerNo, FromDate, ToDate) => {\r\n let apiUrl = \"/ArrivalReport/manage-arrival-report-drop-transportation/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + FromDate + '/'\r\n + ToDate;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetArrivalReportInternalComment = (ClientSerNo, PropertySerNo, FromDate, ToDate) => {\r\n let apiUrl = \"/ArrivalReport/manage-arrival-report-internal-comment/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + FromDate + '/'\r\n + ToDate;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetArrivalReportRoomFeature = (ClientSerNo, PropertySerNo, FromDate, ToDate) => {\r\n let apiUrl = \"/ArrivalReport/manage-arrival-report-room-feature/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + FromDate + '/'\r\n + ToDate;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetArrivalReportRoomRouting = (ClientSerNo, PropertySerNo, FromDate, ToDate) => {\r\n let apiUrl = \"/ArrivalReport/manage-arrival-report-room-routing/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + FromDate + '/'\r\n + ToDate;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetArrivalReportWindowRouting = (ClientSerNo, PropertySerNo, FromDate, ToDate) => {\r\n let apiUrl = \"/ArrivalReport/manage-arrival-report-window-routing/\"\r\n + ClientSerNo + '/'\r\n + PropertySerNo + '/'\r\n + FromDate + '/'\r\n + ToDate;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetArrivalReportReservationBalance = (ClientSerNo, PropertySerNo, FromDate, ToDate) => {\r\n let apiUrl = \"/ArrivalReport/manage-arrival-report-balance/\"\r\n + ClientSerNo + \"/\"\r\n + PropertySerNo + \"/\"\r\n + FromDate + \"/\"\r\n + ToDate;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetArrivalReportPastStay = (ClientSerNo, PropertySerNo, FromDate, ToDate,DtType) => {\r\n let apiUrl = \"/ArrivalReport/manage-arrival-report-past-stay/\"\r\n + ClientSerNo + \"/\"\r\n + PropertySerNo + \"/\"\r\n + FromDate + \"/\"\r\n + ToDate + \"/\"\r\n + DtType;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetArrivalReportLastRoom = (ClientSerNo, PropertySerNo, FromDate, ToDate) => {\r\n let apiUrl = \"/ArrivalReport/manage-arrival-report-last-room/\"\r\n + ClientSerNo + \"/\"\r\n + PropertySerNo + \"/\"\r\n + FromDate + \"/\"\r\n + ToDate;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetCancellationReport = (para) => {\r\n let apiUrl = \"/CancellationReport/manage-cancellation-report\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\n\r\nexport const GetPMNonBlockDetailReport = (ClientSerNo, PropertySerNo, PaymodeSerNo) => {\r\n let apiUrl = \"/PMNonBlockDetailReport/manage-pm-nonblock-detail-report/\" + ClientSerNo + \"/\"\r\n + PropertySerNo + \"/\" + PaymodeSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetOpenFolioDetailReport = (para) => {\r\n let apiUrl = \"/OpenFolioDetailReport/manage-open-folio-report\";\r\n return axios.post(apiUrl,para);\r\n}\r\n\r\nexport const GetRateVarianceReport = (para) => {\r\n let apiUrl = \"/RateVarianceReport/manage-rate-variance-report\";\r\n return axios.post(apiUrl,para);\r\n}\r\n\r\nexport const GetNoShowReport = (para) => {\r\n let apiUrl = \"/NoShowReport/manage-no-show-report\";\r\n return axios.post(apiUrl,para);\r\n}\r\n\r\nexport const GetEarlyDepartureReport = (para) => {\r\n let apiUrl = \"/EarlyDepartureReport/manage-early-departure-report\";\r\n return axios.post(apiUrl,para);\r\n}\r\n\r\nexport const GetReservationDetailReport = (para) => {\r\n let apiUrl = \"/ReservationDetailReport/manage-reservationdetail-report\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const GetArrivalReportRoomSpecial = (ClientSerNo, PropertySerNo, FromDate, ToDate,DtType) => {\r\n let apiUrl = \"/ArrivalReport/manage-arrival-report-room-special/\"\r\n + ClientSerNo + \"/\"\r\n + PropertySerNo + \"/\"\r\n + FromDate + \"/\"\r\n + ToDate + \"/\"\r\n + DtType;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetReservationDepartureReport = (para) => {\r\n let apiUrl = \"/ReservationDepartureReport/manage-reservation-departure-report\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const GetReservationInHouseReport = (para) => {\r\n let apiUrl = \"/ReservationInHouseReport/manage-reservation-inhouse-report\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const GetReservationCreditLimitReport = (para) => {\r\n let apiUrl = \"/ReservationCreditLimitReport/manage-reservation-credit-limit-report\";\r\n return axios.post(apiUrl, para);\r\n};","import { ReservationListFilterModel } from \"../utils/Model/ReservationListFilterModel\";\r\nimport axios from \"axios\";\r\n\r\n\r\n\r\nexport const cmbGetMemberShipLvl = (clientSerNo) => {\r\n const apiUrl = \"/CmbKeyValue/cmbGetMemberShipLvl/\" + clientSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const cmbGetRateCodeMaster = (clientSerNo, propertySerNo) => {\r\n const apiUrl =\r\n \"/CmbKeyValue/cmbGetRateCodeMaster/\" + clientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const cmbGetRoomMaster = (clientSerNo, propertySerNo) => {\r\n const apiUrl =\r\n \"/CmbKeyValue/cmbGetRoomMaster/\" + clientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const cmbGetReservationStatus = () => {\r\n const apiUrl = \"/CmbKeyValue/cmbGetReservationStatus\";\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const cmbGetReservationTypeMaster = (clientSerNo, propertySerNo) => {\r\n const apiUrl =\r\n \"/CmbKeyValue/cmbGetReservationTypeMaster/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const cmbGetRoomTypeMaster = (clientSerNo, propertySerNo) => {\r\n const apiUrl =\r\n \"/CmbKeyValue/cmbGetRoomTypeMaster/\" + clientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetRoomTypeMaster = (clientSerNo, propertySerNo) => {\r\n const apiUrl =\r\n \"/RoomType/manage-room-types/\" + clientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const cmbGetVIPStatusMaster = (clientSerNo, propertySerNo) => {\r\n const apiUrl =\r\n \"/CmbKeyValue/cmbGetVIPStatusMaster/\" + clientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetPropertyParameterByKeys = (\r\n clientSerNo,\r\n propertySerNo,\r\n keys\r\n) => {\r\n const apiUrl =\r\n \"/CmbKeyValue/GetPropertyParameterByKeys/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n keys;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const cmbGetAgentMaster = (\r\n clientSerNo,\r\n propertySerNo,\r\n FilterText,\r\n PageNumber,\r\n ProfileType\r\n) => {\r\n const apiUrl =\r\n \"/CmbKeyValue/cmbGetAgentMaster/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n FilterText +\r\n \"/\" +\r\n PageNumber +\r\n \"/\" +\r\n ProfileType;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetReservationList = (pageNumber, filData) => {\r\n const apiUrl = \"/Reservation/manage-reservation-list\";\r\n ReservationListFilterModel.Data.ClientSerNo = filData.ClientSerNo;\r\n ReservationListFilterModel.Data.PropertySerNo = filData.PropertySerNo;\r\n ReservationListFilterModel.Data.PageNumber = pageNumber;\r\n ReservationListFilterModel.Data.SortCol = filData.SortCol;\r\n ReservationListFilterModel.Data.SortType = filData.SortType;\r\n ReservationListFilterModel.Data.FromDate = filData.FromDate;\r\n ReservationListFilterModel.Data.ToDate = filData.ToDate;\r\n ReservationListFilterModel.Data.BookingNo = filData.BookingNo;\r\n ReservationListFilterModel.Data.FirstName = filData.FirstName;\r\n ReservationListFilterModel.Data.LastName = filData.LastName;\r\n ReservationListFilterModel.Data.RoomTypeSerNo = parseInt(\r\n filData.RoomTypeSerNo\r\n );\r\n ReservationListFilterModel.Data.ReservationStatus = filData.ReservationStatus;\r\n ReservationListFilterModel.Data.MembershipNo = filData.MembershipNo;\r\n ReservationListFilterModel.Data.RateSerNo = parseInt(filData.RateSerNo);\r\n ReservationListFilterModel.Data.ReservationTypeSerNo = parseInt(\r\n filData.ReservationTypeSerNo\r\n );\r\n ReservationListFilterModel.Data.VIPLevelSerNo = parseInt(\r\n filData.VIPLevelSerNo\r\n );\r\n ReservationListFilterModel.Data.BookingReferenceNo =\r\n filData.BookingReferenceNo;\r\n if (filData.Adult === \"\") ReservationListFilterModel.Data.Adult = 0;\r\n else ReservationListFilterModel.Data.Adult = parseInt(filData.Adult);\r\n if (filData.Child === \"\") ReservationListFilterModel.Data.Child = 0;\r\n else ReservationListFilterModel.Data.Child = parseInt(filData.Child);\r\n if (filData.NightsFrom === \"\") ReservationListFilterModel.Data.NightsFrom = 0;\r\n else\r\n ReservationListFilterModel.Data.NightsFrom = parseInt(filData.NightsFrom);\r\n if (filData.NightsTo === \"\") ReservationListFilterModel.Data.NightsTo = 0;\r\n else ReservationListFilterModel.Data.NightsTo = parseInt(filData.NightsTo);\r\n\r\n ReservationListFilterModel.Data.IsIncognitoName = filData.IsIncognitoName;\r\n ReservationListFilterModel.Data.strMemberShipLevel =\r\n filData.strMemberShipLevel;\r\n //ReservationListFilterModel.Data.strMemberShipLevel = ReservationListFilterModel.Data.strMemberShipLevel.substring(0,ReservationListFilterModel.Data.strMemberShipLevel.length -1)\r\n console.log(\"sub string\", ReservationListFilterModel);\r\n return axios.post(apiUrl, ReservationListFilterModel.Data);\r\n};\r\n\r\nexport const GetGuestProfileByFilter = (para) => {\r\n const apiUrl = \"/Profile/manage-profile-list\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const GetGuestProfileByFilterWithNo = (clientSerNo, profileSerNo) => {\r\n const apiUrl =\r\n \"/Profile/manage-profile/\" +\r\n clientSerNo +\r\n \"/\" +\r\n profileSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetAgentCompanyProfileByFilterWithNo = (\r\n clientSerNo,\r\n profileSerNo,\r\n propertySerNo,\r\n fromDate,\r\n toDate\r\n) => {\r\n const apiUrl =\r\n \"/Profile/manage-agent-company-profile/\" +\r\n clientSerNo +\r\n \"/\" +\r\n profileSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n fromDate +\r\n \"/\" +\r\n toDate;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetPropertyMaster = (clientSerNo) => {\r\n const apiUrl = \"/CmbKeyValue/GetPropertyMaster/\" + clientSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetAgentCompanyProfileByFilter = (para) => {\r\n const apiUrl = \"/Profile/manage-agent-company-profile\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const GetReservationType = (clientSerNo, profileSerNo, arrivalDate) => {\r\n const apiUrl =\r\n \"/ReservationType/manage-reservation-type/\" +\r\n clientSerNo +\r\n \"/\" +\r\n profileSerNo +\r\n \"/\" +\r\n arrivalDate;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const cmbGetMarketMaster = (clientSerNo, propertySerNo) => {\r\n const apiUrl =\r\n \"/CmbKeyValue/cmbGetMarketMaster/\" + clientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const cmbGetSourceMaster = (clientSerNo, propertySerNo) => {\r\n const apiUrl =\r\n \"/CmbKeyValue/cmbGetSourceMaster/\" + clientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const cmbGetBillingInstructionMaster = (clientSerNo, profileSerNo) => {\r\n const apiUrl =\r\n \"/CmbKeyValue/cmbGetBillingInstructionMaster/\" +\r\n clientSerNo +\r\n \"/\" +\r\n profileSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const cmbGetProfileTitleMaster = (clientSerNo) => {\r\n const apiUrl = \"/CmbKeyValue/cmbGetProfileTitleMaster/\" + clientSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetSpecialMaster = (clientSerNo, profileSerNo) => {\r\n const apiUrl =\r\n \"/Special/manage-specials/\" + clientSerNo + \"/\" + profileSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const cmbGetRateGroupMaster = (clientSerNo, propertySerNo) => {\r\n const apiUrl =\r\n \"/CmbKeyValue/cmbGetRateGroupMaster/\" + clientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetReservationRateCode = (\r\n clientSerNo,\r\n propertySerNo,\r\n fromDate,\r\n toDate,\r\n roomTypeSerNo,\r\n rateGroupSerNo,\r\n adult,\r\n child,\r\n agentCompanyProfileSerNo,\r\n isDayUse,\r\n allRate\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-ratecode/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n fromDate +\r\n \"/\" +\r\n toDate +\r\n \"/\" +\r\n roomTypeSerNo +\r\n \"/\" +\r\n rateGroupSerNo +\r\n \"/\" +\r\n adult +\r\n \"/\" +\r\n child +\r\n \"/\" +\r\n agentCompanyProfileSerNo +\r\n \"/\" +\r\n isDayUse +\r\n \"/\" +\r\n allRate;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetReservationRoomRateSummary = (\r\n clientSerNo,\r\n propertySerNo,\r\n roomTypeSerNo,\r\n rateCodeSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-roomrate-summary/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n roomTypeSerNo +\r\n \"/\" +\r\n rateCodeSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetRateAndPackageRate = (\r\n clientSerNo,\r\n propertySerNo,\r\n discAmount,\r\n isDiscPer,\r\n rateCodeSerNo,\r\n roomTypeSerNo,\r\n fromDate,\r\n toDate,\r\n adult,\r\n child,\r\n taxableAmount,\r\n companyProfileSerNo,\r\n agentProfileSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-rate-and-package-rate/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n discAmount +\r\n \"/\" +\r\n isDiscPer +\r\n \"/\" +\r\n rateCodeSerNo +\r\n \"/\" +\r\n roomTypeSerNo +\r\n \"/\" +\r\n fromDate +\r\n \"/\" +\r\n toDate +\r\n \"/\" +\r\n adult +\r\n \"/\" +\r\n child +\r\n \"/\" +\r\n taxableAmount +\r\n \"/\" +\r\n companyProfileSerNo +\r\n \"/\" +\r\n agentProfileSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetModifiedRateAndPackageRate = (ModifiedRate) => {\r\n const apiUrl = \"/Reservation/manage-modified-rate-and-package-rate\";\r\n return axios.post(apiUrl, ModifiedRate);\r\n};\r\n\r\nexport const GetRatePackage = (\r\n clientSerNo,\r\n propertySerNo,\r\n fromDate,\r\n toDate\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-rate-package/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n fromDate +\r\n \"/\" +\r\n toDate;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const cmbGetPackagePostingType = () => {\r\n const apiUrl = \"/CmbKeyValue/GetPackagePostingType\";\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const cmbGetPackagePostingRhythm = () => {\r\n const apiUrl = \"/CmbKeyValue/GetPackagePostingRhythm\";\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetPackageBySerNo = (para) => {\r\n const apiUrl = \"/Reservation/manage-packages\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const GetCalculatedTaxByTransaction = (\r\n clientSerNo,\r\n propertySerNo,\r\n discAmount,\r\n isDiscPer,\r\n isTaxInclusive,\r\n transactionSerNo,\r\n taxableAmount\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-transaction-taxes/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n discAmount +\r\n \"/\" +\r\n isDiscPer +\r\n \"/\" +\r\n isTaxInclusive +\r\n \"/\" +\r\n transactionSerNo +\r\n \"/\" +\r\n taxableAmount;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetReservationDailyRate = (\r\n clientSerNo,\r\n propertySerNo,\r\n rateSerNo,\r\n roomTypeSerNo,\r\n fromDate,\r\n toDate,\r\n adult,\r\n child\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-daily-rate/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n rateSerNo +\r\n \"/\" +\r\n roomTypeSerNo +\r\n \"/\" +\r\n fromDate +\r\n \"/\" +\r\n toDate +\r\n \"/\" +\r\n adult +\r\n \"/\" +\r\n child;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const AddProfileMaster = (para) => {\r\n const apiUrl = \"/Profile/manage-profile\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const GetRoomFeature = (clientSerNo, propertySerNo) => {\r\n const apiUrl =\r\n \"/Reservation/manage-room-feature/\" + clientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const groupByKey = (array, key) => {\r\n return array.reduce((hash, obj) => {\r\n if (obj[key] === undefined) return hash;\r\n return Object.assign(hash, {\r\n [obj[key]]: (hash[obj[key]] || []).concat(obj),\r\n });\r\n }, {});\r\n};\r\n\r\nexport const AddReservation = (para) => {\r\n console.log(\"api data \", para);\r\n const apiUrl = \"/Reservation/manage-reservation\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const GetReservationBySerNo = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const EditReservation = (para) => {\r\n console.log(\"api data \", para);\r\n const apiUrl = \"/Reservation/EditReservation\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\n// #Region Reservation Contact\r\nexport const GetReservationInfoReservationContactData = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-contact-profile/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetReservationInfoReservationContactProfileList = (\r\n clientSerNo,\r\n ReservationContactType,\r\n ProfileSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-profile-contact/\" +\r\n clientSerNo +\r\n \"/\" +\r\n ReservationContactType +\r\n \"/\" +\r\n ProfileSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddEditReservationContact = (para) => {\r\n const apiUrl = \"/Reservation/manage-reservation-contact-profile\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const AddEditProfileContactDetail = (para) => {\r\n const apiUrl = \"/Reservation/manage-profile-contact\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\n// End Region Reservation Contact\r\n\r\nexport const GetReservationInfoSalesMarketingData = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-indi-sales-marketing/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const EditReservationInfoForSalesMarketing = (para) => {\r\n const apiUrl = \"/Reservation/manage-reservation-indi-sales-marketing\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const cmbGetBusinessSource = (clientSerNo) => {\r\n const apiUrl = \"/CmbKeyValue/cmbGetBusinessSource/\" + clientSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const cmbGetSalesPerson = (clientSerNo) => {\r\n const apiUrl = \"/CmbKeyValue/cmbGetSalesPerson/\" + clientSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetClientParameterByKeys = (\r\n ClientSerNo,\r\n Keys\r\n) => {\r\n const apiUrl =\r\n \"/CmbKeyValue/GetClientParameterByKeys/\" +\r\n ClientSerNo +\r\n \"/\" +\r\n Keys;\r\n return axios.get(apiUrl);\r\n};\r\n\r\n//#region Rservation View Alert\r\n\r\nexport const GetAlertCombo = (clientSerNo, propertySerNo) => {\r\n const apiUrl = \"/Alert/manage-alert/\" + clientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetAreaofAlertCombo = (clientSerNo) => {\r\n const apiUrl = \"/AreaOfAlert/manage-area-of-alert/\" + clientSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetAlertData = (clientSerNo, propertySerNo, reservationSerNo) => {\r\n const apiUrl =\r\n \"/Reservation/manage-alert/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetAlertToolTipData = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/GetAlertToolTipData/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddEditReservationViewAlert = (para) => {\r\n const apiUrl = \"/Reservation/manage-alert\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const DeleteReservationAlertData = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo,\r\n reservationAlertSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/modify-alert/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo +\r\n \"/\" +\r\n reservationAlertSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\n//#endregion\r\n\r\n//#region Reservation View RoomFeatures popup\r\nexport const GetReservationRoomFeatureBySerNo = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-room-feature/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const AddEditReservationRoomFeature = (para) => {\r\n const apiUrl = \"/Reservation/AddEditReservationRoomFeature\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const AddProfileRoomFeature = (para) => {\r\n const apiUrl = \"/Profile/manage-profile-room-feature\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const GetProfileRoomFeature = (clientSerNo, ProfileSerNo) => {\r\n const apiUrl =\r\n \"/Profile/manage-profile-room-feature/\" + clientSerNo + \"/\" + ProfileSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion\r\n\r\n//#region Reservation View Special popup\r\nexport const GetReservationSpecials = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-special/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const AddEditReservationSpecial = (para) => {\r\n const apiUrl = \"/Reservation/AddEditReservationSpecial\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const GetProfileSpecial = (clientSerNo, ProfileSerNo) => {\r\n const apiUrl =\r\n \"/Profile/manage-profile-special/\" + clientSerNo + \"/\" + ProfileSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const AddProfileSpecial = (para) => {\r\n const apiUrl = \"/Profile/manage-profile-special\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//#endregion\r\n\r\n//#region Reservation View Billing Instruction popup\r\nexport const GetReservationInfoData = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-indi/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const manage_reservation_fields = (\r\n ClientSerNo,\r\n PropertySerNo,\r\n ReservationSerNo,\r\n FieldName,\r\n FieldValue\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-fields/\" +\r\n ClientSerNo +\r\n \"/\" +\r\n PropertySerNo +\r\n \"/\" +\r\n ReservationSerNo +\r\n \"/\" +\r\n FieldName +\r\n \"/\" +\r\n FieldValue;\r\n return axios.put(apiUrl);\r\n};\r\n//#endregion\r\n\r\n//#region IndiAccompanyGuest Pop-up\r\nexport const GetReservationAccompanyGuest = (\r\n ClientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-accompany-guest/\" +\r\n ClientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddReservationAccompanyGuestProfile = (para) => {\r\n const apiUrl = \"/Reservation/manage-reservation-accompany-guest\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//#endregion IndiAccompanyGuest Pop-up\r\n\r\n//#region Reservation Alert Trace\r\nexport const GetAlertTraceData = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-alert-trace/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetDepartmentCombo = (clientSerNo, propertySerNo) => {\r\n const apiUrl =\r\n \"/Department/manage-department/\" + clientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetTraceCombo = (clientSerNo, propertySerNo, departmentSerNo) => {\r\n const apiUrl =\r\n \"/Trace/manage-traces/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n departmentSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddEditReservationAlertTrace = (para) => {\r\n const apiUrl = \"/Reservation/manage-reservation-alert-trace\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const DeleteReservationAlertTrace = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo,\r\n traceSerNo,\r\n departmentSerNo,\r\n date\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/delete-reservation-alert-trace/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo +\r\n \"/\" +\r\n traceSerNo +\r\n \"/\" +\r\n departmentSerNo +\r\n \"/\" +\r\n date;\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion\r\n\r\n//#region Reservation View - FnBDiscount\r\n\r\nexport const GetReservationFnBDiscountData = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-fnb-discount/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetReservationFnBDiscountOutlet = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-fnb-outlet-discount/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetReservationFnBDiscountItemGroup = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo,\r\n IsCustomCase\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-fnb-itemgroup-discount/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo +\r\n \"/\" +\r\n IsCustomCase;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddReservationFnBDiscountOutlet = (para, IsAllOutlet) => {\r\n const apiUrl = \"/Reservation/manage-reservation-fnb-outlet-discount/\" + IsAllOutlet;\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const AddReservationFnBDiscountItemGroup = (\r\n para,\r\n IsItemGroupSelected,\r\n IsCustomCase\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-fnb-itemgroup-discount/\" +\r\n IsItemGroupSelected +\r\n \"/\" +\r\n IsCustomCase;\r\n return axios.post(apiUrl, para);\r\n};\r\n//#endregion\r\n//#region Reservation View - ResArrDeptInfoDetail\r\nexport const GetReservationInfoArrivalDeparture = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-indi-arrvial-departure/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetReservationInfoArrivalDepartureDetail = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-indi-arrvial-departures/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const EditReservationArrivalDeparture = (para) => {\r\n const apiUrl = \"/Reservation/manage-reservation-indi-arrvial-departure\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//#endregion\r\n//#region No-Post popup\r\nexport const GetReservationNoPostData = (\r\n ClientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-indi-no-post/\" +\r\n ClientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetReservationNoPostOutletGroup = (\r\n ClientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-indi-outletgroup-no-post/\" +\r\n ClientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetReservationNoPostOutlet = (\r\n ClientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-indi-outlet-no-post/\" +\r\n ClientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetReservationNoPostItemGroup = (\r\n ClientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-indi-itemgroup-no-post/\" +\r\n ClientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetReservationNoPostCustom = (\r\n ClientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-indi-custom-no-post/\" +\r\n ClientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddReservationNoPostOutletGroup = (para) => {\r\n const apiUrl = \"/Reservation/manage-reservation-indi-outletgroup-no-post\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//#endregion No-Post popup\r\n//#region Reservation View - Transportation\r\nexport const GetTransportationProviderMaster = (clientSerNo, propertySerNo) => {\r\n const apiUrl =\r\n \"/Reservation/manage-transportation-provider/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetReservationInfoTransportationDetail = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-indi-transportation/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddEditReservationInfoTransportationDetail = (para) => {\r\n const apiUrl = \"/Reservation/manage-reservation-indi-transportation\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const DeleteReservationInfoTransportationDetail = (para) => {\r\n const apiUrl = \"/Reservation/delete-reservation-indi-transportation\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//#endregion\r\n\r\n// Region Reservation Transportation Popup\r\nexport const GetTransportationProviderList = (clientSerNo, propertySerNo) => {\r\n const apiUrl =\r\n \"/Reservation/GetTransportationProviderList/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetTransportationTypeList = (clientSerNo, propertySerNo) => {\r\n const apiUrl =\r\n \"/Reservation/GetTransportationTypeList/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\n// Endregion Reservation Transportation Popup\r\n// Region Reservation Cancellation Rule Popup\r\nexport const GetReservationInfoCancellationData = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-indi-cancellation/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetReservationInfoCancellationDetail = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo,\r\n cancellationRuleSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-indi-cancellation/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo +\r\n \"/\" +\r\n cancellationRuleSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetCancellationRuleMasterByDate = (\r\n clientSerNo,\r\n propertySerNo,\r\n FromDate,\r\n ToDate\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-indi-cancellation-detail/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n FromDate +\r\n \"/\" +\r\n ToDate;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const AddEditReservationCancellation = (para) => {\r\n const apiUrl = \"/Reservation/manage-reservation-indi-cancellation\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const DeleteReservationCancellationRule = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo,\r\n CancellationRuleSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/delete-reservation-indi-cancellation/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo +\r\n \"/\" +\r\n CancellationRuleSerNo;\r\n return axios.delete(apiUrl, { \"Access-Control-Allow-Credentials\": true });\r\n};\r\n\r\n//EndRegion Reservation Cancellation Rule Popup\r\n\r\n// Region Reservation Attachment Popup\r\nexport const GetReservationInfoAttachedDocument = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-attachment/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetDocumentTypeMasters = (clientSerNo) => {\r\n const apiUrl = \"/DocumentTypeMaster/manage-document-type/\" + clientSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddEditReservationAttachment = (para) => {\r\n const apiUrl = \"/Reservation/manage-attachment\";\r\n console.log(para);\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const DeleteReservationAttachment = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo,\r\n attachmentSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-attachment/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo +\r\n \"/\" +\r\n attachmentSerNo;\r\n return axios.delete(apiUrl, { \"Access-Control-Allow-Credentials\": true });\r\n};\r\n\r\n//EndRegion Reservation Attachment Popup\r\n\r\n//#region Reservation Main View\r\nexport const GetReservationInfoProfileData = (clientSerNo, profileSerNo, profileType) => {\r\n const apiUrl =\r\n \"/Profile/manage-reservation-profile/\" +\r\n clientSerNo +\r\n \"/\" +\r\n profileSerNo +\r\n \"/\" +\r\n profileType;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const manageReservationAccompanyguest = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo,\r\n guestProfileSerNo,\r\n isIncognito\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-accompanyguest/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo +\r\n \"/\" +\r\n guestProfileSerNo +\r\n \"/\" +\r\n isIncognito;\r\n return axios.put(apiUrl);\r\n};\r\nexport const manageReservationFields = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo,\r\n fieldName,\r\n fieldValue\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-fields/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo +\r\n \"/\" +\r\n fieldName +\r\n \"/\" +\r\n fieldValue;\r\n return axios.put(apiUrl);\r\n};\r\n\r\nexport const manageReservationMultipleFields = (para) => {\r\n\r\n const apiUrl = \"/Reservation/manage-reservation-fields/\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const manageReservationRateCodeIndicator = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-ratecode-indicator/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const manageReservationPackageIndicator = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-package-indicator/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const manageReservationIndicator = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-roomtype-indicator/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const manageReservationDailyIndicator = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-daily-indicator/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const manageReservationBalanceIndicator = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-balance-indicator/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\n//#endregion\r\n\r\n//#region Reservation Deposit Rule\r\nexport const GetReservationInfoDepositRequestList = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-deposit-rule/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetReservationInfoDepositRuleDetail = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo,\r\n depositRuleSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-deposit-rule/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo +\r\n \"/\" +\r\n depositRuleSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetDepositRuleMaster = (clientSerNo, propertySerNo) => {\r\n const apiUrl =\r\n \"/DepositRuleMaster/manage-deposit-rule/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddEditReservationDepositRequest = (para) => {\r\n const apiUrl = \"/Reservation/manage-reservation-deposit-rule\";\r\n console.log(para);\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const DeleteReservationDepositRequest = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo,\r\n depositRequestSerNo,\r\n depositRequestSubSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-deposit-rule/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo +\r\n \"/\" +\r\n depositRequestSerNo +\r\n \"/\" +\r\n depositRequestSubSerNo;\r\n return axios.delete(apiUrl);\r\n};\r\n\r\n//#endregion Reservation Deposit Rule\r\n\r\n//#region Reservation Company On Folio\r\nexport const GetReservationInfoCompanyOnFolioProfileData = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo,\r\n windowsserno\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-company-on-folio/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo +\r\n \"/\" +\r\n windowsserno;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetCompanyOnFolioProfilData = (clientSerNo, profileSerNo) => {\r\n const apiUrl =\r\n \"/Reservation/manage-company-on-folio/\" + clientSerNo + \"/\" + profileSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddCompanyOnFolioProfilData = (para) => {\r\n const apiUrl = \"/Reservation/manage-reservation-company-on-folio\";\r\n console.log(para);\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const GetCoutryMaster = (clientSerNo) => {\r\n const apiUrl = \"/CountryMaster/manage-country/\" + clientSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetStateMaster = (clientSerNo, countrySerNo) => {\r\n const apiUrl =\r\n \"/StateMaster/manage-state/\" + clientSerNo + \"/\" + countrySerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetCityMaster = (clientSerNo, countrySerNo, stateSerNo) => {\r\n const apiUrl =\r\n \"/CityMaster/manage-city/\" +\r\n clientSerNo +\r\n \"/\" +\r\n countrySerNo +\r\n \"/\" +\r\n stateSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\n//#endregion Reservation Company On Folio\r\n//#region deposit received\r\nexport const GetReservationTransaction = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo,\r\n transactionType\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-transaction/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo +\r\n \"/\" +\r\n transactionType;\r\n return axios.get(apiUrl);\r\n};\r\n// export const GetReservationWindowRouting = (clientSerNo,propertySerNo,reservationSerNo) => {\r\n// const apiUrl =\r\n// \"/Reservation/manage-reservation-window-rounting/\" + clientSerNo+\"/\"+propertySerNo+\"/\"+reservationSerNo;\r\n// return axios.get(apiUrl);\r\n// };\r\n\r\nexport const GetReservationDepositReceivedData = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-deposit-received/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const AddReservationTransaction = (para) => {\r\n const apiUrl = \"/Reservation/manage-reservation-transaction\";\r\n console.log(para);\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const GetTransactionMaster = (\r\n clientSerNo,\r\n propertySerNo,\r\n transactionType,\r\n module\r\n) => {\r\n const apiUrl =\r\n \"/TransactionMaster/manage-transaction-master/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n transactionType +\r\n \"/\" +\r\n module;\r\n return axios.get(apiUrl);\r\n};\r\n\r\n//#endregion deposit received\r\n\r\n//#region Cancel Reservation Charge\r\nexport const GetCancelReservationCharge = (ClientSerNo, PropertySerNo, IsTaxInclusive, TransactionSerNo, OrgTaxableAmount) => {\r\n const apiUrl = \"/Reservation/manage-reservation-cancel-charge/\"\r\n + ClientSerNo\r\n + \"/\"\r\n + PropertySerNo\r\n + \"/\"\r\n + IsTaxInclusive\r\n + \"/\"\r\n + TransactionSerNo\r\n + \"/\"\r\n + OrgTaxableAmount;\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion\r\n\r\n//#region Reservation Revenue Summary \r\nexport const GetReservationRevenueSummary = (ClientSerNo, PropertySerNo, ReservationSerNo) => {\r\n\r\n const apiUrl = \"/Reservation/manage-reservation-revenue-summary/\"\r\n + ClientSerNo\r\n + \"/\"\r\n + PropertySerNo\r\n + \"/\"\r\n + ReservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion\r\n//#region Cancel Reservation \r\nexport const PostCancelReservationCharge = (para) => {\r\n const apiUrl = \"/Reservation/manage-reservation-cancel\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//#endregion\r\n\r\nexport const PostReservationArrivalListFilter = (para) => {\r\n const apiUrl = \"/ReservationArrivalList/manage-reservation-arrival-list\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\n//#region - Reservation Routing\r\nexport const GetReservationWindowRoutingData = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-window-rounting-data/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetReservationWindowRouting = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-window-rounting/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddEditReservationWindow = (para) => {\r\n const apiUrl = \"/Reservation/manage-reservation-window-rounting\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const ResetReservationRouting = (clientSerNo, propertySerNo, reservationSerNo, routingMode) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-window-rounting-detail/\" + clientSerNo + \"/\" + propertySerNo + \"/\" + reservationSerNo + \"/\" + routingMode;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetReservationWindowRoutingApplyOn = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-window-rounting-applyon/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetReservationWindowRoutingGroup = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-window-rounting-group/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetReservationWindowRoutingDetail = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-window-rounting-detail/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddReservationWindowRouting = (para) => {\r\n const apiUrl = \"/Reservation/manage-reservation-window-rounting-detail\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const GetPaymentMethod = (clientSerNo, propertySerNo) => {\r\n const apiUrl =\r\n \"/PaymentMethodMaster/manage-payment-method/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion\r\n//#region - Reservation Routing\r\nexport const GetReservationRoomRoutingRoomDetailList = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-room-rounting-roomdetail-list/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetReservationRoomRouting = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-room-rounting/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddEditReservationRoom = (para) => {\r\n const apiUrl = \"/Reservation/manage-reservation-room-rounting\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const GetReservationRoomRoutingApplyOn = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-room-rounting-applyon/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetReservationRoomRoutingGroup = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-room-rounting-group/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetReservationRoomRoutingDetail = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-room-rounting-detail/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddReservationRoomRouting = (para) => {\r\n const apiUrl = \"/Reservation/manage-reservation-room-rounting-detail\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//#endregion\r\n\r\n//#region Reservation Block\r\nexport const GetUsersList = (clientSerNo) => {\r\n const apiUrl = \"/User/GetUsersList/\" + clientSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetRoomAvaibility = (\r\n clientSerNo,\r\n propertySerNo,\r\n fromDate,\r\n toDate\r\n) => {\r\n const apiUrl =\r\n \"/ReservationBlock/manage-room-availability/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n fromDate +\r\n \"/\" +\r\n toDate;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetBlockReservationRateAndPackageRate = (para) => {\r\n const apiUrl = \"/ReservationBlock/manage-reservation-block-rate\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const AddEditReservationBlock = (para) => {\r\n const apiUrl = \"/ReservationBlock/manage-reservation-block\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const GetReservationBlockDetail = (\r\n clientSerNo,\r\n propertySerNo,\r\n blockSerNo\r\n) => {\r\n const apiUrl =\r\n \"/ReservationBlock/manage-reservation-block/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n blockSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetReservationBlockList = (para) => {\r\n const apiUrl = \"/ReservationBlock/manage-reservation-block-list\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const manageReservationBlockPackageIndicator = (\r\n clientSerNo,\r\n propertySerNo,\r\n blockSerNo\r\n) => {\r\n const apiUrl =\r\n \"/ReservationBlock/manage-reservation-block-package-indicator/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n blockSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\n// export const EditReservationBlock = (para) => {\r\n// const apiUrl =\r\n// \"/Reservation/manage-reservation-block-edit\";\r\n// return axios.post(apiUrl,para);\r\n// };\r\nexport const GetReservationBlockHeaderData = (\r\n clientSerNo,\r\n propertySerNo,\r\n blockSerNo\r\n) => {\r\n const apiUrl =\r\n \"/ReservationBlock/manage-reservation-block-header/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n blockSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const manageReservationBlockFields = (\r\n ClientSerNo,\r\n PropertySerNo,\r\n BlockSerNo,\r\n FieldName,\r\n FieldValue\r\n) => {\r\n const apiUrl =\r\n \"/ReservationBlock/manage-reservationblock-fields/\" +\r\n ClientSerNo +\r\n \"/\" +\r\n PropertySerNo +\r\n \"/\" +\r\n BlockSerNo +\r\n \"/\" +\r\n FieldName +\r\n \"/\" +\r\n FieldValue;\r\n return axios.put(apiUrl);\r\n};\r\n\r\nexport const GetReservationBlockListCombo = (ClientSerNo, PropertySerNo, FromDate, ToDate) => {\r\n const apiUrl =\r\n \"/ReservationBlock/manage-reservation-block-combo/\"\r\n + ClientSerNo\r\n + \"/\"\r\n + PropertySerNo\r\n + \"/\"\r\n + FromDate\r\n + \"/\"\r\n + ToDate;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const EditCheckedInReservation = (para) => {\r\n const apiUrl = \"/CheckedinReservation/edit-Checked-in-reservation\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const EditCheckedInReservations = (para) => {\r\n const apiUrl = \"/CheckedinReservation/edit-Checked-in-reservations\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const EditCancelCheckedInReservation = (para) => {\r\n const apiUrl = \"/CheckedinReservation/edit-Cancel-Checked-in-reservation\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const manageReservationBlockBalanceIndicator = (clientSerNo, propertySerNo, blockSerNo) => {\r\n const apiUrl =\r\n \"/ReservationBlock/manage-reservation-block-balance-indicator/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n blockSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\n//#region No-Post popup\r\nexport const GetReservationBlockNoPostHeaderData = (ClientSerNo, propertySerNo, blockSerNo) => {\r\n const apiUrl =\r\n \"/ReservationBlock/GetReservationBlockNoPostHeaderData/\" + ClientSerNo + \"/\" + propertySerNo + \"/\" + blockSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetReservationBlockNoPostOutletGroup = (ClientSerNo, propertySerNo, blockSerNo) => {\r\n const apiUrl =\r\n \"/ReservationBlock/GetReservationBlockNoPostOutletGroup/\" + ClientSerNo + \"/\" + propertySerNo + \"/\" + blockSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetReservationBlockNoPostOutlet = (ClientSerNo, propertySerNo, blockSerNo) => {\r\n const apiUrl =\r\n \"/ReservationBlock/GetReservationBlockNoPostOutlet/\" + ClientSerNo + \"/\" + propertySerNo + \"/\" + blockSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetReservationBlockNoPostItemGroup = (ClientSerNo, propertySerNo, blockSerNo) => {\r\n const apiUrl =\r\n \"/ReservationBlock/GetReservationBlockNoPostItemGroup/\" + ClientSerNo + \"/\" + propertySerNo + \"/\" + blockSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetReservationBlockNoPostCustom = (ClientSerNo, propertySerNo, blockSerNo) => {\r\n const apiUrl =\r\n \"/ReservationBlock/GetReservationBlockNoPostCustom/\" + ClientSerNo + \"/\" + propertySerNo + \"/\" + blockSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const AddReservationBlockNoPostOutletItemGroup = (reservationBlockNoPostPara) => {\r\n const apiUrl = \"/ReservationBlock/AddReservationBlockNoPostOutletItemGroup\";\r\n return axios.post(apiUrl, reservationBlockNoPostPara);\r\n};\r\n\r\n//#endregion No-Post popup\r\n\r\nexport const GetReservationBlockRateSummary = (\r\n clientSerNo,\r\n propertySerNo,\r\n blockSerNo\r\n) => {\r\n const apiUrl =\r\n \"/ReservationBlock/manage-reservation-block-rate-summary/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n blockSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetBlockReservationSummary = (para) => {\r\n const apiUrl = \"/ReservationBlock/manage-block-reservation-summary/\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const AddBlockReservationIndicatorData = (\r\n clientSerNo,\r\n propertySerNo,\r\n blockReservationSerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/ReservationBlock/manage-block-reservation-indicator-data/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n blockReservationSerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\n//#endregion Reservation Block\r\n//#region Split Reservation\r\n\r\nexport const ManageSplitReservation = (para) => { // for single Reservation\r\n const apiUrl = \"/Reservation/manage-split-reservation\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const ManageSplitReservations = (para) => { // for Multiple Reservation\r\n const apiUrl = \"/Reservation/manage-split-reservations\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//#endregion\r\n\r\nexport const GetDepartureListFilteredData = (para) => {\r\n const apiUrl = \"/ReservationDepartureList/manage-reservation-departure-list\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\n//#endregion\r\n\r\n//#region Room Assignment\r\nexport const GetRoomAssignSelectedReservationList = (ClientSerNo, propertySerNo, reservationSerNo) => {\r\n const apiUrl =\r\n \"/ReservationRoomAssign/manage-reservation-room-assign/\" + ClientSerNo + \"/\" + propertySerNo + \"/\" + reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetRoomAssignRoomListByFilter = (para) => {\r\n const apiUrl = \"/ReservationRoomAssign/manage-reservation-room-assign\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const GetRoomAssignmentAssignRoom = (ClientSerNo, PropertySerNo, reservationSerNo, RoomSerNo, UpgradeReason, UpgradeReasonSerNo) => {\r\n const apiUrl = \"/ReservationRoomAssign/manage-room-assignment-assign-room/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + reservationSerNo + \"/\" + RoomSerNo + \"/\" + UpgradeReason + \"/\" + UpgradeReasonSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetRoomAssignmentUnAssignRoom = (ClientSerNo, PropertySerNo, reservationSerNo) => {\r\n const apiUrl = \"/ReservationRoomAssign/manage-room-assignment-unassign-room/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetRoomAssignmentSwapRoom = (ClientSerNo, PropertySerNo, FromReservationSerNo, FromRoomSerNo, ToReservationSerNo, ToRoomSerNo) => {\r\n const apiUrl = \"/ReservationRoomAssign/manage-room-assignment-swap-room/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + FromReservationSerNo + \"/\" + FromRoomSerNo + \"/\" + ToReservationSerNo + \"/\" + ToRoomSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const ValidateRoomForUpDowngrad = (ClientSerNo, PropertySerNo, RoomNo) => {\r\n const apiUrl = \"/ReservationRoomAssign/manage-room-assignment-updwngrad/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + RoomNo;\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion`\r\n\r\n//#region Link To Party\r\n\r\nexport const GetLinkReservationParty = (ClientSerNo, PropertySerNo, ReservationSerNo) => {\r\n const apiUrl = \"/Reservation/manage-link-ReservationParty/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + ReservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetLinkReservationPartyList = (ClientSerNo, PropertySerNo, ReservationSerNo, PartySerNo) => {\r\n const apiUrl = \"/Reservation/manage-link-ReservationParty-List/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + ReservationSerNo + \"/\" + PartySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const AddEditReservationParty = (para) => {\r\n const apiUrl = \"/Masters/manage-reservation-party\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\n//#endregion\r\n\r\n//#region Room Move Popup\r\nexport const ReservationroomMove = (para) => {\r\n const apiUrl = \"/Reservation/manage-reservation-room-move\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//#endregion\r\n//#region Group info\r\nexport const manageReservationIndiGroupInfo = (\r\n clientSerNo,\r\n propertySerNo,\r\n reservationSerNo\r\n) => {\r\n const apiUrl =\r\n \"/Reservation/manage-reservation-block-indicator/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propertySerNo +\r\n \"/\" +\r\n reservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n//#End Region\r\n\r\n//#region \r\n\r\nexport const ValidatedCancellableCheckinReservation = (ClientSerNo, PropertySerNo, StrReservationSerNo) => {\r\n const apiUrl = \"/ReservationArrivalList/manage-cancellable-checkin-reservation/\" +\r\n ClientSerNo +\r\n \"/\" +\r\n PropertySerNo +\r\n \"/\" +\r\n StrReservationSerNo;\r\n\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion\r\n\r\n//#region Auto-Assign\r\nexport const AutoAssignRoomToReservation = (para) => {\r\n const apiUrl = \"/ReservationArrivalList/manage-reservation-auto-assign-room\";\r\n return axios.post(apiUrl, para);\r\n};\r\nexport const GetAutoAssignReservation = (ClientSerNo, PropertySerNo, StrReservationSerNo) => {\r\n const apiUrl = \"/ReservationArrivalList/manage-auto-assign-reservation/\" +\r\n ClientSerNo +\r\n \"/\" +\r\n PropertySerNo +\r\n \"/\" +\r\n StrReservationSerNo;\r\n\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion\r\n\r\n//#region\r\nexport const GetReservationBasicData = (ClientSerNo, PropertySerNo, ReservationSerNo) => {\r\n const apiUrl = \"/Reservation/manage-reservation-basic-data/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + ReservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const ManageAdvanceCheckin = (para) => {\r\n const apiUrl = \"/ReservationArrivalList/manage-advance-check-in\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const GetSharerDetails = (ClientSerNo, PropertySerNo, ReservationSerNo, IsSharer) => {\r\n const apiUrl = \"/Reservation/manage-sharer-reservation-indicator\" + \"/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + ReservationSerNo + \"/\" + IsSharer;\r\n return axios.get(apiUrl);\r\n};\r\n\r\n//#region Non-Block PM\r\nexport const GetDefaultPseudoRateDetails = (ClientSerNo, PropertySerNo, ArrivalDate, DepartureDate) => {\r\n const apiUrl = \"/Reservation/manage-default-pseudo-room-rate\" + \"/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + ArrivalDate + \"/\" + DepartureDate;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetReservationBalanceData = (ClientSerNo, PropertySerNo, ReservationSerNo) => {\r\n const apiUrl = \"/Reservation/manage-reservation-indi-balance\" + \"/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + ReservationSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion\r\n//#region Arrival List\r\nexport const GetArrivalStatistics = (ClientSerNo, PropertySerNo, ArrivalDate, RoomTypeSerNo) => {\r\n const apiUrl = \"/ReservationArrivalList/manage-arrival-statistics\" + \"/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + ArrivalDate + \"/\" + RoomTypeSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion\r\n\r\n//#region BillingInstructionMasterRepository\r\nexport const GetBillingInstructionWindowRouting = (ClientSerNo, PropertySerNo, BillingInstructionSerNo) => {\r\n const apiUrl = \"/BillingInstructionMaster/manage-billing-window-instruction/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + BillingInstructionSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const AddEditBillingInstructionWindowRouting = (para) => {\r\n const apiUrl = \"/BillingInstructionMaster/manage-billing-window-instruction\";\r\n return axios.post(apiUrl, para);\r\n};\r\n\r\nexport const GetBillingInstructionWindowRoutingGroup = (ClientSerNo, PropertySerNo, BillingInstructionSerNo) => {\r\n const apiUrl = \"/BillingInstructionMaster/manage-billing-instruction-window-routing-group/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + BillingInstructionSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetBillingInstructionWindowRoutingDetail = (ClientSerNo, PropertySerNo, BillingInstructionSerNo) => {\r\n const apiUrl = \"/BillingInstructionMaster/manage-billing-instruction-routing-detail/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + BillingInstructionSerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const AddBillingInstuctionWindowRouting = (para) => {\r\n const apiUrl = \"/BillingInstructionMaster/manage-billing-instruction-window-routing\";\r\n return axios.post(apiUrl, para);\r\n};\r\n//#endregion\r\n\r\n//ReservationType\r\nexport const GetReservationTypes = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/ReservationType/manage-reservation-types\" + \"/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const AddEditReservationType = (para) => {\r\n const apiUrl = \"/ReservationType/manage-reservation-type-master\";\r\n return axios.post(apiUrl, para);\r\n}\r\n//End ReservationType//#endregion\r\n\r\nexport const GetPackageList = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/PackageMaster/manage-package-master/\" + ClientSerNo + \"/\" + PropertySerNo\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditPackageMasterList = (para) => {\r\n const apiUrl = \"/PackageMaster/manage-package-master\"\r\n return axios.post(apiUrl, para)\r\n}\r\n\r\nexport const GetAlertMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/AlertMaster/manage-alert-master/\" + ClientSerNo + \"/\" + PropertySerNo\r\n return axios.get(apiUrl)\r\n}\r\n\r\nexport const AddEditAlertMaster = (para) => {\r\n const apiUrl = \"/AlertMaster/manage-alert-master\"\r\n return axios.post(apiUrl, para);\r\n}//End ReservationType\r\n\r\n//#region room master\r\nexport const GetRoomMasterSerNo = (ClientSerNo, PropertySerNo, RoomTypeSerNo) => {\r\n const apiUrl = \"/RoomMaster/manage-room-masterSerNo/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + RoomTypeSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const GetAllRoomMasterData = (ClientSerNo, PropertySerNo, RoomSerNo) => {\r\n const apiUrl = \"/RoomMaster/manage-room-master-data/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + RoomSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditAllRoomMasterData = (para) => {\r\n const apiUrl = \"/RoomMaster/manage-room-master-data\"\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion\r\n\r\n//#region RoomFeatureRoomData\r\nexport const GetRoomFeatureRoomData = (ClientSerNo, PropertySerNo, RoomSerNo) => {\r\n const apiUrl = \"/RoomMaster/manage-room-feature-data/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + RoomSerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddRoomMasterFeatureDetail = (para) => {\r\n const apiUrl = \"/RoomMaster/manage-add-room-master-feature\"\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion\r\n\r\n//#region RoomClassMaster\r\nexport const AddEditRoomClassMaster = (para) => {\r\n const apiUrl = \"/RoomClassMaster/manage-roomclass-master\"\r\n return axios.post(apiUrl, para);\r\n}\r\n\r\nexport const GetRoomClassMaster = (clientSerNo, propetrySerNo) => {\r\n const apiUrl =\r\n \"/RoomClassMaster/manage-roomclass-master/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propetrySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n//endregion\r\n//#region AddEditTraceMaster\r\nexport const AddEditTraceMaster = (para) => {\r\n const apiUrl = \"/TraceMaster/manage-trace-master\"\r\n return axios.post(apiUrl, para);\r\n}\r\n//endregion\r\nexport const GetTraceMaster = (clientSerNo, propetrySerNo) => {\r\n const apiUrl =\r\n \"/TraceMaster/manage-trace-master/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propetrySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\n//#region Routing Master\r\nexport const GetRoutingMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/RoutingMaster/manage-routing-master/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditRoutingMaster = (para) => {\r\n const apiUrl = \"/RoutingMaster/manage-routing-master\"\r\n return axios.post(apiUrl, para);\r\n}\r\n//#endregion\r\n//#region AddEditRateCodeMiscellaneousMaster\r\nexport const AddEditRateCodeMiscellaneousMaster = (para) => {\r\n const apiUrl = \"/RateCodeMiscellaneousMaster/manage-RateCode-MiscellaneousMaster\"\r\n return axios.post(apiUrl, para);\r\n}\r\nexport const GetRateCodeMiscellaneousMaster = (clientSerNo, propetrySerNo) => {\r\n const apiUrl =\r\n \"/RateCodeMiscellaneousMaster/manage-RateCode-MiscellaneousMaster/\" +\r\n clientSerNo +\r\n \"/\" +\r\n propetrySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion\r\n\r\nexport const GetPackageRateDetail = (ClientSerNo, PropertySerNo, PackageSerNo, Year, Month) => {\r\n const apiUrl = \"/PackageRateDetail/manage-package-rate-detail/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + PackageSerNo + \"/\" + Year + \"/\" + Month\r\n return axios.get(apiUrl)\r\n}\r\n\r\nexport const AddEditPackageRateDetail = (para) => {\r\n const apiUrl = \"/PackageRateDetail/manage-package-rate-detail\"\r\n return axios.post(apiUrl, para)\r\n}\r\n\r\nexport const GetPackageYear = (ClientSerNo, PropertySerNo, PackageSerNo) => {\r\n const apiUrl = \"/PackageRateDetail/manage-package-year/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + PackageSerNo\r\n return axios.get(apiUrl);\r\n}\r\n//#region Routing Master\r\nexport const GetCashBookTransactionMaster = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/CashBookTransactionMaster/manage-cashbook-transaction-master/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n\r\nexport const AddEditCashBookTransactionMaster = (para) => {\r\n const apiUrl = \"/CashBookTransactionMaster/manage-cashbook-transaction-master\"\r\n return axios.post(apiUrl, para);\r\n}\r\nexport const GetCashbookTransactionTypeMaster = () => {\r\n const apiUrl = \"/CashBookTransactionMaster/manage-cashbook-transactiontype-master\"\r\n return axios.get(apiUrl);\r\n}\r\nexport const ValidationRoomAssignment = (ClientSerNo, PropertySerNo, ToReservationSerNo, ToRoomSerNo, FromReservationSerNo, FromRoomSerNo, Operation) => {\r\n const apiUrl = \"/ReservationRoomAssign/manage-room-assignment-validateroom/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + ToReservationSerNo + \"/\" + ToRoomSerNo + \"/\" + FromReservationSerNo + \"/\" + FromRoomSerNo + \"/\" + Operation;\r\n return axios.get(apiUrl);\r\n}\r\nexport const AddPostCashbookEntry = (para) => {\r\n const apiUrl = \"/Cashbook/manage-cashbook-entry\"\r\n return axios.post(apiUrl, para);\r\n}\r\nexport const GetCashbookList = (para) => {\r\n const apiUrl = \"/Cashbook/manage-cashbook-list\"\r\n return axios.post(apiUrl, para);\r\n}\r\nexport const GetGuestPassportIdentification = (ClientSerNo, ProfileSerNo) => {\r\n const apiUrl = \"/Encashment/manage-guestpassport-identification/\" + ClientSerNo + \"/\" + ProfileSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetEncashmentCurrencyRate = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/Encashment/manage-encashment-currencyrate/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const InsertEncashment = (para) => {\r\n const apiUrl = \"/Encashment/manage-encashment\"\r\n return axios.post(apiUrl, para);\r\n}\r\nexport const CalculateEncashmentTax = (ClientSerNo, PropertySerNo, TotalTransAmount) => {\r\n const apiUrl = \"/Encashment/manage-calculate-encashmenttax/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + TotalTransAmount\r\n return axios.get(apiUrl);\r\n}\r\n//#region OTA Log\r\nexport const GetOTALog = (ClientSerNo, PropertySerNo, LogTypeSerNo, DateType, FromDate, ToDate, VoucherNo, OTAID, RoomTypeSerNo, RateTypeSerNo, OTALogEventSerNo) => {\r\n const apiUrl = \"/OTALog/manage-ota-log/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + LogTypeSerNo + \"/\" + DateType + \"/\" + FromDate + \"/\" + ToDate + \"/\" + VoucherNo + \"/\" + OTAID + \"/\" + RoomTypeSerNo + \"/\" + RateTypeSerNo + \"/\" + OTALogEventSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetOTALogDetails = (RequestSerNo) => {\r\n const apiUrl = \"/OTALog/manage-ota-log-details/\" + RequestSerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetOTALogEventMaster = () => {\r\n const apiUrl = \"/OTAMaster/manage-ota-log-event-master\";\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetOTAAgentList = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/OTAMaster/manage-ota-log-agent-list/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\n//#endregion\r\n\r\n//#region Receipt Details prints\r\nexport const GetReceiptDetails = (ClientSerNo, PropertySerNo, SerNo) => {\r\n const apiUrl = \"/Cashbook/manage-receipt-details/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + SerNo;\r\n return axios.get(apiUrl);\r\n}\r\n//#endregion\r\n\r\n//#region voucher details print\r\nexport const GetVoucherDetails = (ClientSerNo, PropertySerNo, SerNo) => {\r\n const apiUrl = \"/Cashbook/manage-voucher-details/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + SerNo;\r\n return axios.get(apiUrl);\r\n}\r\n//#endregion\r\n\r\n//#region encashment certificate print\r\nexport const GetEncashmentCertificateDetails = (ClientSerNo, PropertySerNo, SerNo) => {\r\n const apiUrl = \"/Cashbook/manage-encashment-certificate-details/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + SerNo;\r\n return axios.get(apiUrl);\r\n}\r\n//#endregion","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnRadioButton, InnTextbox, InnSingleSelectDropdown, InnButtonTypeWithDropdown, InnCheckbox,\r\n InnActionButton, InnPrimaryButton, InnTabs, InnModalPopup, InnSearchTextbox, InnTableGrid,\r\n InnSingleDateSelection, InnTooltip, InnTimeSelection, InnConfirmAlert, useConfirm\r\n} from \"../../../component\";\r\nimport adharcard from \"../../../assets/images/adhar-card.png\";\r\nimport smsIcon from \"../../../assets/images/sms-tooltip-icon.svg\";\r\nimport EmailTooltipIcon from \"../../../assets/images/email-tooltip-icon.svg\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { currentUser } from \"../../../reducer/authSlice\";\r\nimport { GuestModalPopup } from \"./modalPopup/guestModalPopup\";\r\nimport { CompanyModalPopup } from \"./modalPopup/companyModalPopup\";\r\nimport { ReservationTypeModalPopup } from \"./modalPopup/reservationTypeModalPopup\";\r\nimport { BillingInstructionModalPopup } from \"./modalPopup/billingInstructionModalPopup\";\r\nimport { SpecialModalPopup } from \"./modalPopup/specialModalPopup\";\r\nimport { RateCodeModalPopup } from \"./modalPopup/rateCodeModalPopup\";\r\nimport { RateSummaryModalPopup } from \"./modalPopup/rateSummaryModalPopup\";\r\nimport { DailyRateModalPopup } from \"./modalPopup/dailyRateModalPopup\";\r\nimport { PackageSelectionModalPopup } from \"./modalPopup/packageSelectionModalPopup\";\r\nimport { RoomFeatureModalPopup } from \"./modalPopup/roomFeatureModalPopup\";\r\nimport { ModifiedRateDetailData } from \"../../../utils/helpers/reservation\";\r\nimport {\r\n GetPropertyMaster, cmbGetMarketMaster, cmbGetSourceMaster, cmbGetRoomMaster,\r\n AddReservation, GetModifiedRateAndPackageRate, GetReservationBySerNo, EditReservation, GetRateAndPackageRate,\r\n GetPropertyParameterByKeys, GetRoomTypeMaster, GetRoomAvaibility, cmbGetBusinessSource,ValidationRoomAssignment\r\n} from \"../../../services/reservationService\";\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { reservation, setRateAndPackages, setTempRateAndPackage, reSetExtraPackage, setIsWalkIn, setIsSharer } from \"../../../reducer/frontSlice\";\r\nimport Moment from \"moment\";\r\nimport { useAlert } from \"../../../utils/hooks/useAlert\";\r\nimport { ManageRights } from \"../../../services/generalService\";\r\n\r\nexport function ReservationAdd(props) {\r\n\r\n /* Page content height set start */\r\n var Pageheight = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);\r\n var columnHeight = Pageheight - 153;\r\n /* Page content height set end */\r\n const dispatch = useDispatch();\r\n const location = useLocation();\r\n const history = useHistory();\r\n const currUser = useSelector(currentUser);\r\n const res = useSelector(reservation);\r\n const { confirm } = useConfirm();\r\n const { innkeyAlert } = useAlert();\r\n const [rateClass, setRateClass] = useState(\"form-group\");\r\n const [roomRateClass, setRoomRateClass] = useState(\"form-group width-80px d-inline-block\");\r\n const [propertyData, setPropertyData] = useState([]);\r\n const propertyParameters = 'ArrivalTime,ArrivalTimeRange,BusinessDate,DepartureTime,DepartureTimeRange,AllowOverbooking';\r\n const [propertyParameterData, setPropertyParameterData] = useState([]);\r\n const [roomTypeData, setRoomTypeData] = useState([]);\r\n const [marketData, setMarketData] = useState([]);\r\n const [sourceData, setSourceData] = useState([]);\r\n const [roomData, setRoomData] = useState([]);\r\n const [roomNo, setRoomNo] = useState(\"\");\r\n const [selectedGuest, setSelectedGuest] = useState({});\r\n const [selectedCompany, setSelectedCompany] = useState({});\r\n const [selectedAgent, setSelectedAgent] = useState({});\r\n const [selectedReservationType, setSelectedReservationType] = useState({});\r\n const [showPackageListModal, setShowPackageListModal] = useState(false);\r\n const [grandTotal, setGrandTotal] = useState(0);\r\n const [oldReservation, setOldReservation] = useState({});\r\n const [primaryReservation, setPrimaryReservation] = useState({}); //use for sharer add/edit.\r\n const [newReservation, setNewReservation] = useState({\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"PropertyName\": \"\",\r\n \"ReservationSerNo\": 0,\r\n \"ArrivalDate\": \"1-jan-2022\",\r\n \"DepartureDate\": \"2-dec-2022\",\r\n \"Nights\": 1,\r\n \"Rooms\": 1,\r\n \"Adult\": 1,\r\n \"NewAdult\": 1,\r\n \"Child\": 0,\r\n \"RoomTypeName\": \"Select\",\r\n \"RoomTypeSerNo\": 0,\r\n \"ProfileSerNo\": \"\",\r\n \"CompanyProfileSerNo\": 0,\r\n \"CompanyHasRateMapping\": false,\r\n \"AgentProfileSerNo\": 0,\r\n \"AgentHasRateMapping\": false,\r\n \"CompanyRateGroupSerNo\": 0,\r\n \"AgentRateGroupSerNo\": 0,\r\n \"Agent\": \"\",\r\n \"Company\": \"\",\r\n \"RateSerNo\": \"\",\r\n \"RateCodeName\": \"\",\r\n \"ChargeableRoomTypeSerNo\": 0,\r\n \"ChargeableRoomTypeName\": \"\",\r\n \"ReservationTypeSerNo\": \"\",\r\n \"ReservationType\": \"\",\r\n \"IsInclusive\": false,\r\n \"MarketSerNo\": \"0\",\r\n \"SourceSerNo\": \"0\",\r\n \"BillingInstruction\": \"\",\r\n \"BookingRefNo\": \"\",\r\n \"RoomSerNo\": \"\",\r\n \"ReservationStatus\": \"DIN\",\r\n \"IsArrivalOnSameDay\": true,\r\n \"IsDepartureOnSameDay\": true,\r\n \"ActualArrivalTime\": null,\r\n \"ActualDepartureTime\": null,\r\n \"CallingFrom\": \"\",\r\n \"RoomRate\": \"\",\r\n \"NewRoomRate\": \"\",\r\n \"IsInclusive\": false,\r\n \"IsComplimentary\": false,\r\n \"IsHouseUse\": false,\r\n \"IsDiscloseRate\": true,\r\n \"IsPrintRate\": true,\r\n \"Discountable\": false,\r\n \"IsRateMappedToProfile\": true,\r\n \"UpgradeReason\": \"\",\r\n \"IsUpSell\": false,\r\n \"UpSellRemarks\": \"\",\r\n \"Specials\": [],\r\n \"RoomFeatures\": [],\r\n \"RateCodeDetail\": {},\r\n \"NoOfDailyRate\": 1,\r\n \"BillingInstructionSerNo\": 0,\r\n \"IsApplyArrDateToPrimaryRes\": false,\r\n \"IsApplyDeptDateToPrimaryRes\": false,\r\n \"IsSharer\" : false,\r\n \"SharerReservationSerNo\" : 0,\r\n \"IsOTAReservation\" : false,\r\n \"BookingRefNoSub\" : \"\",\r\n \"IsHasSharerRes\" : false,\r\n \"SharerArrivalDate\":\"\",\r\n \"SharerDepartureDate\":\"\",\r\n \"IsPMReservation\" : false\r\n });\r\n const [validPage, setValidPage] = useState({\r\n \"IsValidPage\": true,\r\n \"IsValidProperty\": true,\r\n \"IsValidNights\": true,\r\n \"IsValidRoom\": true,\r\n \"IsValidAdult\": true,\r\n \"IsValidChild\": true,\r\n \"IsValidRoomType\": true\r\n });\r\n let defaultRoomTypeObj = {\r\n \"RoomTypeSerNo\": 0,\r\n \"Name\": \"Select\",\r\n \"MinOccupancy\": 0,\r\n \"MaxOccupancy\": 0,\r\n \"MinAdult\": 1,\r\n \"MaxAdult\": 6,\r\n \"MaxChild\": 3,\r\n \"IsDefault\": false,\r\n \"key\": 0,\r\n \"value\": \"Select\"\r\n }\r\n const [newReservationValidation, setNewReservationValidation] = useState({\r\n \"Property\": \"\",\r\n \"ArrivalDate\": \"\",\r\n \"DepartureDate\": \"\",\r\n \"Nights\": \"\",\r\n \"Rooms\": \"\",\r\n \"Adult\": \"\",\r\n \"Child\": \"\",\r\n \"RoomType\": \"\",\r\n \"Profile\": \"\",\r\n \"CompanyProfileSerNo\": \"\",\r\n \"AgentProfileSerNo\": \"\",\r\n \"RateSerNo\": \"\",\r\n \"ChargeableRoomTypeSerNo\": \"\",\r\n \"ReservationTypeSerNo\": \"\",\r\n \"IsInclusive\": \"\",\r\n \"Market\": \"\",\r\n \"Source\": \"\",\r\n \"BillingInstruction\": \"\",\r\n \"BookingRefNo\": \"\",\r\n \"RoomSerNo\": \"\",\r\n \"ReservationStatus\": \"DIN\",\r\n \"IsArrivalOnSameDay\": \"\",\r\n \"IsDepartureOnSameDay\": \"\",\r\n \"ActualArrivalTime\": null,\r\n \"ActualDepartureTime\": null,\r\n \"Specials\": [],\r\n \"RoomFeatures\": [],\r\n \"RateCodeDetail\": {}\r\n });\r\n const [packageCollectionIncl, setPackageCollectionIncl] = useState([]);\r\n const [packageCollection, setPackageCollection] = useState({\r\n \"Total\": 0,\r\n \"TotalAmount\": 0,\r\n \"Name\": []\r\n });\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n const rbReasonForUpgrade = [\r\n { key: \"Some text show here\", value: \"Some text show here\" },\r\n { key: \"You can select anyone\", value: \"You can select anyone\" },\r\n { key: \"There are some text may be long text display here\", value: \"There are some text may be long text display here\" },\r\n { key: \"Some long description data show here\", value: \"Some long description data show here\" },\r\n { key: \"Those text will be dynamic.\", value: \"Those text will be dynamic.\" },\r\n ];\r\n const selectdata = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n\r\n\r\n const [showGuestModal, setShowGuestModal] = useState(false);\r\n const [showGuestSelectAndContinueModal, setShowGuestSelectAndContinueModal] = useState(false);\r\n const [showAgentModal, setShowAgentModal] = useState(false);\r\n const [showAddAgentModal, setShowAddAgentModal] = useState(false);\r\n const [showCompanyModal, setShowCompanyModal] = useState(false);\r\n const [showAddCompanyModal, setShowAddCompanyModal] = useState(false);\r\n const [showPreviewModal, setShowPreviewModal] = useState(false);\r\n const [showRateSelectionModal, setShowRateSelectionModal] = useState(false);\r\n const [showRoomUpgradeReasonModal, setShowRoomUpgradeReasonModal] = useState(false);\r\n const [showRateSelectionSummaryModal, setShowRateSelectionSummaryModal] = useState(false);\r\n const [showRateSelectionPoliciesModal, setShowRateSelectionPoliciesModal] = useState(false);\r\n const [showRoomListModal, setShowRoomListModal] = useState(false);\r\n const [showRoomFeaturesModal, setShowRoomFeaturesModal] = useState(false);\r\n const [showRoomSpecialsModal, setShowRoomSpecialsModal] = useState(false);\r\n const [showRoomAvailabilityModal, setShowRoomAvailabilityModal] = useState(false);\r\n const [showBillingInstructionModal, setShowBillingInstructionModal] = useState(false);\r\n const [showDailyRateModal, setShowDailyRateModal] = useState(false);\r\n const [gridSelectedItem, SetgridSelectedItem] = useState([]);\r\n const [temp, settemp] = useState(false);\r\n const columHeaderRoomWithoutPreference = [\r\n { key: \"Guest Name\", value: \"guestname\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Arrival Date\", value: \"arrdate\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Departure Date\", value: \"depdate\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Room No.\", value: \"roomno\", type: \"txt\", sorting: \"N\" },\r\n { key: \"VIP Status\", value: \"status\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Room Rate\", value: \"roomrate\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Room type to charge\", value: \"charge\", type: \"txt\", sorting: \"N\" },\r\n ];\r\n const [filterDataRoomWithoutPreference] = useState([\r\n {\r\n guestname: \"Mr. Rahul Gupta\",\r\n arrdate: \"27th Dec\",\r\n depdate: \"28th Dec\",\r\n roomno: \"305\",\r\n status: \" \",\r\n roomrate: \"7500 + Tax\",\r\n charge: \" \",\r\n },\r\n {\r\n guestname: \"Mr. Sahil Mehta\",\r\n arrdate: \"27th Dec\",\r\n depdate: \"28th Dec\",\r\n roomno: \"305\",\r\n status: \" \",\r\n roomrate: \"7500 + Tax\",\r\n charge: \" \",\r\n },\r\n {\r\n guestname: \"Ms. Ritika Sinha\",\r\n arrdate: \"27th Dec\",\r\n depdate: \"28th Dec\",\r\n roomno: \"305\",\r\n status: \" \",\r\n roomrate: \"7500 + Tax\",\r\n charge: \" \",\r\n },\r\n {\r\n guestname: \"Mr. Chandra Shekhar\",\r\n arrdate: \"27th Dec\",\r\n depdate: \"28th Dec\",\r\n roomno: \"305\",\r\n status: \" \",\r\n roomrate: \"7500 + Tax\",\r\n charge: \" \",\r\n },\r\n ]);\r\n const [isRoomNoDisabled, setIsRoomNoDisabled] = useState(false)\r\n const [userRightsData, setUserRightsData] = useState([]);\r\n const [isAverageRate, setIsAverageRate] = useState(false);\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n \r\n // let lastSelectedArrivalDate1 = \"\";\r\n // let lastSelectedDepartureDate1 =\"\";\r\n\r\n //#region PageLoad\r\n useEffect(() => {\r\n\r\n GetPropertyMaster(currUser.ClientSerNo).then((d) => {\r\n let propertyData = [{\r\n \"key\": \"0\",\r\n \"value\": \"Select\"\r\n }, ...d.data];\r\n\r\n setPropertyData(propertyData);\r\n })\r\n fillUserRights();\r\n if (location.state !== undefined) {\r\n if (location.state.Mode == \"Edit\") {\r\n if (location.state.propertySerNo !== undefined && location.state.reservationSerNo !== undefined) { \r\n GetReservationBySerNo(currUser.ClientSerNo, location.state.propertySerNo, location.state.reservationSerNo).then(d => {\r\n\r\n let extraPkg = [];\r\n let extraPkgTax = [];\r\n if (d.data.RateCodeDetail.PackageDetails != undefined) {\r\n extraPkg = d.data.RateCodeDetail.PackageDetails.filter(x => x.IsAdditional == true);\r\n }\r\n if (d.data.RateCodeDetail.TaxDetails != undefined) {\r\n extraPkgTax = d.data.RateCodeDetail.TaxDetails.filter(x => x.Type == 'PE');\r\n }\r\n let distinctPkg = [];\r\n extraPkg.map(p => {\r\n let newPkg = distinctPkg.filter(x => x.PackageSerNo == p.PackageSerNo).length;\r\n if (newPkg == 0) {\r\n distinctPkg.push({ \"PackageSerNo\": p.PackageSerNo, \"Name\": p.Name, \"Adult\": p.Adult, \"Child\": p.Child });\r\n }\r\n })\r\n\r\n let exPkg = [];\r\n distinctPkg.map(dp => {\r\n let o = {};\r\n o.RateCodeDetail = {};\r\n o.RateCodeDetail.RateCodeDetails = null;\r\n o.RateCodeDetail.ChargeDetails = null;\r\n o.RateCodeDetail.NewPackageDetails = [];\r\n o.RateCodeDetail.PackageDetails = d.data.RateCodeDetail.PackageDetails.filter(x => x.IsAdditional == true && x.PackageSerNo == dp.PackageSerNo);\r\n o.RateCodeDetail.PackageDetails.map(np => {\r\n let calculatedQty = 1;\r\n if (np.CalculationRuleSerNo == \"PP\") {\r\n calculatedQty = parseInt(np.Adult) + parseInt(np.Child);\r\n } else if (np.CalculationRuleSerNo == \"PA\") {\r\n calculatedQty = parseInt(np.Adult);\r\n } else if (np.CalculationRuleSerNo == \"PC\") {\r\n calculatedQty = parseInt(np.Child);\r\n } else {\r\n calculatedQty = 1;\r\n }\r\n\r\n let newPkg = o.RateCodeDetail.NewPackageDetails.filter(x => x.PackageSerNo == np.PackageSerNo).length;\r\n let night = o.RateCodeDetail.PackageDetails.filter(x => x.PackageSerNo == np.PackageSerNo).length;\r\n let totalPrice = (parseFloat(np.PackageRate) + (np.IsTaxInclusive ? 0 : (parseFloat(np.Taxes) / parseInt(calculatedQty))));\r\n let stayTotal = (parseFloat(np.PackagePrice) + (np.IsTaxInclusive ? 0 : parseFloat(np.Taxes)));\r\n if (newPkg == 0) {\r\n o.RateCodeDetail.NewPackageDetails.push({\r\n RateSerNo: np.RateSerNo,\r\n PackageSerNo: np.PackageSerNo,\r\n Name: np.Name,\r\n PackageRate: np.PackageRate,\r\n PackagePrice: np.PackagePrice,\r\n CalculationRule: np.CalculationRule,\r\n PostingRhythm: np.PostingRhythm,\r\n PostingType: np.PostingType,\r\n Component: (np.IsTaxInclusive ? np.PackageRate + \" Incl.Tax\" : np.PackageRate + \" + Tax\"),\r\n Total: totalPrice.toFixed(2),\r\n Person: np.Adult + \"A, \" + np.Child + \"C\",\r\n Action: \"\",\r\n Nights: night,\r\n Qty: calculatedQty * night,\r\n StayTotal: (parseFloat(stayTotal) * parseInt(night)).toFixed(2),\r\n IsUpSell: np.IsUpSell\r\n });\r\n }\r\n })\r\n o.RateCodeDetail.TaxDetails = d.data.RateCodeDetail.TaxDetails.filter(x => x.Type == 'PE' && x.PackageSerNo == dp.PackageSerNo);\r\n o.PackageSerNo = dp.PackageSerNo;\r\n o.Adult = dp.Adult;\r\n o.Child = dp.Child;\r\n o.Name = dp.Name;\r\n exPkg.push(o);\r\n })\r\n\r\n dispatch(reSetExtraPackage(exPkg));\r\n\r\n // get extra packages\r\n\r\n let orgData = JSON.parse(JSON.stringify(d.data));\r\n\r\n if (d.data.RateCodeDetail.PackageDetails != undefined) {\r\n orgData.RateCodeDetail.PackageDetails = d.data.RateCodeDetail.PackageDetails.filter(x => x.IsAdditional == false);\r\n }\r\n if (d.data.RateCodeDetail.TaxDetails != undefined) {\r\n orgData.RateCodeDetail.TaxDetails = d.data.RateCodeDetail.TaxDetails.filter(x => x.Type != 'PE');\r\n }\r\n\r\n orgData.NewAdult = orgData.Adult;\r\n\r\n let obj = ModifiedRateDetailData(orgData.RateCodeDetail);\r\n dispatch(setRateAndPackages(obj));\r\n dispatch(setTempRateAndPackage({}));\r\n setNewReservation(orgData);\r\n // lastSelectedArrivalDate1 = orgData.ArrivalDate;\r\n // lastSelectedDepartureDate1 = orgData.DepartureDate;\r\n if (orgData.RateCodeDetail)\r\n updateNoofDailyRate(orgData.RateCodeDetail.RateCodeDetails);\r\n else\r\n setNewReservation(prev => ({ ...prev, NoOfDailyRate: 1 }));\r\n\r\n if (orgData != undefined) {\r\n setOldReservation(JSON.parse(JSON.stringify(orgData)));\r\n }\r\n setSelectedGuest(prev => ({ ...prev, ProfileSerNo: d.data.ProfileSerNo }));\r\n setSelectedGuest(prev => ({ ...prev, GuestName: d.data.GuestName }));\r\n setSelectedGuest(prev => ({ ...prev, MemberShipName: d.data.MemberShipName }));\r\n setSelectedGuest(prev => ({ ...prev, MembershipNo: d.data.MembershipNo }));\r\n\r\n setSelectedCompany(prev => ({ ...prev, CompanyProfileSerNo: d.data.CompanyProfileSerNo }));\r\n setSelectedCompany(prev => ({ ...prev, CompanyName: d.data.Company }));\r\n setNewReservation(prev => ({ ...prev, CompanyHasRateMapping: d.data.CompanyHasRateMapping }));\r\n\r\n setSelectedAgent(prev => ({ ...prev, AgentProfileSerNo: d.data.AgentProfileSerNo }));\r\n setSelectedAgent(prev => ({ ...prev, CompanyName: d.data.Agent }));\r\n setNewReservation(prev => ({ ...prev, AgentHasRateMapping: d.data.AgentHasRateMapping }));\r\n setNewReservation(prev => ({ ...prev, IsApplyArrDateToPrimaryRes: false }));\r\n setNewReservation(prev => ({ ...prev, IsApplyDeptDateToPrimaryRes: false }));\r\n dispatch(setIsSharer(d.data.IsSharer));\r\n if (d.data.IsSharer){\r\n GetReservationBySerNo(currUser.ClientSerNo, location.state.propertySerNo, d.data.SharerReservationSerNo).then(d => {\r\n setPrimaryReservation(JSON.parse(JSON.stringify(d.data)));\r\n })\r\n }\r\n console.log(propertyParameterData);\r\n console.log(orgData.ArrivalDate);\r\n if(businessDate != undefined && businessDate != \"\" && orgData != undefined){\r\n if((new Date(Moment(businessDate).format(\"DD-MMM-YYYY\")).getTime() >= new Date(Moment(orgData.ArrivalDate).format(\"DD-MMM-YYYY\")).getTime())){\r\n //setIsRoomNoDisabled(true);\r\n }\r\n }\r\n })\r\n \r\n }\r\n }\r\n else {\r\n let tmpPropertySerNo = currUser.PropertySerNo;\r\n setNewReservation(prev => ({ ...prev, IsWalkIn: res.IsWalkIn }));\r\n if (res.IsSharer == true) {\r\n if (res.SharerReservationSerNo !== undefined) {\r\n GetReservationBySerNo(currUser.ClientSerNo, tmpPropertySerNo, res.SharerReservationSerNo).then(d => {\r\n\r\n // let extraPkg = [];\r\n // let extraPkgTax = [];\r\n // if (d.data.RateCodeDetail.PackageDetails != undefined) {\r\n // extraPkg = d.data.RateCodeDetail.PackageDetails.filter(x => x.IsAdditional == true);\r\n // }\r\n // if (d.data.RateCodeDetail.TaxDetails != undefined) {\r\n // extraPkgTax = d.data.RateCodeDetail.TaxDetails.filter(x => x.Type == 'PE');\r\n // }\r\n // let distinctPkg = [];\r\n // extraPkg.map(p => {\r\n // let newPkg = distinctPkg.filter(x => x.PackageSerNo == p.PackageSerNo).length;\r\n // if (newPkg == 0) {\r\n // distinctPkg.push({ \"PackageSerNo\": p.PackageSerNo, \"Name\": p.Name, \"Adult\": p.Adult, \"Child\": p.Child });\r\n // }\r\n // })\r\n\r\n let exPkg = [];\r\n // distinctPkg.map(dp => {\r\n // let o = {};\r\n // o.RateCodeDetail = {};\r\n // o.RateCodeDetail.RateCodeDetails = null;\r\n // o.RateCodeDetail.ChargeDetails = null;\r\n // o.RateCodeDetail.NewPackageDetails = [];\r\n // o.RateCodeDetail.PackageDetails = d.data.RateCodeDetail.PackageDetails.filter(x => x.IsAdditional == true && x.PackageSerNo == dp.PackageSerNo);\r\n // o.RateCodeDetail.PackageDetails.map(np => {\r\n // let calculatedQty = 1;\r\n // if (np.CalculationRuleSerNo == \"PP\") {\r\n // calculatedQty = parseInt(np.Adult) + parseInt(np.Child);\r\n // } else if (np.CalculationRuleSerNo == \"PA\") {\r\n // calculatedQty = parseInt(np.Adult);\r\n // } else if (np.CalculationRuleSerNo == \"PC\") {\r\n // calculatedQty = parseInt(np.Child);\r\n // } else {\r\n // calculatedQty = 1;\r\n // }\r\n\r\n // let newPkg = o.RateCodeDetail.NewPackageDetails.filter(x => x.PackageSerNo == np.PackageSerNo).length;\r\n // let night = o.RateCodeDetail.PackageDetails.filter(x => x.PackageSerNo == np.PackageSerNo).length;\r\n // let totalPrice = (parseFloat(np.PackageRate) + (np.IsTaxInclusive ? 0 : (parseFloat(np.Taxes) / parseInt(calculatedQty))));\r\n // let stayTotal = (parseFloat(np.PackagePrice) + (np.IsTaxInclusive ? 0 : parseFloat(np.Taxes)));\r\n // if (newPkg == 0) {\r\n // o.RateCodeDetail.NewPackageDetails.push({\r\n // RateSerNo: np.RateSerNo,\r\n // PackageSerNo: np.PackageSerNo,\r\n // Name: np.Name,\r\n // PackageRate: np.PackageRate,\r\n // PackagePrice: np.PackagePrice,\r\n // CalculationRule: np.CalculationRule,\r\n // PostingRhythm: np.PostingRhythm,\r\n // PostingType: np.PostingType,\r\n // Component: (np.IsTaxInclusive ? np.PackageRate + \" Incl.Tax\" : np.PackageRate + \" + Tax\"),\r\n // Total: totalPrice.toFixed(2),\r\n // Person: np.Adult + \"A, \" + np.Child + \"C\",\r\n // Action: \"\",\r\n // Nights: night,\r\n // Qty: calculatedQty * night,\r\n // StayTotal: (parseFloat(stayTotal) * parseInt(night)).toFixed(2),\r\n // IsUpSell: np.IsUpSell\r\n // });\r\n // }\r\n // })\r\n // o.RateCodeDetail.TaxDetails = d.data.RateCodeDetail.TaxDetails.filter(x => x.Type == 'PE' && x.PackageSerNo == dp.PackageSerNo);\r\n // o.PackageSerNo = dp.PackageSerNo;\r\n // o.Adult = dp.Adult;\r\n // o.Child = dp.Child;\r\n // o.Name = dp.Name;\r\n // exPkg.push(o);\r\n // })\r\n\r\n dispatch(reSetExtraPackage(exPkg));\r\n\r\n // get extra packages\r\n\r\n let orgData = JSON.parse(JSON.stringify(d.data));\r\n\r\n if (d.data.RateCodeDetail.PackageDetails != undefined) {\r\n orgData.RateCodeDetail.PackageDetails = d.data.RateCodeDetail.PackageDetails.filter(x => x.IsAdditional == false);\r\n }\r\n if (d.data.RateCodeDetail.TaxDetails != undefined) {\r\n orgData.RateCodeDetail.TaxDetails = d.data.RateCodeDetail.TaxDetails.filter(x => x.Type != 'PE');\r\n }\r\n\r\n orgData.NewAdult = orgData.Adult;\r\n\r\n let obj = ModifiedRateDetailData(orgData.RateCodeDetail);\r\n dispatch(setRateAndPackages(obj));\r\n dispatch(setTempRateAndPackage({}));\r\n setNewReservation(orgData);\r\n // lastSelectedArrivalDate1 = orgData.ArrivalDate;\r\n // lastSelectedDepartureDate1 = orgData.DepartureDate;\r\n if (orgData.RateCodeDetail)\r\n updateNoofDailyRate(orgData.RateCodeDetail.RateCodeDetails);\r\n else\r\n setNewReservation(prev => ({ ...prev, NoOfDailyRate: 1 }));\r\n\r\n if (orgData != undefined) {\r\n setOldReservation(JSON.parse(JSON.stringify(orgData)));\r\n }\r\n // setSelectedGuest(prev => ({ ...prev, ProfileSerNo: d.data.ProfileSerNo }));\r\n // setSelectedGuest(prev => ({ ...prev, GuestName: d.data.GuestName }));\r\n // setSelectedGuest(prev => ({ ...prev, MemberShipName: d.data.MemberShipName }));\r\n // setSelectedGuest(prev => ({ ...prev, MembershipNo: d.data.MembershipNo }));\r\n\r\n setSelectedCompany(prev => ({ ...prev, CompanyProfileSerNo: d.data.CompanyProfileSerNo }));\r\n setSelectedCompany(prev => ({ ...prev, CompanyName: d.data.Company }));\r\n setNewReservation(prev => ({ ...prev, CompanyHasRateMapping: d.data.CompanyHasRateMapping }));\r\n\r\n setSelectedAgent(prev => ({ ...prev, AgentProfileSerNo: d.data.AgentProfileSerNo }));\r\n setSelectedAgent(prev => ({ ...prev, CompanyName: d.data.Agent }));\r\n setNewReservation(prev => ({ ...prev, AgentHasRateMapping: d.data.AgentHasRateMapping }));\r\n\r\n setNewReservation(prev => ({ ...prev, Rooms: 0 }));\r\n setNewReservation(prev => ({ ...prev, Adult: 1 }));\r\n setNewReservation(prev => ({ ...prev, NewAdult: 1 }));\r\n setNewReservation(prev => ({ ...prev, Child: 0 }));\r\n setNewReservation(prev => ({ ...prev, Specials: [] }));\r\n setNewReservation(prev => ({ ...prev, RoomFeatures: [] }));\r\n setNewReservation(prev => ({ ...prev, ActualArrivalTime: null }));\r\n setNewReservation(prev => ({ ...prev, ActualDepartureTime: null }));\r\n setNewReservation(prev => ({ ...prev, IsApplyArrDateToPrimaryRes: false }));\r\n setNewReservation(prev => ({ ...prev, IsApplyDeptDateToPrimaryRes: false }));\r\n if (res.IsSharer == true) {\r\n setNewReservation(prev => ({ ...prev, ReservationSerNo: 0 }));\r\n setNewReservation(prev => ({ ...prev, IsSharer: true }));\r\n setNewReservation(prev => ({ ...prev, SharerReservationSerNo: res.SharerReservationSerNo }));\r\n setPrimaryReservation(JSON.parse(JSON.stringify(orgData)));\r\n }\r\n if(propertyParameterData != undefined){\r\n let paraBusinessDate = propertyParameterData.find(x => x.key == \"BusinessDate\");\r\n if(paraBusinessDate != undefined && paraBusinessDate != null){\r\n paraBusinessDate = Moment(paraBusinessDate.value).format(\"DD-MMM-YYYY\");\r\n setSharerArrivalDateOnload(paraBusinessDate,d.data.ArrivalDate,d.data.DepartureDate);\r\n }\r\n }\r\n if(businessDate != undefined && businessDate != \"\" && orgData != undefined){\r\n if((new Date(Moment(businessDate).format(\"DD-MMM-YYYY\")).getTime() >= new Date(Moment(orgData.ArrivalDate).format(\"DD-MMM-YYYY\")).getTime())){\r\n setIsRoomNoDisabled(true);\r\n }\r\n }\r\n \r\n })\r\n }\r\n else {\r\n setNewReservation(prev => ({ ...prev, Rooms: 0 }));\r\n setNewReservation(prev => ({ ...prev, NewAdult: 1 }));\r\n setNewReservation(prev => ({ ...prev, Child: 0 }));\r\n setNewReservation(prev => ({ ...prev, ReservationSerNo: 0 }));\r\n setNewReservation(prev => ({ ...prev, IsSharer: true }));\r\n setNewReservation(prev => ({ ...prev, SharerReservationSerNo: res.SharerReservationSerNo }));\r\n setNewReservation(prev => ({ ...prev, IsApplyArrDateToPrimaryRes: false }));\r\n setNewReservation(prev => ({ ...prev, IsApplyDeptDateToPrimaryRes: false }));\r\n }\r\n }\r\n else {\r\n setNewReservation(prev => ({ ...prev, IsApplyArrDateToPrimaryRes: false }));\r\n setNewReservation(prev => ({ ...prev, IsApplyDeptDateToPrimaryRes: false }));\r\n }\r\n if (currUser.ClientSerNo !== undefined && currUser.UserID != undefined) {\r\n ManageRights(currUser.ClientSerNo, currUser.UserID, \"16\").then(d => {\r\n if (d.data[0].IsApply != undefined) {\r\n if (d.data[0].IsApply == false) {\r\n setIsRoomNoDisabled(true);\r\n }\r\n else {\r\n setIsRoomNoDisabled(false);\r\n }\r\n }\r\n })\r\n }\r\n }\r\n }\r\n }, []);\r\n\r\n //#endregion PageLoad\r\n\r\n //#region Common Method\r\n const setSharerArrivalDateOnload = (paraBusinessDate,ArrivalDate,DepartureDate) => {\r\n // if((new Date(ArrivalDate).getTime() < new Date(paraBusinessDate).getTime()))\r\n // {\r\n // setNewReservation(prev => ({ ...prev, ArrivalDate: paraBusinessDate }));\r\n // let d = (new Date(DepartureDate) - new Date(paraBusinessDate)) / (1000 * 60 * 60 * 24);\r\n // setNewReservation(prev => ({ ...prev, Nights: d }));\r\n // }\r\n }\r\n const calculatePackages = () => {\r\n let temp = [];\r\n let grandTotal = 0;\r\n res.extraPackage.map(d => {\r\n temp.push({ \"Name\": d.Name });\r\n if (d.RateCodeDetail != undefined) {\r\n let total = 0;\r\n d.RateCodeDetail.PackageDetails.map(p => {\r\n total += parseFloat(p.PackagePrice) + (p.IsTaxInclusive ? 0 : parseFloat(p.Taxes));\r\n })\r\n grandTotal += total;\r\n }\r\n })\r\n\r\n setPackageCollection({ Total: temp.length, TotalAmount: grandTotal.toFixed(2), Name: temp });\r\n }\r\n\r\n const calculateGrandTotal = () => {\r\n if (res.rateDetailData.RateCodeDetails != undefined) {\r\n let total = 0;\r\n res.rateDetailData.RateCodeDetails.map(d => {\r\n total += parseFloat(d.RoomRate) + (d.IsTaxInclusive ? 0 : parseFloat(d.Taxes));\r\n })\r\n res.rateDetailData.PackageDetails.map(d => {\r\n total += parseFloat(d.PackagePrice) + (d.IsTaxInclusive ? 0 : parseFloat(d.Taxes));\r\n })\r\n res.extraPackage.map(d => {\r\n if (d.RateCodeDetail != undefined) {\r\n d.RateCodeDetail.PackageDetails.map(pk => {\r\n total = parseFloat(total) + ((parseFloat(pk.PackagePrice) + (pk.IsTaxInclusive ? 0 : parseFloat(pk.Taxes))));\r\n })\r\n }\r\n })\r\n total = total * parseInt(newReservation.Rooms);\r\n if (isNaN(total)) {\r\n setGrandTotal(\"0.00\");\r\n }\r\n else{\r\n setGrandTotal(total.toFixed(2));\r\n }\r\n }\r\n }\r\n\r\n const validatePage = () => {\r\n\r\n let IsValidPage = true;\r\n if (newReservation.PropertySerNo == 0) {\r\n IsValidPage = false;\r\n setNewReservationValidation(prev => ({ ...prev, Property: \"Select Property\" }))\r\n confirm({Message: \"Select Property.\",Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n } else {\r\n setNewReservationValidation(prev => ({ ...prev, Property: \"\" }));\r\n }\r\n try {\r\n //if (new Date(newReservation.ArrivalDate) > new Date(newReservation.DepartureDate)) {\r\n if (new Date(Moment(newReservation.ArrivalDate).format(\"DD-MMM-YYYY\")) > new Date(Moment(newReservation.DepartureDate).format(\"DD-MMM-YYYY\"))) {\r\n IsValidPage = false;\r\n confirm({Message: \"Arrival date is greater than Departure date.\",Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n }\r\n } catch (error) {\r\n } \r\n if (isNaN(newReservation.Nights) || newReservation.Nights == \"\") {\r\n if (newReservation.Nights != 0) {\r\n IsValidPage = false;\r\n confirm({Message: \"Please enter valid nights.\",Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n }\r\n }\r\n if (isNaN(newReservation.Rooms) || newReservation.Rooms == \"\" || newReservation.Rooms == 0) {\r\n if(res.IsSharer == false){\r\n IsValidPage = false; \r\n confirm({Message: \"Please enter valid Rooms.\",Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n } \r\n }\r\n if (validPage.IsValidRoom == false) {\r\n IsValidPage = false;\r\n confirm({Message: \"Please enter valid Rooms .\",Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n }\r\n if (isNaN(newReservation.Adult) || newReservation.Adult == \"\" || newReservation.Adult == 0) {\r\n IsValidPage = false;\r\n confirm({Message: \"Please enter valid adult.\",Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n }\r\n else{\r\n var roomType = roomTypeData.find(x => x.RoomTypeSerNo == newReservation.RoomTypeSerNo);\r\n if(roomType != null){\r\n if (newReservation.Adult < roomType.MinAdult || newReservation.Adult > roomType.MaxAdult ) {\r\n IsValidPage = false;\r\n confirm({\r\n Message: \"Adult must be between \" + roomType.MinAdult +\" to \"+ roomType.MaxAdult +\".(As per room type master detail.)\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n }\r\n }\r\n }\r\n if (isNaN(newReservation.Child) || newReservation.Child == \"\" || newReservation.Child == 0) {\r\n //IsValidPage = false;\r\n }else{\r\n var roomType = roomTypeData.find(x => x.RoomTypeSerNo == newReservation.RoomTypeSerNo);\r\n if(roomType != null){\r\n if (newReservation.Child > roomType.MaxChild ) {\r\n IsValidPage = false;\r\n confirm({\r\n Message: \"Child must be equal or less than \" + roomType.MaxChild +\".(As per room type master detail.)\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n }\r\n }\r\n }\r\n if (newReservation.RoomTypeSerNo == 0) {\r\n IsValidPage = false;\r\n confirm({Message: \"Please select valid room type.\",Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n }\r\n if (isNaN(newReservation.ProfileSerNo) || newReservation.ProfileSerNo == \"\") {\r\n IsValidPage = false;\r\n confirm({Message: \"Please select valid guest.\",Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n }\r\n if (isNaN(newReservation.RateSerNo) || newReservation.RateSerNo == \"\") {\r\n IsValidPage = false;\r\n confirm({Message: \"Please select valid rate.\",Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n }\r\n if (isNaN(newReservation.ReservationTypeSerNo) || newReservation.ReservationTypeSerNo == \"\") {\r\n IsValidPage = false;\r\n confirm({Message: \"Please select valid Reservation type.\",Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n }\r\n if (newReservation.MarketSerNo == 0) {\r\n IsValidPage = false;\r\n setNewReservationValidation(prev => ({ ...prev, Market: \"Select Market\" }))\r\n } else {\r\n setNewReservationValidation(prev => ({ ...prev, Market: \"\" }))\r\n }\r\n if (newReservation.SourceSerNo == 0) {\r\n IsValidPage = false;\r\n setNewReservationValidation(prev => ({ ...prev, Source: \"Select Source\" }))\r\n } else {\r\n setNewReservationValidation(prev => ({ ...prev, Source: \"\" }))\r\n }\r\n if (selectedReservationType.IsArrivalTimeMandatory && newReservation.ActualArrivalTime == null) {\r\n IsValidPage = false;\r\n confirm({Message: \"Please select valid arrival time.\",Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n }\r\n if (location.state.Mode === \"Add\") {\r\n let paraBusinessDate = propertyParameterData.find(x => x.key == \"BusinessDate\").value;\r\n //if (new Date(newReservation.ArrivalDate) < new Date(paraBusinessDate)) {\r\n if (new Date(Moment(newReservation.ArrivalDate).format(\"DD-MMM-YYYY\")) < new Date(Moment(paraBusinessDate).format(\"DD-MMM-YYYY\"))) {\r\n IsValidPage = false;\r\n setNewReservationValidation(prev => ({ ...prev, ArrivalDate: \"Arrival Date must not less than business date.\" }))\r\n confirm({\r\n Message: \"Arrival Date must not less than business date.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n }\r\n else{\r\n setNewReservationValidation(prev => ({ ...prev, ArrivalDate: \"\" }))\r\n }\r\n }\r\n return IsValidPage;\r\n }\r\n\r\n const reCalculateRate = (ClientSerNo, PropertySerNo, RateSerNo, ChargeableRoomTypeSerNo, ArrivalDate, DepartureDate, Adult, Child, companyProfileSerNo, agentProfileSerNo) => {\r\n let taxableAmount = '-1';\r\n if (newReservation.IsRateMappedToProfile == false) {\r\n taxableAmount = newReservation.NewRoomRate;\r\n }\r\n GetRateAndPackageRate(ClientSerNo, PropertySerNo, 0, true, RateSerNo,\r\n ChargeableRoomTypeSerNo, ArrivalDate, DepartureDate, Adult, Child, taxableAmount, companyProfileSerNo, agentProfileSerNo).then(d => {\r\n if (d.data.RateCodeDetails.length > 0) {\r\n // let orgData = ModifiedRateDetailData(d.data);\r\n // dispatch(setRateAndPackages(orgData));\r\n // setNewReservation(prev => ({ ...prev, IsInclusive: orgData.RateCodeDetails[0].IsTaxInclusive }));\r\n let tempOrgData = JSON.parse(JSON.stringify(res.rateDetailData));\r\n if (tempOrgData != undefined) {\r\n //Hold the old data respected to changed Arr-Dept Date.\r\n if (tempOrgData.PackageDetails != undefined && tempOrgData.PackageDetails.length > 0) {\r\n tempOrgData.PackageDetails = tempOrgData.PackageDetails.filter((x) => new Date(x.Date).getTime() >= new Date(ArrivalDate).getTime() && new Date(x.Date).getTime() <= new Date(DepartureDate).getTime());\r\n }\r\n if (tempOrgData.RateCodeDetails != undefined && tempOrgData.RateCodeDetails.length > 0) {\r\n tempOrgData.RateCodeDetails = tempOrgData.RateCodeDetails.filter((x) => new Date(x.Date).getTime() >= new Date(ArrivalDate).getTime() && new Date(x.Date).getTime() <= new Date(DepartureDate).getTime());\r\n }\r\n if (tempOrgData.TaxDetails != undefined && tempOrgData.TaxDetails.length > 0) {\r\n tempOrgData.TaxDetails = tempOrgData.TaxDetails.filter((x) => new Date(x.Date).getTime() >= new Date(ArrivalDate).getTime() && new Date(x.Date).getTime() <= new Date(DepartureDate).getTime());\r\n }\r\n\r\n //Add new row of data only for the changed Arr-Dept Date.\r\n if (tempOrgData.RateCodeDetails.length > 0) {\r\n let vMinDate = tempOrgData.RateCodeDetails.reduce(function (a, b) { return new Date(a.Date).getTime() < new Date(b.Date).getTime() ? a : b; });\r\n let vMaxDate = tempOrgData.RateCodeDetails.reduce(function (a, b) { return new Date(a.Date).getTime() > new Date(b.Date).getTime() ? a : b; });\r\n if (d.data.PackageDetails != undefined) {\r\n d.data.PackageDetails.forEach(vPackage => {\r\n if (new Date(vPackage.Date).getTime() < new Date(vMinDate.Date).getTime() || new Date(vPackage.Date).getTime() > new Date(vMaxDate.Date).getTime()) {\r\n tempOrgData.PackageDetails.push(vPackage);\r\n }\r\n });\r\n }\r\n if (d.data.RateCodeDetails != undefined) {\r\n d.data.RateCodeDetails.forEach(vRate => {\r\n if (new Date(vRate.Date).getTime() < new Date(vMinDate.Date).getTime() || new Date(vRate.Date).getTime() > new Date(vMaxDate.Date).getTime()) {\r\n tempOrgData.RateCodeDetails.push(vRate);\r\n }\r\n });\r\n }\r\n if (d.data.TaxDetails != undefined) {\r\n d.data.TaxDetails.forEach(vTax => {\r\n if (new Date(vTax.Date).getTime() < new Date(vMinDate.Date).getTime() || new Date(vTax.Date).getTime() > new Date(vMaxDate.Date).getTime()) {\r\n tempOrgData.TaxDetails.push(vTax);\r\n }\r\n });\r\n }\r\n if (tempOrgData.RateCodeDetails != undefined) {\r\n\r\n }\r\n //let orgData = ModifiedRateDetailData(d.data);\r\n let orgData = ModifiedRateDetailData(tempOrgData);\r\n dispatch(setRateAndPackages(orgData));\r\n setNewReservation(prev => ({ ...prev, IsInclusive: orgData.RateCodeDetails[0].IsTaxInclusive }));\r\n }\r\n else {\r\n let orgData = ModifiedRateDetailData(d.data);\r\n dispatch(setRateAndPackages(orgData));\r\n setNewReservation(prev => ({ ...prev, IsInclusive: orgData.RateCodeDetails[0].IsTaxInclusive }));\r\n }\r\n }\r\n } else {\r\n //setNewReservation(prev => ({ ...prev, ChargeableRoomTypeSerNo: \"\" }));\r\n setNewReservation(prev => ({ ...prev, RateSerNo: \"\" }));\r\n setNewReservation(prev => ({ ...prev, RateCodeName: \"\" }));\r\n // setNewReservation(prev => ({ ...prev, ReservationType: \"\" }));\r\n // setNewReservation(prev => ({ ...prev, ReservationTypeSerNo: \"\" }));\r\n setNewReservation(prev => ({ ...prev, IsComplimentary: false }));\r\n setNewReservation(prev => ({ ...prev, IsHouseUse: false }));\r\n setNewReservation(prev => ({ ...prev, IsDiscloseRate: true }));\r\n setNewReservation(prev => ({ ...prev, IsPrintRate: true }));\r\n setNewReservation(prev => ({ ...prev, Discountable: false }));\r\n setNewReservation(prev => ({ ...prev, IsRateMappedToProfile: true }));\r\n setNewReservation(prev => ({ ...prev, RoomRate: \"\" }));\r\n setNewReservation(prev => ({ ...prev, NewRoomRate: \"\" }));\r\n dispatch(setRateAndPackages({}));\r\n dispatch(setTempRateAndPackage({}));\r\n setGrandTotal(\"0.00\");\r\n }\r\n })\r\n }\r\n\r\n const calculateRateAndPackage = (rateCodeDetails) => {\r\n GetModifiedRateAndPackageRate(rateCodeDetails).then(d => {\r\n // calculate total taxes from TaxDetails \r\n let obj = ModifiedRateDetailData(d.data);\r\n dispatch(setRateAndPackages(obj));\r\n })\r\n }\r\n\r\n const updateNoofDailyRate = (pRateCodeDetails) => {\r\n const uniqueDailyRate = [];\r\n if (pRateCodeDetails && pRateCodeDetails.length > 0) {\r\n pRateCodeDetails.map(item => {\r\n if (uniqueDailyRate.indexOf(item.RateSerNo) === -1) {\r\n uniqueDailyRate.push(item.RateSerNo);\r\n }\r\n });\r\n }\r\n let tmpNoOfDailyRate = 0;\r\n if (uniqueDailyRate == undefined || uniqueDailyRate.length == 0)\r\n tmpNoOfDailyRate = 0;\r\n else\r\n tmpNoOfDailyRate = uniqueDailyRate.length;\r\n setNewReservation(prev => ({ ...prev, NoOfDailyRate: tmpNoOfDailyRate }));\r\n }\r\n\r\n //#endregion Common Method\r\n\r\n //#region UseEffect \r\n\r\n useEffect(() => {\r\n calculatePackages();\r\n calculateGrandTotal();\r\n }, [showPackageListModal, res.extraPackage]);\r\n\r\n useEffect(() => {\r\n if (location.state.Mode == \"Add\" && res.IsSharer == false) {\r\n setNewReservation(prev => ({ ...prev, RoomTypeName: \"\" }));\r\n setNewReservation(prev => ({ ...prev, RoomTypeSerNo: \"0\" }));\r\n }\r\n }, [roomTypeData]);\r\n\r\n //ProertySerNo change effect.\r\n useEffect(() => {\r\n\r\n // validation\r\n if (newReservation.PropertySerNo != 0)\r\n setValidPage(prev => ({ ...prev, IsValidProperty: true }));\r\n else\r\n setValidPage(prev => ({ ...prev, IsValidProperty: false }));\r\n // validation\r\n\r\n if (location.state.Mode == \"Add\" && res.IsSharer == false) {\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: \"1-jan-2022\" }));\r\n setNewReservation(prev => ({ ...prev, Nights: 1 }));\r\n setNewReservation(prev => ({ ...prev, DepartureDate: \"2-jan-2022\" }));\r\n setNewReservation(prev => ({ ...prev, ChargeableRoomTypeSerNo: \"\" }));\r\n setNewReservation(prev => ({ ...prev, ChargeableRoomTypeName: \"\" }));\r\n setNewReservation(prev => ({ ...prev, RateSerNo: \"\" }));\r\n setNewReservation(prev => ({ ...prev, RateCodeName: \"\" }));\r\n setNewReservation(prev => ({ ...prev, RoomRate: \"\" }));\r\n setNewReservation(prev => ({ ...prev, NewRoomRate: \"\" }));\r\n setNewReservation(prev => ({ ...prev, ReservationType: \"\" }));\r\n setNewReservation(prev => ({ ...prev, ReservationTypeSerNo: \"\" }));\r\n setNewReservation(prev => ({ ...prev, IsInclusive: false }));\r\n setNewReservation(prev => ({ ...prev, MarketSerNo: \"\" }));\r\n setNewReservation(prev => ({ ...prev, SourceSerNo: \"\" }));\r\n setNewReservation(prev => ({ ...prev, RoomSerNo: \"\" }));\r\n setNewReservation(prev => ({ ...prev, IsArrivalOnSameDay: true }));\r\n setNewReservation(prev => ({ ...prev, IsDepartureOnSameDay: true }));\r\n setNewReservation(prev => ({ ...prev, ActualArrivalTime: null }));\r\n setNewReservation(prev => ({ ...prev, ActualDepartureTime: null }));\r\n setNewReservation(prev => ({ ...prev, CallingFrom: \"\" }));\r\n setNewReservation(prev => ({ ...prev, Specials: [] }));\r\n setNewReservation(prev => ({ ...prev, RoomFeatures: [] }));\r\n setNewReservation(prev => ({ ...prev, RateCodeDetail: {} }));\r\n setNewReservation(prev => ({ ...prev, IsComplimentary: false }));\r\n setNewReservation(prev => ({ ...prev, IsHouseUse: false }));\r\n setNewReservation(prev => ({ ...prev, IsDiscloseRate: true }));\r\n setNewReservation(prev => ({ ...prev, IsPrintRate: true }));\r\n setNewReservation(prev => ({ ...prev, Discountable: false }));\r\n setNewReservation(prev => ({ ...prev, IsRateMappedToProfile: true }));\r\n setNewReservation(prev => ({ ...prev, IsApplyArrDateToPrimaryRes: false }));\r\n setNewReservation(prev => ({ ...prev, IsApplyDeptDateToPrimaryRes: false }));\r\n setPackageCollection({ Total: 0, TotalAmount: 0, Name: [] });\r\n\r\n dispatch(setRateAndPackages({}));\r\n dispatch(setTempRateAndPackage({}));\r\n dispatch(reSetExtraPackage([]));\r\n\r\n GetRoomTypeMaster(currUser.ClientSerNo, newReservation.PropertySerNo).then(d => {\r\n let roomType = [defaultRoomTypeObj, ...d.data];\r\n roomType.map(r => {\r\n r.key = r.RoomTypeSerNo;\r\n r.value = r.Name;\r\n })\r\n setRoomTypeData(roomType);\r\n\r\n setTimeout(() => {\r\n let defaultObj = roomType.find(x => x.IsDefault == true);\r\n if (defaultObj != undefined) {\r\n setNewReservation(prev => ({\r\n ...prev,\r\n RoomTypeSerNo: defaultObj.RoomTypeSerNo,\r\n RoomTypeName: defaultObj.Name,\r\n ChargeableRoomTypeSerNo: defaultObj.RoomTypeSerNo,\r\n ChargeableRoomTypeName: defaultObj.Name\r\n }));\r\n }\r\n }, 100);\r\n\r\n })\r\n cmbGetMarketMaster(currUser.ClientSerNo, newReservation.PropertySerNo).then((d) => {\r\n setMarketData(d.data);\r\n setNewReservation(prev => ({ ...prev, MarketSerNo: 0 }));\r\n })\r\n cmbGetRoomMaster(currUser.ClientSerNo, newReservation.PropertySerNo).then(d => {\r\n setRoomData(d.data);\r\n })\r\n cmbGetSourceMaster(currUser.ClientSerNo, newReservation.PropertySerNo).then((d) => {\r\n setSourceData(d.data);\r\n setNewReservation(prev => ({ ...prev, SourceSerNo: 0 }));\r\n })\r\n GetPropertyParameterByKeys(currUser.ClientSerNo, newReservation.PropertySerNo, propertyParameters).then(d => {\r\n setPropertyParameterData(d.data);\r\n let obj = d.data.find(x => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: obj.value }));\r\n //lastSelectedArrivalDate1 = obj.value;\r\n //setNewReservation(prev => ({ ...prev, ActualArrivalTime: obj.value }));\r\n //setNewReservation(prev => ({ ...prev, ActualDepartureTime: obj.value }));\r\n let dt = new Date(obj.value);\r\n dt.setDate(dt.getDate() + 1);\r\n dt = Moment(dt).format(\"DD-MMM-YYYY\");\r\n setNewReservation(prev => ({ ...prev, DepartureDate: dt }));\r\n //lastSelectedDepartureDate1 = dt;\r\n setBusinessDate(Moment(obj.value).format(\"DD-MMM-YYYY\")); \r\n // if((new Date(Moment(obj.value).format(\"DD-MMM-YYYY\")).getTime() >= new Date(Moment(newReservation.ArrivalDate).format(\"DD-MMM-YYYY\")).getTime())){\r\n // setIsRoomNoDisabled(true);\r\n // }\r\n }\r\n let obj2 = d.data.find(x => x.key == \"ArrivalTime\");\r\n if (obj2 != undefined) {\r\n let dtArr = Moment(\"1-jan-2001 \" + obj2.value).format(\"DD-MMM-YYYY HH:mm\");\r\n //setNewReservation(prev => ({ ...prev, ActualArrivalTime: dtArr }));\r\n }\r\n let obj3 = d.data.find(x => x.key == \"DepartureTime\");\r\n if (obj3 != undefined) {\r\n let dtDept = Moment(\"1-jan-2001 \" + obj3.value).format(\"DD-MMM-YYYY HH:mm\");\r\n //setNewReservation(prev => ({ ...prev, ActualDepartureTime: dtDept }));\r\n }\r\n if(d.data != undefined){\r\n let paraBusinessDate = d.data.find(x => x.key == \"BusinessDate\");\r\n if(paraBusinessDate != undefined && paraBusinessDate != null){\r\n paraBusinessDate = Moment(paraBusinessDate.value).format(\"DD-MMM-YYYY\");\r\n setSharerArrivalDateOnload(paraBusinessDate,newReservation.ArrivalDate,newReservation.DepartureDate);\r\n }\r\n } \r\n })\r\n } else {\r\n GetRoomTypeMaster(currUser.ClientSerNo, newReservation.PropertySerNo).then(d => {\r\n let roomType = [defaultRoomTypeObj, ...d.data];\r\n roomType.map(r => {\r\n r.key = r.RoomTypeSerNo;\r\n r.value = r.Name;\r\n })\r\n setRoomTypeData(roomType);\r\n })\r\n cmbGetMarketMaster(currUser.ClientSerNo, newReservation.PropertySerNo).then((d) => {\r\n setMarketData(d.data);\r\n })\r\n cmbGetRoomMaster(currUser.ClientSerNo, newReservation.PropertySerNo).then(d => {\r\n setRoomData(d.data);\r\n })\r\n cmbGetSourceMaster(currUser.ClientSerNo, newReservation.PropertySerNo).then((d) => {\r\n setSourceData(d.data);\r\n })\r\n GetPropertyParameterByKeys(currUser.ClientSerNo, newReservation.PropertySerNo, propertyParameters).then(d => {\r\n setPropertyParameterData(d.data);\r\n if(d.data != undefined){\r\n let paraBusinessDate = d.data.find(x => x.key == \"BusinessDate\");\r\n if(paraBusinessDate != undefined && paraBusinessDate != null){\r\n paraBusinessDate = Moment(paraBusinessDate.value).format(\"DD-MMM-YYYY\");\r\n setSharerArrivalDateOnload(paraBusinessDate,newReservation.ArrivalDate,newReservation.DepartureDate);\r\n setBusinessDate(paraBusinessDate); \r\n // if((new Date(paraBusinessDate).getTime() >= new Date(Moment(newReservation.ArrivalDate).format(\"DD-MMM-YYYY\")).getTime())){\r\n // setIsRoomNoDisabled(true);\r\n // }\r\n }\r\n }\r\n })\r\n }\r\n }, [newReservation.PropertySerNo]);\r\n\r\n useEffect(() => {\r\n calculateGrandTotal();\r\n // calculate average of Room rate\r\n let diffRate = 0;\r\n if (res.rateDetailData.RateCodeDetails != undefined) {\r\n diffRate = res.rateDetailData.RateCodeDetails.filter(x => x.RoomRate != newReservation.NewRoomRate).length;\r\n if(res.rateDetailData.RateCodeDetails.length > 0){\r\n var outputArray = [];\r\n var count = 0;\r\n var start = false;\r\n var j,k;\r\n for (j = 0; j < res.rateDetailData.RateCodeDetails.length; j++) {\r\n for (k = 0; k < outputArray.length; k++) {\r\n if ( res.rateDetailData.RateCodeDetails[j].Amount == outputArray[k] ) {\r\n start = true;\r\n }\r\n }\r\n count++;\r\n if (count == 1 && start == false) {\r\n outputArray.push(res.rateDetailData.RateCodeDetails[j].Amount);\r\n }\r\n start = false;\r\n count = 0;\r\n }\r\n if(outputArray != undefined && outputArray.length > 1){\r\n setIsAverageRate(true);\r\n }\r\n else{\r\n setIsAverageRate(false);\r\n }\r\n }\r\n else{\r\n setIsAverageRate(false);\r\n }\r\n \r\n if (diffRate > 0) {\r\n let avg = 0.0\r\n res.rateDetailData.RateCodeDetails.map(d => {\r\n avg += parseFloat(d.TotalRoomRate);\r\n })\r\n avg = (avg / res.rateDetailData.RateCodeDetails.length).toFixed(2);\r\n setNewReservation(prev => ({ ...prev, RoomRate: avg }));\r\n setNewReservation(prev => ({ ...prev, NewRoomRate: avg }));\r\n }\r\n }\r\n // calculate average of Room rate \r\n\r\n if (res.rateDetailData && res.rateDetailData.RateCodeDetails != undefined) {\r\n if (res.rateDetailData.RateCodeDetails.length > 0) {\r\n setNewReservation(prev => ({ ...prev, RateSerNo: res.rateDetailData.RateCodeDetails[0].RateSerNo }));\r\n setNewReservation(prev => ({ ...prev, RateCodeName: res.rateDetailData.RateCodeDetails[0].Name }));\r\n }\r\n }\r\n\r\n let temp = [];\r\n if (res.rateDetailData.PackageDetails != undefined) {\r\n res.rateDetailData.PackageDetails.map(d => {\r\n let len = temp.filter(x => x.Name == d.Name).length;\r\n if (len == 0)\r\n temp.push({ \"Name\": d.Name });\r\n })\r\n }\r\n setPackageCollectionIncl(temp);\r\n\r\n }, [res.rateDetailData, newReservation.Rooms]);\r\n\r\n useEffect(() => {\r\n updateNoofDailyRate(res.rateDetailData.RateCodeDetails);\r\n }, [res.rateDetailData.RateCodeDetails]);\r\n\r\n useEffect(() => {\r\n\r\n let roomRateCss = \"form-group width-80px d-inline-block\";\r\n let rateCls = \"form-group\";\r\n if (!newReservation.Discountable) {\r\n roomRateCss = roomRateCss + \" italic\";\r\n }\r\n\r\n if (!newReservation.IsPrintRate) {\r\n roomRateCss = roomRateCss + \" strike\";\r\n }\r\n\r\n let diffRate = 0;\r\n if (res.rateDetailData.RateCodeDetails != undefined) {\r\n\r\n diffRate = res.rateDetailData.RateCodeDetails.filter(x => x.RoomRate != newReservation.NewRoomRate).length;\r\n if (diffRate > 0) {\r\n if (res.rateDetailData.RateCodeDetails.length > 0) {\r\n let avg = 0.0\r\n let firstRate = res.rateDetailData.RateCodeDetails[0].RateSerNo;\r\n res.rateDetailData.RateCodeDetails.map(d => {\r\n avg += parseFloat(d.TotalRoomRate);\r\n if (firstRate != d.RateSerNo) {\r\n rateCls = rateCls + \" room-rate-highlight\";\r\n }\r\n })\r\n avg = (avg / res.rateDetailData.RateCodeDetails.length).toFixed(2);\r\n\r\n if (avg != res.rateDetailData.RateCodeDetails[0].TotalRoomRate) {\r\n roomRateCss = roomRateCss + \" room-rate-highlight\";\r\n }\r\n }\r\n }\r\n }\r\n setRoomRateClass(roomRateCss);\r\n setRateClass(rateCls);\r\n\r\n }, [newReservation]);\r\n\r\n useEffect(() => {\r\n\r\n if (res.extraPackage != undefined) {\r\n\r\n let tempExtra = JSON.parse(JSON.stringify(res.extraPackage));\r\n let newExtra = [];\r\n let tempPackageDetails = [];\r\n let tempTaxDetails = [];\r\n\r\n tempExtra.map(ex => {\r\n tempPackageDetails = [];\r\n tempTaxDetails = [];\r\n ex.RateCodeDetail.PackageDetails.map(pk => {\r\n if ((new Date(pk.Date) >= new Date(newReservation.ArrivalDate)) && (new Date(pk.Date) <= new Date(newReservation.DepartureDate))) {\r\n tempPackageDetails.push(pk);\r\n }\r\n })\r\n ex.RateCodeDetail.PackageDetails = tempPackageDetails;\r\n ex.RateCodeDetail.TaxDetails.map(tx => {\r\n if ((new Date(tx.Date) >= new Date(newReservation.ArrivalDate)) && (new Date(tx.Date) <= new Date(newReservation.DepartureDate))) {\r\n tempTaxDetails.push(tx);\r\n }\r\n })\r\n ex.RateCodeDetail.TaxDetails = tempTaxDetails;\r\n\r\n let nights = tempPackageDetails.length;\r\n let Qty = 0;\r\n if (nights > 0) {\r\n\r\n let obj = tempPackageDetails[0];\r\n if (obj.CalculationRuleSerNo == 'PP') {\r\n Qty = parseInt(ex.Adult) + parseInt(ex.Child);\r\n } else if (obj.CalculationRuleSerNo == 'PA') {\r\n Qty = parseInt(ex.Adult);\r\n } else if (obj.CalculationRuleSerNo == 'PC') {\r\n Qty = parseInt(ex.Child);\r\n } else {\r\n Qty = 1;\r\n }\r\n\r\n Qty = Qty * nights;\r\n ex.RateCodeDetail.NewPackageDetails.map(np => {\r\n np.Qty = Qty;\r\n np.Nights = nights;\r\n let TotalPackagePrice = tempPackageDetails.reduce((t, v) => t = t + parseFloat(v.PackagePrice), 0);\r\n let TotalTaxes = tempPackageDetails.reduce((t, v) => t = t + parseFloat(v.Taxes), 0);\r\n TotalPackagePrice = TotalPackagePrice + (obj.IsTaxInclusive ? 0 : TotalTaxes);\r\n np.StayTotal = TotalPackagePrice.toFixed(2);\r\n })\r\n newExtra.push(ex);\r\n }\r\n })\r\n dispatch(reSetExtraPackage(newExtra));\r\n }\r\n if(businessDate != undefined && businessDate != \"\" && newReservation != undefined){\r\n if((new Date(Moment(businessDate).format(\"DD-MMM-YYYY\")).getTime() == new Date(Moment(newReservation.ArrivalDate).format(\"DD-MMM-YYYY\")).getTime())){\r\n setIsRoomNoDisabled(true);\r\n }\r\n else{\r\n setIsRoomNoDisabled(false);\r\n }\r\n } \r\n }, [newReservation.Nights, newReservation.ArrivalDate]);\r\n\r\n useEffect(() => {\r\n\r\n }, [newReservation.NewRoomRate, newReservation.RoomRate]);\r\n\r\n //#endregion UseEffect\r\n\r\n //#region Tooltip\r\n const InclusionsTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    INCLUSIONS ({packageCollectionIncl.length})
    \r\n
      \r\n {\r\n packageCollectionIncl ?\r\n packageCollectionIncl.map(d =>\r\n
    • \r\n {d.Name}\r\n
    • \r\n ) :\r\n <>\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const RoomFeaturesTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Room Features ({newReservation.RoomFeatures.length})
    \r\n
      \r\n {\r\n newReservation.RoomFeatures ?\r\n newReservation.RoomFeatures.map(d =>\r\n
    • \r\n {d.DisplayName}\r\n
    • \r\n ) : <>\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const SpecialsTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Specials ({newReservation.Specials.length})
    \r\n
      \r\n {\r\n newReservation.Specials ?\r\n newReservation.Specials.map(d =>\r\n
    • \r\n {d.Name}\r\n
    • \r\n )\r\n : <>\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n const BillingInstructionTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    BILLING INSTRUCTION
    \r\n\r\n
    \r\n {newReservation.BillingInstruction}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const AgentTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Make My Trip
    \r\n
    \r\n 9842342434\r\n \r\n SMS\r\n \r\n
    \r\n
    \r\n preetiiyengar@innkeypms.net\r\n \r\n Email\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Edit\r\n \r\n Action\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const CompanyTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Arvind Ltd.
    \r\n
    \r\n 9842342434\r\n \r\n SMS\r\n \r\n
    \r\n
    \r\n preetiiyengar@innkeypms.net\r\n \r\n Email\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Edit\r\n \r\n Action\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const RoomNoTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n Enter a preferred room no of the guest if any.\r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const RoomUpgradReasonTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n Room was not available, MD's guest\r\n
    \r\n
    \r\n
    \r\n setShowRoomUpgradeReasonModal(!showRoomUpgradeReasonModal)}>Edit\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const LastUpdateTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
      \r\n
    • By Rohan Shah
    • \r\n
    • Date: 25th Sept.
    • \r\n
    • Time: 15:45
    • \r\n
    • PC: 192.168.600.789
    • \r\n
    \r\n
    \r\n\r\n
    \r\n );\r\n };\r\n //#endregion Tooltip\r\n\r\n //#region custom function for User Rights \r\n const fillUserRights = () => {\r\n ManageRights(currUser.ClientSerNo, currUser.UserID, \"1,2,4,5,10,15,16,19,20,22,24,64\").then((d) => {\r\n setUserRightsData(d.data);\r\n })\r\n }\r\n //#endregion\r\n\r\n //#region Page Event\r\n\r\n const setSelectedItem = (items) => {\r\n SetgridSelectedItem(items);\r\n settemp(!temp);\r\n };\r\n\r\n // event for User Rights\r\n\r\n const handleUserRights = async (strRightsSerNo) => {\r\n if (strRightsSerNo != undefined) {\r\n const userRightObj = userRightsData.find((x) => x.RightsSerNo == strRightsSerNo);\r\n if (userRightObj != undefined) {\r\n if (userRightObj.IsApply != undefined) {\r\n if (userRightObj.IsApply) {\r\n return true;\r\n } else {\r\n await confirm({\r\n Message: `${userRightObj.Name} : ${userRightObj.PromptMessage}`,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n }\r\n };\r\n\r\n // end event\r\n\r\n const handleOnSave = (e) => {\r\n\r\n let validPage = validatePage();\r\n if (validPage) {\r\n newReservation.RateCodeDetail = JSON.parse(JSON.stringify(res.rateDetailData));\r\n let obj = res.extraPackage;\r\n res.extraPackage.map(ex => {\r\n ex.RateCodeDetail.PackageDetails.map(pk => {\r\n newReservation.RateCodeDetail.PackageDetails.push(pk);\r\n })\r\n ex.RateCodeDetail.TaxDetails.map(tx => {\r\n newReservation.RateCodeDetail.TaxDetails.push(tx);\r\n })\r\n })\r\n if (newReservation.RoomSerNo == \"\") {\r\n newReservation.RoomSerNo = 0;\r\n }\r\n if (location.state.Mode == \"Add\") {\r\n AddReservation(newReservation).then(d => {\r\n if (d.data.Code == \"200\") {\r\n dispatch(setRateAndPackages({}));\r\n dispatch(setTempRateAndPackage({}));\r\n dispatch(reSetExtraPackage([]));\r\n alert(d.data.Message);\r\n if (e.target.id == \"btnResSaveNCon\") {\r\n history.push({\r\n pathname: \"/ReservationView\",\r\n state: {\r\n propertySerNo: parseInt(currUser.PropertySerNo),\r\n reservationSerNo: parseInt(d.data.ReturnValue),\r\n filterObj: (location.state.filterObj == undefined ? undefined : (location.state.filterObj))\r\n }\r\n });\r\n } else {\r\n history.push({\r\n pathname: \"/ReservationListPage\",\r\n state: { filterObj: (location.state.filterObj) == undefined ? undefined : location.state.filterObj }\r\n });\r\n }\r\n }\r\n })\r\n } else {\r\n EditReservation(newReservation).then(d => {\r\n if (d.data.Code == \"200\") {\r\n dispatch(setRateAndPackages({}));\r\n dispatch(setTempRateAndPackage({}));\r\n dispatch(reSetExtraPackage([]));\r\n alert(d.data.Message);\r\n if (e.target.id == \"btnResSaveNCon\") {\r\n history.push({ pathname: \"/ReservationView\", \r\n state: { \r\n propertySerNo: parseInt(currUser.PropertySerNo), \r\n reservationSerNo: parseInt(d.data.ReturnValue),\r\n filterObj: (location.state.filterObj) == undefined ? undefined : location.state.filterObj\r\n } });\r\n } else {\r\n history.push({\r\n pathname: \"/ReservationListPage\",\r\n state: { filterObj: (location.state.filterObj) == undefined ? undefined : location.state.filterObj }\r\n });\r\n }\r\n }\r\n })\r\n }\r\n } else {\r\n alert(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n\r\n const validateRoomSelection = (v) => {\r\n setRoomNo(v); \r\n if (isNaN(v)) {\r\n //confirm({Message: \"Invalid Input.\", Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],});\r\n setNewReservationValidation(prev => ({ ...prev, RoomSerNo: \"Invalid Input.\" }));\r\n return;\r\n } \r\n else if (newReservation.ReservationStatus === \"CAN\") {\r\n //confirm({Message: \"You can not change room no. once its cancel.\", Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],});\r\n setNewReservationValidation(prev => ({ ...prev, RoomSerNo: \"You can not change room no. once its cancel.\" }));\r\n return;\r\n }\r\n else if (v === \"\") {\r\n setNewReservationValidation(prev => ({ ...prev, RoomSerNo: \"\" }));\r\n }\r\n else{ \r\n let selectedResSerNo = newReservation.ReservationSerNo;\r\n let IsAssignValid = true;\r\n // if (d.ReservationStatus != \"INH\") {\r\n // if (d.isSharingResCheckedin == true) {\r\n // confirm({Message: \"One or more sharing reservation has already checked in. This action cannot be performed.\", Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],});\r\n // IsAssignValid = false\r\n // }\r\n // }\r\n // if (d.IsSharer == true) {\r\n // selectedResSerNo = d.SharerReservationSerNo;\r\n // }\r\n // else {\r\n // selectedResSerNo = d.ReservationSerNo;\r\n // }\r\n if (newReservation.NoOfRoom > 1) {\r\n confirm({Message: \"Only reservations with no. of rooms as 1 can be assigned with a room.\"\r\n + \"Please split the reservation first and then proceed for this action.\", Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],});\r\n IsAssignValid = false\r\n }\r\n if (IsAssignValid) {\r\n // if(location.state.Mode === \"Edit\"){\r\n // ValidationRoomAssignment(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo),\r\n // selectedResSerNo, parseInt(v)).then((d) => {\r\n // if (d.data != undefined) {\r\n // confirm({Message: e.data.Message, Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],});\r\n // }\r\n // })\r\n // }\r\n // else{\r\n // let room = roomData.find(x => x.value == v);\r\n // if (room == undefined) {\r\n // setNewReservation(prev => ({ ...prev, RoomSerNo: \"\" }));\r\n // if (v != \"\") {\r\n // setNewReservationValidation(prev => ({ ...prev, RoomSerNo: \"Invalid Room.\" }));\r\n // }\r\n // }\r\n // else {\r\n // setNewReservationValidation(prev => ({ ...prev, RoomSerNo: \"\" }));\r\n // if (!isNaN(+room.key))\r\n // setNewReservation(prev => ({ ...prev, RoomSerNo: parseInt(room.key) }));\r\n // }\r\n // }\r\n }\r\n if (IsAssignValid) {\r\n // if(location.state.Mode === \"Edit\"){\r\n // ValidationRoomAssignment(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo),\r\n // selectedResSerNo, parseInt(v)).then((d) => {\r\n // if (d.data != undefined) {\r\n // confirm({Message: e.data.Message, Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],});\r\n // }\r\n // })\r\n // }\r\n // else{\r\n // let room = roomData.find(x => x.value == v);\r\n // if (room == undefined) {\r\n // setNewReservation(prev => ({ ...prev, RoomSerNo: \"\" }));\r\n // if (v != \"\") {\r\n // setNewReservationValidation(prev => ({ ...prev, RoomSerNo: \"Invalid Room.\" }));\r\n // }\r\n // }\r\n // else {\r\n // setNewReservationValidation(prev => ({ ...prev, RoomSerNo: \"\" }));\r\n // if (!isNaN(+room.key))\r\n // setNewReservation(prev => ({ ...prev, RoomSerNo: parseInt(room.key) }));\r\n // }\r\n // }\r\n }\r\n if (IsAssignValid) {\r\n // if(location.state.Mode === \"Edit\"){\r\n let room = roomData.find(x => x.value == v);\r\n if (room != undefined) {\r\n setNewReservationValidation(prev => ({ ...prev, RoomSerNo: \"\" }));\r\n ValidationRoomAssignment(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo),\r\n 0,0,selectedResSerNo, parseInt(room.key),\"Assign\").then((d) => {\r\n if (d.data != undefined && d.data.Code === \"success\") {\r\n setNewReservationValidation(prev => ({ ...prev, RoomSerNo: d.data.Code }));\r\n //if (!isNaN(+room.key))\r\n setNewReservation(prev => ({ ...prev, RoomSerNo: parseInt(room.key) }));\r\n }\r\n else{\r\n //confirm({Message: d.data.Message, Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],});\r\n setNewReservationValidation(prev => ({ ...prev, RoomSerNo: d.data.Message }));\r\n }\r\n }) \r\n }\r\n else\r\n {\r\n setNewReservationValidation(prev => ({ ...prev, RoomSerNo: \"Invalid Input.\" }));\r\n return;\r\n }\r\n \r\n // }\r\n // else{\r\n // let room = roomData.find(x => x.value == v);\r\n // if (room == undefined) {\r\n // setNewReservation(prev => ({ ...prev, RoomSerNo: \"\" }));\r\n // if (v != \"\") {\r\n // setNewReservationValidation(prev => ({ ...prev, RoomSerNo: \"Invalid Room.\" }));\r\n // }\r\n // }\r\n // else {\r\n // setNewReservationValidation(prev => ({ ...prev, RoomSerNo: \"\" }));\r\n // if (!isNaN(+room.key))\r\n // setNewReservation(prev => ({ ...prev, RoomSerNo: parseInt(room.key) }));\r\n // }\r\n // }\r\n }\r\n //fillGrid(selectedGuestTile);\r\n }\r\n }\r\n const handleRoomSelection = (v) => {\r\n if (location.state?.reservationSerNo != undefined) {\r\n if (location.state.Mode === \"Edit\") {\r\n handleUserRights(\"15\").then(d => {\r\n if (d) {\r\n validateRoomSelection(v);\r\n }\r\n else {\r\n setRoomNo(v)\r\n setTimeout(() => {\r\n setRoomNo(\"\")\r\n }, 100);\r\n }\r\n })\r\n }\r\n else validateRoomSelection(v)\r\n }\r\n else validateRoomSelection(v)\r\n }\r\n const validateArrivalDateChange = async (value) => {\r\n let IsChangeable = true;\r\n if (location.state?.reservationSerNo != undefined) {\r\n if (location.state.Mode === \"Edit\") {\r\n IsChangeable = await innkeyAlert(\"Please note changing the arrival date will remove the following. \\n \" +\r\n \" -Transportation Request \\n\" +\r\n \" Would you like to continue ?\");\r\n if (!newReservation.IsArrivalOnSameDay) {\r\n let IsSameArrivalTime = true;\r\n IsSameArrivalTime = await innkeyAlert(\"Would you like to keep the same arrival time with next day ? \");\r\n if (!IsSameArrivalTime) {\r\n setNewReservation(prev => ({ ...prev, IsArrivalOnSameDay: true }));\r\n let d = new Date(\"1-jan-2001 00:00\");\r\n setNewReservation(prev => ({ ...prev, ActualArrivalTime: Moment(d).format(\"DD-MMM-YYYY HH:mm\") }));\r\n }\r\n }\r\n }\r\n }\r\n if (IsChangeable) {\r\n var IsValidToChangeArrDate = true;\r\n if(newReservation.IsSharer == true){\r\n let IsApplyDateToPrimary = true; \r\n if(primaryReservation.GuestName != undefined && primaryReservation.GuestName != null && primaryReservation.GuestName != \"\"){\r\n IsApplyDateToPrimary = await innkeyAlert(\"Would you like to change the arrival date for ‘\"+primaryReservation.GuestName+\"’ who is sharing with this reservation?\");\r\n }\r\n else{\r\n IsApplyDateToPrimary = await innkeyAlert(\"Would you like to change the arrival date for guest who is sharing with this reservation?\");\r\n }\r\n \r\n if (IsApplyDateToPrimary == true) //Check do user want to apply ArrDate to Prim. Reservation.\r\n {\r\n //Yes Than Check availablity >> than check OB >> than check user rights >> than check room assign.\r\n let vNights = \"1\";\r\n if (validPage.IsValidNights) {\r\n vNights = newReservation.Nights;\r\n }\r\n let DeptDt = new Date(value);\r\n DeptDt.setDate(DeptDt.getDate() + parseInt(vNights));\r\n DeptDt = Moment(DeptDt).format(\"DD-MMM-YYYY\");\r\n //Check Availability if Date range is getting out of the Prim. Reservation.\r\n if((new Date(value).getTime()< new Date(primaryReservation.ArrivalDate).getTime()) || (new Date(DeptDt).getTime() > new Date(primaryReservation.DepartureDate).getTime()))\r\n {\r\n GetRoomAvaibility(currUser.ClientSerNo, newReservation.PropertySerNo,Moment(new Date(value)).format(\"DD-MMM-YYYY\"),DeptDt).then(d => {\r\n let UnAvailableRoom = d.data.filter(x => x.RoomTypeSerNo == newReservation.RoomTypeSerNo && x.Free <= 0);\r\n if (UnAvailableRoom != null && UnAvailableRoom.length > 0) //check if room is available or not.\r\n {\r\n //Room is Un-Available, So Check OB flag.\r\n let paraAllowOverbooking = propertyParameterData.find(x => x.key == \"AllowOverbooking\").value;\r\n if (paraAllowOverbooking == \"1\") {\r\n //Check over booking user rights.\r\n handleUserRights(\"10\").then(d => {\r\n if (d) {\r\n //Check if assigned room is available then Accept else reject. -- pending\r\n setNewReservation(prev => ({ ...prev, IsApplyArrDateToPrimaryRes: true }));\r\n }\r\n else {\r\n //Dont allow if no user rights.\r\n IsValidToChangeArrDate = false;\r\n let oldArrival = newReservation.ArrivalDate;\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: oldArrival }));\r\n }, 100);\r\n //innkeyAlert(\"You do not have the required rights to perform overbooking. Please contact your administrator.\");\r\n }\r\n })\r\n }\r\n else {\r\n //Dont allow if property does not allow overbooking.\r\n IsValidToChangeArrDate = false;\r\n let oldArrival = newReservation.ArrivalDate;\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: oldArrival }));\r\n }, 100);\r\n confirm({\r\n Message: \"This property does not allow overbooking and due to unavailability of the rooms or respective room type, this action cannot be performed.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n }\r\n else {\r\n //Check if assigned room is available then Accept else reject.--pending\r\n setNewReservation(prev => ({ ...prev, IsApplyArrDateToPrimaryRes: true }));\r\n }\r\n })\r\n }\r\n else {\r\n setNewReservation(prev => ({ ...prev, IsApplyArrDateToPrimaryRes: true }));\r\n }\r\n }\r\n else\r\n { \r\n if((new Date(value).getTime() < new Date(primaryReservation.ArrivalDate).getTime()))\r\n {\r\n IsValidToChangeArrDate = false;\r\n let oldArrival = newReservation.ArrivalDate;\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: oldArrival }));\r\n }, 100);\r\n confirm({\r\n Message: \"Sharer reservation cannot have the arrival date lesser than the original booking. Please select a date accordingly.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n else {\r\n //Check Dept Date must not more than prim. Res. and process accordingly.\r\n let vNights = \"1\";\r\n if (validPage.IsValidNights) {\r\n vNights = newReservation.Nights;\r\n }\r\n let DeptDt = new Date(value);\r\n DeptDt.setDate(DeptDt.getDate() + parseInt(vNights));\r\n DeptDt = Moment(DeptDt).format(\"DD-MMM-YYYY\");\r\n if((new Date(DeptDt).getTime() > new Date(primaryReservation.DepartureDate).getTime()))\r\n {\r\n IsValidToChangeArrDate = false;\r\n let oldArrival = newReservation.ArrivalDate;\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: oldArrival }));\r\n }, 100);\r\n confirm({\r\n Message: \"Sharer reservation cannot have the departure date greater than the original booking. Please select a date accordingly.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n else {\r\n //Accept to change date. \r\n setNewReservation(prev => ({ ...prev, IsApplyArrDateToPrimaryRes: false }));\r\n }\r\n }\r\n }\r\n }\r\n else if(newReservation.IsHasSharerRes == true && location.state?.Mode === \"Edit\"){ \r\n // primary res. to sharer changes\r\n let IsApplyDateToSharer = true; \r\n if(newReservation.SharerGuestName != undefined && newReservation.SharerGuestName != null && newReservation.SharerGuestName != \"\"){\r\n IsApplyDateToSharer = await innkeyAlert(\"Would you like to change the arrival date for ‘\"+ newReservation.SharerGuestName +\"’ who is sharing with this reservation.?\");\r\n }\r\n else{\r\n IsApplyDateToSharer = await innkeyAlert(\"Would you like to change the arrival date for guest who is sharing with this reservation.?\");\r\n\r\n } \r\n if (IsApplyDateToSharer == true) //Check do user want to apply ArrDate to Sharer. Reservation.\r\n {\r\n //setNewReservation(prev => ({ ...prev, IsApplyArrDateToPrimaryRes: true })); \r\n //Yes Than Check availablity >> than check OB >> than check user rights >> than check room assign.\r\n let vNights = \"1\";\r\n if (validPage.IsValidNights) {\r\n vNights = newReservation.Nights;\r\n }\r\n let DeptDt = new Date(value);\r\n DeptDt.setDate(DeptDt.getDate() + parseInt(vNights));\r\n DeptDt = Moment(DeptDt).format(\"DD-MMM-YYYY\");\r\n //Check Availability if Date range is getting out of the Prim. Reservation.\r\n if ((new Date(value).getTime() < new Date(oldReservation.ArrivalDate).getTime()) || (new Date(DeptDt).getTime() > new Date(oldReservation.DepartureDate).getTime())) {\r\n GetRoomAvaibility(currUser.ClientSerNo, newReservation.PropertySerNo, Moment(new Date(value)).format(\"DD-MMM-YYYY\"), DeptDt).then(d => {\r\n let UnAvailableRoom = d.data.filter(x => x.RoomTypeSerNo == newReservation.RoomTypeSerNo && x.Free <= 0);\r\n if (UnAvailableRoom != null && UnAvailableRoom.length > 0) //check if room is available or not.\r\n {\r\n //Room is Un-Available, So Check OB flag.\r\n let paraAllowOverbooking = propertyParameterData.find(x => x.key == \"AllowOverbooking\").value;\r\n if (paraAllowOverbooking == \"1\") {\r\n //Check over booking user rights.\r\n handleUserRights(\"10\").then(d => {\r\n if (d) {\r\n //Check if assigned room is available then Accept else reject. -- pending\r\n setNewReservation(prev => ({ ...prev, IsApplyArrDateToPrimaryRes: true }));\r\n }\r\n else {\r\n //Dont allow if no user rights.\r\n IsValidToChangeArrDate = false;\r\n let oldArrival = newReservation.ArrivalDate;\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: oldArrival }));\r\n }, 100);\r\n //innkeyAlert(\"You do not have the required rights to perform overbooking. Please contact your administrator.\");\r\n }\r\n })\r\n }\r\n else {\r\n //Dont allow if property does not allow overbooking.\r\n IsValidToChangeArrDate = false;\r\n let oldArrival = newReservation.ArrivalDate;\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: oldArrival }));\r\n }, 100);\r\n confirm({\r\n Message: \"This property does not allow overbooking and due to unavailability of the rooms or respective room type, this action cannot be performed.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n }\r\n else {\r\n //Check if assigned room is available then Accept else reject.--pending\r\n setNewReservation(prev => ({ ...prev, IsApplyArrDateToPrimaryRes: true }));\r\n }\r\n })\r\n }\r\n else {\r\n setNewReservation(prev => ({ ...prev, IsApplyArrDateToPrimaryRes: true }));\r\n }\r\n }\r\n else {\r\n if ((new Date(value).getTime() > new Date(newReservation.SharerArrivalDate).getTime())) {\r\n IsValidToChangeArrDate = false;\r\n let oldArrival = newReservation.ArrivalDate;\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: oldArrival }));\r\n }, 100);\r\n confirm({\r\n Message: \"Primary reservation cannot have the arrival date greater than the sharer booking. Please select a date accordingly.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n else {\r\n //Check Dept Date must not more than sharer. Res. and process accordingly.\r\n let vNights = \"1\";\r\n if (validPage.IsValidNights) {\r\n vNights = newReservation.Nights;\r\n }\r\n let DeptDt = new Date(value);\r\n DeptDt.setDate(DeptDt.getDate() + parseInt(vNights));\r\n DeptDt = Moment(DeptDt).format(\"DD-MMM-YYYY\");\r\n if ((new Date(DeptDt).getTime() < new Date(oldReservation.SharerDepartureDate).getTime())) {\r\n IsValidToChangeArrDate = false;\r\n let oldArrival = newReservation.ArrivalDate;\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: oldArrival }));\r\n }, 100);\r\n confirm({\r\n Message: \"Primary reservation cannot have the departure date less than the sharer booking. Please select a date accordingly.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n else {\r\n //Accept to change date. \r\n setNewReservation(prev => ({ ...prev, IsApplyArrDateToPrimaryRes: false }));\r\n }\r\n }\r\n }\r\n }\r\n if (IsValidToChangeArrDate == true) {\r\n let nights = \"1\";\r\n // lastSelectedArrivalDate1 = newReservation.ArrivalDate;\r\n // lastSelectedDepartureDate1 = newReservation.DepartureDate;\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: value }));\r\n\r\n if (validPage.IsValidNights) {\r\n nights = newReservation.Nights\r\n }\r\n else {\r\n setNewReservation(prev => ({ ...prev, Nights: 1 }));\r\n setNewReservationValidation(prev => ({ ...prev, Nights: \"\" }));\r\n setValidPage(prev => ({ ...prev, IsValidNights: true }));\r\n }\r\n\r\n let dt = new Date(value);\r\n dt.setDate(dt.getDate() + parseInt(nights));\r\n dt = Moment(dt).format(\"DD-MMM-YYYY\");\r\n setNewReservation(prev => ({ ...prev, DepartureDate: dt }));\r\n\r\n if (newReservation.RateSerNo != \"\" && newReservation.ChargeableRoomTypeSerNo != \"\" && newReservation.Adult != \"\") {\r\n reCalculateRate(newReservation.ClientSerNo, newReservation.PropertySerNo, newReservation.RateSerNo, newReservation.ChargeableRoomTypeSerNo,\r\n value, dt, newReservation.Adult, newReservation.Child, newReservation.CompanyProfileSerNo, newReservation.AgentProfileSerNo);\r\n } else {\r\n // setNewReservation(prev => ({ ...prev, ChargeableRoomTypeSerNo: \"\" }));\r\n setNewReservation(prev => ({ ...prev, RateSerNo: \"\" }));\r\n setNewReservation(prev => ({ ...prev, RateCodeName: \"\" }));\r\n setNewReservation(prev => ({ ...prev, IsComplimentary: false }));\r\n setNewReservation(prev => ({ ...prev, IsHouseUse: false }));\r\n setNewReservation(prev => ({ ...prev, IsDiscloseRate: true }));\r\n setNewReservation(prev => ({ ...prev, IsPrintRate: true }));\r\n setNewReservation(prev => ({ ...prev, Discountable: false }));\r\n dispatch(setRateAndPackages({}));\r\n }\r\n\r\n //setNewReservation(prev => ({ ...prev, IsInclusive: false }));\r\n setNewReservation(prev => ({ ...prev, RoomSerNo: \"\" }));\r\n setRoomNo(\"\");\r\n setNewReservation(prev => ({ ...prev, RoomRate: \"\" }));\r\n setNewReservation(prev => ({ ...prev, NewRoomRate: \"\" }));\r\n dispatch(setTempRateAndPackage({}));\r\n\r\n // if (location.state == undefined) {\r\n // dispatch(reSetExtraPackage([]));\r\n // }\r\n }\r\n else {\r\n let oldArrival = newReservation.ArrivalDate;\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: oldArrival }));\r\n }, 100);\r\n }\r\n } else {\r\n let oldArrival = newReservation.ArrivalDate;\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: oldArrival }));\r\n }, 100);\r\n }\r\n }\r\n const handleOnArrivalDateChanged = async (value) => {\r\n if (location.state?.reservationSerNo != undefined) {\r\n if (location.state.Mode === \"Edit\") {\r\n handleUserRights(\"2\").then(d => {\r\n if (d) {\r\n validateArrivalDateChange(value);\r\n }\r\n else {\r\n let oldArrival = newReservation.ArrivalDate;\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: oldArrival }));\r\n }, 100);\r\n }\r\n })\r\n }\r\n else {\r\n validateArrivalDateChange(value);\r\n }\r\n }\r\n else {\r\n validateArrivalDateChange(value);\r\n }\r\n }\r\n\r\n const validateDepartureDateChange = async (value) => {\r\n let IsChangeable = true;\r\n if (location.state?.reservationSerNo != undefined) {\r\n if (location.state.Mode === \"Edit\") {\r\n IsChangeable = await innkeyAlert(\"Please note changing the departure date will remove the following. \\n \" +\r\n \" -Transportation Request \\n\" +\r\n \" Would you like to continue ?\");\r\n\r\n if (!newReservation.IsDepartureOnSameDay && newReservation.ActualDepartureTime != null) {\r\n\r\n let IsSameDepartureTime = true;\r\n IsSameDepartureTime = await innkeyAlert(\"Would you like to keep the same departure time with next day ? \");\r\n\r\n if (!IsSameDepartureTime) {\r\n setNewReservation(prev => ({ ...prev, IsDepartureOnSameDay: true }));\r\n setNewReservation(prev => ({ ...prev, ActualDepartureTime: null }));\r\n }\r\n }\r\n }\r\n }\r\n if (IsChangeable) {\r\n var IsValidToChangeDate = true;\r\n //Check sharer validation.\r\n if(newReservation.IsSharer == true){\r\n if((new Date(value).getTime() < new Date(primaryReservation.DepartureDate).getTime()))\r\n {\r\n let IsApplyDateToPrimary = true; \r\n IsApplyDateToPrimary = await innkeyAlert(\"Would you like to change the departure date of the primary sharing reservation?\");\r\n if (IsApplyDateToPrimary == true) //Check do user want to apply DeptDate to Prim. Reservation.\r\n {\r\n setNewReservation(prev => ({ ...prev, IsApplyDeptDateToPrimaryRes: true }));\r\n }\r\n else {\r\n //Check and not allow - if sharer Dept date is less than the Prim. Reservation's Arrival date.\r\n if((new Date(value).getTime() < new Date(primaryReservation.ArrivalDate).getTime())) \r\n {\r\n IsValidToChangeDate = false;\r\n let oldDept = newReservation.DepartureDate;\r\n setNewReservation(prev => ({ ...prev, DepartureDate: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, DepartureDate: oldDept }));\r\n }, 100);\r\n confirm({\r\n Message: \"Sharer reservation cannot have the departure date lesser than the original booking's arrival date. Please select a date accordingly.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n //Check and not allow - if sharer Dept date is less than self's Arrival date.\r\n else if ((new Date(value).getTime() < new Date(newReservation.ArrivalDate).getTime())) {\r\n IsValidToChangeDate = false;\r\n let oldDept = newReservation.DepartureDate;\r\n setNewReservation(prev => ({ ...prev, DepartureDate: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, DepartureDate: oldDept }));\r\n }, 100);\r\n confirm({\r\n Message: \"Reservation cannot have the departure date lesser than the self's arrival date. Please select a date accordingly.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n else {\r\n //Accept and allow to change the date.\r\n setNewReservation(prev => ({ ...prev, IsApplyDeptDateToPrimaryRes: false }));\r\n }\r\n }\r\n }\r\n else\r\n {\r\n let IsApplyDateToPrimary = true; \r\n if(primaryReservation.GuestName != undefined && primaryReservation.GuestName != null && primaryReservation.GuestName != \"\"){\r\n IsApplyDateToPrimary = await innkeyAlert(\"Would you like to change the departure date for ‘\"+primaryReservation.GuestName+\"’ who is sharing with this reservation?\");\r\n }\r\n else{\r\n IsApplyDateToPrimary = await innkeyAlert(\"Would you like to change the departure date for guest who is sharing with this reservation?\");\r\n } \r\n if (IsApplyDateToPrimary == true) //Check and allow - if user want to apply DeptDate to Prim. Reservation.\r\n {\r\n //setNewReservation(prev => ({ ...prev, IsApplyDeptDateToPrimaryRes: true }));\r\n //Check Availability if Date range is getting out of the Prim. Reservation.\r\n if((new Date(value).getTime()< new Date(primaryReservation.ArrivalDate).getTime()) || (new Date(value).getTime() > new Date(primaryReservation.DepartureDate).getTime()))\r\n {\r\n GetRoomAvaibility(currUser.ClientSerNo, newReservation.PropertySerNo,Moment(new Date(newReservation.ArrivalDate)).format(\"DD-MMM-YYYY\"),Moment(new Date(value)).format(\"DD-MMM-YYYY\")).then(d => {\r\n let UnAvailableRoom = d.data.filter(x => x.RoomTypeSerNo == newReservation.RoomTypeSerNo && x.Free <= 0);\r\n if (UnAvailableRoom != null && UnAvailableRoom.length > 0) //check if room is available or not.\r\n {\r\n //Room is Un-Available, So Check OB flag.\r\n let paraAllowOverbooking = propertyParameterData.find(x => x.key == \"AllowOverbooking\").value;\r\n if (paraAllowOverbooking == \"1\") {\r\n //Check over booking user rights.\r\n handleUserRights(\"10\").then(d => {\r\n if (d) {\r\n //Check if assigned room is available then Accept else reject. -- pending\r\n setNewReservation(prev => ({ ...prev, IsApplyDeptDateToPrimaryRes: true }));\r\n }\r\n else {\r\n //Dont allow if no user rights.\r\n IsValidToChangeDate = false;\r\n let oldDept = newReservation.DepartureDate;\r\n setNewReservation(prev => ({ ...prev, DepartureDate: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, DepartureDate: oldDept }));\r\n }, 100);\r\n //innkeyAlert(\"You do not have the required rights to perform overbooking. Please contact your administrator.\");\r\n }\r\n })\r\n }\r\n else {\r\n //Dont allow if property does not allow overbooking.\r\n IsValidToChangeDate = false;\r\n let oldDept = newReservation.DepartureDate;\r\n setNewReservation(prev => ({ ...prev, DepartureDate: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, DepartureDate: oldDept }));\r\n }, 100);\r\n confirm({\r\n Message: \"This property does not allow overbooking and due to unavailability of the rooms or respective room type, this action cannot be performed.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n }\r\n else {\r\n //Check if assigned room is available then Accept else reject.--pending\r\n setNewReservation(prev => ({ ...prev, IsApplyDeptDateToPrimaryRes: true }));\r\n }\r\n })\r\n }\r\n else {\r\n //Check if assigned room is available then Accept else reject.--pending\r\n setNewReservation(prev => ({ ...prev, IsApplyDeptDateToPrimaryRes: true }));\r\n }\r\n }\r\n else {\r\n //Check and not allow - if Sharer dept date is greater than the Prim.Res.'s Departure date.\r\n if((new Date(value).getTime() > new Date(primaryReservation.DepartureDate).getTime()))\r\n {\r\n IsValidToChangeDate = false;\r\n let oldArrival = newReservation.ArrivalDate;\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: oldArrival }));\r\n }, 100);\r\n confirm({\r\n Message: \"Sharer reservation cannot have a departure date greater than the primary sharing reservation. Please select another date.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n else {\r\n //accept and check Room assign. - pending.\r\n setNewReservation(prev => ({ ...prev, IsApplyDeptDateToPrimaryRes: false }));\r\n }\r\n }\r\n }\r\n }\r\n else if(newReservation.IsHasSharerRes == true && location.state?.Mode === \"Edit\"){\r\n if((new Date(value).getTime() < new Date(newReservation.SharerDepartureDate).getTime()))\r\n {\r\n let IsApplyDateToSharer = true; \r\n IsApplyDateToSharer = await innkeyAlert(\"Would you like to change the departure date of the sharer sharing reservation?\");\r\n if (IsApplyDateToSharer == true) //Check do user want to apply DeptDate to sharer. Reservation.\r\n {\r\n setNewReservation(prev => ({ ...prev, IsApplyDeptDateToPrimaryRes: true }));\r\n }\r\n else {\r\n //Check and not allow - if sharer Dept date is less than the Prim. Reservation's Arrival date.\r\n if ((new Date(value).getTime() < new Date(newReservation.SharerDepartureDate).getTime())) {\r\n IsValidToChangeDate = false;\r\n let oldDept = newReservation.DepartureDate;\r\n setNewReservation(prev => ({ ...prev, DepartureDate: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, DepartureDate: oldDept }));\r\n }, 100);\r\n confirm({\r\n Message: \"Primary reservation cannot have the departure date lesser than the sharer booking's depature date. Please select a date accordingly.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n //Check and not allow - if sharer Dept date is less than self's Arrival date.\r\n else if ((new Date(value).getTime() < new Date(newReservation.ArrivalDate).getTime())) {\r\n IsValidToChangeDate = false;\r\n let oldDept = newReservation.DepartureDate;\r\n setNewReservation(prev => ({ ...prev, DepartureDate: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, DepartureDate: oldDept }));\r\n }, 100);\r\n confirm({\r\n Message: \"Reservation cannot have the departure date lesser than the self's arrival date. Please select a date accordingly.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n else {\r\n //Accept and allow to change the date.\r\n setNewReservation(prev => ({ ...prev, IsApplyDeptDateToPrimaryRes: false }));\r\n }\r\n }\r\n }\r\n else\r\n {\r\n let IsApplyDateToSharer = true; \r\n if(newReservation.SharerGuestName != undefined && newReservation.SharerGuestName != null && newReservation.SharerGuestName != \"\"){\r\n IsApplyDateToSharer = await innkeyAlert(\"Would you like to change the departure date for ‘\"+newReservation.SharerGuestName+\"’ who is sharing with this reservation?\");\r\n }\r\n else{\r\n IsApplyDateToSharer = await innkeyAlert(\"Would you like to change the departure date for guest who is sharing with this reservation?\");\r\n }\r\n \r\n if (IsApplyDateToSharer == true) //Check and allow - if user want to apply DeptDate to Prim. Reservation.\r\n {\r\n //setNewReservation(prev => ({ ...prev, IsApplyDeptDateToPrimaryRes: true }));\r\n //Check Availability if Date range is getting out of the Prim. Reservation.\r\n if ((new Date(value).getTime() < new Date(oldReservation.ArrivalDate).getTime()) || (new Date(value).getTime() > new Date(oldReservation.DepartureDate).getTime())) {\r\n GetRoomAvaibility(currUser.ClientSerNo, newReservation.PropertySerNo, Moment(new Date(newReservation.ArrivalDate)).format(\"DD-MMM-YYYY\"), Moment(new Date(value)).format(\"DD-MMM-YYYY\")).then(d => {\r\n let UnAvailableRoom = d.data.filter(x => x.RoomTypeSerNo == newReservation.RoomTypeSerNo && x.Free <= 0);\r\n if (UnAvailableRoom != null && UnAvailableRoom.length > 0) //check if room is available or not.\r\n {\r\n //Room is Un-Available, So Check OB flag.\r\n let paraAllowOverbooking = propertyParameterData.find(x => x.key == \"AllowOverbooking\").value;\r\n if (paraAllowOverbooking == \"1\") {\r\n //Check over booking user rights.\r\n handleUserRights(\"10\").then(d => {\r\n if (d) {\r\n //Check if assigned room is available then Accept else reject. -- pending\r\n setNewReservation(prev => ({ ...prev, IsApplyDeptDateToPrimaryRes: true }));\r\n }\r\n else {\r\n //Dont allow if no user rights.\r\n IsValidToChangeDate = false;\r\n let oldDept = newReservation.DepartureDate;\r\n setNewReservation(prev => ({ ...prev, DepartureDate: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, DepartureDate: oldDept }));\r\n }, 100);\r\n //innkeyAlert(\"You do not have the required rights to perform overbooking. Please contact your administrator.\");\r\n }\r\n })\r\n }\r\n else {\r\n //Dont allow if property does not allow overbooking.\r\n IsValidToChangeDate = false;\r\n let oldDept = newReservation.DepartureDate;\r\n setNewReservation(prev => ({ ...prev, DepartureDate: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, DepartureDate: oldDept }));\r\n }, 100);\r\n confirm({\r\n Message: \"This property does not allow overbooking and due to unavailability of the rooms or respective room type, this action cannot be performed.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n }\r\n else {\r\n //Check if assigned room is available then Accept else reject.--pending\r\n setNewReservation(prev => ({ ...prev, IsApplyDeptDateToPrimaryRes: true }));\r\n }\r\n })\r\n }\r\n else {\r\n //Check if assigned room is available then Accept else reject.--pending\r\n setNewReservation(prev => ({ ...prev, IsApplyDeptDateToPrimaryRes: true }));\r\n }\r\n }\r\n else {\r\n //Check and not allow - if Sharer dept date is greater than the Prim.Res.'s Departure date.\r\n if ((new Date(value).getTime() < new Date(newReservation.SharerDepartureDate).getTime())) {\r\n IsValidToChangeDate = false;\r\n let oldArrival = newReservation.ArrivalDate;\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, ArrivalDate: oldArrival }));\r\n }, 100);\r\n confirm({\r\n Message: \"Sharer reservation cannot have a departure date greater than the primary sharing reservation. Please select another date.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n else {\r\n //accept and check Room assign. - pending.\r\n setNewReservation(prev => ({ ...prev, IsApplyDeptDateToPrimaryRes: false }));\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (IsValidToChangeDate == true) {\r\n //let d = (new Date(value) - new Date(newReservation.ArrivalDate)) / (1000 * 60 * 60 * 24);\r\n let d = (new Date(Moment(value).format(\"DD-MMM-YYYY\")) - new Date(Moment(newReservation.ArrivalDate).format(\"DD-MMM-YYYY\"))) / (1000 * 60 * 60 * 24);\r\n let deptDate; \r\n\r\n if (d < 0) {\r\n //setNewReservation(prev => ({ ...prev, Nights: 1 }));\r\n alert(\"Invalid departure date.\");\r\n deptDate = new Date(newReservation.ArrivalDate);\r\n deptDate.setDate(deptDate.getDate() + 1);\r\n deptDate = Moment(deptDate).format(\"DD-MMM-YYYY\");\r\n //lastSelectedDepartureDate1 = newReservation.DepartureDate;\r\n setNewReservation(prev => ({ ...prev, DepartureDate: new Date(newReservation.ArrivalDate) }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, DepartureDate: new Date(newReservation.DepartureDate) }));\r\n }, 10);\r\n } else {\r\n deptDate = value;\r\n //lastSelectedDepartureDate1 = newReservation.DepartureDate;\r\n setNewReservation(prev => ({ ...prev, DepartureDate: value }));\r\n setNewReservation(prev => ({ ...prev, Nights: d }));\r\n }\r\n\r\n if (newReservation.RateSerNo != \"\" && newReservation.ChargeableRoomTypeSerNo != \"\" && newReservation.Nights != \"\" && newReservation.Adult != \"\") {\r\n reCalculateRate(newReservation.ClientSerNo, newReservation.PropertySerNo, newReservation.RateSerNo, newReservation.ChargeableRoomTypeSerNo,\r\n newReservation.ArrivalDate, deptDate, newReservation.Adult, newReservation.Child, newReservation.CompanyProfileSerNo, newReservation.AgentProfileSerNo);\r\n } else {\r\n //setNewReservation(prev => ({ ...prev, ChargeableRoomTypeSerNo: \"\" }));\r\n setNewReservation(prev => ({ ...prev, RateSerNo: \"\" }));\r\n setNewReservation(prev => ({ ...prev, RateCodeName: \"\" }));\r\n setNewReservation(prev => ({ ...prev, IsComplimentary: false }));\r\n setNewReservation(prev => ({ ...prev, IsHouseUse: false }));\r\n setNewReservation(prev => ({ ...prev, IsDiscloseRate: true }));\r\n setNewReservation(prev => ({ ...prev, IsPrintRate: true }));\r\n setNewReservation(prev => ({ ...prev, Discountable: false }));\r\n dispatch(setRateAndPackages({}));\r\n }\r\n\r\n //setNewReservation(prev => ({ ...prev, IsInclusive: false }));\r\n setNewReservation(prev => ({ ...prev, RoomSerNo: \"\" }));\r\n setRoomNo(\"\");\r\n setNewReservation(prev => ({ ...prev, RoomRate: \"\" }));\r\n setNewReservation(prev => ({ ...prev, NewRoomRate: \"\" }));\r\n setNewReservationValidation(prev => ({ ...prev, Nights: \"\" }));\r\n setValidPage(prev => ({ ...prev, IsValidNights: true }));\r\n dispatch(setTempRateAndPackage({}));\r\n // if (location.state == undefined) {\r\n // dispatch(reSetExtraPackage([]));\r\n // }\r\n }\r\n else {\r\n let oldDept = newReservation.DepartureDate;\r\n setNewReservation(prev => ({ ...prev, DepartureDate: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, DepartureDate: oldDept }));\r\n }, 100);\r\n }\r\n } else {\r\n let oldDept = newReservation.DepartureDate;\r\n setNewReservation(prev => ({ ...prev, DepartureDate: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, DepartureDate: oldDept }));\r\n }, 100);\r\n }\r\n }\r\n const handleOnDepartureDateChanged = async (value) => {\r\n if (location.state?.reservationSerNo != undefined) {\r\n if (location.state.Mode === \"Edit\") {\r\n handleUserRights(\"2\").then(d => {\r\n if (d) {\r\n validateDepartureDateChange(value);\r\n }\r\n else {\r\n let oldDeptDate = newReservation.DepartureDate;\r\n setNewReservation(prev => ({ ...prev, DepartureDate: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, DepartureDate: oldDeptDate }));\r\n }, 100);\r\n }\r\n })\r\n }\r\n else {\r\n validateDepartureDateChange(value);\r\n }\r\n }\r\n else {\r\n validateDepartureDateChange(value);\r\n }\r\n }\r\n\r\n const validateNightsChange = async (value) => {\r\n let IsChangeable = true;\r\n if (location.state?.reservationSerNo != undefined) {\r\n if (location.state.Mode === \"Edit\") {\r\n IsChangeable = await innkeyAlert(\"Please note changing the departure date will remove the following. \\n \" +\r\n \" -Transportation Request \\n\" +\r\n \" Would you like to continue ?\");\r\n\r\n if (!newReservation.IsDepartureOnSameDay && newReservation.ActualDepartureTime != null) {\r\n let IsSameDepartureTime = await innkeyAlert(\"Would you like to keep the same departure time with next day ? \");\r\n if (!IsSameDepartureTime) {\r\n setNewReservation(prev => ({ ...prev, IsDepartureOnSameDay: true }));\r\n setNewReservation(prev => ({ ...prev, ActualDepartureTime: null }));\r\n }\r\n }\r\n }\r\n }\r\n if (IsChangeable) {\r\n if (!isNaN(+value) && parseInt(value) >= 0) {\r\n var IsValidToChangeDate = true;\r\n //Check sharer validation.\r\n if(newReservation.IsSharer == true){\r\n let IsApplyDateToPrimary = true; \r\n if(primaryReservation.GuestName != undefined && primaryReservation.GuestName != null && primaryReservation.GuestName != \"\"){\r\n IsApplyDateToPrimary = await innkeyAlert(\"Would you like to change the nights and departure date for ‘\"+primaryReservation.GuestName+\"’ who is sharing with this reservation?\");\r\n }else{\r\n IsApplyDateToPrimary = await innkeyAlert(\"Would you like to change the nights and departure date for guest who is sharing with this reservation?\");\r\n }\r\n \r\n if (IsApplyDateToPrimary == true) //Check and allow - if user want to apply DeptDate to Prim. Reservation.\r\n {\r\n //Check Availability if Date range is getting out of the Prim. Reservation.\r\n let NewDeptdt = new Date(newReservation.ArrivalDate);\r\n NewDeptdt.setDate(NewDeptdt.getDate() + parseInt(value));\r\n NewDeptdt = Moment(NewDeptdt).format(\"DD-MMM-YYYY\");\r\n if((new Date(NewDeptdt).getTime() > new Date(primaryReservation.DepartureDate).getTime())) //(new Date(NewDeptdt).getTime()< new Date(oldReservation.ArrivalDate).getTime()) || \r\n {\r\n GetRoomAvaibility(currUser.ClientSerNo, newReservation.PropertySerNo, Moment(new Date(newReservation.ArrivalDate)).format(\"DD-MMM-YYYY\"), Moment(new Date(NewDeptdt)).format(\"DD-MMM-YYYY\")).then(d => {\r\n let UnAvailableRoom = d.data.filter(x => x.RoomTypeSerNo == newReservation.RoomTypeSerNo && x.Free <= 0);\r\n if (UnAvailableRoom != null && UnAvailableRoom.length > 0) //check if room is available or not.\r\n {\r\n //Room is Un-Available, So Check OB flag.\r\n let paraAllowOverbooking = propertyParameterData.find(x => x.key == \"AllowOverbooking\").value;\r\n if (paraAllowOverbooking == \"1\") {\r\n //Check over booking user rights.\r\n handleUserRights(\"10\").then(d => {\r\n if (d) {\r\n //Check if assigned room is available then Accept else reject. -- pending\r\n setNewReservation(prev => ({ ...prev, IsApplyDeptDateToPrimaryRes: true }));\r\n }\r\n else {\r\n //Dont allow if no user rights.\r\n IsValidToChangeDate = false;\r\n let oldNights = newReservation.Nights;\r\n setNewReservation(prev => ({ ...prev, Nights: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, Nights: oldNights }));\r\n }, 100);\r\n //innkeyAlert(\"You do not have the required rights to perform overbooking. Please contact your administrator.\");\r\n }\r\n })\r\n }\r\n else {\r\n //Dont allow if property does not allow overbooking.\r\n IsValidToChangeDate = false;\r\n let oldNights = newReservation.Nights;\r\n setNewReservation(prev => ({ ...prev, Nights: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, Nights: oldNights }));\r\n }, 100);\r\n confirm({\r\n Message: \"This property does not allow overbooking and due to unavailability of the rooms or respective room type, this action cannot be performed.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n }\r\n else {\r\n //Check if assigned room is available then Accept else reject.--pending\r\n setNewReservation(prev => ({ ...prev, IsApplyDeptDateToPrimaryRes: true }));\r\n }\r\n })\r\n }\r\n else {\r\n //Check if assigned room is available then Accept else reject.--pending\r\n setNewReservation(prev => ({ ...prev, IsApplyDeptDateToPrimaryRes: true }));\r\n }\r\n }\r\n else {\r\n //validation to check self arr-dept validation, here and in dept change function also.pend\r\n let NewDeptdt = new Date(newReservation.ArrivalDate);\r\n NewDeptdt.setDate(NewDeptdt.getDate() + parseInt(value));\r\n NewDeptdt = Moment(NewDeptdt).format(\"DD-MMM-YYYY\");\r\n if ((new Date(NewDeptdt).getTime() > new Date(oldReservation.DepartureDate).getTime())) {\r\n IsValidToChangeDate = false;\r\n let oldNights = newReservation.Nights;\r\n setNewReservation(prev => ({ ...prev, Nights: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, Nights: oldNights }));\r\n }, 100);\r\n confirm({\r\n Message: \"The departure date of the sharer cannot be greater than the original booking. Please select a date accordingly.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n else {\r\n setNewReservation(prev => ({ ...prev, IsApplyDeptDateToPrimaryRes: false }));\r\n }\r\n }\r\n }\r\n else if(newReservation.IsHasSharerRes == true && location.state?.Mode === \"Edit\"){\r\n let IsApplyDateToSharer = true; \r\n if(newReservation.SharerGuestName != undefined && newReservation.SharerGuestName != null && newReservation.SharerGuestName != \"\"){\r\n IsApplyDateToSharer = await innkeyAlert(\"Would you like to change the nights and departure date for ‘\"+newReservation.SharerGuestName+\"’ who is sharing with this reservation?\");\r\n }\r\n else{\r\n IsApplyDateToSharer = await innkeyAlert(\"Would you like to change the nights and departure date for guest who is sharing with this reservation?\");\r\n }\r\n \r\n if (IsApplyDateToSharer == true) //Check and allow - if user want to apply DeptDate to Prim. Reservation.\r\n {\r\n //Check Availability if Date range is getting out of the Prim. Reservation.\r\n let NewDeptdt = new Date(newReservation.ArrivalDate);\r\n NewDeptdt.setDate(NewDeptdt.getDate() + parseInt(value));\r\n NewDeptdt = Moment(NewDeptdt).format(\"DD-MMM-YYYY\");\r\n if ((new Date(NewDeptdt).getTime() > new Date(oldReservation.DepartureDate).getTime())) //(new Date(NewDeptdt).getTime()< new Date(oldReservation.ArrivalDate).getTime()) || \r\n {\r\n GetRoomAvaibility(currUser.ClientSerNo, newReservation.PropertySerNo, Moment(new Date(newReservation.ArrivalDate)).format(\"DD-MMM-YYYY\"), Moment(new Date(NewDeptdt)).format(\"DD-MMM-YYYY\")).then(d => {\r\n let UnAvailableRoom = d.data.filter(x => x.RoomTypeSerNo == newReservation.RoomTypeSerNo && x.Free <= 0);\r\n if (UnAvailableRoom != null && UnAvailableRoom.length > 0) //check if room is available or not.\r\n {\r\n //Room is Un-Available, So Check OB flag.\r\n let paraAllowOverbooking = propertyParameterData.find(x => x.key == \"AllowOverbooking\").value;\r\n if (paraAllowOverbooking == \"1\") {\r\n //Check over booking user rights.\r\n handleUserRights(\"10\").then(d => {\r\n if (d) {\r\n //Check if assigned room is available then Accept else reject. -- pending\r\n setNewReservation(prev => ({ ...prev, IsApplyDeptDateToPrimaryRes: true }));\r\n }\r\n else {\r\n //Dont allow if no user rights.\r\n IsValidToChangeDate = false;\r\n let oldNights = newReservation.Nights;\r\n setNewReservation(prev => ({ ...prev, Nights: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, Nights: oldNights }));\r\n }, 100);\r\n //innkeyAlert(\"You do not have the required rights to perform overbooking. Please contact your administrator.\");\r\n }\r\n })\r\n }\r\n else {\r\n //Dont allow if property does not allow overbooking.\r\n IsValidToChangeDate = false;\r\n let oldNights = newReservation.Nights;\r\n setNewReservation(prev => ({ ...prev, Nights: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, Nights: oldNights }));\r\n }, 100);\r\n confirm({\r\n Message: \"This property does not allow overbooking and due to unavailability of the rooms or respective room type, this action cannot be performed.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n }\r\n else {\r\n //Check if assigned room is available then Accept else reject.--pending\r\n setNewReservation(prev => ({ ...prev, IsApplyDeptDateToPrimaryRes: true }));\r\n }\r\n })\r\n }\r\n else {\r\n //Check if assigned room is available then Accept else reject.--pending\r\n setNewReservation(prev => ({ ...prev, IsApplyDeptDateToPrimaryRes: true }));\r\n }\r\n }\r\n else {\r\n //validation to check self arr-dept validation, here and in dept change function also.pend\r\n let NewDeptdt = new Date(newReservation.ArrivalDate);\r\n NewDeptdt.setDate(NewDeptdt.getDate() + parseInt(value));\r\n NewDeptdt = Moment(NewDeptdt).format(\"DD-MMM-YYYY\");\r\n if ((new Date(NewDeptdt).getTime() < new Date(newReservation.SharerDepartureDate).getTime())) {\r\n IsValidToChangeDate = false;\r\n let oldNights = newReservation.Nights;\r\n setNewReservation(prev => ({ ...prev, Nights: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, Nights: oldNights }));\r\n }, 100);\r\n confirm({\r\n Message: \"The departure date of the primary cannot be less than the sharer booking. Please select a date accordingly.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n else {\r\n setNewReservation(prev => ({ ...prev, IsApplyDeptDateToPrimaryRes: false }));\r\n }\r\n }\r\n }\r\n\r\n if (IsValidToChangeDate == true) {\r\n //*********actual code start */\r\n let dt = new Date(newReservation.ArrivalDate);\r\n dt.setDate(dt.getDate() + parseInt(value));\r\n dt = Moment(dt).format(\"DD-MMM-YYYY\");\r\n //lastSelectedDepartureDate1 = newReservation.DepartureDate;\r\n setNewReservation(prev => ({ ...prev, DepartureDate: dt }));\r\n setNewReservation(prev => ({ ...prev, Nights: parseInt(value) }));\r\n\r\n if (newReservation.RateSerNo != \"\" && newReservation.ChargeableRoomTypeSerNo != \"\" && newReservation.Adult != \"\") {\r\n reCalculateRate(newReservation.ClientSerNo, newReservation.PropertySerNo, newReservation.RateSerNo, newReservation.ChargeableRoomTypeSerNo,\r\n newReservation.ArrivalDate, dt, newReservation.Adult, newReservation.Child, newReservation.CompanyProfileSerNo, newReservation.AgentProfileSerNo);\r\n } else {\r\n //setNewReservation(prev => ({ ...prev, ChargeableRoomTypeSerNo: \"\" }));\r\n setNewReservation(prev => ({ ...prev, RateSerNo: \"\" }));\r\n setNewReservation(prev => ({ ...prev, RateCodeName: \"\" }));\r\n setNewReservation(prev => ({ ...prev, IsComplimentary: false }));\r\n setNewReservation(prev => ({ ...prev, IsHouseUse: false }));\r\n setNewReservation(prev => ({ ...prev, IsDiscloseRate: true }));\r\n setNewReservation(prev => ({ ...prev, IsPrintRate: true }));\r\n setNewReservation(prev => ({ ...prev, Discountable: false }));\r\n dispatch(setRateAndPackages({}));\r\n }\r\n\r\n // setNewReservation(prev => ({ ...prev, ReservationType: \"\" }));\r\n // setNewReservation(prev => ({ ...prev, ReservationTypeSerNo: \"\" }));\r\n //setNewReservation(prev => ({ ...prev, IsInclusive: false }));\r\n setNewReservation(prev => ({ ...prev, RoomSerNo: \"\" }));\r\n setRoomNo(\"\");\r\n setNewReservation(prev => ({ ...prev, RoomRate: \"\" }));\r\n setNewReservation(prev => ({ ...prev, NewRoomRate: \"\" }));\r\n setNewReservationValidation(prev => ({ ...prev, Nights: \"\" }));\r\n dispatch(setTempRateAndPackage({}));\r\n setValidPage(prev => ({ ...prev, IsValidNights: true }));\r\n // if (location.state == undefined) {\r\n // dispatch(reSetExtraPackage([]));\r\n // } \r\n if(parseInt(value) == 1){\r\n setNewReservation(prev => ({ ...prev, NoOfDailyRate: \"1\" }));\r\n }\r\n }\r\n } else {\r\n setNewReservationValidation(prev => ({ ...prev, Nights: \"Invalid input\" }));\r\n setValidPage(prev => ({ ...prev, IsValidNights: false }));\r\n setNewReservation(prev => ({ ...prev, Nights: value }));\r\n }\r\n } else {\r\n let oldNights = newReservation.Nights;\r\n setNewReservation(prev => ({ ...prev, Nights: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, Nights: oldNights }));\r\n }, 100);\r\n }\r\n }\r\n const handleOnNightsChanged = async (value) => {\r\n if (location.state?.reservationSerNo != undefined) {\r\n if (location.state.Mode === \"Edit\") {\r\n handleUserRights(\"2\").then(d => {\r\n if (d) {\r\n validateNightsChange(value);\r\n }\r\n else {\r\n let oldNights = newReservation.Nights;\r\n setNewReservation(prev => ({ ...prev, Nights: value }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, Nights: oldNights }));\r\n }, 100);\r\n }\r\n })\r\n }\r\n else {\r\n validateNightsChange(value);\r\n }\r\n }\r\n else {\r\n validateNightsChange(value);\r\n }\r\n }\r\n\r\n const validateRoomChange = (v) => {\r\n if (!isNaN(+v) && parseInt(v) > 0) {\r\n\r\n if (parseInt(v) > 5) {\r\n setNewReservationValidation(prev => ({ ...prev, Rooms: \"Max 5 rooms allowed.\" }));\r\n setValidPage(prev => ({ ...prev, IsValidRoom: false }));\r\n } else {\r\n setIsRoomNoDisabled(false);\r\n if (v > 1) {\r\n setNewReservation(prev => ({ ...prev, RoomSerNo: \"\" }));\r\n setRoomNo(\"\");\r\n setIsRoomNoDisabled(true);\r\n }\r\n if (v > newReservation.Rooms) {\r\n alert(\"All the reservation details are copied to the additional room created. Please verify individual fields to make any changes if needed.\");\r\n }\r\n\r\n setNewReservation(prev => ({ ...prev, Rooms: parseInt(v) }));\r\n calculateGrandTotal();\r\n setNewReservationValidation(prev => ({ ...prev, Rooms: \"\" }));\r\n setValidPage(prev => ({ ...prev, IsValidRoom: true }));\r\n }\r\n } else {\r\n setNewReservationValidation(prev => ({ ...prev, Rooms: \"Invalid input\" }));\r\n setValidPage(prev => ({ ...prev, IsValidRoom: false }));\r\n }\r\n }\r\n\r\n const handleOnRoomChanged = (v) => {\r\n if (location.state?.reservationSerNo != undefined) {\r\n if (location.state.Mode === \"Edit\") {\r\n handleUserRights(\"2\").then(d => {\r\n if (d) {\r\n validateRoomChange(v);\r\n }\r\n else {\r\n let oldRooms = newReservation.Rooms;\r\n setNewReservation(prev => ({ ...prev, Rooms: v }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, Rooms: oldRooms }));\r\n }, 100);\r\n }\r\n })\r\n }\r\n else {\r\n validateRoomChange(v)\r\n }\r\n }\r\n else {\r\n validateRoomChange(v)\r\n }\r\n }\r\n const validateAdultChange = (v) => {\r\n if (!isNaN(+v) && parseInt(v) > 0) {\r\n setNewReservation(prev => ({ ...prev, NewAdult: parseInt(v) }));\r\n setNewReservationValidation(prev => ({ ...prev, Adult: \"\" }));\r\n setValidPage(prev => ({ ...prev, IsValidAdult: true }));\r\n } else {\r\n setNewReservation(prev => ({ ...prev, NewAdult: parseInt(v) }));\r\n setNewReservationValidation(prev => ({ ...prev, Adult: \"Invalid input\" }));\r\n setValidPage(prev => ({ ...prev, IsValidAdult: false }));\r\n }\r\n }\r\n\r\n const handleOnAdultChanged = (v) => {\r\n if (location.state?.reservationSerNo != undefined) {\r\n if (location.state.Mode === \"Edit\") {\r\n handleUserRights(\"2\").then(d => {\r\n if (d) {\r\n validateAdultChange(v);\r\n }\r\n else {\r\n let oldAdult = newReservation.NewAdult;\r\n setNewReservation(prev => ({ ...prev, NewAdult: v }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, NewAdult: oldAdult }));\r\n }, 100);\r\n }\r\n })\r\n }\r\n else {\r\n validateAdultChange(v);\r\n }\r\n }\r\n else {\r\n validateAdultChange(v);\r\n }\r\n }\r\n\r\n const handleOnBlurAdult = () => {\r\n\r\n if (newReservation.Adult != newReservation.NewAdult) {\r\n if (newReservation.RateSerNo != \"\" && newReservation.ChargeableRoomTypeSerNo != \"\" && newReservation.Nights != \"\" && newReservation.Adult != \"\") {\r\n reCalculateRate(newReservation.ClientSerNo, newReservation.PropertySerNo, newReservation.RateSerNo, newReservation.ChargeableRoomTypeSerNo,\r\n newReservation.ArrivalDate, newReservation.DepartureDate, newReservation.NewAdult, newReservation.Child, newReservation.CompanyProfileSerNo, newReservation.AgentProfileSerNo);\r\n } else {\r\n //setNewReservation(prev => ({ ...prev, ChargeableRoomTypeSerNo: \"\" }));\r\n setNewReservation(prev => ({ ...prev, RateSerNo: \"\" }));\r\n setNewReservation(prev => ({ ...prev, RateCodeName: \"\" }));\r\n setNewReservation(prev => ({ ...prev, IsComplimentary: false }));\r\n setNewReservation(prev => ({ ...prev, IsHouseUse: false }));\r\n setNewReservation(prev => ({ ...prev, IsDiscloseRate: true }));\r\n setNewReservation(prev => ({ ...prev, IsPrintRate: true }));\r\n setNewReservation(prev => ({ ...prev, Discountable: false }));\r\n dispatch(setRateAndPackages({}));\r\n }\r\n\r\n setNewReservation(prev => ({ ...prev, Adult: newReservation.NewAdult }));\r\n //setNewReservation(prev => ({ ...prev, ReservationType: \"\" }));\r\n //setNewReservation(prev => ({ ...prev, ReservationTypeSerNo: \"\" }));\r\n //setNewReservation(prev => ({ ...prev, IsInclusive: false }));\r\n setNewReservation(prev => ({ ...prev, RoomSerNo: \"\" }));\r\n setRoomNo(\"\");\r\n setNewReservation(prev => ({ ...prev, RoomRate: \"\" }));\r\n setNewReservation(prev => ({ ...prev, NewRoomRate: \"\" }));\r\n\r\n dispatch(setRateAndPackages({}));\r\n dispatch(setTempRateAndPackage({}));\r\n //dispatch(reSetExtraPackage([]));\r\n }\r\n }\r\n\r\n const validateChildChange = (v) => {\r\n if (!isNaN(+v) && parseInt(v) >= 0) {\r\n setNewReservation(prev => ({ ...prev, Child: parseInt(v) }));\r\n setNewReservationValidation(prev => ({ ...prev, Child: \"\" }));\r\n setValidPage(prev => ({ ...prev, IsValidChild: true }));\r\n } else {\r\n setNewReservationValidation(prev => ({ ...prev, Child: \"Invalid input\" }));\r\n setValidPage(prev => ({ ...prev, IsValidChild: false }));\r\n }\r\n }\r\n\r\n const handleRoomTypeChanged = async (item, name) => {\r\n if (item.key != newReservation.RoomTypeSerNo) {\r\n if (newReservation.Adult >= item.MinAdult && newReservation.Adult <= item.MaxAdult && newReservation.Child <= item.MaxChild) {\r\n //nothing to do\r\n } else {\r\n confirm({\r\n Message: \"For selected room type, Allowed Adult are between \" + item.MinAdult + \" to \" + item.MaxAdult + \", and Child must be equal or less than \" + item.MaxChild +\".(As per room type master detail.)\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n }\r\n\r\n if (item.key == 0) {\r\n setValidPage(prev => ({ ...prev, IsValidRoomType: false }));\r\n setNewReservationValidation(prev => ({ ...prev, RoomType: \"Select Room Type\" }));\r\n } else {\r\n setValidPage(prev => ({ ...prev, IsValidRoomType: true }));\r\n setNewReservationValidation(prev => ({ ...prev, RoomType: \"\" }));\r\n }\r\n\r\n //if (location.state == undefined) {\r\n if (!isNaN(+item.key)) {\r\n\r\n setNewReservation(prev => ({ ...prev, RoomSerNo: \"\" }));\r\n setRoomNo(\"\");\r\n setNewReservation(prev => ({ ...prev, RoomTypeSerNo: parseInt(item.key) }));\r\n setNewReservation(prev => ({ ...prev, RoomTypeName: item.value }));\r\n //setNewReservation(prev => ({ ...prev, ChargeableRoomTypeSerNo: parseInt(item.key) }));\r\n let IsUpDownGrade = false;\r\n\r\n //if (location.state != undefined) {\r\n if (location.state.Mode == \"Edit\") {\r\n\r\n let oldRoomType = roomTypeData.find(x => x.key == oldReservation.RoomTypeSerNo);\r\n let newRoomType = roomTypeData.find(x => x.key == item.key);\r\n\r\n if (oldRoomType != undefined && newRoomType != undefined) {\r\n\r\n if (oldRoomType.RoomTypeSerNo == newRoomType.RoomTypeSerNo) {\r\n // Reset to old value with blank data if user change to upgrade or upsell and than revert to old value\r\n setNewReservation(prev => ({ ...prev, IsUpSell: oldReservation.IsUpSell, UpSellRemarks: oldReservation.UpSellRemarks }));\r\n setNewReservation(prev => ({ ...prev, RateSerNo: \"\" }));\r\n setNewReservation(prev => ({ ...prev, RateCodeName: \"\" }));\r\n // setNewReservation(prev => ({ ...prev, ReservationType: \"\" }));\r\n // setNewReservation(prev => ({ ...prev, ReservationTypeSerNo: \"\" }));\r\n setNewReservation(prev => ({ ...prev, IsComplimentary: false }));\r\n setNewReservation(prev => ({ ...prev, IsHouseUse: false }));\r\n setNewReservation(prev => ({ ...prev, IsDiscloseRate: true }));\r\n setNewReservation(prev => ({ ...prev, IsPrintRate: true }));\r\n setNewReservation(prev => ({ ...prev, Discountable: false }));\r\n setNewReservation(prev => ({ ...prev, IsRateMappedToProfile: true }));\r\n setNewReservation(prev => ({ ...prev, RoomRate: \"\" }));\r\n setNewReservation(prev => ({ ...prev, NewRoomRate: \"\" }));\r\n setNewReservation(prev => ({ ...prev, ChargeableRoomTypeSerNo: parseInt(item.key) }));\r\n setNewReservation(prev => ({ ...prev, ChargeableRoomTypeName: item.value }));\r\n dispatch(setRateAndPackages({}));\r\n dispatch(setTempRateAndPackage({}));\r\n setGrandTotal(\"0.00\");\r\n IsUpDownGrade = true;\r\n } else {\r\n\r\n if (item.key != newReservation.ChargeableRoomTypeSerNo) {\r\n if ((parseInt(newRoomType.Sequence) < parseInt(oldRoomType.Sequence))) {\r\n IsUpDownGrade = await innkeyAlert(\"Would you like to downgrade the room type?\")\r\n }\r\n if ((parseInt(newRoomType.Sequence) > parseInt(oldRoomType.Sequence))) {\r\n\r\n IsUpDownGrade = await innkeyAlert(\"Would you like to upgrade the room type?\");\r\n if (!IsUpDownGrade) {\r\n //setShowConfirmMsg(!showConfirmMsg);\r\n let upsellConfirm = await confirm({\r\n Message: \"Is it Upsell ? \",\r\n Type: \"upsell\",\r\n Buttons: [\r\n //{ value: \"Yes\", title: \"Confirm\", type: \"\" }, \r\n { value: \"N\", title: \"No\", type: \"Action\" },\r\n { value: \"Y\", title: \"Yes\", type: \"\" },\r\n ],\r\n });\r\n\r\n if (upsellConfirm.value == \"Y\") {\r\n setNewReservation(prev => ({ ...prev, IsUpSell: true }));\r\n setNewReservation(prev => ({ ...prev, UpSellRemarks: upsellConfirm.text }));\r\n } else {\r\n setNewReservation(prev => ({ ...prev, IsUpSell: false }));\r\n }\r\n }\r\n }\r\n } else {\r\n IsUpDownGrade = true;\r\n }\r\n\r\n }\r\n }\r\n }\r\n\r\n if (!IsUpDownGrade) {\r\n\r\n setNewReservation(prev => ({ ...prev, ChargeableRoomTypeSerNo: parseInt(item.key) }));\r\n setNewReservation(prev => ({ ...prev, ChargeableRoomTypeName: item.value }));\r\n setNewReservation(prev => ({ ...prev, IsInclusive: false }));\r\n dispatch(setRateAndPackages({}));\r\n dispatch(setTempRateAndPackage({}));\r\n\r\n if (newReservation.RateSerNo != \"\" && newReservation.Nights != \"\" && newReservation.Adult != \"\") {\r\n reCalculateRate(newReservation.ClientSerNo, newReservation.PropertySerNo, newReservation.RateSerNo, parseInt(item.key),\r\n newReservation.ArrivalDate, newReservation.DepartureDate, newReservation.Adult, newReservation.Child, newReservation.CompanyProfileSerNo, newReservation.AgentProfileSerNo);\r\n } else {\r\n //setNewReservation(prev => ({ ...prev, ChargeableRoomTypeSerNo: \"\" }));\r\n setNewReservation(prev => ({ ...prev, RateSerNo: \"\" }));\r\n setNewReservation(prev => ({ ...prev, RateCodeName: \"\" }));\r\n setNewReservation(prev => ({ ...prev, IsComplimentary: false }));\r\n setNewReservation(prev => ({ ...prev, IsHouseUse: false }));\r\n setNewReservation(prev => ({ ...prev, IsDiscloseRate: true }));\r\n setNewReservation(prev => ({ ...prev, IsPrintRate: true }));\r\n setNewReservation(prev => ({ ...prev, Discountable: false }));\r\n dispatch(setRateAndPackages({}));\r\n }\r\n\r\n }\r\n }\r\n //}\r\n }\r\n }\r\n const handleOnInclusiveTick = (c) => {\r\n handleUserRights(\"5\").then(d => {\r\n if (d) {\r\n if (res.rateDetailData.RateCodeDetails != undefined) {\r\n setNewReservation(prev => ({ ...prev, IsInclusive: c }));\r\n let tempDaily = JSON.parse(JSON.stringify(res.rateDetailData.RateCodeDetails));\r\n tempDaily.map(d => {\r\n d.IsTaxInclusive = c;\r\n d.ClientSerNo = newReservation.ClientSerNo;\r\n d.PropertySerNo = newReservation.PropertySerNo;\r\n d.Adult = newReservation.Adult;\r\n d.Child = newReservation.Child;\r\n })\r\n calculateRateAndPackage(tempDaily);\r\n } else {\r\n alert(\"Rate code is not selected.\")\r\n }\r\n }\r\n else {\r\n\r\n }\r\n })\r\n }\r\n\r\n const handleOnBlurRoomRate = () => {\r\n\r\n if (newReservation.RoomRate != newReservation.NewRoomRate) {\r\n let diffRate = 0;\r\n\r\n if (res.rateDetailData.RateCodeDetails != undefined) {\r\n\r\n let orgRate = 0;\r\n if (res.rateDetailData.RateCodeDetails.length > 0) {\r\n orgRate = res.rateDetailData.RateCodeDetails[0].RoomRate;\r\n }\r\n\r\n diffRate = res.rateDetailData.RateCodeDetails.filter(x => x.RoomRate != orgRate).length;\r\n if (diffRate > 0) {\r\n alert(\"There are different rates for different dates. Change in room rate can be performed only from Daily Rate.\");\r\n setNewReservation(prev => ({ ...prev, NewRoomRate: newReservation.RoomRate }));\r\n } else {\r\n setNewReservation(prev => ({ ...prev, RoomRate: newReservation.NewRoomRate }));\r\n\r\n let tempDaily = JSON.parse(JSON.stringify(res.rateDetailData.RateCodeDetails));\r\n tempDaily.map(d => {\r\n d.ClientSerNo = newReservation.ClientSerNo;\r\n d.PropertySerNo = newReservation.PropertySerNo;\r\n d.RoomRate = newReservation.NewRoomRate;\r\n d.TotalRoomRate = newReservation.NewRoomRate;\r\n d.Adult = newReservation.Adult;\r\n d.Child = newReservation.Child;\r\n })\r\n calculateRateAndPackage(tempDaily);\r\n }\r\n }\r\n }\r\n }\r\n\r\n const handleOnArrivalTimeChanged = async (e) => {\r\n\r\n if (e == null) {\r\n setNewReservation(prev => ({ ...prev, ActualArrivalTime: null }));\r\n setNewReservation(prev => ({ ...prev, IsArrivalOnSameDay: true }));\r\n } else {\r\n\r\n let d = new Date(\"1-jan-2001 \" + e);\r\n setNewReservation(prev => ({ ...prev, ActualArrivalTime: Moment(d).format(\"DD-MMM-YYYY HH:mm\") }));\r\n let paraArrivalTime = propertyParameterData.find(x => x.key == \"ArrivalTime\").value;\r\n let paraArrivalTimeRange = propertyParameterData.find(x => x.key == \"ArrivalTimeRange\").value;\r\n let d2 = new Date(\"1-jan-2001 \" + paraArrivalTime);\r\n let d3 = new Date(\"1-jan-2001 \" + paraArrivalTime);\r\n d3.setTime(d2.getTime() - (parseInt(paraArrivalTimeRange) * 60 * 60 * 1000));\r\n\r\n // Ask next day arrival if guest arrival before (arrival time - Arrival Range)\r\n //if (d.getTime() >= d2.getTime() && d.getTime() <= d3.getTime()) { \r\n if (Moment(new Date(newReservation.ArrivalDate)).format(\"DD-MMM-YYYY\") != Moment(new Date(newReservation.DepartureDate)).format(\"DD-MMM-YYYY\")) {\r\n if (d.getTime() <= d3.getTime()) {\r\n //setShowNextMsg(true);\r\n let conf = await confirm({\r\n Message: \"Is it next day arrival ?\",\r\n Buttons: [\r\n { value: 'N', title: \"No\", type: \"Action\" },\r\n { value: 'Y', title: \"Yes\", type: \"\" },\r\n ],\r\n });\r\n setNewReservation(prev => ({ ...prev, IsArrivalOnSameDay: (conf.value == 'Y' ? false : true) }));\r\n } else {\r\n setNewReservation(prev => ({ ...prev, IsArrivalOnSameDay: true }));\r\n }\r\n } else {\r\n setNewReservation(prev => ({ ...prev, IsArrivalOnSameDay: true }));\r\n }\r\n }\r\n }\r\n\r\n const handleOnDepartureTimeChanged = async (e) => {\r\n if (e == null) {\r\n setNewReservation(prev => ({ ...prev, ActualDepartureTime: null }));\r\n setNewReservation(prev => ({ ...prev, IsDepartureOnSameDay: true }));\r\n } else {\r\n\r\n let d = new Date(\"1-jan-2001 \" + e);\r\n setNewReservation(prev => ({ ...prev, ActualDepartureTime: Moment(d).format(\"DD-MMM-YYYY HH:mm\") }));\r\n let paraDepartureTime = propertyParameterData.find(x => x.key == \"DepartureTime\").value;\r\n let paraDepartureTimeRange = propertyParameterData.find(x => x.key == \"DepartureTimeRange\").value;\r\n let d2 = new Date(\"1-jan-2001 \" + paraDepartureTime);\r\n let d3 = new Date(\"1-jan-2001 \" + paraDepartureTime);\r\n d3.setTime(d2.getTime() + (parseInt(paraDepartureTimeRange) * 60 * 60 * 1000));\r\n\r\n // Ask previous day departure after departure time + departure time range\r\n //if (d.getTime() >= d2.getTime() && d.getTime() <= d3.getTime()) { \r\n if (Moment(new Date(newReservation.ArrivalDate)).format(\"DD-MMM-YYYY\") != Moment(new Date(newReservation.DepartureDate)).format(\"DD-MMM-YYYY\")) {\r\n if (d.getTime() >= d3.getTime()) {\r\n //setShowPreviosMsg(true);\r\n let conf = await confirm({\r\n Message: \"Is it previous day departure ? \",\r\n Buttons: [\r\n { value: 'N', title: \"No\", type: \"Action\" },\r\n { value: 'Y', title: \"Yes\", type: \"\" },\r\n ],\r\n });\r\n setNewReservation(prev => ({ ...prev, IsDepartureOnSameDay: (conf.value == 'Y' ? false : true) }));\r\n } else {\r\n setNewReservation(prev => ({ ...prev, IsDepartureOnSameDay: true }));\r\n }\r\n } else {\r\n setNewReservation(prev => ({ ...prev, IsDepartureOnSameDay: true }));\r\n }\r\n\r\n }\r\n }\r\n\r\n const removeCompany = async () => {\r\n let IsOk = await innkeyAlert(\"Please note removing the company will remove the following details. \\n \" +\r\n \" - Rate Code \\n\" +\r\n \" Would you like to continue ?\");\r\n if (IsOk) {\r\n setSelectedCompany(prev => ({ ...prev, CompanyName: \"\" }));\r\n setShowCompanyModal(false);\r\n setNewReservation(prev => ({ ...prev, Company: \"\" }));\r\n setNewReservation(prev => ({ ...prev, CompanyProfileSerNo: 0 }));\r\n setNewReservation(prev => ({ ...prev, CompanyHasRateMapping: false }));\r\n setNewReservation(prev => ({ ...prev, CompanyRateGroupSerNo: 0 }));\r\n reCalculateRate(newReservation.ClientSerNo, newReservation.PropertySerNo, newReservation.RateSerNo, newReservation.ChargeableRoomTypeSerNo,\r\n newReservation.ArrivalDate, newReservation.DepartureDate, newReservation.Adult, newReservation.Child, 0, newReservation.AgentProfileSerNo);\r\n }\r\n }\r\n\r\n const removeAgent = async () => {\r\n let IsOk = await innkeyAlert(\"Please note removing the agent will remove the following details. \\n \" +\r\n \" - Rate Code \\n\" +\r\n \" Would you like to continue ?\");\r\n if (IsOk) {\r\n setSelectedAgent(prev => ({ ...prev, CompanyName: \"\" }));\r\n setShowAgentModal(false);\r\n setNewReservation(prev => ({ ...prev, Agent: \"\" }));\r\n setNewReservation(prev => ({ ...prev, AgentProfileSerNo: 0 }));\r\n setNewReservation(prev => ({ ...prev, AgentRateGroupSerNo: 0 }));\r\n setNewReservation(prev => ({ ...prev, AgentHasRateMapping: false }));\r\n reCalculateRate(newReservation.ClientSerNo, newReservation.PropertySerNo, newReservation.RateSerNo, newReservation.ChargeableRoomTypeSerNo,\r\n newReservation.ArrivalDate, newReservation.DepartureDate, newReservation.Adult, newReservation.Child, newReservation.CompanyProfileSerNo, 0);\r\n }\r\n }\r\n //#endregion Page Event\r\n\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Reservation

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n if (item.key == 0)\r\n setNewReservationValidation(prev => ({ ...prev, Property: \"Select Property\" }));\r\n else\r\n setNewReservationValidation(prev => ({ ...prev, Property: \"\" }));\r\n setNewReservation(prev => ({ ...prev, PropertySerNo: parseInt(item.key) }));\r\n setNewReservation(prev => ({ ...prev, PropertyName: item.value }))\r\n }}\r\n >\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n Sun, 11 May\r\n \r\n
    \r\n
    \r\n \r\n Night*\r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n
    \r\n
    \r\n \r\n Rooms*\r\n \r\n
    \r\n
    \r\n Adult*\r\n
    \r\n
    \r\n {\r\n if (location.state?.reservationSerNo != undefined) {\r\n if (location.state.Mode === \"Edit\") {\r\n handleUserRights(\"2\").then(d => {\r\n if (d) {\r\n validateChildChange(v);\r\n }\r\n else {\r\n let oldChild = newReservation.Child;\r\n setNewReservation(prev => ({ ...prev, Child: v }));\r\n setTimeout(() => {\r\n setNewReservation(prev => ({ ...prev, Child: oldChild }));\r\n }, 100);\r\n }\r\n })\r\n }\r\n else {\r\n validateChildChange(v);\r\n }\r\n }\r\n else {\r\n validateChildChange(v);\r\n }\r\n }\r\n }\r\n disabled={res.IsSharer}\r\n tag=\"integer\">Child\r\n
    \r\n
    \r\n\r\n
    \r\n {\r\n newReservation.ChargeableRoomTypeSerNo < newReservation.RoomTypeSerNo ?\r\n :\r\n newReservation.ChargeableRoomTypeSerNo > newReservation.RoomTypeSerNo ?\r\n \r\n\r\n :\r\n <>\r\n }\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n if (location.state?.reservationSerNo != undefined) {\r\n if (location.state.Mode === \"Edit\") {\r\n handleUserRights(\"1\").then(d => {\r\n if (d) {\r\n setShowGuestModal(!showGuestModal)\r\n }\r\n else {\r\n\r\n }\r\n })\r\n }\r\n else {\r\n setShowGuestModal(!showGuestModal)\r\n }\r\n }\r\n else {\r\n setShowGuestModal(!showGuestModal)\r\n }\r\n }}\r\n >\r\n {res.IsSharer == true ? \"Sharer Guest Name*\" : \"Primary Guest Name*\"}\r\n \r\n setShowGuestModal(!showGuestModal)}\r\n >\r\n \r\n \r\n
    \r\n \r\n Membership No.\r\n \r\n\r\n
    \r\n {\r\n if (location.state?.reservationSerNo != undefined) {\r\n if (location.state.Mode === \"Edit\") {\r\n handleUserRights(\"19\").then(d => {\r\n if (d) {\r\n setShowCompanyModal(!showCompanyModal)\r\n }\r\n else {\r\n\r\n }\r\n })\r\n }\r\n else {\r\n setShowCompanyModal(!showCompanyModal)\r\n }\r\n }\r\n else {\r\n setShowCompanyModal(!showCompanyModal)\r\n }\r\n }}\r\n disabled={res.IsSharer}\r\n >\r\n Company\r\n \r\n \r\n {/* */}\r\n \r\n \r\n
    \r\n
    \r\n {\r\n if (location.state?.reservationSerNo != undefined) {\r\n if (location.state.Mode === \"Edit\") {\r\n handleUserRights(\"20\").then(d => {\r\n if (d) {\r\n setShowAgentModal(!showAgentModal)\r\n }\r\n else {\r\n\r\n }\r\n })\r\n }\r\n else {\r\n setShowAgentModal(!showAgentModal)\r\n }\r\n }\r\n else {\r\n setShowAgentModal(!showAgentModal)\r\n }\r\n }}\r\n onChange={(v) => { }}\r\n disabled={res.IsSharer}\r\n >\r\n Travel Agent\r\n \r\n \r\n \r\n {/* */}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n // if(validPage.IsValidProperty && validPage.IsValidNights && validPage.IsValidRoom && \r\n // validPage.IsValidAdult && validPage.IsValidChild && validPage.IsValidRoomType){ \r\n setShowRateSelectionModal(!showRateSelectionModal)\r\n // }\r\n }}\r\n disabled={res.IsSharer}\r\n >\r\n Rate Code*\r\n \r\n \r\n setShowRateSelectionModal(!showRateSelectionModal)\r\n }\r\n >\r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n Room Type to be charged\r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n (newReservation.IsComplimentary || newReservation.IsHouseUse) ?\r\n { }}\r\n >\r\n Room Rate\r\n \r\n :\r\n {\r\n if (isNaN(v) || v == \"\" || v < 0) {\r\n confirm({\r\n Message: \"Invalid Room rate.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }]});\r\n }\r\n else{\r\n handleUserRights(\"4\").then(d => {\r\n if (d) {\r\n setNewReservation(prev => ({ ...prev, NewRoomRate: v }));\r\n }\r\n else {\r\n let oldRoomRate = newReservation.NewRoomRate\r\n setNewReservation((prev) => ({ ...prev, NewRoomRate: v }))\r\n setTimeout(() => {\r\n setNewReservation((prev) => ({ ...prev, NewRoomRate: oldRoomRate }))\r\n }, 100);\r\n }\r\n })\r\n }\r\n }}\r\n tag=\"decimal\"\r\n >\r\n Room Rate{isAverageRate == true ? \" (Avg.)\" : \"\"}\r\n \r\n }\r\n {\r\n newReservation.IsUpSell ?\r\n \r\n : <>\r\n }\r\n
    \r\n
    \r\n
    {\r\n if(newReservation.IsSharer != true){ \r\n if (newReservation.RateSerNo != \"\") {\r\n setNewReservation(prev => ({ ...prev, CallingFrom: \"RateDetail\" }));\r\n setShowRateSelectionSummaryModal(!showRateSelectionSummaryModal)\r\n }\r\n }\r\n }}>\r\n Rate Detail\r\n
    \r\n\r\n {\r\n if (newReservation.Nights != 1 && newReservation.RateSerNo != \"\") {\r\n setShowDailyRateModal(!showDailyRateModal)\r\n } \r\n }}\r\n >\r\n Daily Rate ({newReservation.NoOfDailyRate})\r\n
    \r\n
    \r\n
    \r\n
    \r\n Inclusive of Taxes\r\n
    \r\n
    \r\n {\r\n if (location.state?.reservationSerNo != undefined) {\r\n if (location.state.Mode === \"Edit\") {\r\n handleUserRights(\"22\").then(d => {\r\n if (d) {\r\n setShowRateSelectionPoliciesModal(!showRateSelectionPoliciesModal)\r\n }\r\n else {\r\n \r\n\r\n }\r\n })\r\n }\r\n else {\r\n setShowRateSelectionPoliciesModal(!showRateSelectionPoliciesModal)\r\n }\r\n }\r\n else {\r\n setShowRateSelectionPoliciesModal(!showRateSelectionPoliciesModal)\r\n }\r\n }\r\n }\r\n >\r\n Reservation Type*\r\n \r\n \r\n setShowRateSelectionPoliciesModal(\r\n !showRateSelectionPoliciesModal\r\n )\r\n }\r\n >\r\n \r\n \r\n
    \r\n {\r\n if (res.IsSharer == true) {\r\n confirm({\r\n Message: \"Packages that are added to a sharer reservation is applicable for the sharer reservation only and will not be copied to the primary sharing reservation.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n if (location.state?.reservationSerNo != undefined) {\r\n if (location.state.Mode === \"Edit\") {\r\n handleUserRights(\"24\").then(d => {\r\n if (d) {\r\n setShowPackageListModal(!showPackageListModal)\r\n }\r\n else {\r\n \r\n }\r\n }) \r\n }\r\n else {\r\n setShowPackageListModal(!showPackageListModal)\r\n }\r\n }\r\n else {\r\n setShowPackageListModal(!showPackageListModal)\r\n }\r\n }} \r\n >\r\n Packages ({packageCollection.Total}) {packageCollection.TotalAmount}\r\n
    \r\n
    \r\n
    Inclusions
    \r\n
      \r\n {\r\n packageCollectionIncl ?\r\n packageCollectionIncl.slice(0, 4).map(d =>\r\n
    • \r\n {d.Name}\r\n
    • \r\n ) :\r\n <>\r\n }\r\n
    \r\n \r\n {packageCollectionIncl.length > 4 ?\r\n More\r\n : <>\r\n }\r\n \r\n
    \r\n
    \r\n
    \r\n {/*
    setShowRoomListModal(!showRoomListModal)}>Prefered Room No.
    */}\r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n {\r\n selectedReservationType && selectedReservationType.IsArrivalTimeMandatory ?\r\n newReservation.ActualArrivalTime == null ?\r\n <>Time Required\r\n :\r\n <>\r\n :\r\n <>\r\n }\r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n !newReservation.IsArrivalOnSameDay ?\r\n

    \r\n Next Day\r\n

    \r\n : <>\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {\r\n !newReservation.IsDepartureOnSameDay ?\r\n

    \r\n Previous Day\r\n

    \r\n : <>\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n handleRoomSelection(v)}\r\n >\r\n Room No.\r\n \r\n\r\n setShowRoomListModal(!showRoomListModal)} */\r\n >\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Room Features ({newReservation.RoomFeatures.length})\r\n {\r\n if (res.IsSharer == true) {\r\n confirm({\r\n Message: \"These features are only applied for the sharer reservation and will not be copied to the primary sharing reservation.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n handleUserRights(\"64\").then(d => {\r\n if (d) {\r\n setShowRoomFeaturesModal(!showRoomFeaturesModal);\r\n }\r\n else { \r\n }\r\n })\r\n }\r\n }\r\n >\r\n
    \r\n
      \r\n {\r\n newReservation.RoomFeatures ?\r\n newReservation.RoomFeatures.slice(0, 4).map(d =>\r\n
    • \r\n {d.DisplayName}\r\n
    • \r\n ) : <>\r\n }\r\n
    \r\n \r\n {\r\n newReservation.RoomFeatures.length > 4 ?\r\n More\r\n : <>\r\n }\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Specials ({newReservation.Specials.length})\r\n {\r\n if (res.IsSharer == true) {\r\n confirm({\r\n Message: \"These specials are only applied for the sharer reservation and will not be copied to the primary sharing reservation.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n setShowRoomSpecialsModal(!showRoomSpecialsModal);\r\n }}\r\n >\r\n
    \r\n
      \r\n {\r\n newReservation.Specials ?\r\n newReservation.Specials.slice(0, 4).map(d =>\r\n
    • \r\n {d.Name}\r\n
    • \r\n )\r\n : <>\r\n }\r\n
    \r\n \r\n {\r\n newReservation.Specials.length > 4 ?\r\n More\r\n : <>\r\n }\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n if (item.key == 0)\r\n setNewReservationValidation(prev => ({ ...prev, Market: \"Select Market\" }))\r\n else\r\n setNewReservationValidation(prev => ({ ...prev, Market: \"\" }))\r\n setNewReservation(prev => ({ ...prev, MarketSerNo: parseInt(item.key) }))\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n if (item.key == 0)\r\n setNewReservationValidation(prev => ({ ...prev, Source: \"Select Source\" }))\r\n else\r\n setNewReservationValidation(prev => ({ ...prev, Source: \"\" }))\r\n setNewReservation(prev => ({ ...prev, SourceSerNo: parseInt(item.key) }))\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n Billing Instruction\r\n {\r\n if (newReservation.ClientSerNo != \"\" && newReservation.PropertySerNo != \"\") {\r\n setShowBillingInstructionModal(!showBillingInstructionModal)\r\n } else {\r\n alert(\"Property is not defined.\");\r\n }\r\n }}\r\n >\r\n
    \r\n
      \r\n
    • \r\n {newReservation.BillingInstruction}\r\n
    • \r\n
    \r\n \r\n More\r\n \r\n
    \r\n
    \r\n setNewReservation(prev => ({ ...prev, BookingRefNo: v }))} \r\n disabled={res.IsSharer}>\r\n Booking Reference No\r\n \r\n {/* Fixed Change: 2500 */}\r\n\r\n
    {\r\n if (newReservation.RateSerNo != \"\") {\r\n setNewReservation(prev => ({ ...prev, CallingFrom: \"Total\" }));\r\n setShowRateSelectionSummaryModal(!showRateSelectionSummaryModal)\r\n }\r\n }}>\r\n
    {newReservation.RateCodeName}
    \r\n
    \r\n {newReservation.Rooms} Rooms, {newReservation.Nights} Night\r\n

    Inclusive of all taxes

    \r\n
    \r\n
    \r\n {grandTotal}/-\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n\r\n
    \r\n
    \r\n {\r\n dispatch(setRateAndPackages({}));\r\n dispatch(setTempRateAndPackage({}));\r\n dispatch(reSetExtraPackage([]));\r\n history.push({\r\n pathname: \"/ReservationListPage\",\r\n state: { filterObj: (location.state.filterObj) == undefined ? undefined : location.state.filterObj }\r\n });\r\n }}>Cancel\r\n \r\n Save\r\n \r\n \r\n Save & Continue\r\n \r\n
    \r\n
    \r\n \r\n\r\n {/* Modals Start */}\r\n {showGuestModal ? (\r\n setShowGuestModal(false)}\r\n OnSelect={async (v) => {\r\n let IsChangeable = true\r\n if (location.state?.reservationSerNo != undefined) {\r\n if (location.state.Mode === \"Edit\") {\r\n IsChangeable = await innkeyAlert(\"Please note changing the guest name will remove the following details. \\n \" +\r\n \" -Transportation Request \\n\" +\r\n \" Would you like to continue ?\");\r\n }\r\n }\r\n if (IsChangeable) {\r\n setSelectedGuest(v);\r\n setShowGuestModal(false);\r\n setNewReservation(prev => ({ ...prev, ProfileSerNo: v.ProfileSerNo }));\r\n //if (v.ProfileSpecials.length > 0) {\r\n setNewReservation(prev => ({ ...prev, Specials: v.ProfileSpecials }));\r\n //}\r\n //if (v.ProfileRoomFeatures.length > 0) {\r\n setNewReservation(prev => ({ ...prev, RoomFeatures: v.ProfileRoomFeatures }));\r\n //}\r\n }\r\n }} >\r\n \r\n ) : null\r\n }\r\n\r\n {\r\n showGuestSelectAndContinueModal ? (\r\n setShowGuestSelectAndContinueModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Heading

    \r\n
    \r\n
    \r\n Ignore & Continue\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    The selected profile has following room features and specials. Select the respective features and specials that you would like to carry forward to the reservation.
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Features\r\n
    \r\n
    \r\n {\r\n\r\n }}\r\n >\r\n All\r\n \r\n {\r\n\r\n }}\r\n >\r\n King Bed\r\n \r\n {\r\n\r\n }}\r\n >\r\n Non Smoking\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n Specials\r\n
    \r\n
    \r\n {\r\n\r\n }}\r\n >\r\n All\r\n \r\n {\r\n\r\n }}\r\n >\r\n Prefers Jain Food\r\n \r\n { }}>Feather Free Room\r\n { }}>Option\r\n { }}>Option\r\n { }}>Option\r\n { }}>Option\r\n { }}>Option\r\n { }}>Option\r\n { }}>Option\r\n { }}>Option\r\n { }}>Option\r\n { }}>Option\r\n { }}>Option\r\n { }}>Option\r\n { }}>Option\r\n { }}>Option\r\n { }}>Option\r\n { }}>Option\r\n { }}>Option\r\n { }}>Option\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Add & Continue\r\n Select All & Continue\r\n\r\n
    \r\n
    \r\n \r\n ) : null\r\n }\r\n\r\n {\r\n showPreviewModal ? (\r\n setShowPreviewModal(false)}\r\n >\r\n
    \r\n \r\n
    \r\n \r\n ) : null\r\n }\r\n\r\n {\r\n showAgentModal ? (\r\n { setShowAgentModal(false); }}\r\n OnSelect={(v) => {\r\n if (v.ProfileSerNo == undefined) {\r\n //setSelectedAgent(v);\r\n setSelectedAgent(prev => ({ ...prev, CompanyName: \"\" }));\r\n setShowAgentModal(false);\r\n setNewReservation(prev => ({ ...prev, Agent: \"\" }));\r\n setNewReservation(prev => ({ ...prev, AgentProfileSerNo: 0 }));\r\n setNewReservation(prev => ({ ...prev, AgentRateGroupSerNo: 0 }));\r\n setNewReservation(prev => ({ ...prev, AgentHasRateMapping: false }));\r\n reCalculateRate(newReservation.ClientSerNo, newReservation.PropertySerNo, newReservation.RateSerNo, newReservation.ChargeableRoomTypeSerNo,\r\n newReservation.ArrivalDate, newReservation.DepartureDate, newReservation.Adult, newReservation.Child, newReservation.CompanyProfileSerNo, 0);\r\n } else {\r\n setSelectedAgent(v);\r\n setShowAgentModal(false);\r\n setNewReservation(prev => ({ ...prev, Agent: v.CompanyName }));\r\n setNewReservation(prev => ({ ...prev, AgentProfileSerNo: v.ProfileSerNo }));\r\n setNewReservation(prev => ({ ...prev, AgentRateGroupSerNo: v.RateGroupSerNo }));\r\n setNewReservation(prev => ({ ...prev, AgentHasRateMapping: v.HasRateMapping }));\r\n setNewReservation(prev => ({ ...prev, MarketSerNo: v.MarketSerNo }));\r\n reCalculateRate(newReservation.ClientSerNo, newReservation.PropertySerNo, newReservation.RateSerNo, newReservation.ChargeableRoomTypeSerNo,\r\n newReservation.ArrivalDate, newReservation.DepartureDate, newReservation.Adult, newReservation.Child, newReservation.CompanyProfileSerNo, v.ProfileSerNo);\r\n }\r\n }}\r\n >\r\n \r\n ) : null\r\n }\r\n\r\n\r\n {\r\n showAddAgentModal ? (\r\n setShowAddAgentModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Add Agent

    \r\n
    \r\n
    \r\n setShowAddAgentModal(!showAddAgentModal)}\r\n >\r\n Cancel\r\n \r\n setShowAddAgentModal(!showAddAgentModal)}\r\n >\r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Agent Name*\r\n GST Number\r\n IATA No\r\n Primary Contact Name*\r\n Mobile\r\n Email\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null\r\n }\r\n\r\n {\r\n showCompanyModal ? (\r\n { setShowCompanyModal(false); }}\r\n OnSelect={(v) => {\r\n if (v.ProfileSerNo == undefined) {\r\n //setSelectedCompany(v);\r\n setSelectedCompany(prev => ({ ...prev, CompanyName: \"\" }));\r\n setNewReservation(prev => ({ ...prev, Company: \"\" }));\r\n setNewReservation(prev => ({ ...prev, CompanyProfileSerNo: 0 }));\r\n setNewReservation(prev => ({ ...prev, CompanyHasRateMapping: false }));\r\n setNewReservation(prev => ({ ...prev, CompanyRateGroupSerNo: 0 }));\r\n reCalculateRate(newReservation.ClientSerNo, newReservation.PropertySerNo, newReservation.RateSerNo, newReservation.ChargeableRoomTypeSerNo,\r\n newReservation.ArrivalDate, newReservation.DepartureDate, newReservation.Adult, newReservation.Child, 0, newReservation.AgentProfileSerNo);\r\n } else {\r\n setSelectedCompany(v);\r\n setNewReservation(prev => ({ ...prev, Company: v.CompanyName }));\r\n setNewReservation(prev => ({ ...prev, CompanyProfileSerNo: v.ProfileSerNo }));\r\n setNewReservation(prev => ({ ...prev, CompanyHasRateMapping: v.HasRateMapping }));\r\n setNewReservation(prev => ({ ...prev, CompanyRateGroupSerNo: v.RateGroupSerNo }));\r\n if (newReservation.AgentProfileSerNo == undefined || newReservation.AgentProfileSerNo === 0)\r\n setNewReservation(prev => ({ ...prev, MarketSerNo: v.MarketSerNo }));\r\n reCalculateRate(newReservation.ClientSerNo, newReservation.PropertySerNo, newReservation.RateSerNo, newReservation.ChargeableRoomTypeSerNo,\r\n newReservation.ArrivalDate, newReservation.DepartureDate, newReservation.Adult, newReservation.Child, v.ProfileSerNo, newReservation.AgentProfileSerNo);\r\n }\r\n setShowCompanyModal(false);\r\n }}\r\n >\r\n\r\n \r\n ) : null\r\n }\r\n\r\n {\r\n showAddCompanyModal ? (\r\n setShowAddCompanyModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Add Company

    \r\n
    \r\n
    \r\n setShowAddCompanyModal(!showAddCompanyModal)}\r\n >\r\n Cancel\r\n \r\n setShowAddCompanyModal(!showAddCompanyModal)}\r\n >\r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n Company Name*\r\n GST No\r\n Primary Contact Name* \r\n Mobile*\r\n Email\r\n\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n ) : null\r\n }\r\n\r\n\r\n {\r\n showDailyRateModal ? (\r\n {\r\n setShowDailyRateModal(false);\r\n setNewReservation(prev => ({ ...prev, IsInclusive: isInclusive }));\r\n calculateGrandTotal();\r\n handleOnInclusiveTick(isInclusive);\r\n }}\r\n handleOnclose={() => { setShowDailyRateModal(false); calculateGrandTotal(); }}\r\n para={newReservation}\r\n >\r\n ) : null\r\n }\r\n\r\n\r\n {\r\n showRateSelectionModal ? (\r\n setShowRateSelectionModal(false)}\r\n handleOnRateSelect={(v) => {\r\n //setSelectedRateCode(v);\r\n // setRateCodePopDetail(prev => ({ ...prev, ChargeableRoomTypeSerNo: v.ChargeableRoomTypeSerNo }))\r\n // setRateCodePopDetail(prev => ({ ...prev, RateSerNo: v.RateSerNo }))\r\n\r\n let obj = roomTypeData.find(x => x.key == v.ChargeableRoomTypeSerNo);\r\n if (obj != undefined) {\r\n setNewReservation(prev => ({ ...prev, ChargeableRoomTypeName: obj.value }));\r\n }\r\n // setNewReservation(prev => ({ ...prev, ChargeableRoomTypeSerNo: v.ChargeableRoomTypeSerNo }));\r\n // setNewReservation(prev => ({ ...prev, RoomTypeSerNo: v.RoomTypeSerNo }));\r\n setNewReservation(prev => ({ ...prev, RateSerNo: v.RateSerNo }));\r\n setNewReservation(prev => ({ ...prev, RateCodeName: v.RateCodeName }));\r\n setNewReservation(prev => ({ ...prev, RoomRate: v.RoomRate }));\r\n setNewReservation(prev => ({ ...prev, NewRoomRate: v.RoomRate }));\r\n setNewReservation(prev => ({ ...prev, IsInclusive: v.IsInclusive }));\r\n setNewReservation(prev => ({ ...prev, IsComplimentary: v.IsComplimentary }));\r\n setNewReservation(prev => ({ ...prev, IsHouseUse: v.IsHouseUse }));\r\n setNewReservation(prev => ({ ...prev, IsDiscloseRate: v.IsDiscloseRate }));\r\n setNewReservation(prev => ({ ...prev, IsPrintRate: v.IsPrintRate }));\r\n setNewReservation(prev => ({ ...prev, Discountable: v.Discountable }));\r\n setNewReservation(prev => ({ ...prev, IsRateMappedToProfile: v.IsRateMappedToProfile }));\r\n setNewReservation(prev => ({ ...prev, UpgradeReason: v.UpgradeReason }));\r\n setShowRateSelectionModal(false);\r\n setNewReservation(prev => ({ ...prev, ReservationType: v.ReservationType }));\r\n if (v.SelectedReservationType != undefined)\r\n setSelectedReservationType(v.SelectedReservationType);\r\n if (!isNaN(+v.ChargeableRoomTypeSerNo))\r\n setNewReservation(prev => ({ ...prev, ChargeableRoomTypeSerNo: parseInt(v.ChargeableRoomTypeSerNo) }))\r\n if (!isNaN(+v.RoomTypeSerNo))\r\n setNewReservation(prev => ({ ...prev, RoomTypeSerNo: parseInt(v.RoomTypeSerNo) }))\r\n if (!isNaN(+v.RateSerNo))\r\n setNewReservation(prev => ({ ...prev, RateSerNo: parseInt(v.RateSerNo) }))\r\n if (!isNaN(+v.ReservationTypeSerNo))\r\n setNewReservation(prev => ({ ...prev, ReservationTypeSerNo: parseInt(v.ReservationTypeSerNo) }));\r\n calculateGrandTotal();\r\n calculatePackages();\r\n }}\r\n >\r\n ) : null\r\n }\r\n\r\n\r\n {\r\n showRoomUpgradeReasonModal ? (\r\n setShowRoomUpgradeReasonModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Reason for upgrade / Downgrade

    \r\n
    \r\n
    \r\n Reset\r\n Apply\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { }}>\r\n Search\r\n \r\n
    \r\n select from the below list\r\n
    \r\n
    \r\n
    \r\n {\r\n\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Or
    \r\n {\r\n\r\n }}\r\n >\r\n Enter Manually\r\n \r\n { }}\r\n type=\"text\"\r\n >\r\n Message\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null\r\n }\r\n\r\n {\r\n showRateSelectionSummaryModal ? (\r\n { setShowRateSelectionSummaryModal(!showRateSelectionSummaryModal); calculateGrandTotal(); }}\r\n handleOnclose={() => { setShowRateSelectionSummaryModal(!showRateSelectionSummaryModal); calculateGrandTotal(); }}\r\n >\r\n ) : null\r\n }\r\n\r\n {\r\n showRateSelectionPoliciesModal ? (\r\n setShowRateSelectionPoliciesModal(false)}\r\n handleOnTypeSelection={(v) => {\r\n setSelectedReservationType(v);\r\n setNewReservation(prev => ({ ...prev, ReservationType: v.ReservationType }));\r\n if (!isNaN(+v.ReservationTypeSerNo))\r\n setNewReservation(prev => ({ ...prev, ReservationTypeSerNo: parseInt(v.ReservationTypeSerNo) }));\r\n setShowRateSelectionPoliciesModal(false);\r\n }}\r\n >\r\n \r\n ) : null\r\n }\r\n\r\n {\r\n showRoomListModal ? (\r\n setShowRoomListModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Room List

    \r\n
    \r\n
    \r\n setShowRoomListModal(!showRoomListModal)}\r\n >\r\n Cancel\r\n \r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { }}>\r\n Search in the list\r\n \r\n
    \r\n
      \r\n
    • \r\n {\r\n\r\n }}\r\n >\r\n\r\n Room 206 - Mr. Rohan Shah\r\n \r\n
      Ref. No. 123456789
      \r\n
      \r\n Booking No. 123456789\r\n
      \r\n
    • \r\n
    • \r\n {\r\n\r\n }}\r\n >\r\n\r\n Room 206 - Mr. Rohan Shah\r\n \r\n
      Ref. No. 123456789
      \r\n
      \r\n Booking No. 123456789\r\n
      \r\n
    • \r\n
    • \r\n {\r\n\r\n }}\r\n >\r\n\r\n Room 206 - Mr. Rohan Shah\r\n \r\n
      Ref. No. 123456789
      \r\n
      \r\n Booking No. 123456789\r\n
      \r\n
    • \r\n
    • \r\n {\r\n\r\n }}\r\n >\r\n\r\n Room 206 - Mr. Rohan Shah\r\n \r\n
      Ref. No. 123456789
      \r\n
      \r\n Booking No. 123456789\r\n
      \r\n
    • \r\n
    • \r\n {\r\n\r\n }}\r\n >\r\n\r\n Room 206 - Mr. Rohan Shah\r\n \r\n
      Ref. No. 123456789
      \r\n
      \r\n Booking No. 123456789\r\n
      \r\n
    • \r\n
    • \r\n {\r\n\r\n }}\r\n >\r\n\r\n Room 206 - Mr. Rohan Shah\r\n \r\n
      Ref. No. 123456789
      \r\n
      \r\n Booking No. 123456789\r\n
      \r\n
    • \r\n
    • \r\n {\r\n\r\n }}\r\n >\r\n\r\n Room 206 - Mr. Rohan Shah\r\n \r\n
      Ref. No. 123456789
      \r\n
      \r\n Booking No. 123456789\r\n
      \r\n
    • \r\n
    • \r\n {\r\n\r\n }}\r\n >\r\n\r\n Room 206 - Mr. Rohan Shah\r\n \r\n
      Ref. No. 123456789
      \r\n
      \r\n Booking No. 123456789\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Selected Room
    \r\n
    \r\n \r\n Room 206 - Mr. Rohan Shah\r\n \r\n \r\n \r\n Room 206 - Mr. Rohan Shah\r\n \r\n \r\n \r\n Room 206 - Mr. Rohan Shah\r\n \r\n \r\n \r\n Room 206 - Mr. Rohan Shah\r\n \r\n \r\n \r\n Room 206 - Mr. Rohan Shah\r\n \r\n \r\n \r\n Room 206 - Mr. Rohan Shah\r\n \r\n \r\n \r\n Room 206 - Mr. Rohan Shah\r\n \r\n \r\n \r\n Room 206 - Mr. Rohan Shah\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null\r\n }\r\n\r\n {\r\n showRoomFeaturesModal ? (\r\n setShowRoomFeaturesModal(false)}\r\n handleOnSelect={(v) => {\r\n setNewReservation(prev => ({ ...prev, RoomFeatures: v }));\r\n setShowRoomFeaturesModal(false);\r\n }}\r\n >\r\n ) : null\r\n }\r\n\r\n {\r\n showRoomSpecialsModal ? (\r\n setShowRoomSpecialsModal(false)}\r\n hanldeOnSelection={(v) => {\r\n //setSelectedSpecial(v);\r\n setShowRoomSpecialsModal(false)\r\n setNewReservation(prev => ({ ...prev, Specials: v }));\r\n }}\r\n >\r\n ) : null\r\n }\r\n\r\n {\r\n showRoomAvailabilityModal ? (\r\n setShowRoomAvailabilityModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Room Availability

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Reservation Details
    \r\n
    \r\n Arrival\r\n \r\n Wed, 12th March (4 nights)\r\n \r\n
    \r\n
    \r\n Executive \r\n \r\n 1 Room\r\n \r\n
    \r\n
    \r\n 2 Adult\r\n 1 Child\r\n
    \r\n
    \r\n Make My Trip\r\n \r\n \r\n \r\n
    \r\n
    \r\n Arvind Ltd.\r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n {\r\n\r\n }}\r\n >\r\n Show All Room Types\r\n \r\n
    \r\n\r\n
    Room Preference
    \r\n
    \r\n
    \r\n { }}\r\n >\r\n
    \r\n
    \r\n { }}\r\n >\r\n
    \r\n
    \r\n {\r\n\r\n }}\r\n >\r\n Adjoining Room\r\n \r\n
    \r\n
    \r\n {\r\n\r\n }}\r\n >\r\n Inter-Connected Room\r\n \r\n
    \r\n
    \r\n {\r\n\r\n }}\r\n >\r\n Accessible Room\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Apply\r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    King Size Bed, Inter-Connected Room

    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Room TypeDeluxeExecutive SuiteEx. Suite
    Physical Rooms1225155
    Occupied Rooms81552
    Assigned Without Preference3200
    Available Against Preference-58100
    \r\n
    \r\n\r\n

    Assigned Without Preference (Deluxe)

    \r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n fixedHeaderNo={0}\r\n /* handleLinkClick={(v) => {\r\n \r\n setShowReceivedPopup(true)\r\n }} */\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optClick={(v, d) => {\r\n\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null\r\n }\r\n\r\n {\r\n showBillingInstructionModal ? (\r\n setShowBillingInstructionModal(!showBillingInstructionModal)}\r\n handleOnSelection={(v, e) => {\r\n setNewReservation(prev => ({ ...prev, BillingInstruction: v, BillingInstructionSerNo: parseInt(e) }));\r\n setShowBillingInstructionModal(!showBillingInstructionModal);\r\n }}\r\n >\r\n ) : null\r\n }\r\n\r\n {\r\n showPackageListModal ? (\r\n setShowPackageListModal(false)}\r\n >\r\n ) : null\r\n }\r\n\r\n {/* Modals End */}\r\n \r\n );\r\n}\r\n\r\n//export default ReservationAdd;\r\n","import React, { useState } from \"react\";\r\nimport {\r\n InnPrimaryButton,\r\n InnModalPopup,\r\n InnTextbox,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport { AddEditReservationParty } from \"../../../../services/reservationService\";\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport function AddReservationParty(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const partyList = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n PartySerNo: 0,\r\n PartyName: \"\"\r\n }\r\n const validationObj = {\r\n PartyName: \"\",\r\n }\r\n const [addReservationPartyObj, setAddReservationPartyObj] = useState(partyList);\r\n const [reservationPartyValidation, setReservationPartyValidation] = useState(validationObj);\r\n const [isClosePopup, setIsClosePopup] = useState(false);\r\n const clearValidation = () => {\r\n setReservationPartyValidation(validationObj);\r\n }\r\n const isValidPartyName = () => {\r\n let isvalid = true;\r\n if (addReservationPartyObj.PartyName == \"\") {\r\n isvalid = false;\r\n alertFunction(\"Please Input PartyName !\");\r\n setReservationPartyValidation(prev => ({ ...prev, PartyName: \"Invalid Input\" }));\r\n }\r\n else {\r\n isvalid = true;\r\n clearValidation();\r\n }\r\n return isvalid;\r\n }\r\n const handleClickSave = () => {\r\n let isPageIsValid = isValidPartyName();\r\n let objParty = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n PartySerNo: addReservationPartyObj.PartySerNo,\r\n PartyName: addReservationPartyObj.PartyName,\r\n Mode: \"Add\"\r\n }\r\n if (isPageIsValid) {\r\n AddEditReservationParty(objParty).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n objParty.PartySerNo = d.data.ReturnValue;\r\n props.onChange(objParty);\r\n }\r\n else {\r\n alertFunction(d.data.Message);\r\n }\r\n });\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {isClosePopup == false && (\r\n {\r\n setIsClosePopup(!isClosePopup);\r\n props.onChange();\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Create New Party

    \r\n
    \r\n
    \r\n Save\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setAddReservationPartyObj(prev => ({ ...prev, PartyName: e }))\r\n setReservationPartyValidation((prev) => ({ ...prev, PartyName: \"\" }))\r\n }\r\n }\r\n >Party Name\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n )}\r\n \r\n )\r\n}","import React from \"react\";\r\nimport {\r\n InnPrimaryButton,\r\n InnModalPopup,\r\n InnTextbox,\r\n InnSearchTextbox,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport { GetLinkReservationParty, GetLinkReservationPartyList, AddEditReservationParty, manageReservationFields } from \"../../../../services/reservationService\";\r\nimport { AddReservationParty } from \"./addReservationParty\";\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useState } from \"react\";\r\nimport { useEffect } from \"react\";\r\n\r\nexport function LinkReservationModalPopup(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const partyList = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n PartySerNo: 0,\r\n PartyName: \"\",\r\n Mode: \"View\"\r\n }\r\n const validationObj = {\r\n PartyName: \"\",\r\n }\r\n const [partyListObj, setPartyListObj] = useState(partyList);\r\n const [partyNameValidation, setPartyNameValidations] = useState(validationObj);\r\n const [linkReservationParty, setlinkReservationParty] = useState([]);\r\n const [filterLinkReservationParty, setfilterLinkReservationParty] = useState([]);\r\n const [reservationPartyList, setReservationPartyList] = useState([]);\r\n const [selectedPartySerNo, setSelectedPartySerNo] = useState(0);\r\n const [isChanged, setIsChanged] = useState(false);\r\n const [IsUpdateLinkPary, setIsUpdateLinkPary] = useState(false);\r\n const [search, setSearch] = useState(\"\");\r\n const [isShowAddReservationParty, setIsShowAddReservationParty] = useState(props.isShowAddReservationParty);\r\n const clearValidation = () => {\r\n setPartyNameValidations(validationObj);\r\n }\r\n const isValidPartyName = () => {\r\n let isvalid = true;\r\n if (partyListObj.PartyName.trim().length == 0) {\r\n isvalid = false;\r\n setPartyNameValidations(prev => ({ ...prev, PartyName: \"Invalid Input\" }));\r\n }\r\n return isvalid;\r\n }\r\n\r\n useEffect(() => {\r\n loadLinkReservationParty();\r\n }, [props.para.ReservationSerNo]);\r\n\r\n const loadLinkReservationParty = () => {\r\n GetLinkReservationParty(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(props.para.ReservationSerNo)).then(d => {\r\n console.log(\"List Of Party>>>>\", d.data);\r\n setlinkReservationParty(d.data);\r\n setfilterLinkReservationParty(d.data);\r\n\r\n if (d.data.length > 0) {\r\n if (partyListObj.Mode == \"Add\" || partyListObj.Mode == \"Edit\") {\r\n\r\n let tempData = d.data.find(x => x.PartySerNo == partyListObj.PartySerNo)\r\n if (tempData) {\r\n tempData.Mode = \"View\";\r\n setPartyListObj(tempData)\r\n console.log(tempData);\r\n }\r\n\r\n }\r\n else {\r\n d.data[0].Mode = \"View\"\r\n setPartyListObj(d.data[0]);\r\n console.log(d.data[0])\r\n loadPartyReservationList(d.data[0].PartySerNo)\r\n }\r\n }\r\n\r\n });\r\n }\r\n const loadPartyReservationList = (PartySerNo) => {\r\n GetLinkReservationPartyList(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(props.para.ReservationSerNo), PartySerNo).then(d => {\r\n if (d.data) {\r\n let temp = d.data;\r\n temp.Mode = \"View\";\r\n setReservationPartyList(temp)\r\n console.log(\"PartyDetail>>>\", temp);\r\n }\r\n\r\n });\r\n }\r\n const handleOnSearchChange = (b) => {\r\n setSearch(b);\r\n setPartyListObj(partyList);\r\n let temp = [];\r\n linkReservationParty.forEach((ele) => {\r\n if (ele.PartyName.toLowerCase().includes(b.toLowerCase())) {\r\n temp.push(ele);\r\n }\r\n });\r\n setfilterLinkReservationParty(temp);\r\n }\r\n const handlePartyNameClick = (e) => {\r\n clearValidation();\r\n let obj = linkReservationParty.find(\r\n x => x.PartySerNo == e.target.id)\r\n obj.Mode = \"View\";\r\n setPartyListObj(obj);\r\n loadPartyReservationList(e.target.id);\r\n setSelectedPartySerNo(e.target.id);\r\n setIsChanged(false);\r\n }\r\n\r\n const searchEdit = () => {\r\n GetLinkReservationParty(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(props.para.ReservationSerNo)).then((d) => {\r\n let temp = d.data.filter(ele => ele.PartyName.toLowerCase().includes(search.toLowerCase()));\r\n setfilterLinkReservationParty(temp)\r\n })\r\n }\r\n\r\n const handleOnSaveClick = () => {\r\n console.log(isChanged);\r\n if (isChanged == false) {\r\n updateReservationParty();\r\n }\r\n else {\r\n let isValidPage = isValidPartyName();\r\n let objParty = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n PartySerNo: partyListObj.PartySerNo,\r\n PartyName: partyListObj.PartyName,\r\n Mode: \"Edit\"\r\n }\r\n if (isValidPage) {\r\n AddEditReservationParty(objParty).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n loadLinkReservationParty();\r\n updateReservationParty();\r\n if (partyListObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit();\r\n return;\r\n }\r\n setPartyListObj((prev) => ({ ...prev, PartySerNo: d.data.PartySerNo }));\r\n //setSelectedPartySerNo(d.data.PartySerNo)\r\n //loadPartyReservationList(d.data.ReturnValue)\r\n console.log(\"ReturnValue>>\", d.data.ReturnValue);\r\n }\r\n\r\n }\r\n else {\r\n alertFunction(\"Failed\");\r\n }\r\n\r\n });\r\n setPartyListObj((prev) => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n\r\n }\r\n }\r\n const updateReservationParty = () => {\r\n manageReservationFields(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(props.para.ReservationSerNo), \"PartySerNo\", partyListObj.PartySerNo).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n console.log(\"Value Puted\");\r\n setIsUpdateLinkPary(true);\r\n loadLinkReservationParty();\r\n loadPartyReservationList(partyListObj.PartySerNo);\r\n }\r\n alertFunction(d.data.Message);\r\n });\r\n }\r\n function handleCreateNewPartyClick() {\r\n setIsShowAddReservationParty(true);\r\n }\r\n const AddReservationPartyOnChange = (e) => {\r\n setIsShowAddReservationParty(!isShowAddReservationParty);\r\n\r\n if (e != undefined) {\r\n let objParty = {\r\n PartySerNo: parseInt(e.PartySerNo),\r\n PartyName: e.PartyName,\r\n TotalReservation: 0\r\n }\r\n let tempObjParty = JSON.parse(JSON.stringify(filterLinkReservationParty));\r\n tempObjParty.push(objParty);\r\n setlinkReservationParty(tempObjParty);\r\n setfilterLinkReservationParty(tempObjParty);\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n props.Onclose(IsUpdateLinkPary)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Link Reservation to Party

    \r\n
    \r\n
    \r\n Create New Party\r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    LIST OF PARTIES
    \r\n
    \r\n {filterLinkReservationParty.map((item) =>\r\n (
    \r\n
    \r\n
    {item.PartyName}
    \r\n
    ({item.TotalReservation})
    \r\n
    \r\n {/*
    */}\r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    party details
    \r\n
    \r\n
    PARTIES No. : {partyListObj.PartySerNo}
    \r\n
    \r\n {\r\n setPartyListObj(prev => ({ ...prev, PartyName: m }));\r\n setPartyNameValidations((prev) => ({ ...prev, PartyName: \"\" }));\r\n setIsChanged(true);\r\n }}\r\n >Party Name\r\n
    \r\n
    \r\n
    party reservations
    \r\n
    \r\n {reservationPartyList.map((d) => (\r\n
    \r\n
    \r\n
    \r\n \r\n {d.ReservationStatus}\r\n
    {d.GuestName}
    \r\n
    \r\n
    \r\n ({d.NoOfRoom})\r\n
    \r\n
    \r\n
    \r\n Arrival\r\n {d.ArrivalDate} ({d.Nights} Nights)\r\n
    \r\n
    \r\n )\r\n )}\r\n\r\n {/*
    */}\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {isShowAddReservationParty ?\r\n : null\r\n }\r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnLoader,\r\n InnTextbox,\r\n InnPlainButton,\r\n InnSingleSelectDropdown,\r\n InnCheckbox,\r\n InnContextMenu,\r\n InnTooltip,\r\n InnSearchTextbox,\r\n InnMultiSelectDropdown,\r\n InnTextarea\r\n} from \"../../../../component\";\r\nimport { GetReservationInfoData, GetReservationRoomFeatureBySerNo, GetRoomAssignRoomListByFilter, GetRoomFeature, manageReservationIndicator, ReservationroomMove } from \"../../../../services/reservationService\";\r\nimport { IndiAgent, IndiCompany, IndiAdultChild, IndiArrival, IndiGuestName, IndiRateCode, IndiReservationType, IndiRoomRate, IndiRoomType, IndiSharer } from \"../indicators\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { handleBreakpoints } from \"@mui/system\";\r\nimport { GetHKStatusMaster } from \"../../../../services/housekeepingServiceMaster\";\r\nimport { GetFloorMaster } from \"../../../../services/frontMasterService\";\r\nimport { RoomFeatureModalPopup } from \"./roomFeatureModalPopup\";\r\nimport rightarrow from \"../../../../assets/images/right-circle-arrow-gray.svg\";\r\nimport { GetRoomFeatures } from \"../../../../services/roomMasterService\";\r\nimport { GetReasonMaster } from \"../../../../services/generalService\";\r\n\r\nexport function RoomMoveModalPopup(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n //SelectedReservationSerNo: parseInt(props.para[0].ReservationSerNo),\r\n SelectedReservationSerNo: props.para.ReservationSerNo,\r\n pArrivalDate: \"\",\r\n RoomTypeFilter: null,\r\n HKStatusFilter: null,\r\n FloorFilter: null,\r\n RoomFeatureFilter: null,\r\n IsIncludeDueIn: null,\r\n IsShowAllRoomType: null\r\n };\r\n const validationObj = {\r\n RoomMoveReasonSerNo: \"\",\r\n UpDownGradeReasonSerNo: \"\"\r\n }\r\n const [showRoomMoveFilterModal, setShowRoomMoveFilterModal] = useState(false);\r\n const [reservationInfoData, setReservationInfoData] = useState({});\r\n const [roomMoveFilterObj, setRoomMoveFilterObj] = useState(defaultObj);\r\n const [roomMoveValidation, setRoomMoveValidation] = useState(validationObj);\r\n const reservationObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n // ReservationSerNo: location.state.reservationSerNo\r\n ReservationSerNo: props.para.ReservationSerNo,\r\n };\r\n const [roomMoveListData, setRoomMoveListData] = useState([]);\r\n const [filterRoomMoveListData, setFilterRoomMoveListData] = useState([]);\r\n const [searchString, setSearchString] = useState(\"\");\r\n const [fillHKStatusData, setFillHKStatusData] = useState([]);\r\n const [selectedHKStatus, setSelectedHKStatus] = useState([]);\r\n const [fillFloorData, setFillFloorData] = useState([]);\r\n const [selectedFloor, setSelectedFloor] = useState([]);\r\n const [fillBedTypeData, setFillBedTypeData] = useState([]);\r\n const [fillSmokingData, setFillSmokingData] = useState([]);\r\n const [roomFeatureData, setroomFeatureData] = useState([]);\r\n const [selectedBedType, setSelectedBedType] = useState({\r\n key: 0,\r\n value: \"Select\",\r\n });\r\n const [selectedSmokingType, setSelectedSmokingType] = useState({\r\n key: 0,\r\n value: \"Select\",\r\n });\r\n const [finalResponse, setFinalResponse] = useState([]);\r\n const [selectedRmFeature, setSelectedRmFeature] = useState([]);\r\n const [selectedRmFeatureData, setSelectedRmFeatureData] = useState([]);\r\n const [showRoomFeaturesModal, setShowRoomFeaturesModal] = useState(false);\r\n const [isIncludeDueIn, setIsIncludeDueIn] = useState(false);\r\n const [rmFeatureMatchingDataByResSerNo, setRmFeatureMatchingDataByResSerNo] = useState([]);\r\n const [rmFeatureMatchingDataByRoomNo, setRmFeatureMatchingDataByRoomNo] = useState([]);\r\n const [rmFeatureValuesData, setRmFeatureValuesData] = useState([]);\r\n const [rmMatchedArr, setRmMatchedArr] = useState([]);\r\n const [roomMoveGridObj, setRoomMoveGridObj] = useState([]);\r\n const [rmMoveReasonData, setRmMoveReasonData] = useState([]);\r\n const [selectedRmMoveReason, setSelectedRmMoveReason] = useState({\r\n key: \"0\",\r\n value: \"Select\",\r\n })\r\n const [upgradeReasonData, setUpgradeReasonData] = useState([]);\r\n const [selectedUpgradeReason, setSelectedUpgradeReason] = useState({\r\n key: \"0\",\r\n value: \"Select\",\r\n });\r\n const [ind, setIndex] = useState();\r\n const [roomNoAndType, setRoomNoAndType] = useState({});\r\n const [isShowAllRoomType, setIsShowAllRoomType] = useState(false);\r\n const [flag, setFlag] = useState(false);\r\n const [roomTypeData, setRoomTypeData] = useState({});\r\n const [roomMoveObj, setRoomMoveObj] = useState({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n FromReservationSerNo: reservationObj.ReservationSerNo,\r\n FromRoomSerNo: 0,\r\n ToReservationSerNo: 0,\r\n ToRoomSerNo: 0,\r\n RoomMoveReasonSerNo: 0,\r\n RoomMoveNote: \"\",\r\n UpDownGradeReasonSerNo: 0,\r\n UpDownGradeNote: \"\"\r\n })\r\n const [updatedKey, setUpdatedKey] = useState(1);\r\n\r\n const selectdata = [\r\n { key: \"ARR\", value: \"Arrival Date\" },\r\n { key: \"DEPT\", value: \"Departure Date\" },\r\n { key: \"BOOK\", value: \"Booking Date\" },\r\n { key: \"STAY\", value: \"Stay Date\" },\r\n ];\r\n const assignData = [\r\n { key: \"Assign\", value: \"Assign\" },\r\n { key: \"Assign & Check In\", value: \"Assign & Check In\" },\r\n ];\r\n // function to re-render the child \r\n const renderChild = () => {\r\n let newkey = Math.floor(Math.random() * 100);\r\n setUpdatedKey(newkey);\r\n }\r\n\r\n useEffect(() => {\r\n fillReservationInfoData();\r\n //fillRoomMoveFilterData();\r\n fillRmMoveReasonData();\r\n fillUpgradeReasonData();\r\n fillRoomFeaturesMatchingByRoomNo();\r\n fillRoomFeaturesMatchingBySerNo();\r\n fillRmTypeSequence();\r\n GetHKStatusMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n let tempHKStatusData = [];\r\n d.data.map((e) => {\r\n tempHKStatusData = [\r\n ...tempHKStatusData,\r\n {\r\n key: e.HKStatusSerNo,\r\n value: e.Name,\r\n },\r\n ];\r\n });\r\n setFillHKStatusData(tempHKStatusData);\r\n })\r\n GetFloorMaster(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo)\r\n ).then((d) => {\r\n let defaultFloorData = [];\r\n d.data.map((e) => {\r\n defaultFloorData = [\r\n ...defaultFloorData,\r\n {\r\n key: e.FloorSerNo,\r\n value: e.Name,\r\n },\r\n ];\r\n });\r\n setFillFloorData(defaultFloorData);\r\n });\r\n GetRoomFeature(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo)\r\n ).then((d) => {\r\n if (d.data != undefined) {\r\n d.data.RoomFeatures.map((o) => {\r\n o.checked = false;\r\n //fill bed type combo start\r\n if (o.RoomFeatureTypeSerNo == \"BDT\") {\r\n let obj = [{ key: 0, value: \"Select\" }];\r\n d.data.RoomFeatureValues.map((b) => {\r\n if (o.RoomFeatureSerNo == b.RoomFeatureSerNo) {\r\n obj.push({ key: b.key, value: b.Value });\r\n }\r\n setFillBedTypeData(obj);\r\n });\r\n }\r\n //fill bed type combo end\r\n\r\n //fill smoking type combo start\r\n if (o.RoomFeatureTypeSerNo == \"SMK\") {\r\n let obj = [{ key: 0, value: \"Select\" }];\r\n d.data.RoomFeatureValues.map((s) => {\r\n if (o.RoomFeatureSerNo == s.RoomFeatureSerNo) {\r\n obj.push({ key: s.key, value: s.Value });\r\n }\r\n setFillSmokingData(obj);\r\n });\r\n }\r\n //fill smoking type combo end\r\n });\r\n }\r\n setroomFeatureData(d.data);\r\n });\r\n }, [])\r\n\r\n useEffect(() => {\r\n let tempArr = [];\r\n let displayName = [];\r\n if (finalResponse.length > 0) {\r\n for (let i = 0; i < finalResponse.length; i++) {\r\n tempArr = tempArr + finalResponse[i].RoomFeatureValueSerNo + \",\";\r\n setRoomMoveFilterObj((prev) => ({\r\n ...prev,\r\n RoomFeatureFilter: tempArr,\r\n }));\r\n if (finalResponse.length <= 2) {\r\n displayName.push(finalResponse[i].DisplayName);\r\n }\r\n }\r\n if (finalResponse.length > 2) {\r\n displayName.push(finalResponse[0].DisplayName, finalResponse[1].DisplayName + \"...\");\r\n }\r\n console.log(\"DisplayName\", displayName);\r\n setSelectedRmFeature(displayName);\r\n }\r\n else {\r\n setSelectedRmFeature([]);\r\n }\r\n console.log(\"finalResponse\", finalResponse);\r\n setSelectedRmFeatureData(finalResponse);\r\n }, [finalResponse]);\r\n\r\n useEffect(() => {\r\n fillRoomMoveFilterData();\r\n }, [isIncludeDueIn, isShowAllRoomType])\r\n\r\n useEffect(() => {\r\n handleRmFeaturesMatching();\r\n }, [rmFeatureMatchingDataByResSerNo, roomMoveGridObj.RoomSerNo, rmFeatureMatchingDataByRoomNo])\r\n\r\n useEffect(() => {\r\n if (filterRoomMoveListData.length > 0 && rmFeatureMatchingDataByResSerNo.length > 0 && rmFeatureMatchingDataByRoomNo.length > 0) {\r\n handleRmMatchingPreference();\r\n }\r\n }, [filterRoomMoveListData.length, rmFeatureMatchingDataByResSerNo, rmFeatureMatchingDataByRoomNo\r\n , flag])\r\n\r\n const fillReservationInfoData = () => {\r\n GetReservationInfoData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), reservationObj.ReservationSerNo).then(d => {\r\n setReservationInfoData(d.data);\r\n })\r\n };\r\n\r\n const fillRoomMoveFilterData = () => {\r\n console.log(\"RoomMoveFilterObj\", roomMoveFilterObj);\r\n GetRoomAssignRoomListByFilter(roomMoveFilterObj).then((d) => {\r\n console.log(\"RoomMoveListData\", d.data.ReservationRoomAssignList);\r\n d.data.ReservationRoomAssignList.forEach((x) => { \r\n x[\"Preference\"] = \"N\";\r\n if (x.ArrivalTime != null) {\r\n let tempTime = [];\r\n tempTime = x.ArrivalTime.split(\" \");\r\n tempTime.shift();\r\n x.ArrivalTime = tempTime.toString();\r\n }\r\n })\r\n if (searchString != \"\") {\r\n let tempData = d.data.ReservationRoomAssignList.filter((x) => x.RoomNo.includes(searchString));\r\n setFilterRoomMoveListData(tempData);\r\n }\r\n else {\r\n setFilterRoomMoveListData(d.data.ReservationRoomAssignList);\r\n }\r\n setRoomMoveListData(d.data.ReservationRoomAssignList);\r\n setFlag(!flag)\r\n })\r\n }\r\n\r\n const fillRoomFeaturesMatchingBySerNo = () => {\r\n GetReservationRoomFeatureBySerNo(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n reservationObj.ReservationSerNo\r\n ).then((d) => {\r\n setRmFeatureMatchingDataByResSerNo(d.data);\r\n })\r\n }\r\n\r\n const fillRoomFeaturesMatchingByRoomNo = () => {\r\n GetRoomFeatures(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo)\r\n ).then(d => {\r\n setRmFeatureMatchingDataByRoomNo(d.data.RoomFeatures);\r\n setRmFeatureValuesData(d.data.RoomFeatureValues);\r\n })\r\n }\r\n\r\n const fillRmMoveReasonData = () => {\r\n GetReasonMaster(currUser.ClientSerNo, currUser.PropertySerNo, \"RMOVE\").then((d) => {\r\n let tempData = [];\r\n d.data.map(o => {\r\n tempData = [...tempData, { key: o.ReasonSerNo, value: o.Name }]\r\n })\r\n setRmMoveReasonData(tempData);\r\n })\r\n }\r\n\r\n const fillUpgradeReasonData = () => {\r\n GetReasonMaster(currUser.ClientSerNo, currUser.PropertySerNo, \"UDGRD\").then((d) => {\r\n let tempData = [];\r\n d.data.map(o => {\r\n tempData = [...tempData, { key: o.ReasonSerNo, value: o.Name }]\r\n })\r\n setUpgradeReasonData(tempData);\r\n })\r\n }\r\n\r\n const fillRmTypeSequence = () => {\r\n manageReservationIndicator(currUser.ClientSerNo, currUser.PropertySerNo, reservationObj.ReservationSerNo\r\n ).then(d => {\r\n console.log(\"RMS\", d.data);\r\n setRoomTypeData(d.data);\r\n setRoomMoveObj((prev) => ({ ...prev, FromRoomSerNo: d.data.RoomSerNo }));\r\n })\r\n }\r\n\r\n const handleRoomMove = () => {\r\n console.log(roomMoveObj);\r\n let IsPageValid = isValidData();\r\n if (IsPageValid) {\r\n if (roomMoveObj.ToRoomSerNo != 0) {\r\n ReservationroomMove(roomMoveObj).then((d => {\r\n if (d.data.Code == \"success\") {\r\n alert(d.data.Message);\r\n }\r\n fillRoomMoveFilterData();\r\n fillReservationInfoData();\r\n fillRmTypeSequence();\r\n setRoomNoAndType({});\r\n setIndex();\r\n renderChild();\r\n }))\r\n }\r\n else {\r\n alert(\"Select Room No which you are willing to transfer.\");\r\n }\r\n }\r\n else {\r\n alert(\"One or more field has an invalid value. Please check and proceed again.\")\r\n }\r\n }\r\n\r\n const isValidData = () => {\r\n let isValid = true;\r\n if (roomMoveObj.RoomMoveReasonSerNo == 0) {\r\n isValid = false;\r\n setRoomMoveValidation(prev => ({ ...prev, RoomMoveReasonSerNo: \"Invalid Input\" }));\r\n }\r\n if (roomTypeData.RoomTypeSequence !== roomMoveGridObj.RoomTypeSequence && roomMoveGridObj.RoomTypeSequence != undefined) {\r\n if (roomMoveObj.UpDownGradeReasonSerNo === 0) {\r\n isValid = false;\r\n setRoomMoveValidation(prev => ({ ...prev, UpDownGradeReasonSerNo: \"Invalid Input\" }));\r\n }\r\n }\r\n return isValid;\r\n }\r\n\r\n const handleRmFeaturesMatching = () => {\r\n\r\n if (rmFeatureMatchingDataByResSerNo.length > 0 && rmFeatureMatchingDataByRoomNo.length > 0) {\r\n let tempSerNo = [];\r\n let tempRoomNo = [];\r\n let finalArr = [];\r\n rmFeatureMatchingDataByResSerNo.forEach((x) => {\r\n tempSerNo.push(x);\r\n })\r\n rmFeatureMatchingDataByRoomNo.forEach((x) => {\r\n tempRoomNo.push(x);\r\n })\r\n let tempArr = tempRoomNo.filter((x) => x.RoomSerNo === roomMoveGridObj.RoomSerNo);\r\n for (let i = 1; i <= tempSerNo.length; i++) {\r\n if (tempArr.some((u) => u.RoomFeatureValueSerNo === tempSerNo[i - 1].RoomFeatureValueSerNo && u.RoomFeatureSerNo === tempSerNo[i - 1].RoomFeatureSerNo)) {\r\n tempSerNo[i - 1][\"Match\"] = 0;\r\n finalArr.push(tempSerNo[i - 1]);\r\n let x = tempArr.find((u) => u.RoomFeatureValueSerNo === tempSerNo[i - 1].RoomFeatureValueSerNo && u.RoomFeatureSerNo === tempSerNo[i - 1].RoomFeatureSerNo)\r\n tempArr.splice(tempArr.indexOf(x), 1);\r\n tempSerNo.splice(i - 1, 1);\r\n i--;\r\n }\r\n }\r\n for (let i in tempSerNo) {\r\n tempSerNo[i][\"Match\"] = 1;\r\n let temp = tempSerNo[i]\r\n finalArr.push(temp);\r\n }\r\n for (let i in tempArr) {\r\n for (let j in rmFeatureValuesData) {\r\n if (tempArr[i].RoomFeatureValueSerNo == rmFeatureValuesData[j].RoomFeatureValueSerNo) {\r\n tempArr[i][\"DisplayName\"] = rmFeatureValuesData[j].DisplayName\r\n tempArr[i][\"Match\"] = 2;\r\n let temp = tempArr[i]\r\n finalArr.push(temp);\r\n }\r\n }\r\n }\r\n setRmMatchedArr(finalArr);\r\n }\r\n // else {\r\n // setRmMatchedArr([]);\r\n // }\r\n else if (rmFeatureMatchingDataByResSerNo.length == 0 && rmFeatureMatchingDataByRoomNo.length > 0) {\r\n\r\n //console.log(\"ResSerNo length is equal to 0\");\r\n let tempRoomNoArr = [];\r\n let finalArray = [];\r\n rmFeatureMatchingDataByRoomNo.forEach((x) => {\r\n tempRoomNoArr.push(x);\r\n })\r\n let tempArr = tempRoomNoArr.filter((x) => x.RoomSerNo === roomMoveGridObj.RoomSerNo);\r\n for (let i in tempArr) {\r\n for (let j in rmFeatureValuesData) {\r\n if (tempArr[i].RoomFeatureValueSerNo == rmFeatureValuesData[j].RoomFeatureValueSerNo) {\r\n tempArr[i][\"DisplayName\"] = rmFeatureValuesData[j].DisplayName\r\n tempArr[i][\"Match\"] = 2;\r\n let temp = tempArr[i]\r\n finalArray.push(temp);\r\n }\r\n }\r\n }\r\n setRmMatchedArr(finalArray);\r\n }\r\n }\r\n\r\n const handleRmMatchingPreference = () => {\r\n let temp = [];\r\n for (let i = rmFeatureMatchingDataByResSerNo.length; i > 0; i--) {\r\n for (let j in filterRoomMoveListData) {\r\n let count = 0;\r\n let data = rmFeatureMatchingDataByRoomNo.filter((y) => y.RoomSerNo == filterRoomMoveListData[j].RoomSerNo)\r\n for (let k in rmFeatureMatchingDataByResSerNo) {\r\n if (data.some(o => (o.RoomFeatureSerNo == rmFeatureMatchingDataByResSerNo[k].RoomFeatureSerNo && o.RoomFeatureValueSerNo == rmFeatureMatchingDataByResSerNo[k].RoomFeatureValueSerNo))) {\r\n count += 1;\r\n\r\n }\r\n if (parseInt(k) === rmFeatureMatchingDataByResSerNo.length - 1) {\r\n if (count === i) {\r\n if (count === rmFeatureMatchingDataByResSerNo.length) {\r\n let obj = filterRoomMoveListData[j]\r\n obj[\"Preference\"] = \"F\"\r\n temp.push(obj);\r\n } else {\r\n let obj = filterRoomMoveListData[j]\r\n obj[\"Preference\"] = \"P\"\r\n temp.push(obj);\r\n }\r\n }\r\n }\r\n\r\n }\r\n }\r\n }\r\n for (let i in filterRoomMoveListData) {\r\n if (!temp.some((x) => x.RoomSerNo == filterRoomMoveListData[i].RoomSerNo)) {\r\n let obj = filterRoomMoveListData[i]\r\n obj[\"Preference\"] = \"N\"\r\n temp.push(obj)\r\n }\r\n }\r\n console.log(\"temprmmatching\", temp);\r\n if (searchString != \"\") {\r\n let tempData = temp.filter((x) => x.RoomNo.includes(searchString))\r\n setFilterRoomMoveListData(tempData);\r\n }\r\n else {\r\n setFilterRoomMoveListData(temp);\r\n }\r\n }\r\n\r\n\r\n const handleOnSearchChange = (v) => {\r\n setSearchString(v);\r\n let tempData = roomMoveListData.filter((x) => x.RoomNo.includes(v))\r\n setFilterRoomMoveListData(tempData);\r\n }\r\n\r\n const handleResetFilters = () => {\r\n setSelectedFloor([]);\r\n setSelectedHKStatus([]);\r\n setRoomMoveFilterObj({ ...roomMoveFilterObj, HKStatusFilter: null, FloorFilter: null, RoomFeatureFilter: null })\r\n setSelectedBedType({ key: 0, value: \"Select\" });\r\n setSelectedSmokingType({ key: 0, value: \"Select\" });\r\n setSelectedRmFeature([]);\r\n setSelectedRmFeatureData([]);\r\n setFinalResponse([]);\r\n }\r\n\r\n const handleBedTypeChange = (item) => {\r\n setSelectedBedType(item);\r\n let obj = roomFeatureData.RoomFeatureValues.find((f) => f.key == item.key);\r\n if (obj) {\r\n obj.DisplayName = item.value;\r\n obj.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n obj.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n let fr = [...finalResponse];\r\n let exObj = fr.find((x) => x.RoomFeatureSerNo == obj.RoomFeatureSerNo);\r\n console.log(exObj);\r\n if (exObj) {\r\n let index = fr.indexOf(exObj);\r\n console.log(index);\r\n fr.splice(index, 1);\r\n }\r\n fr.push(obj);\r\n setFinalResponse(fr);\r\n } else {\r\n let fr = [...finalResponse];\r\n let filterRes = fr.filter((x) => x.RoomFeatureTypeSerNo != \"BDT\");\r\n setFinalResponse(filterRes);\r\n }\r\n };\r\n\r\n\r\n const handleSmokingTypeChange = (item) => {\r\n setSelectedSmokingType(item);\r\n let obj = roomFeatureData.RoomFeatureValues.find((f) => f.key == item.key);\r\n if (obj) {\r\n obj.DisplayName = item.value;\r\n obj.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n obj.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n let fr = [...finalResponse];\r\n\r\n let exObj = fr.find((x) => x.RoomFeatureSerNo == obj.RoomFeatureSerNo);\r\n if (exObj) {\r\n let index = fr.indexOf(exObj);\r\n fr.splice(index, 1);\r\n }\r\n fr.push(obj);\r\n setFinalResponse(fr);\r\n } else {\r\n let fr = [...finalResponse];\r\n let filterRes = fr.filter((x) => x.RoomFeatureTypeSerNo != \"SMK\");\r\n setFinalResponse(filterRes);\r\n }\r\n };\r\n\r\n const handleFilterCheckBoxClick = (e) => {\r\n console.log(e.target.checked);\r\n if (e.target.checked) {\r\n let obj = roomFeatureData.RoomFeatureValues.find(\r\n (f) => f.RoomFeatureSerNo == e.target.id && f.Value == \"1\"\r\n );\r\n obj.checked = true;\r\n let displayName = roomFeatureData.RoomFeatures.find(\r\n (f1) => f1.RoomFeatureSerNo == obj.RoomFeatureSerNo\r\n );\r\n obj.DisplayName = displayName.Name;\r\n obj.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n obj.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n let fr = [...finalResponse];\r\n fr.push(obj);\r\n setFinalResponse(fr);\r\n } else {\r\n let filterRes = finalResponse.filter(\r\n (x) => x.RoomFeatureSerNo != e.target.id\r\n );\r\n setFinalResponse(filterRes);\r\n }\r\n };\r\n\r\n const RoomFeaturesInfoTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    Lorem Ipsum demo Lorem Ipsum demo Lorem Ipsum demo Lorem Ipsum demo Lorem Ipsum demo
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const RoomTypeTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n Sea view, Near Elevator,
    \r\n Inter-Connected, Twin Bed, Smoking Room\r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n

    Room Move

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {showRoomMoveFilterModal ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Filters

    \r\n
    \r\n
    \r\n Reset\r\n {\r\n fillRoomMoveFilterData()\r\n setShowRoomMoveFilterModal(!showRoomMoveFilterModal)\r\n }}>Apply\r\n setShowRoomMoveFilterModal(!showRoomMoveFilterModal)}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\" \"}\r\n {/* filter-elements-section */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* { }}> \r\n */}\r\n {\r\n let temp = \"\";\r\n setSelectedHKStatus(item);\r\n if (item.length > 0) {\r\n item.map((d) => {\r\n temp = temp + d + \",\";\r\n setRoomMoveFilterObj((prev) => ({\r\n ...prev,\r\n HKStatusFilter: temp,\r\n }));\r\n });\r\n } else {\r\n setRoomMoveFilterObj((prev) => ({\r\n ...prev,\r\n HKStatusFilter: null,\r\n }));\r\n }\r\n }}\r\n >\r\n {\r\n setRoomMoveFilterObj((prev) => ({\r\n ...prev,\r\n HKStatusFilter: null,\r\n }));\r\n setSelectedHKStatus([]);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* { }}> */}\r\n console.log(\"Room Features\", v)}\r\n onClick={() =>\r\n setShowRoomFeaturesModal(!showRoomFeaturesModal)\r\n }\r\n >\r\n Room Features\r\n \r\n {\r\n setShowRoomFeaturesModal(!showRoomFeaturesModal);\r\n }}\r\n >\r\n \r\n \r\n {\r\n setRoomMoveFilterObj((prev) => ({\r\n ...prev,\r\n RoomFeatureFilter: \"\",\r\n }));\r\n setSelectedRmFeatureData([]);\r\n setSelectedRmFeature([]);\r\n setSelectedBedType({ key: 0 });\r\n setSelectedSmokingType({ key: 0 });\r\n setFinalResponse([])\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n handleBedTypeChange(item);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* { }}> */}\r\n {\r\n handleSmokingTypeChange(item);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* { }}> */}\r\n {\r\n console.log(item);\r\n let temp = \"\";\r\n setSelectedFloor(item);\r\n if (item.length > 0) {\r\n item.map((d) => {\r\n temp = temp + d + \",\";\r\n setRoomMoveFilterObj((prev) => ({\r\n ...prev,\r\n FloorFilter: temp,\r\n }));\r\n });\r\n } else {\r\n setRoomMoveFilterObj((prev) => ({\r\n ...prev,\r\n FloorFilter: null,\r\n }));\r\n }\r\n }}\r\n >\r\n {\r\n setRoomMoveFilterObj((prev) => ({\r\n ...prev,\r\n FloorFilter: null,\r\n }));\r\n setSelectedFloor([]);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/*
    \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Adjoining Rooms Only\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Interconnecting Rooms Only\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Accessible Room Only\r\n \r\n
    \r\n
    */}\r\n {roomFeatureData.RoomFeatures.map((o) =>\r\n o.RoomFeatureTypeSerNo == \"ADJ\" ? (\r\n
    \r\n
    \r\n handleFilterCheckBoxClick(e)}\r\n checked={\r\n finalResponse.filter(\r\n (x) =>\r\n x.RoomFeatureSerNo == o.RoomFeatureSerNo\r\n ).length > 0\r\n ? true\r\n : false\r\n }\r\n >\r\n Adjoining Rooms Only \r\n
    \r\n
    \r\n ) : o.RoomFeatureTypeSerNo == \"INCN\" ? (\r\n
    \r\n
    \r\n handleFilterCheckBoxClick(e)}\r\n checked={\r\n finalResponse.filter(\r\n (x) =>\r\n x.RoomFeatureSerNo == o.RoomFeatureSerNo\r\n ).length > 0\r\n ? true\r\n : false\r\n }\r\n >\r\n Interconnecting Rooms Only\r\n \r\n
    \r\n
    \r\n ) : o.RoomFeatureTypeSerNo == \"ARM\" ? (\r\n
    \r\n
    \r\n handleFilterCheckBoxClick(e)}\r\n className=\"mrgn-tp15\"\r\n checked={\r\n finalResponse.filter(\r\n (x) =>\r\n x.RoomFeatureSerNo == o.RoomFeatureSerNo\r\n ).length > 0\r\n ? true\r\n : false\r\n }\r\n >\r\n Accessible Room Only\r\n \r\n
    \r\n
    \r\n ) : (\r\n <>\r\n )\r\n )}\r\n
    \r\n
    \r\n
    \r\n {/*
    \r\n
    \r\n console.log(v)}>Room No\r\n \r\n
    \r\n
    */}\r\n
    \r\n
    \r\n ) : null}\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Room Features ({rmMatchedArr.filter((x) => x.Match == 0).length}/{rmMatchedArr.length})\r\n \r\n \r\n \r\n
    \r\n
    \r\n
      \r\n {\r\n rmMatchedArr.map((d) => {\r\n return (\r\n\r\n d.Match === 0 ?\r\n
    • \r\n {d.DisplayName}\r\n
    • \r\n :\r\n d.Match === 1 ?\r\n
    • \r\n {d.DisplayName}\r\n
    • \r\n :\r\n d.Match === 2 ?\r\n
    • \r\n {d.DisplayName}\r\n
    • \r\n :\r\n <>\r\n )\r\n })\r\n }\r\n {/*
    • \r\n Non-Smoking Room\r\n
    • \r\n
    • \r\n Twin Bed\r\n
    • \r\n
    • \r\n Inter-Connected\r\n
    • \r\n
    • \r\n Inter-Connected\r\n
    • */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n
    \r\n {\r\n setIsIncludeDueIn(ischecked);\r\n if (ischecked) {\r\n setRoomMoveFilterObj((prev) => ({ ...prev, IsIncludeDueIn: ischecked }))\r\n }\r\n else {\r\n setRoomMoveFilterObj((prev) => ({ ...prev, IsIncludeDueIn: false }))\r\n }\r\n }}>\r\n Include Due In Rooms\r\n \r\n {\r\n setIsShowAllRoomType(ischecked);\r\n if (ischecked) {\r\n setRoomMoveFilterObj((prev) => ({ ...prev, IsShowAllRoomType: ischecked }))\r\n }\r\n else {\r\n setRoomMoveFilterObj((prev) => ({ ...prev, IsShowAllRoomType: false }))\r\n }\r\n }}>\r\n Show all Room Types\r\n \r\n
    setShowRoomMoveFilterModal(!showRoomMoveFilterModal)}>\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n {\r\n filterRoomMoveListData.map((d, index) => {\r\n return (\r\n {\r\n console.log(d);\r\n setRoomMoveGridObj(d);\r\n setIndex(index);\r\n setRoomNoAndType((prev) => ({ ...prev, RoomNo: d.RoomNo, RoomTypeName: d.RoomTypeName }));\r\n setRoomMoveObj((prev) => ({ ...prev, ToRoomSerNo: d.RoomSerNo }))\r\n if (d.ReservationSerNo == \"\") {\r\n setRoomMoveObj((prev) => ({ ...prev, ToReservationSerNo: 0 }))\r\n }\r\n else {\r\n setRoomMoveObj((prev) => ({ ...prev, ToReservationSerNo: parseInt(d.ReservationSerNo) }));\r\n }\r\n }}>\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n )\r\n })\r\n }\r\n \r\n
    Room No.\r\n \r\n Room Type\r\n \r\n HK StatusArv. TimeRes. statusAssigned toAction
    \r\n {d.Preference == \"P\" ? (\r\n
    \r\n ) : d.Preference == \"F\" ? (\r\n
    \r\n ) : d.Preference == \"N\" ? (\r\n
    \r\n ) : (\r\n <>\r\n )}\r\n
    \r\n {d.RoomNo}\r\n {d.RoomTypeName}{d.HKStatusCode}{d.ArrivalTime}\r\n {d.ReservationStatus === \"\" ? (<>) :\r\n ()\r\n }\r\n {d.ReservationStatus}\r\n\r\n {d.GuestName}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Move
    \r\n
    \r\n {roomTypeData.RoomNo} {roomTypeData.RoomTypeName}\r\n \r\n {roomNoAndType.RoomNo} {roomNoAndType.RoomTypeName}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedRmMoveReason(item);\r\n setRoomMoveObj((prev) => ({ ...prev, RoomMoveReasonSerNo: item.key }))\r\n }}>\r\n
    \r\n { setRoomMoveObj((prev) => ({ ...prev, RoomMoveNote: v })) }}>Note (Room Move)\r\n {/*
    */}\r\n {/* {\r\n roomTypeData.RoomTypeSerNo != roomMoveGridObj.RoomTypeSerNo && roomMoveGridObj.RoomTypeSerNo != undefined ? */}\r\n <>\r\n
    \r\n roomMoveGridObj.RoomTypeSequence && roomMoveGridObj.RoomTypeSequence != undefined ? \"Downgrade Reason\" : \"Upgrade Reason\" : \"Upgrade Reason\"}\r\n // label=\"Upgrade / Downgrade Reason\"\r\n onChange={(item) => {\r\n setSelectedUpgradeReason(item)\r\n setRoomMoveObj((prev) => ({ ...prev, UpDownGradeReasonSerNo: item.key }))\r\n }}>\r\n \r\n
    \r\n { setRoomMoveObj((prev) => ({ ...prev, UpDownGradeNote: v })) }}>Note (Upgrade / Downgrade)\r\n \r\n \r\n {/* :\r\n <>\r\n
    \r\n {\r\n setSelectedUpgradeReason(item)\r\n setRoomMoveObj((prev) => ({ ...prev, UpDownGradeReasonSerNo: item.key }))\r\n }}>\r\n \r\n
    \r\n { setRoomMoveObj((prev) => ({ ...prev, UpDownGradeNote: v })) }}>Note (Upgrade / Downgrade)\r\n \r\n */}\r\n {/* } */}\r\n {/*
    \r\n {\r\n setSelectedUpgradeReason(item)\r\n setRoomMoveObj((prev) => ({ ...prev, UpDownGradeReasonSerNo: item.key }))\r\n }}>\r\n \r\n
    \r\n { setRoomMoveObj((prev) => ({ ...prev, UpDownGradeNote: v })) }}>Note (Upgrade / Downgrade)\r\n */}\r\n\r\n {/* {\r\n setSelectedUpgradeReason(item)\r\n setRoomMoveObj((prev) => ({ ...prev, UpDownGradeReasonSerNo: item.key }))\r\n }}> */}\r\n {/*
    */}\r\n
    \r\n
    \r\n
    \r\n handleRoomMove()} className=\"w100p m0 \">\r\n Move Room\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {showRoomFeaturesModal ? (\r\n setShowRoomFeaturesModal(false)}\r\n handleOnSelect={(v) => {\r\n setSelectedRmFeatureData(v);\r\n setFinalResponse(v);\r\n //let tempSerNo = [];\r\n let tempValueSerNo = [];\r\n let displayName = [];\r\n for (let i = 0; i < v.length; i++) {\r\n // tempSerNo = tempSerNo + v[i].RoomFeatureSerNo + \",\"\r\n //console.log(\"Tempvalueserno\",tempValueSerNo);\r\n tempValueSerNo = tempValueSerNo + v[i].RoomFeatureValueSerNo + \",\";\r\n if (v[i].RoomFeatureTypeSerNo == \"BDT\") {\r\n setSelectedBedType({ key: v[i].key, value: v[i].Value });\r\n }\r\n if (v[i].RoomFeatureTypeSerNo == \"SMK\") {\r\n setSelectedSmokingType({ key: v[i].key, value: v[i].Value });\r\n }\r\n\r\n setRoomMoveFilterObj((prev) => ({\r\n ...prev,\r\n RoomFeatureFilter: tempValueSerNo,\r\n }));\r\n if (v.length <= 2) {\r\n displayName.push(v[i].DisplayName);\r\n }\r\n }\r\n\r\n if (v.length > 2) {\r\n displayName.push(v[0].DisplayName, v[1].DisplayName + \"...\");\r\n }\r\n setSelectedRmFeature(displayName);\r\n setShowRoomFeaturesModal(false);\r\n }}\r\n >\r\n ) : (\r\n <>\r\n )}\r\n
    \r\n )\r\n}","import React, { useState, useEffect } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport {\r\n InnTextarea,\r\n InnModalPopup,\r\n InnTextbox,\r\n InnPrimaryButton,\r\n InnSingleSelectDropdown,\r\n InnSingleDateSelection,\r\n InnTooltip\r\n} from \"../../../../component\"\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { AddReservation, cmbGetMarketMaster, cmbGetSourceMaster, GetDefaultPseudoRateDetails, GetPropertyMaster, GetPropertyParameterByKeys, GetRateAndPackageRate } from \"../../../../services/reservationService\";\r\nimport { CompanyModalPopup } from \"./companyModalPopup\";\r\nimport { useAlert } from \"../../../../utils/hooks/useAlert\";\r\nimport { BillingInstructionModalPopup } from \"./billingInstructionModalPopup\";\r\nimport { GuestModalPopup } from \"./guestModalPopup\";\r\nimport moment from \"moment\";\r\n\r\nexport default function PayMasterModalPopup(props) {\r\n const currUser = useSelector(currentUser);\r\n const { innkeyAlert } = useAlert();\r\n const dispatch = useDispatch();\r\n\r\n const [newPayMaster, setNewPayMaster] = useState({\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"PropertyName\": \"\",\r\n \"ReservationSerNo\": 0,\r\n \"ArrivalDate\": \"\",\r\n \"DepartureDate\": \"\",\r\n \"Nights\": 1,\r\n \"Rooms\": 1,\r\n \"Adult\": 1,\r\n \"NewAdult\": 1,\r\n \"Child\": 0,\r\n \"RoomTypeName\": \"Select\",\r\n \"RoomTypeSerNo\": 0,\r\n \"ProfileSerNo\": \"\",\r\n \"CompanyProfileSerNo\": 0,\r\n \"CompanyHasRateMapping\": false,\r\n \"AgentProfileSerNo\": 0,\r\n \"AgentHasRateMapping\": false,\r\n \"CompanyRateGroupSerNo\": 0,\r\n \"AgentRateGroupSerNo\": 0,\r\n \"Agent\": \"\",\r\n \"Company\": \"\",\r\n \"RateSerNo\": \"\",\r\n \"RateCodeName\": \"\",\r\n \"ChargeableRoomTypeSerNo\": 0,\r\n \"ChargeableRoomTypeName\": \"\",\r\n \"ReservationTypeSerNo\": 1,\r\n \"ReservationType\": \"\",\r\n \"IsInclusive\": false,\r\n \"MarketSerNo\": \"0\",\r\n \"SourceSerNo\": \"0\",\r\n \"BillingInstruction\": \"\",\r\n \"BookingRefNo\": \"\",\r\n \"RoomSerNo\": \"\",\r\n \"ReservationStatus\": \"DIN\",\r\n \"IsArrivalOnSameDay\": true,\r\n \"IsDepartureOnSameDay\": true,\r\n \"ActualArrivalTime\": null,\r\n \"ActualDepartureTime\": null,\r\n \"CallingFrom\": \"\",\r\n \"RoomRate\": \"\",\r\n \"NewRoomRate\": \"\",\r\n \"IsInclusive\": false,\r\n \"IsComplimentary\": false,\r\n \"IsHouseUse\": false,\r\n \"IsDiscloseRate\": true,\r\n \"IsPrintRate\": true,\r\n \"Discountable\": false,\r\n \"IsRateMappedToProfile\": true,\r\n \"UpgradeReason\": \"\",\r\n \"IsUpSell\": false,\r\n \"UpSellRemarks\": \"\",\r\n \"Specials\": [],\r\n \"RoomFeatures\": [],\r\n \"RateCodeDetail\": {},\r\n \"NoOfDailyRate\": 1,\r\n \"BillingInstructionSerNo\": 0,\r\n \"IsPMReservation\": true\r\n });\r\n\r\n const [newPayMasterValidation, setNewPayMasterValidation] = useState({\r\n \"Property\": \"\",\r\n \"ArrivalDate\": \"\",\r\n \"DepartureDate\": \"\",\r\n \"Nights\": \"\",\r\n \"Rooms\": \"\",\r\n \"Adult\": \"\",\r\n \"Child\": \"\",\r\n \"RoomType\": \"\",\r\n \"Profile\": \"\",\r\n \"CompanyProfileSerNo\": \"\",\r\n \"AgentProfileSerNo\": \"\",\r\n \"RateSerNo\": \"\",\r\n \"ChargeableRoomTypeSerNo\": \"\",\r\n \"ReservationTypeSerNo\": \"\",\r\n \"IsInclusive\": \"\",\r\n \"Market\": \"\",\r\n \"Source\": \"\",\r\n \"BillingInstruction\": \"\",\r\n \"BookingRefNo\": \"\",\r\n \"RoomSerNo\": \"\",\r\n \"ReservationStatus\": \"DIN\",\r\n \"IsArrivalOnSameDay\": \"\",\r\n \"IsDepartureOnSameDay\": \"\",\r\n \"ActualArrivalTime\": null,\r\n \"ActualDepartureTime\": null,\r\n \"Specials\": [],\r\n \"RoomFeatures\": [],\r\n \"RateCodeDetail\": {}\r\n });\r\n\r\n const [propertyData, setPropertyData] = useState([]);\r\n const [marketData, setMarketData] = useState([]);\r\n const [sourceData, setSourceData] = useState([]);\r\n const [selectedCompany, setSelectedCompany] = useState({});\r\n const [selectedGuest, setSelectedGuest] = useState({});\r\n const [showCompanyModal, setShowCompanyModal] = useState(false);\r\n const [showGuestModal, setShowGuestModal] = useState(false);\r\n const [showBillingInstructionModal, setShowBillingInstructionModal] = useState(false);\r\n const [showAgentModal, setShowAgentModal] = useState(false);\r\n const [selectedAgent, setSelectedAgent] = useState({});\r\n const [IsValidNights, setIsValidNights] = useState(true);\r\n\r\n\r\n useEffect(() => {\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo),\r\n 'BusinessDate').then((d) => {\r\n console.log(d.data);\r\n let obj = d.data.find(x => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n let arrDate = moment(obj.value).format(\"DD-MMM-YYYY\");\r\n let dt = new Date(obj.value);\r\n dt.setDate(dt.getDate() + 1);\r\n dt = moment(dt).format(\"DD-MMM-YYYY\");\r\n setNewPayMaster(prev => ({ ...prev, ArrivalDate: arrDate, DepartureDate: dt }));\r\n }\r\n })\r\n GetPropertyMaster(currUser.ClientSerNo).then((d) => {\r\n let propertyData = [{\r\n \"key\": \"0\",\r\n \"value\": \"Select\"\r\n }, ...d.data];\r\n\r\n setPropertyData(propertyData);\r\n propertyData.map((x) => {\r\n if (x.key == newPayMaster.PropertySerNo) {\r\n setNewPayMaster(prev => ({ ...prev, PropertyName: x.value }))\r\n }\r\n })\r\n })\r\n cmbGetMarketMaster(currUser.ClientSerNo, newPayMaster.PropertySerNo).then((d) => {\r\n setMarketData(d.data);\r\n setNewPayMaster(prev => ({ ...prev, MarketSerNo: 0 }));\r\n })\r\n cmbGetSourceMaster(currUser.ClientSerNo, newPayMaster.PropertySerNo).then((d) => {\r\n setSourceData(d.data);\r\n setNewPayMaster(prev => ({ ...prev, SourceSerNo: 0 }));\r\n })\r\n }, [])\r\n\r\n useEffect(() => {\r\n cmbGetMarketMaster(currUser.ClientSerNo, newPayMaster.PropertySerNo).then((d) => {\r\n setMarketData(d.data);\r\n })\r\n cmbGetSourceMaster(currUser.ClientSerNo, newPayMaster.PropertySerNo).then((d) => {\r\n setSourceData(d.data);\r\n })\r\n }, [newPayMaster.PropertySerNo])\r\n\r\n useEffect(() => {\r\n if (newPayMaster.ArrivalDate && newPayMaster.DepartureDate) {\r\n GetDefaultPseudoRateDetails(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo),\r\n moment(new Date(newPayMaster.ArrivalDate)).format(\"DD-MMM-yyyy\"),\r\n moment(new Date(newPayMaster.DepartureDate)).format(\"DD-MMM-YYYY\")).then((d) => {\r\n setNewPayMaster((prev) => ({\r\n ...prev, RoomSerNo: d.data[0].RoomSerNo, RoomTypeName: d.data[0].RoomTypeName, RoomName: d.data[0].RoomName,\r\n RoomTypeSerNo: d.data[0].RoomTypeSerNo, RateSerNo: d.data[0].RateSerNo, RateCodeName: d.data[0].RateName,\r\n ChargeableRoomTypeName: d.data[0].RoomTypeName, ChargeableRoomTypeSerNo: d.data[0].RoomTypeSerNo\r\n }))\r\n reCalculateRate(newPayMaster.ClientSerNo, newPayMaster.PropertySerNo, d.data[0].RateSerNo,\r\n d.data[0].RoomTypeSerNo, newPayMaster.ArrivalDate, newPayMaster.DepartureDate,\r\n 1, 0, newPayMaster.CompanyProfileSerNo, newPayMaster.AgentProfileSerNo\r\n )\r\n })\r\n }\r\n }, [newPayMaster.ArrivalDate])\r\n\r\n //#region Tooltip & Dummy Data\r\n const BillingInstructionTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    BILLING INSTRUCTION
    \r\n\r\n
    \r\n {newPayMaster.BillingInstruction}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n const selectData = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n //#endregion\r\n\r\n //#region custom functions\r\n\r\n const reCalculateRate = (ClientSerNo, PropertySerNo, RateSerNo, ChargeableRoomTypeSerNo, ArrivalDate, DepartureDate,\r\n Adult, Child, CompanyProfileSerNo, AgentProfileSerNo) => {\r\n GetRateAndPackageRate(ClientSerNo, PropertySerNo, 0, true, RateSerNo, ChargeableRoomTypeSerNo, ArrivalDate,\r\n DepartureDate, Adult, Child, 0, CompanyProfileSerNo, AgentProfileSerNo).then((d) => {\r\n setNewPayMaster((prev) => ({ ...prev, RateCodeDetail: d.data }))\r\n console.log(\"CalculateRate>>\", d.data);\r\n })\r\n }\r\n\r\n const removeCompany = () => {\r\n setSelectedCompany(prev => ({ ...prev, CompanyName: \"\" }));\r\n setShowCompanyModal(false);\r\n setNewPayMaster(prev => ({\r\n ...prev, Company: \"\", CompanyProfileSerNo: 0,\r\n CompanyHasRateMapping: false, CompanyRateGroupSerNo: 0\r\n }));\r\n }\r\n const removeAgent = () => {\r\n setSelectedAgent(prev => ({ ...prev, CompanyName: \"\" }));\r\n setShowAgentModal(false);\r\n setNewPayMaster(prev => ({\r\n ...prev, Agent: \"\", AgentProfileSerNo: 0,\r\n AgentHasRateMapping: false, AgentRateGroupSerNo: 0\r\n }));\r\n }\r\n const handleArrivalDateChange = (value) => {\r\n let nights = \"1\";\r\n setNewPayMaster(prev => ({ ...prev, ArrivalDate: value }));\r\n\r\n if (IsValidNights) {\r\n nights = newPayMaster.Nights\r\n }\r\n else {\r\n setNewPayMaster(prev => ({ ...prev, Nights: 1 }));\r\n setNewPayMasterValidation(prev => ({ ...prev, Nights: \"\" }));\r\n setIsValidNights(true);\r\n }\r\n\r\n let dt = new Date(value);\r\n dt.setDate(dt.getDate() + parseInt(nights));\r\n dt = moment(dt).format(\"DD-MMM-YYYY\");\r\n setNewPayMaster(prev => ({ ...prev, DepartureDate: dt }));\r\n reCalculateRate(newPayMaster.ClientSerNo, newPayMaster.PropertySerNo, newPayMaster.RateSerNo, newPayMaster.RoomTypeSerNo,\r\n newPayMaster.ArrivalDate, newPayMaster.DepartureDate, newPayMaster.Adult, newPayMaster.Child,\r\n newPayMaster.CompanyProfileSerNo, newPayMaster.AgentProfileSerNo\r\n )\r\n }\r\n\r\n const handleNightsChange = (value) => {\r\n console.log(value);\r\n if (!isNaN(+value) && parseInt(value) >= 0) {\r\n let dt = new Date(newPayMaster.ArrivalDate);\r\n dt.setDate(dt.getDate() + parseInt(value));\r\n dt = moment(dt).format(\"DD-MMM-YYYY\");\r\n setNewPayMaster(prev => ({ ...prev, DepartureDate: dt }));\r\n setNewPayMaster(prev => ({ ...prev, Nights: parseInt(value) }));\r\n setNewPayMasterValidation(prev => ({ ...prev, Nights: \"\" }));\r\n setIsValidNights(true)\r\n }\r\n else {\r\n setNewPayMasterValidation(prev => ({ ...prev, Nights: \"Invalid input\" }));\r\n setIsValidNights(false)\r\n setNewPayMaster(prev => ({ ...prev, Nights: value }));\r\n }\r\n reCalculateRate(newPayMaster.ClientSerNo, newPayMaster.PropertySerNo, newPayMaster.RateSerNo, newPayMaster.RoomTypeSerNo,\r\n newPayMaster.ArrivalDate, newPayMaster.DepartureDate, newPayMaster.Adult, newPayMaster.Child,\r\n newPayMaster.CompanyProfileSerNo, newPayMaster.AgentProfileSerNo\r\n )\r\n }\r\n const handleDepartureDateChange = (value) => {\r\n console.log(new Date(value));\r\n console.log(new Date(newPayMaster.ArrivalDate));\r\n\r\n let dt = (new Date(value) - new Date(newPayMaster.ArrivalDate)) / (1000 * 60 * 60 * 24);\r\n let tempDeptDate;\r\n console.log(dt);\r\n if (dt < 0) {\r\n setNewPayMaster(prev => ({ ...prev, Nights: 1 }));\r\n alert(\"Invalid departure date.\");\r\n tempDeptDate = new Date(newPayMaster.ArrivalDate);\r\n tempDeptDate.setDate(tempDeptDate.getDate() + 1);\r\n tempDeptDate = moment(tempDeptDate).format(\"DD-MMM-YYYY\");\r\n setNewPayMaster(prev => ({ ...prev, DepartureDate: tempDeptDate }));\r\n setNewPayMasterValidation(prev => ({ ...prev, Nights: \"\" }));\r\n setIsValidNights(true)\r\n } else {\r\n tempDeptDate = value;\r\n setNewPayMaster(prev => ({ ...prev, DepartureDate: value }));\r\n setNewPayMaster(prev => ({ ...prev, Nights: dt }));\r\n }\r\n reCalculateRate(newPayMaster.ClientSerNo, newPayMaster.PropertySerNo, newPayMaster.RateSerNo, newPayMaster.RoomTypeSerNo,\r\n newPayMaster.ArrivalDate, newPayMaster.DepartureDate, newPayMaster.Adult, newPayMaster.Child,\r\n newPayMaster.CompanyProfileSerNo, newPayMaster.AgentProfileSerNo\r\n )\r\n }\r\n const IsValidPage = () => {\r\n let IsValid = true\r\n if (newPayMaster.PropertySerNo == 0) {\r\n IsValid = false;\r\n setNewPayMasterValidation(prev => ({ ...prev, Property: \"Select Property\" }))\r\n }\r\n else {\r\n setNewPayMasterValidation(prev => ({ ...prev, Property: \"\" }));\r\n }\r\n if (new Date(newPayMaster.ArrivalDate) > new Date(newPayMaster.DepartureDate)) {\r\n IsValid = false;\r\n }\r\n if (isNaN(newPayMaster.Nights) || newPayMaster.Nights == \"\") {\r\n if (newPayMaster.Nights != 0) {\r\n IsValid = false;\r\n }\r\n }\r\n if (isNaN(newPayMaster.Adult) || newPayMaster.Adult == \"\" || newPayMaster.Adult == 0) {\r\n IsValid = false;\r\n }\r\n if (newPayMaster.MarketSerNo == 0) {\r\n IsValid = false;\r\n setNewPayMasterValidation(prev => ({ ...prev, Market: \"Select Market\" }))\r\n }\r\n else {\r\n setNewPayMasterValidation(prev => ({ ...prev, Market: \"\" }))\r\n }\r\n if (newPayMaster.SourceSerNo == 0) {\r\n IsValid = false;\r\n setNewPayMasterValidation(prev => ({ ...prev, Source: \"Select Source\" }))\r\n }\r\n else {\r\n setNewPayMasterValidation(prev => ({ ...prev, Source: \"\" }))\r\n }\r\n if (newPayMaster.RoomTypeSerNo == 0) {\r\n IsValid = false;\r\n }\r\n if (isNaN(newPayMaster.ProfileSerNo) || newPayMaster.ProfileSerNo == \"\") {\r\n IsValid = false;\r\n setNewPayMasterValidation(prev => ({ ...prev, Profile: \"Invalid Input\" }))\r\n }\r\n else {\r\n setNewPayMasterValidation(prev => ({ ...prev, Profile: \"\" }))\r\n }\r\n return IsValid;\r\n }\r\n const handleOnClose = () => {\r\n if (props.OnClose != undefined) {\r\n props.OnClose()\r\n }\r\n else {\r\n console.log(\"handleOnClose is undefined\");\r\n }\r\n }\r\n const handleSaveOnClick = () => {\r\n let IsValid = IsValidPage();\r\n console.log(\"FinalObj>>\", newPayMaster);\r\n if (IsValid) {\r\n AddReservation(newPayMaster).then((d) => {\r\n alert(d.data.Message);\r\n if (d.data.Code == \"200\") {\r\n handleOnClose();\r\n }\r\n })\r\n }\r\n else {\r\n alert(\"One or more field as an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n //#endregion\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n

    Pay Master

    \r\n
    \r\n
    \r\n \r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n if (item.key == 0)\r\n setNewPayMasterValidation(prev => ({ ...prev, Property: \"Select Property\" }));\r\n else\r\n setNewPayMasterValidation(prev => ({ ...prev, Property: \"\" }));\r\n setNewPayMaster(prev => ({ ...prev, PropertySerNo: parseInt(item.key) }));\r\n setNewPayMaster(prev => ({ ...prev, PropertyName: item.value }))\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n Night\r\n \r\n
    \r\n
    \r\n \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n Room\r\n
    \r\n
    \r\n
    \r\n
    \r\n Adult\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Room Type\r\n
    \r\n
    \r\n
    \r\n
    \r\n Room No.\r\n
    \r\n
    \r\n
    \r\n
    \r\n Rate Code\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setShowGuestModal(!showGuestModal)\r\n }}\r\n >\r\n Primary Guest Name*\r\n \r\n setShowGuestModal(!showGuestModal)}\r\n >\r\n \r\n {/* */}\r\n \r\n
    \r\n \r\n Membership No.\r\n \r\n\r\n
    \r\n {\r\n setShowCompanyModal(!showCompanyModal)\r\n }}\r\n >\r\n Company\r\n \r\n \r\n {/* */}\r\n \r\n \r\n
    \r\n
    \r\n {\r\n setShowAgentModal(!showAgentModal)\r\n }}\r\n >\r\n Travel Agent\r\n \r\n \r\n \r\n {/* */}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n if (item.key == 0)\r\n setNewPayMasterValidation(prev => ({ ...prev, Market: \"Select Market\" }))\r\n else\r\n setNewPayMasterValidation(prev => ({ ...prev, Market: \"\" }))\r\n setNewPayMaster(prev => ({ ...prev, MarketSerNo: parseInt(item.key) }))\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n if (item.key == 0)\r\n setNewPayMasterValidation(prev => ({ ...prev, Source: \"Select Source\" }))\r\n else\r\n setNewPayMasterValidation(prev => ({ ...prev, Source: \"\" }))\r\n setNewPayMaster(prev => ({ ...prev, SourceSerNo: parseInt(item.key) }))\r\n }}\r\n >\r\n {/* console.log(item, name)}\r\n > */}\r\n
    \r\n
    \r\n
    \r\n Billing Instruction\r\n\r\n {\r\n if (newPayMaster.ClientSerNo != \"\" && newPayMaster.PropertySerNo != \"\") {\r\n setShowBillingInstructionModal(!showBillingInstructionModal)\r\n } else {\r\n alert(\"Property is not defined.\");\r\n }\r\n }}\r\n >\r\n
    \r\n
      \r\n
    • \r\n {newPayMaster.BillingInstruction}\r\n
    • \r\n
    \r\n \r\n More\r\n \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n \r\n Note\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {showGuestModal ? (\r\n setShowGuestModal(false)}\r\n OnSelect={(v) => {\r\n console.log(\"selected guest \", v);\r\n setSelectedGuest(v);\r\n setShowGuestModal(false);\r\n setNewPayMaster(prev => ({\r\n ...prev, ProfileSerNo: v.ProfileSerNo,\r\n Specials: v.ProfileSpecials, RoomFeatures: v.ProfileRoomFeatures\r\n }));\r\n }} >\r\n \r\n ) : null\r\n }\r\n {\r\n showBillingInstructionModal ? (\r\n setShowBillingInstructionModal(!showBillingInstructionModal)}\r\n handleOnSelection={(v, e) => {\r\n setNewPayMaster(prev => ({ ...prev, BillingInstruction: v, BillingInstructionSerNo: parseInt(e) }));\r\n setShowBillingInstructionModal(!showBillingInstructionModal);\r\n }}\r\n >\r\n ) : null\r\n }\r\n {\r\n showCompanyModal ? (\r\n { setShowCompanyModal(false); }}\r\n OnSelect={(v) => {\r\n console.log(\"company \", v);\r\n if (v.ProfileSerNo == undefined) {\r\n //setSelectedCompany(v);\r\n setSelectedCompany(prev => ({ ...prev, CompanyName: \"\" }));\r\n setNewPayMaster(prev => ({\r\n ...prev, Company: \"\", CompanyProfileSerNo: 0,\r\n CompanyHasRateMapping: false, CompanyRateGroupSerNo: 0\r\n }));\r\n } else {\r\n setSelectedCompany(v);\r\n setNewPayMaster(prev => ({\r\n ...prev, Company: v.CompanyName, CompanyProfileSerNo: v.ProfileSerNo,\r\n CompanyHasRateMapping: v.HasRateMapping, CompanyRateGroupSerNo: v.RateGroupSerNo\r\n }));\r\n }\r\n setShowCompanyModal(false);\r\n }}\r\n >\r\n\r\n \r\n ) : null\r\n }\r\n {\r\n showAgentModal ? (\r\n { setShowAgentModal(false); }}\r\n OnSelect={(v) => {\r\n if (v.ProfileSerNo == undefined) {\r\n //setSelectedAgent(v);\r\n setSelectedAgent(prev => ({ ...prev, CompanyName: \"\" }));\r\n setShowAgentModal(false);\r\n setNewPayMaster(prev => ({\r\n ...prev, Agent: \"\", AgentProfileSerNo: 0,\r\n AgentRateGroupSerNo: 0, AgentHasRateMapping: false\r\n }));\r\n } else {\r\n setSelectedAgent(v);\r\n setShowAgentModal(false);\r\n setNewPayMaster(prev => ({\r\n ...prev, Agent: v.CompanyName,\r\n AgentProfileSerNo: v.ProfileSerNo, AgentRateGroupSerNo: v.RateGroupSerNo,\r\n AgentHasRateMapping: v.HasRateMapping, MarketSerNo: v.MarketSerNo\r\n }));\r\n }\r\n }}\r\n >\r\n \r\n ) : null\r\n }\r\n \r\n )\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnButtonTypeWithDropdown,\r\n InnCheckbox,\r\n InnLoader,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnSingleDateSelection,\r\n InnTimeSelection,\r\n InnDataGrid,\r\n InnSwitch,\r\n InnContextMenu,\r\n InnTextarea,\r\n useConfirm\r\n} from \"../../../component\";\r\nimport infoicon from \"../../../assets/images/info-icon.svg\";\r\nimport settingicon from \"../../../assets/images/settings-icon.svg\";\r\nimport smsIcon from \"../../../assets/images/sms-tooltip-icon.svg\";\r\nimport EmailTooltipIcon from \"../../../assets/images/email-tooltip-icon.svg\";\r\nimport rightbluearrow from \"../../../assets/images/right-blue-round-arrow.svg\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { LinkReservationModalPopup } from \"./modalPopup/LinkReservationModalPopup\";\r\nimport {\r\n cmbGetMemberShipLvl,\r\n cmbGetRateCodeMaster,\r\n cmbGetReservationStatus,\r\n cmbGetReservationTypeMaster,\r\n cmbGetRoomTypeMaster,\r\n cmbGetVIPStatusMaster,\r\n GetReservationList,\r\n ManageSplitReservation,\r\n GetPropertyParameterByKeys,\r\n ManageSplitReservations,\r\n cmbGetRoomMaster,\r\n GetReservationInfoData,\r\n} from \"../../../services/reservationService\";\r\nimport { ReservationListFilterModel } from \"../../../utils/Model/ReservationListFilterModel\";\r\nimport { AgentModalPopup } from \"./modalPopup/AgentModalPopup\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../reducer/authSlice\";\r\nimport { IndiAgent, IndiCompany, IndiAdultChild, IndiArrival, IndiGuestName, IndiRateCode, IndiReservationType, IndiRoomRate, IndiRoomType, IndiSharer } from \"./indicators\";\r\nimport { TipArrived, TipCancelled, TipCheckedOut, TipDueIn, TipDueOut, TipHold, TipInHouse, TipNoShow, TipTentative } from \"./tooltips\";\r\nimport { SingleSelectFilter, InputTextFilter, CheckboxFilter } from \"./filters\";\r\nimport ReservationSubMenu from \"./reservation-sub-menu\";\r\nimport { RoomAssignmentModal } from \"./modalPopup/roomAssignmentModalPopup\";\r\nimport { toHaveAttribute } from \"@testing-library/jest-dom/dist/matchers\";\r\nimport moment from \"moment\";\r\nimport { useAlert } from \"../../../utils/hooks/useAlert\";\r\nimport { DateSelectionFilter } from \"./filters/date-selection-filter\";\r\nimport { bool } from \"prop-types\";\r\nimport { ManageRights } from \"../../../services/generalService\";\r\nimport { RoomMoveModalPopup } from \"./modalPopup/roomMoveModalPopup\";\r\nimport { CancelReservationModalPopup } from \"./modalPopup/cancelReservationModalPopup\";\r\n// import { BlockTipConfirmed } from \"./tooltips\";\r\nimport { setIsWalkIn, setIsSharer, setSharerReservationSerNo } from \"../../../reducer/frontSlice\";\r\nimport SharerSecondry from \"../../../assets/images/sharer-secondary-icon.svg\";\r\nimport BlockIcon from \"../../../assets/images/block-icon.svg\";\r\nimport linkIcon from \"../../../assets/images/link-icon.svg\";\r\nimport SharerPrimary from \"../../../assets/images/sharer-primary-icon.svg\";\r\nimport PayMasterModalPopup from \"./modalPopup/payMasterModalPopup\";\r\n\r\n\r\nexport function ReservationListPage(props) {\r\n /* Page content height set start */\r\n var Pageheight = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);\r\n var GridHeight = Pageheight - 153;\r\n /* Page content height set end */\r\n\r\n const defaultReservationListFilterObj = {\r\n ClientSerNo: 0,\r\n PropertySerNo: 0,\r\n PageNumber: 1,\r\n SortCol: \"\",\r\n SortType: \"ASC\",\r\n Adult: 0,\r\n Child: 0,\r\n DtType: \"ARR\",\r\n FromDate: \"\",\r\n ToDate: \"\",\r\n RoomTypeSerNo: 0,\r\n RateSerNo: 0,\r\n ReservationTypeSerNo: 0,\r\n CompanyProfileSerNo: 0,\r\n AgentProfileSerNo: 0,\r\n BookingNo: \"\",\r\n BookingReferenceNo: \"\",\r\n MembershipNo: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n VIPLevelSerNo: 0,\r\n IsIncognitoName: false,\r\n NightsFrom: 0,\r\n NightsTo: 0,\r\n strMemberShipLevel: \"\",\r\n ReservationStatus: \"\",\r\n BlockSerNo: \"\",\r\n PartyNo: \"\",\r\n RoomSerNo: 0,\r\n IsEarlyDeparture: false,\r\n IsShowBlockRoomsOnly: false,\r\n IsOnlyComplimentary: false,\r\n IsOnlyHouseUsed: false\r\n\r\n };\r\n\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const location = useLocation();\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const propertyParameters = [\"BusinessDate\"];\r\n // Variable to show hide modal popup start\r\n const [page, setPage] = useState(1);\r\n const [IsPropsLoaded, setIsPropsLoaded] = useState(false);\r\n const [showAdvancedSearchModal, setShowAdvancedSearchModal] = useState(false);\r\n const [showAgentSearchFilterModal, setShowAgentSearchFilterModal] = useState(false);\r\n const [showCompanySearchFilterModal, setShowCompanySearchFilterModal] = useState(false);\r\n const [showRoomFeaturesModal, setShowRoomFeaturesModal] = useState(false);\r\n const [showRoomAssignmentPopup, setShowRoomAssignmentPopup] = useState(false);\r\n const [showRoomGuestDetailPopup, setShowRoomGuestDetailPopup] = useState(false);\r\n const [showRoomAssignFilterModal, setShowRoomAssignFilterModal] = useState(false);\r\n const [showCancelPopup, setShowCancelPopup] = useState(false);\r\n const [showRoomMovePopup, setShowRoomMovePopup] = useState(false);\r\n const [showRoomMoveFilterModal, setShowRoomMoveFilterModal] = useState(false);\r\n const [reservationStatus, setReservationStatus] = useState({});\r\n const [cancelPopupMode, setCancelPopupMode] = useState(\"\");\r\n const { innkeyAlert } = useAlert();\r\n const [rmAssignmentData, setRmAssignmentData] = useState([]);\r\n const [resSerNoString, setResSerNoString] = useState(\"\");\r\n const [showLinkReservationPopup, setShowLinkReservationPopup] = useState(false);\r\n const [sharerResData, setSharerResData] = useState({});\r\n const [primarySharerResData, setPrimarySharerResData] = useState({});\r\n // Variable to show hide modal popup end\r\n\r\n const [selectedFromDate, setSelectedFromDate] = useState(\"1-jan-2022\");\r\n const [selectedToDate, setSelectedToDate] = useState(\"30-dec-2022\");\r\n const [reservationInfoData, setReservationInfoData] = useState({});\r\n const reservationObj = {\r\n // ClientSerNo: parseInt(currUser.ClientSerNo),\r\n // PropertySerNo: parseInt(currUser.PropertySerNo),\r\n // ReservationSerNo: location.state.reservationSerNo\r\n ClientSerNo: 1201,\r\n PropertySerNo: 1,\r\n ReservationSerNo: 10,\r\n };\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n const [roomData, setRoomData] = useState([]);\r\n const [userRightsData, setUserRightsData] = useState([]);\r\n const [showPayMasterPopup, setShowPayMasterPopup] = useState(false);\r\n const [reloadGrid, setReloadGrid] = useState(false);\r\n // const [tooltipOpen, setTooltipOpen] = useState(false);\r\n\r\n // page load - one time exection when page is loaded\r\n\r\n const handleDefaultFilter = (bdate) => {\r\n setSelectedShowBlockRoom(false);\r\n setSelectedShowComplementary(false);\r\n setSelectedShowHouseUse(false);\r\n let result = new Date(bdate);\r\n result = result.setDate(result.getDate() + 90);\r\n console.log(\"Result Date\", result, moment(result).format(\"DD-MMM-YY\"));\r\n console.log(\"PRops\", location.state.filterObj);\r\n let propsFilterObj = defaultReservationListFilterObj;\r\n if (location.state !== undefined) {\r\n if (location.state.filterObj !== undefined) {\r\n let obj = location.state.filterObj;\r\n let objKeys = Object.keys(location.state[\"filterObj\"]);\r\n let tempColList = [];\r\n let tempColListKeys = [];\r\n //let defaultArrObj = defaultReservationListFilterObj;\r\n if (obj[\"FirstName\"]) {\r\n propsFilterObj[\"FirstName\"] = obj.FirstName;\r\n setSelectedFirstName(obj.FirstName);\r\n }\r\n if (obj[\"LastName\"]) {\r\n propsFilterObj[\"LastName\"] = obj[\"LastName\"];\r\n setSelectedLastName(obj.LastName);\r\n }\r\n if (obj[\"BookingNo\"]) {\r\n propsFilterObj[\"BookingNo\"] = obj[\"BookingNo\"];\r\n setSelectedBookingNo(obj.BookingNo);\r\n }\r\n if (obj[\"ReservationStatus\"]) {\r\n propsFilterObj[\"ReservationStatus\"] = obj[\"ReservationStatus\"];\r\n let temp = obj[\"ReservationStatus\"].split(\",\");\r\n setSelectedResStatus(temp);\r\n }\r\n if (obj[\"FromDate\"]) {\r\n propsFilterObj[\"FromDate\"] = obj[\"FromDate\"];\r\n setSelectedFromDate(obj.FromDate);\r\n }\r\n if (obj[\"ToDate\"]) {\r\n propsFilterObj[\"ToDate\"] = obj[\"ToDate\"];\r\n setSelectedToDate(obj.ToDate);\r\n }\r\n if (obj[\"DtType\"]) {\r\n propsFilterObj[\"DtType\"] = obj[\"DtType\"];\r\n setSelectedDtType(selectdata.find(o => o.key == obj[\"DtType\"]));\r\n }\r\n if (obj[\"Mainmenu\"]) {\r\n propsFilterObj[\"Mainmenu\"] = obj[\"Mainmenu\"];\r\n }\r\n if (obj[\"Submenu\"]) {\r\n propsFilterObj[\"Submenu\"] = obj[\"Submenu\"];\r\n }\r\n //fillDataGrid(); \r\n objKeys.forEach((x) => {\r\n let temp = MoreFilterOption.find((d) => d.ObjectName === x);\r\n if (temp != undefined) {\r\n if (obj[x] !== null && obj[x] !== undefined && obj[x] !== 0 && obj[x] !== false && obj[x] !== \"\") {\r\n if (x === \"strMemberShipLevel\") {\r\n let temp = obj[x].split(\",\");\r\n temp = temp.filter((x) => x.trim().length > 0);\r\n setSelectedMembershipLvl(temp);\r\n }\r\n if (x === \"IsShowBlockRoomsOnly\") {\r\n setSelectedShowBlockRoom(true);\r\n }\r\n if (x === \"IsOnlyComplimentary\") {\r\n setSelectedShowComplementary(true);\r\n }\r\n if (x === \"IsOnlyHouseUsed\") {\r\n setSelectedShowHouseUse(true);\r\n }\r\n tempColList.push(temp);\r\n tempColListKeys.push(temp.key);\r\n console.log(propsFilterObj)\r\n propsFilterObj[x] = obj[x];\r\n }\r\n }\r\n\r\n });\r\n setColList(tempColList);\r\n setColListKeys(tempColListKeys);\r\n } else {\r\n console.log(\"Default Parameter is Undefined.\")\r\n propsFilterObj[\"FirstName\"] = \"\";\r\n setSelectedFirstName(\"\");\r\n\r\n propsFilterObj[\"LastName\"] = \"\";\r\n setSelectedLastName(\"\");\r\n\r\n propsFilterObj[\"BookingNo\"] = \"\";\r\n setSelectedBookingNo(\"\");\r\n\r\n propsFilterObj[\"ReservationStatus\"] = \"ARD,INH,DOT,DIN,COT\";\r\n setSelectedResStatus([\"ARD\", \"INH\", 'DOT', 'DIN', 'COT']);\r\n\r\n propsFilterObj[\"FromDate\"] = moment(bdate).format(\"DD-MMM-YY\");\r\n setSelectedFromDate(moment(bdate).format(\"DD-MMM-YY\"));\r\n\r\n console.log(result)\r\n propsFilterObj[\"ToDate\"] = moment(result).format(\"DD-MMM-YY\");\r\n setSelectedToDate(moment(result).format(\"DD-MMM-YY\"));\r\n\r\n propsFilterObj[\"DtType\"] = \"STAY\";\r\n setSelectedDtType({ key: \"STAY\", value: \"Stay Date\" });\r\n }\r\n } else {\r\n console.log(\"Default Parameter is undefined.\")\r\n propsFilterObj[\"FirstName\"] = \"\";\r\n setSelectedFirstName(\"\");\r\n\r\n propsFilterObj[\"LastName\"] = \"\";\r\n setSelectedLastName(\"\");\r\n\r\n propsFilterObj[\"BookingNo\"] = \"\";\r\n setSelectedBookingNo(\"\");\r\n\r\n propsFilterObj[\"ReservationStatus\"] = \"ARD,INH,DOT,DIN,COT\";\r\n setSelectedResStatus([\"ARD\", \"INH\", 'DOT', 'DIN', 'COT']);\r\n\r\n propsFilterObj[\"FromDate\"] = moment(bdate).format(\"DD-MMM-YY\");\r\n setSelectedFromDate(moment(bdate).format(\"DD-MMM-YY\"));\r\n\r\n propsFilterObj[\"ToDate\"] = moment(result).format(\"DD-MMM-YY\");\r\n setSelectedToDate(moment(result).format(\"DD-MMM-YY\"));\r\n\r\n propsFilterObj[\"DtType\"] = \"STAY\";\r\n setSelectedDtType({ key: \"STAY\", value: \"Stay Date\" });\r\n\r\n }\r\n ReservationListFilterModel.Data = propsFilterObj;\r\n console.log(propsFilterObj);\r\n setIsPropsLoaded(true);\r\n setReloadGrid(!reloadGrid);\r\n };\r\n\r\n\r\n useEffect(() => {\r\n //fillPropertyParameter();\r\n fillUserRights();\r\n cmbGetMemberShipLvl(currUser.ClientSerNo).then((d) => {\r\n setFilMembershipLvlData(d.data);\r\n });\r\n cmbGetRateCodeMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n setFilRateCodeData(d.data);\r\n });\r\n cmbGetReservationStatus().then((d) => {\r\n setFilResStatusData(d.data);\r\n });\r\n cmbGetReservationTypeMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n setFilResTypeData(d.data);\r\n });\r\n cmbGetRoomTypeMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n setFilRoomTypeData(d.data);\r\n });\r\n cmbGetVIPStatusMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n setFilVIPStatusData(d.data);\r\n });\r\n cmbGetRoomMaster(currUser.ClientSerNo, currUser.PropertySerNo).then(d => {\r\n let tempdata = d.data;\r\n tempdata.unshift({ key: \"0\", value: \"Select\" });\r\n setRoomData(tempdata);\r\n });\r\n GetPropertyParameterByKeys(currUser.ClientSerNo, currUser.PropertySerNo, propertyParameters).then((d) => {\r\n console.log(d.data);\r\n let obj = d.data.find((x) => x.key == \"BusinessDate\");\r\n console.log(\"busienss date \", obj);\r\n if (obj != undefined) {\r\n setBusinessDate(d.data[0].value);\r\n console.log(\"called\", location.state.filterObj, selectedShowBlockRoom);\r\n handleDefaultFilter(d.data[0].value);\r\n }\r\n });\r\n }, [location.state.filterObj]);\r\n // page load - one time exection when page is loaded\r\n\r\n useEffect(() => {\r\n console.log(\"before IsPropsLoaded\", IsPropsLoaded);\r\n if (IsPropsLoaded) {\r\n console.log(\"after IsPropsLoaded\", IsPropsLoaded);\r\n fillDataGrid();\r\n }\r\n }, [IsPropsLoaded, reloadGrid]);\r\n\r\n useEffect(() => {\r\n if (IsPropsLoaded) {\r\n fillDataGrid();\r\n }\r\n }, [page]);\r\n\r\n\r\n\r\n useEffect(() => {\r\n console.log(\"to date changed \", selectedToDate);\r\n }, [selectedToDate]);\r\n\r\n // useEffect(() => {\r\n // console.log(\"called\", props.location.state.filterObj,selectedShowBlockRoom);\r\n // handleDefaultFilter();\r\n // }, [props.location.state.filterObj])\r\n\r\n\r\n\r\n //#region Data Grid Start\r\n\r\n const [pageCount, setPageCount] = useState(1);\r\n const [gridSelectedItem, SetgridSelectedItem] = useState([]);\r\n const [temp, settemp] = useState(false);\r\n const [selectedReservation, setSelectedReservation] = useState({});\r\n //grid header\r\n const columHeader = [\r\n {\r\n key: \"Res. Status\",\r\n value: \"Status\",\r\n type: \"lnk\",\r\n align: \"center\",\r\n },\r\n { key: \"Guest Name\", value: \"GuestName\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Room No\", value: \"RoomNo\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Room Type\", value: \"RoomTypeName\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Sharer\", value: \"Sharer\", type: \"img\", sorting: \"N\", align: \"center\" },\r\n { key: \"Block\", value: \"Block\", type: \"img\", sorting: \"N\", align: \"center\" },\r\n { key: \"Party\", value: \"PartyReservation\", type: \"img\", sorting: \"N\", align: \"center\" },\r\n { key: \"No of Rooms\", value: \"NoOfRoom\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Arrival Date\", value: \"ArrivalDate\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"ETA\", value: \"ArrivalTime\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Nights\", value: \"Nights\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Person\", value: \"Adult\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Rate\", value: \"RoomRate\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Company\", value: \"CompanyName\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Agent\", value: \"AgentName\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Block No\", value: \"BlockSerNo\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Party No\", value: \"PartyNo\", type: \"txt\", sorting: \"Y\" },\r\n // { key: \"Group\", value: \"GroupName\", type: \"txt\" },\r\n { key: \"Booking No\", value: \"BookingNo\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Booking Ref No\", value: \"BookingReferenceNo\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n\r\n const [filterData, setfilterData] = useState([]);\r\n\r\n const optBtnData = [\r\n { key: \"Cancel Reservation\", value: \"Cancel Reservation\" },\r\n { key: \"No Show Reservation\", value: \"No Show Reservation\" },\r\n { key: \"Print Registration Card\", value: \"Print Registration Card\" },\r\n { key: \"Proforma Invoice\", value: \"Proforma Invoice\" },\r\n { key: \"Confirmation Email\", value: \"Confirmation Email\" },\r\n { key: \"Assign Room\", value: \"Assign Room\" },\r\n { key: \"Room Move\", value: \"Room Move\" },\r\n { key: \"Reinstate\", value: \"Reinstate\" },\r\n { key: \"Split Reservation\", value: \"Split Reservation\" },\r\n { key: \"Go to Cashiering\", value: \"Go to Cashiering\" },\r\n { key: \"Link To Party\", value: \"Link To Party\" },\r\n { key: \"At a Glance\", value: \"At a Glance\" },\r\n { key: \"Edit\", value: \"Edit\" },\r\n { key: \"Create A Sharer\", value: \"Create A Sharer\" }\r\n ];\r\n\r\n const fillUserRights = () => {\r\n ManageRights(currUser.ClientSerNo, currUser.UserID, \"44,45,46,47,48,49,50\").then((d) => {\r\n if (d.data.length > 0) {\r\n setUserRightsData(d.data);\r\n }\r\n else {\r\n console.log(\"No user rights\");\r\n }\r\n });\r\n };\r\n\r\n const handleUserRights = async (strRightsSerNo) => {\r\n if (strRightsSerNo != undefined) {\r\n const userRightObj = userRightsData.find((x) => x.RightsSerNo == strRightsSerNo);\r\n if (userRightObj != undefined) {\r\n if (userRightObj.IsApply != undefined) {\r\n if (userRightObj.IsApply) {\r\n return true;\r\n } else {\r\n await confirm({\r\n Message: `${userRightObj.Name} : ${userRightObj.PromptMessage}`,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n }\r\n };\r\n\r\n const fillSharerDetails = () => {\r\n GetReservationInfoData(currUser.ClientSerNo, currUser.PropertySerNo, selectedReservation.ReservationSerNo).then((d) => {\r\n console.log(\"Sharer\", d.data);\r\n if (d.data.IsSharer == true) {\r\n GetReservationInfoData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(d.data.SharerReservationSerNo)).then(d => {\r\n console.log(\"PrimarySharer\", d.data);\r\n setPrimarySharerResData(d.data);\r\n })\r\n }\r\n setSharerResData(d.data);\r\n })\r\n }\r\n\r\n\r\n useEffect(() => {\r\n if (selectedReservation.ReservationSerNo != undefined) {\r\n fillSharerDetails();\r\n }\r\n }, [selectedReservation.ReservationSerNo])\r\n\r\n const actionPopup = (item) => {\r\n if (item.key == \"Link To Party\") {\r\n if (selectedReservation.BlockSerNo != \"\" && selectedReservation.IsPMReservation == true) {\r\n alert(\"This action cannot be performed.\")\r\n } else {\r\n handleUserRights(\"44\").then(d => {\r\n if (d) {\r\n // if (selectedReservation.Status == \"CAN\" || selectedReservation.Status == \"NSH\") {\r\n // alert(\"Reservation already cancelled\");\r\n // } else {\r\n // setShowCancelPopup(true);\r\n // setCancelPopupMode(\"CAN\");\r\n // }\r\n setShowLinkReservationPopup(true);\r\n setReservationInfoData({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: selectedReservation.ReservationSerNo,\r\n //ArrivalDate: selectedReservation.ArrivalDate,\r\n });\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n }\r\n // history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n } else if (item.key == \"Cancel Reservation\") {\r\n if (selectedReservation.BlockSerNo != \"\" && selectedReservation.IsPMReservation == true) {\r\n alert(\"A PM generated from a block reservation cannot be cancelled directly. Please cancel the block reservation to cancel the respective PM of the block.\")\r\n } else {\r\n handleUserRights(\"45\").then(d => {\r\n if (d) {\r\n if (selectedReservation.Status == \"CAN\" || selectedReservation.Status == \"NSH\") {\r\n alert(\"Reservation already cancelled\");\r\n\r\n }\r\n else if (selectedReservation.Status == \"ARD\" || selectedReservation.Status == \"INH\" || selectedReservation.Status == \"DOT\" || selectedReservation.Status == \"COT\") {\r\n alert(\"Reservation Cancellation is not allowed.\")\r\n }\r\n else {\r\n setReservationInfoData({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: selectedReservation.ReservationSerNo,\r\n ArrivalDate: selectedReservation.ArrivalDate,\r\n });\r\n setShowCancelPopup(true);\r\n setCancelPopupMode(\"CAN\");\r\n }\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n }\r\n } else if (item.key == \"No Show Reservation\") {\r\n if (selectedReservation.BlockSerNo != \"\" && selectedReservation.IsPMReservation == true) {\r\n alert(\"Block PMs cannot be turned as No Shows as block reservations are not allowed to show as No Shows.\")\r\n } else if (selectedReservation.IsPMReservation == true) {\r\n alert(\"No show action is not applicable for a PM. This action cannot be performed.\")\r\n } else {\r\n handleUserRights(\"46\").then(d => {\r\n if (d) {\r\n if (selectedReservation.Status == \"CAN\" || selectedReservation.Status == \"NSH\") {\r\n alert(\"Reservation already cancelled\");\r\n }\r\n else if (selectedReservation.Status == \"ARD\" || selectedReservation.Status == \"INH\" || selectedReservation.Status == \"DOT\" || selectedReservation.Status == \"COT\") {\r\n alert(\"Reservation Cancellation is not allowed.\")\r\n }\r\n else {\r\n setReservationInfoData({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: selectedReservation.ReservationSerNo,\r\n ArrivalDate: selectedReservation.ArrivalDate,\r\n });\r\n setShowCancelPopup(true);\r\n setCancelPopupMode(\"NSH\");\r\n }\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n }\r\n } else if (item.key == \"Assign Room\") {\r\n if (selectedReservation.IsPMReservation == true) {\r\n alert(\"PMs are auto assigned by system and hence this action cannot be performed.\")\r\n } else {\r\n handleUserRights(\"50\").then(d => {\r\n if (d) {\r\n let index = selectedReservation.ArrivalDate.indexOf(\" \");\r\n let dtStr = selectedReservation.ArrivalDate.substr(0, index);\r\n let tempYear = ReservationListFilterModel.Data.FromDate.split(\"-\");\r\n dtStr = dtStr + \"-\" + tempYear[2];\r\n // console.log(dtStr);\r\n // console.log(dtStr >= businessDate);\r\n // console.log(selectedReservation.NoOfRoom);\r\n if (selectedReservation.NoOfRoom === 1 || selectedReservation.NoOfRoom === 0) {\r\n if (selectedReservation.Status === \"DIN\" && moment(dtStr).format(\"DD-MMM-YYYY\") >= moment(businessDate).format(\"DD-MMM-YYYY\")) {\r\n setShowRoomAssignmentPopup(true);\r\n } else {\r\n alert(\"Room assignment is only possible for reservations that are confirmed and yet to arrive. This action cannot be performed.\");\r\n }\r\n }\r\n else {\r\n alert(\"Only reservations with no. of rooms as 1 can be assigned with a room. Please split the reservation first and then proceed for this action.\");\r\n }\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n }\r\n } else if (item.key == \"Print Registration Card\") {\r\n if (selectedReservation.IsPMReservation == true) {\r\n alert(\"Registration card printing is not applicable for a PM. This action cannot be performed.\")\r\n }\r\n else {\r\n if (selectedReservation.Status == \"CAN\" || selectedReservation.Status == \"NSH\" || selectedReservation.Status == \"COT\") {\r\n alert(\"Print Registration is not allowed.\")\r\n }\r\n }\r\n // history.push({\r\n // pathname: \"/ReservationView\",\r\n // state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo },\r\n // });\r\n } else if (item.key == \"Proforma Invoice\") {\r\n if (selectedReservation.BlockSerNo != \"\" && selectedReservation.IsPMReservation == true) {\r\n alert(\"This action cannot be performed.\")\r\n }\r\n else {\r\n if (selectedReservation.Status == \"DOT\" || selectedReservation.Status == \"COT\") {\r\n alert(\"Proforma Invoice is not allowed.\")\r\n }\r\n }\r\n // history.push({\r\n // pathname: \"/ReservationView\",\r\n // state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo },\r\n // });\r\n } else if (item.key == \"Confirmation Email\") {\r\n if (selectedReservation.BlockSerNo != \"\" && selectedReservation.IsPMReservation == true) {\r\n alert(\"Confirmation e mail option is not applicable for PM. This action cannot be performed.\")\r\n }\r\n else {\r\n if (selectedReservation.Status == \"DIN\" || selectedReservation.Status == \"ARD\" || selectedReservation.Status == \"INH\") {\r\n alert(\"Confirmation email is to be performed\");\r\n }\r\n else {\r\n alert(\"Confirmation email is not allowed\");\r\n }\r\n }\r\n // history.push({\r\n // pathname: \"/ReservationView\",\r\n // state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo },\r\n // });\r\n } else if (item.key == \"Room Move\") {\r\n if (selectedReservation.IsPMReservation == true) {\r\n alert(\"Room move action is not possible for any PM reservation. This action cannot be performed.\")\r\n } else {\r\n handleUserRights(\"47\").then(d => {\r\n if (d) {\r\n if (selectedReservation.Status == \"ARD\" || selectedReservation.Status == \"INH\" || selectedReservation.Status == \"DOT\") {\r\n if (primarySharerResData.ReservationStatus != \"COT\" || sharerResData.ReservationStatus != \"COT\") {\r\n if (selectedReservation.IsSharer == true) {\r\n if (window.confirm(\"Room move from a sharer reservation can be performed as per the stay dates of its primary sharing reservation. \" + sharerResData.GuestName + \" with arrival date as \" + sharerResData.ArrivalDate1 + \" and departure date as \" + sharerResData.DepartureDate1 + \" , having primary sharing guest as \" + primarySharerResData.GuestName + \" with arrival date as \" + primarySharerResData.ArrivalDate1 + \" and departure date as \" + primarySharerResData.DepartureDate1)) {\r\n setReservationInfoData({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: parseInt(selectedReservation.SharerReservationSerNo),\r\n });\r\n setShowRoomMovePopup(true);\r\n }\r\n }\r\n else {\r\n setReservationInfoData({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: selectedReservation.ReservationSerNo,\r\n });\r\n setShowRoomMovePopup(true);\r\n }\r\n }\r\n else {\r\n alert(\"The reservation must be occupied in order to perform this action.\");\r\n }\r\n }\r\n else {\r\n alert(\"The reservation must be occupied in order to perform this action.\");\r\n }\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n }\r\n } else if (item.key == \"Split Reservation\") {\r\n handleUserRights(\"49\").then(d => {\r\n if (d) {\r\n if (selectedReservation.Status == \"DIN\" || selectedReservation.Status == \"TNT\" || selectedReservation.Status == \"HLD\") {\r\n handleSplitReservation(selectedReservation);\r\n console.log(\"Arrival date\", selectedReservation.ArrivalDate);\r\n console.log(\"No of room\", selectedReservation.NoOfRoom);\r\n }\r\n else {\r\n alert(\"Split Reservation is not allowed\");\r\n }\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n } else if (item.key == \"Go to Cashiering\") {\r\n if (\r\n selectedReservation.Status == \"INH\" ||\r\n selectedReservation.Status == \"ARD\" ||\r\n selectedReservation.Status == \"DOT\" ||\r\n selectedReservation.Status == \"COT\" ||\r\n (selectedReservation.Status === 'DIN' && selectedReservation.IsAdvanceCheckin === true) || ((selectedReservation.Status === 'CAN' || selectedReservation.Status === 'NSH') && (selectedReservation.ReservationSubStatus === 'PC' || selectedReservation.ReservationSubStatus === 'CM'))\r\n ) {\r\n history.push({\r\n pathname: \"/ReservationCashiering\",\r\n state: {\r\n ReservationSerNo: selectedReservation.ReservationSerNo.toString(),\r\n filterObj: (ReservationListFilterModel.Data)\r\n },\r\n });\r\n } else {\r\n alert(\"Cashiering cannot be accessed if the reservation has not checked in yet. This action cannot be performed.\");\r\n }\r\n }\r\n else if (item.key == \"Reinstate\") {\r\n handleUserRights(\"48\").then(d => {\r\n if (d) {\r\n if (selectedReservation.Status == \"CAN\" || selectedReservation.Status == \"NSH\" || selectedReservation.Status == \"COT\") {\r\n if (selectedReservation.BlockSerNo != \"\" && selectedReservation.IsPMReservation == true) {\r\n alert(\"Reinstating a cancelled block PM is not allowed. This action cannot be performed.\")\r\n }\r\n console.log(\"Reinstate\");\r\n }\r\n else {\r\n alert(\"Reinstating a reservation is only possible on a cancelled or a no show reservation. This action cannot be performed.\");\r\n }\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n\r\n }\r\n else if (item.key == \"At a Glance\") {\r\n if (selectedReservation.IsPMReservation == true && selectedReservation.BlockSerNo != \"\") {\r\n history.push({\r\n pathname: \"/BlockAtGlance\",\r\n state: { propertySerNo: currUser.PropertySerNo, BlockSerNo: parseInt(selectedReservation.BlockSerNo) }\r\n });\r\n }\r\n else {\r\n history.push({\r\n pathname: \"/ReservationView\",\r\n state: { propertySerNo: currUser.PropertySerNo, reservationSerNo: selectedReservation.ReservationSerNo, filterObj: (ReservationListFilterModel.Data) },\r\n });\r\n\r\n }\r\n }\r\n else if (item.key == \"Edit\") {\r\n if (selectedReservation.IsPMReservation == true && selectedReservation.BlockSerNo != \"\") {\r\n history.push({\r\n pathname: \"/NewBlockReservation\",\r\n state: { propertySerNo: currUser.PropertySerNo, BlockSerNo: parseInt(selectedReservation.BlockSerNo) },\r\n });\r\n }\r\n else {\r\n history.push({\r\n pathname: \"/ReservationAdd\",\r\n state: { propertySerNo: currUser.PropertySerNo, reservationSerNo: selectedReservation.ReservationSerNo, Mode: \"Edit\", filterObj: (ReservationListFilterModel.Data) },\r\n });\r\n }\r\n\r\n }\r\n else if (item.key == \"Create A Sharer\") {\r\n if (selectedReservation.Status == \"COT\" || selectedReservation.Status == \"CAN\" || selectedReservation.Status == \"NSH\") {\r\n alert(\"Sharer creation is not allowed in this type of reservation.\");\r\n }\r\n else {\r\n if (selectedReservation.IsSharer == true) {\r\n confirm({\r\n Message: \"You can not create sharer of sharer reservation.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n } else if (selectedReservation.IsPMReservation == true) {\r\n confirm({\r\n Message: \"You can not create sharer of PM reservation.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n else {\r\n dispatch(setIsWalkIn(false));\r\n dispatch(setIsSharer(true));\r\n dispatch(setSharerReservationSerNo(selectedReservation.ReservationSerNo));\r\n //console.log(\"Mayank>> Property Serno\", currUser.PropertySerNo);\r\n history.push({\r\n pathname: \"/ReservationAdd\",\r\n state: { Mode: \"Add\", filterObj: (ReservationListFilterModel.Data) }\r\n });\r\n }\r\n }\r\n }\r\n };\r\n\r\n const handleSplitReservation = async (data) => {\r\n console.log(\"Selected Reservation for Split >\", data);\r\n if (data.NoOfRoom > 1) {\r\n let inputObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: data.ReservationSerNo,\r\n };\r\n let IsChangeable = true;\r\n IsChangeable = await innkeyAlert(\" You are about to split the tile to individual tiles, \\n \" +\r\n \" this action cannot be reversed once performed. \\n\" + \" Would you like to continue?\");\r\n if (IsChangeable) {\r\n ManageSplitReservation(inputObj).then((d) => {\r\n alert(d.data.Message);\r\n fillDataGrid();\r\n });\r\n }\r\n }\r\n else {\r\n alert(\"Split action can be performed only when there are more than 1 no. of rooms \" +\r\n \"in any reservation.This action cannot be performed.\");\r\n }\r\n };\r\n const handleMultipleSplitReservations = async (selectedData) => {\r\n let tempObj = [];\r\n console.log(\"No of Room for All\", selectedData.every((d) => d.NoOfRoom < 2));\r\n if (selectedData.every((d) => d.NoOfRoom < 2)) {\r\n alert(\"At least one reservation should have more than 1 no. of rooms to perform this action.\");\r\n }\r\n else {\r\n selectedData.map((d) => {\r\n tempObj.push({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: parseInt(d.ReservationSerNo),\r\n });\r\n });\r\n let IsChangeable = true;\r\n IsChangeable = await innkeyAlert(\" You are about to split the tile to individual tiles, \\n \" + \" this action cannot be reversed once performed. \\n\" + \" Would you like to continue?\");\r\n if (IsChangeable) {\r\n console.log(tempObj);\r\n ManageSplitReservations(tempObj).then((d) => {\r\n alert(d.data[0].Message);\r\n fillDataGrid();\r\n });\r\n }\r\n }\r\n };\r\n\r\n const fillDataGrid = () => {\r\n setActive(true);\r\n ReservationListFilterModel.Data.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n ReservationListFilterModel.Data.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n ReservationListFilterModel.Data.PageNumber = page;\r\n // ReservationListFilterModel.Data.SortCol = \"RoomTypeName\"\r\n // ReservationListFilterModel.Data.SortType = \"ASC\"\r\n ReservationListFilterModel.Data.FromDate = selectedFromDate;\r\n ReservationListFilterModel.Data.ToDate = selectedToDate;\r\n ReservationListFilterModel.Data.RoomSerNo = parseInt(roomNo.key);\r\n // ReservationListFilterModel.Data.strMemberShipLevel = ReservationListFilterModel.Data.strMemberShipLevel.substring(0, ReservationListFilterModel.Data.strMemberShipLevel.length - 1);\r\n // ReservationListFilterModel.Data.strMemberShipLevel = selectedMembershipLvl.toString();\r\n if (selectedAgent.AgentSerNo === undefined || selectedAgent.AgentSerNo == \"\") ReservationListFilterModel.Data.AgentProfileSerNo = 0;\r\n else ReservationListFilterModel.Data.AgentProfileSerNo = parseInt(selectedAgent.AgentSerNo);\r\n\r\n if (selectedCompany.AgentSerNo === undefined || selectedCompany.AgentSerNo == \"\") ReservationListFilterModel.Data.CosetfilterDatampanyProfileSerNo = 0;\r\n else ReservationListFilterModel.Data.CompanyProfileSerNo = parseInt(selectedCompany.AgentSerNo);\r\n\r\n ReservationListFilterModel.Data.FirstName = selectedFirstName;\r\n // if (ReservationListFilterModel.Data.ReservationStatus == \"0\") ReservationListFilterModel.Data.ReservationStatus = \"\";\r\n // else ReservationListFilterModel.Data.ReservationStatus = selectedResStatus.toString();\r\n //ReservationListFilterModel.Data.BookingNo = \"\"\r\n console.log(\" before resobj...>>>>>>\", ReservationListFilterModel.Data);\r\n GetReservationList(page, ReservationListFilterModel.Data).then((d) => {\r\n console.log(\"resobj...>>>>>>\", ReservationListFilterModel.Data);\r\n console.log(\"Data>\", d.data.Data);\r\n d.data.Data.forEach((x) => {\r\n if (x.BlockSerNo != \"\") {\r\n x[\"Block\"] = BlockIcon;\r\n }\r\n if (x.PartyNo != \"\") {\r\n x[\"PartyReservation\"] = linkIcon;\r\n }\r\n\r\n if (x.IsSharer == true) {\r\n x[\"Sharer\"] = SharerSecondry;\r\n } else {\r\n x[\"Sharer\"] = SharerPrimary; //SharerSecondry\r\n }\r\n if (x.IsPMReservation == true && x.BlockSerNo != \"\") {\r\n x[\"Sharer\"] = \"\";\r\n }\r\n\r\n });\r\n setfilterData(d.data.Data);\r\n let pCount = 0;\r\n let pModuler;\r\n try {\r\n pCount = parseInt(parseInt(d.data.Data[0].TotalRows) / 50);\r\n try {\r\n pModuler = parseInt(parseInt(d.data.Data[0].TotalRows) % 50);\r\n if (pModuler > 0) pCount = pCount + 1;\r\n } catch (e1) { }\r\n setPageCount(pCount);\r\n } catch (e) { }\r\n setActive(false);\r\n });\r\n };\r\n const handleRmAssignmentData = (data) => {\r\n console.log(data);\r\n setRmAssignmentData(data);\r\n // let tempresSerNo = [];\r\n // data.map((d) => tempresSerNo.push(d.ReservationSerNo));\r\n let obj = []\r\n data.map((d) => {\r\n if (d.IsSharer) {\r\n obj.push(d.SharerReservationSerNo);\r\n }\r\n else {\r\n obj.push(d.ReservationSerNo);\r\n }\r\n })\r\n console.log(\"RmData\", obj);\r\n setResSerNoString(obj.toString());\r\n };\r\n\r\n const handleMultiActionMenu = (item) => {\r\n if (item.key == \"Assign Room\") {\r\n\r\n handleUserRights(\"50\").then(d => {\r\n if (d) {\r\n let count = 0;\r\n let k = 0;\r\n for (let i = 0; i < gridSelectedItem.length; i++) {\r\n if ((i + 1) < gridSelectedItem.length) {\r\n if (gridSelectedItem[i].Status == \"DIN\" && gridSelectedItem[i].ArrivalDate == gridSelectedItem[i + 1].ArrivalDate) {\r\n count += 1;\r\n }\r\n }\r\n if (gridSelectedItem[i].NoOfRoom == 0 || gridSelectedItem[i].NoOfRoom == 1) {\r\n k += 1;\r\n }\r\n }\r\n if (count == gridSelectedItem.length - 1) {\r\n if (k == gridSelectedItem.length) {\r\n setShowRoomAssignmentPopup(true);\r\n }\r\n else {\r\n alert(\"Only reservations with no. of rooms as 1 can be assigned with a room. Please split the reservation first and then proceed for this action.\");\r\n }\r\n } else {\r\n alert(\"One or more reservation is either not on Due In reservation status or does not have the arrival date similar to others. This action cannot be performed.\");\r\n }\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n\r\n } else if (item.key == \"Go to Cashiering\") {\r\n let count = 0;\r\n let arrivalDate = \"\";\r\n let nightCount = 0;\r\n function checkStatus(status, IsAdvanceCheckin) {\r\n console.log('reservation-list-page 737', status, IsAdvanceCheckin);\r\n if (status == \"INH\" || status == \"DOT\" || status == \"ARD\" || status == \"COT\" || (status == 'DIN' && IsAdvanceCheckin === true)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n for (let i in gridSelectedItem) {\r\n if (i == 0) {\r\n if (checkStatus(gridSelectedItem[i].Status, gridSelectedItem[i].IsAdvanceCheckin)) {\r\n arrivalDate = gridSelectedItem[i].ArrivalDate;\r\n nightCount = gridSelectedItem[i].Nights;\r\n count += 1;\r\n } else {\r\n break;\r\n }\r\n } else {\r\n if (gridSelectedItem[i].ArrivalDate === arrivalDate && gridSelectedItem[i].Nights === nightCount && checkStatus(gridSelectedItem[i].Status)) {\r\n count += 1;\r\n } else {\r\n break;\r\n }\r\n }\r\n }\r\n if (count === gridSelectedItem.length) {\r\n history.push({\r\n pathname: \"/ReservationCashiering\",\r\n state: {\r\n ReservationSerNo: resSerNoString,\r\n filterObj: (ReservationListFilterModel.Data)\r\n },\r\n });\r\n } else {\r\n alert(\"Either one or more reservation does not have the required reservation status or similar departure date as the others. This action cannot be performed\");\r\n }\r\n }\r\n else if (item.key === \"Split Reservation\") {\r\n handleUserRights(\"49\").then(d => {\r\n if (d) {\r\n for (let i = 0; i < gridSelectedItem.length; i++) {\r\n // if (gridSelectedItem.find((d) => d.NoOfRoom < 2)) {\r\n // alert(\"Can not perform split reservation\");\r\n // break;\r\n // }\r\n // else {\r\n handleMultipleSplitReservations(gridSelectedItem);\r\n break;\r\n // }\r\n }\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n }\r\n };\r\n\r\n const handleOnCloseRmAssignmentPopup = () => {\r\n // setRmAssignmentData([]);\r\n setShowRoomAssignmentPopup(false);\r\n fillDataGrid();\r\n };\r\n\r\n\r\n\r\n // useEffect(() => {\r\n // console.log(\"selected data\", gridSelectedItem);\r\n // console.log(\"selected length\", gridSelectedItem.length);\r\n // }, [gridSelectedItem, temp]);\r\n\r\n const setSelectedItem = (items) => {\r\n SetgridSelectedItem(items);\r\n handleRmAssignmentData(items);\r\n settemp(!temp);\r\n };\r\n //#endregion Data Grid End\r\n\r\n const [isActive, setActive] = useState(false);\r\n\r\n const ActionOption = [\r\n { key: \"Print Registration Card \", value: \"Print Registration Card \" },\r\n { key: \"Assign Room\", value: \"Assign Room \" },\r\n { key: \"Split Reservation\", value: \"Split Reservation\" },\r\n { key: \"Go to Cashiering\", value: \"Go to Cashiering\" },\r\n ];\r\n\r\n const NewReservation = [\r\n { key: \"New Reservation\", value: \"New Reservation\" },\r\n { key: \"Walk In\", value: \"Walk In\" },\r\n ];\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n\r\n const [showReservationPopup, setShowReservationPopup] = useState(false);\r\n const [showLeftBlueBar, setshowLeftBlueBar] = useState(false);\r\n\r\n const RoomAssignSort = [\r\n { key: \"Room\", value: \"Room\" },\r\n { key: \"Room Type\", value: \"Room Type\" },\r\n { key: \"HK Status\", value: \"HK Status\" },\r\n { key: \"FO Status\", value: \"FO Status\" },\r\n { key: \"Arrival Date\", value: \"Arrival Date\" },\r\n { key: \"Depart. Date\", value: \"Depart. Date\" },\r\n { key: \"Reservation Status\", value: \"Reservation Status\" },\r\n { key: \"Conf. No.\", value: \"Conf. No.\" },\r\n { key: \"Guest Name\", value: \"Guest Name\" },\r\n ];\r\n\r\n const assignData = [\r\n { key: \"Assign\", value: \"Assign\" },\r\n { key: \"Assign & Check In\", value: \"Assign & Check In\" },\r\n ];\r\n\r\n const CheckoutTimeDD = [\r\n { key: \"No Info\", value: \"No Info\" },\r\n { key: \"No Response\", value: \"No Response\" },\r\n { key: \"Option\", value: \"1:00 AM\" },\r\n { key: \"Option\", value: \"1:30 AM\" },\r\n { key: \"Option\", value: \"2:00 AM\" },\r\n { key: \"Option\", value: \"2:30 AM\" },\r\n { key: \"Option\", value: \"3:00 AM\" },\r\n { key: \"Option\", value: \"3:30 AM\" },\r\n { key: \"Option\", value: \"4:00 AM\" },\r\n { key: \"Option\", value: \"4:30 AM\" },\r\n { key: \"Option\", value: \"5:00 AM\" },\r\n { key: \"Option\", value: \"5:30 AM\" },\r\n { key: \"Option\", value: \"6:00 AM\" },\r\n { key: \"Option\", value: \"6:30 AM\" },\r\n { key: \"Option\", value: \"7:00 AM\" },\r\n { key: \"Option\", value: \"7:30 AM\" },\r\n ];\r\n\r\n //#region Tooltip\r\n const ArrivalStatusTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    Expected arrival for next 180 days with reservation status as confirm, order by arrival date
    \r\n
    \r\n
    \r\n );\r\n };\r\n const CheckedOutStatusTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n Check Out By\r\n Mr. Hemang\r\n
    \r\n
    Date: 16 Mar.
    \r\n
    Time: 05:36
    \r\n
    PC: 192.168.600.789
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n const AgentTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Make My Trip
    \r\n
    \r\n 9842342434\r\n \r\n SMS\r\n \r\n
    \r\n
    \r\n preetiiyengar@innkeypms.net\r\n \r\n Email\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Edit\r\n \r\n Action\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n const CompanyTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Arvind Ltd.
    \r\n
    \r\n 9842342434\r\n \r\n SMS\r\n \r\n
    \r\n
    \r\n preetiiyengar@innkeypms.net\r\n \r\n Email\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Edit\r\n \r\n Action\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n const ProfileGuestTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Ms Mansi Sharma
    \r\n
    \r\n 9842342434\r\n \r\n SMS\r\n \r\n
    \r\n
    \r\n preetiiyengar@innkeypms.net\r\n \r\n Email\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Edit\r\n \r\n Action\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n const GuestTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Ms. Preeti Iyengar
    \r\n
    \r\n 9842342434\r\n \r\n SMS\r\n \r\n
    \r\n
    \r\n preetiiyengar@innkeypms.net\r\n \r\n Email\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Edit\r\n \r\n Action\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n const Profile2Tooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Membership No.
    \r\n
    \r\n 32452342\r\n  (Gold Member)\r\n
    \r\n
    \r\n
    Base Points : 10000
    \r\n
    Bonus Points : 4000
    \r\n
    \r\n Total Points :\r\n  14000\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Edit\r\n \r\n Action\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n const RoomTypeTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n Sea view, Near Elevator,
    \r\n Inter-Connected, Twin Bed, Smoking Room\r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n const RoomFeaturesInfoTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    Lorem Ipsum demo Lorem Ipsum demo Lorem Ipsum demo Lorem Ipsum demo Lorem Ipsum demo
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const FutureArrivalRoomsTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    Only those rooms will be displayed as result that are assigned for future and falls between the stay dates of the reservation for which the search is being made, when this filter is applied.
    \r\n
    \r\n
    \r\n );\r\n };\r\n //#endregion Tooltip\r\n\r\n //#region Dynamic filter variable\r\n\r\n // console.log(\"Props\",location.state.MngeReservationDefaultFilter.ReservationStatus.toString());\r\n const ResetFilter = () => {\r\n setSelectedFromDate(\"1-Jan-22\");\r\n setSelectedToDate(\"31-Dec-22\");\r\n setSelectedBookingReferenceNo(\"\");\r\n setSelectedBookingNo(\"\");\r\n setSelectedFirstName(\"\");\r\n setSelectedLastName(\"\");\r\n setSelectedMembershipNo(\"\");\r\n setSelectedAdult(\"\");\r\n setSelectedChild(\"\");\r\n setselectedNightsFrom(\"\");\r\n setselectedNightsTo(\"\");\r\n setSelectedCompany({ AgentName: \"Select\", AgentSerNo: \"0\" });\r\n setSelectedAgent({ AgentName: \"Select\", AgentSerNo: \"0\" });\r\n setSelectedBlockNo(\"\");\r\n ReservationListFilterModel.Data.FromDate = \"1-jan-2022\";\r\n ReservationListFilterModel.Data.ToDate = \"30-dec-2022\";\r\n ReservationListFilterModel.Data.BookingReferenceNo = \"\";\r\n ReservationListFilterModel.Data.BookingNo = \"\";\r\n ReservationListFilterModel.Data.FirstName = \"\";\r\n ReservationListFilterModel.Data.LastName = \"\";\r\n ReservationListFilterModel.Data.MembershipNo = \"\";\r\n ReservationListFilterModel.Data.Adult = \"\";\r\n ReservationListFilterModel.Data.Child = \"\";\r\n ReservationListFilterModel.Data.NightsFrom = \"\";\r\n ReservationListFilterModel.Data.NightsTo = \"\";\r\n ReservationListFilterModel.Data.ReservationStatus = \"\";\r\n ReservationListFilterModel.Data.BlockSerNo = \"\";\r\n setSelectedRmType({ key: \"0\", value: \"Select\" });\r\n setSelectedResStatus([]);\r\n setSelectedRtCd({ key: \"0\", value: \"Select\" });\r\n setSelectedResType({ key: \"0\", value: \"Select\" });\r\n setSelectedVIPState({ key: \"0\", value: \"Select\" });\r\n setSelectedMembershipLvl([]);\r\n setSelectedIncong(false);\r\n setSelectedShowBlockRoom(false);\r\n setSelectedShowComplementary(false);\r\n setSelectedShowHouseUse(false);\r\n setSelectedEarlyDeparture(false);\r\n ReservationListFilterModel.Data.IsIncognitoName = false;\r\n ReservationListFilterModel.Data.IsShowBlockRoomsOnly = false;\r\n ReservationListFilterModel.Data.IsOnlyComplimentary = false;\r\n ReservationListFilterModel.Data.IsOnlyHouseUsed = false;\r\n ReservationListFilterModel.Data.IsEarlyDeparture = false;\r\n ReservationListFilterModel.Data.strMemberShipLevel = \"\";\r\n ReservationListFilterModel.Data.DtType = \"ARR\";\r\n setSelectedDtType({ key: \"ARR\", value: \"Arrival Date\" });\r\n setRoomNo({ key: \"0\", value: \"Select\" });\r\n // setSelectedAgent({ \"AgentName\": \"Select\", \"AgentSerNo\": \"0\" });\r\n // setSelectedCompany({ \"AgentName\": \"Select\", \"AgentSerNo\": \"0\" });\r\n // setTimeout(() => {\r\n // if (refDateType.current) refDateType.current.reSetSelectedItem();\r\n // if (refRmType.current) refRmType.current.reSetSelectedItem();\r\n // if (refResStatus.current) refResStatus.current.reSetSelectedItem();\r\n // if (refRtCd.current) refRtCd.current.reSetSelectedItem();\r\n // if (refResType.current) refResType.current.reSetSelectedItem();\r\n // if (refVIPState.current) refVIPState.current.reSetSelectedItem();\r\n // if (refMembershipLvl.current)\r\n // refMembershipLvl.current.reSetSelectedItem();\r\n // }, 200);\r\n };\r\n\r\n const MoreFilterOption = [\r\n { key: \"filRoomType\", value: \"Room Type\", ObjectName: \"RoomTypeSerNo\" },\r\n // { key: \"filRoomNo\", value: \"Room No\",ObjectName:\"RoomSerNo\" },\r\n //{ key: \"filResSt\", value: \"Reservation Status\" },\r\n //{ key: \"fillFromDate\", value: \"From Date\" },\r\n //{ key: \"fillToDate\", value: \"To Date\" },\r\n //{ key: \"fillDateType\", value: \"Date Type\" },\r\n { key: \"filBlockNo\", value: \"Block No\", ObjectName: \"BlockSerNo\" },\r\n { key: \"filPartyNo\", value: \"Party No\", ObjectName: \"PartyNo\" },\r\n { key: \"filMemNo\", value: \"Membership No\", ObjectName: \"MembershipNo\" },\r\n // { key: \"Room Features\", value: \"filRmFeature\" },\r\n //{ key: \"Floor\", value: \"filFloor\" },\r\n { key: \"filRtCd\", value: \"Rate Code\", ObjectName: \"RateSerNo\" },\r\n { key: \"filCom\", value: \"Company\", ObjectName: \"CompanyProfileSerNo\" },\r\n { key: \"filAgt\", value: \"Agent\", ObjectName: \"AgentProfileSerNo\" },\r\n //{ key: \"Party\", value: \"filParty\" },\r\n { key: \"filResType\", value: \"Reservation Type\", ObjectName: \"ReservationTypeSerNo\" },\r\n { key: \"filBkRefNo\", value: \"Booking Reference No\", ObjectName: \"BookingReferenceNo\" },\r\n //{ key: \"ETA From - ETA To\", value: \"filETA\" },\r\n { key: \"filAdChild\", value: \"Adult - Child \", ObjectName: \"Adult\" },\r\n { key: \"filNight\", value: \"Nights\", ObjectName: \"NightsFrom\" },\r\n { key: \"filMemLvl\", value: \"Membership Level\", ObjectName: \"strMemberShipLevel\" },\r\n { key: \"filVIPSt\", value: \"VIP Status\", ObjectName: \"VIPLevelSerNo\" },\r\n //{ key: \"Room Assignment\", value: \"filRmAssign\" },\r\n //{ key: \"Room Status\", value: \"filRmSt\" },\r\n //{ key: \"Bed Type\", value: \"filBdType\" },\r\n //{ key: \"Smoking\", value: \"filSmok\" },\r\n //{ key: \"Inter-connecting Rooms Only\", value: \"filIncnnRm\" },\r\n //{ key: \"Adjoining Rooms Only\", value: \"filAdjRm\" },\r\n { key: \"filIncon\", value: \"Incognito Name\", ObjectName: \"IsIncognitoName\" },\r\n { key: \"filEarlyDeparture\", value: \"Early Departure\", ObjectName: \"IsEarlyDeparture\" },\r\n { key: \"filBlockRoom1\", value: \"Show Block Rooms Only\", ObjectName: \"IsShowBlockRoomsOnly\" },\r\n { key: \"filComplimentary\", value: \"Show only Complimentary rooms\", ObjectName: \"IsOnlyComplimentary\" },\r\n { key: \"filHouseUse\", value: \"Show only House Use Rooms\", ObjectName: \"IsOnlyHouseUsed\" },\r\n //{ key: \"Same Day Booked & Arrival\", value: \"filSmBkArr\" },\r\n //{ key: \"Same Day Arrival Cancellation\", value: \"filSmArrCan\" },\r\n ];\r\n\r\n const selectdata = [\r\n { key: \"ARR\", value: \"Arrival Date\" },\r\n { key: \"DEPT\", value: \"Departure Date\" },\r\n { key: \"BOOK\", value: \"Booking Date\" },\r\n { key: \"STAY\", value: \"Stay Date\" },\r\n ];\r\n const [colList, setColList] = useState([]);\r\n const [colListKeys, setColListKeys] = useState([]);\r\n // const refDateType = useRef(null);\r\n // const refRmType = useRef(null);\r\n // const refResStatus = useRef(null);\r\n // const refRtCd = useRef(null);\r\n // const refResType = useRef(null);\r\n // const refVIPState = useRef(null);\r\n // const refMembershipLvl = useRef(null);\r\n\r\n const [selectedRmType, setSelectedRmType] = useState({\r\n key: \"0\",\r\n value: \"Select\",\r\n });\r\n const [selectedResStatus, setSelectedResStatus] = useState([]);\r\n // const [selectedResStatus, setSelectedResStatus] = useState({\r\n // key: \"0\",\r\n // value: \"Select\",\r\n // });\r\n const [selectedRtCd, setSelectedRtCd] = useState({\r\n key: \"0\",\r\n value: \"Select\",\r\n });\r\n const [selectedResType, setSelectedResType] = useState({\r\n key: \"0\",\r\n value: \"Select\",\r\n });\r\n const [selectedVIPState, setSelectedVIPState] = useState({\r\n key: \"0\",\r\n value: \"Select\",\r\n });\r\n const [selectedMembershipLvl, setSelectedMembershipLvl] = useState([]);\r\n const [roomNo, setRoomNo] = useState({\r\n key: \"0\",\r\n value: \"Select\",\r\n });\r\n const [selectedIncong, setSelectedIncong] = useState(false);\r\n const [selectedShowBlockRoom, setSelectedShowBlockRoom] = useState(false);\r\n const [selectedEarlyDeparture, setSelectedEarlyDeparture] = useState(false);\r\n const [selectedShowComplementary, setSelectedShowComplementary] = useState(false);\r\n const [selectedShowHouseUse, setSelectedShowHouseUse] = useState(false);\r\n const [selectedDtType, setSelectedDtType] = useState({\r\n key: \"ARR\",\r\n value: \"Arrival Date\",\r\n });\r\n const [showFilter, setShowFilter] = useState(false);\r\n const [selectedAgent, setSelectedAgent] = useState({\r\n AgentName: \"Select\",\r\n AgentSerNo: \"0\",\r\n });\r\n const [selectedCompany, setSelectedCompany] = useState({\r\n AgentName: \"Select\",\r\n AgentSerNo: \"0\",\r\n });\r\n const [selectedBookingReferenceNo, setSelectedBookingReferenceNo] = useState(\"\");\r\n const [selectedBookingNo, setSelectedBookingNo] = useState(\"\");\r\n const [selectedBlockNo, setSelectedBlockNo] = useState(\"\");\r\n const [selectedPartyNo, setSelectedPartyNo] = useState(\"\");\r\n const [selectedFirstName, setSelectedFirstName] = useState(\"\");\r\n const [selectedLastName, setSelectedLastName] = useState(\"\");\r\n const [selectedAdult, setSelectedAdult] = useState(\"\");\r\n const [selectedChild, setSelectedChild] = useState(\"\");\r\n const [selectedNightsFrom, setselectedNightsFrom] = useState(\"\");\r\n const [selectedNightsTo, setselectedNightsTo] = useState(\"\");\r\n const [selectedMembershipNo, setSelectedMembershipNo] = useState(\"\");\r\n const [filMembershipLvlData, setFilMembershipLvlData] = useState([]);\r\n const [filRateCodeData, setFilRateCodeData] = useState([]);\r\n const [filResStatusData, setFilResStatusData] = useState([]);\r\n const [filResTypeData, setFilResTypeData] = useState([]);\r\n const [filRoomTypeData, setFilRoomTypeData] = useState([]);\r\n const [filVIPStatusData, setFilVIPStatusData] = useState([]);\r\n\r\n\r\n //#endregion\r\n\r\n //#region Dynamic filter\r\n\r\n useEffect(() => {\r\n let temp = [];\r\n if (colList && colList.length > 0) {\r\n colList.map((d) => {\r\n temp.push(d.key);\r\n });\r\n }\r\n setColListKeys(temp);\r\n }, [colList]);\r\n useEffect(() => {\r\n let filterKeys = Object.keys(ReservationListFilterModel.Data);\r\n let tempObj = ReservationListFilterModel.Data;\r\n filterKeys.forEach((x) => {\r\n if (MoreFilterOption.find((o) => o.ObjectName === x)) {\r\n if (!colListKeys.includes(MoreFilterOption.find((o) => o.ObjectName === x).key)) {\r\n if (tempObj[x] !== null && tempObj[x] !== undefined && tempObj[x] !== 0 && tempObj[x] !== false && tempObj[x] !== \"\") {\r\n if (x == \"Adult\") {\r\n tempObj[\"Adult\"] = defaultReservationListFilterObj[\"Adult\"];\r\n tempObj[\"Child\"] = defaultReservationListFilterObj[\"Child\"];\r\n }\r\n if (x == \"NightsFrom\") {\r\n tempObj[\"NightsFrom\"] = defaultReservationListFilterObj[\"NightsFrom\"];\r\n tempObj[\"NightsTo\"] = defaultReservationListFilterObj[\"NightsTo\"];\r\n }\r\n if (x == \"IsShowBlockRoomsOnly\") {\r\n setSelectedShowBlockRoom(false);\r\n }\r\n if (x == \"IsOnlyComplimentary\") {\r\n setSelectedShowComplementary(false);\r\n }\r\n if (x == \"IsOnlyHouseUsed\") {\r\n setSelectedShowHouseUse(false);\r\n }\r\n // tempObj[x] = ReservationListFilterModel.Data[x];\r\n console.log(tempObj[x] = defaultReservationListFilterObj[x])\r\n tempObj[x] = defaultReservationListFilterObj[x];\r\n console.log(tempObj[x], \"From Remove.\");\r\n }\r\n }\r\n }\r\n });\r\n }, [colListKeys.length]);\r\n\r\n const filResSt = () => {\r\n return (\r\n <>\r\n {\r\n ReservationListFilterModel.Data.ReservationStatus = item.key;\r\n setSelectedResStatus(item);\r\n }}\r\n onClose={() => {\r\n ReservationListFilterModel.Data.ReservationStatus = \"0\";\r\n setSelectedResStatus({ key: \"0\", value: \"Select\" });\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filResSt\");\r\n setColList(c);\r\n }}\r\n />\r\n \r\n );\r\n\r\n // return (\r\n //
    \r\n // \r\n //
    \r\n // {\r\n // ReservationListFilterModel.Data.ReservationStatus = item.key;\r\n // setSelectedResStatus(item);\r\n // console.log(item);\r\n // }}\r\n // ref={refResStatus}\r\n // >\r\n //
    \r\n // {\r\n // console.log(\"ResStatus\");\r\n // ReservationListFilterModel.Data.ReservationStatus = \"0\";\r\n // setSelectedResStatus({ key: \"0\", value: \"Select\" });\r\n // let c = [];\r\n // c = colList.filter((d) => d.key !== \"filResSt\");\r\n // setColList(c);\r\n // }}\r\n // >\r\n //
    \r\n // \r\n // );\r\n };\r\n // const fillFromDate = () => {\r\n // return (\r\n\r\n //
    \r\n //
    \r\n //
    \r\n // {\r\n // ReservationListFilterModel.Data.FromDate = e;\r\n // setSelectedFromDate(e);\r\n // }}\r\n // placeholder=\"Date From\"\r\n // //disabled=\"disabled\"\r\n // calendarStartDay={1}\r\n // label=\"Date From\"\r\n // >\r\n //
    \r\n // {\r\n // ReservationListFilterModel.Data.FromDate = \"0\";\r\n // setSelectedFromDate(\"1-jan-2022\")\r\n // let c = [];\r\n // c = colList.filter((d) => d.key !== \"fillFromDate\");\r\n // setColList(c);\r\n // }}>\r\n //
    \r\n //
    \r\n // {\r\n // ReservationListFilterModel.Data.FromDate = e;\r\n // setSelectedFromDate(e);\r\n // }}\r\n // placeholder=\"Date From\"\r\n // label=\"Date From\"\r\n // calendarStartDay={1}\r\n // onClose={() => {\r\n // ReservationListFilterModel.Data.FromDate = \"0\";\r\n // setSelectedFromDate(\"30-dec-2022\")\r\n // let c = [];\r\n // c = colList.filter((d) => d.key !== \"fillFromDate\");\r\n // setColList(c);\r\n // }}\r\n // />\r\n // )\r\n // }\r\n // const fillToDate = () => {\r\n // return (\r\n //
    \r\n //
    \r\n //
    \r\n // {\r\n // ReservationListFilterModel.Data.ToDate = e;\r\n // setSelectedToDate(e);\r\n // }}\r\n // placeholder=\"Date To\"\r\n // label=\"Date To\"\r\n // //disabled=\"disabled\"\r\n // calendarStartDay={1}>\r\n // \r\n //
    \r\n // {\r\n // ReservationListFilterModel.Data.ToDate = \"0\";\r\n // setSelectedToDate(\"30-dec-2022\")\r\n // let c = [];\r\n // c = colList.filter((d) => d.key !== \"fillToDate\");\r\n // setColList(c);\r\n // }}>\r\n //
    \r\n //
    \r\n // {\r\n // ReservationListFilterModel.Data.ToDate = e;\r\n // setSelectedToDate(e);\r\n // }}\r\n // placeholder=\"Date To\"\r\n // label=\"Date To\"\r\n // calendarStartDay={1}\r\n // onClose={() => {\r\n // ReservationListFilterModel.Data.ToDate = \"0\";\r\n // setSelectedToDate(\"30-dec-2022\")\r\n // let c = [];\r\n // c = colList.filter((d) => d.key !== \"fillToDate\");\r\n // setColList(c);\r\n // }}\r\n // />\r\n\r\n\r\n // )\r\n // }\r\n // const fillDateType = () => {\r\n // return (\r\n //
    \r\n //
    \r\n //
    \r\n // {\r\n // ReservationListFilterModel.Data.DtType = item.key;\r\n // setSelectedDtType(item);\r\n // }}\r\n // //ref={refDateType}\r\n // >\r\n // {\r\n // let c = [];\r\n // c = colList.filter((d) => d.key !== \"fillDateType\");\r\n // setColList(c);\r\n // }}>\r\n //
    \r\n //
    \r\n //
    \r\n // )\r\n // }\r\n // const filRoomNo = () => {\r\n // return(\r\n //
    \r\n //
    \r\n //
    \r\n // {\r\n // ReservationListFilterModel.Data.RoomSerNo = item.key\r\n // setRoomNo(item)\r\n // }}\r\n // >\r\n //
    \r\n // {\r\n // ReservationListFilterModel.Data.RoomSerNo = \"0\";\r\n // setRoomNo({key: \"0\",value: \"Select\"});\r\n // let c = [];\r\n // c = colList.filter((d) => d.key !== \"filRoomNo\");\r\n // setColList(c);\r\n // }}>\r\n //
    \r\n //
    \r\n // )\r\n // }\r\n const filBlockNo = () => {\r\n return (\r\n
    \r\n
    \r\n {\r\n ReservationListFilterModel.Data.BlockSerNo = v;\r\n setSelectedBlockNo(v);\r\n }}\r\n value={ReservationListFilterModel.Data.BlockSerNo}\r\n >\r\n Block No\r\n \r\n {\r\n ReservationListFilterModel.Data.BlockSerNo = \"\";\r\n setSelectedBlockNo(\"\");\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filBlockNo\");\r\n setColList(c);\r\n }}>\r\n
    \r\n
    \r\n );\r\n };\r\n const filPartyNo = () => {\r\n return (\r\n
    \r\n
    \r\n {\r\n ReservationListFilterModel.Data.PartyNo = v;\r\n setSelectedPartyNo(v);\r\n }}\r\n value={ReservationListFilterModel.Data.PartyNo}\r\n >\r\n Party No\r\n \r\n {\r\n ReservationListFilterModel.Data.PartyNo = \"0\";\r\n setSelectedPartyNo(\"\");\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filPartyNo\");\r\n setColList(c);\r\n }}>\r\n
    \r\n
    \r\n );\r\n };\r\n const filRoomType = () => {\r\n return (\r\n <>\r\n {\r\n ReservationListFilterModel.Data.RoomTypeSerNo = item.key;\r\n setSelectedRmType(item);\r\n }}\r\n onClose={() => {\r\n ReservationListFilterModel.Data.RoomTypeSerNo = \"0\";\r\n setSelectedRmType({ key: \"0\", value: \"Select\" });\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filRoomType\");\r\n setColList(c);\r\n }}\r\n />\r\n \r\n );\r\n };\r\n const filFloor = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}>\r\n
    \r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filFloor\");\r\n setColList(c);\r\n }}>\r\n
    \r\n
    \r\n );\r\n };\r\n const filRtCd = () => {\r\n return (\r\n {\r\n ReservationListFilterModel.Data.RateSerNo = item.key;\r\n setSelectedRtCd(item);\r\n }}\r\n onClose={() => {\r\n ReservationListFilterModel.Data.RateSerNo = \"0\";\r\n setSelectedRtCd({ key: \"0\", value: \"Select\" });\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filRtCd\");\r\n setColList(c);\r\n }}\r\n />\r\n );\r\n };\r\n const filCom = () => {\r\n return (\r\n
    \r\n
    \r\n setShowCompanySearchFilterModal(!showCompanySearchFilterModal)} value={selectedCompany.AgentName}>\r\n Company\r\n \r\n setShowCompanySearchFilterModal(!showCompanySearchFilterModal)}>\r\n \r\n \r\n {\r\n ReservationListFilterModel.Data.CompanyProfileSerNo = \"0\";\r\n setSelectedCompany({ AgentName: \"Select\", AgentSerNo: \"0\" });\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filCom\");\r\n setColList(c);\r\n }}>\r\n
    \r\n
    \r\n );\r\n };\r\n const filAgt = () => {\r\n return (\r\n
    \r\n
    \r\n setShowAgentSearchFilterModal(!showAgentSearchFilterModal)} value={selectedAgent.AgentName}>\r\n Agent\r\n \r\n setShowAgentSearchFilterModal(!showAgentSearchFilterModal)}>\r\n \r\n \r\n {\r\n ReservationListFilterModel.Data.AgentProfileSerNo = \"0\";\r\n setSelectedAgent({ AgentName: \"Select\", AgentSerNo: \"0\" });\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filAgt\");\r\n setColList(c);\r\n }}>\r\n
    \r\n
    \r\n );\r\n };\r\n const filParty = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}>\r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n };\r\n const filResType = () => {\r\n return (\r\n {\r\n ReservationListFilterModel.Data.ReservationTypeSerNo = item.key;\r\n setSelectedResType(item);\r\n }}\r\n onClose={() => {\r\n ReservationListFilterModel.Data.ReservationTypeSerNo = \"0\";\r\n setSelectedResType({ key: \"0\", value: \"Select\" });\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filResType\");\r\n setColList(c);\r\n }}\r\n />\r\n );\r\n\r\n // return (\r\n //
    \r\n // \r\n //
    \r\n // {\r\n // ReservationListFilterModel.Data.ReservationTypeSerNo = item.key;\r\n // setSelectedResType(item);\r\n // }}\r\n // ref={refResType}\r\n // >\r\n //
    \r\n // {\r\n // ReservationListFilterModel.Data.ReservationTypeSerNo = \"0\";\r\n // setSelectedResType({ key: \"0\", value: \"Select\" });\r\n // let c = [];\r\n // c = colList.filter((d) => d.key !== \"filResType\");\r\n // setColList(c);\r\n // }}\r\n // >\r\n //
    \r\n // \r\n // );\r\n };\r\n const filBkRefNo = () => {\r\n return (\r\n <>\r\n {\r\n ReservationListFilterModel.Data.BookingReferenceNo = v;\r\n setSelectedBookingReferenceNo(v);\r\n }}\r\n onClose={() => {\r\n ReservationListFilterModel.Data.BookingReferenceNo = \"\";\r\n setSelectedBookingReferenceNo(\"\");\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filBkRefNo\");\r\n setColList(c);\r\n }}>\r\n Booking Reference No\r\n \r\n {/*
    \r\n \r\n {\r\n ReservationListFilterModel.Data.BookingReferenceNo = v;\r\n setSelectedBookingReferenceNo(v);\r\n }}\r\n value={selectedBookingReferenceNo}\r\n >\r\n Booking Reference No\r\n \r\n {\r\n ReservationListFilterModel.Data.BookingReferenceNo = \"\";\r\n setSelectedBookingReferenceNo(\"\");\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filBkRefNo\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n */}\r\n \r\n );\r\n };\r\n const filETA = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(e);\r\n }}\r\n //disabled=\"disabled\"\r\n placeholder=\"ETA From\"\r\n label=\"ETA From\">\r\n
    \r\n
    \r\n {\r\n console.log(e);\r\n }}\r\n //disabled=\"disabled\"\r\n placeholder=\"ETA To\"\r\n label=\"ETA To\">\r\n
    \r\n
    \r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filETA\");\r\n setColList(c);\r\n }}>\r\n
    \r\n
    \r\n );\r\n };\r\n const filAdChild = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n ReservationListFilterModel.Data.Adult = v;\r\n setSelectedAdult(v);\r\n }}\r\n value={ReservationListFilterModel.Data.Adult}>\r\n Adult\r\n \r\n
    \r\n
    \r\n {\r\n ReservationListFilterModel.Data.Child = v;\r\n setSelectedChild(v);\r\n }}\r\n value={ReservationListFilterModel.Data.Child}>\r\n Child\r\n \r\n
    \r\n
    \r\n {\r\n ReservationListFilterModel.Data.Adult = \"0\";\r\n ReservationListFilterModel.Data.Child = \"0\";\r\n setSelectedAdult(\"\");\r\n setSelectedChild(\"\");\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filAdChild\");\r\n setColList(c);\r\n }}>\r\n
    \r\n
    \r\n );\r\n };\r\n const filNight = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n ReservationListFilterModel.Data.NightsFrom = v;\r\n setselectedNightsFrom(v);\r\n }}\r\n value={ReservationListFilterModel.Data.NightsFrom}>\r\n Nights From\r\n \r\n
    \r\n
    \r\n {\r\n ReservationListFilterModel.Data.NightsTo = v;\r\n setselectedNightsTo(v);\r\n }}\r\n value={ReservationListFilterModel.Data.NightsTo}>\r\n Nights To\r\n \r\n
    \r\n
    \r\n {\r\n ReservationListFilterModel.Data.NightsFrom = \"0\";\r\n ReservationListFilterModel.Data.NightsTo = \"0\";\r\n setselectedNightsFrom(\"\");\r\n setselectedNightsTo(\"\");\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filNight\");\r\n setColList(c);\r\n }}>\r\n
    \r\n
    \r\n );\r\n };\r\n const filMemLvl = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {\r\n let str = \"\";\r\n setSelectedMembershipLvl(item);\r\n if (item.length > 0) {\r\n item.map((d) => {\r\n str = str + d + \",\";\r\n ReservationListFilterModel.Data.strMemberShipLevel = str;\r\n });\r\n } else {\r\n ReservationListFilterModel.Data.strMemberShipLevel = str;\r\n }\r\n }}\r\n //ref={refMembershipLvl}\r\n >\r\n
    \r\n {\r\n ReservationListFilterModel.Data.strMemberShipLevel = \"\";\r\n setSelectedMembershipLvl([]);\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filMemLvl\");\r\n setColList(c);\r\n }}>\r\n
    \r\n
    \r\n );\r\n };\r\n const filMemNo = () => {\r\n return (\r\n <>\r\n {\r\n ReservationListFilterModel.Data.MembershipNo = v;\r\n setSelectedMembershipNo(v);\r\n }}\r\n onClose={() => {\r\n ReservationListFilterModel.Data.MembershipNo = \"\";\r\n setSelectedMembershipNo(\"\");\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filMemNo\");\r\n setColList(c);\r\n }}>\r\n Membership No\r\n \r\n {/*
    \r\n
    \r\n {\r\n ReservationListFilterModel.Data.MembershipNo = v;\r\n setSelectedMembershipNo(v);\r\n }}\r\n value={selectedMembershipNo}\r\n >\r\n Membership No\r\n \r\n {\r\n ReservationListFilterModel.Data.MembershipNo = \"\";\r\n setSelectedMembershipNo(\"\");\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filMemNo\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n
    */}\r\n \r\n );\r\n };\r\n const filVIPSt = () => {\r\n return (\r\n {\r\n ReservationListFilterModel.Data.VIPLevelSerNo = item.key;\r\n setSelectedVIPState(item);\r\n }}\r\n onClose={() => {\r\n ReservationListFilterModel.Data.VIPLevelSerNo = \"0\";\r\n setSelectedVIPState({ key: \"0\", value: \"Select\" });\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filVIPSt\");\r\n setColList(c);\r\n }}\r\n />\r\n );\r\n\r\n // return (\r\n //
    \r\n // \r\n //
    \r\n // {\r\n // console.log(\"vip select \",item);\r\n // ReservationListFilterModel.Data.VIPLevelSerNo = item.key;\r\n // setSelectedVIPState(item);\r\n // }}\r\n // //ref={refVIPState}\r\n // >\r\n //
    \r\n // {\r\n // ReservationListFilterModel.Data.VIPLevelSerNo = \"0\";\r\n // setSelectedVIPState({ key: \"0\", value: \"Select\" });\r\n // let c = [];\r\n // c = colList.filter((d) => d.key !== \"filVIPSt\");\r\n // setColList(c);\r\n // }}\r\n // >\r\n //
    \r\n // \r\n // );\r\n };\r\n const filRmAssign = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}>\r\n
    \r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filRmAssign\");\r\n setColList(c);\r\n }}>\r\n
    \r\n
    \r\n );\r\n };\r\n const filRmSt = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}>\r\n
    \r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filRmSt\");\r\n setColList(c);\r\n }}>\r\n
    \r\n
    \r\n );\r\n };\r\n const filBdType = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}>\r\n
    \r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filBdType\");\r\n setColList(c);\r\n }}>\r\n
    \r\n
    \r\n );\r\n };\r\n const filSmok = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}>\r\n
    \r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filSmok\");\r\n setColList(c);\r\n }}>\r\n
    \r\n
    \r\n );\r\n };\r\n const filRmFeature = () => {\r\n return (\r\n
    \r\n
    \r\n console.log(v)} onClick={() => setShowRoomFeaturesModal(!showRoomFeaturesModal)}>\r\n Room Features\r\n \r\n setShowRoomFeaturesModal(!showRoomFeaturesModal)}>\r\n \r\n \r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filRmFeature\");\r\n setColList(c);\r\n }}>\r\n
    \r\n
    \r\n );\r\n };\r\n const filIncnnRm = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n console.log(\"checkbox is \" + isChecked)}>Inter-connecting Rooms Only\r\n
    \r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filIncnnRm\");\r\n setColList(c);\r\n }}>\r\n
    \r\n
    \r\n );\r\n };\r\n const filAdjRm = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n console.log(\"checkbox is \" + isChecked)}>Adjoining Rooms Only\r\n
    \r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filAdjRm\");\r\n setColList(c);\r\n }}>\r\n
    \r\n
    \r\n );\r\n };\r\n const filIncon = () => {\r\n return (\r\n <>\r\n {\r\n ReservationListFilterModel.Data.IsIncognitoName = isChecked;\r\n setSelectedIncong(isChecked);\r\n }}\r\n onClose={() => {\r\n ReservationListFilterModel.Data.IsIncognitoName = false;\r\n setSelectedIncong(false);\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filIncon\");\r\n setColList(c);\r\n }}>\r\n Incognito Name\r\n \r\n\r\n {/*
    \r\n \r\n
    \r\n {\r\n ReservationListFilterModel.Data.IsIncognitoName = isChecked;\r\n setSelectedIncong(isChecked);\r\n }}\r\n >\r\n Incognito Name\r\n \r\n
    \r\n {\r\n ReservationListFilterModel.Data.IsIncognitoName = false;\r\n setSelectedIncong(false);\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filIncon\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n */}\r\n \r\n );\r\n };\r\n const filSmBkArr = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n console.log(\"checkbox is \" + isChecked)}>Same Day Booked & Arrival\r\n
    \r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filSmBkArr\");\r\n setColList(c);\r\n }}>\r\n
    \r\n
    \r\n );\r\n };\r\n const filSmArrCan = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n console.log(\"checkbox is \" + isChecked)}>Same Day Arrival Cancellation\r\n
    \r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filSmArrCan\");\r\n setColList(c);\r\n }}>\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const filEarlyDeparture = () => {\r\n return (\r\n //
    \r\n //
    \r\n //
    \r\n // {\r\n // console.log(\"checkbox is \" + ischecked);\r\n // }}>\r\n // Early Departure\r\n // \r\n //
    \r\n // {\r\n // let c = [];\r\n // c = colList.filter((d) => d.key !== \"filEarlyDeparture\");\r\n // setColList(c);\r\n // }}>\r\n //
    \r\n //
    \r\n <>\r\n {\r\n ReservationListFilterModel.Data.IsEarlyDeparture = isChecked;\r\n setSelectedEarlyDeparture(isChecked);\r\n }}\r\n onClose={() => {\r\n ReservationListFilterModel.Data.IsEarlyDeparture = false;\r\n setSelectedEarlyDeparture(false);\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filEarlyDeparture\");\r\n setColList(c);\r\n }}>\r\n Early Departure\r\n \r\n \r\n );\r\n };\r\n\r\n\r\n const filBlockRoom = () => {\r\n return (\r\n //
    \r\n //
    \r\n //
    \r\n // {\r\n // console.log(\"checkbox is \" + ischecked);\r\n // }}>\r\n // Show Block Rooms Only\r\n // \r\n //
    \r\n // {\r\n // let c = [];\r\n // c = colList.filter((d) => d.key !== \"filBlockRoom\");\r\n // setColList(c);\r\n // }}>\r\n //
    \r\n //
    \r\n <>\r\n {\r\n ReservationListFilterModel.Data.IsShowBlockRoomsOnly = isChecked;\r\n setSelectedShowBlockRoom(isChecked);\r\n }}\r\n onClose={() => {\r\n ReservationListFilterModel.Data.IsShowBlockRoomsOnly = false;\r\n setSelectedShowBlockRoom(false);\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filBlockRoom1\");\r\n setColList(c);\r\n }}>\r\n Show Block Rooms Only\r\n \r\n \r\n );\r\n };\r\n\r\n const filComplimentary = () => {\r\n return (\r\n <>\r\n {\r\n console.log(isChecked)\r\n ReservationListFilterModel.Data.IsOnlyComplimentary = isChecked;\r\n setSelectedShowComplementary(isChecked);\r\n }}\r\n onClose={() => {\r\n ReservationListFilterModel.Data.IsOnlyComplimentary = false;\r\n setSelectedShowComplementary(false);\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filComplimentary\");\r\n setColList(c);\r\n }}>\r\n Show only Complimentary rooms\r\n \r\n \r\n )\r\n }\r\n\r\n const filHouseUse = () => {\r\n return (\r\n <>\r\n {\r\n ReservationListFilterModel.Data.IsOnlyHouseUsed = isChecked;\r\n setSelectedShowHouseUse(isChecked);\r\n }}\r\n onClose={() => {\r\n ReservationListFilterModel.Data.IsOnlyHouseUsed = false;\r\n setSelectedShowHouseUse(false);\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filHouseUse\");\r\n setColList(c);\r\n }}>\r\n Show only House Use Rooms\r\n \r\n \r\n )\r\n }\r\n //#endregion\r\n\r\n const DummyOption = [\r\n { key: \"1\", value: \"Option 1\" },\r\n { key: \"2\", value: \"Option 2\" },\r\n { key: \"3\", value: \"Option 3\" },\r\n { key: \"4\", value: \"Option 4\" },\r\n { key: \"5\", value: \"Option 5\" },\r\n ];\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Reservation

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n {\r\n setshowLeftBlueBar(true);\r\n }}>\r\n {\r\n setshowLeftBlueBar(true);\r\n }}>\r\n Today's Arrival (75)\r\n \r\n \r\n \r\n \r\n
    \r\n\r\n\r\n
    \r\n setShowPayMasterPopup(!showPayMasterPopup)}>+ New PM\r\n {/* {\r\n history.push(\"/ReservationAdd\");\r\n }}>\r\n + New Reservation\r\n */}\r\n {/* setTooltipOpen(!tooltipOpen)}>\r\n Confirm\r\n */}\r\n {\r\n if (item.key == \"New Reservation\") {\r\n handleUserRights(\"44\").then(d => {\r\n if (d) {\r\n dispatch(setIsWalkIn(false));\r\n dispatch(setIsSharer(false));\r\n history.push({\r\n pathname: \"/ReservationAdd\",\r\n state: { Mode: \"Add\", filterObj: (ReservationListFilterModel.Data) }\r\n });\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n }\r\n else if (item.key == \"Walk In\") {\r\n handleUserRights(\"44\").then(d => {\r\n if (d) {\r\n dispatch(setIsWalkIn(true));\r\n dispatch(setIsSharer(false));\r\n history.push({\r\n pathname: \"/ReservationAdd\",\r\n state: { Mode: \"Edit\", filterObj: (ReservationListFilterModel.Data) }\r\n });\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n }\r\n }}>\r\n New Reservation\r\n \r\n\r\n \r\n Export\r\n \r\n 1 ?\r\n false\r\n :\r\n true\r\n }\r\n list={ActionOption}\r\n buttonType=\"DropdownWithButton\"\r\n type=\"Action\"\r\n id=\"ActionButton\"\r\n title=\"Action\"\r\n onChange={(item) => handleMultiActionMenu(item)}>\r\n Actions (50)\r\n \r\n
    setShowAdvancedSearchModal(!showAdvancedSearchModal)}>\r\n \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n \r\n {\r\n console.log(items);\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n setReservationStatus(v);\r\n }}\r\n fixedHeaderNo={2}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n actionPopup(item);\r\n //history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n setSelectedReservation(rowdata);\r\n handleRmAssignmentData([rowdata]);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n ReservationListFilterModel.Data.SortCol = sn;\r\n ReservationListFilterModel.Data.SortType = st;\r\n if (page === 1) fillDataGrid();\r\n else setPage(1);\r\n }}>\r\n {\r\n setPage(v);\r\n }}\r\n style={{ float: \"right\" }}\r\n />\r\n
    \r\n\r\n {showReservationPopup == true && (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Mr. Rohit Sharma\r\n \r\n \r\n \r\n Booking No: 3456234\r\n
    \r\n
    \r\n
    \r\n {/* Res. No. 12345678910     Ref. No. 54238521{\" \"} */}\r\n \r\n Checked-out\r\n \r\n\r\n \r\n Action\r\n \r\n {\r\n setShowReservationPopup(false);\r\n }}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Arrival\r\n Sat, 12th Mar, 15:20 (4 Ngt.)\r\n
    \r\n
    \r\n \r\n {\" \"}\r\n Executive Suite \r\n \r\n \r\n 324 Inspected\r\n \r\n
    \r\n
    \r\n 2 Adult\r\n 1 Child\r\n
    \r\n
    \r\n Make My Trip\r\n \r\n \r\n \r\n
    \r\n
    \r\n Arvind Ltd.\r\n \r\n \r\n \r\n
    \r\n
    Bar Rate with Breakfast
    \r\n
    \r\n \r\n {\" \"}\r\n Room Rate \r\n \r\n \r\n 3500 + Taxes\r\n \r\n
    \r\n
    \r\n (Negotiated Rate)\r\n Daily Rate\r\n
    \r\n
    \r\n Inclusions\r\n (4)\r\n
    \r\n
    \r\n
    4 Nights  Inclusive of all taxes
    \r\n
    \r\n 4480\r\n
    \r\n\r\n {\r\n history.push(\"/ReservationView\");\r\n }}>\r\n View\r\n \r\n
    \r\n
    \r\n
    \r\n
    Reservation
    \r\n
    \r\n Checked out time\r\n 05:30\r\n
    \r\n
    \r\n Transportation\r\n Pickup, Drop\r\n
    \r\n\r\n
    BILLING
    \r\n
    \r\n Routing Instruction\r\n (1)\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n Ms Mansi Sharma\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    Sharing
    \r\n \r\n Member: 45234 (Gold)\r\n \r\n
    \r\n\r\n
    \r\n Future bookings\r\n (1)\r\n
    \r\n
    \r\n Preview / print / e-mail folio\r\n \r\n
    \r\n
    \r\n Incognito\r\n \r\n console.log(v)} id=\"221434\">\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )}\r\n\r\n {/* blue bg inside menu Start */}\r\n {showLeftBlueBar == true && (\r\n {\r\n setshowLeftBlueBar(!showLeftBlueBar);\r\n }}>\r\n )}\r\n {/* blue bg inside menu End */}\r\n\r\n {/* Advanced Filter Popup Start */}\r\n\r\n {showAdvancedSearchModal ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Filters

    \r\n
    \r\n
    \r\n
    \r\n {\r\n setColList(items);\r\n setColListKeys(item);\r\n if (item.length > 0) {\r\n setShowFilter(true);\r\n } else {\r\n setShowFilter(false);\r\n }\r\n }}\r\n label=\"More Filters\"\r\n searchable={[\"Search\", \"No matching property\"]}\r\n className=\"button-layout-dd gray-btn\"\r\n buttonLayout={true}>\r\n
    \r\n ResetFilter()\r\n // setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }>\r\n Reset\r\n \r\n {\r\n if (page === 1) fillDataGrid();\r\n else setPage(1);\r\n setShowAdvancedSearchModal(!showAdvancedSearchModal);\r\n }}>\r\n Apply\r\n \r\n { setShowAdvancedSearchModal(!showAdvancedSearchModal); }}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n {/*
    \r\n
    \r\n
    \r\n
    \r\n {\r\n ReservationListFilterModel.Data.FromDate = e;\r\n setSelectedFromDate(e);\r\n }}\r\n placeholder=\"Date From\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Date From\">\r\n
    \r\n
    \r\n {\r\n ReservationListFilterModel.Data.ToDate = e;\r\n setSelectedToDate(e);\r\n }}\r\n placeholder=\"Date To\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Date To\">\r\n
    \r\n
    \r\n
    \r\n
    */}\r\n {/*
    \r\n
    \r\n
    \r\n {\r\n ReservationListFilterModel.Data.DtType = item.key;\r\n setSelectedDtType(item);\r\n }}\r\n //ref={refDateType}\r\n >\r\n
    \r\n
    \r\n
    */}\r\n
    \r\n
    \r\n {\r\n ReservationListFilterModel.Data.BookingNo = v;\r\n setSelectedBookingNo(v);\r\n }}\r\n value={ReservationListFilterModel.Data.BookingNo}>\r\n Booking No\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n ReservationListFilterModel.Data.FirstName = v;\r\n setSelectedFirstName(v);\r\n }}\r\n value={ReservationListFilterModel.Data.FirstName}>\r\n First Name\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n ReservationListFilterModel.Data.LastName = v;\r\n setSelectedLastName(v);\r\n }}\r\n value={ReservationListFilterModel.Data.LastName}>\r\n Last Name\r\n \r\n
    \r\n
    \r\n {/*
    \r\n
    \r\n console.log(v)}>Room No\r\n \r\n
    \r\n
    */}\r\n
    \r\n
    \r\n
    \r\n {\r\n let str = \"\";\r\n setSelectedResStatus(item);\r\n if (item.length > 0) {\r\n item.map((d) => {\r\n str = str + d + \",\";\r\n ReservationListFilterModel.Data.ReservationStatus = str;\r\n });\r\n } else {\r\n ReservationListFilterModel.Data.ReservationStatus = str;\r\n }\r\n }}\r\n //ref={refMembershipLvl}\r\n >\r\n
    \r\n {\r\n ReservationListFilterModel.Data.ReservationStatus = \"\";\r\n setSelectedResStatus([]);\r\n // let c = [];\r\n // c = colList.filter((d) => d.key !== \"filMemLvl\");\r\n // setColList(c);\r\n }}>\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n {\r\n // ReservationListFilterModel.Data.FromDate = e;\r\n // setSelectedFromDate(e);\r\n if (location.state != undefined) {\r\n if (location.state.filterObj != undefined) {\r\n if (location.state.filterObj.Submenu == \"Due Out Today\") {\r\n let oldDate = ReservationListFilterModel.Data.FromDate;\r\n console.log(oldDate);\r\n console.log(selectedFromDate);\r\n if (new Date(moment(e).format(\"DD-MMM-YYYY\")).getTime() < new Date(moment(businessDate).format(\"DD-MMM-YYYY\")).getTime()) {\r\n setSelectedFromDate(e);\r\n setTimeout(() => {\r\n setSelectedFromDate(oldDate);\r\n }, 1);\r\n alert(\"Cannot select date less than business date.\")\r\n\r\n //ReservationListFilterModel.Data.FromDate = oldDate;\r\n }\r\n else {\r\n ReservationListFilterModel.Data.FromDate = e;\r\n setSelectedFromDate(e);\r\n }\r\n }\r\n else {\r\n ReservationListFilterModel.Data.FromDate = e;\r\n setSelectedFromDate(e);\r\n }\r\n }\r\n }\r\n else {\r\n ReservationListFilterModel.Data.FromDate = e;\r\n setSelectedFromDate(e);\r\n }\r\n }}\r\n placeholder=\"Date From\"\r\n label=\"Date From\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}>\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(e)\r\n if (location.state != undefined) {\r\n if (location.state.filterObj != undefined) {\r\n if (location.state.filterObj.Submenu == \"Due Out Today\") {\r\n let oldDate = ReservationListFilterModel.Data.ToDate;\r\n console.log(oldDate);\r\n console.log(selectedToDate);\r\n if (new Date(moment(e).format(\"DD-MMM-YYYY\")).getTime() < new Date(moment(businessDate).format(\"DD-MMM-YYYY\")).getTime()) {\r\n setSelectedToDate(e);\r\n setTimeout(() => {\r\n setSelectedToDate(oldDate);\r\n }, 1);\r\n alert(\"Cannot select date less than business date.\")\r\n\r\n //ReservationListFilterModel.Data.FromDate = oldDate;\r\n }\r\n else {\r\n ReservationListFilterModel.Data.ToDate = e;\r\n setSelectedToDate(e);\r\n }\r\n }\r\n else {\r\n ReservationListFilterModel.Data.ToDate = e;\r\n setSelectedToDate(e);\r\n }\r\n }\r\n }\r\n else {\r\n\r\n ReservationListFilterModel.Data.ToDate = e;\r\n setSelectedToDate(e);\r\n }\r\n\r\n }}\r\n placeholder=\"Date To\"\r\n label=\"Date To\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}>\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n ReservationListFilterModel.Data.RoomSerNo = item.key;\r\n setRoomNo(item);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n ReservationListFilterModel.Data.DtType = item.key;\r\n setSelectedDtType(item);\r\n }}\r\n //ref={refDateType}\r\n >\r\n
    \r\n
    \r\n
    \r\n\r\n {showFilter ? (\r\n <>\r\n {colList.map((o) =>\r\n o.key === \"filRoomType\" ? (\r\n filRoomType()\r\n // ) : o.key === \"filRoomNo\" ? (\r\n // filRoomNo()\r\n // ) : o.key === \"filResSt\" ? (\r\n // filResSt()\r\n // ) : o.key === \"fillFromDate\" ? (\r\n // fillFromDate()\r\n // ) : o.key === \"fillDateType\" ? (\r\n // fillDateType()\r\n // ) : o.key === \"fillToDate\" ? (\r\n // fillToDate()\r\n ) : o.key === \"filBlockNo\" ? (\r\n filBlockNo()\r\n ) : o.key === \"filPartyNo\" ? (\r\n filPartyNo()\r\n ) : o.key === \"filMemNo\" ? (\r\n filMemNo()\r\n ) : o.key === \"filRmFeature\" ? (\r\n filRmFeature()\r\n ) : o.key === \"filFloor\" ? (\r\n filFloor()\r\n ) : o.key === \"filRtCd\" ? (\r\n filRtCd()\r\n ) : o.key === \"filCom\" ? (\r\n filCom()\r\n ) : o.key === \"filAgt\" ? (\r\n filAgt()\r\n ) : o.key === \"filParty\" ? (\r\n filParty()\r\n ) : o.key === \"filResType\" ? (\r\n filResType()\r\n ) : o.key === \"filBkRefNo\" ? (\r\n filBkRefNo()\r\n ) : o.key === \"filETA\" ? (\r\n filETA()\r\n ) : o.key === \"filAdChild\" ? (\r\n filAdChild()\r\n ) : o.key === \"filNight\" ? (\r\n filNight()\r\n ) : o.key === \"filMemLvl\" ? (\r\n filMemLvl()\r\n ) : o.key === \"filVIPSt\" ? (\r\n filVIPSt()\r\n ) : o.key === \"filRmAssign\" ? (\r\n filRmAssign()\r\n ) : o.key === \"filRmSt\" ? (\r\n filRmSt()\r\n ) : o.key === \"filBdType\" ? (\r\n filBdType()\r\n ) : o.key === \"filSmok\" ? (\r\n filSmok()\r\n ) : o.key === \"filIncnnRm\" ? (\r\n filIncnnRm()\r\n ) : o.key === \"filAdjRm\" ? (\r\n filAdjRm()\r\n ) : o.key === \"filIncon\" ? (\r\n filIncon()\r\n ) : o.key === \"filSmBkArr\" ? (\r\n filSmBkArr()\r\n ) : o.key === \"filEarlyDeparture\" ? (\r\n filEarlyDeparture()\r\n ) : o.key === \"filBlockRoom1\" ? (\r\n filBlockRoom()\r\n ) : o.key === \"filSmArrCan\" ? (\r\n filSmArrCan()\r\n ) : o.key === \"filComplimentary\" ? (\r\n filComplimentary()\r\n ) : o.key === \"filHouseUse\" ? (\r\n filHouseUse()\r\n ) : (\r\n <>404\r\n )\r\n )}\r\n \r\n ) : (\r\n <>\r\n )}\r\n\r\n {/*
    \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Early Departure\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Show Block Rooms Only\r\n \r\n
    \r\n
    */}\r\n
    \r\n
    \r\n ) : null}\r\n\r\n {showAgentSearchFilterModal ? (\r\n setShowAgentSearchFilterModal(false)}\r\n handleOnSelect={(selected) => {\r\n setSelectedAgent(selected);\r\n setShowAgentSearchFilterModal(false);\r\n }}\r\n ProfileType=\"Ag\">\r\n ) : (\r\n <>\r\n )}\r\n {showCompanySearchFilterModal ? (\r\n setShowCompanySearchFilterModal(false)}\r\n handleOnSelect={(selected) => {\r\n setSelectedCompany(selected);\r\n setShowCompanySearchFilterModal(false);\r\n }}\r\n ProfileType=\"Co\">\r\n ) : (\r\n <>\r\n )}\r\n\r\n {showRoomFeaturesModal ? (\r\n setShowRoomFeaturesModal(false)}>\r\n
    \r\n
    \r\n
    \r\n

    Room Features

    \r\n
    \r\n
    \r\n Reset\r\n Apply\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    In Room
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n {\" \"}\r\n Adjoining Room{\" \"}\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n {\" \"}\r\n Inter-Connected Room{\" \"}\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n {\" \"}\r\n Accessible Room{\" \"}\r\n \r\n\r\n
    \r\n
    Other Preferences
    \r\n
    \r\n Room Location (2)\r\n \r\n \r\n \r\n
    \r\n
    \r\n Bathroom Amenities\r\n (2)\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Show Selected (6){\" \"}\r\n \r\n
    \r\n\r\n
    \r\n
    Room location
    \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n High Floor\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Low Floor\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Pool Side\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Corner\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Near to Elevator\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Away form Elevator\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Sea Facing\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Partial sea facing view\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Garden View\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n With Balcony\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Quiet\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n disabled=\"disabled\">\r\n Disable Checkbox\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n disabled=\"disabled\">\r\n Disable Checkbox\r\n \r\n
    Bathroom Amenities
    \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Some Text\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Some Text\r\n \r\n
    Others
    \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Some Text\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Some Text\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n {/* Advanced Filter Popup End */}\r\n\r\n {/* Room Assignment Modal Popup Start */}\r\n {showRoomAssignmentPopup ? : <>}\r\n\r\n {/* Room Assignment Modal Popup End */}\r\n\r\n {/* Room Assignment Guest detail Popup Start */}\r\n {showRoomGuestDetailPopup ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n 205 Ececutive\r\n
    \r\n
    \r\n
    \r\n {\r\n setShowRoomGuestDetailPopup(false);\r\n }}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when\r\n an unknown.\r\n

    \r\n
    \r\n Smoking\r\n Not Allowed\r\n
    \r\n
    \r\n Floor\r\n 2nd Floor\r\n
    \r\n
    \r\n
    \r\n
    \r\n Size\r\n 45 x 60\r\n
    \r\n
    \r\n Max Adult\r\n 3\r\n
    \r\n
    \r\n Max Child\r\n 1\r\n
    \r\n
    \r\n Bed Type\r\n Twin\r\n
    \r\n
    \r\n Website Link\r\n \r\n
    \r\n
    \r\n Floor Plan\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n\r\n {/* Cancel / No Show Modal Popup Start */}\r\n {showCancelPopup ? {\r\n setShowCancelPopup(false);\r\n setTimeout(() => {\r\n fillDataGrid();\r\n }, 100);\r\n }}\r\n >\r\n \r\n : null}\r\n {/* Cancel / No Show Modal Popup End */}\r\n\r\n {/* Room Move Modal Popup Start */}\r\n {showRoomMovePopup ? {\r\n setShowRoomMovePopup(false);\r\n fillDataGrid();\r\n }}> : null}\r\n {showLinkReservationPopup ?\r\n {\r\n setShowLinkReservationPopup(false);\r\n console.log(\"IsUpdateLinkPary..>\", IsUpdateLinkPary);\r\n if (IsUpdateLinkPary) {\r\n fillDataGrid();\r\n }\r\n }}> : null}\r\n {\r\n showPayMasterPopup ?\r\n {\r\n setShowPayMasterPopup(!showPayMasterPopup)\r\n setTimeout(() => {\r\n fillDataGrid();\r\n }, 50);\r\n }}\r\n >\r\n \r\n :\r\n null\r\n }\r\n {/* {showRoomMovePopup ? (\r\n setShowRoomMovePopup(false)}>\r\n
    \r\n
    \r\n
    \r\n

    Room Move

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {showRoomMoveFilterModal ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Filters

    \r\n
    \r\n
    \r\n Reset\r\n Apply\r\n setShowRoomMoveFilterModal(!showRoomMoveFilterModal)}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\" \"} */}\r\n {/* filter-elements-section */}\r\n {/*
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { }}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { }}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { }}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { }}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { }}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Adjoining Rooms Only\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Interconnecting Rooms Only\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Accessible Room Only\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    */}\r\n {/*
    \r\n
    \r\n console.log(v)}>Room No\r\n \r\n
    \r\n
    */}\r\n {/*
    \r\n
    \r\n ) : null} */}\r\n\r\n {/*
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Room Features (2/3)\r\n \r\n \r\n \r\n
    \r\n
    \r\n
      \r\n
    • \r\n Non-Smoking Room\r\n
    • \r\n
    • \r\n Twin Bed\r\n
    • \r\n
    • \r\n Inter-Connected\r\n
    • \r\n
    • \r\n Inter-Connected\r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Include Due In Rooms\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Show all Room Types\r\n \r\n
    setShowRoomMoveFilterModal(!showRoomMoveFilterModal)}>\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Room No.\r\n \r\n Room Type\r\n \r\n HK StatusArv. TimeRes. statusAssigned toAction
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n \r\n
    \r\n
    \r\n 0023\r\n ExecutiveCL14:22\r\n DIN\r\n Mr. Rohan Shah\r\n \r\n console.log(item, name)}>\r\n Assign\r\n \r\n \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n \r\n
    \r\n
    \r\n 0023\r\n \r\n Executive {\" \"}\r\n CL14:22\r\n DIN\r\n Mr. Rohan Shah\r\n \r\n console.log(item, name)}>\r\n Assign\r\n \r\n \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n \r\n
    \r\n
    \r\n 0023\r\n ExecutiveCL14:22\r\n DIN\r\n Mr. Rohan Shah\r\n Assign\r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n \r\n
    \r\n
    \r\n 0023\r\n ExecutiveCL14:22\r\n DIN\r\n Mr. Rohan Shah\r\n \r\n console.log(item, name)}>\r\n Assign\r\n \r\n \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n \r\n
    \r\n
    \r\n 0023\r\n ExecutiveCL14:22\r\n DIN\r\n Mr. Rohan Shah\r\n \r\n console.log(item, name)}>\r\n Assign\r\n \r\n \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n \r\n
    \r\n
    \r\n 0023\r\n ExecutiveCL14:22\r\n DIN\r\n Mr. Rohan Shah\r\n \r\n console.log(item, name)}>\r\n Assign\r\n \r\n \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n \r\n
    \r\n
    \r\n 0023\r\n ExecutiveCL14:22\r\n DIN\r\n Mr. Rohan Shah\r\n \r\n console.log(item, name)}>\r\n Assign\r\n \r\n \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n \r\n
    \r\n
    \r\n 0023\r\n ExecutiveCL14:22\r\n DIN\r\n Mr. Rohan Shah\r\n \r\n console.log(item, name)}>\r\n Assign\r\n \r\n \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n \r\n
    \r\n
    \r\n 0023\r\n ExecutiveCL14:22\r\n DIN\r\n Mr. Rohan Shah\r\n \r\n console.log(item, name)}>\r\n Assign\r\n \r\n \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n \r\n
    \r\n
    \r\n 0023\r\n ExecutiveCL14:22\r\n DIN\r\n Mr. Rohan Shah\r\n \r\n console.log(item, name)}>\r\n Assign\r\n \r\n \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n \r\n
    \r\n
    \r\n 0023\r\n ExecutiveCL14:22\r\n DIN\r\n Mr. Rohan Shah\r\n \r\n console.log(item, name)}>\r\n Assign\r\n \r\n \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n \r\n
    \r\n
    \r\n 0023\r\n ExecutiveCL14:22\r\n DIN\r\n Mr. Rohan Shah\r\n \r\n console.log(item, name)}>\r\n Assign\r\n \r\n \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n \r\n
    \r\n
    \r\n 0023\r\n ExecutiveCL14:22\r\n DIN\r\n Mr. Rohan Shah\r\n \r\n console.log(item, name)}>\r\n Assign\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Move
    \r\n
    \r\n 302 Executive\r\n \r\n 204 Suite\r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}>\r\n
    \r\n Note (Room Move)\r\n
    \r\n console.log(item, name)}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n setShowRoomMovePopup(false)} className=\"w100p m0\">\r\n Move Room\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null} */}\r\n {/* Room Move Modal Popup End */}\r\n\r\n {/* ReservationStatus ToolTip */}\r\n\r\n {\r\n reservationStatus.Status == \"ARD\" ?\r\n (\r\n { setReservationStatus(\"\"); }} >\r\n )\r\n :\r\n reservationStatus.Status == \"CAN\" ?\r\n (\r\n { setReservationStatus(\"\"); }} >\r\n )\r\n :\r\n reservationStatus.Status == \"COT\" ?\r\n (\r\n { setReservationStatus(\"\"); }} >\r\n )\r\n :\r\n reservationStatus.Status == \"DOT\" ?\r\n (\r\n { setReservationStatus(\"\"); }} >\r\n )\r\n :\r\n reservationStatus.Status == \"DIN\" ?\r\n (\r\n { setReservationStatus(\"\"); }}>\r\n )\r\n :\r\n reservationStatus.Status == \"HLD\" ?\r\n (\r\n { setReservationStatus(\"\"); }} >\r\n )\r\n :\r\n reservationStatus.Status == \"INH\" ?\r\n (\r\n { setReservationStatus(\"\"); }} >\r\n )\r\n :\r\n reservationStatus.Status == \"NSH\" ?\r\n (\r\n { setReservationStatus(\"\"); }} >\r\n )\r\n :\r\n reservationStatus.Status == \"TEN\" ?\r\n (\r\n { setReservationStatus(\"\"); }} >\r\n )\r\n :\r\n <>\r\n }\r\n {/* {tooltipOpen ? setTooltipOpen(false)}> : null} */}\r\n {/* ReservationStatus ToolTip End */}\r\n
    \r\n );\r\n}\r\n\r\n//export default ReservationListPage\r\n","import React,{useState} from \"react\";\r\nimport {InnTabs} from \"../../../component\";\r\n\r\nexport function ReservationPage(){\r\n //tab JSON\r\n const [tabCollection, setTabCollection] = useState([\r\n {\r\n Id: \"Ms. Preeti Iyengar\",\r\n Detail: \"MMT23456789\",\r\n isEdit: false,\r\n tooltipTitle: \"Ms. Preeti Iyengar\",\r\n tooltipContent: \"MMT23456789\",\r\n },\r\n {\r\n Id: \"Mr. Vaibhav Jain\",\r\n Detail: \"MMT23456789\",\r\n isEdit: false,\r\n tooltipTitle: \"Mr. Vaibhav Jain\",\r\n tooltipContent: \"MMT23456789\",\r\n },\r\n {\r\n Id: \"Mr. Tan Eng Siong\",\r\n Detail: \"MMT23456789\",\r\n isEdit: false,\r\n tooltipTitle: \"Mr. Tan Eng Siong\",\r\n tooltipContent: \"MMT23456789\",\r\n },\r\n {\r\n Id: \"Mr. Vasantha Raghavan\",\r\n Detail: \"MMT23456789\",\r\n isEdit: false,\r\n tooltipTitle: \"Mr. Vasantha Raghavan\",\r\n tooltipContent: \"MMT23456789\",\r\n },\r\n {\r\n Id: \"Mr. Arvin D'souza\",\r\n Detail: \"MMT23456789\",\r\n isEdit: false,\r\n tooltipTitle: \"Mr. Arvin D'souza\",\r\n tooltipContent: \"MMT23456789\",\r\n },\r\n {\r\n Id: \"Ms. Divya Agarwal\",\r\n Detail: \"MMT23456789\",\r\n isEdit: false,\r\n tooltipTitle: \"Ms. Divya Agarwal\",\r\n tooltipContent: \"MMT23456789\",\r\n },\r\n ]);\r\n //Tab ID\r\n const [tabId, setTabId] = useState(\"tab1\");\r\n\r\n return(\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Reservation

    \r\n
    \r\n
    \r\n
    \r\n {\r\n setTabCollection(data);\r\n setTabId(\"tab1\");\r\n }}\r\n handleTabClick={(tabid) => {\r\n setTabId(tabid);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n}\r\n//export default ReservationPage;","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnLoader,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetRateGroupMaster, GetRateGroupMasterBySerNo, AddEditRateGroupMaster, cmbGetRateTypeMaster } from \"../../../../services/frontMasterService\";\r\n\r\nexport function RateGroupMaster(props) {\r\n //#region Local Variable\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"RateGroupSerNo\": 0,\r\n \"RateTypeSerNo\": \"0\",\r\n \"Name\": \"\",\r\n \"Mode\": \"View\"\r\n }\r\n const defaultRateType = {\r\n \"key\": '0',\r\n \"value\": 'Select'\r\n }\r\n const validationObj = {\r\n \"RateTypeSerNo\": \"\",\r\n \"Name\": \"\"\r\n }\r\n //#endregion\r\n\r\n //#region State variable\r\n const [rateGroupData, setRateGroupData] = useState([]);\r\n const [filterRateGroupData, setFilterRateGroupData] = useState([]);\r\n const [rateGroupObj, setRateGroupObj] = useState(defaultObj);\r\n const [rateTypeData, setRateTypeData] = useState([]);\r\n const [rateGroupValidation, setRateGroupValidation] = useState(validationObj);\r\n const [selectedRateGroupSerNo, setSelectedRateGroupSerNo] = useState(\"\");\r\n const [isActive, setIsActive] = useState(false);\r\n //#endregion\r\n\r\n //#region UseEffact\r\n useEffect(() => {\r\n getRateGroupData();\r\n setIsActive(true);\r\n cmbGetRateTypeMaster(parseInt(currUser.ClientSerNo)).then(d => {\r\n setIsActive(false);\r\n setRateTypeData([defaultRateType, ...d.data]);\r\n })\r\n }, [])\r\n //#endregion\r\n\r\n //#region Custom function\r\n const getRateGroupData = () => {\r\n setIsActive(true);\r\n GetRateGroupMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n setIsActive(false);\r\n setRateGroupData(d.data);\r\n setFilterRateGroupData(d.data);\r\n if (d.data.length > 0 && rateGroupObj.Mode == \"View\") {\r\n getSelectedRateGroupData(d.data[0].RateGroupSerNo);\r\n }\r\n })\r\n }\r\n\r\n const getSelectedRateGroupData = (rateTypeSerNo) => {\r\n setIsActive(true);\r\n GetRateGroupMasterBySerNo(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(rateTypeSerNo)).then(d => {\r\n setIsActive(false);\r\n d.data.Mode = \"View\";\r\n setRateGroupObj(d.data);\r\n })\r\n }\r\n const isValidData = () => {\r\n let isValid = true;\r\n if (rateGroupObj.Name == \"\") {\r\n isValid = false;\r\n setRateGroupValidation(prev => ({ ...prev, Name: \"Enter the Name\" }));\r\n }\r\n if (rateGroupObj.RateTypeSerNo == \"0\") {\r\n isValid = false;\r\n setRateGroupValidation(prev => ({ ...prev, RateTypeSerNo: \"Please select any Rate Type\" }));\r\n }\r\n return isValid;\r\n }\r\n //#endregion\r\n\r\n //#region Events\r\n const handleOnRateGroupClick = (e) => {\r\n setRateGroupValidation(validationObj);\r\n getSelectedRateGroupData(e.target.id);\r\n setSelectedRateGroupSerNo(e.target.id);\r\n }\r\n const handleOnAddClick = () => {\r\n defaultObj.Mode = \"Add\";\r\n setRateGroupObj(defaultObj);\r\n }\r\n const handleOnEditClick = () => {\r\n setRateGroupObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidData();\r\n if (IsPageValid) {\r\n setIsActive(true);\r\n AddEditRateGroupMaster(rateGroupObj).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n getRateGroupData();\r\n getSelectedRateGroupData(d.data.ReturnValue);\r\n } else {\r\n alert(d.data.Message);\r\n }\r\n })\r\n setRateGroupObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alert(\"One or more field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n const handleOnSearchChanged = (e) => {\r\n setRateGroupValidation(validationObj);\r\n setRateGroupObj(defaultObj);\r\n let filterData = rateGroupData.filter(item => item.Name.toLowerCase().includes(e.toLowerCase()));\r\n setFilterRateGroupData(filterData);\r\n // if (filterData.length > 0 && rateGroupObj.Mode == \"View\") {\r\n // getSelectedRateGroupData(filterData[0].RateGroupSerNo);\r\n // }\r\n }\r\n const hanldeOnCancelClick = () => {\r\n setRateGroupValidation(validationObj);\r\n if (rateGroupObj.Mode != \"Edit\") {\r\n setRateGroupObj(defaultObj);\r\n }\r\n else {\r\n getSelectedRateGroupData(selectedRateGroupSerNo);\r\n }\r\n }\r\n //#endregion\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Rate Group Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Rate Groups
    \r\n
    \r\n
      \r\n {\r\n filterRateGroupData.map(d =>\r\n \r\n \r\n {d.Name}\r\n \r\n \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n\r\n {\r\n if (v == \"\") {\r\n setRateGroupValidation(prev => ({ ...prev, Name: \"Enter Name\" }))\r\n } else {\r\n setRateGroupValidation(prev => ({ ...prev, Name: \"\" }))\r\n setRateGroupObj(prev => ({ ...prev, Name: v }));\r\n }\r\n\r\n\r\n }}>Name\r\n
    \r\n {\r\n setRateGroupObj(prev => ({ ...prev, RateTypeSerNo: item.key }))\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n Activate console.log(v)} id=\"1\">\r\n {\r\n rateGroupObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\n//export default RateGroupMaster;","import React, { useState, useEffect, useRef } from \"react\";\r\nimport {\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnCheckbox,\r\n InnSingleSelectDropdown,\r\n InnActionButton,\r\n} from \"../../../../component\";\r\nimport {\r\n GetRoomFeature, GetRoomFeatureRoomData\r\n} from \"../../../../services/reservationService\";\r\nimport { AddRoomMasterFeatureDetail } from \"../../../../services/reservationService\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nexport default function RoomFeaturesModal(props) {\r\n const currUser = useSelector(currentUser);\r\n const [fillBedTypeComboData, setFillBedTypeComboData] = useState([]);\r\n const [fillSmokingTypeComboData, setFillSmokingTypeComboData] = useState([]);\r\n const [selectedBedTypeValue, setSelectedBedTypeValue] = useState(\"\");\r\n const [selectedSmokingTypeValue, setSelectedSmokingTypeValue] = useState(\"\");\r\n const [roomFeatureData, setRoomFeatureData] = useState([]);\r\n const [GroupNameSectionShow, setGroupNameSectionShow] = useState(false);\r\n const [groupCollection, setGroupCollection] = useState([]);\r\n const [groupId, setGroupId] = useState(\"\");\r\n const [isShowSelected, setIsShowSelected] = useState(false);\r\n const [roomFeatureRoomData, setRoomFeatureRoomData] = useState([]);\r\n\r\n const handleOnclose = (x, length) => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(x, length);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (props.para != undefined) {\r\n console.log(props.para);\r\n GetRoomFeature(parseInt(props.para.ClientSerNo), parseInt(props.para.PropertySerNo)).then(\r\n (response) => {\r\n if (response.data != undefined) {\r\n response.data.RoomFeatures.map((o) => {\r\n o.checked = false;\r\n //fill bed type combo start\r\n if (o.RoomFeatureTypeSerNo == \"BDT\") {\r\n let obj = [{ key: 0, value: \"Select\" }];\r\n response.data.RoomFeatureValues.map((b) => {\r\n if (o.RoomFeatureSerNo == b.RoomFeatureSerNo) {\r\n obj.push({ key: b.key, value: b.Value });\r\n }\r\n setFillBedTypeComboData(obj);\r\n });\r\n }\r\n //fill bed type combo end\r\n\r\n //fill smoking type combo start\r\n if (o.RoomFeatureTypeSerNo == \"SMK\") {\r\n let obj = [{ key: 0, value: \"Select\" }];\r\n response.data.RoomFeatureValues.map((s) => {\r\n if (o.RoomFeatureSerNo == s.RoomFeatureSerNo) {\r\n obj.push({ key: s.key, value: s.Value });\r\n }\r\n setFillSmokingTypeComboData(obj);\r\n });\r\n }\r\n //fill smoking type combo end\r\n });\r\n\r\n //for unique group collection logic start\r\n let unique = [...groupCollection];\r\n response.data.RoomFeatures.filter(\r\n (f) =>\r\n f.RoomFeatureTypeSerNo != \"BDT\" &&\r\n f.RoomFeatureTypeSerNo != \"SMK\" &&\r\n f.RoomFeatureTypeSerNo != \"ADJ\" &&\r\n f.RoomFeatureTypeSerNo != \"INCN\" &&\r\n f.RoomFeatureTypeSerNo != \"ARM\"\r\n ).map((d) => {\r\n let o = unique.find(\r\n (x) => x.RoomFeaturesGroupSerNo == d.RoomFeaturesGroupSerNo\r\n );\r\n if (o == undefined) unique.push(d);\r\n });\r\n setGroupCollection(unique);\r\n //for unique group collection logic end\r\n setRoomFeatureData(response.data);\r\n if (props.para.RoomSerNo != undefined) {\r\n GetRoomFeatureRoomData(props.para.ClientSerNo, props.para.PropertySerNo, props.para.RoomSerNo).then((d) => {\r\n setRoomFeatureRoomData(d.data);\r\n if (d.data.length > 0) {\r\n let temp = { ...response.data };\r\n if (temp.RoomFeatureValues != undefined) {\r\n temp.RoomFeatureValues.map((o) => {\r\n d.data.map((p) => {\r\n if (p.RoomFeatureValueSerNo == o.RoomFeatureValueSerNo) {\r\n if (o.RoomFeatureTypeSerNo == \"BDT\") {\r\n setSelectedBedTypeValue(p.RoomFeatureValueSerNo);\r\n }\r\n if (o.RoomFeatureTypeSerNo == \"SMK\") {\r\n setSelectedSmokingTypeValue(p.RoomFeatureValueSerNo);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n }\r\n });\r\n }\r\n } else {\r\n console.log(\"Data Not Found\");\r\n }\r\n }\r\n );\r\n }\r\n }, []);\r\n\r\n const handleBedTypeChange = (item) => {\r\n setSelectedBedTypeValue(item.key);\r\n let objData1 = roomFeatureData.RoomFeatureValues.find(ele => ele.key == item.key);\r\n if (objData1) {\r\n objData1.DisplayName = item.value;\r\n if (props.para != undefined) {\r\n objData1.ClientSerNo = parseInt(props.para.ClientSerNo);\r\n objData1.PropertySerNo = parseInt(props.para.PropertySerNo);\r\n objData1.ReservationSerNo = 0;\r\n }\r\n\r\n let temp = [...roomFeatureRoomData];\r\n let tempData = temp.find(x => x.RoomFeatureSerNo == objData1.RoomFeatureSerNo);\r\n if (tempData) {\r\n let index = temp.indexOf(tempData);\r\n temp.splice(index, 1);\r\n }\r\n temp.push(objData1);\r\n setRoomFeatureRoomData(temp);\r\n } else {\r\n let temp = [...roomFeatureRoomData];\r\n let filterRoom = temp.filter(x => x.RoomFeatureTypeSerNo != \"BDT\");\r\n setRoomFeatureRoomData(filterRoom);\r\n }\r\n };\r\n //change event for bed type combo end\r\n\r\n //change event for smoking type combo start\r\n const handleSmokingTypeChange = (item) => {\r\n setSelectedSmokingTypeValue(item.key);\r\n let objData2 = roomFeatureData.RoomFeatureValues.find(x => x.key == item.key);\r\n if (objData2) {\r\n objData2.DisplayName = item.value;\r\n if (props.para != undefined) {\r\n objData2.ClientSerNo = props.para.ClientSerNo;\r\n objData2.PropertySerNo = props.para.PropertySerNo;\r\n objData2.ReservationSerNo = 0;\r\n }\r\n let temp = [...roomFeatureRoomData];\r\n let tempData = temp.find(x => x.RoomFeatureSerNo == objData2.RoomFeatureSerNo);\r\n if (tempData) {\r\n let index = temp.indexOf(tempData);\r\n temp.splice(index, 1);\r\n }\r\n temp.push(objData2);\r\n setRoomFeatureRoomData(temp);\r\n } else {\r\n let temp = [...roomFeatureRoomData];\r\n let filterRoom = temp.filter(x => x.RoomFeatureTypeSerNo != \"SMK\");\r\n setRoomFeatureRoomData(filterRoom);\r\n }\r\n };\r\n //change event for smoking type combo end\r\n\r\n const handleCheckboxClick = (e) => {\r\n if (e.target.checked) {\r\n let obj = roomFeatureData.RoomFeatureValues.find((f) => f.RoomFeatureSerNo == e.target.id && f.Value == \"1\");\r\n obj.checked = true;\r\n let displayName = roomFeatureData.RoomFeatures.find((f1) => f1.RoomFeatureSerNo == obj.RoomFeatureSerNo);\r\n obj.DisplayName = displayName.Name;\r\n if (props.para != undefined && props.para != \"\") {\r\n obj.ClientSerNo = props.para.ClientSerNo;\r\n obj.PropertySerNo = props.para.PropertySerNo;\r\n obj.ReservationSerNo = 0;\r\n }\r\n let temp = [...roomFeatureRoomData];\r\n temp.push(obj);\r\n setRoomFeatureRoomData(temp);\r\n } else {\r\n let filterRoom = roomFeatureRoomData.filter((x) => x.RoomFeatureSerNo != e.target.id);\r\n setRoomFeatureRoomData(filterRoom);\r\n }\r\n };\r\n\r\n const handleGroupNameClick = (e) => {\r\n setGroupId(e.target.id);\r\n setGroupNameSectionShow(true);\r\n };\r\n\r\n const ResetRoomFeature = () => {\r\n setSelectedBedTypeValue(0);\r\n setSelectedSmokingTypeValue(0);\r\n setRoomFeatureRoomData([]);\r\n setIsShowSelected(false);\r\n }\r\n\r\n const SaveRoomFeature = () => {\r\n let data = [];\r\n let tempData = []\r\n roomFeatureRoomData.forEach(x => {\r\n data.push({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n RoomSerNo: props.para.RoomSerNo,\r\n RoomFeatureSerNo: x.RoomFeatureSerNo,\r\n RoomFeatureValueSerNo: x.RoomFeatureValueSerNo\r\n })\r\n tempData.push({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n RoomSerNo: props.para.RoomSerNo,\r\n RoomFeatureSerNo: x.RoomFeatureSerNo,\r\n RoomFeatureValueSerNo: x.RoomFeatureValueSerNo\r\n })\r\n })\r\n\r\n let IsPageValid = true;\r\n // if (selectedBedTypeValue == 0) {\r\n // IsPageValid = false;\r\n // setRoomFeatureValidation((prev) => ({ ...prev, BedType: \"Please select valid bed type\" }));\r\n // }\r\n // if (selectedSmokingTypeValue == 0) {\r\n // IsPageValid = false;\r\n // setRoomFeatureValidation((prev) => ({ ...prev, SmokingType: \"Please select valid smoking type\" }));\r\n // }\r\n console.log(\"data updated\", data);\r\n if (data.length == 0) {\r\n data.push({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n RoomSerNo: props.para.RoomSerNo,\r\n RoomFeatureSerNo: 0,\r\n RoomFeatureValueSerNo: 0\r\n })\r\n }\r\n\r\n if (IsPageValid) {\r\n AddRoomMasterFeatureDetail(data).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n } else {\r\n console.log(\"Something went wrong\");\r\n }\r\n })\r\n handleOnclose(props.para.RoomSerNo, tempData);\r\n } else {\r\n alert(\"One or more validation error occured.\");\r\n }\r\n }\r\n\r\n return (\r\n handleOnclose(props.para.RoomSerNo)}>\r\n
    \r\n
    \r\n
    \r\n

    Room Features

    \r\n
    \r\n
    \r\n ResetRoomFeature()}>\r\n Reset\r\n \r\n {\r\n SaveRoomFeature()\r\n }}>\r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setIsShowSelected(ischecked);\r\n }}\r\n checked={isShowSelected}\r\n className=\"mrgn-tp10\"\r\n >\r\n Show Selected\r\n ({\r\n isShowSelected ?\r\n roomFeatureRoomData.filter((f) =>\r\n f.RoomFeatureTypeSerNo != \"BDT\" &&\r\n f.RoomFeatureTypeSerNo != \"SMK\" &&\r\n f.RoomFeatureTypeSerNo != \"ADJ\" &&\r\n f.RoomFeatureTypeSerNo != \"INCN\" &&\r\n f.RoomFeatureTypeSerNo != \"ARM\"\r\n ).length\r\n : 0\r\n })\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    In Room
    \r\n
    \r\n {\r\n console.log(\"bed type change\", item);\r\n handleBedTypeChange(item);\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n handleSmokingTypeChange(item);\r\n }}\r\n >\r\n
    \r\n {\r\n roomFeatureData.RoomFeatures == undefined\r\n ?\r\n (<>)\r\n :\r\n (roomFeatureData.RoomFeatures.filter((ele) =>\r\n ele.RoomFeatureTypeSerNo == \"ADJ\" ||\r\n ele.RoomFeatureTypeSerNo == \"INCN\" ||\r\n ele.RoomFeatureTypeSerNo == \"ARM\"\r\n ).map((d) => (\r\n handleCheckboxClick(e)}\r\n onChecked={(ischecked) => { }}\r\n checked={\r\n roomFeatureRoomData.filter((x) =>\r\n x.RoomFeatureSerNo == d.RoomFeatureSerNo).length > 0\r\n ? true\r\n : false\r\n }\r\n >{d.Name}\r\n )))\r\n }\r\n\r\n
    \r\n
    \r\n Other Preferences\r\n
    \r\n {\r\n roomFeatureData.RoomFeatures == undefined ?\r\n (<>)\r\n : (\r\n groupCollection.map((m) => (\r\n handleGroupNameClick(e)}\r\n id={m.RoomFeaturesGroupSerNo}\r\n >\r\n {m.GroupName}\r\n ({\r\n roomFeatureRoomData.filter((x) =>\r\n x.RoomFeatureTypeSerNo != \"BDT\" &&\r\n x.RoomFeatureTypeSerNo != \"SMK\" &&\r\n x.RoomFeatureTypeSerNo != \"ADJ\" &&\r\n x.RoomFeatureTypeSerNo != \"INCN\" &&\r\n x.RoomFeatureTypeSerNo != \"ARM\"\r\n ).length > 0\r\n ? roomFeatureRoomData.filter((f) =>\r\n f.RoomFeatureTypeSerNo != \"BDT\" &&\r\n f.RoomFeatureTypeSerNo != \"SMK\" &&\r\n f.RoomFeatureTypeSerNo != \"ADJ\" &&\r\n f.RoomFeatureTypeSerNo != \"INCN\" &&\r\n f.RoomFeatureTypeSerNo != \"ARM\" &&\r\n f.RoomFeaturesGroupSerNo == m.RoomFeaturesGroupSerNo\r\n ).length\r\n : 0\r\n })\r\n \r\n \r\n f.RoomFeatureTypeSerNo != \"BDT\" &&\r\n f.RoomFeatureTypeSerNo != \"SMK\" &&\r\n f.RoomFeatureTypeSerNo != \"ADJ\" &&\r\n f.RoomFeatureTypeSerNo != \"INCN\" &&\r\n f.RoomFeatureTypeSerNo != \"ARM\" &&\r\n f.RoomFeaturesGroupSerNo == m.RoomFeaturesGroupSerNo\r\n ).length > 0\r\n ? \"has-preferences\"\r\n : \"\"\r\n }\r\n id={m.RoomFeaturesGroupSerNo}\r\n >\r\n \r\n \r\n
    \r\n ))\r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n Check Availability\r\n
    \r\n
    \r\n {/* {GroupNameSectionShow == true ? ( */}\r\n
    \r\n
    \r\n {isShowSelected ? (\r\n
    \r\n
    \r\n All\r\n
    \r\n {\r\n roomFeatureData.RoomFeatures == undefined ? (\r\n <>\r\n ) : (\r\n roomFeatureData.RoomFeatures.filter((f) =>\r\n f.RoomFeatureTypeSerNo != \"BDT\" &&\r\n f.RoomFeatureTypeSerNo != \"SMK\" &&\r\n f.RoomFeatureTypeSerNo != \"ADJ\" &&\r\n f.RoomFeatureTypeSerNo != \"INCN\" &&\r\n f.RoomFeatureTypeSerNo != \"ARM\"\r\n ).map((m) =>\r\n roomFeatureRoomData.filter((x) =>\r\n x.RoomFeatureSerNo == m.RoomFeatureSerNo\r\n ).length > 0 ? (\r\n { }}\r\n id={m.RoomFeatureSerNo}\r\n onClick={(e) => handleCheckboxClick(e)}\r\n checked={\r\n roomFeatureRoomData.filter((x) =>\r\n x.RoomFeatureSerNo == m.RoomFeatureSerNo\r\n ).length > 0\r\n ? true\r\n : false\r\n }\r\n >\r\n {m.Name}\r\n \r\n ) : (\r\n <>\r\n )\r\n )\r\n )\r\n }\r\n
    \r\n ) : GroupNameSectionShow == true ? (\r\n
    \r\n
    \r\n {\r\n groupCollection.map((m) =>\r\n m.RoomFeaturesGroupSerNo == groupId\r\n ? (m.GroupName)\r\n : (<>)\r\n )\r\n }\r\n
    \r\n {\r\n roomFeatureData.RoomFeatures == undefined ? (\r\n <>\r\n ) : (\r\n roomFeatureData.RoomFeatures.filter((f) =>\r\n f.RoomFeaturesGroupSerNo == groupId &&\r\n f.RoomFeatureTypeSerNo != \"ADJ\" &&\r\n f.RoomFeatureTypeSerNo != \"INCN\" &&\r\n f.RoomFeatureTypeSerNo != \"ARM\"\r\n ).map((m) => (\r\n handleCheckboxClick(e)}\r\n checked={\r\n roomFeatureRoomData.filter((x) =>\r\n x.RoomFeatureSerNo == m.RoomFeatureSerNo\r\n ).length > 0\r\n ? true\r\n : false\r\n }\r\n >\r\n {m.Name}\r\n \r\n ))\r\n )\r\n }\r\n
    \r\n ) : (\r\n <>\r\n )}\r\n
    \r\n
    \r\n {/* ) : (\r\n <>\r\n )} */}\r\n
    \r\n \r\n
    \r\n );\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnMultiSelectDropdown,\r\n useConfirm,\r\n InnLoader,\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\"\r\nimport { useSelector } from \"react-redux\";\r\nimport { cmbGetRoomTypeMaster } from \"../../../../services/reservationService\";\r\nimport { GetRoomMasterSerNo, GetAllRoomMasterData, AddEditAllRoomMasterData } from \"../../../../services/reservationService\";\r\nimport { GetBuildingMaster } from \"../../../../services/frontMasterService\";\r\nimport { GetRoomMaster } from \"../../../../services/roomMasterService\";\r\nimport { cmbGetHousekeepingSectionGroup } from \"../../../../services/housekeepingServiceMaster\";\r\nimport RoomFeaturesModal from \"./room-feature-modal\";\r\nimport { GetRoomFeatureRoomData } from \"../../../../services/reservationService\";\r\nimport { GetFloorMaster } from \"../../../../services/frontMasterService\";\r\nexport function RoomMaster() {\r\n\r\n const selectData = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const defaultRoomTypeObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"RoomTypeSerNo\": 0,\r\n \"RoomSerNo\": 0,\r\n }\r\n\r\n const defaultRoomObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"RoomSerNo\": 0,\r\n \"RoomNo\": \"\",\r\n \"Name\": \"\",\r\n \"RoomTypeSerNo\": 0,\r\n \"MinOccupancy\": 0,\r\n \"MaxOccupancy\": 0,\r\n \"FloorSerNo\": 0,\r\n \"SquareUnits\": \"\",\r\n \"Measurement\": \"\",\r\n \"PhoneNumber\": \"\",\r\n \"BuildingSerNo\": 0,\r\n \"Sequence\": 0,\r\n \"ConnectingRoom1\": \"0\",\r\n \"ConnectingRoom2\": \"0\",\r\n \"ConnectingRoom3\": \"0\",\r\n \"AdjoiningRoom1\": \"0\",\r\n \"AdjoiningRoom2\": \"0\",\r\n \"AdjoiningRoom3\": \"0\",\r\n \"MaxAdult\": 0,\r\n \"MaxChild\": 0,\r\n \"DayHousekeepingSectionSerNo\": 0,\r\n \"EveningHousekeepingSectionSerNo\": 0,\r\n \"Turndown\": true,\r\n \"HKStatusSerNo\": 1,\r\n \"Mode\": \"View\"\r\n }\r\n\r\n const validationObject = {\r\n \"RoomNo\": \"\",\r\n \"Name\": \"\",\r\n \"RoomTypeSerNo\": \"\",\r\n \"RoomSerNo\": \"\",\r\n \"FloorSerNo\": \"\",\r\n \"MinOccupancy\": \"\",\r\n \"MaxOccupancy\": \"\",\r\n \"Sequence\": \"\",\r\n \"BuildingSerNo\": \"\",\r\n \"MaxAdult\": \"\",\r\n \"MaxChild\": \"\"\r\n }\r\n\r\n const [isActive, setIsActive] = useState(true);\r\n const [showRoomFeaturesModal, setShowRoomFeaturesModal] = useState(false);\r\n const [ddlRoomType, setDdlRoomType] = useState([]);\r\n const [buildingList, setBuildingList] = useState([]);\r\n const [roomTypeData, setRoomTypeData] = useState([]);\r\n const [roomTypeObject, setRoomTypeObject] = useState(defaultRoomTypeObj);\r\n const [roomObject, setRoomObject] = useState(defaultRoomObj);\r\n const [roomTypeValidation, setRoomTypeValidation] = useState(validationObject);\r\n const [filterRoomTypeMaster, setFilterRoomTypeMaster] = useState([]);\r\n const [selectedRoomSerNo, setSelectedRoomSerNo] = useState();\r\n const [listRoomMaster, setListRoomMaster] = useState([]);\r\n const [listHousekeepingSection, setListHousekeepingSection] = useState([]);\r\n const [featuresCount, setFeaturesCount] = useState(0);\r\n const [fillFloorData, setFillFloorData] = useState([]);\r\n\r\n const [listSequence, setListSequence] = useState(0);\r\n\r\n useEffect(() => {\r\n cmbGetRoomTypeMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n let temp = [];\r\n d.data.forEach(x => {\r\n temp = [...temp, { key: x.key, value: x.value }]\r\n })\r\n setDdlRoomType(temp);\r\n })\r\n GetBuildingMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n let tempData = [{ key: 0, value: \"Select Building Type\" }];\r\n d.data.map(ele => {\r\n tempData.push({ key: parseInt(ele.BuildingSerNo), value: (ele.Name) });\r\n })\r\n setBuildingList(tempData);\r\n })\r\n }, []);\r\n\r\n useEffect(() => {\r\n GetRoomMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n let temp = d.data;\r\n let tempData = [{ key: 0, value: \"Select\" }];\r\n if (temp && temp.length > 0) {\r\n temp.forEach(ele => {\r\n tempData.push({ key: ele.RoomSerNo, value: ele.Name });\r\n });\r\n }\r\n setListRoomMaster(tempData);\r\n });\r\n\r\n GetFloorMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n let defaultFloorData = [{ key: 0, value: \"Select\" }];\r\n if (d.data != undefined) {\r\n d.data.map((e) => {\r\n defaultFloorData = [\r\n ...defaultFloorData,\r\n {\r\n key: e.FloorSerNo,\r\n value: e.Name,\r\n },\r\n ];\r\n });\r\n }\r\n setFillFloorData(defaultFloorData);\r\n })\r\n }, []);\r\n\r\n useEffect(() => {\r\n cmbGetHousekeepingSectionGroup(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n setListHousekeepingSection(d.data);\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (roomTypeObject.RoomTypeSerNo != 0 || roomTypeObject.RoomTypeSerNo != undefined) {\r\n fillRoomMasterBySerNo(0);\r\n }\r\n }, [roomTypeObject.RoomTypeSerNo])\r\n\r\n useEffect(() => {\r\n if (selectedRoomSerNo != 0 && selectedRoomSerNo != undefined) {\r\n fillRoomTypeData(selectedRoomSerNo);\r\n }\r\n }, [selectedRoomSerNo])\r\n\r\n const fillRoomTypeData = (RoomSerNo) => {\r\n GetAllRoomMasterData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), RoomSerNo).then(d => {\r\n if (d.data) {\r\n setRoomObject(d.data[0]);\r\n setRoomObject((prev) => ({ ...prev, Mode: \"View\" }));\r\n }\r\n })\r\n }\r\n\r\n const fillRoomMasterBySerNo = (selectRoomSerNo) => {\r\n GetRoomMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n let tempData = []\r\n if (d.data && d.data.length > 0) {\r\n d.data.map((x) => {\r\n if (x.RoomTypeSerNo == roomTypeObject.RoomTypeSerNo) {\r\n tempData.push(x)\r\n }\r\n })\r\n setIsActive(false);\r\n let listSort = tempData.sort((a, b) => a.Sequence - b.Sequence);\r\n setRoomTypeData(listSort);\r\n setFilterRoomTypeMaster(listSort);\r\n setRoomObject((prev) => ({ ...prev, Mode: \"View\" }));\r\n if (selectRoomSerNo == 0) {\r\n if (listSort.length > 0) {\r\n setSelectedRoomSerNo(listSort[0].RoomSerNo)\r\n }\r\n }\r\n else {\r\n setSelectedRoomSerNo(selectRoomSerNo)\r\n }\r\n }\r\n else {\r\n setRoomTypeData([]);\r\n setFilterRoomTypeMaster([]);\r\n setRoomObject(defaultRoomObj);\r\n setSelectedRoomSerNo(0)\r\n }\r\n })\r\n }\r\n\r\n const clearValidation = () => {\r\n setRoomTypeValidation(validationObject);\r\n }\r\n\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (roomObject.RoomNo == \"\" || roomObject.RoomNo.trim().length === 0 || roomObject.RoomNo == 0) {\r\n isValid = false;\r\n setRoomTypeValidation(prev => ({ ...prev, RoomNo: \"Invalid Room No\" }));\r\n }\r\n if (roomObject.Name == \"\" || roomObject.Name.trim().length === 0) {\r\n isValid = false;\r\n setRoomTypeValidation(prev => ({ ...prev, Name: \"Invalid Name\" }));\r\n }\r\n if (parseInt(roomObject.RoomTypeSerNo) == 0 || isNaN(+roomObject.RoomTypeSerNo)) {\r\n isValid = false;\r\n setRoomTypeValidation(prev => ({ ...prev, RoomTypeSerNo: \"Invalid Room Type\" }));\r\n }\r\n if (roomObject.FloorSerNo == \"\" || isNaN(+roomObject.FloorSerNo) || /\\s/g.test(roomObject.FloorSerNo)) {\r\n isValid = false;\r\n setRoomTypeValidation(prev => ({ ...prev, FloorSerNo: \"Invalid Floor No\" }));\r\n }\r\n if (roomObject.MinOccupancy === \"\" || isNaN(+roomObject.MinOccupancy) || /\\s/g.test(roomObject.MinOccupancy) || roomObject.MinOccupancy <= 0) {\r\n isValid = false;\r\n setRoomTypeValidation(prev => ({ ...prev, MinOccupancy: \"Invalid Minimum Occupancy\" }));\r\n }\r\n if (roomObject.MaxOccupancy === \"\" || isNaN(+roomObject.MaxOccupancy) || /\\s/g.test(roomObject.MaxOccupancy) || roomObject.MaxOccupancy <= 0) {\r\n isValid = false;\r\n setRoomTypeValidation(prev => ({ ...prev, MaxOccupancy: \"Invalid Maximum Occupancy\" }));\r\n }\r\n if (roomObject.Sequence === \"\" || isNaN(+roomObject.Sequence) || /\\s/g.test(roomObject.Sequence) || roomObject.Sequence < 0) {\r\n isValid = false;\r\n setRoomTypeValidation(prev => ({ ...prev, Sequence: \"Invalid Sequence\" }));\r\n }\r\n if (roomObject.MaxAdult === \"\" || isNaN(+roomObject.MaxAdult) || /\\s/g.test(roomObject.MaxAdult) || roomObject.MaxAdult < 0) {\r\n isValid = false;\r\n setRoomTypeValidation(prev => ({ ...prev, MaxAdult: \"Invalid Maximum Adult\" }));\r\n }\r\n if (roomObject.MaxChild === \"\" || isNaN(+roomObject.MaxChild) || /\\s/g.test(roomObject.MaxChild) || roomObject.MaxChild < 0) {\r\n isValid = false;\r\n setRoomTypeValidation(prev => ({ ...prev, MaxChild: \"Invalid Maximum Child\" }));\r\n }\r\n if (roomObject.BuildingSerNo == 0 || roomObject.BuildingSerNo == undefined) {\r\n isValid = false;\r\n setRoomTypeValidation(prev => ({ ...prev, BuildingSerNo: \"Invalid Building Type\" }));\r\n }\r\n return isValid;\r\n }\r\n\r\n const handleOnAddClick = () => { \r\n if (listSequence == 0) {\r\n alertFunction(\"Room Type not selected\");\r\n } else {\r\n let obj = JSON.parse(JSON.stringify(defaultRoomObj));\r\n obj.Mode = \"Add\";\r\n setRoomObject(obj);\r\n setFeaturesCount(0);\r\n }\r\n }\r\n\r\n const handleOnEditClick = () => {\r\n if (roomObject.RoomNo == \"\") {\r\n alertFunction(\"No room selected.\")\r\n } else {\r\n setRoomObject(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n }\r\n\r\n const handleOnCancelClick = () => {\r\n clearValidation();\r\n let existingObj = roomTypeData.find((x) => x.RoomSerNo == selectedRoomSerNo);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setRoomObject(existingObj);\r\n fillRoomTypeData(selectedRoomSerNo);\r\n } else {\r\n setRoomObject(prev => ({ ...prev, RoomNo: \"\", RoomSerNo: 0, Mode: \"View\" }));\r\n }\r\n }\r\n\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n let obj = roomObject;\r\n obj.HKStatusSerNo = 1\r\n if (IsPageValid) {\r\n AddEditAllRoomMasterData(obj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n setIsActive(true);\r\n alertFunction(d.data.Message);\r\n fillRoomMasterBySerNo(parseInt(d.data.ReturnValue));\r\n setRoomObject((prev) => ({ ...prev, RoomSerNo: parseInt(d.data.ReturnValue) }))\r\n } else {\r\n alertFunction(\"Something Went Wrong\");\r\n }\r\n })\r\n } else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n\r\n const handleOnSearchClick = (d) => {\r\n let searchFilter = roomTypeData.filter(x => x.Name.toLowerCase().includes(d.toLowerCase()));\r\n setFilterRoomTypeMaster(searchFilter);\r\n }\r\n\r\n const handleRoomClick = (e) => {\r\n clearValidation();\r\n let temp = roomTypeData.find(x => x.RoomSerNo == e.target.id);\r\n temp.Mode = \"View\";\r\n setRoomObject(temp)\r\n fillRoomTypeData(e.target.id);\r\n setSelectedRoomSerNo(e.target.id);\r\n }\r\n\r\n const getRoomFeaturesList = (RoomSerNo) => {\r\n if (roomObject.RoomSerNo !== 0) {\r\n GetRoomFeatureRoomData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), RoomSerNo).then((d) => {\r\n setFeaturesCount(d.data.length);\r\n })\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (roomObject.RoomSerNo != undefined) {\r\n getRoomFeaturesList(roomObject.RoomSerNo);\r\n }\r\n }, [roomObject.RoomSerNo])\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Room Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n {\r\n setListSequence(item.key);\r\n if (item.key == 0) {\r\n setFeaturesCount(item.key);\r\n setRoomTypeData([]);\r\n setFilterRoomTypeMaster([]);\r\n setRoomObject(defaultRoomObj);\r\n }\r\n else {\r\n setRoomTypeObject(prev => ({ ...prev, RoomTypeSerNo: item.key }));\r\n }\r\n }}\r\n searchable={[\"Search for Room Type \", \"No matching Room Type\"]}\r\n >\r\n
    List of Rooms
    \r\n
    \r\n
      \r\n {\r\n filterRoomTypeMaster && filterRoomTypeMaster.map((d, index) => (\r\n
    • \r\n {d.Name}\r\n
    • \r\n ))\r\n }\r\n
    \r\n
    \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n {\r\n setRoomObject(prev => ({ ...prev, RoomNo: v }));\r\n setRoomTypeValidation(prev => ({ ...prev, RoomNo: \"\" }));\r\n }}\r\n >Room No\r\n {\r\n setRoomObject(prev => ({ ...prev, Name: v }));\r\n setRoomTypeValidation(prev => ({ ...prev, Name: \"\" }));\r\n }}\r\n >Name\r\n
    \r\n {\r\n setRoomObject(prev => ({ ...prev, RoomTypeSerNo: parseInt(item.key) }));\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n setRoomObject(prev => ({ ...prev, FloorSerNo: parseInt(item.key) }));\r\n }}\r\n >\r\n
    \r\n {\r\n setRoomObject(prev => ({ ...prev, SquareUnits: v }));\r\n }}\r\n >Square Unit\r\n {\r\n setRoomObject(prev => ({ ...prev, Measurement: v }));\r\n }}\r\n >Measurement\r\n {\r\n setRoomObject(prev => ({ ...prev, PhoneNumber: v }));\r\n }}\r\n >Phone Number\r\n \r\n
    \r\n Turndown\r\n {\r\n setRoomObject(prev => ({ ...prev, Turndown: v }));\r\n }}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n if (!isNaN(+v) && parseInt(v) >= 0) {\r\n setRoomTypeValidation(prev => ({ ...prev, MinOccupancy: \"\" }));\r\n setRoomObject(prev => ({ ...prev, MinOccupancy: parseInt(v) }));\r\n }\r\n else {\r\n setRoomTypeValidation(prev => ({ ...prev, MinOccupancy: \"Invalid Minimum Occupancy\" }));\r\n setRoomObject(prev => ({ ...prev, MinOccupancy: v }));\r\n }\r\n }}\r\n >Minimum Occupancy\r\n {\r\n if (!isNaN(+v) && parseInt(v) >= 0) {\r\n setRoomTypeValidation(prev => ({ ...prev, MaxOccupancy: \"\" }));\r\n setRoomObject(prev => ({ ...prev, MaxOccupancy: parseInt(v) }));\r\n }\r\n else {\r\n setRoomTypeValidation(prev => ({ ...prev, MaxOccupancy: \"Invalid Maximum Occupancy\" }));\r\n setRoomObject(prev => ({ ...prev, MaxOccupancy: v }));\r\n }\r\n }}\r\n >Maximum Occupancy\r\n {\r\n if (!isNaN(+v) && parseInt(v) >= 0) {\r\n setRoomTypeValidation(prev => ({ ...prev, MaxAdult: \"\" }));\r\n setRoomObject(prev => ({ ...prev, MaxAdult: parseInt(v) }));\r\n }\r\n else {\r\n setRoomTypeValidation(prev => ({ ...prev, MaxAdult: \"Invalid Maximum Adult\" }));\r\n setRoomObject(prev => ({ ...prev, MaxAdult: v }));\r\n }\r\n }}\r\n >Maximum Adults\r\n {\r\n if (!isNaN(+v) && parseInt(v) >= 0) {\r\n setRoomObject(prev => ({ ...prev, MaxChild: parseInt(v) }));\r\n setRoomTypeValidation(prev => ({ ...prev, MaxChild: \"\" }));\r\n }\r\n else {\r\n setRoomTypeValidation(prev => ({ ...prev, MaxChild: \"Invalid Maximum Child\" }));\r\n setRoomObject(prev => ({ ...prev, MaxChild: v }));\r\n }\r\n }}\r\n >Maximum Child\r\n {\r\n if (!isNaN(+v) && parseInt(v) >= 0) {\r\n setRoomTypeValidation(prev => ({ ...prev, Sequence: \"\" }));\r\n setRoomObject(prev => ({ ...prev, Sequence: parseInt(v) }));\r\n }\r\n else {\r\n setRoomTypeValidation(prev => ({ ...prev, Sequence: \"Invalid Sequence\" }));\r\n setRoomObject(prev => ({ ...prev, Sequence: v }));\r\n }\r\n }}\r\n >Sequence\r\n
    \r\n {\r\n setRoomObject(prev => ({ ...prev, BuildingSerNo: parseInt(item.key) }))\r\n }}>\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n {\r\n setRoomObject((prev) => ({\r\n ...prev,\r\n ConnectingRoom1: item.key.toString(),\r\n }));\r\n }}\r\n searchable={[\"Search for Connecting Room1 \", \"No matching Connecting Room1\"]}\r\n >\r\n
    \r\n
    \r\n {\r\n setRoomObject((prev) => ({\r\n ...prev,\r\n ConnectingRoom2: item.key.toString(),\r\n\r\n }));\r\n }}\r\n searchable={[\"Search for Connecting Room2 \", \"No matching Connecting Room2\"]}\r\n >\r\n
    \r\n
    \r\n {\r\n setRoomObject((prev) => ({\r\n ...prev,\r\n ConnectingRoom3: item.key.toString(),\r\n }));\r\n }}\r\n searchable={[\"Search for Connecting Room3 \", \"No matching Connecting Room3\"]}\r\n >\r\n
    \r\n
    \r\n {\r\n setRoomObject((prev) => ({\r\n ...prev,\r\n AdjoiningRoom1: item.key.toString(),\r\n }));\r\n }}\r\n searchable={[\"Search for Adjoining Room1 \", \"No matching Adjoining Room1\"]}\r\n >\r\n
    \r\n
    \r\n {\r\n setRoomObject((prev) => ({\r\n ...prev,\r\n AdjoiningRoom2: item.key.toString(),\r\n }));\r\n }}\r\n searchable={[\"Search for Adjoining Room2 \", \"No matching Adjoining Room2\"]}\r\n >\r\n
    \r\n
    \r\n {\r\n setRoomObject((prev) => ({\r\n ...prev,\r\n AdjoiningRoom3: item.key.toString(),\r\n }));\r\n }}\r\n searchable={[\"Search for Adjoining Room3 \", \"No matching Adjoining Room3\"]}\r\n >\r\n
    \r\n
    \r\n {\r\n setRoomObject((prev) => ({\r\n ...prev,\r\n DayHousekeepingSectionSerNo: parseInt(item.key),\r\n }));\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n setRoomObject((prev) => ({\r\n ...prev,\r\n EveningHousekeepingSectionSerNo: parseInt(item.key),\r\n }));\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    {\r\n if (roomObject.RoomNo == \"\") {\r\n alertFunction(\"Room Type not selected\");\r\n } else {\r\n setShowRoomFeaturesModal(!showRoomFeaturesModal)\r\n }\r\n }}>Room Features ({featuresCount})
    \r\n {/* setUpdatePreference(!updatePreference)}\r\n > */}\r\n {/*
    Connecting Rooms
    \r\n
    Adjoining Rooms
    */}\r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n Activate console.log(v)} id=\"1\">\r\n {\r\n roomObject.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n showRoomFeaturesModal ? (\r\n {\r\n setShowRoomFeaturesModal(false);\r\n // getRoomFeaturesList(x);\r\n setTimeout(() => {\r\n if (data) {\r\n setFeaturesCount(data.length);\r\n }\r\n }, 50);\r\n }}\r\n para={{\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n RoomSerNo: roomObject.RoomSerNo\r\n }}\r\n >\r\n \r\n // setShowRoomFeaturesModal(!showRoomFeaturesModal)}>\r\n //
    \r\n //
    \r\n //
    \r\n //

    Room Features

    \r\n //
    \r\n //
    \r\n // \r\n // Reset\r\n // \r\n // \r\n // Save\r\n // \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
      \r\n //
    • \r\n //
      Confirmation No.
      \r\n //
      \r\n // 0000000052\r\n //
      \r\n //
    • \r\n //
    • \r\n //
      Guest Name
      \r\n //
      \r\n // Mr. BASANTILAL LODHA\r\n //
      \r\n //
    • \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n // {\r\n // //setisShowSelected(ischecked);\r\n // }}\r\n // //checked={isShowSelected}\r\n // className=\"mrgn-tp10\"\r\n // >\r\n // Show Selected\r\n // \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    In Room
    \r\n //
    \r\n // {\r\n // // handleBedTypeChange(item);\r\n // }}\r\n // selectedSerNo={0}\r\n // label=\"Bed Type\"\r\n // >\r\n //
    \r\n //
    \r\n // {\r\n // //handleSmokingTypeChange(item);\r\n // }}\r\n // selectedSerNo={\"Option 1\"}\r\n // label=\"Smoking\"\r\n // >\r\n //
    \r\n // handleCheckboxClick(e)}\r\n // onChecked={(ischecked) => { }}\r\n // // checked={}\r\n // >\r\n // Adjoining\r\n // \r\n // handleCheckboxClick(e)}\r\n // onChecked={(ischecked) => { }}\r\n // // checked={}\r\n // >\r\n // Interconnecting\r\n // \r\n // handleCheckboxClick(e)}\r\n // onChecked={(ischecked) => { }}\r\n // // checked={}\r\n // >\r\n // Accessible\r\n // \r\n\r\n //
    \r\n //
    \r\n // Other Preferences\r\n //
    \r\n // handleGroupNameClick(e)}\r\n // id={\"2\"}\r\n // >Room Location\r\n // \r\n // \r\n //
    \r\n\r\n //
    \r\n //
    \r\n //
    \r\n // Check Availability\r\n //
    \r\n //
    \r\n // {/* {GroupNameSectionShow == true ? ( */}\r\n //
    \r\n //
    \r\n // {isShowSelected ? (\r\n //
    \r\n //
    \r\n // All\r\n //
    \r\n // { }}\r\n // id={\"5\"}\r\n // //onClick={(e) => handleCheckboxClick(e)}\r\n // //checked={} \r\n // >\r\n // 1234\r\n // \r\n\r\n //
    \r\n // ) : GroupNameSectionShow == false ? (\r\n //
    \r\n //
    \r\n // 123\r\n //
    \r\n // handleCheckboxClick(e)}\r\n // // checked={}\r\n // >\r\n // 12345\r\n // \r\n\r\n //
    \r\n // ) : (\r\n // <>\r\n // )}\r\n //
    \r\n //
    \r\n // {/* ) : (\r\n // <>\r\n // )} */}\r\n //
    \r\n // \r\n //
    \r\n ) : null\r\n }\r\n \r\n )\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnFileUpload,\r\n InnLoader,\r\n InnPrimaryButton,\r\n InnRadioButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextarea,\r\n InnTextbox,\r\n InnTooltip,\r\n InnPlainButton,\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { GetRoomTypeMaster, GetRoomTypeMasterBySerNo, AddEditRoomTypeMaster } from \"../../../../services/frontMasterService\";\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { RoomFeatureModalPopup } from \"../modalPopup/roomFeatureModalPopup\";\r\n\r\nexport function RoomTypeMaster(props) {\r\n\r\n //#region Local Variable\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"RoomTypeSerNo\": 0,\r\n \"RoomTypeCode\": \"\",\r\n \"Name\": \"\",\r\n \"LongDescription\": \"\",\r\n \"RoomInfoURL\": \"\",\r\n \"Sequence\": 1,\r\n \"MinOccupancy\": 1,\r\n \"MaxOccupancy\": 1,\r\n \"MinAdult\": 1,\r\n \"MaxAdult\": 1,\r\n \"MaxChild\": 0,\r\n \"IsPseudo\": false,\r\n \"IsDefault\": false,\r\n \"DefaultOccupancy\": 1,\r\n \"Maintenance\": false,\r\n \"Housekeeping\": false,\r\n \"Mode\": \"View\",\r\n \"RoomFeatureValues\": []\r\n }\r\n const validationObj = {\r\n \"RoomTypeCode\": \"\",\r\n \"Name\": \"\",\r\n \"Sequence\": \"\",\r\n \"MinAdult\": \"\",\r\n \"MaxAdult\": \"\",\r\n \"MaxChild\": \"\"\r\n }\r\n const rbDataRoomType = [\r\n { key: \"Physical\", value: \"Physical\" },\r\n { key: \"Pseudo\", value: \"Pseudo\" },\r\n ];\r\n //#endregion\r\n\r\n //#region State Variable\r\n const [isActive, setIsActive] = useState(false);\r\n const [roomTypeData, setRoomTypeData] = useState([]);\r\n const [filterRoomTypeData, setFilterRoomTypeData] = useState([]);\r\n const [roomTypeObj, setRoomTypeObj] = useState(defaultObj);\r\n const [showRoomFeaturesModal, setShowRoomFeaturesModal] = useState(false);\r\n const [roomTypeValidation, setRoomTypeValidation] = useState(validationObj)\r\n const [selectedRoomTypeSerNo, setSelectedRoomTypeSerNo] = useState(\"\");\r\n //#endregion\r\n\r\n //#region UseEffect\r\n useEffect(() => {\r\n fillRoomType();\r\n }, []);\r\n //#endregion \r\n\r\n //#region custom function\r\n\r\n const fillSelectedRoomType = (roomTypeSerNo) => {\r\n setIsActive(true);\r\n GetRoomTypeMasterBySerNo(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), roomTypeSerNo).then(d => {\r\n d.data.Mode = \"View\";\r\n setRoomTypeObj(d.data);\r\n setIsActive(false);\r\n })\r\n }\r\n const fillRoomType = () => {\r\n setIsActive(true);\r\n GetRoomTypeMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n setRoomTypeData(d.data);\r\n setFilterRoomTypeData(d.data);\r\n setIsActive(false);\r\n })\r\n }\r\n const clearValidation = () => {\r\n setRoomTypeValidation(validationObj);\r\n }\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (roomTypeObj.RoomTypeCode == \"\") {\r\n isValid = false;\r\n setRoomTypeValidation(prev => ({ ...prev, RoomTypeCode: \"Invalid input\" }))\r\n }\r\n if (roomTypeObj.Name == \"\") {\r\n isValid = false;\r\n setRoomTypeValidation(prev => ({ ...prev, Name: \"Invalid input\" }))\r\n }\r\n if (roomTypeObj.Sequence == \"\" || isNaN(+roomTypeObj.Sequence)) {\r\n isValid = false;\r\n setRoomTypeValidation(prev => ({ ...prev, Sequence: \"Invalid input\" }))\r\n }\r\n if (roomTypeObj.MinAdult == \"\" || isNaN(+roomTypeObj.MinAdult)) {\r\n isValid = false;\r\n setRoomTypeValidation(prev => ({ ...prev, MinAdult: \"Invalid input\" }))\r\n }\r\n if (roomTypeObj.MaxAdult == \"\" || isNaN(+roomTypeObj.MaxAdult)) {\r\n isValid = false;\r\n setRoomTypeValidation(prev => ({ ...prev, MaxAdult: \"Invalid input\" }))\r\n }\r\n if (roomTypeObj.MaxChild != 0) {\r\n if (roomTypeObj.MaxChild == \"\" || isNaN(+roomTypeObj.MaxChild)) {\r\n isValid = false;\r\n setRoomTypeValidation(prev => ({ ...prev, MaxChild: \"Invalid input\" }))\r\n }\r\n }\r\n return isValid;\r\n }\r\n //#endregion\r\n\r\n //#region Events \r\n\r\n const handleOnSearchChanged = (v) => {\r\n let filteredType = roomTypeData.filter(obj => obj.Name.toLowerCase().includes(v.toLowerCase()));\r\n setFilterRoomTypeData(filteredType);\r\n }\r\n const handleOnRoomTypeClick = (e) => {\r\n clearValidation();\r\n fillSelectedRoomType(e.target.id);\r\n setSelectedRoomTypeSerNo(e.target.id);\r\n }\r\n const handleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setRoomTypeObj(obj);\r\n }\r\n const handleOnEditClick = () => {\r\n if (selectedRoomTypeSerNo) {\r\n setRoomTypeObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n else {\r\n alert(\"Please select room type first.\")\r\n }\r\n }\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n setIsActive(true);\r\n AddEditRoomTypeMaster(roomTypeObj).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n if (roomTypeObj.Mode == \"Add\") {\r\n fillSelectedRoomType(parseInt(d.data.ReturnValue));\r\n fillRoomType();\r\n }\r\n } else {\r\n alert(\"Something went wrong\");\r\n }\r\n })\r\n setRoomTypeObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alert(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n const hanldeOnCancelClick = () => {\r\n clearValidation();\r\n if (roomTypeObj.Mode == \"Add\") {\r\n setRoomTypeObj(defaultObj);\r\n }\r\n if (roomTypeObj.Mode == \"Edit\") {\r\n fillSelectedRoomType(selectedRoomTypeSerNo);\r\n }\r\n }\r\n\r\n //#endregion \r\n\r\n //#region Tooltip\r\n const RoomFeaturesTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {\r\n roomTypeObj.RoomFeatureValues ?\r\n
    Room Features ({roomTypeObj.RoomFeatureValues.length})
    \r\n :\r\n
    Room Features (0)
    \r\n }\r\n
      \r\n {\r\n roomTypeObj.RoomFeatureValues && roomTypeObj.RoomFeatureValues.map(d =>\r\n
    • {d.DisplayName}
    • \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n {/*
    \r\n \r\n Edit\r\n \r\n
    */}\r\n
    \r\n );\r\n };\r\n //#endregion\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Room Type Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Room Type
    \r\n
    \r\n
      \r\n {\r\n filterRoomTypeData.map(d =>\r\n \r\n \r\n {d.Name}\r\n \r\n \r\n )\r\n }\r\n
    \r\n
    \r\n {/* */}\r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n console.log(v)}>Upload document\r\n {\r\n setRoomTypeObj(prev => ({ ...prev, RoomTypeCode: v }));\r\n setRoomTypeValidation(prev => ({ ...prev, RoomTypeCode: \"\" }))\r\n }}\r\n >Room Type ID*\r\n {\r\n setRoomTypeObj(prev => ({ ...prev, Name: v }));\r\n setRoomTypeValidation(prev => ({ ...prev, Name: \"\" }))\r\n }}\r\n >Name*\r\n setRoomTypeObj(prev => ({ ...prev, LongDescription: v }))}>Description\r\n
    Type
    \r\n
    \r\n {\r\n if (value == \"Pseudo\") {\r\n setRoomTypeObj(prev => ({ ...prev, IsPseudo: true }))\r\n } else {\r\n setRoomTypeObj(prev => ({ ...prev, IsPseudo: false }))\r\n }\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n {/*
    \r\n console.log(item, name)}\r\n >\r\n
    */}\r\n setRoomTypeObj(prev => ({ ...prev, Maintenance: ischecked }))}>Available for maintenance request\r\n {/* {console.log(\"checkbox is \" + ischecked);}}>Meeting Room */}\r\n setRoomTypeObj(prev => ({ ...prev, Housekeeping: ischecked }))}>Available for Housekeeping\r\n setRoomTypeObj(prev => ({ ...prev, IsDefault: ischecked }))}>Default\r\n setRoomTypeObj(prev => ({ ...prev, RoomInfoURL: v }))}>Room Info. URL\r\n setRoomTypeObj(prev => ({ ...prev, Sequence: parseInt(v) }))}>Sequence of display*\r\n
    \r\n
    \r\n {\r\n if (!isNaN(+v) && parseInt(v) > 0) {\r\n setRoomTypeValidation(prev => ({ ...prev, MinAdult: \"\" }))\r\n setRoomTypeObj(prev => ({ ...prev, MinAdult: parseInt(v) }))\r\n setRoomTypeObj(prev => ({ ...prev, MinOccupancy: parseInt(v) }))\r\n } else {\r\n setRoomTypeValidation(prev => ({ ...prev, MinAdult: \"Invalid Input\" }))\r\n setRoomTypeObj(prev => ({ ...prev, MinAdult: v }))\r\n setRoomTypeObj(prev => ({ ...prev, MinOccupancy: 0 }))\r\n }\r\n }}\r\n >Minimum Adult*\r\n {\r\n if (!isNaN(+v) && parseInt(v) > 0) {\r\n setRoomTypeValidation(prev => ({ ...prev, MaxAdult: \"\" }));\r\n setRoomTypeObj(prev => ({ ...prev, MaxAdult: parseInt(v) }));\r\n if (!isNaN(+roomTypeObj.MaxChild)) {\r\n setRoomTypeObj(prev => ({ ...prev, MaxOccupancy: parseInt(v) + parseInt(roomTypeObj.MaxChild) }));\r\n }\r\n } else {\r\n setRoomTypeValidation(prev => ({ ...prev, MaxAdult: \"Invalid Input\" }))\r\n setRoomTypeObj(prev => ({ ...prev, MaxAdult: v }))\r\n if (!isNaN(+roomTypeObj.MaxChild)) {\r\n setRoomTypeObj(prev => ({ ...prev, MaxOccupancy: parseInt(roomTypeObj.MaxChild) }));\r\n } else {\r\n setRoomTypeObj(prev => ({ ...prev, MaxOccupancy: 0 }));\r\n }\r\n }\r\n }}\r\n >Maximum Adult*\r\n {\r\n if (!isNaN(+v) && parseInt(v) >= 0) {\r\n setRoomTypeValidation(prev => ({ ...prev, MaxChild: \"\" }))\r\n setRoomTypeObj(prev => ({ ...prev, MaxChild: parseInt(v) }))\r\n if (parseInt(roomTypeObj.MaxAdult) > 0) {\r\n setRoomTypeObj(prev => ({ ...prev, MaxOccupancy: parseInt(v) + parseInt(roomTypeObj.MaxAdult) }));\r\n }\r\n } else {\r\n setRoomTypeValidation(prev => ({ ...prev, MaxChild: \"Invalid Input\" }))\r\n setRoomTypeObj(prev => ({ ...prev, MaxChild: v }))\r\n if (parseInt(roomTypeObj.MaxAdult) > 0) {\r\n setRoomTypeObj(prev => ({ ...prev, MaxOccupancy: parseInt(roomTypeObj.MaxAdult) }));\r\n } else {\r\n setRoomTypeObj(prev => ({ ...prev, MaxOccupancy: 0 }));\r\n }\r\n }\r\n }}\r\n >Maximum Child*\r\n setRoomTypeObj(prev => ({ ...prev, DefaultOccupancy: parseInt(v) }))}>Default Occupancy\r\n Minimum Occupancy\r\n Maximum Occupancy\r\n
    \r\n
    \r\n
    \r\n {\r\n roomTypeObj.RoomFeatureValues ?\r\n
    Room Features ({roomTypeObj.RoomFeatureValues.length})
    \r\n :\r\n
    Room Features (0)
    \r\n }\r\n
    \r\n {\r\n if (roomTypeObj.Mode != \"View\")\r\n setShowRoomFeaturesModal(!showRoomFeaturesModal)\r\n }\r\n }\r\n >\r\n
    \r\n
      \r\n {\r\n roomTypeObj.RoomFeatureValues && roomTypeObj.RoomFeatureValues.map(d =>\r\n
    • \r\n {d.DisplayName}\r\n
    • \r\n )\r\n }\r\n
    \r\n \r\n More\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n { console.log(v); }} > Activate\r\n {\r\n roomTypeObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n {showRoomFeaturesModal ? (\r\n setShowRoomFeaturesModal(false)}\r\n handleOnSelect={(v) => {\r\n setRoomTypeObj(prev => ({ ...prev, RoomFeatureValues: v }));\r\n setShowRoomFeaturesModal(false);\r\n }}\r\n >\r\n ) : null}\r\n
    \r\n );\r\n}\r\n\r\n//export default RoomTypeMaster;","import React, { useEffect, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnLoader,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnPlainButton,\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport {\r\n GetUpDowngardeReasonMaster,\r\n AddEditUpDowngardeReasonMaster\r\n} from \"../../../../services/frontMasterService\";\r\n\r\nexport function UpgradeReasonMaster(props) {\r\n //#region Local Variable\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"UpDownReasonSerNo\": 0,\r\n \"Name\": \"\",\r\n \"SequenceNo\": 0,\r\n \"Mode\": \"View\"\r\n }\r\n const validationObj = {\r\n \"Name\": \"\",\r\n \"SequenceNo\": \"\",\r\n }\r\n //#endregion\r\n\r\n //#region State Variable\r\n const [isActive, setIsActive] = useState(false);\r\n const [upDowngradeReasonObj, setUpDowngradeReasonObj] = useState(defaultObj);\r\n const [upDowngradeReasonData, setUpDowngradeReasonData] = useState([]);\r\n const [filterUpDowngradeReasonData, setFilterUpDowngradeReasonData] = useState([]);\r\n const [upDowngradeReasonValidation, setUpDowngradeReasonValidation] = useState(validationObj);\r\n const [selectedUpDowngradeReasonSerNo, setSelectedUpDowngradeReasonSerNo] = useState(\"\");\r\n //#endregion\r\n\r\n //#region UseEffect\r\n useEffect(() => {\r\n fillUpDownReason();\r\n }, []);\r\n //#endregion\r\n\r\n //#region custom function\r\n const fillSelectedUpDownGradeReason = (UpDownReasonSerNo) => {\r\n let obj = upDowngradeReasonData.find(e => parseInt(e.UpDownReasonSerNo) === parseInt(UpDownReasonSerNo))\r\n obj.Mode = \"View\"\r\n setUpDowngradeReasonObj(obj);\r\n }\r\n const fillUpDownReason = () => {\r\n setIsActive(true);\r\n GetUpDowngardeReasonMaster(parseInt(currUser.ClientSerNo),).then(d => {\r\n setUpDowngradeReasonData(d.data);\r\n setFilterUpDowngradeReasonData(d.data);\r\n setIsActive(false);\r\n })\r\n }\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (upDowngradeReasonObj.Name == \"\") {\r\n isValid = false;\r\n setUpDowngradeReasonValidation(prev => ({ ...prev, Name: \"Invalid input\" }))\r\n }\r\n if (upDowngradeReasonObj.SequenceNo == \"\" || isNaN(+upDowngradeReasonObj.SequenceNo) || parseInt(upDowngradeReasonObj.SequenceNo) <= 0) {\r\n isValid = false;\r\n setUpDowngradeReasonValidation(prev => ({ ...prev, SequenceNo: \"Invalid input\" }))\r\n }\r\n return isValid;\r\n }\r\n const clearValidation = () => {\r\n setUpDowngradeReasonValidation(validationObj);\r\n }\r\n //#endregion\r\n //#region Events \r\n const handleOnUpDownResonClick = (e) => {\r\n clearValidation();\r\n fillSelectedUpDownGradeReason(e.target.id);\r\n setSelectedUpDowngradeReasonSerNo(e.target.id);\r\n }\r\n const handleOnSearchChanged = (v) => {\r\n let filteredType = upDowngradeReasonData.filter(obj => obj.Name.toLowerCase().includes(v.toLowerCase()));\r\n setFilterUpDowngradeReasonData(filteredType);\r\n }\r\n const handleOnAddClick = () => {\r\n let obj = defaultObj;\r\n obj.Mode = \"Add\";\r\n setUpDowngradeReasonObj(obj);\r\n }\r\n const handleOnEditClick = () => {\r\n setUpDowngradeReasonObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n setIsActive(true);\r\n upDowngradeReasonObj.SequenceNo = parseInt(upDowngradeReasonObj.SequenceNo)\r\n AddEditUpDowngardeReasonMaster(upDowngradeReasonObj).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n // if(upDowngradeReasonObj.Mode == \"Add\"){ \r\n fillUpDownReason();\r\n // fillSelectedUpDownGradeReason(parseInt(d.data.ReturnValue));\r\n // }\r\n } else {\r\n alert(\"Something went wrong\");\r\n fillSelectedUpDownGradeReason(parseInt(upDowngradeReasonObj.UpDownReasonSerNo));\r\n }\r\n })\r\n setUpDowngradeReasonObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alert(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n const hanldeOnCancelClick = () => {\r\n clearValidation();\r\n if (upDowngradeReasonObj.Mode == \"Add\") {\r\n setUpDowngradeReasonObj(defaultObj);\r\n }\r\n if (upDowngradeReasonObj.Mode == \"Edit\") {\r\n fillSelectedUpDownGradeReason(selectedUpDowngradeReasonSerNo);\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Upgrade Reason Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Upgrade Reasons
    \r\n
    \r\n
      \r\n {\r\n filterUpDowngradeReasonData.map(d =>\r\n \r\n \r\n {d.Name}\r\n \r\n \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n\r\n {\r\n setUpDowngradeReasonObj(prev => ({ ...prev, Name: v }));\r\n setUpDowngradeReasonValidation(prev => ({ ...prev, Name: \"\" }))\r\n }}\r\n >Name*\r\n {\r\n setUpDowngradeReasonObj(prev => ({ ...prev, SequenceNo: v }));\r\n setUpDowngradeReasonValidation(prev => ({ ...prev, SequenceNo: \"\" }))\r\n }}\r\n >Sequence\r\n {/* console.log(v)}>Sequence */}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n { console.log(v); }} > Activate\r\n {\r\n upDowngradeReasonObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\n//export default UpgradeReasonMaster;","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnRadioButton,\r\n InnSingleSelectDropdown,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnSingleRadioButton,\r\n InnTextbox,\r\n InnButtonTypeWithDropdown,\r\n InnLoader,\r\n InnMultiSelectDropdown,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { IndiCompanyOnFolio } from \"../indicators/indi-company-on-folio\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useAlert } from \"../../../../utils/hooks/useAlert\";\r\nimport {\r\n GetReservationWindowRoutingData, GetReservationWindowRouting, AddEditReservationWindow, ResetReservationRouting,\r\n GetReservationWindowRoutingApplyOn, GetReservationWindowRoutingGroup,\r\n GetReservationWindowRoutingDetail, AddReservationWindowRouting,\r\n GetReservationAccompanyGuest, GetPaymentMethod,\r\n GetReservationRoomRoutingRoomDetailList,\r\n GetReservationRoomRouting, AddEditReservationRoom,\r\n GetReservationRoomRoutingApplyOn, GetReservationRoomRoutingGroup,\r\n GetReservationRoomRoutingDetail, AddReservationRoomRouting,\r\n GetBillingInstructionWindowRouting, AddEditBillingInstructionWindowRouting,\r\n GetBillingInstructionWindowRoutingGroup,\r\n GetBillingInstructionWindowRoutingDetail,\r\n AddBillingInstuctionWindowRouting\r\n} from \"../../../../services/reservationService\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { AddEditWindowRoutingModalPopup } from \"../modalPopup/addEditWindowRoutingModalPopup\";\r\nimport { AddEditRoomRoutingModalPopup } from \"../modalPopup/addEditRoomRoutingModalPopup\";\r\n\r\n\r\nexport function BillingInstructionRouting(props) {\r\n const { t } = useTranslation();\r\n //#region Local Variable\r\n\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const currUser = useSelector(currentUser);\r\n\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" }\r\n ];\r\n\r\n //#endregion\r\n\r\n //#region New State\r\n const [BillingInstructionSerNo, setBillingInstructionSerNo] = useState(0);\r\n const [windowList, setWindowList] = useState([]);\r\n const [paymentMethodData, setPaymentMethodData] = useState([]);\r\n const [addEditBillingInstructionObj, setAddEditBillingInstructionObj] = useState({\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"BillingInstructionSerNo\": 0,\r\n \"WindowSerNo\": 0,\r\n \"WindowName\": \"\",\r\n \"PaymentTransactionSerNo\": 0,\r\n \"PaymentTransactionName\": \"\",\r\n \"Mode\": \"Add\"\r\n });\r\n const [billingInstructionValidation, SetBillingInstructionValidation] = useState({\r\n \"WindowName\": \"\",\r\n \"PaymentTransactionSerNo\": 0\r\n });\r\n const [selectedObject, setSelectedObject] = useState({\r\n \"WindowSerNo\": \"0\",\r\n \"RoutingSerNo\": \"0\",\r\n \"RoutedReservationSerNo\": \"0\",\r\n \"WindowName\": \"\",\r\n \"RoutingName\": \"\",\r\n \"RoutedRoomName\": \"\"\r\n });\r\n const [orgGroupList, setOrgGroupList] = useState([]);\r\n const [orgDetailList, setOrgDetailList] = useState([]);\r\n const [groupList, setGroupList] = useState([]);\r\n const [groupFilterList, setGroupFilterList] = useState([]);\r\n const [groupWindowList, setGroupWindowList] = useState([]);\r\n const [detailList, setDetailList] = useState([]);\r\n const [detailFilterList, setDetailFilterList] = useState([]);\r\n const [selectedWindow, setSelectedWindow] = useState(0);\r\n const [selectedGroup, setSelectedGroup] = useState(0);\r\n const [selectedGroupName, setSelectedGroupName] = useState(\"\");\r\n const [IsSameGroup, setIsSameGroup] = useState(false);\r\n //#endregion\r\n\r\n const [showWindowRoutingPopup, setWindowRoutingPopup] = useState(false);\r\n const [showWindowRoutingEditModal, setShowWindowRoutingEditModal] = useState(false);\r\n const [isActive, setIsActive] = useState(false);\r\n\r\n const [windowRoutingDetailFiltered, setWindowRoutingDetailFiltered] = useState([]);\r\n const [groupSelectAll, setGroupSelectAll] = useState(false);\r\n const [detailSelectAll, setDetailSelectAll] = useState(false);\r\n const [groupWindowSelect, setGroupWindowSelect] = useState(0);\r\n const [detailWindowSelect, setDetailWindowSelect] = useState(0);\r\n\r\n const [showEditDiv, setShowEditDiv] = useState(true);\r\n const popupMode = useRef(\"insert\");\r\n\r\n\r\n //#endregion \r\n\r\n //#region UseEffact\r\n useEffect(() => {\r\n GetPaymentMethod(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n console.log(\">>\", d);\r\n var temp = (d.data);\r\n let SortedList = temp.sort((a, b) => (a.Name > b.Name) ? 1 : -1);\r\n var tmpData = [];\r\n SortedList.forEach(ele => {\r\n tmpData.push({ \"key\": ele.TransactionSerNo, \"value\": ele.Name });\r\n });\r\n setPaymentMethodData(tmpData);\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (showWindowRoutingPopup) {\r\n GetBillingInstructionWindowList(true);\r\n GetBillingInstructionWindowGroup();\r\n GetBillingInstructionWindowDetail();\r\n }\r\n }, [showWindowRoutingPopup]);\r\n\r\n useEffect(() => {\r\n setBillingInstructionSerNo(props.para.BillingInstructionSerNo);\r\n }, [props.para.BillingInstructionSerNo]);\r\n\r\n useEffect(() => {\r\n GetBillingInstructionWindowList(true);\r\n }, [BillingInstructionSerNo]);\r\n //#endregion\r\n\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (addEditBillingInstructionObj.WindowName == \"\") {\r\n isValid = false;\r\n SetBillingInstructionValidation(prev => ({ ...prev, WindowName: \"Enter the valid window name.\" }));\r\n }\r\n if (addEditBillingInstructionObj.PaymentTransactionSerNo == 0) {\r\n isValid = false;\r\n SetBillingInstructionValidation(prev => ({ ...prev, PaymentTransactionSerNo: \"Select mode of payment.\" }));\r\n }\r\n return isValid;\r\n };\r\n\r\n //#region Custom function\r\n\r\n //#region new list\r\n\r\n\r\n const handleGroupData = (flag) => {\r\n if (selectedWindow != undefined) {\r\n let tempData = groupList.filter(x => x.WindowSerNo === selectedWindow);\r\n setGroupFilterList(tempData);\r\n if (flag === true) {\r\n if (tempData.length > 0) {\r\n if (tempData[0].RoutingSerNo === selectedGroup) {\r\n setIsSameGroup(!IsSameGroup);\r\n }\r\n setSelectedGroup(tempData[0].RoutingSerNo);\r\n }\r\n else {\r\n setSelectedGroup(0);\r\n }\r\n }\r\n }\r\n };\r\n const handleDetailData = () => {\r\n console.log(\"detail list\", detailList, selectedGroup);\r\n if (selectedGroup !== 0) {\r\n let temp = detailList.filter(x => x.WindowSerNo === selectedWindow && x.RoutingSerNo === selectedGroup);\r\n console.log(\"filter list\", temp);\r\n //setDetailFilterList([]);\r\n setTimeout(() => {\r\n setDetailFilterList(temp);\r\n }, 10);\r\n }\r\n else {\r\n setDetailFilterList([]);\r\n }\r\n };\r\n const handleGroupWindowChange = (sourceWindowSerNo, targetWindowSerNo, RoutingSerNo) => {\r\n let isExists = false;\r\n let temp = groupList.find(x => x.WindowSerNo === targetWindowSerNo && x.RoutingSerNo === RoutingSerNo);\r\n console.log(\"temp\", temp);\r\n if (temp !== undefined) {\r\n isExists = true;\r\n }\r\n else {\r\n isExists = false;\r\n }\r\n\r\n let copyDetailList = JSON.parse(JSON.stringify(detailList));\r\n copyDetailList.forEach(x => {\r\n if (x.WindowSerNo === sourceWindowSerNo && x.RoutingSerNo === RoutingSerNo) {\r\n x.WindowSerNo = targetWindowSerNo;\r\n }\r\n });\r\n setDetailList(copyDetailList);\r\n if (isExists) {\r\n let tempData = JSON.parse(JSON.stringify(groupList));\r\n let temp1 = tempData.find(x => x.WindowSerNo === sourceWindowSerNo && x.RoutingSerNo === RoutingSerNo);\r\n tempData.splice(tempData.indexOf(temp1), 1);\r\n\r\n setGroupList(tempData);\r\n\r\n }\r\n else {\r\n let tempData = JSON.parse(JSON.stringify(groupList));\r\n tempData.forEach(x => {\r\n if (x.WindowSerNo === sourceWindowSerNo && x.RoutingSerNo === RoutingSerNo) {\r\n x.WindowSerNo = targetWindowSerNo;\r\n }\r\n });\r\n console.log(\"temp Data here\", tempData);\r\n setGroupList(tempData);\r\n }\r\n };\r\n const handleDetailWindowChange = (sourceWindowSerNo, targetWindowSerNo, RoutingSerNo, TransactionSerNo) => {\r\n let IsGroupExists = false;\r\n\r\n let count = detailList.filter(x => x.WindowSerNo === sourceWindowSerNo && x.RoutingSerNo === RoutingSerNo).length;\r\n\r\n if (count === 1) {\r\n handleGroupWindowChange(sourceWindowSerNo, targetWindowSerNo, RoutingSerNo);\r\n }\r\n\r\n let tempGroup = groupList.find(x => x.RoutingSerNo === RoutingSerNo && x.WindowSerNo === targetWindowSerNo);\r\n\r\n if (tempGroup !== undefined) {\r\n IsGroupExists = true;\r\n }\r\n else {\r\n IsGroupExists = false;\r\n }\r\n\r\n if (IsGroupExists) {\r\n let copyDetailList = JSON.parse(JSON.stringify(detailList));\r\n copyDetailList.forEach(x => {\r\n if (x.RoutingSerNo === RoutingSerNo && x.TransactionSerNo === TransactionSerNo && x.WindowSerNo === sourceWindowSerNo) {\r\n x.WindowSerNo = targetWindowSerNo;\r\n }\r\n });\r\n setDetailList(copyDetailList);\r\n }\r\n else {\r\n let copyGroupList = JSON.parse(JSON.stringify(groupList));\r\n\r\n let tempGroup = groupList.find(x => x.RoutingSerNo === RoutingSerNo && x.WindowSerNo === sourceWindowSerNo);\r\n tempGroup.WindowSerNo = targetWindowSerNo;\r\n copyGroupList.push(tempGroup);\r\n\r\n let copyDetailList = JSON.parse(JSON.stringify(detailList));\r\n copyDetailList.forEach(x => {\r\n if (x.RoutingSerNo === RoutingSerNo && x.TransactionSerNo === TransactionSerNo && x.WindowSerNo === sourceWindowSerNo) {\r\n x.WindowSerNo = targetWindowSerNo;\r\n }\r\n });\r\n setDetailList(copyDetailList);\r\n setGroupList(copyGroupList);\r\n }\r\n };\r\n const handleGroupCheckboxClick = (e, item) => {\r\n let temp = JSON.parse(JSON.stringify(groupFilterList));\r\n if (e) {\r\n temp.forEach(x => {\r\n if (x.RoutingSerNo === item.RoutingSerNo) {\r\n x.IsChecked = true;\r\n }\r\n });\r\n }\r\n else {\r\n temp.forEach(x => {\r\n if (x.RoutingSerNo === item.RoutingSerNo) {\r\n x.IsChecked = false;\r\n }\r\n });\r\n }\r\n setGroupFilterList(temp);\r\n };\r\n const handleGroupMultipleWindowChange = (sourceWindowSerNo, targetWindowSerNo) => {\r\n if (parseInt(targetWindowSerNo) != 0 && parseInt(sourceWindowSerNo) !== parseInt(targetWindowSerNo)) {\r\n function IsExists(RoutingSerNo) {\r\n let isExists = false;\r\n let temp = groupList.find(x => x.WindowSerNo === targetWindowSerNo && x.RoutingSerNo === RoutingSerNo);\r\n console.log(\"temp\", temp);\r\n if (temp !== undefined) {\r\n isExists = true;\r\n }\r\n else {\r\n isExists = false;\r\n }\r\n return isExists;\r\n }\r\n let tempData = JSON.parse(JSON.stringify(groupList));\r\n let copyDetailList = JSON.parse(JSON.stringify(detailList));\r\n groupFilterList.forEach((o) => {\r\n if (o.IsChecked) {\r\n let IsExist = IsExists(o.RoutingSerNo);\r\n copyDetailList.forEach(x => {\r\n if (x.WindowSerNo === sourceWindowSerNo && x.RoutingSerNo === o.RoutingSerNo) {\r\n x.WindowSerNo = targetWindowSerNo;\r\n }\r\n });\r\n\r\n if (IsExist) {\r\n let temp1 = tempData.find(x => x.WindowSerNo === sourceWindowSerNo && x.RoutingSerNo === o.RoutingSerNo);\r\n tempData.splice(tempData.indexOf(temp1), 1);\r\n setGroupList(tempData);\r\n\r\n }\r\n else {\r\n tempData.forEach(x => {\r\n if (x.WindowSerNo === sourceWindowSerNo && x.RoutingSerNo === o.RoutingSerNo) {\r\n x.WindowSerNo = targetWindowSerNo;\r\n }\r\n });\r\n console.log(\"temp Data here\", tempData);\r\n setGroupList(tempData);\r\n }\r\n }\r\n });\r\n setGroupList(tempData);\r\n setDetailList(copyDetailList);\r\n console.log(tempData, copyDetailList);\r\n }\r\n };\r\n const handleDetailCheckboxClick = (e, RoutingSerNo, TransactionSerNo) => {\r\n let temp = JSON.parse(JSON.stringify(detailFilterList));\r\n temp.forEach(x => {\r\n if (x.RoutingSerNo === RoutingSerNo && x.TransactionSerNo === TransactionSerNo) {\r\n if (e) {\r\n x[\"IsChecked\"] = true;\r\n }\r\n else {\r\n x[\"IsChecked\"] = false;\r\n }\r\n }\r\n });\r\n setDetailFilterList(temp);\r\n };\r\n\r\n const handleDetailMultipleWindowChange = (sourceWindowSerNo, targetWindowSerNo) => {\r\n let copyDetailList = JSON.parse(JSON.stringify(detailList));\r\n let copyGroupList = JSON.parse(JSON.stringify(groupList));\r\n function IsGroupExists(RoutingSerNo) {\r\n let IsGroupExists = false;\r\n let count = copyDetailList.filter(x => x.WindowSerNo === sourceWindowSerNo && x.RoutingSerNo === RoutingSerNo).length;\r\n if (count === 1) {\r\n handleGroupWindowChange(sourceWindowSerNo, targetWindowSerNo, RoutingSerNo);\r\n }\r\n let tempGroup = copyGroupList.find(x => x.RoutingSerNo === RoutingSerNo && x.WindowSerNo === targetWindowSerNo);\r\n console.log(\"tempGroup\", tempGroup);\r\n if (tempGroup !== undefined) {\r\n IsGroupExists = true;\r\n }\r\n else {\r\n IsGroupExists = false;\r\n }\r\n return IsGroupExists;\r\n }\r\n\r\n\r\n detailFilterList.forEach(o => {\r\n if (o.IsChecked) {\r\n console.log(\"Times\");\r\n let IsGroupExist = IsGroupExists(o.RoutingSerNo);\r\n if (IsGroupExist) {\r\n copyDetailList.forEach(x => {\r\n if (x.RoutingSerNo === o.RoutingSerNo && x.TransactionSerNo === o.TransactionSerNo && x.WindowSerNo === sourceWindowSerNo) {\r\n x.WindowSerNo = targetWindowSerNo;\r\n }\r\n });\r\n }\r\n else {\r\n let tempGroup = JSON.parse(JSON.stringify(copyGroupList)).find(x => x.RoutingSerNo === o.RoutingSerNo && x.WindowSerNo === sourceWindowSerNo);\r\n console.log(\"temp group here\", tempGroup);\r\n tempGroup.WindowSerNo = targetWindowSerNo;\r\n copyGroupList.push(tempGroup);\r\n setGroupList(copyGroupList);\r\n console.log(\"Copy group list\", copyGroupList);\r\n copyDetailList.forEach(x => {\r\n if (x.RoutingSerNo === o.RoutingSerNo && x.TransactionSerNo === o.TransactionSerNo && x.WindowSerNo === sourceWindowSerNo) {\r\n x.WindowSerNo = targetWindowSerNo;\r\n }\r\n });\r\n }\r\n }\r\n });\r\n setDetailList(copyDetailList);\r\n };\r\n\r\n const handleOnSaveClick = () => {\r\n\r\n let apiObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n BillingInstructionSerNo: parseInt(BillingInstructionSerNo),\r\n BillingInstructionGroupList: groupList,\r\n BillingInstructionDetailList: detailList\r\n };\r\n console.log(apiObj);\r\n AddBillingInstuctionWindowRouting(apiObj).then(d => {\r\n console.log(d.data);\r\n setSelectedWindow(0);\r\n alertFunction(d.data.Message);\r\n setTimeout(() => {\r\n GetBillingInstructionWindowList(true);\r\n setTimeout(() => {\r\n GetBillingInstructionWindowGroup();\r\n GetBillingInstructionWindowDetail();\r\n }, 50);\r\n }, 50);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n setGroupFilterList([]);\r\n setTimeout(() => {\r\n let tempList = groupList.filter(x => x.WindowSerNo === selectedWindow);\r\n if (tempList.length > 0) {\r\n setSelectedGroup(tempList[0].RoutingSerNo);\r\n }\r\n console.log(\"tempList\");\r\n setGroupFilterList(tempList);\r\n }, 10);\r\n }, [groupList]);\r\n\r\n useEffect(() => {\r\n setDetailFilterList([]);\r\n setTimeout(() => {\r\n let tempList = detailList.filter(x => x.WindowSerNo === selectedWindow && x.RoutingSerNo === selectedGroup);\r\n setDetailFilterList(tempList);\r\n }, 10);\r\n }, [detailList]);\r\n\r\n useEffect(() => {\r\n if (selectedWindow !== 0) {\r\n handleGroupData(true);\r\n }\r\n setGroupSelectAll(false);\r\n setDetailSelectAll(false);\r\n }, [selectedWindow]);\r\n\r\n useEffect(() => {\r\n handleDetailData();\r\n if (selectedGroup !== 0) {\r\n let temp = groupList.find(x => x.RoutingSerNo === selectedGroup);\r\n if (temp !== undefined) {\r\n setSelectedGroupName(temp.RoutingName);\r\n }\r\n } else {\r\n setSelectedGroupName(\"No group selected\");\r\n }\r\n }, [selectedGroup, IsSameGroup]);\r\n\r\n\r\n const GetBillingInstructionWindowList = (flag) => {\r\n GetBillingInstructionWindowRouting(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), BillingInstructionSerNo).then(d => {\r\n setWindowList(d.data);\r\n if (d.data.length > 0) {\r\n let temp = [{ key: 0, value: \"Select window\" }];\r\n d.data.forEach(x => {\r\n temp.push({ key: x.WindowSerNo, value: x.WindowSerNo });\r\n });\r\n setGroupWindowList(temp);\r\n } else {\r\n setGroupWindowList([]);\r\n }\r\n if (d.data.length > 0 && flag === true) {\r\n setAddEditBillingInstructionObj(d.data[0]);\r\n setSelectedObject(d.data[0]);\r\n setSelectedWindow(d.data[0].WindowSerNo);\r\n } else {\r\n setAddEditBillingInstructionObj({});\r\n setSelectedObject({});\r\n setSelectedWindow(0);\r\n setSelectedGroupName(\"No group selected\");\r\n }\r\n });\r\n\r\n };\r\n\r\n const GetBillingInstructionWindowGroup = () => {\r\n GetBillingInstructionWindowRoutingGroup(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), BillingInstructionSerNo).then(d => {\r\n setGroupList(d.data);\r\n setOrgGroupList(d.data);\r\n });\r\n };\r\n\r\n const GetBillingInstructionWindowDetail = () => {\r\n GetBillingInstructionWindowRoutingDetail(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), BillingInstructionSerNo).then(d => {\r\n setDetailList(d.data);\r\n setOrgDetailList(d.data);\r\n });\r\n };\r\n const HandleOnSaveClick = (IsDelete, obj) => {\r\n console.log(\"obj\", IsDelete, obj);\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid && !IsDelete) {\r\n AddEditBillingInstructionWindowRouting(addEditBillingInstructionObj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n setShowWindowRoutingEditModal(false);\r\n if (windowList.length > 0) {\r\n GetBillingInstructionWindowList();\r\n } else {\r\n GetBillingInstructionWindowList(true);\r\n }\r\n }\r\n });\r\n setAddEditBillingInstructionObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else if (IsDelete) {\r\n let apiObj = obj;\r\n apiObj[\"Mode\"] = \"Delete\";\r\n console.log(\"apiObjhere\", apiObj);\r\n AddEditBillingInstructionWindowRouting(apiObj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n setTimeout(() => {\r\n GetBillingInstructionWindowList(true);\r\n setTimeout(() => {\r\n GetBillingInstructionWindowGroup();\r\n GetBillingInstructionWindowDetail();\r\n }, 50);\r\n }, 50);\r\n }\r\n });\r\n setAddEditBillingInstructionObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n };\r\n //#endregion\r\n\r\n\r\n const handlebtnAddWindow = () => {\r\n\r\n let max = 0;\r\n for (let i = 1; i < windowList.length; i++) {\r\n if (windowList[i].WindowSerNo > max)\r\n max = windowList[i].WindowSerNo;\r\n }\r\n if (max === 0) {\r\n max = 1;\r\n } else {\r\n max += 1;\r\n }\r\n setAddEditBillingInstructionObj({\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"BillingInstructionSerNo\": BillingInstructionSerNo,\r\n \"WindowSerNo\": max,\r\n \"WindowName\": \"\",\r\n \"PaymentTransactionSerNo\": 0,\r\n \"Mode\": \"Add\"\r\n });\r\n setShowWindowRoutingEditModal(!showWindowRoutingEditModal);\r\n\r\n };\r\n const handlebtnEditWindow = (item) => {\r\n if (item != undefined) {\r\n setAddEditBillingInstructionObj(item);\r\n setShowWindowRoutingEditModal(!showWindowRoutingEditModal);\r\n }\r\n else {\r\n console.log(\"Problem to get selected window detail.!\");\r\n }\r\n };\r\n\r\n\r\n //#endregion\r\n const WindowRoutingTooltip = () => {\r\n if (windowList != undefined && windowList.length > 1) {\r\n popupMode.current = \"edit\";\r\n }\r\n else {\r\n popupMode.current = \"insert\";\r\n }\r\n return (\r\n
    \r\n
    \r\n {windowList && windowList.map(d =>\r\n
    \r\n
    \r\n {d.WindowSerNo + ' - '}{d.WindowName}\r\n
    {d.TransactionName}
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n {\r\n showEditDiv ?\r\n
    \r\n setWindowRoutingPopup(!showWindowRoutingPopup)}\r\n >\r\n Edit\r\n \r\n console.log(item, name)}\r\n >\r\n
    \r\n :\r\n <>\r\n }\r\n
    \r\n );\r\n };\r\n return (\r\n <>\r\n
    \r\n {t('INN_RoutingInstruction')}\r\n \r\n \r\n \r\n W ({windowList.length})\r\n \r\n \r\n\r\n \r\n
    \r\n {/* Main Routing View Popup */}\r\n {showWindowRoutingPopup ? (\r\n {\r\n setWindowRoutingPopup(!showWindowRoutingPopup);\r\n setDetailList([]);\r\n setGroupList([]);\r\n setGroupFilterList([]);\r\n setDetailFilterList([]);\r\n }}\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n

    Window Routing

    \r\n
    \r\n
    \r\n {\r\n handleOnSaveClick();\r\n }}>\r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    { console.log(\"div click\"); }}>\r\n
    \r\n
    \r\n
    \r\n
      \r\n {\r\n setShowWindowRoutingEditModal(true);\r\n handlebtnAddWindow();\r\n }}>+\r\n {windowList && windowList.map(d =>\r\n {\r\n setSelectedObject(d);\r\n setSelectedWindow(d.WindowSerNo);\r\n\r\n }}>\r\n
      {d.WindowSerNo} - {d.WindowName}
      \r\n
      {d.TransactionName}
      {d.GuestProfileName}
      {d.CompanyOnFolioName}
      \r\n <>\r\n {\r\n handlebtnEditWindow(d);\r\n }}\r\n disabled={d.IsDeleted}>\r\n {\r\n let isExist = true;\r\n if (d.WindowSerNo === 1) {\r\n if (windowList.find(x => x.WindowSerNo > 1)) {\r\n isExist = true;\r\n } else {\r\n isExist = false;\r\n }\r\n } else {\r\n isExist = false;\r\n }\r\n if (!isExist) {\r\n HandleOnSaveClick(true, d);\r\n } else {\r\n alertFunction(\"Other windows are available so first window can not be deleted\");\r\n }\r\n }}\r\n disabled={d.IsDeleted}>\r\n \r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n {/* Group Routing Grid Start */}\r\n
    \r\n
    \r\n
    {selectedObject.WindowSerNo} - {selectedObject.WindowName}
    \r\n
    \r\n
    \r\n {\r\n setGroupSelectAll(isChecked);\r\n let temp = JSON.parse(JSON.stringify(groupFilterList));\r\n if (isChecked) {\r\n temp.forEach((x) => {\r\n x[\"IsChecked\"] = true;\r\n });\r\n } else {\r\n temp.forEach((x) => {\r\n x[\"IsChecked\"] = false;\r\n });\r\n }\r\n setGroupFilterList(temp);\r\n console.log(\"temp\", temp);\r\n }} >\r\n Select All\r\n \r\n
    \r\n
    \r\n
    \r\n {groupSelectAll == true ?\r\n <>\r\n {\r\n if (e.key != 0) {\r\n setGroupWindowSelect(e.key);\r\n setTimeout(() => {\r\n setGroupSelectAll(false);\r\n setDetailSelectAll(false);\r\n setGroupWindowSelect(0);\r\n setDetailWindowSelect(0);\r\n }, 50);\r\n handleGroupMultipleWindowChange(selectedWindow, e.key);\r\n }\r\n }}\r\n >\r\n \r\n : null\r\n }\r\n
    \r\n
    \r\n
    \r\n
      \r\n {groupFilterList && groupFilterList.map(item =>\r\n {\r\n setSelectedGroup(item.RoutingSerNo);\r\n }}>\r\n {groupSelectAll\r\n ?\r\n {\r\n handleGroupCheckboxClick(e, item);\r\n }}\r\n >{item.RoutingName}\r\n :\r\n <>\r\n
      \r\n \r\n
      \r\n
      \r\n x.key != 0)}\r\n name=\"Single Select\"\r\n label=\"\"\r\n selectedSerNo={item.WindowSerNo}\r\n onChange={(x) => {\r\n handleGroupWindowChange(item.WindowSerNo, x.key, item.RoutingSerNo);\r\n }}\r\n >\r\n {(item.WindowSerNo !== 1)\r\n ?\r\n {\r\n handleGroupWindowChange(item.WindowSerNo, 1, item.RoutingSerNo);\r\n }}\r\n >\r\n \r\n :\r\n
      \r\n }\r\n
      \r\n \r\n }\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n {/* Detail Grid Start */}\r\n
    \r\n
    \r\n
    {selectedGroupName}
    \r\n
    \r\n
    \r\n {\r\n setDetailSelectAll(e);\r\n let temp = JSON.parse(JSON.stringify(detailFilterList));\r\n temp.forEach(x => {\r\n if (e) {\r\n x[\"IsChecked\"] = true;\r\n }\r\n else {\r\n x[\"IsChecked\"] = false;\r\n }\r\n });\r\n setDetailFilterList(temp);\r\n }} >\r\n Select All\r\n \r\n
    \r\n
    \r\n
    \r\n {detailSelectAll == true ?\r\n <>\r\n {\r\n if (e.key != 0) {\r\n setDetailWindowSelect(e.key);\r\n setTimeout(() => {\r\n setGroupSelectAll(false);\r\n setDetailSelectAll(false);\r\n setDetailWindowSelect(0);\r\n setGroupWindowSelect(0);\r\n }, 50);\r\n handleDetailMultipleWindowChange(selectedWindow, parseInt(e.key));\r\n }\r\n }}\r\n >\r\n : null}\r\n
    \r\n
    \r\n
    \r\n\r\n
      {/* window-feature-list mrgn-tp6 */}\r\n {detailFilterList && detailFilterList.map(d =>\r\n
    • \r\n {detailSelectAll == true ?\r\n <>\r\n {\r\n handleDetailCheckboxClick(e, d.RoutingSerNo, d.TransactionSerNo);\r\n }}\r\n >{d.TransactionName}\r\n :\r\n <>\r\n
      \r\n \r\n
      \r\n
      \r\n x.key != 0)}\r\n name=\"Single Select\"\r\n label=\"\"\r\n selectedSerNo={d.WindowSerNo}\r\n onChange={(item) => {\r\n handleDetailWindowChange(d.WindowSerNo, item.key, d.RoutingSerNo, d.TransactionSerNo);\r\n }}\r\n >\r\n {(d.WindowSerNo !== 1)\r\n ?\r\n {\r\n handleDetailWindowChange(d.WindowSerNo, 1, d.RoutingSerNo, d.TransactionSerNo);\r\n }}>\r\n \r\n :\r\n null\r\n }\r\n
      \r\n }\r\n
    • \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n\r\n {/* Room Routing >> Add/Edit Room window */}\r\n\r\n\r\n\r\n {showWindowRoutingEditModal ? (\r\n setShowWindowRoutingEditModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    {addEditBillingInstructionObj.Mode}

    \r\n
    \r\n
    \r\n {\r\n HandleOnSaveClick(false);\r\n }}\r\n >Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setAddEditBillingInstructionObj(prev => ({ ...prev, WindowName: v }));\r\n if (v.trim() === \"\") {\r\n SetBillingInstructionValidation(prev => ({ ...prev, WindowName: \"Enter Valid Window name.!\" }));\r\n }\r\n else {\r\n SetBillingInstructionValidation(prev => ({ ...prev, WindowName: \"\" }));\r\n }\r\n }}\r\n type=\"text\"\r\n required={false}\r\n //customError={\"Enter Only 3 Char!!\"}\r\n >\r\n Window Name\r\n \r\n {\r\n // console.log(v) \r\n }}\r\n type=\"text\"\r\n required={false}\r\n disabled={true}\r\n //customError={\"Enter Only 3 Char!!\"}\r\n >\r\n Window\r\n \r\n\r\n
    \r\n {\r\n //console.log(item, name);\r\n let tempGuest = addEditBillingInstructionObj;\r\n console.log(\">>>>\", tempGuest);\r\n tempGuest.PaymentTransactionSerNo = item.key;\r\n tempGuest.PaymentTransactionName = item.value;\r\n setAddEditBillingInstructionObj(tempGuest);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n \r\n ) : null}\r\n\r\n \r\n );\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnPlainButton,\r\n InnTextbox,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { GetBillingInstructionMaster, AddEditBillingInstructionMaster } from \"../../../../services/frontMasterService\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { IndiRoutingInstruction } from \"../../../client/reservation/indicators\";\r\nimport { GetReservationInfoData, manageReservationBalanceIndicator, GetReservationBySerNo } from \"../../../../services/reservationService\";\r\nimport { setRateAndPackages, setTempRateAndPackage, reSetExtraPackage } from \"../../../../reducer/frontSlice\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { ModifiedRateDetailData } from \"../../../../utils/helpers/reservation\";\r\nimport { BillingInstructionRouting } from \"./billing-instruction-routing\";\r\nexport function BillingInstructionMaster(props) {\r\n //#region Local variable\r\n const Curuser = useSelector(currentUser);\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(Curuser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(Curuser.PropertySerNo),\r\n \"BillingInstructionSerNo\": 0,\r\n \"Name\": \"\",\r\n \"Mode\": \"View\"\r\n }\r\n const clearObj = {\r\n \"Name\": \"\"\r\n }\r\n const currUser = useSelector(currentUser);\r\n const reservationObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: 50, //location.state.reservationSerNo,\r\n // ClientSerNo: 1201,\r\n // PropertySerNo: 1,\r\n // ReservationSerNo: 10\r\n };\r\n\r\n const [isIncognitoChanged, setIsIncognitoChanged] = useState(false);\r\n const [newReservation, setNewReservation] = useState({});\r\n const [totalBalance, setTotalBalance] = useState({});\r\n const dispatch = useDispatch();\r\n //#endregion\r\n //#region State variable\r\n const [billingInstructionMasterObj, setBillingInstructionMasterObj] = useState(defaultObj);\r\n const [billingInstructionMasterData, setBillingInstructionMasterData] = useState([]);\r\n const [isActive, setIsActive] = useState(false);\r\n const [filterBillingInstructionMaster, setFilterBillingInstructionMaster] = useState([]);\r\n const [validation, setValidation] = useState(clearObj);\r\n const [selectedBillingInstSerNo, setSelectedBillingInstSerNo] = useState(\"\");\r\n //#endregion State variable\r\n const [reservationInfoData, setReservationInfoData] = useState({});\r\n //#region Custom Functions\r\n const fillBillingInstructionMaster = () => {\r\n setIsActive(true);\r\n GetBillingInstructionMaster(parseInt(Curuser.ClientSerNo), parseInt(Curuser.PropertySerNo)).then((d) => {\r\n setBillingInstructionMasterData(d.data);\r\n setFilterBillingInstructionMaster(d.data);\r\n setIsActive(false);\r\n })\r\n }\r\n const handleOnBillingInstructionMasterClick = (e) => {\r\n CleaarValidation();\r\n let obj = billingInstructionMasterData.find(\r\n x => x.BillingInstructionSerNo == e.target.id)\r\n obj.Mode = \"View\";\r\n setBillingInstructionMasterObj(obj);\r\n setSelectedBillingInstSerNo(e.target.id)\r\n }\r\n const CleaarValidation = () => {\r\n setValidation(clearObj);\r\n }\r\n const isValidPage = () => {\r\n let isValid = true\r\n if (billingInstructionMasterObj.Name == \"\") {\r\n isValid = false\r\n setValidation(prev => ({ ...prev, Name: \"Invalid Input\" }))\r\n }\r\n return isValid;\r\n }\r\n //#endregion Custom Functions\r\n\r\n //#region Events\r\n const handleOnBtnSaveClick = () => {\r\n let isPageValid = isValidPage();\r\n if (isPageValid) {\r\n setIsActive(true);\r\n AddEditBillingInstructionMaster(billingInstructionMasterObj).then((d) => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n fillBillingInstructionMaster();\r\n }\r\n alert(d.data.Message);\r\n }\r\n )\r\n }\r\n }\r\n const handleOnBtnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setBillingInstructionMasterObj(obj);\r\n }\r\n const handleOnBtnEditClick = () => {\r\n setBillingInstructionMasterObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n const handleOnBtnCancelClick = () => {\r\n CleaarValidation();\r\n if (billingInstructionMasterObj.Mode == \"Add\") {\r\n setBillingInstructionMasterObj(defaultObj);\r\n }\r\n if (billingInstructionMasterObj.Mode == \"Edit\") {\r\n let ExistObj = billingInstructionMasterData.find(x => x.BillingInstructionSerNo == selectedBillingInstSerNo);\r\n if (ExistObj != undefined) {\r\n setBillingInstructionMasterObj(ExistObj)\r\n }\r\n else\r\n setBillingInstructionMasterObj(defaultObj);\r\n }\r\n }\r\n const handleOnSearchClick = (k) => {\r\n setBillingInstructionMasterObj(defaultObj);\r\n let filterdata = billingInstructionMasterData.filter(obj => obj.Name.toLowerCase().includes(k.toLowerCase()));\r\n setFilterBillingInstructionMaster(filterdata);\r\n }\r\n //#endregion Events\r\n //#region PageLoad\r\n useEffect(() => {\r\n\r\n fillReservationInfoData();\r\n\r\n manageReservationBalanceIndicator(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), reservationObj.ReservationSerNo).then(d => {\r\n setTotalBalance(d.data);\r\n })\r\n\r\n // GetReservationBySerNo(parseInt(currUser.ClientSerNo),parseInt(currUser.PropertySerNo),location.state.reservationSerNo).then(d => {\r\n GetReservationBySerNo(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), reservationObj.reservationSerNo).then(d => {\r\n\r\n let extraPkg = [];\r\n let extraPkgTax = [];\r\n\r\n if (d.data.RateCodeDetail.PackageDetails != undefined) {\r\n extraPkg = d.data.RateCodeDetail.PackageDetails.filter(x => x.IsAdditional == true);\r\n }\r\n if (d.data.RateCodeDetail.TaxDetails != undefined) {\r\n extraPkgTax = d.data.RateCodeDetail.TaxDetails.filter(x => x.Type == 'PE');\r\n }\r\n let distinctPkg = [];\r\n extraPkg.map(p => {\r\n let newPkg = distinctPkg.filter(x => x.PackageSerNo == p.PackageSerNo).length;\r\n if (newPkg == 0) {\r\n distinctPkg.push({ \"PackageSerNo\": p.PackageSerNo, \"Name\": p.Name, \"Adult\": p.Adult, \"Child\": p.Child });\r\n }\r\n })\r\n\r\n let exPkg = [];\r\n\r\n distinctPkg.map(dp => {\r\n let o = {};\r\n o.RateCodeDetail = {};\r\n o.RateCodeDetail.RateCodeDetails = null;\r\n o.RateCodeDetail.ChargeDetails = null;\r\n o.RateCodeDetail.NewPackageDetails = [];\r\n\r\n o.RateCodeDetail.PackageDetails = d.data.RateCodeDetail.PackageDetails.filter(x => x.IsAdditional == true && x.PackageSerNo == dp.PackageSerNo);\r\n o.RateCodeDetail.PackageDetails.map(np => {\r\n let calculatedQty = 1;\r\n if (np.CalculationRuleSerNo == \"PP\") {\r\n calculatedQty = parseInt(np.Adult) + parseInt(np.Child);\r\n } else if (np.CalculationRuleSerNo == \"PA\") {\r\n calculatedQty = parseInt(np.Adult);\r\n } else if (np.CalculationRuleSerNo == \"PC\") {\r\n calculatedQty = parseInt(np.Child);\r\n } else {\r\n calculatedQty = 1;\r\n }\r\n\r\n let newPkg = o.RateCodeDetail.NewPackageDetails.filter(x => x.PackageSerNo == np.PackageSerNo).length;\r\n let night = o.RateCodeDetail.PackageDetails.filter(x => x.PackageSerNo == np.PackageSerNo).length;\r\n let totalPrice = (parseFloat(np.PackageRate) + (np.IsTaxInclusive ? 0 : (parseFloat(np.Taxes) / parseInt(calculatedQty))));\r\n let stayTotal = (parseFloat(np.PackagePrice) + (np.IsTaxInclusive ? 0 : parseFloat(np.Taxes)));\r\n if (newPkg == 0) {\r\n o.RateCodeDetail.NewPackageDetails.push({\r\n RateSerNo: np.RateSerNo,\r\n PackageSerNo: np.PackageSerNo,\r\n Name: np.Name,\r\n PackageRate: np.PackageRate,\r\n PackagePrice: np.PackagePrice,\r\n CalculationRule: np.CalculationRule,\r\n PostingRhythm: np.PostingRhythm,\r\n PostingType: np.PostingType,\r\n Component: (np.IsTaxInclusive ? np.PackageRate + \" Incl.Tax\" : np.PackageRate + \" + Tax\"),\r\n Total: totalPrice.toFixed(2),\r\n Person: np.Adult + \"A, \" + np.Child + \"C\",\r\n Action: \"\",\r\n Nights: night,\r\n Qty: calculatedQty * night,\r\n StayTotal: (parseFloat(stayTotal) * parseInt(night)).toFixed(2),\r\n });\r\n }\r\n })\r\n o.RateCodeDetail.TaxDetails = d.data.RateCodeDetail.TaxDetails.filter(x => x.Type == 'PE' && x.PackageSerNo == dp.PackageSerNo);\r\n o.PackageSerNo = dp.PackageSerNo;\r\n o.Adult = dp.Adult;\r\n o.Child = dp.Child;\r\n o.Name = dp.Name;\r\n exPkg.push(o);\r\n })\r\n\r\n dispatch(reSetExtraPackage(exPkg));\r\n\r\n // get extra packages\r\n\r\n let orgData = JSON.parse(JSON.stringify(d.data));\r\n\r\n if (d.data.RateCodeDetail.PackageDetails != undefined) {\r\n orgData.RateCodeDetail.PackageDetails = d.data.RateCodeDetail.PackageDetails.filter(x => x.IsAdditional == false);\r\n }\r\n if (d.data.RateCodeDetail.TaxDetails != undefined) {\r\n orgData.RateCodeDetail.TaxDetails = d.data.RateCodeDetail.TaxDetails.filter(x => x.Type != 'PE');\r\n }\r\n\r\n orgData.NewAdult = orgData.Adult;\r\n\r\n let obj = ModifiedRateDetailData(orgData.RateCodeDetail);\r\n dispatch(setRateAndPackages(obj));\r\n dispatch(setTempRateAndPackage({}));\r\n setNewReservation(orgData);\r\n })\r\n }, []);\r\n\r\n //#endregion PageLoad\r\n //#region PageLevelMethod\r\n\r\n const fillReservationInfoData = () => {\r\n GetReservationInfoData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), reservationObj.ReservationSerNo).then(d => {\r\n console.log(\"ReservationInfo\", d.data);\r\n setReservationInfoData(d.data);\r\n })\r\n }\r\n\r\n //#endregion PageLevelMethod\r\n //#region UseEffect\r\n useEffect(() => {\r\n fillBillingInstructionMaster();\r\n // setBillingInstructionMasterData([...d.data]);\r\n }, []);\r\n useEffect(() => {\r\n fillReservationInfoData();\r\n }, [isIncognitoChanged]);\r\n //#endregion\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Billing Instruction Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n {/*
    \r\n \r\n
    */}\r\n
    \r\n
    Billing Instructions
    \r\n
    \r\n
      \r\n {\r\n filterBillingInstructionMaster.map((d) =>\r\n
    • {d.Name}
    • \r\n )\r\n }\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n\r\n {\r\n setBillingInstructionMasterObj(prev => ({ ...prev, Name: (m) }))\r\n if (m == \"\") {\r\n setValidation(prev => ({ ...prev, Name: \"Invalid Name\" }))\r\n }\r\n }}>Name*\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n\r\n Activate console.log(v)}>\r\n {\r\n billingInstructionMasterObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\n// export default BillingInstructionMaster;","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnLoader,\r\n InnPlainButton\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport{GetBuildingMaster, AddEditBuildingMaster} from \"../../../../services/frontMasterService\"\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport function BuildingMaster(props) {\r\n//#region Local Variable\r\nconst currUser = useSelector(currentUser);\r\nconst defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\" : parseInt(currUser.PropertySerNo),\r\n \"BuildingSerNo\": 0,\r\n \"Name\": \"\",\r\n \"Sequence\":0,\r\n \"Mode\": \"View\"\r\n}\r\nconst validationObj = {\r\n \"Name\": \"\",\r\n \"Sequence\":\"\"\r\n}\r\n//#endregion\r\n//#region State Variable\r\n const [isActive, setIsActive] = useState(false);\r\n const [buildingObj, setBuildingObj] = useState(defaultObj);\r\n const [buildingData, setBuildingData] = useState([]);\r\n const [filterBuildingData, setFilterBuildingData] = useState([]);\r\n const [buildingValidation, setBuildingValidation] = useState(validationObj);\r\n const [selectedBuildingSerNo, setSelectedBuildingSerNo] = useState(\"\");\r\n //#endregion\r\n//#region UseEffect\r\n useEffect(() => {\r\n fillBuilding();\r\n}, []);\r\n//#endregion\r\n//#region custom function\r\n const fillSelectedBuilding = (BuildingSerNo) => {\r\n let obj = buildingData.find(e => parseInt(e.BuildingSerNo) === parseInt(BuildingSerNo))\r\n obj.Mode = \"View\"\r\n setBuildingObj(obj);\r\n}\r\nconst fillBuilding = () => {\r\n setIsActive(true);\r\n GetBuildingMaster(parseInt(currUser.ClientSerNo),parseInt(currUser.PropertySerNo)).then(d => {\r\n setBuildingData(d.data);\r\n setFilterBuildingData(d.data);\r\n setIsActive(false);\r\n })\r\n}\r\nconst isValidPage = () => {\r\n let isValid = true;\r\n if (buildingObj.Name == \"\") {\r\n isValid = false;\r\n setBuildingValidation(prev => ({ ...prev, Name: \"Invalid input\" }))\r\n }\r\n if (buildingObj.Sequence == \"\"|| isNaN(+buildingObj.Sequence) || parseInt(buildingObj.Sequence) <= 0) {\r\n isValid = false;\r\n setBuildingValidation(prev => ({ ...prev, Sequence: \"Invalid input\" }))\r\n }\r\n return isValid;\r\n}\r\nconst clearValidation = () => {\r\n setBuildingValidation(validationObj);\r\n}\r\n//#endregion\r\n//#region Events \r\n const handleOnBuildingClick = (e) => {\r\n clearValidation();\r\n fillSelectedBuilding(e.target.id);\r\n setSelectedBuildingSerNo(e.target.id);\r\n }\r\n const handleOnSearchChanged = (v) => {\r\n let filteredType = buildingData.filter(obj => obj.Name.toLowerCase().includes(v.toLowerCase()));\r\n setFilterBuildingData(filteredType);\r\n }\r\n const handleOnAddClick = () => {\r\n let obj = defaultObj;\r\n obj.Mode = \"Add\";\r\n setBuildingObj(obj);\r\n }\r\n const handleOnEditClick = () => {\r\n setBuildingObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n setIsActive(true);\r\n buildingObj.Sequence = parseInt(buildingObj.Sequence)\r\n AddEditBuildingMaster(buildingObj).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n // if(upDowngradeReasonObj.Mode == \"Add\"){ \r\n fillBuilding();\r\n // fillSelectedUpDownGradeReason(parseInt(d.data.ReturnValue));\r\n // }\r\n } else {\r\n alert(\"Something went wrong\");\r\n fillSelectedBuilding(parseInt(buildingObj.Sequence));\r\n }\r\n })\r\n setBuildingObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alert(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n const hanldeOnCancelClick = () => {\r\n clearValidation();\r\n if (buildingObj.Mode == \"Add\") {\r\n setBuildingObj(defaultObj);\r\n }\r\n if (buildingObj.Mode == \"Edit\") {\r\n fillSelectedBuilding(selectedBuildingSerNo);\r\n }\r\n }\r\n\r\n //#endregion\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Building Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Building Names
    \r\n
    \r\n
      \r\n {\r\n filterBuildingData.map(d =>\r\n
    • {d.Name}
    • \r\n )\r\n }\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n\r\n {\r\n setBuildingObj(prev => ({ ...prev, Name: v }));\r\n setBuildingValidation(prev => ({ ...prev, Name: \"\" }))\r\n }}\r\n >Name*\r\n {\r\n setBuildingObj(prev => ({ ...prev, Sequence: v }));\r\n setBuildingValidation(prev => ({ ...prev, Sequence: \"\" }))\r\n }}\r\n >Sequence\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n { console.log(v); }} > Activate\r\n {\r\n buildingObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\n//export default BuildingMaster;","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnLoader,\r\n InnPlainButton,\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetFloorMaster, GetFloorMasterBySerNo, AddEditFloorMaster, GetFloorMasterCombo } from \"../../../../services/frontMasterService\"\r\n\r\nexport function FloorMaster(props) {\r\n //#region Local Variable\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"FloorSerNo\": 0,\r\n \"Name\": \"\",\r\n \"Sequence\": 0,\r\n \"Housekeeping\": false,\r\n \"BuildingSerNo\": 0,\r\n \"Mode\": \"View\"\r\n }\r\n const validationObj = {\r\n \"Name\": \"\",\r\n \"Sequence\": \"\",\r\n \"BuildingSerNo\": \"\"\r\n }\r\n //#endregion\r\n //#region State Variable\r\n const [isActive, setIsActive] = useState(false);\r\n const [floorObj, setFloorObj] = useState(defaultObj);\r\n const [floorData, setFloorData] = useState([]);\r\n const [filterFloorData, setFilterFloorData] = useState([]);\r\n const [floorValidation, setFloorValidation] = useState(validationObj);\r\n const [selectedFloorSerNo, setSelectedFloorSerNo] = useState(\"\");\r\n const [floorComboData, setFloorComboData] = useState([]);\r\n //#endregion\r\n //#region UseEffect\r\n useEffect(() => {\r\n fillFloor();\r\n fillFloorCombo();\r\n fillSelectedFloor(1);\r\n }, []);\r\n //#endregion \r\n //#region custom function\r\n const fillSelectedFloor = (FloorSerNo) => {\r\n setIsActive(true);\r\n GetFloorMasterBySerNo(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(FloorSerNo)).then(d => {\r\n d.data.Mode = \"View\";\r\n setFloorObj(d.data);\r\n setIsActive(false);\r\n });\r\n\r\n }\r\n const fillFloor = () => {\r\n setIsActive(true);\r\n GetFloorMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n setFloorData(d.data);\r\n setFilterFloorData(d.data);\r\n setIsActive(false);\r\n })\r\n }\r\n const fillFloorCombo = () => {\r\n GetFloorMasterCombo(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n setFloorComboData(d.data);\r\n console.log(d.data);\r\n })\r\n }\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (floorObj.Name == \"\") {\r\n isValid = false;\r\n setFloorValidation(prev => ({ ...prev, Name: \"Invalid input\" }))\r\n }\r\n if (floorObj.Sequence == \"\" || isNaN(+floorObj.Sequence) || parseInt(floorObj.Sequence) <= 0) {\r\n isValid = false;\r\n setFloorValidation(prev => ({ ...prev, Sequence: \"Invalid input\" }))\r\n }\r\n return isValid;\r\n }\r\n const clearValidation = () => {\r\n setFloorValidation(validationObj);\r\n }\r\n //#endregion\r\n //#region Events \r\n const handleOnFloorClick = (e) => {\r\n clearValidation();\r\n fillSelectedFloor(e.target.id);\r\n setSelectedFloorSerNo(e.target.id);\r\n console.log(floorObj.BuildingSerNo);\r\n }\r\n const handleOnSearchChanged = (v) => {\r\n let filteredType = floorData.filter(obj => obj.Name.toLowerCase().includes(v.toLowerCase()));\r\n setFilterFloorData(filteredType);\r\n }\r\n const handleOnAddClick = () => {\r\n let obj = defaultObj;\r\n obj.Mode = \"Add\";\r\n setFloorObj(obj);\r\n }\r\n const handleOnEditClick = () => {\r\n setFloorObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n setIsActive(true);\r\n floorObj.FloorSerNo = parseInt(floorObj.FloorSerNo)\r\n floorObj.Sequence = parseInt(floorObj.Sequence)\r\n AddEditFloorMaster(floorObj).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n setFloorObj((prev) => ({ ...prev, FloorSerNo: d.data.ReturnValue }))\r\n // if(upDowngradeReasonObj.Mode == \"Add\"){ \r\n fillFloor();\r\n // fillSelectedUpDownGradeReason(parseInt(d.data.ReturnValue));\r\n // }\r\n } else {\r\n alert(\"Something went wrong\");\r\n fillSelectedFloor(parseInt(floorObj.Sequence));\r\n }\r\n })\r\n setFloorObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alert(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n const hanldeOnCancelClick = () => {\r\n clearValidation();\r\n if (floorObj.Mode == \"Add\") {\r\n setFloorObj(defaultObj);\r\n }\r\n if (floorObj.Mode == \"Edit\") {\r\n fillSelectedFloor(selectedFloorSerNo);\r\n }\r\n }\r\n\r\n //#endregion \r\n const selectdata = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Floor Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Floors
    \r\n
    \r\n
      \r\n {\r\n filterFloorData.map(d =>\r\n \r\n \r\n {d.Name}\r\n \r\n \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n\r\n {\r\n setFloorObj(prev => ({ ...prev, Name: v }));\r\n setFloorValidation(prev => ({ ...prev, Name: \"\" }))\r\n }}\r\n >Name\r\n {\r\n setFloorObj(prev => ({ ...prev, Sequence: v }));\r\n setFloorValidation(prev => ({ ...prev, Sequence: \"\" }))\r\n }}\r\n >Sequence\r\n
    \r\n setFloorObj(prev => ({ ...prev, BuildingSerNo: item.key }))}\r\n >\r\n\r\n
    \r\n
    \r\n
    Room List
    \r\n
    \r\n
    \r\n
      \r\n
    • 0601
    • \r\n
    • 0602
    • \r\n
    • 0603
    • \r\n
    • 0604
    • \r\n
    • 0605
    • \r\n
    • 0606
    • \r\n
    • 0607
    • \r\n
    • 0608
    • \r\n
    • 0609
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n setFloorObj(prev => ({ ...prev, Housekeeping: ischecked }))}>Housekeeping\r\n {/* Global */}\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n { console.log(v); }} > Activate\r\n {\r\n floorObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\n//export default FloorMaster;","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { GetMarketMaster, AddEditMarketMaster, cmbGetMarketGroupMaster, GetmarketMasterBySerNo } from \"../../../../services/frontMasterService\";\r\n\r\nexport function MarketMaster(props) {\r\n //#endregion Local Variable\r\n const Curuser = useSelector(currentUser);\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(Curuser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(Curuser.PropertySerNo),\r\n \"MarketSerNo\": 0,\r\n \"Name\": \"\",\r\n \"MarketGroupSerNo\": 0,\r\n \"Sequence\": 0,\r\n \"Mode\": \"View\"\r\n }\r\n const defaultMarketGroupCode = {\r\n \"key\": '0',\r\n \"value\": 'Select Market'\r\n }\r\n const clearObj = {\r\n \"Name\": \"\",\r\n \"Sequence\": \"\",\r\n }\r\n //#endregion Local Variable\r\n const selectdata = [];\r\n //#region State Variable\r\n const [marketMasterObj, setMarketMasterObj] = useState(defaultObj);\r\n const [marketMasterData, setMarketMasterData] = useState([]);\r\n const [cmbMarketGroupMaster, setCmbMarketGroupMaster] = useState([]);\r\n const [filterMarketMaster, setFilterMarketMaster] = useState([]);\r\n const [isValidationMarketMaster, setIsValidationMarketMaster] = useState(clearObj);\r\n const [selectedMaeketMasterSerNo, setSelectedMaeketMasterSerNo] = useState(\"\");\r\n const [isActive, setIsActive] = useState(false);\r\n //#endregion\r\n //#region Custom Functions\r\n const fillMarketMaster = () => {\r\n setIsActive(true);\r\n GetMarketMaster(parseInt(Curuser.ClientSerNo), parseInt(Curuser.PropertySerNo)).then((d) => {\r\n setMarketMasterData(d.data);\r\n setFilterMarketMaster(d.data);\r\n if (d.data.length > 0 && marketMasterObj.Mode == \"View\") {\r\n //GetSelectedSerNo(d.data[0].MarketSerNo);\r\n setMarketMasterObj(d.data[0]);\r\n }\r\n setIsActive(false);\r\n })\r\n }\r\n const handleOnMarketMasterClick = (e) => {\r\n CleaarValidation();\r\n let obj = marketMasterData.find(\r\n x => x.MarketSerNo == e.target.id)\r\n obj.Mode = \"View\";\r\n setMarketMasterObj(obj);\r\n setSelectedMaeketMasterSerNo(e.target.id)\r\n }\r\n const CleaarValidation = () => {\r\n setIsValidationMarketMaster(clearObj);\r\n }\r\n const isValidPage = () => {\r\n let isValid = true\r\n if (marketMasterObj.Name == \"\") {\r\n isValid = false\r\n setIsValidationMarketMaster(prev => ({ ...prev, Name: \"Invalid Input\" }))\r\n }\r\n if (marketMasterObj.Sequence == \"\" || isNaN(+marketMasterObj.Sequence)) {\r\n isValid = false\r\n setIsValidationMarketMaster(prev => ({ ...prev, Name: \"Invalid Input\" }))\r\n }\r\n return isValid;\r\n }\r\n // const GetSelectedSerNo = (MarketSerNo) => {\r\n // GetmarketMasterBySerNo(parseInt(Curuser.ClientSerNo), parseInt(Curuser.PropertySerNo), parseInt(MarketSerNo)).then((d) => {\r\n // d.data.Mode = \"View\";\r\n // setMarketMasterObj(d.data);\r\n\r\n // })\r\n // }\r\n //#endregion Custom Functions\r\n\r\n //#region Events\r\n const handleOnBtnSaveClick = () => {\r\n let isPageValid = isValidPage();\r\n if (isPageValid) {\r\n setIsActive(true);\r\n // setMarketMasterObj(prev => ({ ...prev, Sequence: parseInt(marketMasterObj.Sequence) }));\r\n // marketMasterObj.Sequence = parseInt(marketMasterObj.Sequence);\r\n\r\n AddEditMarketMaster(marketMasterObj).then((d) => {\r\n setIsActive(false);\r\n // setMarketMasterObj(d.data);\r\n if (d.data.Code == \"200\") {\r\n fillMarketMaster();\r\n }\r\n alert(d.data.Message);\r\n })\r\n }\r\n }\r\n const handleOnBtnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setMarketMasterObj(obj);\r\n }\r\n const handleOnBtnEditClick = () => {\r\n setMarketMasterObj(prev => ({ ...prev, Mode: \"Edit\" }))\r\n }\r\n const handleOnBtnCancelClick = () => {\r\n CleaarValidation();\r\n if (marketMasterObj.Mode == \"Add\") {\r\n setMarketMasterObj(defaultObj);\r\n }\r\n if (marketMasterObj.Mode == \"Edit\") {\r\n let ExistObj = marketMasterData.find(x => x.MarketSerNo == selectedMaeketMasterSerNo);\r\n if (ExistObj != undefined) {\r\n setMarketMasterObj(ExistObj)\r\n }\r\n else\r\n setMarketMasterObj(defaultObj);\r\n }\r\n\r\n }\r\n const handleOnSearchClick = (k) => {\r\n setMarketMasterObj(defaultObj);\r\n let searchFilter = marketMasterData.filter(x => x.Name.toLowerCase().includes(k.toLowerCase()));\r\n setFilterMarketMaster(searchFilter);\r\n }\r\n //#endregion Events\r\n //#region useeffect\r\n useEffect(() => {\r\n fillMarketMaster();\r\n cmbGetMarketGroupMaster(parseInt(Curuser.ClientSerNo), parseInt(Curuser.PropertySerNo)).then((d) => {\r\n setCmbMarketGroupMaster([defaultMarketGroupCode, ...d.data]);\r\n })\r\n }, []);\r\n //#endregion useeffect\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Market Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n {/*
    \r\n \r\n
    */}\r\n
    \r\n
    Market
    \r\n
    \r\n
      \r\n {\r\n filterMarketMaster.map((d) =>\r\n
    • {d.Name}
    • \r\n )\r\n }\r\n
    \r\n
    \r\n {/* */}\r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n\r\n {\r\n setMarketMasterObj(prev => ({ ...prev, Name: (m) }))\r\n if (m == \"\") {\r\n setIsValidationMarketMaster(prev => ({ ...prev, Name: \"Invalid Name\" }))\r\n }\r\n }}>Name*\r\n {\r\n setMarketMasterObj(prev => ({ ...prev, Sequence: parseInt(m) }))\r\n if (m == \"\") {\r\n setIsValidationMarketMaster(prev => ({ ...prev, Sequence: \"Enter Only Numeric Value\" }))\r\n }\r\n }}>Sequence*\r\n
    \r\n \r\n setMarketMasterObj(prev => ({ ...prev, MarketGroupSerNo: parseInt(item.key) }))\r\n }\r\n >\r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n Activate console.log(v)}>\r\n {\r\n marketMasterObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\n// export default MarketMaster;","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnActionButton, InnCheckbox, InnFileUpload, InnModalPopup, InnPrimaryButton, InnRadioButton, InnSearchTextbox,\r\n InnSwitch, InnTableGrid, InnTextarea, InnTextbox, InnSingleSelectDropdown, InnTooltip, InnPlainButton,\r\n InnButtonTypeWithDropdown, InnSingleDateSelection, InnTimeSelection, InnSingleRadioButton, InnContextMenu, useConfirm\r\n} from \"../../../component\";\r\nimport rightarrow from \"../../../assets/images/right-circle-arrow-gray.svg\";\r\nimport AttachmentIcon from \"../../../assets/images/attachment-icon.svg\";\r\nimport smsIcon from \"../../../assets/images/sms-tooltip-icon.svg\";\r\nimport EmailTooltipIcon from \"../../../assets/images/email-tooltip-icon.svg\";\r\nimport HistoryIcon from \"../../../assets/images/history-clock-icon.svg\";\r\nimport BellOrangeIcon from \"../../../assets/images/bell-orange-icon.svg\";\r\nimport infoicon from \"../../../assets/images/info-icon-2.svg\";\r\nimport closeIcon from \"../../../assets/images/model-cls-btn.png\";\r\nimport adharcard from \"../../../assets/images/adhar-card.png\";\r\nimport threeDotVertical from \"../../../assets/images/three-dot-icon-white.svg\";\r\nimport JPGIcon from \"../../../assets/images/jpg-file-icon.svg\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport threedots from \"../../../assets/images/hr-three-dot.svg\";\r\nimport { ModifiedRateDetailData } from \"../../../utils/helpers/reservation\";\r\nimport { RateSummaryModalPopup } from \"./modalPopup/rateSummaryModalPopup\";\r\nimport { GetReservationInfoData, manageReservationBalanceIndicator, GetReservationBySerNo, GetPropertyParameterByKeys, ManageSplitReservation } from \"../../../services/reservationService\";\r\nimport LangSelector from '../../../../app/utils/helpers/LangSelector';\r\nimport { useTranslation } from 'react-i18next';\r\nimport {\r\n IndiReservationContact, IndiBookedOn, IndiCompanyOnFolio, IndiGuestName, IndiArrival, IndiRoomType,\r\n IndiAdultChild, IndiAgent, IndiCompany, IndiReservationType, IndiRateCode, IndiRoomRate,\r\n IndiDailyRate, IndiInclusion, IndiPackege, IndiTransportation, IndiSharer, IndiGroupInfo,\r\n IndiCancellationRule, IndiPreStayCharge, IndiPrintRate, IndiNoPost, IndiSalesMarketing,\r\n IndiDiscloseRate, IndiAccompanyGuest, IndiArrivalDepartureDetail, IndiBillingInstruction,\r\n IndiCardAuthentication, IndiRoutingInstruction, IndiFnBDiscount, IndiDepositeRule, IndiDepositeReceived,\r\n IndiBalance, IndiGuestProfile, IndiLoyalty, IndiVipStatus, IndiPastStay, IndiFutureStay,\r\n IndiAttachment, IndiPreference, IndiInternalComment, IndiMessage, IndiLocator, IndiIncognito,\r\n IndiRoomFeature, IndiSpecial, IndiEarlyArrival, IndiLateDeparture, IndiAlert, IndiTrace,\r\n IndiWakeUpCall, IndiReservationAttachment\r\n} from \"./indicators\";\r\nimport { currentUser } from \"../../../reducer/authSlice\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { setRateAndPackages, setTempRateAndPackage, reSetExtraPackage } from \"../../../reducer/frontSlice\";\r\nimport moment from \"moment\";\r\nimport { RoomAssignmentModal } from \"./modalPopup/roomAssignmentModalPopup\";\r\nimport { ManageRights } from \"../../../services/generalService\";\r\nimport { useAlert } from \"../../../utils/hooks/useAlert\";\r\nimport { CancelReservationModalPopup } from \"./modalPopup/cancelReservationModalPopup\";\r\nimport { RoomMoveModalPopup } from \"./modalPopup/roomMoveModalPopup\";\r\nimport { render } from \"@testing-library/react\";\r\nimport { GuestProfileIdentification } from \"../general/masters/guest-profile-identification\";\r\n\r\nexport function ReservationView(props) {\r\n\r\n\r\n /* Page content height set start */\r\n var Pageheight = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);\r\n var Pagewidth = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);\r\n var columnHeight = Pageheight - 240;\r\n var BlueColumnWidth = Pagewidth / 5;\r\n var BlueColumnHeight = Pageheight - 153;\r\n\r\n /* Page content height set end */\r\n\r\n const { t } = useTranslation();\r\n const currUser = useSelector(currentUser);\r\n const location = useLocation();\r\n const { confirm } = useConfirm();\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const wrapperRef = useRef(null);\r\n const [showRateSelectionSummaryModal, setShowRateSelectionSummaryModal] = useState(false);\r\n const [reservationInfoData, setReservationInfoData] = useState({});\r\n const [newReservation, setNewReservation] = useState({});\r\n const [selectedGuestProfile, setSelectedGuestProfile] = useState({});\r\n const [totalBalance, setTotalBalance] = useState({});\r\n const [updatePreference, setUpdatePreference] = useState(false);\r\n const [isIncognitoChanged, setIsIncognitoChanged] = useState(false);\r\n const [isReloadTransportation, setIsReloadTransportation] = useState(false);\r\n const [isReloadArrivalDept, setIsReloadArrivalDept] = useState(false);\r\n const cancellationselectdata = [{ key: \"1\", value: \"10% cancellation fee\" }];\r\n const [showCancellationPopup, setCancellationPopup] = useState(false);\r\n // const [showAttachmentPopup, setAttachmentPopup] = useState(false);\r\n const [showSalesPopup, setSalesPopup] = useState(false);\r\n const [showGSTClaimPopup, setGSTClaimPopup] = useState(false);\r\n const [showPaymentInstructionPopup, setPaymentInstructionPopup] = useState(false);\r\n const [showFBDiscountPopup, setFBDiscountPopup] = useState(false);\r\n const [showNoPostPopup, setNoPostPopup] = useState(false);\r\n const [showDepositRulePopup, setDepositRulePopup] = useState(false);\r\n const [showDepositReceivedPopup, setDepositReceivedPopup] = useState(false);\r\n const [showReceivedPopup, setShowReceivedPopup] = useState(false);\r\n const [showAddDepositForm, setAddDepositForm] = useState(false);\r\n const [showDepositDropdown, setDepositDropdown] = useState(true);\r\n const [showAlertPopup, setAlertPopup] = useState(false);\r\n const [showTracePopup, setTracePopup] = useState(false);\r\n const [showAttachmentGuestPopup, setAttachmentGuestPopup] = useState(false);\r\n const [showPreviewModal, setShowPreviewModal] = useState(false);\r\n const [showMessagePopup, setShowMessagePopup] = useState(false);\r\n const [showWindowRoutingPopup, setWindowRoutingPopup] = useState(false);\r\n const [showBillingInstructionModal, setShowBillingInstructionModal] = useState(false);\r\n const [showRoomFeaturesModal, setShowRoomFeaturesModal] = useState(false);\r\n const [showRoomSpecialsModal, setShowRoomSpecialsModal] = useState(false);\r\n const [showRoomAvailabilityModal, setShowRoomAvailabilityModal] = useState(false);\r\n const [showAddRoomModal, setShowAddRoomModal] = useState(false);\r\n const [showAddRoomAdvancedSearchModal, setShowAddRoomAdvancedSearchModal] = useState(true);\r\n const [showRoomRoutingEditModal, setShowRoomRoutingEditModal] = useState(false);\r\n const [showWindowRoutingEditModal, setShowWindowRoutingEditModal] = useState(false);\r\n const [showWindowRoutingAddModal, setShowWindowRoutingAddModal] = useState(false);\r\n const [showAccompanyGuestModal, setShowAccompanyGuestModal] = useState(false);\r\n const [showTransportationPopup, setShowTransportationPopup] = useState(false);\r\n const [showArrivalDeparturePopup, setShowArrivalDeparturePopup] = useState(false);\r\n const [showReservationContactPopup, setShowReservationContactPopup] = useState(false);\r\n const selectdepositedata = [{ key: \"op1\", value: \"50% Deposit on booking\" }];\r\n const [gridSelectedItem, SetgridSelectedItem] = useState([]);\r\n const [temp, settemp] = useState(false);\r\n const [linkInfo, setlinkInfo] = useState({});\r\n const [showTraceGridTooltip, setShowTraceGridTooltip] = useState(false);\r\n const [wrRouting, setwrRouting] = useState(\"\");\r\n const [ContactType, setContactType] = useState(\"\");\r\n const [resStatusObj, setResStatusObj] = useState({});\r\n const propertyParameters = [\"BusinessDate\"];\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n const [showRoomAssignmentPopup, setShowRoomAssignmentPopup] = useState(false);\r\n const [userRightsData, setUserRightsData] = useState([]);\r\n const [showCancelPopup, setShowCancelPopup] = useState(false);\r\n const [cancelPopupMode, setCancelPopupMode] = useState(\"\");\r\n const [resInfoData, setResInfoData] = useState({});\r\n const [showRoomMovePopup, setShowRoomMovePopup] = useState(false);\r\n const [showRoomMoveFilterModal, setShowRoomMoveFilterModal] = useState(false);\r\n const { innkeyAlert } = useAlert();\r\n const resObj = {\r\n // ClientSerNo: parseInt(currUser.ClientSerNo),\r\n // PropertySerNo: parseInt(currUser.PropertySerNo),\r\n // ReservationSerNo: location.state.reservationSerNo\r\n ClientSerNo: 1201,\r\n PropertySerNo: 1,\r\n ReservationSerNo: 10,\r\n };\r\n const [roomMoveDataObj, setRoomMoveDataObj] = useState({});\r\n const [resString, setResString] = useState();\r\n const [primarySharerResData, setPrimarySharerResData] = useState({});\r\n const [updatedKey, setUpdatedKey] = useState(1);\r\n const renderChild = () => {\r\n let newkey = Math.floor(Math.random() * 100);\r\n setUpdatedKey(newkey);\r\n };\r\n\r\n const reservationObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: location.state.reservationSerNo,\r\n // ClientSerNo: 1201,\r\n // PropertySerNo: 1,\r\n // ReservationSerNo: 10\r\n };\r\n const DummyOption = [\r\n { key: \"Option 1\", value: \"1\" },\r\n { key: \"Option 2\", value: \"2\" },\r\n { key: \"Option 3\", value: \"3\" },\r\n { key: \"Option 4\", value: \"4\" },\r\n { key: \"Option 5\", value: \"5\" },\r\n ];\r\n const PaymentMode = [\r\n { key: \"Credit Card\", value: \"1\" },\r\n { key: \"Cash\", value: \"3\" },\r\n { key: \"Voucher\", value: \"4\" },\r\n { key: \"UPI\", value: \"7\" },\r\n ];\r\n const PaymentRoutingMode = [\r\n { key: \"Credit Card\", value: \"1\" },\r\n { key: \"BTC\", value: \"2\" },\r\n { key: \"Cash\", value: \"3\" },\r\n ];\r\n const PaymentDetailsDD = [\r\n { key: \"Credit Card\", value: \"1\" },\r\n { key: \"BTC\", value: \"2\" },\r\n { key: \"Cash\", value: \"3\" },\r\n { key: \"Voucher\", value: \"4\" },\r\n ];\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n\r\n const ActionOption = [\r\n { key: \"Cancel Reservation\", value: \"Cancel Reservation\" },\r\n { key: \"No Show Reservation \", value: \"No Show Reservation \" },\r\n { key: \"Assign Room \", value: \"Assign Room \" },\r\n { key: \"Room Move\", value: \"Room Move\" },\r\n { key: \"Reinstate\", value: \"Reinstate\" },\r\n { key: \"Split A Reservation\", value: \"Split A Reservation\" },\r\n { key: \"Go to Cashiering\", value: \"Go to Cashiering\" },\r\n { key: \"Print Registration Card \", value: \"Print Registration Card \" },\r\n { key: \"Performa Invoice \", value: \"Performa Invoice \" },\r\n { key: \"Confirmation E Mail\", value: \"Confirmation E Mail\" },\r\n { key: \"Link Reservation\", value: \"Link Reservation\" },\r\n ];\r\n\r\n const ExportSharerOption = [\r\n { key: \"Split\", value: \"spl\" },\r\n { key: \"Merge\", value: \"mer\" },\r\n ];\r\n const ExportOptionFile = [\r\n { key: \"Edit\", value: \"edt\" },\r\n { key: \"Preview\", value: \"prev\" },\r\n { key: \"Print\", value: \"prnt\" },\r\n { key: \"Email\", value: \"email\" },\r\n { key: \"Download\", value: \"download\" },\r\n { key: \"Delete\", value: \"delete\" },\r\n ];\r\n const StatusSelectData = [\r\n { key: \"Confirm\", value: \"con\" },\r\n { key: \"Waiting\", value: \"wait\" },\r\n ];\r\n const AlertDD = [\r\n { key: \"Call GM upon arrival\", value: \"op1\" },\r\n { key: \"Allocate room near elevator\", value: \"op2\" },\r\n { key: \"Collect Voucher\", value: \"op3\" },\r\n ];\r\n const FunctionalAreaDD = [\r\n { key: \"Check in\", value: \"con\" },\r\n { key: \"Room allocation\", value: \"wait\" },\r\n { key: \"Check out \", value: \"wait\" },\r\n ];\r\n const PurgeDD = [\r\n { key: \"Purge after 10 days of check out\", value: \"con\" },\r\n { key: \"Purge after 3 days of check out\", value: \"wait\" },\r\n ];\r\n const rbBillingInstruction = [\r\n { key: \"Direct Payment\", value: \"Direct Payment\" },\r\n { key: \"Third Party Settlement\", value: \"Third Party Settlement\" },\r\n { key: \"Room + Tax to company, rest direct\", value: \"Room + Tax to company, rest direct\" },\r\n { key: \"All Charges to Host\", value: \"All Charges to Host\" },\r\n { key: \"BTC Except Alcohol, Tobacco and Dry Cleaning\", value: \"BTC Except Alcohol, Tobacco and Dry Cleaning\" },\r\n ];\r\n const rbDataContact = [\r\n { key: \"Company\", value: \"Company\" },\r\n { key: \"Agent\", value: \"Agent\" },\r\n { key: \"Direct\", value: \"Direct\" },\r\n ];\r\n const selectdata = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n const columHeaderCancellation = [\r\n { key: \"Cancellation Rule\", value: \"desc\", type: \"txt\", sorting: \"N\" },\r\n {\r\n key: \"No. of Days Before Arrival\",\r\n value: \"before\",\r\n type: \"txt\",\r\n sorting: \"Y\",\r\n align: \"center\",\r\n },\r\n {\r\n key: \"Time\",\r\n value: \"time\",\r\n type: \"txt\",\r\n sorting: \"Y\",\r\n },\r\n {\r\n key: \"Amount\",\r\n value: \"amount\",\r\n type: \"txt\",\r\n sorting: \"Y\",\r\n },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n const [filterDataCancellation, setfilterDataCancellation] = useState([\r\n {\r\n desc: \"10% fee, 3 days before arrival\",\r\n before: \"3\",\r\n time: \"12:00\",\r\n amount: \"12,000\",\r\n action: \"...\",\r\n },\r\n {\r\n desc: \"10% fee, 3 days before arrival\",\r\n before: \"3\",\r\n time: \"12:00\",\r\n amount: \"12,000\",\r\n action: \"...\",\r\n },\r\n ]);\r\n const optBtnData = [\r\n { key: \"Edit\", value: \"edt\" },\r\n { key: \"Delete\", value: \"del\" },\r\n ];\r\n const optBtnResAttachment = [\r\n { key: \"Edit\", value: \"edt\" },\r\n { key: \"Preview\", value: \"pre\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Email\", value: \"email\" },\r\n { key: \"Download\", value: \"download\" },\r\n { key: \"Delete\", value: \"del\" },\r\n ];\r\n const optBtnDepoRec = [\r\n { key: \"Print Receipt\", value: \"print\" },\r\n { key: \"Email Receipt\", value: \"email\" },\r\n { key: \"Edit\", value: \"edt\" },\r\n { key: \"Refund\", value: \"ref\" },\r\n ];\r\n const optBtnDepoDue = [\r\n { key: \"Reminder Email\", value: \"email\" },\r\n { key: \"Reminder SMS\", value: \"sms\" },\r\n ];\r\n const PaymentoptBtnData = [\r\n { key: \"Edit\", value: \"edt\" },\r\n { key: \"Preview Receipt\", value: \"pre\" },\r\n { key: \"Email Receipt\", value: \"eml\" },\r\n { key: \"Print Receipt\", value: \"prnt\" },\r\n ];\r\n const optBtnMessage = [\r\n { key: \"Edit\", value: \"edt\" },\r\n { key: \"Send SMS\", value: \"sms\" },\r\n { key: \"Delete\", value: \"del\" },\r\n ];\r\n const columHeaderAttachment = [\r\n { key: \"File\", value: \"file\", type: \"img\", sorting: \"N\" },\r\n { key: \"Document Name\", value: \"docname\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Description\", value: \"desc\", type: \"txt\", sorting: \"Y\" },\r\n {\r\n key: \"Purge after number of days\",\r\n value: \"purgeday\",\r\n type: \"txt\",\r\n sorting: \"N\",\r\n align: \"center\",\r\n },\r\n {\r\n key: \"Action\",\r\n value: \"Action\",\r\n type: \"opt\",\r\n sorting: \"N\",\r\n align: \"center\",\r\n },\r\n ];\r\n const [filterDataAttachment] = useState([\r\n {\r\n file: JPGIcon,\r\n docname: \"Passport front page\",\r\n desc: \"Front page of passport of primary guest \",\r\n purgeday: \"15 Days\",\r\n Action: \"...\",\r\n },\r\n {\r\n file: JPGIcon,\r\n docname: \"Passport back page\",\r\n desc: \"Back page of passport of primary guest \",\r\n purgeday: \"15 Days\",\r\n Action: \"...\",\r\n },\r\n ]);\r\n const columHeaderAttachmentProfile = [\r\n { key: \"File\", value: \"file\", type: \"img\", sorting: \"N\" },\r\n { key: \"Document Type\", value: \"doctype\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Description\", value: \"desc\", type: \"txt\", sorting: \"Y\" },\r\n {\r\n key: \"Purge after number of days\",\r\n value: \"purgeday\",\r\n type: \"txt\",\r\n sorting: \"N\",\r\n align: \"center\",\r\n },\r\n {\r\n key: \"Action\",\r\n value: \"Action\",\r\n type: \"opt\",\r\n sorting: \"N\",\r\n align: \"center\",\r\n },\r\n ];\r\n const [filterDataAttachmentProfile] = useState([\r\n {\r\n file: JPGIcon,\r\n doctype: \"Passport front page\",\r\n desc: \"Front page of passport of primary guest \",\r\n purgeday: \"15 Days\",\r\n Action: \"...\",\r\n },\r\n {\r\n file: JPGIcon,\r\n doctype: \"Passport back page\",\r\n desc: \"Back page of passport of primary guest \",\r\n purgeday: \"15 Days\",\r\n Action: \"...\",\r\n },\r\n ]);\r\n const columHeaderArrDepDetail = [\r\n { key: \"Transportation Type\", value: \"type\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Date\", value: \"date\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Time\", value: \"time\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n const [filterDataArrDepDetail] = useState([\r\n {\r\n type: \"Pickup\",\r\n date: \"11 Sept, Friday\",\r\n time: \"12:30\",\r\n Action: \"...\",\r\n },\r\n ]);\r\n const columHeaderPayment = [\r\n { key: \"Date\", value: \"date\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Amount\", value: \"amt\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Mode Of Payment\", value: \"mop\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Ref. No.\", value: \"ref\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Receipt\", value: \"rece\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n const [filterDataPayment] = useState([\r\n {\r\n date: \"11th March\",\r\n amt: \"17920/-\",\r\n mop: \"Voucher\",\r\n ref: \"1234\",\r\n rece: \"5252\",\r\n Action: \"...\",\r\n },\r\n {\r\n date: \"12th March\",\r\n amt: \"20000/-\",\r\n mop: \"Visa\",\r\n ref: \"2345\",\r\n rece: \"4141\",\r\n Action: \"...\",\r\n },\r\n ]);\r\n const columHeaderDeposit = [\r\n { key: \"Deposit Rule\", value: \"desc\", type: \"txt\", sorting: \"N\" },\r\n {\r\n key: \"No. of Days After Booking Date\",\r\n value: \"daysafter\",\r\n type: \"txt\",\r\n sorting: \"N\",\r\n align: \"center\",\r\n },\r\n {\r\n key: \"No. of Days Before Arrival\",\r\n value: \"daysbefore\",\r\n type: \"txt\",\r\n sorting: \"N\",\r\n align: \"center\",\r\n },\r\n { key: \"Time\", value: \"time\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Amount\", value: \"amount\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n const [filterDataDeposit] = useState([\r\n {\r\n desc: \"50% Deposit on booking\",\r\n daysafter: \"3\",\r\n daysbefore: \"3\",\r\n time: \"12:00\",\r\n amount: \"10,000\",\r\n action: \"...\",\r\n },\r\n ]);\r\n const columHeaderDepositDue = [\r\n { key: \"Date\", value: \"date\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Amount\", value: \"amount\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Terms\", value: \"terms\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Status\", value: \"status\", type: \"txt\", sorting: \"N\" },\r\n {\r\n key: \"Action\",\r\n value: \"Action\",\r\n type: \"opt\",\r\n sorting: \"N\",\r\n align: \"center\",\r\n },\r\n ];\r\n const [filterDataDepositDue] = useState([\r\n {\r\n date: \"12 Sep\",\r\n amount: \"10,000\",\r\n terms: \"15 Days before arrival\",\r\n status: \"Overdue by 5 days\",\r\n action: \"...\",\r\n },\r\n ]);\r\n const columHeaderDepositReceived = [\r\n { key: \"Date\", value: \"date\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Mode Of Payment\", value: \"mode\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Amount\", value: \"amount\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Receipt No.\", value: \"recpt\", type: \"txt\", sorting: \"N\" },\r\n {\r\n key: \"Action\",\r\n value: \"Action\",\r\n type: \"opt\",\r\n sorting: \"N\",\r\n align: \"center\",\r\n },\r\n ];\r\n const [filterDataDepositReceived] = useState([\r\n {\r\n date: \"12 Sep\",\r\n mode: \"Credit Card\",\r\n amount: \"5000\",\r\n recpt: \"123456789\",\r\n action: \"...\",\r\n },\r\n ]);\r\n const columHeaderAlert = [\r\n { key: \"Alerts\", value: \"alert\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Area Of Alert\", value: \"area\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Delivery Type\", value: \"delivery\", type: \"txt\", sorting: \"Y\" },\r\n {\r\n key: \"Purge\",\r\n value: \"pergeday\",\r\n type: \"txt\",\r\n sorting: \"Y\",\r\n align: \"center\",\r\n },\r\n {\r\n key: \"Created By\",\r\n value: \"created\",\r\n type: \"texticon\",\r\n sorting: \"N\",\r\n align: \"left\",\r\n icon: \"info-dark-gray-icon mrgn-lt5\",\r\n iconposition: \"right\",\r\n },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n const [filterDataAlert] = useState([\r\n {\r\n alert: \"Allocate room near elevator\",\r\n area: \"Room Allocation\",\r\n delivery: \"Pop up\",\r\n pergeday: \"15\",\r\n created: \"Rohan Shah\",\r\n Action: \"...\",\r\n TooltipContent: [\r\n { tooltip: \"By Rohan Shah\" },\r\n { tooltip: \"Date : 25th Sept.\" },\r\n { tooltip: \"Time : 15:45\" },\r\n { tooltip: \"PC : 192.168.100.37\" },\r\n ],\r\n TooltipContentType: \"multi\",\r\n },\r\n {\r\n alert: \"Collect Advance for full stay\",\r\n area: \"on Checkin\",\r\n delivery: \"Pop up\",\r\n pergeday: \"15\",\r\n created: \"Rohan Shah\",\r\n Action: \"...\",\r\n TooltipContent: [\r\n { tooltip: \"By Rohan Shah\" },\r\n { tooltip: \"Date : 25th Sept.\" },\r\n { tooltip: \"Time : 15:45\" },\r\n { tooltip: \"PC : 192.168.100.37\" },\r\n ],\r\n TooltipContentType: \"multi\",\r\n },\r\n ]);\r\n const columHeaderTrace = [\r\n { key: \"Department\", value: \"dep\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Trace\", value: \"trace\", type: \"txt\", sorting: \"N\" },\r\n { key: \"From Date\", value: \"fromdate\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"To Date\", value: \"todate\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Time\", value: \"time\", type: \"txt\", sorting: \"Y\" },\r\n {\r\n key: \"Created By\",\r\n value: \"created\",\r\n type: \"texticon\",\r\n sorting: \"N\",\r\n align: \"left\",\r\n icon: \"info-dark-gray-icon mrgn-lt5\",\r\n iconposition: \"right\",\r\n },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n const [filterDataTrace] = useState([\r\n {\r\n dep: \"Travel Desk\",\r\n trace: \"Airport Pickup\",\r\n fromdate: \"25th Sept\",\r\n todate: \"27th Sept\",\r\n time: \"09:30\",\r\n created: \"Rohan Shah\",\r\n Action: \"...\",\r\n TooltipContent: [\r\n { tooltip: \"By Rohan Shah\" },\r\n { tooltip: \"Date : 25th Sept.\" },\r\n { tooltip: \"Time : 15:45\" },\r\n { tooltip: \"PC : 192.168.100.37\" },\r\n ],\r\n TooltipContentType: \"multi\",\r\n },\r\n {\r\n dep: \"Housekeeping\",\r\n trace: \"Provide Rollover Bed\",\r\n fromdate: \"25th Sept\",\r\n todate: \"27th Sept\",\r\n time: \"09:30\",\r\n created: \"Rohan Shah\",\r\n Action: \"...\",\r\n TooltipContent: [\r\n { tooltip: \"By Rohan Shah\" },\r\n { tooltip: \"Date : 25th Sept.\" },\r\n { tooltip: \"Time : 15:45\" },\r\n { tooltip: \"PC : 192.168.100.37\" },\r\n ],\r\n TooltipContentType: \"multi\",\r\n },\r\n {\r\n dep: \"Travel Desk\",\r\n trace: \"Full Day Taxi\",\r\n fromdate: \"25th Sept\",\r\n todate: \"27th Sept\",\r\n time: \"09:30\",\r\n created: \"Rohan Shah\",\r\n Action: \"...\",\r\n TooltipContent: [\r\n { tooltip: \"By Rohan Shah\" },\r\n { tooltip: \"Date : 25th Sept.\" },\r\n { tooltip: \"Time : 15:45\" },\r\n { tooltip: \"PC : 192.168.100.37\" },\r\n ],\r\n TooltipContentType: \"multi\",\r\n },\r\n ]);\r\n const rbDataGST = [\r\n { key: \"Not Applicable\", value: \"Not Applicable\" },\r\n { key: \"Company on Reservation\", value: \"Company on Reservation\" },\r\n { key: \"Agent on Reservation\", value: \"Agent on Reservation\" },\r\n { key: \"Company on Profile\", value: \"Company on Profile\" },\r\n ];\r\n const rbDataRouting = [\r\n { key: \"Window Routing\", value: \"Window Routing\" },\r\n { key: \"Room Routing\", value: \"Room Routing\" },\r\n ];\r\n const rbDataRoutingT = [\r\n { key: \"Group\", value: \"Group\" },\r\n { key: \"Individual\", value: \"Individual\" },\r\n ];\r\n const rbDepositRule = [\r\n { key: \"After Booking Date\", value: \"After Booking Date\" },\r\n { key: \"Before Arrival\", value: \"Before Arrival\" },\r\n ];\r\n const rbDataMessage = [\r\n { key: \"Show All\", value: \"Show All\" },\r\n { key: \"Show all delivered\", value: \"Show all delivered\" },\r\n { key: \"Show all pending\", value: \"Show all pending\" },\r\n ];\r\n const assignData = [\r\n { key: \"Assign\", value: \"Assign\" },\r\n { key: \"Assign & Check In\", value: \"Assign & Check In\" },\r\n ];\r\n\r\n console.log(typeof location.state.filterObj);\r\n //#region PageLoad\r\n useEffect(() => {\r\n\r\n fillReservationInfoData();\r\n fillUserRights();\r\n\r\n manageReservationBalanceIndicator(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), reservationObj.ReservationSerNo).then(d => {\r\n setTotalBalance(d.data);\r\n });\r\n\r\n // GetReservationBySerNo(parseInt(currUser.ClientSerNo),parseInt(currUser.PropertySerNo),location.state.reservationSerNo).then(d => {\r\n GetReservationBySerNo(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), reservationObj.ReservationSerNo).then(d => {\r\n console.log(\"reservation status >>>\", d.data);\r\n setResStatusObj(d.data);\r\n let extraPkg = [];\r\n let extraPkgTax = [];\r\n\r\n if (d.data.RateCodeDetail.PackageDetails != undefined) {\r\n extraPkg = d.data.RateCodeDetail.PackageDetails.filter(x => x.IsAdditional == true);\r\n }\r\n if (d.data.RateCodeDetail.TaxDetails != undefined) {\r\n extraPkgTax = d.data.RateCodeDetail.TaxDetails.filter(x => x.Type == 'PE');\r\n }\r\n let distinctPkg = [];\r\n extraPkg.map(p => {\r\n let newPkg = distinctPkg.filter(x => x.PackageSerNo == p.PackageSerNo).length;\r\n if (newPkg == 0) {\r\n distinctPkg.push({ \"PackageSerNo\": p.PackageSerNo, \"Name\": p.Name, \"Adult\": p.Adult, \"Child\": p.Child });\r\n }\r\n });\r\n\r\n let exPkg = [];\r\n\r\n distinctPkg.map(dp => {\r\n let o = {};\r\n o.RateCodeDetail = {};\r\n o.RateCodeDetail.RateCodeDetails = null;\r\n o.RateCodeDetail.ChargeDetails = null;\r\n o.RateCodeDetail.NewPackageDetails = [];\r\n\r\n o.RateCodeDetail.PackageDetails = d.data.RateCodeDetail.PackageDetails.filter(x => x.IsAdditional == true && x.PackageSerNo == dp.PackageSerNo);\r\n o.RateCodeDetail.PackageDetails.map(np => {\r\n let calculatedQty = 1;\r\n if (np.CalculationRuleSerNo == \"PP\") {\r\n calculatedQty = parseInt(np.Adult) + parseInt(np.Child);\r\n } else if (np.CalculationRuleSerNo == \"PA\") {\r\n calculatedQty = parseInt(np.Adult);\r\n } else if (np.CalculationRuleSerNo == \"PC\") {\r\n calculatedQty = parseInt(np.Child);\r\n } else {\r\n calculatedQty = 1;\r\n }\r\n\r\n let newPkg = o.RateCodeDetail.NewPackageDetails.filter(x => x.PackageSerNo == np.PackageSerNo).length;\r\n let night = o.RateCodeDetail.PackageDetails.filter(x => x.PackageSerNo == np.PackageSerNo).length;\r\n let totalPrice = (parseFloat(np.PackageRate) + (np.IsTaxInclusive ? 0 : (parseFloat(np.Taxes) / parseInt(calculatedQty))));\r\n let stayTotal = (parseFloat(np.PackagePrice) + (np.IsTaxInclusive ? 0 : parseFloat(np.Taxes)));\r\n if (newPkg == 0) {\r\n o.RateCodeDetail.NewPackageDetails.push({\r\n RateSerNo: np.RateSerNo,\r\n PackageSerNo: np.PackageSerNo,\r\n Name: np.Name,\r\n PackageRate: np.PackageRate,\r\n PackagePrice: np.PackagePrice,\r\n CalculationRule: np.CalculationRule,\r\n PostingRhythm: np.PostingRhythm,\r\n PostingType: np.PostingType,\r\n Component: (np.IsTaxInclusive ? np.PackageRate + \" Incl.Tax\" : np.PackageRate + \" + Tax\"),\r\n Total: totalPrice.toFixed(2),\r\n Person: np.Adult + \"A, \" + np.Child + \"C\",\r\n Action: \"\",\r\n Nights: night,\r\n Qty: calculatedQty * night,\r\n StayTotal: (parseFloat(stayTotal) * parseInt(night)).toFixed(2),\r\n });\r\n }\r\n });\r\n o.RateCodeDetail.TaxDetails = d.data.RateCodeDetail.TaxDetails.filter(x => x.Type == 'PE' && x.PackageSerNo == dp.PackageSerNo);\r\n o.PackageSerNo = dp.PackageSerNo;\r\n o.Adult = dp.Adult;\r\n o.Child = dp.Child;\r\n o.Name = dp.Name;\r\n exPkg.push(o);\r\n });\r\n\r\n dispatch(reSetExtraPackage(exPkg));\r\n\r\n // get extra packages\r\n\r\n let orgData = JSON.parse(JSON.stringify(d.data));\r\n\r\n if (d.data.RateCodeDetail.PackageDetails != undefined) {\r\n orgData.RateCodeDetail.PackageDetails = d.data.RateCodeDetail.PackageDetails.filter(x => x.IsAdditional == false);\r\n }\r\n if (d.data.RateCodeDetail.TaxDetails != undefined) {\r\n orgData.RateCodeDetail.TaxDetails = d.data.RateCodeDetail.TaxDetails.filter(x => x.Type != 'PE');\r\n }\r\n\r\n orgData.NewAdult = orgData.Adult;\r\n\r\n let obj = ModifiedRateDetailData(orgData.RateCodeDetail);\r\n dispatch(setRateAndPackages(obj));\r\n dispatch(setTempRateAndPackage({}));\r\n setNewReservation(orgData);\r\n });\r\n\r\n GetPropertyParameterByKeys(currUser.ClientSerNo, currUser.PropertySerNo, propertyParameters).then((d) => {\r\n console.log(d.data);\r\n let obj = d.data.find((x) => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(d.data[0].value);\r\n }\r\n });\r\n }, []);\r\n\r\n //#endregion PageLoad\r\n\r\n //#region UseEffect \r\n\r\n useEffect(() => {\r\n fillReservationInfoData();\r\n }, [isIncognitoChanged]);\r\n\r\n useEffect(() => {\r\n console.log(\"selected data\", gridSelectedItem);\r\n console.log(\"selected length\", gridSelectedItem.length);\r\n }, [gridSelectedItem, temp]);\r\n\r\n useEffect(() => {\r\n document.addEventListener(\"click\", handleClickOuside, false);\r\n return () => {\r\n document.removeEventListener(\"click\", handleClickOuside, false);\r\n };\r\n }, [showReceivedPopup]);\r\n\r\n //#endregion UseEffect \r\n\r\n //#region PageLevelMethod\r\n\r\n const fillReservationInfoData = () => {\r\n GetReservationInfoData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), reservationObj.ReservationSerNo).then(d => {\r\n console.log(\"ReservationInfo\", d.data);\r\n if (d.data.IsSharer == true) {\r\n GetReservationInfoData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(d.data.SharerReservationSerNo)).then(d => {\r\n setPrimarySharerResData(d.data);\r\n });\r\n }\r\n setReservationInfoData(d.data);\r\n });\r\n };\r\n\r\n const fillUserRights = () => {\r\n ManageRights(currUser.ClientSerNo, currUser.UserID, \"45,46,47,48,49,50\").then((d) => {\r\n setUserRightsData(d.data);\r\n });\r\n };\r\n //#endregion PageLevelMethod\r\n\r\n //#region Event\r\n\r\n const setSelectedItem = (items) => {\r\n SetgridSelectedItem(items);\r\n settemp(!temp);\r\n };\r\n\r\n const handleClickOuside = (e) => {\r\n if (wrapperRef.current && !wrapperRef.current.contains(e.target)) {\r\n setShowReceivedPopup(false);\r\n }\r\n };\r\n //Split \r\n const handleSplitReservation = async (data) => {\r\n console.log(\"Selected Reservation for Split >\", data);\r\n if (data.Rooms > 1) {\r\n let inputObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: data.ReservationSerNo,\r\n };\r\n let IsChangeable = true;\r\n IsChangeable = await innkeyAlert(\" You are about to split the tile to individual tiles, \\n \" +\r\n \" this action cannot be reversed once performed. \\n\" + \" Would you like to continue?\");\r\n if (IsChangeable) {\r\n ManageSplitReservation(inputObj).then((d) => {\r\n alert(d.data.Message);\r\n });\r\n }\r\n }\r\n else {\r\n alert(\"Split action can be performed only when there are more than 1 no. of rooms \" +\r\n \"in any reservation.This action cannot be performed.\");\r\n }\r\n };\r\n //End\r\n\r\n const handleOnCloseRmAssignmentPopup = () => {\r\n // setRmAssignmentData([]);\r\n setShowRoomAssignmentPopup(false);\r\n renderChild();\r\n };\r\n\r\n const handleUserRights = async (strRightsSerNo) => {\r\n if (strRightsSerNo != undefined) {\r\n const userRightObj = userRightsData.find((x) => x.RightsSerNo == strRightsSerNo);\r\n if (userRightObj != undefined) {\r\n if (userRightObj.IsApply != undefined) {\r\n if (userRightObj.IsApply) {\r\n return true;\r\n } else {\r\n await confirm({\r\n Message: `${userRightObj.Name} : ${userRightObj.PromptMessage}`,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n }\r\n };\r\n\r\n\r\n const handleActionMenu = (item) => {\r\n if (item.key == \"Cancel Reservation\") {\r\n handleUserRights(\"45\").then(d => {\r\n if (d) {\r\n if (resStatusObj.ReservationStatus == \"CAN\" || resStatusObj.ReservationStatus == \"NSH\") {\r\n alert(\"Reservation already cancelled\");\r\n } else {\r\n setShowCancelPopup(true);\r\n setCancelPopupMode(\"CAN\");\r\n }\r\n // setResInfoData({\r\n // ClientSerNo: parseInt(currUser.ClientSerNo),\r\n // PropertySerNo: parseInt(currUser.PropertySerNo),\r\n // ReservationSerNo: resStatusObj.ReservationSerNo,\r\n // ArrivalDate: resStatusObj.ArrivalDate,\r\n // });\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n }\r\n\r\n else if (item.key == \"No Show Reservation \") {\r\n handleUserRights(\"46\").then(d => {\r\n if (d) {\r\n if (resStatusObj.ReservationStatus == \"CAN\" || resStatusObj.ReservationStatus == \"NSH\") {\r\n alert(\"Reservation already cancelled\");\r\n } else {\r\n setShowCancelPopup(true);\r\n setCancelPopupMode(\"NSH\");\r\n }\r\n // setResInfoData({\r\n // ClientSerNo: parseInt(currUser.ClientSerNo),\r\n // PropertySerNo: parseInt(currUser.PropertySerNo),\r\n // ReservationSerNo: resStatusObj.ReservationSerNo,\r\n // ArrivalDate: resStatusObj.ArrivalDate,\r\n // });\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n\r\n }\r\n else if (item.key == \"Assign Room \") {\r\n if (reservationInfoData.IsSharer == true) {\r\n setResString(parseInt(reservationInfoData.SharerReservationSerNo));\r\n }\r\n else {\r\n setResString(resStatusObj.ReservationSerNo);\r\n }\r\n handleUserRights(\"50\").then(d => {\r\n if (d) {\r\n if (resStatusObj.Rooms === 1 || resStatusObj.Rooms === 0) {\r\n if (resStatusObj.ReservationStatus === \"DIN\" && moment(resStatusObj.ArrivalDate).format(\"DD-MMM-YYYY\") >= moment(businessDate).format(\"DD-MMM-YYYY\")) {\r\n setShowRoomAssignmentPopup(true);\r\n } else {\r\n alert(\"Room assignment is only possible for reservations that are confirmed and yet to arrive. This action cannot be performed.\");\r\n }\r\n }\r\n else {\r\n alert(\"Only reservations with no. of rooms as 1 can be assigned with a room. Please split the reservation first and then proceed for this action.\");\r\n }\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n\r\n }\r\n\r\n else if (item.key == \"Room Move\") {\r\n handleUserRights(\"47\").then(d => {\r\n if (d) {\r\n if (resStatusObj.ReservationStatus == \"ARD\" || resStatusObj.ReservationStatus == \"INH\" || resStatusObj.ReservationStatus == \"DOT\") {\r\n if (primarySharerResData.ReservationStatus != \"COT\" || reservationInfoData.ReservationStatus != \"COT\") {\r\n if (reservationInfoData.IsSharer == true) {\r\n if (window.confirm(\"Room move from a sharer reservation can be performed as per the stay dates of its primary sharing reservation. \" + reservationInfoData.GuestName + \" with arrival date as \" + reservationInfoData.ArrivalDate1 + \" and departure date as \" + reservationInfoData.DepartureDate1 + \" , having primary sharing guest as \" + primarySharerResData.GuestName + \" with arrival date as \" + primarySharerResData.ArrivalDate1 + \" and departure date as \" + primarySharerResData.DepartureDate1)) {\r\n setRoomMoveDataObj({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: parseInt(reservationInfoData.SharerReservationSerNo),\r\n });\r\n setShowRoomMovePopup(true);\r\n }\r\n }\r\n else {\r\n setRoomMoveDataObj({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: reservationInfoData.ReservationSerNo,\r\n });\r\n setShowRoomMovePopup(true);\r\n }\r\n }\r\n else {\r\n alert(\"The reservation must be occupied in order to perform this action.\");\r\n }\r\n\r\n }\r\n else {\r\n alert(\"The reservation must be occupied in order to perform this action.\");\r\n }\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n // if (d) {\r\n // setShowRoomMovePopup(true);\r\n // }\r\n // else {\r\n // console.log(\"No Operation\");\r\n // }\r\n });\r\n }\r\n else if (item.key == \"Split A Reservation\") {\r\n handleUserRights(\"49\").then(d => {\r\n if (d) {\r\n handleSplitReservation(resStatusObj);\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n }\r\n\r\n else if (item.key == \"Reinstate\") {\r\n handleUserRights(\"48\").then(d => {\r\n if (d) {\r\n\r\n if (resStatusObj.ReservationStatus == \"CAN\" || resStatusObj.ReservationStatus == \"NSH\") {\r\n console.log(\"Reinstate\");\r\n }\r\n else {\r\n alert(\"Reinstating a reservation is only possible on a cancelled or a no show reservation. This action cannot be performed.\");\r\n }\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n });\r\n }\r\n\r\n else if (item.key == \"Go to Cashiering\") {\r\n if (resStatusObj.ReservationStatus == \"INH\" || resStatusObj.ReservationStatus == \"ARD\" || resStatusObj.ReservationStatus == \"DOT\" || resStatusObj.ReservationStatus == \"COT\") {\r\n history.push({\r\n pathname: \"/ReservationCashiering\",\r\n state: {\r\n ReservationSerNo: resStatusObj.ReservationSerNo.toString(),\r\n filterObj: (location.state.filterObj) == undefined ? undefined : location.state.filterObj\r\n },\r\n });\r\n } else {\r\n alert(\"Cashiering cannot be accessed if the reservation has not checked in yet. This action cannot be performed.\");\r\n }\r\n }\r\n\r\n };\r\n //#endregion Event\r\n\r\n //#region Tooltip\r\n\r\n const RoomFeaturesInfoTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    Lorem Ipsum demo Lorem Ipsum demo Lorem Ipsum demo Lorem Ipsum demo Lorem Ipsum demo
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const RoomTypeTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n Sea view, Near Elevator,
    \r\n Inter-Connected, Twin Bed, Smoking Room\r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const ReservationContactTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Mr. Hemang
    \r\n
    \r\n Mobile: 9842342434\r\n \r\n SMS\r\n \r\n
    \r\n
    \r\n Email: preetiiyengar@innkeypms.net\r\n \r\n Email\r\n \r\n
    \r\n
    Department : IT
    \r\n
    Designation : Manager
    \r\n
    \r\n
    \r\n
    \r\n \r\n setShowReservationContactPopup(!showReservationContactPopup)\r\n }\r\n >\r\n Edit\r\n \r\n\r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const AgentTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Make My Trip
    \r\n
    \r\n Mobile: 9842342434\r\n \r\n SMS\r\n \r\n
    \r\n
    \r\n Email: preetiiyengar@innkeypms.net\r\n \r\n Email\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Edit\r\n\r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const CompanyTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Arvind Ltd.
    \r\n
    \r\n Mobile: 9842342434\r\n \r\n SMS\r\n \r\n
    \r\n
    \r\n Email: preetiiyengar@innkeypms.net\r\n \r\n Email\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Edit\r\n\r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const ProfileGuestTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Ms Mansi Sharma (Wife)
    \r\n
    \r\n Mobile: 9842342434\r\n \r\n SMS\r\n \r\n
    \r\n
    \r\n Email: preetiiyengar@innkeypms.net\r\n \r\n Email\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Edit\r\n\r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const UpgradeTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Upgrade/Downgrade
    \r\n
    \r\n Reason : Room was not available, MD's Guest\r\n
    \r\n
    \r\n Username : Mr. Hemang\r\n
    \r\n
    Date : 15 Dec 2021
    \r\n
    Time : 10:20 PM
    \r\n
    \r\n
    \r\n
    \r\n Edit\r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const AccompanyGuestTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Ms Mansi Sharma
    \r\n
    Master Arjun Sharma
    \r\n
    \r\n
    \r\n
    \r\n setShowAccompanyGuestModal(!showAccompanyGuestModal)}\r\n >\r\n Edit\r\n \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const depositeRuleInfoTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n 100% Advance\r\n \r\n 11th March\r\n \r\n
    \r\n
    \r\n 100% advance to be received before arrival from MMT\r\n
    \r\n
    \r\n
    \r\n Deposit Amount\r\n  17920/-\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n setDepositRulePopup(!showDepositRulePopup)}\r\n >\r\n Edit\r\n \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const depositeRuleValueTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n 15th June\r\n Overdue : 5 Days\r\n
    \r\n
    Amount Requested : 10,000
    \r\n
    Deposit Paid : 0
    \r\n
    Balance Due: 10,000
    \r\n
    \r\n
    \r\n
    \r\n 9th JuneOverdue : 0\r\n
    \r\n
    Amount Requested : 12,000
    \r\n
    Deposit Paid : 12,000
    \r\n
    Balance : 0
    \r\n
    \r\n
    \r\n
    \r\n setDepositRulePopup(!showDepositRulePopup)}\r\n >\r\n Edit\r\n \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const DepositRulesTableTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    30% After Booking 10 Days
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const SharerAndPrimaryTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n Ms. Sanjana Sutaria\r\n {/* Booking. No. 12345678910 */}\r\n
    \r\n
    12th March – 14th March
    \r\n
    Payment Terms: Nil
    \r\n
    MMT
    \r\n
    \r\n
    \r\n
    \r\n Edit\r\n\r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const GroupInfoTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n Arvind GroupMr. Rajesh\r\n
    \r\n
    10 Rooms
    \r\n
    11th June to 17th June
    \r\n
    Arvind Limited
    \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const CancellationTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    100% Penalty
    \r\n
    \r\n 100% penalty if cancelled within 24hours of arrival date\r\n
    \r\n
    \r\n
    \r\n
    \r\n setCancellationPopup(!showCancellationPopup)}\r\n >\r\n Edit\r\n \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n // const AttachmentTooltip = () => {\r\n // return (\r\n //
    \r\n //
    \r\n //
    \r\n //
    Booking Confirmation
    \r\n //
    \r\n // Download Document\r\n //
    \r\n //
    \r\n //
    \r\n //
    MMT Voucher
    \r\n //
    \r\n // Download Document\r\n //
    \r\n //
    \r\n // {/*
    \r\n //
    Tax Exempt Certificate
    \r\n //
    Certificate of Diplomats
    \r\n // \r\n //
    */}\r\n //
    \r\n //
    \r\n // setAttachmentPopup(!showAttachmentPopup)}\r\n // >\r\n // Edit\r\n // \r\n // console.log(item, name)}\r\n // >\r\n //
    \r\n //
    \r\n // );\r\n // };\r\n\r\n const ConfirmStatusTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n Created By\r\n Mr. Hemang\r\n
    \r\n
    \r\n Date: 15 Dec. 2021\r\n
    \r\n
    Time: 10:20PM
    \r\n
    PC: 192.168.600.789
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const AttachmentGuestTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Certificate
    \r\n
    Certificate of Diplomats
    \r\n
    Preview Document: name
    \r\n
    Download Document : Name
    \r\n
    \r\n
    \r\n
    Certificate
    \r\n
    Certificate of Diplomats
    \r\n
    Preview Document: name
    \r\n
    Download Document : Name
    \r\n
    \r\n
    \r\n
    \r\n setAttachmentGuestPopup(!showAttachmentGuestPopup)}\r\n >\r\n Edit\r\n \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const Profile2Tooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Membership No.
    \r\n
    \r\n 32452342\r\n  (Gold Member)\r\n
    \r\n
    \r\n
    Base Points : 10000
    \r\n
    Bonus Points : 4000
    \r\n
    \r\n Total Points :\r\n  14000\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Edit\r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const PastStayTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Year 2021
    \r\n
    \r\n
    \r\n
    Occupied
    \r\n
    75 Room Nights
    \r\n
    \r\n
    \r\n
    Cancelled
    \r\n
    7 Room Nights
    \r\n
    \r\n
    \r\n
    No-Show
    \r\n
    0 Room Nights
    \r\n
    \r\n
    \r\n
    Day Use
    \r\n
    6 Rooms
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Year 2020
    \r\n
    \r\n
    \r\n
    Occupied
    \r\n
    4 Room Nights
    \r\n
    \r\n
    \r\n
    Cancelled
    \r\n
    12 Room Nights
    \r\n
    \r\n
    \r\n
    No-Show
    \r\n
    0 Room Nights
    \r\n
    \r\n
    \r\n
    Day Use
    \r\n
    0 Room Nights
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Year 2019
    \r\n
    \r\n
    \r\n
    Occupied
    \r\n
    200 Room Nights
    \r\n
    \r\n
    \r\n
    Cancelled
    \r\n
    20 Room Nights
    \r\n
    \r\n
    \r\n
    No-Show
    \r\n
    10 Room Nights
    \r\n
    \r\n
    \r\n
    Day Use
    \r\n
    13 Room Nights
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Edit\r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const RevenueHistoryTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Year 2021\r\n \r\n Total Revenue: 65,000\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Avg. Daily Rate
    \r\n
    3750/- 12 Nights
    \r\n
    \r\n
    \r\n
    F&B Revenue
    \r\n
    12,000
    \r\n
    \r\n
    \r\n
    Room Revenue
    \r\n
    45,000
    \r\n
    \r\n
    \r\n
    Other Revenue
    \r\n
    8,000
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Year 2020\r\n \r\n Total Revenue: 8,000\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Avg. Daily Rate
    \r\n
    2500/- 2 Nights
    \r\n
    \r\n
    \r\n
    F&B Revenue
    \r\n
    3,000
    \r\n
    \r\n
    \r\n
    Room Revenue
    \r\n
    5,000
    \r\n
    \r\n
    \r\n
    Other Revenue
    \r\n
    0
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Year 2018\r\n \r\n Total Revenue: 11,00,000\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Avg. Daily Rate
    \r\n
    4,500 200 Nights
    \r\n
    \r\n
    \r\n
    F&B Revenue
    \r\n
    1,50,000
    \r\n
    \r\n
    \r\n
    Room Revenue
    \r\n
    9,00,000
    \r\n
    \r\n
    \r\n
    Other Revenue
    \r\n
    50,000
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Edit\r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const PickUpTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n 15th June 12:45SpiceJet Airline\r\n
    \r\n
    \r\n Flight No SP-313 from Mumbai Gate No 10 on Terminal 1\r\n
    \r\n
    \r\n Driver Name : Mr. John (M:9823423134)\r\n
    \r\n
    \r\n
    \r\n
    \r\n setShowTransportationPopup(!showTransportationPopup)}\r\n >\r\n Edit\r\n \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const CommunicationTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Mr. Rohan Shah
    \r\n
    \r\n 36, Vasupujya, Satellite Ahmedabad, Gujarat 380015\r\n
    \r\n
    \r\n 9842342434\r\n \r\n SMS\r\n \r\n
    \r\n
    \r\n 7926862544\r\n \r\n SMS\r\n \r\n
    \r\n
    \r\n rohanshah@innkeypms.net\r\n \r\n Email\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Edit\r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const PreferenceTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n Room on front side sea view\r\n
    \r\n
    -
    \r\n
    \r\n
    \r\n
    HDMI Cable in room
    \r\n
    Entire Stay
    \r\n
    \r\n
    \r\n
    In Room service
    \r\n
    Morning Tea @6:30
    \r\n
    \r\n
    \r\n
    \r\n Edit\r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const RoomRoutingTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n Booking No. 54238521\r\n Ms. Preeti Iyengar\r\n
    \r\n
    \r\n Room No. 324MMT\r\n
    \r\n
    \r\n {/*
    \r\n
    Room No. 324Viral Shah
    \r\n
    Food & Beverage
    \r\n
    \r\n
    \r\n
    Room No. 209Amit Shah
    \r\n
    Laundry, Spa & other charges
    \r\n
    */}\r\n
    \r\n
    \r\n setWindowRoutingPopup(!showWindowRoutingPopup)}\r\n >\r\n Edit\r\n \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const WindowRoutingTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n W 1 - Room charges MMT\r\n
    \r\n
    \r\n Room rent & Plan inclusions\r\n
    \r\n
    \r\n
    \r\n
    \r\n W 2 - Food billsVisa\r\n
    \r\n
    Food & Beverage, Minibar
    \r\n
    \r\n
    \r\n
    \r\n W 3 - SpaCash\r\n
    \r\n
    Laundry, Spa, etc.
    \r\n
    \r\n
    \r\n
    \r\n setWindowRoutingPopup(!showWindowRoutingPopup)}\r\n >\r\n Edit\r\n \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const MessageTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n Mr. Rakesh SharmaPending\r\n
    \r\n
    Incoming Call
    \r\n
    \r\n Please call him back, it is urgent\r\n
    \r\n
    \r\n
    \r\n
    \r\n Mr. Rohit SharmaDelivered\r\n
    \r\n
    Parcel
    \r\n
    \r\n Mrs. Roshini Sharma send the parcel\r\n
    \r\n
    \r\n
    \r\n
    \r\n setShowMessagePopup(!showMessagePopup)}\r\n >\r\n Edit\r\n \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const LocatorTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Conference Room
    \r\n
    12th June, 11:30 - 17:30
    \r\n
    Mr. Shailesh (Housekepper)
    \r\n
    \r\n
    \r\n
    \r\n Edit\r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const FAndBTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Restaurant
    \r\n
    15% Discount
    \r\n
    \r\n
    \r\n
    Bar
    \r\n
    15% Discount
    \r\n
    \r\n
    \r\n
    Coffe Shop
    \r\n
    15% Discount
    \r\n
    \r\n
    \r\n
    \r\n Total Discount Avail :\r\n 1500\r\n
    \r\n
    \r\n
    \r\n
    \r\n setFBDiscountPopup(!showFBDiscountPopup)}\r\n >\r\n Edit\r\n \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const TraceTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n Housekeeping Due\r\n
    \r\n
    \r\n Provide rollover bed to room\r\n
    \r\n
    \r\n 12 June - 15 June (10:15PM)\r\n
    \r\n
    \r\n
    \r\n
    \r\n Housekeeping Due\r\n
    \r\n
    Provide 2 extra pillows
    \r\n
    Entire stay
    \r\n
    \r\n
    \r\n
    \r\n setTracePopup(!showTracePopup)}>\r\n Edit\r\n \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const AlertTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n On Checkins Prompt\r\n
    \r\n
    \r\n Collect advance Rs 15000 on arrival\r\n
    \r\n
    \r\n
    \r\n
    \r\n On Checkins Display\r\n
    \r\n
    Inform GM to meet customer
    \r\n
    \r\n
    \r\n
    \r\n On Checkins Display\r\n
    \r\n
    \r\n Collect tax exempt certificate from guest\r\n
    \r\n
    \r\n
    \r\n
    \r\n setAlertPopup(!showAlertPopup)}>\r\n Edit\r\n \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const GSTClaimTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n Arvind Limited   \r\n (Company)\r\n
    \r\n
    GJ2342342134123
    \r\n
    Gujarat (State Code: 16)
    \r\n
    \r\n
    \r\n
    \r\n setGSTClaimPopup(!showGSTClaimPopup)}\r\n >\r\n Edit\r\n \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const NoPostTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n Restaurant\r\n console.log(v)} id=\"1\">\r\n
    \r\n
    \r\n
    \r\n
    \r\n In Room Dyning\r\n console.log(v)} id=\"2\">\r\n
    \r\n
    \r\n
    \r\n
    \r\n Bar\r\n console.log(v)} id=\"3\">\r\n
    \r\n
    \r\n
    \r\n
    \r\n setNoPostPopup(!showNoPostPopup)}>\r\n Edit\r\n \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const RoomFeaturesTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Room Features (16)
    \r\n
      \r\n
    • \r\n Pool size view\r\n
    • \r\n
    • \r\n King Size Bed\r\n
    • \r\n
    • \r\n 72 inch LCD TV\r\n
    • \r\n
    • \r\n Some Text\r\n
    • \r\n
    • \r\n Pool size view\r\n
    • \r\n
    • \r\n King Size Bed\r\n
    • \r\n
    • \r\n 72 inch LCD TV\r\n
    • \r\n
    • \r\n Some Text\r\n
    • \r\n
    • \r\n Pool size view\r\n
    • \r\n
    • \r\n King Size Bed\r\n
    • \r\n
    • \r\n 72 inch LCD TV\r\n
    • \r\n
    • \r\n Some Text\r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n setShowRoomFeaturesModal(!showRoomFeaturesModal)}\r\n >\r\n Edit\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const SpecialsTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    specials (5)
    \r\n
      \r\n
    • \r\n Economic Times\r\n
    • \r\n
    • \r\n Feather Pillow\r\n
    • \r\n
    • \r\n HDMI Cable\r\n
    • \r\n
    • \r\n Some Text\r\n
    • \r\n
    • \r\n Some Text\r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n setShowRoomSpecialsModal(!showRoomSpecialsModal)}\r\n >\r\n Edit\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n const BillingInstructionTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    BILLING INSTRUCTION (5)
    \r\n\r\n
    \r\n Bill to company Except Alcohol, Tobacco and Dry Cleaning.\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n setShowBillingInstructionModal(!showBillingInstructionModal)\r\n }\r\n >\r\n Edit\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const PackagesTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Spa (2)
    \r\n
    Airport Pickup (2)
    \r\n
    Safari (4)
    \r\n
    \r\n
    \r\n
    \r\n \r\n Edit {/* Packages list popup from add page */}\r\n \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n //#endregion Tooltip\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Reservation

    \r\n
    \r\n
    \r\n
    \r\n {/* {\r\n settabcollection(data);\r\n settabId(\"tab1\");\r\n }}\r\n handleTabClick={(tabid) => {\r\n settabId(tabid);\r\n }}\r\n > */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    setShowRateSelectionSummaryModal(!showRateSelectionSummaryModal)}>\r\n
    \r\n {totalBalance.Nights} Nights  Inclusive of all taxes\r\n
    \r\n
    \r\n {totalBalance.Balance}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {/* \r\n \r\n 12\r\n */}\r\n \r\n \r\n\r\n
      \r\n
    • Booking No: 3456234
    • \r\n
    • Folio No: 3456234
    • \r\n
    • Ref. No: MMT12345678981
    • \r\n
    \r\n
    \r\n
    \r\n \r\n {(resStatusObj.ReservationStatus === 'DIN') ?\r\n Due In\r\n :\r\n (resStatusObj.ReservationStatus === 'CAN') ?\r\n Cancelled\r\n :\r\n (resStatusObj.ReservationStatus === 'NSH') ?\r\n No-show\r\n :\r\n (resStatusObj.ReservationStatus === 'COT') ?\r\n Checked-out\r\n :\r\n (resStatusObj.ReservationStatus === 'TEN') ?\r\n Tentative\r\n :\r\n (resStatusObj.ReservationStatus === 'HLD') ?\r\n Hold\r\n : (resStatusObj.ReservationStatus === 'INH') ?\r\n <>\r\n {(new Date(moment(new Date(resStatusObj.ArrivalDate)).format('DD-MMM-YYYY')).getTime() !== new Date(moment(new Date(resStatusObj.DepartureDate)).format('DD-MMM-YYYY')).getTime()) ?\r\n <>\r\n {(new Date(moment(new Date(resStatusObj.ArrivalDate)).format('DD-MMM-YYYY')).getTime() == new Date(moment(new Date(businessDate)).format('DD-MMM-YYYY')).getTime()) ?\r\n Arrived\r\n :\r\n (new Date(moment(new Date(resStatusObj.DepartureDate)).format('DD-MMM-YYYY')).getTime() == new Date(moment(new Date(businessDate)).format('DD-MMM-YYYY')).getTime()) ?\r\n Due Out\r\n :\r\n In House\r\n }\r\n \r\n :\r\n Due Out}\r\n \r\n : null\r\n }\r\n \r\n {/* \r\n Expected Arrival\r\n */}\r\n {/* \r\n Action\r\n */}\r\n\r\n handleActionMenu(item)}\r\n >\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    {t('INN_Reservation')}
    \r\n
    \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n {\r\n setIsReloadArrivalDept(!isReloadArrivalDept);\r\n }}>\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {/*commented because indicator is not implemented yet. */}\r\n \r\n { setReservationInfoData(prev => ({ ...prev, IsDiscloseRate: !v })); }} para={reservationInfoData} >\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n { setReservationInfoData(prev => ({ ...prev, IsDiscloseRate: v })); }} para={reservationInfoData}>\r\n\r\n \r\n {\r\n setIsReloadArrivalDept(!isReloadArrivalDept);\r\n setIsReloadTransportation(!isReloadTransportation);\r\n }}>\r\n \r\n\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    {t('INN_BILLING')}
    \r\n
    \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
    \r\n {t('INN_AuthorizedCredit')}\r\n 25000\r\n
    \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    {t('INN_Profile')} (2)
    \r\n
    \r\n { setSelectedGuestProfile(item); setUpdatePreference(!updatePreference); }}>\r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n {/* */}\r\n {/* */}\r\n { setIsIncognitoChanged(!isIncognitoChanged); }}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {t('INN_Features')}
    \r\n setUpdatePreference(!updatePreference)} para={{ ...reservationInfoData, IsShowTooltipActionButton: \"show\" }}>\r\n setUpdatePreference(!updatePreference)} para={{ ...reservationInfoData, IsShowTooltipActionButton: \"show\" }}>\r\n \r\n \r\n
    \r\n {t('INN_Notification')}\r\n
    \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {/*commented because indicator is not implemented yet. */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n \r\n
    \r\n
    \r\n {\r\n history.push({\r\n pathname: \"/ReservationListPage\",\r\n state: { filterObj: (location.state.filterObj) == undefined ? undefined : location.state.filterObj }\r\n });\r\n }}\r\n >\r\n Back To Manage Reservation\r\n \r\n {\r\n history.push({\r\n pathname: \"/ReservationAdd\",\r\n state: { propertySerNo: reservationObj.PropertySerNo, reservationSerNo: reservationObj.ReservationSerNo, Mode: \"Edit\", filterObj: (location.state.filterObj == undefined) ? undefined : location.state.filterObj },\r\n });\r\n }}\r\n >\r\n Edit\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* Popups Start */}\r\n {showCancellationPopup ? (\r\n setCancellationPopup(!showCancellationPopup)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Cancellation Rule

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      Confirmation No.
      \r\n
      12345678910
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      \r\n Ms. Preeti Iyengar\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n

    \r\n Cancellation made 3 days before arrival will incur a 10%\r\n cancellation fee of the total booking value including\r\n packages if any.\r\n

    \r\n
    \r\n
    \r\n Or\r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Custom Cancellation Rule\r\n \r\n console.log(v)}\r\n >\r\n Cancellation Rule\r\n \r\n console.log(v)}\r\n >\r\n Short Description\r\n \r\n console.log(v)}\r\n >\r\n Amount\r\n \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n {\r\n console.log(e);\r\n }}\r\n //disabled=\"disabled\"\r\n placeholder=\"Time\"\r\n label=\"Time\"\r\n timeformat=\"HH:mm\" //for 12 hour h:mm aa\r\n dateformat=\"HH:mm\" //for 12 hour h:mm aa\r\n selected={\"14-FEb-2022 3:30 PM\"}\r\n >\r\n\r\n
    \r\n Add Rule\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnData}\r\n optClick={(v, d) => {\r\n console.log(v, d);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n {/* {showAttachmentPopup ? (\r\n setAttachmentPopup(!showAttachmentPopup)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Reservation Attachment

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      Confirmation No.
      \r\n
      12345678910
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      \r\n Ms. Preeti Iyengar\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Document Name\r\n console.log(v)}>\r\n Upload Document\r\n \r\n
    \r\n \r\n Description\r\n \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n Add attachment\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnResAttachment}\r\n optClick={(v, d) => {\r\n console.log(v, d);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null} */}\r\n {showSalesPopup ? (\r\n setSalesPopup(!showSalesPopup)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Sales & Marketing

    \r\n
    \r\n
    \r\n setSalesPopup(!showSalesPopup)}\r\n >\r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      Confirmation No.
      \r\n
      12345678910
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      \r\n Ms. Preeti Iyengar\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Details\r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n {showGSTClaimPopup ? (\r\n setGSTClaimPopup(!showGSTClaimPopup)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Company on Folio

    \r\n
    \r\n
    \r\n setGSTClaimPopup(!showGSTClaimPopup)}\r\n >\r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      Confirmation No.
      \r\n
      12345678910
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      \r\n Ms. Preeti Iyengar\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Who Claims GST?\r\n
    \r\n
    \r\n {\r\n console.log(\"selection changed called : \" + value);\r\n }}\r\n >\r\n
    \r\n\r\n \r\n Agent Name\r\n \r\n\r\n
    \r\n
    \r\n Make My Trip India Pvt. Ltd.\r\n
    \r\n
    \r\n Navrangpura Ahmedabad,
    \r\n Gujarat (India)\r\n
    \r\n
    \r\n
    \r\n
    \r\n State Code:\r\n \r\n {\" \"}\r\n 27 Maharashtra{\" \"}\r\n \r\n
    \r\n
    \r\n GSTIN:\r\n \r\n {\" \"}\r\n 27AADCSDFSDFS{\" \"}\r\n \r\n
    \r\n
    \r\n
    \r\n Add New\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Add Agent / Corporate\r\n
    \r\n Name\r\n Short Name\r\n Statutory Name\r\n GST Number\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Contact\r\n
    \r\n Address\r\n
    \r\n console.log(item, name)}\r\n searchable={[\"Search for Country\", \"No matching Country\"]}\r\n >\r\n
    \r\n
    \r\n console.log(item, name)}\r\n searchable={[\"Search for State\", \"No matching State\"]}\r\n >\r\n
    \r\n
    \r\n console.log(item, name)}\r\n searchable={[\"Search for City\", \"No matching City\"]}\r\n >\r\n
    \r\n \r\n Pin / Postal Code\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n {showPaymentInstructionPopup ? (\r\n \r\n setPaymentInstructionPopup(!showPaymentInstructionPopup)\r\n }\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Payment Details

    \r\n
    \r\n
    \r\n \r\n setPaymentInstructionPopup(!showPaymentInstructionPopup)\r\n }\r\n >\r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      Confirmation No.
      \r\n
      12345678910
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      \r\n Ms. Preeti Iyengar\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Amount *\r\n
    \r\n
    \r\n {\r\n console.log(e);\r\n }}\r\n placeholder=\"Date *\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Date *\"\r\n selected={\"14-FEb-2022\"}\r\n >\r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n Card Number*\r\n
    \r\n
    \r\n \r\n Exp Month / Year *\r\n \r\n
    \r\n
    \r\n CVV *\r\n
    \r\n
    \r\n
    \r\n
    \r\n Add Payment\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={PaymentoptBtnData}\r\n optClick={(v, d) => {\r\n console.log(v, d);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n Total Amount Received: 37920/-\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n {showFBDiscountPopup ? (\r\n setFBDiscountPopup(!showFBDiscountPopup)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    F&B Discounts

    \r\n
    \r\n
    \r\n Reset\r\n setFBDiscountPopup(!showFBDiscountPopup)}\r\n >\r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Apply to all Outlet \r\n
    \r\n
    \r\n console.log(v)}\r\n id=\"44\"\r\n >\r\n
    \r\n
    \r\n
    \r\n Item Group\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n All Outlet\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Discount
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Food & Beverages
    \r\n
    \r\n
    \r\n 10%\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n Outletwise\r\n
    \r\n
    \r\n
      \r\n
    • Restaurant
    • \r\n
    • Coffee Shop
    • \r\n
    • Bar
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Item Group\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Discount
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Food
    \r\n
    \r\n
    \r\n 10%\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Beverages
    \r\n
    \r\n
    \r\n 10%\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Liquor
    \r\n
    \r\n
    \r\n 10%\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n {showNoPostPopup ? (\r\n setNoPostPopup(!showNoPostPopup)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    No Post

    \r\n
    \r\n
    \r\n setNoPostPopup(!showNoPostPopup)}\r\n >\r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Apply to all Outlet \r\n
    \r\n
    \r\n console.log(v)}\r\n id=\"45\"\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n All Outlet\r\n
    \r\n
    \r\n
    \r\n
    Laundry
    \r\n
    \r\n
    \r\n console.log(v)}\r\n id=\"46\"\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Spa
    \r\n
    \r\n
    \r\n console.log(v)}\r\n id=\"47\"\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Food & Beverage
    \r\n
    \r\n
    \r\n console.log(v)}\r\n id=\"48\"\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Food & Beverages\r\n
    \r\n
    \r\n
    \r\n
    Restaurant
    \r\n
    \r\n
    \r\n console.log(v)}\r\n id=\"49\"\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Coffee Shop
    \r\n
    \r\n
    \r\n console.log(v)}\r\n id=\"50\"\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Bar
    \r\n
    \r\n
    \r\n console.log(v)}\r\n id=\"51\"\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Restaurant\r\n
    \r\n\r\n
    \r\n
    \r\n
    Food
    \r\n
    \r\n
    \r\n console.log(v)}\r\n id=\"52\"\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Beverages
    \r\n
    \r\n
    \r\n console.log(v)}\r\n id=\"53\"\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Liquor
    \r\n
    \r\n
    \r\n console.log(v)}\r\n id=\"54\"\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/*
    \r\n Item Group\r\n
    */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n {showDepositRulePopup ? (\r\n setDepositRulePopup(!showDepositRulePopup)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Deposit Rule

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      Confirmation No.
      \r\n
      12345678910
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      \r\n Ms. Preeti Iyengar\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n

    \r\n Collect 50% of deposit amount on the day of booking and\r\n rest amount on arrival.\r\n

    \r\n
    \r\n
    \r\n Or\r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Custom Deposit Rule\r\n \r\n Deposit Rule\r\n console.log(v)} value=\"\">\r\n Short Description\r\n \r\n Amount\r\n
    \r\n {\r\n console.log(\"selection changed called : \" + value);\r\n }}\r\n >\r\n
    \r\n \r\n No. of Days After Booking Date\r\n \r\n
    \r\n {\r\n setDepositDropdown(false);\r\n setAddDepositForm(true);\r\n }}\r\n >\r\n Deposit Rule\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n {showAddDepositForm == true && (\r\n
    \r\n
    \r\n Add Deposit / Edit Deposit\r\n
    \r\n \r\n Requested Amount *\r\n \r\n {\r\n console.log(e);\r\n }}\r\n placeholder=\"Date *\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Date *\"\r\n selected={\"14-FEb-2022\"}\r\n >\r\n
    \r\n {\r\n setDepositDropdown(true);\r\n setAddDepositForm(false);\r\n }}\r\n >\r\n Cancel\r\n \r\n Save\r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* This Table is replaced with new new design - will delete this after finalize at development stage\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    ActionDeposit RulesRequestedReceived
    \r\n \r\n \r\n 02 June, 10%\r\n \r\n \r\n \r\n 17920/-\r\n
    \r\n \r\n \r\n 2000 (8th June, 2020)\r\n \r\n
    \r\n
    \r\n Refund\r\n \r\n
    \r\n \r\n - 4000 ( 60th\r\n June, 2020)\r\n
    \r\n
    \r\n \r\n \r\n 10 June, 10%\r\n \r\n \r\n \r\n 17920/-\r\n
    \r\n \r\n \r\n 2000 (8th June, 2020)\r\n \r\n
    \r\n
    \r\n \r\n 1000 Over Due (2 Days)\r\n \r\n
    \r\n \r\n \r\n 10 June, 10%\r\n \r\n \r\n \r\n 17920/-\r\n setShowReceivedPopup(true)}\r\n ref={wrapperRef}\r\n >\r\n \r\n \r\n 2000 (8th June, 2020)\r\n \r\n {showReceivedPopup == true && (\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n Refund Amount\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Received Amount\r\n
    \r\n
    \r\n \r\n 17920/-\r\n \r\n (10th March 2020)\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Mode of payment\r\n
    \r\n
    \r\n Credit Card\r\n
    \r\n
    \r\n
    \r\n
    \r\n Receipt No.\r\n
    \r\n
    \r\n 123456789\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Receipt\r\n
    \r\n Preview\r\n Email\r\n Print\r\n
    \r\n
    \r\n
    \r\n
    \r\n )}\r\n \r\n
    \r\n \r\n 10,000 Pending\r\n \r\n
    */}\r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n setShowReceivedPopup(true);\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnData}\r\n optClick={(v, d) => {\r\n console.log(v, d);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}\r\n >\r\n
    \r\n {/*\r\n
    \r\n
    \r\n
    \r\n
    Total Requested Amount: 17920/-
    \r\n
    \r\n Total Received Amount: 17920/-\r\n
    \r\n
    \r\n
    \r\n
    \r\n Due Amount: 0.00\r\n
    \r\n
    \r\n Over Due Amount: 0.00\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Send 2nd Reminder\r\n
    */}\r\n
    \r\n
    \r\n {/*
    \r\n
    \r\n
    \r\n
    \r\n \r\n Amount *\r\n \r\n
    \r\n
    \r\n {\r\n console.log(e);\r\n }}\r\n placeholder=\"Date *\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Date *\"\r\n selected={\"14-FEb-2022\"}\r\n >\r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n Card Number *\r\n
    \r\n
    \r\n \r\n Exp Month / Year\r\n \r\n
    \r\n
    \r\n CVV\r\n
    \r\n
    \r\n Some label\r\n
    \r\n Save Payment\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    */}\r\n
    \r\n
    \r\n \r\n ) : null}\r\n {showDepositReceivedPopup ? (\r\n setDepositReceivedPopup(!showDepositReceivedPopup)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Deposit Received

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      Confirmation No.
      \r\n
      12345678910
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      \r\n Ms. Preeti Iyengar\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(v)}\r\n >\r\n Amount Received\r\n \r\n {\r\n console.log(e);\r\n }}\r\n placeholder=\"Date of Receipt\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Date of Receipt\"\r\n selected={\"14-FEb-2022\"}\r\n >\r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n console.log(v)}\r\n >\r\n Card Number *\r\n \r\n {\r\n console.log(e);\r\n }}\r\n placeholder=\"Expiry\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Exp Month / Year\"\r\n selected={\"14-FEb-2022\"}\r\n >\r\n console.log(v)}\r\n >\r\n Card Holder Name\r\n \r\n console.log(v)}\r\n >\r\n Receipt No\r\n \r\n console.log(v)}\r\n >\r\n Note\r\n \r\n\r\n
    \r\n Add Deposit\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n setShowReceivedPopup(true);\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnDepoDue}\r\n optClick={(v, d) => {\r\n console.log(v, d);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n setShowReceivedPopup(true);\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnDepoRec}\r\n optClick={(v, d) => {\r\n console.log(v, d);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n {showAlertPopup ? (\r\n setAlertPopup(!showAlertPopup)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Alerts

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      Confirmation No.
      \r\n
      12345678910
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      \r\n Ms. Preeti Iyengar\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n Delivery Type\r\n
    \r\n Popup\r\n Mobile App\r\n Report\r\n\r\n Description \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n Add Alert\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnData}\r\n optClick={(v, d) => {\r\n console.log(v, d);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n {showTracePopup ? (\r\n setTracePopup(!showTracePopup)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Alert & Trace

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      Confirmation No.
      \r\n
      12345678910
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      Viral Shah
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n Description\r\n\r\n {\r\n console.log(e);\r\n }}\r\n placeholder=\"Date\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"From Date\"\r\n selected={\"14-FEb-2022\"}\r\n >\r\n {\r\n console.log(e);\r\n }}\r\n placeholder=\"Date\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"To Date\"\r\n selected={\"14-FEb-2022\"}\r\n >\r\n
    \r\n
    \r\n {\r\n console.log(e);\r\n }}\r\n //disabled=\"disabled\"\r\n placeholder=\"Time\"\r\n label=\"Time\"\r\n timeformat=\"HH:mm\"\r\n dateformat=\"HH:mm\"\r\n selected={\"14-FEb-2022 3:30 PM\"}\r\n >\r\n
    \r\n
    \r\n Add Trace\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n setlinkInfo(v);\r\n setShowTraceGridTooltip(true);\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnData}\r\n optClick={(v, d) => {\r\n console.log(v, d);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n {showAttachmentGuestPopup ? (\r\n setAttachmentGuestPopup(!showAttachmentGuestPopup)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Profile Attachment

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      Confirmation No.
      \r\n
      12345678910
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      Viral Shah
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n console.log(v)}>\r\n Upload Document\r\n \r\n
    \r\n \r\n Description\r\n \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n Add attachment\r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* Old Design - we will remove after at development stage\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Uploaded Photo ID\r\n (Front Side)\r\n \r\n \r\n \r\n setShowPreviewModal(!showPreviewModal)\r\n }\r\n >\r\n Preview\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Uploaded Photo ID\r\n (Back Side)\r\n \r\n \r\n \r\n setShowPreviewModal(!showPreviewModal)\r\n }\r\n >\r\n Preview\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Uploaded Passport\r\n \r\n \r\n \r\n setShowPreviewModal(!showPreviewModal)\r\n }\r\n >\r\n Preview\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Uploaded VISA\r\n stamp page\r\n \r\n \r\n \r\n setShowPreviewModal(!showPreviewModal)\r\n }\r\n >\r\n Preview\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    */}\r\n\r\n
    \r\n
    \r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnResAttachment}\r\n optClick={(v, d) => {\r\n console.log(v, d);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n {showPreviewModal ? (\r\n setShowPreviewModal(!showPreviewModal)}\r\n >\r\n
    \r\n \r\n
    \r\n \r\n ) : null}\r\n {showMessagePopup ? (\r\n setShowMessagePopup(!showMessagePopup)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Message

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      Confirmation No.
      \r\n
      12345678910
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      \r\n Ms. Preeti Iyengar\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n
    \r\n console.log(v)}\r\n >\r\n Room No.\r\n \r\n
    \r\n
    \r\n console.log(v)}\r\n >\r\n Caller Name\r\n \r\n console.log(v)}\r\n >\r\n Company\r\n \r\n console.log(v)}\r\n >\r\n Mobile No.\r\n \r\n console.log(v)}\r\n >\r\n Message\r\n \r\n\r\n
    \r\n Add Message\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(\r\n \"selection changed called : \" + value\r\n );\r\n setwrRouting(value);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n Item 1\r\n DateCaller NameCreated ByStatusAction
    \r\n Item 1\r\n 11 Sept.Mr. Rohit SharmaVijay\r\n
    \r\n \r\n console.log(item, name)\r\n }\r\n >\r\n
    \r\n
    \r\n \r\n console.log(item, name)\r\n }\r\n />\r\n
    \r\n Item 1\r\n 12 Sept.Mr. Ravi GuptaPriyanka\r\n
    \r\n \r\n console.log(item, name)\r\n }\r\n >\r\n
    \r\n
    \r\n \r\n console.log(item, name)\r\n }\r\n />\r\n
    \r\n Item 1\r\n 14 Sept.Mr. Rohit SharmaVijay\r\n
    \r\n \r\n console.log(item, name)\r\n }\r\n >\r\n
    \r\n
    \r\n \r\n console.log(item, name)\r\n }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n {showWindowRoutingPopup ? (\r\n setWindowRoutingPopup(!showWindowRoutingPopup)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Window Routing

    \r\n
    \r\n
    \r\n setWindowRoutingPopup(!showWindowRoutingPopup)}\r\n >\r\n Reset All\r\n \r\n setWindowRoutingPopup(!showWindowRoutingPopup)}\r\n >\r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      \r\n {\r\n console.log(\"selection changed called : \" + value);\r\n setwrRouting(value);\r\n }}\r\n >\r\n
      \r\n
    • \r\n
    • \r\n
      \r\n console.log(item, name)}\r\n >\r\n
      \r\n \r\n 4 Days (18 to 22 Feb)\r\n \r\n
    • \r\n
    • \r\n
      \r\n {\r\n console.log(\"selection changed called : \" + value);\r\n }}\r\n >\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n {wrRouting == \"Window Routing\" ? (\r\n /* Old HTML, Do not remove untill confirmation\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(v)}\r\n >\r\n \r\n
    \r\n
    \r\n \r\n +\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Select All\r\n console.log(v)}\r\n >\r\n
    \r\n
      \r\n
    • \r\n Parent Item\r\n
        \r\n
      • \r\n Item 1\r\n
      • \r\n
      • \r\n Item 2\r\n
      • \r\n
      • \r\n Item 3\r\n
      • \r\n
      \r\n
    • \r\n
    • \r\n Parent Item\r\n
        \r\n
      • \r\n Item 1\r\n
      • \r\n
      • \r\n Item 2\r\n
      • \r\n
      • \r\n Item 3\r\n
      • \r\n
      \r\n
    • \r\n
    \r\n\r\n
    \r\n \r\n \r\n Move to W2-Food Beverage\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(v)}\r\n >\r\n\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Select All\r\n console.log(v)}\r\n >\r\n
    \r\n
      \r\n
    • \r\n Parent Item\r\n
        \r\n
      • \r\n Item 1\r\n
      • \r\n
      • \r\n Item 2\r\n
      • \r\n
      • \r\n Item 3\r\n
      • \r\n
      \r\n
    • \r\n
    • \r\n Parent Item\r\n
        \r\n
      • \r\n Item 1\r\n
      • \r\n
      • \r\n Item 2\r\n
      • \r\n
      • \r\n Item 3\r\n
      • \r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n console.log(v)}\r\n >\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Select All\r\n console.log(v)}\r\n >\r\n
    \r\n
      \r\n
    • \r\n Parent Item\r\n
        \r\n
      • \r\n Item 1\r\n
      • \r\n
      • \r\n Item 2\r\n
      • \r\n
      • \r\n Item 3\r\n
      • \r\n
      \r\n
    • \r\n
    • \r\n Parent Item\r\n
        \r\n
      • \r\n Item 1\r\n
      • \r\n
      • \r\n Item 2\r\n
      • \r\n
      • \r\n Item 3\r\n
      • \r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    */\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      W0 - All Charges
      \r\n
      \r\n \r\n setShowWindowRoutingAddModal(\r\n !showWindowRoutingAddModal\r\n )\r\n }\r\n >\r\n +\r\n \r\n
    • \r\n
    • \r\n
      W1 - Room & Package
      \r\n
      \r\n Bill to Company\r\n
      \r\n \r\n setShowWindowRoutingEditModal(\r\n !showWindowRoutingEditModal\r\n )\r\n }\r\n >\r\n \r\n
    • \r\n
    • \r\n
      \r\n W2 - Food & Beverage\r\n
      \r\n
      \r\n By Credit Card\r\n
      \r\n \r\n \r\n
    • \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n W1 - Room & package\r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Select All\r\n \r\n\r\n
      \r\n
    • \r\n {/* { console.log(\"checkbox is \" + ischecked); }} >\r\n Room Rent\r\n */}\r\n
      \r\n \r\n
      \r\n
      \r\n { }}\r\n >\r\n \r\n
      \r\n
    • \r\n
    • \r\n {/* { console.log(\"checkbox is \" + ischecked); }} >\r\n Food & Beverage\r\n */}\r\n
      \r\n \r\n
      \r\n
      \r\n { }}\r\n >\r\n \r\n {\" \"}\r\n \r\n
      \r\n
    • \r\n
    • \r\n {/* { console.log(\"checkbox is \" + ischecked); }} >\r\n Transportation\r\n */}\r\n
      \r\n \r\n
      \r\n
      \r\n { }}\r\n >\r\n \r\n {\" \"}\r\n \r\n
      \r\n
    • \r\n
    • \r\n {/* { console.log(\"checkbox is \" + ischecked); }} >\r\n Misc Charges\r\n */}\r\n
      \r\n \r\n
      \r\n
      \r\n { }}\r\n >\r\n \r\n {\" \"}\r\n \r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Room rent\r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Select All\r\n \r\n
    \r\n
    \r\n
    \r\n { }}\r\n >\r\n
    \r\n
    \r\n
    \r\n\r\n
      \r\n
    • \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Room Rate\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Extra Bed Charge\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Early Check-In\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Late Check-Out\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Extra Adult\r\n \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : wrRouting == \"Room Routing\" ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      All Charges
      \r\n
      \r\n \r\n setShowWindowRoutingAddModal(\r\n !showWindowRoutingAddModal\r\n )\r\n }\r\n >\r\n +\r\n \r\n
    • \r\n
    • \r\n
      \r\n 201 - Rohan Shah 12345678{\" \"}\r\n
      \r\n
      \r\n Room & Package\r\n
      \r\n \r\n setShowRoomRoutingEditModal(\r\n !showRoomRoutingEditModal\r\n )\r\n }\r\n >\r\n \r\n
    • \r\n
    • \r\n
      \r\n 301 - Rohit Sharma 12345678{\" \"}\r\n
      \r\n
      \r\n Food & Beverage\r\n
      \r\n \r\n \r\n
    • \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n 201 - Room & package\r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Select All\r\n \r\n\r\n
      \r\n
    • \r\n {/* { console.log(\"checkbox is \" + ischecked); }} >\r\n Room Rent\r\n */}\r\n
      \r\n \r\n
      \r\n
      \r\n { }}\r\n >\r\n \r\n {\" \"}\r\n \r\n
      \r\n
    • \r\n
    • \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Food & Beverage\r\n \r\n
      \r\n { }}\r\n >\r\n \r\n {\" \"}\r\n \r\n
      \r\n
    • \r\n
    • \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Transportation\r\n \r\n
      \r\n { }}\r\n >\r\n \r\n {\" \"}\r\n \r\n
      \r\n
    • \r\n
    • \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Misc Charges\r\n \r\n
      \r\n { }}\r\n >\r\n \r\n {\" \"}\r\n \r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Room rent\r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Select All\r\n \r\n
    \r\n
    \r\n
    \r\n { }}\r\n >\r\n
    \r\n
    \r\n
    \r\n\r\n
      \r\n
    • \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Room Rate\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Extra Bed Charge\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Early Check-In\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Late Check-Out\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Extra Adult\r\n \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : (\r\n /*
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Room 204\r\n Mr. Rohit Sharma\r\n
    \r\n
    \r\n \r\n +\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Select All\r\n console.log(v)}\r\n >\r\n
    \r\n
      \r\n
    • \r\n Parent Item\r\n
        \r\n
      • \r\n Item 1\r\n
      • \r\n
      • \r\n Item 2\r\n
      • \r\n
      • \r\n Item 3\r\n
      • \r\n
      \r\n
    • \r\n
    • \r\n Parent Item\r\n
        \r\n
      • \r\n Item 1\r\n
      • \r\n
      • \r\n Item 2\r\n
      • \r\n
      • \r\n Item 3\r\n
      • \r\n
      \r\n
    • \r\n
    \r\n\r\n
    \r\n \r\n \r\n Move to W2-Food Beverage\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Room 206\r\n \r\n Mr. David Thompson\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Select All\r\n console.log(v)}\r\n >\r\n
    \r\n
      \r\n
    • \r\n Parent Item\r\n
        \r\n
      • \r\n Item 1\r\n
      • \r\n
      • \r\n Item 2\r\n
      • \r\n
      • \r\n Item 3\r\n
      • \r\n
      \r\n
    • \r\n
    • \r\n Parent Item\r\n
        \r\n
      • \r\n Item 1\r\n
      • \r\n
      • \r\n Item 2\r\n
      • \r\n
      • \r\n Item 3\r\n
      • \r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n Room 207\r\n Mr. Hemang Shah\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Select All\r\n console.log(v)}\r\n >\r\n
    \r\n
      \r\n
    • \r\n Parent Item\r\n
        \r\n
      • \r\n Item 1\r\n
      • \r\n
      • \r\n Item 2\r\n
      • \r\n
      • \r\n Item 3\r\n
      • \r\n
      \r\n
    • \r\n
    • \r\n Parent Item\r\n
        \r\n
      • \r\n Item 1\r\n
      • \r\n
      • \r\n Item 2\r\n
      • \r\n
      • \r\n Item 3\r\n
      • \r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    */\r\n <>\r\n )}\r\n
    \r\n \r\n ) : null}\r\n {showAddRoomModal ? (\r\n {\r\n console.log(\"save clicked\");\r\n setShowAddRoomModal(false);\r\n }}\r\n Onclose={() => setShowAddRoomModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Add Room

    \r\n
    \r\n
    \r\n \r\n setShowAddRoomAdvancedSearchModal(\r\n !showAddRoomAdvancedSearchModal\r\n )\r\n }\r\n >\r\n \r\n
    \r\n Apply\r\n
    \r\n
    \r\n
    \r\n
    \r\n {showAddRoomAdvancedSearchModal ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Filters

    \r\n
    \r\n
    \r\n \r\n setShowAddRoomAdvancedSearchModal(\r\n !showAddRoomAdvancedSearchModal\r\n )\r\n }\r\n >\r\n Reset\r\n \r\n \r\n setShowAddRoomAdvancedSearchModal(\r\n !showAddRoomAdvancedSearchModal\r\n )\r\n }\r\n >\r\n Apply\r\n \r\n \r\n setShowAddRoomAdvancedSearchModal(\r\n !showAddRoomAdvancedSearchModal\r\n )\r\n }\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(v)}\r\n >\r\n Guest Name\r\n \r\n
    \r\n
    \r\n console.log(v)}\r\n >\r\n Room No.\r\n \r\n
    \r\n
    \r\n console.log(v)}\r\n >\r\n Confirmation No.\r\n \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    Confirmation No.Room No.Guest NameGuest TypeCompanyAgent
    \r\n
    \r\n {\r\n console.log(\r\n \"selection changed called : \" + value\r\n );\r\n }}\r\n >\r\n
    \r\n
    234232201Rohit SharmaPrimaryArvind LimitedMake My Trip
    \r\n
    \r\n {\r\n console.log(\r\n \"selection changed called : \" + value\r\n );\r\n }}\r\n >\r\n
    \r\n
    234232201Rohit SharmaPrimaryArvind LimitedMake My Trip
    \r\n
    \r\n {\r\n console.log(\r\n \"selection changed called : \" + value\r\n );\r\n }}\r\n >\r\n
    \r\n
    234232201Rohit SharmaPrimaryArvind LimitedMake My Trip
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n {showRoomRoutingEditModal ? (\r\n {\r\n console.log(\"save clicked\");\r\n setShowRoomRoutingEditModal(false);\r\n }}\r\n Onclose={() => setShowRoomRoutingEditModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Edit

    \r\n
    \r\n
    \r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(v)}\r\n type=\"text\"\r\n required={false}\r\n //customError={\"Enter Only 3 Char!!\"}\r\n >\r\n Window Name\r\n \r\n\r\n console.log(v)}\r\n type=\"text\"\r\n required={false}\r\n //customError={\"Enter Only 3 Char!!\"}\r\n >\r\n Payee\r\n \r\n
    \r\n
    \r\n \r\n ) : null}\r\n {showWindowRoutingEditModal ? (\r\n {\r\n console.log(\"save clicked\");\r\n setShowWindowRoutingEditModal(false);\r\n }}\r\n Onclose={() => setShowWindowRoutingEditModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Edit

    \r\n
    \r\n
    \r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(v)}\r\n type=\"text\"\r\n required={false}\r\n //customError={\"Enter Only 3 Char!!\"}\r\n >\r\n Window Name\r\n \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n {showWindowRoutingAddModal ? (\r\n {\r\n console.log(\"save clicked\");\r\n setShowWindowRoutingAddModal(false);\r\n }}\r\n Onclose={() => setShowWindowRoutingAddModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Add Room

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n Apply\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    Confirmation No.Room No.Guest NameGuest TypeCompanyAgent
    \r\n
    \r\n {\r\n console.log(\"selection changed called : \");\r\n }}\r\n >\r\n
    \r\n
    234232201Rohit SharmaPrimaryArvind LimitedMake My Trip
    \r\n
    \r\n {\r\n console.log(\"selection changed called : \");\r\n }}\r\n >\r\n
    \r\n
    234232201Rohit SharmaPrimaryArvind LimitedMake My Trip
    \r\n
    \r\n {\r\n console.log(\"selection changed called : \");\r\n }}\r\n >\r\n
    \r\n
    234232301MaheshPrimaryArvind LimitedMake My Trip
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n {showRoomFeaturesModal ? (\r\n setShowRoomFeaturesModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Room Features

    \r\n
    \r\n
    \r\n Reset\r\n Apply\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      Confirmation No.
      \r\n
      12345678910
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      \r\n Ms. Preeti Iyengar\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Show Selected (6)\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    In Room
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Adjoining Room\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Inter-Connected Room\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Accessible Room\r\n \r\n\r\n
    \r\n
    \r\n Other Preferences\r\n
    \r\n
    \r\n Room Location (2)\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n Bathroom Amenities\r\n (2)\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n setShowRoomAvailabilityModal(!showRoomAvailabilityModal)\r\n }\r\n >\r\n Check Availability\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Room location\r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n High Floor\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Low Floor\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Pool Side\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Corner\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Near to Elevator\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Away form Elevator\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Sea Facing\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Partial sea facing view\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Garden View\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n With Balcony\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Quiet\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n disabled=\"disabled\"\r\n >\r\n Disable Checkbox\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n disabled=\"disabled\"\r\n >\r\n Disable Checkbox\r\n \r\n
    \r\n Bathroom Amenities\r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Some Text\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Some Text\r\n \r\n
    \r\n Others\r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Some Text\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Some Text\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n {showRoomSpecialsModal ? (\r\n setShowRoomSpecialsModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Specials

    \r\n
    \r\n
    \r\n Reset\r\n Apply\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      Confirmation No.
      \r\n
      12345678910
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      \r\n Ms. Preeti Iyengar\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Show Selected (6)\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n News Paper (3)\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n Pillow (2)\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n Electronics\r\n \r\n \r\n \r\n
    \r\n
    \r\n In Bathroom\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    News Paper
    \r\n\r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Times of India\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Economic Times\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n The Hindu\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n disabled=\"disabled\"\r\n >\r\n Disable Checkbox\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n disabled=\"disabled\"\r\n >\r\n Disable Checkbox\r\n \r\n
    \r\n pillow\r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Feather\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Memory Foam\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n {showBillingInstructionModal ? (\r\n setShowBillingInstructionModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Billing Instruction

    \r\n
    \r\n
    \r\n Reset\r\n Apply\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      Confirmation No.
      \r\n
      12345678910
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      \r\n Ms. Preeti Iyengar\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(v)}>\r\n Search\r\n \r\n
    \r\n select from the below list\r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(\"selection changed called : \" + value);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Or
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n >\r\n Enter Manually\r\n \r\n console.log(v)}\r\n type=\"text\"\r\n >\r\n Billing Instruction\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n {showAccompanyGuestModal ? (\r\n setShowAccompanyGuestModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Accompany Guest

    \r\n
    \r\n
    \r\n Reset\r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      Confirmation No.
      \r\n
      12345678910
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      \r\n Ms. Preeti Iyengar\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Primary Guest\r\n \r\n
    \r\n
    \r\n
    \r\n console.log(v)}\r\n >\r\n Adult 2\r\n \r\n \r\n setShowRateSelectionModal(!showRateSelectionModal)\r\n } */\r\n >\r\n \r\n \r\n \r\n
    \r\n
    \r\n console.log(v)}\r\n >\r\n Child 1\r\n \r\n \r\n setShowRateSelectionModal(!showRateSelectionModal)\r\n } */\r\n >\r\n \r\n \r\n \r\n
    \r\n
    \r\n console.log(v)}\r\n >\r\n Child 2\r\n \r\n \r\n setShowRateSelectionModal(!showRateSelectionModal)\r\n } */\r\n >\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n {showTransportationPopup ? (\r\n setShowTransportationPopup(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Arrival, Departure Details

    \r\n
    \r\n
    \r\n Reset\r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      Confirmation No.
      \r\n
      12345678910
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      \r\n Ms. Preeti Iyengar\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Arrival\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(e);\r\n }}\r\n placeholder=\"Date\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Date\"\r\n selected={\"14-FEb-2022\"}\r\n >\r\n
    \r\n
    \r\n {\r\n console.log(e);\r\n }}\r\n //disabled=\"disabled\"\r\n placeholder=\"Time\"\r\n label=\"Time\"\r\n timeformat=\"HH:mm\"\r\n dateformat=\"HH:mm\"\r\n selected={\"14-FEb-2022 3:30 PM\"}\r\n >\r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n console.log(v)}\r\n >\r\n Transport Number\r\n \r\n console.log(v)}\r\n >\r\n Note\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Departure\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(e);\r\n }}\r\n placeholder=\"Date\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Date\"\r\n selected={\"14-FEb-2022\"}\r\n >\r\n
    \r\n
    \r\n {\r\n console.log(e);\r\n }}\r\n //disabled=\"disabled\"\r\n placeholder=\"Time\"\r\n label=\"Time\"\r\n timeformat=\"HH:mm\"\r\n dateformat=\"HH:mm\"\r\n selected={\"14-FEb-2022 3:30 PM\"}\r\n >\r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n console.log(v)}\r\n >\r\n Transport Number\r\n \r\n console.log(v)}\r\n >\r\n Note\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n {showArrivalDeparturePopup ? (\r\n setShowArrivalDeparturePopup(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Transportation

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      Confirmation No.
      \r\n
      12345678910
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      \r\n Ms. Preeti Iyengar\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(e);\r\n }}\r\n placeholder=\"Date\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Date\"\r\n selected={\"14-FEb-2022\"}\r\n >\r\n
    \r\n
    \r\n {\r\n console.log(e);\r\n }}\r\n //disabled=\"disabled\"\r\n placeholder=\"Time\"\r\n label=\"Time\"\r\n timeformat=\"HH:mm\"\r\n dateformat=\"HH:mm\"\r\n selected={\"14-FEb-2022 3:30 PM\"}\r\n >\r\n
    \r\n
    \r\n\r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n
    \r\n console.log(v)}\r\n >\r\n Rate\r\n \r\n
    \r\n
    \r\n Fixed Rate\r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(v)}\r\n >\r\n Carrier\r\n \r\n
    \r\n
    \r\n console.log(v)}\r\n >\r\n Number\r\n \r\n
    \r\n
    \r\n console.log(v)}\r\n >\r\n Address\r\n \r\n
    \r\n
    \r\n console.log(v)}\r\n >\r\n Adult\r\n \r\n
    \r\n
    \r\n console.log(v)}\r\n >\r\n Child\r\n \r\n
    \r\n
    \r\n console.log(v)}\r\n >\r\n Note\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n console.log(v)}\r\n >\r\n Contact Name\r\n \r\n console.log(v)}\r\n >\r\n Contact Number\r\n \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n
    \r\n console.log(v)}\r\n >\r\n Number\r\n \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n Add Transportation\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnData}\r\n optClick={(v, d) => {\r\n console.log(v, d);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n {showReservationContactPopup ? (\r\n setShowReservationContactPopup(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Contact

    \r\n
    \r\n {ContactType == \"Company\" ? (\r\n
    \r\n Apply\r\n
    \r\n ) : ContactType == \"Direct\" ? (\r\n
    \r\n Save\r\n
    \r\n ) : (\r\n <>\r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      Confirmation No.
      \r\n
      12345678910
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      \r\n Mr. Rohit Sharma\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(\"selection changed called : \" + value);\r\n setContactType(value);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {ContactType == \"Company\" ? (\r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      \r\n {\r\n console.log(\r\n \"selection changed called : \" + value\r\n );\r\n }}\r\n >\r\n
      \r\n
      8619139661
      \r\n
      manish.yadav@arvind.com
      \r\n
    • \r\n
    • \r\n
      \r\n {\r\n console.log(\r\n \"selection changed called : \" + value\r\n );\r\n }}\r\n >\r\n
      \r\n
      8619139661
      \r\n
      manish.yadav@arvind.com
      \r\n
    • \r\n
    • \r\n
      \r\n {\r\n console.log(\r\n \"selection changed called : \" + value\r\n );\r\n }}\r\n >\r\n
      \r\n
      8619139661
      \r\n
      manish.yadav@arvind.com
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n Add New\r\n
    \r\n
    \r\n ) : ContactType == \"Direct\" ? (\r\n
    \r\n console.log(v)}\r\n type=\"text\"\r\n required={false}\r\n customError={\"Enter Only 3 Char!!\"}\r\n >\r\n Contact Person Name\r\n \r\n console.log(v)}\r\n type=\"text\"\r\n required={false}\r\n customError={\"Enter Only 3 Char!!\"}\r\n >\r\n Mobile No.\r\n \r\n console.log(v)}\r\n type=\"text\"\r\n required={false}\r\n customError={\"Enter Only 3 Char!!\"}\r\n >\r\n Email ID\r\n \r\n
    \r\n ) : (\r\n <>\r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n {/* Popups End */}\r\n\r\n {showTraceGridTooltip ? (\r\n
    \r\n
    \r\n
    \r\n
    Test
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n {showRateSelectionSummaryModal ? (\r\n { setShowRateSelectionSummaryModal(!showRateSelectionSummaryModal); }}\r\n handleOnclose={() => { setShowRateSelectionSummaryModal(!showRateSelectionSummaryModal); }}\r\n >\r\n ) : null}\r\n {showRoomAssignmentPopup ? : <>}\r\n\r\n {showCancelPopup ?\r\n {\r\n setShowCancelPopup(false);\r\n fillReservationInfoData();\r\n }}\r\n >\r\n \r\n : null}\r\n\r\n {showRoomMovePopup ?\r\n {\r\n setShowRoomMovePopup(false);\r\n fillReservationInfoData();\r\n renderChild();\r\n }}> : null}\r\n\r\n {/* {showRoomMovePopup ? (\r\n setShowRoomMovePopup(false)}>\r\n
    \r\n
    \r\n
    \r\n

    Room Move

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {showRoomMoveFilterModal ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Filters

    \r\n
    \r\n
    \r\n Reset\r\n Apply\r\n setShowRoomMoveFilterModal(!showRoomMoveFilterModal)}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\" \"} */}\r\n {/* filter-elements-section */}\r\n {/*
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { }}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { }}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { }}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { }}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { }}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Adjoining Rooms Only\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Interconnecting Rooms Only\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Accessible Room Only\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    */}\r\n {/*
    \r\n
    \r\n console.log(v)}>Room No\r\n \r\n
    \r\n
    */}\r\n {/*
    \r\n
    \r\n ) : null} */}\r\n\r\n {/*
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Room Features (2/3)\r\n \r\n \r\n \r\n
    \r\n
    \r\n
      \r\n
    • \r\n Non-Smoking Room\r\n
    • \r\n
    • \r\n Twin Bed\r\n
    • \r\n
    • \r\n Inter-Connected\r\n
    • \r\n
    • \r\n Inter-Connected\r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Include Due In Rooms\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Show all Room Types\r\n \r\n
    setShowRoomMoveFilterModal(!showRoomMoveFilterModal)}>\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Room No.\r\n \r\n Room Type\r\n \r\n HK StatusArv. TimeRes. statusAssigned toAction
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n \r\n
    \r\n
    \r\n 0023\r\n ExecutiveCL14:22\r\n DIN\r\n Mr. Rohan Shah\r\n \r\n console.log(item, name)}>\r\n Assign\r\n \r\n \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n \r\n
    \r\n
    \r\n 0023\r\n \r\n Executive {\" \"}\r\n CL14:22\r\n DIN\r\n Mr. Rohan Shah\r\n \r\n console.log(item, name)}>\r\n Assign\r\n \r\n \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n \r\n
    \r\n
    \r\n 0023\r\n ExecutiveCL14:22\r\n DIN\r\n Mr. Rohan Shah\r\n Assign\r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n \r\n
    \r\n
    \r\n 0023\r\n ExecutiveCL14:22\r\n DIN\r\n Mr. Rohan Shah\r\n \r\n console.log(item, name)}>\r\n Assign\r\n \r\n \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n \r\n
    \r\n
    \r\n 0023\r\n ExecutiveCL14:22\r\n DIN\r\n Mr. Rohan Shah\r\n \r\n console.log(item, name)}>\r\n Assign\r\n \r\n \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n \r\n
    \r\n
    \r\n 0023\r\n ExecutiveCL14:22\r\n DIN\r\n Mr. Rohan Shah\r\n \r\n console.log(item, name)}>\r\n Assign\r\n \r\n \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n \r\n
    \r\n
    \r\n 0023\r\n ExecutiveCL14:22\r\n DIN\r\n Mr. Rohan Shah\r\n \r\n console.log(item, name)}>\r\n Assign\r\n \r\n \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n \r\n
    \r\n
    \r\n 0023\r\n ExecutiveCL14:22\r\n DIN\r\n Mr. Rohan Shah\r\n \r\n console.log(item, name)}>\r\n Assign\r\n \r\n \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n \r\n
    \r\n
    \r\n 0023\r\n ExecutiveCL14:22\r\n DIN\r\n Mr. Rohan Shah\r\n \r\n console.log(item, name)}>\r\n Assign\r\n \r\n \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n \r\n
    \r\n
    \r\n 0023\r\n ExecutiveCL14:22\r\n DIN\r\n Mr. Rohan Shah\r\n \r\n console.log(item, name)}>\r\n Assign\r\n \r\n \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n \r\n
    \r\n
    \r\n 0023\r\n ExecutiveCL14:22\r\n DIN\r\n Mr. Rohan Shah\r\n \r\n console.log(item, name)}>\r\n Assign\r\n \r\n \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n \r\n
    \r\n
    \r\n 0023\r\n ExecutiveCL14:22\r\n DIN\r\n Mr. Rohan Shah\r\n \r\n console.log(item, name)}>\r\n Assign\r\n \r\n \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n \r\n
    \r\n
    \r\n 0023\r\n ExecutiveCL14:22\r\n DIN\r\n Mr. Rohan Shah\r\n \r\n console.log(item, name)}>\r\n Assign\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Move
    \r\n
    \r\n 302 Executive\r\n \r\n 204 Suite\r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}>\r\n
    \r\n Note (Room Move)\r\n
    \r\n console.log(item, name)}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n setShowRoomMovePopup(false)} className=\"w100p m0\">\r\n Move Room\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null} */}\r\n \r\n );\r\n}\r\n\r\n\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnPlainButton,\r\n InnSingleSelectDropdown,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { GetSourceMaster, GetSourceMasterBySerNo, AddEditSourceMaster, CmbGetSourceGroupMaster } from \"../../../../services/frontMasterService\";\r\nexport function SourceMaster(props) {\r\n //#region local Variable\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"SourceSerNo\": 0,\r\n \"Name\": \"\",\r\n \"SourceGroupSerNo\": 0,\r\n \"Sequence\": 0,\r\n \"Color\":\"\",\r\n \"Mode\": \"View\"\r\n }\r\n const defaultSourceGroup = {\r\n \"key\": '0',\r\n \"value\": 'Select'\r\n }\r\n const validationObj = {\r\n \"SourceGroupSerNo\": \"\",\r\n \"Name\": \"\"\r\n }\r\n //#endregion\r\n //#region State Variable\r\n const [isActive, setIsActive] = useState(false);\r\n const [sourceMasterData, setSourceMasterData] = useState([]);\r\n const [filtersourceMasterData, setFilterSourceMasterData] = useState([]);\r\n const [sourceGroupData, setSourceGroupData] = useState([]);\r\n const [sourceMasterObj, setSourceMasterObj] = useState(defaultObj);\r\n const [selectedSourceSerNo, setSelectedSourceSerNo] = useState(\"\");\r\n const [validatedSourcedata, setValidatedSourceData] = useState(validationObj);\r\n\r\n //#endregion\r\n //#region UseEffact\r\n useEffect(() => {\r\n getSourceMasterData();\r\n setIsActive(true);\r\n CmbGetSourceGroupMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n setIsActive(false);\r\n setSourceGroupData([defaultSourceGroup, ...d.data]);\r\n })\r\n\r\n }, [])\r\n //#endregion\r\n //#region Custom Function\r\n const getSourceMasterData = () => {\r\n setIsActive(true);\r\n GetSourceMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n setIsActive(false);\r\n setSourceMasterData(d.data);\r\n setFilterSourceMasterData(d.data);\r\n if (d.data.length > 0 && sourceMasterObj.Mode == \"View\") {\r\n getSelectedSourceData(d.data[0].SourceSerNo);\r\n }\r\n })\r\n }\r\n const getSelectedSourceData = (sourceSerNo) => {\r\n setIsActive(true);\r\n GetSourceMasterBySerNo(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), sourceSerNo).then(d => {\r\n setIsActive(false);\r\n d.data.Mode = \"View\";\r\n setSourceMasterObj(d.data);\r\n\r\n })\r\n }\r\n const isValidData = () => {\r\n let isValid = true;\r\n if (sourceMasterObj.Name == \"\") {\r\n isValid = false;\r\n setValidatedSourceData(prev => ({ ...prev, Name: \"Enter Source Name.\" }));\r\n }\r\n if (sourceMasterObj.SourceGroupSerNo == 0){\r\n isValid = false;\r\n setValidatedSourceData(prev=>({...prev,SourceGroupSerNo:\"Please select source group.\"}));\r\n }\r\n return isValid;\r\n }\r\n //#endregion\r\n //#region Event\r\n const handleOnSourceNameClick = (e)=>{\r\n setValidatedSourceData(validationObj);\r\n getSelectedSourceData(e.target.id);\r\n setSelectedSourceSerNo(e.target.id);\r\n }\r\n const handleOnSearchChanged =(e)=>{\r\n setValidatedSourceData(validationObj);\r\n setSourceMasterObj(defaultObj);\r\n let searchData = sourceMasterData.filter(item => item.Name.toLowerCase().includes(e.toLowerCase()));\r\n setFilterSourceMasterData(searchData);\r\n }\r\n const handleOnAddClick = () =>{\r\n defaultObj.Mode=\"Add\";\r\n setSourceMasterObj(defaultObj);\r\n }\r\n const handleOnEditClick = () =>{\r\n setSourceMasterObj(prev=>({...prev,Mode:\"Edit\"}))\r\n }\r\n const handleOnSaveClick = () =>{\r\n let IsPageValid = isValidData()\r\n if(IsPageValid){\r\n setIsActive(true);\r\n AddEditSourceMaster(sourceMasterObj).then(d=>{\r\n setIsActive(false); \r\n if(d.data.Code == \"200\"){\r\n alert(d.data.Message);\r\n getSourceMasterData();\r\n getSelectedSourceData(d.data.ReturnValue);\r\n }else{\r\n alert(d.data.Message);\r\n }\r\n })\r\n setSourceMasterObj(prev=>({...prev,Mode:\"View\"}));\r\n }else{\r\n alert(\"One or more field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n const hanldeOnCancelClick = () =>{\r\n setValidatedSourceData(validationObj);\r\n if(sourceMasterObj.Mode !=\"Edit\"){\r\n setSourceMasterObj(defaultObj);\r\n }\r\n else{\r\n getSelectedSourceData(selectedSourceSerNo);\r\n }\r\n }\r\n //#endregion\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Source Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Source
    \r\n
    \r\n
      \r\n {\r\n filtersourceMasterData.map(d =>\r\n \r\n \r\n {d.Name}\r\n \r\n \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n\r\n {\r\n if (v == \"\") {\r\n setValidatedSourceData(prev => ({ ...prev, Name: \"Enter Source Name.\" }));\r\n } else {\r\n setValidatedSourceData(prev => ({ ...prev, Name: \"\" }));\r\n setSourceMasterObj(prev => ({ ...prev, Name: v }))\r\n }\r\n }}\r\n >Name\r\n { \r\n setSourceMasterObj(prev => ({ ...prev, Sequence: parseInt(v)}))\r\n } \r\n }\r\n >Sequence\r\n
    \r\n {\r\n setSourceMasterObj(prev => ({ ...prev, SourceGroupSerNo: parseInt(item.key) }))\r\n } \r\n }\r\n >\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n Activate console.log(v)} id=\"1\">\r\n {\r\n sourceMasterObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\n//export default SourceMaster;","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnPlainButton,\r\n InnLoader,\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser, setModule } from \"../../../../reducer/authSlice\";\r\nimport { GetCancelReasonData, AddEditCancelReasonData } from \"../../../../services/frontMasterService\";\r\n\r\nexport function CancellationReasonMaster(props) {\r\n\r\n //#region Local Variable\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"CancelReasonSerNo\": 0,\r\n \"Name\": \"\",\r\n \"Mode\": \"View\"\r\n }\r\n const validationObj = {\r\n \"CancelSerNo\": \"\",\r\n \"Name\": \"\"\r\n }\r\n //#endregion\r\n\r\n //#region State variable\r\n const [cancelReasonData, setCancelReasonData] = useState([]);\r\n const [filterCancelReasonData, setFilterCancelReasonData] = useState([]);\r\n const [cancelReasonObj, setCancelReasonObj] = useState(defaultObj);\r\n const [selectedCancelReasonSerNo, setSelectedCancelReasonSerNo] = useState(\"\");\r\n const [cancelReasonValidation, setCancelReasonValidation] = useState(validationObj);\r\n const [search, setSearch] = useState(\"\");\r\n const [isActive, setIsActive] = useState(false);\r\n //#endregion \r\n\r\n //#region Custom function\r\n const getCancelReasonData = () => {\r\n setIsActive(true);\r\n GetCancelReasonData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n setIsActive(false);\r\n setCancelReasonData(d.data);\r\n setFilterCancelReasonData(d.data);\r\n if (d.data.length > 0) {\r\n if (cancelReasonObj.Mode == \"Add\" || cancelReasonObj.Mode == \"Edit\") {\r\n let filterData = d.data.find(item => item.CancelReasonSerNo == cancelReasonObj.CancelReasonSerNo);\r\n if (filterData) {\r\n filterData.Mode = \"View\";\r\n setCancelReasonObj(filterData);\r\n }\r\n }\r\n else {\r\n d.data[0].Mode = \"View\";\r\n setCancelReasonObj(d.data[0]);\r\n // let tempObj = d.data[0];\r\n // tempObj.Mode = \"View\";\r\n // setCancelReasonObj(tempObj);\r\n }\r\n\r\n }\r\n })\r\n }\r\n const isValidData = () => {\r\n let isValid = true;\r\n if (cancelReasonObj.Name.trim().length == \"\") {\r\n isValid = false;\r\n setCancelReasonValidation(prev => ({ ...prev, Name: \"Enter the Name\" }));\r\n }\r\n return isValid;\r\n }\r\n //End Region\r\n\r\n //#region UseEffact\r\n useEffect(() => {\r\n getCancelReasonData();\r\n }, []);\r\n //End Region\r\n\r\n //#region Events\r\n // Main grid selection_change\r\n const handleOnCancelReasonClick = (e) => {\r\n setCancelReasonValidation(validationObj);\r\n setIsActive(false);\r\n let tempObj = cancelReasonData.find(item => item.CancelReasonSerNo == e.target.id);\r\n tempObj.Mode = \"View\";\r\n setCancelReasonObj(tempObj);\r\n setSelectedCancelReasonSerNo(e.target.id);\r\n // if(tempObj != undefined){\r\n // setCancelReasonObj(tempObj); \r\n // }\r\n // else{\r\n // setCancelReasonObj(defaultObj);\r\n // }\r\n // defaultObj.CancelReasonSerNo = e.target.id;\r\n // defaultObj.Name = e.target.innerText;\r\n // defaultObj.Mode = \"View\";\r\n // setCancelReasonObj(defaultObj);\r\n //setSelectedCancelReasonSerNo(e.target.id);\r\n //console.log(selectedCancelReasonSerNo);\r\n }\r\n const handleOnSearchChanged = (e) => {\r\n setSearch(e);\r\n setCancelReasonObj(defaultObj);\r\n let filterData = [];\r\n cancelReasonData.forEach((ele) => {\r\n if (ele.Name.toLowerCase().includes(e.toLowerCase())) {\r\n filterData.push(ele);\r\n }\r\n });\r\n setFilterCancelReasonData(filterData);\r\n //let filterData = cancelReasonData.filter(item => item.Name.toLowerCase().includes(e.toLowerCase()));\r\n\r\n }\r\n const handleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setCancelReasonObj(obj);\r\n\r\n }\r\n const handleOnEditClick = () => {\r\n if (cancelReasonObj.Name == \"\") {\r\n alert(\"Please select cancellation reason\");\r\n }\r\n else {\r\n setCancelReasonObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n // setSelectedCancelReasonSerNo(cancelReasonObj.CancelReasonSerNo);\r\n }\r\n\r\n }\r\n const searchEdit = () => {\r\n GetCancelReasonData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n let temp = d.data.filter(x => x.Name.toLowerCase().includes(search.toLowerCase()));\r\n setFilterCancelReasonData(temp);\r\n })\r\n }\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidData();\r\n if (IsPageValid) {\r\n setIsActive(true);\r\n console.log(cancelReasonObj);\r\n AddEditCancelReasonData(cancelReasonObj).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n getCancelReasonData();\r\n if (cancelReasonObj.Mode == \"Add\" || cancelReasonObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit();\r\n return;\r\n }\r\n cancelReasonObj.CancelReasonSerNo = parseInt(d.data.ReturnValue);\r\n }\r\n } else {\r\n alert(\"Failed\");\r\n }\r\n });\r\n setCancelReasonObj((prev) => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alert(\"One or more field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n const handleOnCancelClick = () => {\r\n setCancelReasonValidation(validationObj);\r\n let existingObj = cancelReasonData.find(x => x.CancelReasonSerNo == selectedCancelReasonSerNo);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setCancelReasonObj(existingObj);\r\n }\r\n else {\r\n setCancelReasonObj(defaultObj);\r\n }\r\n // if (cancelReasonObj.Mode != \"Edit\") {\r\n // let filterData = cancelReasonData.filter(item => item.CancelReasonSerNo == selectedCancelReasonSerNo);\r\n // if (filterData.length > 0) {\r\n // filterData[0].Mode = \"View\";\r\n // setCancelReasonObj(filterData[0]);\r\n // }\r\n // else {\r\n // defaultObj.Mode = \"View\";\r\n // setCancelReasonObj(defaultObj);\r\n // setSelectedCancelReasonSerNo(defaultObj.CancelReasonSerNo);\r\n // }\r\n // }\r\n // else {\r\n // let filterData = cancelReasonData.filter(item => (item.CancelReasonSerNo == selectedCancelReasonSerNo));\r\n // if (filterData.length > 0) {\r\n // filterData[0].Mode = \"View\";\r\n // setCancelReasonObj(filterData[0]);\r\n // }\r\n // else {\r\n // defaultObj.Mode = \"View\";\r\n // setCancelReasonObj(defaultObj);\r\n // setSelectedCancelReasonSerNo(defaultObj.CancelReasonSerNo);\r\n // }\r\n // }\r\n }\r\n //End Region\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Cancellation Reason Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Cancellation Reason
    \r\n
    \r\n
      \r\n {\r\n filterCancelReasonData.map(d =>\r\n
    • \r\n \r\n {d.Name}\r\n \r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n\r\n {\r\n setCancelReasonObj((prev) => ({ ...prev, Name: v }));\r\n setCancelReasonValidation((prev) => ({ ...prev, Name: \"\" }));\r\n console.log(\"testChange>>\", v)\r\n }}>Name\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n Activate console.log(v)} id=\"1\">\r\n {cancelReasonObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport Moment from \"moment\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport {\r\n InnActionButton,\r\n InnPlainButton,\r\n InnPrimaryButton,\r\n InnButtonTypeWithDropdown,\r\n InnSwitch,\r\n InnTextbox,\r\n InnCheckbox,\r\n InnTableGrid,\r\n InnTabs,\r\n InnTabsPlain,\r\n InnPlainTabs,\r\n Tab,\r\n InnSingleSelectDropdown,\r\n InnSingleDateSelection,\r\n InnTooltip,\r\n InnTextarea,\r\n InnTimeSelection,\r\n InnMultiSelectDropdown,\r\n} from \"../../../component\";\r\nimport infoicon from \"../../../assets/images/info-icon-2.svg\";\r\nimport { currentUser } from \"../../../reducer/authSlice\";\r\nimport { GuestModalPopup } from \"./modalPopup/guestModalPopup\";\r\nimport { CompanyModalPopup } from \"./modalPopup/companyModalPopup\";\r\nimport { ReservationTypeModalPopup } from \"./modalPopup/reservationTypeModalPopup\";\r\nimport { RateCodeModalPopup } from \"./modalPopup/rateCodeModalPopup\";\r\nimport { BillingInstructionModalPopup } from \"./modalPopup/billingInstructionModalPopup\";\r\n\r\nimport { array, element, string } from \"prop-types\";\r\nimport { getNativeSelectUtilityClasses } from \"@mui/material\";\r\nimport {\r\n cmbGetSourceMaster,\r\n cmbGetMarketMaster,\r\n GetRoomTypeMaster,\r\n GetUsersList,\r\n GetRoomAvaibility,\r\n GetBlockReservationRateAndPackageRate,\r\n AddEditReservationBlock,\r\n EditReservationBlock,\r\n GetReservationBlockDetail,\r\n GetPropertyParameterByKeys\r\n} from \"../../../services/reservationService\";\r\nimport useEnhancedEffect from \"@mui/material/utils/useEnhancedEffect\";\r\n\r\nexport function NewBlockReservation(props) {\r\n const history = useHistory();\r\n const location = useLocation();\r\n const currUser = useSelector(currentUser);\r\n const [roomAvailabilityList, setRoomAvailabilityList] = useState([]);\r\n const [reservationBlockRateCodeDetail, seReservationBlockRateCodeDetail] = useState([]);\r\n const [inclusionDetail, setInclusionDetail] = useState([]);\r\n const [roomAvailability, setRoomAvailability] = useState([]);\r\n const [roomTypeWiseRate, setRoomTypeWiseRate] = useState([]);\r\n const [roomAdultWiseRate, setRoomAdultWiseRate] = useState([]);\r\n const [roomExtraBedRate, setRoomExtraBedRate] = useState(0);\r\n const [reservationBlockDetail, setReservationBlockDetail] = useState([]);\r\n const [filterDataRateDesc, setfilterDataRateDesc] = useState([]);\r\n const [filterDataRateSummary, setfilterDataRateSummary] = useState([]);\r\n const [showRateWithTax, setShowRateWithTax] = useState(false);\r\n const [rateGrandTotal, setRateGrandTotal] = useState({\r\n AvgRate: 0,\r\n RoomNights: 0,\r\n TotalRate: 0,\r\n });\r\n const [isApplyBtnDisabled, setIsApplyBtnDisabled] = useState(true);\r\n const [rateClass, setRateClass] = useState(\"form-group\");\r\n const [cmbUserList, setCmbUserList] = useState([]);\r\n const [selectedUser, setSelectedUser] = useState(0);\r\n const [cmbRoomTypeList, setCmbRoomTypeList] = useState([]);\r\n const [selectedRoomType, setSelectedRoomType] = useState([undefined]);\r\n const [selectedRoomTypeSerNo, setSelectedRoomTypeSerNo] = useState(\"\");\r\n const [cmbAdult, setCmbAdult] = useState([]);\r\n const [selectedAdult, setSelectedAdult] = useState([undefined]);\r\n const [selectedAdultSerNo, setSelectedAdultSerNo] = useState(\"\");\r\n const [cmbMarketData, setCmbMarketData] = useState([]);\r\n const [selectedMarket, setSelectedMarket] = useState(0);\r\n const [cmbSourceData, setCmbSourceData] = useState([]);\r\n const [selectedSource, setSelectedSource] = useState(0);\r\n\r\n const [showGuestModal, setShowGuestModal] = useState(false);\r\n const [showAgentModal, setShowAgentModal] = useState(false);\r\n const [showCompanyModal, setShowCompanyModal] = useState(false);\r\n const [showReservationTypeModal, setShowReservationTypeModal] = useState(false);\r\n const [showRateSelectionModal, setShowRateSelectionModal] = useState(false);\r\n\r\n const [selectedGuest, setSelectedGuest] = useState({});\r\n const [selectedCompany, setSelectedCompany] = useState({});\r\n const [selectedAgent, setSelectedAgent] = useState({});\r\n const [companyDisable, setCompanyDisable] = useState(false);\r\n const [agentDisable, setAgentDisable] = useState(false);\r\n\r\n const [selectedReservationType, setSelectedReservationType] = useState({});\r\n const [showBillingInstructionModal, setShowBillingInstructionModal] = useState(false);\r\n\r\n const [rateAndPackageDetail, setRateAndpackageDetail] = useState([]);\r\n const propertyParameters = 'ArrivalTime,ArrivalTimeRange,BusinessDate,DepartureTime,DepartureTimeRange';\r\n const [propertyParameterData, setPropertyParameterData] = useState([]);\r\n \r\n const [newBlockReservation, setNewBlockReservation] = useState({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n BlockSerNo: 0,\r\n BlockName: \"\",\r\n BlockCode: \"\",\r\n ArrivalDate: Moment(new Date()).format(\"DD-MMM-YYYY\"),\r\n DepartureDate: Moment(new Date()).add(1, \"day\").format(\"DD-MMM-YYYY\"),\r\n ReservationDate: Moment(new Date()).format(\"DD-MMM-YYYY\"),\r\n Nights: 1,\r\n CutOffDate: \"\",\r\n CutOffDays: 0,\r\n IsElastic: false,\r\n GuestProfileSerNo: \"\",\r\n GuestName: \"\",\r\n CompanyProfileSerNo: 0,\r\n CompanyHasRateMapping: false,\r\n AgentProfileSerNo: 0,\r\n AgentHasRateMapping: false,\r\n CompanyRateGroupSerNo: 0,\r\n AgentRateGroupSerNo: 0,\r\n Agent: \"\",\r\n Company: \"\",\r\n RateSerNo: \"\",\r\n RateCodeName: \"\",\r\n ReservationTypeSerNo: \"\",\r\n ReservationType: \"\",\r\n Adult: 2,\r\n Child: 0,\r\n from: \"Block\",\r\n RoomTypeSerNo: 0,\r\n IsInclusive: false,\r\n IsComplimentary: false,\r\n IsHouseUse: false,\r\n IsDiscloseRate: true,\r\n IsPrintRate: true,\r\n Discountable: false,\r\n IsRateMappedToProfile: true,\r\n MarketSerNo: 0,\r\n SourceProfileSerNo: 0,\r\n BillingInstructionRemarks: \"\",\r\n UserID: \"\",\r\n });\r\n const [blockValidationObj, setBlockValidationObj] = useState({\r\n BlockName: \"\",\r\n BlockCode: \"\",\r\n ArrivalDate: \"\",\r\n DepartureDate: \"\",\r\n Nights: \"\",\r\n GuestProfileSerNo: \"\",\r\n CompanyProfileSerNo: \"\",\r\n AgentProfileSerNo: \"\",\r\n RateSerNo: \"\",\r\n ReservationTypeSerNo: \"\",\r\n MarketSerNo: \"\",\r\n UserID: \"\",\r\n RoomType: \"\",\r\n Adult: \"\",\r\n });\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n setTableWidth(tableRef.current.clientWidth);\r\n setLowerTableWidth(lowerTableRef.current.clientWidth);\r\n }, 100);\r\n let roomTypeList = [];\r\n setCmbAdult([\r\n { key: 1, value: \"Single\", title: \"Sgl\" },\r\n { key: 2, value: \"Double\", title: \"Dbl\" },\r\n { key: 3, value: \"Triple\", title: \"Trp\" },\r\n { key: 4, value: \"4 Adults\", title: \"4A\" },\r\n { key: 5, value: \"5 Adults\", title: \"5A\" },\r\n { key: 6, value: \"6 Adults\", title: \"6A\" },\r\n ]);\r\n\r\n GetUsersList(parseInt(currUser.ClientSerNo)).then((d) => {\r\n let userList = [];\r\n userList.push({ key: 0, value: \"Select\" });\r\n d.data.map((element) => {\r\n userList.push({ key: element.UserID, value: element.UserID });\r\n });\r\n setCmbUserList(userList);\r\n });\r\n GetRoomTypeMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n //roomTypeList.push({ key: 0, value:\"Select\" })\r\n d.data.map((element) => {\r\n roomTypeList.push({\r\n key: element.RoomTypeSerNo,\r\n value: element.Name,\r\n });\r\n });\r\n setCmbRoomTypeList(roomTypeList);\r\n });\r\n cmbGetMarketMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n setCmbMarketData(d.data);\r\n });\r\n cmbGetSourceMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n setCmbSourceData(d.data);\r\n });\r\n GetPropertyParameterByKeys(currUser.ClientSerNo, currUser.PropertySerNo, propertyParameters).then(d => {\r\n setPropertyParameterData(d.data);\r\n let obj = d.data.find(x => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setNewBlockReservation(prev => ({ ...prev, ArrivalDate: obj.value }));\r\n let dt = new Date(obj.value);\r\n dt.setDate(dt.getDate() + 1);\r\n dt = Moment(dt).format(\"DD-MMM-YYYY\");\r\n setNewBlockReservation(prev => ({ ...prev, DepartureDate: dt }));\r\n \r\n }\r\n })\r\n if (location.state?.BlockSerNo != undefined) {\r\n GetReservationBlockDetail(currUser.ClientSerNo, currUser.PropertySerNo, location.state?.BlockSerNo).then((d) => {\r\n setReservationBlockDetail(d.data);\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n ClientSerNo: d.data.ClientSerNo,\r\n PropertySerNo: d.data.PropertySerNo,\r\n BlockSerNo: d.data.BlockSerNo,\r\n BlockName: d.data.BlockName,\r\n BlockCode: d.data.BlockCode,\r\n ArrivalDate: Moment(new Date(d.data.ArrivalDate)).format(\"DD-MMM-YYYY\"),\r\n DepartureDate: Moment(new Date(d.data.DepartureDate)).format(\"DD-MMM-YYYY\"),\r\n ReservationDate: Moment(new Date(d.data.ReservationDate)).format(\"DD-MMM-YYYY\"),\r\n Nights: d.data.Nights,\r\n CutOffDate: Moment(new Date(d.data.CutOffDate)).format(\"DD-MMM-YYYY\"),\r\n CutOffDays: d.data.CutOffDays,\r\n IsElastic: d.data.IsElastic,\r\n GuestProfileSerNo: d.data.GuestProfileSerNo,\r\n GuestName: d.data.GuestName,\r\n CompanyProfileSerNo: d.data.CompanyProfileSerNo,\r\n AgentProfileSerNo: d.data.AgentProfileSerNo,\r\n CompanyHasRateMapping: d.data.CompanyHasRateMapping,\r\n AgentHasRateMapping: d.data.AgentHasRateMapping,\r\n CompanyRateGroupSerNo: d.data.CompanyRateGroupSerNo,\r\n AgentRateGroupSerNo: d.data.AgentRateGroupSerNo,\r\n Agent: d.data.Agent,\r\n Company: d.data.Company,\r\n RateSerNo: d.data.RateSerNo,\r\n RateCodeName: d.data.RateCodeName,\r\n ReservationTypeSerNo: d.data.ReservationTypeSerNo,\r\n ReservationType: d.data.ReservationType,\r\n IsInclusive: d.data.IsTaxInclusive,\r\n IsRateMappedToProfile: d.data.IsRateMappedToProfile,\r\n MarketSerNo: d.data.MarketSerNo,\r\n SourceProfileSerNo: d.data.SourceProfileSerNo,\r\n BillingInstructionRemarks: d.data.BillingInstructionRemarks,\r\n UserID: d.data.UserID,\r\n }));\r\n seReservationBlockRateCodeDetail(d.data.ReservationBlockRateDetail);\r\n GetInclusionDetail(d.data.ReservationBlockRateDetail.ReservationBlockPackageRateDetails);\r\n setReservationBlockAvailability(\r\n roomTypeList,\r\n d.data.ReservationBlockRateDetail,\r\n d.data.ArrivalDate,\r\n d.data.DepartureDate\r\n );\r\n });\r\n }\r\n }, []);\r\n useEffect(() => {\r\n let rateCls = \"form-group\";\r\n if (reservationBlockRateCodeDetail != undefined) {\r\n if (newBlockReservation.IsDiscloseRate) {\r\n rateCls = rateCls + \" strike\";\r\n setRateClass(rateCls);\r\n }\r\n }\r\n }, [newBlockReservation]);\r\n useEffect(() => {\r\n if (newBlockReservation.RateSerNo != undefined && newBlockReservation.RateSerNo != 0) {\r\n calculateRateAndPackage(\r\n currUser.ClientSerNo,\r\n currUser.PropertySerNo,\r\n newBlockReservation.RateSerNo,\r\n selectedRoomTypeSerNo,\r\n selectedAdultSerNo,\r\n newBlockReservation.ArrivalDate,\r\n newBlockReservation.DepartureDate,\r\n newBlockReservation.CompanyProfileSerNo,\r\n newBlockReservation.AgentProfileSerNo,\r\n newBlockReservation.IsInclusive,\r\n roomExtraBedRate\r\n );\r\n }\r\n }, [roomAdultWiseRate]);\r\n // useEffect(() => {\r\n // }, [roomExtraBedRate]);\r\n useEffect(() => {\r\n let roomTypeWiseRateSummaryDetail = [];\r\n let tempRoomAvailability = roomAvailability;\r\n if (tempRoomAvailability != undefined && tempRoomAvailability.length > 0) {\r\n console.log(tempRoomAvailability[0].RoomTypeWiseDetail)\r\n \r\n tempRoomAvailability[0].RoomTypeWiseDetail.forEach((obj) => {\r\n let tempObj = {\r\n RoomTypeSerNo: obj.RoomTypeSerNo,\r\n RoomTypeName: obj.RoomTypeName,\r\n Adult1RoomNights: 0,\r\n Adult2RoomNights: 0,\r\n Adult3RoomNights: 0,\r\n Adult4RoomNights: 0,\r\n Adult5RoomNights: 0,\r\n Adult6RoomNights: 0,\r\n RoomNights: 0,\r\n AvgRate: 0,\r\n Taxes: 0,\r\n PlanValue: 0,\r\n TotalValue: 0,\r\n };\r\n roomTypeWiseRateSummaryDetail.push(tempObj);\r\n });\r\n roomTypeWiseRateSummaryDetail.forEach((item) => {\r\n let roomNight = 0;\r\n let roomNightAdult1 = 0;\r\n let roomNightAdult2 = 0;\r\n let roomNightAdult3 = 0;\r\n let roomNightAdult4 = 0;\r\n let roomNightAdult5 = 0;\r\n let roomNightAdult6 = 0;\r\n tempRoomAvailability.forEach((element) => {\r\n element.RoomTypeWiseDetail.filter((ele) => ele.RoomTypeSerNo == item.RoomTypeSerNo).forEach((obj) => {\r\n roomNight =\r\n parseInt(roomNight) + obj.Adult1 + obj.Adult2 + obj.Adult3 + obj.Adult4 + obj.Adult5 + obj.Adult6;\r\n roomNightAdult1 = parseInt(roomNightAdult1) + obj.Adult1;\r\n roomNightAdult2 = parseInt(roomNightAdult2) + obj.Adult2;\r\n roomNightAdult3 = parseInt(roomNightAdult3) + obj.Adult3;\r\n roomNightAdult4 = parseInt(roomNightAdult4) + obj.Adult4;\r\n roomNightAdult5 = parseInt(roomNightAdult5) + obj.Adult5;\r\n roomNightAdult6 = parseInt(roomNightAdult6) + obj.Adult6;\r\n });\r\n });\r\n item.RoomNights = roomNight;\r\n item.Adult1RoomNights = roomNightAdult1;\r\n item.Adult2RoomNights = roomNightAdult2;\r\n item.Adult3RoomNights = roomNightAdult3;\r\n item.Adult4RoomNights = roomNightAdult4;\r\n item.Adult5RoomNights = roomNightAdult5;\r\n item.Adult6RoomNights = roomNightAdult6;\r\n });\r\n let tempRoomTypeWiseRate = roomTypeWiseRate;\r\n console.log(roomTypeWiseRate)\r\n let rateSummaryGridData = [];\r\n roomTypeWiseRateSummaryDetail.forEach((item) => {\r\n let totalRoomRevenue = 0;\r\n let totalTaxRevenue = 0;\r\n tempRoomTypeWiseRate.forEach((element) => {\r\n element.RoomTypeWiseRateDetail.filter((ele) => ele.RoomTypeSerNo == item.RoomTypeSerNo).forEach((obj) => {\r\n totalRoomRevenue =\r\n totalRoomRevenue +\r\n (element.AdultSerNo == 1\r\n ? parseFloat(obj.RoomRate * item.Adult1RoomNights)\r\n : element.AdultSerNo == 2\r\n ? parseFloat(obj.RoomRate * item.Adult2RoomNights)\r\n : element.AdultSerNo == 3\r\n ? parseFloat(obj.RoomRate * item.Adult3RoomNights)\r\n : element.AdultSerNo == 4\r\n ? parseFloat(obj.RoomRate * item.Adult4RoomNights)\r\n : element.AdultSerNo == 5\r\n ? parseFloat(obj.RoomRate * item.Adult5RoomNights)\r\n : element.AdultSerNo == 6\r\n ? parseFloat(obj.RoomRate * item.Adult6RoomNights)\r\n : 0);\r\n //tax is allready calculated with multiply by adult\r\n // totalTaxRevenue =\r\n // totalTaxRevenue +\r\n // (element.AdultSerNo == 1\r\n // ? parseFloat(obj.Tax * item.Adult1RoomNights)\r\n // : element.AdultSerNo == 2\r\n // ? parseFloat(obj.Tax * item.Adult2RoomNights)\r\n // : element.AdultSerNo == 3\r\n // ? parseFloat(obj.Tax * item.Adult3RoomNights)\r\n // : element.AdultSerNo == 4\r\n // ? parseFloat(obj.Tax * item.Adult4RoomNights)\r\n // : element.AdultSerNo == 5\r\n // ? parseFloat(obj.Tax * item.Adult5RoomNights)\r\n // : element.AdultSerNo == 6\r\n // ? parseFloat(obj.Tax * item.Adult6RoomNights)\r\n // : 0);\r\n console.log(obj.Tax)\r\n console.log(item.Adult1RoomNights)\r\n console.log(item.Adult2RoomNights)\r\n \r\n totalTaxRevenue =\r\n totalTaxRevenue +\r\n (element.AdultSerNo == 1\r\n ? parseFloat(obj.Tax * item.Adult1RoomNights)\r\n : element.AdultSerNo == 2\r\n ? parseFloat(obj.Tax * item.Adult2RoomNights)\r\n : element.AdultSerNo == 3\r\n ? parseFloat(obj.Tax * item.Adult3RoomNights)\r\n : element.AdultSerNo == 4\r\n ? parseFloat(obj.Tax * item.Adult4RoomNights)\r\n : element.AdultSerNo == 5\r\n ? parseFloat(obj.Tax * item.Adult5RoomNights)\r\n : element.AdultSerNo == 6\r\n ? parseFloat(obj.Tax * item.Adult6RoomNights)\r\n : 0);\r\n \r\n });\r\n });\r\n item.PlanValue =\r\n newBlockReservation.IsInclusive == true ? totalRoomRevenue - totalTaxRevenue : totalRoomRevenue;\r\n item.AvgRate = (totalRoomRevenue / (item.RoomNights == 0 ? 1 : item.RoomNights)).toFixed(2);\r\n item.Taxes = (totalTaxRevenue / (item.RoomNights == 0 ? 1 : item.RoomNights)).toFixed(2);\r\n item.TotalValue =\r\n newBlockReservation.IsInclusive == true ? totalRoomRevenue : totalRoomRevenue + totalTaxRevenue;\r\n rateSummaryGridData.push({\r\n type: item.RoomTypeName,\r\n night: item.RoomNights,\r\n avg: newBlockReservation.IsInclusive == true ? item.AvgRate - item.Taxes : item.AvgRate,\r\n taxes: item.Taxes,\r\n Value: item.PlanValue,\r\n TotalValue: item.TotalValue,\r\n });\r\n });\r\n setfilterDataRateSummary(rateSummaryGridData);\r\n let TotalRoomNight = 0;\r\n let TotalRevenue = 0;\r\n roomTypeWiseRateSummaryDetail.forEach((item) => {\r\n TotalRoomNight = TotalRoomNight + item.RoomNights;\r\n TotalRevenue = TotalRevenue + item.TotalValue;\r\n });\r\n setRateGrandTotal((prev) => ({\r\n ...prev,\r\n AvgRate: (TotalRevenue / (TotalRoomNight == 0 ? 1 : TotalRoomNight)).toFixed(2),\r\n RoomNights: TotalRoomNight,\r\n TotalRate: TotalRevenue,\r\n }));\r\n let totalExtraBed = 0;\r\n let totalExtraBedRevenue = 0;\r\n tempRoomAvailability.forEach((element) => {\r\n totalExtraBed = totalExtraBed + element.ExtraBedRoom;\r\n });\r\n let extraBedObj = tempRoomTypeWiseRate.filter((element) => element.ExtraBedRate != 0)[0];\r\n totalExtraBedRevenue = extraBedObj != undefined ? parseFloat(extraBedObj.ExtraBedRate * totalExtraBed) : 0;\r\n\r\n let blockAndPickupRateSummary = [];\r\n blockAndPickupRateSummary.push(\r\n {\r\n Description: \"Room Nights Blocked\",\r\n Blocked: TotalRoomNight,\r\n PickedUp: 0,\r\n Balance: TotalRoomNight,\r\n },\r\n {\r\n Description: \"Projected Room Revenue\",\r\n Blocked: TotalRevenue,\r\n PickedUp: 0,\r\n Balance: TotalRevenue,\r\n },\r\n {\r\n Description: \"Extra Bed\",\r\n Blocked: totalExtraBed,\r\n PickedUp: 0,\r\n Balance: totalExtraBed,\r\n },\r\n {\r\n Description: \"Extra Bed Revenue\",\r\n Blocked: totalExtraBedRevenue,\r\n PickedUp: 0,\r\n Balance: totalExtraBedRevenue,\r\n },\r\n {\r\n Description: \"Total Projected Revenue\",\r\n Blocked: TotalRevenue + totalExtraBedRevenue,\r\n PickedUp: 0,\r\n Balance: TotalRevenue + totalExtraBedRevenue,\r\n }\r\n );\r\n setfilterDataRateDesc(blockAndPickupRateSummary);\r\n }\r\n }, [roomAvailability, roomTypeWiseRate]);\r\n useEffect(() => {\r\n if (new Date(newBlockReservation.ArrivalDate) > new Date(newBlockReservation.DepartureDate)) {\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n DepartureDate: Moment(newBlockReservation.ArrivalDate).add(1, \"day\").format(\"DD-MMM-YYYY\"),\r\n Nights: 1,\r\n }));\r\n } else {\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n Nights: Moment.duration(\r\n Moment(newBlockReservation.DepartureDate).diff(Moment(newBlockReservation.ArrivalDate))\r\n ).asDays(),\r\n }));\r\n }\r\n if (selectedAdultSerNo != \"\") {\r\n GetReservationAvaibility(\r\n Moment(newBlockReservation.ArrivalDate).format(\"DD-MMM-YYYY\"),\r\n Moment(newBlockReservation.DepartureDate).format(\"DD-MMM-YYYY\")\r\n );\r\n }\r\n }, [newBlockReservation.ArrivalDate]);\r\n useEffect(() => {\r\n if (new Date(newBlockReservation.DepartureDate) < new Date(newBlockReservation.ArrivalDate)) {\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n ArrivalDate: Moment(newBlockReservation.DepartureDate).add(-1, \"day\").format(\"DD-MMM-YYYY\"),\r\n Nights: 1,\r\n }));\r\n } else {\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n Nights: Moment.duration(\r\n Moment(newBlockReservation.DepartureDate).diff(Moment(newBlockReservation.ArrivalDate))\r\n ).asDays(),\r\n }));\r\n }\r\n if (selectedAdultSerNo != \"\") {\r\n GetReservationAvaibility(\r\n Moment(newBlockReservation.ArrivalDate).format(\"DD-MMM-YYYY\"),\r\n Moment(newBlockReservation.DepartureDate).format(\"DD-MMM-YYYY\")\r\n );\r\n }\r\n }, [newBlockReservation.DepartureDate]);\r\n\r\n const setReservationBlockAvailability = (roomType, blockRateDetail, ArrDate, DeptDate) => {\r\n let adultTypeList = [\r\n { key: 1, value: \"Single\", title: \"Sgl\" },\r\n { key: 2, value: \"Double\", title: \"Dbl\" },\r\n { key: 3, value: \"Triple\", title: \"Trp\" },\r\n { key: 4, value: \"4 Adults\", title: \"4A\" },\r\n { key: 5, value: \"5 Adults\", title: \"5A\" },\r\n { key: 6, value: \"6 Adults\", title: \"6A\" },\r\n ];\r\n\r\n let tempSelectedRoomType = [];\r\n let tempSelectedAdult = [];\r\n let str = \"\";\r\n let str1 = \"\";\r\n let cntr = 0;\r\n blockRateDetail.ReservationBlockRoomRateDetails.forEach((obj) => {\r\n cntr++;\r\n let tempObj = roomType.filter((ele) => ele.key == obj.RoomTypeSerNo)[0];\r\n if (tempObj != undefined && tempSelectedRoomType.indexOf(tempObj.key) === -1) {\r\n tempSelectedRoomType.push(tempObj.key);\r\n str = str + tempObj.key + \",\";\r\n }\r\n let tempObj1 = adultTypeList.filter((ele) => ele.key == obj.Adult)[0];\r\n if (tempObj1 != undefined && tempSelectedAdult.indexOf(tempObj1.key) === -1) {\r\n tempSelectedAdult.push(tempObj1.key);\r\n str1 = str1 + tempObj1.key + \",\";\r\n }\r\n if (cntr === blockRateDetail.ReservationBlockRoomRateDetails.length) {\r\n setSelectedAdult(tempSelectedAdult);\r\n setSelectedRoomType(tempSelectedRoomType);\r\n setSelectedAdultSerNo(str1);\r\n setSelectedRoomTypeSerNo(str);\r\n GetEditBlockReservationAvaibility(\r\n adultTypeList,\r\n roomType,\r\n tempSelectedAdult,\r\n tempSelectedRoomType,\r\n blockRateDetail,\r\n ArrDate,\r\n DeptDate\r\n );\r\n }\r\n });\r\n };\r\n const handleOnBlurExtraBedRate = () => {\r\n if (newBlockReservation.RateSerNo != undefined && newBlockReservation.RateSerNo != 0) {\r\n console.log(roomExtraBedRate);\r\n calculateRateAndPackage(\r\n currUser.ClientSerNo,\r\n currUser.PropertySerNo,\r\n newBlockReservation.RateSerNo,\r\n selectedRoomTypeSerNo,\r\n selectedAdultSerNo,\r\n newBlockReservation.ArrivalDate,\r\n newBlockReservation.DepartureDate,\r\n newBlockReservation.CompanyProfileSerNo,\r\n newBlockReservation.AgentProfileSerNo,\r\n newBlockReservation.IsInclusive,\r\n roomExtraBedRate\r\n );\r\n }\r\n };\r\n\r\n const GetEditBlockReservationAvaibility = (\r\n adultTypeList,\r\n roomTypeList,\r\n selectedAdultList,\r\n selectedRoomList,\r\n rateData,\r\n ArrDate,\r\n DeptDate\r\n ) => {\r\n let DepDate = \"\";\r\n \r\n if (ArrDate == DeptDate) {\r\n console.log(true);\r\n DepDate = DeptDate;\r\n } else {\r\n console.log(false);\r\n DepDate = Moment(new Date(DeptDate)).add(-1, \"days\").format(\"DD-MMM-yyyy\");\r\n }\r\n \r\n GetRoomAvaibility(\r\n currUser.ClientSerNo,\r\n currUser.PropertySerNo,\r\n Moment(ArrDate).format(\"DD-MMM-YYYY\"),\r\n Moment(DepDate).format(\"DD-MMM-YYYY\")\r\n ).then((d) => {\r\n setRoomAvailabilityList(d.data);\r\n let tempRoomType = [];\r\n selectedRoomList.forEach((element) => {\r\n let obj = roomTypeList.filter((ele) => ele.key == element);\r\n tempRoomType.push(obj[0]);\r\n });\r\n\r\n let tempAdultList = [];\r\n selectedAdultList.forEach((element) => {\r\n let obj = adultTypeList.filter((ele) => ele.key == element);\r\n console.log(obj);\r\n if (obj[0] != undefined && obj[0].key == 1) {\r\n tempAdultList.push({\r\n Adult1: 0,\r\n Title: obj[0].title,\r\n Value: obj[0].value,\r\n key: obj[0].key,\r\n });\r\n }\r\n if (obj[0] != undefined && obj[0].key == 2) {\r\n tempAdultList.push({\r\n Adult2: 0,\r\n Title: obj[0].title,\r\n Value: obj[0].value,\r\n key: obj[0].key,\r\n });\r\n }\r\n if (obj[0] != undefined && obj[0].key == 3) {\r\n tempAdultList.push({\r\n Adult3: 0,\r\n Title: obj[0].title,\r\n Value: obj[0].value,\r\n key: obj[0].key,\r\n });\r\n }\r\n if (obj[0] != undefined && obj[0].key == 4) {\r\n tempAdultList.push({\r\n Adult4: 0,\r\n Title: obj[0].title,\r\n Value: obj[0].value,\r\n key: obj[0].key,\r\n });\r\n }\r\n if (obj[0] != undefined && obj[0].key == 5) {\r\n tempAdultList.push({\r\n Adult5: 0,\r\n Title: obj[0].title,\r\n Value: obj[0].value,\r\n key: obj[0].key,\r\n });\r\n }\r\n if (obj[0] != undefined && obj[0].key == 6) {\r\n tempAdultList.push({\r\n Adult6: 0,\r\n Title: obj[0].title,\r\n Value: obj[0].value,\r\n key: obj[0].key,\r\n });\r\n }\r\n });\r\n\r\n let tempobj = [];\r\n d.data.forEach((element) => {\r\n if (tempobj.filter((ele) => ele.Date == element.Date).length == 0) {\r\n tempobj.push({\r\n Date: element.Date,\r\n ExtraBedRoom: 0,\r\n RoomTypeWiseDetail: [],\r\n });\r\n }\r\n });\r\n tempobj.forEach((element) => {\r\n let tempobj1 = [];\r\n tempRoomType.map((objele) => {\r\n let availRoom = d.data.filter(\r\n (item) => parseInt(item.RoomTypeSerNo) == parseInt(objele.key) && item.Date == element.Date\r\n );\r\n tempobj1.push({\r\n RoomTypeSerNo: objele.key,\r\n RoomTypeName: objele.value,\r\n TotalRoomAvailable: availRoom[0] != undefined && availRoom.length > 0 ? availRoom[0].Available : 0,\r\n RoomAvailable: availRoom[0] != undefined && availRoom.length > 0 ? availRoom[0].Available : 0,\r\n RoomTypeWiseAdultDetail: tempAdultList,\r\n Adult1: 0,\r\n Adult2: 0,\r\n Adult3: 0,\r\n Adult4: 0,\r\n Adult5: 0,\r\n Adult6: 0,\r\n });\r\n });\r\n element.RoomTypeWiseDetail = tempobj1;\r\n });\r\n\r\n rateData.ReservationBlockRoomRateDetails.forEach((item) => {\r\n tempobj\r\n .filter((element) => Moment(element.Date).format(\"dd-MMM-yyyy\") == Moment(item.Date).format(\"dd-MMM-yyyy\"))\r\n .forEach((ele) => {\r\n ele.RoomTypeWiseDetail.filter((element) => element.RoomTypeSerNo == item.RoomTypeSerNo).forEach((obj) => {\r\n item.Adult == 1\r\n ? (obj.Adult1 = item.NoOfRooms)\r\n : item.Adult == 2\r\n ? (obj.Adult2 = item.NoOfRooms)\r\n : item.Adult == 3\r\n ? (obj.Adult3 = item.NoOfRooms)\r\n : item.Adult == 4\r\n ? (obj.Adult4 = item.NoOfRooms)\r\n : item.Adult == 5\r\n ? (obj.Adult5 = item.NoOfRooms)\r\n : (obj.Adult6 = item.NoOfRooms);\r\n obj.RoomAvailable = obj.RoomAvailable - item.NoOfRooms;\r\n });\r\n });\r\n });\r\n console.log(rateData.ReservationBlockExtraBedRateDetails);\r\n rateData.ReservationBlockExtraBedRateDetails.forEach((item) => {\r\n tempobj\r\n .filter((element) => Moment(element.Date).format(\"dd-MMM-yyyy\") == Moment(item.Date).format(\"dd-MMM-yyyy\"))\r\n .forEach((obj) => {\r\n obj.ExtraBedRoom = item.NoOfExtraBed;\r\n });\r\n });\r\n console.log(\"solution Temp Obj\", tempobj);\r\n setRoomAvailability(tempobj);\r\n let tempobj2 = [];\r\n tempAdultList.map((obj) => {\r\n let tempobj3 = [];\r\n tempRoomType.map((objele) => {\r\n tempobj3.push({\r\n RoomTypeSerNo: objele.key,\r\n RoomTypeName: objele.value,\r\n RoomRate: 0,\r\n Tax: 0,\r\n });\r\n });\r\n tempobj2.push({\r\n AdultSerNo: obj.key,\r\n Name: obj.Value,\r\n ExtraBedRate: 0,\r\n RoomTypeWiseRateDetail: tempobj3,\r\n });\r\n });\r\n // rateData..ReservationBlockRoomRateDetails.forEach(item => {\r\n // tempobj2.filter(element=>element.AdultSerNo == item.Adult)[0].RoomTypeWiseRateDetail.filter(element=>element.RoomTypeSerNo == item.RoomTypeSerNo).forEach(obj=>{\r\n // obj.RoomRate = item.RoomRate\r\n // })\r\n // })\r\n\r\n setRoomTypeWiseRate([...tempobj2]);\r\n GetAdultWiseRateDetail(rateData, tempobj2);\r\n });\r\n };\r\n const GetReservationAvaibility = (ArrDate, DeptDate) => {\r\n let DepDate = \"\";\r\n console.log(Moment(ArrDate), Moment(DeptDate));\r\n if (ArrDate == DeptDate) {\r\n console.log(true);\r\n DepDate = DeptDate;\r\n } else {\r\n console.log(false);\r\n DepDate = Moment(new Date(DeptDate)).add(-1, \"days\").format(\"DD-MMM-yyyy\");\r\n }\r\n GetRoomAvaibility(currUser.ClientSerNo, currUser.PropertySerNo, ArrDate, DepDate).then((d) => {\r\n setRoomAvailabilityList(d.data);\r\n let tempRoomType = [];\r\n selectedRoomType.forEach((element) => {\r\n let obj = cmbRoomTypeList.filter((ele) => ele.key == element);\r\n tempRoomType.push(obj[0]);\r\n });\r\n\r\n let tempAdultList = [];\r\n selectedAdult.forEach((element) => {\r\n let obj = cmbAdult.filter((ele) => ele.key == element);\r\n if (obj[0] != undefined && obj[0].key == 1) {\r\n tempAdultList.push({\r\n Adult1: 0,\r\n Title: obj[0].title,\r\n Value: obj[0].value,\r\n key: obj[0].key,\r\n });\r\n }\r\n if (obj[0] != undefined && obj[0].key == 2) {\r\n tempAdultList.push({\r\n Adult2: 0,\r\n Title: obj[0].title,\r\n Value: obj[0].value,\r\n key: obj[0].key,\r\n });\r\n }\r\n if (obj[0] != undefined && obj[0].key == 3) {\r\n tempAdultList.push({\r\n Adult3: 0,\r\n Title: obj[0].title,\r\n Value: obj[0].value,\r\n key: obj[0].key,\r\n });\r\n }\r\n if (obj[0] != undefined && obj[0].key == 4) {\r\n tempAdultList.push({\r\n Adult4: 0,\r\n Title: obj[0].title,\r\n Value: obj[0].value,\r\n key: obj[0].key,\r\n });\r\n }\r\n if (obj[0] != undefined && obj[0].key == 5) {\r\n tempAdultList.push({\r\n Adult5: 0,\r\n Title: obj[0].title,\r\n Value: obj[0].value,\r\n key: obj[0].key,\r\n });\r\n }\r\n if (obj[0] != undefined && obj[0].key == 6) {\r\n tempAdultList.push({\r\n Adult6: 0,\r\n Title: obj[0].title,\r\n Value: obj[0].value,\r\n key: obj[0].key,\r\n });\r\n }\r\n });\r\n\r\n let tempobj = [];\r\n d.data.forEach((element) => {\r\n if (tempobj.filter((ele) => ele.Date == element.Date).length == 0) {\r\n tempobj.push({\r\n Date: element.Date,\r\n ExtraBedRoom: 0,\r\n RoomTypeWiseDetail: [],\r\n });\r\n }\r\n });\r\n tempobj.forEach((element) => {\r\n let tempobj1 = [];\r\n tempRoomType.map((objele) => {\r\n let availRoom = d.data.filter(\r\n (item) => parseInt(item.RoomTypeSerNo) == parseInt(objele.key) && item.Date == element.Date\r\n );\r\n tempobj1.push({\r\n RoomTypeSerNo: objele.key,\r\n RoomTypeName: objele.value,\r\n TotalRoomAvailable: availRoom.length > 0 ? availRoom[0].Available : 0,\r\n RoomAvailable: availRoom.length > 0 ? availRoom[0].Available : 0,\r\n RoomTypeWiseAdultDetail: tempAdultList,\r\n Adult1: 0,\r\n Adult2: 0,\r\n Adult3: 0,\r\n Adult4: 0,\r\n Adult5: 0,\r\n Adult6: 0,\r\n });\r\n });\r\n element.RoomTypeWiseDetail = tempobj1;\r\n });\r\n //console.log(tempobj);\r\n setRoomAvailability(tempobj);\r\n let tempobj2 = [];\r\n tempAdultList.map((obj) => {\r\n let tempobj3 = [];\r\n tempRoomType.map((objele) => {\r\n tempobj3.push({\r\n RoomTypeSerNo: objele.key,\r\n RoomTypeName: objele.value,\r\n RoomRate: 0,\r\n Tax: 0,\r\n });\r\n });\r\n tempobj2.push({\r\n AdultSerNo: obj.key,\r\n Name: obj.Value,\r\n ExtraBedRate: 0,\r\n RoomTypeWiseRateDetail: tempobj3,\r\n });\r\n });\r\n setRoomTypeWiseRate([...tempobj2]);\r\n setRoomAdultWiseRate([...tempobj2]);\r\n });\r\n };\r\n const setRoomNights = (date, roomTypeSerNo, adult, value, isExtraBed, e) => {\r\n let tempRoomAvailability = roomAvailability;\r\n if (isExtraBed == false) {\r\n let temObj = roomTypeWiseRate\r\n .filter((element) => element.AdultSerNo == adult)[0]\r\n .RoomTypeWiseRateDetail.filter((item) => item.RoomTypeSerNo == roomTypeSerNo)[0];\r\n\r\n // temObj.RoomTypeWiseRateDetail.forEach(item =>{\r\n // if(item.RoomTypeSerNo == roomTypeSerNo && item.RoomRate == 0)\r\n // {\r\n // alert(\"No matching rate for the selected adults found in rate code hence this action cannot be performed.\")\r\n // return;\r\n // }\r\n // })\r\n if (\r\n temObj.RoomRate == 0 &&\r\n newBlockReservation.IsComplimentary == false &&\r\n newBlockReservation.IsHouseUse == false\r\n ) {\r\n tempRoomAvailability\r\n .filter((element) => element.Date == date)[0]\r\n .RoomTypeWiseDetail.filter((element) => element.RoomTypeSerNo == roomTypeSerNo)\r\n .map((item) => {\r\n adult == 1\r\n ? (item.Adult1 = 0)\r\n : adult == 2\r\n ? (item.Adult2 = 0)\r\n : adult == 3\r\n ? (item.Adult3 = 0)\r\n : adult == 4\r\n ? (item.Adult4 = 0)\r\n : adult == 5\r\n ? (item.Adult5 = 0)\r\n : (item.Adult6 = 0);\r\n console.log(item);\r\n });\r\n alert(\"No matching rate for the selected adults found in rate code hence this action cannot be performed.\");\r\n e.persist();\r\n setRoomAvailability(tempRoomAvailability);\r\n console.log(tempRoomAvailability);\r\n } else {\r\n let tempobj = tempRoomAvailability\r\n .filter((element) => element.Date == date)[0]\r\n .RoomTypeWiseDetail.filter((element) => element.RoomTypeSerNo == roomTypeSerNo)[0];\r\n let tempAvail = tempobj.TotalRoomAvailable;\r\n let totalAvailable =\r\n parseInt(tempAvail) -\r\n (parseInt(tempobj.Adult1) +\r\n parseInt(tempobj.Adult2) +\r\n parseInt(tempobj.Adult3) +\r\n parseInt(tempobj.Adult4) +\r\n parseInt(tempobj.Adult5) +\r\n parseInt(tempobj.Adult6));\r\n if (value == 0 || totalAvailable >= value) {\r\n tempRoomAvailability\r\n .filter((element) => element.Date == date)[0]\r\n .RoomTypeWiseDetail.filter((element) => element.RoomTypeSerNo == roomTypeSerNo)\r\n .forEach((item) => {\r\n adult == 1\r\n ? (item.Adult1 = value)\r\n : adult == 2\r\n ? (item.Adult2 = value)\r\n : adult == 3\r\n ? (item.Adult3 = value)\r\n : adult == 4\r\n ? (item.Adult4 = value)\r\n : adult == 5\r\n ? (item.Adult5 = value)\r\n : (item.Adult6 = value);\r\n item.RoomAvailable =\r\n item.TotalRoomAvailable -\r\n (item.Adult1 + item.Adult2 + item.Adult3 + item.Adult4 + item.Adult5 + item.Adult6);\r\n });\r\n console.log(tempRoomAvailability);\r\n console.log(totalAvailable, value);\r\n\r\n setRoomAvailability([...tempRoomAvailability]);\r\n } else if (isNaN(value) == false) {\r\n alert(\"You cannot enter any value here as there are no available rooms to block.\");\r\n console.log(tempRoomAvailability);\r\n setRoomAvailability([...tempRoomAvailability]);\r\n }\r\n }\r\n } else {\r\n let temObj = roomTypeWiseRate[0];\r\n if (temObj.ExtraBedRate == 0) {\r\n tempRoomAvailability.filter((element) => element.Date == date)[0].ExtraBedRoom = 0;\r\n alert(\"No matching rate for the selected adults found in rate hence this action cannot be performed.\");\r\n setRoomAvailability([...tempRoomAvailability]);\r\n } else {\r\n tempRoomAvailability.filter((element) => element.Date == date)[0].ExtraBedRoom = value;\r\n setRoomAvailability([...tempRoomAvailability]);\r\n }\r\n }\r\n //GetRateSummaryDetail();\r\n };\r\n const hadleOnBlurRoomNight = (date, roomTypeSerNo, adult, isExtraBed) => {\r\n let tempRoomAvailability = roomAvailability;\r\n if (isExtraBed == false) {\r\n let temObj = roomTypeWiseRate\r\n .filter((element) => element.AdultSerNo == adult)[0]\r\n .RoomTypeWiseRateDetail.filter((item) => item.RoomTypeSerNo == roomTypeSerNo)[0];\r\n if (\r\n temObj.RoomRate == 0 &&\r\n newBlockReservation.IsComplimentary == false &&\r\n newBlockReservation.IsHouseUse == false\r\n ) {\r\n tempRoomAvailability\r\n .filter((element) => element.Date == date)[0]\r\n .RoomTypeWiseDetail.filter((element) => element.RoomTypeSerNo == roomTypeSerNo)\r\n .map((item) => {\r\n adult == 1\r\n ? (item.Adult1 = 0)\r\n : adult == 2\r\n ? (item.Adult2 = 0)\r\n : adult == 3\r\n ? (item.Adult3 = 0)\r\n : adult == 4\r\n ? (item.Adult4 = 0)\r\n : adult == 5\r\n ? (item.Adult5 = 0)\r\n : (item.Adult6 = 0);\r\n });\r\n setRoomAvailability([...tempRoomAvailability]);\r\n }\r\n } else {\r\n let temObj = roomTypeWiseRate[0];\r\n if (temObj != undefined && temObj.ExtraBedRate == 0) {\r\n tempRoomAvailability.filter((element) => element.Date == date)[0].ExtraBedRoom = 0;\r\n setRoomAvailability([...tempRoomAvailability]);\r\n }\r\n }\r\n };\r\n\r\n const handleOnInclusiveTick = (c) => {\r\n if (reservationBlockRateCodeDetail.ReservationBlockRoomRateDetails != undefined) {\r\n setNewBlockReservation((prev) => ({ ...prev, IsInclusive: c }));\r\n calculateRateAndPackage(\r\n currUser.ClientSerNo,\r\n currUser.PropertySerNo,\r\n newBlockReservation.RateSerNo,\r\n selectedRoomTypeSerNo,\r\n selectedAdultSerNo,\r\n newBlockReservation.ArrivalDate,\r\n newBlockReservation.DepartureDate,\r\n newBlockReservation.CompanyProfileSerNo,\r\n newBlockReservation.AgentProfileSerNo,\r\n c,\r\n roomExtraBedRate\r\n );\r\n } else {\r\n alert(\"Rate code is not selected.\");\r\n }\r\n };\r\n\r\n const calculateRateAndPackage = (\r\n ClientSerNo,\r\n PropertySerNo,\r\n RateSerNo,\r\n RoomTypes,\r\n Adults,\r\n ArrivalDate,\r\n DepartureDate,\r\n companyProfileSerNo,\r\n agentProfileSerNo,\r\n isInclusive,\r\n extraBedRate\r\n ) => {\r\n let tempRateObj = {\r\n ClientSerNo: parseInt(ClientSerNo),\r\n PropertySerNo: parseInt(PropertySerNo),\r\n RateSerNo: parseInt(RateSerNo),\r\n IsTaxInclusive: isInclusive,\r\n RoomTypes: RoomTypes,\r\n Adults: Adults,\r\n ArrivalDate: ArrivalDate,\r\n DepartureDate: DepartureDate,\r\n CompanyProfileSerNo: parseInt(companyProfileSerNo),\r\n AgentProfileSerNo: parseInt(agentProfileSerNo),\r\n ExtraBedAmount: parseFloat(extraBedRate),\r\n };\r\n GetBlockReservationRateAndPackageRate(tempRateObj).then((d) => {\r\n if (d.data.ReservationBlockRoomRateDetails.length == 0) {\r\n setNewBlockReservation((prev) => ({ ...prev, RateSerNo: 0 }));\r\n setNewBlockReservation((prev) => ({ ...prev, RateCodeName: \"\" }));\r\n setNewBlockReservation((prev) => ({ ...prev, IsComplimentary: false }));\r\n setNewBlockReservation((prev) => ({ ...prev, IsHouseUse: false }));\r\n setNewBlockReservation((prev) => ({ ...prev, IsDiscloseRate: true }));\r\n setNewBlockReservation((prev) => ({ ...prev, IsPrintRate: true }));\r\n setNewBlockReservation((prev) => ({ ...prev, Discountable: true }));\r\n setNewBlockReservation((prev) => ({ ...prev, IsRateMappedToProfile: true }));\r\n setNewBlockReservation((prev) => ({ ...prev, ReservationType: \"\" }));\r\n setNewBlockReservation((prev) => ({ ...prev, ReservationTypeSerNo: \"\" }));\r\n }\r\n seReservationBlockRateCodeDetail(d.data);\r\n GetInclusionDetail(d.data.ReservationBlockPackageRateDetails);\r\n GetAdultWiseRateDetail(d.data, roomTypeWiseRate);\r\n });\r\n };\r\n const GetInclusionDetail = (packages) => {\r\n const inclusionList = [];\r\n packages.map((obj) => {\r\n if (inclusionList.indexOf(obj.Name) === -1) {\r\n inclusionList.push(obj.Name);\r\n }\r\n });\r\n //console.log(inclusionList);\r\n setInclusionDetail(inclusionList);\r\n };\r\n const GetAdultWiseRateDetail = (ratedata, roomtype) => {\r\n let tempRoomTypeWiseRate = roomtype;\r\n if (tempRoomTypeWiseRate != undefined) {\r\n tempRoomTypeWiseRate.forEach((element) => {\r\n let adult = element.AdultSerNo;\r\n let extraBedObj = ratedata.ReservationBlockExtraBedRateDetails[0];\r\n console.log(extraBedObj);\r\n element.ExtraBedRate =\r\n //extraBedObj != undefined ? extraBedObj.IsTaxInclusive == true ? parseFloat(extraBedObj.RoomRate)-parseFloat(extraBedObj.Taxes) : parseFloat(extraBedObj.RoomRate): 0;\r\n extraBedObj != undefined ? parseFloat(extraBedObj.RoomRate) : 0;\r\n\r\n element.RoomTypeWiseRateDetail.forEach((obj) => {\r\n let roomTypeSerno = obj.RoomTypeSerNo;\r\n let roomRate = 0;\r\n let packagePrice = 0;\r\n let roomObj = ratedata.ReservationBlockRoomRateDetails.filter(\r\n (item) => item.Adult == adult && item.RoomTypeSerNo == roomTypeSerno\r\n )[0];\r\n let tempPackageObj = ratedata.ReservationBlockPackageRateDetails.filter(\r\n (item) => item.Adult == adult && item.RoomTypeSerNo == roomTypeSerno\r\n );\r\n console.log(ratedata.ReservationBlockTaxDetails)\r\n let tempTaxObj = ratedata.ReservationBlockTaxDetails.filter(\r\n (item) => item.Adult == adult && item.RoomTypeSerNo == roomTypeSerno\r\n );\r\n var taxObj = [];\r\n var packageObj = [];\r\n\r\n if (tempTaxObj != undefined) {\r\n tempTaxObj.forEach((item) => {\r\n if (taxObj.filter((obj) => obj.Date == item.Date)[0] == undefined) {\r\n taxObj.push({ Date: item.Date, Amount: 0 });\r\n }\r\n })\r\n taxObj.forEach((taxitem)=>{\r\n let totalTaxAmount = 0;\r\n tempTaxObj.filter((obj) => obj.Date == taxitem.Date).forEach((item) => {\r\n totalTaxAmount = totalTaxAmount + parseFloat(item.Amount);\r\n // console.log(item.Date,item.Amount,totalTaxAmount)\r\n });\r\n taxitem.Amount = totalTaxAmount;\r\n \r\n })\r\n }\r\n if (tempPackageObj != undefined) {\r\n tempPackageObj.forEach((item) => {\r\n if (packageObj.filter((obj) => obj.Date == item.Date)[0] == undefined) {\r\n packageObj.push({ Date: item.Date, PackagePrice: 0 });\r\n }\r\n });\r\n packageObj.forEach((packageitem) => {\r\n let totalPackageAmount = 0;\r\n //totalPackageAmount = totalPackageAmount + (item.IsTaxInclusive == true ? parseFloat(item.PackagePrice)-parseFloat(item.Taxes) :parseFloat(item.PackagePrice));\r\n tempPackageObj.filter((obj) => obj.Date == packageitem.Date).forEach((item) => {\r\n totalPackageAmount = totalPackageAmount + parseFloat(item.PackagePrice);\r\n //console.log(totalPackageAmount);\r\n })\r\n packageitem.PackagePrice = totalPackageAmount;\r\n });\r\n }\r\n console.log(packageObj);\r\n //roomRate = roomObj != undefined ? (roomObj.IsTaxInclusive == true ? parseFloat(roomObj.RoomRate) -parseFloat(roomObj.Taxes) :parseFloat(roomObj.RoomRate)) : 0;\r\n roomRate = roomObj != undefined ? parseFloat(roomObj.RoomRate) : 0;\r\n\r\n packagePrice = packageObj != undefined && packageObj.length > 0 ? parseFloat(packageObj[0].PackagePrice) : 0;\r\n obj.RoomRate = parseFloat(roomRate) + parseFloat(packagePrice);\r\n obj.Tax = taxObj != undefined && taxObj.length > 0 ? taxObj[0].Amount : 0;\r\n });\r\n });\r\n console.log(tempRoomTypeWiseRate);\r\n setRoomTypeWiseRate([...tempRoomTypeWiseRate]);\r\n //GetRateSummaryDetail()\r\n }\r\n };\r\n const GetRateSummaryDetail = () => {\r\n let roomTypeWiseRateSummaryDetail = [];\r\n let tempRoomAvailability = roomAvailability;\r\n if (tempRoomAvailability != undefined && tempRoomAvailability.length > 0) {\r\n tempRoomAvailability[0].RoomTypeWiseDetail.forEach((obj) => {\r\n let tempObj = {\r\n RoomTypeSerNo: obj.RoomTypeSerNo,\r\n RoomTypeName: obj.RoomTypeName,\r\n Adult1RoomNights: 0,\r\n Adult2RoomNights: 0,\r\n Adult3RoomNights: 0,\r\n Adult4RoomNights: 0,\r\n Adult5RoomNights: 0,\r\n Adult6RoomNights: 0,\r\n RoomNights: 0,\r\n AvgRate: 0,\r\n Taxes: 0,\r\n PlanValue: 0,\r\n TotalValue: 0,\r\n };\r\n roomTypeWiseRateSummaryDetail.push(tempObj);\r\n });\r\n roomTypeWiseRateSummaryDetail.forEach((item) => {\r\n let roomNight = 0;\r\n let roomNightAdult1 = 0;\r\n let roomNightAdult2 = 0;\r\n let roomNightAdult3 = 0;\r\n let roomNightAdult4 = 0;\r\n let roomNightAdult5 = 0;\r\n let roomNightAdult6 = 0;\r\n tempRoomAvailability.forEach((element) => {\r\n element.RoomTypeWiseDetail.filter((ele) => ele.RoomTypeSerNo == item.RoomTypeSerNo).forEach((obj) => {\r\n roomNight =\r\n parseInt(roomNight) + obj.Adult1 + obj.Adult2 + obj.Adult3 + obj.Adult4 + obj.Adult5 + obj.Adult6;\r\n roomNightAdult1 = parseInt(roomNightAdult1) + obj.Adult1;\r\n roomNightAdult2 = parseInt(roomNightAdult2) + obj.Adult2;\r\n roomNightAdult3 = parseInt(roomNightAdult3) + obj.Adult3;\r\n roomNightAdult4 = parseInt(roomNightAdult4) + obj.Adult4;\r\n roomNightAdult5 = parseInt(roomNightAdult5) + obj.Adult5;\r\n roomNightAdult6 = parseInt(roomNightAdult6) + obj.Adult6;\r\n });\r\n });\r\n item.RoomNights = roomNight;\r\n item.Adult1RoomNights = roomNightAdult1;\r\n item.Adult2RoomNights = roomNightAdult2;\r\n item.Adult3RoomNights = roomNightAdult3;\r\n item.Adult4RoomNights = roomNightAdult4;\r\n item.Adult5RoomNights = roomNightAdult5;\r\n item.Adult6RoomNights = roomNightAdult6;\r\n });\r\n let tempRoomTypeWiseRate = roomTypeWiseRate;\r\n let rateSummaryGridData = [];\r\n roomTypeWiseRateSummaryDetail.forEach((item) => {\r\n let totalRoomRevenue = 0;\r\n let totalTaxRevenue = 0;\r\n tempRoomTypeWiseRate.forEach((element) => {\r\n element.RoomTypeWiseRateDetail.filter((ele) => ele.RoomTypeSerNo == item.RoomTypeSerNo).forEach((obj) => {\r\n totalRoomRevenue =\r\n totalRoomRevenue +\r\n (element.AdultSerNo == 1\r\n ? parseFloat(obj.RoomRate * item.Adult1RoomNights)\r\n : element.AdultSerNo == 2\r\n ? parseFloat(obj.RoomRate * item.Adult2RoomNights)\r\n : element.AdultSerNo == 3\r\n ? parseFloat(obj.RoomRate * item.Adult3RoomNights)\r\n : element.AdultSerNo == 4\r\n ? parseFloat(obj.RoomRate * item.Adult4RoomNights)\r\n : element.AdultSerNo == 5\r\n ? parseFloat(obj.RoomRate * item.Adult5RoomNights)\r\n : element.AdultSerNo == 6\r\n ? parseFloat(obj.RoomRate * item.Adult6RoomNights)\r\n : 0);\r\n totalTaxRevenue =\r\n totalTaxRevenue +\r\n (element.AdultSerNo == 1\r\n ? parseFloat(obj.Tax * item.Adult1RoomNights)\r\n : element.AdultSerNo == 2\r\n ? parseFloat(obj.Tax * item.Adult2RoomNights)\r\n : element.AdultSerNo == 3\r\n ? parseFloat(obj.Tax * item.Adult3RoomNights)\r\n : element.AdultSerNo == 4\r\n ? parseFloat(obj.Tax * item.Adult4RoomNights)\r\n : element.AdultSerNo == 5\r\n ? parseFloat(obj.Tax * item.Adult5RoomNights)\r\n : element.AdultSerNo == 6\r\n ? parseFloat(obj.Tax * item.Adult6RoomNights)\r\n : 0);\r\n });\r\n });\r\n item.PlanValue = totalRoomRevenue;\r\n item.AvgRate = (totalRoomRevenue / (item.RoomNights == 0 ? 1 : item.RoomNights)).toFixed(2);\r\n item.Taxes = (totalTaxRevenue / (item.RoomNights == 0 ? 1 : item.RoomNights)).toFixed(2);\r\n item.TotalValue = totalRoomRevenue + totalTaxRevenue;\r\n rateSummaryGridData.push({\r\n type: item.RoomTypeName,\r\n night: item.RoomNights,\r\n avg: item.AvgRate,\r\n taxes: item.Taxes,\r\n Value: item.PlanValue,\r\n TotalValue: item.TotalValue,\r\n });\r\n });\r\n setfilterDataRateSummary(rateSummaryGridData);\r\n let TotalRoomNight = 0;\r\n let TotalRevenue = 0;\r\n roomTypeWiseRateSummaryDetail.forEach((item) => {\r\n TotalRoomNight = TotalRoomNight + item.RoomNights;\r\n TotalRevenue = TotalRevenue + item.TotalValue;\r\n });\r\n setRateGrandTotal((prev) => ({\r\n ...prev,\r\n AvgRate: (TotalRevenue / (TotalRoomNight == 0 ? 1 : TotalRoomNight)).toFixed(2),\r\n RoomNights: TotalRoomNight,\r\n TotalRate: TotalRevenue,\r\n }));\r\n let totalExtraBed = 0;\r\n let totalExtraBedRevenue = 0;\r\n tempRoomAvailability.forEach((element) => {\r\n totalExtraBed = totalExtraBed + element.ExtraBedRoom;\r\n });\r\n tempRoomTypeWiseRate.forEach((element) => {\r\n totalExtraBedRevenue = totalExtraBedRevenue + parseFloat(element.ExtraBedRate * totalExtraBed);\r\n });\r\n let blockAndPickupRateSummary = [];\r\n blockAndPickupRateSummary.push(\r\n {\r\n Description: \"Room Nights Blocked\",\r\n Blocked: TotalRoomNight,\r\n PickedUp: 0,\r\n Balance: TotalRoomNight,\r\n },\r\n {\r\n Description: \"Projected Room Revenue\",\r\n Blocked: TotalRevenue,\r\n PickedUp: 0,\r\n Balance: TotalRevenue,\r\n },\r\n {\r\n Description: \"Extra Bed\",\r\n Blocked: totalExtraBed,\r\n PickedUp: 0,\r\n Balance: totalExtraBed,\r\n },\r\n {\r\n Description: \"Extra Bed Revenue\",\r\n Blocked: totalExtraBedRevenue,\r\n PickedUp: 0,\r\n Balance: totalExtraBedRevenue,\r\n },\r\n {\r\n Description: \"Total Projected Revenue\",\r\n Blocked: TotalRevenue + totalExtraBedRevenue,\r\n PickedUp: 0,\r\n Balance: TotalRevenue + totalExtraBedRevenue,\r\n }\r\n );\r\n setfilterDataRateDesc(blockAndPickupRateSummary);\r\n }\r\n };\r\n const handleSaveOnClick = (btnID) => {\r\n let IsPageValid = isValidData();\r\n console.log(isValidData());\r\n if (selectedRoomTypeSerNo == \"\" || selectedAdultSerNo == \"\") {\r\n alert(\"Select RoomType and Adult \");\r\n } else if (rateGrandTotal.RoomNights == undefined || rateGrandTotal.RoomNights == 0) {\r\n alert(\"Select Block \");\r\n } else if (IsPageValid) {\r\n reservationBlockRateCodeDetail.ReservationBlockRoomRateDetails.forEach((item) => {\r\n let tempObj1 = roomAvailability.filter((element) => element.Date == item.Date);\r\n\r\n if (tempObj1 != undefined && tempObj1.length > 0) {\r\n let tempObj = roomAvailability\r\n .filter((element) => element.Date == item.Date)[0]\r\n .RoomTypeWiseDetail.filter((element) => element.RoomTypeSerNo == item.RoomTypeSerNo)[0];\r\n item.NoOfRooms =\r\n item.Adult == 1\r\n ? tempObj.Adult1\r\n : item.Adult == 2\r\n ? tempObj.Adult2\r\n : item.Adult == 3\r\n ? tempObj.Adult3\r\n : item.Adult == 4\r\n ? tempObj.Adult4\r\n : item.Adult == 5\r\n ? tempObj.Adult5\r\n : tempObj.Adult6;\r\n\r\n console.log(item.NoOfRooms);\r\n }\r\n });\r\n\r\n reservationBlockRateCodeDetail.ReservationBlockPackageRateDetails.forEach((item) => {\r\n let tempObj = reservationBlockRateCodeDetail.ReservationBlockRoomRateDetails.filter(\r\n (element) =>\r\n element.Date == item.Date && element.RoomTypeSerNo == item.RoomTypeSerNo && element.Adult == item.Adult\r\n )[0];\r\n item.NoOfRooms = tempObj.NoOfRooms;\r\n });\r\n reservationBlockRateCodeDetail.ReservationBlockTaxDetails.forEach((item) => {\r\n let tempObj = reservationBlockRateCodeDetail.ReservationBlockRoomRateDetails.filter(\r\n (element) =>\r\n element.Date == item.Date && element.RoomTypeSerNo == item.RoomTypeSerNo && element.Adult == item.Adult\r\n )[0];\r\n item.NoOfRooms = tempObj.NoOfRooms;\r\n });\r\n\r\n reservationBlockRateCodeDetail.ReservationBlockExtraBedRateDetails.forEach((item) => {\r\n let tempObj1 = roomAvailability.filter((element) => element.Date == item.Date);\r\n\r\n if (tempObj1 != undefined && tempObj1.length > 0) {\r\n let tempObj = roomAvailability.filter((element) => element.Date == item.Date)[0];\r\n item.NoOfExtraBed = tempObj.ExtraBedRoom;\r\n }\r\n });\r\n\r\n reservationBlockRateCodeDetail.ReservationBlockExtraBedTaxDetails.forEach((item) => {\r\n let tempObj1 = roomAvailability.filter((element) => element.Date == item.Date);\r\n\r\n if (tempObj1 != undefined && tempObj1.length > 0) {\r\n let tempObj = roomAvailability.filter((element) => element.Date == item.Date)[0];\r\n item.NoOfExtraBed = tempObj.ExtraBedRoom;\r\n console.log(tempObj.ExtraBedRoom);\r\n }\r\n });\r\n\r\n let reservationBlockObj = {\r\n ClientSerNo: newBlockReservation.ClientSerNo,\r\n PropertySerNo: newBlockReservation.PropertySerNo,\r\n BlockSerNo: location.state?.BlockSerNo != undefined ? location.state.BlockSerNo : 0,\r\n BlockName: newBlockReservation.BlockName,\r\n BlockCode: newBlockReservation.BlockCode,\r\n ArrivalDate: newBlockReservation.ArrivalDate,\r\n DepartureDate: newBlockReservation.DepartureDate,\r\n Nights: parseInt(newBlockReservation.Nights),\r\n CutOffDate: newBlockReservation.CutOffDate,\r\n CutOffDays: parseInt(newBlockReservation.CutOffDays),\r\n IsElastic: newBlockReservation.IsElastic,\r\n GuestProfileSerNo: newBlockReservation.GuestProfileSerNo,\r\n CompanyProfileSerNo: newBlockReservation.CompanyProfileSerNo,\r\n AgentProfileSerNo: newBlockReservation.AgentProfileSerNo,\r\n RateSerNo: newBlockReservation.RateSerNo,\r\n ReservationTypeSerNo: newBlockReservation.ReservationTypeSerNo,\r\n IsTaxInclusive: newBlockReservation.IsInclusive,\r\n MarketSerNo: newBlockReservation.MarketSerNo,\r\n SourceProfileSerNo: newBlockReservation.SourceProfileSerNo,\r\n BillingInstructionRemarks: newBlockReservation.BillingInstructionRemarks,\r\n UserID: newBlockReservation.UserID,\r\n ReservationBlockRateDetail: reservationBlockRateCodeDetail,\r\n Mode: location.state?.BlockSerNo != undefined ? \"Edit\" : \"Add\",\r\n RoomTypeSerNo: reservationBlockRateCodeDetail.ReservationBlockRoomRateDetails[0].RoomTypeSerNo,\r\n Adult: reservationBlockRateCodeDetail.ReservationBlockRoomRateDetails[0].Adult,\r\n NoOfRooms: reservationBlockRateCodeDetail.ReservationBlockRoomRateDetails.reduce(\r\n (a, v) => (a = a + v.NoOfRooms),\r\n 0\r\n ),\r\n IsPrintRate: newBlockReservation.IsPrintRate,\r\n IsDiscloseRate: newBlockReservation.IsDiscloseRate,\r\n };\r\n // if (location.state?.blockSerNo != undefined) {\r\n // EditReservationBlock(reservationBlockObj).then((d) => {\r\n // if (d.data.Code == \"200\") {\r\n // alert(d.data.Message);\r\n // history.push({ pathname: \"/BlockAtGlance\" });\r\n\r\n // }\r\n // }).catch((err)=>{})\r\n\r\n // }\r\n // else\r\n // {\r\n AddEditReservationBlock(reservationBlockObj)\r\n .then((d) => {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n if (btnID == \"btnSaveNCon\") {\r\n history.push({\r\n pathname: \"/BlockAtGlance\",\r\n state: {\r\n propertySerNo: parseInt(currUser.PropertySerNo),\r\n BlockSerNo: parseInt(d.data.ReturnValue),\r\n },\r\n });\r\n } else {\r\n history.push(\"/ReservationBlockListPage\");\r\n }\r\n }\r\n })\r\n .catch((err) => {});\r\n //}\r\n } else {\r\n alert(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n };\r\n\r\n const isValidData = () => {\r\n let isValid = true;\r\n // if (newBlockReservation.BlockCode == \"\") {\r\n // isValid = false;\r\n // setBlockValidationObj((prev) => ({\r\n // ...prev,\r\n // BlockCode: \"Enter Block Code\",\r\n // }));\r\n // }\r\n if (newBlockReservation.BlockName == \"\") {\r\n isValid = false;\r\n setBlockValidationObj((prev) => ({\r\n ...prev,\r\n BlockName: \"Enter Block Name\",\r\n }));\r\n }\r\n // if (Moment(new Date(newBlockReservation.ArrivalDate)).format(\"DD-MMM-yyyy\") < Moment(new Date()).format(\"DD-MMM-yyyy\") ) {\r\n // isValid = false;\r\n // setBlockValidationObj(prev => ({ ...prev, ArrivalDate: \"Date should be greater or equal to business date\" }));\r\n // console.log(Moment(new Date(newBlockReservation.ArrivalDate)).format(\"DD-MMM-yyyy\"), Moment(new Date()).format(\"DD-MMM-yyyy\") )\r\n\r\n // }\r\n if (new Date(newBlockReservation.ArrivalDate + \"23:59\") < new Date()) {\r\n isValid = false;\r\n setBlockValidationObj((prev) => ({\r\n ...prev,\r\n ArrivalDate: \"Date should be greater or equal to business date\",\r\n }));\r\n console.log(\r\n Moment(new Date(newBlockReservation.ArrivalDate)).format(\"DD-MMM-yyyy\"),\r\n Moment(new Date()).format(\"DD-MMM-yyyy\")\r\n );\r\n }\r\n if (new Date(newBlockReservation.ArrivalDate) > new Date(newBlockReservation.DepartureDate)) {\r\n isValid = false;\r\n setBlockValidationObj((prev) => ({\r\n ...prev,\r\n ArrivalDate: \"Date should be less than or equal to departure date\",\r\n }));\r\n }\r\n if (new Date(newBlockReservation.DepartureDate) < new Date(newBlockReservation.ArrivalDate)) {\r\n isValid = false;\r\n setBlockValidationObj((prev) => ({\r\n ...prev,\r\n DepartureDate: \"Date can not be less than arrival date\",\r\n }));\r\n }\r\n if (\r\n newBlockReservation.CutOffDate != \"\" &&\r\n new Date(newBlockReservation.CutOffDate) >= new Date(newBlockReservation.ArrivalDate)\r\n ) {\r\n isValid = false;\r\n setBlockValidationObj((prev) => ({\r\n ...prev,\r\n CutOffDate: \"Date should be less than arrival date\",\r\n }));\r\n }\r\n if (newBlockReservation.GuestProfileSerNo == undefined || newBlockReservation.GuestProfileSerNo == 0) {\r\n isValid = false;\r\n setBlockValidationObj((prev) => ({\r\n ...prev,\r\n GuestProfileSerNo: \"Select Block Cordinator\",\r\n }));\r\n }\r\n // if (newBlockReservation.CompanyProfileSerNo == undefined || newBlockReservation.CompanyProfileSerNo == 0 ) {\r\n // isValid = false;\r\n // setBlockValidationObj(prev => ({ ...prev, CompanyProfileSerNo: \"Select Company\" }));\r\n\r\n // }\r\n // if (newBlockReservation.AgentProfileSerNo == undefined || newBlockReservation.AgentProfileSerNo == 0 ) {\r\n // isValid = false;\r\n // setBlockValidationObj(prev => ({ ...prev, AgentProfileSerNo: \"Select Agent\" }));\r\n\r\n // }\r\n if (newBlockReservation.RateSerNo == undefined || newBlockReservation.RateSerNo == 0) {\r\n isValid = false;\r\n setBlockValidationObj((prev) => ({ ...prev, RateSerNo: \"Select Rate\" }));\r\n }\r\n if (newBlockReservation.UserID == undefined || newBlockReservation.UserID == \"\") {\r\n isValid = false;\r\n setBlockValidationObj((prev) => ({\r\n ...prev,\r\n UserID: \"Select Block Owner\",\r\n }));\r\n }\r\n if (newBlockReservation.ReservationTypeSerNo == undefined || newBlockReservation.ReservationTypeSerNo == 0) {\r\n isValid = false;\r\n setBlockValidationObj((prev) => ({\r\n ...prev,\r\n ReservationTypeSerNo: \"Select ReservationType\",\r\n }));\r\n }\r\n if (newBlockReservation.MarketSerNo == undefined || newBlockReservation.MarketSerNo == 0) {\r\n isValid = false;\r\n setBlockValidationObj((prev) => ({\r\n ...prev,\r\n MarketSerNo: \"Select Market\",\r\n }));\r\n }\r\n return isValid;\r\n };\r\n const handleOnNightsChanged = async (val, e) => {\r\n let oldNight = newBlockReservation.Nights;\r\n if (!isNaN(+val) && parseInt(val) >= 0) {\r\n console.log(!isNaN(+val), parseInt(val));\r\n setBlockValidationObj((prev) => ({ ...prev, Nights: \"\" }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n Nights: Number(val),\r\n DepartureDate: Moment(newBlockReservation.ArrivalDate).add(val, \"day\").format(\"DD-MMM-YYYY\"),\r\n }));\r\n if (selectedAdultSerNo != \"\") {\r\n GetReservationAvaibility(\r\n Moment(newBlockReservation.ArrivalDate).format(\"DD-MMM-YYYY\"),\r\n Moment(newBlockReservation.ArrivalDate).add(val, \"day\").format(\"DD-MMM-YYYY\")\r\n );\r\n }\r\n } else {\r\n e.preventDefault();\r\n console.log(oldNight);\r\n setBlockValidationObj((prev) => ({ ...prev, Nights: \"Invalid input\" }));\r\n setTimeout(() => {\r\n setNewBlockReservation((prev) => ({ ...prev, Nights: oldNight }));\r\n }, 100);\r\n }\r\n };\r\n const [gridSelectedItem, SetgridSelectedItem] = useState([]);\r\n const [temp, settemp] = useState(false);\r\n\r\n const columHeaderRateSummary = [\r\n { key: \"Room Type\", value: \"type\", type: \"txt\", sorting: \"N\" },\r\n {\r\n key: \"Night\",\r\n value: \"night\",\r\n type: \"txt\",\r\n sorting: \"Y\",\r\n align: \"center\",\r\n },\r\n {\r\n key: \"Avg Rate\",\r\n value: \"avg\",\r\n type: \"txt\",\r\n sorting: \"Y\",\r\n align: \"right\",\r\n },\r\n { key: \"Taxes\", value: \"taxes\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n {\r\n key: \"Plan Value\",\r\n value: \"Value\",\r\n type: \"txt\",\r\n sorting: \"Y\",\r\n align: \"right\",\r\n },\r\n {\r\n key: \"Total Value\",\r\n value: \"TotalValue\",\r\n type: \"txt\",\r\n sorting: \"Y\",\r\n align: \"right\",\r\n },\r\n ];\r\n const columHeaderRateDesc = [\r\n { key: \"Description\", value: \"Description\", type: \"txt\", sorting: \"N\" },\r\n {\r\n key: \"Blocked\",\r\n value: \"Blocked\",\r\n type: \"txt\",\r\n sorting: \"Y\",\r\n align: \"right\",\r\n },\r\n {\r\n key: \"Picked-Up\",\r\n value: \"PickedUp\",\r\n type: \"txt\",\r\n sorting: \"Y\",\r\n align: \"right\",\r\n },\r\n {\r\n key: \"Balance\",\r\n value: \"Balance\",\r\n type: \"txt\",\r\n sorting: \"Y\",\r\n align: \"right\",\r\n },\r\n ];\r\n\r\n useEffect(() => {\r\n // console.log(\"selected data\", gridSelectedItem);\r\n // console.log(\"selected length\", gridSelectedItem.length);\r\n }, [gridSelectedItem, temp]);\r\n\r\n //grid header\r\n\r\n const [isActive, setActive] = useState(false);\r\n\r\n const setSelectedItem = (items) => {\r\n SetgridSelectedItem(items);\r\n settemp(!temp);\r\n };\r\n const optBtnData = [\r\n { key: \"Edit\", value: \"edt\" },\r\n { key: \"Delete\", value: \"del\" },\r\n ];\r\n\r\n //Grid Solution\r\n const divRef = useRef();\r\n const tableRef = useRef();\r\n const lowerTableRef = useRef();\r\n const [gridSolution, setGridSolution] = useState(false);\r\n const [lowerGridSolution, setLowerGridSolution] = useState(false);\r\n const [thWidth, setThWidth] = useState(0);\r\n const [tableWidth, setTableWidth] = useState(0);\r\n const [lowerTableWidth, setLowerTableWidth] = useState(0);\r\n const [colspanValue, setColspanValue] = useState(0);\r\n\r\n useEffect(() => {\r\n if (divRef.current !== undefined) {\r\n setThWidth(divRef.current.clientWidth * 0.7);\r\n if (tableRef.current.clientWidth > divRef.current.clientWidth) {\r\n setGridSolution(false);\r\n } else {\r\n setGridSolution(true);\r\n }\r\n if (lowerTableRef.current.clientWidth > divRef.current.clientWidth) {\r\n setLowerGridSolution(false);\r\n } else {\r\n setLowerGridSolution(true);\r\n }\r\n }\r\n }, [tableWidth, lowerTableWidth]);\r\n\r\n //end Grid Solution\r\n /* Grid Table End */\r\n\r\n const LastUpdateTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
      \r\n
    • By Rohan Shah
    • \r\n
    • Date: 25th Sept.
    • \r\n
    • Time: 15:45
    • \r\n
    • PC: 192.168.600.789
    • \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    New Block Reservation

    \r\n
    \r\n
    \r\n
    \r\n {/* {\r\n settabcollection(data);\r\n settabId(\"tab1\");\r\n }}\r\n handleTabClick={(tabid) => {\r\n settabId(tabid);\r\n }}\r\n > */}\r\n Tabs\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setNewBlockReservation((prev) => ({ ...prev, BlockName: v }));\r\n }}>\r\n Block Name\r\n \r\n {/* {\r\n setNewBlockReservation((prev) => ({ ...prev, BlockCode: v }));\r\n }}\r\n >\r\n Block Code\r\n */}\r\n\r\n
    \r\n
    \r\n {\r\n //console.log(v);\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n ArrivalDate: Moment(v).format(\"DD-MMM-YYYY\"),\r\n }));\r\n }}\r\n placeholder=\"Minimum Arrival\"\r\n disabled={false}\r\n calendarStartDay={1}\r\n label=\"Minimum Arrival\"\r\n selected={newBlockReservation.ArrivalDate}\r\n dateFormat=\"E dd MMM,YYY\"\r\n customError={blockValidationObj.ArrivalDate}>\r\n
    \r\n
    \r\n {\r\n handleOnNightsChanged(v, e);\r\n }}>\r\n Night\r\n \r\n {parseInt(newBlockReservation.Nights) == 0 ? \"DayUse\" : \"\"}\r\n
    \r\n
    \r\n\r\n {\r\n //console.log(v);\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n DepartureDate: Moment(v).format(\"DD-MMM-YYYY\"),\r\n }));\r\n }}\r\n placeholder=\"Maximum Departure \"\r\n label=\"Maximum Departure\"\r\n disabled={false}\r\n calendarStartDay={1}\r\n selected={newBlockReservation.DepartureDate}\r\n dateFormat=\"E dd MMM,YYY\"\r\n customError={blockValidationObj.DepartureDate}\r\n tabindex=\"-1\">\r\n\r\n
    \r\n
    \r\n {\r\n console.log(v);\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n CutOffDate: Moment(v).format(\"DD-MMM-YYYY\"),\r\n CutOffDays: Moment.duration(Moment(newBlockReservation.ArrivalDate).diff(Moment(v))).asDays(),\r\n }));\r\n }}\r\n placeholder=\"CutOff Date\"\r\n disabled={false}\r\n calendarStartDay={1}\r\n label=\"CutOff Date\"\r\n selected={newBlockReservation.CutOffDate}\r\n dateFormat=\"E dd MMM,YYY\"\r\n customError={blockValidationObj.CutOffDate}\r\n tabindex=\"-1\">\r\n
    \r\n
    \r\n {\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n CutOffDays: parseInt(v),\r\n CutOffDate: Moment(newBlockReservation.ArrivalDate)\r\n .add(v * -1, \"day\")\r\n .format(\"DD-MMM-YYYY\"),\r\n }));\r\n }}>\r\n CutOff Days\r\n \r\n
    \r\n
    \r\n {\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n IsElastic: ischecked,\r\n }));\r\n }}>\r\n Elastic (Free of shoulder dates)\r\n \r\n\r\n
    \r\n {\r\n setSelectedUser(item.key);\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n UserID: item.key,\r\n }));\r\n }}\r\n label=\"Block Owner\"\r\n selectedSerNo={newBlockReservation.UserID}\r\n customError={blockValidationObj.UserID}>\r\n
    \r\n\r\n
    \r\n setShowGuestModal(!showGuestModal)}>\r\n Block Co-ordinator\r\n \r\n setShowGuestModal(!showGuestModal)}>\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n if (\r\n newBlockReservation.AgentProfileSerNo == undefined ||\r\n newBlockReservation.AgentProfileSerNo == 0\r\n ) {\r\n setShowCompanyModal(!showCompanyModal);\r\n }\r\n }}>\r\n Company\r\n \r\n {\r\n setSelectedCompany({});\r\n setNewBlockReservation((prev) => ({ ...prev, Company: \"\" }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n CompanyProfileSerNo: 0,\r\n }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n CompanyHasRateMapping: false,\r\n }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n CompanyRateGroupSerNo: 0,\r\n }));\r\n calculateRateAndPackage(\r\n currUser.ClientSerNo,\r\n currUser.PropertySerNo,\r\n newBlockReservation.RateSerNo,\r\n selectedRoomTypeSerNo,\r\n selectedAdultSerNo,\r\n newBlockReservation.ArrivalDate,\r\n newBlockReservation.DepartureDate,\r\n 0,\r\n newBlockReservation.AgentProfileSerNo,\r\n newBlockReservation.IsInclusive,\r\n roomExtraBedRate\r\n );\r\n }}>\r\n {newBlockReservation.CompanyProfileSerNo != 0 ? : null}{\" \"}\r\n \r\n
    \r\n
    \r\n {\r\n console.log(newBlockReservation.CompanyProfileSerNo);\r\n if (\r\n newBlockReservation.CompanyProfileSerNo == undefined ||\r\n newBlockReservation.CompanyProfileSerNo == 0\r\n ) {\r\n setShowAgentModal(!showAgentModal);\r\n }\r\n }}>\r\n Travel Agent\r\n \r\n {\r\n setSelectedAgent({});\r\n setNewBlockReservation((prev) => ({ ...prev, Agent: \"\" }));\r\n setShowAgentModal(false);\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n AgentProfileSerNo: 0,\r\n }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n AgentRateGroupSerNo: 0,\r\n }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n AgentHasRateMapping: false,\r\n }));\r\n calculateRateAndPackage(\r\n currUser.ClientSerNo,\r\n currUser.PropertySerNo,\r\n newBlockReservation.RateSerNo,\r\n selectedRoomTypeSerNo,\r\n selectedAdultSerNo,\r\n newBlockReservation.ArrivalDate,\r\n newBlockReservation.DepartureDate,\r\n newBlockReservation.CompanyProfileSerNo,\r\n 0,\r\n newBlockReservation.IsInclusive,\r\n roomExtraBedRate\r\n );\r\n }}>\r\n {newBlockReservation.AgentProfileSerNo != 0 ? : null}\r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n let str = \"\";\r\n let prevStr = selectedRoomTypeSerNo;\r\n let itemlist = [];\r\n if (item.length > 0) {\r\n cmbRoomTypeList.forEach((ele) => {\r\n if (item.filter((d) => d == ele.key)[0] != undefined) {\r\n console.log(ele);\r\n str = str + ele.key + \",\";\r\n itemlist.push(ele.key);\r\n }\r\n });\r\n // item.map((d) => {\r\n // str =\r\n // str +\r\n // cmbRoomTypeList.filter((ele) => ele.key == d)[0].key +\r\n // \",\";\r\n // });\r\n setSelectedRoomType(itemlist);\r\n setSelectedRoomTypeSerNo(str);\r\n } else {\r\n setSelectedRoomTypeSerNo(\"\");\r\n }\r\n }}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n let str = \"\";\r\n let itemlist = [];\r\n if (item.length > 0) {\r\n cmbAdult.forEach((ele) => {\r\n if (item.filter((d) => d == ele.key)[0] != undefined) {\r\n console.log(ele);\r\n str = str + ele.key + \",\";\r\n itemlist.push(ele.key);\r\n }\r\n });\r\n setSelectedAdult(itemlist);\r\n setSelectedAdultSerNo(str);\r\n // setSelectedAdult(item);\r\n // console.log(\"item Adult\", item);\r\n\r\n // item.map(\r\n // (d) => (str = str + d + \",\")\r\n // );\r\n // setSelectedAdultSerNo(str);\r\n } else {\r\n setSelectedAdultSerNo(\"\");\r\n }\r\n }}>\r\n
    \r\n
    \r\n
    \r\n {\r\n setTimeout(() => {\r\n setTableWidth(tableRef.current.clientWidth);\r\n setLowerTableWidth(lowerTableRef.current.clientWidth);\r\n }, 100);\r\n setColspanValue(`${selectedAdult?.length + 1}`);\r\n if (selectedAdultSerNo != \"\" && selectedRoomTypeSerNo != \"\") {\r\n GetReservationAvaibility(newBlockReservation.ArrivalDate, newBlockReservation.DepartureDate);\r\n } else {\r\n let tempobj = [];\r\n setRoomAvailability([...tempobj]);\r\n setRoomAdultWiseRate([...tempobj]);\r\n setRoomTypeWiseRate([...tempobj]);\r\n }\r\n }}>\r\n Apply\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setShowRateSelectionModal(!showRateSelectionModal);\r\n }}>\r\n Rate Code\r\n \r\n {\r\n setShowRateSelectionModal(!showRateSelectionModal);\r\n }}>\r\n \r\n \r\n
    \r\n
    \r\n setShowReservationTypeModal(!showReservationTypeModal)}>\r\n Reservation Type\r\n \r\n setShowReservationTypeModal(!showReservationTypeModal)}>\r\n \r\n \r\n
    \r\n\r\n
    \r\n
    Inclusions
    \r\n
      \r\n {inclusionDetail.map((element, i) =>\r\n i < 4 ? (\r\n
    • \r\n \r\n {element}\r\n
    • \r\n ) : null\r\n )}\r\n
    \r\n \r\n More\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {/*
    \r\n {\r\n console.log(\"room type \", item);\r\n setselectedvalue(item.key);\r\n }}\r\n label=\"\"\r\n selectedSerNo={\"Option 1\"}\r\n >
    */}\r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {roomAvailability[0] != undefined\r\n ? roomAvailability[0].RoomTypeWiseDetail.map((element, index) => (\r\n \r\n ))\r\n : null}\r\n {gridSolution ? : null}\r\n \r\n \r\n \r\n \r\n {roomAvailability[0] != undefined\r\n ? roomAvailability[0].RoomTypeWiseDetail.map((element, index) => (\r\n <>\r\n \r\n <>\r\n {element.RoomTypeWiseAdultDetail != undefined\r\n ? element.RoomTypeWiseAdultDetail.map((item) => (\r\n \r\n ))\r\n : null}\r\n \r\n \r\n ))\r\n : null}\r\n {gridSolution ? : null}\r\n \r\n \r\n \r\n {roomAvailability[0] != undefined\r\n ? roomAvailability.map((item) => (\r\n \r\n \r\n \r\n <>\r\n {item.RoomTypeWiseDetail.map((element) => (\r\n <>\r\n \r\n {element.RoomTypeWiseAdultDetail.map((obj) =>\r\n obj.Title == \"Sgl\" ? (\r\n \r\n ) : obj.Title == \"Dbl\" ? (\r\n \r\n ) : obj.Title == \"Trp\" ? (\r\n \r\n ) : obj.Title == \"4A\" ? (\r\n \r\n ) : obj.Title == \"5A\" ? (\r\n \r\n ) : obj.Title == \"6A\" ? (\r\n \r\n ) : null\r\n )}\r\n \r\n ))}\r\n \r\n {gridSolution ? : null}\r\n \r\n ))\r\n : null}\r\n \r\n
    \r\n {element.RoomTypeName}\r\n
    DateE-BedAvl\r\n {item.Title}\r\n
    {item.Date}\r\n {\" \"}\r\n {/* change1*/}\r\n {\r\n setRoomNights(item.Date, 0, 0, parseInt(v), true, e);\r\n }}>\r\n {element.RoomAvailable}\r\n {\r\n setRoomNights(\r\n item.Date,\r\n element.RoomTypeSerNo,\r\n 1,\r\n parseInt(v),\r\n false,\r\n e\r\n );\r\n }}>\r\n \r\n {\r\n setRoomNights(item.Date, element.RoomTypeSerNo, 2, parseInt(v), false);\r\n }}>\r\n \r\n {\r\n setRoomNights(item.Date, element.RoomTypeSerNo, 3, parseInt(v), false);\r\n }}>\r\n \r\n {\r\n setRoomNights(item.Date, element.RoomTypeSerNo, 4, parseInt(v), false);\r\n }}>\r\n \r\n {\r\n setRoomNights(item.Date, element.RoomTypeSerNo, 5, parseInt(v), false);\r\n }}>\r\n \r\n {\r\n setRoomNights(item.Date, element.RoomTypeSerNo, 6, parseInt(v), false);\r\n }}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Rate \r\n
    \r\n
    \r\n { \r\n setShowRateWithTax(ischecked);\r\n let tempRateSummary = roomTypeWiseRate;\r\n setRoomTypeWiseRate([...tempRateSummary]);\r\n console.log(tempRateSummary);\r\n }}>\r\n Show rate with tax\r\n \r\n
    \r\n
    \r\n \r\n Inclusive of Taxes\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {roomTypeWiseRate[0] != undefined\r\n ? roomTypeWiseRate[0].RoomTypeWiseRateDetail.map((element) => (\r\n \r\n ))\r\n : null}\r\n {lowerGridSolution ? : null}\r\n \r\n \r\n \r\n {roomTypeWiseRate[0] != undefined\r\n ? roomTypeWiseRate.map((element) => (\r\n \r\n \r\n \r\n <>\r\n {element.RoomTypeWiseRateDetail.map((item) => (\r\n \r\n ))}\r\n {lowerGridSolution ? : null}\r\n \r\n \r\n ))\r\n : null}\r\n \r\n
    E-Bed{element.RoomTypeName}
    {element.Name}\r\n {\r\n console.log(v);\r\n setRoomExtraBedRate(parseFloat(v));\r\n //setRoomExtraBedRate((prev) => ({ ...prev, parseFloat(v) }));\r\n }}>\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnData}\r\n optClick={(v, d) => {\r\n console.log(v, d);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}>\r\n
    \r\n
    \r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnData}\r\n optClick={(v, d) => {\r\n console.log(v, d);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedSource(item.key);\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n SourceProfileSerNo: parseInt(item.key),\r\n }));\r\n }}\r\n label=\"Source*\"\r\n selectedSerNo={newBlockReservation.SourceProfileSerNo}>\r\n
    \r\n
    \r\n {\r\n setSelectedMarket(item.key);\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n MarketSerNo: parseInt(item.key),\r\n }));\r\n }}>\r\n
    \r\n
    \r\n
    \r\n Billing Instruction\r\n {\r\n setShowBillingInstructionModal(!showBillingInstructionModal);\r\n }}>\r\n
    \r\n
      \r\n
    • {newBlockReservation.BillingInstructionRemarks}
    • \r\n
    \r\n
    \r\n
    \r\n
    {newBlockReservation.RateCodeName}
    \r\n
    \r\n \r\n {rateGrandTotal.RoomNights} Rooms Night @ {rateGrandTotal.AvgRate} Avg.\r\n \r\n

    Inclusive of all taxes

    \r\n
    \r\n
    \r\n \r\n {rateGrandTotal.TotalRate}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {\r\n history.push(\"/ReservationBlockListPage\");\r\n }}>\r\n Cancel\r\n \r\n {\r\n handleSaveOnClick(\"btnSave\");\r\n }}>\r\n Save\r\n \r\n {\r\n handleSaveOnClick(\"btnSaveNCon\");\r\n }}>\r\n Save & Continue\r\n \r\n
    \r\n
    \r\n
    \r\n {showGuestModal ? (\r\n setShowGuestModal(false)}\r\n OnSelect={async (v) => {\r\n console.log(\"selected guest \", v);\r\n setSelectedGuest(v);\r\n setShowGuestModal(false);\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n GuestProfileSerNo: v.ProfileSerNo,\r\n }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n GuestName: v.GuestName,\r\n }));\r\n }}>\r\n ) : null}\r\n {showAgentModal ? (\r\n {\r\n setShowAgentModal(false);\r\n }}\r\n OnSelect={(v) => {\r\n console.log(v.ProfileSerNo);\r\n if (v.ProfileSerNo == undefined) {\r\n setSelectedAgent((prev) => ({ ...prev, CompanyName: \"\" }));\r\n setNewBlockReservation((prev) => ({ ...prev, Agent: \"\" }));\r\n setShowAgentModal(false);\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n AgentProfileSerNo: 0,\r\n }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n AgentRateGroupSerNo: 0,\r\n }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n AgentHasRateMapping: false,\r\n }));\r\n calculateRateAndPackage(\r\n currUser.ClientSerNo,\r\n currUser.PropertySerNo,\r\n newBlockReservation.RateSerNo,\r\n selectedRoomTypeSerNo,\r\n selectedAdultSerNo,\r\n newBlockReservation.ArrivalDate,\r\n newBlockReservation.DepartureDate,\r\n newBlockReservation.CompanyProfileSerNo,\r\n 0,\r\n newBlockReservation.IsInclusive,\r\n roomExtraBedRate\r\n );\r\n } else {\r\n setSelectedAgent(v);\r\n setShowAgentModal(false);\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n Agent: v.CompanyName,\r\n }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n AgentProfileSerNo: v.ProfileSerNo,\r\n }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n AgentRateGroupSerNo: v.RateGroupSerNo,\r\n }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n AgentHasRateMapping: v.HasRateMapping,\r\n }));\r\n calculateRateAndPackage(\r\n currUser.ClientSerNo,\r\n currUser.PropertySerNo,\r\n newBlockReservation.RateSerNo,\r\n selectedRoomTypeSerNo,\r\n selectedAdultSerNo,\r\n newBlockReservation.ArrivalDate,\r\n newBlockReservation.DepartureDate,\r\n newBlockReservation.CompanyProfileSerNo,\r\n v.ProfileSerNo,\r\n newBlockReservation.IsInclusive,\r\n roomExtraBedRate\r\n );\r\n }\r\n }}>\r\n ) : null}\r\n {showCompanyModal ? (\r\n {\r\n setShowCompanyModal(false);\r\n }}\r\n OnSelect={(v) => {\r\n console.log(\"company \", v);\r\n if (v.ProfileSerNo == undefined) {\r\n setSelectedCompany((prev) => ({ ...prev, CompanyName: \"\" }));\r\n setNewBlockReservation((prev) => ({ ...prev, Company: \"\" }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n CompanyProfileSerNo: 0,\r\n }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n CompanyHasRateMapping: false,\r\n }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n CompanyRateGroupSerNo: 0,\r\n }));\r\n calculateRateAndPackage(\r\n currUser.ClientSerNo,\r\n currUser.PropertySerNo,\r\n newBlockReservation.RateSerNo,\r\n selectedRoomTypeSerNo,\r\n selectedAdultSerNo,\r\n newBlockReservation.ArrivalDate,\r\n newBlockReservation.DepartureDate,\r\n 0,\r\n newBlockReservation.AgentProfileSerNo,\r\n newBlockReservation.IsInclusive,\r\n roomExtraBedRate\r\n );\r\n } else {\r\n setSelectedCompany(v);\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n Company: v.CompanyName,\r\n }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n CompanyProfileSerNo: v.ProfileSerNo,\r\n }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n CompanyHasRateMapping: v.HasRateMapping,\r\n }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n CompanyRateGroupSerNo: v.RateGroupSerNo,\r\n }));\r\n calculateRateAndPackage(\r\n currUser.ClientSerNo,\r\n currUser.PropertySerNo,\r\n newBlockReservation.RateSerNo,\r\n selectedRoomTypeSerNo,\r\n selectedAdultSerNo,\r\n newBlockReservation.ArrivalDate,\r\n newBlockReservation.DepartureDate,\r\n v.ProfileSerNo,\r\n newBlockReservation.AgentProfileSerNo,\r\n newBlockReservation.IsInclusive,\r\n roomExtraBedRate\r\n );\r\n }\r\n setShowCompanyModal(false);\r\n }}>\r\n ) : null}\r\n {showBillingInstructionModal ? (\r\n setShowBillingInstructionModal(!showBillingInstructionModal)}\r\n handleOnSelection={(v) => {\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n BillingInstructionRemarks: v,\r\n }));\r\n setShowBillingInstructionModal(!showBillingInstructionModal);\r\n }}>\r\n ) : null}\r\n\r\n {showReservationTypeModal ? (\r\n setShowReservationTypeModal(false)}\r\n handleOnTypeSelection={(v) => {\r\n setSelectedReservationType(v);\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n ReservationType: v.ReservationType,\r\n }));\r\n if (!isNaN(+v.ReservationTypeSerNo))\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n ReservationTypeSerNo: parseInt(v.ReservationTypeSerNo),\r\n }));\r\n setShowReservationTypeModal(false);\r\n }}>\r\n ) : null}\r\n {showRateSelectionModal ? (\r\n setShowRateSelectionModal(false)}\r\n handleOnBlockReservationRateSelect={(v) => {\r\n console.log(v);\r\n setShowRateSelectionModal(false);\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n RateSerNo: v.RateSerNo,\r\n }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n RateCodeName: v.RateCodeName,\r\n }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n IsInclusive: v.IsInclusive,\r\n }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n IsComplimentary: v.IsComplimentary,\r\n }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n IsHouseUse: v.IsHouseUse,\r\n }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n IsDiscloseRate: v.IsDiscloseRate,\r\n }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n IsPrintRate: v.IsPrintRate,\r\n }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n Discountable: v.Discountable,\r\n }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n IsRateMappedToProfile: v.IsRateMappedToProfile,\r\n }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n ReservationType: v.ReservationType,\r\n }));\r\n setNewBlockReservation((prev) => ({\r\n ...prev,\r\n ReservationTypeSerNo: v.ReservationTypeSerNo,\r\n }));\r\n\r\n calculateRateAndPackage(\r\n currUser.ClientSerNo,\r\n currUser.PropertySerNo,\r\n v.RateSerNo,\r\n selectedRoomTypeSerNo,\r\n selectedAdultSerNo,\r\n newBlockReservation.ArrivalDate,\r\n newBlockReservation.DepartureDate,\r\n newBlockReservation.CompanyProfileSerNo,\r\n newBlockReservation.AgentProfileSerNo,\r\n v.IsInclusive,\r\n roomExtraBedRate\r\n );\r\n }}>\r\n ) : null}\r\n
    \r\n );\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnFileUpload,\r\n InnFileUploadPreview,\r\n InnLoader,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnTooltip,\r\n InnButtonTypeWithDropdown,\r\n InnConfirmAlert,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport JPGIcon from \"../../../../assets/images/jpg-file-icon.svg\";\r\nimport AttachmentIcon from \"../../../../assets/images/attachment-icon.svg\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetBlockAttachment, AddEditBlockAttachment } from \"../../../../services/blockService\";\r\nimport { GetDocumentTypeMasters } from \"../../../../services/reservationService\";\r\n\r\nexport function IndiBlockAttachment(props) {\r\n const [showAttachmentPopup, setShowAttachmentPopup] = useState(false);\r\n console.log('props.para>>>>>', props.para);\r\n\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"BlockSerNo\": parseInt(props.para.BlockSerNo),\r\n \"AttachmentSerNo\": 0,\r\n \"Name\": \"\",\r\n \"DocumentTypeSerNo\": 0,\r\n \"Path\": \"\",\r\n \"Description\": \"\",\r\n \"PurgeAfterDays\": 0,\r\n \"EntryDatetime\": \"\",\r\n \"Mode\": \"View\"\r\n }\r\n\r\n const validationObj = {\r\n \"Name\": \"\",\r\n \"DocumentTypeSerNo\": \"\",\r\n \"Path\": \"\",\r\n \"PurgeAfterDays\": \"\"\r\n }\r\n\r\n const [isActive, setIsActive] = useState(false);\r\n const [blockAttachmentData, setBlockAttachmentData] = useState([]);\r\n const [blockAttachmentObj, setBlockAttachmentObj] = useState(defaultObj);\r\n const [blockAttachmentValidation, setBlockAttachmentValidation] = useState(validationObj);\r\n const [cmbDocumentType, setCmbDocumentType] = useState([]);\r\n const [selectedDocType, setSelectedDocType] = useState(0);\r\n const [selectedRow, setSelectedRow] = useState({});\r\n\r\n useEffect(() => {\r\n fillBlockAttachment();\r\n loadDdlOnClick();\r\n if (props.para != undefined) {\r\n setBlockAttachmentObj((prev) => ({ ...prev, BlockSerNo: parseInt(props.para.BlockSerNo) }))\r\n }\r\n }, [props.para.BlockSerNo]);\r\n\r\n console.log(\"selectedDocType>>>\", selectedDocType)\r\n\r\n const clearValidation = () => {\r\n setBlockAttachmentValidation(validationObj);\r\n }\r\n\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (blockAttachmentObj.Name == \"\" || blockAttachmentObj.Name == null) {\r\n isValid = false;\r\n setBlockAttachmentValidation(prev => ({ ...prev, Name: \"Enter the document name\" }));\r\n }\r\n if (blockAttachmentObj.DocumentTypeSerNo == 0) {\r\n isValid = false;\r\n setBlockAttachmentValidation(prev => ({ ...prev, DocumentTypeSerNo: \"Please Select Document Type\" }));\r\n }\r\n if (blockAttachmentObj.Path == \"\" || blockAttachmentObj.Path == null) {\r\n isValid = false;\r\n setBlockAttachmentValidation(prev => ({ ...prev, Path: \"Please Select file\" }))\r\n }\r\n if (blockAttachmentObj.PurgeAfterDays == 0) {\r\n isValid = false;\r\n setBlockAttachmentValidation(prev => ({ ...prev, Path: \"Enter the Purge Days\" }))\r\n }\r\n return isValid;\r\n }\r\n\r\n const fillBlockAttachment = () => {\r\n setIsActive(true);\r\n if (props.para.BlockSerNo != undefined) {\r\n GetBlockAttachment(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), props.para.BlockSerNo).then(d => {\r\n console.log(\"hey\", d.data);\r\n if (d.data.length != 0) {\r\n let temp = d.data;\r\n let firstObj = temp[0];\r\n setBlockAttachmentObj((prev) => ({\r\n ...prev,\r\n Name: firstObj.DocumentName,\r\n DocumentTypeSerNo: firstObj.DocumentTypeSerNo,\r\n PurgeAfterDays: firstObj.PurgeAfterDays,\r\n Description: firstObj.Description,\r\n Path: JPGIcon,\r\n Mode: \"View\"\r\n }));\r\n temp.forEach(ele => {\r\n ele[\"Action\"] = \"...\";\r\n ele[\"file\"] = JPGIcon\r\n let temp = cmbDocumentType.find(x => x.key === ele.DocumentTypeSerNo);\r\n if (temp) {\r\n ele[\"DocumentName\"] = temp.value;\r\n }\r\n });\r\n setBlockAttachmentData(temp);\r\n if (d.data.length > 0) {\r\n console.log(\"OnFirstLoad\", temp[0].Name);\r\n }\r\n }\r\n });\r\n }\r\n setIsActive(false);\r\n\r\n }\r\n console.log(\"blockAttachmentData >>\", blockAttachmentData);\r\n\r\n const handleOnSaveClick = () => {\r\n console.log('final obj', blockAttachmentObj);\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n setIsActive(true);\r\n AddEditBlockAttachment(blockAttachmentObj).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n fillBlockAttachment();\r\n } else {\r\n alert(\"Something went wrong\");\r\n }\r\n })\r\n setBlockAttachmentObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alert(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n\r\n const loadDdlOnClick = () => {\r\n GetDocumentTypeMasters(parseInt(currUser.ClientSerNo)).then(d => {\r\n let documentTypeList = [{ key: 0, value: \"Select\" }];\r\n d.data.map(element => {\r\n console.log(\"element >>\", element);\r\n documentTypeList.push({ key: parseInt(element.DocumentTypeSerNo), value: element.Name });\r\n })\r\n setCmbDocumentType(documentTypeList);\r\n console.log(\"document Type List >>\", documentTypeList);\r\n })\r\n }\r\n\r\n const handleOnAddClick = () => {\r\n setSelectedDocType(0);\r\n let obj = defaultObj;\r\n obj.Mode = \"Add\";\r\n setBlockAttachmentObj(obj);\r\n }\r\n\r\n const handleOnEditClick = () => {\r\n setShowAttachmentPopup(!showAttachmentPopup);\r\n setBlockAttachmentObj(defaultObj);\r\n }\r\n\r\n const hanldeOnCancelClick = () => {\r\n setSelectedDocType(0);\r\n clearValidation();\r\n let existingObj = blockAttachmentData.find(x => x.AttachmentSerNo == selectedRow.AttachmentSerNo);\r\n if (blockAttachmentObj.Mode == \"Add\") {\r\n if (existingObj != undefined) {\r\n existingObj.Mode = 'View'\r\n setSelectedDocType(existingObj.DocumentTypeSerNo);\r\n setBlockAttachmentObj(existingObj);\r\n } else {\r\n setBlockAttachmentObj(defaultObj)\r\n }\r\n }\r\n console.log(\"Existing Obj>>>>\", existingObj);\r\n if (blockAttachmentObj.Mode == \"Edit\") {\r\n if (existingObj != undefined) {\r\n existingObj.Mode = 'View'\r\n setSelectedDocType(existingObj.DocumentTypeSerNo);\r\n setBlockAttachmentObj(existingObj);\r\n } else {\r\n setBlockAttachmentObj(defaultObj);\r\n }\r\n }\r\n }\r\n\r\n // const Download = (arrayBuffer, type) => {\r\n // var blob = new Blob([arrayBuffer], { type: type });\r\n // var url = URL.createObjectURL(blob);\r\n // window.open(url);\r\n // }\r\n\r\n // const cmbDocumentType = [\r\n // { key: \"0\", value: \"Select\" },\r\n // { key: \"1\", value: \"Select 1\" },\r\n // { key: \"2\", value: \"Select 2\" },\r\n // { key: \"3\", value: \"Select 3\" },\r\n // { key: \"4\", value: \"Select 4\" },\r\n // ]\r\n\r\n const optBtnResAttachment = [\r\n { key: \"Edit\", value: \"Edit\" },\r\n { key: \"Preview\", value: \"Preview\" },\r\n { key: \"Print\", value: \"Print\" },\r\n { key: \"Email\", value: \"Email\" },\r\n { key: \"Download\", value: \"Download\" },\r\n { key: \"Delete\", value: \"Delete\" },\r\n ]\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n const [filterDataAttachment] = useState([\r\n {\r\n file: JPGIcon,\r\n docname: \"Passport front page\",\r\n desc: \"Front page of passport of primary guest \",\r\n purgeday: \"15 Days\",\r\n Action: \"...\",\r\n },\r\n {\r\n file: JPGIcon,\r\n docname: \"Passport back page\",\r\n desc: \"Back page of passport of primary guest \",\r\n purgeday: \"15 Days\",\r\n Action: \"...\",\r\n },\r\n ]);\r\n const PurgeDD = [\r\n { key: \"Purge after 10 days of check out\", value: \"con\" },\r\n { key: \"Purge after 3 days of check out\", value: \"wait\" },\r\n ];\r\n const columHeaderAttachment = [\r\n { key: \"File\", value: \"file\", type: \"img\", sorting: \"N\" },\r\n { key: \"Document Name\", value: \"Name\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Document Type\", value: \"DocumentName\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Description\", value: \"Description\", type: \"txt\", sorting: \"Y\" },\r\n {\r\n key: \"Purge after number of days\",\r\n value: \"PurgeAfterDays\",\r\n type: \"txt\",\r\n sorting: \"N\",\r\n align: \"center\"\r\n },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\", align: \"center\" },\r\n ];\r\n\r\n const AttachmentTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n {/*
    \r\n
    Booking Confirmation
    \r\n \r\n
    \r\n
    \r\n
    MMT Voucher
    \r\n \r\n
    \r\n
    \r\n
    Tax Exempt Certificate
    \r\n
    Certificate of Diplomats
    \r\n \r\n
    */}\r\n {/*\r\n blockAttachmentData.map(ele => {\r\n if (ele.Name != \"\" && ele.Name != null) {\r\n return (\r\n
    \r\n
    Booking Confirmation: 000000001
    \r\n
    Document Name: {ele.Name}
    \r\n
    Document Type: {ele.DocumentName}
    \r\n
    Purge: {ele.PurgeAfterDays}
    \r\n //
    \r\n // Download Document\r\n //
    \r\n
    \r\n )\r\n }\r\n })\r\n */}\r\n
    \r\n
    Booking Confirmation: 000000001
    \r\n
    Document Name: {blockAttachmentData[blockAttachmentData.length - 1]?.Name}
    \r\n
    Document Type: {blockAttachmentData[blockAttachmentData.length - 1]?.DocumentName}
    \r\n
    Purge: {blockAttachmentData[blockAttachmentData.length - 1]?.PurgeAfterDays}
    \r\n
    \r\n
    \r\n\r\n
    \r\n handleOnEditClick()}>\r\n Edit\r\n \r\n console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n {blockAttachmentData.filter(element => element.Name != null && element.Name != \"\").length}\r\n \r\n {showAttachmentPopup ? (\r\n setShowAttachmentPopup(!showAttachmentPopup)}>\r\n
    \r\n
    \r\n
    \r\n

    Block Attachment

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      Confirmation No.
      \r\n
      00000001
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      \r\n {props.para.GuestName}\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setBlockAttachmentObj(prev => ({ ...prev, Name: e }))\r\n setBlockAttachmentValidation(prev => ({ ...prev, Name: \"\" }))\r\n }}>\r\n Document Name\r\n \r\n
    \r\n {\r\n console.log(item);\r\n setBlockAttachmentObj(prev => ({ ...prev, DocumentTypeSerNo: parseInt(item.key) }))\r\n setSelectedDocType(item);\r\n }}>\r\n \r\n
    \r\n {\r\n setBlockAttachmentObj(prev => ({ ...prev, Path: e.fpath }))\r\n setBlockAttachmentValidation(prev => ({ ...prev, Path: \"\" }))\r\n }}>\r\n Upload Document\r\n \r\n
    \r\n {\r\n setBlockAttachmentObj(prev => ({ ...prev, Description: e }))\r\n }}>\r\n Description\r\n \r\n
    \r\n
    \r\n {\r\n setBlockAttachmentObj(prev => ({ ...prev, PurgeAfterDays: parseInt(e) }))\r\n }}>\r\n Purge (i)\r\n \r\n
    \r\n
    \r\n {\r\n blockAttachmentObj.Mode == \"View\" ?\r\n <>\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n //setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnResAttachment}\r\n optClick={(v, d) => {\r\n // console.log(\"Hello Edit\", v, d);\r\n setBlockAttachmentObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }}\r\n handleRowSelect={(rowData) => {\r\n console.log(rowData);\r\n setSelectedRow(rowData);\r\n if (cmbDocumentType.includes(cmbDocumentType.find(x => x.key === rowData.DocumentTypeSerNo))) {\r\n setSelectedDocType(rowData.DocumentTypeSerNo);\r\n } else {\r\n setSelectedDocType(0);\r\n }\r\n setBlockAttachmentObj({ ...rowData, Mode: \"View\" })\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n\r\n\r\n {/* {showAlert == true ? (\r\n {\r\n setShowAlert(!showAlert);\r\n if (v == \"Ok\") {\r\n handleDeleteonClick();\r\n }\r\n }}\r\n message=\"Are You Sure Want To Delete this Attachment?\"\r\n buttons={[\r\n { \"value\": \"Ok\", \"title\": \"OK\" },\r\n { \"value\": \"No\", \"title\": \"Cancle\" }\r\n ]}>\r\n ) : null} */}\r\n \r\n );\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n IndiAlert, IndiAdultChild, IndiFnBDiscount, IndiBillingInstruction, IndiBookedOn, IndiCancellationRule, IndiCompany, IndiCompanyOnFolio,\r\n IndiDepositeReceived, IndiDepositeRule, IndiDiscloseRate, IndiInclusion, IndiPrintRate,\r\n IndiRateCode, IndiReservationAttachment, IndiReservationType, IndiRoutingInstruction, IndiSalesMarketing, IndiTrace, IndiNoPost,\r\n}\r\n from \"./indicators\";\r\nimport {\r\n InnActionButton, InnPlainButton, InnPrimaryButton,\r\n InnButtonTypeWithDropdown,\r\n InnSwitch,\r\n InnTextbox,\r\n InnCheckbox,\r\n InnTableGrid,\r\n InnTabs,\r\n InnTabsPlain,\r\n InnPlainTabs,\r\n Tab,\r\n InnSingleSelectDropdown,\r\n InnSingleDateSelection,\r\n InnTooltip,\r\n InnTimeSelection,\r\n InnModalPopup,\r\n useConfirm\r\n} from \"../../../component\"\r\nimport { currentUser } from \"../../../reducer/authSlice\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport infoicon from \"../../../assets/images/info-icon-2.svg\";\r\nimport AttachmentIcon from \"../../../assets/images/attachment-icon.svg\";\r\nimport closeIcon from \"../../../assets/images/model-cls-btn.png\";\r\nimport Moment from \"moment\";\r\nimport { GuestModalPopup } from \"./modalPopup/guestModalPopup\";\r\nimport { RoomFeatureModalPopup } from \"./modalPopup/roomFeatureModalPopup\";\r\nimport {\r\n GetReservationBlockHeaderData, manageReservationBlockFields, manageReservationBlockBalanceIndicator, GetReservationInfoCancellationDetail, AddEditReservationCancellation, GetAlertData,\r\n AddEditReservationViewAlert, GetPropertyParameterByKeys, cmbGetRoomMaster, AddReservation, GetRateAndPackageRate, AddReservationAccompanyGuestProfile ,GetReservationBlockRateSummary,GetBlockReservationSummary,\r\n cmbGetReservationStatus,GetReservationInfoCompanyOnFolioProfileData,AddCompanyOnFolioProfilData,GetReservationInfoDepositRequestList,AddEditReservationDepositRequest,\r\n AddBlockReservationIndicatorData\r\n} from \"../../../services/reservationService\";\r\nimport { ManageRights } from \"../../../services/generalService\";\r\nimport { useAlert } from \"../../../utils/hooks/useAlert\";\r\nimport { IndiBlockAttachment } from \"./indicators/indi-block-attachment\";\r\nimport { Alert } from \"@mui/material\";\r\n\r\nexport function BlockAtGlance(props) {\r\n const currUser = useSelector(currentUser);\r\n const location = useLocation();\r\n const { confirm } = useConfirm();\r\n const { innkeyAlert } = useAlert();\r\n\r\n const [blockObj, setBlockObj] = useState({\r\n // ClientSerNo: parseInt(currUser.ClientSerNo),\r\n // PropertySerNo: parseInt(currUser.PropertySerNo),\r\n // ReservationSerNo: location.state.reservationSerNo\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n BlockSerNo: parseInt(location.state?.BlockSerNo),\r\n ReservationSerNo: 0,\r\n Type: \"Block\"\r\n });\r\n // console.log(\"block obj\", props.location.state.BlockSerNo);\r\n\r\n const history = useHistory();\r\n const propertyParameters = 'ArrivalTime,ArrivalTimeRange,BusinessDate,DepartureTime,DepartureTimeRange';\r\n const [propertyParameterData, setPropertyParameterData] = useState([]);\r\n const [showFilterModal, setShowFilterModal] = useState(false);\r\n const [reservationBlockData, setReservationBlockData] = useState({});\r\n const [showNewBlockReservationPopup, setShowNewBlockReservationPopup] = useState(false);\r\n const [totalBalance, setTotalBalance] = useState({});\r\n const [reservationBlockRoomSummaryData, setReservationBlockRoomSummaryData] = useState([]);\r\n const [cmbRoomType, setCmbRoomType] = useState([]);\r\n const [cmbAdultType, setCmbAdultType] = useState([]);\r\n const [filterDataResBlockSummary, setfilterDataResBlockSummary] = useState([])\r\n const [showGuestModal, setShowGuestModal] = useState(false);\r\n const [showRoomFeaturesModal, setShowRoomFeaturesModal] = useState(false);\r\n const [cancellationRuleDetail, setCancellationRuleDetail] = useState([])\r\n const [alertDetail, setAlertDetail] = useState([])\r\n const [adultCollection, setAdultCollection] = useState([])\r\n const [childCollection, setChildCollection] = useState([])\r\n const [selectedAdult, setSelectedAdult] = useState({ \"Type\": \"\", \"SerNo\": 0 });\r\n const [selectedPrimaryGuest, setSelectedPrimaryGuest] = useState({});\r\n const [roomData, setRoomData] = useState([])\r\n const [reservationRateAndPackageDetail, setReservationRateAndPackageDetail] = useState([])\r\n const [userRightObj, setUserRightObj] = useState([])\r\n const [selectedDtType, setSelectedDtType] = useState(\"ArrDate\");\r\n const [filResTypeData, setFilResTypeData] = useState([]);\r\n const [showRateWithTax, setShowRateWithTax] = useState(false);\r\n \r\n const [blockRateSummaryData, setBlockRateSummaryData] = useState([])\r\n const [blockReservationSummaryFilterObj, setBlockReservationSummaryFilterObj] = useState({\r\n \"ClientSerNo\":blockObj.ClientSerNo,\r\n \"PropertySerNo\":blockObj.PropertySerNo,\r\n \"BlockSerNo\":blockObj.BlockSerNo,\r\n \"DateType\":\"ArrDate\",\r\n \"FromDate\":Moment(Date.now()).format(\"DD-MMM-yyyy\"),\r\n \"ToDate\":Moment(Date.now()).format(\"DD-MMM-yyyy\"),\r\n \"FirstName\":null,\r\n \"LastName\":null,\r\n \"RoomNo\":0,\r\n \"ConfirmationNo\":null,\r\n \"ReservationStatus\":null\r\n })\r\n const [blockReservationSummaryData, setBlockReservationSummaryData] = useState([])\r\n \r\n //Grid Solution\r\n// const divRef = useRef();\r\n// const tableRef = useRef();\r\n// const lowerTableRef = useRef();\r\n// const [gridSolution, setGridSolution] = useState(false);\r\n// const [lowerGridSolution, setLowerGridSolution] = useState(false);\r\n// const [thWidth, setThWidth] = useState(0);\r\n// const [tableWidth, setTableWidth] = useState(0);\r\n// const [lowerTableWidth, setLowerTableWidth] = useState(0);\r\n// const [colspanValue, setColspanValue] = useState(0);\r\n\r\n// useEffect(() => {\r\n// if (divRef.current !== undefined) {\r\n// setThWidth(divRef.current.clientWidth * 0.7);\r\n// if (tableRef.current.clientWidth > divRef.current.clientWidth) {\r\n// setGridSolution(false);\r\n// } else {\r\n// setGridSolution(true);\r\n// }\r\n// if (lowerTableRef.current.clientWidth > divRef.current.clientWidth) {\r\n// setLowerGridSolution(false);\r\n// } else {\r\n// setLowerGridSolution(true);\r\n// }\r\n// }\r\n// }, [tableWidth, lowerTableWidth]);\r\n\r\n \r\n const [newBlockReservation, setNewBlockReservation] = useState({\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"BlockSerNo\": 0,\r\n \"ArrivalDate\": \"1-jan-2022\",\r\n \"DepartureDate\": \"2-dec-2022\",\r\n \"Nights\": 1,\r\n \"Rooms\": 1,\r\n \"Adult\": 1,\r\n \"Child\": 0,\r\n \"RoomTypeSerNo\": 0,\r\n \"ProfileSerNo\": \"\",\r\n \"GuestName\": \"\",\r\n \"CompanyProfileSerNo\": 0,\r\n \"AgentProfileSerNo\": 0,\r\n \"RateSerNo\": \"\",\r\n \"ChargeableRoomTypeSerNo\": 0,\r\n \"ReservationTypeSerNo\": 0,\r\n \"MarketSerNo\": 0,\r\n \"SourceSerNo\": 0,\r\n \"SalesPersonProfileSerNo\": 0,\r\n \"BillingInstructionRemarks\": \"\",\r\n \"BookingRefNo\": \"\",\r\n \"RoomSerNo\": \"\",\r\n \"IsArrivalOnSameDay\": true,\r\n \"IsDepartureOnSameDay\": true,\r\n \"ActualArrivalTime\": null,\r\n \"ActualDepartureTime\": null,\r\n \"IsInclusive\": false,\r\n \"IsDiscloseRate\": true,\r\n \"IsPrintRate\": true,\r\n \"CancellationRuleSerNo\": 0,\r\n \"Specials\": [],\r\n \"RoomFeatures\": [],\r\n \"RateCodeDetail\": {}\r\n });\r\n const [reservationValidationObj, setReservationValidationObj] = useState({\r\n \"ArrivalDate\": \"\",\r\n \"Nights\": \"\",\r\n \"ProfileSerNo\": \"\",\r\n \"RoomTypeSerNo\": \"\",\r\n \"Adult\": \"\",\r\n \"Rooms\": \"\"\r\n });\r\n const selectDateTyedata = [\r\n { key: \"ArrDate\", value: \"Arrival Date\" },\r\n { key: \"DeptDate\", value: \"Departure Date\" },\r\n { key: \"BookDate\", value: \"Booking Date\" },\r\n { key: \"StayDate\", value: \"Stay Date\" },\r\n ];\r\n \r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n\r\n const selectdata = [\r\n { key: \"Option 1\", value: \"Option 1\", },\r\n { key: \"Option 2\", value: \"Option 2\", },\r\n { key: \"Option 3\", value: \"Option 3\", },\r\n { key: \"Option 4\", value: \"Option 4\", },\r\n { key: \"Option 5\", value: \"Option 5\", },\r\n { key: \"Option 6\", value: \"Option 6\", },\r\n ];\r\n const selectRoomType = [\r\n { key: \"Date\", value: \"Date\" },\r\n { key: \"Room Type\", value: \"RoomType\" },\r\n { key: \"Occupancy\", value: \"Occupancy\" },\r\n ]\r\n useEffect(() => {\r\n GetPropertyParameterByKeys(currUser.ClientSerNo, currUser.PropertySerNo, propertyParameters).then(d => {\r\n setPropertyParameterData(d.data);\r\n })\r\n cmbGetRoomMaster(currUser.ClientSerNo, currUser.PropertySerNo).then(d => {\r\n setRoomData(d.data);\r\n })\r\n cmbGetReservationStatus().then((d) => {\r\n setFilResTypeData(d.data);\r\n });\r\n \r\n fillreservationBlockData();\r\n getReservationBlockBalanceData();\r\n getReservationBlockSummaryData();\r\n }, []);\r\n\r\n const isValidData = () => {\r\n let isValid = true;\r\n if (new Date(newBlockReservation.ArrivalDate + \"23:59\") < new Date()) {\r\n isValid = false;\r\n setReservationValidationObj(prev => ({ ...prev, ArrivalDate: \"Date should be greater or equal to business date\" }));\r\n\r\n }\r\n if (new Date(newBlockReservation.ArrivalDate) < new Date(reservationBlockData.ArrivalDate) && reservationBlockData.IsElastic == false) {\r\n isValid = false;\r\n setReservationValidationObj(prev => ({ ...prev, ArrivalDate: \"Arrival date must be between the minimum arrival date and maximum departure date to create a valid group reservation. Please select a date accordingly.\" }));\r\n\r\n }\r\n if (new Date(newBlockReservation.ArrivalDate) > new Date(reservationBlockData.DepartureDate) && reservationBlockData.IsElastic == false) {\r\n isValid = false;\r\n setReservationValidationObj(prev => ({ ...prev, ArrivalDate: \"Arrival date must be between the minimum arrival date and maximum departure date to create a valid group reservation. Please select a date accordingly.\" }));\r\n\r\n }\r\n if (new Date(newBlockReservation.DepartureDate) > new Date(reservationBlockData.DepartureDate) && reservationBlockData.IsElastic == false) {\r\n isValid = false;\r\n setReservationValidationObj(prev => ({ ...prev, Nights: \"Nights cannot exceed the date mentioned on the maximum departure date.\" }));\r\n } \r\n if (newBlockReservation.RoomTypeSerNo == 0 || newBlockReservation.RoomTypeSerNo == undefined) {\r\n isValid = false;\r\n setReservationValidationObj(prev => ({ ...prev, RoomTypeSerNo: \"Select Room Type\" }));\r\n }\r\n if (newBlockReservation.ProfileSerNo == 0 || newBlockReservation.ProfileSerNo == undefined) {\r\n isValid = false;\r\n setReservationValidationObj(prev => ({ ...prev, ProfileSerNo: \"Select Primary Guest\" }));\r\n }\r\n if (newBlockReservation.Adult == 0 || newBlockReservation.Adult == undefined) {\r\n isValid = false;\r\n setReservationValidationObj(prev => ({ ...prev, Adult: \"Select Adult\" }));\r\n }\r\n if (newBlockReservation.Rooms == 0 || newBlockReservation.Rooms == undefined) {\r\n isValid = false;\r\n setReservationValidationObj(prev => ({ ...prev, Rooms: \"Enter No. of room\" }));\r\n }\r\n if (newBlockReservation.Rooms > 0 && newBlockReservation.RoomTypeSerNo > 0 && newBlockReservation.Adult > 0) {\r\n let tempObj = reservationBlockRoomSummaryData.filter(element => element.RoomTypeSerNo == newBlockReservation.RoomTypeSerNo && element.Adult == newBlockReservation.Adult)\r\n if (tempObj == undefined || tempObj.length == 0) {\r\n isValid = false;\r\n setReservationValidationObj(prev => ({\r\n ...prev, Adult: \"There are no blocked rooms for the selected occupancy. Please select a valid occupancy to proceed.\"\r\n }));\r\n }\r\n }\r\n return isValid\r\n }\r\n\r\n const fillreservationBlockData = () => {\r\n GetReservationBlockHeaderData(blockObj.ClientSerNo, blockObj.PropertySerNo, blockObj.BlockSerNo).then(d => {\r\n let tempObj = d.data;\r\n tempObj.ClientSerNo = blockObj.ClientSerNo;\r\n tempObj.PropertySerNo = blockObj.PropertySerNo;\r\n tempObj.Type = blockObj.Type;\r\n setBlockObj(prev => ({ ...prev, ReservationSerNo: tempObj.ReservationSerNo }))\r\n //alert(d.data.IsAutoRouteToGroup);\r\n setReservationBlockData(tempObj);\r\n blockReservationSummaryFilterObj.FromDate = tempObj.ArrivalDate;\r\n blockReservationSummaryFilterObj.ToDate = tempObj.ArrivalDate;\r\n getBlockReservationSummaryData();\r\n })\r\n \r\n }\r\n\r\n const getReservationBlockBalanceData = () => {\r\n console.log(blockObj)\r\n manageReservationBlockBalanceIndicator(parseInt(blockObj.ClientSerNo), parseInt(blockObj.PropertySerNo), parseInt(blockObj.BlockSerNo)).then(d => {\r\n setTotalBalance(d.data);\r\n })\r\n }\r\n const columHeaderRoomSummary = [\r\n { key: \"Date\", value: \"date\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Room Type\", value: \"type\", type: \"txt\", sorting: \"Y\", },\r\n { key: \"Occ\", value: \"occ\", type: \"txt\", sorting: \"Y\", },\r\n { key: \"Blk\", value: \"blk\", type: \"txt\", sorting: \"Y\", align: \"center\" },\r\n { key: \"Pku\", value: \"pku\", type: \"txt\", sorting: \"Y\", align: \"center\" },\r\n { key: \"Can\", value: \"can\", type: \"txt\", sorting: \"Y\", align: \"center\" },\r\n { key: \"Noso\", value: \"noso\", type: \"txt\", sorting: \"Y\", align: \"center\" },\r\n { key: \"Bal\", value: \"Bal\", type: \"txt\", sorting: \"Y\", align: \"center\" },\r\n ];\r\n const columHeaderRateDesc = [\r\n { key: \"Description\", value: \"Description\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Blocked\", value: \"Blocked\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n { key: \"Picked-Up\", value: \"PickedUp\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n { key: \"Balance\", value: \"Balance\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n ];\r\n \r\n const columHeaderRevenueSummary = [\r\n { key: \"Room Type\", value: \"type\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Night\", value: \"night\", type: \"txt\", sorting: \"Y\", align: \"center\" },\r\n { key: \"Avg Rate\", value: \"rate\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n { key: \"Taxes\", value: \"taxes\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n { key: \"Plan Value\", value: \"value\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n { key: \"Total Value\", value: \"total\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n ];\r\n const columHeaderReservationSummary = [\r\n { key: \"Res Status\", value: \"status\", type: \"status\", sorting: \"N\" },\r\n { key: \"Room No.\", value: \"room\", type: \"txt\", sorting: \"Y\", },\r\n { key: \"Room Type\", value: \"type\", type: \"txt\", sorting: \"Y\", },\r\n { key: \"Guest Name\", value: \"name\", type: \"txt\", sorting: \"Y\", align: \"center\" },\r\n { key: \"Arrival\", value: \"arrival\", type: \"txt\", sorting: \"Y\", align: \"center\" },\r\n { key: \"Night\", value: \"night\", type: \"txt\", sorting: \"Y\", align: \"center\" },\r\n { key: \"Person\", value: \"person\", type: \"txt\", sorting: \"Y\", align: \"center\" },\r\n { key: \"Conf. No.\", value: \"confirm\", type: \"txt\", sorting: \"Y\", align: \"center\" },\r\n { key: \"E-Bed\", value: \"bed\", type: \"txt\", sorting: \"Y\", align: \"center\" },\r\n ];\r\n const [filterDataReservationSummary, setfilterDataReservationSummary] = useState([])\r\n const [filterDataRevenueSummary, setfilterDataRevenueSummary] = useState([])\r\n const [filterDataRateDesc, setfilterDataRateDesc] = useState([])\r\n const [filterDataRoomSummary, setfilterDataRoomSummary] = useState([])\r\n const [roomTypeHeaderRate , setRoomTypeHeaderRate] = useState([])\r\n const [adultDataRate, setAdultDataRate] = useState([])\r\n\r\n const getReservationBlockSummaryData = () => {\r\n GetReservationBlockRateSummary(blockObj.ClientSerNo, blockObj.PropertySerNo, blockObj.BlockSerNo).then(d=>{\r\n setBlockRateSummaryData(d.data)\r\n let tempRoomSummary = [];\r\n let tempRevenueSummary = [];\r\n d.data.RoomSummary.forEach(obj=>{\r\n let tempObj = \r\n { \r\n date: obj.Date,\r\n type: obj.RoomTypeName,\r\n occ: obj.Adults,\r\n blk: obj.BlockRoom,\r\n pku: obj.PickupRoom,\r\n can: obj.CancelRoom,\r\n noso: obj.NoShowRoom,\r\n Bal: obj.Balance,\r\n }\r\n tempRoomSummary.push(tempObj);\r\n })\r\n setfilterDataRoomSummary(tempRoomSummary);\r\n \r\n let totalTax= 0;\r\n let totalRevenue = 0;\r\n let totalPlanRevenue= 0;\r\n let totalNights= 0;\r\n d.data.RevenueSummary.forEach(obj=>{\r\n let tempObj = \r\n { \r\n type: obj.RoomTypeName,\r\n night: obj.RoomNights,\r\n rate: obj.AvgRate,\r\n taxes: obj.AvgTax,\r\n value: obj.PlanRevenue,\r\n total: obj.TotalRevenue,\r\n }\r\n tempRevenueSummary.push(tempObj);\r\n totalTax = totalTax+(obj.AvgTax*obj.RoomNights);\r\n totalRevenue = totalRevenue+ obj.TotalRevenue;\r\n totalPlanRevenue = totalPlanRevenue+obj.PlanRevenue;\r\n totalNights = totalNights+obj.RoomNights;\r\n })\r\n let tempTotalObj = \r\n { \r\n type: \"Total\",\r\n night: totalNights,\r\n rate: totalPlanRevenue/(totalNights==0?1:totalNights),\r\n taxes: totalTax/(totalNights==0?1:totalNights),\r\n value: totalPlanRevenue,\r\n total: totalRevenue,\r\n }\r\n tempRevenueSummary.push(tempTotalObj);\r\n setfilterDataRevenueSummary(tempRevenueSummary);\r\n\r\n let tempPickupSummary = [];\r\n let tempTotalRevenue = { \r\n Description: \"Total Projected Revenue\",\r\n Blocked: 0,\r\n PickedUp: 0,\r\n Balance: 0,\r\n };\r\n d.data.RevenuePickupSummary.forEach(obj=>{\r\n let tempObj = \r\n { \r\n Description: obj.Description,\r\n Blocked: obj.Blocked,\r\n PickedUp: obj.Pickedup,\r\n Balance: obj.Balance,\r\n }\r\n tempPickupSummary.push(tempObj);\r\n \r\n if (obj.Description == \"Projected Room Revenue\" || obj.Description == \"Extra Bed Revenue\"){\r\n tempTotalRevenue.Blocked = tempTotalRevenue.Blocked+ obj.Blocked;\r\n tempTotalRevenue.PickedUp = tempTotalRevenue.PickedUp+ obj.Pickedup;\r\n tempTotalRevenue.Balance = tempTotalRevenue.Balance+ obj.Balance;\r\n \r\n }\r\n })\r\n tempPickupSummary.push(tempTotalRevenue);\r\n \r\n setfilterDataRateDesc(tempPickupSummary);\r\n\r\n let headerRoomtypeObj = [];\r\n let headerAdultObj = [];\r\n d.data.RoomRateSummary.forEach(obj=>{\r\n if (headerRoomtypeObj.indexOf(obj.RoomTypeName) === -1) {\r\n headerRoomtypeObj.push(obj.RoomTypeName)\r\n }\r\n if (headerAdultObj.indexOf(obj.Adults) === -1) {\r\n headerAdultObj.push(obj.Adults)\r\n }\r\n })\r\n setRoomTypeHeaderRate(headerRoomtypeObj);\r\n setAdultDataRate(headerAdultObj);\r\n \r\n })\r\n \r\n }\r\n const getBlockReservationSummaryData = () => {\r\n GetBlockReservationSummary(blockReservationSummaryFilterObj).then(d=>{\r\n setBlockReservationSummaryData(d.data);\r\n console.log(d.data);\r\n let tempReservationSummary=[];\r\n d.data.forEach(ele=>{\r\n let tempObj ={\r\n status: ele.ReservationStatus,\r\n room: ele.RoomSerNo,\r\n type: ele.RoomTypeName,\r\n name: ele.GuestName,\r\n arrival: ele.ArrivalDate,\r\n night: ele.Nights,\r\n person: ele.Adult,\r\n confirm: ele.BookingNo,\r\n bed: ele.ExtraBed,\r\n }\r\n tempReservationSummary.push(tempObj)\r\n })\r\n setfilterDataReservationSummary(tempReservationSummary)\r\n })\r\n }\r\n \r\n const handleRouteToGroupClick = (val) => {\r\n manageReservationBlockFields(blockObj.ClientSerNo, blockObj.PropertySerNo, blockObj.BlockSerNo, \"IsAutoRouteToGroup\", val).then(d => {\r\n alert(\"AutoRouteToGroup is updated successfully\")\r\n });\r\n }\r\n // const GetAlertIndicatorData = (resSerNo) => {\r\n // GetAlertData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), resSerNo).then((a) => {\r\n // let tempAlertData = []\r\n // a.data.forEach(element => {\r\n // tempAlertData.push({\r\n // ClientSerNo: (element.ClientSerNo),\r\n // PropertySerNo: (element.PropertySerNo),\r\n // ReservationSerNo: 0,\r\n // ReservationAlertSerNo: element.ReservationAlertSerNo,\r\n // AlertSerNo: element.AlertSerNo,\r\n // FunctionalAreaSerNo: element.FunctionalAreaSerNo,\r\n // DeliveryType: element.delivery == \"popUp\" ? \"pop\" : element.delivery == \"mobile\" ? \"mob\" : element.delivery == \"report\" ? \"rep\" : \"\",\r\n // AdditionalNote: element.AdditionalNote,\r\n // PurgeAfterDays: element.PurgeAfterDays,\r\n // UserID: element.UserID,\r\n // Mode: \"Add\",\r\n // })\r\n // });\r\n // setAlertDetail(tempAlertData);\r\n // })\r\n\r\n // }\r\n const setReservationData = (RoomSummary) => {\r\n let tempFilterDataResBlockSummary = [];\r\n let tempCmbRoomType = []\r\n let tempCmbAdultType = []\r\n\r\n RoomSummary.forEach(element => {\r\n tempFilterDataResBlockSummary.push(\r\n {\r\n date: Moment(element.Date).format(\"DD MMM\"),\r\n type: element.RoomTypeName,\r\n occ: element.Adults,\r\n blk: element.BlockRoom,\r\n avl: element.AvailableRoom,\r\n roomtypeserno: element.RoomTypeSerNo,\r\n adult: element.Adult,\r\n resdate: element.Date\r\n },\r\n )\r\n if (tempCmbRoomType.findIndex(ele => ele.key === element.RoomTypeSerNo) === -1) {\r\n tempCmbRoomType.push({ key: element.RoomTypeSerNo, value: element.RoomTypeName })\r\n }\r\n if (tempCmbAdultType.findIndex(ele => ele.key === element.Adult) === -1) {\r\n tempCmbAdultType.push({\r\n key: element.Adult,\r\n value: element.Adult == 1 ? \"Single\" :\r\n element.Adult == 2 ? \"Double\" :\r\n element.Adult == 3 ? \"Triple\" :\r\n element.Adult == 4 ? \"4-Adult\" :\r\n element.Adult == 5 ? \"5-Adult\" : \"6-Adult\"\r\n })\r\n }\r\n });\r\n setfilterDataResBlockSummary(tempFilterDataResBlockSummary);\r\n setCmbAdultType(tempCmbAdultType);\r\n setCmbRoomType(tempCmbRoomType);\r\n\r\n }\r\n const setBlockSummary = (roomTypeSerno, adult) => {\r\n if (roomTypeSerno > 0 && adult > 0) {\r\n let tempFilterDataResBlockSummary = []\r\n let tempBlockList = reservationBlockRoomSummaryData;\r\n let tempRoomSummary = []\r\n console.log(tempBlockList)\r\n tempRoomSummary = tempBlockList.filter(obj => obj.RoomTypeSerNo == roomTypeSerno && obj.Adult == adult && new Date(obj.Date) >= new Date(newBlockReservation.ArrivalDate) && new Date(obj.Date) <= new Date(newBlockReservation.DepartureDate))\r\n tempRoomSummary.forEach(element => {\r\n tempFilterDataResBlockSummary.push(\r\n {\r\n date: Moment(element.Date).format(\"DD MMM\"),\r\n type: element.RoomTypeName,\r\n occ: element.Adults,\r\n blk: element.BlockRoom,\r\n avl: element.AvailableRoom,\r\n },\r\n )\r\n })\r\n console.log(tempRoomSummary);\r\n console.log(tempFilterDataResBlockSummary)\r\n setfilterDataResBlockSummary(tempFilterDataResBlockSummary)\r\n\r\n }\r\n }\r\n const handleCreateReservationClick = () => {\r\n GetReservationBlockHeaderData(blockObj.ClientSerNo, blockObj.PropertySerNo, blockObj.BlockSerNo).then(d => {\r\n let tempObj = d.data;\r\n tempObj.ClientSerNo = blockObj.ClientSerNo;\r\n tempObj.PropertySerNo = blockObj.PropertySerNo;\r\n tempObj.Type = blockObj.Type;\r\n setReservationBlockData(tempObj);\r\n setReservationBlockRoomSummaryData(d.data.ReservationBlockRoomSummary);\r\n setNewBlockReservation(prev => ({\r\n ...prev,\r\n BlockSerNo: tempObj.BlockSerNo,\r\n AgentProfileSerNo: tempObj.AgentProfileSerNo,\r\n CompanyProfileSerNo: tempObj.CompanyProfileSerNo,\r\n ArrivalDate: Moment(tempObj.ArrivalDate).format(\"DD-MMM-YYYY\"),\r\n BillingInstructionRemarks: tempObj.BillingInstructionRemarks,\r\n DepartureDate: Moment(tempObj.DepartureDate).format(\"DD-MMM-YYYY\"),\r\n IsDiscloseRate: tempObj.IsDiscloseRate,\r\n IsPrintRate: tempObj.IsPrintRate,\r\n IsInclusive: tempObj.IsTaxInclusive,\r\n MarketSerNo: tempObj.MarketSerNo,\r\n Nights: tempObj.Nights,\r\n RateSerNo: tempObj.RateSerNo,\r\n SalesPersonProfileSerNo: tempObj.SalesPersonProfileSerNo,\r\n SourceSerNo: tempObj.SourceProfileSerNo,\r\n CancellationRuleSerNo: tempObj.CancellationRuleSerNo,\r\n ReservationTypeSerNo: tempObj.ReservationTypeSerNo,\r\n\r\n\r\n }));\r\n setReservationData(d.data.ReservationBlockRoomSummary)\r\n setShowNewBlockReservationPopup(true);\r\n //GetAlertIndicatorData(tempObj.ReservationSerNo)\r\n ManageRights(tempObj.ClientSerNo, tempObj.UserID, '3').then(d => {\r\n setUserRightObj(d.data);\r\n })\r\n })\r\n }\r\n const setAccompanyGuestData = (NoOfAdult, NoOfChild) => {\r\n\r\n let tempadultCollection = [];\r\n for (let index = 0; index < NoOfAdult - 1; index++) {\r\n let o = { \"GuestProfileSerNo\": \"\", \"SerNo\": index + 2, \"GuestName\": \"\", \"IsAdult\": true, \"IsIncognito\": false }\r\n if ((index) < adultCollection.length) {\r\n o.GuestProfileSerNo = adultCollection[index].GuestProfileSerNo;\r\n o.GuestName = adultCollection[index].GuestName;\r\n o.IsIncognito = adultCollection[index].IsIncognito;\r\n }\r\n tempadultCollection.push(o);\r\n console.log(o)\r\n }\r\n setAdultCollection([...tempadultCollection]);\r\n let tempchildCollection = [];\r\n for (let index = 0; index < NoOfChild; index++) {\r\n let o = { \"GuestProfileSerNo\": \"\", \"SerNo\": index + 1, \"GuestName\": \"\", \"IsAdult\": false, \"IsIncognito\": false }\r\n if ((index) < childCollection.length) {\r\n o.GuestProfileSerNo = childCollection[index].GuestProfileSerNo;\r\n o.GuestName = childCollection[index].GuestName;\r\n o.IsIncognito = childCollection[index].IsIncognito;\r\n }\r\n tempchildCollection.push(o);\r\n console.log(o)\r\n }\r\n setChildCollection([...tempchildCollection]);\r\n\r\n }\r\n const handleOnArrivalDateChanged = async (value) => {\r\n if (!newBlockReservation.IsArrivalOnSameDay) {\r\n let conf = await confirm({\r\n Message: \"Would you like to keep the same arrival time with next day ? \",\r\n Buttons: [\r\n { value: 'N', title: \"No\", type: \"Action\" },\r\n { value: 'Y', title: \"Yes\", type: \"\" },\r\n ],\r\n });\r\n if (conf.value == 'Y') {\r\n setNewBlockReservation(prev => ({ ...prev, IsArrivalOnSameDay: true }));\r\n let d = new Date(\"1-jan-2001 00:00\");\r\n setNewBlockReservation(prev => ({ ...prev, ActualArrivalTime: Moment(d).format(\"DD-MMM-YYYY HH:mm\") }));\r\n }\r\n }\r\n setNewBlockReservation(prev => ({\r\n ...prev, ArrivalDate: Moment(value).format(\"DD-MMM-YYYY\"),\r\n DepartureDate: Moment(value).add(newBlockReservation.Nights, \"day\").format(\"DD-MMM-YYYY\")\r\n }));\r\n let arrDate = ''\r\n let depDate = ''\r\n arrDate = Moment(value).format(\"DD-MMM-YYYY\")\r\n depDate = Moment(value).add(newBlockReservation.Nights, \"day\").format(\"DD-MMM-YYYY\")\r\n // CalculateRate(newBlockReservation.ClientSerNo,newBlockReservation.PropertySerNo,newBlockReservation.RateSerNo,newBlockReservation.RoomTypeSerNo,\r\n // arrDate,depDate,newBlockReservation.Adult,newBlockReservation.Child,newBlockReservation.CompanyProfileSerNo,newBlockReservation.AgentProfileSerNo)\r\n\r\n }\r\n const handleOnNightsChanged = async (value) => {\r\n setNewBlockReservation(prev => ({\r\n ...prev,\r\n Nights: parseInt(value),\r\n DepartureDate: Moment(newBlockReservation.ArrivalDate).add(value, \"day\").format(\"DD-MMM-YYYY\")\r\n }))\r\n let depDate = Moment(newBlockReservation.ArrivalDate).add(value, \"day\").format(\"DD-MMM-YYYY\")\r\n // CalculateRate(newBlockReservation.ClientSerNo,newBlockReservation.PropertySerNo,newBlockReservation.RateSerNo,newBlockReservation.RoomTypeSerNo,\r\n // newBlockReservation.ArrivalDate,depDate,newBlockReservation.Adult,newBlockReservation.Child,newBlockReservation.CompanyProfileSerNo,newBlockReservation.AgentProfileSerNo)\r\n if (new Date(depDate) > new Date(reservationBlockData.DepartureDate) && reservationBlockData.IsElastic == false) {\r\n setReservationValidationObj(prev => ({ ...prev, Nights: \"Nights cannot exceed the date mentioned on the maximum departure date.\" }));\r\n }\r\n else{\r\n setReservationValidationObj(prev => ({ ...prev, Nights: \"\" }));\r\n \r\n } \r\n \r\n }\r\n\r\n const handleOnArrivalTimeChanged = async (e) => {\r\n if (e == null) {\r\n setNewBlockReservation(prev => ({ ...prev, ActualArrivalTime: null }));\r\n setNewBlockReservation(prev => ({ ...prev, IsArrivalOnSameDay: true }));\r\n } else {\r\n let d = new Date(\"1-jan-2001 \" + e);\r\n setNewBlockReservation(prev => ({ ...prev, ActualArrivalTime: Moment(d).format(\"DD-MMM-YYYY HH:mm\") }));\r\n\r\n let paraArrivalTime = propertyParameterData.find(x => x.key == \"ArrivalTime\").value;\r\n let paraArrivalTimeRange = propertyParameterData.find(x => x.key == \"ArrivalTimeRange\").value;\r\n let d2 = new Date(\"1-jan-2001 \" + paraArrivalTime);\r\n let d3 = new Date(\"1-jan-2001 \" + paraArrivalTime);\r\n d3.setTime(d2.getTime() - (parseInt(paraArrivalTimeRange) * 60 * 60 * 1000));\r\n\r\n // Ask next day arrival if guest arrival before (arrival time - Arrival Range)\r\n\r\n if (d.getTime() <= d3.getTime()) {\r\n //setShowNextMsg(true);\r\n let conf = await confirm({\r\n Message: \"Is it next day arrival ?\",\r\n Buttons: [\r\n { value: 'N', title: \"No\", type: \"Action\" },\r\n { value: 'Y', title: \"Yes\", type: \"\" },\r\n ],\r\n });\r\n setNewBlockReservation(prev => ({ ...prev, IsArrivalOnSameDay: (conf.value == 'Y' ? false : true) }));\r\n\r\n } else {\r\n setNewBlockReservation(prev => ({ ...prev, IsArrivalOnSameDay: true }));\r\n }\r\n }\r\n }\r\n\r\n const handleOnDepartureTimeChanged = async (e) => {\r\n if (e == null) {\r\n setNewBlockReservation(prev => ({ ...prev, ActualDepartureTime: null }));\r\n setNewBlockReservation(prev => ({ ...prev, IsDepartureOnSameDay: true }));\r\n } else {\r\n let d = new Date(\"1-jan-2001 \" + e);\r\n setNewBlockReservation(prev => ({ ...prev, ActualDepartureTime: Moment(d).format(\"DD-MMM-YYYY HH:mm\") }));\r\n\r\n let paraDepartureTime = propertyParameterData.find(x => x.key == \"DepartureTime\").value;\r\n let paraDepartureTimeRange = propertyParameterData.find(x => x.key == \"DepartureTimeRange\").value;\r\n let d2 = new Date(\"1-jan-2001 \" + paraDepartureTime);\r\n let d3 = new Date(\"1-jan-2001 \" + paraDepartureTime);\r\n d3.setTime(d2.getTime() + (parseInt(paraDepartureTimeRange) * 60 * 60 * 1000));\r\n\r\n // Ask previous day departure after departure time + departure time range\r\n if (d.getTime() >= d3.getTime()) {\r\n //setShowPreviosMsg(true);\r\n let conf = await confirm({\r\n Message: \"Is it previous day departure ? \",\r\n Buttons: [\r\n { value: 'N', title: \"No\", type: \"Action\" },\r\n { value: 'Y', title: \"Yes\", type: \"\" },\r\n ],\r\n });\r\n setNewBlockReservation(prev => ({ ...prev, IsDepartureOnSameDay: (conf.value == 'Y' ? false : true) }));\r\n } else {\r\n setNewBlockReservation(prev => ({ ...prev, IsDepartureOnSameDay: true }));\r\n }\r\n }\r\n }\r\n const handleRoomSelection = (v) => {\r\n let room = roomData.find(x => x.value == v);\r\n if (room == undefined) {\r\n setNewBlockReservation(prev => ({ ...prev, RoomSerNo: \"\" }));\r\n // if (v != \"\") {\r\n // setNewReservationValidation(prev => ({ ...prev, RoomSerNo: \"Invalid Room.\" }));\r\n // }\r\n }\r\n else {\r\n //setNewReservationValidation(prev => ({ ...prev, RoomSerNo: \"\" }));\r\n if (!isNaN(+room.key))\r\n setNewBlockReservation(prev => ({ ...prev, RoomSerNo: parseInt(room.key) }));\r\n }\r\n\r\n }\r\n const CalculateRate = (ClientSerNo, PropertySerNo, RateSerNo, ChargeableRoomTypeSerNo, ArrivalDate, DepartureDate, Adult, Child, companyProfileSerNo, agentProfileSerNo) => {\r\n GetRateAndPackageRate(ClientSerNo, PropertySerNo, 0, true, RateSerNo,\r\n ChargeableRoomTypeSerNo, ArrivalDate, DepartureDate, Adult, Child, 0, companyProfileSerNo, agentProfileSerNo).then(d => {\r\n setReservationRateAndPackageDetail(d.data);\r\n if (d.data.length > 0) {\r\n setNewBlockReservation(prev => ({ ...prev, IsInclusive: d.data.RateCodeDetails[0].IsTaxInclusive }));\r\n\r\n }\r\n })\r\n }\r\n // const AddReservationAlertData = (resSerNo) => {\r\n // alertDetail.forEach(element => {\r\n // element.ReservationSerNo = parseInt(resSerNo)\r\n // })\r\n // AddEditReservationViewAlert(alertDetail).then((a) => {\r\n // if (a.data.Code == \"200\") {\r\n // alert(a.data.Message);\r\n // setAlertDetail([]);\r\n // } else {\r\n // alert(\"Something went wrong\");\r\n // }\r\n // });\r\n\r\n // }\r\n // const AddReservationCancellationData = (resSerNo) => {\r\n // GetReservationInfoCancellationDetail(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), resSerNo, newBlockReservation.CancellationRuleSerNo).then(b => {\r\n // b.data.map(element => {\r\n // element.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n // element.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n // element.ReservationSerNo = resSerNo;\r\n // element.CancellationRuleSerNo = newBlockReservation.CancellationRuleSerNo;\r\n // })\r\n // AddEditReservationCancellation(b.data).then(d => {\r\n // if (d.data.Code == \"200\") {\r\n // alert(d.data.Message);\r\n // }\r\n // }).catch(error => {\r\n // })\r\n\r\n // }).catch(error => {\r\n // })\r\n // }\r\n // const AddReservationCompanyOnFolioData = (resSerNo) => {\r\n // GetReservationInfoCompanyOnFolioProfileData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), blockObj.ReservationSerNo ,1).then(b => {\r\n // b.data.map(element => {\r\n // element.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n // element.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n // element.ReservationSerNo = resSerNo;\r\n // })\r\n // let tempobj = {\r\n // \"ClientSerNo\" :b.data.ClientSerNo,\r\n // \"PropertySerNo\": b.data.PropertySerNo,\r\n // \"ReservationSerNo\" : b.data.ReservationSerNo,\r\n // \"ProfileSerNo\":b.data.CompanyOnFolioProfileSerNo,\r\n // \"ProfileType\":b.data.CompanyOnFolioType,\r\n // \"GuestProfileSerNo\":b.data.GuestProfileSerNo,\r\n // \"WindowSerNo\":1\r\n // }\r\n // AddCompanyOnFolioProfilData(tempobj).then(d => {\r\n // if (d.data.Code == \"200\") {\r\n // alert(d.data.Message);\r\n // }\r\n // }).catch(error => {\r\n // })\r\n // }).catch(error => {\r\n // })\r\n // }\r\n // const AddReservationDepositRuleData = (resSerNo) => {\r\n // GetReservationInfoDepositRequestList(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), blockObj.ReservationSerNo).then(b => {\r\n // b.data.map(element => {\r\n // element.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n // element.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n // element.ReservationSerNo = resSerNo;\r\n // })\r\n // let depositRequestObj =\r\n // {\r\n // \"ClientSerNo\" :b.data.ClientSerNo,\r\n // \"PropertySerNo\": b.data.PropertySerNo,\r\n // \"ReservationSerNo\" : b.data.ReservationSerNo,\r\n // \"DepositRequestSerNo\": b.data[0].DepositRequestSerNo,\r\n // \"DepositRuleSerNo\": b.data[0].DepositRuleSerNo,\r\n // \"Name\": b.data[0].Name,\r\n // \"LongDescription\": b.data[0].LongDescription\r\n // }\r\n // AddEditReservationDepositRequest(depositRequestObj).then(d => {\r\n // if (d.data.Code == \"200\") {\r\n // alert(d.data.Message);\r\n // }\r\n // }).catch(error => {\r\n \r\n // })\r\n \r\n // }).catch(error => {\r\n // })\r\n // }\r\n const CopyBlockReservationIndicatorData = (resSerNo) => \r\n {\r\n AddBlockReservationIndicatorData(blockObj.ClientSerNo,blockObj.PropertySerNo,blockObj.ReservationSerNo,resSerNo).then(d => \r\n {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n }\r\n }).catch(error => {\r\n })\r\n }\r\n \r\n // const AddReservationAccompanyGuestDetail = (resSerNo) => {\r\n // let tempMergeObj = JSON.parse(JSON.stringify(adultCollection));\r\n // tempMergeObj.forEach(ele => {\r\n // ele.IsAdult = true;\r\n // });\r\n // childCollection.forEach(ele => {\r\n // ele.IsAdult = false;\r\n // tempMergeObj.push(ele);\r\n // });\r\n // //console.log(\"Merge\", tempMergeObj);\r\n // let mergeCollection = [];\r\n\r\n // for (let index = 0; index < tempMergeObj.length; index++) {\r\n // if (tempMergeObj[index].GuestProfileSerNo != \"\") {\r\n // let m = {\r\n // \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n // \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n // \"ReservationSerNo\": resSerNo,\r\n // \"GuestProfileSerNo\": tempMergeObj[index].GuestProfileSerNo,\r\n // \"IsAdult\": tempMergeObj[index].IsAdult,\r\n // \"IsIncognito\": tempMergeObj[index].IsIncognito\r\n // }\r\n // mergeCollection.push(m);\r\n // }\r\n // }\r\n // AddReservationAccompanyGuestProfile(mergeCollection).then((d) => {\r\n // if (d.data.Code == \"200\") {\r\n // alert(d.data.Message);\r\n // }\r\n // })\r\n // }\r\n\r\n const handleAddToRoomListClick = async () => {\r\n let IsPageValid = isValidData();\r\n let tempRateCodeDetail = []\r\n await GetRateAndPackageRate(newBlockReservation.ClientSerNo, newBlockReservation.PropertySerNo, 0, true, newBlockReservation.RateSerNo,\r\n newBlockReservation.RoomTypeSerNo, newBlockReservation.ArrivalDate, newBlockReservation.DepartureDate, newBlockReservation.Adult, newBlockReservation.Child, '-1', newBlockReservation.CompanyProfileSerNo, newBlockReservation.AgentProfileSerNo).then(d => {\r\n tempRateCodeDetail = d.data\r\n })\r\n if (tempRateCodeDetail.length == 0) {\r\n IsPageValid = false;\r\n setReservationValidationObj(prev => ({ ...prev, Adult: \"The selected room type does not have a rate for the selected adult. Please select a valid occupancy to proceed.\" }));\r\n }\r\n if (IsPageValid) {\r\n if (newBlockReservation.Rooms > 0 && newBlockReservation.RoomTypeSerNo > 0 && newBlockReservation.Adult > 0) {\r\n let tempObj = reservationBlockRoomSummaryData.filter(element => element.RoomTypeSerNo == newBlockReservation.RoomTypeSerNo && element.Adult == newBlockReservation.Adult)\r\n if (tempObj != undefined && tempObj[0].AvailableRoom < newBlockReservation.Rooms) {\r\n console.log(tempObj, userRightObj)\r\n if (userRightObj.IsApply == 1) {\r\n let IsOverBookBlockReservation = await innkeyAlert(\"You have reached the total no. of rooms to be blocked for this group block. Would you like to oversell rooms for this block?\")\r\n if (IsOverBookBlockReservation) {\r\n AddBlockReservation(tempRateCodeDetail)\r\n }\r\n }\r\n else {\r\n alert(\"You have reached the total no. of rooms to be blocked for this group.\");\r\n }\r\n }\r\n else {\r\n AddBlockReservation(tempRateCodeDetail)\r\n }\r\n }\r\n\r\n }\r\n else {\r\n alert(\"One or more field has an invalid entry. Please verify accordingly.\")\r\n }\r\n\r\n }\r\n const AddBlockReservation = (rateObj) => {\r\n let blockReservationObj = {\r\n \"ClientSerNo\": newBlockReservation.ClientSerNo,\r\n \"PropertySerNo\": newBlockReservation.PropertySerNo,\r\n \"ProfileSerNo\": newBlockReservation.ProfileSerNo,\r\n \"CompanyProfileSerNo\": newBlockReservation.CompanyProfileSerNo,\r\n \"AgentProfileSerNo\": newBlockReservation.AgentProfileSerNo,\r\n \"ArrivalDate\": newBlockReservation.ArrivalDate,\r\n \"DepartureDate\": newBlockReservation.DepartureDate,\r\n \"RoomTypeSerNo\": newBlockReservation.RoomTypeSerNo,\r\n \"Rooms\": newBlockReservation.Rooms,\r\n \"RoomSerNo\": newBlockReservation.RoomSerNo != \"\" ? newBlockReservation.RoomSerNo : 0,\r\n \"ReservationTypeSerNo\": newBlockReservation.ReservationTypeSerNo,\r\n \"ChargeableRoomTypeSerNo\": newBlockReservation.RoomTypeSerNo,\r\n \"Adult\": newBlockReservation.Adult,\r\n \"Child\": newBlockReservation.Child,\r\n \"MarketSerNo\": newBlockReservation.MarketSerNo,\r\n \"SourceSerNo\": newBlockReservation.SourceSerNo,\r\n \"IsInclusive\": newBlockReservation.IsInclusive,\r\n \"BillingInstruction\": newBlockReservation.BillingInstructionRemarks,\r\n \"IsArrivalOnSameDay\": newBlockReservation.IsArrivalOnSameDay,\r\n \"IsDepartureOnSameDay\": newBlockReservation.IsDepartureOnSameDay,\r\n \"ActualArrivalTime\": newBlockReservation.ActualArrivalTime,\r\n \"ActualDepartureTime\": newBlockReservation.ActualDepartureTime,\r\n \"IsDiscloseRate\": newBlockReservation.IsDiscloseRate,\r\n \"IsPrintRate\": newBlockReservation.IsPrintRate,\r\n \"SalesPersonProfileSerNo\": newBlockReservation.SalesPersonProfileSerNo,\r\n \"BlockSerNo\": newBlockReservation.BlockSerNo,\r\n \"ReservationStatus\": \"DIN\",\r\n \"RateCodeDetail\": rateObj,\r\n \"RoomFeatures\": newBlockReservation.RoomFeatures,\r\n \"Specials\": newBlockReservation.Specials\r\n }\r\n AddReservation(blockReservationObj).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n //AddReservationAlertData(parseInt(d.data.ReturnValue));\r\n //AddReservationCancellationData(parseInt(d.data.ReturnValue));\r\n //AddReservationAccompanyGuestDetail(parseInt(d.data.ReturnValue));\r\n //AddReservationCompanyOnFolioData(parseInt(d.data.ReturnValue));\r\n // AddReservationDepositRuleData(parseInt(d.data.ReturnValue));\r\n CopyBlockReservationIndicatorData(parseInt(d.data.ReturnValue));\r\n fillreservationBlockData();\r\n }\r\n })\r\n setShowNewBlockReservationPopup(false);\r\n\r\n }\r\n /* Grid Table Start */\r\n\r\n const [gridSelectedItem, SetgridSelectedItem] = useState([]);\r\n const [temp, settemp] = useState(false);\r\n \r\n \r\n \r\n\r\n useEffect(() => {\r\n console.log(\"selected data\", gridSelectedItem);\r\n console.log(\"selected length\", gridSelectedItem.length);\r\n }, [gridSelectedItem, temp]);\r\n\r\n\r\n\r\n //grid header\r\n\r\n const [isActive, setActive] = useState(false);\r\n\r\n const setSelectedItem = (items) => {\r\n SetgridSelectedItem(items);\r\n settemp(!temp);\r\n };\r\n const optBtnData = [\r\n { key: \"Edit\", value: \"edt\" },\r\n { key: \"Delete\", value: \"del\" },\r\n ];\r\n\r\n const columHeaderResBlockSummary = [\r\n { key: \"Date\", value: \"date\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Room Type\", value: \"type\", type: \"txt\", sorting: \"N\", },\r\n { key: \"Occ\", value: \"occ\", type: \"txt\", sorting: \"N\", },\r\n { key: \"Blk\", value: \"blk\", type: \"txt\", sorting: \"N\", align: \"center\" },\r\n { key: \"Avl\", value: \"avl\", type: \"txt\", sorting: \"N\", align: \"center\" },\r\n ];\r\n\r\n\r\n /* Grid Table End */\r\n\r\n\r\n /* Tooltip Content start */\r\n const RoomFeaturesTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Room Features ({newBlockReservation.RoomFeatures.length})
    \r\n
      \r\n {\r\n newBlockReservation.RoomFeatures ?\r\n newBlockReservation.RoomFeatures.map(d =>\r\n
    • \r\n {d.DisplayName}\r\n
    • \r\n ) : <>\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const LastUpdateTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
      \r\n
    • By Rohan Shah
    • \r\n
    • Date: 25th Sept.
    • \r\n
    • Time: 15:45
    • \r\n
    • PC: 192.168.600.789
    • \r\n
    \r\n
    \r\n\r\n
    \r\n );\r\n };\r\n /* Tooltip Content end */\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Block at a glance

    \r\n
    \r\n
    \r\n
    \r\n {/* {\r\n settabcollection(data);\r\n settabId(\"tab1\");\r\n }}\r\n handleTabClick={(tabid) => {\r\n settabId(tabid);\r\n }}\r\n > */}\r\n Tabs\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {reservationBlockData.BlockName}\r\n
    \r\n
    {reservationBlockData.BlockCode}
    \r\n
    Min Arrival {Moment(reservationBlockData.ArrivalDate).format(\"ddd, DD MMM\")} ({reservationBlockData.Nights} Nights)
    \r\n
    {reservationBlockData.NoOfRooms} Rooms & {reservationBlockData.RoomNights} Room Nights
    \r\n
    Cut Off Date {Moment(reservationBlockData.CutOffDate).format(\"ddd, DD MMM\")} ({reservationBlockData.CutOffDays} Days)
    \r\n
    Elastic {reservationBlockData.IsElastic ? \"Yes\" : \"No\"}
    \r\n \r\n {(reservationBlockData.CompanyProfileSerNo != 0 || reservationBlockData.AgentProfileSerNo != 0) ?\r\n \r\n :''\r\n }\r\n \r\n
    Block Owner {reservationBlockData.UserID}
    \r\n
    Co-Ordinator {reservationBlockData.GuestName}
    \r\n \r\n \r\n\r\n
    \r\n
    \r\n {reservationBlockData.Nights} Night     Inclusive of all taxes\r\n
    \r\n
    \r\n {totalBalance.Balance}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {/* \r\n \r\n 12\r\n */}\r\n {/* */}\r\n \r\n\r\n \r\n\r\n
      \r\n
    • Booking No: 3456234
    • \r\n
    • Folio No: 3456234
    • \r\n
    • Ref. No: MMT12345678981
    • Action\r\n
    \r\n
    \r\n
    \r\n \r\n setShowFilterModal(!showFilterModal)\r\n }\r\n >\r\n \r\n
    \r\n\r\n console.log(item, name)}\r\n >\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    RESERVATION
    \r\n \r\n \r\n { setReservationBlockData(prev => ({ ...prev, IsDiscloseRate: !val })) }} para={reservationBlockData}>\r\n \r\n { setReservationBlockData(prev => ({ ...prev, IsDiscloseRate: v })) }} para={reservationBlockData}>\r\n \r\n
    notification
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    BILLING
    \r\n
    \r\n \r\n \r\n \r\n 0 ? true:false}}>\r\n \r\n \r\n
    \r\n Auto Route to Group Folio\r\n {\r\n handleRouteToGroupClick(v);\r\n setReservationBlockData(prev => ({ ...prev, IsAutoRouteToGroup: v }))\r\n }}\r\n id=\"16\"\r\n >\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n {showFilterModal ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Filters

    \r\n
    \r\n
    \r\n \r\n Reset\r\n \r\n \r\n getBlockReservationSummaryData()\r\n }>\r\n Apply\r\n \r\n \r\n setShowFilterModal(!showFilterModal)\r\n }>\r\n \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setBlockReservationSummaryFilterObj(prev=>({...prev,\r\n FirstName :v }))\r\n \r\n }}>First Name\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n { \r\n setBlockReservationSummaryFilterObj(prev=>({...prev,\r\n LastName :v }))\r\n }}>Last Name\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n { \r\n setBlockReservationSummaryFilterObj(prev=>({...prev,\r\n RoomNo:v }))\r\n }}>Room No.\r\n setShowRoomListModal(!showRoomListModal)} */\r\n >\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setBlockReservationSummaryFilterObj(prev=>({...prev,\r\n DateType :item.key }));\r\n setSelectedDtType(item.key)\r\n }}\r\n //ref={refDateType}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setBlockReservationSummaryFilterObj(prev=>({...prev,\r\n ConfirmationNo : v}))\r\n }}>Confirmation No\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setBlockReservationSummaryFilterObj(prev=>({...prev,\r\n ReservationStatus : item.key}))\r\n }}\r\n //ref={refDateType}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setBlockReservationSummaryFilterObj(prev=>({...prev,\r\n FromDate :e }))\r\n \r\n }}\r\n placeholder=\"Date From\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Date From\"\r\n >\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setBlockReservationSummaryFilterObj(prev=>({...prev,\r\n ToDate :e }))\r\n \r\n }}\r\n placeholder=\"Date To\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Date To\"\r\n >\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {/*
    \r\n
    \r\n console.log(v)}>Room No\r\n \r\n
    \r\n
    */}\r\n\r\n
    \r\n
    \r\n ) : null}\r\n\r\n\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n }}\r\n fixedHeaderNo={0}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnData}\r\n optClick={(v, d) => {\r\n console.log(v, d);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n Rate \r\n
    \r\n
    \r\n { \r\n setShowRateWithTax(ischecked);\r\n //let tempRateSummary = blockRateSummaryData.RoomRateSummary;\r\n //setBlockRateSummaryData([...tempRateSummary]);\r\n //console.log(tempRateSummary);\r\n }}>\r\n Show rate with tax\r\n \r\n { console.log(\"checkbox is \" + ischecked); }}>\r\n Inclusive of Taxes\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {roomTypeHeaderRate != undefined\r\n ? roomTypeHeaderRate.map((element) => (\r\n \r\n ))\r\n : null}\r\n {/* {lowerGridSolution ? : null} */}\r\n \r\n \r\n \r\n {adultDataRate != undefined\r\n ? adultDataRate.map((element) => (\r\n \r\n \r\n \r\n <>\r\n {roomTypeHeaderRate.map((item) => (\r\n \r\n ))}\r\n {/* {lowerGridSolution ? : null} */}\r\n \r\n \r\n ))\r\n : null}\r\n \r\n
    E-Bed{element}
    {element}\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n\r\n
    \r\n \r\n
    \r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnData}\r\n optClick={(v, d) => {\r\n console.log(v, d);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnData}\r\n optClick={(v, d) => {\r\n console.log(v, d);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}\r\n >\r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnData}\r\n optClick={(v, d) => {\r\n console.log(v, d);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n\r\n
    \r\n
    \r\n {\r\n history.push(\"/ReservationBlockListPage\");\r\n }}>Back to Block Manage Reservation\r\n {\r\n console.log(\"save button click event\");\r\n handleCreateReservationClick()\r\n }}>Create Reservation\r\n {\r\n history.push({\r\n pathname: \"/NewBlockReservation\",\r\n state: { propertySerNo: blockObj.PropertySerNo, BlockSerNo: blockObj.BlockSerNo },\r\n });\r\n }}>Edit\r\n
    \r\n
    \r\n
    \r\n
    \r\n {showNewBlockReservationPopup ? (\r\n setShowNewBlockReservationPopup(false)}>\r\n
    \r\n
    \r\n
    \r\n

    New Block Reservation

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnData}\r\n optClick={(v, d) => {\r\n console.log(v, d);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedAdult(prev => ({ ...prev, SerNo: 0 }))\r\n setSelectedAdult(prev => ({ ...prev, Type: \"\" }))\r\n setShowGuestModal(!showGuestModal)\r\n }\r\n }>\r\n Primary Guest Name*\r\n \r\n {\r\n setSelectedAdult(prev => ({ ...prev, SerNo: 0 }))\r\n setSelectedAdult(prev => ({ ...prev, Type: \"\" }))\r\n\r\n setShowGuestModal(!showGuestModal)\r\n }\r\n }>\r\n\r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n { handleOnArrivalDateChanged(v) }}\r\n customError={reservationValidationObj.ArrivalDate}\r\n placeholder=\"Single Select Date Picker\"\r\n disabled={false}\r\n calendarStartDay={1}\r\n label=\"Arrival\"\r\n dateFormat=\"E dd MMM,YYY\"\r\n selected={newBlockReservation.ArrivalDate}\r\n >\r\n
    \r\n
    \r\n { handleOnNightsChanged(v) }}>Night\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n {\r\n setNewBlockReservation(prev => ({\r\n ...prev,\r\n RoomTypeSerNo: item.key,\r\n }))\r\n setBlockSummary(item.key, newBlockReservation.Adult);\r\n // CalculateRate(newBlockReservation.ClientSerNo,newBlockReservation.PropertySerNo,newBlockReservation.RateSerNo,item.key,\r\n // newBlockReservation.ArrivalDate,newBlockReservation.DepartureDate,newBlockReservation.Adult,newBlockReservation.Child,newBlockReservation.CompanyProfileSerNo,newBlockReservation.AgentProfileSerNo)\r\n\r\n }}>\r\n
    \r\n
    \r\n
    \r\n {\r\n setNewBlockReservation(prev => ({\r\n ...prev,\r\n Rooms: parseInt(v),\r\n }))\r\n\r\n }}>Rooms\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {\r\n setNewBlockReservation(prev => ({\r\n ...prev,\r\n Adult: item.key,\r\n }))\r\n setAccompanyGuestData(parseInt(item.key), newBlockReservation.Child)\r\n setBlockSummary(newBlockReservation.RoomTypeSerNo, item.key);\r\n }} >\r\n
    \r\n
    \r\n
    \r\n {\r\n setNewBlockReservation(prev => ({\r\n ...prev,\r\n Child: parseInt(v),\r\n }))\r\n setAccompanyGuestData(newBlockReservation.Adult, parseInt(v))\r\n\r\n }}>Child\r\n
    \r\n
    \r\n E-Bed\r\n
    \r\n
    \r\n {\r\n adultCollection.map(d => (\r\n
    \r\n {\r\n setShowGuestModal(true);\r\n setSelectedAdult(prev => ({ ...prev, SerNo: d.SerNo }));\r\n setSelectedAdult(prev => ({ ...prev, Type: \"A\" }));\r\n }}>\r\n Adult {d.SerNo}\r\n \r\n {\r\n setShowGuestModal(true);\r\n setSelectedAdult(prev => ({ ...prev, SerNo: d.SerNo }));\r\n setSelectedAdult(prev => ({ ...prev, Type: \"A\" }));\r\n }}\r\n >\r\n \r\n \r\n
    \r\n ))\r\n\r\n }\r\n\r\n {\r\n childCollection.map(d => (\r\n
    \r\n {\r\n setShowGuestModal(true);\r\n setSelectedAdult(prev => ({ ...prev, SerNo: d.SerNo }));\r\n setSelectedAdult(prev => ({ ...prev, Type: \"C\" }));\r\n }}>\r\n Child {d.SerNo}\r\n \r\n {\r\n setShowGuestModal(true);\r\n setSelectedAdult(prev => ({ ...prev, SerNo: d.SerNo }));\r\n setSelectedAdult(prev => ({ ...prev, Type: \"C\" }));\r\n }}\r\n >\r\n \r\n \r\n
    \r\n ))\r\n\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {\r\n !newBlockReservation.IsArrivalOnSameDay ?\r\n
    Next Day
    \r\n : <>\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {\r\n !newBlockReservation.IsDepartureOnSameDay ?\r\n
    Previous Day
    \r\n : <>\r\n }\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n handleRoomSelection(v)}\r\n >Room No.\r\n \r\n\r\n setShowRoomListModal(!showRoomListModal)} */\r\n >\r\n \r\n \r\n \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Room Features ({newBlockReservation.RoomFeatures.length})\r\n \r\n {\r\n if(newBlockReservation.ProfileSerNo != \"\"){\r\n setShowRoomFeaturesModal(!showRoomFeaturesModal)\r\n }\r\n }\r\n }>
    \r\n
      \r\n {\r\n newBlockReservation.RoomFeatures ?\r\n newBlockReservation.RoomFeatures.slice(0, 4).map(d =>\r\n
    • \r\n {d.DisplayName}\r\n
    • \r\n ) : <>\r\n }\r\n
    \r\n \r\n {\r\n newBlockReservation.RoomFeatures.length > 4 ?\r\n More\r\n : <>\r\n } \r\n
    \r\n\r\n
    \r\n
    \r\n { handleAddToRoomListClick() }}> Add to room list\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n {showGuestModal ? (\r\n setShowGuestModal(false)}\r\n OnSelect={async (v) => {\r\n if (selectedAdult.Type == \"A\") {\r\n let tmpObj = [...adultCollection];\r\n tmpObj.forEach(ele => {\r\n if (ele.SerNo == selectedAdult.SerNo) {\r\n let IsOk = true;\r\n ele.GuestName = v.GuestName;\r\n ele.GuestProfileSerNo = v.ProfileSerNo;\r\n ele.IsIncognito = v.IsIncognito;\r\n }\r\n });\r\n setAdultCollection(tmpObj);\r\n } else if (selectedAdult.Type == \"C\") {\r\n let tmpObj = [...childCollection];\r\n tmpObj.forEach(ele => {\r\n if (ele.SerNo == selectedAdult.SerNo) {\r\n ele.GuestName = v.GuestName;\r\n ele.GuestProfileSerNo = v.ProfileSerNo;\r\n ele.IsIncognito = v.IsIncognito;\r\n }\r\n });\r\n setChildCollection(tmpObj);\r\n }\r\n else {\r\n console.log(\"selected guest \", v);\r\n setNewBlockReservation(prev => ({ ...prev, ProfileSerNo: v.ProfileSerNo }));\r\n setNewBlockReservation(prev => ({ ...prev, GuestName: v.GuestName }));\r\n setSelectedPrimaryGuest(v)\r\n }\r\n setShowGuestModal(false);\r\n }}\r\n >\r\n \r\n ) : null}\r\n {showRoomFeaturesModal ? (\r\n setShowRoomFeaturesModal(false)}\r\n handleOnSelect={(v) => {\r\n setNewBlockReservation(prev => ({ ...prev, RoomFeatures: v }));\r\n setShowRoomFeaturesModal(false);\r\n }}\r\n >\r\n ) : null}\r\n\r\n \r\n );\r\n}\r\n\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnModalPopup,\r\n InnTableGrid,\r\n InnSingleSelectDropdown,\r\n InnTimeSelection,\r\n InnMultiSelectDropdown,\r\n InnTextbox\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetHKStatusMaster } from \"../../../../services/housekeepingServiceMaster\";\r\nimport { GetFloorMaster } from \"../../../../services/frontMasterService\";\r\nimport { AutoAssignRoomToReservation, GetRoomFeature, GetAutoAssignReservation } from \"../../../../services/reservationService\";\r\nimport { RoomFeatureModalPopup } from \"./roomFeatureModalPopup\";\r\nimport rightarrow from \"../../../../assets/images/right-circle-arrow-gray.svg\";\r\n\r\n\r\nexport function AutoAssignModalPopup(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n\r\n const selectData = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n const columHeader = [\r\n { key: \"Booking No.\", value: \"BookingNo\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Guest Name\", value: \"GuestName\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Room Type\", value: \"RoomType\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Adults\", value: \"Adults\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Nights\", value: \"Nights\", type: \"txt\", sorting: \"Y\", align: \"left\" },\r\n { key: \"Rate\", value: \"Rate\", type: \"txt\", sorting: \"Y\", align: \"left\" },\r\n { key: \"Room No.\", value: \"RoomNo\", type: \"txt\", sorting: \"Y\", align: \"left\" },\r\n { key: \"HK Status\", value: \"HKStatus\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Bed Type\", value: \"BedType\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Smoking\", value: \"Smoking\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Floor\", value: \"Floor\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Res. Status\", value: \"ResStatus\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Time\", value: \"Time\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n const [filterGridData, setFilterGridData] = useState([])\r\n const [gridData, setGridData] = useState([])\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: 0,\r\n HkStatusSerNo: null,\r\n IsIncludeDueOutRoom: false,\r\n DueOutTime: null,\r\n FloorFilter: null,\r\n RoomFeatureFilter: null,\r\n }\r\n //#region State Variables\r\n const [autoAssignRoomObj, setAutoAssignRoomObj] = useState(defaultObj);\r\n const [totalRoomtoAutoAssign, setTotalRoomtoAutoAssign] = useState([]);\r\n const [autoAssignedRooms, setAutoAssignedRooms] = useState([]);\r\n const [isIncludeDepartures, setIsIncludeDepartures] = useState(false)\r\n const [fillHKStatusData, setFillHKStatusData] = useState([]);\r\n const [fillFloorData, setFillFloorData] = useState([{\r\n key: 0,\r\n value: \"Select\",\r\n }\r\n ]);\r\n const [selectedHKStatus, setSelectedHKStatus] = useState([]);\r\n const [selectedFloor, setSelectedFloor] = useState([]);\r\n const [fillBedTypeData, setFillBedTypeData] = useState([]);\r\n const [fillSmokingData, setFillSmokingData] = useState([]);\r\n const [selectedSmokingType, setSelectedSmokingType] = useState({\r\n key: 0,\r\n value: \"Select\",\r\n });\r\n const [selectedBedType, setSelectedBedType] = useState({\r\n key: 0,\r\n value: \"Select\",\r\n });\r\n const [finalResponse, setFinalResponse] = useState([]);\r\n const [roomFeatureData, setroomFeatureData] = useState([]);\r\n const [showRoomFeaturesModal, setShowRoomFeaturesModal] = useState(false);\r\n const [selectedRmFeatureData, setSelectedRmFeatureData] = useState([]);\r\n const [selectedRmFeature, setSelectedRmFeature] = useState([]);\r\n const [isHideAssignedRooms, setIsHideAssignedRooms] = useState(false)\r\n //#endregion\r\n\r\n //#region \r\n useEffect(() => {\r\n GetHKStatusMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n let defaultHKStatusData = [{ key: 0, value: \"Select\" }];\r\n if (d.data != undefined) {\r\n d.data.map((e) => {\r\n defaultHKStatusData = [\r\n ...defaultHKStatusData,\r\n {\r\n key: e.HKStatusSerNo,\r\n value: e.Name,\r\n type: e.HKStatusType,\r\n },\r\n ];\r\n });\r\n }\r\n setFillHKStatusData(defaultHKStatusData);\r\n })\r\n GetFloorMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n let defaultFloorData = [];\r\n if (d.data != undefined) {\r\n d.data.map((e) => {\r\n defaultFloorData = [...defaultFloorData,\r\n {\r\n key: e.FloorSerNo,\r\n value: e.Name,\r\n },\r\n ];\r\n });\r\n }\r\n setFillFloorData(defaultFloorData);\r\n });\r\n GetRoomFeature(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n if (d.data != undefined) {\r\n d.data.RoomFeatures.map((o) => {\r\n o.checked = false;\r\n //fill bed type combo start\r\n if (o.RoomFeatureTypeSerNo == \"BDT\") {\r\n let obj = [{ key: 0, value: \"Select\" }];\r\n d.data.RoomFeatureValues.map((b) => {\r\n if (o.RoomFeatureSerNo == b.RoomFeatureSerNo) {\r\n obj.push({ key: b.key, value: b.Value });\r\n }\r\n });\r\n setFillBedTypeData(obj);\r\n }\r\n //fill bed type combo end\r\n\r\n //fill smoking type combo start\r\n if (o.RoomFeatureTypeSerNo == \"SMK\") {\r\n let obj = [{ key: 0, value: \"Select\" }];\r\n d.data.RoomFeatureValues.map((s) => {\r\n if (o.RoomFeatureSerNo == s.RoomFeatureSerNo) {\r\n obj.push({ key: s.key, value: s.Value });\r\n }\r\n setFillSmokingData(obj);\r\n });\r\n }\r\n //fill smoking type combo end\r\n });\r\n }\r\n setroomFeatureData(d.data);\r\n });\r\n }, [])\r\n //#endregion\r\n\r\n const handleOnClose = () => {\r\n if (props.onClose != undefined) {\r\n props.onClose()\r\n }\r\n }\r\n const handleBedTypeChange = (item) => {\r\n setSelectedBedType(item);\r\n let obj = roomFeatureData.RoomFeatureValues.find((f) => f.key == item.key);\r\n if (obj) {\r\n obj.DisplayName = item.value;\r\n obj.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n obj.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n let fr = [...finalResponse];\r\n let exObj = fr.find((x) => x.RoomFeatureSerNo == obj.RoomFeatureSerNo);\r\n if (exObj) {\r\n let index = fr.indexOf(exObj);\r\n fr.splice(index, 1);\r\n }\r\n fr.push(obj);\r\n setFinalResponse(fr);\r\n } else {\r\n let fr = [...finalResponse];\r\n let filterRes = fr.filter((x) => x.RoomFeatureTypeSerNo != \"BDT\");\r\n setFinalResponse(filterRes);\r\n }\r\n };\r\n const handleSmokingTypeChange = (item) => {\r\n setSelectedSmokingType(item);\r\n let obj = roomFeatureData.RoomFeatureValues.find((f) => f.key == item.key);\r\n if (obj) {\r\n obj.DisplayName = item.value;\r\n obj.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n obj.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n let fr = [...finalResponse];\r\n\r\n let exObj = fr.find((x) => x.RoomFeatureSerNo == obj.RoomFeatureSerNo);\r\n if (exObj) {\r\n let index = fr.indexOf(exObj);\r\n fr.splice(index, 1);\r\n }\r\n fr.push(obj);\r\n setFinalResponse(fr);\r\n } else {\r\n let fr = [...finalResponse];\r\n let filterRes = fr.filter((x) => x.RoomFeatureTypeSerNo != \"SMK\");\r\n setFinalResponse(filterRes);\r\n }\r\n };\r\n\r\n const fillAutoAssignDataGrid = (StrReservationSerNo) => {\r\n GetAutoAssignReservation(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo),\r\n StrReservationSerNo).then((d) => {\r\n let defaultData = []\r\n\r\n d.data.map((x) => {\r\n defaultData = [...defaultData,\r\n {\r\n BookingNo: x.BookingNo,\r\n GuestName: x.GuestName,\r\n RoomType: x.RoomTypeCode,\r\n Adults: x.Adult,\r\n Nights: x.Nights,\r\n Rate: x.Rate,\r\n RoomNo: x.RoomNo,\r\n HKStatus: x.HKStatusName,\r\n BedType: x.BDT,\r\n Smoking: x.SMK,\r\n Floor: x.FloorName,\r\n ResStatus: x.ReservationStatus,\r\n Time: x.DepartureTime,\r\n Action: \"...\",\r\n }]\r\n })\r\n setFilterGridData(defaultData)\r\n setGridData(defaultData)\r\n })\r\n }\r\n\r\n const handleAutoAssignRoomToReservation = () => {\r\n let tempObj = []\r\n let StrRoomFeature = \"\"\r\n\r\n finalResponse.map((x) => {\r\n StrRoomFeature = StrRoomFeature + x.RoomFeatureValueSerNo + ','\r\n })\r\n if (totalRoomtoAutoAssign != undefined) {\r\n totalRoomtoAutoAssign.map((d) => {\r\n tempObj.push({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: d.ReservationSerNo,\r\n HkStatusSerNo: autoAssignRoomObj.HkStatusSerNo,\r\n IsIncludeDueOutRoom: autoAssignRoomObj.IsIncludeDueOutRoom,\r\n DueOutTime: autoAssignRoomObj.DueOutTime == \"\" ? null : autoAssignRoomObj.DueOutTime,\r\n FloorFilter: autoAssignRoomObj.FloorFilter == \"\" ? null : autoAssignRoomObj.FloorFilter,\r\n RoomFeatureFilter: StrRoomFeature == \"\" ? null : StrRoomFeature,\r\n })\r\n })\r\n }\r\n AutoAssignRoomToReservation(tempObj).then((d) => {\r\n let tempresSerNo = [];\r\n d.data.map((x) => {\r\n tempresSerNo.push(x.ReservationSerNo)\r\n })\r\n let obj = (d.data.filter((x) => x.Status == \"Success\"));\r\n setAutoAssignedRooms(obj)\r\n if (tempresSerNo.length > 0) {\r\n fillAutoAssignDataGrid(tempresSerNo.toString());\r\n }\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n if (props.data != undefined && props.data.length > 0) {\r\n setTotalRoomtoAutoAssign(props.data)\r\n }\r\n if (props.StrReservationSerNo != undefined && props.StrReservationSerNo != '') {\r\n fillAutoAssignDataGrid(props.StrReservationSerNo)\r\n }\r\n }, [])\r\n useEffect(() => {\r\n let tempArr = [];\r\n let displayName = [];\r\n if (finalResponse.length > 0) {\r\n for (let i = 0; i < finalResponse.length; i++) {\r\n tempArr = tempArr + finalResponse[i].RoomFeatureValueSerNo + \",\";\r\n setAutoAssignRoomObj((prev) => ({ ...prev, RoomFeatureFilter: tempArr }));\r\n if (finalResponse.length <= 2) {\r\n displayName.push(finalResponse[i].DisplayName);\r\n }\r\n }\r\n if (finalResponse.length > 2) {\r\n displayName.push(finalResponse[0].DisplayName, finalResponse[1].DisplayName + \"...\");\r\n }\r\n setSelectedRmFeature(displayName);\r\n }\r\n else {\r\n setSelectedRmFeature([]);\r\n }\r\n setSelectedRmFeatureData(finalResponse);\r\n }, [finalResponse]);\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n

    Auto Assign Rooms (40) Reservations

    \r\n
    \r\n
    \r\n {\r\n handleAutoAssignRoomToReservation()\r\n }}\r\n >\r\n Auto Assign Rooms\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedHKStatus(item);\r\n setAutoAssignRoomObj((prev) => ({ ...prev, HkStatusSerNo: item.key }))\r\n }}\r\n >\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setIsIncludeDepartures(isChecked)\r\n setAutoAssignRoomObj((prev) => ({ ...prev, IsIncludeDueOutRoom: isChecked }))\r\n }}\r\n >Includes Departures\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n if (e != undefined || e != null) {\r\n let t = new Date(\"1-jan-2001 \" + e);\r\n setAutoAssignRoomObj((prev) => ({ ...prev, DueOutTime: e }));\r\n } else {\r\n setAutoAssignRoomObj((prev) => ({ ...prev, DueOutTime: \"\" }));\r\n }\r\n }}\r\n //disabled=\"disabled\"\r\n placeholder=\"Time\"\r\n label=\"Time\"\r\n timeformat=\"HH:mm\"\r\n dateformat=\"HH:mm\"\r\n // selected={\"14-FEb-2022 3:30 PM\"}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {}}\r\n onClick={() => { setShowRoomFeaturesModal(!showRoomFeaturesModal) }}\r\n >\r\n Room Features\r\n \r\n {\r\n setShowRoomFeaturesModal(!showRoomFeaturesModal);\r\n }}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n {\r\n let temp = \"\";\r\n setSelectedFloor(item);\r\n if (item.length > 0) {\r\n item.map((d) => {\r\n temp = temp + d + \",\";\r\n });\r\n setAutoAssignRoomObj((prev) => ({ ...prev, FloorFilter: temp }))\r\n } else {\r\n setAutoAssignRoomObj((prev) => ({ ...prev, FloorFilter: temp }))\r\n }\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n handleSmokingTypeChange(item);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n handleBedTypeChange(item);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n Check Assignable Rooms\r\n
    \r\n
    \r\n Room Available To Assign\r\n {(totalRoomtoAutoAssign.length) - (autoAssignedRooms.length)}\r\n
    \r\n
    \r\n No of Room Assigned\r\n \r\n {autoAssignedRooms.length}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setIsHideAssignedRooms(isChecked)\r\n if (isChecked) {\r\n let filterdData = gridData.filter((x) => x.RoomNo == \"\")\r\n setFilterGridData(filterdData)\r\n }\r\n else {\r\n setFilterGridData(gridData)\r\n }\r\n }}\r\n >\r\n Hide Assigned Rooms\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* */}\r\n {\r\n //SetgridSelectedItem(items);\r\n }}\r\n fixedHeaderNo={2}\r\n //handleIconClick={(d) => {}}\r\n uniqueColumn={\"Room No.\"}\r\n optData={selectData}\r\n optClick={(item, d) => {\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n //setSelectedReservation(rowdata);\r\n // handleRmAssignmentData([rowdata]);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n {/* {\r\n setPage(v);\r\n }}\r\n style={{ float: \"right\" }}\r\n /> */}\r\n
    \r\n
    \r\n {showRoomFeaturesModal ? (\r\n setShowRoomFeaturesModal(false)}\r\n handleOnSelect={(v) => {\r\n setSelectedRmFeatureData(v);\r\n setFinalResponse(v);\r\n //let tempSerNo = [];\r\n let tempValueSerNo = [];\r\n let displayName = [];\r\n for (let i = 0; i < v.length; i++) {\r\n // tempSerNo = tempSerNo + v[i].RoomFeatureSerNo + \",\"\r\n tempValueSerNo =\r\n tempValueSerNo + v[i].RoomFeatureValueSerNo + \",\";\r\n if (v[i].RoomFeatureTypeSerNo == \"BDT\") {\r\n setSelectedBedType({ key: v[i].key, value: v[i].Value });\r\n }\r\n if (v[i].RoomFeatureTypeSerNo == \"SMK\") {\r\n setSelectedSmokingType({ key: v[i].key, value: v[i].Value });\r\n }\r\n setAutoAssignRoomObj((prev) => ({\r\n ...prev,\r\n RoomFeatureFilter: tempValueSerNo,\r\n }));\r\n if (v.length <= 2) {\r\n displayName.push(v[i].DisplayName);\r\n }\r\n }\r\n\r\n if (v.length > 2) {\r\n displayName.push(v[0].DisplayName, v[1].DisplayName + \"...\");\r\n }\r\n setSelectedRmFeature(displayName);\r\n setShowRoomFeaturesModal(false);\r\n }}\r\n >\r\n \r\n ) : null\r\n }\r\n \r\n )\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnTextbox,\r\n InnPlainButton,\r\n InnTooltip,\r\n InnMultiSelectDropdown,\r\n InnSingleDateSelection,\r\n InnTimeSelection,\r\n InnContextMenu,\r\n InnButtonTypeWithDropdown,\r\n InnSingleSelectDropdown,\r\n useConfirm,\r\n} from \"../../../component\";\r\nimport infoicon from \"../../../assets/images/info-icon-2.svg\";\r\nimport closeIcon from \"../../../assets/images/model-cls-btn.png\";\r\nimport rightarrow from \"../../../assets/images/right-circle-arrow-gray.svg\";\r\nimport LeftMenuArrow from \"../../../assets/images/inside-left-menu-arrow.svg\";\r\nimport { currentUser } from \"../../../reducer/authSlice\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { CheckboxFilter, SingleSelectFilter } from \"./filters\";\r\nimport {\r\n cmbGetMemberShipLvl, cmbGetRoomTypeMaster,\r\n cmbGetVIPStatusMaster, PostReservationArrivalListFilter,\r\n cmbGetRateCodeMaster, ManageAdvanceCheckin,\r\n GetReservationInfoData, manageReservationFields,\r\n EditCheckedInReservation, GetPropertyParameterByKeys,\r\n ManageSplitReservation, manageReservationMultipleFields,\r\n GetRoomAssignmentAssignRoom, GetRoomAssignmentUnAssignRoom,\r\n GetRoomAssignmentSwapRoom, ManageSplitReservations,\r\n manageReservationIndicator, ValidatedCancellableCheckinReservation,\r\n manageReservationBalanceIndicator,\r\n GetArrivalStatistics,\r\n ValidateRoomForUpDowngrad,\r\n GetRoomTypeMaster,\r\n EditCheckedInReservations,\r\n} from \"../../../services/reservationService\";\r\nimport { GetFloorMaster } from \"../../../services/frontMasterService\";\r\nimport { GetHKStatusMaster } from \"../../../services/housekeepingServiceMaster\";\r\nimport moment from \"moment/moment\";\r\nimport { AgentModalPopup } from \"./modalPopup/AgentModalPopup\";\r\nimport { useAlert } from \"../../../utils/hooks/useAlert\";\r\nimport { TipDueOut } from \"./tooltips/tip-due-out\";\r\nimport { RoomFeatureModalPopup } from \"./modalPopup/roomFeatureModalPopup\";\r\nimport { RoomAssignmentModal } from \"./modalPopup/roomAssignmentModalPopup\";\r\nimport { UpgradeReasonModalPopup } from \"./modalPopup/upgradeReasonModalPopup\";\r\nimport { GetVIPStatusMaster, ManageRights } from \"../../../services/generalService\";\r\nimport { CancelReservationModalPopup } from \"./modalPopup/cancelReservationModalPopup\";\r\nimport { RateSummaryModalPopup } from \"./modalPopup/rateSummaryModalPopup\";\r\nimport { AutoAssignModalPopup } from \"./modalPopup/autoAssignModalPopup\";\r\nimport BlockIcon from \"../../../assets/images/block-icon.svg\";\r\nimport { TipArrived, TipDueIn } from \"./tooltips\";\r\nimport { setIsWalkIn } from \"../../../reducer/frontSlice\";\r\n\r\nexport function ReservationArrivalList(props) {\r\n //#region Local variables\r\n const history = useHistory();\r\n const { innkeyAlert } = useAlert();\r\n const { confirm } = useConfirm();\r\n const currUser = useSelector(currentUser);\r\n const dispatch = useDispatch();\r\n\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const parameter = ['ArrivalTime', 'BusinessDate'];\r\n\r\n const assignedMenuData = [\r\n { key: \"Cancel Reservation\", value: \"Cancel Reservation\" },\r\n { key: \"No Show Reservation\", value: \"No Show Reservation\" },\r\n { key: \"Split Reservation\", value: \"Split Reservation\" },\r\n { key: \"IsAdvanceCheckin\", value: \"Advance Check in\" },\r\n { key: \"Assign\", value: \"Assign / Re-Assign\" },\r\n { key: \"Unassign\", value: \"Unassign\" },\r\n { key: \"Check in\", value: \"Check in\" },\r\n { key: \"IsCancelCheckin\", value: \"Cancel Check in\" },\r\n { key: \"Auto Assign\", value: \"Auto Assign\" },\r\n ];\r\n const assignedMenuDataMultiAction = [\r\n { key: \"Split Reservation\", value: \"Split Reservation\" },\r\n { key: \"IsAdvanceCheckin\", value: \"Advance Check In\" },\r\n { key: \"Assign\", value: \"Assign / Re-Assign\" },\r\n { key: \"Unassign\", value: \"Unassign\" },\r\n { key: \"Swap\", value: \"Swap\" },\r\n { key: \"IsCancelCheckin\", value: \"Cancel Check in\" },\r\n { key: \"Auto Assign\", value: \"Auto Assign\" },\r\n ];\r\n const checkoutTimeDD = [\r\n { key: \"ActualArrivalTime\", value: \"No Info\" },\r\n { key: \"ActualArrivalTime\", value: \"00:00\" },\r\n { key: \"ActualArrivalTime\", value: \"00:30\" },\r\n { key: \"ActualArrivalTime\", value: \"01:00\" },\r\n { key: \"ActualArrivalTime\", value: \"01:30\" },\r\n { key: \"ActualArrivalTime\", value: \"02:00\" },\r\n { key: \"ActualArrivalTime\", value: \"02:30\" },\r\n { key: \"ActualArrivalTime\", value: \"03:00\" },\r\n { key: \"ActualArrivalTime\", value: \"03:30\" },\r\n { key: \"ActualArrivalTime\", value: \"04:00\" },\r\n { key: \"ActualArrivalTime\", value: \"04:30\" },\r\n { key: \"ActualArrivalTime\", value: \"05:00\" },\r\n { key: \"ActualArrivalTime\", value: \"05:30\" },\r\n { key: \"ActualArrivalTime\", value: \"06:00\" },\r\n { key: \"ActualArrivalTime\", value: \"06:30\" },\r\n { key: \"ActualArrivalTime\", value: \"07:00\" },\r\n { key: \"ActualArrivalTime\", value: \"07:30\" },\r\n { key: \"ActualArrivalTime\", value: \"08:00\" },\r\n { key: \"ActualArrivalTime\", value: \"08:30\" },\r\n { key: \"ActualArrivalTime\", value: \"09:00\" },\r\n { key: \"ActualArrivalTime\", value: \"09:30\" },\r\n { key: \"ActualArrivalTime\", value: \"10:00\" },\r\n { key: \"ActualArrivalTime\", value: \"10:30\" },\r\n { key: \"ActualArrivalTime\", value: \"11:00\" },\r\n { key: \"ActualArrivalTime\", value: \"11:30\" },\r\n { key: \"ActualArrivalTime\", value: \"12:00\" },\r\n { key: \"ActualArrivalTime\", value: \"12:30\" },\r\n { key: \"ActualArrivalTime\", value: \"13:00\" },\r\n { key: \"ActualArrivalTime\", value: \"13:30\" },\r\n { key: \"ActualArrivalTime\", value: \"14:00\" },\r\n { key: \"ActualArrivalTime\", value: \"14:30\" },\r\n { key: \"ActualArrivalTime\", value: \"15:00\" },\r\n { key: \"ActualArrivalTime\", value: \"15:30\" },\r\n { key: \"ActualArrivalTime\", value: \"16:00\" },\r\n { key: \"ActualArrivalTime\", value: \"16:30\" },\r\n { key: \"ActualArrivalTime\", value: \"17:00\" },\r\n { key: \"ActualArrivalTime\", value: \"17:30\" },\r\n { key: \"ActualArrivalTime\", value: \"18:00\" },\r\n { key: \"ActualArrivalTime\", value: \"18:30\" },\r\n { key: \"ActualArrivalTime\", value: \"19:00\" },\r\n { key: \"ActualArrivalTime\", value: \"19:30\" },\r\n { key: \"ActualArrivalTime\", value: \"20:00\" },\r\n { key: \"ActualArrivalTime\", value: \"20:30\" },\r\n { key: \"ActualArrivalTime\", value: \"21:00\" },\r\n { key: \"ActualArrivalTime\", value: \"21:30\" },\r\n { key: \"ActualArrivalTime\", value: \"22:00\" },\r\n { key: \"ActualArrivalTime\", value: \"22:30\" },\r\n { key: \"ActualArrivalTime\", value: \"23:00\" },\r\n { key: \"ActualArrivalTime\", value: \"23:30\" },\r\n ];\r\n const resStatusData = [\r\n { key: 1, value: \"Due In\", code: \"DIN\" },\r\n { key: 2, value: \"Arrived\", code: \"INH\" }\r\n ]\r\n const selReservationData = [\r\n { key: 1, value: \"Individual\", code: \"I\" },\r\n { key: 2, value: \"Block\", code: \"B\" },\r\n { key: 3, value: \"All\", code: \"\" },\r\n ]\r\n const moreFilterOption = [\r\n // { key: \"fillSelAll\", value: \"Select All\" },\r\n { key: \"fillHKStatus\", value: \"HK Status\", Code: \"strHkStatusSerNo\" },\r\n { key: \"fillFloor\", value: \"Floor\", Code: \"strFloorSerNo\" },\r\n { key: \"fillVip\", value: \"VIP Status\", Code: \"strVIPStatus\" },\r\n { key: \"fillRateCode\", value: \"Rate Code\", Code: \"RateSerNo\" },\r\n { key: \"fillRmType\", value: \"Room Type\", Code: \"strRoomType\" },\r\n { key: \"fillSelRes\", value: \"Select Reservation\", Code: \"SelectReservation\" },\r\n { key: \"fillMemLvl\", value: \"Membership Level\", Code: \"strMemberShipLevel\" },\r\n { key: \"fillResStatus\", value: \"Reservation Status\", Code: \"strReservationStatus\" },\r\n { key: \"fillRmFeatures\", value: \"Room Features\", Code: \"RoomFeatureValueSerNo\" },\r\n { key: \"fillEarlyArrival\", value: \"Early Arrival\", Code: \"IsEarlyArrival\" },\r\n { key: \"fillLateArr\", value: \"Late Arrival\", Code: \"IsLateArrival\" },\r\n { key: \"fillNDA\", value: \"Next Day Arrival\", Code: \"IsArrivalOnSameDay\" },\r\n { key: \"fillCanCheckin\", value: \"Cancelled Check in\", Code: \"IsCancelCheckin\" },\r\n { key: \"fillWalkin\", value: \"Walk In\", Code: \"IsWalkIn\" },\r\n { key: \"fillSameDayRes\", value: \"Same Day Reservation\", Code: \"SameDayReservationNArrival\" },\r\n { key: \"fillNoInfo\", value: \"No Info\", Code: \"IsNoInfo\" },\r\n { key: \"fillETAFrom\", value: \"ETA From\", Code: \"ETAFrom\" },\r\n { key: \"fillETATo\", value: \"ETA To\", Code: \"ETATo\" },\r\n { key: \"fillNightFrom\", value: \"Night From\", Code: \"NightsFrom\" },\r\n { key: \"fillNightTo\", value: \"Night To\", Code: \"NightsTo\" },\r\n { key: \"fillInc\", value: \"Incognito Name\", Code: \"IsIncognito\" },\r\n { key: \"fillPreReg\", value: \"Pre-Registered\", Code: \"IsPreReg\" },\r\n { key: \"fillAdvCheckInClean\", value: \"Advance Check in + Clean\", Code: \"AdvanceCheckInClean\" },\r\n { key: \"fillAdvCheckInInspec\", value: \"Advance Check in + Inspected\", Code: \"AdvanceCheckInInspected\" },\r\n { key: \"fillAdvCheckInUn\", value: \"Advance Check in + Unassigned Room\", Code: \"AdvanceCheckInUnassign\" },\r\n { key: \"fillAdvCheckInDirty\", value: \"Advance Check in + Dirty\", Code: \"AdvanceCheckInDirty\" },\r\n { key: \"fillAdvCheckInDueOut\", value: \"Advance Check in + Due Out\", Code: \"AdvanceCheckInDueOut\" },\r\n { key: \"fillAdvCheckInOS\", value: \"Advance Check in + Out of Service\", Code: \"AdvanceCheckInOutofService\" },\r\n ];\r\n //#endregion\r\n\r\n //#region State variables\r\n const [showArrivalListFilterModal, setShowArrivalListFilterModal] = useState(false);\r\n const [showLeftBlueBar, setshowLeftBlueBar] = useState(false);\r\n const [showDueOutToolTip, setShowDueOutToolTip] = useState(false);\r\n const [showDueInToolTip, setShowDueInToolTip] = useState(false);\r\n const [showArrToolTip, setShowArrToolTip] = useState(false);\r\n const [showDotComp, setShowDotComp] = useState(false);\r\n const [dueOutResObj, setDueOutResObj] = useState({});\r\n const [showRoomAssignmentPopup, setShowRoomAssignmentPopup] = useState(false);\r\n const [showUpgradeReasonModalPopup, setShowUpgradeReasonModalPopup] = useState(false);\r\n const [resSerNoString, setResSerNoString] = useState(\"\");\r\n const [actionMenu, setActionMenu] = useState(assignedMenuData);\r\n const [multiActionMenu, setMultiActionMenu] = useState(assignedMenuDataMultiAction);\r\n const [reservationObj, setReservationObj] = useState({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: 0,\r\n })\r\n const [reservationArrivalList, setReservationArrivalList] = useState([]);\r\n const [SharerResList, setSharerResList] = useState([]);\r\n const [reservationInfoData, setReservationInfoData] = useState(reservationObj);\r\n const [searchStr, setSearchStr] = useState(\"\");\r\n const [showRateSelectionSummaryModal, setShowRateSelectionSummaryModal] = useState(false);\r\n const [isCheckBoxDisable, setIsCheckBoxDisable] = useState(false);\r\n const [selectUnAssignCheckBox, setSelectUnAssignCheckBox] = useState(false);\r\n const [selectAssignCheckBox, setSelectAssignCheckBox] = useState(false);\r\n const [selectCheckedInCheckBox, setSelectCheckedInCheckBox] = useState(false);\r\n const [selectArrDotCheckBox, setSelectArrDotCheckBox] = useState(false);\r\n const [selectedCheckBoxData, setSelectedCheckBoxData] = useState([]);\r\n const [isReloadTransportation, setIsReloadTransportation] = useState(false);\r\n const [isReloadArrivalDept, setIsReloadArrivalDept] = useState(false);\r\n const [reservationArrCheckedInData, setReservationArrCheckedInData] = useState([]);\r\n const [isIncognitoChanged, setIsIncognitoChanged] = useState(false);\r\n const [reservationArrDotData, setReservationArrDotData] = useState([]);\r\n const [reservationArrAssignedData, setReservationArrAssignedData] = useState([]);\r\n const [reservationArrUnAssignedData, setReservationArrUnAssignedData] = useState([]);\r\n const [showFilter, setShowFilter] = useState(false);\r\n const [showAgentSearchFilterModal, setShowAgentSearchFilterModal] = useState(false);\r\n const [showCompanySearchFilterModal, setShowCompanySearchFilterModal] = useState(false);\r\n const [colList, setColList] = useState([]);\r\n const [colListKeys, setColListKeys] = useState([]);\r\n const [selectedAdvCheckInDirty, setSelectedAdvCheckInDirty] = useState(false);\r\n const [selectedAdvCheckInClean, setSelectedAdvCheckInClean] = useState(false);\r\n const [selectedAdvCheckInInspec, setSelectedAdvCheckInInspec] = useState(false);\r\n const [selectedAdvCheckInUnassign, setSelectedAdvCheckUnassign] = useState(false);\r\n const [selectedAdvCheckInOS, setSelectedAdvCheckInOS] = useState(false);\r\n const [selectedAdvCheckInDueOut, setSelectedAdvCheckInDueOut] = useState(false);\r\n const [isAdvCheckin, setIsAdvCheckin] = useState(false);\r\n const [multiAdvCheckin, setMultiAdvCheckin] = useState(\"\");\r\n const [showCancelNoShowPopup, setShowCancelNoShowPopup] = useState(false);\r\n const [showAutoAssignRoomPopup, setShowAutoAssignRoomPopup] = useState(false);\r\n const [autoAssignRes, setAutoAssignRes] = useState([]);\r\n const [autoAssignData, setAutoAssignData] = useState([]);\r\n const [arrivalTime, setArrivalTime] = useState(\"\");\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n const [graceTime, setGraceTime] = useState(\"\");\r\n const [selectedRes, setSelectedRes] = useState([1, 2]);\r\n const [selectedMemLvl, setSelectedMemLvl] = useState([]);\r\n const [selectRmTypeSerNo, setSelectRmTypeSerNo] = useState(0);\r\n const [selectedResType, setSelectedResType] = useState({ key: 3, value: \"All\" });\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"ArrivalDate\": businessDate != undefined ? moment(new Date(businessDate)).format(\"DD-MMM-yyyy\") : moment(new Date()).format(\"DD-MMM-yyyy\"),\r\n \"CompanyProfileSerNo\": 0,\r\n \"AgentProfileSerNo\": 0,\r\n \"IsAdvanceCheckin\": null,\r\n \"IsIncognito\": null,\r\n \"strVIPStatus\": \"\",\r\n \"strMemberShipLevel\": \"\",\r\n \"strRoomType\": \"\",\r\n \"RoomFeatureSerNo\": \"\",\r\n \"RoomFeatureValueSerNo\": \"\",\r\n \"BlockSerNo\": 0,\r\n \"SameDayReservationNArrival\": null,\r\n \"BookingNo\": \"\",\r\n \"BookingReferenceNo\": \"\",\r\n \"IsArrivalOnSameDay\": null,\r\n \"ETAFrom\": \"\",\r\n \"ETATo\": \"\",\r\n \"NightsFrom\": 0,\r\n \"NightsTo\": 0,\r\n \"strHkStatusSerNo\": \"\",\r\n \"strFloorSerNo\": \"\",\r\n \"IsNoInfo\": null,\r\n \"IsEarlyArrival\": null,\r\n \"IsLateArrival\": null,\r\n \"RateSerNo\": 0,\r\n \"IsUnassignRoom\": null,\r\n \"IsWalkIn\": null,\r\n \"SelectReservation\": \"\",\r\n \"strReservationStatus\": \"DIN,INH,\", // Versioning 2\r\n \"IsCancelCheckin\": null,\r\n \"IsPreReg\": null,\r\n };\r\n const [reservationArrivalListFilterObj, setReservationArrivalListFilterObj] = useState(defaultObj);\r\n const [validationObj, setValidationObj] = useState(defaultObj);\r\n const [selectedHKStatus, setSelectedHKStatus] = useState([]);\r\n const [selectedVipStatus, setSelectedVipStatus] = useState([]);\r\n const [selectedFloor, setSelectedFloor] = useState([]);\r\n const [selectedCompany, setSelectedCompany] = useState({\r\n AgentSerNo: 0,\r\n AgentName: \"Select\",\r\n });\r\n const [selectedAgent, setSelectedAgent] = useState({\r\n AgentSerNo: 0,\r\n AgentName: \"Select\",\r\n });\r\n const [fillRoomTypeData, setFillRoomTypeData] = useState([]);\r\n const [fillRmTypeData, setFillRmTypeData] = useState([]);\r\n const [showRoomFeaturesModal, setShowRoomFeaturesModal] = useState(false);\r\n const [selectedRmFeatureData, setSelectedRmFeatureData] = useState([]);\r\n const [selectedRmFeature, setSelectedRmFeature] = useState([]);\r\n const [fillMemLvlData, setFillMemLvlData] = useState([]);\r\n const [fillHKStatusData, setFillHKStatusData] = useState([]);\r\n const [fillVipStatusData, setFillVipStatusData] = useState([]);\r\n const [fillFloorData, setFillFloorData] = useState([]);\r\n const [arrivalListObj, setArrivalListObj] = useState([]);\r\n const [dueOutList, setDueOutList] = useState([]);\r\n const [fillRateCodeData, setFillRateCodeData] = useState([]);\r\n const [selectedRoomNo, setSelectedRoomNo] = useState(\"\");\r\n const [selectedRoomSerNo, setSelectedRoomSerNo] = useState(0);\r\n const [cancelPopupMode, setCancelPopupMode] = useState(\"\");\r\n const [selectedGuestTile, setSelectedGuestTile] = useState({});\r\n const [isRoomNoDisabled, setIsRoomNoDisabled] = useState(false)\r\n const [userRightsData, setUserRightsData] = useState([]);\r\n const [indiRoomTypeData, setIndiRoomTypeData] = useState({});\r\n const [arrivalStatistics, setArrivalStatistics] = useState([]);\r\n const [roomDetails, setRoomDetails] = useState({});\r\n const [roomValidatedObj, setRoomValidatedObj] = useState({});\r\n const [selectRmType, setSelectRmType] = useState(0);\r\n const [unAssignResCount, setUnAssignResCount] = useState(0);\r\n const [assignResCount, setAssignResCount] = useState(0);\r\n const [arrDotResCount, setArrDotResCount] = useState(0);\r\n const [arrResCount, setArrResCount] = useState(0);\r\n let tempHKStr = \"\";\r\n\r\n //#region Tooltips\r\n const LastUpdateTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
      \r\n
    • By Rohan Shah
    • \r\n
    • Date: 25th Sept.
    • \r\n
    • Time: 15:45
    • \r\n
    • PC: 192.168.600.789
    • \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n const StayHistoryTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Year 2021
    \r\n
    \r\n
    \r\n
    Occupied
    \r\n
    75 Room Nights
    \r\n
    \r\n
    \r\n
    Cancelled
    \r\n
    7 Room Nights
    \r\n
    \r\n
    \r\n
    No-Show
    \r\n
    0 Room Nights
    \r\n
    \r\n
    \r\n
    Day Use
    \r\n
    6 Rooms
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Year 2020
    \r\n
    \r\n
    \r\n
    Occupied
    \r\n
    4 Room Nights
    \r\n
    \r\n
    \r\n
    Cancelled
    \r\n
    12 Room Nights
    \r\n
    \r\n
    \r\n
    No-Show
    \r\n
    0 Room Nights
    \r\n
    \r\n
    \r\n
    Day Use
    \r\n
    0 Room Nights
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Year 2019
    \r\n
    \r\n
    \r\n
    Occupied
    \r\n
    200 Room Nights
    \r\n
    \r\n
    \r\n
    Cancelled
    \r\n
    20 Room Nights
    \r\n
    \r\n
    \r\n
    No-Show
    \r\n
    10 Room Nights
    \r\n
    \r\n
    \r\n
    Day Use
    \r\n
    13 Room Nights
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Edit\r\n
    \r\n
    \r\n );\r\n };\r\n // const UpgradeTooltip = () => {\r\n // return (\r\n //
    \r\n //
    \r\n //
    Room Upgrade
    \r\n //
    \r\n //
    \r\n // );\r\n // };\r\n const UpgradeTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n indiRoomTypeData && indiRoomTypeData.RoomTypeSerNo > indiRoomTypeData.ChargeableRoomTypeSerNo ?\r\n <>Upgrade\r\n :\r\n indiRoomTypeData.RoomTypeSerNo < indiRoomTypeData.ChargeableRoomTypeSerNo ?\r\n <>Downgrade : <>\r\n }\r\n
    \r\n
    \r\n Room charge to be charged : {indiRoomTypeData.ChargeableRoomTypeName}\r\n
    \r\n
    \r\n Reason: {indiRoomTypeData.UpgradeReason}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n const BellTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n Advance Checked In\r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n const ArrivalStatusTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    Clean Room
    \r\n
    \r\n
    \r\n );\r\n };\r\n const ArrivalTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n Next Day Arrival\r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n //#endregion\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n let tempColList = [];\r\n let tempColListKeys = [];\r\n fillPropertyParameter();\r\n fillUserRights();\r\n cmbGetMemberShipLvl(currUser.ClientSerNo).then((d) => {\r\n let tempData = []\r\n if (d.data != undefined) {\r\n d.data.forEach((x) => {\r\n if (x.key != 0) {\r\n tempData.push(x)\r\n }\r\n })\r\n setFillMemLvlData(tempData);\r\n }\r\n });\r\n cmbGetRoomTypeMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n if (d.data != undefined) {\r\n setFillRoomTypeData(d.data);\r\n }\r\n })\r\n GetRoomTypeMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n let defaultRoomTypeData = [{ key: \"All\", value: \"All\", }];\r\n if (d.data != undefined) {\r\n d.data.map((e) => {\r\n defaultRoomTypeData = [\r\n ...defaultRoomTypeData,\r\n {\r\n key: e.RoomTypeSerNo,\r\n value: e.Name,\r\n },\r\n ];\r\n });\r\n setSelectRmType(\"All\")\r\n }\r\n setFillRmTypeData(defaultRoomTypeData);\r\n fillRoomAtGlance(moment(reservationArrivalListFilterObj.ArrivalDate).format(\"DD-MMM-YYYY\"), \"All\")\r\n }\r\n );\r\n cmbGetRateCodeMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n if (d.data != undefined) {\r\n setFillRateCodeData(d.data);\r\n }\r\n }\r\n );\r\n GetVIPStatusMaster(currUser.ClientSerNo).then((d) => {\r\n let defaultVipData = [];\r\n if (d.data != undefined) {\r\n d.data.map((e) => {\r\n if (e.VIPStatusSerNo != 0) {\r\n defaultVipData = [\r\n ...defaultVipData,\r\n {\r\n key: e.VIPStatusSerNo,\r\n value: e.Name,\r\n },\r\n ];\r\n }\r\n });\r\n setFillVipStatusData(defaultVipData);\r\n if (props.location.state != undefined) {\r\n if (props.location.state[\"filterObj\"] != undefined) {\r\n let keys = Object.keys(props.location.state[\"filterObj\"]);\r\n let obj = props.location.state[\"filterObj\"];\r\n let defaultArrObj = defaultObj;\r\n let temp = moreFilterOption.find((d) => d.Code === \"strVIPStatus\")\r\n keys.forEach((x) => {\r\n if (obj[x] !== null && obj[x] !== undefined && obj[x] !== 0 && obj[x] !== false && obj[x] !== \"\") {\r\n if (x === \"IsVipStatus\") {\r\n let allKeys = []\r\n defaultVipData.map((f) => {\r\n allKeys.push(f.key)\r\n })\r\n tempColList.push(temp)\r\n tempColListKeys.push(temp.key)\r\n setSelectedVipStatus(allKeys)\r\n defaultArrObj[\"strVIPStatus\"] = allKeys.join(\",\")\r\n setReservationArrivalListFilterObj(defaultArrObj);\r\n setColList(tempColList)\r\n setColListKeys(tempColListKeys)\r\n }\r\n }\r\n })\r\n }\r\n }\r\n }\r\n }\r\n );\r\n GetFloorMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n let defaultFloorData = [];\r\n if (d.data != undefined) {\r\n d.data.map((e) => {\r\n defaultFloorData = [\r\n ...defaultFloorData,\r\n {\r\n key: e.FloorSerNo,\r\n value: e.Name,\r\n },\r\n ];\r\n });\r\n }\r\n setFillFloorData(defaultFloorData);\r\n });\r\n GetHKStatusMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n let defaultHKStatusData = [];\r\n if (d.data != undefined) {\r\n d.data.map((e) => {\r\n defaultHKStatusData = [\r\n ...defaultHKStatusData,\r\n {\r\n key: e.HKStatusSerNo,\r\n value: e.Name,\r\n type: e.HKStatusType,\r\n },\r\n ];\r\n });\r\n }\r\n setFillHKStatusData(defaultHKStatusData);\r\n if (props.location.state != undefined) {\r\n if (props.location.state[\"filterObj\"] != undefined) {\r\n let keys = Object.keys(props.location.state[\"filterObj\"]);\r\n let obj = props.location.state[\"filterObj\"];\r\n let defaultArrObj = defaultObj;\r\n let temp = []\r\n let tempHKArr = []\r\n let tempSerNo = \"\"\r\n keys.forEach((x) => {\r\n if (obj[x] !== null && obj[x] !== undefined && obj[x] !== 0 && obj[x] !== false && obj[x] !== \"\") {\r\n if (x === \"strHkStatusSerNo\") {\r\n temp = defaultHKStatusData.find((y) => y.type == obj[x])\r\n tempHKArr.push(temp.key)\r\n tempSerNo = tempSerNo + temp.key.toString() + \",\"\r\n }\r\n if (x === \"AdvanceCheckInClean\") {\r\n defaultArrObj[\"IsAdvanceCheckin\"] = true;\r\n temp = defaultHKStatusData.find((y) => y.type == \"Clean\")\r\n setSelectedAdvCheckInClean(obj[x])\r\n tempSerNo = tempSerNo + temp.key.toString() + \",\"\r\n }\r\n if (x === \"AdvanceCheckInInspected\") {\r\n defaultArrObj[\"IsAdvanceCheckin\"] = true;\r\n temp = defaultHKStatusData.find((y) => y.type == \"Insp\")\r\n setSelectedAdvCheckInInspec(obj[x])\r\n tempSerNo = tempSerNo + temp.key.toString() + \",\"\r\n }\r\n if (x === \"AdvanceCheckInDirty\") {\r\n defaultArrObj[\"IsAdvanceCheckin\"] = true;\r\n temp = defaultHKStatusData.find((y) => y.type == \"Dirty\")\r\n setSelectedAdvCheckInDirty(obj[x])\r\n tempSerNo = tempSerNo + temp.key.toString() + \",\"\r\n }\r\n if (x === \"AdvanceCheckInOutofService\") {\r\n defaultArrObj[\"IsAdvanceCheckin\"] = true;\r\n temp = defaultHKStatusData.find((y) => y.type == \"OS\")\r\n setSelectedAdvCheckInOS(obj[x])\r\n tempSerNo = tempSerNo + temp.key.toString() + \",\"\r\n }\r\n if (x === \"AdvanceCheckInDueOut\") {\r\n defaultArrObj[\"IsAdvanceCheckin\"] = true\r\n setSelectedAdvCheckInDueOut(obj[x])\r\n fillGrid({}, true)\r\n }\r\n }\r\n })\r\n setSelectedHKStatus(tempHKArr)\r\n defaultArrObj[\"strHkStatusSerNo\"] = tempSerNo\r\n setReservationArrivalListFilterObj(defaultArrObj)\r\n setTimeout(() => {\r\n fillGrid({});\r\n }, 20);\r\n }\r\n }\r\n });\r\n if (props.location.state != undefined) {\r\n if (props.location.state[\"filterObj\"] != undefined) {\r\n let keys = Object.keys(props.location.state[\"filterObj\"]);\r\n let obj = props.location.state[\"filterObj\"];\r\n let defaultArrObj = defaultObj;\r\n if (obj[\"ArrivalDate\"]) {\r\n defaultArrObj[\"ArrivalDate\"] = obj[\"ArrivalDate\"];\r\n }\r\n if (obj[\"BookingNo\"]) {\r\n defaultArrObj[\"BookingNo\"] = obj[\"BookingNo\"];\r\n }\r\n if (obj[\"BlockSerNo\"]) {\r\n defaultArrObj[\"BlockSerNo\"] = obj[\"BlockSerNo\"];\r\n }\r\n if (obj[\"BookingReferenceNo\"]) {\r\n defaultArrObj[\"BookingReferenceNo\"] = obj[\"BookingReferenceNo\"];\r\n }\r\n if (obj[\"CompanyProfileSerNo\"] && !isNaN(obj[\"CompanyProfileSerNo\"])) {\r\n defaultArrObj[\"CompanyProfileSerNo\"] = obj[\"CompanyProfileSerNo\"];\r\n }\r\n if (obj[\"AgentProfileSerNo\"] && !isNaN(obj[\"AgentProfileSerNo\"])) {\r\n defaultArrObj[\"AgentProfileSerNo\"] = obj[\"AgentProfileSerNo\"];\r\n }\r\n keys.forEach((x) => {\r\n if (x === \"IsAdvanceCheckin\" && obj[x] == true) {\r\n defaultArrObj[\"IsAdvanceCheckin\"] = true\r\n }\r\n if (x === \"IsArrivalOnSameDay\" && obj[x] == true) {\r\n defaultArrObj[\"IsArrivalOnSameDay\"] = false\r\n tempColList.push({ key: \"fillNDA\", value: \"Next Day Arrival\", Code: \"IsArrivalOnSameDay\" })\r\n tempColListKeys.push(\"fillNDA\")\r\n }\r\n let temp = moreFilterOption.find((d) => d.Code === x)\r\n if (temp != undefined) {\r\n if (obj[x] !== null && obj[x] !== undefined && obj[x] !== 0 && obj[x] !== false && obj[x] !== \"\") {\r\n if (x === \"strRoomType\") {\r\n setSelectRmTypeSerNo(parseInt(obj[x]))\r\n }\r\n if (x === \"strReservationStatus\") {\r\n let temp = obj[x].split(\",\");\r\n temp = temp.filter((x) => x.trim().length > 0);\r\n let tempResSt = []\r\n temp.forEach((o) => {\r\n let data = resStatusData.find((d) => d.code == o)\r\n tempResSt.push(data.key)\r\n })\r\n setSelectedRes(tempResSt)\r\n }\r\n if (x === \"SelectReservation\") {\r\n let data = selReservationData.find((d) => d.code == obj[x])\r\n setSelectedResType(data);\r\n }\r\n if (x === \"strMemberShipLevel\") {\r\n let temp = obj[x].split(\",\");\r\n temp = temp.filter((x) => x.trim().length > 0);\r\n setSelectedMemLvl(temp);\r\n }\r\n if (x === \"strHkStatusSerNo\") {\r\n let temp = obj[x].split(\",\");\r\n temp = temp.filter((x) => x.trim().length > 0);\r\n setSelectedHKStatus(temp);\r\n }\r\n if (x === \"strVIPStatus\") {\r\n let temp = obj[x].split(\",\");\r\n temp = temp.filter((x) => x.trim().length > 0);\r\n setSelectedVipStatus(temp);\r\n }\r\n if (x === \"strFloorSerNo\") {\r\n let temp = obj[x].split(\",\");\r\n temp = temp.filter((x) => x.trim().length > 0);\r\n let data = [];\r\n temp.forEach((x) => data.push(parseInt(x)));\r\n setSelectedFloor(data);\r\n }\r\n if (x === \"AdvanceCheckInUnassign\") {\r\n defaultArrObj[\"IsAdvanceCheckin\"] = true\r\n defaultArrObj[\"IsUnassignRoom\"] = true\r\n setSelectedAdvCheckUnassign(obj[x])\r\n }\r\n if (temp.key != \"fillNDA\") {\r\n tempColList.push(temp)\r\n tempColListKeys.push(temp.key)\r\n defaultArrObj[x] = obj[x]\r\n }\r\n }\r\n }\r\n })\r\n setColList(tempColList)\r\n setColListKeys(tempColListKeys)\r\n }\r\n else {\r\n alertFunction(\"Default parameter undefined\")\r\n }\r\n }\r\n else {\r\n setTimeout(() => {\r\n alertFunction(\"Default parameter undefined...\");\r\n }, 10);\r\n }\r\n }, [])\r\n\r\n // useEffect(() => {\r\n // if (!arrivalStatistics)\r\n // fillRoomAtGlance(reservationArrivalListFilterObj.ArrivalDateArrivalDate)\r\n // }, [arrivalStatistics])\r\n useEffect(() => {\r\n let temp = [];\r\n if (colList && colList.length > 0) {\r\n colList.map((d) => {\r\n temp.push(d.key);\r\n });\r\n }\r\n setColListKeys(temp);\r\n }, [colList]);\r\n\r\n useEffect(() => {\r\n let filterKeys = Object.keys(reservationArrivalListFilterObj);\r\n let obj = reservationArrivalListFilterObj;\r\n filterKeys.forEach((x) => {\r\n if (moreFilterOption.find((o) => o.Code === x)) {\r\n if (!colListKeys.includes(moreFilterOption.find((o) => o.Code === x).key)) {\r\n if (obj[x] !== null && obj[x] !== undefined && obj[x] !== 0 && obj[x] !== false && obj[x] !== \"\") {\r\n obj[x] = defaultObj[x];\r\n }\r\n }\r\n }\r\n });\r\n // let temp = [];\r\n // if (moreFilterOption && moreFilterOption.length > 0) {\r\n // if (colList.find((x) => x.key == \"fillSelAll\")) {\r\n // moreFilterOption.map((d) => {\r\n // if (d.key !== \"fillSelAll\") {\r\n // temp.push(d.key);\r\n // console.log(d);\r\n // }\r\n // });\r\n // }\r\n // }\r\n // setColListKeys(temp);\r\n }, [colListKeys.length]);\r\n\r\n useEffect(() => {\r\n if (selectedCheckBoxData.length > 0) {\r\n if (moment(selectedCheckBoxData[0].ArrivalDate).format(\"DD-MMM-YYYY\") === moment(businessDate).format(\"DD-MMM-YYYY\")) {\r\n let isallSelected = true;\r\n let isallDeselected = true;\r\n for (let j = 0; j < selectedCheckBoxData.length; j++) {\r\n let temp = assignedMenuDataMultiAction;\r\n selectedCheckBoxData.forEach((d) => {\r\n if (d.IsAdvanceCheckin === false) {\r\n isallSelected = false;\r\n }\r\n if (d.IsAdvanceCheckin === true) {\r\n isallDeselected = false;\r\n }\r\n })\r\n if (isallSelected) {\r\n temp.forEach((d) => {\r\n if (d.value === \"Advance Check In\") {\r\n setMultiAdvCheckin(\"All true\")\r\n d.value = \"Remove Advance Check In\"\r\n }\r\n })\r\n setMultiActionMenu(temp);\r\n break;\r\n }\r\n else if (isallDeselected) {\r\n temp.forEach((d) => {\r\n if (d.value == \"Remove Advance Check In\" || d.value === \"Advance Check In\") {\r\n d.value = \"Advance Check In\"\r\n setMultiAdvCheckin(\"All false\")\r\n }\r\n })\r\n setMultiActionMenu(temp)\r\n break;\r\n }\r\n else {\r\n temp.forEach((d) => {\r\n if (d.value === \"Advance Check In\" || d.value == \"Remove Advance Check In\") {\r\n d.value = \"Advance Check In\"\r\n setMultiAdvCheckin(\"mixed case\")\r\n }\r\n })\r\n setMultiActionMenu(temp)\r\n break;\r\n }\r\n\r\n }\r\n for (let i = 0; i < assignedMenuDataMultiAction.length; i++) {\r\n let temp = assignedMenuDataMultiAction;\r\n\r\n if (selectedCheckBoxData.every(x => x.ReservationStatus == \"INH\")) {\r\n if (temp[i].key === \"IsAdvanceCheckin\") {\r\n temp[i].disable = true;\r\n }\r\n if (temp[i].value === \"Assign / Re-Assign\") {\r\n temp[i].disable = true;\r\n }\r\n if (temp[i].value === \"Unassign\") {\r\n temp[i].disable = true;\r\n }\r\n setMultiActionMenu(temp)\r\n }\r\n // if (selectedCheckBoxData.every(x => x.RoomSerNo != null && x.ReservationStatus == \"DIN\")) {\r\n // if (temp[i].value === \"Cancel Check in\") {\r\n // temp[i].disable = true;\r\n // }\r\n // setMultiActionMenu(temp)\r\n // }\r\n if (selectedCheckBoxData.every((x) => x.RoomSerNo === null)) {\r\n if (temp[i].value === \"Unassign\") {\r\n temp[i].disable = true;\r\n }\r\n if (temp[i].value === \"Cancel Check in\") {\r\n temp[i].disable = true;\r\n }\r\n if (temp[i].value === \"Auto Assign\") {\r\n temp[i].disable = false;\r\n }\r\n setMultiActionMenu(temp)\r\n }\r\n if (selectedCheckBoxData.find((x) => x.RoomSerNo === null)) {\r\n if (temp[i].value === \"Auto Assign\") {\r\n temp[i].disable = false;\r\n }\r\n setMultiActionMenu(temp)\r\n }\r\n if (selectedCheckBoxData.find((x) => x.ReservationStatus === \"INH\")) {\r\n if (temp[i].value === \"Cancel Check in\") {\r\n temp[i].disable = false;\r\n }\r\n setMultiActionMenu(temp)\r\n }\r\n if (selectedCheckBoxData.length == 2) {\r\n if (selectedCheckBoxData.find((x) => x.ReservationStatus === \"DIN\" && x.RoomSerNo != null)) {\r\n if (temp[i].value === \"Swap\") {\r\n temp[i].disable = false;\r\n }\r\n setMultiActionMenu(temp)\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (selectedCheckBoxData.length > 0) {\r\n for (let i = 0; i < assignedMenuDataMultiAction.length; i++) {\r\n let temp = assignedMenuDataMultiAction;\r\n if (temp[i].key == \"IsAdvanceCheckin\") {\r\n temp[i].disable = true;\r\n }\r\n if (temp[i].value == \"Cancel Check in\") {\r\n temp[i].disable = true;\r\n }\r\n if (selectedCheckBoxData.every(x => x.NoOfRoom > 1)) {\r\n if (temp[i].value == \"Split Reservation\") {\r\n temp[i].disable = false;\r\n }\r\n }\r\n setMultiActionMenu(temp)\r\n }\r\n }\r\n }\r\n }\r\n }, [selectedCheckBoxData])\r\n\r\n useEffect(() => {\r\n if (selectArrDotCheckBox || selectAssignCheckBox || selectCheckedInCheckBox || selectUnAssignCheckBox) {\r\n setIsCheckBoxDisable(true);\r\n }\r\n else {\r\n setIsCheckBoxDisable(false);\r\n }\r\n }, [reservationArrAssignedData, reservationArrCheckedInData, reservationArrDotData, reservationArrUnAssignedData])\r\n\r\n //#endregion\r\n\r\n //#region Filter functions\r\n const fillEarlyArrival = () => {\r\n return (\r\n
    \r\n {\r\n if (isChecked) {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, IsEarlyArrival: isChecked }));\r\n }\r\n else {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, IsEarlyArrival: null }));\r\n }\r\n }}\r\n onClose={() => {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, IsEarlyArrival: null }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillEarlyArrival\");\r\n setColList(c);\r\n }}\r\n >\r\n Early Arrival\r\n \r\n
    \r\n );\r\n };\r\n const fillSelAll = () => {\r\n let temp = [];\r\n // if (moreFilterOption && moreFilterOption.length > 0) {\r\n // moreFilterOption.map((d) => {\r\n // if (d.key !== \"fillSelAll\") {\r\n // temp.push(d.key);\r\n // console.log(d);\r\n // }\r\n // });\r\n // }\r\n // setColListKeys(temp);\r\n }\r\n const fillHKStatus = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedHKStatus(item);\r\n if (selectedAdvCheckInClean) {\r\n let obj = fillHKStatusData.find((x) => x.type === \"Clean\");\r\n tempHKStr = tempHKStr + obj.key.toString() + \",\"\r\n }\r\n if (selectedAdvCheckInDirty) {\r\n let obj = fillHKStatusData.find((x) => x.type === \"Dirty\");\r\n tempHKStr = tempHKStr + obj.key.toString() + \",\"\r\n }\r\n if (selectedAdvCheckInInspec) {\r\n let obj = fillHKStatusData.find((x) => x.type === \"Insp\");\r\n tempHKStr = tempHKStr + obj.key.toString() + \",\"\r\n }\r\n if (selectedAdvCheckInOS) {\r\n let obj = fillHKStatusData.find((x) => x.type === \"OS\");\r\n tempHKStr = tempHKStr + obj.key.toString() + \",\"\r\n }\r\n if (item.length > 0) {\r\n let obj = {}\r\n index.map((d) => {\r\n obj = fillHKStatusData.find((x) => x.type === d.type);\r\n tempHKStr = tempHKStr + obj.key.toString() + \",\";\r\n tempHKStr = tempHKStr.split(\",\").filter((x) => x.trim().length > 0).toString() + \",\";\r\n tempHKStr = tempHKStr.split(\",\").filter((item, index) => tempHKStr.split(\",\").indexOf(item) == index).toString();\r\n });\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev, strHkStatusSerNo: tempHKStr,\r\n }));\r\n } else {\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev, strHkStatusSerNo: tempHKStr,\r\n }));\r\n }\r\n }}\r\n >\r\n
    \r\n {\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev, strHkStatusSerNo: \"\",\r\n }));\r\n setSelectedHKStatus([]);\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillHKStatus\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n const fillNightFrom = () => {\r\n return (\r\n
    \r\n
    \r\n {\r\n if (v == \"\") {\r\n setValidationObj((prev) => ({ ...prev, NightsFrom: \"\" }));\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, NightsFrom: 0 }));\r\n } else if (isNaN(v)) {\r\n setValidationObj((prev) => ({ ...prev, NightsFrom: \"Invalid Input\" }));\r\n } else {\r\n setValidationObj((prev) => ({ ...prev, NightsFrom: \"\" }));\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, NightsFrom: parseInt(v) }));\r\n }\r\n }}\r\n >\r\n Nights From\r\n \r\n {\r\n setValidationObj((prev) => ({ ...prev, NightsFrom: \"\" }));\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, NightsFrom: 0 }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillNightFrom\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n const fillNightTo = () => {\r\n return (\r\n
    \r\n
    \r\n {\r\n if (v == \"\") {\r\n setValidationObj((prev) => ({ ...prev, NightsTo: \"\" }));\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, NightsTo: 0 }));\r\n } else if (isNaN(v)) {\r\n setValidationObj((prev) => ({ ...prev, NightsTo: \"Invalid Input\" }));\r\n } else {\r\n setValidationObj((prev) => ({ ...prev, NightsTo: \"\" }));\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, NightsTo: parseInt(v) }));\r\n }\r\n }}\r\n >\r\n Nights To\r\n \r\n {\r\n setValidationObj((prev) => ({ ...prev, NightsTo: \"\" }));\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, NightsTo: 0 }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillNightTo\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n const fillETAFrom = () => {\r\n return (\r\n
    \r\n
    \r\n {\r\n if (e != undefined || e != null) {\r\n let t = new Date(\"1-jan-2001 \" + e);\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, ETAFrom: e }));\r\n } else {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, ETAFrom: \"\" }));\r\n }\r\n }}\r\n //disabled=\"disabled\"\r\n placeholder=\"ETA From\"\r\n label=\"ETA From\"\r\n timeformat=\"HH:mm\" //for 12 hour h:mm aa\r\n dateformat=\"HH:mm\" //for 12 hour h:mm aa\r\n selected={reservationArrivalListFilterObj.ETAFrom ? \"1-jan-2001 \" + reservationArrivalListFilterObj.ETAFrom : \"\"}\r\n >\r\n {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, ETAFrom: \"\" }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillETAFrom\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n const fillETATo = () => {\r\n return (\r\n
    \r\n
    \r\n {\r\n if (e != undefined || e != null) {\r\n let t = new Date(\"1-jan-2001 \" + e);\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, ETATo: e }));\r\n } else {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, ETATo: \"\" }));\r\n }\r\n }}\r\n placeholder=\"ETA To\"\r\n label=\"ETA To\"\r\n timeformat=\"HH:mm\" //for 12 hour h:mm aa\r\n dateformat=\"HH:mm\" //for 12 hour h:mm aa\r\n selected={reservationArrivalListFilterObj.ETATo ? \"1-jan-2001 \" + reservationArrivalListFilterObj.ETATo : \"\"}\r\n >\r\n {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, ETATo: \"\" }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillETATo\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n const fillAdvCheckInDueOut = () => {\r\n return (\r\n {\r\n setSelectedAdvCheckInDueOut(isChecked);\r\n if (isChecked) {\r\n setReservationArrivalListFilterObj(prev => ({ ...prev, IsAdvanceCheckin: isChecked }));\r\n }\r\n else if\r\n (!selectedAdvCheckInClean &&\r\n !selectedAdvCheckInDirty &&\r\n !selectedAdvCheckInInspec &&\r\n !selectedAdvCheckInOS &&\r\n !selectedAdvCheckInUnassign) {\r\n setReservationArrivalListFilterObj(prev => ({ ...prev, IsAdvanceCheckin: null }));\r\n }\r\n }}\r\n onClose={() => {\r\n setSelectedAdvCheckInDueOut(false);\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, IsAdvanceCheckin: null }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillAdvCheckInDueOut\");\r\n setColList(c);\r\n }}\r\n >\r\n Advance Check in + Due Out\r\n \r\n );\r\n };\r\n const fillNDA = () => {\r\n return (\r\n {\r\n if (isChecked == true)\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, IsArrivalOnSameDay: false }));\r\n else\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, IsArrivalOnSameDay: null }));\r\n }}\r\n onClose={() => {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, IsArrivalOnSameDay: null }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillNDA\");\r\n setColList(c);\r\n }}\r\n >\r\n Next Day Arrival\r\n \r\n );\r\n };\r\n const fillCanCheckin = () => {\r\n return (\r\n {\r\n if (isChecked) {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, IsCancelCheckin: isChecked }))\r\n }\r\n else {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, IsCancelCheckin: null }))\r\n }\r\n }}\r\n onClose={() => {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillCanCheckin\");\r\n setColList(c);\r\n }}\r\n >\r\n Cancelled Check in\r\n \r\n );\r\n };\r\n const fillWalkin = () => {\r\n return (\r\n {\r\n if (isChecked)\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, IsWalkIn: isChecked }));\r\n else\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, IsWalkIn: null }));\r\n }}\r\n onClose={() => {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, IsWalkIn: null }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillWalkin\");\r\n setColList(c);\r\n }}\r\n >\r\n Walk In\r\n \r\n );\r\n };\r\n const fillAdvCheckInOS = () => {\r\n return (\r\n {\r\n setSelectedAdvCheckInOS(isChecked);\r\n tempHKStr = reservationArrivalListFilterObj.strHkStatusSerNo\r\n if (tempHKStr.split(\",\").length > 1) {\r\n tempHKStr = tempHKStr.split(\",\").filter((x) => x.trim().length > 0).toString() + \",\";\r\n }\r\n else {\r\n tempHKStr = tempHKStr.split(\",\").filter((x) => x.trim().length > 0).toString()\r\n }\r\n if (isChecked) {\r\n let obj = fillHKStatusData.find((x) => x.type === \"OS\");\r\n tempHKStr = tempHKStr + obj.key.toString() + \",\"\r\n tempHKStr = tempHKStr.split(\",\").filter((item, index) => tempHKStr.split(\",\").indexOf(item) == index).toString();\r\n if (obj != undefined) {\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev, IsAdvanceCheckin: isChecked, strHkStatusSerNo: tempHKStr,\r\n }));\r\n }\r\n }\r\n else {\r\n let obj = fillHKStatusData.find((x) => x.type === \"OS\");\r\n tempHKStr = tempHKStr.split(\",\").filter((d) => !d.includes(obj.key)).toString()\r\n if (!selectedAdvCheckInClean && !selectedAdvCheckInDirty && !selectedAdvCheckInDueOut &&\r\n !selectedAdvCheckInInspec && !selectedAdvCheckInUnassign) {\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev, IsAdvanceCheckin: null, strHkStatusSerNo: tempHKStr,\r\n }));\r\n } else {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, strHkStatusSerNo: tempHKStr }));\r\n }\r\n }\r\n\r\n }}\r\n onClose={() => {\r\n tempHKStr = reservationArrivalListFilterObj.strHkStatusSerNo\r\n if (!selectedAdvCheckInClean && !selectedAdvCheckInDirty && !selectedAdvCheckInDueOut &&\r\n !selectedAdvCheckInInspec && !selectedAdvCheckInUnassign) {\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev, IsAdvanceCheckin: null, strHkStatusSerNo: tempHKStr,\r\n }));\r\n } else {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, strHkStatusSerNo: tempHKStr }));\r\n }\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillAdvCheckInOS\");\r\n setColList(c);\r\n }}\r\n >\r\n Advance Check in + Out of Service\r\n \r\n );\r\n };\r\n const fillAdvCheckInUn = () => {\r\n return (\r\n {\r\n setSelectedAdvCheckUnassign(isChecked)\r\n if (isChecked) {\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev, IsAdvanceCheckin: isChecked, IsUnassignRoom: isChecked\r\n }));\r\n }\r\n else {\r\n if (!selectedAdvCheckInOS && !selectedAdvCheckInClean && !selectedAdvCheckInDirty\r\n && !selectedAdvCheckInDueOut && !selectedAdvCheckInInspec\r\n ) {\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev, IsAdvanceCheckin: null, IsUnassignRoom: null\r\n }));\r\n }\r\n else {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, IsUnassignRoom: null }));\r\n }\r\n }\r\n }}\r\n onClose={() => {\r\n setSelectedAdvCheckUnassign(false);\r\n if (!selectedAdvCheckInOS && !selectedAdvCheckInClean && !selectedAdvCheckInDirty\r\n && !selectedAdvCheckInDueOut && !selectedAdvCheckInInspec\r\n ) {\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev, IsAdvanceCheckin: null, IsUnassignRoom: null\r\n }));\r\n }\r\n else {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, IsUnassignRoom: null }));\r\n }\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillAdvCheckInUn\");\r\n setColList(c);\r\n }}\r\n >\r\n Advance Check in + Unassigned Room\r\n \r\n );\r\n };\r\n const fillAdvCheckInInspec = () => {\r\n return (\r\n {\r\n setSelectedAdvCheckInInspec(isChecked);\r\n tempHKStr = reservationArrivalListFilterObj.strHkStatusSerNo\r\n if (tempHKStr.split(\",\").length > 1) {\r\n tempHKStr = tempHKStr.split(\",\").filter((x) => x.trim().length > 0).toString() + \",\";\r\n }\r\n else {\r\n tempHKStr = tempHKStr.split(\",\").filter((x) => x.trim().length > 0).toString()\r\n }\r\n if (isChecked) {\r\n let obj = fillHKStatusData.find((x) => x.type === \"Insp\");\r\n tempHKStr = tempHKStr + obj.key.toString() + \",\"\r\n tempHKStr = tempHKStr.split(\",\").filter((item, index) => tempHKStr.split(\",\").indexOf(item) == index).toString();\r\n if (obj != undefined) {\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev, IsAdvanceCheckin: isChecked, strHkStatusSerNo: tempHKStr,\r\n }));\r\n }\r\n }\r\n else {\r\n let obj = fillHKStatusData.find((x) => x.type === \"Insp\");\r\n tempHKStr = tempHKStr.split(\",\").filter((d) => !d.includes(obj.key)).toString()\r\n if (!selectedAdvCheckInUnassign && !selectedAdvCheckInClean && !selectedAdvCheckInDirty\r\n && !selectedAdvCheckInDueOut && !selectedAdvCheckInOS\r\n ) {\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev, IsAdvanceCheckin: null, strHkStatusSerNo: tempHKStr,\r\n }));\r\n } else {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, strHkStatusSerNo: tempHKStr }));\r\n }\r\n }\r\n }}\r\n onClose={() => {\r\n setSelectedAdvCheckInInspec(false);\r\n tempHKStr = reservationArrivalListFilterObj.strHkStatusSerNo\r\n if (!selectedAdvCheckInUnassign && !selectedAdvCheckInClean && !selectedAdvCheckInDirty\r\n && !selectedAdvCheckInDueOut && !selectedAdvCheckInOS\r\n ) {\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev, IsAdvanceCheckin: null, strHkStatusSerNo: tempHKStr,\r\n }));\r\n } else {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, strHkStatusSerNo: tempHKStr }));\r\n }\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillAdvCheckInInspec\");\r\n setColList(c);\r\n }}\r\n >\r\n Advance Check in + Inspected\r\n \r\n );\r\n };\r\n const fillNoInfo = () => {\r\n return (\r\n {\r\n if (isChecked)\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev,\r\n IsNoInfo: isChecked,\r\n }));\r\n else\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev,\r\n IsNoInfo: null,\r\n }));\r\n }}\r\n onClose={() => {\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev,\r\n IsNoInfo: null,\r\n }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillNoInfo\");\r\n setColList(c);\r\n }}\r\n >\r\n No Info\r\n \r\n );\r\n };\r\n const fillSameDayRes = () => {\r\n return (\r\n {\r\n if (isChecked) {\r\n setReservationArrivalListFilterObj((prev) =>\r\n ({ ...prev, SameDayReservationNArrival: isChecked }));\r\n }\r\n else\r\n setReservationArrivalListFilterObj((prev) =>\r\n ({ ...prev, SameDayReservationNArrival: null }));\r\n }}\r\n onClose={() => {\r\n setReservationArrivalListFilterObj((prev) =>\r\n ({ ...prev, SameDayReservationNArrival: null }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillSameDayRes\");\r\n setColList(c);\r\n }}\r\n >\r\n Same Day Reservation\r\n \r\n );\r\n };\r\n const fillRmFeatures = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n { }}\r\n onClick={() => { setShowRoomFeaturesModal(!showRoomFeaturesModal) }}\r\n >\r\n Room Features\r\n \r\n {\r\n setShowRoomFeaturesModal(!showRoomFeaturesModal);\r\n }}\r\n >\r\n \r\n \r\n {\r\n setReservationArrivalListFilterObj(prev => ({ ...prev, RoomFeatureSerNo: \"\", RoomFeatureValueSerNo: \"\" }));\r\n setSelectedRmFeatureData([]);\r\n setSelectedRmFeature([]);\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillRmFeatures\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n const fillAdvCheckInClean = () => {\r\n return (\r\n {\r\n setSelectedAdvCheckInClean(isChecked);\r\n tempHKStr = reservationArrivalListFilterObj.strHkStatusSerNo\r\n if (tempHKStr.split(\",\").length > 1) {\r\n tempHKStr = tempHKStr.split(\",\").filter((x) => x.trim().length > 0).toString() + \",\";\r\n }\r\n else {\r\n tempHKStr = tempHKStr.split(\",\").filter((x) => x.trim().length > 0).toString()\r\n }\r\n if (isChecked) {\r\n let obj = fillHKStatusData.find((x) => x.type === \"Clean\");\r\n tempHKStr = tempHKStr + obj.key.toString() + \",\"\r\n tempHKStr = tempHKStr.split(\",\").filter((item, index) => tempHKStr.split(\",\").indexOf(item) == index).toString();\r\n if (obj != undefined) {\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev, IsAdvanceCheckin: isChecked, strHkStatusSerNo: tempHKStr,\r\n }));\r\n }\r\n }\r\n else {\r\n let obj = fillHKStatusData.find((x) => x.type === \"Clean\");\r\n tempHKStr = tempHKStr.split(\",\").filter((d) => !d.includes(obj.key)).toString();\r\n if (!selectedAdvCheckInDirty && !selectedAdvCheckInOS && !selectedAdvCheckInDueOut\r\n && !selectedAdvCheckInInspec && !selectedAdvCheckInUnassign) {\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev, IsAdvanceCheckin: null, strHkStatusSerNo: tempHKStr,\r\n }));\r\n } else {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, strHkStatusSerNo: tempHKStr }));\r\n }\r\n }\r\n }}\r\n onClose={() => {\r\n setSelectedAdvCheckInClean(false);\r\n tempHKStr = reservationArrivalListFilterObj.strHkStatusSerNo\r\n if (!selectedAdvCheckInDirty && !selectedAdvCheckInOS && !selectedAdvCheckInDueOut\r\n && !selectedAdvCheckInInspec && !selectedAdvCheckInUnassign) {\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev, IsAdvanceCheckin: null, strHkStatusSerNo: tempHKStr,\r\n }));\r\n } else {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, strHkStatusSerNo: tempHKStr }));\r\n }\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillAdvCheckInClean\");\r\n setColList(c);\r\n }}\r\n >\r\n Advance Check in + Clean\r\n \r\n );\r\n };\r\n const fillLateArr = () => {\r\n return (\r\n {\r\n if (isChecked)\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev,\r\n IsLateArrival: isChecked,\r\n }));\r\n else\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev,\r\n IsLateArrival: null,\r\n }));\r\n }}\r\n onClose={() => {\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev,\r\n IsLateArrival: null,\r\n }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillLateArr\");\r\n setColList(c);\r\n }}\r\n >\r\n Late Arrival\r\n \r\n );\r\n };\r\n const fillInc = () => {\r\n return (\r\n {\r\n if (isChecked) {\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev,\r\n IsIncognito: isChecked,\r\n }));\r\n } else {\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev,\r\n IsIncognito: null,\r\n }));\r\n }\r\n }}\r\n onClose={() => {\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev,\r\n IsIncognito: null,\r\n }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillInc\");\r\n setColList(c);\r\n }}\r\n >\r\n Incognito\r\n \r\n );\r\n };\r\n const fillPreReg = () => {\r\n return (\r\n {\r\n if (isChecked) {\r\n // Pending\r\n }\r\n }}\r\n onClose={() => {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillPreReg\");\r\n setColList(c);\r\n }}\r\n >\r\n Pre-Registered\r\n \r\n );\r\n };\r\n const fillMemLvl = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {\r\n let temp = \"\";\r\n setSelectedMemLvl(item);\r\n if (item.length > 0) {\r\n item.map((d) => {\r\n temp = temp + d + \",\";\r\n });\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, strMemberShipLevel: temp }));\r\n } else {\r\n setReservationArrivalListFilterObj(prev => ({ ...prev, strMemberShipLevel: temp }));\r\n }\r\n }}\r\n >\r\n
    \r\n {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, strMemberShipLevel: \"\" }));\r\n setSelectedMemLvl([]);\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillMemLvl\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n const fillResStatus = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {\r\n let temp = \"\";\r\n if (item.length > 0) {\r\n setSelectedRes(index);\r\n item.map((d) => {\r\n temp = temp + d.code + \",\";\r\n });\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, strReservationStatus: temp }));\r\n }\r\n else if (item.length < 1) {\r\n alertFunction(\"Reservation Status is mendatory please select at least one option.\")\r\n setReservationArrivalListFilterObj(prev =>\r\n ({ ...prev, strReservationStatus: \"DIN,\" }));\r\n setSelectedRes([1]);\r\n }\r\n else {\r\n setSelectedRes(index);\r\n setReservationArrivalListFilterObj(prev => ({\r\n ...prev, strReservationStatus: temp\r\n }));\r\n }\r\n }}\r\n >\r\n
    \r\n {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, strReservationStatus: \"DIN,INH,\" }));\r\n setSelectedRes([1, 2]);\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillResStatus\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n const fillRmType = () => {\r\n return (\r\n {\r\n setSelectRmTypeSerNo(item.key)\r\n if (item.key == 0) {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, strRoomType: \"\" }));\r\n } else {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, strRoomType: item.key }));\r\n }\r\n }}\r\n onClose={() => {\r\n setSelectRmTypeSerNo(0)\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, strRoomType: \"\", }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillRmType\");\r\n setColList(c);\r\n }}\r\n />\r\n );\r\n };\r\n const fillSelRes = () => {\r\n return (\r\n {\r\n setSelectedResType(item);\r\n if (item.value === \"All\") {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, SelectReservation: null }))\r\n }\r\n else if (item.value === \"Block\") {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, SelectReservation: \"B\" }))\r\n }\r\n else if (item.value === \"Individual\") {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, SelectReservation: \"I\" }))\r\n }\r\n }}\r\n onClose={() => {\r\n setSelectedResType({ key: 3, value: \"All\" });\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, SelectReservation: null }))\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillSelRes\");\r\n setColList(c);\r\n }}\r\n />\r\n );\r\n };\r\n const fillAdvCheckInDirty = () => {\r\n return (\r\n {\r\n setSelectedAdvCheckInDirty(isChecked);\r\n tempHKStr = reservationArrivalListFilterObj.strHkStatusSerNo\r\n if (tempHKStr.split(\",\").length > 1) {\r\n tempHKStr = tempHKStr.split(\",\").filter((x) => x.trim().length > 0).toString() + \",\";\r\n }\r\n else {\r\n tempHKStr = tempHKStr.split(\",\").filter((x) => x.trim().length > 0).toString()\r\n }\r\n if (isChecked) {\r\n let obj = fillHKStatusData.find((x) => x.type === \"Dirty\");\r\n tempHKStr = tempHKStr + obj.key.toString() + \",\"\r\n tempHKStr = tempHKStr.split(\",\").filter((item, index) => tempHKStr.split(\",\").indexOf(item) == index).toString();\r\n if (obj != undefined) {\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev, IsAdvanceCheckin: isChecked, strHkStatusSerNo: tempHKStr,\r\n }));\r\n }\r\n }\r\n else {\r\n let obj = fillHKStatusData.find((x) => x.type === \"Dirty\");\r\n tempHKStr = tempHKStr.split(\",\").filter((d) => !d.includes(obj.key)).toString()\r\n if (!selectedAdvCheckInClean && !selectedAdvCheckInOS && !selectedAdvCheckInDueOut\r\n && !selectedAdvCheckInInspec && !selectedAdvCheckInUnassign) {\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev, IsAdvanceCheckin: null, strHkStatusSerNo: tempHKStr,\r\n }));\r\n }\r\n else {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, strHkStatusSerNo: tempHKStr }));\r\n }\r\n }\r\n }}\r\n onClose={() => {\r\n tempHKStr = reservationArrivalListFilterObj.strHkStatusSerNo\r\n setSelectedAdvCheckInDirty(false);\r\n if (!selectedAdvCheckInClean && !selectedAdvCheckInOS && !selectedAdvCheckInDueOut\r\n && !selectedAdvCheckInInspec && !selectedAdvCheckInUnassign) {\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev, IsAdvanceCheckin: null, strHkStatusSerNo: tempHKStr,\r\n }));\r\n }\r\n else {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, strHkStatusSerNo: tempHKStr }));\r\n }\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillAdvCheckInDirty\");\r\n setColList(c);\r\n }}\r\n >\r\n Advance Check in + Dirty\r\n \r\n );\r\n };\r\n const fillRateCode = () => {\r\n return (\r\n {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, RateSerNo: parseInt(item.key) }));\r\n }}\r\n onClose={() => {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, RateSerNo: 0 }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillRateCode\");\r\n setColList(c);\r\n }}\r\n />\r\n );\r\n };\r\n const fillVip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {\r\n let temp = \"\";\r\n setSelectedVipStatus(item);\r\n if (item.length > 0) {\r\n for (let i = 0; i < item.length; i++) {\r\n if (i == item.length - 1) {\r\n temp = temp + item[i]\r\n }\r\n else {\r\n temp = temp + item[i] + \",\";\r\n }\r\n }\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, strVIPStatus: temp }));\r\n } else {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, strVIPStatus: temp }));\r\n }\r\n }}\r\n >\r\n
    \r\n {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, strVIPStatus: \"\" }));\r\n setSelectedVipStatus([]);\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillVip\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n const fillFloor = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {\r\n let temp = \"\";\r\n setSelectedFloor(item);\r\n if (item.length > 0) {\r\n item.map((d) => {\r\n temp = temp + d + \",\";\r\n });\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, strFloorSerNo: temp }));\r\n } else {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, strFloorSerNo: temp }));\r\n }\r\n }}\r\n >\r\n
    \r\n {\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, strFloorSerNo: \"\" }));\r\n setSelectedFloor([]);\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillFloor\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n
    \r\n );\r\n };\r\n // const fillSelAll = () => {\r\n // return (\r\n // {\r\n // setIsSelAll(isChecked)\r\n // if (isChecked) {\r\n // let keys = Object.keys(props.location.state[\"filterObj\"]);\r\n // let tempColList = [];\r\n // let tempColListKeys = [];\r\n // keys.forEach((x) => {\r\n // let temp = moreFilterOption.find((d) => d.Code === x)\r\n // if (temp != undefined) {\r\n // tempColList.push(temp)\r\n // tempColListKeys.push(temp.key)\r\n // }\r\n // })\r\n // let tempObj = moreFilterOption.find((d) => d.key == \"fillSelAll\")\r\n // tempColList.push(tempObj)\r\n // tempColListKeys.push(tempObj.key)\r\n // setColList(tempColList)\r\n // setColListKeys(tempColListKeys)\r\n // }\r\n // else {\r\n // setColList([])\r\n // setColListKeys([])\r\n // }\r\n // }}\r\n // onClose={() => {\r\n // // setColList([])\r\n // // setColListKeys([])\r\n // let c = [];\r\n // c = colList.filter((d) => d.key !== \"fillSelAll\");\r\n // setColList(c);\r\n // }}\r\n // >\r\n // Select All\r\n // \r\n // );\r\n // };\r\n\r\n // const fillSelAll = () => {\r\n // let tempArr = []\r\n // let tempKeyArr = []\r\n // for (let i = 0; i < moreFilterOption.length; i++) {\r\n // tempArr.push(moreFilterOption[i])\r\n // tempKeyArr.push(moreFilterOption[i].key)\r\n\r\n // if (i == moreFilterOption.length - 1) {\r\n // break;\r\n // }\r\n // }\r\n // setColList(tempArr)\r\n // setColListKeys(tempKeyArr)\r\n // }\r\n\r\n //#endregion\r\n\r\n //#region custom function for User Rights \r\n const fillUserRights = () => {\r\n if (currUser.ClientSerNo != undefined && currUser.UserID != undefined) {\r\n ManageRights(currUser.ClientSerNo, currUser.UserID, \"15,16,45,46,49,50,51,52,53,54,55,72\").then((d) => {\r\n setUserRightsData(d.data);\r\n if (d.data != undefined) {\r\n if (d.data.find((x) => x.RightsSerNo == \"16\").IsApply == false) {\r\n setIsRoomNoDisabled(true);\r\n }\r\n else {\r\n setIsRoomNoDisabled(false);\r\n }\r\n }\r\n })\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region Custom functions\r\n const fillPropertyParameter = () => {\r\n GetPropertyParameterByKeys(reservationObj.ClientSerNo, reservationObj.PropertySerNo, parameter).then(d => {\r\n if (d.data != undefined && d.data.length > 0) {\r\n let obj = d.data.find(x => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(obj.value);\r\n if (new Date(moment(obj.value).format(\"DD-MMM-YYYY\")).getTime() >\r\n new Date(moment(reservationArrivalListFilterObj.ArrivalDate).format(\"DD-MMM-YYYY\")).getTime()) {\r\n setTimeout(() => {\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev, ArrivalDate: moment(obj.value).format(\"DD-MMM-YYYY\")\r\n }));\r\n }, 50);\r\n }\r\n }\r\n let arrObj = d.data.find(x => x.key == \"ArrivalTime\");\r\n if (arrObj != undefined) {\r\n setArrivalTime(arrObj.value);\r\n let x = arrObj.value.split(\":\");\r\n setGraceTime(`${parseInt(x[0]) - 1}:${x[1]}`);\r\n }\r\n }\r\n });\r\n };\r\n const fillReservationInfoData = (reservationSerNo) => {\r\n if (reservationSerNo != 0) {\r\n GetReservationInfoData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), reservationSerNo)\r\n .then((d) => {\r\n if (d.data != undefined) {\r\n setReservationInfoData(d.data);\r\n }\r\n });\r\n }\r\n };\r\n const fillRoomInfo = (reservationSerNo) => {\r\n if (reservationSerNo != 0 && reservationSerNo != undefined) {\r\n manageReservationIndicator(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), reservationSerNo).then(d => {\r\n setIndiRoomTypeData(d.data);\r\n })\r\n }\r\n }\r\n const dueOutReservationInfoData = (dueOutResSerNo) => {\r\n GetReservationInfoData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), dueOutResSerNo)\r\n .then((d) => {\r\n if (d.data != undefined) {\r\n setDueOutResObj(d.data);\r\n }\r\n });\r\n };\r\n const fillRoomAtGlance = (ArrivalDate, RoomTypeSerNo) => {\r\n if (ArrivalDate && RoomTypeSerNo != 0) {\r\n GetArrivalStatistics(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo),\r\n ArrivalDate, RoomTypeSerNo).then((d) => {\r\n let tempData = []\r\n if (d.data != undefined) {\r\n tempData = d.data\r\n if (tempData.every((x) => x.Label !== \"Out of order\") == true) {\r\n tempData.splice(1, 0, { Label: \"Out of order\", value: 0 })\r\n }\r\n\r\n tempData.splice(2, 0, { Label: \"Sellable Rooms\", value: (d.data[0].value - d.data[1].value) })\r\n }\r\n setArrivalStatistics(tempData)\r\n })\r\n }\r\n }\r\n const fillGrid = (tile, IsDueOut) => {\r\n if (reservationArrivalListFilterObj.IsEarlyArrival == true) {\r\n reservationArrivalListFilterObj.IsArrivalOnSameDay = true\r\n }\r\n else if (reservationArrivalListFilterObj.IsArrivalOnSameDay == false) {\r\n reservationArrivalListFilterObj.IsArrivalOnSameDay = false\r\n }\r\n else {\r\n reservationArrivalListFilterObj.IsArrivalOnSameDay = null\r\n }\r\n console.log('InputObj', reservationArrivalListFilterObj);\r\n PostReservationArrivalListFilter(reservationArrivalListFilterObj).then(\r\n (d) => {\r\n if (d.data != undefined) {\r\n // setMultiActionMenu(assignedMenuDataMultiAction);\r\n setSearchStr(\"\")\r\n setSelectedCheckBoxData([]);\r\n setSelectUnAssignCheckBox(false);\r\n setIsCheckBoxDisable(false);\r\n setSelectArrDotCheckBox(false);\r\n setSelectAssignCheckBox(false);\r\n setSelectCheckedInCheckBox(false);\r\n fillRoomAtGlance(moment(reservationArrivalListFilterObj.ArrivalDate).format(\"DD-MMM-YYYY\"), selectRmType)\r\n console.log('ResList', d.data.ReservationList);\r\n // console.log('SharerResList', d.data.SharerResList);\r\n // console.log('PrimaryResList', d.data.PrimaryResList);\r\n // console.log('DOT ResList', d.data.DueOutList);\r\n // For Primary Res list\r\n d.data.ReservationList.forEach((x) => {\r\n if (x.ActualArrivalTime != null) {\r\n let y = new Date(moment(x.ArrivalDate).format(\"DD-MMM-YYYY\") + \" \" + x.ActualArrivalTime)\r\n x.ActualArrivalTime = moment(y).format(\"HH:mm\");\r\n }\r\n d.data.PrimaryResList.forEach((y) => {\r\n if (x.ReservationSerNo == y.SharerReservationSerNo) {\r\n x[\"IsPrimary\"] = true;\r\n }\r\n })\r\n x[\"isChecked\"] = false;\r\n x[\"isSharingResCheckedin\"] = false;\r\n });\r\n if (d.data.ReservationList.length === 0) {\r\n setReservationObj((prev) => ({ ...prev, ReservationSerNo: 1 }));\r\n setReservationInfoData((prev) => ({ ...prev, ReservationSerNo: 1 }));\r\n }\r\n if (tile !== undefined) {\r\n if (d.data.ReservationList.length < 1) {\r\n setSelectedGuestTile({})\r\n fillReservationInfoData(0);\r\n fillRoomInfo(0);\r\n setReservationObj((prev) => ({\r\n ...prev, ReservationSerNo: 0\r\n }));\r\n setIsIncognitoChanged(!isIncognitoChanged);\r\n setIsReloadArrivalDept(!isReloadArrivalDept);\r\n setIsReloadTransportation(!isReloadTransportation);\r\n }\r\n }\r\n if (selectedAdvCheckInDueOut || IsDueOut) { // for Advance Check in + Due out filter\r\n let newResList = []\r\n d.data.ReservationList.forEach((x) => {\r\n if (new Date(moment(x.DepartureDate).format(\"DD-MMM-YYYY\")).getTime() == new Date(moment(businessDate).format(\"DD-MMM-YYYY\")).getTime() &&\r\n x.IsAdvanceCheckin == true) {\r\n newResList.push(x)\r\n }\r\n // if (x.IsAdvanceCheckin == true && x.RoomSerNo != null && x.ReservationStatus == \"DIN\") {\r\n // d.data.DueOutList.map((y) => {\r\n // if (x.RoomSerNo == y.RoomSerNo) {\r\n // newResList = [...newResList, x];\r\n // }\r\n // });\r\n // }\r\n })\r\n setReservationArrivalList(newResList);\r\n setSharerResList(d.data.SharerResList);\r\n setArrivalListObj(newResList);\r\n setDueOutList(d.data.DueOutList);\r\n fillData(newResList, d.data.DueOutList, tile, d.data.SharerResList);\r\n }\r\n else {\r\n setSharerResList(d.data.SharerResList);\r\n setReservationArrivalList(d.data.ReservationList);\r\n setArrivalListObj(d.data.ReservationList);\r\n setDueOutList(d.data.DueOutList);\r\n fillData(d.data.ReservationList, d.data.DueOutList, tile, d.data.SharerResList);\r\n }\r\n }\r\n }\r\n );\r\n };\r\n const fillDefaultTileSelection = (data, dueOutdata, IsDot) => {\r\n if (data.length > 0) {\r\n setSelectedGuestTile(data[0])\r\n fillReservationInfoData(data[0].ReservationSerNo);\r\n fillRoomInfo(data[0].ReservationSerNo);\r\n setReservationObj((prev) => ({\r\n ...prev, ReservationSerNo: data[0].ReservationSerNo\r\n }));\r\n setIsIncognitoChanged(!isIncognitoChanged);\r\n setIsReloadArrivalDept(!isReloadArrivalDept);\r\n setIsReloadTransportation(!isReloadTransportation);\r\n if (IsDot == true) {\r\n if (data.find((x) => data[0].ReservationSerNo == x.ReservationSerNo)) {\r\n let obj = dueOutdata.find((x) => data[0].RoomSerNo == x.RoomSerNo);\r\n dueOutReservationInfoData(obj.ReservationSerNo);\r\n setDueOutResObj((prev) => ({ ...prev, ReservationSerNo: obj.ReservationSerNo }));\r\n setShowDotComp(true);\r\n }\r\n else {\r\n setShowDotComp(false);\r\n }\r\n }\r\n else {\r\n setShowDotComp(false);\r\n }\r\n }\r\n else {\r\n setSelectedGuestTile({})\r\n fillReservationInfoData(0);\r\n fillRoomInfo(0);\r\n setReservationObj((prev) => ({\r\n ...prev, ReservationSerNo: 0\r\n }));\r\n setIsIncognitoChanged(!isIncognitoChanged);\r\n setIsReloadArrivalDept(!isReloadArrivalDept);\r\n setIsReloadTransportation(!isReloadTransportation);\r\n }\r\n }\r\n const fillData = (reservationList, dueOutList, tile, sharerResList) => {\r\n let dueOutRoomsList = [];\r\n let unAssignedData = [];\r\n let assignedData = [];\r\n let checkedInData = [];\r\n let arrDotData = [];\r\n let arrRoomList = [];\r\n\r\n dueOutList.map((e) => {\r\n if (e.RoomSerNo != null) {\r\n dueOutRoomsList = [...dueOutRoomsList, e.RoomSerNo];\r\n }\r\n });\r\n reservationList.map((e) => {\r\n // if (e.NoOfRoom > 1 && moment(e.ArrivalDate).format(\"DD-MMM-YYYY\") == moment(businessDate).format(\"DD-MMM-YYYY\")) {\r\n // }\r\n if (e.IsSharer) {\r\n if (sharerResList) {\r\n let tempObj = sharerResList.filter((x) => e.SharerReservationSerNo == x.ReservationSerNo\r\n || e.SharerReservationSerNo == x.SharerReservationSerNo)\r\n tempObj.map((x) => {\r\n if (x.ReservationStatus == \"INH\") {\r\n e.isSharingResCheckedin = true\r\n }\r\n })\r\n }\r\n }\r\n if (e.IsPrimary) {\r\n if (sharerResList) {\r\n let obj = sharerResList.filter((x) => x.SharerReservationSerNo == e.ReservationSerNo)\r\n obj.map((x) => {\r\n if (x.ReservationStatus == \"INH\") {\r\n e.isSharingResCheckedin = true\r\n }\r\n })\r\n }\r\n }\r\n if (e.ReservationStatus === \"INH\") {\r\n checkedInData = [...checkedInData, e];\r\n }\r\n if (e.RoomSerNo == null && e.ReservationStatus === \"DIN\") {\r\n unAssignedData = [...unAssignedData, e];\r\n }\r\n if (e.RoomSerNo != null && e.ReservationStatus === \"DIN\") {\r\n //let uniqueObj = arrRoomList.filter((value, index, array) => array.indexOf(value) === index);\r\n // arrRoomList = arrRoomList.filter((x, i, a) => a.indexOf(x) == i)\r\n arrRoomList = [...arrRoomList, e.RoomSerNo];\r\n dueOutList.map((d) => {\r\n if (e.RoomSerNo == d.RoomSerNo) {\r\n arrDotData = [...arrDotData, e];\r\n }\r\n });\r\n let obj = arrRoomList.filter((x, i, a) => a.indexOf(x) == i && !dueOutRoomsList.includes(x));\r\n obj.map((d) => {\r\n if (d != null) {\r\n if (d === e.RoomSerNo) {\r\n assignedData = [...assignedData, e];\r\n }\r\n }\r\n });\r\n }\r\n });\r\n\r\n // CheckBoxes on SearchChange\r\n\r\n let IsUnassignedValid = true;\r\n let IsAssignedValid = true;\r\n let IsArrDotValid = true;\r\n let IsCheckedInValid = true;\r\n let checkedData = [];\r\n for (let i = 0; i < unAssignedData.length; i++) {\r\n if (unAssignedData[i].isChecked === false) {\r\n IsUnassignedValid = false;\r\n } else {\r\n checkedData.push(unAssignedData[i]);\r\n }\r\n }\r\n for (let i = 0; i < assignedData.length; i++) {\r\n if (assignedData[i].isChecked === false) {\r\n IsAssignedValid = false;\r\n } else {\r\n checkedData.push(assignedData[i]);\r\n }\r\n }\r\n for (let i = 0; i < arrDotData.length; i++) {\r\n if (arrDotData[i].isChecked === false) {\r\n IsArrDotValid = false;\r\n } else {\r\n checkedData.push(arrDotData[i]);\r\n }\r\n }\r\n for (let i = 0; i < checkedInData.length; i++) {\r\n if (checkedInData[i].isChecked === false) {\r\n IsCheckedInValid = false;\r\n } else {\r\n checkedData.push(checkedInData[i]);\r\n }\r\n }\r\n setSelectedCheckBoxData(checkedData);\r\n if (!IsUnassignedValid || unAssignedData.length === 0) {\r\n //setIsCheckBoxDisable(false);\r\n setSelectUnAssignCheckBox(false);\r\n }\r\n else {\r\n if (unAssignedData.length > 0) {\r\n setSelectUnAssignCheckBox(true);\r\n }\r\n }\r\n if (!IsAssignedValid || assignedData.length === 0) {\r\n //setIsCheckBoxDisable(false);\r\n setSelectAssignCheckBox(false);\r\n }\r\n else {\r\n if (assignedData.length > 0) {\r\n setSelectAssignCheckBox(true);\r\n }\r\n }\r\n if (!IsArrDotValid || arrDotData.length === 0) {\r\n //setIsCheckBoxDisable(false);\r\n setSelectArrDotCheckBox(false);\r\n }\r\n else {\r\n if (arrDotData.length > 0) {\r\n setSelectArrDotCheckBox(true);\r\n }\r\n }\r\n if (!IsCheckedInValid || checkedInData.length === 0) {\r\n //setIsCheckBoxDisable(false);\r\n setSelectCheckedInCheckBox(false);\r\n }\r\n else {\r\n if (checkedInData.length > 0) setSelectCheckedInCheckBox(true);\r\n }\r\n\r\n // default tile selection\r\n arrDotData = arrDotData.filter((x, i, a) => a.indexOf(x) == i)\r\n checkedInData = checkedInData.filter((x, i, a) => a.indexOf(x) == i)\r\n unAssignedData = unAssignedData.filter((x, i, a) => a.indexOf(x) == i)\r\n assignedData = assignedData.filter((x, i, a) => a.indexOf(x) == i)\r\n\r\n let tempArr = 0\r\n arrDotData.map((x) => {\r\n tempArr += x.NoOfRoom\r\n })\r\n setArrDotResCount(tempArr)\r\n\r\n let tempCheckedIn = 0\r\n checkedInData.map((x) => {\r\n tempCheckedIn += x.NoOfRoom\r\n })\r\n setArrResCount(tempCheckedIn)\r\n\r\n let tempUnAssign = 0\r\n unAssignedData.map((x) => {\r\n tempUnAssign += x.NoOfRoom\r\n })\r\n setUnAssignResCount(tempUnAssign)\r\n\r\n let tempAssign = 0\r\n assignedData.map((x) => {\r\n tempAssign += x.NoOfRoom\r\n })\r\n setAssignResCount(tempAssign)\r\n\r\n setReservationArrCheckedInData(checkedInData.sort((a, b) => a.RoomSerNo - b.RoomSerNo));\r\n setReservationArrUnAssignedData(unAssignedData);\r\n setReservationArrAssignedData(assignedData.sort((a, b) => a.RoomSerNo - b.RoomSerNo));\r\n setReservationArrDotData(arrDotData.sort((a, b) => a.RoomSerNo - b.RoomSerNo));\r\n\r\n // defaultTile selection\r\n if (tile != undefined) {\r\n if (unAssignedData.length > 0) {\r\n fillDefaultTileSelection(unAssignedData)\r\n }\r\n else if (assignedData.length > 0) {\r\n fillDefaultTileSelection(assignedData)\r\n }\r\n else if (arrDotData.length > 0) {\r\n fillDefaultTileSelection(arrDotData, dueOutList, true)\r\n }\r\n else if (checkedInData.length > 0) {\r\n fillDefaultTileSelection(checkedInData)\r\n }\r\n }\r\n\r\n };\r\n //#endregion\r\n //#region Events\r\n // event for User Rights\r\n\r\n const handleUserRights = async (strRightsSerNo) => {\r\n if (strRightsSerNo != undefined) {\r\n const userRightObj = userRightsData.find((x) => x.RightsSerNo == strRightsSerNo);\r\n if (userRightObj != undefined) {\r\n if (userRightObj.IsApply != undefined) {\r\n if (userRightObj.IsApply) {\r\n return true;\r\n } else {\r\n await confirm({\r\n Message: `${userRightObj.Name} : ${userRightObj.PromptMessage}`,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n }\r\n };\r\n\r\n // end event\r\n\r\n const handleResetFilters = () => {\r\n setSelectedCompany({ AgentName: \"Select\", AgentSerNo: 0 });\r\n setSelectedAgent({ AgentName: \"Select\", AgentSerNo: 0 });\r\n setReservationArrivalListFilterObj(defaultObj);\r\n // setSelectedBlock({ key: 0, value: \"Select\" });\r\n setSelectedResType({ key: 3, value: \"All\" });\r\n setSelectRmTypeSerNo(0)\r\n setSelectedAdvCheckInInspec(false);\r\n setSelectedAdvCheckUnassign(false);\r\n setSelectedAdvCheckInDueOut(false);\r\n setSelectedAdvCheckInClean(false);\r\n setSelectedAdvCheckInDirty(false);\r\n setSelectedAdvCheckInOS(false);\r\n setSelectedRmFeatureData([]);\r\n setValidationObj(defaultObj);\r\n setSelectedVipStatus([]);\r\n setSelectedHKStatus([]);\r\n setSelectedRmFeature([]);\r\n setSelectedMemLvl([]);\r\n setSelectedRes([1, 2]);\r\n setSelectedFloor([]);\r\n };\r\n const handleGuestTileOnClick = (d) => {\r\n console.log(\"selected >> \", d);\r\n if (moment(d.ArrivalDate).format(\"DD-MMM-YYYY\") === moment(businessDate).format(\"DD-MMM-YYYY\")) {\r\n for (let i = 0; i < assignedMenuData.length; i++) {\r\n let temp = assignedMenuData;\r\n if (d.IsAdvanceCheckin == true) {\r\n if (temp[i].key === \"IsAdvanceCheckin\") {\r\n temp[i].value = \"Remove Advance Check in\";\r\n // setAdvCheckIn(\"Remove Advance Check In\");\r\n }\r\n setIsAdvCheckin(true);\r\n }\r\n else {\r\n if (temp[i].key === \"IsAdvanceCheckin\") {\r\n temp[i].value = \"Advance Check in\"\r\n // setAdvCheckIn(\"Advance Check In\");\r\n }\r\n setIsAdvCheckin(false);\r\n }\r\n setActionMenu(temp)\r\n }\r\n }\r\n if (selectedGuestTile.ReservationSerNo !== d.ReservationSerNo) {\r\n setSelectedGuestTile(d)\r\n setIsIncognitoChanged(!isIncognitoChanged);\r\n setIsReloadArrivalDept(!isReloadArrivalDept);\r\n setIsReloadTransportation(!isReloadTransportation);\r\n setReservationObj((prev) => ({ ...prev, ReservationSerNo: d.ReservationSerNo }));\r\n fillReservationInfoData(d.ReservationSerNo);\r\n fillRoomInfo(d.ReservationSerNo);\r\n if (reservationArrDotData.find((x) => d.ReservationSerNo == x.ReservationSerNo)) {\r\n let obj = dueOutList.find((x) => d.RoomSerNo == x.RoomSerNo);\r\n dueOutReservationInfoData(obj.ReservationSerNo);\r\n setDueOutResObj((prev) => ({ ...prev, ReservationSerNo: obj.ReservationSerNo }));\r\n setShowDotComp(true);\r\n }\r\n else {\r\n setShowDotComp(false);\r\n }\r\n }\r\n else {\r\n setSelectedGuestTile(selectedGuestTile)\r\n setReservationObj((prev) => ({\r\n ...prev, ReservationSerNo: selectedGuestTile.ReservationSerNo,\r\n }));\r\n }\r\n };\r\n const handleCheckBoxClick = (isChecked, d, data) => {\r\n if (isChecked === true) {\r\n setSelectedCheckBoxData((prev) => [...prev, d]);\r\n data.forEach((x) => {\r\n if (x.ReservationSerNo == d.ReservationSerNo) {\r\n d.isChecked = true;\r\n }\r\n });\r\n } else {\r\n let temp = selectedCheckBoxData.filter((x) => x.ReservationSerNo != d.ReservationSerNo);\r\n setSelectedCheckBoxData(temp);\r\n let checkboxCount = 0;\r\n for (let i = 0; i < data.length; i++) {\r\n if (data[i].isChecked == false) {\r\n checkboxCount += 1;\r\n }\r\n if (data.length - 1 === checkboxCount) {\r\n setIsCheckBoxDisable(false);\r\n }\r\n }\r\n data.forEach((x) => {\r\n if (x.ReservationSerNo == d.ReservationSerNo) {\r\n d.isChecked = false;\r\n }\r\n });\r\n }\r\n };\r\n\r\n const handleAdvanceCheckin = async (d) => {\r\n let tempObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: d.ReservationSerNo,\r\n IsAdvanceCheckin: true\r\n }\r\n let result;\r\n await ManageAdvanceCheckin(tempObj).then((x) => {\r\n if (x.data.Code == \"200\" && x.data.ReturnValue == \"1\") {\r\n result = true\r\n }\r\n else {\r\n result = false\r\n }\r\n })\r\n return result;\r\n }\r\n const handleOnChangeMenu = (item, d) => {\r\n fillRoomAtGlance(moment(reservationArrivalListFilterObj.ArrivalDate).format(\"DD-MMM-YYYY\"), selectRmType)\r\n if (item.key == \"IsAdvanceCheckin\") {\r\n if (moment(d.ArrivalDate).format(\"DD-MMM-YYYY\") === moment(businessDate).format(\"DD-MMM-YYYY\")) {\r\n if (reservationArrCheckedInData.find((x) => d.ReservationSerNo == x.ReservationSerNo)) {\r\n alertFunction(\"Advance check in funcionality can not be performed on Arrived reservations\")\r\n }\r\n else {\r\n if (isAdvCheckin == true) {\r\n handleUserRights(\"52\").then(e => {\r\n if (e) {\r\n if (d.IsPMReservation == false) {\r\n handleReservationFields(d.ReservationSerNo, item.key, \"0\");\r\n d.IsAdvanceCheckin = false;\r\n }\r\n else {\r\n alertFunction(\"Advance check in action does not apply to PM reservations. This action cannot be performed.\")\r\n }\r\n }\r\n })\r\n }\r\n else if (isAdvCheckin == false) {\r\n handleUserRights(\"51\").then(e => {\r\n if (e) {\r\n //handleReservationFields(d.ReservationSerNo, item.key, \"1\");\r\n if (d.IsPMReservation == false) {\r\n handleAdvanceCheckin(d).then((x) => {\r\n d.IsAdvanceCheckin = x\r\n })\r\n fillGrid(selectedGuestTile)\r\n }\r\n else {\r\n alertFunction(\"Advance check in action does not apply to PM reservations. This action cannot be performed.\")\r\n }\r\n }\r\n })\r\n\r\n }\r\n }\r\n }\r\n else {\r\n alertFunction(\"Can not perform this task\")\r\n }\r\n }\r\n if (item.value == \"Cancel Reservation\") {\r\n handleUserRights(\"45\").then(e => {\r\n if (e) {\r\n if (d.IsPMReservation == false) {\r\n if (reservationArrCheckedInData.find((x) => x.ReservationSerNo == d.ReservationSerNo)) {\r\n alertFunction(\"Can not perfrom this task\")\r\n }\r\n else {\r\n setCancelPopupMode(\"CAN\")\r\n setShowCancelNoShowPopup(true);\r\n }\r\n }\r\n else {\r\n alertFunction(\"PM reservation cannot be allowed to be cancelled. This action cannot be performed.\")\r\n }\r\n }\r\n })\r\n }\r\n if (item.value == \"No Show Reservation\") {\r\n if (moment(d.ArrivalDate).format(\"DD-MMM-YYYY\") === moment(businessDate).format(\"DD-MMM-YYYY\")) {\r\n handleUserRights(\"46\").then(e => {\r\n if (e) {\r\n if (d.IsPMReservation == false) {\r\n if (reservationArrCheckedInData.find((x) => x.ReservationSerNo == d.ReservationSerNo)) {\r\n alertFunction(\"Can not perfrom this task\")\r\n }\r\n else {\r\n setCancelPopupMode(\"CAN\")\r\n setShowCancelNoShowPopup(true);\r\n }\r\n }\r\n else {\r\n alertFunction(\"PM reservation cannot be allowed to be performed as No Show.\")\r\n }\r\n }\r\n })\r\n }\r\n else {\r\n alertFunction(\"No show function can not be performed on future arrival\");\r\n }\r\n }\r\n if (item.value == \"Split Reservation\") {\r\n if (d.NoOfRoom > 1 && moment(d.ArrivalDate).format(\"DD-MMM-YYYY\") != moment(businessDate).format(\"DD-MMM-YYYY\")) {\r\n handleUserRights(\"49\").then(e => {\r\n if (e) {\r\n if (d.IsPMReservation == false) {\r\n handleSplitReservation();\r\n }\r\n else {\r\n alertFunction(\"Split reservation action does not apply to PM reservations. This action cannot be performed.\")\r\n }\r\n }\r\n })\r\n }\r\n else {\r\n alertFunction(\"Can not perform this task\")\r\n }\r\n }\r\n if (item.value == \"Cancel Check in\") {\r\n // fillReservationTransactionData(d.ReservationSerNo)\r\n if (d.IsPMReservation == true && d.BlockSerNo) {\r\n alertFunction(\"Cancel check in functionality is not applicable to Block PM reservations. This action cannot be performed.\");\r\n }\r\n else {\r\n handleCancelCheckin(d, item);\r\n }\r\n }\r\n if (item.value == \"Check in\") {\r\n if (moment(d.ArrivalDate).format(\"DD-MMM-YYYY\") === moment(businessDate).format(\"DD-MMM-YYYY\")) {\r\n if (reservationArrAssignedData.find((x) => d.ReservationSerNo == x.ReservationSerNo)) {\r\n handleCheckInResBtnClick();\r\n }\r\n // 12 May 2023 INNKEY-962 \r\n // else if (reservationArrDotData.find((x) => d.ReservationSerNo == x.ReservationSerNo)) {\r\n // if (d.isSharingResCheckedin == true) {\r\n // handleCheckInResBtnClick();\r\n // }\r\n // else {\r\n // alertFunction(\"Check in functionality can not be performed\");\r\n // }\r\n // }\r\n else {\r\n alertFunction(\"Check in functionality can not be performed\");\r\n }\r\n }\r\n else {\r\n alertFunction(\"Check in functionality can not be performed\");\r\n }\r\n }\r\n if (item.value == \"Auto Assign\") {\r\n if (reservationArrUnAssignedData.find((x) => d.ReservationSerNo == x.ReservationSerNo)) {\r\n if (d.IsPMReservation == false) {\r\n handleAutoAssignRoom([d]);\r\n }\r\n else {\r\n alertFunction(\"Auto assign functionality is not applicable to PM reservations. This action cannot be performed.\")\r\n }\r\n }\r\n else {\r\n alertFunction(\"Can not perform this task\");\r\n }\r\n }\r\n if (item.value == \"Assign / Re-Assign\") {\r\n if (d.NoOfRoom == 1 || d.NoOfRoom == 0) {\r\n handleUserRights(\"50\").then(e => {\r\n if (e) {\r\n if (d.IsPMReservation == false) {\r\n handleRmAssignmentData([d]);\r\n }\r\n else {\r\n alertFunction(\"Assign or reassign functionality is not applicable to PM reservations. This action cannot be performed.\")\r\n }\r\n }\r\n })\r\n }\r\n else {\r\n alertFunction(\"Only reservations with no. of rooms as 1 can be assigned with a room.\\n\" +\r\n \"Please split the reservation first and then proceed for this action.\")\r\n }\r\n }\r\n if (item.value == \"Unassign\") {\r\n if (reservationArrUnAssignedData.find((x) => d.ReservationSerNo == x.ReservationSerNo)) {\r\n alertFunction(\"No rooms assigned to this reservation and hence \" +\r\n \"this action cannot be performed.\")\r\n }\r\n // else if (reservationArrCheckedInData.find((x) => d.ReservationSerNo == x.ReservationSerNo)) {\r\n // alertFunction(\"Can not unassign this reservation\");\r\n // }\r\n else {\r\n handleUserRights(\"54\").then(e => {\r\n if (e) {\r\n if (d.IsPMReservation == false) {\r\n handleUnAssignRoom([d]);\r\n }\r\n else {\r\n alertFunction(\"Unassign functionality is not applicable to PM reservations. This action cannot be performed.\")\r\n }\r\n }\r\n })\r\n }\r\n }\r\n };\r\n const handleCancelCheckin = (d, item) => {\r\n ValidatedCancellableCheckinReservation(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo),\r\n d.ReservationSerNo.toString()).then((e) => {\r\n if (e.data != undefined && e.data.length > 0) {\r\n e.data.map((x) => {\r\n if (x.ReservationSerNo == d.ReservationSerNo) {\r\n alertFunction(\"This reservation has financial postings and hence cancel check in \\n\" +\r\n \"cannot be performed.\")\r\n }\r\n })\r\n }\r\n else {\r\n if (reservationArrCheckedInData.find((x) => d.ReservationSerNo == x.ReservationSerNo)) {\r\n handleUserRights(\"55\").then(async (e) => {\r\n if (e) {\r\n let IsCancelCheck = true\r\n IsCancelCheck = await innkeyAlert(`Are you sure you want to cancel the check in of\r\n ${d.GuestName} with arrival date as ${moment(d.ArrivalDate).format(\"DD-MMM-YYYY\")} and\r\n departure date as ${moment(d.DepartureDate).format(\"DD-MMM-YYYY\")} ?`)\r\n\r\n if (IsCancelCheck)\r\n handleReservationFields(d.ReservationSerNo, item.key, \"1\");\r\n }\r\n })\r\n }\r\n else {\r\n alertFunction(\"Can not perform this task\");\r\n }\r\n }\r\n })\r\n }\r\n const handleMultiCaseCancel = (item) => {\r\n let isValid = true\r\n let StrReservationSerNo = \"\"\r\n let CancellableResStr = []\r\n for (let i = 0; i < selectedCheckBoxData.length; i++) {\r\n if (selectedCheckBoxData[i].ReservationStatus !== \"INH\") {\r\n alertFunction(\"Cancel Check in functionality cannot be performed as \\n\" +\r\n \"one or more selected reservation has not checked in.\");\r\n isValid = false;\r\n break;\r\n }\r\n }\r\n if (isValid) {\r\n let IsCancelCheck = true;\r\n selectedCheckBoxData.map((x) => {\r\n StrReservationSerNo = StrReservationSerNo + x.ReservationSerNo + \",\";\r\n });\r\n ValidatedCancellableCheckinReservation(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo),\r\n StrReservationSerNo).then(async (d) => {\r\n if (d.data != undefined && d.data.length > 0) {\r\n d.data.map((x) => {\r\n CancellableResStr.push((x.ReservationSerNo).toString())\r\n })\r\n }\r\n if (CancellableResStr.length > 0) {\r\n IsCancelCheck = await innkeyAlert(`Cancel check in cannot be performed for reservations with\r\n financial postings. This action will only be performed on the\r\n reservations without any financial postings. Would you like to\r\n continue?`)\r\n if (IsCancelCheck) {\r\n StrReservationSerNo = StrReservationSerNo.split(\",\").sort((a, b) => a - b) // sort Array in ascending order\r\n if (StrReservationSerNo[0] == \"\") {\r\n StrReservationSerNo.shift() // to remove extra element from array\r\n }\r\n if (StrReservationSerNo.join(\"\") == CancellableResStr.join(\"\")) {\r\n alertFunction(`These reservations has financial postings and hence cancel check in cannot be performed.`)\r\n }\r\n else if (CancellableResStr.length == 0) {\r\n handleMultiResFields(selectedCheckBoxData, \"IsCancelCheckin\", \"1\")\r\n }\r\n else {\r\n let obj = StrReservationSerNo.filter((x) => !CancellableResStr.includes(x));\r\n let selectedData = []\r\n obj.map((x) => {\r\n selectedData.push(reservationArrivalList.find((y) => parseInt(x) == y.ReservationSerNo))\r\n })\r\n handleMultiCancelCheckin(selectedData, item)\r\n }\r\n }\r\n // ValidatedCancellableCheckinReservation(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo),\r\n // StrReservationSerNo).then((d) => {\r\n // if (d.data != undefined && d.data.length > 0) {\r\n // d.data.map((x) => {\r\n // CancellableResStr.push((x.ReservationSerNo).toString())\r\n // })\r\n // }\r\n\r\n // })\r\n }\r\n else {\r\n handleMultiResFields(selectedCheckBoxData, \"IsCancelCheckin\", \"1\")\r\n }\r\n })\r\n }\r\n }\r\n const handleMultiCancelCheckin = async (selectedData, item) => { // Need to change\r\n // let tempData = []\r\n // for (let i = 0; i < selectedData.length; i++) {\r\n // let IsCancelCheckin = true\r\n // IsCancelCheckin = await innkeyAlert\r\n // (`Are you sure you want to cancel the check in of ${selectedData[i].GuestName} \r\n // with arrival date as ${moment(selectedData[i].ArrivalDate).format(\"DD-MMM-YYYY\")} and\r\n // departure date as ${moment(selectedData[i].DepartureDate).format(\"DD-MMM-YYYY\")} ?`)\r\n // if (IsCancelCheckin) {\r\n // tempData.push(selectedData[i])\r\n // //handleReservationFields(selectedData[i].ReservationSerNo, item.key, \"1\");\r\n // }\r\n // }\r\n handleMultiResFields(selectedData, item.key, \"1\")\r\n }\r\n const handleMultiActionMenu = (item) => {\r\n if (moment(reservationArrivalListFilterObj.ArrivalDate).format(\"DD-MMM-YYYY\")\r\n === moment(businessDate).format(\"DD-MMM-YYYY\") && item.key == \"IsAdvanceCheckin\") {\r\n if (selectedCheckBoxData.find((x) => x.ReservationStatus == \"INH\")) {\r\n alertFunction(\"Can not perform this task\")\r\n }\r\n else if (multiAdvCheckin === \"All false\") {\r\n handleUserRights(\"52\").then(e => {\r\n if (e) { // Need to change\r\n if (selectedCheckBoxData.find((x) => x.IsPMReservation == true)) {\r\n alertFunction(\"Advance check in action does not apply to PM reservations. This action cannot be performed.\")\r\n }\r\n else {\r\n handleMultiResFields(selectedCheckBoxData, item.key, \"1\");\r\n }\r\n }\r\n })\r\n }\r\n else if (multiAdvCheckin === \"All true\") {\r\n handleUserRights(\"51\").then(e => {\r\n if (e) {\r\n if (selectedCheckBoxData.find((x) => x.IsPMReservation == true)) {\r\n alertFunction(\"Advance check in action does not apply to PM reservations. This action cannot be performed.\")\r\n }\r\n else {\r\n handleMultiResFields(selectedCheckBoxData, item.key, \"0\");\r\n }\r\n }\r\n })\r\n }\r\n else {\r\n alertFunction(\"One or more guest tiles have already advance check in. \\n\" +\r\n \"Can not perform this task\");\r\n }\r\n }\r\n else if (moment(reservationArrivalListFilterObj.ArrivalDate).format(\"DD-MMM-YYYY\") !==\r\n moment(businessDate).format(\"DD-MMM-YYYY\") && item.key == \"IsAdvanceCheckin\") {\r\n alertFunction(\"Can not perform this task\")\r\n }\r\n if (moment(reservationArrivalListFilterObj.ArrivalDate).format(\"DD-MMM-YYYY\") !== moment(businessDate).format(\"DD-MMM-YYYY\")\r\n && item.value === \"Split Reservation\") {\r\n if (selectedCheckBoxData.find((d) => d.NoOfRoom < 2)) {\r\n alertFunction(\"Can not perform split reservation\");\r\n }\r\n else {\r\n handleUserRights(\"49\").then(d => {\r\n if (d) {\r\n if (selectedCheckBoxData.find((x) => x.IsPMReservation == false)) {\r\n handleMultipleSplitReservations(selectedCheckBoxData);\r\n }\r\n else {\r\n alertFunction(\"Split reservation action does not apply to PM reservations. This action cannot be performed.\")\r\n }\r\n }\r\n })\r\n }\r\n }\r\n else if (moment(reservationArrivalListFilterObj.ArrivalDate).format(\"DD-MMM-YYYY\") == moment(businessDate).format(\"DD-MMM-YYYY\")\r\n && item.value === \"Split Reservation\") {\r\n alertFunction(\"Can not perform this task\")\r\n }\r\n if (item.value == \"Cancel Check in\") {\r\n handleUserRights(\"55\").then((e) => {\r\n if (e) {\r\n if (selectedCheckBoxData.find((x) => x.IsPMReservation == true && x.BlockSerNo)) {\r\n alertFunction(\"Cancel check in functionality is not applicable to Block PM reservations. This action cannot be performed.\")\r\n }\r\n else {\r\n handleMultiCaseCancel(item)\r\n }\r\n }\r\n })\r\n }\r\n if (item.value == \"Auto Assign\") {\r\n if (selectedCheckBoxData.find((x) => x.ReservationStatus == \"INH\")) {\r\n alertFunction('One or more reservations are already assigned hence can not perform this task')\r\n }\r\n else if (selectedCheckBoxData.find((x) => x.RoomSerNo !== null)) {\r\n alertFunction('One or more reservations are already assigned hence can not perform this task')\r\n }\r\n else {\r\n if (selectedCheckBoxData.find((x) => x.IsPMReservation == true)) {\r\n alertFunction(\"Auto assign functionality is not applicable to PM reservations. This action cannot be performed.\")\r\n }\r\n else {\r\n handleAutoAssignRoom(selectedCheckBoxData)\r\n }\r\n }\r\n }\r\n if (item.value == \"Assign / Re-Assign\") {\r\n handleUserRights(\"50\").then(e => { // Need to Change\r\n if (e) {\r\n if (selectedCheckBoxData.find((x) => x.IsPMReservation == true)) {\r\n alertFunction(\"Assign or reassign functionality is not applicable to PM reservations. This action cannot be performed.\")\r\n }\r\n else {\r\n let count = [];\r\n selectedCheckBoxData.map((e) => {\r\n SharerResList.map((x) => {\r\n if (x.ReservationSerNo == e.SharerReservationSerNo\r\n || x.SharerReservationSerNo == e.ReservationSerNo) {\r\n if (moment(x.ArrivalDate).format(\"DD-MMM-YYYY\") !==\r\n moment(businessDate).format(\"DD-MMM-YYYY\")) {\r\n count.push(x)\r\n }\r\n }\r\n if (x.SharerReservationSerNo && e.SharerReservationSerNo) {\r\n if (x.SharerReservationSerNo == e.SharerReservationSerNo) {\r\n if (moment(x.ArrivalDate).format(\"DD-MMM-YYYY\") !==\r\n moment(businessDate).format(\"DD-MMM-YYYY\")) {\r\n count.push(x)\r\n }\r\n }\r\n }\r\n })\r\n })\r\n if (selectedCheckBoxData.find((x) => x.ReservationStatus == \"INH\")) {\r\n alertFunction(\"Can not perform this functionality as one or more reservation is already checked in\");\r\n }\r\n else {\r\n if (selectedCheckBoxData.every((x) => x.NoOfRoom == 1 || x.NoOfRoom == 0)) {\r\n if (count.length > 0) {\r\n alertFunction(\"This action cannot be performed. One or more selected tiles has sharer that has a different arrival date.\")\r\n }\r\n else {\r\n handleRmAssignmentData(selectedCheckBoxData);\r\n }\r\n }\r\n else {\r\n alertFunction(\"Only reservations with no. of rooms as 1 can be assigned with a room. Please split the reservation first and then proceed for this action.\");\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }\r\n if (item.value == \"Swap\") {\r\n // moment(selectedCheckBoxData[0].ArrivalDate).format(\"DD-MMM-YYYY\") ==\r\n // moment(businessDate).format(\"DD-MMM-YYYY\") && \r\n // if (selectedCheckBoxData.find((d) => d.ReservationStatus == \"INH\")) {\r\n // alertFunction(\"Can not perform this task\");\r\n // }\r\n // else if (selectedCheckBoxData.find((d) => d.RoomNo == null)) {\r\n // alertFunction(\"Can not perform this task\");\r\n // }\r\n if (selectedCheckBoxData.length !== 2) {\r\n alertFunction(\"Please select only two guest tiles\");\r\n }\r\n else {\r\n handleUserRights(\"53\").then(e => {\r\n if (e) {\r\n if (selectedCheckBoxData.find((x) => x.isSharingResCheckedin == false)) {\r\n handleSwapRoom(selectedCheckBoxData);\r\n }\r\n else { // Changed\r\n alertFunction(\"One or more sharing reservation has already checked in hence can not perfrom Swap.\")\r\n }\r\n }\r\n })\r\n }\r\n }\r\n // else if (moment(selectedCheckBoxData[0].ArrivalDate).format(\"DD-MMM-YYYY\") !==\r\n // moment(businessDate).format(\"DD-MMM-YYYY\") && item.value == \"Swap\") {\r\n // alertFunction(\"Can not perform this task\");\r\n // }\r\n if (\r\n // moment(selectedCheckBoxData[0].ArrivalDate).format(\"DD-MMM-YYYY\") ==\r\n // moment(businessDate).format(\"DD-MMM-YYYY\") && \r\n item.value == \"Unassign\") {\r\n handleUserRights(\"54\").then(e => {\r\n if (e) {\r\n if (selectedCheckBoxData.find((d) => d.RoomSerNo == null)) {\r\n alertFunction(\"Can not perform this task\")\r\n }\r\n else {\r\n if (selectedCheckBoxData.find((x) => x.IsPMReservation == true)) {\r\n alertFunction(\"Unassign functionality is not applicable to PM reservations. This action cannot be performed.\")\r\n }\r\n else {\r\n handleUnAssignRoom(selectedCheckBoxData); // Need to Change\r\n }\r\n }\r\n }\r\n })\r\n }\r\n // else if (moment(selectedCheckBoxData[0].ArrivalDate).format(\"DD-MMM-YYYY\") !==\r\n // moment(businessDate).format(\"DD-MMM-YYYY\") && item.value == \"Unassign\") {\r\n // alertFunction(\"Can not perform this task\");\r\n // }\r\n }\r\n const handleTimeChange = (item, d) => {\r\n if (selectedCheckBoxData.length < 2) {\r\n if (selectedGuestTile.ReservationStatus != \"INH\") {\r\n handleReservationFields(d.ReservationSerNo, item.key, item.value.toString());\r\n fillGrid(selectedGuestTile);\r\n }\r\n else {\r\n alertFunction(\"Can not change time for arrived reservation.\")\r\n }\r\n }\r\n else {\r\n alertFunction(\"Individual actions are not allowed\")\r\n }\r\n };\r\n const handleOnCloseRmAssignmentPopupAssign = () => {\r\n setShowRoomAssignmentPopup(false);\r\n reservationArrivalList.forEach((x) => {\r\n x.isChecked = false;\r\n })\r\n fillGrid(selectedGuestTile);\r\n };\r\n const handleUnAssignRoom = (selectedData) => {\r\n let selectedReservationSerNo = \"\"\r\n let IsUnassignValid = true\r\n\r\n if (selectedData != undefined) { // Need to Change\r\n for (let i = 0; i < selectedData.length; i++) {\r\n if (selectedData[i].IsPrimary) {\r\n if (selectedData[i].ReservationStatus != \"INH\") {\r\n if (selectedData[i].isSharingResCheckedin == true) {\r\n alertFunction(\"One or more sharing reservation has already checked in. This action cannot be performed.\")\r\n IsUnassignValid = false\r\n break;\r\n }\r\n }\r\n selectedReservationSerNo = selectedReservationSerNo + selectedData[i].ReservationSerNo + ','\r\n }\r\n else if (selectedData[i].IsSharer) {\r\n if (selectedData[i].ReservationStatus != \"INH\") {\r\n if (selectedData[i].isSharingResCheckedin == true) {\r\n alertFunction(\"One or more sharing reservation has already checked in. This action cannot be performed.\")\r\n IsUnassignValid = false\r\n break;\r\n }\r\n }\r\n selectedReservationSerNo = selectedReservationSerNo + selectedData[i].SharerReservationSerNo + ','\r\n }\r\n else {\r\n selectedReservationSerNo = selectedReservationSerNo + selectedData[i].ReservationSerNo + ','\r\n }\r\n }\r\n selectedReservationSerNo = selectedReservationSerNo.split(\",\")\r\n selectedReservationSerNo = selectedReservationSerNo.filter((x, i, a) => a.indexOf(x) == i && x != \"\").join(\",\");\r\n if (IsUnassignValid) {\r\n GetRoomAssignmentUnAssignRoom(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo),\r\n selectedReservationSerNo).then(d => {\r\n if (d.data != undefined) {\r\n if (d.data.Code == \"success\") {\r\n if (selectedData.length == 1) {\r\n alertFunction(d.data.Message)\r\n }\r\n setSelectedGuestTile((prev) => ({ ...prev, RoomSerNo: null }))\r\n }\r\n else {\r\n alertFunction(d.data.Message)\r\n }\r\n }\r\n })\r\n }\r\n fillGrid(selectedGuestTile);\r\n }\r\n }\r\n const handleSwapRoom = (selectedData) => {\r\n if (selectedData != undefined) {\r\n let From = selectedData[0]\r\n let To = selectedData[1]\r\n // do not required this validation -- by ketan on 25th jan 2023 ref ticket - INNKEY-695\r\n // if (From.ReservationStatus == \"INH\" || To.ReservationStatus == \"INH\") {\r\n // alertFunction(\"Room is already assigned to other Reservation\");\r\n // }\r\n if (From.RoomSerNo == null) {\r\n From.RoomSerNo = 0\r\n }\r\n if (To.RoomSerNo == null) {\r\n To.RoomSerNo = 0\r\n }\r\n let obj = {};\r\n let reslist = [];\r\n let isValidSwap = true;\r\n if (To.IsSharer == true && From.IsSharer == true) {\r\n selectedData.forEach((d) => {\r\n obj = { ReservationSerNo: d.SharerReservationSerNo, RoomSerNo: d.RoomSerNo }\r\n reslist.push(obj);\r\n })\r\n }\r\n else {\r\n if (From.IsPMReservation || To.IsPMReservation) {\r\n alertFunction(\"Swap is not be applicable to PM Reservation. Can not perform the task\")\r\n isValidSwap = false\r\n }\r\n else {\r\n if (From.IsSharer == true) {\r\n obj = { ReservationSerNo: From.SharerReservationSerNo, RoomSerNo: From.RoomSerNo }\r\n reslist.push(obj)\r\n reslist.push({\r\n ReservationSerNo: parseInt(To.ReservationSerNo),\r\n RoomSerNo: To.RoomSerNo\r\n })\r\n }\r\n else if (To.IsSharer == true) {\r\n reslist.push({\r\n ReservationSerNo: parseInt(From.ReservationSerNo),\r\n RoomSerNo: From.RoomSerNo\r\n })\r\n obj = { ReservationSerNo: To.SharerReservationSerNo, RoomSerNo: To.RoomSerNo }\r\n reslist.push(obj);\r\n }\r\n else {\r\n selectedData.forEach((d) => {\r\n obj = { ReservationSerNo: parseInt(d.ReservationSerNo), RoomSerNo: d.RoomSerNo }\r\n reslist.push(obj);\r\n })\r\n }\r\n if (To.RoomSerNo == From.RoomSerNo) {\r\n if (To.RoomSerNo != 0 && From.RoomSerNo != 0) {\r\n alertFunction(\"Room assignments cannot be swapped between sharers.\");\r\n }\r\n else {\r\n alertFunction(\"Swap function can not be performed between two unassign reservations.\");\r\n }\r\n isValidSwap = false\r\n }\r\n else if (To.ReservationStatus == \"INH\" || From.ReservationStatus == \"INH\") {\r\n alertFunction(\"Reservation has already checked in, Can not perform swap functionality.\");\r\n isValidSwap = false\r\n }\r\n }\r\n }\r\n if (isValidSwap) {\r\n let FromReservationSerNo = reslist[0].ReservationSerNo;\r\n let ToReservationSerNo = reslist[1].ReservationSerNo;\r\n GetRoomAssignmentSwapRoom(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo),\r\n FromReservationSerNo, reslist[0].RoomSerNo, ToReservationSerNo, reslist[1].RoomSerNo).then(d => {\r\n if (d.data != undefined) {\r\n alertFunction(d.data.Message);\r\n }\r\n fillGrid(selectedGuestTile);\r\n })\r\n }\r\n }\r\n }\r\n const handleRoomUpDwnGrade = async (obj, Mode, selectedData, RoomNo) => {\r\n let IsUpgradable = false;\r\n let IsDowngradable = false;\r\n if (Mode == \"Direct\") {\r\n if (selectedData.RoomTypeSeq < obj.Sequence) {\r\n IsUpgradable = await innkeyAlert(\"Would you like to upgrade the room type of this reservation\");\r\n if (IsUpgradable) {\r\n setShowUpgradeReasonModalPopup(true);\r\n return \"Upgrd\";\r\n }\r\n else {\r\n fillGrid(selectedGuestTile)\r\n return null;\r\n }\r\n }\r\n else if (selectedData.RoomTypeSeq > obj.Sequence) {\r\n IsDowngradable = await innkeyAlert(\"Would you like to downgrade the room type of this reservation\");\r\n if (IsDowngradable) {\r\n setShowUpgradeReasonModalPopup(true);\r\n return \"Dwngrd\";\r\n }\r\n else {\r\n fillGrid(selectedGuestTile)\r\n return null;\r\n }\r\n }\r\n else if (selectedData.RoomTypeToChargeSeq == obj.Sequence) {\r\n return \"EqlSeq\";\r\n }\r\n }\r\n }\r\n const handleOnBlurRoomAssignment = (v, d) => {\r\n handleUserRights(\"15\").then(o => {\r\n if (o) {\r\n if (v === \"\" && d.RoomSerNo == null) {\r\n alertFunction(\"Room already unassigned\");\r\n }\r\n else if (d.ReservationStatus === \"INH\") {\r\n if (v === \"\") {\r\n alertFunction(\"Room can not be unassign\");\r\n }\r\n else {\r\n alertFunction(\"Room can not be reassign\");\r\n }\r\n }\r\n else if (v === \"\") {\r\n handleUnAssignRoom([d]);\r\n }\r\n else {\r\n let selectedResSerNo;\r\n let roomSerNo;\r\n let IsAssignValid = true\r\n if (d.ReservationStatus != \"INH\") {\r\n if (d.isSharingResCheckedin == true) {\r\n alertFunction(\"One or more sharing reservation has already checked in. This action cannot be performed.\")\r\n IsAssignValid = false\r\n fillGrid({})\r\n }\r\n }\r\n if (d.IsSharer == true) {\r\n selectedResSerNo = d.SharerReservationSerNo;\r\n }\r\n else {\r\n selectedResSerNo = d.ReservationSerNo;\r\n }\r\n if (d.NoOfRoom > 1) {\r\n alertFunction(\"Only reservations with no. of rooms as 1 can be assigned with a room.\"\r\n + \"Please split the reservation first and then proceed for this action.\")\r\n IsAssignValid = false\r\n }\r\n if (IsAssignValid) {\r\n let obj\r\n ValidateRoomForUpDowngrad(currUser.ClientSerNo, currUser.PropertySerNo, v).then((resp) => {\r\n console.log(resp.data)\r\n obj = resp.data;\r\n roomSerNo = obj.RoomSerNo\r\n setSelectedRoomSerNo(obj.RoomSerNo)\r\n if (obj.ResultMessage == \"Success\") {\r\n handleRoomUpDwnGrade(obj, \"Direct\", d).then((z) => {\r\n if (z == \"Upgrd\" || z == \"Dwngrd\") {\r\n setRoomDetails(resp.data)\r\n setSelectedRoomNo(v)\r\n }\r\n else {\r\n if (z == \"EqlSeq\") {\r\n handleUserRights(\"50\").then(e => {\r\n if (e) {\r\n GetRoomAssignmentAssignRoom(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo),\r\n selectedResSerNo, parseInt(roomSerNo), 0, \"0\").then((e) => {\r\n if (e.data != undefined) {\r\n if (e.data.Code === \"success\") {\r\n alertFunction(e.data.Message);\r\n setSelectedGuestTile((prev) => ({ ...prev, RoomNo: v, RoomSerNo: parseInt(roomSerNo) }));\r\n fillGrid({})\r\n }\r\n else {\r\n setReservationArrivalList(reservationArrivalList);\r\n alertFunction(e.data.Message);\r\n }\r\n }\r\n })\r\n }\r\n else {\r\n }\r\n })\r\n }\r\n }\r\n })\r\n }\r\n else {\r\n alertFunction(\"Invalid Room No.\");\r\n reservationArrivalList.forEach((x) => {\r\n if (x.ReservationSerNo === d.ReservationSerNo) {\r\n if (d.RoomSerNo == null) {\r\n x.RoomSerNo = null\r\n x.RoomNo = \"\"\r\n }\r\n else {\r\n x.RoomSerNo = d.RoomSerNo\r\n x.RoomNo = selectedRoomNo\r\n }\r\n }\r\n })\r\n }\r\n })\r\n }\r\n }\r\n }\r\n })\r\n }\r\n const handleSplitReservation = async () => {\r\n let IsChangeable = true;\r\n IsChangeable = await innkeyAlert(\r\n \" You are about to split the tile to individual tiles, \\n \" +\r\n \" this action cannot be reversed once performed. \\n\" +\r\n \" Would you like to continue?\"\r\n );\r\n if (IsChangeable) {\r\n let tempObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: selectedGuestTile.ReservationSerNo,\r\n }\r\n ManageSplitReservation(tempObj).then((d) => {\r\n if (d.data != undefined) {\r\n fillGrid(selectedGuestTile);\r\n }\r\n });\r\n }\r\n };\r\n const handleOnSearchChange = (e) => {\r\n setSearchStr(e)\r\n let filterData = reservationArrivalList.filter((obj) => {\r\n if (obj.RoomNo == null) {\r\n return obj.GuestName.toLowerCase().includes(e.toLowerCase());\r\n } else {\r\n return (\r\n obj.GuestName.toLowerCase().includes(e.toLowerCase()) || obj.RoomNo.toString().includes(e)\r\n );\r\n }\r\n });\r\n setArrivalListObj(filterData);\r\n fillData(filterData, dueOutList);\r\n };\r\n const handleCheckinBtnDisable = () => {\r\n let isDisable = false\r\n if (selectedCheckBoxData.length > 0) {\r\n selectedCheckBoxData.map((x) => {\r\n if (x.RoomSerNo == null || x.ReservationStatus == \"INH\"\r\n || reservationArrDotData.find((d) => d.ReservationSerNo == x.ReservationSerNo)) {\r\n isDisable = true\r\n }\r\n // else {\r\n // isDisable = false\r\n // }\r\n })\r\n }\r\n else {\r\n if (selectedGuestTile.RoomSerNo == null || selectedGuestTile.ReservationStatus == \"INH\"\r\n || reservationArrDotData.find((d) => d.ReservationSerNo == selectedGuestTile.ReservationSerNo)) {\r\n isDisable = true\r\n }\r\n else {\r\n isDisable = false\r\n }\r\n }\r\n return isDisable;\r\n }\r\n const handleCheckInResBtnClick = async () => {\r\n let isValidCheckIn = true\r\n let tempObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n }\r\n if (selectedGuestTile.RoomSerNo != null) {\r\n if (moment(businessDate).format(\"DD-MMM-YYYY\") == moment(selectedGuestTile.ArrivalDate).format(\"DD-MMM-YYYY\")) {\r\n if (selectedGuestTile.IsPMReservation && selectedGuestTile.BlockSerNo) {\r\n alertFunction(\"Check in functionality is not applicable on Block PM Reservation. Can not perform this task\")\r\n isValidCheckIn = false\r\n }\r\n else if (selectedGuestTile.IsPrimary) {\r\n let StrGuestName = []\r\n reservationArrivalList.map((x) => {\r\n if (x.ReservationStatus != \"INH\") {\r\n if (x.SharerReservationSerNo == selectedGuestTile.ReservationSerNo) {\r\n StrGuestName = [...StrGuestName, x.GuestName]\r\n }\r\n }\r\n })\r\n let IsChangeable = true;\r\n if (StrGuestName.length > 0) {\r\n IsChangeable = await innkeyAlert(`Would you like to check in ${StrGuestName.join(\",\")} as well?`);\r\n }\r\n if (IsChangeable) {\r\n tempObj = {\r\n ...tempObj, ReservationSerNo: selectedGuestTile.ReservationSerNo, WithSharer: true\r\n }\r\n }\r\n else {\r\n tempObj = {\r\n ...tempObj, ReservationSerNo: selectedGuestTile.ReservationSerNo, WithSharer: false\r\n }\r\n }\r\n }\r\n else if (selectedGuestTile.IsSharer) {\r\n let StrGuestName = []\r\n reservationArrivalList.map((x) => {\r\n if (x.ReservationStatus != \"INH\") {\r\n if (selectedGuestTile.SharerReservationSerNo == x.ReservationSerNo\r\n || selectedGuestTile.SharerReservationSerNo == x.SharerReservationSerNo\r\n && selectedGuestTile.ReservationSerNo !== x.ReservationSerNo) {\r\n StrGuestName = [...StrGuestName, x.GuestName]\r\n }\r\n }\r\n })\r\n let IsChangeable = true;\r\n if (StrGuestName.length > 0) {\r\n IsChangeable = await innkeyAlert(`Would you like to check in ${StrGuestName.join(\",\")} as well?`);\r\n }\r\n if (IsChangeable) {\r\n tempObj = {\r\n ...tempObj, ReservationSerNo: selectedGuestTile.SharerReservationSerNo, WithSharer: true\r\n }\r\n }\r\n else {\r\n tempObj = {\r\n ...tempObj, ReservationSerNo: selectedGuestTile.ReservationSerNo, WithSharer: false\r\n }\r\n }\r\n }\r\n else {\r\n tempObj = {\r\n ...tempObj, ReservationSerNo: selectedGuestTile.ReservationSerNo, WithSharer: false\r\n }\r\n }\r\n if (isValidCheckIn) {\r\n console.log(tempObj);\r\n EditCheckedInReservation(tempObj).then((d) => {\r\n if (d.data != undefined) {\r\n alertFunction(d.data.Message);\r\n }\r\n })\r\n fillGrid(selectedGuestTile);\r\n }\r\n }\r\n }\r\n else {\r\n alertFunction(\"Room is not assigned to the reservation\");\r\n }\r\n };\r\n const handleMultiCheckInResBtnClick = () => {\r\n let isValidCheckIn = true\r\n let tempArr = []\r\n let tempObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n }\r\n selectedCheckBoxData.map(async (f) => {\r\n if (f.RoomSerNo != null) {\r\n if (moment(businessDate).format(\"DD-MMM-YYYY\") == moment(f.ArrivalDate).format(\"DD-MMM-YYYY\")) {\r\n if (f.IsPMReservation && f.BlockSerNo) {\r\n alertFunction(\"Check in functionality is not applicable on Block PM Reservation. Can not perform this task\")\r\n isValidCheckIn = false\r\n }\r\n else if (f.IsPrimary) {\r\n let StrGuestName = []\r\n reservationArrivalList.map((x) => {\r\n if (x.ReservationStatus != \"INH\") {\r\n if (x.SharerReservationSerNo == f.ReservationSerNo) {\r\n StrGuestName = [...StrGuestName, x.GuestName]\r\n }\r\n }\r\n })\r\n let IsChangeable = true;\r\n if (StrGuestName.length > 0) {\r\n IsChangeable = await innkeyAlert(`Would you like to check in ${StrGuestName.join(\",\")} as well?`);\r\n }\r\n if (IsChangeable) {\r\n tempObj = {\r\n ...tempObj, ReservationSerNo: f.ReservationSerNo, WithSharer: true\r\n }\r\n tempArr.push(tempObj)\r\n }\r\n else {\r\n tempObj = {\r\n ...tempObj, ReservationSerNo: f.ReservationSerNo, WithSharer: false\r\n }\r\n tempArr.push(tempObj)\r\n }\r\n }\r\n else if (f.IsSharer) {\r\n let StrGuestName = []\r\n reservationArrivalList.map((x) => {\r\n if (x.ReservationStatus != \"INH\") {\r\n if (f.SharerReservationSerNo == x.ReservationSerNo\r\n || f.SharerReservationSerNo == x.SharerReservationSerNo\r\n && f.ReservationSerNo !== x.ReservationSerNo) {\r\n StrGuestName = [...StrGuestName, x.GuestName]\r\n }\r\n }\r\n })\r\n let IsChangeable = true;\r\n if (StrGuestName.length > 0) {\r\n IsChangeable = await innkeyAlert(`Would you like to check in ${StrGuestName.join(\",\")} as well?`);\r\n }\r\n if (IsChangeable) {\r\n tempObj = {\r\n ...tempObj, ReservationSerNo: f.SharerReservationSerNo, WithSharer: true\r\n }\r\n tempArr.push(tempObj)\r\n }\r\n else {\r\n tempObj = {\r\n ...tempObj, ReservationSerNo: f.ReservationSerNo, WithSharer: false\r\n }\r\n tempArr.push(tempObj)\r\n }\r\n }\r\n else {\r\n tempObj = {\r\n ...tempObj, ReservationSerNo: f.ReservationSerNo, WithSharer: false\r\n }\r\n tempArr.push(tempObj)\r\n }\r\n }\r\n else {\r\n alertFunction(\"Room is not assigned to the reservation\");\r\n }\r\n }\r\n })\r\n if (isValidCheckIn) {\r\n console.log(tempArr);\r\n EditCheckedInReservations(tempArr).then((d) => {\r\n if (d.data != undefined) {\r\n alertFunction(d.data.Message);\r\n }\r\n })\r\n fillGrid(selectedGuestTile);\r\n }\r\n };\r\n const handleReservationFields = (reservationSerNo, fieldName, fieldValue) => {\r\n manageReservationFields(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo),\r\n reservationSerNo, fieldName, fieldValue).then((d) => {\r\n if (d.data != undefined) {\r\n if (d.data.Code == \"200\" && fieldName === \"IsCancelCheckin\") {\r\n fillGrid(selectedGuestTile);\r\n setSelectedGuestTile(prev => ({ ...prev, ReservationStatus: \"DIN\" }))\r\n }\r\n // if (d.data.Code == \"200\" && fieldName === \"ActualArrivalTime\") {\r\n // }\r\n if (d.data.Code == \"200\" && d.data.ReturnValue == \"1\" && fieldName === \"IsAdvanceCheckin\") {\r\n setIsAdvCheckin(true);\r\n }\r\n else {\r\n setIsAdvCheckin(false);\r\n }\r\n }\r\n })\r\n }\r\n const handleMultiResFields = (selectedData, key, value) => {\r\n let tempObj = [];\r\n selectedData.map(d => {\r\n tempObj.push({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: parseInt(d.ReservationSerNo),\r\n fieldName: key,\r\n fieldValue: value\r\n });\r\n })\r\n manageReservationMultipleFields(tempObj).then((d) => {\r\n fillGrid(selectedGuestTile);\r\n })\r\n }\r\n const handleMultipleSplitReservations = async (selectedData) => {\r\n let tempObj = [];\r\n selectedData.map(d => {\r\n tempObj.push({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: parseInt(d.ReservationSerNo)\r\n });\r\n })\r\n let IsChangeable = true;\r\n IsChangeable = await innkeyAlert(\r\n \" You are about to split the tile to individual tiles, \\n \" +\r\n \" this action cannot be reversed once performed. \\n\" +\r\n \" Would you like to continue?\"\r\n );\r\n if (IsChangeable) {\r\n ManageSplitReservations(tempObj).then((d) => {\r\n d.data.map((x) => {\r\n alertFunction(x.Message)\r\n })\r\n fillGrid(selectedGuestTile);\r\n })\r\n }\r\n };\r\n\r\n const handleAutoAssignRoom = (data) => {\r\n let tempresSerNo = [];\r\n let StrGuestName = {}\r\n if (selectedCheckBoxData.length > 1) {\r\n if (data.find((x) => x.IsSharer == true)) {\r\n alertFunction(\"One or more selected reservation is a sharer and hence Auto Assign functionality cannot be performed.\")\r\n }\r\n else {\r\n data.map((d) => {\r\n tempresSerNo.push(d.ReservationSerNo);\r\n })\r\n setAutoAssignData(data);\r\n setAutoAssignRes(tempresSerNo.toString());\r\n setShowAutoAssignRoomPopup(true);\r\n }\r\n }\r\n else {\r\n data.map((d) => {\r\n if (d.IsSharer) {\r\n reservationArrivalList.map((x) => {\r\n if (x.ReservationSerNo == d.SharerReservationSerNo) {\r\n StrGuestName = {\r\n GuestName: x.GuestName,\r\n ArrivalDate: x.ArrivalDate,\r\n DepartureDate: x.DepartureDate\r\n }\r\n }\r\n })\r\n alertFunction(`Auto Assign functionality is not allowed on a sharer reservation. \r\nThis sharer reservation is sharing their room with Primary sharing reservation ${StrGuestName.GuestName} with arrival date as ${moment(StrGuestName.ArrivalDate).format(\"DD-MMM-YYYY\")}\r\nand departure date as ${moment(StrGuestName.DepartureDate).format(\"DD-MMM-YYYY\")}. You can access the primary sharing \r\nreservation to use Auto Assign Functionality`)\r\n }\r\n else {\r\n tempresSerNo.push(d.ReservationSerNo);\r\n setAutoAssignData(data);\r\n setAutoAssignRes(tempresSerNo.toString());\r\n setShowAutoAssignRoomPopup(true);\r\n }\r\n })\r\n }\r\n\r\n }\r\n\r\n const handleApplyClick = () => {\r\n let isValid = true;\r\n if (reservationArrivalListFilterObj.ETATo < reservationArrivalListFilterObj.ETAFrom) {\r\n if (reservationArrivalListFilterObj.ETATo != \"\" && reservationArrivalListFilterObj.ETAFrom != \"\") {\r\n alertFunction(\"Incorrect time value entered. Please check again\");\r\n isValid = false;\r\n }\r\n }\r\n if (isValid) {\r\n let apiObj = reservationArrivalListFilterObj;\r\n if (apiObj.IsAdvanceCheckin != null) {\r\n if (\r\n selectedAdvCheckInInspec || selectedAdvCheckInClean || selectedAdvCheckInDirty ||\r\n selectedAdvCheckInDueOut || selectedAdvCheckInOS || selectedAdvCheckInUnassign\r\n ) {\r\n apiObj.IsAdvanceCheckin = true;\r\n }\r\n }\r\n apiObj.NightsTo = parseInt(reservationArrivalListFilterObj.NightsTo);\r\n apiObj.NightsFrom = parseInt(reservationArrivalListFilterObj.NightsFrom);\r\n setShowArrivalListFilterModal(false);\r\n setSelectedGuestTile({});\r\n fillGrid({});\r\n }\r\n };\r\n\r\n const handleRmAssignmentData = (array) => {\r\n let obj = []\r\n let IsAssignValid = true;\r\n\r\n array.map((d) => {\r\n if (d.ReservationStatus == \"INH\") {\r\n alertFunction(\"Can not perform this functionality\")\r\n IsAssignValid = false\r\n }\r\n else if (d.isSharingResCheckedin == true) {\r\n alertFunction(\"One or more sharing reservation has already checked in. This action cannot be performed.\")\r\n IsAssignValid = false\r\n }\r\n })\r\n if (IsAssignValid) {\r\n array.map((d) => {\r\n if (d.IsSharer) {\r\n obj.push(d.SharerReservationSerNo);\r\n }\r\n else {\r\n obj.push(d.ReservationSerNo);\r\n }\r\n })\r\n setResSerNoString(obj.toString());\r\n setShowRoomAssignmentPopup(true);\r\n }\r\n }\r\n const addDays = (date, days) => {\r\n var result = new Date(date);\r\n result.setDate(result.getDate() + days);\r\n return result;\r\n }\r\n //#endregion\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n Arrival List ({unAssignResCount + arrDotResCount + assignResCount})\r\n \r\n  {moment(new Date(reservationArrivalListFilterObj.ArrivalDate)).format(\"ddd, DD MMM\")}\r\n \r\n

    \r\n
    \r\n
    \r\n
    Tabs
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setshowLeftBlueBar(true);\r\n }}\r\n >\r\n
    \r\n \r\n {selectedGuestTile.GuestName}\r\n \r\n 1 ?\r\n true\r\n :\r\n false\r\n }\r\n className=\"status green mrgn-tp5\"\r\n onClick={() => {\r\n if (selectedGuestTile.ReservationStatus == \"DIN\") {\r\n setShowDueInToolTip(true);\r\n }\r\n else if (selectedGuestTile.ReservationStatus == \"INH\") {\r\n setShowArrToolTip(true);\r\n }\r\n }}\r\n >\r\n {\r\n selectedGuestTile.ReservationStatus == \"INH\" ?\r\n \"Arrived\"\r\n :\r\n \"Due In\"\r\n }\r\n \r\n
    \r\n\r\n
    \r\n
    \r\n {showDotComp ? (\r\n
    \r\n \r\n {dueOutResObj.GuestName}\r\n \r\n {\r\n setShowDueOutToolTip(true);\r\n }}\r\n >\r\n Due Out\r\n \r\n
    \r\n )\r\n :\r\n null\r\n }\r\n\r\n
    {\r\n setShowArrivalListFilterModal(!showArrivalListFilterModal)\r\n }\r\n }\r\n >\r\n \r\n
    \r\n
    \r\n \r\n Search\r\n \r\n
    \r\n\r\n
    \r\n 1 ?\r\n false\r\n :\r\n true\r\n }\r\n list={multiActionMenu}\r\n buttonType=\"DropdownWithButton\"\r\n id=\"ArrivalAction\"\r\n type=\"Action\"\r\n name=\"ArrivalAction\"\r\n title={\r\n selectedCheckBoxData.length > 1 ?\r\n `Action (${selectedCheckBoxData.length})`\r\n :\r\n \"Action\"\r\n }\r\n onChange={(item) => { handleMultiActionMenu(item) }}\r\n >\r\n Export\r\n \r\n {\r\n dispatch(setIsWalkIn(false));\r\n history.push({\r\n pathname: \"/ReservationAdd\",\r\n state: {\r\n Mode: \"Add\",\r\n filterObj: {\r\n FromDate: moment(businessDate).format(\"DD-MMM-YY\"),\r\n ToDate: moment(addDays(businessDate, 90)).format(\"DD-MMM-YY\"),\r\n DtType: \"STAY\",\r\n BookingNo: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n //ReservationStatus: [\"ARD\",\"INH\",'DOT', 'DIN', 'COT'],\r\n ReservationStatus: \"ARD,INH,DOT,DIN,COT\",\r\n IsEarlyDeparture: null,\r\n Adult: 0,\r\n Child: 0,\r\n RoomTypeSerNo: 0,\r\n RateSerNo: 0,\r\n ReservationTypeSerNo: 0,\r\n CompanyProfileSerNo: 0,\r\n AgentProfileSerNo: 0,\r\n BookingReferenceNo: \"\",\r\n MembershipNo: \"\",\r\n VIPLevelSerNo: 0,\r\n IsIncognitoName: null,\r\n NightsFrom: 0,\r\n NightsTo: 0,\r\n strMemberShipLevel: \"\",\r\n BlockSerNo: \"\",\r\n PartyNo: \"\",\r\n RoomSerNo: 0,\r\n IsShowBlockRoomsOnly: null,\r\n Mainmenu: \"Manage In-House List\"\r\n }\r\n }\r\n });\r\n }}>\r\n + New Reservation\r\n \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {showArrivalListFilterModal ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Filters

    \r\n
    \r\n
    \r\n
    \r\n {\r\n if (a.value < b.value) {\r\n return -1;\r\n }\r\n })}\r\n name=\"\"\r\n label=\"More Filters\"\r\n searchable={[\"Search\", \"No matching item\"]}\r\n className=\"button-layout-dd gray-btn\"\r\n buttonLayout={true}\r\n select={colListKeys}\r\n onChange={(item, items) => {\r\n setColList(items);\r\n setColListKeys(item);\r\n if (item.length > 0) {\r\n setShowFilter(true);\r\n } else {\r\n setShowFilter(false);\r\n }\r\n }}\r\n >\r\n
    \r\n \r\n Reset\r\n \r\n \r\n Apply\r\n \r\n {\r\n setShowArrivalListFilterModal(\r\n !showArrivalListFilterModal\r\n );\r\n }}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\" \"}\r\n {/* filter-elements-section */}\r\n
    \r\n
    \r\n {\r\n let oldDate = reservationArrivalListFilterObj.ArrivalDate\r\n if (new Date(moment(businessDate).format(\"DD-MMM-YYYY\")).getTime() <= new Date(moment(value).format(\"DD-MMM-YYYY\")).getTime()) {\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev, ArrivalDate: value\r\n }));\r\n }\r\n else {\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev, ArrivalDate: value\r\n }))\r\n setTimeout(() => {\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev, ArrivalDate: oldDate\r\n }))\r\n }, 50);\r\n alertFunction(\"Invalid Date\");\r\n }\r\n }}\r\n calendarStartDay={1}\r\n label=\"Date\"\r\n >\r\n {/* {\r\n setReservationArrivalListFilterObj(prev => ({ ...prev, ArrivalDate: v }));\r\n setSelectedDate(v);\r\n }}\r\n placeholder=\"Date\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Date\"\r\n > */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n if (/^[0-9]+$/.test(v)) {\r\n setValidationObj((prev) => ({ ...prev, BookingNo: \"\" }));\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, BookingNo: v }));\r\n }\r\n else {\r\n setValidationObj((prev) => ({\r\n ...prev,\r\n BookingNo: \"Please enter complete number\",\r\n }));\r\n }\r\n }}\r\n >\r\n Confirmation No.\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev, BookingReferenceNo: v\r\n }));\r\n }}\r\n >\r\n Booking Ref. No.\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n if (parseInt(v) != undefined) {\r\n if (/^[0-9]+$/.test(parseInt(v))) {\r\n setValidationObj((prev) => ({ ...prev, BlockSerNo: \"\" }));\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, BlockSerNo: parseInt(v) }));\r\n }\r\n else {\r\n setValidationObj((prev) => ({\r\n ...prev,\r\n BlockSerNo: \"Please enter complete number\",\r\n }));\r\n }\r\n }\r\n }}\r\n >\r\n Block No.\r\n \r\n {/* {\r\n //setSelectedBlock(item);\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, BlockSerNo: item.key }));\r\n }}\r\n /> */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setShowCompanySearchFilterModal(!showCompanySearchFilterModal);\r\n }}\r\n >\r\n Company\r\n \r\n {\r\n setShowCompanySearchFilterModal(!showCompanySearchFilterModal);\r\n }}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setShowAgentSearchFilterModal(!showAgentSearchFilterModal);\r\n // setReservationArrivalListFilterObj(prev=>({...prev,AgentProfileSerNo:\"\"}))\r\n }}\r\n value={selectedAgent.AgentName}\r\n >\r\n Agent\r\n \r\n {\r\n setShowAgentSearchFilterModal(!showAgentSearchFilterModal);\r\n }}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n {showFilter ? (\r\n <>\r\n {colList.map((o) =>\r\n // o.key === \"fillSelAll\" ? (\r\n // fillSelAll()\r\n // ) : \r\n o.key === \"fillHKStatus\" ? (\r\n fillHKStatus()\r\n ) : o.key === \"fillFloor\" ? (\r\n fillFloor()\r\n ) : o.key === \"fillVip\" ? (\r\n fillVip()\r\n ) : o.key === \"fillRateCode\" ? (\r\n fillRateCode()\r\n ) : o.key === \"fillEarlyArrival\" ? (\r\n fillEarlyArrival()\r\n ) : o.key === \"fillAdvCheckInDirty\" ? (\r\n fillAdvCheckInDirty()\r\n ) : o.key === \"fillRmType\" ? (\r\n fillRmType()\r\n ) : o.key === \"fillSelRes\" ? (\r\n fillSelRes()\r\n ) : o.key === \"fillMemLvl\" ? (\r\n fillMemLvl()\r\n ) : o.key === \"fillResStatus\" ? (\r\n fillResStatus()\r\n ) : o.key === \"fillInc\" ? (\r\n fillInc()\r\n ) : o.key === \"fillPreReg\" ? (\r\n fillPreReg()\r\n ) : o.key === \"fillLateArr\" ? (\r\n fillLateArr()\r\n ) : o.key === \"fillAdvCheckInClean\" ? (\r\n fillAdvCheckInClean()\r\n ) : o.key === \"fillRmFeatures\" ? (\r\n fillRmFeatures()\r\n ) : o.key === \"fillSameDayRes\" ? (\r\n fillSameDayRes()\r\n ) : o.key === \"fillNoInfo\" ? (\r\n fillNoInfo()\r\n ) : o.key === \"fillAdvCheckInInspec\" ? (\r\n fillAdvCheckInInspec()\r\n ) : o.key === \"fillNDA\" ? (\r\n fillNDA()\r\n ) : o.key === \"fillCanCheckin\" ? (\r\n fillCanCheckin()\r\n ) : o.key === \"fillWalkin\" ? (\r\n fillWalkin()\r\n ) : o.key === \"fillAdvCheckInOS\" ? (\r\n fillAdvCheckInOS()\r\n ) : o.key === \"fillAdvCheckInUn\" ? (\r\n fillAdvCheckInUn()\r\n ) : o.key === \"fillAdvCheckInDueOut\" ? (\r\n fillAdvCheckInDueOut()\r\n ) : o.key === \"fillETAFrom\" ? (\r\n fillETAFrom()\r\n ) : o.key === \"fillETATo\" ? (\r\n fillETATo()\r\n ) : o.key === \"fillNightFrom\" ? (\r\n fillNightFrom()\r\n ) : o.key === \"fillNightTo\" ? (\r\n fillNightTo()\r\n ) : (\r\n <>404\r\n )\r\n )}\r\n \r\n ) : (\r\n <>\r\n )}\r\n {/*
    \r\n
    \r\n {}}>Room No\r\n \r\n
    \r\n
    */}\r\n
    \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n // setIsCheckBoxDisable(e);\r\n setSelectUnAssignCheckBox(e);\r\n setIsCheckBoxDisable(true);\r\n if (e) {\r\n let tempData = reservationArrUnAssignedData\r\n tempData.forEach(d => {\r\n d.isChecked = true;\r\n })\r\n let temp = [];\r\n if (selectedCheckBoxData.length == 0) {\r\n temp = (tempData.filter((x) => x.isChecked == true))\r\n setSelectedCheckBoxData(temp);\r\n }\r\n else {\r\n temp = selectedCheckBoxData\r\n tempData.map((d) => {\r\n temp.push(d)\r\n })\r\n let newArr = [];\r\n for (let i = 0; i < temp.length; i++) {\r\n if (temp.indexOf(temp[i]) == i) {\r\n newArr.push(temp[i])\r\n }\r\n }\r\n setSelectedCheckBoxData(newArr);\r\n }\r\n }\r\n else {\r\n if (!selectAssignCheckBox && !selectArrDotCheckBox\r\n && !selectCheckedInCheckBox) {\r\n setIsCheckBoxDisable(false);\r\n }\r\n let tempData = reservationArrUnAssignedData\r\n tempData.forEach(d => {\r\n d.isChecked = false;\r\n })\r\n setSelectedCheckBoxData(selectedCheckBoxData.filter((x) => x.isChecked == true));\r\n }\r\n }}\r\n >\r\n \r\n
    \r\n
    \r\n Un-Assigned ({unAssignResCount})\r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n {reservationArrUnAssignedData.map((d, index) => {\r\n return (\r\n handleGuestTileOnClick(d)}\r\n >\r\n
      \r\n
      \r\n {\r\n handleCheckBoxClick(isChecked, d, reservationArrUnAssignedData)\r\n if (!selectAssignCheckBox && !selectCheckedInCheckBox\r\n && !selectArrDotCheckBox && !selectUnAssignCheckBox) {\r\n setIsCheckBoxDisable(false);\r\n }\r\n for (let i = 0; i < reservationArrUnAssignedData.length; i++) {\r\n if (reservationArrUnAssignedData[i].isChecked !== true) {\r\n setSelectUnAssignCheckBox(false);\r\n if (!selectCheckedInCheckBox && !selectArrDotCheckBox\r\n && !selectAssignCheckBox) {\r\n setIsCheckBoxDisable(false);\r\n }\r\n else {\r\n setIsCheckBoxDisable(true);\r\n }\r\n break;\r\n }\r\n if (i === reservationArrUnAssignedData.length - 1) {\r\n setSelectUnAssignCheckBox(true);\r\n setIsCheckBoxDisable(true);\r\n }\r\n }\r\n for (let i = 0; i < reservationArrUnAssignedData.length; i++) {\r\n if (reservationArrUnAssignedData[i].isChecked !== false) {\r\n break;\r\n }\r\n }\r\n }}\r\n className=\"d-inline-block\"\r\n >\r\n \r\n {`${d.RoomTypeCode} `}\r\n {d.NoOfRoom > 1 ? (\r\n {`(${d.NoOfRoom}) `}\r\n ) : null}\r\n {\r\n d.RoomTypeSeq != d.RoomTypeToChargeSeq ? (\r\n d.RoomTypeSeq > d.RoomTypeToChargeSeq ?\r\n \r\n \r\n :\r\n \r\n \r\n \r\n ) :\r\n \r\n }\r\n \r\n {/* GS */}\r\n {/* */}{\" \"}\r\n {d.IsAdvanceCheckin ? (\r\n <>\r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n {\" \"}\r\n {\r\n d.IsPMReservation == true ?\r\n <>\r\n :\r\n d.IsSharer ? (\r\n <>\r\n \r\n \r\n ) : (\r\n \r\n )\r\n }\r\n {\" \"}\r\n {\r\n d.BlockSerNo ? (\r\n <>\r\n \r\n \r\n ) : (\r\n <>\r\n )\r\n }\r\n {/* Arrived */}\r\n
      \r\n
      \r\n {/* NDA */}\r\n {\r\n d.IsPMReservation == false ?\r\n d.IsArrivalOnSameDay == false ? (\r\n \r\n \r\n \r\n // \r\n )\r\n : (\r\n <>\r\n )\r\n : (\r\n <>\r\n )\r\n }\r\n {\r\n if (d.IsPMReservation == false) {\r\n handleTimeChange(item, d)\r\n }\r\n else {\r\n alertFunction(\"Can not change arrival time for PM Reservation.\")\r\n }\r\n }}\r\n >\r\n {d.ActualArrivalTime == null ? (\r\n d.IsPMReservation == false ?\r\n
      \r\n No Info\r\n {\" \"}\r\n
      \r\n :\r\n <>\r\n ) : (\r\n = graceTime ?\r\n \"time text-gray\"\r\n :\r\n (\r\n d.ActualArrivalTime > arrivalTime ?\r\n \"time text-green\"\r\n :\r\n d.ActualArrivalTime < arrivalTime ?\r\n \"time text-danger\"\r\n : \"\"\r\n )\r\n }\r\n >\r\n {d.ActualArrivalTime}\r\n
      \r\n )}\r\n {/* For Developer\r\n
      NRSP
      \r\n NRSP 12:00\r\n NRSP NON */}\r\n \r\n
      \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedRoomNo(v.target.value)\r\n }}\r\n onBlur={(v) => {\r\n if (v.target.value != \"\") {\r\n handleOnBlurRoomAssignment(v.target.value, d)\r\n let temp = reservationArrUnAssignedData\r\n temp.forEach((x) => {\r\n if (x.ReservationSerNo === d.ReservationSerNo) {\r\n if (selectedRoomNo === \"\") {\r\n x.RoomNo = \"\"\r\n }\r\n else {\r\n x.RoomNo = parseInt(selectedRoomNo);\r\n }\r\n }\r\n })\r\n }\r\n }}\r\n >\r\n {\r\n // setShowDueInToolTip(!showDueInToolTip);\r\n // }}\r\n // Versioning 2\r\n >\r\n {d.GuestName}\r\n
    \r\n
    \r\n
    \r\n {selectedCheckBoxData.length > 1 ? (\r\n
    \r\n
    \r\n
    \r\n ) : (\r\n \r\n handleOnChangeMenu(item, d)\r\n }\r\n >\r\n
    \r\n \r\n )}\r\n
    \r\n
    \r\n \r\n );\r\n })}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n // setIsCheckBoxDisable(e);\r\n setIsCheckBoxDisable(true);\r\n setSelectAssignCheckBox(e);\r\n if (e) {\r\n let tempData = reservationArrAssignedData\r\n tempData.forEach(d => {\r\n d.isChecked = true\r\n })\r\n let temp = [];\r\n if (selectedCheckBoxData.length == 0) {\r\n temp = (tempData.filter((x) => x.isChecked == true))\r\n setSelectedCheckBoxData(temp);\r\n }\r\n else {\r\n temp = selectedCheckBoxData\r\n tempData.map((d) => {\r\n temp.push(d)\r\n })\r\n let newArr = [];\r\n for (let i = 0; i < temp.length; i++) {\r\n if (temp.indexOf(temp[i]) == i) {\r\n newArr.push(temp[i])\r\n }\r\n }\r\n setSelectedCheckBoxData(newArr);\r\n }\r\n }\r\n else {\r\n if (!selectUnAssignCheckBox && !selectArrDotCheckBox\r\n && !selectCheckedInCheckBox) {\r\n setIsCheckBoxDisable(false);\r\n }\r\n let tempData = reservationArrAssignedData\r\n tempData.forEach(d => {\r\n d.isChecked = false;\r\n })\r\n setSelectedCheckBoxData(selectedCheckBoxData.filter((x) => x.isChecked == true));\r\n }\r\n }}\r\n >\r\n
    \r\n
    \r\n Assigned ({assignResCount})\r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n {reservationArrAssignedData.map((d, index) => {\r\n return (\r\n handleGuestTileOnClick(d)}\r\n >\r\n
      \r\n
      \r\n {\r\n handleCheckBoxClick(isChecked, d, reservationArrAssignedData)\r\n if (!selectCheckedInCheckBox && !selectUnAssignCheckBox\r\n && !selectArrDotCheckBox && !selectAssignCheckBox) {\r\n setIsCheckBoxDisable(false);\r\n }\r\n for (let i = 0; i < reservationArrAssignedData.length; i++) {\r\n if (reservationArrAssignedData[i].isChecked !== true) {\r\n setSelectAssignCheckBox(false);\r\n if (!selectCheckedInCheckBox && !selectUnAssignCheckBox\r\n && !selectArrDotCheckBox) {\r\n setIsCheckBoxDisable(false);\r\n }\r\n else {\r\n setIsCheckBoxDisable(true);\r\n }\r\n break;\r\n }\r\n if (i === reservationArrAssignedData.length - 1) {\r\n setSelectAssignCheckBox(true);\r\n setIsCheckBoxDisable(true);\r\n }\r\n }\r\n for (let i = 0; i < reservationArrAssignedData.length; i++) {\r\n if (reservationArrAssignedData[i].isChecked !== false) {\r\n break;\r\n }\r\n }\r\n }}\r\n className=\"d-inline-block\"\r\n >\r\n \r\n {`${d.RoomTypeCode} `}\r\n {d.NoOfRoom > 1 ? (\r\n {`(${d.NoOfRoom}) `}\r\n ) : null}\r\n {d.RoomTypeSeq != d.RoomTypeToChargeSeq ? (\r\n d.RoomTypeSeq > d.RoomTypeToChargeSeq ?\r\n \r\n \r\n :\r\n \r\n \r\n \r\n ) :\r\n \r\n }\r\n \r\n {/* GS */}\r\n {d.HKStatusCode}\r\n {d.IsAdvanceCheckin ? (\r\n <>\r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n {\" \"}\r\n {\r\n d.IsPMReservation == true ?\r\n <>\r\n :\r\n d.IsSharer ? (\r\n <>\r\n \r\n \r\n ) : (\r\n \r\n )\r\n }\r\n {\" \"}\r\n {\r\n d.BlockSerNo ? (\r\n <>\r\n \r\n \r\n ) : (\r\n <>\r\n )\r\n }\r\n {/* Arrived */}\r\n
      \r\n
      \r\n {/* NDA */}\r\n {\r\n d.IsPMReservation == false ?\r\n d.IsArrivalOnSameDay == false ? (\r\n \r\n \r\n \r\n // \r\n )\r\n : (\r\n <>\r\n )\r\n : (\r\n <>\r\n )\r\n }\r\n {\r\n if (d.IsPMReservation == false) {\r\n handleTimeChange(item, d)\r\n }\r\n else {\r\n alertFunction(\"Can not change arrival time for PM Reservation.\")\r\n }\r\n }}\r\n >\r\n {d.ActualArrivalTime == null ? (\r\n d.IsPMReservation == false ?\r\n
      \r\n No Info\r\n {\" \"}\r\n
      \r\n :\r\n <>\r\n ) : (\r\n = graceTime ?\r\n \"time text-gray\"\r\n :\r\n (\r\n d.ActualArrivalTime > arrivalTime ?\r\n \"time text-green\"\r\n :\r\n d.ActualArrivalTime < arrivalTime ?\r\n \"time text-danger\"\r\n : \"\"\r\n )\r\n }\r\n >\r\n {d.ActualArrivalTime}\r\n
      \r\n )\r\n }\r\n \r\n
      \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedRoomNo(v.target.value)\r\n }}\r\n onBlur={(v) => {\r\n if (selectedRoomNo !== v.target.value) {\r\n // handlevalidateRoomForUpDowngrad(v.target.value, d);\r\n handleOnBlurRoomAssignment(v.target.value, d)\r\n let temp = reservationArrAssignedData\r\n temp.forEach((x) => {\r\n if (x.ReservationSerNo === d.ReservationSerNo) {\r\n if (selectedRoomNo == \"\") {\r\n x.RoomNo = \"\"\r\n }\r\n else {\r\n x.RoomNo = parseInt(selectedRoomNo);\r\n }\r\n }\r\n })\r\n }\r\n }}\r\n >\r\n {\r\n // setShowDueInToolTip(!showDueInToolTip);\r\n // }}\r\n // Versioning 2\r\n >\r\n {d.GuestName}\r\n
    \r\n
    \r\n
    \r\n {selectedCheckBoxData.length > 1 ? (\r\n
    \r\n
    \r\n
    \r\n ) : (\r\n \r\n handleOnChangeMenu(item, d)\r\n }\r\n >\r\n
    \r\n \r\n )}\r\n
    \r\n
    \r\n \r\n );\r\n })}\r\n \r\n
    \r\n
    \r\n {/* Start Changes 10-03-2023 */}\r\n
    \r\n
    \r\n
    \r\n {\r\n // setIsCheckBoxDisable(e);\r\n setIsCheckBoxDisable(true);\r\n setSelectArrDotCheckBox(e);\r\n if (e) {\r\n let tempData = reservationArrDotData\r\n tempData.forEach(d => {\r\n d.isChecked = true\r\n })\r\n let temp = [];\r\n if (selectedCheckBoxData.length == 0) {\r\n temp = (tempData.filter((x) => x.isChecked == true))\r\n setSelectedCheckBoxData(temp);\r\n }\r\n else {\r\n temp = selectedCheckBoxData\r\n tempData.map((d) => {\r\n temp.push(d)\r\n })\r\n let newArr = [];\r\n for (let i = 0; i < temp.length; i++) {\r\n if (temp.indexOf(temp[i]) == i) {\r\n newArr.push(temp[i])\r\n }\r\n }\r\n setSelectedCheckBoxData(newArr);\r\n }\r\n }\r\n else {\r\n if (!selectAssignCheckBox && !selectUnAssignCheckBox\r\n && !selectCheckedInCheckBox) {\r\n setIsCheckBoxDisable(false);\r\n }\r\n let tempData = reservationArrDotData\r\n tempData.forEach(d => {\r\n d.isChecked = false;\r\n })\r\n setSelectedCheckBoxData(selectedCheckBoxData.filter((x) => x.isChecked == true));\r\n }\r\n }}\r\n >\r\n
    \r\n
    \r\n Arrival (DOT) ({arrDotResCount})\r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n {reservationArrDotData.map((d, index) => {\r\n return (\r\n handleGuestTileOnClick(d)}\r\n >\r\n
      \r\n
      \r\n {\r\n handleCheckBoxClick(isChecked, d, reservationArrDotData)\r\n if (!selectAssignCheckBox && !selectUnAssignCheckBox\r\n && !selectCheckedInCheckBox && !selectArrDotCheckBox) {\r\n setIsCheckBoxDisable(false);\r\n }\r\n for (let i = 0; i < reservationArrDotData.length; i++) {\r\n if (reservationArrDotData[i].isChecked !== true) {\r\n setSelectArrDotCheckBox(false);\r\n if (!selectCheckedInCheckBox && !selectUnAssignCheckBox\r\n && !selectAssignCheckBox) {\r\n setIsCheckBoxDisable(false);\r\n }\r\n else {\r\n setIsCheckBoxDisable(true);\r\n }\r\n break;\r\n }\r\n if (i === reservationArrDotData.length - 1) {\r\n setSelectArrDotCheckBox(true);\r\n setIsCheckBoxDisable(true);\r\n }\r\n }\r\n for (let i = 0; i < reservationArrDotData.length; i++) {\r\n if (reservationArrDotData[i].isChecked !== false) {\r\n break;\r\n }\r\n }\r\n }}\r\n className=\"d-inline-block\"\r\n >\r\n \r\n {`${d.RoomTypeCode} `}\r\n {d.NoOfRoom > 1 ? (\r\n {`(${d.NoOfRoom}) `}\r\n ) : null}\r\n {d.RoomTypeSeq != d.RoomTypeToChargeSeq ? (\r\n d.RoomTypeSeq > d.RoomTypeToChargeSeq ?\r\n \r\n \r\n :\r\n \r\n \r\n \r\n ) :\r\n \r\n }\r\n \r\n {/* GS */}\r\n {d.HKStatusCode}\r\n {d.IsAdvanceCheckin ? (\r\n <>\r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n {\" \"}\r\n {\r\n d.IsPMReservation == true ?\r\n <>\r\n :\r\n d.IsSharer ? (\r\n <>\r\n \r\n \r\n ) : (\r\n \r\n )\r\n }\r\n {\" \"}\r\n {\r\n d.BlockSerNo ? (\r\n <>\r\n \r\n \r\n ) : (\r\n <>\r\n )\r\n }\r\n {/* Arrived */}\r\n
      \r\n
      \r\n {/* NDA */}\r\n {\r\n d.IsPMReservation == false ?\r\n d.IsArrivalOnSameDay == false ? (\r\n \r\n \r\n \r\n // \r\n )\r\n : (\r\n <>\r\n )\r\n : (\r\n <>\r\n )\r\n }\r\n {\r\n if (d.IsPMReservation == false) {\r\n handleTimeChange(item, d)\r\n }\r\n else {\r\n alertFunction(\"Can not change arrival time for PM Reservation.\")\r\n }\r\n }}\r\n >\r\n {d.ActualArrivalTime == null ? (\r\n d.IsPMReservation == false ?\r\n
      \r\n No Info\r\n {\" \"}\r\n
      \r\n :\r\n <>\r\n ) : (\r\n = graceTime ?\r\n \"time text-gray\"\r\n :\r\n (\r\n d.ActualArrivalTime > arrivalTime ?\r\n \"time text-green\"\r\n :\r\n d.ActualArrivalTime < arrivalTime ?\r\n \"time text-danger\"\r\n : \"\"\r\n )\r\n }\r\n >\r\n {d.ActualArrivalTime}\r\n
      \r\n )}\r\n {/* For Developer\r\n
      NRSP
      \r\n NRSP 12:00\r\n NRSP NON */}\r\n \r\n
      \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedRoomNo(v.target.value)\r\n }}\r\n onBlur={(v) => {\r\n if (selectedRoomNo !== v.target.value) {\r\n handleOnBlurRoomAssignment(v.target.value, d)\r\n let temp = reservationArrDotData\r\n temp.forEach((x) => {\r\n if (x.ReservationSerNo === d.ReservationSerNo) {\r\n if (selectedRoomNo == \"\") {\r\n x.RoomNo = \"\"\r\n }\r\n else {\r\n x.RoomNo = parseInt(selectedRoomNo);\r\n }\r\n }\r\n })\r\n }\r\n }}\r\n >\r\n {\r\n // setShowDueInToolTip(!showDueInToolTip);\r\n // }} \r\n // Versioning 2\r\n >\r\n {d.GuestName}\r\n
    \r\n
    \r\n
    \r\n {selectedCheckBoxData.length > 1 ? (\r\n
    \r\n
    \r\n
    \r\n ) : (\r\n \r\n handleOnChangeMenu(item, d)\r\n }\r\n >\r\n
    \r\n \r\n )}\r\n
    \r\n
    \r\n \r\n );\r\n })}\r\n \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n {\r\n // setIsCheckBoxDisable(e);\r\n setIsCheckBoxDisable(true);\r\n setSelectCheckedInCheckBox(e);\r\n if (e) {\r\n let tempData = reservationArrCheckedInData\r\n tempData.forEach(d => {\r\n d.isChecked = true\r\n })\r\n let temp = [];\r\n if (selectedCheckBoxData.length == 0) {\r\n temp = (tempData.filter((x) => x.isChecked == true))\r\n setSelectedCheckBoxData(temp);\r\n }\r\n else {\r\n temp = selectedCheckBoxData\r\n tempData.map((d) => {\r\n temp.push(d)\r\n })\r\n let newArr = [];\r\n for (let i = 0; i < temp.length; i++) {\r\n if (temp.indexOf(temp[i]) == i) {\r\n newArr.push(temp[i])\r\n }\r\n }\r\n setSelectedCheckBoxData(newArr);\r\n }\r\n }\r\n else {\r\n if (!selectAssignCheckBox && !selectArrDotCheckBox\r\n && !selectUnAssignCheckBox) {\r\n setIsCheckBoxDisable(false);\r\n }\r\n let tempData = reservationArrCheckedInData\r\n tempData.forEach(d => {\r\n d.isChecked = false;\r\n })\r\n setSelectedCheckBoxData(selectedCheckBoxData.filter((x) => x.isChecked == true));\r\n }\r\n }}\r\n >\r\n
    \r\n
    Arrived (ARD) ({arrResCount})
    \r\n
    \r\n\r\n
    \r\n
    \r\n
      \r\n {reservationArrCheckedInData.map((d, index) => {\r\n return (\r\n handleGuestTileOnClick(d)}\r\n >\r\n
      \r\n
      \r\n {\r\n handleCheckBoxClick(isChecked, d, reservationArrCheckedInData)\r\n if (!selectAssignCheckBox && !selectUnAssignCheckBox\r\n && !selectArrDotCheckBox && !selectCheckedInCheckBox) {\r\n setIsCheckBoxDisable(false);\r\n }\r\n for (let i = 0; i < reservationArrCheckedInData.length; i++) {\r\n if (reservationArrCheckedInData[i].isChecked !== true) {\r\n setSelectCheckedInCheckBox(false);\r\n if (!selectArrDotCheckBox && !selectUnAssignCheckBox\r\n && !selectAssignCheckBox) {\r\n setIsCheckBoxDisable(false);\r\n }\r\n else {\r\n setIsCheckBoxDisable(true);\r\n }\r\n break;\r\n }\r\n if (i === reservationArrCheckedInData.length - 1) {\r\n setSelectCheckedInCheckBox(true);\r\n setIsCheckBoxDisable(true);\r\n }\r\n }\r\n for (let i = 0; i < reservationArrCheckedInData.length; i++) {\r\n if (reservationArrCheckedInData[i].isChecked !== false) {\r\n break;\r\n }\r\n }\r\n }}\r\n className=\"d-inline-block\"\r\n >\r\n \r\n {`${d.RoomTypeCode} `}\r\n {d.NoOfRoom > 1 ? (\r\n {`(${d.NoOfRoom}) `}\r\n ) : null}\r\n {d.RoomTypeSeq != d.RoomTypeToChargeSeq ? (\r\n d.RoomTypeSeq > d.RoomTypeToChargeSeq ?\r\n \r\n \r\n :\r\n \r\n \r\n \r\n ) :\r\n \r\n }\r\n \r\n {/* GS */}\r\n {/* */}{\" \"}\r\n {d.IsAdvanceCheckin ? (\r\n <>\r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n {\" \"}\r\n {\r\n d.IsPMReservation == true ?\r\n <>\r\n :\r\n d.IsSharer ? (\r\n <>\r\n \r\n \r\n ) : (\r\n \r\n )\r\n }\r\n {\" \"}\r\n {\r\n d.BlockSerNo ? (\r\n <>\r\n \r\n \r\n ) : (\r\n <>\r\n )\r\n }\r\n {/* Arrived */}\r\n
      \r\n
      \r\n {/* NDA */}\r\n {\r\n d.IsPMReservation == false ?\r\n d.IsArrivalOnSameDay == false ? (\r\n \r\n \r\n \r\n // \r\n )\r\n : (\r\n <>\r\n )\r\n : (\r\n <>\r\n )\r\n }\r\n {\r\n if (d.IsPMReservation == false) {\r\n handleTimeChange(item, d)\r\n }\r\n else {\r\n alertFunction(\"Can not change arrival time for PM Reservation.\")\r\n }\r\n }}\r\n >\r\n {d.ActualArrivalTime == null ? (\r\n d.IsPMReservation == false ?\r\n
      \r\n No Info\r\n {\" \"}\r\n
      \r\n :\r\n <>\r\n ) : (\r\n = graceTime ?\r\n \"time text-gray\"\r\n :\r\n (\r\n d.ActualArrivalTime > arrivalTime ?\r\n \"time text-green\"\r\n :\r\n d.ActualArrivalTime < arrivalTime ?\r\n \"time text-danger\"\r\n : \"\"\r\n )\r\n }\r\n >\r\n {d.ActualArrivalTime}\r\n
      \r\n )}\r\n {/* For Developer\r\n
      NRSP
      \r\n NRSP 12:00\r\n NRSP NON */}\r\n \r\n
      \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedRoomNo(v.target.value)\r\n }}\r\n // onBlur={(v) => {\r\n // if (selectedRoomNo !== v.target.value) {\r\n // handleOnBlurRoomAssignment(v.target.value, d)\r\n // let temp = reservationArrCheckedInData\r\n // temp.forEach((x) => {\r\n // if (x.ReservationSerNo === d.ReservationSerNo) {\r\n // if (selectedRoomNo == \"\") {\r\n // x.RoomNo = \"\"\r\n // }\r\n // else {\r\n // x.RoomNo = parseInt(selectedRoomNo);\r\n // }\r\n // }\r\n // })\r\n // }\r\n // }} Versioning 2\r\n >\r\n {\r\n // setShowDueInToolTip(!showDueInToolTip);\r\n // }}\r\n // Versioning 2\r\n >\r\n {d.GuestName}\r\n
    \r\n
    \r\n
    \r\n {selectedCheckBoxData.length > 1 ? (\r\n
    \r\n
    \r\n
    \r\n ) : (\r\n \r\n handleOnChangeMenu(item, d)\r\n }\r\n >\r\n
    \r\n \r\n )}\r\n
    \r\n
    \r\n \r\n );\r\n })}\r\n \r\n \r\n\r\n \r\n
    \r\n
    \r\n Room at a glance - {moment(new Date(reservationArrivalListFilterObj.ArrivalDate)).format(\"ddd, DD MMM\")}\r\n
    \r\n
    \r\n {\r\n setSelectRmType(item.key)\r\n fillRoomAtGlance(reservationArrivalListFilterObj.ArrivalDate, item.key)\r\n }}\r\n // label=\"All Rooms Type\"\r\n >\r\n\r\n
    \r\n {\r\n arrivalStatistics.length > 0 ?\r\n
    \r\n {\r\n arrivalStatistics.map((d) => {\r\n return (\r\n
    \r\n
    \r\n {d.Label}\r\n
    \r\n {d.value}\r\n
    \r\n );\r\n })\r\n }\r\n {/*
    \r\n
    \r\n Less: Out of Order\r\n
    \r\n 02\r\n
    \r\n
    \r\n
    \r\n Room Available to Sell\r\n
    \r\n 98\r\n
    \r\n
    \r\n
    \r\n Less : Due In\r\n
    \r\n 10\r\n
    \r\n
    \r\n
    \r\n Less : In-House\r\n
    \r\n 20\r\n
    \r\n
    \r\n
    \r\n Actual Available\r\n
    \r\n 68\r\n
    \r\n
    \r\n
    \r\n Out Of Service\r\n
    \r\n 05\r\n
    \r\n
    \r\n
    \r\n Advance Checked-In\r\n
    \r\n 08\r\n
    \r\n
    \r\n
    \r\n Inspected & Clean\r\n
    \r\n 45\r\n
    \r\n
    \r\n
    \r\n Dirty\r\n
    \r\n 46 \r\n
    */}\r\n
    \r\n :\r\n null\r\n }\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {\r\n selectedCheckBoxData.length < 1 ?\r\n handleCheckInResBtnClick()\r\n :\r\n handleMultiCheckInResBtnClick()\r\n }}\r\n disabled={handleCheckinBtnDisable()}\r\n >\r\n Check In\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n\r\n {/* blue bg inside menu Start */}\r\n {\r\n showLeftBlueBar == true && (\r\n
    \r\n
    \r\n
    \r\n

    system views

    \r\n
    \r\n\r\n {\r\n setshowLeftBlueBar(false);\r\n }}\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n \r\n
      {\r\n history.push({\r\n pathname: \"/ReservationListPage\",\r\n state: {\r\n filterObj: {\r\n FromDate: moment(businessDate).format(\"DD-MMM-YY\"),\r\n ToDate: moment(addDays(businessDate, 90)).format(\"DD-MMM-YY\"),\r\n DtType: \"STAY\",\r\n BookingNo: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n //ReservationStatus: [\"ARD\",\"INH\",'DOT', 'DIN', 'COT'],\r\n ReservationStatus: \"ARD,INH,DOT,DIN,COT\",\r\n IsEarlyDeparture: null,\r\n Adult: 0,\r\n Child: 0,\r\n RoomTypeSerNo: 0,\r\n RateSerNo: 0,\r\n ReservationTypeSerNo: 0,\r\n CompanyProfileSerNo: 0,\r\n AgentProfileSerNo: 0,\r\n BookingReferenceNo: \"\",\r\n MembershipNo: \"\",\r\n VIPLevelSerNo: 0,\r\n IsIncognitoName: null,\r\n NightsFrom: 0,\r\n NightsTo: 0,\r\n strMemberShipLevel: \"\",\r\n BlockSerNo: \"\",\r\n PartyNo: \"\",\r\n RoomSerNo: 0,\r\n IsShowBlockRoomsOnly: null,\r\n Mainmenu: \"Manage In-House List\"\r\n }\r\n }\r\n });\r\n //dispatch(toggleMenu(false));\r\n }}>Manage Reservation
      \r\n
    • \r\n
    • \r\n \r\n {\r\n history.push(\"/ReservationArrivalList\");\r\n //dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Arrival List\r\n
    \r\n \r\n
  • \r\n \r\n {\r\n history.push({\r\n pathname: \"/ReservationDepartureList\",\r\n state: {\r\n filterObj: {\r\n ClientSerNo: 1201,\r\n PropertySerNo: 1,\r\n DepartureDate: businessDate, //date\r\n FirstName: \"\",\r\n LastName: \"\",\r\n ETDFrom: null,\r\n ETDTo: null,\r\n IsOpenFolio: null,\r\n strMemberShipLevel: \"\",\r\n strFloorSerNo: \"\",\r\n IsLateCheckout: null,\r\n IsEarlyCheckout: null,\r\n BlockSerNo: 0,\r\n IsReinstated: null,\r\n IsNoResponse: null,\r\n IsWithLuggage: null,\r\n IsNoLuggage: null,\r\n IsLocked: null,\r\n IsNoInfo: null,\r\n CompanyProfileSerNo: null,\r\n AgentProfileSerNo: null,\r\n IsLoaded: false,\r\n },\r\n userId: \"1201\",\r\n password: \"123\",\r\n },\r\n });\r\n //dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Departure List\r\n
  • \r\n \r\n
  • \r\n \r\n
    New Reservations confirm today (19)
    \r\n
  • \r\n
  • \r\n \r\n
    Reservation on Hold (2)
    \r\n
  • \r\n \r\n\r\n
    \r\n custom Views\r\n { }}\r\n >\r\n
    \r\n\r\n
      \r\n
    • \r\n \r\n
      Dynamic List
      \r\n
    • \r\n
    • \r\n \r\n
      Dynamic List
      \r\n
    • \r\n
    • \r\n \r\n
      Dynamic List two line text show
      \r\n
    • \r\n
    • \r\n \r\n
      Dynamic List
      \r\n
    • \r\n
    • \r\n \r\n
      Dynamic List
      \r\n
    • \r\n
    • \r\n \r\n
      Dynamic List
      \r\n
    • \r\n
    • \r\n \r\n
      Dynamic List
      \r\n
    • \r\n
    • \r\n \r\n
      Dynamic List
      \r\n
    • \r\n
    • \r\n \r\n
      Dynamic List
      \r\n
    • \r\n
    • \r\n \r\n
      Dynamic List
      \r\n
    • \r\n
    \r\n \r\n \r\n \r\n )\r\n }\r\n {/* blue bg inside menu End */}\r\n {\r\n showAgentSearchFilterModal ? (\r\n setShowAgentSearchFilterModal(false)}\r\n handleOnSelect={(data) => {\r\n setSelectedAgent(data);\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, AgentProfileSerNo: data.AgentSerNo }));\r\n setShowAgentSearchFilterModal(false);\r\n }}\r\n ProfileType=\"ag\"\r\n >\r\n ) :\r\n null\r\n }\r\n {\r\n showCompanySearchFilterModal ? (\r\n setShowCompanySearchFilterModal(false)}\r\n handleOnSelect={(data) => {\r\n setSelectedCompany(data);\r\n setReservationArrivalListFilterObj((prev) => ({ ...prev, CompanyProfileSerNo: data.AgentSerNo }));\r\n setShowCompanySearchFilterModal(false);\r\n }}\r\n ProfileType=\"co\"\r\n >\r\n ) :\r\n null\r\n }\r\n {\r\n showRoomAssignmentPopup ? (\r\n \r\n ) :\r\n null\r\n }\r\n {\r\n showCancelNoShowPopup ?\r\n {\r\n setShowCancelNoShowPopup(false)\r\n setTimeout(() => {\r\n fillGrid(selectedGuestTile);\r\n }, 50);\r\n }}\r\n >\r\n \r\n :\r\n null\r\n }\r\n {\r\n showRoomFeaturesModal ? (\r\n setShowRoomFeaturesModal(false)}\r\n handleOnSelect={(v) => {\r\n setSelectedRmFeatureData(v);\r\n let tempSerNo = [];\r\n let tempValueSerNo = [];\r\n let displayName = [];\r\n for (let i = 0; i < v.length; i++) {\r\n tempSerNo = tempSerNo + v[i].RoomFeatureSerNo + \",\";\r\n tempValueSerNo = tempValueSerNo + v[i].RoomFeatureValueSerNo + \",\";\r\n setReservationArrivalListFilterObj((prev) => ({\r\n ...prev, RoomFeatureSerNo: tempSerNo, RoomFeatureValueSerNo: tempValueSerNo\r\n }));\r\n if (v.length <= 2) {\r\n displayName.push(v[i].DisplayName);\r\n }\r\n }\r\n if (v.length > 2) {\r\n displayName.push(v[0].DisplayName, v[1].DisplayName + \"...\");\r\n }\r\n setSelectedRmFeature(displayName);\r\n setShowRoomFeaturesModal(false);\r\n }}\r\n >\r\n \r\n ) : null\r\n }\r\n {\r\n showDueOutToolTip ? (\r\n {\r\n setShowDueOutToolTip(false);\r\n }}\r\n >\r\n ) :\r\n null\r\n }\r\n {\r\n showDueInToolTip ? (\r\n {\r\n setShowDueInToolTip(false);\r\n }}\r\n >\r\n ) :\r\n null\r\n }\r\n {\r\n showArrToolTip ? (\r\n {\r\n setShowArrToolTip(false);\r\n }}\r\n >\r\n ) :\r\n null\r\n }\r\n {\r\n showUpgradeReasonModalPopup ?\r\n {\r\n setShowUpgradeReasonModalPopup(false);\r\n }}\r\n OnSelection={(reason, reasonserno) => {\r\n let obj;\r\n if (reasonserno == \"\" && reason == \"\") {\r\n alertFunction(\"Please select a reason.\")\r\n }\r\n else if (reasonserno != \"\" && reason == \"\") {\r\n alertFunction(\"Please select a reason.\")\r\n }\r\n else if (reasonserno == \"\" && reason != \"\") {\r\n obj = { UpgradeReasonSerNo: 0, UpgradeReason: reason }\r\n setShowUpgradeReasonModalPopup(false);\r\n }\r\n else {\r\n obj = { UpgradeReasonSerNo: parseInt(reasonserno), UpgradeReason: reason }\r\n setShowUpgradeReasonModalPopup(false);\r\n }\r\n if (obj != undefined) {\r\n handleUserRights(\"50\").then(e => {\r\n if (e) {\r\n GetRoomAssignmentAssignRoom(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo),\r\n selectedGuestTile.ReservationSerNo, parseInt(selectedRoomSerNo), obj.UpgradeReason, obj.UpgradeReasonSerNo).then((e) => {\r\n if (e.data != undefined) {\r\n if (e.data.Code === \"success\") {\r\n alertFunction(e.data.Message);\r\n fillGrid({})\r\n }\r\n else {\r\n setReservationArrivalList(reservationArrivalList);\r\n alertFunction(e.data.Message);\r\n }\r\n }\r\n })\r\n }\r\n else {\r\n }\r\n })\r\n }\r\n }}\r\n >\r\n \r\n :\r\n null\r\n }\r\n {\r\n showRateSelectionSummaryModal ? (\r\n { setShowRateSelectionSummaryModal(!showRateSelectionSummaryModal); }}\r\n handleOnclose={() => { setShowRateSelectionSummaryModal(!showRateSelectionSummaryModal); }}\r\n >\r\n\r\n ) : null\r\n }\r\n {\r\n showAutoAssignRoomPopup ?\r\n {\r\n setShowAutoAssignRoomPopup(false)\r\n setTimeout(() => {\r\n fillGrid(selectedGuestTile)\r\n }, 50);\r\n }}\r\n data={autoAssignData}\r\n StrReservationSerNo={autoAssignRes}\r\n >\r\n \r\n :\r\n null\r\n }\r\n \r\n );\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnButtonTypeWithDropdown,\r\n InnLoader,\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnPlainButton,\r\n InnSingleDateSelection,\r\n InnDataGrid\r\n} from \"../../../component\";\r\nimport settingicon from \"../../../assets/images/settings-icon.svg\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport {\r\n GetUsersList,\r\n cmbGetRateCodeMaster,\r\n cmbGetReservationTypeMaster,\r\n GetReservationBlockList,\r\n} from \"../../../services/reservationService\";\r\nimport { AgentModalPopup } from \"./modalPopup/AgentModalPopup\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../reducer/authSlice\";\r\nimport { IndiAgent, IndiCompany, IndiAdultChild, IndiArrival, IndiDailyRate, IndiGuestName, IndiInclusion, IndiPackege, IndiRateCode, IndiReservationType, IndiRoomRate, IndiRoomType, IndiSharer } from \"./indicators\";\r\nimport { TipArrived, TipCancelled, TipCheckedOut, TipDueIn, TipDueOut, TipHold, TipInHouse, TipNoShow, TipTentative } from \"../reservation/index\";\r\n//import { SingleSelectFilter, InputTextFilter, CheckboxFilter } from \"./filters\";\r\nimport { fabClasses, selectClasses } from \"@mui/material\";\r\nimport { SingleSelectFilter, InputTextFilter, CheckboxFilter } from \"./filters\";\r\nimport ReservationSubMenu from \"./reservation-sub-menu\";\r\nimport { BlockTipHold, BlockTipCancelled, BlockTipLoss } from \"./tooltips\";\r\nimport { BlockTipConfirmed, BlockTipTentative, BlockTipNoShow } from \"./tooltips\";\r\n\r\nexport function ReservationBlockListPage(props) {\r\n const history = useHistory();\r\n const currUser = useSelector(currentUser);\r\n // Variable to show hide modal popup start\r\n const [showAdvancedSearchModal, setShowAdvancedSearchModal] = useState(false);\r\n const [showAgentSearchFilterModal, setShowAgentSearchFilterModal] = useState(false);\r\n const [showCompanySearchFilterModal, setShowCompanySearchFilterModal] = useState(false);\r\n const [showRoomGuestDetailPopup, setShowRoomGuestDetailPopup] = useState(false);\r\n const [showBlockTipHoldPopup, setShowBlockTipHoldPopup] = useState(false);\r\n const [showBlockTipCancelledPopup, setShowBlockTipCancelledPopup] = useState(false);\r\n const [showBlockTipLoss, setShowBlockTipLoss] = useState(false);\r\n const [blockStatus, setBlockStatus] = useState({});\r\n\r\n\r\n // Variable to show hide modal popup end\r\n // page load - one time exection when page is loaded\r\n useEffect(() => {\r\n cmbGetRateCodeMaster(currUser.ClientSerNo, currUser.PropertySerNo).then(\r\n (d) => {\r\n setFilRateCodeData(d.data);\r\n }\r\n );\r\n cmbGetReservationTypeMaster(\r\n currUser.ClientSerNo,\r\n currUser.PropertySerNo\r\n ).then((d) => {\r\n console.log(\"Reservation type are \", d.data);\r\n setFilResTypeData(d.data);\r\n });\r\n GetUsersList(\r\n currUser.ClientSerNo\r\n ).then((d) => {\r\n let userList = [];\r\n userList.push({ key: \"0\", value: \"Select\" })\r\n d.data.map(element => {\r\n userList.push({ key: element.UserID, value: element.UserID })\r\n })\r\n setFilUserTypeData(userList);\r\n });\r\n // cmbGetRoomTypeMaster(currUser.ClientSerNo, currUser.PropertySerNo).then(\r\n // (d) => {\r\n // setFilRoomTypeData(d.data);\r\n // }\r\n // );\r\n\r\n }, []);\r\n // page load - one time exection when page is loaded\r\n\r\n // Data Grid Start\r\n const [page, setPage] = useState(1);\r\n const [sortCol, setSortCol] = useState(\"\");\r\n const [sortType, setSortType] = useState(\"ASC\");\r\n const [pageCount, setPageCount] = useState(1);\r\n const [gridSelectedItem, SetgridSelectedItem] = useState([]);\r\n const [temp, settemp] = useState(false);\r\n const [selectedBlock, setSelectedBlock] = useState({});\r\n const [tooltipOpen, setTooltipOpen] = useState(false);\r\n const [tentativeOpen, setTentativeOpen] = useState(false);\r\n const [noShowOpen, setNoShowOpen] = useState(false);\r\n //grid header\r\n const columHeader = [\r\n { key: \"Block Status\", value: \"BlockStatus\", type: \"lnk\", sorting: \"N\" },\r\n { key: \"Block Name\", value: \"BlockName\", type: \"txt\", sorting: \"N\" },\r\n // { key: \"Block Code\", value: \"BlockCode\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Min. Arrival Date\", value: \"ArrivalDate\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Max. Departure Date\", value: \"DepartureDate\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Room Nights\", value: \"Nights\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Rate Code\", value: \"RateCodeName\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Travel Agent\", value: \"Agent\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Company\", value: \"Company\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Cut Off Date\", value: \"CutOffDate\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Block Owner\", value: \"UserID\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Block Co-ordinator\", value: \"GuestName\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n\r\n /* Cancel/ No Show grid data start */\r\n const optCancelPayment = [\r\n { key: 'print', value: 'Print Receipt' },\r\n { key: 'email', value: 'Email Receipt' },\r\n { key: 'correction', value: 'Payment Correction' },\r\n { key: 'ref', value: 'Refund' },\r\n ]\r\n\r\n\r\n const [filterData, setfilterData] = useState([]);\r\n\r\n const optBtnData = [\r\n { key: \"Cancel\", value: \"Cancel\" },\r\n { key: \"Reinstate \", value: \"Reinstate\" },\r\n { key: \"Edit\", value: \"Edit\" },\r\n ];\r\n\r\n const actionPopup = (item) => {\r\n if (item.value == \"Cancel\") {\r\n } else if (item.value == \"No-Show\") {\r\n } else if (item.value == \"Edit\") {\r\n history.push({ pathname: \"/BlockAtGlance\", state: { propertySerNo: 1, BlockSerNo: selectedBlock.BlockSerNo } });\r\n }\r\n }\r\n\r\n\r\n const fillDataGrid = () => {\r\n setActive(true);\r\n let Ratestr = \"\"\r\n let RoomTypestr = \"\"\r\n console.log(selectedRateCode)\r\n if (selectedRateCode[0] != undefined && selectedRateCode.length > 0 && filRateCodeData.length > 0) {\r\n selectedRateCode.forEach((d) => {\r\n Ratestr = Ratestr + filRateCodeData.filter(ele => ele.key == d)[0].key + \",\"\r\n })\r\n }\r\n // console.log(filRoomTypeData)\r\n // if(selectedRoomType[0] != undefined && selectedRoomType.length>0 && filRoomTypeData.length >0 ){\r\n // selectedRoomType.forEach((d)=>{\r\n // RoomTypestr = RoomTypestr + filRoomTypeData.filter(ele => ele.value == d)[0].key+ \",\"\r\n // })\r\n // }\r\n\r\n let tempReservationBlockListFilter = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n DateType: selectedDtType,\r\n FromDate: selectedFromDate,\r\n ToDate: selectedToDate,\r\n CompanyProfileSerNo: (selectedCompany.AgentSerNo === undefined || selectedCompany.AgentSerNo == \"\") ? 0 : selectedCompany.AgentSerNo,\r\n AgentProfileSerNo: (selectedAgent.AgentSerNo === undefined || selectedAgent.AgentSerNo == \"\") ? 0 : selectedAgent.AgentSerNo,\r\n RateSerNo: Ratestr,\r\n ReservationTypeSerNo: parseInt(selectedResType.key),\r\n BlockCode: selectedBlockCode,\r\n BlockName: selectedBlockName,\r\n GuestName: selectedGuestName,\r\n UserID: selectedUserId.key,\r\n PageNumber: page,\r\n SortCol: sortCol,\r\n SortType: sortType\r\n }\r\n GetReservationBlockList(tempReservationBlockListFilter).then((d) => {\r\n setfilterData(d.data);\r\n let pCount = 0;\r\n let pModuler = 0;\r\n try {\r\n pCount = parseInt(parseInt(d.data[0].TotalRows) / 50);\r\n try {\r\n pModuler = parseInt(parseInt(d.data[0].TotalRows) % 50);\r\n if (pModuler > 0) pCount = pCount + 1;\r\n } catch (e1) { }\r\n console.log(pCount);\r\n setPageCount(pCount);\r\n } catch (e) { }\r\n setActive(false);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n fillDataGrid();\r\n console.log(\"called\", page);\r\n }, [page]);\r\n\r\n useEffect(() => {\r\n console.log(\"selected data\", gridSelectedItem);\r\n console.log(\"selected length\", gridSelectedItem.length);\r\n }, [gridSelectedItem, temp]);\r\n\r\n const setSelectedItem = (items) => {\r\n SetgridSelectedItem(items);\r\n settemp(!temp);\r\n };\r\n\r\n // Data Grid End\r\n\r\n const [isActive, setActive] = useState(false);\r\n const toggleClass = () => {\r\n setActive(!isActive);\r\n };\r\n\r\n const ActionOption = [\r\n { key: \"Cancel\", value: \"Cancel\" },\r\n { key: \"Reinstate \", value: \"Reinstate\" },\r\n ];\r\n\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n\r\n const [showReservationPopup, setShowReservationPopup] = useState(false);\r\n const [showLeftBlueBar, setshowLeftBlueBar] = useState(false);\r\n\r\n const RoomAssignSort = [\r\n { key: \"Room\", value: \"Room\" },\r\n { key: \"Room Type\", value: \"Room Type\" },\r\n { key: \"HK Status\", value: \"HK Status\" },\r\n { key: \"FO Status\", value: \"FO Status\" },\r\n { key: \"Arrival Date\", value: \"Arrival Date\" },\r\n { key: \"Depart. Date\", value: \"Depart. Date\" },\r\n { key: \"Reservation Status\", value: \"Reservation Status\" },\r\n { key: \"Conf. No.\", value: \"Conf. No.\" },\r\n { key: \"Guest Name\", value: \"Guest Name\" },\r\n ];\r\n\r\n const assignData = [\r\n { key: \"Assign\", value: \"Assign\" },\r\n { key: \"Assign & Check In\", value: \"Assign & Check In\" },\r\n\r\n ];\r\n\r\n const AssignedMenuData = [\r\n { key: \"Option 1\", value: \"Cancel\" },\r\n { key: \"Option 2\", value: \"No Show\" },\r\n { key: \"Option 3\", value: \"Assign / Re-Assign\" },\r\n { key: \"Option 4\", value: \"Unassign\" },\r\n { key: \"Option 5\", value: \"Check in\" },\r\n { key: \"Option 6\", value: \"Exchange\" },\r\n { key: \"Option 7\", value: \"Auto Assign\" },\r\n ];\r\n\r\n const CheckoutTimeDD = [\r\n { key: \"No Info\", value: \"No Info\" },\r\n { key: \"No Response\", value: \"No Response\" },\r\n { key: \"Option\", value: \"1:00 AM\" },\r\n { key: \"Option\", value: \"1:30 AM\" },\r\n { key: \"Option\", value: \"2:00 AM\" },\r\n { key: \"Option\", value: \"2:30 AM\" },\r\n { key: \"Option\", value: \"3:00 AM\" },\r\n { key: \"Option\", value: \"3:30 AM\" },\r\n { key: \"Option\", value: \"4:00 AM\" },\r\n { key: \"Option\", value: \"4:30 AM\" },\r\n { key: \"Option\", value: \"5:00 AM\" },\r\n { key: \"Option\", value: \"5:30 AM\" },\r\n { key: \"Option\", value: \"6:00 AM\" },\r\n { key: \"Option\", value: \"6:30 AM\" },\r\n { key: \"Option\", value: \"7:00 AM\" },\r\n { key: \"Option\", value: \"7:30 AM\" },\r\n\r\n ];\r\n\r\n /* Tabs code start */\r\n //tab JSON\r\n const [tabcollection, settabcollection] = useState([\r\n {\r\n Id: \"Ms. Preeti Iyengar\",\r\n Detail: \"MMT23456789\",\r\n isEdit: false,\r\n tooltipTitle: \"Ms. Preeti Iyengar\",\r\n tooltipContent: \"MMT23456789\",\r\n },\r\n {\r\n Id: \"Mr. Vaibhav Jain\",\r\n Detail: \"MMT23456789\",\r\n isEdit: false,\r\n tooltipTitle: \"Mr. Vaibhav Jain\",\r\n tooltipContent: \"MMT23456789\",\r\n },\r\n {\r\n Id: \"Mr. Tan Eng Siong\",\r\n Detail: \"MMT23456789\",\r\n isEdit: false,\r\n tooltipTitle: \"Mr. Tan Eng Siong\",\r\n tooltipContent: \"MMT23456789\",\r\n },\r\n {\r\n Id: \"Mr. Vasantha Raghavan\",\r\n Detail: \"MMT23456789\",\r\n isEdit: false,\r\n tooltipTitle: \"Mr. Vasantha Raghavan\",\r\n tooltipContent: \"MMT23456789\",\r\n },\r\n {\r\n Id: \"Mr. Arvin D'souza\",\r\n Detail: \"MMT23456789\",\r\n isEdit: false,\r\n tooltipTitle: \"Mr. Arvin D'souza\",\r\n tooltipContent: \"MMT23456789\",\r\n },\r\n {\r\n Id: \"Ms. Divya Agarwal\",\r\n Detail: \"MMT23456789\",\r\n isEdit: false,\r\n tooltipTitle: \"Ms. Divya Agarwal\",\r\n tooltipContent: \"MMT23456789\",\r\n },\r\n ]);\r\n\r\n //Add new Tab\r\n const addNewTab = (srno, refno, isEdit, tooltipTitle, tooltipContent) => {\r\n tabcollection.push({\r\n Id: srno,\r\n Detail: refno,\r\n isEdit: isEdit,\r\n tooltipTitle: tooltipTitle,\r\n tooltipContent: tooltipContent,\r\n });\r\n const uniquetabcollection = [\r\n ...new Map(\r\n tabcollection.map((item) => [JSON.stringify(item), item])\r\n ).values(),\r\n ];\r\n settabcollection(uniquetabcollection);\r\n };\r\n\r\n //Tab ID\r\n const [tabId, settabId] = useState(\"tab1\");\r\n\r\n //inside tab content button click event\r\n const handlesave = (id) => {\r\n const arr1 = JSON.parse(JSON.stringify(tabcollection));\r\n for (let index = 0; index < arr1.length; index++) {\r\n if (arr1[index].Id == id) {\r\n arr1[index].isEdit = true;\r\n }\r\n }\r\n\r\n //settemptab(!temptab);\r\n settabcollection(arr1);\r\n console.log(arr1);\r\n };\r\n\r\n useEffect(() => { }, [tabcollection]);\r\n /* Tabs code end */\r\n\r\n /* Dynamic filter start */\r\n\r\n const ResetFilter = () => {\r\n setSelectedFromDate(\"1-jan-2022\");\r\n setSelectedToDate(\"30-dec-2023\");\r\n setSelectedGuestName(\"\");\r\n setSelectedBlockName(\"\");\r\n setSelectedBlockCode(\"\");\r\n setSelectedCompany({ AgentName: \"Select\", AgentSerNo: 0 });\r\n setSelectedAgent({ AgentName: \"Select\", AgentSerNo: 0 });\r\n setSelectedRateCode([]);\r\n setSelectedRoomType([undefined]);\r\n setSelectedResType({ key: 0, value: \"Select\" });\r\n setSelectedDtType(\"ArrDate\");\r\n setSelectedUserId({ key: \"0\", value: \"Select\" });\r\n\r\n\r\n };\r\n\r\n const MoreFilterOption = [\r\n { key: \"filRtCd\", value: \"Rate Code\" },\r\n { key: \"filCom\", value: \"Company\" },\r\n { key: \"filAgt\", value: \"Travel Agent\" },\r\n { key: \"filResType\", value: \"Reservation Type\" },\r\n { key: \"filUserType\", value: \"Block Owner\" },\r\n { key: \"filBlockConfNo\", value: \"Block Confirmation No.\" },\r\n ];\r\n\r\n const selectDateTyedata = [\r\n { key: \"ArrDate\", value: \"Arrival Date\" },\r\n { key: \"DeptDate\", value: \"Departure Date\" },\r\n { key: \"BookDate\", value: \"Booking Date\" },\r\n { key: \"StayDate\", value: \"Stay Date\" },\r\n ];\r\n const [colList, setColList] = useState([]);\r\n const [colListKeys, setColListKeys] = useState([]);\r\n const [showFilter, setShowFilter] = useState(false);\r\n const [selectedFromDate, setSelectedFromDate] = useState(\"1-jan-2022\");\r\n const [selectedToDate, setSelectedToDate] = useState(\"30-dec-2023\");\r\n const [selectedRateCodeList, setSelectedRateCodeList] = useState([undefined]);\r\n const [selectedRateCode, setSelectedRateCode] = useState([undefined]);\r\n const [selectedRoomType, setSelectedRoomType] = useState([undefined]);\r\n const [selectedResType, setSelectedResType] = useState({ key: 0, value: \"Select\", });\r\n const [selectedDtType, setSelectedDtType] = useState(\"ArrDate\");\r\n const [selectedAgent, setSelectedAgent] = useState({ AgentName: \"Select\", AgentSerNo: 0, });\r\n const [selectedCompany, setSelectedCompany] = useState({ AgentName: \"Select\", AgentSerNo: 0, });\r\n const [selectedGuestName, setSelectedGuestName] = useState(\"\");\r\n const [selectedBlockName, setSelectedBlockName] = useState(\"\");\r\n const [selectedBlockCode, setSelectedBlockCode] = useState(\"\");\r\n const [selectedBlockConfNo, setSelectedBlockConfNo] = useState(\"\");\r\n const [selectedHold, setSelectedHold] = useState(\"\");\r\n const [selectedUserId, setSelectedUserId] = useState({ key: \"0\", value: \"Select\", });\r\n\r\n\r\n //const [selectedUserId, setSelectedUserId] = useState({ key: \"0\", value: \"Select\", });\r\n const [filRateCodeData, setFilRateCodeData] = useState([]);\r\n const [filResTypeData, setFilResTypeData] = useState([]);\r\n const [filUserTypeData, setFilUserTypeData] = useState([]);\r\n //const [filRoomTypeData,setFilRoomTypeData]=useState([]);\r\n\r\n useEffect(() => {\r\n let temp = [];\r\n if (colList && colList.length > 0) {\r\n colList.map(d => {\r\n temp.push(d.key);\r\n })\r\n }\r\n setColListKeys(temp);\r\n }, [colList]);\r\n\r\n\r\n const filUserType = () => {\r\n return (\r\n {\r\n setSelectedUserId(item);\r\n }}\r\n onClose={() => {\r\n setSelectedUserId({ key: \"0\", value: \"Select\" });\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filUserType\");\r\n setColList(c);\r\n }}\r\n />\r\n );\r\n\r\n };\r\n\r\n\r\n const filRtCd = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(item)\r\n setSelectedRateCode(item);\r\n // let temp = [];\r\n // if(filRateCodeData && filRateCodeData.length > 0){\r\n // item.forEach((d)=>{\r\n // temp.push(filRateCodeData.filter(ele => ele.key == d)[0].value)\r\n // })\r\n // setSelectedRateCodeList(temp)\r\n // }\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n // const filRmTyp = () => {\r\n // return (\r\n //
    \r\n //
    \r\n //
    \r\n // {\r\n // console.log(item)\r\n // setSelectedRoomType(item);\r\n // }}\r\n // >\r\n //
    \r\n //
    \r\n //
    \r\n // );\r\n // };\r\n\r\n const filCom = () => {\r\n return (\r\n
    \r\n \r\n \r\n setShowCompanySearchFilterModal(!showCompanySearchFilterModal)\r\n }\r\n value={selectedCompany.AgentName}\r\n >\r\n Company\r\n \r\n \r\n setShowCompanySearchFilterModal(!showCompanySearchFilterModal)\r\n }\r\n >\r\n \r\n \r\n {\r\n setSelectedCompany({ AgentName: \"Select\", AgentSerNo: \"0\" });\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filCom\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n \r\n );\r\n };\r\n const filAgt = () => {\r\n return (\r\n
    \r\n \r\n \r\n setShowAgentSearchFilterModal(!showAgentSearchFilterModal)\r\n }\r\n value={selectedAgent.AgentName}\r\n >\r\n Agent\r\n \r\n \r\n setShowAgentSearchFilterModal(!showAgentSearchFilterModal)\r\n }\r\n >\r\n \r\n \r\n {\r\n setSelectedAgent({ AgentName: \"Select\", AgentSerNo: 0 });\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filAgt\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n \r\n );\r\n };\r\n const filResType = () => {\r\n return (\r\n {\r\n setSelectedResType(item);\r\n }}\r\n onClose={() => {\r\n setSelectedResType({ key: 0, value: \"Select\" });\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filResType\");\r\n setColList(c);\r\n }}\r\n />\r\n );\r\n\r\n };\r\n\r\n const filBlockConfNo = () => {\r\n return (\r\n
    \r\n
    \r\n {\r\n setSelectedBlockConfNo(v);\r\n }}\r\n value={selectedBlockConfNo}\r\n >\r\n Block Confirmation No.\r\n \r\n {\r\n setSelectedBlockConfNo(\"\");\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filBlockConfNo\");\r\n setColList(c);\r\n }}\r\n >\r\n\r\n
    \r\n
    \r\n );\r\n\r\n };\r\n\r\n const BlockTipHoldClick = () => {\r\n setShowBlockTipHoldPopup(!showBlockTipHoldPopup);\r\n\r\n }\r\n const BlockTipCancelledClick = () => {\r\n setShowBlockTipCancelledPopup(!showBlockTipCancelledPopup);\r\n }\r\n\r\n const BlockTipLossClick = () => {\r\n setShowBlockTipLoss(!showBlockTipLoss);\r\n }\r\n\r\n /* Dynamic filter End */\r\n\r\n const DummyOption = [\r\n { key: \"1\", value: \"Option 1\" },\r\n { key: \"2\", value: \"Option 2\" },\r\n { key: \"3\", value: \"Option 3\" },\r\n { key: \"4\", value: \"Option 4\" },\r\n { key: \"5\", value: \"Option 5\" },\r\n ];\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Reservation Block

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n {\r\n setshowLeftBlueBar(true);\r\n }}\r\n >\r\n {\r\n setshowLeftBlueBar(true);\r\n }}\r\n >\r\n Today's Arrival (75)\r\n \r\n {/* \r\n \r\n */}\r\n
    \r\n\r\n
    \r\n setTooltipOpen(!tooltipOpen)}>\r\n Confirm\r\n \r\n setTentativeOpen(!tentativeOpen)}>\r\n Tentative\r\n \r\n setNoShowOpen(!noShowOpen)}>\r\n No-Show\r\n \r\n \r\n Hold\r\n \r\n\r\n Cancelled\r\n\r\n \r\n Loss\r\n \r\n\r\n {\r\n history.push(\"/NewBlockReservation\");\r\n }}\r\n >\r\n + New Reservation Block\r\n \r\n \r\n Export\r\n \r\n \r\n Actions (50)\r\n \r\n \r\n setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }\r\n >\r\n \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n {\r\n setSelectedItem(items);\r\n }}\r\n fixedHeaderNo={2}\r\n handleIconClick={(d) => {\r\n console.log(d);\r\n }}\r\n uniqueColumn=\"BlockSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n console.log(item, d);\r\n actionPopup(item)\r\n }}\r\n handleLinkClick={(v) => {\r\n setBlockStatus(v);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n setSelectedBlock(rowdata);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n setSortCol(sn);\r\n setSortType(st);\r\n if (page === 1) fillDataGrid();\r\n else setPage(1);\r\n }}\r\n >\r\n {\r\n setPage(v);\r\n }}\r\n style={{ float: \"right\" }}\r\n />\r\n
    \r\n\r\n\r\n {/* blue bg inside menu Start */}\r\n {showLeftBlueBar == true && (\r\n { setshowLeftBlueBar(!showLeftBlueBar) }}>\r\n )}\r\n {/* blue bg inside menu End */}\r\n\r\n {/* Advanced Filter Popup Start */}\r\n\r\n {showAdvancedSearchModal ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Filters

    \r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(\"before called\", colList, items, item);\r\n setColList(items);\r\n setColListKeys(item);\r\n if (item.length > 0) {\r\n setShowFilter(true);\r\n } else {\r\n setShowFilter(false);\r\n }\r\n console.log(item);\r\n }}\r\n label=\"More Filters\"\r\n searchable={[\"Search\", \"No matching property\"]}\r\n className=\"button-layout-dd gray-btn\"\r\n buttonLayout={true}\r\n >\r\n
    \r\n ResetFilter()\r\n // setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }\r\n >\r\n Reset\r\n \r\n {\r\n if (page === 1) fillDataGrid();\r\n else setPage(1);\r\n setShowAdvancedSearchModal(!showAdvancedSearchModal);\r\n }}\r\n >\r\n Apply\r\n \r\n \r\n setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }\r\n >\r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedFromDate(e);\r\n }}\r\n placeholder=\"Date From\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Date From\"\r\n >\r\n
    \r\n
    \r\n {\r\n setSelectedToDate(e);\r\n }}\r\n placeholder=\"Date To\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Date To\"\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(item)\r\n setSelectedDtType(item.key)\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedBlockCode(v);\r\n }}\r\n value={selectedBlockCode}\r\n >\r\n Block Code\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedBlockName(v);\r\n }}\r\n value={selectedBlockName}\r\n >\r\n Block Name\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n setSelectedGuestName(v);\r\n }}\r\n value={selectedGuestName}\r\n >\r\n Block Co-Ordinator\r\n \r\n
    \r\n
    \r\n {showFilter ? (\r\n <>\r\n {colList.map((o) =>\r\n o.key === \"filUserType\" ? (\r\n filUserType()\r\n ) : o.key === \"filRtCd\" ? (\r\n filRtCd()\r\n ) : o.key === \"filCom\" ? (\r\n filCom()\r\n ) : o.key === \"filAgt\" ? (\r\n filAgt()\r\n ) : o.key === \"filResType\" ? (\r\n filResType()\r\n ) : o.key === \"filBlockConfNo\" ? (\r\n filBlockConfNo()\r\n ) : (\r\n <>404\r\n )\r\n )}\r\n \r\n ) : (\r\n <>\r\n )}\r\n
    \r\n
    \r\n ) : null}\r\n\r\n {showAgentSearchFilterModal ? (\r\n setShowAgentSearchFilterModal(false)}\r\n handleOnSelect={(selected) => {\r\n setSelectedAgent(selected);\r\n setShowAgentSearchFilterModal(false);\r\n }}\r\n ProfileType=\"Ag\"\r\n >\r\n ) : (\r\n <>\r\n )}\r\n {showCompanySearchFilterModal ? (\r\n setShowCompanySearchFilterModal(false)}\r\n handleOnSelect={(selected) => {\r\n setSelectedCompany(selected);\r\n setShowCompanySearchFilterModal(false);\r\n }}\r\n ProfileType=\"Co\"\r\n >\r\n ) : (\r\n <>\r\n )}\r\n\r\n {/* {showBlockTipHoldPopup ?\r\n : null\r\n }\r\n\r\n {showBlockTipCancelledPopup ?\r\n : null\r\n }\r\n\r\n {showBlockTipLoss ?\r\n : null\r\n }\r\n\r\n {tooltipOpen ? setTooltipOpen(false)}> : null}\r\n {tentativeOpen ? setTentativeOpen(false)}> : null} */}\r\n {/* {noShowOpen ? setNoShowOpen(false)}> : null} */}\r\n {\r\n blockStatus.BlockStatus == \"CON\" ?\r\n (\r\n { setBlockStatus({}); }} >\r\n )\r\n :\r\n blockStatus.BlockStatus == \"CAN\" ?\r\n (\r\n { setBlockStatus({}); }} >\r\n )\r\n :\r\n blockStatus.BlockStatus == \"TEN\" ?\r\n (\r\n { setBlockStatus({}); }} >\r\n )\r\n :\r\n blockStatus.BlockStatus == \"NSH\" ?\r\n (\r\n { setBlockStatus({}); }}>\r\n )\r\n :\r\n blockStatus.BlockStatus == \"HLD\" ?\r\n (\r\n { setBlockStatus({}); }} >\r\n )\r\n :\r\n blockStatus.BlockStatus == \"LOS\" ?\r\n (\r\n { setBlockStatus({}); }} >\r\n )\r\n :\r\n <>\r\n }\r\n \r\n );\r\n}\r\n\r\n//export default ReservationListPage;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnTooltip,\r\n InnLoader,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport { GetSpecialGroupMaster, AddEditSpecialGroupMaster, GetSpecialMaster, AddEditSpecialMaster } from \"../../../../services/frontMasterService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\n\r\n\r\n\r\n\r\n// import { max } from \"moment\";\r\n\r\nexport function SpecialGroupMaster(props) {\r\n const { t } = useTranslation();\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n //#region Local variables\r\n\r\n const currUser = useSelector(currentUser);\r\n const defaultSpecialGroupObj = {\r\n \"ClientSerNo\": (parseInt(currUser.ClientSerNo)),\r\n \"PropertySerNo\": (parseInt(currUser.PropertySerNo)),\r\n \"SpecialGroupSerNo\": 0,\r\n \"Name\": \"\",\r\n \"LongDescription\": \"\",\r\n \"Mode\": \"View\"\r\n }\r\n const defaultSpecialObj = {\r\n \"ClientSerNo\": (parseInt(currUser.ClientSerNo)),\r\n \"PropertySerNo\": (parseInt(currUser.PropertySerNo)),\r\n \"SpecialGroupSerNo\": 0,\r\n \"SpecialSerNo\": 0,\r\n \"Sequence\": 0,\r\n \"Name\": \"\",\r\n \"LongDescription\": \"\",\r\n \"Mode\": \"View\"\r\n }\r\n //#endregion\r\n //#region SpecialGroup State Variables\r\n const [specialGroupObj, setSpecialGroupObj] = useState(defaultSpecialGroupObj);\r\n const [getSpecialGroupData, setGetSpecialGroupData] = useState([]);\r\n const [filterSpecialGroupMaster, setFilterSpecialGroupMaster] = useState([]);\r\n const [searchGroupString, setGroupSearchString] = useState(\"\");\r\n const [isDisabled, setIsDisabled] = useState(true);\r\n const [selectedSpecialGroupSerNo, setSelectedSpecialGroupSerNo] = useState(0);\r\n const [invalidInput, setInvalidInput] = useState(\"\");\r\n //#endregion\r\n //#region SpecialMaster State Variables\r\n const [specialObj, setSpecialObj] = useState(defaultSpecialObj);\r\n const [getSpecialData, setGetSpecialData] = useState([]);\r\n const [searchString, setSearchString] = useState(\"\");\r\n const [filterSpecialMaster, setFilterSpecialMaster] = useState([]);\r\n const [displaySpecialMaster, setDisplaySpecialMaster] = useState([]);\r\n const [selectedSpecialSerNo, setSelectedSpecialSerNo] = useState(0);\r\n const [invalidSpecialsInput, setInvalidSpecialsInput] = useState(\"\");\r\n const [isDisabled1, setIsDisabled1] = useState(true);\r\n const [showSpecialsGroupModal, setShowSpecialsGroupModal] = useState();\r\n const [isAddBtnClicked, setIsAddBtnClicked] = useState(false);\r\n const [isActive, setIsActive] = useState(false);\r\n\r\n const [showAlertPopup, setShowAlertPopup] = useState(false);\r\n const [showNoPostPopup, setNoPostPopup] = useState(false);\r\n //#endregion\r\n //#region Custom Functions\r\n const fillSpecialGroupMaster = () => {\r\n setIsActive(true)\r\n GetSpecialGroupMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo))\r\n .then((d) => {\r\n if (d.data) {\r\n if (selectedSpecialGroupSerNo == 0 || specialGroupObj.SpecialGroupSerNo == 0) {\r\n let temp = d.data[0]\r\n setSpecialGroupObj(temp)\r\n setSelectedSpecialGroupSerNo(temp.SpecialGroupSerNo);\r\n setSpecialGroupObj((prev) => ({ ...prev, Mode: \"View\" }))\r\n }\r\n setIsActive(false)\r\n setFilterSpecialGroupMaster(d.data);\r\n setGetSpecialGroupData(d.data);\r\n }\r\n })\r\n }\r\n const fillSpecialMaster = () => {\r\n setIsActive(true)\r\n GetSpecialMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(specialGroupObj.SpecialGroupSerNo))\r\n .then((d) => {\r\n console.log(d.data);\r\n if (d.data) {\r\n if (selectedSpecialSerNo == 0 && specialObj.SpecialSerNo == 0) {\r\n let temp = d.data[0]\r\n if (temp) {\r\n setSelectedSpecialSerNo(temp.SpecialSerNo)\r\n setSpecialObj(temp)\r\n }\r\n setSpecialObj((prev) => ({ ...prev, Mode: \"View\" }))\r\n }\r\n setIsActive(false)\r\n setDisplaySpecialMaster(d.data);\r\n setFilterSpecialMaster(d.data);\r\n setGetSpecialData(d.data);\r\n }\r\n })\r\n }\r\n //#endregion\r\n //#region SpecialGroupMaster Events\r\n const handleOnCancelSearchSpecialGroup = (e) => {\r\n let filterdata = getSpecialGroupData.filter(obj => obj.Name.toLowerCase().includes(e.toLowerCase()));\r\n setFilterSpecialGroupMaster(filterdata);\r\n setGroupSearchString(e);\r\n }\r\n const handleOnSearchSpecialGroup = (e) => {\r\n let filterdata1 = getSpecialGroupData.filter(obj => obj.Name.toLowerCase().includes(e.toLowerCase()));\r\n setFilterSpecialGroupMaster(filterdata1);\r\n setGroupSearchString(e);\r\n setSpecialGroupObj(defaultSpecialGroupObj);\r\n setSelectedSpecialGroupSerNo(0)\r\n setFilterSpecialMaster([])\r\n setSelectedSpecialSerNo(0)\r\n }\r\n const handleSpecialGroupClick = (e) => {\r\n setSelectedSpecialGroupSerNo(e.target.id);\r\n setIsDisabled(true);\r\n let obj = getSpecialGroupData.find((x) => x.SpecialGroupSerNo == e.target.id);\r\n setSpecialGroupObj(prev => ({ ...prev, Name: obj.Name, SpecialGroupSerNo: obj.SpecialGroupSerNo, LongDescription: obj.LongDescription }));\r\n // setSpecialObj(defaultSpecialObj);\r\n }\r\n const isValidSpecialGroup = () => {\r\n let isValid = true\r\n if (specialGroupObj.Name.trim().length == 0) {\r\n isValid = false\r\n setInvalidInput(\"Please Provide a valid Name\");\r\n alertFunction(\"Please Provide a valid Name\");\r\n }\r\n else if (!(/^[a-zA-Z0-9 -]*$/).test(specialGroupObj.Name)) {\r\n isValid = false\r\n setInvalidInput(\"Invalid Input\");\r\n alertFunction(\"Special characters are not allowed.\");\r\n }\r\n return isValid;\r\n }\r\n const handleSpecialGroupOnSaveClick = () => {\r\n let isValid = isValidSpecialGroup()\r\n if (isValid) {\r\n setIsActive(true)\r\n setIsDisabled(!isDisabled);\r\n setInvalidInput(\"\");\r\n AddEditSpecialGroupMaster(specialGroupObj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n fillSpecialGroupMaster();\r\n setGroupSearchString(\"\");\r\n setIsActive(false)\r\n }\r\n setSpecialGroupObj((prev) => ({ ...prev, Mode: \"View\" }))\r\n alertFunction(d.data.Message);\r\n if (specialGroupObj.Mode == \"Add\") {\r\n setSpecialGroupObj((prev) => ({ ...prev, SpecialGroupSerNo: parseInt(d.data.ReturnValue) }))\r\n setSelectedSpecialGroupSerNo(d.data.ReturnValue);\r\n }\r\n })\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n const handleSpecialGroupOnCancelClick = () => {\r\n setInvalidInput(\"\");\r\n setIsDisabled(!isDisabled);\r\n let editedSpecialGroupObj = getSpecialGroupData.find(e => e.SpecialGroupSerNo == selectedSpecialGroupSerNo);\r\n if (editedSpecialGroupObj != undefined)\r\n setSpecialGroupObj(editedSpecialGroupObj);\r\n else\r\n setSpecialGroupObj(defaultSpecialGroupObj);\r\n }\r\n const handleSpecialGroupOnEditClick = () => {\r\n if (specialGroupObj.SpecialGroupSerNo !== 0) {\r\n setIsDisabled(!isDisabled)\r\n setSpecialGroupObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n else {\r\n alertFunction(\"Please select special group to continue.\");\r\n }\r\n }\r\n const handleSpecialGroupOnAddClick = () => {\r\n setIsDisabled(!isDisabled);\r\n let obj = JSON.parse(JSON.stringify(defaultSpecialGroupObj));\r\n obj.Mode = \"Add\";\r\n setSpecialGroupObj(obj);\r\n setFilterSpecialMaster([])\r\n }\r\n //#endregion\r\n //#region SpecialMaster Events\r\n const handleOnSearchSpecial = (e) => {\r\n let filterdata = getSpecialData.filter(obj => obj.Name.toLowerCase().includes(e.toLowerCase()));\r\n setDisplaySpecialMaster(filterdata);\r\n setSearchString(e);\r\n setSelectedSpecialSerNo(0);\r\n setSpecialObj(defaultSpecialObj)\r\n }\r\n const handleSpecialClick = (e) => {\r\n setSelectedSpecialSerNo(e.target.id);\r\n setIsDisabled1(true);\r\n let obj = getSpecialData.find((x) => x.SpecialSerNo == e.target.id);\r\n setSpecialObj(prev => ({ ...prev, SpecialGroupSerNo: obj.SpecialGroupSerNo, Name: obj.Name, SpecialSerNo: obj.SpecialSerNo, Sequence: obj.Sequence, LongDescription: obj.LongDescription }));\r\n }\r\n const isValidSpecial = () => {\r\n let isValid = true;\r\n if (specialObj.Name.trim().length == 0) {\r\n isValid = false;\r\n setInvalidSpecialsInput(\"Please Provide a valid Name\");\r\n alertFunction(\"Please Provide a valid Name\");\r\n }\r\n else if (!(/^[a-zA-Z0-9 -]*$/).test(specialObj.Name)) {\r\n isValid = false;\r\n setInvalidSpecialsInput(\"Invalid Input\");\r\n alertFunction(\"Special characters are not allowed.\");\r\n }\r\n return isValid;\r\n }\r\n const handleSpecialMasterOnSaveClick = () => {\r\n let isValid = isValidSpecial();\r\n if (isValid) {\r\n setIsActive(true)\r\n setIsDisabled1(!isDisabled1);\r\n setInvalidSpecialsInput(\"\");\r\n\r\n AddEditSpecialMaster(specialObj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n fillSpecialMaster();\r\n setSearchString(\"\");\r\n setIsActive(false)\r\n }\r\n setSpecialObj((prev) => ({ ...prev, Mode: \"View\" }))\r\n alertFunction(d.data.Message);\r\n if (specialObj.Mode == \"Add\") {\r\n setSpecialObj((prev) => ({ ...prev, SpecialSerNo: parseInt(d.data.ReturnValue), Sequence: parseInt(d.data.ReturnValue) }))\r\n setSelectedSpecialSerNo(parseInt(d.data.ReturnValue));\r\n }\r\n })\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n const handleSpecialMasterOnCancelClick = () => {\r\n setInvalidSpecialsInput(\"\");\r\n setIsDisabled1(!isDisabled1);\r\n let editedSpecialObj = getSpecialData.find(e => e.SpecialSerNo == selectedSpecialSerNo);\r\n if (editedSpecialObj != undefined)\r\n setSpecialObj(editedSpecialObj);\r\n else\r\n setSpecialObj(defaultSpecialObj);\r\n }\r\n const handleSpecialMasterOnEditClick = () => {\r\n if (specialObj.SpecialSerNo !== 0) {\r\n setIsDisabled1(!isDisabled1);\r\n setSpecialObj(prev => ({ ...prev, Mode: \"Edit\", SpecialGroupSerNo: (specialGroupObj.SpecialGroupSerNo) }));\r\n }\r\n else {\r\n alertFunction(\"Please select special to continue.\");\r\n }\r\n }\r\n const handleSpecialMasterOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultSpecialObj));\r\n obj.Mode = \"Add\";\r\n obj.SpecialGroupSerNo = (specialGroupObj.SpecialGroupSerNo);\r\n setSpecialObj(obj);\r\n\r\n setIsDisabled1(!isDisabled1);\r\n }\r\n const handleModalOnClose = () => {\r\n setSearchString(\"\");\r\n setInvalidSpecialsInput(\"\");\r\n setShowSpecialsGroupModal(!showSpecialsGroupModal);\r\n setSelectedSpecialSerNo(0)\r\n setSpecialObj(defaultSpecialObj)\r\n }\r\n //#endregion\r\n //#region useEffects\r\n useEffect(() => {\r\n fillSpecialGroupMaster();\r\n }, []);\r\n useEffect(() => {\r\n if (specialGroupObj.SpecialGroupSerNo != 0 && specialGroupObj.SpecialGroupSerNo != undefined) {\r\n fillSpecialMaster();\r\n setSpecialObj(defaultSpecialObj);\r\n }\r\n }, [specialGroupObj.SpecialGroupSerNo]);\r\n // useEffect(() => {\r\n // if (specialGroupObj.SpecialGroupSerNo) {\r\n // fillSpecialMaster();\r\n // }\r\n // }, [isDisabled1]);\r\n //#endregion\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Specials Group Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Search\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    Specials Group Names
    \r\n
    \r\n
      \r\n {\r\n filterSpecialGroupMaster.map(d =>\r\n \r\n \r\n {d.Name}\r\n \r\n \r\n )\r\n\r\n }\r\n\r\n
    \r\n
    \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n {\r\n setSpecialGroupObj(prev => ({ ...prev, Name: e }));\r\n setInvalidInput(\"\")\r\n }}\r\n >\r\n Specials Group\r\n \r\n {\r\n setSpecialGroupObj(prev => ({ ...prev, LongDescription: e }))\r\n }}\r\n >\r\n Long Description\r\n \r\n\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n Specials \r\n \r\n {\r\n filterSpecialMaster != \"\" ?\r\n {\r\n setIsAddBtnClicked(false);\r\n setShowSpecialsGroupModal(!showSpecialsGroupModal)\r\n fillSpecialMaster();\r\n }\r\n }>\r\n \r\n :\r\n {\r\n if (selectedSpecialGroupSerNo != 0 && selectedSpecialGroupSerNo != undefined) {\r\n setIsAddBtnClicked(true);\r\n setShowSpecialsGroupModal(!showSpecialsGroupModal)\r\n fillSpecialMaster();\r\n }\r\n else {\r\n alertFunction(\"Please select special group to continue.\");\r\n }\r\n }}\r\n className=\"plus-gray-btn m0\"\r\n >\r\n +\r\n \r\n }\r\n\r\n\r\n \r\n
    \r\n
      \r\n {\r\n filterSpecialMaster.map((d) => {\r\n return (\r\n
    • {d.Name}
    • \r\n );\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n Activate\r\n console.log(v)} id=\"1\">\r\n\r\n \r\n {\r\n isDisabled ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n {showSpecialsGroupModal ? (\r\n \r\n
    \r\n
    \r\n
    \r\n

    Specials

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Specials
    \r\n
    \r\n
      \r\n {\r\n displaySpecialMaster.map((d) => {\r\n return (\r\n \r\n \r\n {d.Name}\r\n \r\n \r\n );\r\n })\r\n\r\n }\r\n\r\n
    \r\n
    \r\n {/* Add Deposit Term */}\r\n\r\n
    \r\n\r\n
    \r\n {\r\n setSpecialObj(prev => ({ ...prev, Name: e }))\r\n setInvalidSpecialsInput(\"\")\r\n }}\r\n >\r\n Specials\r\n \r\n {\r\n setSpecialObj(prev => ({ ...prev, LongDescription: e }))\r\n }}\r\n >\r\n Long Description\r\n \r\n {/*
    \r\n Active\r\n console.log(v)} id=\"3\">\r\n \r\n
    */}\r\n
    \r\n Active{\" \"}\r\n console.log(v)}\r\n id=\"3\"\r\n >\r\n
    \r\n
    \r\n {\r\n specialObj.Mode != \"Add\" && specialObj.Mode != \"Edit\" ?\r\n (\r\n isAddBtnClicked == true ?\r\n <>\r\n Add
    \r\n \r\n :\r\n <>\r\n Edit\r\n Add\r\n \r\n )\r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null\r\n }\r\n
    \r\n );\r\n}\r\n\r\n// export default TempSpecialsGroupMaster;","import React, { useEffect, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnPlainButton,\r\n InnLoader,\r\n InnRadioButton,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetDayTypemaster, AddEditDayTypemaster } from \"../../../../services/frontMasterService\";\r\n\r\nexport function DayTypeMaster(props) {\r\n\r\n //#region local variables\r\n const currUser = useSelector(currentUser);\r\n const {confirm} = useConfirm();\r\n const alertFunction = async (Message) =>{\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{value: \"y\", title: \"Ok\", type: \"\"}],\r\n });\r\n }\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n DayTypeSerNo: 0,\r\n Name: \"\",\r\n PremiumRatePer: \"\",\r\n DisplayColor: \"\",\r\n Mode: \"View\"\r\n }\r\n const validationObj = {\r\n Name: \"\",\r\n PremiumRatePer: \"\",\r\n DisplayColor: \"\",\r\n }\r\n //#endregion\r\n\r\n //#region state variables\r\n const [DayTypeObj, setDayTypeObj] = useState(defaultObj);\r\n const [filterDayTypeMaster, setFilterDayTypeMaster] = useState([]);\r\n const [DayTypeValidation, setDayTypeValidation] = useState(validationObj);\r\n const [DayTypeData, setDayTypeData] = useState([]);\r\n const [search, setSearch] = useState(\"\");\r\n const [old, setOld] = useState(0);\r\n const [isActive, setIsActive] = useState(false);\r\n //#endregion\r\n\r\n const fillDayTypemaster = () => {\r\n setIsActive(true);\r\n GetDayTypemaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setIsActive(false);\r\n setFilterDayTypeMaster(d.data);\r\n setDayTypeData(d.data);\r\n if (d.data.length > 0) {\r\n if (DayTypeObj.Mode == \"Add\" || DayTypeObj.Mode == \"Edit\") {\r\n let obj = d.data.find(x => x.DayTypeSerNo == DayTypeObj.DayTypeSerNo);\r\n obj.Mode = \"View\";\r\n setDayTypeObj(obj);\r\n console.log(\"Edit >>\", obj);\r\n }\r\n else {\r\n d.data[0].Mode = \"View\";\r\n setDayTypeObj(d.data[0]);\r\n console.log(\"DayTypeDataList\", d.data[0]);\r\n }\r\n }\r\n });\r\n }\r\n //#region useEffect\r\n useEffect(() => {\r\n fillDayTypemaster();\r\n }, []);\r\n //#endregion\r\n\r\n //#region custom function\r\n const clearValidation = () => {\r\n setDayTypeValidation(validationObj);\r\n }\r\n const isValidOnlyNumber = (value) => {\r\n let Valid = /^[0-9]+$/.test(value);\r\n return Valid;\r\n }\r\n const isValidOnlyAlphabet = (value) => {\r\n let Valid = /^[a-zA-Z]+$/.test(value);\r\n return Valid;\r\n }\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (DayTypeObj.Name.trim() == \"\") {\r\n isValid = false;\r\n setDayTypeValidation(prev => ({ ...prev, Name: \"Invalid input name\" }));\r\n }\r\n if (DayTypeObj.PremiumRatePer.trim() == \"\") {\r\n isValid = false;\r\n setDayTypeValidation(prev => ({ ...prev, PremiumRatePer: \"Invalid input premium rate\" }));\r\n }\r\n if (DayTypeObj.DisplayColor.trim() == \"\") {\r\n isValid = false;\r\n setDayTypeValidation(prev => ({ ...prev, DisplayColor: \"Invalid input display color\" }));\r\n }\r\n // else {\r\n // isValid = true;\r\n // clearValidation();\r\n // }\r\n return isValid;\r\n }\r\n //#endregion\r\n\r\n //#region Events\r\n const handleDayTypeClick = (e) => {\r\n clearValidation();\r\n setIsActive(false);\r\n let obj = DayTypeData.find(d => d.DayTypeSerNo == e.target.id);\r\n obj.Mode = \"View\";\r\n setDayTypeObj(obj);\r\n console.log(\"Obj >>\", obj);\r\n setOld(e.target.id);\r\n }\r\n const handleEditClick = () => {\r\n if (DayTypeObj.Name == \"\") {\r\n alertFunction(\"Please select DayType Name first\");\r\n }\r\n else {\r\n setDayTypeObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n setOld(DayTypeObj.DayTypeSerNo);\r\n }\r\n }\r\n const handleOnSearchChange = (b) => {\r\n setSearch(b);\r\n setDayTypeObj(defaultObj);\r\n let tempObj = [];\r\n DayTypeData.forEach((ele) => {\r\n if (ele.Name.toLowerCase().includes(b.toLowerCase())) {\r\n tempObj.push(ele);\r\n }\r\n });\r\n setFilterDayTypeMaster(tempObj);\r\n }\r\n\r\n const handleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setDayTypeObj(obj);\r\n }\r\n\r\n const searchEdit = () => {\r\n GetDayTypemaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n let temp = d.data.filter(x => x.Name.toLowerCase().includes(search.toLowerCase()));\r\n setFilterDayTypeMaster(temp);\r\n });\r\n }\r\n\r\n const handleOnSaveClick = () => {\r\n let Valid = isValidPage();\r\n if (Valid) {\r\n setIsActive(true);\r\n AddEditDayTypemaster(DayTypeObj).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n fillDayTypemaster();\r\n if (DayTypeObj.Mode == \"Add\" || DayTypeObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit()\r\n return;\r\n }\r\n DayTypeObj.DayTypeSerNo = parseInt(d.data.ReturnValue);\r\n }\r\n }\r\n else {\r\n alertFunction(\"Failed\");\r\n }\r\n });\r\n setDayTypeObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n const handleOnCancelClick = () => {\r\n clearValidation();\r\n let existing = DayTypeData.find(d => d.DayTypeSerNo == old);\r\n console.log(\"cancel >>\", existing);\r\n if (existing != undefined) {\r\n existing.Mode = \"View\";\r\n setDayTypeObj(existing);\r\n }\r\n else {\r\n setDayTypeObj(defaultObj);\r\n }\r\n }\r\n //#endregion\r\n const rbDataType = [\r\n { key: \"Multiplier \", value: \"Multiplier \" },\r\n { key: \"Adder\", value: \"Adder\" },\r\n ];\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Day Type Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Day Type Names
    \r\n
    \r\n
      \r\n {\r\n filterDayTypeMaster.map(d =>\r\n
    • \r\n \r\n {d.Name}\r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n {\r\n setDayTypeObj(prev => ({ ...prev, Name: m }));\r\n if (m == \"\") {\r\n setDayTypeValidation(prev => ({ ...prev, Name: \" Invalid name\" }))\r\n }\r\n else {\r\n setDayTypeValidation(prev => ({ ...prev, Name: \"\" }))\r\n }\r\n }}\r\n >Names\r\n
    Type
    \r\n
    \r\n {\r\n console.log(\"selection changed called : \" + value);\r\n }}\r\n disabled={DayTypeObj.Mode == \"View\" ? true : false}\r\n >\r\n
    \r\n {\r\n setDayTypeObj(prev => ({ ...prev, PremiumRatePer: m }));\r\n if (m == \"\") {\r\n setDayTypeValidation(prev => ({ ...prev, PremiumRatePer: \" Invalid premium rate\" }));\r\n }\r\n else {\r\n setDayTypeValidation(prev => ({ ...prev, PremiumRatePer: \"\" }));\r\n }\r\n }}\r\n >Premium Rate %\r\n
    \r\n {\r\n setDayTypeObj(prev => ({ ...prev, DisplayColor: m }));\r\n if (m == \"\") {\r\n setDayTypeValidation(prev => ({ ...prev, DisplayColor: \"Invalid display color\" }))\r\n }\r\n else {\r\n setDayTypeValidation(prev => ({ ...prev, DisplayColor: \"\" }))\r\n }\r\n }}\r\n >Display Color\r\n
    \r\n
    \r\n {/*
    \r\n
    Type
    \r\n
    \r\n {\r\n console.log(\"selection changed called : \" + value);\r\n }}\r\n disabled={DayTypeObj.Mode == \"View\" ? true : false}\r\n >\r\n
    \r\n console.log(v)}\r\n disabled={DayTypeObj.Mode == \"View\" ? true : false}\r\n >Premium Rate Amount \r\n
    */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n Activate console.log(v)} id=\"0\">\r\n {\r\n DayTypeObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnTextbox,\r\n InnPlainButton,\r\n InnSingleSelectDropdown,\r\n InnSwitch,\r\n InnLoader,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { GetTraceMaster, AddEditTraceMaster } from \"../../../../services/reservationService\";\r\nimport {GetDepartmentMaster} from \"../../../../services/frontMasterService\";\r\nexport function TraceMaster(props) {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n//#region Local Variable\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"Name\": \"\",\r\n \"TraceSerNo\": 0,\r\n \"DepartmentSerNo\": 0,\r\n \"Mode\": \"View\"\r\n }\r\n const validationObj = {\r\n \"Name\": \"\",\r\n \"DepartmentSerNo\": 0,\r\n }\r\n//#endregion\r\n//#region State Variable\r\n const [traceObj, setTraceObj] = useState(defaultObj);\r\n const [traceData, setTraceData] = useState([]);\r\n const [filterTraceMaster, setFilterTraceMaster] = useState([]);\r\n const [isActive, setIsActive] = useState(false);\r\n const [selectedTraceSerNo, setSelectedTraceSerNo] = useState();\r\n const [traceValidation,setTraceValidation] = useState(validationObj);\r\n const [departmentList, setDepartmentList] = useState([]);\r\n const [searchString, setsearchString] = useState(\"\");\r\n //#endregion\r\n//#region Custom Functions\r\n const fillTraceMaster = () => {\r\n setIsActive(true);\r\n GetTraceMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setIsActive(false);\r\n if (d.data.length > 0 && (traceObj.TraceSerNo == 0 || traceObj.TraceSerNo == undefined)) {\r\n let obj = d.data[0];\r\n obj.Mode = \"View\";\r\n setTraceObj(obj);\r\n setSelectedTraceSerNo(obj.TraceSerNo);\r\n }\r\n setTraceData(d.data);\r\n setFilterTraceMaster(d.data);\r\n })\r\n }\r\n const filTransactionMaster = () => {\r\n GetDepartmentMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"C\", \"ALL\").then(d => {\r\n let temp = [];\r\n d.data.forEach((x) => {\r\n temp = [...temp, { key: x.DepartmentSerNo, value: x.Name }]\r\n })\r\n setDepartmentList(temp);\r\n })\r\n }\r\n//#endregion\r\n//#Validation\r\n const clearValidation = () => {\r\n setTraceValidation(validationObj);\r\n }\r\n\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (traceObj.Name == \"\" || traceObj.Name.trim().length == 0 || /[-’/`~!#*$@_%+=,^&(){}[\\]|;.:”<>?\\\\]/g.test(traceObj.Name) == true ) {\r\n isValid = false;\r\n setTraceValidation(prev => ({ ...prev, Name: \"Please enter valid Name\" }));\r\n }\r\n if (traceObj.DepartmentSerNo == 0) {\r\n setTraceValidation((prev) => ({ ...prev, DepartmentSerNo: \"Please enter valid Department\" }))\r\n isValid = false;\r\n }\r\n return isValid;\r\n }\r\n//#endregion\r\n//#region Events\r\n const handleTraceClick = (e) =>{\r\n clearValidation();\r\n let obj = traceData.find(x => x.TraceSerNo == e.target.id)\r\n obj.Mode = \"View\";\r\n setTraceObj(obj);\r\n setSelectedTraceSerNo(e.target.id)\r\n console.log(\"H\",e.target.id)\r\n console.log(obj)\r\n }\r\n //#region SearchChange\r\n const handleOnSearchChange = (b) => {\r\n let filterdata = traceData.filter(obj => obj.Name.toLowerCase().includes(b.toLowerCase()));\r\n setFilterTraceMaster(filterdata);\r\n setsearchString(b);\r\n setIsActive(false);\r\n setTraceObj(defaultObj);\r\n }\r\n //#endregion\r\n //#region Add\r\n const handleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setTraceObj(obj);\r\n }\r\n //#endregion\r\n //#region Edit\r\n const handleOnEditClick = () => {\r\n if (traceObj.Name == \"\") {\r\n alertFunction(\"Please Select Trace Name\");\r\n }\r\n else {\r\n setTraceObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n setIsActive(false);\r\n }\r\n //#endregion\r\n //#region Cancel\r\n const handleOnCancelClick = () => {\r\n clearValidation();\r\n setIsActive(false);\r\n let existingObj = traceData.find(x => x.TraceSerNo == selectedTraceSerNo);\r\n\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setTraceObj(existingObj);\r\n }\r\n else {\r\n setTraceObj(prev => ({ ...prev, Name: \"\", TraceSerNo: 0, Mode: \"View\" }));\r\n }\r\n setsearchString(\"\");\r\n }\r\n //#endregion\r\n //#region Save\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n setIsActive(true);\r\n let apiObj = traceObj;\r\n AddEditTraceMaster(traceObj).then((d) => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n setIsActive(true)\r\n alertFunction(d.data.Message);\r\n if (traceObj.Mode == \"Add\") {\r\n setSelectedTraceSerNo(parseInt(d.data.ReturnValue));\r\n apiObj.TraceSerNo = parseInt(d.data.ReturnValue)\r\n apiObj.Mode = \"View\";\r\n setTraceObj(apiObj);\r\n }\r\n fillTraceMaster();\r\n setsearchString(\"\");\r\n } else {\r\n alertFunction(\"Something Went Wrong\");\r\n }\r\n })\r\n setTraceObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alertFunction(\"One Or More Field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n //#endregion\r\n//#region Events\r\n//#region useEffect\r\n useEffect (() => {\r\n fillTraceMaster();\r\n filTransactionMaster();\r\n },[]);\r\n//#endregion\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Trace Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Trace List
    \r\n
    \r\n
      \r\n {\r\n filterTraceMaster.map(d =>\r\n
    • \r\n {d.Name}\r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n {\r\n setTraceValidation(prev => ({ ...prev, Name : \"\"}))\r\n setTraceObj(prev => ({ ...prev, Name : m}))\r\n if (m == \"\") {\r\n setTraceValidation(prev => ({ ...prev, Name: \"Invalid Trace Name\" }))\r\n }\r\n }}\r\n >Name\r\n
    \r\n {\r\n setTraceObj((prev) => ({ ...prev, DepartmentSerNo: item.key, }));\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n { console.log(v); }} > Activate\r\n {\r\n traceObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnPlainButton,\r\n InnLoader,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetRoomClassMaster, AddEditRoomClassMaster } from \"../../../../services/reservationService\";\r\nexport function RoomClassMaster() {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n //#region Local Variable\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"Name\": \"\",\r\n \"RoomClassSerNo\": 0,\r\n \"Mode\": \"View\"\r\n }\r\n const validationObj = {\r\n \"Name\": \"\"\r\n }\r\n //#endregion\r\n //#region State Variable\r\n const [roomClassObj, setRoomClassObj] = useState(defaultObj);\r\n const [roomClassData, setRoomClassData] = useState([]);\r\n const [filterRoomClass, setFilterRoomClass] = useState([]);\r\n const [isActive, setIsActive] = useState(false);\r\n const [selectedRoomClassSerNo, setSelectedRoomClassSerNo] = useState(\"\");\r\n const [searchString, setsearchString] = useState(\"\");\r\n const [roomClassValidation, setRoomClassValidation] = useState(validationObj);\r\n //#endregion\r\n //#region Custom Functions\r\n const fillRoomClassMaster = () => {\r\n setIsActive(true);\r\n GetRoomClassMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setIsActive(false);\r\n if (d.data.length > 0 && (roomClassObj.RoomClassSerNo == 0 || roomClassObj.RoomClassSerNo == undefined)) {\r\n let obj = d.data[0];\r\n obj.Mode = \"View\";\r\n setRoomClassObj(obj);\r\n setSelectedRoomClassSerNo(obj.RoomClassSerNo);\r\n }\r\n setRoomClassData(d.data);\r\n setFilterRoomClass(d.data);\r\n })\r\n }\r\n //#region SearchChange\r\n const handleOnSearchChange = (b) => {\r\n let filterdata = roomClassData.filter(obj => obj.Name.toLowerCase().includes(b.toLowerCase()));\r\n setFilterRoomClass(filterdata);\r\n setsearchString(b);\r\n setIsActive(false);\r\n setRoomClassObj(defaultObj);\r\n }\r\n //#endregion\r\n //#region Employee Name Click\r\n const handleRoomClassClick = (e) => {\r\n clearValidation();\r\n let obj = roomClassData.find(x => x.RoomClassSerNo == e.RoomClassSerNo)\r\n obj.Mode = \"View\";\r\n setRoomClassObj(obj);\r\n setSelectedRoomClassSerNo(e.RoomClassSerNo);\r\n }\r\n //#endregion\r\n //#region Validation\r\n const clearValidation = () => {\r\n setRoomClassValidation(validationObj);\r\n }\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (roomClassObj.Name == \"\" || roomClassObj.Name.trim().length == 0 || /[-’/`~!#*$@_%+=,^&(){}[\\]|;.:”<>?\\\\]/g.test(roomClassObj.Name) == true) {\r\n isValid = false;\r\n setRoomClassValidation(prev => ({ ...prev, Name: \"Please enter valid Name\" }));\r\n }\r\n return isValid;\r\n }\r\n //#endregion\r\n //#region Add\r\n const handleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n console.log(\"HI\", obj)\r\n obj.Mode = \"Add\";\r\n setRoomClassObj(obj);\r\n }\r\n //#endregion\r\n //#region Edit\r\n const handleOnEditClick = () => {\r\n if (roomClassObj.Name == \"\") {\r\n alertFunction(\"Please Select Name\");\r\n }\r\n else {\r\n setRoomClassObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n setIsActive(false);\r\n }\r\n //#endregion\r\n //#region Cancel\r\n const handleOnCancelClick = () => {\r\n clearValidation();\r\n let existingObj = roomClassData.find(x => x.RoomClassSerNo == selectedRoomClassSerNo);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setRoomClassObj(existingObj);\r\n }\r\n else {\r\n setRoomClassObj(defaultObj);\r\n }\r\n setsearchString(\"\");\r\n }\r\n //#endregion\r\n //#region Save\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n setIsActive(true);\r\n let apiObj = roomClassObj;\r\n AddEditRoomClassMaster(roomClassObj).then((d) => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n setIsActive(true)\r\n alertFunction(d.data.Message);\r\n if (roomClassObj.Mode == \"Add\") {\r\n setSelectedRoomClassSerNo(parseInt(d.data.ReturnValue));\r\n apiObj.RoomClassSerNo = parseInt(d.data.ReturnValue)\r\n apiObj.Mode = \"View\";\r\n setRoomClassObj(apiObj);\r\n console.log(apiObj)\r\n }\r\n fillRoomClassMaster();\r\n setsearchString(\"\");\r\n } else {\r\n alertFunction(\"Something Went Wrong\");\r\n }\r\n })\r\n setRoomClassObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alertFunction(\"Field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n //#endregion\r\n //#region useEffect\r\n useEffect(() => {\r\n fillRoomClassMaster();\r\n }, []);\r\n //#endregion\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Room Class Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Room Class List
    \r\n
    \r\n
      \r\n {\r\n filterRoomClass.map(d =>\r\n
    • \r\n handleRoomClassClick(d)}>{d.Name}\r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n {\r\n setRoomClassValidation(prev => ({ ...prev, Name: \"\" }))\r\n setRoomClassObj(prev => ({ ...prev, Name: m }))\r\n if (m == \"\") {\r\n setRoomClassValidation(prev => ({ ...prev, Name: \"Invalid Name\" }))\r\n }\r\n }}\r\n >Name\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n Activate console.log(v)} id=\"SW1\">\r\n {\r\n roomClassObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n","import React, { useEffect, useState } from 'react'\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnPlainButton,\r\n InnLoader,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from '../../../../reducer/authSlice';\r\nimport { GetRoutingMaster, AddEditRoutingMaster } from '../../../../services/reservationService'\r\n\r\nexport function RoutingMaster(props) {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n //#region default object and validation object\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"RoutingSerNo\": 0,\r\n \"RoutingCode\": \"\",\r\n \"Name\": \"\",\r\n \"Mode\": \"View\"\r\n }\r\n const validationObj = {\r\n \"RoutingCode\": \"\",\r\n \"Name\": \"\"\r\n }\r\n //#endregion \r\n\r\n //#region states\r\n const [isActive, setIsActive] = useState(true);\r\n const [routingData, setRoutingData] = useState([]);\r\n const [routingObj, setRoutingObj] = useState(defaultObj);\r\n const [routingValidation, setRoutingValidation] = useState(validationObj);\r\n const [routingFilter, setRoutingFilter] = useState([]);\r\n const [routingSelected, setRoutingSelected] = useState(0);\r\n //#endregion\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n fillRoutingMaster();\r\n }, [])\r\n //#endregion\r\n\r\n const fillRoutingMaster = () => {\r\n GetRoutingMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n if (d.data && d.data.length > 0 && (routingObj.RoutingSerNo == 0 || routingObj.RoutingSerNo == undefined)) {\r\n let temp = d.data[0]\r\n temp.Mode = \"View\"\r\n setRoutingObj(temp);\r\n setRoutingSelected(temp.RoutingSerNo);\r\n }\r\n setIsActive(false);\r\n setRoutingData(d.data);\r\n setRoutingFilter(d.data);\r\n })\r\n }\r\n\r\n const clearValidation = () => {\r\n setRoutingValidation(validationObj);\r\n }\r\n\r\n const validRouting = () => {\r\n let isValid = true;\r\n if (routingObj.RoutingCode == \"\" || routingObj.RoutingCode.trim().length == 0 ||\r\n /[-’/`~!#*$@_%+=,^&(){}[\\]|;.:”<>?\\\\]/g.test(routingObj.RoutingCode)) {\r\n isValid = false;\r\n setRoutingValidation(prev => ({ ...prev, RoutingCode: \"Enter valid routing code\" }));\r\n }\r\n if (routingObj.Name == \"\" || routingObj.Name.trim().length == 0 ||\r\n /^[0-9\\b]+$/.test(routingObj.Name) || /[-’/`~!#*$@_%+=,^&(){}[\\]|;.:”<>?\\\\]/g.test(routingObj.Name)) {\r\n isValid = false;\r\n setRoutingValidation(prev => ({ ...prev, Name: \"Enter valid name\" }));\r\n }\r\n return isValid;\r\n }\r\n\r\n //#region functions\r\n const handleOnRoutingClick = (e) => {\r\n clearValidation();\r\n let tempList = routingData.find(x => x.RoutingSerNo == e.target.id);\r\n tempList.Mode = \"View\"\r\n setRoutingObj(tempList);\r\n setRoutingSelected(e.target.id);\r\n }\r\n\r\n const handleOnRoutingSave = () => {\r\n let IsValidRouting = validRouting();\r\n if (IsValidRouting) {\r\n AddEditRoutingMaster(routingObj).then(d => {\r\n if (d.data.Code == \"200\") {\r\n setIsActive(true);\r\n alertFunction(d.data.Message);\r\n fillRoutingMaster();\r\n } else {\r\n alertFunction(\"Something went wrong\");\r\n }\r\n })\r\n setRoutingObj(prev => ({ ...prev, Mode: \"View\" }))\r\n } else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n\r\n const handleOnRoutingEdit = () => {\r\n if (routingObj.Name == \"\") {\r\n alertFunction(\"Select Routing\");\r\n } else {\r\n setRoutingObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n }\r\n\r\n const handleOnRoutingAdd = () => {\r\n let tempObj = JSON.parse(JSON.stringify(defaultObj));\r\n tempObj.Mode = \"Add\";\r\n setRoutingObj(tempObj);\r\n }\r\n\r\n const handleOnRoutingCancel = () => {\r\n let existingObj = routingData.find(x => x.RoutingSerNo == routingSelected);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setRoutingObj(existingObj);\r\n } else {\r\n setRoutingObj(defaultObj);\r\n }\r\n }\r\n\r\n const handleOnRoutingSearch = (d) => {\r\n let routingSearch = routingData.filter(x => x.Name.toLowerCase().includes(d.toLowerCase()));\r\n setRoutingFilter(routingSearch);\r\n }\r\n //#endregion\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Routing Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Routing Name
    \r\n
    \r\n
      \r\n {\r\n routingFilter.map((d) =>\r\n
    • \r\n {d.Name}\r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
    \r\n
    \r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n {\r\n setRoutingObj(prev => ({ ...prev, Name: v }));\r\n setRoutingValidation(prev => ({ ...prev, Name: \"\" }));\r\n }}\r\n >Name\r\n {\r\n setRoutingObj(prev => ({ ...prev, RoutingCode: v }));\r\n setRoutingValidation(prev => ({ ...prev, RoutingCode: \"\" }));\r\n }}\r\n >Routing Code\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n Activate console.log(v)} >\r\n {\r\n routingObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnPlainButton,\r\n useConfirm,\r\n InnTextarea,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetRateCodeMiscellaneousMaster, AddEditRateCodeMiscellaneousMaster } from \"../../../../services/reservationService\";\r\nexport function RateCodeMiscellaneousMaster() {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n //#region Local Variable\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n MiscSerNo: 0,\r\n Description: \"\",\r\n IsRelatedToTransportation: false,\r\n Mode: \"View\"\r\n }\r\n const validationObj = {\r\n Description: \"\"\r\n }\r\n //#endregion\r\n //#region State Variable\r\n const [miscellaneousObj, setMiscellaneousObj] = useState(defaultObj);\r\n const [miscellaneousData, setMiscellaneousData] = useState([]);\r\n const [filterMiscellanous, setFilterMiscellanous] = useState([]);\r\n const [selectedMiscellanousSerNo, setSelectedMiscellanousSerNo] = useState(\"\");\r\n const [miscellaneousvalidataion, setMiscellaneousValidation] = useState(validationObj);\r\n const [isActive, setIsActive] = useState(false);\r\n const [searchString, setsearchString] = useState(\"\");\r\n //#endregion\r\n //#region Custom Functions\r\n const fillMiscellaneousMaster = () => {\r\n setIsActive(true);\r\n GetRateCodeMiscellaneousMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setIsActive(false);\r\n if (d.data.length > 0 && (miscellaneousObj.MiscSerNo == 0 || miscellaneousObj.MiscSerNo == undefined)) {\r\n let obj = d.data[0];\r\n obj.Mode = \"View\";\r\n console.log(obj)\r\n setMiscellaneousObj(obj);\r\n setSelectedMiscellanousSerNo(obj.MiscSerNo);\r\n }\r\n setMiscellaneousData(d.data);\r\n setFilterMiscellanous(d.data);\r\n })\r\n }\r\n //#endregion\r\n //#region SearchChange\r\n const handleOnSearchChange = (b) => {\r\n let filterdata = miscellaneousData.filter(g => g.Description.toLowerCase().includes(b.toLowerCase()));\r\n setFilterMiscellanous(filterdata);\r\n setsearchString(b);\r\n setIsActive(false);\r\n setMiscellaneousObj(defaultObj);\r\n }\r\n //#endregion\r\n //#region Miscellanwous Click\r\n const handleMiscellanwousClick = (e) => {\r\n clearValidation();\r\n let obj = miscellaneousData.find(j => j.MiscSerNo == e.MiscSerNo)\r\n obj.Mode = \"View\";\r\n setMiscellaneousObj(obj);\r\n setSelectedMiscellanousSerNo(e.MiscSerNo)\r\n }\r\n //#endregion\r\n //#region Validation\r\n const clearValidation = () => {\r\n setMiscellaneousValidation(validationObj);\r\n }\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (miscellaneousObj.Description == \"\" || miscellaneousObj.Description.trim().length == 0 || /[-’/`~!#*$@_%+=^(){}[\\]|;:<>?\\\\]/g.test(miscellaneousObj.Description) == true) {\r\n isValid = false;\r\n setMiscellaneousValidation(prev => ({ ...prev, Description: \"Please enter valid Description\" }));\r\n }\r\n return isValid;\r\n }\r\n //#endregion\r\n //#region Add\r\n const handleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setMiscellaneousObj(obj);\r\n }\r\n //#endregion\r\n //#region Edit\r\n const handleOnEditClick = () => {\r\n if (miscellaneousObj.Description == \"\") {\r\n alertFunction(\"Please Select Description\");\r\n }\r\n else {\r\n setMiscellaneousObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n setIsActive(false);\r\n }\r\n //#endregion\r\n //#region Cancel\r\n const handleOnCancelClick = () => {\r\n clearValidation();\r\n let existingObj = miscellaneousData.find(x => x.MiscSerNo == selectedMiscellanousSerNo);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setMiscellaneousObj(existingObj);\r\n }\r\n else {\r\n setMiscellaneousObj(defaultObj);\r\n }\r\n setsearchString(\"\");\r\n }\r\n //#endregion\r\n //#region Save\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n setIsActive(true);\r\n let apiObj = miscellaneousObj;\r\n AddEditRateCodeMiscellaneousMaster(miscellaneousObj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n setIsActive(false);\r\n if (miscellaneousObj.Mode == \"Add\") {\r\n setSelectedMiscellanousSerNo(parseInt(d.data.ReturnValue));\r\n apiObj.MiscSerNo = parseInt(d.data.ReturnValue)\r\n apiObj.Mode = \"View\";\r\n setMiscellaneousObj(apiObj);\r\n console.log(apiObj)\r\n }\r\n fillMiscellaneousMaster();\r\n setsearchString(\"\");\r\n } else {\r\n alertFunction(\"Something Went Wrong\");\r\n }\r\n })\r\n setMiscellaneousObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alertFunction(\"Field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n //#endregion\r\n //#region useEffect\r\n useEffect(() => {\r\n fillMiscellaneousMaster();\r\n }, []);\r\n //#endregion\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    RateCode Miscellaneous Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    RateCode Miscellaneous List
    \r\n
    \r\n
      \r\n {\r\n filterMiscellanous.map(d =>\r\n
    • \r\n handleMiscellanwousClick(d)}>{d.Description}\r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n {\r\n setMiscellaneousValidation(prev => ({ ...prev, Description: \"\" }))\r\n setMiscellaneousObj(prev => ({ ...prev, Description: v }))\r\n if (v == \"\") {\r\n setMiscellaneousValidation(prev => ({ ...prev, Description: \"Invalid Description\" }))\r\n }\r\n }}\r\n >Description\r\n
    \r\n
    \r\n Related To Transportation\r\n {\r\n setMiscellaneousObj(prev => ({ ...prev, IsRelatedToTransportation: v }))\r\n }}\r\n id=\"IsPrimary\"\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n Activate console.log(v)} id=\"SW1\">\r\n {\r\n miscellaneousObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnButtonTypeWithDropdown,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnSingleDateSelection,\r\n InnSwitch,\r\n InnTableGrid, InnModalPopup, InnTextarea, InnTimeSelection\r\n} from \"../../../../component\";\r\nimport { GetOTALogDetails } from \"../../../../services/reservationService\";\r\n\r\nexport function OTALogRequestResponse(props) {\r\n const reqresponsetable = [\r\n { key: \"Date\", value: \"Date\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Room Type\", value: \"RoomType\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Rate Code\", value: \"RateCode\", type: \"txt\", sorting: \"N\" },\r\n { key: \"RateAmount\", value: \"RateAmount\", type: \"txt\", sorting: \"N\", align: \"right\" },\r\n ];\r\n const [filterDatareqresponsetable, setfilterreqresponsetable] = useState([\r\n {\r\n\r\n Date: \"Fri, 25 May\",\r\n RoomType: \"Deluxe\",\r\n RateCode: \"BAR - Bed & Breakfast\",\r\n Rate: \"4,500.00\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 25 May\",\r\n RoomType: \"Deluxe\",\r\n RateCode: \"BAR - Bed & Breakfast\",\r\n Rate: \"4,500.00\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 25 May\",\r\n RoomType: \"Deluxe\",\r\n RateCode: \"BAR - Bed & Breakfast\",\r\n Rate: \"4,500.00\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 25 May\",\r\n RoomType: \"Deluxe\",\r\n RateCode: \"BAR - Bed & Breakfast\",\r\n Rate: \"4,500.00\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 25 May\",\r\n RoomType: \"Deluxe\",\r\n RateCode: \"BAR - Bed & Breakfast\",\r\n Rate: \"4,500.00\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 25 May\",\r\n RoomType: \"Deluxe\",\r\n RateCode: \"BAR - Bed & Breakfast\",\r\n Rate: \"4,500.00\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 25 May\",\r\n RoomType: \"Deluxe\",\r\n RateCode: \"BAR - Bed & Breakfast\",\r\n Rate: \"4,500.00\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 25 May\",\r\n RoomType: \"Deluxe\",\r\n RateCode: \"BAR - Bed & Breakfast\",\r\n Rate: \"4,500.00\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 25 May\",\r\n RoomType: \"Deluxe\",\r\n RateCode: \"BAR - Bed & Breakfast\",\r\n Rate: \"4,500.00\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 25 May\",\r\n RoomType: \"Deluxe\",\r\n RateCode: \"BAR - Bed & Breakfast\",\r\n Rate: \"4,500.00\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 25 May\",\r\n RoomType: \"Deluxe\",\r\n RateCode: \"BAR - Bed & Breakfast\",\r\n Rate: \"4,500.00\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 25 May\",\r\n RoomType: \"Deluxe\",\r\n RateCode: \"BAR - Bed & Breakfast\",\r\n Rate: \"4,500.00\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 25 May\",\r\n RoomType: \"Deluxe\",\r\n RateCode: \"BAR - Bed & Breakfast\",\r\n Rate: \"4,500.00\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 25 May\",\r\n RoomType: \"Deluxe\",\r\n RateCode: \"BAR - Bed & Breakfast\",\r\n Rate: \"4,500.00\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 25 May\",\r\n RoomType: \"Deluxe\",\r\n RateCode: \"BAR - Bed & Breakfast\",\r\n Rate: \"4,500.00\",\r\n },\r\n ]);\r\n const selectdata = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n const actionPopup = (item) => {\r\n // if (item.key == \"View Request/ Response\") {\r\n // // history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n // setShowRequestResponseModal(true);\r\n // }\r\n }\r\n //#region view request/ response\r\n const [otaLogDetails, setOtaLogDetails] = useState({});\r\n // const [otaLogReq, setOtaLogReq] = useState({});\r\n // const [totalAmt, setTotalAmt] = useState({});\r\n\r\n //#endregion\r\n\r\n useEffect(() => {\r\n if (props.para.RequestSerNo != undefined) {\r\n GetOTALogDetails(props.para.RequestSerNo).then(d => {\r\n if (d.data) {\r\n setOtaLogDetails(d.data);\r\n // setOtaLogReq(JSON.parse(d.data[0].Request));\r\n // let temp = JSON.parse(d.data[0].Request);\r\n // let totalAmount = 0;\r\n // for (let i = 0; i < temp.reservations?.reservation[0].room.length; i++) {\r\n // for (let j = 0; j < temp.reservations?.reservation[0].room[i].price.length; j++) {\r\n // totalAmount = totalAmount + parseInt(temp.reservations?.reservation[0].room[i].price[j].amount);\r\n // }\r\n // }\r\n // setTotalAmt(totalAmount)\r\n }\r\n })\r\n }\r\n }, [props.para.RequestSerNo])\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n handleOnclose()}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Request/Response

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    request
    \r\n
    \r\n

    \r\n {/* {\r\n \"accessKey\":\"12d2ec2c0a82afaa69d5ceb4fbafaa5f\",\"GuestDetails\":{\"title\":\"\",\"guestName\":\"Marisa Giglio\",\"address1\":null,\"address2\":null,\"address3\":null,\"country\":null,\"pin\":null,\"emailId\":\"mgigli.217914@guest.booking.com\",\"phoneNo\":null,\"mobileNo\":\"1151269116\" },\"CheckinDetails\":{\"checkInDateTime\":\"01/03/2018 00:00\",\"checkOutDateTime\":\"01/05/2018 00:00\",\"totalPax\":\"2\",\"children\":\"0\",\"amount\":\"5368\",\"taxes\":\"854\",\"totalAmount\":\"6954\",\"modifiedDate\":null,\"cancelledDate\":\"05/14/2017 02:54\",\"paid\":\"false\" },\"BookingDetails\":{\"hotelID\":\"001200000001\",\"bookingNo\":\"1083513391\",\"bookingDate\":\"04/09/2017\",\"bookedBy\":\"Marisa Giglio\",\"ota\":\"Booking.com\",\"otaRefId\":\"9\",\"bookingStatus\":\"Cancelled\",\"allInclusiveRates\":\"Yes\" },\"Rates\":{\"roomType\":[{\"id\":\"DELUXE\",\"stayDate\":\"01/03/2018\",\"noOfRooms\":\"1\",\"roomRate\":\"3,050.00\",\"mealPlan\":\"Breakfast is included in the room rate.\",\"ratePlanId\":\"00000011DLX\" },{\"id\":\"DELUXE\",\"stayDate\":\"01/04/2018\",\"noOfRooms\":\"1\",\"roomRate\":\"3,050.00\",\"mealPlan\":\"Breakfast is included in the room rate.\",\"ratePlanId\":\"00000011DLX\" }] },\"CreditCardDetails\":{\"billingAddress\":\"3 de febrero 1023\",\"cardExpiryDate\":\"0420\",\"cardHolderName\":\"giglio marisa\",\"cardHolderNumber\":\"490698LXHLCZ8480\",\"cardType\":\"Basic\",\"cardExpiryMonth\":null,\"cardExpiryYear\":null\r\n } } */}\r\n {\r\n otaLogDetails.Request != \"\" || otaLogDetails.Request != undefined\r\n ?\r\n otaLogDetails.Request\r\n :\r\n \"\"\r\n }\r\n

    \r\n
    \r\n
    \r\n
    response
    \r\n
    \r\n

    \r\n {/* {\r\n \"code\": \"200\",\"message\" :\"Success\"\r\n } */}\r\n {\r\n otaLogDetails.Response != \"\" || otaLogDetails.Response != undefined\r\n ?\r\n otaLogDetails.Response\r\n :\r\n \"\"\r\n }\r\n

    \r\n
    \r\n
    \r\n
    \r\n {\r\n otaLogDetails.ResponseStatus == \"Success\" ?\r\n <>\r\n :\r\n // props.para.ReqType == \"PB\" ?\r\n otaLogDetails.RequestType == \"PB\" ?\r\n
    \r\n
    \r\n
    \r\n {/*
    */}\r\n Agent\r\n {/* */}\r\n {/*
    */}\r\n Reference No\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n {/*
    */}\r\n Guest Name\r\n {/* */}\r\n {/*
    */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {/* { }}\r\n disabled=\"disabled\"\r\n placeholder=\"From Time\"\r\n label=\"Booking Time\"\r\n timeformat=\"HH:mm\"\r\n dateformat=\"HH:mm\"\r\n selected={otaLogDetails.BookingTime}\r\n > */}\r\n Booking Amount\r\n
    \r\n
    \r\n Booking Amount\r\n Deposit Amount\r\n Commission Amount\r\n Pre-Paid\r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(items);\r\n //setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n //setReservationStatus(v);\r\n //setShowGuestPopup(true);\r\n }}\r\n fixedHeaderNo={2}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={selectdata}\r\n optClick={(item, d) => {\r\n //actionPopup(item)\r\n //history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n //setSelectedReservation(rowdata);\r\n // handleRmAssignmentData([rowdata]);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n
    \r\n
    \r\n :\r\n <>\r\n }\r\n
    \r\n
    \r\n \r\n \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnButtonTypeWithDropdown,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnSingleDateSelection,\r\n InnSwitch,\r\n InnTableGrid, InnModalPopup, InnTextarea, InnTimeSelection, InnDataGrid\r\n} from \"../../../component\";\r\nimport { GetOTALog, GetOTALogDetails } from \"../../../services/reservationService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../reducer/authSlice\";\r\nimport { cmbGetRoomTypeMaster } from \"../../../services/reservationService\";\r\nimport { GetPropertyParameterByKeys } from \"../../../services/reservationService\";\r\nimport moment from \"moment/moment\";\r\nimport { TipDueIn } from \"./tooltips\";\r\nimport { OTALogRequestResponse } from \"./modalPopup/otaLogRequestResponse\";\r\nimport { GetOTALogEventMaster, GetOTAAgentList } from \"../../../services/reservationService\";\r\n\r\nexport function OTALog(props) {\r\n const OTAtable1 = [\r\n { key: \"Date\", value: \"Date\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Time\", value: \"Time\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Event\", value: \"Event\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Inventory\", value: \"Inventory\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Booking No.\", value: \"BookingNo\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Booking Ref No.\", value: \"VoucherNo\", type: \"txt\", sorting: \"N\" },\r\n // { key: \"Res. Status\", value: \"ReservationStatus\", type: \"status\" },\r\n {\r\n key: \"Res. Status\",\r\n value: \"ReservationStatus\",\r\n type: \"lnk\",\r\n align: \"center\",\r\n },\r\n { key: \"Guest Name\", value: \"GuestName\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Room Type\", value: \"RoomType\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Agent\", value: \"TravelAgent\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Response\", value: \"ResponseStatus\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n const [filterOTAtable1, setfilterOTAtable1] = useState([\r\n {\r\n\r\n Date: \"Fri, 12 Mar\",\r\n Time: \"12:45:10\",\r\n Event: \"New Reservation(Online)\",\r\n Inventory: \"44\",\r\n BookingNo: \"32215\",\r\n VoucherNo: \"MMT45345234\",\r\n Status: \"DIN\",\r\n statusColor: \"#4DEC92\",\r\n statusTitle: \"Confirmed\",\r\n GuestName: \"Mr. Rohit Sharma\",\r\n RoomType: \"Deluxe\",\r\n Agent: \"MakemyTrip\",\r\n Response: \"Success\",\r\n Action: \"...\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 12 Mar\",\r\n Time: \"12:45:10\",\r\n Event: \"New Reservation(Online)\",\r\n Inventory: \"44\",\r\n BookingNo: \"32215\",\r\n VoucherNo: \"MMT45345234\",\r\n Status: \"DIN\",\r\n statusColor: \"#4DEC92\",\r\n statusTitle: \"Confirmed\",\r\n GuestName: \"Mr. Rohit Sharma\",\r\n RoomType: \"Deluxe\",\r\n Agent: \"MakemyTrip\",\r\n Response: \"Success\",\r\n Action: \"...\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 12 Mar\",\r\n Time: \"12:45:10\",\r\n Event: \"New Reservation(Online)\",\r\n Inventory: \"44\",\r\n BookingNo: \"32215\",\r\n VoucherNo: \"MMT45345234\",\r\n Status: \"DIN\",\r\n statusColor: \"#4DEC92\",\r\n statusTitle: \"Confirmed\",\r\n GuestName: \"Mr. Rohit Sharma\",\r\n RoomType: \"Deluxe\",\r\n Agent: \"MakemyTrip\",\r\n Response: \"Success\",\r\n Action: \"...\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 12 Mar\",\r\n Time: \"12:45:10\",\r\n Event: \"New Reservation(Online)\",\r\n Inventory: \"44\",\r\n BookingNo: \"32215\",\r\n VoucherNo: \"MMT45345234\",\r\n Status: \"DIN\",\r\n statusColor: \"#4DEC92\",\r\n statusTitle: \"Confirmed\",\r\n GuestName: \"Mr. Rohit Sharma\",\r\n RoomType: \"Deluxe\",\r\n Agent: \"MakemyTrip\",\r\n Response: \"Success\",\r\n Action: \"...\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 12 Mar\",\r\n Time: \"12:45:10\",\r\n Event: \"New Reservation(Online)\",\r\n Inventory: \"44\",\r\n BookingNo: \"32215\",\r\n VoucherNo: \"MMT45345234\",\r\n Status: \"DIN\",\r\n statusColor: \"#4DEC92\",\r\n statusTitle: \"Confirmed\",\r\n GuestName: \"Mr. Rohit Sharma\",\r\n RoomType: \"Deluxe\",\r\n Agent: \"MakemyTrip\",\r\n Response: \"Success\",\r\n Action: \"...\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 12 Mar\",\r\n Time: \"12:45:10\",\r\n Event: \"New Reservation(Online)\",\r\n Inventory: \"44\",\r\n BookingNo: \"32215\",\r\n VoucherNo: \"MMT45345234\",\r\n Status: \"DIN\",\r\n statusColor: \"#4DEC92\",\r\n statusTitle: \"Confirmed\",\r\n GuestName: \"Mr. Rohit Sharma\",\r\n RoomType: \"Deluxe\",\r\n Agent: \"MakemyTrip\",\r\n Response: \"Success\",\r\n Action: \"...\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 12 Mar\",\r\n Time: \"12:45:10\",\r\n Event: \"New Reservation(Online)\",\r\n Inventory: \"44\",\r\n BookingNo: \"32215\",\r\n VoucherNo: \"MMT45345234\",\r\n Status: \"DIN\",\r\n statusColor: \"#4DEC92\",\r\n statusTitle: \"Confirmed\",\r\n GuestName: \"Mr. Rohit Sharma\",\r\n RoomType: \"Deluxe\",\r\n Agent: \"MakemyTrip\",\r\n Response: \"Success\",\r\n Action: \"...\",\r\n },\r\n\r\n ]);\r\n const OTAtable2 = [\r\n { key: \"Date\", value: \"Date\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Time\", value: \"Time\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Event\", value: \"Event\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Booking No.\", value: \"BookingNo\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Booking Ref No.\", value: \"VoucherNo\", type: \"txt\", sorting: \"N\" },\r\n // { key: \"Res. Status\", value: \"ReservationStatus\", type: \"status\" },\r\n {\r\n key: \"Res. Status\",\r\n value: \"ReservationStatus\",\r\n type: \"lnk\",\r\n align: \"center\",\r\n },\r\n { key: \"Guest Name\", value: \"GuestName\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Room Type\", value: \"RoomType\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Rooms\", value: \"NoOfRooms\", type: \"txt\", sorting: \"N\", align: \"center\" },\r\n { key: \"Agent\", value: \"TravelAgent\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Response\", value: \"ResponseStatus\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n const [filterOTAtable2, setfilterOTAtable2] = useState([\r\n {\r\n\r\n Date: \"Fri, 12 Mar\",\r\n Time: \"12:45:10\",\r\n Event: \"New Reservation(Online)\",\r\n BookingNo: \"2342342\",\r\n VoucherNo: \"MMT45345234\",\r\n Status: \"DIN\",\r\n statusColor: \"#4DEC92\",\r\n statusTitle: \"Confirmed\",\r\n GuestName: \"Mr. Rohit Sharma\",\r\n RoomType: \"Deluxe\",\r\n Rooms: \"2\",\r\n Agent: \"MakemyTrip\",\r\n Response: \"Success\",\r\n Action: \"...\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 12 Mar\",\r\n Time: \"12:45:10\",\r\n Event: \"New Reservation(Online)\",\r\n BookingNo: \"2342342\",\r\n VoucherNo: \"MMT45345234\",\r\n Status: \"DIN\",\r\n statusColor: \"#4DEC92\",\r\n statusTitle: \"Confirmed\",\r\n GuestName: \"Mr. Rohit Sharma\",\r\n RoomType: \"Deluxe\",\r\n Rooms: \"1\",\r\n Agent: \"MakemyTrip\",\r\n Response: \"Success\",\r\n Action: \"...\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 12 Mar\",\r\n Time: \"12:45:10\",\r\n Event: \"New Reservation(Online)\",\r\n BookingNo: \"2342342\",\r\n VoucherNo: \"MMT45345234\",\r\n Status: \"DIN\",\r\n statusColor: \"#4DEC92\",\r\n statusTitle: \"Confirmed\",\r\n GuestName: \"Mr. Rohit Sharma\",\r\n RoomType: \"Deluxe\",\r\n Rooms: \"2\",\r\n Agent: \"MakemyTrip\",\r\n Response: \"Success\",\r\n Action: \"...\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 12 Mar\",\r\n Time: \"12:45:10\",\r\n Event: \"New Reservation(Online)\",\r\n BookingNo: \"2342342\",\r\n VoucherNo: \"MMT45345234\",\r\n Status: \"DIN\",\r\n statusColor: \"#4DEC92\",\r\n statusTitle: \"Confirmed\",\r\n GuestName: \"Mr. Rohit Sharma\",\r\n RoomType: \"Deluxe\",\r\n Rooms: \"2\",\r\n Agent: \"MakemyTrip\",\r\n Response: \"Success\",\r\n Action: \"...\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 12 Mar\",\r\n Time: \"12:45:10\",\r\n Event: \"New Reservation(Online)\",\r\n BookingNo: \"2342342\",\r\n VoucherNo: \"MMT45345234\",\r\n Status: \"DIN\",\r\n statusColor: \"#4DEC92\",\r\n statusTitle: \"Confirmed\",\r\n GuestName: \"Mr. Rohit Sharma\",\r\n RoomType: \"Deluxe\",\r\n Rooms: \"2\",\r\n Agent: \"MakemyTrip\",\r\n Response: \"Success\",\r\n Action: \"...\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 12 Mar\",\r\n Time: \"12:45:10\",\r\n Event: \"New Reservation(Online)\",\r\n BookingNo: \"2342342\",\r\n VoucherNo: \"MMT45345234\",\r\n Status: \"DIN\",\r\n statusColor: \"#4DEC92\",\r\n statusTitle: \"Confirmed\",\r\n GuestName: \"Mr. Rohit Sharma\",\r\n RoomType: \"Deluxe\",\r\n Rooms: \"2\",\r\n Agent: \"MakemyTrip\",\r\n Response: \"Success\",\r\n Action: \"...\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 12 Mar\",\r\n Time: \"12:45:10\",\r\n Event: \"New Reservation(Online)\",\r\n BookingNo: \"2342342\",\r\n VoucherNo: \"MMT45345234\",\r\n Status: \"DIN\",\r\n statusColor: \"#4DEC92\",\r\n statusTitle: \"Confirmed\",\r\n GuestName: \"Mr. Rohit Sharma\",\r\n RoomType: \"Deluxe\",\r\n Rooms: \"2\",\r\n Agent: \"MakemyTrip\",\r\n Response: \"Success\",\r\n Action: \"...\",\r\n },\r\n ]);\r\n const OTAtable3 = [\r\n { key: \"Date\", value: \"Date\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Time\", value: \"Time\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Event\", value: \"Event\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Room Type\", value: \"RoomType\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Rate Code\", value: \"RateCode\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Adult 1\", value: \"Adult1\", type: \"txt\", sorting: \"N\", align: \"right\" },\r\n { key: \"Adult 2\", value: \"Adult2\", type: \"txt\", sorting: \"N\", align: \"right\" },\r\n { key: \"Adult 3\", value: \"Adult3\", type: \"txt\", sorting: \"N\", align: \"right\" },\r\n { key: \"Adult 4\", value: \"Adult4\", type: \"txt\", sorting: \"N\", align: \"right\" },\r\n { key: \"Adult 5\", value: \"Adult5\", type: \"txt\", sorting: \"N\", align: \"right\" },\r\n { key: \"Adult 6\", value: \"Adult6\", type: \"txt\", sorting: \"N\", align: \"right\" },\r\n { key: \"Child\", value: \"Child\", type: \"txt\", sorting: \"N\", align: \"right\" },\r\n { key: \"Response\", value: \"Response\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n const [filterOTAtable3, setfilterOTAtable3] = useState([\r\n {\r\n\r\n Date: \"Fri, 12 Mar\",\r\n Time: \"12:45:10\",\r\n Event: \"Update Rate\",\r\n RoomType: \"Executive\",\r\n RateCode: \"Room with Breakfast\",\r\n Adult1: \"6,500.00\",\r\n Adult2: \"7,500.00\",\r\n Adult3: \"8,500.00\",\r\n Adult4: \"-\",\r\n Adult5: \"-\",\r\n Adult6: \"-\",\r\n Child: \"1,500\",\r\n Response: \"Success\",\r\n Action: \"...\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 12 Mar\",\r\n Time: \"12:45:10\",\r\n Event: \"Update Rate\",\r\n RoomType: \"Executive\",\r\n RateCode: \"Room with Breakfast\",\r\n Adult1: \"6,500.00\",\r\n Adult2: \"7,500.00\",\r\n Adult3: \"8,500.00\",\r\n Adult4: \"-\",\r\n Adult5: \"-\",\r\n Adult6: \"-\",\r\n Child: \"1,500\",\r\n Response: \"Success\",\r\n Action: \"...\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 12 Mar\",\r\n Time: \"12:45:10\",\r\n Event: \"Update Rate\",\r\n RoomType: \"Executive\",\r\n RateCode: \"Room with Breakfast\",\r\n Adult1: \"6,500.00\",\r\n Adult2: \"7,500.00\",\r\n Adult3: \"8,500.00\",\r\n Adult4: \"-\",\r\n Adult5: \"-\",\r\n Adult6: \"-\",\r\n Child: \"1,500\",\r\n Response: \"Success\",\r\n Action: \"...\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 12 Mar\",\r\n Time: \"12:45:10\",\r\n Event: \"Update Rate\",\r\n RoomType: \"Executive\",\r\n RateCode: \"Room with Breakfast\",\r\n Adult1: \"6,500.00\",\r\n Adult2: \"7,500.00\",\r\n Adult3: \"8,500.00\",\r\n Adult4: \"-\",\r\n Adult5: \"-\",\r\n Adult6: \"-\",\r\n Child: \"1,500\",\r\n Response: \"Success\",\r\n Action: \"...\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 12 Mar\",\r\n Time: \"12:45:10\",\r\n Event: \"Update Rate\",\r\n RoomType: \"Executive\",\r\n RateCode: \"Room with Breakfast\",\r\n Adult1: \"6,500.00\",\r\n Adult2: \"7,500.00\",\r\n Adult3: \"8,500.00\",\r\n Adult4: \"-\",\r\n Adult5: \"-\",\r\n Adult6: \"-\",\r\n Child: \"1,500\",\r\n Response: \"Success\",\r\n Action: \"...\",\r\n },\r\n {\r\n\r\n Date: \"Fri, 12 Mar\",\r\n Time: \"12:45:10\",\r\n Event: \"Update Rate\",\r\n RoomType: \"Executive\",\r\n RateCode: \"Room with Breakfast\",\r\n Adult1: \"6,500.00\",\r\n Adult2: \"7,500.00\",\r\n Adult3: \"8,500.00\",\r\n Adult4: \"-\",\r\n Adult5: \"-\",\r\n Adult6: \"-\",\r\n Child: \"1,500\",\r\n Response: \"Success\",\r\n Action: \"...\",\r\n },\r\n ]);\r\n\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n const MoreFilterOption = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n const selectdata = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n const actualeventdata = [\r\n { key: \"New Reservation\", value: \"New Reservation\" },\r\n { key: \"Cancellation Reservation\", value: \"Cancellation Reservation\" },\r\n { key: \"Modify Reservation\", value: \"Modify Reservation\" },\r\n { key: \"Shift Reservation\", value: \"Shift Reservation\" },\r\n { key: \"Modify Reservation(Change in Room Type)\", value: \"Modify Reservation(Change in Room Type)\" },\r\n { key: \"HK Status Update\", value: \"HK Status Update\" },\r\n ];\r\n const ActionOption = [\r\n { key: \"Retry\", value: \"Retry\" },\r\n { key: \"View Request/ Response\", value: \"View Request/ Response\" },\r\n { key: \"View Reservation Log\", value: \"View Reservation Log\" },\r\n ];\r\n const optBtnData = [\r\n { key: \"Retry\", value: \"Retry\" },\r\n { key: \"View Request/ Response\", value: \"View Request/ Response\" },\r\n { key: \"View Reservation Log\", value: \"View Reservation Log\" },\r\n ];\r\n const optBtnData1 = [\r\n { key: \"View Request/ Response\", value: \"View Request/ Response\" },\r\n { key: \"View Reservation Log\", value: \"View Reservation Log\" },\r\n ];\r\n const actionPopup = (item) => {\r\n if (item.key == \"View Request/ Response\") {\r\n // history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n setShowRequestResponseModal(true);\r\n }\r\n }\r\n const [showRequestResponseModal, setShowRequestResponseModal] = useState(false);\r\n const [showAdvancedSearchModal, setShowAdvancedSearchModal] = useState(false);\r\n const [page, setPage] = useState(1);\r\n const [pageCount, setPageCount] = useState(1);\r\n const [colListKeys, setColListKeys] = useState([]);\r\n\r\n //#region dropdown\r\n const dateTypeData = [\r\n { key: \"BD\", value: \"Base Date\" },\r\n { key: \"AD\", value: \"Arrival Date\" },\r\n { key: \"DD\", value: \"Departure Date\" },\r\n ];\r\n const logTypeData = [\r\n { key: \"0\", value: \"Reservation\" },\r\n { key: \"1\", value: \"Inventory Update\" },\r\n { key: \"2\", value: \"Rate Update\" },\r\n ];\r\n const eventTypeData = [\r\n { key: \"0\", value: \"All\" },\r\n { key: \"1\", value: \"New Reservation\" },\r\n { key: \"2\", value: \"Modify Reservation\" },\r\n { key: \"3\", value: \"Cancel Reservation\" },\r\n ];\r\n //#endregion\r\n let currUser = useSelector(currentUser);\r\n //#region default object\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n LogType: \"\",\r\n FromDate: \"\",\r\n ToDate: \"\",\r\n DateType: \"\",\r\n BookingRefNo: \" \",\r\n Event: 0,\r\n OTAName: \"\",\r\n RoomType: \"\",\r\n RateCode: \"\",\r\n Agent: 0\r\n }\r\n //#endregion \r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n const [reservationStatus, setReservationStatus] = useState({});\r\n //#region hide/show table grid\r\n const [showReservation, setShowReservation] = useState(true);\r\n const [showInventory, setShowInventory] = useState(false);\r\n const [showRate, setShowRate] = useState(false);\r\n //#endregion\r\n\r\n //#region state variable\r\n const [otaLogObj, setOtaLogObj] = useState(defaultObj);\r\n const [otaLogData, setOtaLogData] = useState([]);\r\n const [selectedLogType, setSelectedLogType] = useState({ key: \"0\", value: \"Reservation\" });\r\n const [selectedDateType, setSelectedDateType] = useState({ key: \"BD\", value: \"Base Date\" });\r\n\r\n const [fillRoomTypeData, setFillRoomTypeData] = useState([]);\r\n const [selectedRoomType, setSelectedRoomType] = useState({ key: 0, value: \"Select\" });\r\n const [selectedRow, setSelectedRow] = useState({});\r\n\r\n const [loadEvent, setLoadEvent] = useState([]);\r\n const [selectedEventType, setSelectedEventType] = useState({ key: 0, value: \"All\" });\r\n const [loadAgentName, setLoadAgentName] = useState([]);\r\n const [selectedAgentType, setSelectedAgentType] = useState({ key: '0', value: \"Select\" });\r\n //#endregion \r\n\r\n //#region useEffects\r\n useEffect(() => {\r\n fillOtaDataGrid();\r\n }, [])\r\n\r\n useEffect(() => {\r\n cmbGetRoomTypeMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n if (d.data != undefined) {\r\n let temp = [];\r\n d.data.forEach(ele => {\r\n temp.push({ key: ele.key, value: ele.value });\r\n });\r\n setFillRoomTypeData(temp);\r\n }\r\n })\r\n }, [])\r\n\r\n useEffect(() => {\r\n fillAgentList();\r\n }, [])\r\n\r\n useEffect(() => {\r\n fillEventMaster();\r\n }, [selectedLogType.key])\r\n\r\n useEffect(() => {\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), [\"BusinessDate\"]).then(d => {\r\n setBusinessDate(moment(new Date(d.data[0].value)).format(\"DD-MMM-YYYY\"));\r\n setOtaLogObj((prev) => ({ ...prev, FromDate: moment(new Date(d.data[0].value)).format(\"DD-MMM-YYYY\"), ToDate: moment(new Date(d.data[0].value)).format(\"DD-MMM-YYYY\") }))\r\n //setOtaLogObj((prev) => ({ ...prev, FromDate: \"06-Mar-2023\", ToDate: \"10-Mar-2023\" })) // For testing purpose\r\n });\r\n }, [])\r\n //#endregion\r\n\r\n //#region GetOTALog function\r\n const fillOtaDataGrid = () => {\r\n GetOTALog(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), selectedLogType.key, selectedDateType.key, otaLogObj.FromDate, otaLogObj.ToDate, otaLogObj.BookingRefNo, selectedAgentType.key, selectedRoomType.key, 0, selectedEventType.key).then(d => {\r\n if (d.data !== undefined) {\r\n setOtaLogData(d.data);\r\n }\r\n })\r\n }\r\n\r\n const fillEventMaster = () => {\r\n GetOTALogEventMaster().then(d => {\r\n if (d.data != undefined) {\r\n let temp = [{ key: 0, value: \"All\" }];\r\n d.data.forEach(ele => {\r\n if (selectedLogType.key == \"0\" && ele.Type == \"PB\") {\r\n temp.push({ key: ele.EventSerNo, value: ele.EventName });\r\n }\r\n if (selectedLogType.key == \"1\" && ele.Type == \"IN\") {\r\n temp.push({ key: ele.EventSerNo, value: ele.EventName });\r\n }\r\n if (selectedLogType.key == \"2\" && ele.Type == \"RT\") {\r\n temp.push({ key: ele.EventSerNo, value: ele.EventName });\r\n }\r\n\r\n });\r\n setLoadEvent(temp);\r\n }\r\n })\r\n }\r\n\r\n const fillAgentList = () => {\r\n GetOTAAgentList(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n if (d.data != undefined) {\r\n let temp = [{ key: '0', value: \"Select\" }]\r\n d.data.forEach(ele => {\r\n temp.push({ key: ele.ID, value: ele.Name });\r\n });\r\n setLoadAgentName(temp);\r\n }\r\n })\r\n }\r\n\r\n const handleFilterReset = () => {\r\n let obj = defaultObj;\r\n if (businessDate != undefined) {\r\n obj.FromDate = businessDate;\r\n obj.ToDate = businessDate;\r\n }\r\n setOtaLogObj(obj);\r\n setSelectedLogType({ key: \"0\", value: \"Reservation\" });\r\n setSelectedDateType({ key: \"BD\", value: \"Base Date\" });\r\n setSelectedRoomType({ key: 0, value: \"Select\" });\r\n setSelectedEventType({ key: \"0\", value: \"All\" });\r\n setSelectedAgentType({ key: '0', value: \"Select\" });\r\n }\r\n //#endregion\r\n\r\n //#region Inventory fields\r\n const filterInventory = () => {\r\n return (\r\n <>\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n // if (otaLogObj.ToDate != undefined && otaLogObj.ToDate != \"\") {\r\n // if (new Date(e) <= new Date(otaLogObj.ToDate)) {\r\n setOtaLogObj((prev) => ({ ...prev, FromDate: e }))\r\n setOtaLogObj((prev) => ({ ...prev, ToDate: e }))\r\n // } else {\r\n // alert(\"Please enter less than to date.\")\r\n // let oldDate = otaLogObj.FromDate;\r\n // setOtaLogObj((prev) => ({ ...prev, FromDate: e }));\r\n // setTimeout(() => {\r\n // setOtaLogObj((prev) => ({ ...prev, FromDate: oldDate }))\r\n // }, 1);\r\n // }\r\n // } else {\r\n // setOtaLogObj((prev) => ({ ...prev, FromDate: e }));\r\n // }\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n // if (otaLogObj.FromDate != undefined && otaLogObj.FromDate != \"\") {\r\n // if (new Date(e) >= new Date(otaLogObj.FromDate)) {\r\n // setOtaLogObj((prev) => ({ ...prev, ToDate: e }));\r\n // } else {\r\n // alert(\"Please enter more than from date.\");\r\n // let oldDate = otaLogObj.ToDate;\r\n // setOtaLogObj((prev) => ({ ...prev, ToDate: e }));\r\n // setTimeout(() => {\r\n // setOtaLogObj((prev) => ({ ...prev, ToDate: oldDate }));\r\n // }, 1);\r\n // }\r\n // } else {\r\n // setOtaLogObj((prev) => ({ ...prev, ToDate: e }));\r\n // }\r\n // }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedRoomType(item);\r\n setOtaLogObj(prev => ({ ...prev, RoomType: item.key }));\r\n }}\r\n >\r\n
    \r\n
    \r\n \r\n )\r\n }\r\n //#endregion\r\n\r\n //#region Rate fields\r\n const filterRate = () => {\r\n return (\r\n <>\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n if (otaLogObj.ToDate != undefined && otaLogObj.ToDate != \"\") {\r\n if (new Date(e) <= new Date(otaLogObj.ToDate)) {\r\n setOtaLogObj((prev) => ({ ...prev, FromDate: e }))\r\n } else {\r\n alert(\"Please enter less than to date.\")\r\n let oldDate = otaLogObj.FromDate;\r\n setOtaLogObj((prev) => ({ ...prev, FromDate: e }));\r\n setTimeout(() => {\r\n setOtaLogObj((prev) => ({ ...prev, FromDate: oldDate }))\r\n }, 1);\r\n }\r\n } else {\r\n setOtaLogObj((prev) => ({ ...prev, FromDate: e }));\r\n }\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n if (otaLogObj.FromDate != undefined && otaLogObj.FromDate != \"\") {\r\n if (new Date(e) >= new Date(otaLogObj.FromDate)) {\r\n setOtaLogObj((prev) => ({ ...prev, ToDate: e }));\r\n } else {\r\n alert(\"Please enter more than from date.\");\r\n let oldDate = otaLogObj.ToDate;\r\n setOtaLogObj((prev) => ({ ...prev, ToDate: e }));\r\n setTimeout(() => {\r\n setOtaLogObj((prev) => ({ ...prev, ToDate: oldDate }));\r\n }, 1);\r\n }\r\n } else {\r\n setOtaLogObj((prev) => ({ ...prev, ToDate: e }));\r\n }\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedRoomType(item);\r\n setOtaLogObj(prev => ({ ...prev, RoomType: item.key }));\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(item)}\r\n >\r\n
    \r\n
    \r\n \r\n )\r\n }\r\n //#endregion\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    OTA Interface

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* {\r\n setshowLeftBlueBar(true);\r\n }}\r\n >\r\n */}\r\n
    \r\n
    \r\n \r\n Export\r\n \r\n\r\n \r\n Actions (50)\r\n \r\n \r\n setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }\r\n >\r\n \r\n
    \r\n \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n {/* #region Table Grids */}\r\n {\r\n showInventory ?\r\n <>\r\n
    \r\n {/* */}\r\n
    \r\n {\r\n console.log(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n setReservationStatus(v);\r\n }}\r\n fixedHeaderNo={2}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={optBtnData1}\r\n optClick={(item, d) => {\r\n actionPopup(item)\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n setSelectedRow(rowdata);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n
    \r\n
    \r\n \r\n :\r\n null\r\n }\r\n\r\n {\r\n showReservation ?\r\n <>\r\n
    \r\n {/* */}\r\n
    \r\n {\r\n console.log(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n setReservationStatus(v);\r\n }}\r\n fixedHeaderNo={2}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n actionPopup(item);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n setSelectedRow(rowdata);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n
    \r\n
    \r\n \r\n :\r\n null\r\n }\r\n\r\n {\r\n showRate ?\r\n <>\r\n
    \r\n {/* */}\r\n
    \r\n {\r\n console.log(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n }}\r\n fixedHeaderNo={2}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={optBtnData1}\r\n optClick={(item, d) => {\r\n actionPopup(item);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n setSelectedRow(rowdata);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n
    \r\n
    \r\n \r\n :\r\n null\r\n }\r\n {/* #endregion */}\r\n\r\n {/* Advanced Filter Popup Start */}\r\n {showAdvancedSearchModal ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Filters

    \r\n
    \r\n
    \r\n {/* More Filter start */}\r\n {/*
    \r\n \r\n
    */}\r\n {/* More Filter end */}\r\n \r\n Reset\r\n \r\n {\r\n if (selectedLogType.value == \"Reservation\") {\r\n setShowReservation(true);\r\n setShowInventory(false);\r\n setShowRate(false);\r\n }\r\n else if (selectedLogType.value == \"Rate Update\") {\r\n setShowRate(true);\r\n setShowReservation(false);\r\n setShowInventory(false);\r\n }\r\n else if (selectedLogType.value == \"Inventory Update\") {\r\n setShowInventory(true);\r\n setShowRate(false);\r\n setShowReservation(false);\r\n }\r\n fillOtaDataGrid();\r\n setShowAdvancedSearchModal(!showAdvancedSearchModal);\r\n }}\r\n >\r\n Apply\r\n \r\n \r\n setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedLogType(item);\r\n setOtaLogObj(prev => ({ ...prev, LogType: item.key, ToDate: otaLogObj.FromDate }));\r\n\r\n // if (item.value == \"Reservation\") {\r\n // setShowReservation(true);\r\n // setShowInventory(false);\r\n // setShowRate(false);\r\n // }\r\n // else if (item.value == \"Rate Update\") {\r\n // setShowRate(true);\r\n // setShowReservation(false);\r\n // setShowInventory(false);\r\n // }\r\n // else if (item.value == \"Inventory Update\") {\r\n // setShowInventory(true);\r\n // setShowRate(false);\r\n // setShowReservation(false);\r\n // }\r\n }}\r\n >\r\n
    \r\n
    \r\n\r\n {/* #region Invetory fields */}\r\n {\r\n selectedLogType.value == \"Inventory Update\" ?\r\n (filterInventory())\r\n :\r\n selectedLogType.value == \"Rate Update\" ?\r\n (filterRate())\r\n :\r\n <>\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n if (otaLogObj.ToDate != undefined && otaLogObj.ToDate != \"\") {\r\n if (new Date(e) <= new Date(otaLogObj.ToDate)) {\r\n setOtaLogObj((prev) => ({ ...prev, FromDate: e }))\r\n } else {\r\n alert(\"Please enter less than to date.\")\r\n let oldDate = otaLogObj.FromDate;\r\n setOtaLogObj((prev) => ({ ...prev, FromDate: e }));\r\n setTimeout(() => {\r\n setOtaLogObj((prev) => ({ ...prev, FromDate: oldDate }))\r\n }, 1);\r\n }\r\n } else {\r\n setOtaLogObj((prev) => ({ ...prev, FromDate: e }));\r\n }\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n if (otaLogObj.FromDate != undefined && otaLogObj.FromDate != \"\") {\r\n if (new Date(e) >= new Date(otaLogObj.FromDate)) {\r\n setOtaLogObj((prev) => ({ ...prev, ToDate: e }));\r\n } else {\r\n alert(\"Please enter more than from date.\");\r\n let oldDate = otaLogObj.ToDate;\r\n setOtaLogObj((prev) => ({ ...prev, ToDate: e }));\r\n setTimeout(() => {\r\n setOtaLogObj((prev) => ({ ...prev, ToDate: oldDate }));\r\n }, 1);\r\n }\r\n } else {\r\n setOtaLogObj((prev) => ({ ...prev, ToDate: e }));\r\n }\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedDateType(item);\r\n setOtaLogObj(prev => ({ ...prev, DateType: item.key }));\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n {\r\n setOtaLogObj(prev => ({ ...prev, BookingRefNo: v }));\r\n }}\r\n >Booking Reference No.\r\n {/* onClick={() => setShowAgentModal(!showAgentModal)} */}\r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedEventType(item);\r\n setOtaLogObj(prev => ({ ...prev, Event: item.key }));\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedAgentType(item);\r\n setOtaLogObj(prev => ({ ...prev, Agent: item.key }));\r\n }}\r\n >\r\n
    \r\n
    \r\n {/*
    \r\n
    \r\n
    \r\n \r\n setShowAgentModal(!showAgentModal)\r\n }\r\n onChange={(v) => {\r\n setOtaLogObj(prev => ({ ...prev, AgentName: v }));\r\n }}\r\n >Agent\r\n \r\n \r\n setShowAgentModal(!showAgentModal)\r\n }\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    */}\r\n {/*
    \r\n
    \r\n {\r\n setSelectRoomType(item);\r\n let temp = \"\";\r\n item.forEach((x) => {\r\n temp = temp + x + \",\";\r\n });\r\n setOtaLogObj(prev => ({ ...prev, RoomType: temp }));\r\n }}\r\n >\r\n
    \r\n
    */}\r\n \r\n }\r\n {/* #endregion */}\r\n
    \r\n
    \r\n ) : null}\r\n
    \r\n {showRequestResponseModal ? (\r\n {\r\n setShowRequestResponseModal(false);\r\n }}\r\n para={{ RequestSerNo: selectedRow.RequestSerNo }}\r\n >\r\n \r\n ) : null}\r\n\r\n {\r\n reservationStatus.ReservationStatus == \"DIN\" ?\r\n (\r\n { setReservationStatus(\"\"); }}>\r\n ) :\r\n <>\r\n }\r\n \r\n )\r\n}\r\n","import {\r\n InnActionButton,\r\n InnTableGrid, InnModalPopup\r\n} from \"../../../../component\";\r\nimport React from 'react'\r\nimport { useEffect, useState } from \"react\";\r\nimport { InnPlainTabs, Tab } from \"../../../../component\";\r\n// import qrcode from \"../../../assets/images/qr-code.png\"; \r\nimport qrcode from \"../../../../assets/images/qr-code.png\"\r\nimport { GetInvoiceQr, GetGSTEInvoiceDetails, GetGSTeInvoiceItemDetail, GetGSTeInvoiceLastResponse } from \"../../../../services/reservationCashieringService\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { element } from \"prop-types\";\r\nexport default function InvoiceDetailsModalPopup(props) {\r\n const SACtableHeader = [\r\n { key: \"SAC Code\", value: \"SACCode\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Description\", value: \"Description\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"QTY\", value: \"QTY\", type: \"txt\", sorting: \"Y\", align: 'center' },\r\n { key: \"Rate\", value: \"Rate\", type: \"txt\", sorting: \"Y\", align: 'right' },\r\n { key: \"Taxable Amount\", value: \"TaxableAmount\", type: \"txt\", sorting: \"N\", align: 'right' },\r\n { key: \"GST Rate\", value: \"GSTRate\", type: \"txt\", sorting: \"Y\", align: 'right' },\r\n { key: \"Cess Rate\", value: \"CessRate\", type: \"txt\", sorting: \"Y\", align: 'right' },\r\n { key: \"CGST Amount\", value: \"CGSTAmount\", type: \"txt\", sorting: \"Y\", align: 'right' },\r\n { key: \"SGST Amount\", value: \"SGSTAmount\", type: \"txt\", sorting: \"Y\", align: 'right' },\r\n { key: \"IGST Amount\", value: \"IGSTAmount\", type: \"txt\", sorting: \"Y\", align: 'right' },\r\n { key: \"Cess Amount\", value: \"CessAmount\", type: \"txt\", sorting: \"Y\", align: 'right' },\r\n { key: \"Total GST Amount\", value: \"TotalGSTAmount\", type: \"txt\", sorting: \"Y\", align: 'right' },\r\n { key: \"Total Amount\", value: \"TotalAmount\", type: \"txt\", sorting: \"Y\", align: 'right' },\r\n ];\r\n\r\n const [filterDataSACtable, setfilterSACtable] = useState([]);\r\n\r\n const ErrordetailsHeader = [\r\n { key: \"Error Code\", value: \"ErrorCode\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Error Message\", value: \"ErrorMessage\", type: \"txt\", sorting: \"Y\" },\r\n ];\r\n\r\n const [filterDataErrordetailstable, setfilterErrordetailstable] = useState([]);\r\n const optBtnData = [\r\n { key: \"Invoice Details\", value: \"Invoice Details\" },\r\n { key: \"Process Invoice\", value: \"Process Invoice\" },\r\n { key: \"Send Email\", value: \"Send Email\" },\r\n ];\r\n\r\n const actionPopup = (item) => {\r\n if (item.key == \"Invoice Details\") {\r\n // history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n setShowInvoiceDetailsModal(true);\r\n\r\n }\r\n }\r\n const [showQRCodePreviewModal, setShowQRCodePreviewModal] = useState(false);\r\n const [showInvoiceDetailsModal, setShowInvoiceDetailsModal] = useState(false);\r\n const [showAdvancedSearchModal, setShowAdvancedSearchModal] = useState(false);\r\n const [page, setPage] = useState(1);\r\n const [pageCount, setPageCount] = useState(1);\r\n const [colListKeys, setColListKeys] = useState([]);\r\n const [gstInvoiceRBvalue, setGstInvoiceRBvalue] = useState(\"Un-registered\");\r\n const [invoiceDetailsObj, setInvoiceDetailsObj] = useState({})\r\n const [qrlink, setQrLink] = useState()\r\n const currUser = useSelector(currentUser)\r\n\r\n\r\n const handleClickQr = () => {\r\n GetInvoiceQr(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), invoiceDetailsObj.SerNo).then(resp => {\r\n setQrLink(resp.data.NormalQRCode);\r\n })\r\n }\r\n const InvoiceDetailApi = (SerNo) => {\r\n GetGSTEInvoiceDetails(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), SerNo).then(resp => {\r\n if (resp.data) {\r\n setInvoiceDetailsObj(resp.data);\r\n }\r\n console.log(resp.data);\r\n })\r\n }\r\n\r\n const SacCodeDetailApi = (SerNo) => {\r\n GetGSTeInvoiceItemDetail(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), SerNo).then(resp => {\r\n let temp = []\r\n let temp1 = { Description: \"Total\", TaxableAmount: 0, CGSTAmount: 0, SGSTAmount: 0, TotalAmount: 0, TotalGSTAmount: 0 }\r\n resp.data.forEach(element => {\r\n temp1.TaxableAmount = temp1.TaxableAmount + element.TaxableAmount;\r\n temp1.CGSTAmount = temp1.CGSTAmount + element.CGSTAmount;\r\n temp1.SGSTAmount = temp1.SGSTAmount + element.SGSTAmount;\r\n temp1.TotalAmount = temp1.TotalAmount + element.TotalAmount;\r\n temp1.TotalGSTAmount = temp1.TotalGSTAmount + element.TotalGSTAmount;\r\n temp.push({\r\n SACCode: element.HsnSacNo,\r\n Description: element.HsnSacName,\r\n QTY: element.Qty,\r\n Rate: element.Rate,\r\n TaxableAmount: element.TaxableAmount.toFixed(2),\r\n GSTRate: element.GSTRate.toFixed(2),\r\n CessRate: element.CessRate,\r\n CGSTAmount: element.CGSTAmount.toFixed(2),\r\n SGSTAmount: element.SGSTAmount.toFixed(2),\r\n IGSTAmount: element.IGSTAmount.toFixed(2),\r\n CessAmount: element.CessAmount.toFixed(2),\r\n TotalGSTAmount: element.TotalGSTAmount.toFixed(2),\r\n TotalAmount: element.TotalAmount.toFixed(2),\r\n })\r\n });\r\n temp1.TaxableAmount = temp1.TaxableAmount.toFixed(2)\r\n temp1.CGSTAmount = temp1.CGSTAmount.toFixed(2)\r\n temp1.SGSTAmount = temp1.SGSTAmount.toFixed(2)\r\n temp1.TotalAmount = temp1.TotalAmount.toFixed(2)\r\n temp1.TotalGSTAmount = temp1.TotalGSTAmount.toFixed(2)\r\n temp.push(temp1)\r\n setfilterSACtable(temp)\r\n console.log(resp.data);\r\n })\r\n }\r\n\r\n\r\n const GetGstInvoiceErrorDetails = (SerNo) => {\r\n GetGSTeInvoiceLastResponse(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), SerNo).then(resp => {\r\n let temp = []\r\n if (resp.data.length != 0) {\r\n if (resp.data.RequesterSerNo == 2) {\r\n //Cygnet\r\n if (resp.data.Operation == \"Callback EInvoice\") {\r\n if (JSON.parse(resp.data.Request).validationReport.length != 0) {\r\n JSON.parse(resp.data.Request).validationReport.forEach(element => {\r\n if (element.propertyErrors != undefined && element.propertyErrors.length > 0) {\r\n element.propertyErrors.forEach(element1 => {\r\n element1.errors.forEach(element2 => {\r\n temp.push({ ErrorCode: element2.code, ErrorMessage: element1.propertyName + \" : \" + element2.message })\r\n })\r\n });\r\n }\r\n })\r\n }\r\n if (JSON.parse(resp.data.Request).dataReport.length != 0) {\r\n JSON.parse(resp.data.Request).dataReport.forEach(element => {\r\n element.eInv.forEach(element1 => {\r\n element1.errors.forEach(element2 => {\r\n temp.push({ ErrorCode: element2.code, ErrorMessage: element2.message })\r\n })\r\n });\r\n })\r\n }\r\n if (JSON.parse(resp.data.Request).errors != undefined) {\r\n if (JSON.parse(resp.data.Request).errors.length != 0) {\r\n JSON.parse(resp.data.Request).errors.forEach(element => {\r\n temp.push({ ErrorCode: element.code, ErrorMessage: element.message });\r\n })\r\n }\r\n }\r\n }\r\n else {\r\n if (resp.data.Response.includes(\"Response from exception call :\")) {\r\n let x = resp.data.Response.split(\"Response from exception call :\")\r\n if(x.length>0){\r\n if (JSON.parse(x[x.length - 1]).errors != undefined) {\r\n JSON.parse(x[x.length - 1]).errors.forEach(element => {\r\n temp.push({ ErrorCode: element.code, ErrorMessage: element.message })\r\n })\r\n }\r\n else {\r\n temp.push({ ErrorCode: JSON.parse(x[x.length - 1]).code, ErrorMessage: JSON.parse(x[x.length - 1]).message })\r\n }\r\n }\r\n }\r\n else {\r\n if (resp.data.Response != undefined) {\r\n if (JSON.parse(resp.data.Response).validationReport.length != 0) {\r\n JSON.parse(resp.data.Response).validationReport.forEach(element => {\r\n if (element.propertyErrors != undefined && element.propertyErrors.length > 0) {\r\n element.propertyErrors.forEach(element1 => {\r\n element1.errors.forEach(element2 => {\r\n temp.push({ ErrorCode: element2.code, ErrorMessage: element1.propertyName + \" : \" + element2.message })\r\n })\r\n });\r\n }\r\n })\r\n }\r\n if (JSON.parse(resp.data.Response).dataReport.length != 0) {\r\n JSON.parse(resp.data.Response).dataReport.forEach(element => {\r\n element.eInv.forEach(element1 => {\r\n element1.errors.forEach(element2 => {\r\n temp.push({ ErrorCode: element2.code, ErrorMessage: element2.message })\r\n console.log(element2);\r\n })\r\n });\r\n })\r\n }\r\n if (JSON.parse(resp.data.Response).errors != undefined) {\r\n if (JSON.parse(resp.data.Response).errors.length != 0) {\r\n JSON.parse(resp.data.Response).errors.forEach(element => {\r\n temp.push({ ErrorCode: element.code, ErrorMessage: element.message });\r\n })\r\n }\r\n }\r\n //same like callback\r\n }\r\n }\r\n }\r\n }\r\n else if (resp.data.RequesterSerNo == 4) {\r\n //ClearTax\r\n if (resp.data.Response.includes(\"Response from exception call :\")) {\r\n let x = resp.data.Response.split(\"Response from exception call :\")\r\n temp.push({ ErrorCode: JSON.parse(x[x.length - 1]).error_code, ErrorMessage: JSON.parse(x[x.length - 1]).error_message })\r\n }\r\n else {\r\n if (JSON.parse(resp.data.Response) != undefined) {\r\n JSON.parse(resp.data.Response).forEach(element => {\r\n if (element.govt_response != undefined && element.govt_response.ErrorDetails != undefined && element.govt_response.ErrorDetails.length != 0) {\r\n element.govt_response.ErrorDetails.forEach(element => {\r\n temp.push({ ErrorCode: element.error_code, ErrorMessage: element.error_message })\r\n })\r\n if(element.govt_response.info!=undefined && element.govt_response.info.length>0 ){\r\n element.govt_response.info.forEach(element1=>{\r\n temp.push({ErrorCode:element1.InfCd,ErrorMessage:element1.Desc})\r\n })\r\n }\r\n }\r\n })\r\n }\r\n }\r\n }\r\n }\r\n setfilterErrordetailstable(temp);\r\n })\r\n }\r\n useEffect(() => {\r\n // setInvoiceDetailsObj(props.para)\r\n GetGstInvoiceErrorDetails(props.para.SerialNo)\r\n SacCodeDetailApi(props.para.SerialNo)\r\n InvoiceDetailApi(props.para.SerialNo)\r\n }, [])\r\n return (\r\n props.Onclose()}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Invoice Details

    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    other details
    \r\n
    \r\n Serial No.\r\n {invoiceDetailsObj.SerNo}\r\n
    \r\n
    \r\n Selection Date\r\n {invoiceDetailsObj.InvoiceSelectionDate}\r\n
    \r\n
    \r\n Outlet\r\n {invoiceDetailsObj.Module}\r\n
    \r\n
    \r\n Invoice /CRN\r\n {invoiceDetailsObj.InvoiceNo}\r\n
    \r\n
    \r\n Invoice /CRN Date\r\n {invoiceDetailsObj?.InvoiceDate}\r\n
    \r\n
    \r\n Status\r\n {invoiceDetailsObj?.Status}\r\n
    \r\n
    \r\n Claimant Statutory\r\n
    {invoiceDetailsObj?.ClaimantName}
    \r\n
    \r\n\r\n
    \r\n Claimant GSTIN\r\n
    {invoiceDetailsObj?.GSTNo}
    \r\n
    \r\n
    \r\n IRN No.\r\n
    {invoiceDetailsObj?.IRNNo}
    \r\n
    \r\n
    \r\n Cancel Reason\r\n
    {invoiceDetailsObj?.CancellationReason}
    \r\n
    \r\n
    \r\n Reg Type\r\n {invoiceDetailsObj?.RegistrationType}\r\n
    \r\n
    \r\n Ref. Serial No\r\n {invoiceDetailsObj?.RefSerNo}\r\n
    \r\n
    \r\n Ref. Selection Date\r\n {invoiceDetailsObj?.RefInvoiceSelectionDate}\r\n
    \r\n
    \r\n Last Process Date\r\n {invoiceDetailsObj?.LastProcessDate}\r\n
    \r\n\r\n
    \r\n {\r\n handleClickQr()\r\n setShowQRCodePreviewModal(!showQRCodePreviewModal)\r\n }\r\n }>QR Code Preview\r\n
    \r\n\r\n
    \r\n
    \r\n\r\n \r\n \r\n
    \r\n\r\n {/* {\r\n console.log(items);\r\n //setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n //setReservationStatus(v);\r\n //setShowGuestPopup(true);\r\n }}\r\n fixedHeaderNo={2}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n actionPopup(item)\r\n //history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n //setSelectedReservation(rowdata);\r\n // handleRmAssignmentData([rowdata]);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n > */}\r\n {\r\n console.log(items);\r\n //setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n //setReservationStatus(v);\r\n //setShowGuestPopup(true);\r\n }}\r\n //fixedHeaderNo={0}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n actionPopup(item)\r\n //history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n //setSelectedReservation(rowdata);\r\n // handleRmAssignmentData([rowdata]);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n
    \r\n { /*
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    111111111111
    Total39,900.0039,900.0039,900.0039,900.0039,900.00-
    \r\n\r\n
    \r\n\r\n {\r\n console.log(items);\r\n //setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n //setReservationStatus(v);\r\n //setShowGuestPopup(true);\r\n }}\r\n fixedHeaderNo={1}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n actionPopup(item)\r\n //history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n //setSelectedReservation(rowdata);\r\n // handleRmAssignmentData([rowdata]);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n > \r\n
    */}\r\n
    \r\n \r\n
    \r\n\r\n {\r\n console.log(items);\r\n //setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n //setReservationStatus(v);\r\n //setShowGuestPopup(true);\r\n }}\r\n // fixedHeaderNo={1}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n actionPopup(item)\r\n //history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n //setSelectedReservation(rowdata);\r\n // handleRmAssignmentData([rowdata]);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n
    \r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n\r\n
    \r\n\r\n {showQRCodePreviewModal ? (\r\n setShowQRCodePreviewModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    QR Code Preview

    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n ) : null}\r\n \r\n )\r\n}\r\n","import React, {useEffect, useRef, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport moment from \"moment/moment\";\r\nimport { currentUser } from \"../../../reducer/authSlice\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnButtonTypeWithDropdown,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnSingleDateSelection,\r\n InnSwitch,\r\n InnTableGrid, InnModalPopup, InnTextarea, InnRadioButton, InnDataGrid\r\n} from \"../../../component\";\r\nimport { InnPlainTabs,Tab } from \"../../../component\";\r\nimport qrcode from \"../../../assets/images/qr-code.png\";\r\nimport { GetGSTEInvoiceList } from '../../../services/reservationCashieringService';\r\nimport { GetPropertyParameterByKeys } from \"../../../services/reservationService\";\r\nimport InvoiceDetailsModalPopup from \"./modalPopup/invoiceDetailsModalPopup\";\r\nimport { element } from \"prop-types\";\r\nexport function GSTeinvoice() {\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n const defaultObj={\r\n ClientSerNo:1201,\r\n PropertySerNo:1,\r\n FromDate:\"\",\r\n ToDate:\"\",\r\n Status:\"ALL\",\r\n IgnoreDate:false,\r\n InvoiceNo:null,\r\n UserID:\"SUPER1201\", \r\n Module:\"A\"\r\n }\r\n const [invoiceObj,setInvoiceObj]=useState(defaultObj)\r\n const columHeader = [\r\n { key: \"Serial No.\", value: \"SerialNo\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Selection Date\", value: \"SelectionDate\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Outlet\", value: \"Outlet\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Document Type\", value: \"DocumentType\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Supply Type\", value: \"SupplyType\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Reg. Type\", value: \"RegType\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Claimant Statutory Name\", value: \"ClaimantStatutoryName\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Invoice/CRN No.\", value: \"InvoiceCRNNo\", type: \"txt\", sorting: \"N\", },\r\n { key: \"Invoice/CRN Date\", value: \"InvoiceCRNDate\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Status\", value: \"Status\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Entry Date\", value: \"EntryDate\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Entry User ID\", value: \"EntryUserID\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Register Date\", value: \"RegisterDate\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Last Process Date\", value: \"LastProcessDate\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n\r\n const [filterDataTemp, setfilterDataTemp] = useState([]);\r\n const [search,setSearch]=useState(\"\")\r\n \r\n const optBtnData = [\r\n { key: \"Invoice Details\", value: \"Invoice Details\" },\r\n { key: \"Process Invoice\", value: \"Process Invoice\" },\r\n { key: \"Send Email\", value: \"Send Email\" },\r\n ];\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n const MoreFilterOption = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n const ActionOption = [\r\n { key: \"Invoice Details\", value: \"Invoice Details\" },\r\n { key: \"Process Invoice\", value: \"Process Invoice\" },\r\n { key: \"Send Email\", value: \"Send Email\" },\r\n ];\r\n const rbDataType = [\r\n { key: \"Un-registered\", value: \"Un-registered Invoices\" },\r\n { key: \"Registered\", value: \"Registered Invoices\" },\r\n ];\r\n const actionPopup = (item) => {\r\n if (item.key == \"Invoice Details\") {\r\n // history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n setShowInvoiceDetailsModal(true);\r\n\r\n }\r\n }\r\n \r\n const currUser = useSelector(currentUser);\r\n const [showQRCodePreviewModal, setShowQRCodePreviewModal] = useState(false);\r\n const [showInvoiceDetailsModal, setShowInvoiceDetailsModal] = useState(false);\r\n const [showAdvancedSearchModal, setShowAdvancedSearchModal] = useState(false);\r\n const [page, setPage] = useState(1);\r\n const [pageCount, setPageCount] = useState(1);\r\n const [colListKeys, setColListKeys] = useState([]);\r\n const [gstInvoiceRBvalue, setGstInvoiceRBvalue] = useState(\"Un-registered\");\r\n const [selectedInvoice,setSelectedInvoice]=useState({})\r\n const moduleList=[\r\n {key:\"A\",value:\"All\"},\r\n {key:\"R\",value:\"Reservation\"},\r\n {key:\"P\",value:\"POS\"},\r\n {key:\"L\",value:\"Laundry\"}\r\n ]\r\n const unStatus=[\r\n {key:\"All\",value:\"All\"},\r\n {key:\"None\",value:\"None\"},\r\n {key:\"Fail\",value:\"Fail\"},\r\n {key:\"In Process\",value:\"In Process\"},\r\n ]\r\n \r\n const rStatus=[\r\n {key:\"Success\",value:\"Success\"}\r\n ]\r\n const [resultList,setResultList]=useState([])\r\n const handleClickReset=()=>{\r\n console.log(\"hI THIS IS RESET\");\r\n let temp=JSON.parse(JSON.stringify(defaultObj));\r\n temp.FromDate=businessDate\r\n temp.ToDate=businessDate\r\n if(gstInvoiceRBvalue==\"Un-registered\"){\r\n temp.Status=\"All\"\r\n }\r\n else{\r\n temp.Status=\"Success\"\r\n }\r\n setInvoiceObj(temp)\r\n }\r\n const handleClickApply=()=>{\r\n GetGSTEInvoiceList(invoiceObj).then(resp=>{\r\n if(resp.data.length>0){\r\n let temp=[]\r\n resp.data.forEach(element => {\r\n temp.push({\r\n SerialNo:element.SerNo,\r\n SelectionDate: \"Fri, 24 May\",\r\n Outlet: element.Module,\r\n DocumentType: element.DocumentType,\r\n SupplyType: element.SupplyType,\r\n RegType: element.RegistrationType,\r\n ClaimantStatutoryName: element.ClaimName,\r\n InvoiceCRNNo: element.InvoiceNo,\r\n InvoiceCRNDate: element.InvoiceDate,\r\n Status: element.Status,\r\n EntryDate: element.EntryDateTime,\r\n EntryUserID: element.EntryUserID,\r\n RegisterDate:element.RegistartionDateTime,\r\n LastProcessDate: element.LastProcessDateTime,\r\n Action: \"...\",\r\n })\r\n });\r\n setResultList(temp)\r\n setfilterDataTemp(temp)\r\n console.log(\"Response\",resp.data);\r\n }\r\n })\r\n }\r\n\r\n const handleSearch=(v)=>{\r\n let temp=[];\r\n filterDataTemp.forEach(element=>{\r\n if (element.DocumentType.toLowerCase().includes(v.toLowerCase())|| element.ClaimantStatutoryName.toLowerCase().includes(v.toLowerCase())||element.InvoiceCRNNo.toLowerCase().includes(v.toLowerCase()) || element.Status.toLowerCase().includes(v.toLowerCase()) || element.SerialNo.toString().includes(v) || element.SelectionDate.toLowerCase().includes(v.toLowerCase()) ||element.EntryDate.toLowerCase().includes(v.toLowerCase()) ) {\r\n temp.push(element);\r\n }\r\n })\r\n setResultList(temp);\r\n }\r\nuseEffect(() => {\r\n let temp=invoiceObj;\r\n \r\n if(gstInvoiceRBvalue==\"Un-registered\"){\r\n temp.Status=\"All\";\r\n setInvoiceObj(temp)\r\n handleClickApply()\r\n }\r\n else{\r\n temp.Status=\"Success\"\r\n setInvoiceObj(temp)\r\n handleClickApply();\r\n }\r\n}, [gstInvoiceRBvalue])\r\n\r\n\r\n useEffect(()=>{\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), 'BusinessDate').then(resp => {\r\n let obj = resp.data.find(x => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(moment(resp.data[0].value).format(\"DD-MMM-YYYY\"));\r\n setInvoiceObj((prev) => ({ ...prev, FromDate: moment(resp.data[0].value).format(\"DD-MMM-YYYY\"), ToDate: moment(resp.data[0].value).format(\"DD-MMM-YYYY\") }))\r\n }\r\n })\r\n if(businessDate!=\"\"){\r\n handleClickApply()\r\n }\r\n },[])\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    GST e Invoice

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setGstInvoiceRBvalue(key);\r\n console.log(\"selection changed called : \" + gstInvoiceRBvalue);\r\n\r\n }}\r\n >\r\n
    \r\n
    \r\n handleSearch(v)} \r\n OnCancelClick={() => handleSearch(\"\")}\r\n disabled={false}>\r\n search\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n Export\r\n \r\n\r\n \r\n Actions (50)\r\n \r\n \r\n setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }\r\n >\r\n \r\n
    \r\n \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(items);\r\n //setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n //setReservationStatus(v);\r\n //setShowGuestPopup(true);\r\n }}\r\n fixedHeaderNo={2}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n actionPopup(item)\r\n //history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata)\r\n setSelectedInvoice(rowdata)\r\n //setSelectedReservation(rowdata);\r\n // handleRmAssignmentData([rowdata]);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n {\r\n setPage(v);\r\n }}\r\n style={{ float: \"right\" }}\r\n />\r\n
    \r\n {/* Advanced Filter Popup Start */}\r\n {showAdvancedSearchModal ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Filters

    \r\n
    \r\n
    \r\n handleClickReset()}>\r\n Reset\r\n \r\n {\r\n handleClickApply()\r\n setShowAdvancedSearchModal(false)\r\n }\r\n }>\r\n Apply\r\n \r\n \r\n setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {setInvoiceObj((prev)=>({...prev,FromDate:v}))}}\r\n calendarStartDay={1}\r\n label=\"From Date\"\r\n dateFormat=\"E dd, MMM,YYY\"\r\n >\r\n
    \r\n
    \r\n {setInvoiceObj((prev)=>({...prev,ToDate:v}))}}\r\n calendarStartDay={1}\r\n label=\"To Date\"\r\n dateFormat=\"E dd MMM,YYY\"\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n setInvoiceObj((prev)=>({...prev,Status:v.key}))}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n setInvoiceObj((prev)=>({...prev,Module:v.key}))}\r\n name=\"Module\"\r\n label=\"Module\"\r\n searchable={[\"Search\", \"No matching Market\"]}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n setInvoiceObj((prev)=>({...prev,IgnoreDate:v}))}>Ignore Date Criteria\r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n {showInvoiceDetailsModal ? (\r\n setShowInvoiceDetailsModal(false)}\r\n >\r\n \r\n ) : null}\r\n {/* {showQRCodePreviewModal ? (\r\n setShowQRCodePreviewModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    QR Code Preview

    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n ) : null} */}\r\n\r\n \r\n )\r\n}\r\n","var map = {\n\t\"./ckb.js\": 233,\n\t\"./da.js\": 234,\n\t\"./de.js\": 235,\n\t\"./en.js\": 169,\n\t\"./es.js\": 236,\n\t\"./fr.js\": 237,\n\t\"./he.js\": 238,\n\t\"./index.js\": 516,\n\t\"./it.js\": 239,\n\t\"./ja.js\": 240,\n\t\"./ko.js\": 241,\n\t\"./lv.js\": 242,\n\t\"./nl.js\": 243,\n\t\"./pl.js\": 244,\n\t\"./pt_br.js\": 245,\n\t\"./ro.js\": 246,\n\t\"./ru.js\": 247,\n\t\"./se.js\": 248,\n\t\"./ua.js\": 249,\n\t\"./zh_cn.js\": 250\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 515;","import React, { useEffect, useState } from \"react\";\r\nimport Moment from \"moment\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnFileUpload,\r\n InnLoader,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnRadioButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnTabs,\r\n InnToastMessage,\r\n InnStatusLabel,\r\n InnTooltip,\r\n InnEditor,\r\n InnPlainButton,\r\n InnPlainTextbox,\r\n //InnTreeView,\r\n InnSingleDateSelection,\r\n InnMultiDateSelection,\r\n InnDateTimeSelection,\r\n InnTimeSelection,\r\n InnPlainTabs,\r\n Tab,\r\n InnDropdownWithRadioButton,\r\n InnButtonTypeWithDropdown,\r\n InnPlainButtonWithDropdown,\r\n InnButtonWithDropdown,\r\n InnCalendar,\r\n //InnConfirmAlert,\r\n InnSingleRadioButton,\r\n} from \"../../../../component\";\r\nimport {\r\n IndiBookedOn,\r\n IndiCancellationRule,\r\n IndiSalesMarketing,\r\n IndiBillingInstruction,\r\n IndiCompany,\r\n IndiReservationType\r\n} from \"../indicators\";\r\nimport {\r\n GetReservationBlockHeaderData,\r\n manageReservationBlockBalanceIndicator\r\n} from \"../../../../services/reservationService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport function BlockTipTentative(props) {\r\n const currUser = useSelector(currentUser);\r\n const history = useHistory();\r\n const [reservationBlockData, setReservationBlockData] = useState({});\r\n const [totalBalance, setTotalBalance] = useState({});\r\n // const BlockSerNo = 9;\r\n\r\n const [blockObj, setBlockObj] = useState({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n // BlockSerNo: parseInt(location.state?.BlockSerNo),\r\n BlockSerNo: props.para.BlockSerNo,\r\n ReservationSerNo: 0,\r\n Type: \"Block\"\r\n });\r\n\r\n useEffect(() => {\r\n fillReservationBlockData();\r\n }, []);\r\n\r\n useEffect(() => {\r\n getReservationBlockBalanceData();\r\n }, [])\r\n\r\n const fillReservationBlockData = () => {\r\n GetReservationBlockHeaderData(blockObj.ClientSerNo, blockObj.PropertySerNo, blockObj.BlockSerNo).then(d => {\r\n console.log(d.data);\r\n let tempObj = d.data;\r\n tempObj.ClientSerNo = blockObj.ClientSerNo;\r\n tempObj.PropertySerNo = blockObj.PropertySerNo;\r\n tempObj.Type = blockObj.Type;\r\n setBlockObj(prev => ({ ...prev, ReservationSerNo: tempObj.ReservationSerNo }))\r\n setReservationBlockData(tempObj);\r\n })\r\n }\r\n console.log(\"reservationBlockData >>\", reservationBlockData);\r\n\r\n const getReservationBlockBalanceData = () => {\r\n manageReservationBlockBalanceIndicator(parseInt(blockObj.ClientSerNo), parseInt(blockObj.PropertySerNo), blockObj.BlockSerNo).then(d => {\r\n console.log(\"setTotalBalance >>\", d.data);\r\n setTotalBalance(d.data);\r\n })\r\n }\r\n console.log(\"total Balance >>\", totalBalance);\r\n\r\n const ExportOption = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n ];\r\n\r\n //#region ToolTip\r\n const ConfirmStatusTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n Created By\r\n Mr. Hemang\r\n
    \r\n
    \r\n Date: 15 Dec. 2021\r\n
    \r\n
    Time: 10:20PM
    \r\n
    PC: 192.168.600.789
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n //#endregion\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n {reservationBlockData.BlockName}\r\n
    \r\n
    \r\n
    \r\n \r\n Tentative\r\n \r\n \r\n \r\n { props.OnClose() }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* ADANI - JAN - 2020 */}\r\n {reservationBlockData.BlockCode}\r\n
    \r\n
    \r\n Min Arrival\r\n \r\n {/* Sun, 11 May (4 Nights) */}\r\n {Moment(reservationBlockData.ArrivalDate).format(\"ddd, DD MMM\")} ({reservationBlockData.Nights} Nights)\r\n \r\n
    \r\n
    \r\n {/* 30 Rooms for 120 Room Nights */}\r\n {reservationBlockData.NoOfRooms} Rooms For {reservationBlockData.RoomNights} Room Nights\r\n
    \r\n
    \r\n Cut Off Date\r\n \r\n {/* Mon, 31 Apr (7days) */}\r\n {Moment(reservationBlockData.CutOffDate).format(\"ddd, DD MMM\")} ({reservationBlockData.CutOffDays} Days)\r\n \r\n
    \r\n {/*
    \r\n Arvind Ltd.\r\n \r\n
    */}\r\n \r\n {/*
    Confirmed
    */}\r\n \r\n
    \r\n Block Owner\r\n \r\n {/* Ms. Neha Bhatia */}\r\n {reservationBlockData.UserID}\r\n \r\n
    \r\n
    \r\n Co-Ordinator  \r\n \r\n {/* Mr. Kamlesh Sharma */}\r\n {reservationBlockData.GuestName}\r\n \r\n
    \r\n
    \r\n
    \r\n {/* 4 Nights  Inclusive of all taxes */}\r\n {reservationBlockData.Nights} Night  Inclusive of all taxes\r\n
    \r\n
    \r\n \r\n {/* 3,16,865 */}\r\n {totalBalance.Balance}\r\n
    \r\n {\r\n history.push({\r\n pathname: \"/BlockAtGlance\",\r\n state: { PropertySerNo: blockObj.PropertySerNo, BlockSerNo: blockObj.BlockSerNo, Type: blockObj.Type }\r\n });\r\n }}\r\n >View\r\n
    \r\n
    \r\n
    \r\n
    Reservation
    \r\n {/*
    \r\n Booked On\r\n 25th Sept (15 Days) \r\n
    */}\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    BILLING
    \r\n \r\n
    \r\n
    \r\n {/* {blockAtTranceOpen ? setBlockAtTranceOpen(false)}> : null} */}\r\n
    \r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnFileUpload,\r\n InnLoader,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnRadioButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnTabs,\r\n InnToastMessage,\r\n InnStatusLabel,\r\n InnTooltip,\r\n InnEditor,\r\n InnPlainButton,\r\n InnPlainTextbox,\r\n //InnTreeView,\r\n InnSingleDateSelection,\r\n InnMultiDateSelection,\r\n InnDateTimeSelection,\r\n InnTimeSelection,\r\n InnPlainTabs,\r\n Tab,\r\n InnDropdownWithRadioButton,\r\n InnButtonTypeWithDropdown,\r\n InnPlainButtonWithDropdown,\r\n InnButtonWithDropdown,\r\n InnCalendar,\r\n //InnConfirmAlert,\r\n InnSingleRadioButton,\r\n} from \"../../../../component\";\r\nimport smsIcon from \"../../../../assets/images/sms-tooltip-icon.svg\";\r\nimport EmailTooltipIcon from \"../../../../assets/images/email-tooltip-icon.svg\";\r\nimport { GetReservationBlockHeaderData, manageReservationBlockBalanceIndicator } from \"../../../../services/reservationService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useLocation, useHistory } from \"react-router-dom\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { IndiCompany, IndiReservationType, IndiBookedOn, IndiCancellationRule, IndiSalesMarketing, IndiDepositeReceived, IndiDepositeRule } from \"../indicators\";\r\nimport Moment from \"moment\";\r\n\r\nexport function BlockTipCancelled(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const history = useHistory();\r\n const location = useLocation();\r\n const [blockObj, setBlockObj] = useState({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n BlockSerNo: parseInt(props.para.BlockSerNo),\r\n ReservationSerNo: 0,\r\n Type: \"Block\"\r\n });\r\n\r\n const [reservationCancelled, setReservationCancelled] = useState({});\r\n const [totalBalance, setTotalBalance] = useState({});\r\n\r\n const loadCancelledReservation = () => {\r\n GetReservationBlockHeaderData(blockObj.ClientSerNo, blockObj.PropertySerNo, blockObj.BlockSerNo).then(d => {\r\n let tempData = d.data;\r\n tempData.ClientSerNo = blockObj.ClientSerNo;\r\n tempData.PropertySerNo = blockObj.PropertySerNo;\r\n tempData.BlockSerNo = blockObj.BlockSerNo;\r\n setReservationCancelled(tempData);\r\n setBlockObj(prev => ({ ...prev, ReservationSerNo: tempData.ReservationSerNo }))\r\n console.log(\"Cancelled Reservation Data : \", tempData)\r\n })\r\n }\r\n\r\n const loadTotalBalance = () => {\r\n manageReservationBlockBalanceIndicator(parseInt(blockObj.ClientSerNo), parseInt(blockObj.PropertySerNo), parseInt(blockObj.BlockSerNo)).then(d => {\r\n setTotalBalance(d.data);\r\n console.log(\"Total Balance: \", d.data);\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n loadCancelledReservation();\r\n loadTotalBalance();\r\n }, []);\r\n const ExportOption = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n ];\r\n\r\n //#region ToolTip\r\n const ConfirmStatusTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n Created By\r\n Mr. Hemang\r\n
    \r\n
    \r\n Date: 15 Dec. 2021\r\n
    \r\n
    Time: 10:20PM
    \r\n
    PC: 192.168.600.789
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n const CompanyTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Arvind Ltd.
    \r\n
    \r\n 9842342434\r\n \r\n SMS\r\n \r\n
    \r\n
    \r\n preetiiyengar@innkeypms.net\r\n \r\n Email\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Edit\r\n {/* \r\n Action\r\n */}\r\n
    \r\n
    \r\n );\r\n };\r\n //#endregion\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {reservationCancelled.BlockName}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Cancelled\r\n \r\n \r\n \r\n {\r\n props.onChange();\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Min Arrival\r\n \r\n {Moment(reservationCancelled.ArrivalDate).format(\"ddd, DD, MMM\")} ({reservationCancelled.Nights} Nights)\r\n \r\n
    \r\n
    \r\n {reservationCancelled.NoOfRooms} Rooms for {reservationCancelled.RoomNights} Room Nights\r\n
    \r\n \r\n \r\n
    \r\n Block Owner\r\n \r\n {reservationCancelled.UserID}\r\n \r\n
    \r\n
    \r\n Co-Ordinator\r\n {reservationCancelled.GuestName}\r\n
    \r\n
    \r\n
    \r\n {reservationCancelled.Nights} Nights  Inclusive of all taxes\r\n
    \r\n
    \r\n {totalBalance.Balance}\r\n
    \r\n {\r\n history.push({\r\n pathname: \"/BlockAtGlance\",\r\n state: { propertySerNo: blockObj.PropertySerNo, BlockSerNo: blockObj.BlockSerNo },\r\n })\r\n }}\r\n >View\r\n
    \r\n
    \r\n
    \r\n
    Reservation
    \r\n
    \r\n Cancelled By\r\n \r\n Vijay\r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    BILLING
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n )\r\n}","import React, { useState } from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnFileUpload,\r\n InnLoader,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnRadioButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnTabs,\r\n InnToastMessage,\r\n InnStatusLabel,\r\n InnTooltip,\r\n InnEditor,\r\n InnPlainButton,\r\n InnPlainTextbox,\r\n //InnTreeView,\r\n InnSingleDateSelection,\r\n InnMultiDateSelection,\r\n InnDateTimeSelection,\r\n InnTimeSelection,\r\n InnPlainTabs,\r\n Tab,\r\n InnDropdownWithRadioButton,\r\n InnButtonTypeWithDropdown,\r\n InnPlainButtonWithDropdown,\r\n InnButtonWithDropdown,\r\n InnCalendar,\r\n //InnConfirmAlert,\r\n InnSingleRadioButton,\r\n} from \"../../../../component\";\r\nimport {\r\n IndiInclusion,\r\n IndiCancellationRule,\r\n IndiSalesMarketing,\r\n IndiBillingInstruction,\r\n IndiFnBDiscount,\r\n IndiDepositeRule,\r\n IndiDepositeReceived\r\n} from \"../indicators\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport Moment from \"moment\";\r\nimport { GetReservationBlockHeaderData, manageReservationBlockBalanceIndicator } from \"../../../../services/reservationService\";\r\n\r\nexport function BlockTipConfirmed(props) {\r\n const currUser = useSelector(currentUser);\r\n const history = useHistory();\r\n const [reservationBlockData, setReservationBlockData] = useState({});\r\n const [totalBalance, setTotalBalance] = useState({});\r\n // const BlockSerNo = 9;\r\n console.log(\"Props.Para.BlockSerNo\", props.para.BlockSerNo);\r\n const [blockObj, setBlockObj] = useState({\r\n // ClientSerNo: parseInt(currUser.ClientSerNo),\r\n // PropertySerNo: parseInt(currUser.PropertySerNo),\r\n // ReservationSerNo: location.state.reservationSerNo\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n // BlockSerNo: parseInt(location.state?.BlockSerNo),\r\n BlockSerNo: parseInt(props.para.BlockSerNo),\r\n ReservationSerNo: 0,\r\n Type: \"Block\"\r\n });\r\n\r\n useEffect(() => {\r\n fillReservationBlockData();\r\n }, []);\r\n\r\n useEffect(() => {\r\n getReservationBlockBalanceData();\r\n }, [])\r\n\r\n const fillReservationBlockData = () => {\r\n GetReservationBlockHeaderData(blockObj.ClientSerNo, blockObj.PropertySerNo, blockObj.BlockSerNo).then(d => {\r\n console.log(d.data);\r\n let tempObj = d.data;\r\n tempObj.ClientSerNo = blockObj.ClientSerNo;\r\n tempObj.PropertySerNo = blockObj.PropertySerNo;\r\n tempObj.Type = blockObj.Type;\r\n setBlockObj(prev => ({ ...prev, ReservationSerNo: tempObj.ReservationSerNo }))\r\n setReservationBlockData(tempObj);\r\n })\r\n }\r\n console.log(\"reservationBlockData >>\", reservationBlockData);\r\n\r\n const getReservationBlockBalanceData = () => {\r\n manageReservationBlockBalanceIndicator(parseInt(blockObj.ClientSerNo), parseInt(blockObj.PropertySerNo), blockObj.BlockSerNo).then(d => {\r\n console.log(\"setTotalBalance >>\", d.data);\r\n setTotalBalance(d.data);\r\n })\r\n }\r\n console.log(\"total Balance >>\", totalBalance);\r\n\r\n const ExportOption = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n ];\r\n\r\n //#region ToolTip\r\n const ConfirmStatusTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n Created By\r\n Mr. Hemang\r\n
    \r\n
    \r\n Date: 15 Dec. 2021\r\n
    \r\n
    Time: 10:20PM
    \r\n
    PC: 192.168.600.789
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n //#endregion\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n {reservationBlockData.BlockName}\r\n
    \r\n
    \r\n
    \r\n \r\n Confirm\r\n \r\n \r\n \r\n props.OnClose()}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* ADANI - JAN - 2020 */}\r\n {reservationBlockData.BlockCode}\r\n
    \r\n
    \r\n Min Arrival\r\n \r\n {/* Sun, 11 May (4 Nights) */}\r\n {Moment(reservationBlockData.ArrivalDate).format(\"ddd, DD MMM\")} ({reservationBlockData.Nights} Nights)\r\n \r\n
    \r\n
    \r\n {/* 30 Rooms for 120 Room Nights */}\r\n {reservationBlockData.NoOfRooms} Rooms For {reservationBlockData.RoomNights} Room Nights\r\n
    \r\n
    \r\n Elastic\r\n {reservationBlockData.IsElastic ? \"Yes\" : \"No\"}\r\n
    \r\n
    \r\n Block Owner\r\n {reservationBlockData.UserID}\r\n
    \r\n
    \r\n Co-Ordinator  \r\n {reservationBlockData.GuestName}\r\n
    \r\n
    \r\n {/* Bar Rate with Breakfast */}\r\n {reservationBlockData.RateCodeName}\r\n
    \r\n {/*
    \r\n Inclusions\r\n \r\n (3) \r\n \r\n
    */}\r\n \r\n
    \r\n
    \r\n {/* 4 Nights  Inclusive of all taxes */}\r\n {reservationBlockData.Nights} Night  Inclusive of all taxes\r\n
    \r\n
    \r\n \r\n {/* 3,16,865 */}\r\n {totalBalance.Balance}\r\n
    \r\n {\r\n history.push({\r\n pathname: \"/BlockAtGlance\",\r\n state: { PropertySerNo: blockObj.PropertySerNo, BlockSerNo: blockObj.BlockSerNo, Type: blockObj.Type }\r\n })\r\n }}\r\n >\r\n View\r\n \r\n
    \r\n
    \r\n
    \r\n
    Reservation
    \r\n {/*
    \r\n Cancellation Rule\r\n \r\n
    */}\r\n \r\n {/*
    \r\n Sales & Marketing\r\n \r\n
    */}\r\n \r\n
    \r\n
    \r\n
    BILLING
    \r\n {/*
    \r\n Billing Instruction\r\n \r\n
    */}\r\n \r\n {/*
    \r\n F&B Discount\r\n (3)\r\n
    */}\r\n \r\n {/*
    \r\n Deposit Rule\r\n 12000/22000\r\n
    */}\r\n \r\n {/*
    \r\n Deposit Received\r\n 15,000\r\n
    */}\r\n \r\n
    \r\n
    \r\n
    \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnFileUpload,\r\n InnLoader,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnRadioButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnTabs,\r\n InnToastMessage,\r\n InnStatusLabel,\r\n InnTooltip,\r\n InnEditor,\r\n InnPlainButton,\r\n InnPlainTextbox,\r\n //InnTreeView,\r\n InnSingleDateSelection,\r\n InnMultiDateSelection,\r\n InnDateTimeSelection,\r\n InnTimeSelection,\r\n InnPlainTabs,\r\n Tab,\r\n InnDropdownWithRadioButton,\r\n InnButtonTypeWithDropdown,\r\n InnPlainButtonWithDropdown,\r\n InnButtonWithDropdown,\r\n InnCalendar,\r\n //InnConfirmAlert,\r\n InnSingleRadioButton,\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetReservationBlockHeaderData, manageReservationBlockBalanceIndicator } from \"../../../../services/reservationService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useLocation, useHistory } from \"react-router-dom\";\r\nimport { IndiCompany, IndiReservationType, IndiBookedOn } from \"../indicators\";\r\nimport Moment from \"moment\";\r\n\r\nexport function BlockTipHold(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const history = useHistory();\r\n const location = useLocation();\r\n const [blockObj, setBlockObj] = useState({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n BlockSerNo: parseInt(props.para.BlockSerNo),\r\n ReservationSerNo: 0,\r\n Type: \"Block\"\r\n });\r\n\r\n const [reservationInfoData, setReservationInfoData] = useState({});\r\n const [totalBalance, setTotalBalance] = useState({});\r\n\r\n const reservationData = () => {\r\n GetReservationBlockHeaderData(blockObj.ClientSerNo, blockObj.PropertySerNo, blockObj.BlockSerNo).then(d => {\r\n let tempObj = d.data;\r\n tempObj.ClientSerNo = blockObj.ClientSerNo;\r\n tempObj.PropertySerNo = blockObj.PropertySerNo;\r\n tempObj.Type = blockObj.Type;\r\n setBlockObj(prev => ({ ...prev, ReservationSerNo: tempObj.ReservationSerNo }))\r\n setReservationInfoData(tempObj);\r\n console.log(\"ReservationInfoData :\", tempObj);\r\n })\r\n }\r\n const getReservationBlockBalanceData = () => {\r\n console.log(blockObj)\r\n manageReservationBlockBalanceIndicator(parseInt(blockObj.ClientSerNo), parseInt(blockObj.PropertySerNo), parseInt(blockObj.BlockSerNo)).then(d => {\r\n setTotalBalance(d.data);\r\n console.log(\"BalanceData\", d.data);\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n reservationData();\r\n getReservationBlockBalanceData();\r\n }, []);\r\n\r\n const ExportOption = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n ];\r\n\r\n //#region ToolTip\r\n const ConfirmStatusTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n Created By\r\n Mr. Hemang\r\n
    \r\n
    \r\n Date: 15 Dec. 2021\r\n
    \r\n
    Time: 10:20PM
    \r\n
    PC: 192.168.600.789
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n //#endregion\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {reservationInfoData.BlockName}\r\n {/* adani Conference*/}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Hold\r\n \r\n \r\n \r\n {\r\n props.onChange();\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {reservationInfoData.BlockCode}\r\n
    \r\n
    \r\n Min Arrival\r\n \r\n {Moment(reservationInfoData.ArrivalDate).format(\"ddd, DD MMM\")} ({reservationInfoData.Nights} Nights)\r\n \r\n
    \r\n
    \r\n {reservationInfoData.NoOfRooms} Rooms for {reservationInfoData.RoomNights} Room Nights\r\n
    \r\n
    \r\n Cut Off Date\r\n \r\n {Moment(reservationInfoData.CutOffDate).format(\"ddd, DD MMM\")} ({reservationInfoData.CutOffDays} Days)\r\n \r\n
    \r\n \r\n \r\n
    \r\n Block Owner\r\n {reservationInfoData.UserID}\r\n
    \r\n
    \r\n Co-Ordinator \r\n { reservationInfoData.GuestName}\r\n
    \r\n
    \r\n
    \r\n {reservationInfoData.Nights} Night     Inclusive of all taxes\r\n
    \r\n
    \r\n {totalBalance.Balance}\r\n
    \r\n {\r\n history.push({\r\n pathname: \"/BlockAtGlance\",\r\n state: { propertySerNo: blockObj.PropertySerNo, BlockSerNo: blockObj.BlockSerNo },\r\n });\r\n }}>View\r\n
    \r\n
    \r\n
    \r\n
    Reservation
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnFileUpload,\r\n InnLoader,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnRadioButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnTabs,\r\n InnToastMessage,\r\n InnStatusLabel,\r\n InnTooltip,\r\n InnEditor,\r\n InnPlainButton,\r\n InnPlainTextbox,\r\n //InnTreeView,\r\n InnSingleDateSelection,\r\n InnMultiDateSelection,\r\n InnDateTimeSelection,\r\n InnTimeSelection,\r\n InnPlainTabs,\r\n Tab,\r\n InnDropdownWithRadioButton,\r\n InnButtonTypeWithDropdown,\r\n InnPlainButtonWithDropdown,\r\n InnButtonWithDropdown,\r\n InnCalendar,\r\n //InnConfirmAlert,\r\n InnSingleRadioButton,\r\n} from \"../../../../component\";\r\nimport { GetReservationBlockHeaderData, manageReservationBlockBalanceIndicator } from \"../../../../services/reservationService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useLocation, useHistory } from \"react-router-dom\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport Moment from \"moment\";\r\n\r\nexport function BlockTipLoss(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const location = useLocation();\r\n const history = useHistory();\r\n const [blockObj, setBlockObj] = useState({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n BlockSerNo: parseInt(props.para.BlockSerNo),\r\n ReservationSerNo: 0,\r\n Type: \"Block\"\r\n });\r\n const [reservationLoss, setResrevationLoss] = useState({});\r\n const [totalBalance, setTotalBalance] = useState({});\r\n\r\n const loadReservationLoss = () => {\r\n GetReservationBlockHeaderData(blockObj.ClientSerNo, blockObj.PropertySerNo, blockObj.BlockSerNo).then(d => {\r\n setResrevationLoss(d.data);\r\n console.log(\"Reservation loss: \", d.data);\r\n })\r\n }\r\n\r\n const loadBalance = () => {\r\n manageReservationBlockBalanceIndicator(parseInt(blockObj.ClientSerNo), parseInt(blockObj.PropertySerNo), parseInt(blockObj.BlockSerNo)).then(d => {\r\n setTotalBalance(d.data);\r\n console.log(\"BalanceData\", d.data);\r\n })\r\n }\r\n\r\n useEffect(()=>{\r\n loadReservationLoss();\r\n loadBalance();\r\n },[])\r\n\r\n const ExportOption = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n ];\r\n\r\n //#region ToolTip\r\n const ConfirmStatusTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n Created By\r\n Mr. Hemang\r\n
    \r\n
    \r\n Date: 15 Dec. 2021\r\n
    \r\n
    Time: 10:20PM
    \r\n
    PC: 192.168.600.789
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n //#endregion\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n {reservationLoss.BlockName}\r\n
    \r\n
    \r\n
    \r\n \r\n Loss\r\n \r\n \r\n \r\n {\r\n props.onChange();\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {reservationLoss.BlockCode}\r\n
    \r\n
    \r\n Min Arrival\r\n \r\n {Moment(reservationLoss.ArrivalDate).format(\"dd, DD MMM\")} ({reservationLoss.Nights} Nights)\r\n \r\n
    \r\n
    \r\n {reservationLoss.NoOfRooms} Rooms for {reservationLoss.RoomNights} Room Nights\r\n
    \r\n
    \r\n Block Owner\r\n {reservationLoss.UserID}\r\n
    \r\n
    \r\n
    \r\n {reservationLoss.Nights} Nights  Inclusive of all taxes\r\n
    \r\n
    \r\n {totalBalance.Balance}\r\n
    \r\n {\r\n history.push({\r\n pathname: \"/BlockAtGlance\",\r\n state: {propertySerNo: blockObj.PropertySerNo, BlockSerNo: blockObj.BlockSerNo}, \r\n })\r\n }}\r\n >View\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}","import Moment from \"moment\";\r\nimport React, { useState } from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnFileUpload,\r\n InnLoader,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnRadioButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnTabs,\r\n InnToastMessage,\r\n InnStatusLabel,\r\n InnTooltip,\r\n InnEditor,\r\n InnPlainButton,\r\n InnPlainTextbox,\r\n //InnTreeView,\r\n InnSingleDateSelection,\r\n InnMultiDateSelection,\r\n InnDateTimeSelection,\r\n InnTimeSelection,\r\n InnPlainTabs,\r\n Tab,\r\n InnDropdownWithRadioButton,\r\n InnButtonTypeWithDropdown,\r\n InnPlainButtonWithDropdown,\r\n InnButtonWithDropdown,\r\n InnCalendar,\r\n //InnConfirmAlert,\r\n InnSingleRadioButton,\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { IndiCancellationRule, IndiSalesMarketing, IndiDepositeRule, IndiNoPost } from \"../indicators\";\r\nimport {\r\n GetReservationBlockHeaderData,\r\n manageReservationBlockBalanceIndicator\r\n} from \"../../../../services/reservationService\";\r\n\r\nexport function BlockTipNoShow(props) {\r\n\r\n const ExportOption = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n ];\r\n\r\n const currUser = useSelector(currentUser);\r\n const history = useHistory();\r\n const [reservationBlockData, setReservationBlockData] = useState({});\r\n const [totalBalance, setTotalBalance] = useState({});\r\n // const BlockSerNo = 9;\r\n\r\n const [blockObj, setBlockObj] = useState({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n BlockSerNo: props.para.BlockSerNo,\r\n ReservationSerNo: 0,\r\n Type: \"Block\"\r\n });\r\n\r\n useEffect(() => {\r\n fillReservationBlockData();\r\n getReservationBlockBalanceData();\r\n }, []);\r\n\r\n const fillReservationBlockData = () => {\r\n GetReservationBlockHeaderData(blockObj.ClientSerNo, blockObj.PropertySerNo, blockObj.BlockSerNo).then(d => {\r\n let tempObj = d.data;\r\n tempObj.ClientSerNo = blockObj.ClientSerNo;\r\n tempObj.PropertySerNo = blockObj.PropertySerNo;\r\n tempObj.Type = blockObj.Type;\r\n setBlockObj(prev => ({ ...prev, ReservationSerNo: tempObj.ReservationSerNo }));\r\n setReservationBlockData(tempObj);\r\n })\r\n }\r\n\r\n const getReservationBlockBalanceData = () => {\r\n manageReservationBlockBalanceIndicator(blockObj.ClientSerNo, blockObj.PropertySerNo, blockObj.BlockSerNo).then(d => {\r\n setTotalBalance(d.data);\r\n })\r\n }\r\n\r\n //#region ToolTip\r\n const ConfirmStatusTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n Created By\r\n Mr. Hemang\r\n
    \r\n
    \r\n Date: 15 Dec. 2021\r\n
    \r\n
    Time: 10:20PM
    \r\n
    PC: 192.168.600.789
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n //#endregion\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n {reservationBlockData.BlockName}\r\n
    \r\n
    \r\n
    \r\n \r\n Actualized\r\n \r\n \r\n \r\n { props.OnClose() }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* ADANI - JAN - 2020 */}\r\n {reservationBlockData.BlockCode}\r\n
    \r\n
    \r\n Min Arrival\r\n \r\n {/* Sun, 11 May (4 Nights) */}\r\n {Moment(reservationBlockData.ArrivalDate).format(\"ddd, DD MMM\")} ({reservationBlockData.Nights} Nights)\r\n \r\n
    \r\n
    \r\n {/* 30 Rooms for 120 Room Nights */}\r\n {reservationBlockData.NoOfRooms} Rooms For {reservationBlockData.RoomNights} Room Nights\r\n
    \r\n
    \r\n Block Owner\r\n \r\n {/* Ms. Neha Bhatia */}\r\n {reservationBlockData.UserID}\r\n \r\n
    \r\n
    \r\n Co-Ordinator\r\n \r\n {/* Mr. Kamlesh Sharma */}\r\n {reservationBlockData.GuestName}\r\n \r\n
    \r\n
    \r\n
    \r\n {/* 4 Nights  Inclusive of all taxes */}\r\n {reservationBlockData.Nights} Night  Inclusive of all taxes\r\n
    \r\n
    \r\n \r\n {/* 3,16,865 */}\r\n {totalBalance.Balance}\r\n
    \r\n {\r\n history.push({\r\n pathname: \"/BlockAtGlance\",\r\n state: { PropertySerNo: blockObj.PropertySerNo, BlockSerNo: blockObj.BlockSerNo, Type: blockObj.Type }\r\n })\r\n }}>\r\n View\r\n \r\n
    \r\n
    \r\n
    \r\n
    Reservation
    \r\n {/*
    \r\n No-Show By\r\n 25th Sept (15 Days)\r\n
    */}\r\n \r\n {/*
    \r\n Booked On\r\n 25th Sept (15 Days)\r\n
    */}\r\n \r\n {/*
    \r\n Sales & Marketing\r\n \r\n
    */}\r\n \r\n
    \r\n
    \r\n
    BILLING
    \r\n \r\n
    \r\n
    \r\n
    \r\n )\r\n}","export default __webpack_public_path__ + \"static/media/right-circle-arrow-gray.7f6367dc.svg\";","import React from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnPlainButton,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { GetMasters } from \"../../../../services/generalService\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from 'react-redux';\r\n\r\nexport function Master(props) {\r\n //#region Local variable \r\n const currUser = useSelector(currentUser);\r\n const history = useHistory();\r\n const defaultObj = {\r\n \"Name\": \"\",\r\n \"DisplayName\": \"\"\r\n }\r\n //#endregion\r\n //#region State Variable\r\n const [isActive, setIsActive] = useState(false);\r\n const [masterData, setMasterData] = useState([]);\r\n const [filterMasterData, setFilterMasterData] = useState([]);\r\n const [masterNameObj, setMasterNameObj] = useState(defaultObj)\r\n const [selectedMasterSerNo, setSelectedMasterSerNo] = useState(1)\r\n\r\n //#endregion\r\n //#region useEffect \r\n useEffect(() => {\r\n setIsActive(true);\r\n GetMasters(currUser.CurrentModule, \"M\").then(d => {\r\n setIsActive(false);\r\n setMasterData(d.data);\r\n setFilterMasterData(d.data);\r\n })\r\n\r\n }, [])\r\n\r\n //#endregion\r\n //#region Event\r\n const handleOnSearchChanged = (e) => {\r\n setMasterNameObj(defaultObj);\r\n let filterData = masterData.filter(i => i.DisplayName.toLowerCase().includes(e.toLowerCase()));\r\n setFilterMasterData(filterData);\r\n }\r\n\r\n const handleOnMasterNameClick = (e) => {\r\n let obj = masterData.find(i => i.MasterSerNo == e.target.id);\r\n setMasterNameObj(obj);\r\n setSelectedMasterSerNo(e.target.id)\r\n }\r\n const handleOnNextPageClick = () => {\r\n\r\n history.push(\"/\" + masterNameObj.Name);\r\n }\r\n //#endregion\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Masters

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n listing\r\n
    \r\n
    \r\n
      \r\n
    • Enterprise Administration
    • \r\n
    • Booking Administration
    • \r\n
    • Front Desk Administration
    • \r\n
    • Financial Administration
    • \r\n
    • Housekeeping Administration
    • \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n Enterprise Administration\r\n
    \r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n\r\n Search\r\n\r\n
    \r\n
      \r\n {\r\n filterMasterData.map(d =>\r\n \r\n \r\n {d.DisplayName}\r\n \r\n \r\n )\r\n }\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n View Log\r\n Go to {masterNameObj.DisplayName} \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\n//export default Master;","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnPlainButton,\r\n InnLoader,\r\n} from \"../../../../component\";\r\nimport infoicon from '../../../../assets/images/info-icon-2.svg';\r\nimport { GetBrandMaster, AddEditBrandMaster } from \"../../../../services/generalService\";\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport function BrandMaster(props) {\r\n //#region Local Variable\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"BrandSerNo\": 0,\r\n \"Name\": \"\",\r\n \"Mode\": \"View\"\r\n }\r\n const validationObj = {\r\n \"Name\": \"\"\r\n }\r\n //#endregion\r\n\r\n //#region State Variable \r\n const [brandObj, setBrandObj] = useState(defaultObj);\r\n const [brandData, setBrandData] = useState([]);\r\n const [filterBrandMaster, setFilterBrandMaster] = useState([]);\r\n const [isActive, setIsActive] = useState(false);\r\n const [brandValidation, setBrandValidation] = useState(validationObj);\r\n const [selectedBrandSerNo, setSelectedBrandSerNo] = useState(\"\");\r\n //#endregion\r\n\r\n //#region custom function\r\n const fillBrandMaster = () => {\r\n setIsActive(true);\r\n GetBrandMaster(parseInt(currUser.ClientSerNo)).then((d) => {\r\n setBrandData(d.data);\r\n setFilterBrandMaster(d.data);\r\n setIsActive(false);\r\n console.log(\"brandData >>\", brandData);\r\n console.log(\"filterBrandMaster >>\", filterBrandMaster);\r\n console.log(\"isActive >>\", isActive);\r\n })\r\n }\r\n const clearValidation = () => {\r\n setBrandValidation(validationObj);\r\n }\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (brandObj.Name == \"\") {\r\n isValid = false;\r\n setBrandValidation(prev => ({ ...prev, Name: \"Invalid Input\" }));\r\n }\r\n return isValid;\r\n }\r\n //#endregion\r\n\r\n //#region Events \r\n const handleOnSearchChange = (b) => {\r\n let filterdata = brandData.filter(obj => obj.Name.toLowerCase().includes(b.toLowerCase()));\r\n setFilterBrandMaster(filterdata);\r\n console.log(\"filterdata >>\", filterdata);\r\n console.log(\"filterBrandMaster >>\", filterBrandMaster);\r\n }\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n setIsActive(true);\r\n AddEditBrandMaster(brandObj).then((d) => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n fillBrandMaster();\r\n }\r\n alert(d.data.Message);\r\n })\r\n }\r\n }\r\n const handleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setBrandObj(obj);\r\n }\r\n const handleOnEditClick = () => {\r\n setBrandObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n const handleOnCancelClick = () => {\r\n clearValidation();\r\n if (brandObj.Mode == \"Add\") {\r\n setBrandObj(defaultObj);\r\n }\r\n if (brandObj.Mode == \"Edit\") {\r\n let existingObj = brandData.find(x => x.BrandSerNo == selectedBrandSerNo);\r\n if (existingObj != undefined)\r\n setBrandObj(existingObj);\r\n else\r\n setBrandObj(defaultObj);\r\n }\r\n }\r\n const handleBrandClick = (e) => {\r\n clearValidation();\r\n let obj = brandData.find(x => x.BrandSerNo == e.target.id)\r\n obj.Mode = \"View\";\r\n setBrandObj(obj);\r\n setSelectedBrandSerNo(e.target.id);\r\n }\r\n //#endregion \r\n\r\n //#region UseEffect\r\n useEffect(() => {\r\n fillBrandMaster();\r\n }, []);\r\n //#endregion \r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Brand Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Brand Names
    \r\n
    \r\n
      \r\n {\r\n filterBrandMaster.map(d =>\r\n
    • {d.Name}
    • \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n\r\n {\r\n setBrandObj(prev => ({ ...prev, Name: m }));\r\n if (m == \"\") {\r\n setBrandValidation(prev => ({ ...prev, Name: \"Invalid Name\" }))\r\n }\r\n }} >Name*\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n\r\n Activate { console.log(v); }} >\r\n {\r\n brandObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\n//export default BrandMaster;","import React, { useEffect, useState } from \"react\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnPlainButton,\r\n InnLoader,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n AddEditProfileAddressTypeMaster,\r\n GetProfileAddressTypeMaster,\r\n} from \"../../../../services/generalService\";\r\n\r\nexport function ProfileAddressTypeMaster(props) {\r\n //#region local varibles\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n ProfileAddressTypeSerNo: 0,\r\n Name: \"\",\r\n Mode: \"view\",\r\n };\r\n const validationObj = {\r\n Name: \"\",\r\n };\r\n //#endregion\r\n\r\n //#region state varibles\r\n const [IsLoaderActive, setIsLoaderActive] = useState(true);\r\n const [addressTypeObj, setAddressTypeObj] = useState(defaultObj);\r\n const [addressTypeData, setAddressTypeData] = useState([]);\r\n const [isEdit, setIsEdit] = useState(true);\r\n const [filterProfileAddressTypeMaster, setFilterProfileAddressTypeMaster] =\r\n useState([]);\r\n const [selectedProfileAddressTypeSerNo, setSelectedProfileAddressTypeSerNo] =\r\n useState(null);\r\n const [addressTypeValidation, setAddressTypeValidation] =\r\n useState(validationObj);\r\n const [searchString, setsearchString] = useState(\"\");\r\n //#endregion\r\n //#region custom fuctions\r\n const fillAddressTypeMaster = () => {\r\n GetProfileAddressTypeMaster(parseInt(currUser.ClientSerNo)).then((d) => {\r\n if (d.data.length > 0 && addressTypeObj.ProfileAddressTypeSerNo === 0) {\r\n setAddressTypeObj(d.data[0]);\r\n setSelectedProfileAddressTypeSerNo(d.data[0].ProfileAddressTypeSerNo);\r\n }\r\n setIsLoaderActive(false);\r\n setAddressTypeData(d.data);\r\n setFilterProfileAddressTypeMaster(d.data);\r\n });\r\n setIsEdit(false);\r\n };\r\n const clearValidation = () => {\r\n setAddressTypeValidation(validationObj);\r\n };\r\n //#endregion\r\n\r\n //#region events\r\n\r\n //search Change\r\n const handleOnSearchChange = (e) => {\r\n let filterData = addressTypeData.filter((obj) =>\r\n obj.Name.toLowerCase().includes(e.toLowerCase())\r\n );\r\n setFilterProfileAddressTypeMaster(filterData);\r\n setsearchString(e);\r\n setAddressTypeObj(defaultObj);\r\n setSelectedProfileAddressTypeSerNo(0);\r\n };\r\n\r\n //list Name Click\r\n\r\n const handleProfileAddressNameClick = (e) => {\r\n clearValidation();\r\n setIsEdit(false);\r\n let obj = addressTypeData.find(\r\n (x) => x.ProfileAddressTypeSerNo == e.target.id\r\n );\r\n setAddressTypeObj(obj);\r\n setSelectedProfileAddressTypeSerNo(e.target.id);\r\n };\r\n\r\n //Add Click\r\n const onAddButtonClick = () => {\r\n setIsEdit(true);\r\n let obj = defaultObj;\r\n obj.Mode = \"Add\";\r\n setAddressTypeObj(obj);\r\n };\r\n\r\n //Edit click\r\n const onEditButtonClick = () => {\r\n if (addressTypeObj.ProfileAddressTypeSerNo !== 0) {\r\n setIsEdit(true);\r\n let obj = addressTypeObj;\r\n obj.Mode = \"Edit\";\r\n setAddressTypeObj(obj);\r\n console.log(addressTypeObj);\r\n }\r\n else {\r\n alertFunction(\"Please select profile address type to continue.\");\r\n }\r\n };\r\n\r\n //Save Button click\r\n const onSaveButtonClick = () => {\r\n if (addressTypeObj.Name.trim() == \"\") {\r\n alertFunction(\"Please Provide a valid Name\");\r\n setAddressTypeValidation((prev) => ({\r\n ...prev,\r\n Name: \"Please Provide a valid Name\",\r\n }));\r\n } else {\r\n AddEditProfileAddressTypeMaster(addressTypeObj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n fillAddressTypeMaster();\r\n alertFunction(d.data.Message);\r\n console.log(d.data.ReturnValue);\r\n console.log(d.data);\r\n setIsLoaderActive(true);\r\n if (addressTypeObj.Mode == \"Add\") {\r\n setSelectedProfileAddressTypeSerNo(d.data.ReturnValue);\r\n addressTypeObj.ProfileAddressTypeSerNo = parseInt(\r\n d.data.ReturnValue\r\n );\r\n }\r\n setsearchString(\"\");\r\n }\r\n setIsEdit(false);\r\n clearValidation();\r\n console.log(addressTypeObj);\r\n });\r\n }\r\n };\r\n\r\n //Cancel Click\r\n const onCancelButtonClick = () => {\r\n clearValidation();\r\n setIsEdit(false);\r\n\r\n let existingObj = addressTypeData.find(\r\n (x) => x.ProfileAddressTypeSerNo == selectedProfileAddressTypeSerNo\r\n );\r\n if (existingObj != undefined) setAddressTypeObj(existingObj);\r\n else setAddressTypeObj(defaultObj);\r\n };\r\n //#endregion\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n fillAddressTypeMaster();\r\n }, []);\r\n //#endregion\r\n\r\n const selectdata = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Address Type Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Search\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n Profile Address Types\r\n
    \r\n
    \r\n
      \r\n {filterProfileAddressTypeMaster.map((item, index) => (\r\n \r\n \r\n {item.Name}\r\n \r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\" \"}\r\n {/* disabled-section */}\r\n
    \r\n
    \r\n {\r\n setAddressTypeObj((prev) => ({ ...prev, Name: m }));\r\n if (m == \"\") {\r\n setAddressTypeValidation((prev) => ({\r\n ...prev,\r\n Name: \"Invalid Name\",\r\n }));\r\n } else {\r\n setAddressTypeValidation(validationObj);\r\n }\r\n }}\r\n >\r\n Name\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n \r\n
    \r\n
    \r\n Activate{\" \"}\r\n console.log(v)}>\r\n {isEdit ? (\r\n <>\r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n \r\n ) : (\r\n <>\r\n \r\n Edit\r\n \r\n \r\n Add\r\n \r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\n//export default ProfileAddressTypeMaster;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnLoader,\r\n InnPlainButton\r\n} from \"../../../../component\";\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport {\r\n GetProfileTitleMaster,\r\n AddEditProfileTitleMaster\r\n} from \"../../../../services/generalService\";\r\n\r\nexport function ProfileTitleMaster(props) {\r\n //#region Local Variable\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"TitleSerNo\": 0,\r\n \"Name\": \"\",\r\n \"Mode\": \"View\"\r\n }\r\n const validationObj = {\r\n \"Name\": \"\"\r\n }\r\n //#endregion\r\n //#region State Variable\r\n const [isActive, setIsActive] = useState(false);\r\n const [profileTitleObj, setProfileTitleObj] = useState(defaultObj);\r\n const [profileTitleData, setProfileTitleData] = useState([]);\r\n const [filterProfileTitleData, setFilterProofileTitleData] = useState([]);\r\n const [profileTitleValidation, setProfileTitleValidation] = useState(validationObj);\r\n const [selectedProfileTitleSerNo, setSelectedProfileTitleSerNo] = useState(\"\");\r\n //#endregion\r\n //#region UseEffect\r\n useEffect(() => {\r\n fillProfileTitle();\r\n console.log(\"fillProfileTitle >>\", fillProfileTitle());\r\n fillSelectedProfileTitle(1);\r\n console.log(\"fillSelectedProfileTitle >>\", fillSelectedProfileTitle(1))\r\n }, []);\r\n //#endregion\r\n //#region custom function\r\n const fillSelectedProfileTitle = (TitleSerNo) => {\r\n let obj = profileTitleData.find(e => parseInt(e.TitleSerNo) === parseInt(TitleSerNo))\r\n console.log(\"obj >>\", obj);\r\n if (obj != undefined) {\r\n obj.Mode = \"View\"\r\n setProfileTitleObj(obj);\r\n }\r\n }\r\n const fillProfileTitle = () => {\r\n setIsActive(true);\r\n GetProfileTitleMaster(parseInt(currUser.ClientSerNo)).then(d => {\r\n setProfileTitleData(d.data);\r\n setFilterProofileTitleData(d.data);\r\n setIsActive(false);\r\n })\r\n }\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (profileTitleObj.Name == \"\") {\r\n isValid = false;\r\n setProfileTitleValidation(prev => ({ ...prev, Name: \"Invalid input\" }))\r\n }\r\n return isValid;\r\n }\r\n const clearValidation = () => {\r\n setProfileTitleValidation(validationObj);\r\n }\r\n //#endregion\r\n //#region Events \r\n const handleOnProfileTitleClick = (e) => {\r\n clearValidation();\r\n fillSelectedProfileTitle(e.target.id);\r\n setSelectedProfileTitleSerNo(e.target.id);\r\n }\r\n const handleOnSearchChanged = (v) => {\r\n let filteredType = profileTitleData.filter(obj => obj.Name.toLowerCase().includes(v.toLowerCase()));\r\n setFilterProofileTitleData(filteredType);\r\n }\r\n const handleOnAddClick = () => {\r\n let obj = defaultObj;\r\n obj.Mode = \"Add\";\r\n setProfileTitleObj(obj);\r\n }\r\n const handleOnEditClick = () => {\r\n setProfileTitleObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n setIsActive(true);\r\n profileTitleObj.SequenceNo = parseInt(profileTitleObj.SequenceNo)\r\n AddEditProfileTitleMaster(profileTitleObj).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n fillProfileTitle();\r\n } else {\r\n alert(\"Something went wrong\");\r\n fillSelectedProfileTitle(parseInt(profileTitleObj.TitleSerNo));\r\n }\r\n })\r\n setProfileTitleObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alert(\"One field has an invalid entry. Please verify.\");\r\n }\r\n }\r\n const hanldeOnCancelClick = () => {\r\n clearValidation();\r\n if (profileTitleObj.Mode == \"Add\") {\r\n setProfileTitleObj(defaultObj);\r\n }\r\n if (profileTitleObj.Mode == \"Edit\") {\r\n fillSelectedProfileTitle(selectedProfileTitleSerNo);\r\n }\r\n }\r\n\r\n //#endregion\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Profile Title Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Profile Titles
    \r\n
    \r\n
      \r\n {\r\n filterProfileTitleData.map((d) =>\r\n \r\n \r\n {d.Name}\r\n \r\n \r\n )\r\n }\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n\r\n {\r\n setProfileTitleObj(prev => ({ ...prev, Name: v }));\r\n setProfileTitleValidation(prev => ({ ...prev, Name: \"\" }))\r\n }}\r\n >Name*\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n { console.log(v); }} > Activate\r\n {\r\n profileTitleObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n//export default ProfileTitleMaster;","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnPlainButton,\r\n InnLoader,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetProfileCommunicationTypeMaster, AddEditProfileCommunicationTypeMaster } from \"../../../../services/generalService\";\r\n\r\nexport function ProfileCommunicationTypeMaster(props) {\r\n //#region Local Variable\r\n const curuser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = (Message) => {\r\n confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(curuser.ClientSerNo),\r\n \"CommunicationTypeSerNo\": 0,\r\n \"Name\": \"\",\r\n \"Mode\": \"View\"\r\n }\r\n const validationObj = {\r\n \"Name\": \"\"\r\n }\r\n //#endregion\r\n\r\n //#region State Variable\r\n const [isActive, setIsLoad] = useState(false);\r\n const [profileCommunicationTypeData, setprofileCommunicationTypeData] = useState([]);\r\n const [profileCommunicationTypeObj, setProfileCommunicationTypeObj] = useState(defaultObj);\r\n const [profileCommunicationTypeValidation, setProfileCommunicationTypeValidation] = useState(validationObj);\r\n const [filterProfileCommunicationTypeMaster, setFilterProfileCommunicationTypeMaster] = useState([]);\r\n const [selectedProfileComSerNo, setSelectedProfileComSerNo] = useState(\"\");\r\n //#endregion State Variable \r\n\r\n //#region UseEffect\r\n useEffect(() => {\r\n fillProfileCommunicationTypeMaster();\r\n }, []);\r\n //#region End useeffect\r\n\r\n //#region Custom Functions\r\n const ClearProfileCommunicationTypeValidation = () => {\r\n setProfileCommunicationTypeValidation(validationObj);\r\n }\r\n\r\n const handleOnProfileCommTypeMasterClick = (e) => {\r\n ClearProfileCommunicationTypeValidation();\r\n let obj = profileCommunicationTypeData.find(x => x.CommunicationTypeSerNo == e.target.id)\r\n obj.Mode = \"View\";\r\n setProfileCommunicationTypeObj(obj);\r\n setSelectedProfileComSerNo(e.target.id)\r\n }\r\n\r\n const fillProfileCommunicationTypeMaster = () => {\r\n GetProfileCommunicationTypeMaster(parseInt(curuser.ClientSerNo)).then((d) => {\r\n if (d.data && d.data.length > 0) {\r\n let temp = d.data[0];\r\n temp.Mode = \"View\";\r\n setProfileCommunicationTypeObj(temp);\r\n setSelectedProfileComSerNo(temp.CommunicationTypeSerNo)\r\n }\r\n setIsLoad(false);\r\n setprofileCommunicationTypeData(d.data);\r\n setFilterProfileCommunicationTypeMaster(d.data);\r\n });\r\n }\r\n\r\n const isValidPage = () => {\r\n let isValid = true\r\n if (profileCommunicationTypeObj.Name == \"\" || /[-’/`~!#*$@_%+=,^&(){}[\\]|;.:”<>?\\\\]/g.test(profileCommunicationTypeObj.Name)) {\r\n isValid = false\r\n setProfileCommunicationTypeValidation(prev => ({ ...prev, Name: \"Enter the valid name\" }))\r\n }\r\n return isValid;\r\n }\r\n //#endregion Custom Functions\r\n\r\n //#region Events\r\n const handleOnBtnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n AddEditProfileCommunicationTypeMaster(profileCommunicationTypeObj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n setIsLoad(true);\r\n alertFunction(d.data.Message);\r\n fillProfileCommunicationTypeMaster();\r\n } else {\r\n alertFunction(\"Something Went Wrong\");\r\n }\r\n })\r\n setProfileCommunicationTypeObj(prev => ({ ...prev, Mode: \"View\" }))\r\n } else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n const handleOnBtnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setProfileCommunicationTypeObj(obj);\r\n }\r\n const handleOnBtnEditClick = () => {\r\n if (profileCommunicationTypeObj.Name == \"\") {\r\n alert(\"Select communication.\")\r\n } else {\r\n setProfileCommunicationTypeObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n }\r\n const handleOnBtnCancelClick = () => {\r\n ClearProfileCommunicationTypeValidation();\r\n let ExistObj = profileCommunicationTypeData.find(x => x.CommunicationTypeSerNo == selectedProfileComSerNo);\r\n if (ExistObj != undefined) {\r\n ExistObj.Mode = \"View\";\r\n setProfileCommunicationTypeObj(ExistObj)\r\n }\r\n else\r\n setProfileCommunicationTypeObj(defaultObj);\r\n }\r\n\r\n const handleOnSearchClick = (k) => {\r\n // setProfileCommunicationTypeObj(defaultObj);\r\n let filterObj = profileCommunicationTypeData.filter(x => x.Name.toLowerCase().includes(k.toLowerCase()));\r\n setFilterProfileCommunicationTypeMaster(filterObj);\r\n }\r\n //#endregion Events\r\n\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Profile Communication Type Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Communication Types
    \r\n
    \r\n
      \r\n {\r\n filterProfileCommunicationTypeMaster.map(d =>\r\n
    • \r\n {d.Name}\r\n \r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n {\r\n setProfileCommunicationTypeObj(prev => ({ ...prev, Name: m }));\r\n setProfileCommunicationTypeValidation(prev => ({ ...prev, Name: \"\" }));\r\n }}>Name*\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n Activate console.log(v)} >\r\n {\r\n profileCommunicationTypeObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\n//export default ProfileCommunicationTypeMaster;","import React, { useEffect, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnPlainButton,\r\n InnKeyboard,\r\n InnLoader,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { GetRegionMaster, AddEditRegionMaster } from \"../../../../services/generalService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport function RegionMaster(props) {\r\n\r\n //#region Local Variable\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const defaultObj = {\r\n \"ClientSerNo\": (parseInt(currUser.ClientSerNo)),\r\n \"RegionSerNo\": 0,\r\n \"Name\": \"\",\r\n \"Mode\": \"View\"\r\n }\r\n //#endregion\r\n\r\n //#region State Variable\r\n const [getRegionData, setGetRegionData] = useState([]);\r\n const [regionObj, setRegionObj] = useState(defaultObj);\r\n const [filterRegionMaster, setFilterRegionMaster] = useState([]);\r\n const [isDisabled, setIsDisabled] = useState(true);\r\n const [invalidInput, setInvalidInput] = useState(\"\");\r\n const [selectedRegionSerNo, setSelectedRegionSerNo] = useState(0);\r\n const [searchString, setSearchString] = useState(\"\");\r\n const [isActive, setIsActive] = useState(false);\r\n //#endregion\r\n\r\n //#region Custom Functions\r\n const fillRegionMaster = () => {\r\n setIsActive(true)\r\n GetRegionMaster(parseInt(currUser.ClientSerNo))\r\n .then((d) => {\r\n if (d.data) {\r\n if (d.data.length > 0 && regionObj.RegionSerNo === 0) {\r\n setRegionObj(d.data[0]);\r\n setSelectedRegionSerNo(d.data[0].RegionSerNo);\r\n }\r\n setIsActive(false)\r\n setFilterRegionMaster(d.data);\r\n setGetRegionData(d.data);\r\n }\r\n });\r\n }\r\n //#endregion\r\n\r\n //#region Events\r\n const handleOnSearchChange = (e) => {\r\n if (getRegionData) {\r\n let filterdata = getRegionData.filter(obj => obj.Name.toLowerCase().includes(e.toLowerCase()));\r\n setFilterRegionMaster(filterdata);\r\n setSearchString(e);\r\n }\r\n setRegionObj(defaultObj)\r\n setSelectedRegionSerNo(0)\r\n }\r\n\r\n const handleOnSaveClick = () => {\r\n if (regionObj.Name.trim().length == 0) {\r\n alertFunction(\"Please Provide a valid Name\");\r\n setInvalidInput(\"Please Provide a valid Name\");\r\n }\r\n else if (!(/^[a-zA-Z0-9 -]*$/).test(regionObj.Name)) {\r\n setInvalidInput(\"Invalid Input\");\r\n alertFunction(\"Special characters are not allowed.\");\r\n }\r\n else if (invalidInput != \"\") {\r\n alertFunction(\"Region already exists!\");\r\n }\r\n else {\r\n setIsActive(true);\r\n setIsDisabled(!isDisabled);\r\n setInvalidInput(\"\");\r\n AddEditRegionMaster(regionObj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n fillRegionMaster();\r\n setSearchString(\"\");\r\n setIsActive(false);\r\n }\r\n alertFunction(d.data.Message);\r\n if (regionObj.Mode == \"Add\") {\r\n regionObj.RegionSerNo = parseInt(d.data.ReturnValue);\r\n setSelectedRegionSerNo(d.data.ReturnValue);\r\n }\r\n })\r\n }\r\n }\r\n const handleOnCancelClick = () => {\r\n setInvalidInput(\"\");\r\n setIsDisabled(!isDisabled);\r\n if (getRegionData) {\r\n let editedRegionObj = getRegionData.find(e => e.RegionSerNo == selectedRegionSerNo);\r\n if (editedRegionObj != undefined)\r\n setRegionObj(editedRegionObj);\r\n else\r\n setRegionObj(defaultObj);\r\n }\r\n }\r\n const handleOnEditClick = () => {\r\n if (regionObj.RegionSerNo !== 0 && regionObj.RegionSerNo !== undefined) {\r\n setIsDisabled(!isDisabled);\r\n setRegionObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n else {\r\n alertFunction(\"Please select region to continue.\");\r\n }\r\n }\r\n const handleOnAddClick = () => {\r\n setIsDisabled(!isDisabled);\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setRegionObj(obj);\r\n }\r\n const handleRegionClick = (e) => {\r\n setInvalidInput(\"\");\r\n setIsDisabled(true)\r\n if (getRegionData) {\r\n let obj = getRegionData.find((x) => x.RegionSerNo == e.target.id);\r\n setRegionObj(prev => ({ ...prev, Name: obj.Name, RegionSerNo: obj.RegionSerNo }));\r\n setSelectedRegionSerNo(e.target.id);\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n fillRegionMaster();\r\n }, []);\r\n //#endregion\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Region Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Regions
    \r\n
    \r\n
      \r\n {\r\n filterRegionMaster.map((d, index) =>\r\n \r\n \r\n {d.Name}\r\n \r\n \r\n )\r\n }\r\n
    \r\n
    \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n {\r\n setRegionObj(prev => ({ ...prev, RegionSerNo: e }));\r\n }}\r\n >\r\n Region Code\r\n \r\n {\r\n setRegionObj(prev => ({ ...prev, Name: e }));\r\n if (getRegionData) {\r\n if (getRegionData.find((x) => x.Name === e)) {\r\n setInvalidInput(\"Already Exist\");\r\n }\r\n else {\r\n setInvalidInput(\"\");\r\n }\r\n }\r\n }}\r\n >\r\n Name\r\n \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n\r\n Activate console.log(v)} id=\"1\">\r\n {\r\n isDisabled ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\n// export default RegionMaster;","import React, { useEffect, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n // InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnTimeSelection,\r\n InnLoader,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport {\r\n AddEditDepositRuleDetail,\r\n AddEditDepositRuleMaster,\r\n GetDepositRuleDetail,\r\n GetDepositRuleMaster,\r\n} from \"../../../../services/generalService\";\r\nimport Moment from \"moment\";\r\n// import { InnMultiSelectDropdown } from \"../component/innMultiSelect\";\r\n\r\nexport function DepositRuleMaster(props) {\r\n\r\n\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n //#region local vairables\r\n const currUser = useSelector(currentUser);\r\n const termTypeList = [\r\n { key: \"DF\", value: \"Select\" },\r\n { key: \"FA\", value: \"Fixed Amount\" },\r\n { key: \"PoB\", value: \"% of Booking Value\" },\r\n { key: \"PoFN\", value: \"% of First Night\" },\r\n { key: \"EoN\", value: \"Equal to Number of nights\" },\r\n ];\r\n const termDueList = [\r\n { key: \"DF\", value: \"Select\" },\r\n { key: \"DBA\", value: \"Days Before Arrival\" },\r\n { key: \"DAB\", value: \"Days After Booking\" },\r\n { key: \"OA\", value: \"On Arrival\" },\r\n ];\r\n\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n DepositRuleSerNo: 0,\r\n Name: \"\",\r\n LongDescription: \"\",\r\n Sequence: \"\",\r\n Negotiable: false,\r\n };\r\n const defaultDetailObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n DepositRuleSerNo: 0,\r\n DepositRuleSubSerNo: 0,\r\n DepositTermType: \"DF\",\r\n DepositTermTypeValue: \"\",\r\n DepositTermDue: \"DF\",\r\n Days: \"\",\r\n DaysBeforeArrival: 0,\r\n DaysAfterBooking: 0,\r\n OnArrival: false,\r\n AfterBookingTime: \"1900-01-01 00:00\",\r\n Name: \"\",\r\n Mode: \"view\",\r\n Description: \"\"\r\n };\r\n const validationObj = {\r\n Name: \"\",\r\n LongDescription: \"\",\r\n Sequence: \"\",\r\n Days: \"\",\r\n DepositTermTypeValue: \"\",\r\n };\r\n\r\n //#end region\r\n\r\n //#region state\r\n\r\n const [showDepositTermTypeModal, setShowDepositTermTypeModal] = useState();\r\n const [isEdit, setIsEdit] = useState(true);\r\n const [isPopupEdit, setIsPopupEdit] = useState(true);\r\n const [depositRuleObj, setDepositRuleObj] = useState(defaultObj);\r\n const [depositRuleDetailObj, setDepositRuleDetailObj] =\r\n useState(defaultDetailObj);\r\n const [depositRuleData, setDepositRuleData] = useState([]);\r\n const [depositRuleDetailData, setDepositRuleDetailData] = useState([]);\r\n const [filterDepositRuleMaster, setFilterDepositRuleMaster] = useState([]);\r\n const [filterDepositRuleDetail, setFilterDepositRuleDetail] = useState([]);\r\n const [selectedDepositRuleSerNo, setSelectedDepositRuleSerNo] = useState(0);\r\n const [selectedDepositSubSerNo, setSelectedDepositSubSerNo] = useState(1);\r\n const [depositRuleValidation, setDepositRuleValidation] =\r\n useState(validationObj);\r\n const [searchString, setsearchString] = useState(\"\");\r\n const [showTimePicker, setShowTimePicker] = useState(false);\r\n const [popupSearchString, setPopupSerachString] = useState(\"\");\r\n const [forFirstAdd, setForFirstAdd] = useState(false);\r\n const [IsLoaderActive, setIsLoaderActive] = useState(true);\r\n\r\n //#end region\r\n\r\n //#region API Calls\r\n\r\n const fillDepositRuleMaster = () => {\r\n GetDepositRuleMaster(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo)\r\n ).then((d) => {\r\n setDepositRuleData(d.data);\r\n setFilterDepositRuleMaster(d.data);\r\n if (selectedDepositRuleSerNo === 0 && d.data.length > 0) {\r\n let obj = d.data[0];\r\n setSelectedDepositRuleSerNo(d.data[0].DepositRuleSerNo);\r\n obj.Sequence = obj.Sequence.toString();\r\n setDepositRuleObj(obj);\r\n }\r\n else if (d.data.length === 0) {\r\n setDepositRuleObj(defaultObj);\r\n }\r\n setIsLoaderActive(false);\r\n });\r\n setIsEdit(false);\r\n };\r\n\r\n const fillDepositRuleDetail = () => {\r\n GetDepositRuleDetail(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n selectedDepositRuleSerNo\r\n ).then((d) => {\r\n if (d.data.length == 0) {\r\n setForFirstAdd(true);\r\n } else {\r\n setForFirstAdd(false);\r\n }\r\n setDepositRuleDetailData(d.data);\r\n setFilterDepositRuleDetail(d.data);\r\n if (\r\n depositRuleDetailObj.Mode == \"Edit\" ||\r\n depositRuleDetailObj.Mode == \"Add\"\r\n ) {\r\n let currDetailObj = d.data.find(\r\n (x) =>\r\n x.DepositRuleSubSerNo == depositRuleDetailObj.DepositRuleSubSerNo\r\n );\r\n if (currDetailObj != undefined) {\r\n if (currDetailObj.Name != undefined) {\r\n setDepositRuleDetailObj((prev) => ({\r\n ...prev,\r\n Name: currDetailObj.Name,\r\n }));\r\n }\r\n }\r\n }\r\n });\r\n };\r\n\r\n //#end region\r\n\r\n //#region events\r\n\r\n const clearValidation = () => {\r\n setDepositRuleValidation(validationObj);\r\n };\r\n\r\n const handleOnSearchChange = (e) => {\r\n let filterData = depositRuleData.filter((obj) =>\r\n obj.Name.toLowerCase().includes(e.toLowerCase())\r\n );\r\n setFilterDepositRuleMaster(filterData);\r\n setsearchString(e);\r\n setDepositRuleObj(defaultObj);\r\n setDepositRuleDetailData([]);\r\n setForFirstAdd(true);\r\n setIsEdit(false);\r\n setSelectedDepositRuleSerNo(0); //--added\r\n };\r\n\r\n const handleDepositRuleNameClick = (d) => {\r\n clearValidation();\r\n setIsEdit(false);\r\n let obj = d;\r\n obj.Mode = \"view\";\r\n setDepositRuleObj(obj);\r\n setSelectedDepositRuleSerNo(d.DepositRuleSerNo);\r\n setDepositRuleDetailObj(defaultDetailObj);\r\n };\r\n\r\n const handleOnAddButtonClick = (e) => {\r\n setForFirstAdd(true);\r\n setIsEdit(true);\r\n let obj = defaultObj;\r\n obj.Mode = \"Add\";\r\n setDepositRuleObj(obj);\r\n setDepositRuleDetailData([]);\r\n setSelectedDepositSubSerNo(0);\r\n };\r\n\r\n const handleOnEditButtonClick = (e) => {\r\n if (selectedDepositRuleSerNo !== 0) {\r\n setIsEdit(true);\r\n let obj = depositRuleObj;\r\n obj.Mode = \"Edit\";\r\n obj.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n obj.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n obj.Sequence = obj.Sequence.toString();\r\n setDepositRuleObj(obj);\r\n } else {\r\n alertFunction('No deposit rule selected.');\r\n }\r\n };\r\n\r\n const handleOnSaveButtonClick = (e) => {\r\n let IsValid = true;\r\n if (depositRuleObj.Name.trim().length === 0) {\r\n setDepositRuleValidation((prev) => ({\r\n ...prev,\r\n Name: \"Please provide a valid Name\",\r\n }));\r\n IsValid = false;\r\n } else {\r\n setDepositRuleValidation((prev) => ({\r\n ...prev,\r\n Name: \"\",\r\n }));\r\n }\r\n if (depositRuleObj.LongDescription.trim().length === 0) {\r\n setDepositRuleValidation((prev) => ({\r\n ...prev,\r\n LongDescription: \"Please provide a valid long description\",\r\n }));\r\n IsValid = false;\r\n } else {\r\n setDepositRuleValidation((prev) => ({\r\n ...prev,\r\n LongDescription: \"\",\r\n }));\r\n }\r\n if (\r\n depositRuleObj.Sequence.trim().length === 0 ||\r\n parseInt(depositRuleObj.Sequence) <= 0 ||\r\n isNaN(depositRuleObj.Sequence)) {\r\n setDepositRuleValidation((prev) => ({\r\n ...prev,\r\n Sequence: \"Please provide a valid sequence\",\r\n }));\r\n IsValid = false;\r\n } else {\r\n setDepositRuleValidation((prev) => ({\r\n ...prev,\r\n Sequence: \"\",\r\n }));\r\n }\r\n if (!IsValid) {\r\n alertFunction(\"One or more fields are incorrect please verify accordingly\");\r\n } else {\r\n let apiObj = depositRuleObj;\r\n apiObj.Sequence = parseInt(apiObj.Sequence);\r\n AddEditDepositRuleMaster(apiObj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n if (depositRuleObj.Mode == \"Add\") {\r\n setSelectedDepositRuleSerNo(parseInt(d.data.ReturnValue));\r\n apiObj.DepositRuleSerNo = parseInt(d.data.ReturnValue);\r\n apiObj.Mode = \"view\";\r\n setDepositRuleObj(apiObj);\r\n }\r\n setsearchString(\"\");\r\n setIsEdit(false);\r\n fillDepositRuleMaster();\r\n }\r\n clearValidation();\r\n });\r\n }\r\n };\r\n\r\n const handleOnCancelButtonClick = (e) => {\r\n clearValidation();\r\n setIsEdit(false);\r\n let existingObj = depositRuleData.find(\r\n (x) => x.DepositRuleSerNo == selectedDepositRuleSerNo\r\n );\r\n console.log(existingObj);\r\n if (existingObj != undefined) {\r\n let tempObj = existingObj;\r\n tempObj.Sequence = existingObj.Sequence.toString();\r\n setDepositRuleObj(tempObj);\r\n } else {\r\n setDepositRuleObj(defaultObj);\r\n };\r\n\r\n setsearchString(\"\");\r\n };\r\n\r\n const handleDepositDetailNameClick = (e) => {\r\n clearValidation();\r\n setIsPopupEdit(false);\r\n let obj = e;\r\n obj.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n obj.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n obj.DepositRuleSerNo = parseInt(selectedDepositRuleSerNo);\r\n if (obj.OnArrival == true) {\r\n obj.DepositTermDue = \"OA\";\r\n obj.Days = \"0\";\r\n setShowTimePicker(true);\r\n } else if (obj.DaysBeforeArrival == 0 && obj.OnArrival == false) {\r\n obj.DepositTermDue = \"DAB\";\r\n obj.Days = obj.DaysAfterBooking.toString();\r\n setShowTimePicker(false);\r\n } else {\r\n obj.DepositTermDue = \"DBA\";\r\n obj.Days = obj.DaysBeforeArrival.toString();\r\n setShowTimePicker(false);\r\n }\r\n setDepositRuleDetailObj(obj);\r\n setSelectedDepositSubSerNo(e.DepositRuleSubSerNo);\r\n console.log(\"obj:\", obj);\r\n };\r\n //#end region\r\n\r\n //#region \r\n\r\n const handleOnPopupSearchChange = (e) => {\r\n if (!forFirstAdd) {\r\n let filterData = depositRuleDetailData.filter((obj) =>\r\n obj.Name.toLowerCase().includes(e.toLowerCase())\r\n );\r\n setFilterDepositRuleDetail(filterData);\r\n setPopupSerachString(e);\r\n setDepositRuleDetailObj(defaultDetailObj);\r\n setIsPopupEdit(false);\r\n setSelectedDepositSubSerNo(0); //--added\r\n }\r\n };\r\n\r\n\r\n\r\n /*---------------------------------------------------------- Detail Object Event---------------------------------------------------------*/\r\n\r\n const handleOnPlusButtonClick = (e) => {\r\n if (depositRuleObj.Name == \"\") {\r\n alertFunction(\"No deposit rule selected.\");\r\n } else {\r\n if (depositRuleObj.Mode != \"Add\") {\r\n setShowDepositTermTypeModal(!showDepositTermTypeModal);\r\n setForFirstAdd(true);\r\n let obj = defaultDetailObj;\r\n obj.Mode = \"Add\";\r\n obj.DepositRuleSerNo = depositRuleObj.DepositRuleSerNo;\r\n setDepositRuleDetailObj(obj);\r\n // setIsPopupEdit(true); // change tomorrow.\r\n setShowTimePicker(false);\r\n clearValidation();\r\n setSelectedDepositSubSerNo(1);\r\n }\r\n }\r\n };\r\n\r\n const handleOnPencilButtonClick = (e) => {\r\n if (selectedDepositRuleSerNo === 0) {\r\n alertFunction(\"No deposit rule selected.\");\r\n } else {\r\n setShowDepositTermTypeModal(!showDepositTermTypeModal);\r\n setForFirstAdd(false);\r\n setIsPopupEdit(false);\r\n if (depositRuleDetailData.length > 0) {\r\n let obj = depositRuleDetailData[0];\r\n obj.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n obj.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n obj.DepositRuleSerNo = parseInt(selectedDepositRuleSerNo);\r\n setSelectedDepositSubSerNo(obj.DepositRuleSubSerNo);\r\n if (obj.OnArrival == true) {\r\n obj.DepositTermDue = \"OA\";\r\n setShowTimePicker(true);\r\n } else if (obj.DaysBeforeArrival == 0 && obj.OnArrival == false) {\r\n obj.DepositTermDue = \"DAB\";\r\n obj.Days = obj.DaysAfterBooking.toString();\r\n setShowTimePicker(false);\r\n } else {\r\n obj.DepositTermDue = \"DBA\";\r\n obj.Days = obj.DaysBeforeArrival.toString();\r\n setShowTimePicker(false);\r\n }\r\n //console.log(\"obj from fill\", obj);\r\n setDepositRuleDetailObj(obj);\r\n }\r\n }\r\n };\r\n\r\n const handleOnPopupAddButtonClick = (e) => {\r\n setIsPopupEdit(true);\r\n let obj = defaultDetailObj;\r\n obj.Mode = \"Add\";\r\n obj.DepositRuleSerNo = depositRuleObj.DepositRuleSerNo;\r\n console.log(\"onAdd: \", obj);\r\n setDepositRuleDetailObj(obj);\r\n setShowTimePicker(false);\r\n //setSelectedDepositSubSerNo(1);\r\n clearValidation();\r\n };\r\n\r\n const handleOnPopupEditButtonClick = (e) => {\r\n clearValidation();\r\n if (depositRuleDetailObj.Name == \"\") {\r\n alertFunction(\"No deposit rule detail selected.\");\r\n } else if (forFirstAdd) {\r\n alertFunction(\"Add a deposit rule detail first.\");\r\n } else {\r\n setIsPopupEdit(true);\r\n let obj = depositRuleDetailObj;\r\n obj.Mode = \"Edit\";\r\n obj.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n obj.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n setDepositRuleDetailObj(obj);\r\n }\r\n };\r\n\r\n const handleOnPopupSaveClick = (e) => {\r\n console.log(\"depositruledetailobj\", depositRuleDetailObj);\r\n if (selectedDepositSubSerNo === 0) {\r\n alertFunction(\"No deposit rule detail selected.\");\r\n } else {\r\n if (\r\n depositRuleDetailObj.DepositTermTypeValue.trim().length === 0 ||\r\n isNaN(depositRuleDetailObj.DepositTermTypeValue) ||\r\n isNaN(depositRuleDetailObj.Days) ||\r\n depositRuleDetailObj.Days.trim().length === 0 ||\r\n parseInt(depositRuleDetailObj.DepositTermTypeValue) <= 0\r\n ) {\r\n if (\r\n depositRuleDetailObj.DepositTermTypeValue.trim().length === 0 ||\r\n isNaN(depositRuleDetailObj.DepositTermTypeValue) ||\r\n parseInt(depositRuleDetailObj.DepositTermTypeValue) <= 0\r\n ) {\r\n alertFunction(\"Please enter a number greater than 0 in term value.\");\r\n setDepositRuleValidation((prev) => ({\r\n ...prev,\r\n DepositTermTypeValue: \"Please enter a number.\",\r\n }));\r\n } else if (\r\n isNaN(depositRuleDetailObj.Days) ||\r\n depositRuleDetailObj.Days.trim().length === 0\r\n ) {\r\n alertFunction(\"Please enter a number in days.\");\r\n setDepositRuleValidation((prev) => ({\r\n ...prev,\r\n Days: \"Please enter a number.\",\r\n }));\r\n }\r\n } else {\r\n if (\r\n depositRuleDetailObj.DepositTermTypeValue.trim().length === 0 &&\r\n depositRuleDetailObj.Days.trim().length === 0 &&\r\n depositRuleDetailObj.OnArrival === false &&\r\n depositRuleDetailObj.DepositTermType === \"DF\" &&\r\n depositRuleDetailObj.DepositTermDue === \"DF\"\r\n ) {\r\n console.log(\"object.....\", depositRuleDetailObj);\r\n alertFunction(\"Please Provide a valid Details.\");\r\n } else if (\r\n parseInt(depositRuleDetailObj.Days) < 0 ||\r\n (depositRuleDetailObj.OnArrival === false &&\r\n depositRuleDetailObj.Days.trim().length === 0)\r\n ) {\r\n alertFunction(\"Enter valid number of days.\");\r\n setDepositRuleValidation((prev) => ({\r\n ...prev,\r\n Days: \"Enter a valid number of days\",\r\n }));\r\n } else if (\r\n depositRuleDetailObj.DepositTermTypeValue.trim().length === 0\r\n ) {\r\n alertFunction(\"Enter valid term type value\");\r\n setDepositRuleValidation((prev) => ({\r\n ...prev,\r\n DepositTermTypeValue: \"Enter a valid term type value.\",\r\n }));\r\n } else if (depositRuleDetailObj.DepositTermType === \"DF\") {\r\n alertFunction(\"Enter valid term type.\");\r\n } else if (depositRuleDetailObj.DepositTermDue === \"DF\") {\r\n alertFunction(\"Enter valid term due.\");\r\n } else if (\r\n (depositRuleDetailObj.DepositTermType === \"PoB\" ||\r\n depositRuleDetailObj.DepositTermType === \"PoFN\") &&\r\n parseInt(depositRuleDetailObj.DepositTermTypeValue) > 100\r\n ) {\r\n alertFunction(\"Enter value less than 100.\");\r\n setDepositRuleValidation((prev) => ({\r\n ...prev,\r\n DepositTermTypeValue: \"Enter value less than 100.\",\r\n }));\r\n } else {\r\n AddEditDepositRuleDetail(depositRuleDetailObj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n fillDepositRuleDetail();\r\n if (depositRuleDetailObj.Mode == \"Add\") {\r\n setSelectedDepositSubSerNo(d.data.ReturnValue);\r\n depositRuleDetailObj.DepositRuleSubSerNo = parseInt(\r\n d.data.ReturnValue\r\n );\r\n }\r\n if (depositRuleDetailObj.Mode == \"Edit\") {\r\n console.log(\"Edit Obj: \", depositRuleDetailObj);\r\n }\r\n setPopupSerachString(\"\");\r\n setIsPopupEdit(false);\r\n }\r\n clearValidation();\r\n });\r\n // console.log(\"Detailobj:\", depositRuleDetailObj);\r\n }\r\n }\r\n }\r\n };\r\n const handleOnPopupCancelClick = (e) => {\r\n console.log(depositRuleDetailObj);\r\n if (depositRuleDetailObj.Mode == \"Add\" && forFirstAdd) {\r\n setIsPopupEdit(false);\r\n setDepositRuleDetailObj(defaultDetailObj);\r\n } else {\r\n setIsPopupEdit(false);\r\n let existingObj = depositRuleDetailData.find(\r\n (x) => x.DepositRuleSubSerNo == selectedDepositSubSerNo\r\n );\r\n if (existingObj != undefined) {\r\n if (existingObj.OnArrival == true) {\r\n existingObj.DepositTermDue = \"OA\";\r\n setShowTimePicker(true);\r\n existingObj.Days = 0;\r\n } else if (\r\n existingObj.OnArrival == false &&\r\n existingObj.DaysBeforeArrival == 0\r\n ) {\r\n existingObj.DepositTermDue = \"DAB\";\r\n existingObj.Days = existingObj.DaysAfterBooking;\r\n } else if (\r\n existingObj.DaysAfterBooking == 0 &&\r\n existingObj.OnArrival == false\r\n ) {\r\n existingObj.DepositTermDue = \"DBA\";\r\n existingObj.Days = existingObj.DaysBeforeArrival;\r\n }\r\n }\r\n\r\n if (existingObj != undefined) setDepositRuleDetailObj(existingObj);\r\n else setDepositRuleDetailObj(defaultDetailObj);\r\n }\r\n setPopupSerachString(\"\");\r\n clearValidation();\r\n fillDepositRuleMaster();\r\n };\r\n\r\n /*----------------------------------------------------- Main Object Events ------------------------------------------------------------*/\r\n\r\n\r\n\r\n\r\n\r\n //endregion\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n if (selectedDepositRuleSerNo !== 0) {\r\n fillDepositRuleDetail();\r\n }\r\n }, [selectedDepositRuleSerNo]);\r\n\r\n useEffect(() => {\r\n fillDepositRuleMaster();\r\n }, []);\r\n\r\n //endregion\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Deposit Rule Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Search\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    Deposit Rules
    \r\n
    \r\n
      \r\n {filterDepositRuleMaster.map((d, index) => {\r\n return (\r\n \r\n {\r\n handleDepositRuleNameClick(d);\r\n }}\r\n >\r\n {d.Name}\r\n \r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
    \r\n
    \r\n
    \r\n {\" \"}\r\n {/* disabled-section */}\r\n
    \r\n
    \r\n {\r\n setDepositRuleObj((prev) => ({\r\n ...prev,\r\n Name: m.trim(),\r\n }));\r\n if (m === \"\") {\r\n setDepositRuleValidation((prev) => ({\r\n ...prev,\r\n Name: \"Invalid Name\",\r\n }));\r\n } else {\r\n setDepositRuleValidation(prev => ({ ...prev, Name: \"\" }));\r\n }\r\n }}\r\n // onChange={(v) => console.log(\r\n >\r\n Deposit Rule{\" \"}\r\n \r\n {\r\n setDepositRuleObj((prev) => ({\r\n ...prev,\r\n LongDescription: m.trim(),\r\n }));\r\n }}\r\n >\r\n Long Description{\" \"}\r\n \r\n
    \r\n \r\n Include Additional Package\r\n {\" \"}\r\n console.log(v)}\r\n >\r\n
    \r\n {\r\n setDepositRuleObj((prev) => ({\r\n ...prev,\r\n Sequence: m,\r\n }));\r\n if (\r\n m.trim().length === 0 ||\r\n isNaN(m) ||\r\n parseInt(m) < 0\r\n ) {\r\n setDepositRuleValidation((prev) => ({\r\n ...prev,\r\n Sequence: \"Invalid Sequence No\",\r\n }));\r\n } else {\r\n setDepositRuleValidation((prev) => ({\r\n ...prev,\r\n Sequence: \"\",\r\n }));\r\n }\r\n }}\r\n >\r\n Sequence\r\n \r\n
    \r\n Negotiable\r\n {\r\n setDepositRuleObj((prev) => ({\r\n ...prev,\r\n Negotiable: m,\r\n }));\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Deposit Term Type \r\n \r\n {depositRuleDetailData.length === 0 ? (\r\n \r\n +\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n
    \r\n
      \r\n {depositRuleDetailData.map((item, index) => {\r\n return (\r\n
    • \r\n \r\n {item.Name}\r\n
    • \r\n );\r\n })}\r\n {/*\r\n
    • \r\n 25% of booking value to\r\n be deposited 15 days before arrival{\" \"}\r\n
    • \r\n
    • \r\n 25% of booking value to\r\n be deposited on arrival{\" \"}\r\n
    • \r\n */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n \r\n
    \r\n
    \r\n Activate{\" \"}\r\n console.log(v)} id=\"\">\r\n {/* \r\n setShowDepositTermTypeModal(!showDepositTermTypeModal)\r\n }\r\n >\r\n Add Deposit Term Type\r\n */}\r\n {!isEdit ? (\r\n \r\n \r\n Edit\r\n \r\n \r\n Add\r\n \r\n \r\n ) : (\r\n \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {showDepositTermTypeModal ? (\r\n {\r\n setShowDepositTermTypeModal(!showDepositTermTypeModal);\r\n setPopupSerachString(\"\");\r\n setFilterDepositRuleDetail(depositRuleDetailData);\r\n setIsPopupEdit(false);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Deposit Term Type

    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Search\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n Deposit Term Types\r\n
    \r\n
    \r\n
      \r\n {filterDepositRuleDetail.map((item, index) => {\r\n return (\r\n \r\n {\r\n handleDepositDetailNameClick(item);\r\n }}\r\n >\r\n {item.Name}\r\n \r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n {/* Add Deposit Term */}\r\n
    \r\n\r\n
    \r\n console.log(v)}\r\n >\r\n Deposit Term Description\r\n \r\n
    \r\n setDepositRuleDetailObj((prev) => ({ ...prev, Description: v }))}\r\n >\r\n Description\r\n \r\n
    \r\n
    \r\n {\r\n setDepositRuleDetailObj((prev) => ({\r\n ...prev,\r\n DepositTermType: m.key,\r\n }));\r\n console.log(\"m.key\", m.key);\r\n }}\r\n //onChange={(v) => }\r\n >\r\n
    \r\n {\r\n setDepositRuleDetailObj((prev) => ({\r\n ...prev,\r\n DepositTermTypeValue: m,\r\n }));\r\n if (m.trim().length === 0 || isNaN(m)) {\r\n setDepositRuleValidation((prev) => ({\r\n ...prev,\r\n DepositTermTypeValue: \"Enter type value more than 0.\",\r\n }));\r\n } else clearValidation();\r\n }}\r\n //onChange={(v) => console.log(v)}\r\n >\r\n Deposit Term Value{\" \"}\r\n \r\n
    \r\n {\r\n let d = new Date(\"1-jan-2001 \" + \"00:00\");\r\n setDepositRuleDetailObj((prev) => ({\r\n ...prev,\r\n DepositTermDue: m.key,\r\n }));\r\n if (m.key == \"OA\") {\r\n setShowTimePicker(true);\r\n setDepositRuleDetailObj((prev) => ({\r\n ...prev,\r\n OnArrival: true,\r\n DaysBeforeArrival: 0,\r\n DaysAfterBooking: 0,\r\n Days: \"1\",\r\n // AfterBookingTime:\r\n // Moment(d).format(\"DD-MMM-YYYY HH:mm\"),\r\n }));\r\n } else if (m.key == \"DBA\") {\r\n setShowTimePicker(false);\r\n setDepositRuleDetailObj((prev) => ({\r\n ...prev,\r\n OnArrival: false,\r\n DaysAfterBooking: 0,\r\n DaysBeforeArrival: parseInt(\r\n depositRuleDetailObj.Days\r\n ),\r\n AfterBookingTime:\r\n Moment(d).format(\"DD-MMM-YYYY HH:mm\"),\r\n }));\r\n } else if (m.key == \"DAB\") {\r\n setShowTimePicker(false);\r\n setDepositRuleDetailObj((prev) => ({\r\n ...prev,\r\n OnArrival: false,\r\n DaysBeforeArrival: 0,\r\n DaysAfterBooking: parseInt(depositRuleDetailObj.Days),\r\n AfterBookingTime:\r\n Moment(d).format(\"DD-MMM-YYYY HH:mm\"),\r\n }));\r\n }\r\n }}\r\n >\r\n
    \r\n\r\n {showTimePicker ? (\r\n {\r\n let d = new Date(\"1-jan-2001 \" + m);\r\n setDepositRuleDetailObj((prev) => ({\r\n ...prev,\r\n AfterBookingTime: Moment(d).format(\"DD-MMM-YYYY HH:mm\"),\r\n }));\r\n }}\r\n >\r\n ) : (\r\n {\r\n console.log(\"final Obj:\", depositRuleDetailObj);\r\n setDepositRuleDetailObj((prev) => ({ ...prev, Days: m }));\r\n if (depositRuleDetailObj.DepositTermDue == \"DAB\") {\r\n setDepositRuleDetailObj((prev) => ({\r\n ...prev,\r\n DaysAfterBooking: parseInt(m),\r\n }));\r\n console.log(depositRuleDetailObj);\r\n } else if (\r\n depositRuleDetailObj.DepositTermDue == \"DBA\" &&\r\n m == \"0\"\r\n ) {\r\n setDepositRuleDetailObj((prev) => ({\r\n ...prev,\r\n DaysBeforeArrival: 0,\r\n }));\r\n } else if (depositRuleDetailObj.DepositTermDue == \"DBA\") {\r\n setDepositRuleDetailObj((prev) => ({\r\n ...prev,\r\n DaysBeforeArrival: parseInt(m),\r\n }));\r\n } else if (depositRuleDetailObj.DepositTermDue == \"OA\") {\r\n setDepositRuleDetailObj((prev) => ({\r\n ...prev,\r\n Days: \"1\",\r\n DaysAfterBooking: 0,\r\n DaysBeforeArrival: 0,\r\n }));\r\n }\r\n if (m.trim().length === 0 || isNaN(m)) {\r\n setDepositRuleValidation((prev) => ({\r\n ...prev,\r\n Days: \"Enter a valid number\",\r\n }));\r\n } else {\r\n setDepositRuleValidation(validationObj);\r\n }\r\n }}\r\n //onChange={(v) => console.log(v)}\r\n >\r\n Days\r\n \r\n )}\r\n\r\n
    \r\n {/*Add Deposit Term */}\r\n
    \r\n {!isPopupEdit ? (\r\n \r\n \r\n Edit\r\n \r\n \r\n Add\r\n \r\n \r\n ) : (\r\n \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n \r\n )}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n
    \r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport {\r\n InnTooltip,\r\n InnSwitch,\r\n InnSingleSelectDropdown,\r\n InnTextbox,\r\n InnPlainButton,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnModalPopup,\r\n InnButtonTypeWithDropdown,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport { GetGuestProfileRelationship, GetRelationShipTypeMaster, AddEditGuestRelationship } from \"../../../../services/guestProfileMasterService\";\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useEffect } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { GuestModalPopup } from \"../../reservation/modalPopup/guestModalPopup\";\r\n\r\n\r\nexport function GuestProfileRelationship(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n};\r\n const location = useLocation();\r\n\r\n const objRelationShipList = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n ProfileSerNo: parseInt(props.para.ProfileSerNo),\r\n ProfileRelationSerNo: 0,\r\n RelativeProfileSerNo: 0,\r\n RelationShipTypeSerNo: 0,\r\n OldRelativeProfileSerNo: 0,\r\n OldRelationShipTypeSerNo: 0,\r\n RelationShipName: \"\",\r\n RelativeProfileName: \"\",\r\n IsPrimary: false,\r\n Mode: \"View\"\r\n }\r\n\r\n const Validation = {\r\n ProfileRelationSerNo: 0,\r\n RelativeProfileSerNo: 0,\r\n RelationShipTypeSerNo: 0,\r\n OldRelativeProfileSerNo: 0,\r\n OldRelationShipTypeSerNo: 0,\r\n RelationShipName: \"\",\r\n RelativeProfileName: \"\",\r\n IsPrimary: false,\r\n }\r\n const [showRelationshipModal, setShowRelationshipModal] = useState(false);\r\n const [defaultRealtionShipList, setDefaultRealtionShipList] = useState(objRelationShipList)\r\n const [guestRelationshipList, setGuestRelationshipList] = useState([]);\r\n const [cmbRelationshipType, setCmbRelationshipType] = useState([]);\r\n const [relationshipValidation, setRelationshipValidation] = useState(Validation);\r\n const [isActive, setIsActive] = useState(false);\r\n const [showGuestModal, setShowGuestModal] = useState(false);\r\n\r\n useEffect(() => {\r\n loadRelationshipList();\r\n //loadComboData();\r\n GetRelationShipTypeMaster().then(d => {\r\n let temp = [{key:0, value:\"Select\"}];\r\n d.data.forEach(d =>{\r\n temp.push({key: d.RelationShipTypeSerNo, value: d.RelationShipName});\r\n })\r\n setCmbRelationshipType(temp);\r\n console.log(\"Combo Data\", temp);\r\n });\r\n }, []);\r\n\r\n const clearValidation = () => {\r\n setRelationshipValidation(Validation);\r\n }\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (defaultRealtionShipList.RelationShipTypeSerNo == 0) {\r\n isValid = false;\r\n setRelationshipValidation((prev) => ({...prev, RelationShipTypeSerNo: \"Please Select RelationShip Name\"}));\r\n //alertFunction(\"Please Select Relationship Type\");\r\n }\r\n\r\n else if (defaultRealtionShipList.RelativeProfileSerNo == \"\") {\r\n isValid = false;\r\n setRelationshipValidation((prev) => ({...prev, RelativeProfileSerNo: \"Please Select Profile\"}));\r\n alertFunction(\"Please Select Relative Profile Name\");\r\n }\r\n else {\r\n isValid = true;\r\n clearValidation();\r\n }\r\n return isValid;\r\n }\r\n\r\n const loadRelationshipList = () => {\r\n GetGuestProfileRelationship(parseInt(currUser.ClientSerNo), parseInt(props.para.ProfileSerNo)).then(d => {\r\n setGuestRelationshipList(d.data);\r\n if (d.data != undefined) {\r\n if(d.data.length > 0) {\r\n let tmpRelationship = d.data[0];\r\n tmpRelationship.Mode = \"View\";\r\n setDefaultRealtionShipList(tmpRelationship);\r\n } \r\n } \r\n console.log(\"List Of RelationShip\", d.data);\r\n });\r\n }\r\n\r\n // const loadComboData = () => {\r\n // GetRelationShipTypeMaster().then(d => {\r\n // let temp = [{key:\"0\", value:\"Select\"}];\r\n // d.data.forEach(d =>{\r\n // temp.push({key: d.RelationShipTypeSerNo, value: d.RelationShipName});\r\n // })\r\n // setCmbRelationshipType(d.data);\r\n // console.log(\"Combo Data\", d.data);\r\n // });\r\n // }\r\n\r\n const handleClickRelationShipList = (e) => {\r\n let obj = guestRelationshipList.find(\r\n x => x.ProfileRelationSerNo == e.target.id)\r\n obj.Mode = \"View\";\r\n setDefaultRealtionShipList(obj);\r\n console.log(e.target.id);\r\n }\r\n\r\n const handleSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n setIsActive(true);\r\n defaultRealtionShipList.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n setDefaultRealtionShipList((prev) => ({ ...prev, ClientSerNo: parseInt(currUser.ClientSerNo) }));\r\n AddEditGuestRelationship(defaultRealtionShipList).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n loadRelationshipList();\r\n alertFunction(d.data.Message);\r\n if (d.data.Mode == \"Add\") {\r\n loadRelationshipList();\r\n }\r\n }\r\n else {\r\n alertFunction(\"Something went wrong\");\r\n }\r\n });\r\n setDefaultRealtionShipList(prev => ({ ...prev, Mode: \"View\" }));\r\n clearValidation();\r\n }\r\n }\r\n\r\n const handleEditClick = () => {\r\n if (defaultRealtionShipList == undefined) {\r\n alertFunction(\"No relationship is selected.\");\r\n } \r\n else if (defaultRealtionShipList.ProfileRelationSerNo == undefined) {\r\n alertFunction(\"No relationship is selected.\");\r\n }\r\n else if(defaultRealtionShipList.ProfileRelationSerNo == 0) {\r\n alertFunction(\"No relationship is selected.\");\r\n }\r\n else{\r\n setDefaultRealtionShipList(prev => ({ ...prev, Mode: \"Edit\" }));\r\n console.log(defaultRealtionShipList);\r\n }\r\n }\r\n\r\n const handleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(objRelationShipList));\r\n obj.Mode = \"Add\";\r\n setDefaultRealtionShipList(obj);\r\n clearValidation();\r\n }\r\n\r\n const handleCancelClick = (e) => {\r\n clearValidation();\r\n \r\n let existingObj = guestRelationshipList.find(x => x.ProfileRelationSerNo == defaultRealtionShipList.ProfileRelationSerNo);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setDefaultRealtionShipList(existingObj);\r\n }\r\n else{ \r\n if(defaultRealtionShipList.ProfileRelationSerNo == 0 && guestRelationshipList.length>0){\r\n let tmpRelationship = guestRelationshipList[0]\r\n tmpRelationship.Mode = \"View\";\r\n setDefaultRealtionShipList(tmpRelationship);\r\n }else{\r\n setDefaultRealtionShipList(objRelationShipList);\r\n }\r\n }\r\n \r\n \r\n }\r\n\r\n const selectdata = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n const ActionOption = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n ];\r\n const RelationshipTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {guestRelationshipList.map((d) => (\r\n
    \r\n {d.RelationShipName}\r\n
    \r\n {d.RelativeProfileName}\r\n
    \r\n
    \r\n\r\n ))}\r\n
    \r\n {/*
    \r\n
    \r\n Mr. Kochar\r\n
    \r\n
    */}\r\n
    \r\n
    \r\n setShowRelationshipModal(!showRelationshipModal)}>Edit\r\n \r\n Actions\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n return (\r\n <>\r\n {showRelationshipModal ? (\r\n setShowRelationshipModal(false)}>\r\n
    \r\n
    \r\n
    \r\n

    Relationship

    \r\n
    \r\n
    \r\n {\r\n defaultRealtionShipList.Mode == \"View\" ?\r\n <>\r\n Edit\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n RELATIONSHIP LIST\r\n +\r\n
    \r\n {\r\n guestRelationshipList.map((d) => (\r\n
    {d.RelationShipName}
    \r\n ))\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    relationship
    \r\n
    \r\n {\r\n setDefaultRealtionShipList((prev) => ({ ...prev, RelationShipTypeSerNo: m.key }));\r\n setRelationshipValidation((prev) => ({...prev, RelationShipTypeSerNo: \"\"}))\r\n console.log(\"RelationshipNameCombo>>\", m);\r\n }}\r\n name=\"Single Select\"\r\n label=\"Relationship Type\"\r\n placeholder=\"Select Relationship\"\r\n >\r\n
    \r\n
    \r\n {\r\n if (location.state?.ProfileSerNo != undefined) {\r\n if (location.state.Mode === \"Edit\") {\r\n\r\n if (d) {\r\n setShowGuestModal(!showGuestModal)\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n }\r\n else {\r\n setShowGuestModal(!showGuestModal)\r\n }\r\n }\r\n else {\r\n setShowGuestModal(!showGuestModal)\r\n }\r\n }}\r\n >Profile\r\n setShowGuestModal(!showGuestModal)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Primary\r\n \r\n setDefaultRealtionShipList(prev => ({ ...prev, IsPrimary: v }))\r\n }\r\n id=\"IsPrimary\"\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n \r\n
    \r\n \r\n Relationship\r\n \r\n ({guestRelationshipList.length})\r\n
    \r\n
    \r\n {showGuestModal ? (\r\n setShowGuestModal(false)}\r\n OnSelect={async (v) => {\r\n console.log(\"selected guest \", v);\r\n setDefaultRealtionShipList(prev => ({ ...prev, RelativeProfileSerNo: v.ProfileSerNo, RelativeProfileName: v.GuestName }))\r\n setShowGuestModal(false);\r\n }} >\r\n \r\n ) : null\r\n }\r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnTooltip,\r\n InnSwitch,\r\n InnSingleSelectDropdown,\r\n InnTextbox,\r\n InnPlainButton,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnModalPopup,\r\n InnButtonTypeWithDropdown,\r\n InnTextarea,\r\n InnLoader,\r\n} from \"../../../../component\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport {\r\n GetGuestProfileInternalComment,\r\n AddEditGuestProfileComment,\r\n GetNoteTypeMaster,\r\n} from \"../../../../services/guestProfileMasterService\";\r\nexport function GuestProfileInternalComment(props) {\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n ProfileSerNo: props.para,\r\n NoteSerNo: 0,\r\n Note: \"\",\r\n NoteTypeSerNo: 0,\r\n Title: \"\",\r\n Comment: \"\",\r\n IsGlobal: false,\r\n Mode: \"View\",\r\n };\r\n //console.log(\"Props\",props.para)\r\n const validationObj = {\r\n Title: \"\",\r\n Comment: \"\",\r\n };\r\n const ActionOption = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n ];\r\n const [showInternalCommentModal, setShowInternalCommentModal] = useState(false);\r\n const [guestProfileInternalCommentdata, setGuestProfileInternalCommentdata] = useState([]);\r\n const [noteTypeMasterdata, setNoteTypeMasterdata] = useState([]);\r\n const [noteTypeObj, setNoteTypeObj] = useState(defaultObj);\r\n const [guestProfileValidation, setGuestProfileValidation] = useState(validationObj);\r\n const [isActive, setIsActive] = useState(false);\r\n\r\n //#Start Region NoteTypFill Data \r\n const fillNoteType = () => {\r\n GetNoteTypeMaster().then((d) => {\r\n setNoteTypeMasterdata(d.data);\r\n //console.log(\"NoteType >>\", d.data);\r\n });\r\n };\r\n //End Region\r\n //#Start Region fillInternal Data\r\n const fillInternalComment = () => {\r\n GetGuestProfileInternalComment(\r\n parseInt(currUser.ClientSerNo),\r\n defaultObj.ProfileSerNo\r\n ).then((d) => {\r\n setGuestProfileInternalCommentdata(d.data);\r\n //console.log(\"InternalComment >>\", d.data);\r\n });\r\n };\r\n //End Region\r\n //RegionValidation\r\n const clearValidation = () => {\r\n setGuestProfileValidation(validationObj);\r\n };\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (noteTypeObj.Title == \"\") {\r\n isValid = false;\r\n setGuestProfileValidation((prev) => ({\r\n ...prev,\r\n Title: \"Invalid input\",\r\n }));\r\n }\r\n if (noteTypeObj.Comment == \"\") {\r\n isValid = false;\r\n setGuestProfileValidation((prev) => ({\r\n ...prev,\r\n Comment: \"Invalid input\",\r\n }));\r\n }\r\n return isValid;\r\n };\r\n //End Validation\r\n //Regioin HandleOnType Click\r\n const handleOnNoteTypeClick = (e) => {\r\n clearValidation();\r\n setIsActive(false);\r\n let obj = guestProfileInternalCommentdata.find(\r\n (x) => x.NoteSerNo == e.target.id\r\n );\r\n obj.Mode = \"View\";\r\n setNoteTypeObj(obj);\r\n //setSelectedInternalComment(e.target.id);\r\n //console.log(\"obj1 >>\", obj);\r\n };\r\n //EndRegion\r\n //RegionAdd\r\n const handleOnAddClick = () => {\r\n setIsActive(false);\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setNoteTypeObj(obj);\r\n };\r\n //EndRegion\r\n //RegionEdit\r\n const handleOnEditClick = () => {\r\n if (noteTypeObj.Title == \"\") {\r\n alert(\"Internal Comment is not selected.\");\r\n } else {\r\n setIsActive(false);\r\n setNoteTypeObj((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n };\r\n //EndRegion\r\n //RegionSAve\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n let obj = noteTypeObj;\r\n obj.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n AddEditGuestProfileComment(obj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n //alert(\"Internal Comment Inserted Successfully\");\r\n alert(d.data.Message);\r\n setIsActive(false);\r\n if (noteTypeObj.Mode == \"Add\") {\r\n fillInternalComment(parseInt(d.data.ReturnValue));\r\n }\r\n fillNoteType();\r\n fillInternalComment();\r\n } else {\r\n alert(\"Something went wrong\");\r\n }\r\n });\r\n setNoteTypeObj((prev) => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alert(\r\n \"One or more field has an invalid entry. Please verify accordingly.\"\r\n );\r\n }\r\n };\r\n\r\n //EndRegion\r\n //Region Cancel\r\n const hanldeOnCancelClick = () => {\r\n setIsActive(false);\r\n clearValidation();\r\n setNoteTypeObj((prev) => ({ ...prev, Mode: \"View\" }));\r\n };\r\n //EndRegion\r\n // #region UseEffect\r\n useEffect(() => {\r\n fillNoteType();\r\n fillInternalComment();\r\n }, []);\r\n // #endregion\r\n const InternalCommentTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n {guestProfileInternalCommentdata.map((d) => (\r\n <>\r\n
    \r\n
    {d.Title}
    \r\n
    \r\n
    \r\n
    \r\n Available to All properties : {d.IsGlobal == true ? \"Yes\" : \"No\" }\r\n
    \r\n
    \r\n \r\n ))} \r\n \r\n
    \r\n
    \r\n \r\n setShowInternalCommentModal(!showInternalCommentModal)\r\n }\r\n >\r\n Edit\r\n \r\n handleMultiActionMenu(item)}\r\n >\r\n Actions\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n return (\r\n
    \r\n \r\n {showInternalCommentModal ? (\r\n setShowInternalCommentModal(false)}>\r\n
    \r\n
    \r\n
    \r\n

    Internal Comment

    \r\n
    \r\n
    \r\n {\r\n noteTypeObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Note Type List\r\n \r\n +\r\n \r\n
    \r\n {guestProfileInternalCommentdata.map((d, index) => (\r\n \r\n {d.Title}\r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n ({\r\n key: NoteTypeSerNo,\r\n value: Note,\r\n }))}\r\n disabled={\r\n noteTypeObj.Mode == \"View\"\r\n ? true\r\n : false\r\n }\r\n selectedSerNo={noteTypeObj.NoteTypeSerNo}\r\n name=\"Single Select\"\r\n label=\"Note Type\"\r\n onChange={(item, name) => {\r\n setNoteTypeObj((prev) => ({\r\n ...prev,\r\n NoteTypeSerNo: item.key,\r\n }));\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n setNoteTypeObj((prev) => ({ ...prev, Title: v }));\r\n if (v == \"\") {\r\n setGuestProfileValidation((prev) => ({\r\n ...prev,\r\n Title: \"Enter Title\",\r\n }));\r\n } else {\r\n setGuestProfileValidation(validationObj);\r\n }\r\n }}\r\n >\r\n Title\r\n \r\n
    \r\n
    \r\n {\r\n setNoteTypeObj((prev) => ({\r\n ...prev,\r\n Comment: e,\r\n }));\r\n if (e === \"\") {\r\n setGuestProfileValidation((prev) => ({\r\n ...prev,\r\n Comment: \"Invalid Comment\",\r\n }));\r\n } else {\r\n setGuestProfileValidation(validationObj);\r\n }\r\n }}\r\n >\r\n Comment\r\n \r\n
    \r\n
    \r\n
    \r\n Available to all properties\r\n {\r\n setNoteTypeObj((prev) => ({\r\n ...prev,\r\n IsGlobal: v,\r\n }));\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n {\r\n setGuestProfileInternalCommentdata(data);\r\n setNoteTypeObj((prev) => ({ ...prev, ProfileSerNo: data.Title }));\r\n //setShowInternalCommentModal(false);\r\n }}\r\n direction=\"bottom\"\r\n >\r\n
    \r\n \r\n Internal Comment\r\n \r\n ({guestProfileInternalCommentdata.length})\r\n
    \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnTooltip,\r\n InnSwitch,\r\n InnSingleSelectDropdown,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnModalPopup,\r\n InnButtonTypeWithDropdown,\r\n InnSingleDateSelection,\r\n} from \"../../../../component\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport Moment from \"moment\";\r\nimport {\r\n GetCountryMaster,\r\n EditGuestProfileCorrespondence,\r\n GetGuestProfileCorrespondence\r\n} from \"../../../../services/guestProfileMasterService\";\r\nexport function GuestProfileCorresPrivacy(props) {\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = \r\n {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n ProfileSerNo: props.para,\r\n NationalityCountrySerNo: 1,\r\n DOB: Moment(new Date()).format(\"DD-MMM-YYYY\"),\r\n DOA: Moment(new Date()).format(\"DD-MMM-YYYY\"),\r\n BloodGroup: \"\",\r\n IsAllowPromotionalMail: false,\r\n IsContactViaPhone: false,\r\n IsContactViaTextMsg: false,\r\n IsAutoEnroll: false,\r\n IsMarried: false,\r\n CountrySerNo: 1,\r\n Name: \"\",\r\n Nationality: \"\"\r\n }\r\n const bloodGroupList = [ \r\n { key: \"A+\", value: \"A+ Positive\" },\r\n { key: \"A-\", value: \"A- Negative\" },\r\n { key: \"B+\", value: \"B+ Positive\" },\r\n { key: \"B-\", value: \"B- Negative\" },\r\n { key: \"O+\", value: \"O+ Positive\" },\r\n { key: \"O-\", value: \"O- Negative\" },\r\n { key: \"AB+\", value: \"AB+ Positive\" },\r\n { key: \"AB-\", value: \"AB- Negative\" },\r\n ];\r\n const ActionOption = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n ];\r\n const [showCorrespondenceModal, setShowCorrespondenceModal] = useState(false);\r\n const [countryData,setCountrydata] = useState([]);\r\n const [correspondenceObj,setCorrespondenceObj] = useState(defaultObj);\r\n const [isDisabled, setIsDisabled] = useState(false);\r\n //#Start Region NationalityFill Data\r\n const fillGetCountryMaster = () => {\r\n GetCountryMaster(\r\n parseInt(currUser.ClientSerNo)\r\n ).then((d) => {\r\n setCountrydata(d.data);\r\n //console.log(\"Country data >>\", d.data);\r\n });\r\n };\r\n //#End Region\r\n //#Start Region fillInternal Data\r\n const fillProfileCorrespondence = () => {\r\n GetGuestProfileCorrespondence(\r\n parseInt(currUser.ClientSerNo),\r\n defaultObj.ProfileSerNo\r\n ).then((d) => {\r\n setCorrespondenceObj(d.data);\r\n //console.log(\"fillProfileCorrespondence >>\", d.data);\r\n });\r\n };\r\n //console.log(\"Con\",countryData)\r\n //End Region\r\n const hanldeOnCancelClick = () => {\r\n setShowCorrespondenceModal(false)\r\n }\r\n //Regioin handleOnSaveClick\r\n const handleOnSaveClick = () => {\r\n let obj = correspondenceObj;\r\n obj.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n EditGuestProfileCorrespondence(obj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);{\r\n fillGetCountryMaster();\r\n }\r\n } else {\r\n alert(\"Something went wrong\");\r\n }});\r\n };\r\n //EndRegion\r\n // #region UseEffect\r\n useEffect(() => {\r\n fillGetCountryMaster();\r\n fillProfileCorrespondence();\r\n }, []);\r\n // #endregion\r\n \r\n const CorrespondenceTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n <>\r\n
    \r\n \r\n
    {countryData.find((x)=> x.CountrySerNo == correspondenceObj.NationalityCountrySerNo)?.Nationality}
    \r\n
    \r\n
    \r\n
    Birth Date : {correspondenceObj.DOA}
    \r\n
    Blood Group : {correspondenceObj.BloodGroup}
    \r\n
    Include in Promotional Mailings : {correspondenceObj.IsAllowPromotionalMail == true ? \"Yes\" : \"No\"}
    \r\n
    Allow contact via phone : {correspondenceObj.IsContactViaPhone == true ? \"Yes\" : \"No\"}
    \r\n
    Allow contact via Text Message : {correspondenceObj.IsContactViaTextMsg == true ? \"Yes\" : \"No\"}
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n setShowCorrespondenceModal(!showCorrespondenceModal)}>Edit\r\n \r\n Actions\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n return (\r\n <>\r\n {showCorrespondenceModal ? (\r\n setShowCorrespondenceModal(false)}>\r\n
    \r\n
    \r\n
    \r\n

    Correspondence and Privacy

    \r\n
    \r\n
    \r\n Cancel\r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ({\r\n key: CountrySerNo,\r\n value:Name\r\n }))}\r\n selectedSerNo={correspondenceObj.NationalityCountrySerNo}\r\n disabled={isDisabled}\r\n name=\"Single Select\"\r\n label=\"Nationality\"\r\n searchable = {[\"Search for Country\",\"No Matching Country\"]}\r\n onChange={(m) => {\r\n setCorrespondenceObj((prev) => ({\r\n ...prev,\r\n NationalityCountrySerNo: m.key,\r\n Nationality:m.value\r\n }));\r\n //console.log(\"m.key\", m.key);\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n //console.log(v);\r\n setCorrespondenceObj((prev) => ({\r\n ...prev,\r\n DOB: Moment(v).format(\"DD-MMM-YYYY\"),\r\n }));\r\n }}\r\n placeholder=\"Date\"\r\n selected={correspondenceObj.DOB}\r\n disabled={isDisabled}\r\n calendarStartDay={1}\r\n label=\"Birth Date\">\r\n
    \r\n
    \r\n {\r\n //console.log(v);\r\n setCorrespondenceObj((prev) => ({\r\n ...prev,\r\n DOA: Moment(v).format(\"DD-MMM-YYYY\"),\r\n }));\r\n }}\r\n placeholder=\"Date\"\r\n selected={correspondenceObj.DOA}\r\n disabled={isDisabled}\r\n calendarStartDay={1}\r\n label=\"Anniversary Date\">\r\n
    \r\n
    \r\n {\r\n setCorrespondenceObj((prev) => ({\r\n ...prev,\r\n BloodGroup: m.key,\r\n }));\r\n //console.log(\"m.key\", m.key);\r\n }}\r\n //onChange={(item, name) => console.log(item, name)}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Include in Promotional Mailings\r\n {\r\n setCorrespondenceObj((prev) => ({\r\n ...prev,\r\n IsAllowPromotionalMail: m,\r\n }));\r\n //console.log(\"hey\", correspondenceObj);\r\n }}\r\n id=\"correspondence1\" \r\n value={correspondenceObj.IsAllowPromotionalMail}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n Allow contact via phone\r\n {\r\n setCorrespondenceObj((prev) => ({\r\n ...prev,\r\n IsContactViaPhone: m,\r\n }));\r\n }}\r\n id=\"correspondence2\" \r\n value={correspondenceObj.IsContactViaPhone}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n Allow contact via Text Message\r\n {\r\n setCorrespondenceObj((prev) => ({\r\n ...prev,\r\n IsContactViaTextMsg: m,\r\n }));\r\n }}\r\n id=\"correspondence3\"\r\n value={correspondenceObj.IsContactViaTextMsg}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n Enroll Automatically\r\n {\r\n setCorrespondenceObj((prev) => ({\r\n ...prev,\r\n IsAutoEnroll: m,\r\n }));\r\n }}\r\n id=\"correspondence4\" \r\n value={correspondenceObj.IsAutoEnroll}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n Married\r\n {\r\n setCorrespondenceObj((prev) => ({\r\n ...prev,\r\n IsMarried: m,\r\n }));\r\n }}\r\n id=\"correspondence5\" \r\n value={correspondenceObj.IsMarried}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n \r\n
    \r\n \r\n Correspondence and Privacy\r\n \r\n ({countryData.find((x)=> x.CountrySerNo == correspondenceObj.NationalityCountrySerNo)?.Nationality == undefined ? \"0\" : \"1\"})\r\n
    \r\n
    \r\n \r\n );\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport closeIcon from \"../../../../assets/images/model-cls-btn.png\";\r\nimport {\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnCheckbox,\r\n InnLoader,\r\n} from \"../../../../component\";\r\nimport {\r\n AddEditReservationSpecial,\r\n AddProfileSpecial,\r\n GetProfileSpecial,\r\n GetSpecialMaster,\r\n} from \"../../../../services/reservationService\";\r\n\r\nexport function SpecialFeatureModal(props) {\r\n const [specialData, setSpecialData] = useState([]);\r\n const [specialGroupData, setSpecialGroupData] = useState([]);\r\n const [selectedGroup, setSelectedGroup] = useState({});\r\n const [isShowSelected, setIsShowSelected] = useState(false);\r\n const [selectedCount, setSelectedCount] = useState(0);\r\n\r\n //Specials Confirm popup hide show varible start\r\n const [showRoomSpecialConfirmPopupShow, setRoomSpecialConfirmPopupShow] =\r\n useState(false);\r\n //Specials Confirm popup hide show varible end\r\n\r\n const [SpecialAddData, setSpecialAddData] = useState([]);\r\n const [SpecialRemovedData, setSpecialRemovedData] = useState([]);\r\n const [checkedItemGroupWise, setcheckedItemGroupWise] = useState([]);\r\n\r\n const fillSpecial = () => {\r\n GetSpecialMaster(parseInt(props.para.ClientSerNo), parseInt(props.para.PropertySerNo)).then(\r\n (d) => {\r\n let tempSpecialData = d.data\r\n if (props.para.ParentPageName == \"GuestProfileMaster\") {\r\n GetProfileSpecial(parseInt(props.para.ClientSerNo), parseInt(props.para.ParentSerNo)).then((v) => {\r\n if (v.data.length > 0) {\r\n tempSpecialData.map((d) => {\r\n d.ClientSerNo = parseInt(props.para.ClientSerNo)\r\n d.PropertySerNo = parseInt(props.para.PropertySerNo)\r\n d.ProfileSerNo = parseInt(props.para.ParentSerNo)\r\n d.checked = false;\r\n v.data.map((e) => {\r\n if (e.SpecialSerNo == d.SpecialSerNo) {\r\n d.checked = true\r\n }\r\n })\r\n })\r\n console.log(\"special \", tempSpecialData);\r\n }\r\n setSpecialData(tempSpecialData);\r\n });\r\n }\r\n else {\r\n setSpecialData(tempSpecialData);\r\n }\r\n const result = [];\r\n const map = new Map();\r\n for (const item of d.data) {\r\n if (!map.has(item.SpecialGroupSerNo)) {\r\n map.set(item.SpecialGroupSerNo, true); // set any value to Map\r\n result.push({\r\n SpecialGroupSerNo: item.SpecialGroupSerNo,\r\n GroupName: item.GroupName,\r\n });\r\n }\r\n }\r\n console.log(result);\r\n setSpecialGroupData(result);\r\n // d.data.map((d) => {\r\n // d.checked = false;\r\n // if (props.para.Specials) {\r\n // console.log(\"heyyy\");\r\n // props.para.Specials.map((d2) => {\r\n // if (d.SpecialSerNo == d2.SpecialSerNo) {\r\n // d.checked = true;\r\n // d.ClientSerNo = parseInt(props.para.ClientSerNo);\r\n // d.PropertySerNo = parseInt(props.para.PropertySerNo);\r\n // d.ProfileSerNo = props.para.ParentSerNo;\r\n // }\r\n // });\r\n // }\r\n // });\r\n }\r\n );\r\n };\r\n\r\n const handleOnchecked = (e) => {\r\n if (e.target.id) {\r\n let obj = specialData.find((x) => x.SpecialSerNo == e.target.id);\r\n if (obj != undefined) {\r\n obj.ClientSerNo = parseInt(props.para.ClientSerNo);\r\n obj.PropertySerNo = parseInt(props.para.PropertySerNo);\r\n obj.ProfileSerNo = parseInt(props.para.ParentSerNo);\r\n let tempSpecial = [...specialData];\r\n tempSpecial\r\n .filter((x) => x.SpecialSerNo == e.target.id)\r\n .map((v) => {\r\n v.checked = !v.checked;\r\n });\r\n setSpecialData(tempSpecial);\r\n }\r\n }\r\n };\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n };\r\n\r\n const handleGroupClick = (e) => {\r\n if (e.target.id) {\r\n let obj = specialGroupData.find(\r\n ({ SpecialGroupSerNo }) => SpecialGroupSerNo == e.target.id\r\n );\r\n setSelectedGroup(obj);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (props.para != undefined) {\r\n fillSpecial();\r\n }\r\n // fillProfileSpecial();\r\n }, []);\r\n\r\n useEffect(() => {\r\n let cnt = 0;\r\n if (isShowSelected) {\r\n let data = groupByKey(\r\n specialData.filter((f) => f.checked == true),\r\n \"GroupName\"\r\n );\r\n console.log(data);\r\n setcheckedItemGroupWise(data);\r\n cnt = specialData.filter((x) => x.checked == true).length;\r\n } else {\r\n cnt = specialData.filter(\r\n (x) =>\r\n x.checked == true &&\r\n x.SpecialGroupSerNo == selectedGroup.SpecialGroupSerNo\r\n ).length;\r\n }\r\n setSelectedCount(cnt);\r\n }, [specialData, isShowSelected, selectedGroup]);\r\n\r\n const handleReset = () => {\r\n let tempSpecial = [...specialData];\r\n tempSpecial.map((d) => {\r\n d.checked = false;\r\n });\r\n setSpecialData(tempSpecial);\r\n setSelectedGroup({});\r\n setIsShowSelected(false);\r\n setSelectedCount(0);\r\n };\r\n\r\n const handleOnApply = () => {\r\n let result = specialData.filter((x) => x.checked == true);\r\n console.log(\"Final Obj\", result);\r\n if (props.para.ParentPageName == \"GuestProfileMaster\") {\r\n AddProfileSpecial(result).then((response) => {\r\n alert(response.data.Message);\r\n })\r\n }\r\n if (props.handleOnclose == undefined) {\r\n console.log(\"handleOnclose is not defined\")\r\n }\r\n else {\r\n props.handleOnclose()\r\n }\r\n };\r\n\r\n const fillProfileSpecial = () => {\r\n let result = specialData.filter((x) => x.checked == true);\r\n console.log(result);\r\n setSpecialAddData(result);\r\n GetProfileSpecial(parseInt(props.para.ClientSerNo), parseInt(props.para.ParentSerNo)).then(\r\n (response) => {\r\n let newAddedData = JSON.parse(JSON.stringify(result));\r\n let newRemoveData = [];\r\n response.data.forEach((ele) => {\r\n let tempEle = result.find((x) => x.SpecialSerNo == ele.SpecialSerNo);\r\n\r\n if (tempEle == undefined) {\r\n newRemoveData.push(ele);\r\n }\r\n });\r\n console.log(\"del\", newRemoveData);\r\n console.log(\"add\", newAddedData);\r\n setSpecialAddData(newAddedData);\r\n setSpecialRemovedData(newRemoveData);\r\n })\r\n };\r\n\r\n //update profile button click event start\r\n const handleUpdate = () => {\r\n let result = specialData.filter((x) => x.checked == true);\r\n console.log(result);\r\n if (props.para.Mode == \"Add\") {\r\n if (props.handleOnSelection == undefined) {\r\n console.log(\"handleOnSelection is not defined\");\r\n } else {\r\n props.handleOnSelection(result);\r\n }\r\n }\r\n else if (props.para.Mode == \"Edit\") {\r\n if (props.handleOnSelection == undefined) {\r\n console.log(\"handleOnSelection is not defined\");\r\n } else {\r\n props.handleOnSelection(result);\r\n }\r\n AddEditReservationSpecial(result).then((response) => {\r\n alert(response.data.Message);\r\n });\r\n\r\n AddProfileSpecial(result).then((response) => {\r\n alert(response.data.Message);\r\n });\r\n } else {\r\n console.log(\"mode is not defined\");\r\n }\r\n };\r\n //update profile button click event\r\n\r\n //handle don't update button click event start\r\n const handleDonotUpdate = () => {\r\n setRoomSpecialConfirmPopupShow(false);\r\n let result = specialData.filter((x) => x.checked == true);\r\n console.log(result);\r\n if (props.para.Mode == \"Add\") {\r\n if (props.handleOnSelection == undefined) {\r\n console.log(\"handleOnSelection is not defined\");\r\n } else {\r\n props.handleOnSelection(result);\r\n }\r\n } else if (props.para.Mode == \"Edit\") {\r\n if (props.handleOnSelection == undefined) {\r\n console.log(\"handleOnSelection is not defined\");\r\n } else {\r\n props.handleOnSelection(result);\r\n }\r\n // AddEditReservationSpecial(result).then((response) => {\r\n // alert(response.data.Message);\r\n // });\r\n }\r\n // handleOnclose();\r\n };\r\n //handle don't update button click event end\r\n\r\n //handle All checked event start\r\n const handleAllChecekd = (ischecked) => {\r\n if (ischecked == true) {\r\n } else {\r\n let temp = [...SpecialRemovedData];\r\n SpecialAddData.map((c) => {\r\n c.checked = false;\r\n //c.ProfileSerNo = props.para.ProfileSerNo;\r\n temp.push(c);\r\n });\r\n setSpecialRemovedData(temp);\r\n setSpecialAddData([]);\r\n }\r\n };\r\n //handle All checked event end\r\n\r\n //handle All checked removed event start\r\n const handleAllChecekdRemoved = (ischecked) => {\r\n if (ischecked) {\r\n let temp = [...SpecialAddData];\r\n SpecialRemovedData.map((c) => {\r\n c.checked = true;\r\n //c.ProfileSerNo = props.para.ProfileSerNo;\r\n temp.push(c);\r\n });\r\n setSpecialAddData(temp);\r\n setSpecialRemovedData([]);\r\n } else {\r\n }\r\n };\r\n //handle All checked removed event end\r\n\r\n //Profile checked and unchecked event start\r\n const handleProfileChecked = (e) => {\r\n if (e.target.checked) {\r\n let checkeddata = SpecialRemovedData.find(\r\n (x) => x.SpecialSerNo == e.target.id\r\n );\r\n let temp = [...SpecialAddData];\r\n temp.push(checkeddata);\r\n setSpecialAddData(temp);\r\n\r\n let uncheckeddata = SpecialRemovedData.filter(\r\n (x) => x.SpecialSerNo != e.target.id\r\n );\r\n setSpecialRemovedData(uncheckeddata);\r\n } else {\r\n let uncheckeddata = SpecialAddData.find(\r\n (x) => x.SpecialSerNo == e.target.id\r\n );\r\n\r\n if (SpecialRemovedData) {\r\n let temp = [...SpecialRemovedData];\r\n temp.push(uncheckeddata);\r\n setSpecialRemovedData(temp);\r\n }\r\n\r\n let checkeddata = SpecialAddData.filter(\r\n (x) => x.SpecialSerNo != e.target.id\r\n );\r\n\r\n setSpecialAddData(checkeddata);\r\n }\r\n };\r\n //Profile checked and unchecked event end\r\n\r\n //For Group By data Function Start\r\n const groupByKey = (array, key) => {\r\n return array.reduce((hash, obj) => {\r\n console.log(hash);\r\n console.log(obj);\r\n if (obj[key] === undefined) return hash;\r\n return Object.assign(hash, {\r\n [obj[key]]: (hash[obj[key]] || []).concat(obj),\r\n });\r\n }, []);\r\n };\r\n //For Group By data function end\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    Specials

    \r\n
    \r\n
    \r\n Reset\r\n setRoomSpecialConfirmPopupShow(true)}\r\n onClick={handleOnApply}\r\n >\r\n Save\r\n {\" \"}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      Confirmation No.
      \r\n
      \r\n {props.para.BookingNo}\r\n
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      \r\n {props.para.GuestName}\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setIsShowSelected(ischecked);\r\n }}\r\n className=\"mrgn-tp10\"\r\n >\r\n Show Selected ({selectedCount})\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {specialGroupData.map((d) => (\r\n \r\n {d.GroupName}\r\n {/* News Paper (3) */}\r\n \r\n \r\n x.checked == true &&\r\n x.SpecialGroupSerNo == d.SpecialGroupSerNo\r\n ).length > 0\r\n ? \"has-preferences\"\r\n : \"\"\r\n }\r\n id={d.SpecialGroupSerNo}\r\n >\r\n \r\n \r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {isShowSelected ? (\r\n
    \r\n {Object.keys(checkedItemGroupWise).map((GroupName) => (\r\n
    \r\n
    \r\n {GroupName}\r\n
    \r\n {checkedItemGroupWise[GroupName].map((item) => (\r\n \r\n {item.Name}\r\n \r\n ))}\r\n
    \r\n ))}\r\n
    \r\n ) : selectedGroup.SpecialGroupSerNo ? (\r\n
    \r\n
    \r\n {selectedGroup.GroupName}\r\n
    \r\n {specialData\r\n .filter(\r\n (d) =>\r\n d.SpecialGroupSerNo == selectedGroup.SpecialGroupSerNo\r\n )\r\n .map((d2) => (\r\n \r\n {d2.Name}\r\n \r\n ))}\r\n
    \r\n ) : (\r\n <>\r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n );\r\n}\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport {\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnCheckbox,\r\n InnSingleSelectDropdown,\r\n InnActionButton,\r\n} from \"../../../../component\";\r\nimport {\r\n GetRoomFeature,\r\n AddEditReservationRoomFeature,\r\n AddProfileRoomFeature,\r\n GetProfileRoomFeature,\r\n} from \"../../../../services/reservationService\";\r\n\r\nexport function RoomFeatureModal(props) {\r\n //use state varible declartion start\r\n const [fillBedTypeComboData, setFillBedTypeComboData] = useState([]);\r\n const [fillSmokingTypeComboData, setFillSmokingTypeComboData] = useState([]);\r\n const [selectedBedTypeValue, setSelectedBedTypeValue] = useState(\"\");\r\n const [selectedSmokingTypeValue, setSelectedSmokingTypeValue] = useState(\"\");\r\n const [roomFeatureData, setRoomFeatureData] = useState([]);\r\n const [GroupNameSectionShow, setGroupNameSectionShow] = useState(false);\r\n const [groupCollection, setGroupCollection] = useState([]);\r\n const [groupId, setGroupId] = useState(\"\");\r\n const [isShowSelected, setIsShowSelected] = useState(false);\r\n const [RoomFeaturesConfirmPopupShow, setRoomFeaturesConfirmPopupShow] =\r\n useState(false);\r\n const [roomFeatureProfileData, setRoomFeatureProfileData] = useState([]);\r\n const [removeRoomFeatureProfileData, setRemoveRoomFeatureProfileData] =\r\n useState([]);\r\n\r\n //use state varible declartion end\r\n\r\n //Modal Popup close event start\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n };\r\n //Modal Popup Close event end\r\n\r\n //one time api called in page load start\r\n useEffect(() => {\r\n // GetRoomFeature(\"1106\", \"2\").then(\r\n if (props.para != undefined) {\r\n GetRoomFeature(parseInt(props.para.ClientSerNo), parseInt(props.para.PropertySerNo)).then(\r\n (response) => {\r\n if (response.data != undefined) {\r\n response.data.RoomFeatures.map((o) => {\r\n o.checked = false;\r\n //fill bed type combo start\r\n if (o.RoomFeatureTypeSerNo == \"BDT\") {\r\n let obj = [{ key: 0, value: \"Select\" }];\r\n response.data.RoomFeatureValues.map((b) => {\r\n if (o.RoomFeatureSerNo == b.RoomFeatureSerNo) {\r\n obj.push({ key: b.key, value: b.Value });\r\n }\r\n setFillBedTypeComboData(obj);\r\n });\r\n }\r\n //fill bed type combo end\r\n\r\n //fill smoking type combo start\r\n if (o.RoomFeatureTypeSerNo == \"SMK\") {\r\n let obj = [{ key: 0, value: \"Select\" }];\r\n response.data.RoomFeatureValues.map((s) => {\r\n if (o.RoomFeatureSerNo == s.RoomFeatureSerNo) {\r\n obj.push({ key: s.key, value: s.Value });\r\n }\r\n setFillSmokingTypeComboData(obj);\r\n });\r\n }\r\n //fill smoking type combo end\r\n });\r\n\r\n //for unique group collection logic start\r\n let unique = [...groupCollection];\r\n response.data.RoomFeatures.filter(\r\n (f) =>\r\n f.RoomFeatureTypeSerNo != \"BDT\" &&\r\n f.RoomFeatureTypeSerNo != \"SMK\" &&\r\n f.RoomFeatureTypeSerNo != \"ADJ\" &&\r\n f.RoomFeatureTypeSerNo != \"INCN\" &&\r\n f.RoomFeatureTypeSerNo != \"ARM\"\r\n ).map((d) => {\r\n let o = unique.find(\r\n (x) => x.RoomFeaturesGroupSerNo == d.RoomFeaturesGroupSerNo\r\n );\r\n if (o == undefined) unique.push(d);\r\n });\r\n setGroupCollection(unique);\r\n //for unique group collection logic end\r\n setRoomFeatureData(response.data);\r\n console.log(\"room feature api data\", response.data);\r\n if (props.para.ParentPageName == \"GuestProfileMaster\") {\r\n GetProfileRoomFeature(props.para.ClientSerNo, props.para.ParentSerNo).then((d) => {\r\n console.log(\"Profile Data\", d.data);\r\n setRoomFeatureProfileData(d.data)\r\n\r\n if (d.data.length > 0) {\r\n let temp = { ...response.data };\r\n if (temp.RoomFeatureValues != undefined) {\r\n temp.RoomFeatureValues.map((o) => {\r\n d.data.map((p) => {\r\n if (p.RoomFeatureValueSerNo == o.RoomFeatureValueSerNo) {\r\n if (o.RoomFeatureTypeSerNo == \"BDT\") {\r\n setSelectedBedTypeValue(p.RoomFeatureValueSerNo);\r\n }\r\n if (o.RoomFeatureTypeSerNo == \"SMK\") {\r\n setSelectedSmokingTypeValue(p.RoomFeatureValueSerNo);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n }\r\n });\r\n }\r\n } else {\r\n console.log(\"Data Not Found\");\r\n }\r\n }\r\n );\r\n }\r\n }, []);\r\n //one time api called in page load end\r\n\r\n //Apply Room Feature Click Event start\r\n const ApplyRoomFeature = () => {\r\n if (props.para != undefined) {\r\n if (props.para.ParentPageName == \"GuestProfileMaster\") {\r\n AddProfileRoomFeature(roomFeatureProfileData).then((response) => {\r\n alert(response.data.Message);\r\n });\r\n }\r\n }\r\n handleOnclose();\r\n // if (props.para.Mode == \"Filter\") {\r\n // props.handleOnSelect(roomFeatureProfileData);\r\n // }\r\n // else {\r\n // setRoomFeaturesConfirmPopupShow(true);\r\n // }\r\n };\r\n //Apply Room Feature Click Event End\r\n\r\n //Editable useeffect start\r\n // useEffect(() => {\r\n\r\n // }, [roomFeatureData]);\r\n //Editable useeffect end\r\n\r\n // ClientSerNo: 0\r\n // DisplayName: \"Twin \"\r\n // PropertySerNo: 0\r\n // ReservationSerNo: 0\r\n // RoomFeatureSerNo: 2\r\n // RoomFeatureTypeSerNo: \"BDT\"\r\n // RoomFeatureValueSerNo: 4\r\n // RoomFeaturesGroupSerNo: 1\r\n // Value: \"Twin \"\r\n // key: 4\r\n\r\n //change event for bed type combo start\r\n const handleBedTypeChange = (item) => {\r\n let obj = roomFeatureData.RoomFeatureValues.find((f) => f.key == item.key);\r\n console.log(obj);\r\n if (obj) {\r\n obj.DisplayName = item.value;\r\n if (props.para != undefined) {\r\n obj.ClientSerNo = parseInt(props.para.ClientSerNo);\r\n obj.PropertySerNo = parseInt(props.para.PropertySerNo);\r\n obj.ProfileSerNo = parseInt(props.para.ParentSerNo);\r\n }\r\n\r\n let fr = [...roomFeatureProfileData];\r\n let exObj = fr.find((x) => x.RoomFeatureSerNo == obj.RoomFeatureSerNo);\r\n console.log(exObj);\r\n if (exObj) {\r\n let index = fr.indexOf(exObj);\r\n fr.splice(index, 1);\r\n }\r\n fr.push(obj);\r\n setRoomFeatureProfileData(fr);\r\n } else {\r\n let fr = [...roomFeatureProfileData];\r\n let filterRes = fr.filter((x) => x.RoomFeatureTypeSerNo != \"BDT\");\r\n setRoomFeatureProfileData(filterRes)\r\n }\r\n };\r\n //change event for bed type combo end\r\n\r\n //change event for smoking type combo start\r\n const handleSmokingTypeChange = (item) => {\r\n let obj = roomFeatureData.RoomFeatureValues.find((f) => f.key == item.key);\r\n if (obj) {\r\n obj.DisplayName = item.value;\r\n if (props.para != undefined) {\r\n obj.ClientSerNo = parseInt(props.para.ClientSerNo);\r\n obj.PropertySerNo = parseInt(props.para.PropertySerNo);\r\n obj.ProfileSerNo = parseInt(props.para.ParentSerNo);\r\n }\r\n let fr = [...roomFeatureProfileData];\r\n let exObj = fr.find((x) => x.RoomFeatureSerNo == obj.RoomFeatureSerNo);\r\n if (exObj) {\r\n let index = fr.indexOf(exObj);\r\n fr.splice(index, 1);\r\n }\r\n fr.push(obj);\r\n setRoomFeatureProfileData(fr);\r\n } else {\r\n let fr = [...roomFeatureProfileData];\r\n let filterRes = fr.filter((x) => x.RoomFeatureTypeSerNo != \"SMK\");\r\n setRoomFeatureProfileData(filterRes);\r\n }\r\n };\r\n //change event for smoking type combo end\r\n\r\n //click event for group name start\r\n const handleGroupNameClick = (e) => {\r\n setGroupId(e.target.id);\r\n setGroupNameSectionShow(true);\r\n };\r\n //click event for group name end\r\n\r\n //click event for checkbox start\r\n const handleCheckboxClick = (e) => {\r\n if (e.target.checked) {\r\n let obj = roomFeatureData.RoomFeatureValues.find(\r\n (f) => f.RoomFeatureSerNo == e.target.id && f.Value == \"1\"\r\n );\r\n obj.checked = true;\r\n let displayName = roomFeatureData.RoomFeatures.find(\r\n (f1) => f1.RoomFeatureSerNo == obj.RoomFeatureSerNo\r\n );\r\n obj.DisplayName = displayName.Name;\r\n if (props.para != undefined) {\r\n obj.ClientSerNo = parseInt(props.para.ClientSerNo);\r\n obj.PropertySerNo = parseInt(props.para.PropertySerNo);\r\n obj.ProfileSerNo = parseInt(props.para.ParentSerNo);\r\n }\r\n let fr = [...roomFeatureProfileData];\r\n fr.push(obj);\r\n setRoomFeatureProfileData(fr);\r\n } else {\r\n let filterRes = roomFeatureProfileData.filter(\r\n (x) => x.RoomFeatureSerNo != e.target.id\r\n );\r\n setRoomFeatureProfileData(filterRes)\r\n }\r\n };\r\n //click event for checkbox end\r\n\r\n //reset click event start\r\n const ResetRoomFeature = () => {\r\n setSelectedBedTypeValue(0);\r\n setSelectedSmokingTypeValue(0);\r\n setRoomFeatureProfileData([]);\r\n setIsShowSelected(false);\r\n };\r\n //reset click event end\r\n\r\n //Profile checked and unchecked event start\r\n const handleProfileChecked = (e) => {\r\n if (e.target.checked) {\r\n let checkeddata = removeRoomFeatureProfileData.find(\r\n (x) => x.RoomFeatureSerNo == e.target.id\r\n );\r\n let temp = [...roomFeatureProfileData];\r\n temp.push(checkeddata);\r\n // setRoomFeatureProfileData(temp);\r\n\r\n let uncheckeddata = removeRoomFeatureProfileData.filter(\r\n (x) => x.RoomFeatureSerNo != e.target.id\r\n );\r\n setRemoveRoomFeatureProfileData(uncheckeddata);\r\n } else {\r\n let uncheckeddata = roomFeatureProfileData.find(\r\n (x) => x.RoomFeatureSerNo == e.target.id\r\n );\r\n\r\n if (removeRoomFeatureProfileData) {\r\n let temp = [...removeRoomFeatureProfileData];\r\n temp.push(uncheckeddata);\r\n setRemoveRoomFeatureProfileData(temp);\r\n }\r\n\r\n let checkeddata = roomFeatureProfileData.filter(\r\n (x) => x.RoomFeatureSerNo != e.target.id\r\n );\r\n\r\n // setRoomFeatureProfileData(checkeddata);\r\n }\r\n };\r\n //Profile checked and unchecked event end\r\n\r\n //handle don't update button click event start\r\n const handleDonotUpdate = () => {\r\n setRoomFeaturesConfirmPopupShow(false);\r\n if (props.para.Mode == \"ADD\") {\r\n if (props.handleOnSelect == undefined) {\r\n console.log(\"handleOnSelect is not defined\");\r\n } else {\r\n props.handleOnSelect(roomFeatureProfileData);\r\n }\r\n } else if (props.para.Mode == \"EDIT\") {\r\n if (props.handleOnSelect == undefined) {\r\n console.log(\"handleOnSelect is not defined\");\r\n } else {\r\n props.handleOnSelect(roomFeatureProfileData);\r\n }\r\n AddEditReservationRoomFeature(roomFeatureProfileData).then((response) => {\r\n alert(response.data.Message);\r\n });\r\n }\r\n // handleOnclose();\r\n };\r\n //handle don't update button click event end\r\n\r\n //handle All checked event start\r\n const handleAllChecekd = (ischecked) => {\r\n if (ischecked == true) {\r\n } else {\r\n let temp = [...removeRoomFeatureProfileData];\r\n roomFeatureProfileData.map((c) => {\r\n c.checked = false;\r\n c.ProfileSerNo = props.para.ParentSerNo;\r\n temp.push(c);\r\n });\r\n setRemoveRoomFeatureProfileData(temp);\r\n // setRoomFeatureProfileData([]);\r\n }\r\n };\r\n //handle All checked event end\r\n\r\n //handle All checked removed event start\r\n const handleAllChecekdRemoved = (ischecked) => {\r\n if (ischecked) {\r\n let temp = [...roomFeatureProfileData];\r\n removeRoomFeatureProfileData.map((c) => {\r\n c.checked = true;\r\n c.ProfileSerNo = props.para.ParentSerNo;\r\n temp.push(c);\r\n });\r\n // setRoomFeatureProfileData(temp);\r\n setRemoveRoomFeatureProfileData([]);\r\n } else {\r\n }\r\n };\r\n //handle All checked removed event end\r\n\r\n //handle update profile click event start\r\n const handleUpdate = () => {\r\n if (props.para.Mode == \"ADD\") {\r\n if (props.handleOnSelect == undefined) {\r\n console.log(\"handleOnSelect is not defined\");\r\n } else {\r\n props.handleOnSelect(roomFeatureProfileData);\r\n }\r\n } else if (props.para.Mode == \"EDIT\") {\r\n if (props.handleOnSelect == undefined) {\r\n console.log(\"handleOnSelect is not defined\");\r\n } else {\r\n props.handleOnSelect(roomFeatureProfileData);\r\n }\r\n AddEditReservationRoomFeature(roomFeatureProfileData).then((response) => {\r\n alert(response.data.Message);\r\n });\r\n console.log(\"roomfeature\", roomFeatureProfileData);\r\n console.log(\"profile\", roomFeatureProfileData);\r\n console.log(\"remove profile\", removeRoomFeatureProfileData);\r\n if (roomFeatureProfileData.length == 0) {\r\n AddProfileRoomFeature(removeRoomFeatureProfileData).then((response) => {\r\n alert(response.data.Message);\r\n });\r\n } else {\r\n AddProfileRoomFeature(roomFeatureProfileData).then((response) => {\r\n alert(response.data.Message);\r\n });\r\n }\r\n } else {\r\n console.log(\"mode is not defined\");\r\n }\r\n };\r\n //handle update profile click event end\r\n\r\n //profile popup load event start\r\n // useEffect(() => {\r\n // console.log(\"RoomFeature Data\", roomFeatureProfileData);\r\n // if (roomFeatureProfileData.length == 0) {\r\n // setRoomFeatureProfileData(roomFeatureProfileData);\r\n // } else {\r\n\r\n // }\r\n // }, [RoomFeaturesConfirmPopupShow]);\r\n //profile popup load event\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    Room Features

    \r\n
    \r\n
    \r\n \r\n Reset\r\n \r\n \r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      Confirmation No.
      \r\n
      \r\n {props.para.BookingNo}\r\n
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      \r\n {props.para.GuestName}\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setIsShowSelected(ischecked);\r\n }}\r\n checked={isShowSelected}\r\n className=\"mrgn-tp10\"\r\n >\r\n Show Selected (\r\n {isShowSelected ?\r\n roomFeatureProfileData.filter(\r\n (f) =>\r\n f.RoomFeatureTypeSerNo != \"BDT\" &&\r\n f.RoomFeatureTypeSerNo != \"SMK\" &&\r\n f.RoomFeatureTypeSerNo != \"ADJ\" &&\r\n f.RoomFeatureTypeSerNo != \"INCN\" &&\r\n f.RoomFeatureTypeSerNo != \"ARM\"\r\n ).length\r\n : 0\r\n }\r\n )\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    In Room
    \r\n
    \r\n {\r\n handleBedTypeChange(item);\r\n }}\r\n selectedSerNo={selectedBedTypeValue}\r\n label=\"Bed Type\"\r\n >\r\n
    \r\n
    \r\n {\r\n handleSmokingTypeChange(item);\r\n }}\r\n selectedSerNo={selectedSmokingTypeValue}\r\n label=\"Smoking\"\r\n >\r\n
    \r\n {roomFeatureData.RoomFeatures == undefined ? (\r\n <>\r\n ) : (\r\n roomFeatureData.RoomFeatures.filter(\r\n (f) =>\r\n f.RoomFeatureTypeSerNo == \"ADJ\" ||\r\n f.RoomFeatureTypeSerNo == \"INCN\" ||\r\n f.RoomFeatureTypeSerNo == \"ARM\"\r\n ).map((o) => (\r\n handleCheckboxClick(e)}\r\n onChecked={(ischecked) => { }}\r\n checked={\r\n roomFeatureProfileData.filter(\r\n (x) => x.RoomFeatureSerNo == o.RoomFeatureSerNo\r\n ).length > 0\r\n ? true\r\n : false\r\n }\r\n >\r\n {o.Name}\r\n \r\n ))\r\n )}\r\n
    \r\n
    \r\n Other Preferences\r\n
    \r\n {roomFeatureData.RoomFeatures == undefined ? (\r\n <>\r\n ) : (\r\n groupCollection.map((o) => (\r\n handleGroupNameClick(e)}\r\n id={o.RoomFeaturesGroupSerNo}\r\n >\r\n {o.GroupName} (\r\n {roomFeatureProfileData.filter(\r\n (x) =>\r\n // x.RoomFeaturesGroupSerNo == groupId &&\r\n x.RoomFeatureTypeSerNo != \"BDT\" &&\r\n x.RoomFeatureTypeSerNo != \"SMK\" &&\r\n x.RoomFeatureTypeSerNo != \"ADJ\" &&\r\n x.RoomFeatureTypeSerNo != \"INCN\" &&\r\n x.RoomFeatureTypeSerNo != \"ARM\"\r\n ).length > 0\r\n ? roomFeatureProfileData.filter(\r\n (f) =>\r\n f.RoomFeatureTypeSerNo != \"ADJ\" &&\r\n f.RoomFeatureTypeSerNo != \"INCN\" &&\r\n f.RoomFeatureTypeSerNo != \"ARM\" &&\r\n f.RoomFeatureTypeSerNo != \"BDT\" &&\r\n f.RoomFeatureTypeSerNo != \"SMK\" &&\r\n f.RoomFeaturesGroupSerNo ==\r\n o.RoomFeaturesGroupSerNo\r\n ).length\r\n : 0}\r\n )\r\n \r\n \r\n x.RoomFeatureTypeSerNo != \"BDT\" &&\r\n x.RoomFeatureTypeSerNo != \"SMK\" &&\r\n x.RoomFeatureTypeSerNo != \"ADJ\" &&\r\n x.RoomFeatureTypeSerNo != \"INCN\" &&\r\n x.RoomFeatureTypeSerNo != \"ARM\" &&\r\n x.RoomFeaturesGroupSerNo ==\r\n o.RoomFeaturesGroupSerNo\r\n ).length > 0\r\n ? \"has-preferences\"\r\n : \"\"\r\n }\r\n id={o.RoomFeaturesGroupSerNo}\r\n >\r\n \r\n \r\n
    \r\n ))\r\n )}\r\n
    \r\n
    \r\n
    \r\n Check Availability\r\n
    \r\n
    \r\n {/* {GroupNameSectionShow == true ? ( */}\r\n
    \r\n
    \r\n {isShowSelected ? (\r\n
    \r\n
    \r\n All\r\n
    \r\n\r\n {roomFeatureData.RoomFeatures == undefined ? (\r\n <>\r\n ) : (\r\n roomFeatureData.RoomFeatures.filter(\r\n (f) =>\r\n // f.RoomFeaturesGroupSerNo == groupId &&\r\n f.RoomFeatureTypeSerNo != \"ADJ\" &&\r\n f.RoomFeatureTypeSerNo != \"INCN\" &&\r\n f.RoomFeatureTypeSerNo != \"ARM\" &&\r\n f.RoomFeatureTypeSerNo != \"BDT\" &&\r\n f.RoomFeatureTypeSerNo != \"SMK\"\r\n ).map((o) =>\r\n roomFeatureProfileData.filter(\r\n (x) => x.RoomFeatureSerNo == o.RoomFeatureSerNo\r\n ).length > 0 ? (\r\n { }}\r\n id={o.RoomFeatureSerNo}\r\n onClick={(e) => handleCheckboxClick(e)}\r\n checked={\r\n roomFeatureProfileData.filter(\r\n (x) => x.RoomFeatureSerNo == o.RoomFeatureSerNo\r\n ).length > 0\r\n ? true\r\n : false\r\n }\r\n >\r\n {o.Name}\r\n \r\n ) : (\r\n <>\r\n )\r\n )\r\n )}\r\n
    \r\n ) : GroupNameSectionShow == true ? (\r\n
    \r\n
    \r\n {groupCollection.map((o) =>\r\n o.RoomFeaturesGroupSerNo == groupId ? (\r\n o.GroupName\r\n ) : (\r\n <>\r\n )\r\n )}\r\n
    \r\n {roomFeatureData.RoomFeatures == undefined ? (\r\n <>\r\n ) : (\r\n roomFeatureData.RoomFeatures.filter(\r\n (f) =>\r\n f.RoomFeaturesGroupSerNo == groupId &&\r\n f.RoomFeatureTypeSerNo != \"ADJ\" &&\r\n f.RoomFeatureTypeSerNo != \"INCN\" &&\r\n f.RoomFeatureTypeSerNo != \"ARM\"\r\n ).map((o) => (\r\n handleCheckboxClick(e)}\r\n checked={\r\n roomFeatureProfileData.filter(\r\n (x) => x.RoomFeatureSerNo == o.RoomFeatureSerNo\r\n ).length > 0\r\n ? true\r\n : false\r\n }\r\n >\r\n {o.Name}\r\n \r\n ))\r\n )}\r\n
    \r\n ) : (\r\n <>\r\n )}\r\n
    \r\n
    \r\n {/* ) : (\r\n <>\r\n )} */}\r\n
    \r\n
    \r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnTooltip,\r\n InnSwitch,\r\n InnSingleSelectDropdown,\r\n InnTextbox,\r\n InnPlainButton,\r\n InnPrimaryButton,InnActionButton,\r\n InnModalPopup,\r\n InnButtonTypeWithDropdown,\r\n InnSingleDateSelection,\r\n InnCheckbox,\r\n} from \"../../../../component\";\r\nimport { CompanyModalPopup } from \"../../reservation/modalPopup/companyModalPopup\";\r\nimport { GuestProfileIdentification } from \"./guest-profile-identification\";\r\nimport { GuestProfileRelationship } from \"./guest-profile-relationship\";\r\nimport { GuestProfileInternalComment } from \"./guest-profile-internal-comment\";\r\nimport { GuestProfileCorresPrivacy } from \"./guest-profile-corres-privacy\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { AddReservation, cmbGetProfileTitleMaster, cmbGetVIPStatusMaster, GetCityMaster, GetCoutryMaster, GetProfileRoomFeature, GetProfileSpecial, GetStateMaster } from \"../../../../services/reservationService\";\r\nimport { AgentModalPopup } from \"../../reservation/modalPopup/AgentModalPopup\";\r\nimport rightarrow from \"../../../../assets/images/right-circle-arrow-gray.svg\";\r\nimport { GetProfileAddressTypeMaster, GetProfileCommunicationTypeMaster } from \"../../../../services/generalService\";\r\nimport { AddEditGuestProfileInfo, GetGuestProfileBySerNo } from \"../../../../services/guestProfileMasterService\";\r\nimport { SpecialFeatureModal } from \"./special-feature-modal\";\r\nimport { RoomFeatureModal } from \"./room-feature-modal\";\r\nimport { Select } from \"@mui/material\";\r\n\r\n\r\nexport function AddEditGuestProfile(props) {\r\n const currUser = useSelector(currentUser);\r\n let array = [];\r\n var Pageheight = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);\r\n var columnHeight = Pageheight - 120;\r\n const selectdata = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n const ActionOption = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n ];\r\n const profileTypeData = [{ key: \"Gu\", value: \"Guest\" }]\r\n const defaultProfileObj =\r\n {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n ProfileSerNo: parseInt(props.para.ProfileSerNo),\r\n ProfileType: \"\",\r\n FirstName: \"\",\r\n MiddleName: \"\",\r\n LastName: \"\",\r\n TitleSerNo: 0,\r\n IsIncognito: false,\r\n CompanyProfileSerNo: 0,\r\n Designation: \"\",\r\n Department: \"\",\r\n VIPStatusSerNo: 0,\r\n //Mode: \"\",\r\n Mode: props.para.Mode == \"Edit\" ? \"View\" : \"\",\r\n Result: \"\",\r\n CompanyName: \"\",\r\n AddressList: [\r\n {\r\n ProfileAddressTypeSerNo: 0,\r\n CountrySerNo: 0,\r\n StateSerNo: 0,\r\n CitySerNo: 0,\r\n PostCode: \"\",\r\n Street: \"\",\r\n IsPrimary: true,\r\n IsDefault: false,\r\n Mode: \"\",\r\n Result: \"\"\r\n }\r\n ],\r\n CommunicationList: [\r\n {\r\n CommunicationTypeSerNo: 0,\r\n Mobile: \"\",\r\n Email: \"\",\r\n Landline: \"\",\r\n IsPrimary: true,\r\n Mode: \"\",\r\n Result: \"\"\r\n }]\r\n }\r\n\r\n const defaultAddressObj = {\r\n ProfileAddressTypeSerNo: 0,\r\n CountrySerNo: 0,\r\n StateSerNo: 0,\r\n CitySerNo: 0,\r\n PostCode: \"\",\r\n Street: \"\",\r\n IsPrimary: true,\r\n IsDefault: false,\r\n Mode: \"\",\r\n Result: \"\"\r\n }\r\n\r\n const defaultCommObj = {\r\n CommunicationTypeSerNo: 0,\r\n Mobile: \"\",\r\n Email: \"\",\r\n Landline: \"\",\r\n IsPrimary: true,\r\n Mode: \"\",\r\n Result: \"\"\r\n }\r\n\r\n const validationObj = {\r\n ProfileType: \"\",\r\n FirstName: \"\",\r\n MiddleName: \"\",\r\n LastName: \"\",\r\n TitleSerNo: \"\",\r\n Street: \"\",\r\n CountrySerNo: \"\",\r\n StateSerNo: \"\",\r\n CitySerNo: \"\",\r\n PostCode: \"\",\r\n Landline: \"\",\r\n Email: \"\",\r\n Mobile: \"\",\r\n }\r\n\r\n //#region state\r\n const [showRoomSpecialsModal, setShowRoomSpecialsModal] = useState(false);\r\n const [showRoomFeatureModal, setShowRoomFeatureModal] = useState(false);\r\n const [showPastFutureStaysModal, setShowPastFutureStaysModal] = useState(false);\r\n const [showAccountReceivableModal, setShowAccountReceivableModal] = useState(false);\r\n const [showMembershipModal, setShowMembershipModal] = useState(false);\r\n const [DivReceivableAccountEnable, setDivReceivableAccountEnable] = useState(true);\r\n const [guestProfileObj, setGuestProfileObj] = useState(defaultProfileObj);\r\n const [vipStatusData, setVipStatusData] = useState([]);\r\n const [selectedVipStatus, setSelectedVipStatus] = useState(0);\r\n const [IsShowDetailSection, setIsShowDetailSection] = useState(false);\r\n const [IsShowIndicatorSection, setIsShowIndicatorSection] = useState(true);\r\n const [selectedCompany, setSelectedCompany] = useState({\r\n AgentName: \"Select\",\r\n AgentSerNo: \"0\",\r\n });\r\n const [showCompanySearchFilterModal, setShowCompanySearchFilterModal] = useState(false);\r\n const [titleData, setTitleData] = useState([]);\r\n const [selectedTitle, setSelectedTitle] = useState();\r\n const [profileAddressTypeData, setProfileAddressTypeData] = useState([]);\r\n const [selectedProfileAddressType, setSelectedProfileAddressType] = useState({});\r\n const [communicationTypeData, setCommunicationTypeData] = useState([]);\r\n const [selectedCommunicationType, setSelectedCommunicationType] = useState({});\r\n const [countryData, setCountryData] = useState([]);\r\n const [selectedCountry, setSelectedCountry] = useState({});\r\n const [stateData, setStateData] = useState([]);\r\n const [selectedState, setSelectedState] = useState({});\r\n const [cityData, setCityData] = useState([]);\r\n const [selectedCity, setSelectedCity] = useState({});\r\n const [guestAddressObj, setGuestAddressObj] = useState(defaultAddressObj);\r\n const [addressList, setAddressList] = useState([]);\r\n const [commList, setCommList] = useState([]);\r\n const [pinCode, setPinCode] = useState(\"\");\r\n const [guestCommObj, setGuestCommObj] = useState(defaultCommObj);\r\n const [guestProfileValidation, setGuestProfileValidation] = useState(validationObj);\r\n const [specialData, setSpecialData] = useState([]);\r\n const [rmFeatureData, setRmFeatureData] = useState([]);\r\n const [editObj, setEditObj] = useState({});\r\n const [updateProfileSerNo, setUpdateProfileSerNo] = useState(0);\r\n //#endregion\r\n const fillSpecialData = () => {\r\n if (props.para != undefined && props.para.ProfileSerNo != 0) {\r\n GetProfileSpecial(parseInt(currUser.ClientSerNo), parseInt(props.para.ProfileSerNo)).then((d) => {\r\n setSpecialData(d.data);\r\n });\r\n }\r\n }\r\n const fillRmFeaturesData = () => {\r\n if (props.para != undefined && props.para.ProfileSerNo != 0) {\r\n GetProfileRoomFeature(parseInt(currUser.ClientSerNo), parseInt(props.para.ProfileSerNo)).then((d) => {\r\n console.log(\"heyy\", d.data);\r\n setRmFeatureData(d.data);\r\n });\r\n }\r\n }\r\n\r\n const isValidData = () => {\r\n let isValid = true;\r\n if (guestProfileObj.FirstName == \"\") {\r\n isValid = false;\r\n setGuestProfileValidation(prev => ({ ...prev, FirstName: \"Invalid Input\" }));\r\n }\r\n if (guestProfileObj.ProfileType == \"\") {\r\n isValid = false;\r\n setGuestProfileValidation(prev => ({ ...prev, ProfileType: \"Invalid Input\" }));\r\n }\r\n if (guestProfileObj.LastName == \"\") {\r\n isValid = false;\r\n setGuestProfileValidation(prev => ({ ...prev, LastName: \"Invalid Input\" }));\r\n }\r\n if (guestAddressObj.ProfileAddressTypeSerNo != 0 && guestAddressObj.Street == \"\") {\r\n isValid = false;\r\n setGuestProfileValidation((prev) => ({ ...prev, Street: \"Invalid Input\" }))\r\n }\r\n if (guestAddressObj.ProfileAddressTypeSerNo != 0 && guestAddressObj.CountrySerNo == 0) {\r\n isValid = false;\r\n setGuestProfileValidation((prev) => ({ ...prev, CountrySerNo: \"Invalid Input\" }))\r\n }\r\n if (guestAddressObj.ProfileAddressTypeSerNo != 0 && guestAddressObj.StateSerNo == 0) {\r\n isValid = false;\r\n setGuestProfileValidation((prev) => ({ ...prev, StateSerNo: \"Invalid Input\" }))\r\n }\r\n if (guestAddressObj.ProfileAddressTypeSerNo != 0 && guestAddressObj.CitySerNo == 0) {\r\n isValid = false;\r\n setGuestProfileValidation((prev) => ({ ...prev, CitySerNo: \"Invalid Input\" }))\r\n }\r\n if (guestAddressObj.ProfileAddressTypeSerNo != 0 && guestAddressObj.PostCode == \"\") {\r\n isValid = false;\r\n setGuestProfileValidation((prev) => ({ ...prev, PostCode: \"Invalid Input\" }))\r\n }\r\n\r\n //Validation for communication section\r\n if (guestCommObj.CommunicationTypeSerNo != 0 && guestCommObj.Mobile == \"\") {\r\n isValid = false;\r\n setGuestProfileValidation((prev) => ({ ...prev, Mobile: \"Invalid Input\" }))\r\n }\r\n if (guestCommObj.CommunicationTypeSerNo != 0 && guestCommObj.Email == \"\") {\r\n isValid = false;\r\n setGuestProfileValidation((prev) => ({ ...prev, Email: \"Invalid Input\" }))\r\n }\r\n // if (guestCommObj.CommunicationTypeSerNo != 0 && guestCommObj.Landline == \"\") {\r\n // isValid = false;\r\n // setGuestProfileValidation((prev) => ({ ...prev, Landline: \"Invalid Input\" }))\r\n // }\r\n return isValid;\r\n }\r\n const SpecialsTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Specials ({specialData.length})
    \r\n
      \r\n {\r\n specialData.map((d) => {\r\n return (\r\n
    • \r\n {d.Name}\r\n
    • \r\n );\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n setShowRoomSpecialsModal(true)}>Edit\r\n
    \r\n
    \r\n );\r\n };\r\n const RoomFeaturesTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Room Features ({rmFeatureData.length})
    \r\n
      \r\n {\r\n rmFeatureData.map((d) => {\r\n return (\r\n
    • \r\n {d.DisplayName}\r\n
    • \r\n );\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* {console.log(\"!showroomSpecialsModal\")} */}\r\n {\r\n setShowRoomFeatureModal(!showRoomFeatureModal)\r\n }}>\r\n Edit\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n const AccountReceivableTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Cadila Finance
    \r\n
    \r\n
    \r\n
    Credit Days : 30
    \r\n
    Credit Limit : 1,00,000.00
    \r\n
    Contact Profile : Mr. Rohit Goyal
    \r\n
    \r\n
    \r\n
    \r\n setShowAccountReceivableModal(!showAccountReceivableModal)}>\r\n Edit\r\n \r\n \r\n Actions\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n const MembershipToolTip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Gold Member (455851421)
    \r\n
    \r\n
    \r\n
    Mr. Rohit Sharma
    \r\n
    Enrollment Type : Online
    \r\n
    Expiration : 31 Dec, 2025
    \r\n
    \r\n
    \r\n
    \r\n setShowMembershipModal(!showMembershipModal)}>Edit\r\n \r\n Actions\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n //#region useEffect\r\n useEffect(() => {\r\n if (props.para != undefined) {\r\n console.log(props.para.ProfileSerNo);\r\n }\r\n fillSpecialData();\r\n fillRmFeaturesData();\r\n cmbGetVIPStatusMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n setVipStatusData(d.data.filter((x) => x.key !== 0 && x.value !== \"\"));\r\n });\r\n\r\n cmbGetProfileTitleMaster(currUser.ClientSerNo).then((d) => {\r\n setTitleData(d.data);\r\n })\r\n\r\n GetProfileAddressTypeMaster(currUser.ClientSerNo).then((d) => {\r\n let tempProfile = [];\r\n d.data.forEach((x) => {\r\n tempProfile = [...tempProfile, { key: x.ProfileAddressTypeSerNo, value: x.Name }]\r\n })\r\n let obj = { key: 0, value: \"Select\" }\r\n tempProfile.unshift(obj);\r\n setSelectedProfileAddressType(tempProfile[0])\r\n //setGuestAddressObj((prev) => ({ ...prev, ProfileAddressTypeSerNo: temp[0].key }))\r\n setProfileAddressTypeData(tempProfile);\r\n let tmpAddList = [];\r\n tempProfile.forEach((x) => {\r\n let tmpAddress =\r\n {\r\n ProfileAddressTypeSerNo: x.key,\r\n CountrySerNo: 0,\r\n StateSerNo: 0,\r\n CitySerNo: 0,\r\n PostCode: \"\",\r\n Street: \"\",\r\n IsPrimary: true,\r\n IsDefault: false,\r\n Mode: \"\",\r\n Result: \"\",\r\n IsChange: false\r\n }\r\n tmpAddList.push(tmpAddress);\r\n })\r\n console.log(\"tmpAddress\", tmpAddList);\r\n setAddressList(tmpAddList);\r\n\r\n GetProfileCommunicationTypeMaster(currUser.ClientSerNo).then((d) => {\r\n console.log(d.data);\r\n let tempComm = [];\r\n d.data.forEach((x) => {\r\n tempComm = [...tempComm, { key: x.CommunicationTypeSerNo, value: x.Name }]\r\n })\r\n let obj = { key: 0, value: \"Select\" }\r\n tempComm.unshift(obj);\r\n console.log(\"tempComm\", tempComm);\r\n setSelectedCommunicationType(tempComm[0])\r\n setCommunicationTypeData(tempComm);\r\n let tmpCommList = [];\r\n tempComm.forEach((x) => {\r\n let tmpComm =\r\n {\r\n CommunicationTypeSerNo: x.key,\r\n Mobile: \"\",\r\n Email: \"\",\r\n Landline: \"\",\r\n IsPrimary: false,\r\n Mode: \"\",\r\n Result: \"\",\r\n IsChange: false\r\n }\r\n tmpCommList.push(tmpComm);\r\n })\r\n setCommList(tmpCommList);\r\n // if (props.para.Mode == \"Add\") {\r\n // setGuestProfileObj((prev) => ({ ...prev, CommunicationList: tmpCommList }))\r\n // }\r\n\r\n if (props.para.Mode == \"Add\") {\r\n console.log(\"tmpAddList[0]\", tmpAddList[0]);\r\n setGuestProfileObj((prev) => ({ ...prev, Mode: \"Add\", AddressList: tmpAddList, CommunicationList: tmpCommList }))\r\n //setGuestAddressObj(tmpAddList[0])\r\n //setGuestCommObj(tmpCommList[0]);\r\n }\r\n if (props.para.Mode == \"Edit\") {\r\n setIsShowDetailSection(true);\r\n setIsShowIndicatorSection(false);\r\n GetGuestProfileBySerNo(currUser.ClientSerNo, props.para.ProfileSerNo).then((d) => {\r\n d.data.Mode = \"View\";\r\n let tempList = d.data.AddressList;\r\n let commarr = d.data.CommunicationList;\r\n let arr1 = []\r\n if (d.data.AddressList.length > 0) {\r\n tempList.forEach((x) => {\r\n x.IsChange = true;\r\n })\r\n tempList.map((d) => {\r\n tmpAddList.map((d2) => {\r\n // console.log(d.ProfileAddressTypeSerNo != d2.ProfileAddressTypeSerNo, d.ProfileAddressTypeSerNo, d2.ProfileAddressTypeSerNo);\r\n\r\n if (d.ProfileAddressTypeSerNo == d2.ProfileAddressTypeSerNo) {\r\n arr1.push(d.ProfileAddressTypeSerNo)\r\n }\r\n\r\n })\r\n })\r\n\r\n let addressarray = tmpAddList.filter((x) => !arr1.includes(x.ProfileAddressTypeSerNo))\r\n console.log(\"addressarray\", addressarray);\r\n addressarray.forEach(x => {\r\n d.data.AddressList.push(x)\r\n })\r\n console.log(\"d.data.AddressList[0]>>>>>>>>>>>\", d.data.AddressList[0]);\r\n setGuestAddressObj(d.data.AddressList[0]);\r\n }\r\n else {\r\n d.data.AddressList = tmpAddList;\r\n setGuestAddressObj(tmpAddList[0])\r\n }\r\n // To filter out common communication details\r\n let arr2 = []\r\n if (d.data.CommunicationList.length > 0) {\r\n commarr.forEach((x) => {\r\n x.IsChange = true;\r\n })\r\n commarr.map((d) => {\r\n tmpCommList.map((d2) => {\r\n // console.log(d.CommunicationTypeSerNo != d2.CommunicationTypeSerNo, d.CommunicationTypeSerNo, d2.CommunicationTypeSerNo);\r\n\r\n if (d.CommunicationTypeSerNo == d2.CommunicationTypeSerNo) {\r\n arr2.push(d.CommunicationTypeSerNo)\r\n }\r\n\r\n })\r\n })\r\n\r\n let communicationarray = tmpCommList.filter((x) => !arr2.includes(x.CommunicationTypeSerNo))\r\n console.log(\"communicationarray\", communicationarray);\r\n communicationarray.forEach(x => {\r\n d.data.CommunicationList.push(x)\r\n })\r\n setGuestCommObj(d.data.CommunicationList[0]);\r\n }\r\n else {\r\n d.data.CommunicationList = tmpCommList;\r\n setGuestCommObj(tmpCommList[0]);\r\n }\r\n console.log(\"helloooo\", d.data);\r\n setSelectedCompany((prev) => ({ ...prev, AgentName: d.data.CompanyName, AgentSerNo: d.data.CompanyProfileSerNo }))\r\n setGuestProfileObj(d.data);\r\n setEditObj(d.data)\r\n })\r\n }\r\n })\r\n })\r\n\r\n\r\n // GetProfileCommunicationTypeMaster(currUser.ClientSerNo).then((d) => {\r\n // console.log(d.data);\r\n // let temp = [];\r\n // d.data.forEach((x) => {\r\n // temp = [...temp, { key: x.CommunicationTypeSerNo, value: x.Name }]\r\n // })\r\n // setSelectedCommunicationType(temp[0])\r\n // setCommunicationTypeData(temp);\r\n // if (props.para.Mode == \"Add\") {\r\n // let tmpAddList = [];\r\n // d.data.forEach((x) => {\r\n // let tmpComm =\r\n // {\r\n // CommunicationTypeSerNo: x.CommunicationTypeSerNo,\r\n // Mobile: \"\",\r\n // Email: \"\",\r\n // Landline: \"\",\r\n // IsPrimary: true,\r\n // Mode: \"\",\r\n // Result: \"\",\r\n // IsChange: false\r\n // }\r\n // tmpAddList.push(tmpComm);\r\n // })\r\n // setCommList(tmpAddList);\r\n // setGuestProfileObj((prev) => ({ ...prev, CommunicationList: tmpAddList }))\r\n // setGuestCommObj(tmpAddList[0]);\r\n // }\r\n // })\r\n\r\n GetCoutryMaster(currUser.ClientSerNo).then((d) => {\r\n let temp = [];\r\n d.data.forEach((x) => {\r\n temp = [...temp, { key: x.CountrySerNo, value: x.Name }]\r\n })\r\n setCountryData(temp);\r\n })\r\n\r\n // if (props.para.Mode == \"Edit\") {\r\n // GetGuestProfileBySerNo(currUser.ClientSerNo, props.para.ProfileSerNo).then((d) => {\r\n // let tempdata = d.data;\r\n // if (tempdata.Mode == null || tempdata.Mode == undefined) {\r\n // tempdata.Mode = \"Edit\"\r\n // }\r\n // tempdata.AddressList.forEach((x) => {\r\n // x.IsChange = false;\r\n // })\r\n // tempdata.CommunicationList.forEach((x) => {\r\n // x.IsChange = false;\r\n // })\r\n // setGuestProfileObj(tempdata);\r\n // console.log(d.data);\r\n // setGuestAddressObj(tempdata.AddressList[0])\r\n // setGuestCommObj(tempdata.CommunicationList[0])\r\n // })\r\n // }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (guestAddressObj.CountrySerNo != 0) {\r\n GetStateMaster(currUser.ClientSerNo, guestAddressObj.CountrySerNo).then((d) => {\r\n let temp = [];\r\n d.data.forEach((x) => {\r\n temp = [...temp, { key: x.StateSerNo, value: x.Name }]\r\n })\r\n setStateData(temp)\r\n })\r\n }\r\n }, [guestAddressObj.CountrySerNo])\r\n\r\n useEffect(() => {\r\n if (guestAddressObj.CountrySerNo != 0 && guestAddressObj.StateSerNo != 0) {\r\n GetCityMaster(currUser.ClientSerNo, guestAddressObj.CountrySerNo, guestAddressObj.StateSerNo).then((d) => {\r\n let temp = [];\r\n d.data.forEach((x) => {\r\n temp = [...temp, { key: x.CitySerNo, value: x.Name }]\r\n })\r\n setCityData(temp);\r\n })\r\n }\r\n }, [guestAddressObj.StateSerNo])\r\n\r\n //#endregion\r\n //#region Custom Functions\r\n const handleAddressData = (type, value) => {\r\n // if (type == \"dropdown\") {\r\n // let tempobj = guestProfileObj.AddressList.find(x => x.ProfileAddressTypeSerNo == value);\r\n // setGuestAddressObj(tempobj);\r\n // console.log(\"tempboj\", tempobj.IsChange);\r\n // }\r\n let tmpAddList = JSON.parse(JSON.stringify(guestProfileObj.AddressList));\r\n if (guestAddressObj.ProfileAddressTypeSerNo == 0) {\r\n alert(\"Please Select address type\")\r\n } else {\r\n tmpAddList.forEach(x => {\r\n if (x.ProfileAddressTypeSerNo == guestAddressObj.ProfileAddressTypeSerNo) {\r\n\r\n if (type == \"Pincode\") {\r\n x.PostCode = value;\r\n x.IsChange = true;\r\n }\r\n else if (type == \"Country\") {\r\n x.CountrySerNo = value;\r\n x.IsChange = true;\r\n }\r\n else if (type == \"State\") {\r\n x.StateSerNo = value;\r\n x.IsChange = true;\r\n }\r\n else if (type == \"City\") {\r\n x.CitySerNo = value;\r\n x.IsChange = true;\r\n }\r\n else if (type == \"Address\") {\r\n x.Street = value;\r\n x.IsChange = true;\r\n }\r\n else if (type = \"IsPrimary\") {\r\n x.IsPrimary = value;\r\n // x.IsChange = true;\r\n }\r\n }\r\n //setAddressList(tmpAddList); \r\n });\r\n setGuestProfileObj((prev) => ({ ...prev, AddressList: tmpAddList }))\r\n console.log(tmpAddList);\r\n }\r\n }\r\n\r\n const handleCommList = (type, value) => {\r\n // if (type == \"dropdown\") {\r\n // let tempobj = guestProfileObj.CommunicationList.find(x => x.CommunicationTypeSerNo == value);\r\n // setGuestCommObj(tempobj);\r\n // console.log(\"tempboj\",tempobj.IsChange);\r\n // }\r\n let tmpAddList = guestProfileObj.CommunicationList;\r\n tmpAddList.forEach(x => {\r\n if (x.CommunicationTypeSerNo == guestCommObj.CommunicationTypeSerNo) {\r\n if (type == \"Mobile\") {\r\n x.Mobile = value;\r\n x.IsChange = true;\r\n }\r\n else if (type == \"Email\") {\r\n x.Email = value;\r\n x.IsChange = true;\r\n }\r\n else if (type == \"LandLine\") {\r\n x.Landline = value;\r\n x.IsChange = true;\r\n }\r\n else if (type == \"City\") {\r\n x.CitySerNo = value;\r\n x.IsChange = true;\r\n }\r\n else if (type = \"IsPrimary\") {\r\n x.IsPrimary = value;\r\n // x.IsChange = true;\r\n }\r\n // x.IsChange = true;\r\n }\r\n });\r\n setGuestProfileObj((prev) => ({ ...prev, CommunicationList: tmpAddList }))\r\n console.log(tmpAddList);\r\n }\r\n\r\n const handleSaveClick = () => {\r\n console.log(\"guestProfileObj\", guestProfileObj);\r\n let tempEditObj = guestProfileObj;\r\n setEditObj(guestProfileObj);\r\n if (props.para.Mode == \"Add\" && guestProfileObj.Mode == \"Add\") {\r\n let tempAddress = guestProfileObj.AddressList.filter((x) => x.IsChange == true ? x.Mode = \"Add\" : null);\r\n let tempComm = guestProfileObj.CommunicationList.filter((x) => x.IsChange == true ? x.Mode = \"Add\" : null);\r\n let tempObj = guestProfileObj;\r\n tempObj.Mode = \"Add\";\r\n tempObj = { ...tempObj, AddressList: tempAddress, CommunicationList: tempComm }\r\n console.log(tempObj);\r\n\r\n let IsValidPage = isValidData();\r\n if (IsValidPage) {\r\n AddEditGuestProfileInfo(tempObj).then((d) => {\r\n if (d.data.Code == 200) {\r\n alert(\"Profile is saved successfully.\");\r\n console.log(d.data.ReturnValue)\r\n props.para.ProfileSerNo = d.data.ReturnValue;\r\n setUpdateProfileSerNo(d.data.ReturnValue);\r\n tempObj.ProfileSerNo = parseInt(d.data.ReturnValue);\r\n }\r\n setIsShowDetailSection(true);\r\n setIsShowIndicatorSection(false);\r\n tempObj.Mode = \"View\";\r\n console.log(\"tempObj\", tempObj);\r\n setGuestProfileObj(tempObj);\r\n })\r\n }\r\n else {\r\n alert(\"One or more field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n else if (props.para.Mode == \"Edit\" || guestProfileObj.Mode == \"Edit\") {\r\n console.log(\"editobj\", editObj);\r\n console.log(\"tempEditObj\", tempEditObj);\r\n let tempObj = tempEditObj;\r\n let tempAddress = tempObj.AddressList.filter((x) => x.IsChange == true)\r\n let tempComm = tempObj.CommunicationList.filter((x) => x.IsChange == true);\r\n tempObj.Mode = \"Edit\";\r\n tempObj = { ...tempObj, AddressList: tempAddress, CommunicationList: tempComm }\r\n console.log(tempObj);\r\n let IsValidPage = isValidData();\r\n if (IsValidPage) {\r\n AddEditGuestProfileInfo(tempObj).then((d) => {\r\n if (d.data.Code == 200) {\r\n alert(\"Profile is edited successfully.\");\r\n }\r\n setIsShowDetailSection(true);\r\n setIsShowIndicatorSection(false);\r\n setUpdateProfileSerNo(tempObj.ProfileSerNo);\r\n tempObj.Mode = \"View\";\r\n console.log(\"tempObj\", tempObj);\r\n setGuestProfileObj(tempObj);\r\n })\r\n }\r\n else {\r\n alert(\"One or more field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n }\r\n\r\n const handleResetClick = () => {\r\n let IsReset = window.confirm(\"Would you like to reset the profile fields to its default value\");\r\n if (IsReset) {\r\n if (props.para.Mode == \"Edit\") {\r\n GetGuestProfileBySerNo(currUser.ClientSerNo, props.para.ProfileSerNo).then((d) => {\r\n d.data.Mode = \"Edit\";\r\n let tempList = d.data.AddressList;\r\n let commarr = d.data.CommunicationList;\r\n let arr1 = []\r\n if (d.data.AddressList.length > 0) {\r\n tempList.forEach((x) => {\r\n x.IsChange = true;\r\n })\r\n tempList.map((d) => {\r\n addressList.map((d2) => {\r\n // console.log(d.ProfileAddressTypeSerNo != d2.ProfileAddressTypeSerNo, d.ProfileAddressTypeSerNo, d2.ProfileAddressTypeSerNo);\r\n\r\n if (d.ProfileAddressTypeSerNo == d2.ProfileAddressTypeSerNo) {\r\n arr1.push(d.ProfileAddressTypeSerNo)\r\n }\r\n\r\n })\r\n })\r\n\r\n let addressarray = addressList.filter((x) => !arr1.includes(x.ProfileAddressTypeSerNo))\r\n console.log(\"addressarray\", addressarray);\r\n addressarray.forEach(x => {\r\n d.data.AddressList.push(x)\r\n })\r\n console.log(\"d.data.AddressList[0]>>>>>>>>>>>\", d.data.AddressList[0]);\r\n setGuestAddressObj(d.data.AddressList[0]);\r\n }\r\n else {\r\n d.data.AddressList = addressList;\r\n setGuestAddressObj(addressList[0])\r\n }\r\n // To filter out common communication details\r\n let arr2 = []\r\n if (d.data.CommunicationList.length > 0) {\r\n commarr.forEach((x) => {\r\n x.IsChange = true;\r\n })\r\n commarr.map((d) => {\r\n commList.map((d2) => {\r\n // console.log(d.CommunicationTypeSerNo != d2.CommunicationTypeSerNo, d.CommunicationTypeSerNo, d2.CommunicationTypeSerNo);\r\n\r\n if (d.CommunicationTypeSerNo == d2.CommunicationTypeSerNo) {\r\n arr2.push(d.CommunicationTypeSerNo)\r\n }\r\n\r\n })\r\n })\r\n\r\n let communicationarray = commList.filter((x) => !arr2.includes(x.CommunicationTypeSerNo))\r\n console.log(\"communicationarray\", communicationarray);\r\n communicationarray.forEach(x => {\r\n d.data.CommunicationList.push(x)\r\n })\r\n setGuestCommObj(d.data.CommunicationList[0]);\r\n }\r\n else {\r\n d.data.CommunicationList = commList;\r\n setGuestCommObj(commList[0]);\r\n }\r\n console.log(\"helloooo\", d.data);\r\n setGuestProfileObj(d.data);\r\n })\r\n }\r\n else {\r\n setGuestProfileObj({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n ProfileSerNo: parseInt(props.para.ProfileSerNo),\r\n ProfileType: \"\",\r\n FirstName: \"\",\r\n MiddleName: \"\",\r\n LastName: \"\",\r\n TitleSerNo: 0,\r\n IsIncognito: true,\r\n CompanyProfileSerNo: 0,\r\n Designation: \"\",\r\n Department: \"\",\r\n VIPStatusSerNo: 0,\r\n Mode: props.para.Mode,\r\n Result: \"\",\r\n AddressList: addressList,\r\n CommunicationList: commList\r\n });\r\n setGuestAddressObj({\r\n ProfileAddressTypeSerNo: 0,\r\n CountrySerNo: 0,\r\n StateSerNo: 0,\r\n CitySerNo: 0,\r\n PostCode: \"\",\r\n Street: \"\",\r\n IsPrimary: true,\r\n IsDefault: true,\r\n Mode: \"\",\r\n Result: \"\"\r\n });\r\n setGuestCommObj(defaultCommObj);\r\n setSelectedCompany({\r\n AgentName: \"Select\",\r\n AgentSerNo: \"0\",\r\n })\r\n }\r\n }\r\n }\r\n //#endregion\r\n return (\r\n <>\r\n {\r\n if (props.OnClose != undefined) {\r\n props.OnClose();\r\n }\r\n }}>\r\n
    \r\n
    \r\n
    \r\n

    Profile

    \r\n
    \r\n
    \r\n {\r\n guestProfileObj.Mode == \"View\" ?\r\n {\r\n let tempobj = editObj;\r\n tempobj.Mode = \"Edit\";\r\n if (props.para.Mode == \"Add\") {\r\n tempobj.ProfileSerNo = parseInt(updateProfileSerNo);\r\n }\r\n console.log(\"Edit\", tempobj);\r\n setGuestProfileObj(tempobj)\r\n setIsShowDetailSection(false);\r\n setIsShowIndicatorSection(false);\r\n }}>Edit\r\n :\r\n <>\r\n Reset\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* {\r\n props.para.Mode == \"Edit\" ?\r\n
    {guestProfileObj.FirstName} {guestProfileObj.MiddleName} {guestProfileObj.LastName}
    \r\n :\r\n
    Mr. Rohit m sharma
    \r\n } */}\r\n\r\n
    {titleData.find(x => x.key == guestProfileObj.TitleSerNo)?.value} {guestProfileObj.FirstName} {guestProfileObj.MiddleName} {guestProfileObj.LastName}
    \r\n
    \r\n
    \r\n {\r\n setGuestProfileObj((prev) => ({ ...prev, ProfileType: item.key }))\r\n }}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n console.log((item));\r\n setGuestProfileObj((prev) => ({ ...prev, TitleSerNo: parseInt(item.key) }))\r\n setSelectedTitle(item);\r\n }}\r\n label=\"Title\">\r\n
    \r\n
    \r\n
    \r\n {\r\n if (/^[a-zA-Z _]+$/i.test(v)) {\r\n setGuestProfileValidation((prev) => ({ ...prev, FirstName: \"\" }))\r\n }\r\n else {\r\n setGuestProfileValidation((prev) => ({ ...prev, FirstName: \"Invalid Input\" }))\r\n }\r\n setGuestProfileObj((prev) => ({ ...prev, FirstName: v }))\r\n }}>\r\n First Name\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(v);\r\n if (/^[a-zA-Z _]+$/.test(v)) {\r\n setGuestProfileValidation((prev) => ({ ...prev, MiddleName: \"\" }))\r\n }\r\n else {\r\n setGuestProfileValidation((prev) => ({ ...prev, MiddleName: \"Invalid Input\" }))\r\n }\r\n setGuestProfileObj((prev) => ({ ...prev, MiddleName: v }))\r\n }}>\r\n Middle Name\r\n \r\n
    \r\n
    \r\n {\r\n if (/^[a-zA-Z _]+$/.test(v)) {\r\n setGuestProfileValidation((prev) => ({ ...prev, LastName: \"\" }))\r\n }\r\n else {\r\n setGuestProfileValidation((prev) => ({ ...prev, LastName: \"Invalid Input\" }))\r\n }\r\n setGuestProfileObj((prev) => ({ ...prev, LastName: v }))\r\n }}>\r\n Last Name\r\n \r\n
    \r\n
    \r\n {/*
    \r\n Company\r\n \r\n \r\n \r\n
    */}\r\n
    \r\n {\r\n setShowCompanySearchFilterModal(!showCompanySearchFilterModal);\r\n }}\r\n >\r\n Company\r\n \r\n {\r\n setShowCompanySearchFilterModal(!showCompanySearchFilterModal);\r\n }}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n {\r\n console.log(v);\r\n setGuestProfileObj((prev) => ({ ...prev, Designation: v }))\r\n }}>Designation\r\n
    \r\n
    \r\n {\r\n console.log(v);\r\n setGuestProfileObj((prev) => ({ ...prev, Department: v }))\r\n }}>Department\r\n
    \r\n
    \r\n
    \r\n Incognito\r\n setGuestProfileObj((prev) => ({ ...prev, IsIncognito: v }))} id=\"profile1\" value={guestProfileObj.IsIncognito}>\r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(item);\r\n setGuestProfileObj((prev) => ({ ...prev, VIPStatusSerNo: parseInt(item.key) }))\r\n setSelectedVipStatus(item.key)\r\n }}\r\n label=\"VIP Status\">\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    physical address
    \r\n
    \r\n
    \r\n
    \r\n guestAddressObj.ProfileAddressTypeSerNo == x.key)?.value}\r\n onChange={(v) => {\r\n //setGuestAddressObj((prev) => ({...prev, ProfileAddressTypeSerNo : v.key}));\r\n console.log(\"setSelectedProfileAddressType\", v);\r\n setSelectedProfileAddressType(v);\r\n let tempobj = guestProfileObj.AddressList.find(x => x.ProfileAddressTypeSerNo == v.key);\r\n setGuestAddressObj(tempobj);\r\n setGuestProfileValidation((prev) => ({ ...prev, Street: \"\", CountrySerNo: \"\", StateSerNo: \"\", CitySerNo: \"\", PostCode: \"\" }))\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(v);\r\n setGuestAddressObj((prev) => ({ ...prev, Street: v }))\r\n handleAddressData(\"Address\", v)\r\n setGuestProfileValidation((prev) => ({ ...prev, Street: \"\" }))\r\n }}>Address\r\n
    \r\n
    \r\n {\r\n setGuestAddressObj((prev) => ({ ...prev, CountrySerNo: item.key }))\r\n setSelectedCountry(item)\r\n handleAddressData(\"Country\", item.key)\r\n if (guestAddressObj.CitySerNo != 0 || guestAddressObj.StateSerNo != 0 || guestAddressObj.PostCode != \"\") {\r\n setGuestAddressObj((prev) => ({ ...prev, StateSerNo: 0, CitySerNo: 0, PostCode: \"\" }))\r\n }\r\n }}\r\n searchable={[\"Search for Country\", \"No matching Country\"]}\r\n label=\"Country\"\r\n selectedSerNo={guestAddressObj.CountrySerNo}\r\n disabled={guestAddressObj.ProfileAddressTypeSerNo == 0 ? true : false}>\r\n
    \r\n
    \r\n {\r\n setGuestAddressObj((prev) => ({ ...prev, StateSerNo: item.key }))\r\n setSelectedState(item)\r\n handleAddressData(\"State\", item.key)\r\n }}\r\n searchable={[\"Search for State\", \"No matching State\"]}\r\n label=\"State\"\r\n selectedSerNo={guestAddressObj.StateSerNo}\r\n disabled={guestAddressObj.ProfileAddressTypeSerNo == 0 ? true : false}>\r\n
    \r\n
    \r\n {\r\n setGuestAddressObj((prev) => ({ ...prev, CitySerNo: item.key }))\r\n setSelectedCity(item)\r\n handleAddressData(\"City\", item.key)\r\n }}\r\n searchable={[\"Search for City\", \"No matching City\"]}\r\n label=\"City\"\r\n selectedSerNo={guestAddressObj.CitySerNo}\r\n disabled={guestAddressObj.ProfileAddressTypeSerNo == 0 ? true : false}>\r\n
    \r\n
    \r\n {\r\n setGuestAddressObj((prev) => ({ ...prev, PostCode: v }))\r\n handleAddressData(\"Pincode\", v)\r\n if (/^[0-9]+$/i.test(v)) {\r\n setGuestProfileValidation((prev) => ({ ...prev, PostCode: \"\" }))\r\n }\r\n else {\r\n setGuestProfileValidation((prev) => ({ ...prev, PostCode: \"Invalid Input\" }))\r\n }\r\n }}>Pincode\r\n
    \r\n
    \r\n
    \r\n Primary\r\n {\r\n console.log(v);\r\n setGuestAddressObj((prev) => ({ ...prev, IsPrimary: v }))\r\n handleAddressData(\"IsPrimary\", v)\r\n }} id=\"profile2\" value={guestAddressObj.IsPrimary}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    COMMUNICATION
    \r\n
    \r\n
    \r\n
    \r\n x.key == guestCommObj.CommunicationTypeSerNo)?.value}\r\n id=\"ExportReservation\"\r\n name=\"action\"\r\n onChange={(item) => {\r\n console.log(item.key);\r\n console.log(\"guestProfileObj\", guestProfileObj);\r\n setSelectedCommunicationType(item);\r\n let tempobj = guestProfileObj.CommunicationList.find(x => x.CommunicationTypeSerNo == item.key);\r\n setGuestCommObj(tempobj);\r\n setGuestProfileValidation((prev) => ({ ...prev, Mobile: \"\", Email: \"\", Landline: \"\" }))\r\n //handleCommList(\"dropdown\", item.key);\r\n }}\r\n className=\"button-layout-dd gray-btn w100p m0 mrgn-tp10 d-block action-multiselect-dd\">\r\n
    \r\n
    \r\n
    \r\n {\r\n setGuestCommObj((prev) => ({ ...prev, Mobile: v }))\r\n handleCommList(\"Mobile\", v)\r\n if (/^[0-9]+$/i.test(v)) {\r\n //if (v.match('[0-9]{10}')) {\r\n setGuestProfileValidation((prev) => ({ ...prev, Mobile: \"\" }))\r\n }\r\n else {\r\n setGuestProfileValidation((prev) => ({ ...prev, Mobile: \"Invalid Input\" }))\r\n }\r\n }}\r\n >Mobile No.\r\n
    \r\n
    \r\n {\r\n setGuestCommObj((prev) => ({ ...prev, Email: v }))\r\n handleCommList(\"Email\", v)\r\n }}>Email\r\n
    \r\n
    \r\n {\r\n setGuestCommObj((prev) => ({ ...prev, Landline: v }))\r\n handleCommList(\"LandLine\", v)\r\n if (/^[0-9]+$/.test(v)) {\r\n setGuestProfileValidation((prev) => ({ ...prev, Landline: \"\" }))\r\n }\r\n else {\r\n setGuestProfileValidation((prev) => ({ ...prev, Landline: \"Invalid Input\" }))\r\n }\r\n }}>Landline\r\n
    \r\n
    \r\n
    \r\n Primary\r\n {\r\n console.log(v);\r\n setGuestCommObj((prev) => ({ ...prev, IsPrimary: v }))\r\n handleCommList(\"IsPrimary\", v)\r\n }}\r\n disabled={guestCommObj.CommunicationTypeSerNo == 0 ? true : false}\r\n value={guestCommObj.IsPrimary} id=\"profile3\" >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    OTHER PARAMETERS
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n Membership\r\n \r\n (0)\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n Account Receivable\r\n \r\n (0)\r\n
    \r\n
    \r\n \r\n setShowPastFutureStaysModal(!showPastFutureStaysModal)}>\r\n Past Future Stays(0)\r\n
    \r\n \r\n
    \r\n Room Features \r\n ({rmFeatureData.length})\r\n
    \r\n
    \r\n \r\n
    \r\n Specials \r\n ({specialData.length})\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {showMembershipModal ? (\r\n setShowMembershipModal(false)}>\r\n
    \r\n
    \r\n
    \r\n

    Membership

    \r\n
    \r\n
    \r\n Reset\r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}>\r\n
    \r\n
    \r\n Membership No.\r\n
    \r\n
    \r\n Name on Card\r\n
    \r\n
    \r\n console.log(item, name)}>\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n {showAccountReceivableModal ? (\r\n setShowAccountReceivableModal(false)}>\r\n
    \r\n
    \r\n
    \r\n

    Account Receivable

    \r\n
    \r\n
    \r\n Reset\r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Account Receivable\r\n \r\n \r\n \r\n
    \r\n
    \r\n console.log(item, name)}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Credit Days\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Credit Limit\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Contact Profile\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Primary\r\n console.log(v)}\r\n id=\"Account1\"\r\n value={false}\r\n disabled={true}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n Restricted\r\n console.log(v)}\r\n id=\"Account2\"\r\n value={false}\r\n disabled={true}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n {showPastFutureStaysModal ? (\r\n setShowPastFutureStaysModal(false)}>\r\n
    \r\n
    \r\n
    \r\n

    Future & Past Stay

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Past stay
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n Number of VisitsP (4), G (12)\r\n
    \r\n
    \r\n Avg. Length of StayP (4), G (12)\r\n
    \r\n
    \r\n NightsP (4), G (12)\r\n
    \r\n
    \r\n Revenue85,000.00\r\n
    \r\n
    \r\n View Reservations\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    future stay
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n Number of VisitsP (4), G (12)\r\n
    \r\n
    \r\n Avg. Length of StayP (4), G (12)\r\n
    \r\n
    \r\n NightsP (4), G (12)\r\n
    \r\n
    \r\n Revenue85,000.00\r\n
    \r\n
    \r\n View Reservations\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n {showRoomSpecialsModal ? (\r\n // setShowRoomSpecialsModal(false)}>\r\n //
    \r\n //
    \r\n //
    \r\n //

    Specials

    \r\n //
    \r\n //
    \r\n // Reset\r\n // Apply\r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
      \r\n //
    • \r\n //
      Confirmation No.
      \r\n //
      12345678910
      \r\n //
    • \r\n //
    • \r\n //
      Guest Name
      \r\n //
      Ms. Preeti Iyengar
      \r\n //
    • \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n // {\r\n // console.log(\"checkbox is \" + ischecked);\r\n // }}>\r\n // Show Selected (6)\r\n // \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n // News Paper (3)\r\n // \r\n // \r\n // \r\n // \r\n //
    \r\n //
    \r\n // Pillow (2)\r\n // \r\n // \r\n // \r\n // \r\n //
    \r\n //
    \r\n // Electronics\r\n // \r\n // \r\n // \r\n //
    \r\n //
    \r\n // In Bathroom\r\n // \r\n // \r\n // \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    News Paper
    \r\n // {\r\n // console.log(\"checkbox is \" + ischecked);\r\n // }}>\r\n // Times of India\r\n // \r\n // {\r\n // console.log(\"checkbox is \" + ischecked);\r\n // }}>\r\n // Economic Times\r\n // \r\n // {\r\n // console.log(\"checkbox is \" + ischecked);\r\n // }}>\r\n // The Hindu\r\n // \r\n // {\r\n // console.log(\"checkbox is \" + ischecked);\r\n // }}\r\n // disabled=\"disabled\">\r\n // Disable Checkbox\r\n // \r\n // {\r\n // console.log(\"checkbox is \" + ischecked);\r\n // }}\r\n // disabled=\"disabled\">\r\n // Disable Checkbox\r\n // \r\n //
    pillow
    \r\n // {\r\n // console.log(\"checkbox is \" + ischecked);\r\n // }}>\r\n // Feather\r\n // \r\n // {\r\n // console.log(\"checkbox is \" + ischecked);\r\n // }}>\r\n // Memory Foam\r\n // \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n {\r\n setShowRoomSpecialsModal(false)\r\n setTimeout(() => {\r\n fillSpecialData();\r\n }, 100);\r\n }}\r\n >\r\n \r\n ) : null\r\n }\r\n {\r\n showRoomFeatureModal ?\r\n {\r\n setShowRoomFeatureModal(false)\r\n setTimeout(() => {\r\n fillRmFeaturesData();\r\n }, 100);\r\n }}\r\n >\r\n \r\n :\r\n null\r\n }\r\n {showCompanySearchFilterModal ? (\r\n // setShowCompanySearchFilterModal(false)}\r\n // handleOnSelect={(data) => {\r\n // setSelectedCompany(data);\r\n // setGuestProfileObj((prev) => ({ ...prev, CompanyProfileSerNo: data.AgentSerNo }));\r\n // setShowCompanySearchFilterModal(false);\r\n // }}\r\n // ProfileType=\"co\"\r\n // >\r\n setShowCompanySearchFilterModal(false)}\r\n OnSelect={(data) => {\r\n setSelectedCompany((prev)=>({...prev,AgentSerNo:data.ProfileSerNo,AgentName:data.CompanyName}));\r\n setGuestProfileObj((prev) => ({ ...prev, CompanyProfileSerNo: data.ProfileSerNo }));\r\n setShowCompanySearchFilterModal(false);\r\n }}\r\n >\r\n \r\n ) :\r\n null\r\n }\r\n \r\n );\r\n}\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport { InnTooltip, InnPrimaryButton, InnPlainButton, InnButtonTypeWithDropdown, InnModalPopup, InnActionButton, InnSingleDateSelection, InnSingleSelectDropdown, InnTextbox, InnSwitch, InnCheckbox } from \"../../../../component\";\r\nimport { IndiAgent, IndiCompany } from \"../indicators\";\r\nimport smsIcon from \"../../../../assets/images/sms-tooltip-icon.svg\";\r\nimport EmailTooltipIcon from \"../../../../assets/images/email-tooltip-icon.svg\";\r\nimport { GuestProfileIdentification } from \"../../general/masters/guest-profile-identification\";\r\nimport { GuestProfileRelationship } from \"../../general/masters/guest-profile-relationship\";\r\nimport { GuestProfileInternalComment } from \"../../general/masters/guest-profile-internal-comment\";\r\nimport { GuestProfileCorresPrivacy } from \"../../general/masters/guest-profile-corres-privacy\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { SpecialFeatureModal } from \"../../general/masters/special-feature-modal\";\r\nimport { RoomFeatureModal } from \"../../general/masters/room-feature-modal\";\r\nimport { GetProfileSpecial, GetProfileRoomFeature } from \"../../../../services/reservationService\";\r\nimport { GetGuestProfileInfoData } from \"../../../../services/guestProfileMasterService\";\r\nimport { AddEditGuestProfile } from \"../../general/masters/add-edit-guest-profile\";\r\n\r\nexport function TipGuestProfile(props) {\r\n const [showMembershipModal, setShowMembershipModal] = useState(false);\r\n const [showAccountReceivableModal, setShowAccountReceivableModal] = useState(false);\r\n const [showPastFutureStaysModal, setShowPastFutureStaysModal] = useState(false);\r\n const [showRoomFeaturesModal, setShowRoomFeaturesModal] = useState(false);\r\n const [showRoomAvailabilityModal, setShowRoomAvailabilityModal] = useState(false);\r\n const [showRoomSpecialsModal, setShowRoomSpecialsModal] = useState(false);\r\n const currUser = useSelector(currentUser);\r\n const [guestData, setGuestData] = useState({});\r\n const [specialData, setSpecialData] = useState([]);\r\n const [rmFeatureData, setRmFeatureData] = useState([]);\r\n const [showAddEditGuestModal,setShowAddEditGuestModal] = useState(false);\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n };\r\n const ActionOption = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n ];\r\n const selectdata = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n\r\n const GuestTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    {guestData.Title}{\"\"}{guestData.GuestName}
    \r\n
    \r\n {guestData.Mobile}\r\n \r\n SMS\r\n \r\n
    \r\n
    \r\n {guestData.Email}\r\n \r\n Email\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Edit\r\n {/* \r\n Action\r\n */}\r\n
    \r\n
    \r\n );\r\n }\r\n const MembershipToolTip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Gold Member (455851421)
    \r\n
    \r\n
    \r\n
    Mr. Rohit Sharma
    \r\n
    Enrollment Type : Online
    \r\n
    Expiration : 31 Dec, 2025
    \r\n
    \r\n
    \r\n
    \r\n setShowMembershipModal(!showMembershipModal)}>Edit\r\n \r\n Actions\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n const DueInStatusTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n Checked In By\r\n Mr. Hemang\r\n
    \r\n
    Date: 25th Sept.
    \r\n
    Time: 15:45
    \r\n
    PC: 192.168.600.789
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n const AccountReceivableTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Cadila Finance
    \r\n
    \r\n
    \r\n
    Credit Days : 30
    \r\n
    Credit Limit : 1,00,000.00
    \r\n
    Contact Profile : Mr. Rohit Goyal
    \r\n
    \r\n
    \r\n
    \r\n setShowAccountReceivableModal(!showAccountReceivableModal)}>\r\n Edit\r\n \r\n \r\n Actions\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n const RoomFeaturesTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Room Features ({rmFeatureData.length})
    \r\n
      \r\n {\r\n rmFeatureData.map((d) => {\r\n return (\r\n
    • \r\n {d.DisplayName}\r\n
    • \r\n );\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* {console.log(\"!showroomSpecialsModal\")} */}\r\n {\r\n setShowRoomFeaturesModal(!showRoomFeaturesModal)\r\n }}>\r\n Edit\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n const SpecialsTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Specials ({specialData.length})
    \r\n
      \r\n {\r\n specialData.map((d) => {\r\n return (\r\n
    • \r\n {d.Name}\r\n
    • \r\n );\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n setShowRoomSpecialsModal(true)}>Edit\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const fillGuestData = () => {\r\n console.log(\"props\", props.para)\r\n GetGuestProfileInfoData(currUser.ClientSerNo, props.para.ProfileSerNo).then(d => {\r\n if (d.data) {\r\n console.log(d.data)\r\n setGuestData(d.data);\r\n }\r\n })\r\n }\r\n const fillSpecialData = () => {\r\n if (props.para != undefined && props.para.ProfileSerNo != 0) {\r\n GetProfileSpecial(parseInt(currUser.ClientSerNo), parseInt(props.para.ProfileSerNo)).then((d) => {\r\n setSpecialData(d.data);\r\n });\r\n }\r\n }\r\n const fillRmFeaturesData = () => {\r\n if (props.para != undefined && props.para.ProfileSerNo != 0) {\r\n GetProfileRoomFeature(parseInt(currUser.ClientSerNo), parseInt(props.para.ProfileSerNo)).then((d) => {\r\n console.log(\"heyy\", d.data);\r\n setRmFeatureData(d.data);\r\n });\r\n }\r\n }\r\n useEffect(() => {\r\n fillSpecialData();\r\n fillRmFeaturesData();\r\n fillGuestData();\r\n }, [props.para.ProfileSerNo])\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {guestData.Title}{\"\"}{guestData.GuestName}\r\n \r\n \r\n \r\n Booking No: {guestData.BookingNo}\r\n
    \r\n
    \r\n
    \r\n {/* Res. No. 12345678910     Ref. No. 54238521{\" \"} */}\r\n \r\n\r\n \r\n {/* This will replace with updated component\r\n \r\n Action\r\n */}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/*
    \r\n Arvind Limited\r\n \r\n \r\n \r\n
    */}\r\n \r\n
    \r\n Designation\r\n {guestData.Designation}\r\n
    \r\n
    \r\n Department\r\n {guestData.Department}\r\n
    \r\n
    \r\n Incognito\r\n console.log(v)} id=\"Guest1\" value={guestData.IsIncognito}>\r\n
    \r\n
    \r\n VIP Status\r\n {guestData.VIPName}\r\n
    \r\n
    \r\n Nationality\r\n {guestData.Nationality}\r\n
    \r\n
    \r\n setShowAddEditGuestModal(true)}>View\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n Membership\r\n (0)\r\n
    \r\n
    \r\n {/* \r\n
    \r\n Identification\r\n (14)\r\n
    \r\n */}\r\n \r\n {/* \r\n
    \r\n Relationship\r\n (14)\r\n
    \r\n */}\r\n \r\n \r\n
    \r\n\r\n Account Receivable\r\n\r\n (0)\r\n
    \r\n
    \r\n {/* \r\n
    \r\n Internal Comment\r\n (14)\r\n
    \r\n */}\r\n \r\n
    \r\n
    \r\n {/* \r\n
    \r\n Past Future Stays\r\n (2)\r\n
    \r\n */}\r\n
    setShowPastFutureStaysModal(!showPastFutureStaysModal)}>Past Future Stays(3)
    \r\n \r\n
    \r\n Room Features\r\n ({rmFeatureData.length})\r\n
    \r\n
    \r\n \r\n
    \r\n Specials\r\n ({specialData.length})\r\n
    \r\n
    \r\n {/* \r\n
    \r\n Correspondence and Privacy\r\n (2)\r\n
    \r\n */}\r\n \r\n
    \r\n
    \r\n
    \r\n {showMembershipModal ? (\r\n setShowMembershipModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Membership

    \r\n
    \r\n
    \r\n Reset\r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n \r\n
    \r\n
    \r\n \r\n Membership No.\r\n \r\n
    \r\n
    \r\n \r\n Name on Card\r\n \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null\r\n }\r\n {showAccountReceivableModal ? (\r\n setShowAccountReceivableModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Account Receivable

    \r\n
    \r\n
    \r\n Reset\r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Account Receivable\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Credit Days\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Credit Limit\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Contact Profile\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Primary\r\n console.log(v)} id=\"Account1\" value={false} disabled={true}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n Restricted\r\n console.log(v)} id=\"Account2\" value={false} disabled={true}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null\r\n }\r\n {showPastFutureStaysModal ? (\r\n setShowPastFutureStaysModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Future & Past Stay

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Past stay
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Number of VisitsP (4), G (12)
    \r\n
    Avg. Length of StayP (4), G (12)
    \r\n
    NightsP (4), G (12)
    \r\n
    Revenue85,000.00
    \r\n
    \r\n View Reservations\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    future stay
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Number of VisitsP (4), G (12)
    \r\n
    Avg. Length of StayP (4), G (12)
    \r\n
    NightsP (4), G (12)
    \r\n
    Revenue85,000.00
    \r\n
    \r\n View Reservations\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null\r\n }\r\n {showRoomFeaturesModal ? (\r\n {\r\n setShowRoomFeaturesModal(false)\r\n setTimeout(() => {\r\n fillRmFeaturesData();\r\n }, 100);\r\n }}\r\n >\r\n \r\n ) : null}\r\n {showRoomSpecialsModal ? (\r\n {\r\n setShowRoomSpecialsModal(false)\r\n setTimeout(() => {\r\n fillSpecialData();\r\n }, 100);\r\n }}\r\n >\r\n \r\n ) : null}\r\n \r\n
    \r\n {showAddEditGuestModal ? (\r\n {\r\n setShowAddEditGuestModal(false);\r\n }}\r\n />\r\n ) : null}\r\n
    \r\n\r\n )\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnButtonTypeWithDropdown,\r\n InnCheckbox,\r\n InnLoader,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnSingleDateSelection,\r\n InnTimeSelection,\r\n InnFileUpload,\r\n InnSwitch,\r\n InnContextMenu,\r\n InnTextarea,\r\n InnTableGrid,\r\n InnDataGrid,\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon.svg\";\r\nimport settingicon from \"../../../../assets/images/settings-icon.svg\";\r\nimport smsIcon from \"../../../../assets/images/sms-tooltip-icon.svg\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport {\r\n cmbGetMemberShipLvl,\r\n cmbGetRateCodeMaster,\r\n cmbGetReservationStatus,\r\n cmbGetReservationTypeMaster,\r\n cmbGetRoomTypeMaster,\r\n cmbGetVIPStatusMaster,\r\n GetReservationList,\r\n GetPropertyParameterByKeys,\r\n} from \"../../../../services/reservationService\";\r\nimport { ReservationListFilterModel } from \"../../../../utils/Model/ReservationListFilterModel\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { AddEditGuestProfile } from \"./add-edit-guest-profile\";\r\nimport { GetGuestProfileList } from \"../../../../services/guestProfileMasterService\";\r\nimport rightarrow from \"../../../../assets/images/right-circle-arrow-gray.svg\";\r\nimport { AgentModalPopup } from \"../../reservation/modalPopup/AgentModalPopup\";\r\nimport { TipGuestProfile } from \"../../reservation/tooltips/tip-guest-profile\";\r\n\r\n\r\n\r\nexport function GuestProfileMaster(props) {\r\n /* Page content height set start */\r\n var Pageheight = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);\r\n var GridHeight = Pageheight - 153;\r\n /* Page content height set end */\r\n const history = useHistory();\r\n const currUser = useSelector(currentUser);\r\n const propertyParameters = [\"BusinessDate\"];\r\n // Variable to show hide modal popup start\r\n\r\n const [showAdvancedSearchModal, setShowAdvancedSearchModal] = useState(false);\r\n const [showNewReservationModal, setShowNewReservationModal] = useState(false);\r\n const [showCompanySearchFilterModal, setShowCompanySearchFilterModal] = useState(false);\r\n const [showProfileKeywordsModal, setShowProfileKeywordsModal] = useState(false);\r\n\r\n const [guestTooltip, setGuestTooltip] = useState(false);\r\n const [showRoomFeaturesModal, setShowRoomFeaturesModal] = useState(false);\r\n const [showRoomAvailabilityModal, setShowRoomAvailabilityModal] = useState(false);\r\n // Variable to show hide modal popup end\r\n /* Page content height set start */\r\n var Pageheight = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);\r\n\r\n /* Page content height set end */\r\n const reservationObj = {\r\n ClientSerNo: 1201,\r\n PropertySerNo: 1,\r\n ReservationSerNo: 10,\r\n };\r\n\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n // page load - one time exection when page is loaded\r\n useEffect(() => {\r\n cmbGetMemberShipLvl(currUser.ClientSerNo).then((d) => {\r\n setFilMembershipLvlData(d.data);\r\n });\r\n cmbGetRateCodeMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n setFilRateCodeData(d.data);\r\n });\r\n cmbGetReservationStatus().then((d) => {\r\n setFilResStatusData(d.data);\r\n });\r\n cmbGetReservationTypeMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n setFilResTypeData(d.data);\r\n });\r\n cmbGetRoomTypeMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n setFilRoomTypeData(d.data);\r\n });\r\n cmbGetVIPStatusMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n setFilVIPStatusData(d.data);\r\n });\r\n GetPropertyParameterByKeys(currUser.ClientSerNo, currUser.PropertySerNo, propertyParameters).then((d) => {\r\n console.log(d.data);\r\n let obj = d.data.find((x) => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(d.data[0].value);\r\n }\r\n });\r\n }, []);\r\n // page load - one time exection when page is loaded\r\n //#region Data Grid Start\r\n const defaultFilterObj = {\r\n ClientSerNo: currUser.ClientSerNo,\r\n PageNumber: 1,\r\n SortCol: \"GuestName\",\r\n SortType: \"ASC\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Mobile: \"\",\r\n Email: \"\",\r\n MembershipNo: \"\",\r\n DOB: \"\",\r\n CompanyProfileSerNo: 0,\r\n IdentificationNo: \"\"\r\n }\r\n const [page, setPage] = useState(1);\r\n const [pageCount, setPageCount] = useState(1);\r\n const [gridSelectedItem, SetgridSelectedItem] = useState([]);\r\n const [temp, settemp] = useState(false);\r\n const [guestProfileFilterObj, setGuestProfileFilterObj] = useState({\r\n ClientSerNo: currUser.ClientSerNo,\r\n PageNumber: 1,\r\n SortCol: \"GuestName\",\r\n SortType: \"ASC\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Mobile: \"\",\r\n Email: \"\",\r\n MembershipNo: \"\",\r\n DOB: \"\",\r\n CompanyProfileSerNo: 0,\r\n IdentificationNo: \"\"\r\n })\r\n const [selectedBirthDate, setSelectedBirthDate] = useState(\"\");\r\n const [guestProfileObj, setGuestProfileObj] = useState({\r\n ClientSerNo: currUser.ClientSerNo,\r\n ProfileSerNo: 0,\r\n Mode: \"\"\r\n })\r\n const [guestToolTipObj, setGuestToolTipObj] = useState({})\r\n //grid header\r\n const columHeader = [\r\n { key: \"Guest Name\", value: \"GuestName\", type: \"lnk\", sorting: \"Y\" },\r\n { key: \"Mobile No.\", value: \"Mobile\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"E mail Address\", value: \"Email\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Nationality\", value: \"Nationality\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Photo Identification Type\", value: \"IDType\", type: \"txt\", sorting: \"Y\", align: \"left\" },\r\n { key: \"Company Name\", value: \"CompanyName\", type: \"txt\", sorting: \"Y\", align: \"left\" },\r\n { key: \"Membership Level\", value: \"MembershipLevelName\", type: \"txt\", sorting: \"Y\", align: \"left\" },\r\n { key: \"Incognito\", value: \"IsIncognito\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"VIP\", value: \"VIPName\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n const [filterData, setfilterData] = useState([]);\r\n\r\n const optBtnData = [\r\n { key: \"Edit Profile\", value: \"Edit Profile\" },\r\n { key: \"Merge Profile\", value: \"Merge Profile\" },\r\n { key: \"Create A Reservation\", value: \"Create A Reservation\" },\r\n ];\r\n const profileTypeData = [\r\n { key: \"Guest\", value: \"Guest\" },\r\n { key: \"Company\", value: \"Company\" },\r\n ];\r\n\r\n const handleMultiActionMenu = (item) => { };\r\n const setSelectedItem = (items) => {\r\n SetgridSelectedItem(items);\r\n settemp(!temp);\r\n };\r\n\r\n\r\n const fillDataGrid = () => {\r\n console.log(\"guestProfileFilterObj\", guestProfileFilterObj);\r\n GetGuestProfileList(guestProfileFilterObj).then((d) => {\r\n console.log(d.data);\r\n setfilterData(d.data);\r\n let pCount = 0;\r\n let pModuler;\r\n // try {\r\n // pCount = parseInt(parseInt(d.data[0].TotalRows) / 50);\r\n // try {\r\n // pModuler = parseInt(parseInt(d.data[0].TotalRows) % 50);\r\n // if (pModuler > 0) pCount = pCount + 1;\r\n // } catch (e1) { }\r\n // setPageCount(pCount);\r\n // } catch (e) { }\r\n if (d.data.length > 0) {\r\n let temp = parseInt(d.data[0].TotalRows) / 50;\r\n setPageCount(Math.ceil(temp));\r\n } else {\r\n setPageCount(1);\r\n }\r\n setActive(false);\r\n });\r\n };\r\n\r\n //#endregion Data Grid End\r\n const [isActive, setActive] = useState(false);\r\n const ActionOption = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n ];\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n const [showLeftBlueBar, setshowLeftBlueBar] = useState(false);\r\n\r\n\r\n //#region Tooltip\r\n const ArrivalStatusTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n Expected arrival for next 180 days with reservation status as confirm, order by arrival date\r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n //#endregion Tooltip\r\n //#region Dynamic filter variable\r\n const ResetFilter = () => {\r\n\r\n // setSelectedFirstName(\"\");\r\n // setSelectedLastName(\"\");\r\n // setSelectedMembershipNo(\"\");\r\n setSelectedBirthDate(\"\")\r\n setSelectedCompany({ AgentName: \"Select\", AgentSerNo: \"0\" });\r\n setGuestProfileFilterObj({\r\n ClientSerNo: currUser.ClientSerNo,\r\n PageNumber: 1,\r\n SortCol: \"GuestName\",\r\n SortType: \"ASC\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Mobile: \"\",\r\n Email: \"\",\r\n MembershipNo: \"\",\r\n DOB: \"\",\r\n CompanyProfileSerNo: 0,\r\n IdentificationNo: \"\"\r\n })\r\n\r\n\r\n };\r\n const MoreFilterOption = [\r\n { key: \"filIdentification\", value: \"Photo Identification No.\", ObjectName: \"IdentificationNo\" },\r\n { key: \"filCompany\", value: \"Company\", ObjectName: \"CompanyProfileSerNo\" },\r\n { key: \"filMobileNo\", value: \"Mobile No.\", ObjectName: \"Mobile\" },\r\n { key: \"filEmailID\", value: \"Email ID\", ObjectName: \"Email\" },\r\n { key: \"filMembershipNo\", value: \"Membership No.\", ObjectName: \"MembershipNo\" },\r\n { key: \"filBirthDate\", value: \"Birth Date\", ObjectName: \"DOB\" },\r\n ];\r\n const selectdata = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n const [colList, setColList] = useState([]);\r\n const [colListKeys, setColListKeys] = useState([]);\r\n const [showFilter, setShowFilter] = useState(false);\r\n const [selectedCompany, setSelectedCompany] = useState({\r\n AgentName: \"Select\",\r\n AgentSerNo: \"0\",\r\n });\r\n const [filMembershipLvlData, setFilMembershipLvlData] = useState([]);\r\n const [filRateCodeData, setFilRateCodeData] = useState([]);\r\n const [filResStatusData, setFilResStatusData] = useState([]);\r\n const [filResTypeData, setFilResTypeData] = useState([]);\r\n const [filRoomTypeData, setFilRoomTypeData] = useState([]);\r\n const [filVIPStatusData, setFilVIPStatusData] = useState([]);\r\n //#endregion\r\n //#region Dynamic filter\r\n useEffect(() => {\r\n let temp = [];\r\n if (colList && colList.length > 0) {\r\n colList.map((d) => {\r\n temp.push(d.key);\r\n });\r\n }\r\n setColListKeys(temp);\r\n }, [colList]);\r\n useEffect(() => {\r\n let filterKeys = Object.keys(guestProfileFilterObj);\r\n let tempObj = guestProfileFilterObj;\r\n filterKeys.forEach((x) => {\r\n if (MoreFilterOption.find((o) => o.ObjectName === x)) {\r\n if (!colListKeys.includes(MoreFilterOption.find((o) => o.ObjectName === x).key)) {\r\n if (tempObj[x] !== null && tempObj[x] !== undefined && tempObj[x] !== 0 && tempObj[x] !== false && tempObj[x] !== \"\") {\r\n if (x == \"DOB\") {\r\n setSelectedBirthDate(\"\")\r\n }\r\n tempObj[x] = defaultFilterObj[x];\r\n console.log(tempObj[x], \"From Remove.\");\r\n }\r\n }\r\n }\r\n });\r\n }, [colListKeys.length]);\r\n useEffect(() => {\r\n fillDataGrid();\r\n }, [page, guestProfileFilterObj.SortCol, guestProfileFilterObj.SortType]);\r\n\r\n const filIdentification = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {\r\n setGuestProfileFilterObj((prev) => ({ ...prev, IdentificationNo: v }))\r\n //setSelectedLastName(v);\r\n }}\r\n value={guestProfileFilterObj.IdentificationNo}>Photo Identification No.{\" \"}\r\n \r\n
    \r\n {\r\n setGuestProfileFilterObj((prev) => ({ ...prev, IdentificationNo: \"\" }))\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filIdentification\");\r\n setColList(c);\r\n }}>\r\n
    \r\n
    \r\n );\r\n };\r\n const filCompany = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {\r\n setShowCompanySearchFilterModal(!showCompanySearchFilterModal);\r\n }}\r\n >\r\n Company\r\n \r\n {\r\n setShowCompanySearchFilterModal(!showCompanySearchFilterModal);\r\n }}\r\n >\r\n \r\n \r\n
    \r\n {\r\n setGuestProfileFilterObj((prev) => ({ ...prev, CompanyProfileSerNo: 0 }))\r\n setSelectedCompany({ AgentName: \"Select\", AgentSerNo: \"0\" });\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filCompany\");\r\n setColList(c);\r\n }}>\r\n
    \r\n
    \r\n );\r\n };\r\n const filMobileNo = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {\r\n setGuestProfileFilterObj((prev) => ({ ...prev, Mobile: v }))\r\n //setSelectedLastName(v);\r\n }}\r\n value={guestProfileFilterObj.Mobile}>Mobile No.{\" \"}\r\n \r\n
    \r\n {\r\n setGuestProfileFilterObj((prev) => ({ ...prev, Mobile: \"\" }))\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filMobileNo\");\r\n setColList(c);\r\n }}>\r\n
    \r\n
    \r\n )\r\n }\r\n const filEmailID = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {\r\n setGuestProfileFilterObj((prev) => ({ ...prev, Email: v }))\r\n //setSelectedLastName(v);\r\n }}\r\n value={guestProfileFilterObj.Email}>Email ID{\" \"}\r\n \r\n
    \r\n {\r\n setGuestProfileFilterObj((prev) => ({ ...prev, Email: \"\" }))\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filEmailID\");\r\n setColList(c);\r\n }}>\r\n
    \r\n
    \r\n );\r\n };\r\n const filMembershipNo = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {\r\n setGuestProfileFilterObj((prev) => ({ ...prev, MembershipNo: v }))\r\n //setSelectedLastName(v);\r\n }}\r\n value={guestProfileFilterObj.MembershipNo}>Membership No{\" \"}\r\n \r\n
    \r\n {\r\n setGuestProfileFilterObj((prev) => ({ ...prev, MembershipNo: \"\" }))\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filMembershipNo\");\r\n setColList(c);\r\n }}>\r\n
    \r\n
    \r\n )\r\n }\r\n const filBirthDate = () => {\r\n return (\r\n
    \r\n
    \r\n {\r\n setGuestProfileFilterObj((prev) => ({ ...prev, DOB: e }))\r\n setSelectedBirthDate(e);\r\n }}\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Birth Date\">\r\n {\r\n setGuestProfileFilterObj((prev) => ({ ...prev, DOB: \"\" }))\r\n setSelectedBirthDate(\"\");\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filBirthDate\");\r\n setColList(c);\r\n }}>\r\n
    \r\n
    \r\n )\r\n }\r\n\r\n //#endregion\r\n\r\n return (\r\n
    \r\n {showNewReservationModal ? (\r\n {\r\n setShowNewReservationModal(false);\r\n setTimeout(() => {\r\n fillDataGrid();\r\n }, 1500);\r\n }}\r\n />\r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Profile

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* {\r\n setshowLeftBlueBar(true);\r\n }}> */}\r\n {\r\n // setshowLeftBlueBar(true);\r\n // }}\r\n >\r\n\r\n \r\n {/* \r\n \r\n */}\r\n
    \r\n
    \r\n {\r\n setGuestProfileObj((prev) => ({ ...prev, ProfileSerNo: 0, Mode: \"Add\" }))\r\n setShowNewReservationModal(!showNewReservationModal)\r\n }}>\r\n + New Profile\r\n \r\n \r\n Export\r\n \r\n handleMultiActionMenu(item)}>\r\n Actions (50)\r\n \r\n
    setShowAdvancedSearchModal(!showAdvancedSearchModal)}>\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* */}\r\n {\r\n console.log(items);\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n uniqueColumn=\"ProfileSerNo\"\r\n fixedHeaderNo={2}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n //uniqueColumn=\"ReservationSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n if (item.key == \"Edit Profile\") {\r\n setShowNewReservationModal(!showNewReservationModal);\r\n }\r\n }}\r\n handleLinkClick={(d) => { console.log(d);setGuestToolTipObj(d); setGuestTooltip(true) }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n setGuestProfileObj((prev) => ({ ...prev, ProfileSerNo: rowdata.ProfileSerNo, Mode: \"Edit\" }))\r\n //setSelectedReservation(rowdata);\r\n // handleRmAssignmentData([rowdata]);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n console.log(\"sn,stsn,st\", sn, st);\r\n setGuestProfileFilterObj((prev) => ({ ...prev, SortCol: sn, SortType: st }))\r\n }}>\r\n {\r\n setPage(v);\r\n setGuestProfileFilterObj((prev) => ({ ...prev, PageNumber: v }))\r\n }}\r\n style={{ float: \"right\" }}\r\n />\r\n
    \r\n {/* blue bg inside menu Start */}\r\n {showLeftBlueBar == true &&\r\n {\r\n /* { setshowLeftBlueBar(!showLeftBlueBar) }}> */\r\n }}\r\n {/* blue bg inside menu End */}\r\n {/* Advanced Filter Popup Start */}\r\n {showAdvancedSearchModal ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Filters

    \r\n
    \r\n
    \r\n
    \r\n {\r\n setColList(items);\r\n setColListKeys(item);\r\n if (item.length > 0) {\r\n setShowFilter(true);\r\n } else {\r\n setShowFilter(false);\r\n }\r\n }}\r\n label=\"More Filters\"\r\n searchable={[\"Search\", \"No matching property\"]}\r\n className=\"button-layout-dd gray-btn\"\r\n buttonLayout={true}>\r\n
    \r\n ResetFilter()\r\n // setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }>\r\n Reset\r\n \r\n {\r\n if (page === 1) fillDataGrid();\r\n else setPage(1);\r\n setShowAdvancedSearchModal(!showAdvancedSearchModal);\r\n }}>\r\n Apply\r\n \r\n setShowAdvancedSearchModal(!showAdvancedSearchModal)}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setGuestProfileFilterObj((prev) => ({ ...prev, FirstName: v }))\r\n //setSelectedFirstName(v);\r\n }}\r\n value={guestProfileFilterObj.FirstName}>\r\n First Name\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setGuestProfileFilterObj((prev) => ({ ...prev, LastName: v }))\r\n //setSelectedLastName(v);\r\n }}\r\n value={guestProfileFilterObj.LastName}>\r\n Last Name\r\n \r\n
    \r\n
    \r\n\r\n\r\n {showFilter ? (\r\n <>\r\n {colList.map((o) =>\r\n o.key === \"filIdentification\" ? (\r\n filIdentification()\r\n ) : o.key === \"filCompany\" ? (\r\n filCompany()\r\n ) : o.key === \"filMobileNo\" ? (\r\n filMobileNo()\r\n ) : o.key === \"filEmailID\" ? (\r\n filEmailID()\r\n ) : o.key === \"filMembershipNo\" ? (\r\n filMembershipNo()\r\n ) : o.key === \"filBirthDate\" ? (\r\n filBirthDate()\r\n ) : (\r\n <>404\r\n )\r\n )}\r\n \r\n ) : (\r\n <>\r\n )}\r\n
    \r\n
    \r\n ) : null}\r\n {/* Create New Reservation Modal Popup start */}\r\n\r\n {/* Create New Reservation Modal Popup end */}\r\n {/* Create Membership Modal Popup start */}\r\n\r\n {/* Create Membership Modal Popup end */}\r\n {/* Create Identification Modal Popup start */}\r\n\r\n {/* Create Identification Modal Popup end */}\r\n {/* Create Reservation Modal Popup start */}\r\n\r\n {/* Create Reservation Modal Popup end */}\r\n {/* Create Account Receivable Modal Popup start */}\r\n\r\n {/* Create Account Receivable Modal Popup end */}\r\n {/* Create Internal Comment Modal Popup start */}\r\n\r\n {/* Create Internal Comment Modal Popup end */}\r\n {/* Create Past Future Modal Popup start */}\r\n\r\n {/* Create Past Future Modal Popup end */}\r\n {/* Create Room Features Modal Popup start */}\r\n {showRoomFeaturesModal ? (\r\n setShowRoomFeaturesModal(false)}>\r\n
    \r\n
    \r\n
    \r\n

    Room Features

    \r\n
    \r\n
    \r\n Reset\r\n Apply\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      Confirmation No.
      \r\n
      12345678910
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      Ms. Preeti Iyengar
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Show Selected (6)\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    In Room
    \r\n
    \r\n console.log(item, name)}>\r\n
    \r\n
    \r\n console.log(item, name)}>\r\n
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Adjoining Room\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Inter-Connected Room\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Accessible Room\r\n \r\n
    \r\n
    Other Preferences
    \r\n
    \r\n Room Location (2)\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n Bathroom Amenities\r\n (2)\r\n
    \r\n
    \r\n
    \r\n
    \r\n setShowRoomAvailabilityModal(!showRoomAvailabilityModal)}>Check Availability\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Room location
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n High Floor\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Low Floor\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Pool Side\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Corner\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Near to Elevator\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Away form Elevator\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Sea Facing\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Partial sea facing view\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Garden View\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n With Balcony\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Quiet\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n disabled=\"disabled\">\r\n Disable Checkbox\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}\r\n disabled=\"disabled\">\r\n Disable Checkbox\r\n \r\n
    Bathroom Amenities
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Some Text\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Some Text\r\n \r\n
    Others
    \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Some Text\r\n \r\n {\r\n console.log(\"checkbox is \" + ischecked);\r\n }}>\r\n Some Text\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n {/* CreateRoom Features Modal Popup end */}\r\n {/* Create specials Modal Popup start */}\r\n\r\n {/* Create specials Modal Popup end */}\r\n {/* Create Profile Keywords Modal Popup start */}\r\n {showProfileKeywordsModal ? (\r\n setShowProfileKeywordsModal(false)}>\r\n
    \r\n
    \r\n
    \r\n

    Profile Keywords

    \r\n
    \r\n
    \r\n Edit\r\n Reset\r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n LIST\r\n +\r\n
    \r\n
    List Name
    \r\n
    List Name
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    PROFILE KEYWORDS
    \r\n
    \r\n console.log(item, name)}>\r\n
    \r\n
    \r\n \r\n value\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n {showCompanySearchFilterModal ? (\r\n setShowCompanySearchFilterModal(false)}\r\n handleOnSelect={(data) => {\r\n setSelectedCompany(data);\r\n setGuestProfileFilterObj((prev) => ({ ...prev, CompanyProfileSerNo: data.AgentSerNo }));\r\n setShowCompanySearchFilterModal(false);\r\n }}\r\n ProfileType=\"co\"\r\n >\r\n ) :\r\n null\r\n }\r\n {/* Create Profile Keywords Modal Popup end */}\r\n {/* Create Correspondence Modal Popup start */}\r\n\r\n {/* Create Correspondence Modal Popup end */}\r\n {\r\n guestTooltip ? (\r\n { setGuestTooltip(false); setGuestToolTipObj({})}}>\r\n )\r\n : null\r\n }\r\n
    \r\n );\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnButtonTypeWithDropdown,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnSingleDateSelection,\r\n InnFileUpload,\r\n InnSwitch,\r\n useConfirm,\r\n InnLoader,\r\n} from \"../../../../component\";\r\n\r\nimport { AddEditCompanyProfileIdentification, GetCompanyProfileIdentification, GetCountryMaster, GetIdentificationTypeMaster } from \"../../../../services/guestProfileMasterService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport default function CompanyProfileIdentification(props) {\r\n const [showCompanyProfileIdentificationModal, setShowCompanyProfileIdentificationModal] = useState(false);\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"CompanyProfileSerNo\": parseInt(props.para),\r\n \"ProfileIdentificationSerNo\": 0,\r\n \"IdentificationTypeSerNo\": 0,\r\n \"IdentificationNo\": \"\",\r\n \"DateofIssue\": \"\",\r\n \"DateofExpiry\": \"\",\r\n \"IssuingCountrySerNo\": 0,\r\n \"PlaceofIssue\": \"\",\r\n \"BacksideImagePath\": \"\",\r\n \"FrontsideImagePath\": \"\",\r\n \"IsPrimary\": false,\r\n \"Mode\": \"View\"\r\n }\r\n\r\n const validationObj = {\r\n \"IdentificationTypeSerNo\": \"\",\r\n \"IdentificationNo\": \"\",\r\n \"IssuingCountrySerNo\": \"\",\r\n \"PlaceofIssue\": \"\",\r\n \"BacksideImagePath\": \"\",\r\n \"FrontsideImagePath\": \"\",\r\n }\r\n\r\n const [isActive, setIsActive] = useState(false);\r\n const [companyProfileIdentificationData, SetCompanyProfileIdentificationData] = useState([]);\r\n const [companyProfileIdentificationObj, SetCompanyProfileIdentificationObj] = useState(defaultObj);\r\n const [companyProfileIdentificationValidation, SetCompanyProfileIdentificationValidation] = useState(validationObj);\r\n const [selectedDocType, setSelectedDocType] = useState(0);\r\n const [ddlIdentificationType, setDdlIdentificationType] = useState([]);\r\n const [ddlIssueCountry, setDdlIssueCountry] = useState([]);\r\n\r\n useEffect(() => {\r\n fillProfileIdentification();\r\n loadIdentificationType();\r\n loadIssueCountry();\r\n }, []);\r\n\r\n const clearValidation = () => {\r\n SetCompanyProfileIdentificationValidation(validationObj);\r\n }\r\n\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (companyProfileIdentificationObj.IdentificationTypeSerNo == 0) {\r\n isValid = false;\r\n SetCompanyProfileIdentificationValidation(prev => ({ ...prev, IdentificationTypeSerNo: \"Please Select Identification Type\" }));\r\n }\r\n if (companyProfileIdentificationObj.IdentificationNo == \"\" || companyProfileIdentificationObj.IdentificationNo == null) {\r\n isValid = false;\r\n SetCompanyProfileIdentificationValidation(prev => ({ ...prev, IdentificationNo: \"Please Enter Identification Number\" }));\r\n }\r\n if (companyProfileIdentificationObj.PlaceofIssue == \"\" || companyProfileIdentificationObj.PlaceofIssue == null) {\r\n isValid = false;\r\n SetCompanyProfileIdentificationValidation(prev => ({ ...prev, PlaceofIssue: \"Please Enter Place of Issue\" }));\r\n }\r\n if (companyProfileIdentificationObj.IssuingCountrySerNo == 0) {\r\n isValid = false;\r\n SetCompanyProfileIdentificationValidation(prev => ({ ...prev, IssuingCountrySerNo: \"Please Select Issuing Country\" }));\r\n }\r\n return isValid;\r\n }\r\n\r\n const fillProfileIdentification = () => {\r\n GetCompanyProfileIdentification(parseInt(currUser.ClientSerNo), parseInt(props.para)).then(d => {\r\n SetCompanyProfileIdentificationData(d.data);\r\n });\r\n }\r\n\r\n const loadIdentificationType = () => {\r\n GetIdentificationTypeMaster().then(d => {\r\n let IdentificationType = [{ key: 0, value: \"Select\" }];\r\n d.data.map(ele => {\r\n IdentificationType.push({ key: parseInt(ele.IdentificationTypeSerNo), value: (ele.Name) });\r\n })\r\n setDdlIdentificationType(IdentificationType);\r\n })\r\n }\r\n\r\n const loadIssueCountry = () => {\r\n GetCountryMaster(parseInt(currUser.ClientSerNo)).then(d => {\r\n let IssueCountry = [{ key: 0, value: \"Select\" }];\r\n d.data.map(ele => {\r\n IssueCountry.push({ key: (ele.CountrySerNo), value: (ele.Name) });\r\n })\r\n setDdlIssueCountry(IssueCountry);\r\n })\r\n }\r\n\r\n const HandleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n AddEditCompanyProfileIdentification(companyProfileIdentificationObj).then(d => {\r\n if (d.data.Code == \"200\") {\r\n setIsActive(false)\r\n alertFunction(d.data.Message);\r\n fillProfileIdentification();\r\n SetCompanyProfileIdentificationObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alertFunction(\"Something Went Wrong\");\r\n }\r\n })\r\n } else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n\r\n const HandleOnAddClick = () => {\r\n setSelectedDocType(0);\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n SetCompanyProfileIdentificationObj(obj);\r\n }\r\n\r\n const HandleOnEditClick = () => {\r\n if (companyProfileIdentificationObj.PlaceofIssue == \"\") {\r\n alertFunction(\"No Profile Identification Selected.\");\r\n } else {\r\n SetCompanyProfileIdentificationObj(prev => ({ ...prev, Mode: \"Edit\", ClientSerNo: parseInt(currUser.ClientSerNo) }));\r\n }\r\n }\r\n\r\n const HandleOnCancelClick = () => {\r\n // setSelectedDocType(0);\r\n clearValidation();\r\n let existingObj = companyProfileIdentificationData.find(x => x.ProfileIdentificationSerNo == companyProfileIdentificationObj.ProfileIdentificationSerNo);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\"\r\n SetCompanyProfileIdentificationObj(existingObj)\r\n } else {\r\n if (companyProfileIdentificationObj.ProfileIdentificationSerNo == 0 && companyProfileIdentificationData.length > 0) {\r\n let temp = companyProfileIdentificationData[0];\r\n temp.Mode = \"View\";\r\n SetCompanyProfileIdentificationObj(temp);\r\n } else {\r\n SetCompanyProfileIdentificationObj(defaultObj);\r\n }\r\n }\r\n\r\n // if (companyProfileIdentificationData.length > 0) {\r\n // let existingObj;\r\n // if (companyProfileIdentificationObj.ProfileIdentificationSerNo != 0) {\r\n // existingObj = companyProfileIdentificationData.find(x => x.ProfileIdentificationSerNo == companyProfileIdentificationObj.ProfileIdentificationSerNo);\r\n // } else {\r\n // existingObj = companyProfileIdentificationData[0];\r\n // }\r\n // if (companyProfileIdentificationObj.Mode == \"Add\") {\r\n // if (existingObj != undefined) {\r\n // existingObj.Mode = 'View';\r\n // setSelectedDocType(existingObj.IdentificationTypeSerNo);\r\n // SetCompanyProfileIdentificationObj(existingObj);\r\n // } else {\r\n // SetCompanyProfileIdentificationObj(defaultObj);\r\n // }\r\n // }\r\n\r\n // if (companyProfileIdentificationObj.Mode == \"Edit\") {\r\n // if (existingObj != undefined) {\r\n // existingObj.Mode = 'View';\r\n // setSelectedDocType(existingObj.IdentificationTypeSerNo)\r\n // SetCompanyProfileIdentificationObj(existingObj);\r\n // } else {\r\n // SetCompanyProfileIdentificationObj(defaultObj);\r\n // }\r\n // }\r\n // }\r\n }\r\n\r\n const HandlePopupEditClick = () => {\r\n setShowCompanyProfileIdentificationModal(!showCompanyProfileIdentificationModal);\r\n SetCompanyProfileIdentificationObj(defaultObj);\r\n }\r\n\r\n const selectData = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n\r\n const ActionOption = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n ];\r\n\r\n const IdentificationTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n {companyProfileIdentificationData.map(d => {\r\n return (\r\n <>\r\n
    \r\n
    {d.Name}
    \r\n
    \r\n
    \r\n
    Issue Date : {d.DateofIssue}
    \r\n
    Expire Date : {d.DateofExpiry}
    \r\n
    \r\n \r\n )\r\n })}\r\n
    \r\n
    \r\n {\r\n HandlePopupEditClick();\r\n\r\n }}>Edit\r\n \r\n Actions\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n return (\r\n <>\r\n {showCompanyProfileIdentificationModal ? (\r\n setShowCompanyProfileIdentificationModal(false)}>\r\n \r\n
    \r\n
    \r\n
    \r\n

    Identification

    \r\n
    \r\n
    \r\n {\r\n companyProfileIdentificationObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n COMPANY IDENTIFICATION LIST\r\n +\r\n
    \r\n
    \r\n {\r\n companyProfileIdentificationData.map((d) => {\r\n return
    {\r\n SetCompanyProfileIdentificationObj({ ...d, Mode: \"View\" });\r\n }}>\r\n {d.Name}\r\n
    \r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    IDENTIFICATION
    \r\n
    \r\n {\r\n SetCompanyProfileIdentificationObj(prev => ({ ...prev, IdentificationTypeSerNo: parseInt(item.key) }))\r\n setSelectedDocType(item);\r\n }}>\r\n
    \r\n
    \r\n {\r\n SetCompanyProfileIdentificationObj(prev => ({ ...prev, IdentificationNo: e }));\r\n SetCompanyProfileIdentificationValidation(prev => ({ ...prev, IdentificationNo: \"\" }));\r\n }}>\r\n Identification Number\r\n \r\n
    \r\n
    \r\n {\r\n SetCompanyProfileIdentificationObj(prev => ({ ...prev, PlaceofIssue: e }));\r\n SetCompanyProfileIdentificationValidation(prev => ({ ...prev, PlaceofIssue: \"\" }));\r\n }}>\r\n Place of Issue\r\n \r\n
    \r\n
    \r\n {\r\n console.log(item, name);\r\n SetCompanyProfileIdentificationObj(prev => ({ ...prev, IssuingCountrySerNo: parseInt(item.key) }));\r\n SetCompanyProfileIdentificationValidation(prev => ({ ...prev, IssuingCountrySerNo: \"\" }));\r\n setSelectedDocType(item);\r\n }}>\r\n
    \r\n
    \r\n {\r\n SetCompanyProfileIdentificationObj(prev => ({ ...prev, DateofIssue: e }));\r\n }}>\r\n
    \r\n
    \r\n {\r\n SetCompanyProfileIdentificationObj(prev => ({ ...prev, DateofExpiry: e }));\r\n }}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Front Side
    \r\n
    \r\n
    \r\n {\r\n console.log(v);\r\n SetCompanyProfileIdentificationObj(prev => ({ ...prev, FrontsideImagePath: v }));\r\n }}>\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Back Side
    \r\n
    \r\n
    \r\n {\r\n console.log(v);\r\n SetCompanyProfileIdentificationObj(prev => ({ ...prev, BacksideImagePath: v }));\r\n }}\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Primary\r\n {\r\n console.log(v);\r\n SetCompanyProfileIdentificationObj(prev => ({ ...prev, IsPrimary: v }));\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null\r\n }\r\n \r\n
    \r\n Identification\r\n ({companyProfileIdentificationData.length})\r\n
    \r\n
    \r\n \r\n );\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnSwitch,\r\n InnTextarea,\r\n InnLoader,\r\n InnButtonTypeWithDropdown,\r\n InnTooltip\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon.svg\";\r\nimport settingicon from \"../../../../assets/images/settings-icon.svg\";\r\nimport smsIcon from \"../../../../assets/images/sms-tooltip-icon.svg\";\r\nimport EmailTooltipIcon from \"../../../../assets/images/email-tooltip-icon.svg\";\r\nimport rightbluearrow from \"../../../../assets/images/right-blue-round-arrow.svg\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport {\r\n GetCompanyProfileComment,\r\n AddEditCompanyProfileComment,\r\n GetNoteTypeMaster,\r\n} from \"../../../../services/guestProfileMasterService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nexport default function CompanyProfileInternalComment(props) {\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n CompanyProfileSerNo: props.para,\r\n NoteSerNo: 0,\r\n Note: \"\",\r\n NoteTypeSerNo: 0,\r\n Title: \"\",\r\n Comment: \"\",\r\n IsGlobal: false,\r\n Mode: \"View\",\r\n };\r\n const validationObj = {\r\n Title: \"\",\r\n Comment: \"\",\r\n };\r\n const ActionOption = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n ];\r\n const [showInternalCommentModal, setShowInternalCommentModal] = useState(false);\r\n const [noteTypedata, setNoteTypedata] = useState([]);\r\n const [companyTypeObj, setCompanyTypeObj] = useState(defaultObj);\r\n const [companyCommentData, setCompanyCommentData] = useState([]);\r\n const [companyProfileValidation, setCompanyProfileValidation] = useState(validationObj);\r\n const [selectedComment, setSelectedComment] = useState();\r\n const [isActive, setIsActive] = useState(false);\r\n //#Start Region NoteTypFill Data \r\n const fillNoteType = () => {\r\n GetNoteTypeMaster().then((d) => {\r\n setNoteTypedata(d.data);\r\n //console.log(\"CompanyNoteType >>\", d.data);\r\n });\r\n };\r\n //End Region\r\n //#Start Region CompanyProfile Comment\r\n const fillCompanyProfileComment = () => {\r\n GetCompanyProfileComment(parseInt(currUser.ClientSerNo), (parseInt(companyTypeObj.CompanyProfileSerNo)))\r\n .then((d) => {\r\n if (d.data.length > 0) {\r\n setCompanyCommentData(d.data)\r\n let obj = d.data[0];\r\n obj.Mode = \"View\";\r\n setCompanyTypeObj(obj);\r\n setSelectedComment(d.data[0].NoteSerNo);\r\n\r\n }\r\n //console.log(\"CompanyCommentData >>\", d.data);\r\n })\r\n }\r\n //End Region\r\n //RegionValidation\r\n const clearValidation = () => {\r\n setCompanyProfileValidation(validationObj);\r\n };\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (companyTypeObj.Title == \"\") {\r\n isValid = false;\r\n setCompanyProfileValidation((prev) => ({\r\n ...prev,\r\n Title: \"Invalid input\",\r\n }));\r\n }\r\n if (companyTypeObj.Comment == \"\") {\r\n isValid = false;\r\n setCompanyProfileValidation((prev) => ({\r\n ...prev,\r\n Comment: \"Invalid input\",\r\n }));\r\n }\r\n return isValid;\r\n };\r\n //End Validation\r\n //Regioin HandleOnType Click\r\n const handleOnNoteTypeClick = (e) => {\r\n clearValidation();\r\n setIsActive(false);\r\n let obj = companyCommentData.find((x) => x.NoteSerNo == e.target.id)\r\n obj.Mode = \"View\";\r\n setCompanyTypeObj(obj);\r\n setSelectedComment(obj.NoteSerNo);\r\n console.log(\"CompG\", obj)\r\n }\r\n //End Region\r\n //RegionAdd\r\n const handleOnAddClick = () => {\r\n setIsActive(false);\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setCompanyTypeObj(obj);\r\n\r\n };\r\n //EndRegion\r\n //RegionEdit\r\n const handleOnEditClick = () => {\r\n if (companyTypeObj.Title == \"\") {\r\n alert(\"Internal Comment is not selected.\");\r\n } else {\r\n setIsActive(false);\r\n setCompanyTypeObj((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n };\r\n //EndRegion\r\n //Region Cancel\r\n const hanldeOnCancelClick = () => {\r\n setIsActive(false);\r\n clearValidation();\r\n setCompanyTypeObj((prev) => ({ ...prev, Mode: \"View\" }));\r\n };\r\n //EndRegion\r\n //RegionSAve\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n let obj = companyTypeObj;\r\n obj.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n AddEditCompanyProfileComment(obj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n setIsActive(false);\r\n if (companyTypeObj.Mode == \"Add\") {\r\n fillCompanyProfileComment(parseInt(d.data.ReturnValue));\r\n }\r\n fillNoteType();\r\n fillCompanyProfileComment();\r\n } else {\r\n alert(\"Something went wrong\");\r\n }\r\n });\r\n setCompanyTypeObj((prev) => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alert(\r\n \"One or more field has an invalid entry. Please verify accordingly.\"\r\n );\r\n }\r\n };\r\n //EndRegion\r\n // #region UseEffect\r\n useEffect(() => {\r\n fillNoteType();\r\n fillCompanyProfileComment();\r\n }, [])\r\n // #endregion\r\n const InternalCommentTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n {companyCommentData.map((d) => (\r\n <>\r\n
    \r\n
    {d.Title}
    \r\n
    \r\n
    \r\n
    Available to All properties : {d.IsGlobal == true ? \"Yes\" : \"No\"}\r\n
    \r\n
    \r\n \r\n ))}\r\n
    \r\n
    \r\n { setShowInternalCommentModal(!showInternalCommentModal) }}>Edit\r\n {\r\n companyCommentData(data);\r\n setCompanyTypeObj((prev) => ({ ...prev, CompanyProfileSerNo: data.Title }));\r\n setShowInternalCommentModal(false);\r\n }}\r\n type=\"Action\"\r\n id=\"ActionButton\"\r\n title=\"Action\"\r\n >\r\n Actions\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n return (\r\n <>\r\n \r\n
    \r\n \r\n Internal Comment\r\n \r\n ({companyCommentData.length})\r\n
    \r\n {showInternalCommentModal ?\r\n <>\r\n {\r\n setShowInternalCommentModal(false);\r\n let obj = companyCommentData[0];\r\n obj.Mode = \"View\";\r\n setCompanyTypeObj(obj);\r\n setSelectedComment(companyCommentData[0].NoteSerNo)\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Internal Comment

    \r\n
    \r\n
    \r\n {\r\n companyTypeObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Note Type List\r\n +\r\n
    \r\n
    \r\n {companyCommentData.map((d, index) => (\r\n {d.Title}
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ({\r\n key: NoteTypeSerNo,\r\n value: Note\r\n }))}\r\n disabled={\r\n companyTypeObj.Mode == \"View\"\r\n ? true\r\n : false\r\n }\r\n selectedSerNo={companyTypeObj.NoteTypeSerNo}\r\n name=\"Single Select\"\r\n label=\"Note Type\"\r\n onChange={(item, name) => {\r\n setCompanyTypeObj((prev) => ({\r\n ...prev,\r\n NoteTypeSerNo: item.key,\r\n }));\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n setCompanyTypeObj((prev) => ({ ...prev, Title: v }));\r\n if (v == \"\") {\r\n setCompanyProfileValidation((prev) => ({\r\n ...prev,\r\n Title: \"Enter Title\",\r\n }));\r\n } else {\r\n setCompanyProfileValidation(validationObj);\r\n }\r\n }}\r\n >Title\r\n
    \r\n
    \r\n {\r\n setCompanyTypeObj((prev) => ({ ...prev, Comment: v }));\r\n if (v === \"\") {\r\n setCompanyProfileValidation((prev) => ({\r\n ...prev,\r\n Comment: \"Invalid Comment\",\r\n }));\r\n } else {\r\n setCompanyProfileValidation(validationObj);\r\n }\r\n }}\r\n >Comment\r\n
    \r\n
    \r\n
    \r\n Available to all properties\r\n {\r\n setCompanyTypeObj((prev) => ({ ...prev, IsGlobal: v }));\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n : null}\r\n \r\n );\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnButtonTypeWithDropdown,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnTooltip,\r\n InnSwitch,\r\n useConfirm,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport { cmbGetMarketMaster, cmbGetSourceMaster } from \"../../../../services/reservationService\";\r\nimport { GetIndustryMaster, EditCompanySalesInfo } from \"../../../../services/guestProfileMasterService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport default function CompanyProfileSalesInfo(props) {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const selectPriority = [\r\n { key: '0', value: \"Select Priority Type\" },\r\n { key: 'LOW', value: \"Low\" },\r\n { key: 'MID', value: \"Medium\" },\r\n { key: 'HIGH', value: \"High\" }\r\n ]\r\n\r\n //#region Default and validation object\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"CompanyProfileSerNo\": parseInt(props.para),\r\n \"Territory\": \"\",\r\n \"Priority\": \"0\",\r\n \"IsRoomPotential\": false,\r\n \"MarketSerNo\": 0,\r\n \"SourceProfileSerNo\": 0,\r\n \"IndustrySerNo\": 0,\r\n \"IsCompetition\": false,\r\n \"ScopeCity\": \"\",\r\n \"Mode\": \"View\"\r\n }\r\n\r\n const validationObj = {\r\n \"Territory\": \"\",\r\n \"Priority\": \"\",\r\n \"MarketSerNo\": 0,\r\n \"SourceProfileSerNo\": 0,\r\n \"IndustrySerNo\": 0,\r\n \"ScopeCity\": \"\",\r\n }\r\n //#endregion\r\n\r\n //#region state variable\r\n const [showSalesInfoModal, setShowSalesInfoModal] = useState(false);\r\n const [isActive, setIsActive] = useState(false);\r\n const [companySalesInfoObj, setCompanySalesInfoObj] = useState(defaultObj);\r\n const [companySalesInfoValidation, setCompanySalesInfoValidation] = useState(validationObj); \r\n const [marketMasterDdl, setMarketMasterDdl] = useState([]);\r\n const [sourceMasterDdl, setSourceMasterDdl] = useState([]);\r\n const [industryMasterDll, setIndustryMasterDll] = useState([]);\r\n //#endregion\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n loadMarketMasterDdl();\r\n loadSourceMasterDdl();\r\n loadIndustryMasterDll();\r\n }, []);\r\n\r\n useEffect(() => {\r\n setCompanySalesInfoObj(JSON.parse(JSON.stringify(props.obj.salesObj)));\r\n }, [JSON.stringify(props.obj.salesObj)])\r\n //#endregion\r\n\r\n //#region functions\r\n const loadMarketMasterDdl = () => {\r\n cmbGetMarketMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n let MarketMasterList = [{ key: 0, value: \"Select Market Type\" }];\r\n d.data.map(ele => {\r\n MarketMasterList.push({ key: (ele.key), value: (ele.value) });\r\n })\r\n setMarketMasterDdl(MarketMasterList);\r\n })\r\n }\r\n\r\n const loadSourceMasterDdl = () => {\r\n cmbGetSourceMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n let SourceMasterList = [{ key: 0, value: \"Select Source Type\" }];\r\n d.data.map(ele => {\r\n SourceMasterList.push({ key: parseInt(ele.key), value: ele.value });\r\n })\r\n setSourceMasterDdl(SourceMasterList);\r\n })\r\n }\r\n\r\n const loadIndustryMasterDll = () => {\r\n GetIndustryMaster().then(d => {\r\n let IndustryMasterList = [{ key: 0, value: \"Select Industry Type\" }];\r\n d.data.map(ele => {\r\n IndustryMasterList.push({ key: (ele.IndustrySerNo), value: ele.IndustryName });\r\n })\r\n setIndustryMasterDll(IndustryMasterList);\r\n })\r\n }\r\n\r\n const clearValidation = () => {\r\n setCompanySalesInfoValidation(validationObj);\r\n }\r\n\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (companySalesInfoObj.Territory == \"\" || companySalesInfoObj.Territory == null) {\r\n isValid = false;\r\n setCompanySalesInfoValidation(prev => ({ ...prev, Territory: \"Please Enter Territory\" }));\r\n }\r\n if (companySalesInfoObj.Priority == \"0\" || companySalesInfoObj.Priority == null) {\r\n isValid = false;\r\n setCompanySalesInfoValidation(prev => ({ ...prev, Priority: \"Please Select Priority Type\" }));\r\n }\r\n if (companySalesInfoObj.MarketSerNo == 0) {\r\n isValid = false;\r\n setCompanySalesInfoValidation(prev => ({ ...prev, MarketSerNo: \"Please Select Market Type\" }));\r\n }\r\n if (companySalesInfoObj.SourceProfileSerNo == 0) {\r\n isValid = false;\r\n setCompanySalesInfoValidation(prev => ({ ...prev, SourceProfileSerNo: \"Please Select Source Type\" }));\r\n }\r\n if (companySalesInfoObj.IndustrySerNo == 0) {\r\n isValid = false;\r\n setCompanySalesInfoValidation(prev => ({ ...prev, IndustrySerNo: \"Please Select Industry Type\" }));\r\n }\r\n if (companySalesInfoObj.ScopeCity == \"\" || companySalesInfoObj.ScopeCity == null) {\r\n isValid = false;\r\n setCompanySalesInfoValidation(prev => ({ ...prev, ScopeCity: \"Please Enter Scope City\" }));\r\n }\r\n return isValid;\r\n }\r\n\r\n const HandleOnSaveClick = () => {\r\n clearValidation();\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n EditCompanySalesInfo(companySalesInfoObj).then(d => {\r\n if (d.data.Code == \"200\") {\r\n setIsActive(false);\r\n alertFunction(d.data.Message);\r\n let apiobj = companySalesInfoObj;\r\n apiobj.Mode = \"View\";\r\n setCompanySalesInfoObj(apiobj);\r\n } else {\r\n alertFunction(\"Something Went Wrong.\");\r\n }\r\n })\r\n } else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n\r\n const HandleOnEditClick = () => {\r\n if (companySalesInfoObj.Territory == \"\" || companySalesInfoObj.Territory == null) {\r\n alertFunction(\"No Sale information list is selected.\");\r\n }\r\n else {\r\n setCompanySalesInfoObj((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n }\r\n\r\n const HandleOnCancelClick = () => { \r\n clearValidation();\r\n setCompanySalesInfoObj((prev) => ({ ...prev, Mode: \"View\" }))\r\n }\r\n\r\n const handlePopupEditClick = () => {\r\n setShowSalesInfoModal(!showSalesInfoModal);\r\n }\r\n //#endregion\r\n\r\n const ActionOption = [\r\n { key: \"Print Registration Card \", value: \"Print Registration Card \" },\r\n { key: \"Assign Room\", value: \"Assign Room \" },\r\n { key: \"Split Reservation\", value: \"Split Reservation\" },\r\n ];\r\n\r\n const SalesInfoTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    {companySalesInfoObj?.Priority}
    \r\n
    \r\n
    \r\n
    Room Potential\r\n \r\n {\r\n console.log(v);\r\n // companySalesInfoObj(prev => ({ ...prev, IsRoomPotential: v }));\r\n }}>\r\n \r\n
    \r\n
    Competition\r\n \r\n {\r\n console.log(v);\r\n // companySalesInfoObj(prev => ({ ...prev, IsCompetition: v }));\r\n }}>\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n handlePopupEditClick();\r\n }}>Edit\r\n \r\n Actions\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n return (\r\n <>\r\n {showSalesInfoModal ? (\r\n {\r\n setShowSalesInfoModal(false);\r\n clearValidation();\r\n }}\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n

    Sales Info (SA)

    \r\n
    \r\n
    \r\n {\r\n companySalesInfoObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setCompanySalesInfoObj(prev => ({ ...prev, Territory: e }));\r\n setCompanySalesInfoValidation(prev => ({ ...prev, Territory: \"\" }));\r\n }}>Territory\r\n \r\n
    \r\n
    \r\n {\r\n console.log(item)\r\n setCompanySalesInfoObj(prev => ({ ...prev, Priority: item.key }));\r\n setCompanySalesInfoValidation(prev => ({ ...prev, Priority: \"\" }))\r\n // (item);\r\n }}>\r\n \r\n
    \r\n
    \r\n
    \r\n Room Potential\r\n {\r\n setCompanySalesInfoObj(prev => ({ ...prev, IsRoomPotential: v }));\r\n }}>\r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n setCompanySalesInfoObj(prev => ({ ...prev, MarketSerNo: parseInt(item.key) })); \r\n }}\r\n >\r\n \r\n
    \r\n
    \r\n {\r\n setCompanySalesInfoObj(prev => ({ ...prev, SourceProfileSerNo: item.key })); \r\n }}\r\n >\r\n \r\n
    \r\n
    \r\n {\r\n setCompanySalesInfoObj(prev => ({ ...prev, IndustrySerNo: item.key })); \r\n }}\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n Competition\r\n {\r\n setCompanySalesInfoObj(prev => ({ ...prev, IsCompetition: v }));\r\n }}>\r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n setCompanySalesInfoObj(prev => ({ ...prev, ScopeCity: e }));\r\n setCompanySalesInfoValidation(prev => ({ ...prev, ScopeCity: \"\" }));\r\n }}>\r\n Scope City\r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null\r\n }\r\n \r\n
    \r\n Sales Information\r\n ({(companySalesInfoObj.Territory === null || companySalesInfoObj.Territory === \"\") ? 0 : 1})
    \r\n \r\n \r\n )\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnButtonTypeWithDropdown,\r\n InnCheckbox,\r\n InnLoader,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnSingleDateSelection,\r\n InnTimeSelection,\r\n InnFileUpload,\r\n InnSwitch,\r\n InnContextMenu,\r\n InnTextarea,\r\n InnTableGrid\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon.svg\";\r\nimport settingicon from \"../../../../assets/images/settings-icon.svg\";\r\nimport smsIcon from \"../../../../assets/images/sms-tooltip-icon.svg\";\r\nimport EmailTooltipIcon from \"../../../../assets/images/email-tooltip-icon.svg\";\r\nimport rightbluearrow from \"../../../../assets/images/right-blue-round-arrow.svg\";\r\nimport { useHistory } from \"react-router-dom\";\r\nexport default function CompanyProfileNegotiatedRate(props) {\r\n const selectData = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n return (\r\n <>\r\n props.Onclose()}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Negotiated Rate

    \r\n
    \r\n
    \r\n Edit\r\n Cancel\r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    rate code List\r\n +\r\n
    \r\n
    \r\n
    Rate code 1
    \r\n
    Rate code 2
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n Primary\r\n console.log(v)} id=\"Primary\" value={false}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n )\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnButtonTypeWithDropdown,\r\n InnCheckbox,\r\n InnLoader,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnSingleDateSelection,\r\n InnTimeSelection,\r\n InnFileUpload,\r\n InnSwitch,\r\n InnContextMenu,\r\n InnTextarea,\r\n InnTableGrid,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon.svg\";\r\nimport settingicon from \"../../../../assets/images/settings-icon.svg\";\r\nimport smsIcon from \"../../../../assets/images/sms-tooltip-icon.svg\";\r\nimport EmailTooltipIcon from \"../../../../assets/images/email-tooltip-icon.svg\";\r\nimport rightbluearrow from \"../../../../assets/images/right-blue-round-arrow.svg\";\r\nimport { GetCompanyProfileContactDetailList, AddEditCompanyProfileContactDetail } from \"../../../../services/guestProfileMasterService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { GuestModalPopup } from \"../../reservation/modalPopup/guestModalPopup\";\r\n\r\nexport default function CompanyProfileContact(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const location = useLocation();\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n CompanyProfileSerNo: parseInt(props.para.CompanyProfileSerNo),\r\n ContactName: \"\",\r\n ContactProfileSerNo: 0,\r\n OldContactProfileSerNo: 0,\r\n Department: \"\",\r\n Designation: \"\",\r\n Email: \"\",\r\n IsPrimary: false,\r\n Landline: \"\",\r\n Mobile: \"\",\r\n Mode: \"View\",\r\n }\r\n const validation = {\r\n CompanyProfileSerNo: 0,\r\n ContactName: \"\",\r\n ContactProfileSerNo: 0,\r\n OldContactProfileSerNo: 0,\r\n Department: \"\",\r\n Designation: \"\",\r\n Email: \"\",\r\n IsPrimary: false,\r\n Landline: \"\",\r\n Mobile: \"\",\r\n }\r\n\r\n const [contactList, setContactList] = useState([]);\r\n const [contactObj, setContactObj] = useState(defaultObj);\r\n const [isActive, setIsActive] = useState(false);\r\n const [contactValidations, setContactValidations] = useState(validation);\r\n const [showGuestModal, setShowGuestModal] = useState(false);\r\n const [showContactsModal, setShowContactsModal] = useState(false);\r\n const [oldSerNo, setOldSerNo] = useState(0);\r\n\r\n const fillContactList = () => {\r\n GetCompanyProfileContactDetailList(parseInt(currUser.ClientSerNo), parseInt(props.para.CompanyProfileSerNo)).then(d => {\r\n setContactList(d.data);\r\n if (d.data != undefined) {\r\n if (d.data.length > 0) {\r\n let tempContact = d.data[0];\r\n tempContact.Mode = \"View\";\r\n setContactObj(tempContact);\r\n }\r\n }\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n fillContactList();\r\n }, []);\r\n\r\n const clearValidation = () => {\r\n setContactValidations(validation);\r\n }\r\n\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (contactObj.ContactProfileSerNo == 0) {\r\n isValid = false;\r\n alertFunction(\"Please select a contact person\");\r\n setContactValidations(prev => ({ ...prev, ContactProfileSerNo: \"Invalid input\" }));\r\n }\r\n else if (contactObj.Designation == \"\") {\r\n isValid = false;\r\n alertFunction(\"Please input designation\");\r\n setContactValidations(prev => ({ ...prev, Designation: \"Invalid input\" }));\r\n }\r\n else if (contactObj.Department == \"\") {\r\n isValid = false;\r\n alertFunction(\"Please input department\");\r\n setContactValidations(prev => ({ ...prev, Department: \"Invalid input\" }));\r\n }\r\n // else if(!(/^(?:(?:\\\\+|0{0,2})91(\\s*[\\\\-]\\s*)?|[0]?)?[789]\\d{9}$/.test(contactObj.Mobile))){\r\n // isValid = false;\r\n // setContactValidations(prev => ({ ...prev, Mobile: \"Invalid input\" }));\r\n // }\r\n // else if(!(/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/.test(contactObj.Email))){\r\n // isValid = false;\r\n // setContactValidations(prev => ({ ...prev, Email: \"Invalid input\" }));\r\n // }\r\n // else if(contactObj.Landline == \"\"){\r\n // isValid = false;\r\n // setContactValidations(prev => ({ ...prev, Landline: \"Invalid input\" }));\r\n // }\r\n else {\r\n isValid = true;\r\n clearValidation();\r\n }\r\n return isValid;\r\n }\r\n\r\n\r\n\r\n const handleClickContactList = (e) => {\r\n let obj = contactList.find(\r\n x => x.ContactProfileSerNo == e.target.id)\r\n obj.Mode = \"View\";\r\n setContactObj(obj);\r\n }\r\n\r\n const handleSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n setIsActive(true);\r\n let objContact = contactObj;\r\n objContact.OldContactProfileSerNo = oldSerNo\r\n AddEditCompanyProfileContactDetail(objContact).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n fillContactList();\r\n alertFunction(d.data.Message);\r\n if (d.data.Mode == \"ADD\") {\r\n fillContactList();\r\n }\r\n }\r\n else {\r\n alertFunction(\"something went wrong, please try again\");\r\n }\r\n });\r\n setContactObj(prev => ({ ...prev, Mode: \"View\" }));\r\n clearValidation();\r\n }\r\n }\r\n\r\n const handleClickEdit = () => {\r\n if (contactObj == undefined) {\r\n alertFunction(\"No contact list is selected\");\r\n }\r\n else if (contactObj.ContactProfileSerNo == undefined) {\r\n alertFunction(\"No contact list is selected\");\r\n }\r\n else if (contactObj.ContactProfileSerNo == 0) {\r\n alertFunction(\"No contact list is selected\");\r\n }\r\n else {\r\n setContactObj(prev => ({ ...prev, Mode: \"EDIT\" }));\r\n console.log(contactObj);\r\n }\r\n }\r\n\r\n const handleAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setContactObj(obj);\r\n clearValidation();\r\n }\r\n\r\n const handleCancelClick = (e) => {\r\n clearValidation();\r\n let existingObj = contactList.find(x => x.ContactProfileSerNo == contactObj.ContactProfileSerNo);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setContactObj(existingObj);\r\n }\r\n else {\r\n if (contactObj.ContactProfileSerNo == 0 && contactList.length > 0) {\r\n let tempContact = contactList[0];\r\n tempContact.Mode = \"View\";\r\n setContactObj(tempContact);\r\n }\r\n else {\r\n setContactObj(defaultObj);\r\n }\r\n }\r\n }\r\n\r\n const selectData = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n const ActionOption = [\r\n { key: \"Print Registration Card \", value: \"Print Registration Card \" },\r\n { key: \"Assign Room\", value: \"Assign Room \" },\r\n { key: \"Split Reservation\", value: \"Split Reservation\" },\r\n ];\r\n\r\n const ContactsTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n {contactList.map((d) => (\r\n
    \r\n
    {d.ContactName}\r\n
    \r\n
    Mobile No. : {d.Mobile}
    \r\n
    Email : {d.Email}
    \r\n
    Designation : {d.Designation}
    \r\n
    Department : {d.Department}
    \r\n
    \r\n
    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n { setShowContactsModal(!showContactsModal) }}>Edit\r\n \r\n Action\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n return (\r\n <>\r\n {showContactsModal ? (\r\n { setShowContactsModal(false); props.onClose()}}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Contacts

    \r\n
    \r\n
    \r\n {\r\n contactObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    CONTACT LIST\r\n +\r\n
    \r\n
    \r\n {\r\n contactList.map((d) =>\r\n \r\n {d.ContactName}\r\n
    \r\n )\r\n }\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    CONTACTS
    \r\n
    \r\n {\r\n if (location.state?.ProfileSerNo != undefined) {\r\n if (location.state.Mode === \"Edit\") {\r\n\r\n if (d) {\r\n setShowGuestModal(!showGuestModal)\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n }\r\n else {\r\n setShowGuestModal(!showGuestModal)\r\n }\r\n }\r\n else {\r\n setShowGuestModal(!showGuestModal)\r\n }\r\n }}\r\n >\r\n Contact Person\r\n \r\n setShowGuestModal(!showGuestModal)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n {\r\n setContactObj(prev => ({ ...prev, Designation: v }))\r\n if (v == \"\") {\r\n setContactValidations(prev => ({ ...prev, Designation: \"Invalid input\" }))\r\n }\r\n }\r\n }\r\n >\r\n Designation\r\n \r\n
    \r\n
    \r\n {\r\n setContactObj(prev => ({ ...prev, Department: v }))\r\n if (v == \"\") {\r\n setContactValidations(prev => ({ ...prev, Department: \"Invalid input\" }))\r\n }\r\n }\r\n }\r\n >\r\n Department\r\n \r\n
    \r\n
    \r\n {\r\n setContactObj(prev => ({ ...prev, Mobile: v }))\r\n }\r\n }\r\n >\r\n Mobile No.\r\n \r\n
    \r\n
    \r\n {\r\n setContactObj(prev => ({ ...prev, Email: v }))\r\n }\r\n }\r\n >\r\n Email\r\n \r\n
    \r\n
    \r\n {\r\n setContactObj(prev => ({ ...prev, Landline: v }))\r\n }\r\n }\r\n >\r\n Landline\r\n \r\n
    \r\n
    \r\n
    \r\n Primary\r\n \r\n setContactObj(prev => ({ ...prev, IsPrimary: v }))\r\n }\r\n id=\"primary333\"\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n ) : null}\r\n {/*
    */}\r\n \r\n
    Contacts({contactList.length})
    \r\n \r\n {/*
    */}\r\n {showGuestModal ? (\r\n setShowGuestModal(false)}\r\n OnSelect={async (v) => {\r\n setOldSerNo(contactObj.ContactProfileSerNo);\r\n setContactObj(prev => ({ ...prev, ContactProfileSerNo: v.ProfileSerNo, ContactName: v.GuestName }))\r\n setContactObj(prev => ({ ...prev, ContactProfileSerNo: v.ProfileSerNo, Mobile: v.Mobile }))\r\n setContactObj(prev => ({ ...prev, ContactProfileSerNo: v.ProfileSerNo, Email: v.Email }))\r\n setContactObj(prev => ({ ...prev, ContactProfileSerNo: v.ProfileSerNo, Landline: v.Landline }))\r\n //setOldSerNo(v.ProfileSerNo);\r\n setShowGuestModal(false);\r\n }} >\r\n \r\n ) : null\r\n }\r\n \r\n )\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnButtonTypeWithDropdown,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnTooltip,\r\n InnSwitch,\r\n useConfirm,\r\n} from \"../../../../component\";\r\n\r\nimport CompanyProfileIdentification from \"./company-profile-identification\";\r\nimport CompanyProfileInternalComment from \"./company-profile-internal-comment\";\r\nimport CompanyProfileSalesInfo from \"./company-profile-sales-info\";\r\nimport CompanyProfileNegotiatedRate from \"./company-profile-negotiated-rate\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetProfileAddressTypeMaster } from \"../../../../services/generalService\";\r\nimport { GetCityMaster, GetCoutryMaster, GetStateMaster } from \"../../../../services/reservationService\";\r\nimport { AddEditCompanyProfileInfo, GetCompanyProfileContactDetailList } from \"../../../../services/guestProfileMasterService\";\r\nimport { GetCompanyProfileBySerNo } from \"../../../../services/guestProfileMasterService\";\r\nimport CompanyProfileContact from \"./company-profile-contact\";\r\nimport { useAlert } from \"../../../../utils/hooks/useAlert\";\r\n\r\nexport default function CompanyProfile(props) {\r\n\r\n const ActionOption = [\r\n { key: \"Print Registration Card \", value: \"Print Registration Card \" },\r\n { key: \"Assign Room\", value: \"Assign Room \" },\r\n { key: \"Split Reservation\", value: \"Split Reservation\" },\r\n ];\r\n const profileTypeData = [\r\n { key: \"Co\", value: \"Company\" },\r\n { key: \"Ag\", value: \"Agent\" },\r\n ];\r\n const selectData = [\r\n { key: \"Option1\", value: \"Option1\" },\r\n { key: \"Option2\", value: \"Option2\" },\r\n { key: \"Option3\", value: \"Option3\" },\r\n { key: \"Option4\", value: \"Option4\" },\r\n ];\r\n const { innkeyAlert } = useAlert();\r\n\r\n var Pageheight = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);\r\n var columnHeight = Pageheight - 120;\r\n\r\n const [showIdentificationModal, setShowIdentificationModal] = useState(false);\r\n const [showContactsModal, setShowContactsModal] = useState(false);\r\n const [showAccountReceivableModal, setShowAccountReceivableModal] = useState(false);\r\n const [showInternalCommentModal, setShowInternalCommentModal] = useState(false);\r\n const [showFuturePastStaysModal, setShowFuturePastStaysModal] = useState(false);\r\n const [showSalesInfoModal, setShowSalesInfoModal] = useState(false);\r\n const [showNegotiatedRateModal, setShowNegotiatedRateModal] = useState(false);\r\n const [showRoutingModal, setShowRoutingModal] = useState(false);\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const defaultCompanyProfileObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n CompanyProfileSerNo: parseInt(props.para.CompanyProfileSerNo),\r\n ProfileType: \"\",\r\n FullName: \"\",\r\n TitleSerNo: 0,\r\n StatutoryName: \"\",\r\n GSTNo: \"\",\r\n ARID: \"\",\r\n IATANo: \"\",\r\n Mode: props.para.Mode == \"Edit\" ? \"View\" : \"\",\r\n Territory: \"\",\r\n Priority: \"\",\r\n IsRoomPotential: false,\r\n MarketSerNo: 0,\r\n SourceProfileSerNo: 0,\r\n IndustrySerNo: 0,\r\n IsCompetition: false,\r\n ScopeCity: \"\",\r\n ProfileCommunicationMaster: null,\r\n ProfileAddressMaster: [\r\n {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n CompanyProfileSerNo: parseInt(props.para.CompanyProfileSerNo),\r\n ProfileAddressTypeSerNo: 0,\r\n CountrySerNo: 0,\r\n StateSerNo: 0,\r\n CitySerNo: 0,\r\n PostCode: \"\",\r\n Street: \"\",\r\n IsDefault: false,\r\n IsPrimary: true,\r\n }\r\n ]\r\n };\r\n\r\n const defaultAddressObj =\r\n {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n CompanyProfileSerNo: parseInt(props.para.CompanyProfileSerNo),\r\n ProfileAddressTypeSerNo: 0,\r\n CountrySerNo: 0,\r\n StateSerNo: 0,\r\n CitySerNo: 0,\r\n PostCode: \"\",\r\n Street: \"\",\r\n IsDefault: false,\r\n IsPrimary: true,\r\n };\r\n\r\n const defaultContactList = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n CompanyProfileSerNo: parseInt(props.para.CompanyProfileSerNo),\r\n ContactName: \"\",\r\n ContactProfileSerNo: 0,\r\n Department: \"\",\r\n Designation: \"\",\r\n Email: \"\",\r\n IsPrimary: false,\r\n Landline: \"\",\r\n Mobile: \"\",\r\n OldContactProfileSerNo: \"\",\r\n Mode: \"View\",\r\n }\r\n\r\n // const defaultCommunicationObj = {\r\n // ClientSerNo: parseInt(currUser.ClientSerNo),\r\n // CompanyProfileSerNo: parseInt(props.para.CompanyProfileSerNo),\r\n // CommunicationTypeSerNo: 0,\r\n // Mobile: \"\",\r\n // Email: \"\",\r\n // Landline: \"\",\r\n // IsPrimary: false\r\n // }\r\n\r\n const validationObj = {\r\n FullName: \"\",\r\n Street: \"\",\r\n CountrySerNo: \"\",\r\n StateSerNo: \"\",\r\n CitySerNo: \"\",\r\n PostCode: \"\",\r\n };\r\n\r\n const [companyProfileObj, setCompanyProfileObj] = useState(defaultCompanyProfileObj);\r\n const [profileAddressTypeData, setProfileAddressTypeData] = useState([]);\r\n const [addressList, setAddressList] = useState([]);\r\n const [companyAddressObj, setCompanyAddressObj] = useState(defaultAddressObj);\r\n const [selectedProfileAddressType, setSelectedProfileAddressType] = useState({});\r\n const [countryData, setCountryData] = useState([]);\r\n const [selectedCountry, setSelectedCountry] = useState({});\r\n const [stateData, setStateData] = useState([]);\r\n const [selectedState, setSelectedState] = useState({});\r\n const [cityData, setCityData] = useState([]);\r\n const [selectedCity, setSelectedCity] = useState({});\r\n // const [selectedCommunicationType, setSelectedCommunicationType] = useState({});\r\n // const [communicationTypeData, setCommunicationTypeData] = useState([]);\r\n const [commList, setCommList] = useState([]);\r\n // const [companyCommObj, setCompanyCommObj] = useState(defaultCommunicationObj);\r\n const [cmbContactList, setCmbContactList] = useState([]);\r\n const [cmbContactObj, setCmbContactObj] = useState(defaultContactList);\r\n const [companyProfileValidation, setCompanyProfileValidation] = useState(validationObj);\r\n const [IsShowDetailSection, setIsShowDetailSection] = useState(false);\r\n const [IsShowIndicatorSection, setIsShowIndicatorSection] = useState(props.para.Mode == \"Edit\" ? false : true);\r\n const [editObj, setEditObj] = useState({});\r\n const [updateProfileSerNo, setUpdateProfileSerNo] = useState(0);\r\n //#region \r\n useEffect(() => {\r\n GetProfileAddressTypeMaster(currUser.ClientSerNo).then((d) => {\r\n let temp = [];\r\n d.data.forEach((x) => {\r\n temp = [...temp, { key: x.ProfileAddressTypeSerNo, value: x.Name }];\r\n });\r\n let obj = { key: 0, value: \"Select\" }\r\n temp.unshift(obj);\r\n setSelectedProfileAddressType(temp[0]);\r\n setProfileAddressTypeData(temp);\r\n let tmpAddList = [];\r\n temp.forEach((x) => {\r\n let tmpAddress =\r\n {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n ProfileSerNo: parseInt(props.para.CompanyProfileSerNo),\r\n ProfileAddressTypeSerNo: x.key,\r\n CountrySerNo: 0,\r\n StateSerNo: 0,\r\n CitySerNo: 0,\r\n PostCode: \"\",\r\n Street: \"\",\r\n IsDefault: false,\r\n IsPrimary: true,\r\n IsChange: false\r\n };\r\n tmpAddList.push(tmpAddress);\r\n });\r\n setAddressList(tmpAddList);\r\n\r\n if (props.para.Mode == \"Add\") {\r\n setCompanyProfileObj((prev) => ({ ...prev, Mode: \"Add\", ProfileAddressMaster: tmpAddList }));\r\n //setCompanyAddressObj(tmpAddList[0]);\r\n }\r\n if (props.para.Mode == \"Edit\") {\r\n setIsShowDetailSection(true);\r\n setIsShowIndicatorSection(false);\r\n GetCompanyProfileBySerNo(currUser.ClientSerNo, props.para.CompanyProfileSerNo).then((d) => {\r\n d.data.Mode = \"View\";\r\n let tempList = d.data.ProfileAddressMaster;\r\n let arr1 = [];\r\n if (d.data.ProfileAddressMaster.length > 0) {\r\n tempList.forEach((x) => {\r\n x.IsChange = true;\r\n });\r\n tempList.map((d) => {\r\n tmpAddList.map((d2) => {\r\n // console.log(d.ProfileAddressTypeSerNo != d2.ProfileAddressTypeSerNo, d.ProfileAddressTypeSerNo, d2.ProfileAddressTypeSerNo);\r\n\r\n if (d.ProfileAddressTypeSerNo == d2.ProfileAddressTypeSerNo) {\r\n arr1.push(d.ProfileAddressTypeSerNo);\r\n }\r\n\r\n });\r\n });\r\n\r\n let addressarray = tmpAddList.filter((x) => !arr1.includes(x.ProfileAddressTypeSerNo));\r\n console.log(\"addressarray\", addressarray);\r\n addressarray.forEach(x => {\r\n d.data.ProfileAddressMaster.push(x);\r\n });\r\n console.log(\"helloooo\", d.data);\r\n setCompanyProfileObj(d.data);\r\n setEditObj(d.data);\r\n setCompanyAddressObj(d.data.ProfileAddressMaster[0]);\r\n }\r\n else {\r\n d.data.ProfileAddressMaster = tmpAddList;\r\n console.log(\"GetCompany\", d.data);\r\n setCompanyProfileObj(d.data);\r\n setEditObj(d.data);\r\n setCompanyAddressObj(tmpAddList[0]);\r\n }\r\n });\r\n }\r\n });\r\n\r\n GetCoutryMaster(currUser.ClientSerNo).then((d) => {\r\n let temp = [];\r\n d.data.forEach((x) => {\r\n temp = [...temp, { key: x.CountrySerNo, value: x.Name }];\r\n });\r\n setCountryData(temp);\r\n });\r\n\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (companyAddressObj.CountrySerNo != 0) {\r\n GetStateMaster(currUser.ClientSerNo, companyAddressObj.CountrySerNo).then((d) => {\r\n let temp = [];\r\n d.data.forEach((x) => {\r\n temp = [...temp, { key: x.StateSerNo, value: x.Name }];\r\n });\r\n setStateData(temp);\r\n });\r\n }\r\n }, [companyAddressObj.CountrySerNo]);\r\n\r\n useEffect(() => {\r\n if (companyAddressObj.CountrySerNo != 0 && companyAddressObj.StateSerNo != 0) {\r\n GetCityMaster(currUser.ClientSerNo, companyAddressObj.CountrySerNo, companyAddressObj.StateSerNo).then((d) => {\r\n let temp = [];\r\n d.data.forEach((x) => {\r\n temp = [...temp, { key: x.CitySerNo, value: x.Name }];\r\n });\r\n setCityData(temp);\r\n });\r\n }\r\n }, [companyAddressObj.StateSerNo]);\r\n\r\n useEffect(() => {\r\n loadCmbContactList();\r\n }, []);\r\n\r\n const loadCmbContactList = () => {\r\n GetCompanyProfileContactDetailList(parseInt(currUser.ClientSerNo), parseInt(props.para.CompanyProfileSerNo)).then((d) => {\r\n // setCmbContactList(d.data);\r\n // console.log(\"Combo Contact Data\",d.data);\r\n setCmbContactList(d.data);\r\n if (d.data != undefined) {\r\n if (d.data.length > 0) {\r\n let tempContact = d.data[0];\r\n tempContact.Mode = \"View\";\r\n setCmbContactObj(tempContact);\r\n }\r\n }\r\n console.log(\"Drop Down Contact List >>>\", d.data);\r\n })\r\n }\r\n //#endregion\r\n\r\n //#region Custom Functions\r\n const handleAddressData = (type, value) => {\r\n console.log(\"companyProfileObj\", companyProfileObj);\r\n let tmpAddList = JSON.parse(JSON.stringify(companyProfileObj.ProfileAddressMaster));\r\n if (companyAddressObj.ProfileAddressTypeSerNo == 0) {\r\n alertFunction(\"Please select Address type.\")\r\n }\r\n else {\r\n tmpAddList.forEach(x => {\r\n if (x.ProfileAddressTypeSerNo == companyAddressObj.ProfileAddressTypeSerNo) {\r\n\r\n if (type == \"Pincode\") {\r\n x.PostCode = value;\r\n x.IsChange = true;\r\n }\r\n else if (type == \"Country\") {\r\n x.CountrySerNo = value;\r\n x.IsChange = true;\r\n }\r\n else if (type == \"State\") {\r\n x.StateSerNo = value;\r\n x.IsChange = true;\r\n }\r\n else if (type == \"City\") {\r\n x.CitySerNo = value;\r\n x.IsChange = true;\r\n }\r\n else if (type == \"Address\") {\r\n x.Street = value;\r\n x.IsChange = true;\r\n }\r\n else if (type = \"IsPrimary\") {\r\n x.IsPrimary = value;\r\n // x.IsChange = true;\r\n }\r\n }\r\n //setAddressList(tmpAddList); \r\n });\r\n setCompanyProfileObj((prev) => ({ ...prev, ProfileAddressMaster: tmpAddList }));\r\n console.log(tmpAddList);\r\n }\r\n };\r\n\r\n const IsValidData = () => {\r\n let isValid = true;\r\n if (companyProfileObj.FullName == \"\") {\r\n isValid = false;\r\n setCompanyProfileValidation((prev) => ({ ...prev, FullName: \"Invalid Input\" }));\r\n }\r\n if (companyAddressObj.ProfileAddressTypeSerNo != 0 && companyAddressObj.Street == \"\") {\r\n isValid = false;\r\n setCompanyProfileValidation((prev) => ({ ...prev, Street: \"Invalid Input\" }));\r\n }\r\n if (companyAddressObj.ProfileAddressTypeSerNo != 0 && companyAddressObj.CountrySerNo == 0) {\r\n isValid = false;\r\n setCompanyProfileValidation((prev) => ({ ...prev, CountrySerNo: \"Invalid Input\" }));\r\n }\r\n if (companyAddressObj.ProfileAddressTypeSerNo != 0 && companyAddressObj.StateSerNo == 0) {\r\n isValid = false;\r\n setCompanyProfileValidation((prev) => ({ ...prev, StateSerNo: \"Invalid Input\" }));\r\n }\r\n if (companyAddressObj.ProfileAddressTypeSerNo != 0 && companyAddressObj.CitySerNo == 0) {\r\n isValid = false;\r\n setCompanyProfileValidation((prev) => ({ ...prev, CitySerNo: \"Invalid Input\" }));\r\n }\r\n if (companyAddressObj.ProfileAddressTypeSerNo != 0 && companyAddressObj.PostCode == \"\") {\r\n isValid = false;\r\n setCompanyProfileValidation((prev) => ({ ...prev, PostCode: \"Invalid Input\" }));\r\n }\r\n return isValid;\r\n };\r\n\r\n const handleSaveClick = () => {\r\n console.log(\"companyProfileObj\", companyProfileObj);\r\n let tempEditObj = companyProfileObj;\r\n setEditObj(companyProfileObj);\r\n if (props.para.Mode == \"Add\" && companyProfileObj.Mode == \"Add\") {\r\n let tempAddress = companyProfileObj.ProfileAddressMaster.filter((x) => x.IsChange == true);\r\n let tempObj = companyProfileObj;\r\n tempObj.Mode = \"ADD\";\r\n tempObj = { ...tempObj, ProfileAddressMaster: tempAddress };\r\n console.log(tempObj);\r\n let IsValidPage = IsValidData();\r\n if (IsValidPage) {\r\n AddEditCompanyProfileInfo(tempObj).then((d) => {\r\n if (d.data.Code == 200) {\r\n alertFunction(d.data.Message);\r\n props.para.CompanyProfileSerNo = d.data.ReturnValue;\r\n setUpdateProfileSerNo(d.data.ReturnValue);\r\n tempObj.CompanyProfileSerNo = parseInt(d.data.ReturnValue);\r\n }\r\n setIsShowDetailSection(true);\r\n setIsShowIndicatorSection(false);\r\n tempObj.Mode = \"View\";\r\n console.log(\"tempObj\", tempObj);\r\n setCompanyProfileObj(tempObj);\r\n });\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n else if (props.para.Mode == \"Edit\" || companyProfileObj.Mode == \"Edit\") {\r\n console.log(\"editobj\", editObj);\r\n let tempObj = tempEditObj;\r\n let tempAddress = tempObj.ProfileAddressMaster.filter((x) => x.IsChange == true);\r\n tempObj.Mode = \"Edit\";\r\n tempObj = { ...tempObj, ProfileAddressMaster: tempAddress };\r\n console.log(tempObj);\r\n let IsValidPage = IsValidData();\r\n if (IsValidPage) {\r\n AddEditCompanyProfileInfo(tempObj).then((d) => {\r\n if (d.data.Code == 200) {\r\n alertFunction(\"Profile is edited successfully.\");\r\n }\r\n setIsShowDetailSection(true);\r\n setIsShowIndicatorSection(false);\r\n tempObj.Mode = \"View\";\r\n console.log(\"tempObj\", tempObj);\r\n setCompanyProfileObj(tempObj);\r\n });\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n };\r\n\r\n const handleCancelClick = async () => {\r\n let IsReset = false;\r\n IsReset = await innkeyAlert(\"Would you like to reset the profile fields to its default value\");\r\n console.log(IsReset)\r\n // let IsReset = window.confirm(\"Would you like to reset the profile fields to its default value\");\r\n if (IsReset) {\r\n if (props.para.Mode == \"Edit\") {\r\n GetCompanyProfileBySerNo(currUser.ClientSerNo, props.para.CompanyProfileSerNo).then((d) => {\r\n d.data.Mode = \"Edit\";\r\n let tempList = d.data.ProfileAddressMaster;\r\n let arr1 = [];\r\n if (d.data.ProfileAddressMaster.length > 0) {\r\n tempList.forEach((x) => {\r\n x.IsChange = true;\r\n });\r\n tempList.map((d) => {\r\n addressList.map((d2) => {\r\n // console.log(d.ProfileAddressTypeSerNo != d2.ProfileAddressTypeSerNo, d.ProfileAddressTypeSerNo, d2.ProfileAddressTypeSerNo);\r\n\r\n if (d.ProfileAddressTypeSerNo == d2.ProfileAddressTypeSerNo) {\r\n arr1.push(d.ProfileAddressTypeSerNo);\r\n }\r\n });\r\n });\r\n let addressarray = addressList.filter((x) => !arr1.includes(x.ProfileAddressTypeSerNo));\r\n console.log(\"addressarray\", addressarray);\r\n addressarray.forEach(x => {\r\n d.data.ProfileAddressMaster.push(x);\r\n });\r\n console.log(\"helloooo\", d.data);\r\n setCompanyProfileObj(d.data);\r\n setCompanyAddressObj(d.data.ProfileAddressMaster[0]);\r\n }\r\n else {\r\n d.data.ProfileAddressMaster = addressList;\r\n setCompanyProfileObj(d.data);\r\n setCompanyAddressObj(addressList[0]);\r\n }\r\n });\r\n }\r\n else {\r\n setCompanyProfileObj({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n CompanyProfileSerNo: parseInt(props.para.CompanyProfileSerNo),\r\n ProfileType: \"\",\r\n FullName: \"\",\r\n TitleSerNo: 0,\r\n StatutoryName: \"\",\r\n GSTNo: \"\",\r\n ARID: \"\",\r\n IATANo: \"\",\r\n Mode: props.para.Mode,\r\n ProfileAddressMaster: addressList,\r\n ProfileCommunicationMaster: null\r\n });\r\n setCompanyAddressObj({\r\n ProfileAddressTypeSerNo: 0,\r\n CountrySerNo: 0,\r\n StateSerNo: 0,\r\n CitySerNo: 0,\r\n PostCode: \"\",\r\n Street: \"\",\r\n IsDefault: false,\r\n IsPrimary: true\r\n });\r\n }\r\n\r\n }\r\n };\r\n\r\n const handleClickCmbContactList = (e) => {\r\n let obj = cmbContactList.find(\r\n x => x.CompanyProfileSerNo == e.target.id)\r\n obj.Mode = \"View\";\r\n setCmbContactObj(obj);\r\n console.log(e.target.id);\r\n }\r\n\r\n //#endregion\r\n //#region Tooltips\r\n const ContactsTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Mr. Rohit Sharma
    \r\n
    \r\n
    \r\n
    Mobile No. : 9876543210
    \r\n
    Email : rohitsharma@gmail.com
    \r\n
    Designation : manager
    \r\n
    Department : IT
    \r\n
    \r\n
    \r\n
    \r\n { setShowContactsModal(!showContactsModal); }}>Edit\r\n \r\n Action\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n const NegotiatedTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Bed & Breakfast
    \r\n
    \r\n
    \r\n
    Start Date : 01 Jan, 2023
    \r\n
    End Date : 20 Jan, 2023
    \r\n
    \r\n
    \r\n
    \r\n { setShowNegotiatedRateModal(!showNegotiatedRateModal); }}>Edit\r\n \r\n Action\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n const WindowRoutingTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    W 2 - Room & Plan Bill to company
    \r\n
    \r\n
    \r\n
    Company Name : Arvind Ltd.
    \r\n
    Payee : Ms. Mansi Sharma
    \r\n
    \r\n
    \r\n
    W 3 - Food & BeverageVisa Card
    \r\n
    \r\n
    \r\n
    Company on Folio : Larsen and Turbo\r\n Pvt. Ltd
    \r\n
    Payee : Mr. Aravind Vishwanathan
    \r\n
    \r\n
    \r\n
    \r\n { setShowRoutingModal(!showRoutingModal); }}>Edit\r\n \r\n Action\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n const RoomRoutingTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    208 - Viral Shah
    \r\n
    \r\n
    \r\n
    Conf. No. 1234567891
    \r\n
    Food & Beverage
    \r\n
    \r\n
    \r\n
    209 - Rohan
    \r\n
    \r\n
    \r\n
    Conf. No. 1234567891
    \r\n
    Laundry, Spa & other charges
    \r\n
    \r\n
    \r\n
    \r\n { setShowRoutingModal(!showRoutingModal); }}>Edit\r\n \r\n Action\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n const IdentificationTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    GST No. : 12345678910
    \r\n
    \r\n
    \r\n
    Issue Date : 30 May 2021
    \r\n
    Expire Date : 30 May 2025
    \r\n
    \r\n
    \r\n
    \r\n { setShowIdentificationModal(!showIdentificationModal); }}>Edit\r\n \r\n Actions\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n const SalesInfoTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    High Priority
    \r\n
    \r\n
    \r\n
    Room Potential\r\n \r\n console.log(v)} id=\"Potential\" value={false}>\r\n \r\n
    \r\n
    Competition\r\n \r\n console.log(v)} id=\"Competition\" value={false}>\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n { setShowSalesInfoModal(!showSalesInfoModal); }}>Edit\r\n \r\n Actions\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n const AccountReceivableTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Cadila Finance
    \r\n
    \r\n
    \r\n
    Credit Days : 30
    \r\n
    Credit Limit : 1,00,000.00
    \r\n
    Contact Profile : Mr. Rohit Goyal
    \r\n
    Restricted\r\n \r\n console.log(v)} id=\"Restricted\" value={false}>\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n { setShowAccountReceivableModal(!showAccountReceivableModal); }}>Edit\r\n \r\n Actions\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n const InternalCommentTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    General
    \r\n
    \r\n
    \r\n
    Available to All properties\r\n \r\n console.log(v)} id=\"AvailableAllproperties\" value={false}>\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n { setShowInternalCommentModal(!showInternalCommentModal); }}>Edit\r\n \r\n Actions\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n const FuturePastStayTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Some Text
    \r\n
    \r\n
    \r\n
    Some Text
    \r\n
    Some Text
    \r\n
    Some Text
    \r\n
    \r\n
    \r\n
    \r\n { setShowFuturePastStaysModal(!showFuturePastStaysModal); }}>Edit\r\n \r\n Actions\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n //#endregion\r\n\r\n //#region \r\n useEffect(() => {\r\n console.log(\"Company-Profile\");\r\n }, []);\r\n //#endregion\r\n\r\n return (\r\n <>\r\n { props.Onclose(); }}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Company Profile

    \r\n
    \r\n
    \r\n {\r\n companyProfileObj.Mode == \"View\" ?\r\n {\r\n let tempobj = editObj;\r\n tempobj.Mode = \"Edit\";\r\n if (props.para.Mode == \"Add\") {\r\n tempobj.ProfileSerNo = parseInt(updateProfileSerNo);\r\n }\r\n console.log(\"Edit\", tempobj);\r\n setCompanyProfileObj(tempobj)\r\n setIsShowDetailSection(false);\r\n setIsShowIndicatorSection(false);\r\n }}>Edit\r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n {IsShowDetailSection ? (\r\n \r\n
    \r\n \r\n \r\n \r\n ) : null}\r\n {IsShowIndicatorSection ? (\r\n \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {companyProfileObj.FullName}
    \r\n
    \r\n
    \r\n {\r\n setCompanyProfileObj((prev) => ({ ...prev, ProfileType: item.key }));\r\n }}\r\n >\r\n
    \r\n\r\n
    \r\n {\r\n setCompanyProfileObj((prev) => ({ ...prev, FullName: v }));\r\n setCompanyProfileValidation((prev) => ({ ...prev, FullName: \"\" }));\r\n }}\r\n >\r\n Name\r\n \r\n
    \r\n
    \r\n \r\n Alternative Name\r\n \r\n
    \r\n
    \r\n {\r\n setCompanyProfileObj((prev) => ({ ...prev, StatutoryName: v }));\r\n }}\r\n >\r\n Statutory Name\r\n \r\n
    \r\n
    \r\n {\r\n setCompanyProfileObj((prev) => ({ ...prev, IATANo: v }));\r\n }}\r\n >\r\n IATA No.\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    physical address
    \r\n
    \r\n
    \r\n
    \r\n companyAddressObj.ProfileAddressTypeSerNo == x.key)?.value}\r\n onChange={(v) => {\r\n setSelectedProfileAddressType(v);\r\n let tempobj = companyProfileObj.ProfileAddressMaster.find(x => x.ProfileAddressTypeSerNo == v.key);\r\n setCompanyAddressObj(tempobj);\r\n setCompanyProfileValidation((prev) => ({ ...prev, Street: \"\", CountrySerNo: \"\", StateSerNo: \"\", CitySerNo: \"\", PostCode: \"\" }))\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n {\r\n setCompanyAddressObj((prev) => ({ ...prev, Street: v }));\r\n handleAddressData(\"Address\", v);\r\n setCompanyProfileValidation((prev) => ({ ...prev, Street: \"\" }));\r\n }}\r\n >\r\n Address\r\n \r\n
    \r\n
    \r\n {\r\n setCompanyAddressObj((prev) => ({ ...prev, CountrySerNo: item.key }));\r\n setSelectedCountry(item);\r\n handleAddressData(\"Country\", item.key);\r\n if (companyAddressObj.CitySerNo != 0 || companyAddressObj.StateSerNo != 0 || companyAddressObj.PostCode != \"\") {\r\n setCompanyAddressObj((prev) => ({ ...prev, StateSerNo: 0, CitySerNo: 0, PostCode: \"\" }));\r\n }\r\n }}\r\n searchable={[\"Search for Country\", \"No matching Country\"]}\r\n label=\"Country\"\r\n customError={companyProfileValidation.CountrySerNo}\r\n selectedSerNo={companyAddressObj.CountrySerNo}\r\n disabled={companyAddressObj.ProfileAddressTypeSerNo == 0 ? true : false}\r\n >\r\n
    \r\n
    \r\n {\r\n setCompanyAddressObj((prev) => ({ ...prev, StateSerNo: item.key }));\r\n setSelectedState(item);\r\n handleAddressData(\"State\", item.key);\r\n }}\r\n selectedSerNo={companyAddressObj.StateSerNo}\r\n searchable={[\"Search for State\", \"No matching State\"]}\r\n label=\"State\"\r\n // customError={\"Please select atleast one option\"}\r\n // selectedSerNo={\"0\"}\r\n customError={companyProfileValidation.StateSerNo}\r\n disabled={companyAddressObj.ProfileAddressTypeSerNo == 0 ? true : false}\r\n >\r\n
    \r\n
    \r\n {\r\n setCompanyAddressObj((prev) => ({ ...prev, CitySerNo: item.key }));\r\n setSelectedCity(item);\r\n handleAddressData(\"City\", item.key);\r\n }}\r\n selectedSerNo={companyAddressObj.CitySerNo}\r\n name=\"Single Select With Search\"\r\n searchable={[\"Search for City\", \"No matching City\"]}\r\n label=\"City\"\r\n // customError={\"Please select atleast one option\"}\r\n // selectedSerNo={\"0\"}\r\n customError={companyProfileValidation.CitySerNo}\r\n disabled={companyAddressObj.ProfileAddressTypeSerNo == 0 ? true : false}\r\n >\r\n
    \r\n
    \r\n {\r\n setCompanyAddressObj((prev) => ({ ...prev, PostCode: v }));\r\n handleAddressData(\"Pincode\", v);\r\n if (/^[0-9]+$/i.test(v)) {\r\n setCompanyProfileValidation((prev) => ({ ...prev, PostCode: \"\" }));\r\n }\r\n else {\r\n setCompanyProfileValidation((prev) => ({ ...prev, PostCode: \"Invalid Input\" }));\r\n }\r\n }}\r\n >\r\n Pincode\r\n \r\n
    \r\n
    \r\n
    \r\n Primary\r\n {\r\n console.log(v);\r\n setCompanyAddressObj((prev) => ({ ...prev, IsPrimary: v }));\r\n handleAddressData(\"IsPrimary\", v);\r\n }}\r\n value={companyAddressObj.IsPrimary}\r\n id=\"profile2\">\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Contacts
    \r\n
    \r\n
    \r\n
    \r\n (\r\n {\r\n key: ContactProfileSerNo,\r\n value: ContactName\r\n }\r\n ))}\r\n onChange={(v) => {\r\n //setCmbContactObj(v);\r\n let tempobj = cmbContactList.find(x => x.ContactProfileSerNo == v.key);\r\n setCmbContactObj(tempobj);\r\n }}\r\n onClick={handleClickCmbContactList}\r\n name=\"Single Select\"\r\n selectedSerNo={cmbContactObj.ContactProfileSerNo}\r\n type=\"Action\"\r\n title={cmbContactList.value}\r\n id=\"ExportReservation\"\r\n >\r\n
    \r\n
    \r\n
    \r\n \r\n setCmbContactObj(prev => ({ ...prev, Designation: v }))\r\n }\r\n >\r\n Designation\r\n \r\n
    \r\n
    \r\n \r\n setCmbContactObj(prev => ({ ...prev, Department: v }))\r\n }\r\n >\r\n Department\r\n \r\n
    \r\n
    \r\n \r\n setCmbContactObj(prev => ({ ...prev, Mobile: v }))\r\n }\r\n >\r\n Mobile No.\r\n \r\n
    \r\n
    \r\n \r\n setCmbContactObj(prev => ({ ...prev, Email: v }))\r\n }\r\n >\r\n Email\r\n \r\n
    \r\n
    \r\n \r\n setCmbContactObj(prev => ({ ...prev, Landline: v }))\r\n }\r\n >\r\n Landline\r\n \r\n
    \r\n
    \r\n
    \r\n Primary\r\n \r\n setCmbContactObj(prev => ({ ...prev, IsPrimary: v }))\r\n }\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n {/*
    */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n OTHER PARAMETERS\r\n
    \r\n
    \r\n
    \r\n { setIsShowDetailSection(true); loadCmbContactList() }} />\r\n\r\n {/* \r\n
    Contacts(4)
    \r\n */}\r\n \r\n
    Negotiated Rate(1)
    \r\n \r\n\r\n
    \r\n Routing\r\n \r\n \r\n\r\n \r\n W (1)\r\n \r\n \r\n  , \r\n \r\n\r\n \r\n R (2)\r\n \r\n \r\n \r\n
    \r\n setShowIdentificationModal(false)}>\r\n setShowSalesInfoModal(false)}>\r\n setShowInternalCommentModal(false)}>\r\n\r\n {/* \r\n
    Identification(3)
    \r\n\r\n */}\r\n {/* \r\n
    Sales Information(4)
    \r\n\r\n */}\r\n \r\n
    Account Receivable(7)
    \r\n\r\n \r\n {/* \r\n
    Internal Comment(3)
    \r\n */}\r\n \r\n
    Future & Past Stay(14)
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n {showIdentificationModal ?\r\n // setShowIdentificationModal(false)}>\r\n null\r\n :\r\n null\r\n }\r\n {showInternalCommentModal ?\r\n // setShowInternalCommentModal(false)}>\r\n null\r\n :\r\n null\r\n }\r\n {showSalesInfoModal ?\r\n null\r\n :\r\n null\r\n }\r\n {showNegotiatedRateModal ?\r\n setShowNegotiatedRateModal(false)}>\r\n :\r\n null\r\n }\r\n \r\n );\r\n} ","import { useState } from \"react\";\r\nimport { InnActionButton, InnButtonTypeWithDropdown, InnModalPopup, InnPlainButton, InnPrimaryButton, InnSingleSelectDropdown, InnSwitch, InnTextbox, InnTooltip } from \"../../../../component\";\r\nimport smsIcon from \"../../../../assets/images/sms-tooltip-icon.svg\";\r\nimport EmailTooltipIcon from \"../../../../assets/images/email-tooltip-icon.svg\";\r\nimport CompanyProfileNegotiatedRate from \"../../general/masters/company-profile-negotiated-rate\";\r\nimport CompanyProfileIdentification from \"../../general/masters/company-profile-identification\";\r\nimport CompanyProfileInternalComment from \"../../general/masters/company-profile-internal-comment\";\r\nimport CompanyProfileSalesInfo from \"../../general/masters/company-profile-sales-info\";\r\nimport { GetCompanyOnFolioProfilData } from \"../../../../services/reservationService\";\r\nimport { GetCompanyProfileBySerNo, GetCompanyProfileContactDetailList } from \"../../../../services/guestProfileMasterService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useEffect } from \"react\";\r\nimport CompanyProfile from \"../../general/masters/company-profile\";\r\n\r\nexport function TipCompanyProfile(props) {\r\n const [showNegotiatedRateModal, setShowNegotiatedRateModal] = useState(false);\r\n const [showRoutingModal, setShowRoutingModal] = useState(false);\r\n const [showIdentificationModal, setShowIdentificationModal] = useState(false);\r\n const [showSalesInfoModal, setShowSalesInfoModal] = useState(false);\r\n const [showInternalCommentModal, setShowInternalCommentModal] = useState(false);\r\n const [showAccountReceivableModal, setShowAccountReceivableModal] = useState(false);\r\n const [showFuturePastStaysModal, setShowFuturePastStaysModal] = useState(false);\r\n const currUser = useSelector(currentUser);\r\n const [companyProfileData, setCompanyProfileData] = useState({});\r\n const [companyContact, setCompanyContact] = useState({});\r\n const [showAddEditCompanyPopup, setShowAddEditCompanyPopup] = useState(false);\r\n const ActionOption = [\r\n { key: \"Print Registration Card \", value: \"Print Registration Card \" },\r\n { key: \"Assign Room\", value: \"Assign Room \" },\r\n { key: \"Split Reservation\", value: \"Split Reservation\" },\r\n ];\r\n const selectData = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n };\r\n const GuestTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Ms. Preeti Iyengar
    \r\n
    \r\n 9842342434\r\n \r\n SMS\r\n \r\n
    \r\n
    \r\n preetiiyengar@innkeypms.net\r\n \r\n Email\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Edit\r\n {/* \r\n Action\r\n */}\r\n
    \r\n
    \r\n );\r\n };\r\n const AgentTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    {companyContact.ContactName}
    \r\n
    \r\n {companyContact.Mobile}\r\n \r\n SMS\r\n \r\n
    \r\n
    \r\n {companyContact.Email}\r\n \r\n Email\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Edit\r\n {/* \r\n Action\r\n */}\r\n
    \r\n
    \r\n );\r\n };\r\n const NegotiatedTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Bed & Breakfast
    \r\n
    \r\n
    \r\n
    Start Date : 01 Jan, 2023
    \r\n
    End Date : 20 Jan, 2023
    \r\n
    \r\n
    \r\n
    \r\n { setShowNegotiatedRateModal(!showNegotiatedRateModal); }}>Edit\r\n \r\n Action\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n const WindowRoutingTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    W 2 - Room & Plan Bill to company
    \r\n
    \r\n
    \r\n
    Company Name : Arvind Ltd.
    \r\n
    Payee : Ms. Mansi Sharma
    \r\n
    \r\n
    \r\n
    W 3 - Food & BeverageVisa Card
    \r\n
    \r\n
    \r\n
    Company on Folio : Larsen and Turbo\r\n Pvt. Ltd
    \r\n
    Payee : Mr. Aravind Vishwanathan
    \r\n
    \r\n
    \r\n
    \r\n setShowRoutingModal(!showRoutingModal)}>Edit\r\n \r\n Action\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n const InternalCommentTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    General
    \r\n
    \r\n
    \r\n
    Available to All properties\r\n \r\n console.log(v)} id=\"AvailableAllproperties\" value={false}>\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n setShowInternalCommentModal(true)}>Edit\r\n \r\n Actions\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n const AccountReceivableTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Cadila Finance
    \r\n
    \r\n
    \r\n
    Credit Days : 30
    \r\n
    Credit Limit : 1,00,000.00
    \r\n
    Contact Profile : Mr. Rohit Goyal
    \r\n
    Restricted\r\n \r\n console.log(v)} id=\"Restricted\" value={false}>\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n setShowAccountReceivableModal(!showAccountReceivableModal)}>Edit\r\n \r\n Actions\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n const FuturePastStayTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Some Text
    \r\n
    \r\n
    \r\n
    Some Text
    \r\n
    Some Text
    \r\n
    Some Text
    \r\n
    \r\n
    \r\n
    \r\n setShowFuturePastStaysModal(!showFuturePastStaysModal)}>Edit\r\n \r\n Actions\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const fillCompanyData = () => {\r\n GetCompanyProfileBySerNo(currUser.ClientSerNo, props.para.CompanyProfileSerNo).then((d) => {\r\n setCompanyProfileData(d.data);\r\n })\r\n }\r\n\r\n const fillCompanyContact = () => {\r\n GetCompanyProfileContactDetailList(parseInt(currUser.ClientSerNo), parseInt(props.para.CompanyProfileSerNo)).then((d) => {\r\n if (d.data.length > 0) {\r\n d.data.forEach((x) => {\r\n if (x.IsPrimary == true) {\r\n setCompanyContact(x);\r\n }\r\n })\r\n }\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n if (props.para.CompanyProfileSerNo != undefined) {\r\n fillCompanyData();\r\n fillCompanyContact();\r\n }\r\n }, [props.para.CompanyProfileSerNo])\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {companyProfileData.FullName}\r\n \r\n\r\n \r\n {/* Booking No: 3456234 */}\r\n
    \r\n
    \r\n
    \r\n {/* Res. No. 12345678910     Ref. No. 54238521{\" \"} */}\r\n\r\n {/* This will replace with updated component\r\n \r\n Action\r\n */}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Alternative Name\r\n \r\n
    \r\n
    \r\n Statutory Name\r\n {companyProfileData.StatutoryName}\r\n
    \r\n
    \r\n IATA No.\r\n {companyProfileData.IATANo}\r\n
    \r\n
    \r\n {companyContact.ContactName}\r\n \r\n \r\n \r\n
    \r\n
    \r\n setShowAddEditCompanyPopup(true)}>View\r\n
    \r\n
    \r\n
    \r\n \r\n
    Negotiated Rate(1)
    \r\n \r\n \r\n
    \r\n Routing\r\n (14)\r\n
    \r\n \r\n {/* \r\n
    \r\n Identification\r\n (14)\r\n
    \r\n */}\r\n setShowIdentificationModal(false)}>\r\n {/* \r\n
    \r\n Sales Information\r\n (14)\r\n
    \r\n */}\r\n setShowSalesInfoModal(false)}>\r\n {/* \r\n
    \r\n Internal Comment\r\n (14)\r\n
    \r\n */}\r\n setShowInternalCommentModal(false)}>\r\n
    \r\n
    \r\n \r\n
    \r\n Account Receivable\r\n (2)\r\n
    \r\n \r\n \r\n
    \r\n Future & Past Stay\r\n (2)\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {showNegotiatedRateModal ?\r\n setShowNegotiatedRateModal(false)}>\r\n :\r\n null\r\n }\r\n {showRoutingModal ? (\r\n setShowRoutingModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Routing

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Routing InstructionW (1) , R (2)
    \r\n
    \r\n
    \r\n
    \r\n ) : null\r\n }\r\n {\r\n showInternalCommentModal ?\r\n setShowInternalCommentModal(false)}>\r\n :\r\n null\r\n }\r\n {showAccountReceivableModal ? (\r\n setShowAccountReceivableModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Account Receivable

    \r\n
    \r\n
    \r\n Reset\r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Account Receivable\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Credit Days\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Credit Limit\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Contact Profile\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Primary\r\n console.log(v)} id=\"Account1\" value={false}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n Restricted\r\n console.log(v)} id=\"Account2\" value={false}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null\r\n }\r\n {showFuturePastStaysModal ? (\r\n setShowFuturePastStaysModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Future & Past Stay

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Past stay
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Number of VisitsP (4), G (12)
    \r\n
    Avg. Length of StayP (4), G (12)
    \r\n
    NightsP (4), G (12)
    \r\n
    Revenue85,000.00
    \r\n
    \r\n View Reservations\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    future stay
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Number of VisitsP (4), G (12)
    \r\n
    Avg. Length of StayP (4), G (12)
    \r\n
    NightsP (4), G (12)
    \r\n
    Revenue85,000.00
    \r\n
    \r\n View Reservations\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null\r\n }\r\n \r\n
    \r\n {showAddEditCompanyPopup ? (\r\n {\r\n setShowAddEditCompanyPopup(false);\r\n }}\r\n />\r\n ) : null}\r\n
    \r\n )\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport { InnDataGrid } from \"../../../../component\";\r\nimport {\r\n InnActionButton,\r\n InnButtonTypeWithDropdown,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnPlainButton,\r\n InnSingleDateSelection,\r\n InnFileUpload,\r\n InnSwitch,\r\n InnTextarea,\r\n InnTableGrid,\r\n InnLoader,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport settingicon from \"../../../../assets/images/settings-icon.svg\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetCompanyProfileList } from \"../../../../services/generalService\";\r\nimport CompanyProfile from './company-profile';\r\nimport { TipCompanyProfile } from \"../../reservation/tooltips/tip-company-profile\";\r\n\r\nexport function CompanyProfileList() {\r\n /* Page content height set start */\r\n const { confirm } = useConfirm();\r\n var Pageheight = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);\r\n var GridHeight = Pageheight - 153;\r\n /* Page content height set end */\r\n const history = useHistory();\r\n const currUser = useSelector(currentUser);\r\n const [profileContactObj, setProfileContactObj] = useState({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n CompanyProfileSerNo: 0,\r\n Mode: \"View\",\r\n });\r\n // Variable to show hide modal popup start\r\n const [showAdvancedSearchModal, setShowAdvancedSearchModal] = useState(false);\r\n const [showNewReservationModal, setShowNewReservationModal] = useState(false);\r\n const [showIdentificationModal, setShowIdentificationModal] = useState(false);\r\n const [showContactsModal, setShowContactsModal] = useState(false);\r\n const [showAccountReceivableModal, setShowAccountReceivableModal] = useState(false);\r\n const [showInternalCommentModal, setShowInternalCommentModal] = useState(false);\r\n const [showFuturePastStaysModal, setShowFuturePastStaysModal] = useState(false);\r\n const [showSalesInfoModal, setShowSalesInfoModal] = useState(false);\r\n const [showNegotiatedRateModal, setShowNegotiatedRateModal] = useState(false);\r\n const [showCompanyProfileModel, setShowCompanyProfileModel] = useState(false);\r\n const [showRoutingModal, setShowRoutingModal] = useState(false);\r\n const [companyToolTipObj,setCompanyToolTipObj] = useState({});\r\n //#region localvariables\r\n const defaultCompanyProfileObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"CompanyName\": \"\",\r\n \"ARID\": \"\",\r\n \"CityName\": \"\",\r\n \"IdentificationNo\": \"\",\r\n \"PageNumber\": 1,\r\n \"SortCol\": \"CompanyName\",\r\n \"SortType\": \"ASC\"\r\n };\r\n const defaultValidationObj = {\r\n IdentificationNo: \"\",\r\n ARID: \"\"\r\n };\r\n\r\n const columHeader = [\r\n { key: \"Company Name\", value: \"CompanyName\", type: \"lnk\", sorting: \"Y\" },\r\n { key: \"Statutory Name\", value: \"StatutoryName\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Contact Person\", value: \"ContactName\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Designation\", value: \"Designation\", type: \"txt\", sorting: \"Y\", align: \"left\" },\r\n { key: \"Department\", value: \"Department\", type: \"txt\", sorting: \"Y\", align: \"left\" },\r\n { key: \"Mobile No.\", value: \"Mobile\", type: \"txt\", sorting: \"Y\", align: \"left\" },\r\n { key: \"E mail ID\", value: \"Email\", type: \"txt\", sorting: \"Y\", align: \"left\" },\r\n { key: \"City\", value: \"CityName\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"AR ID\", value: \"ARID\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Rate Code\", value: \"RateCode\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n\r\n ];\r\n //#endregion\r\n //#region state\r\n const [page, setPage] = useState(1);\r\n const [pageCount, setPageCount] = useState(1);\r\n const [IsDataLoaded, setIsDataLoaded] = useState(false);\r\n const [companyProfileFilterObj, setCompanyProfileFilterObj] = useState(defaultCompanyProfileObj);\r\n const [companyProfileList, setCompanyProfileList] = useState([]);\r\n const [companyProfileValidationObj, setCompanyProfileValidationObj] = useState(defaultValidationObj);\r\n const [showCompanyPopup, setShowCompanyPopup] = useState(false);\r\n\r\n //#endregion\r\n\r\n //#region api\r\n\r\n const fillCompanyProfileList = () => {\r\n let obj = companyProfileFilterObj;\r\n obj.PageNumber = page;\r\n console.log(\"filterObj\", obj);\r\n GetCompanyProfileList(obj).then((d) => {\r\n console.log(\"d.data>>>\", d.data);\r\n let temp = d.data;\r\n temp.forEach((x, index) => {\r\n x[\"Action\"] = \"...\";\r\n x[\"uniqueId\"] = index + 1;\r\n });\r\n setCompanyProfileList(d.data);\r\n if (d.data.length > 0) {\r\n let temp = parseInt(d.data[0].TotalRows) / 50;\r\n setPageCount(Math.ceil(temp));\r\n } else {\r\n setPageCount(1);\r\n }\r\n setIsDataLoaded(true);\r\n\r\n });\r\n };\r\n //#endregion\r\n\r\n //#region events\r\n const handleFilterApply = async () => {\r\n if (\r\n (/^[A-Za-z0-9 ]+$/.test(companyProfileFilterObj.IdentificationNo) || companyProfileFilterObj.IdentificationNo.trim() === \"\")\r\n &&\r\n (/^[A-Za-z0-9 ]+$/.test(companyProfileFilterObj.ARID) || companyProfileFilterObj.ARID.trim() === \"\")) {\r\n if (page === 1) {\r\n fillCompanyProfileList();\r\n } else {\r\n setPage(1);\r\n }\r\n setShowAdvancedSearchModal(!showAdvancedSearchModal);\r\n } else {\r\n await confirm({\r\n Message: \"One or more fields are wrong...\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n };\r\n const handleFilterReset = () => {\r\n setCompanyProfileValidationObj(defaultValidationObj);\r\n setCompanyProfileFilterObj(defaultCompanyProfileObj);\r\n };\r\n //#endregion\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n fillCompanyProfileList();\r\n }, [page, companyProfileFilterObj.SortCol, companyProfileFilterObj.SortType]);\r\n //#endregion\r\n\r\n //#region othercode\r\n var Pageheight = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);\r\n var columnHeight = Pageheight - 120;\r\n\r\n //#region Data Grid Start\r\n\r\n //grid header\r\n\r\n const optBtnData = [\r\n { key: \"Edit Profile\", value: \"Edit Profile\" },\r\n { key: \"Merge Profile\", value: \"Merge Profile\" },\r\n { key: \"Create A Reservation\", value: \"Create A Reservation\" },\r\n ];\r\n //#endregion Data Grid End\r\n //#Tooltip start \r\n //#Tooltip end \r\n\r\n //#region Dynamic filter variable\r\n const selectData = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n //#endregion\r\n //#endregion\r\n\r\n return (\r\n
    \r\n {showCompanyProfileModel ? (\r\n {\r\n setShowCompanyProfileModel(false);\r\n }}\r\n />\r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Company Profile

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setProfileContactObj((prev) => ({ ...prev, CompanyProfileSerNo: 0, Mode: \"Add\" }));\r\n setShowNewReservationModal(!showNewReservationModal);\r\n }}>\r\n + New Company Profile\r\n \r\n \r\n Export\r\n \r\n { console.log(item); }}\r\n >\r\n Actions (50)\r\n \r\n \r\n setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }\r\n >\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {\r\n console.log(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(v);\r\n //setReservationStatus(v);\r\n setCompanyToolTipObj(v);\r\n setShowCompanyPopup(true);\r\n }}\r\n fixedHeaderNo={2}\r\n uniqueColumn=\"CompanyProfileSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n if (item.key == \"Edit Profile\") {\r\n setShowNewReservationModal(!showNewReservationModal);\r\n }\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n setProfileContactObj((prev) => ({ ...prev, CompanyProfileSerNo: rowdata.CompanyProfileSerNo, Mode: \"Edit\" }));\r\n }}\r\n handleSortClick={(sn, st) => {\r\n console.log(sn, st);\r\n setCompanyProfileFilterObj(prev => ({ ...prev, SortCol: sn, SortType: st }));\r\n }}>\r\n {/* {\r\n console.log(items);\r\n }}\r\n fixedHeaderNo={2}\r\n uniqueColumn=\"uniqueId\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n if (item.key == \"Edit Profile\") {\r\n setShowNewReservationModal(!showNewReservationModal);\r\n }\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n setProfileContactObj((prev) => ({ ...prev, CompanyProfileSerNo: rowdata.CompanyProfileSerNo, Mode: \"Edit\" }));\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n > */}\r\n {\r\n setPage(v);\r\n setCompanyProfileFilterObj((prev) => ({ ...prev, PageNumber: parseInt(v) }));\r\n }}\r\n style={{ float: \"right\" }}\r\n />\r\n
    \r\n {showAdvancedSearchModal ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Filters

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n Reset\r\n \r\n \r\n Apply\r\n \r\n \r\n setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n setCompanyProfileFilterObj(prev => ({ ...prev, CompanyName: v }));\r\n }}\r\n value={companyProfileFilterObj.CompanyName}\r\n >\r\n Company Name\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n if (/^[A-Za-z0-9 ]+$/.test(v) || v.trim() === \"\") {\r\n setCompanyProfileValidationObj(prev => ({ ...prev, IdentificationNo: \"\" }));\r\n } else {\r\n setCompanyProfileValidationObj(prev => ({ ...prev, IdentificationNo: \"Please enter a number.\" }));\r\n }\r\n setCompanyProfileFilterObj(prev => ({ ...prev, IdentificationNo: v }));\r\n }}\r\n value={companyProfileFilterObj.IdentificationNo}\r\n >\r\n Identification No.\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n if (/^[A-Za-z0-9 ]+$/.test(v) || v.trim() === \"\") {\r\n setCompanyProfileValidationObj(prev => ({ ...prev, ARID: \"\" }));\r\n } else {\r\n setCompanyProfileValidationObj(prev => ({ ...prev, ARID: \"special characters are not allowed.\" }));\r\n }\r\n setCompanyProfileFilterObj(prev => ({ ...prev, ARID: v }));\r\n }}\r\n value={companyProfileFilterObj.ARID}\r\n >\r\n AR ID\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setCompanyProfileFilterObj(prev => ({ ...prev, CityName: v }));\r\n }}\r\n value={companyProfileFilterObj.CityName}\r\n >\r\n City\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n {/* Create New Reservation Modal Popup start */}\r\n {showNewReservationModal ? (\r\n // setShowNewReservationModal(false)}\r\n // >\r\n //
    \r\n //
    \r\n //
    \r\n //

    Company Profile

    \r\n //
    \r\n //
    \r\n // Reset\r\n // Save\r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    Arvind limited
    \r\n //
    \r\n //
    \r\n // \r\n //
    \r\n\r\n //
    \r\n // \r\n // Name\r\n // \r\n //
    \r\n //
    \r\n // \r\n // Alternative Name\r\n // \r\n //
    \r\n //
    \r\n // \r\n // Satutory Name\r\n // \r\n //
    \r\n //
    \r\n // \r\n // IATA No.\r\n // \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    physical address
    \r\n //
    \r\n //
    \r\n //
    \r\n // \r\n //
    \r\n //
    \r\n //
    \r\n // \r\n // Address\r\n // \r\n //
    \r\n //
    \r\n // console.log(item, name)}\r\n // searchable={[\"Search for Country\", \"No matching Country\"]}\r\n // label=\"Country\"\r\n // customError={\"Please select atleast one option\"}\r\n // selectedSerNo={\"0\"}\r\n // disabled={false}\r\n // >\r\n //
    \r\n //
    \r\n // console.log(item, name)}\r\n // searchable={[\"Search for State\", \"No matching State\"]}\r\n // label=\"State\"\r\n // customError={\"Please select atleast one option\"}\r\n // selectedSerNo={\"0\"}\r\n // disabled={false}\r\n // >\r\n //
    \r\n //
    \r\n // console.log(item, name)}\r\n // searchable={[\"Search for City\", \"No matching City\"]}\r\n // label=\"City\"\r\n // customError={\"Please select atleast one option\"}\r\n // selectedSerNo={\"0\"}\r\n // disabled={false}\r\n // >\r\n //
    \r\n //
    \r\n // \r\n // Pincode\r\n // \r\n //
    \r\n //
    \r\n //
    \r\n // Primary\r\n // console.log(v)} id=\"profile2\" value={false}>\r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    CONTACTS
    \r\n //
    \r\n //
    \r\n //
    \r\n // \r\n //
    \r\n //
    \r\n //
    \r\n // \r\n // Designation\r\n // \r\n //
    \r\n //
    \r\n // \r\n // Department\r\n // \r\n //
    \r\n //
    \r\n // \r\n // Mobile No.\r\n // \r\n //
    \r\n //
    \r\n // \r\n // Email\r\n // \r\n //
    \r\n //
    \r\n // \r\n // Landline\r\n // \r\n //
    \r\n //
    \r\n //
    \r\n // Primary\r\n // console.log(v)} id=\"profile3\" value={false}>\r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n // OTHER PARAMETERS\r\n //
    \r\n //
    \r\n //
    \r\n // \r\n //
    Contacts(4)
    \r\n // \r\n // \r\n //
    Negotiated Rate(1)
    \r\n // \r\n\r\n //
    \r\n // Routing\r\n // \r\n // \r\n\r\n // \r\n // W (1)\r\n // \r\n // \r\n //  , \r\n // \r\n\r\n // \r\n // R (2)\r\n // \r\n // \r\n // \r\n //
    \r\n // \r\n //
    Identification(3)
    \r\n\r\n // \r\n // \r\n //
    Sales Information(4)
    \r\n\r\n // \r\n // \r\n //
    Account Receivable(7)
    \r\n\r\n // \r\n // \r\n //
    Internal Comment(3)
    \r\n // \r\n // \r\n //
    Future & Past Stay(14)
    \r\n // \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n // \r\n { setShowNewReservationModal(false); }}>\r\n ) : null\r\n }\r\n {/* Create New Reservation Modal Popup end */}\r\n {showContactsModal ? (\r\n setShowContactsModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Contacts

    \r\n
    \r\n
    \r\n Edit\r\n Cancel\r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    CONTACT LIST\r\n +\r\n
    \r\n
    \r\n
    Rohit Sharma
    \r\n
    Manoj Yadav
    \r\n
    Arun Agraval
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    CONTACTS
    \r\n
    \r\n \r\n Contact Person\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Designation\r\n \r\n
    \r\n
    \r\n \r\n Department\r\n \r\n
    \r\n
    \r\n \r\n Mobile No.\r\n \r\n
    \r\n
    \r\n \r\n Email\r\n \r\n
    \r\n
    \r\n \r\n Landline\r\n \r\n
    \r\n
    \r\n
    \r\n Primary\r\n console.log(v)} id=\"identification\" value={false}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null\r\n }\r\n {/* Create Identification Modal Popup start */}\r\n {showIdentificationModal ? (\r\n setShowIdentificationModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Identification

    \r\n
    \r\n
    \r\n Edit\r\n Cancel\r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    COMPANY IDENTIFICATION LIST\r\n +\r\n
    \r\n
    \r\n
    Good & Service Tax (GST)
    \r\n
    PAN Card
    \r\n
    TIN No.
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    IDENTIFICATION
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n \r\n
    \r\n
    \r\n \r\n Identification Number\r\n \r\n
    \r\n
    \r\n \r\n State ID\r\n \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Front Side
    \r\n
    \r\n
    \r\n console.log(v)} disabled={false}\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Back Side
    \r\n
    \r\n
    \r\n console.log(v)} disabled={false}\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Primary\r\n console.log(v)} id=\"identification\" value={false}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null\r\n }\r\n {/* Create Identification Modal Popup end */}\r\n {/* Create Account Receivable Modal Popup start */}\r\n {showAccountReceivableModal ? (\r\n setShowAccountReceivableModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Account Receivable

    \r\n
    \r\n
    \r\n Reset\r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Account Receivable\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Credit Days\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Credit Limit\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Contact Profile\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Primary\r\n console.log(v)} id=\"Account1\" value={false}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n Restricted\r\n console.log(v)} id=\"Account2\" value={false}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null\r\n }\r\n {/* Create Account Receivable Modal Popup end */}\r\n {/* Create Internal Comment Modal Popup start */}\r\n {showInternalCommentModal ? (\r\n setShowInternalCommentModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Internal Comment

    \r\n
    \r\n
    \r\n Edit\r\n Cancel\r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Note Type List\r\n +\r\n
    \r\n
    \r\n
    Note Type 1
    \r\n
    Note Type 2
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n \r\n
    \r\n
    \r\n \r\n Title\r\n \r\n
    \r\n
    \r\n Comment\r\n
    \r\n
    \r\n
    \r\n Available to all properties\r\n console.log(v)} id=\"internalcomment\" value={false}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null\r\n }\r\n {/* Create Internal Comment Modal Popup end */}\r\n {/* Create Sales Info Modal Popup start */}\r\n {showSalesInfoModal ? (\r\n \r\n setShowSalesInfoModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Sales Info (SA)

    \r\n
    \r\n
    \r\n Reset\r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Territory\r\n \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n Room Potential\r\n console.log(v)} id=\"identification\" value={false}>\r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n Competition\r\n console.log(v)} id=\"Competition\" value={false}>\r\n
    \r\n
    \r\n
    \r\n \r\n Scope City\r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null\r\n }\r\n {/* Create Sales Info Modal Popup end */}\r\n {/* Create Negotiated Rate Modal Popup start */}\r\n {showNegotiatedRateModal ? (\r\n setShowNegotiatedRateModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Negotiated Rate

    \r\n
    \r\n
    \r\n Edit\r\n Cancel\r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    rate code List\r\n +\r\n
    \r\n
    \r\n
    Rate code 1
    \r\n
    Rate code 2
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n Primary\r\n console.log(v)} id=\"Primary\" value={false}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null\r\n }\r\n {/* Create Negotiated Rate Modal Popup end */}\r\n {/* Create Past Future Modal Popup start */}\r\n {showFuturePastStaysModal ? (\r\n setShowFuturePastStaysModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Future & Past Stay

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Past stay
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Number of VisitsP (4), G (12)
    \r\n
    Avg. Length of StayP (4), G (12)
    \r\n
    NightsP (4), G (12)
    \r\n
    Revenue85,000.00
    \r\n
    \r\n View Reservations\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    future stay
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Number of VisitsP (4), G (12)
    \r\n
    Avg. Length of StayP (4), G (12)
    \r\n
    NightsP (4), G (12)
    \r\n
    Revenue85,000.00
    \r\n
    \r\n View Reservations\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ) : null\r\n }\r\n {/* Create Past Future Modal Popup end */}\r\n {/* Create Routing Modal Popup start */}\r\n {showRoutingModal ? (\r\n setShowRoutingModal(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Routing

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Routing InstructionW (1) , R (2)
    \r\n
    \r\n
    \r\n
    \r\n ) : null\r\n }\r\n {/* Create Routing Modal Popup End */}\r\n {\r\n showCompanyPopup ? \r\n setShowCompanyPopup(false)}>\r\n :\r\n null\r\n }\r\n \r\n );\r\n}\r\n//export default ReservationListPage;","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnTextbox,\r\n InnPlainButton,\r\n InnSingleSelectDropdown,\r\n InnSwitch,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetUserCategoryMaster, AddEditUserCategory } from \"../../../../services/generalService\"\r\nimport { use } from \"i18next\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\n\r\nexport function UserCategoryMaster(props) {\r\n //#region StateVariables\r\n const [old,setOld]=useState(0);\r\n const [selected,setSelected]=useState({});\r\n const [categoryList,setCategoryList]=useState([]);\r\n const [resultList,setResultList]=useState([])\r\n const[search,setSearch]=useState(\"\");\r\n const currUser = useSelector(currentUser);\r\n const [validation,setValidation]=useState({});\r\n const [isActive,setIsActive]=useState(false);\r\n const scrollRef=useRef();\r\n //#endregion\r\n useEffect(() => {\r\n GetAllData(0);\r\n }, []);\r\n const GetAllData=(x)=>{\r\n GetUserCategoryMaster(parseInt(currUser.ClientSerNo)).then(resp=>{\r\n if (x == 0) {\r\n if (resp.data.length != 0) {\r\n setSelected(resp.data[0]);\r\n }\r\n }\r\n setCategoryList(resp.data);\r\n setResultList(resp.data);\r\n })\r\n \r\n }\r\n \r\n //#region Events\r\n const handleClickSave=()=>{\r\n if(selected.Name.trim().length==0)\r\n {\r\n setValidation((prev)=>({...prev,Name:\"Please enter valid name\"}))\r\n return;\r\n }\r\n \r\n AddEditUserCategory(selected).then(resp=>{\r\n if(resp.status==200){\r\n alert(\"Successful\");\r\n setValidation((prev)=>({...prev,Name:\"\"}))\r\n setSelected((prev)=>({...prev,UserCategorySerNo:parseInt(resp.data.ReturnValue)}))\r\n \r\n if (selected.Mode == \"Add\" ||selected.Mode==\"Edit\") {\r\n setTimeout(() => {\r\n if(scrollRef.current!=null){\r\n scrollRef.current.scrollIntoView({ behaviour: \"smooth\" });\r\n }\r\n })\r\n }\r\n if (search != \"\") {\r\n searchEdit()\r\n return\r\n }\r\n GetAllData();\r\n } \r\n }\r\n )\r\n setSelected((prev)=>({...prev,Mode:\"Save\"}))\r\n }\r\n\r\n const handleClickEdit=()=>{\r\n if(selected.UserCategorySerNo==0){\r\n alert(\"Please select the category first\")\r\n return\r\n }\r\n setSelected((prev)=>({...prev,Mode:\"Edit\"}))\r\n setOld(selected.UserCategorySerNo)\r\n }\r\n const searchEdit = () => {\r\n GetUserCategoryMaster(parseInt(currUser.ClientSerNo)).then(resp=>{\r\n setCategoryList(resp.data);\r\n setSelected((prev)=>({...prev,Name:\"\",UserCategorySerNo:0,Mode:\"\"}))\r\n let temp = []\r\n resp.data.forEach(x => {\r\n if (x.Name.toLowerCase().includes(search.toLowerCase())) {\r\n temp.push(x);\r\n }\r\n });\r\n setResultList(temp);\r\n })\r\n }\r\n const handleClickCancel=()=>{\r\n categoryList.forEach(element => {\r\n if(element.UserCategorySerNo==old){\r\n setSelected(element);\r\n }\r\n });\r\n \r\n }\r\n\r\n const handleClickAdd=()=>{\r\n \r\n setOld(selected.UserCategorySerNo)\r\n setSelected((prev)=>({...prev,Name:\"\",UserCategorySerNo:0,Mode:\"Add\"}))\r\n }\r\n\r\n const handleChangeName=(e)=>{\r\n setSelected((prev)=>({...prev,Name:e}));\r\n }\r\n\r\n const handleChangeSearch=(e)=>{\r\n setSearch(e);\r\n setSelected((prev)=>({...prev,Name:\"\",UserCategorySerNo:0,Mode:\"\"}))\r\n let temp=[] \r\n categoryList.forEach(element => {\r\n if (element.Name.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(element);\r\n }\r\n });\r\n setResultList(temp);\r\n }\r\n const handleClickCategory=(userCat)=>{\r\n setSelected(userCat)\r\n }\r\n //#endregion\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    User Category Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {handleChangeSearch(e)}} value={search} OnCancelClick={handleChangeSearch}>Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    User Category
    \r\n
    \r\n
      \r\n {\r\n resultList.map((userCat, index) => {\r\n return (\r\n
    • handleClickCategory(userCat)} ref={(userCat.UserCategorySerNo == selected.UserCategorySerNo) ? scrollRef : null} id={userCat.UserCategorySerNo} className={(userCat.UserCategorySerNo == selected.UserCategorySerNo) ? \"active\" : \"\"} > {userCat.Name}
    • \r\n )\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n Name\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n { console.log(v); }} > Activate\r\n {selected.Mode == \"Edit\" || selected.Mode == \"Add\" ?\r\n <>\r\n Cancel\r\n Save\r\n \r\n :\r\n <>\r\n Edit\r\n Add\r\n \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnTextbox,\r\n InnPlainButton, \r\n InnSwitch\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { GetVIPStatusMaster, AddEditVIPStatus } from \"../../../../services/generalService\"\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\n\r\nexport function VIPStatusMaster(props) {\r\n\r\n //#region LocalVariable\r\n\r\n //#endregion\r\n\r\n //#region StateVariables\r\n const currUser = useSelector(currentUser);\r\n const defaultObj={ClientSerNo:parseInt(currUser.ClientSerNo),Mode:\"\",Name:\"\",VIPStatusSerNo:0}\r\n const [selected,setSelected]=useState(defaultObj);\r\n const [vipList,setVipList]=useState([]);\r\n const [resultList,setResultList]=useState([])\r\n const [search,setSearch]=useState(\"\");\r\n const [old,setOld]=useState(0);\r\n const [validation,setValidation]=useState({});\r\n const scrollRef=useRef();\r\n\r\n //#endregion \r\n\r\n \r\n\r\n //#region UseEffect\r\n useEffect(() => {\r\n GetAllData(0);\r\n }, []);\r\n //#endregion\r\n\r\n //#region LocalFunction\r\n\r\n //#endregion\r\n const GetAllData=(x)=>{\r\n GetVIPStatusMaster(parseInt(currUser.ClientSerNo)).then(resp=>{\r\n if (x == 0) {\r\n if (resp.data.length != 0) {\r\n setSelected(resp.data[1]); }\r\n }\r\n setVipList(resp.data.filter(x=>x.VIPStatusSerNo!=0));\r\n setResultList(resp.data.filter(x=>x.VIPStatusSerNo!=0));\r\n })\r\n }\r\n //#region Events\r\n const handleClickAdd=()=>{\r\n setOld(selected.VIPStatusSerNo)\r\n handleChangeSearch(\"\")\r\n setSelected((prev)=>({...prev,Name:\"\",VIPStatusSerNo:0,Mode:\"Add\"}))\r\n }\r\n const handleClickEdit=()=>{\r\n if(selected.VIPStatusSerNo==0){\r\n alert(\"Please select the Status name first\")\r\n return\r\n }\r\n setSelected((prev)=>({...prev,Mode:\"Edit\"}))\r\n setOld(selected.VIPStatusSerNo)\r\n\r\n }\r\n const searchEdit = () => {\r\n GetVIPStatusMaster(parseInt(currUser.ClientSerNo)).then(resp=>{\r\n setVipList(resp.data.filter(x=>x.VIPStatusSerNo!=0));\r\n setSelected(defaultObj)\r\n let temp = []\r\n resp.data.filter(x=>x.VIPStatusSerNo!=0).forEach(x => {\r\n if (x.Name.toLowerCase().includes(search.toLowerCase())) {\r\n temp.push(x);\r\n }\r\n });\r\n console.log('New List>>', temp);\r\n setResultList(temp);\r\n })\r\n }\r\n\r\n const AddEditAPI=(selected)=>{\r\n AddEditVIPStatus(selected).then(resp=>{\r\n if(resp.status==200){\r\n alert(\"Successful\");\r\n setValidation((prev)=>({...prev,Name:\"\"}))\r\n setSelected((prev)=>({...prev,VIPStatusSerNo:parseInt(resp.data.ReturnValue)}))\r\n if (selected.Mode == \"Add\" || selected.Mode==\"Edit\") {\r\n if (search != \"\") {\r\n searchEdit()\r\n return;\r\n }\r\n setTimeout(() => {\r\n if(scrollRef.current!=null){\r\n scrollRef.current.scrollIntoView({ behaviour: \"smooth\" });\r\n }\r\n }, 100)\r\n }\r\n \r\n GetAllData();\r\n } \r\n }\r\n )\r\n }\r\n\r\n const handleClickSave=()=>{\r\n if(selected.Name.trim().length==0)\r\n {\r\n setValidation((prev)=>({...prev,Name:\"Please enter valid name\"}))\r\n return;\r\n }\r\n AddEditAPI(selected)\r\n setSelected((prev)=>({...prev,Mode:\"Save\"}))\r\n }\r\n\r\n const handleClickCancel=()=>{\r\n setValidation((prev)=>({...prev,Name:\"\"}))\r\n if(old==0){\r\n setSelected(defaultObj)\r\n }\r\n else{\r\n vipList.forEach(element => {\r\n if(element.VIPStatusSerNo==old ){\r\n setSelected(element);\r\n }\r\n });\r\n }\r\n \r\n }\r\n\r\n const handleChangeName=(e)=>{\r\n setSelected((prev)=>({...prev,Name:e}));\r\n }\r\n\r\n const handleChangeSearch=(e)=>{\r\n setSearch(e);\r\n setSelected((prev)=>({...prev,Name:\"\",VIPStatusSerNo:0,Mode:\"\"}))\r\n let temp=[] \r\n vipList.forEach(element => {\r\n if (element.Name.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(element);\r\n }\r\n });\r\n setResultList(temp);\r\n }\r\n const handleClickVipStatus=(VipStatus)=>{\r\n setValidation((prev)=>({...prev,Name:\"\"}))\r\n setSelected(VipStatus)\r\n }\r\n //#endregion\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    VIP Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {handleChangeSearch(e)}} value={search} OnCancelClick={()=>handleChangeSearch(\"\")}>Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    VIP NAME
    \r\n
    \r\n
      \r\n {\r\n resultList.map((status, index) => {\r\n return (\r\n \r\n
    • handleClickVipStatus(status)} \r\n ref={(status.VIPStatusSerNo == selected.VIPStatusSerNo) ? scrollRef : null}\r\n id={status.VIPStatusSerNo} \r\n className={(status.VIPStatusSerNo == selected.VIPStatusSerNo) ? \"active\" : \"\"} \r\n > {status.Name}
    • \r\n \r\n )\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n Name\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n { console.log(v); }} > Activate\r\n {selected.Mode == \"Edit\" || selected.Mode == \"Add\" ?\r\n <>\r\n Cancel\r\n Save\r\n \r\n :\r\n <>\r\n Edit\r\n Add\r\n \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnLoader,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetStateMaster } from \"../../../../services/reservationService\";\r\nimport { AddEditStateMaster } from \"../../../../services/generalService\";\r\nimport { GetCountryMaster } from \"../../../../services/guestProfileMasterService\";\r\nexport function StateMaster() {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const defaultCountryObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"CountrySerNo\": 98,\r\n \"Name\": \"\"\r\n }\r\n const defaultStateObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"StateSerNo\": 0,\r\n \"CountrySerNo\": 0,\r\n \"Name\": \"\",\r\n \"StateCode\": \"\",\r\n \"IsUT\": false,\r\n \"Mode\": \"View\",\r\n \"Result\": \"\"\r\n }\r\n const validationObj = {\r\n \"Name\": \"\",\r\n \"CountrySerNo\": \"\",\r\n \"StateCode\": \"\",\r\n \"StateSerNo\": \"\"\r\n }\r\n //#region State Variable\r\n const [isActive, setIsActive] = useState(true);\r\n const [countryData, setCountryData] = useState([]);\r\n const [countryObj, setCountryObj] = useState(defaultCountryObj);\r\n const [stateData, setStateData] = useState([]);\r\n const [filterStateMaster, setFilterStateMaster] = useState([]);\r\n const [selectedStateSerNo, setSelectedStateSerNo] = useState(\"\");\r\n const [stateObj, setStateObj] = useState(defaultStateObj);\r\n const [stateValidation, setStateValidation] = useState(validationObj);\r\n const [searchString, setSearchString] = useState(\"\");\r\n //#endregion\r\n\r\n //#Start Region Country\r\n const fillGetCountryMaster = () => {\r\n GetCountryMaster(currUser.ClientSerNo).then((d) => {\r\n setIsActive(false);\r\n let temp = [];\r\n d.data.forEach((x) => {\r\n temp = [...temp, { key: x.CountrySerNo, value: x.Name }]\r\n })\r\n setCountryData(temp);\r\n })\r\n }\r\n //#End Region\r\n //#Start Region State\r\n const fillGetStateMaster = () => {\r\n GetStateMaster(currUser.ClientSerNo, countryObj.CountrySerNo).then((d) => {\r\n setIsActive(false);\r\n setStateData(d.data)\r\n setFilterStateMaster(d.data);\r\n console.log(\"State data >>\", d.data);\r\n });\r\n };\r\n //#End Region\r\n const handleOnSearchChange = (b) => {\r\n let filterdata = stateData.filter(obj => obj.Name.toLowerCase().includes(b.toLowerCase()));\r\n setFilterStateMaster(filterdata);\r\n setSearchString(b);\r\n setIsActive(false);\r\n }\r\n //#Start Region Validation\r\n const clearValidation = () => {\r\n setStateValidation(validationObj);\r\n }\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (stateObj.Name == \"\") {\r\n isValid = false;\r\n setStateValidation(prev => ({ ...prev, Name: \"Invalid Input\" }));\r\n }\r\n if (stateObj.StateCode == \"\") {\r\n isValid = false;\r\n setStateValidation(prev => ({ ...prev, StateCode: \"Invalid Input\" }));\r\n }\r\n if (countryObj.CountrySerNo == 0) {\r\n isValid = false;\r\n setStateValidation((prev) => ({ ...prev, CountrySerNo: \"Invalid Input\" }))\r\n }\r\n return isValid;\r\n }\r\n //#End Region\r\n const handleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultStateObj));\r\n obj.Mode = \"Add\";\r\n obj.CountrySerNo = countryObj.CountrySerNo;\r\n setStateObj(obj);\r\n console.log(obj)\r\n }\r\n const handleOnEditClick = () => {\r\n setIsActive(false);\r\n if (stateObj.Name == \"\") {\r\n alertFunction(\"Please Select State Name\");\r\n }\r\n else {\r\n setStateObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n }\r\n const handleOnCancelClick = () => {\r\n clearValidation();\r\n setIsActive(false)\r\n if (stateObj.Mode == \"Add\") {\r\n setStateObj(defaultStateObj);\r\n }\r\n if (stateObj.Mode == \"Edit\") {\r\n let existingObj = stateData.find(x => x.key == selectedStateSerNo);\r\n if (existingObj != undefined)\r\n setStateObj(existingObj);\r\n else\r\n setStateObj(defaultStateObj);\r\n }\r\n }\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n setIsActive(true);\r\n let apiObj = stateObj;\r\n console.log(\"State\",stateObj)\r\n AddEditStateMaster(stateObj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n setIsActive(false)\r\n alertFunction(d.data.Message);\r\n if (stateObj.Mode == \"Add\") {\r\n setSelectedStateSerNo(parseInt(d.data.ReturnValue));\r\n apiObj.StateSerNo = parseInt(d.data.ReturnValue)\r\n apiObj.Mode = \"view\";\r\n setStateObj(apiObj);\r\n }\r\n fillGetStateMaster();\r\n setSearchString(\"\");\r\n } else {\r\n alertFunction(\"Something Went Wrong\");\r\n }\r\n })\r\n setStateObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alertFunction(\"One Or More Field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n const handleStateClick = (e) => {\r\n clearValidation();\r\n setIsActive(false);\r\n let obj = stateData.find(x => x.StateSerNo == e.target.id)\r\n obj.Mode = \"View\";\r\n setStateObj(obj);\r\n console.log(\"HI\", obj)\r\n setSelectedStateSerNo(e.target.id);\r\n }\r\n // #region UseEffect\r\n useEffect(() => {\r\n fillGetCountryMaster();\r\n fillGetStateMaster();\r\n }, []);\r\n useEffect(() => {\r\n fillGetStateMaster();\r\n }, [countryObj.CountrySerNo]);\r\n // #endregion\r\n //console.log(\"Data2\", stateObj.IsUT)\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    State Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n setCountryObj((prev) => ({ ...prev, CountrySerNo: item.key, }));\r\n }}\r\n searchable={[\"Search for Country \", \"No matching Country\"]}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n List of States\r\n
    \r\n
      \r\n {\r\n filterStateMaster.map((d, index) => (\r\n
    • {d.Name}
    • \r\n ))\r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n {\r\n setStateValidation((prev) => ({ ...prev, Name: \"\" }))\r\n setStateObj(prev => ({ ...prev, Name: m }));\r\n setSelectedStateSerNo(m)\r\n if (m == \"\") {\r\n setStateValidation(prev => ({ ...prev, Name: \"Invalid Name\" }))\r\n }\r\n }}>Name\r\n {\r\n setStateValidation((prev) => ({ ...prev, StateCode: \"\" }))\r\n setStateObj((prev) => ({\r\n ...prev,\r\n StateCode: e,\r\n }));\r\n if (e === \"\") {\r\n setStateValidation((prev) => ({\r\n ...prev,\r\n StateCode: \"Invalid StateCode\",\r\n }));\r\n } else {\r\n setStateValidation(validationObj);\r\n }\r\n }}\r\n >GST State ID \r\n {\r\n setStateObj((prev) => ({\r\n ...prev, IsUT: ischecked,\r\n }))\r\n }}\r\n >Is Union territory\r\n {/* For Developer */}\r\n {/*
    \r\n console.log(v)}>Country\r\n
    */}\r\n {/* For Developer */}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n Activate console.log(v)} id=\"1\">\r\n {\r\n stateObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnPlainButton,\r\n useConfirm,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport { GetEmployeeMaster, AddEditEmployeeMaster } from \"../../../../services/generalService\";\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nexport function EmployeeMaster() {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n//#region Local Variable\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"EmployeeName\": \"\",\r\n \"EmployeeSerNo\": 0,\r\n \"Mode\": \"View\"\r\n }\r\n const validationObj = {\r\n \"EmployeeName\": \"\"\r\n }\r\n//#endregion\r\n//#region State Variable\r\n const [employeeObj, setEmployeeObj] = useState(defaultObj);\r\n const [employeeData, setEmployeeData] = useState([]);\r\n const [filterEmployee, setFilterEmployee] = useState([]);\r\n const [isActive, setIsActive] = useState(false);\r\n const [selectedEmployeeSerNo, setSelectedEmployeeSerNo] = useState();\r\n const [searchString, setsearchString] = useState(\"\");\r\n const [employeeValidation, setEmployeeValidation] = useState(validationObj);\r\n//#endregion\r\n//#region Custom Functions\r\n const fillEmployeeMaster = () => {\r\n setIsActive(true);\r\n GetEmployeeMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setIsActive(false);\r\n setEmployeeData(d.data);\r\n setFilterEmployee(d.data);\r\n if (d.data && d.data.length > 0) {\r\n setIsActive(false);\r\n setEmployeeData(d.data);\r\n setFilterEmployee(d.data);\r\n if (employeeObj.Mode == \"Add\" || employeeObj.Mode == \"Edit\") {\r\n let obj = d.data.find(x => x.EmployeeSerNo == employeeObj.EmployeeSerNo);\r\n obj.Mode = \"View\";\r\n setEmployeeObj(obj);\r\n setSelectedEmployeeSerNo(obj.EmployeeSerNo);\r\n }\r\n setEmployeeObj((prev) => ({ ...prev, Mode: \"View\" }));\r\n if (selectedEmployeeSerNo == undefined) {\r\n let obj = d.data[0];\r\n obj.Mode = \"View\";\r\n setEmployeeObj(obj);\r\n setSelectedEmployeeSerNo(obj.EmployeeSerNo);\r\n }\r\n }\r\n })\r\n }\r\n//#endregion\r\n//#region SearchChange\r\n const handleOnSearchChange = (b) => {\r\n let filterdata = employeeData.filter(obj => obj.EmployeeName.toLowerCase().includes(b.toLowerCase()));\r\n setFilterEmployee(filterdata);\r\n setsearchString(b);\r\n setIsActive(false);\r\n setEmployeeObj(defaultObj);\r\n }\r\n//#endregion\r\n//#region Validation\r\n const clearValidation = () => {\r\n setEmployeeValidation(validationObj);\r\n }\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (employeeObj.EmployeeName == \"\" || employeeObj.EmployeeName.trim().length == 0 || /[-’/`~!#*$@_%+=,^&(){}[\\]|;.:”<>?\\\\]/g.test(employeeObj.EmployeeName) == true) {\r\n isValid = false;\r\n setEmployeeValidation(prev => ({ ...prev, EmployeeName: \"Please enter valid Employee Name\" }));\r\n }\r\n return isValid;\r\n }\r\n//#endregion\r\n//#region Employee Name Click\r\n const handleEmployeeClick = (e) => {\r\n clearValidation();\r\n let obj = employeeData.find(x => x.EmployeeSerNo == e.target.id)\r\n obj.Mode = \"View\";\r\n setEmployeeObj(obj);\r\n setSelectedEmployeeSerNo(e.target.id);\r\n }\r\n//#endregion\r\n//#region Add\r\n const handleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n console.log(\"HI\",obj)\r\n obj.Mode = \"Add\";\r\n setEmployeeObj(obj);\r\n }\r\n//#endregion\r\n//#region Edit\r\n const handleOnEditClick = () => {\r\n if (employeeObj.EmployeeName == \"\") {\r\n alertFunction(\"Please Select Employee Name\");\r\n }\r\n else {\r\n setEmployeeObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n setIsActive(false);\r\n }\r\n//#endregion\r\n//#region Cancel\r\n const handleOnCancelClick = () => {\r\n clearValidation();\r\n setIsActive(false);\r\n let existingObj = employeeData.find(x => x.EmployeeSerNo == selectedEmployeeSerNo);\r\n\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setEmployeeObj(existingObj);\r\n }\r\n else {\r\n setEmployeeObj(prev => ({ ...prev, EmployeeName: \"\", EmployeeSerNo: 0, Mode: \"View\" }));\r\n }\r\n setsearchString(\"\");\r\n }\r\n//#endregion\r\n//#region Save\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n setIsActive(true);\r\n let apiObj = employeeObj;\r\n AddEditEmployeeMaster(employeeObj).then((d) => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n setIsActive(true)\r\n alertFunction(d.data.Message);\r\n if (employeeObj.Mode == \"Add\") {\r\n setSelectedEmployeeSerNo(parseInt(d.data.ReturnValue));\r\n apiObj.EmployeeSerNo = parseInt(d.data.ReturnValue)\r\n apiObj.Mode = \"view\";\r\n setEmployeeObj(apiObj);\r\n }\r\n fillEmployeeMaster();\r\n setsearchString(\"\");\r\n } else {\r\n alertFunction(\"Something Went Wrong\");\r\n }\r\n })\r\n setEmployeeObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alertFunction(\"Field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n//#endregion\r\n//#region useEffect\r\n useEffect(() => {\r\n fillEmployeeMaster();\r\n }, []);\r\n//#endregion\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Employee Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Employee Name
    \r\n
    \r\n
      \r\n {\r\n filterEmployee.map(d =>\r\n
    • \r\n {d.EmployeeName}\r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n {\r\n setEmployeeValidation(prev => ({ ...prev, EmployeeName: \"\" }))\r\n setEmployeeObj(prev => ({ ...prev, EmployeeName: m }))\r\n if (m == \"\") {\r\n setEmployeeValidation(prev => ({ ...prev, EmployeeName: \"Invalid Employee Name\" }))\r\n }\r\n }}\r\n >Name\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n Activate console.log(v)} id=\"1\">\r\n {\r\n employeeObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnLoader,\r\n InnTextarea,\r\n InnModalPopup,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport { GetDeviceMaster, AddEditDeviceMaster } from '../../../../services/generalService';\r\nimport { GetUsersList } from '../../../../services/reservationService';\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from '../../../../reducer/authSlice';\r\nimport Pagination from \"@mui/material/Pagination\";\r\n\r\nexport function DeviceMaster(props) {\r\n //#region local variable\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n DeviceSerNo: 0,\r\n Name: \"\",\r\n UserID: \"\",\r\n DeviceToken: \"\",\r\n Active: false,\r\n Mode: \"View\"\r\n }\r\n const valid = {\r\n Name: \"\",\r\n UserID: \"\",\r\n //DeviceToken: \"\",\r\n Active: false,\r\n }\r\n //#endregion\r\n //#region state variable\r\n const [deviceObj, setDeviceObj] = useState(defaultObj);\r\n const [deviceList, setDeviceList] = useState([]);\r\n const [validation, setValidation] = useState(valid);\r\n const [deviceFilter, setDeviceFilter] = useState([]);\r\n const [selectedSerNo, setSelectedSerNo] = useState(0);\r\n const [search, setSearch] = useState(\"\");\r\n const [isActive, setIsActive] = useState(false);\r\n const [loadUserId, setLoadUserId] = useState([]);\r\n //#endregion\r\n //#region useEffects\r\n useEffect(() => {\r\n fillDeviceList();\r\n loadComboUserList();\r\n }, []);\r\n //#endregion\r\n //#region load device list\r\n const fillDeviceList = () => {\r\n GetDeviceMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setDeviceList(d.data);\r\n setDeviceFilter(d.data);\r\n if (d.data && d.data.length > 0) {\r\n if (deviceObj.Mode == \"Add\" || deviceObj.Mode == \"Edit\") {\r\n let obj = d.data.find(x => x.DeviceSerNo == deviceObj.DeviceSerNo);\r\n if (obj) {\r\n obj.Mode = \"View\";\r\n setDeviceObj(obj);\r\n console.log(\"AddEditData\", obj);\r\n }\r\n }\r\n else {\r\n d.data[0].Mode = \"View\";\r\n setDeviceObj(d.data[0]);\r\n console.log(\"DefaultDeviceList>>\", d.data[0]);\r\n }\r\n\r\n }\r\n })\r\n }\r\n //#endregion\r\n //#region load combo user list\r\n const loadComboUserList = () => {\r\n GetUsersList(parseInt(currUser.ClientSerNo)).then(d => {\r\n let temp = [{ key: \"\", value: \"Select\" }]\r\n d.data.forEach(ele => {\r\n temp.push({ key: ele.UserID, value: ele.UserID })\r\n })\r\n setLoadUserId(temp);\r\n console.log(\"UserID>>\", temp);\r\n })\r\n }\r\n //#endregion\r\n //#region custom validation\r\n const clearValidation = () => {\r\n setValidation(valid);\r\n }\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (deviceObj.Name.trim().length == 0 || /[’/`~!#*$@_%+=.,^&(){}[\\]|;:”<>?\\\\]/g.test(deviceObj.Name) == true) {\r\n isValid = false;\r\n setValidation((prev) => ({ ...prev, Name: \"Invalid Device Name\" }));\r\n }\r\n if (deviceObj.UserID == \"\") {\r\n isValid = false;\r\n setValidation((prev) => ({ ...prev, UserID: \"Please Select UserID\" }));\r\n }\r\n return isValid;\r\n }\r\n //#endregion\r\n //#region event handler\r\n const handleOnClickDeviceName = (e) => {\r\n clearValidation();\r\n setIsActive(false);\r\n let obj = deviceList.find(d => d.DeviceSerNo == e.target.id);\r\n obj.Mode = \"View\";\r\n setDeviceObj(obj);\r\n setSelectedSerNo(e.target.id);\r\n console.log(\"Selected Device>> \", obj)\r\n }\r\n const handleOnClickSearch = (e) => {\r\n setSearch(e);\r\n setDeviceObj(defaultObj);\r\n let obj = [];\r\n deviceList.forEach((ele) => {\r\n if (ele.Name.toLowerCase().includes(e.toLowerCase())) {\r\n obj.push(ele);\r\n }\r\n });\r\n setDeviceFilter(obj);\r\n }\r\n const handleOnClickAdd = () => {\r\n let temp = JSON.parse(JSON.stringify(defaultObj));\r\n temp.Mode = \"Add\";\r\n setDeviceObj(temp);\r\n\r\n }\r\n const handleClickOnEdit = () => {\r\n if (deviceObj.Name == \"\") {\r\n alertFunction(\"Please Select Device\")\r\n }\r\n else {\r\n setDeviceObj((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n setSelectedSerNo(deviceObj.DeviceSerNo);\r\n }\r\n }\r\n const handleOnClickCancel = () => {\r\n clearValidation();\r\n let existingObj = deviceList.find(d => d.DeviceSerNo == selectedSerNo);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setDeviceObj(existingObj);\r\n }\r\n else {\r\n setDeviceObj(defaultObj);\r\n }\r\n }\r\n const searchEdit = () => {\r\n GetDeviceMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n let temp = d.data.filter(x => x.Name.toLowerCase().includes(search.toLowerCase()));\r\n setDeviceFilter(temp);\r\n })\r\n }\r\n const hanldeOnClickSave = () => {\r\n let valid = isValidPage();\r\n if (valid) {\r\n setIsActive(true);\r\n AddEditDeviceMaster(deviceObj).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n fillDeviceList();\r\n setDeviceObj((prev) => ({ ...prev, DeviceSerNo: d.data.ReturnValue }));\r\n setSelectedSerNo(d.data.ReturnValue);\r\n if (deviceObj.Mode == \"Add\" || deviceObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit();\r\n return;\r\n }\r\n }\r\n }\r\n else {\r\n alertFunction(\"Something went wrong\");\r\n }\r\n });\r\n setDeviceObj((prev) => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n //#endregion\r\n const selectData = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Device Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Device List
    \r\n
    \r\n
      \r\n {\r\n deviceFilter.map(d => (\r\n
    • \r\n {d.Name}
    • \r\n ))\r\n }\r\n {/*
    • Demo 1
    • \r\n
    • Demo 2
    • \r\n
    • Demo 3
    • */}\r\n
    \r\n
    \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n\r\n {\r\n setDeviceObj((prev) => ({ ...prev, Name: v }));\r\n setValidation((prev) => ({ ...prev, Name: \"\" }));\r\n console.log(v)\r\n }}>Name\r\n
    \r\n {\r\n setDeviceObj((prev) => ({ ...prev, UserID: v.key }));\r\n setValidation((prev) => ({ ...prev, UserID: \"\" }));\r\n console.log(v)\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n Active\r\n {\r\n setDeviceObj((prev) => ({ ...prev, Active: v }));\r\n console.log(v)\r\n }}\r\n id=\"Room1\"\r\n disabled={deviceObj.Mode == \"View\" ? true : false}\r\n value={deviceObj.Active}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n Activate console.log(v)} id=\"1\">\r\n\r\n {\r\n deviceObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n {/* setShowDepositTermTypeModal(!showDepositTermTypeModal)}>Add Deposit Term Type*/}\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\n","import React from 'react'\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnPlainButton,\r\n InnLoader,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport { useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from '../../../../reducer/authSlice';\r\nimport { useEffect } from 'react';\r\nimport { GetReferenceMaster } from '../../../../services/posbillingService';\r\nimport { AddEditReferenceMaster } from '../../../../services/generalService';\r\n\r\nexport function ReferenceMaster() {\r\n //#region local variable\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"ReferenceSerNo\": 0,\r\n \"Name\": \"\",\r\n \"Mode\": \"View\"\r\n }\r\n\r\n const validationObj = {\r\n \"Name\": \"\"\r\n }\r\n //#endregion\r\n\r\n //#region state variable \r\n const [isActive, setIsActive] = useState(true);\r\n const [referenceData, setReferenceData] = useState([]);\r\n const [referenceObj, setReferenceObj] = useState(defaultObj);\r\n const [referenceValidation, setReferenceValidation] = useState(validationObj);\r\n const [referenceSelected, setReferenceSelected] = useState(\"\");\r\n const [referenceFilter, setReferenceFilter] = useState([]);\r\n //#endregion\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n FillReferenceMasterList();\r\n }, [])\r\n //#endregion\r\n\r\n //#region clear validation function\r\n const clearValidation = () => {\r\n setReferenceValidation(validationObj);\r\n }\r\n //#endregion\r\n\r\n //#region handle function\r\n const FillReferenceMasterList = () => {\r\n GetReferenceMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n if (d.data && d.data.length > 0 && (referenceObj.ReferenceSerNo == 0 || referenceObj.ReferenceSerNo == undefined)) {\r\n let temp = d.data[0];\r\n temp.Mode = \"View\";\r\n setReferenceObj(temp);\r\n setReferenceSelected(temp.ReferenceSerNo);\r\n }\r\n setIsActive(false);\r\n setReferenceData(d.data);\r\n setReferenceFilter(d.data);\r\n })\r\n }\r\n\r\n const HandleOnReferenceListClick = (e) => {\r\n clearValidation();\r\n let temp = referenceData.find(x => x.ReferenceSerNo == e.target.id);\r\n temp.Mode = \"View\";\r\n setReferenceObj(temp);\r\n setReferenceSelected(e.target.id);\r\n }\r\n\r\n const validReference = () => {\r\n let valid = true;\r\n let numRegex = /^[0-9\\b]+$/;\r\n if (referenceObj.Name == \"\" || referenceObj.Name.trim().length === 0 || numRegex.test(referenceObj.Name)\r\n || /[-’/`~!#*$@_%+=,^&(){}[\\]|;.:”<>?\\\\]/g.test(referenceObj.Name) == true) {\r\n valid = false; \r\n setReferenceValidation(prev => ({ ...prev, Name: \"Please provide a valid Name\" }));\r\n }\r\n return valid;\r\n }\r\n\r\n const HandleOnReferenceSave = () => {\r\n let isValid = validReference();\r\n if (isValid) {\r\n AddEditReferenceMaster(referenceObj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n setIsActive(true);\r\n alertFunction(d.data.Message);\r\n FillReferenceMasterList(parseInt(d.data.ReturnValue));\r\n } else {\r\n alertFunction(\"Something went wrong\");\r\n }\r\n })\r\n setReferenceObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n\r\n const HandleOnReferenceAdd = () => {\r\n let temp = JSON.parse(JSON.stringify(defaultObj));\r\n temp.Mode = \"Add\";\r\n setReferenceObj(temp);\r\n }\r\n\r\n const HandleOnReferenceEdit = () => {\r\n if (referenceObj.Name == \"\") {\r\n alertFunction(\"Please select reference type to continue.\");\r\n } else {\r\n setReferenceObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n }\r\n\r\n const HandleOnReferenceCancel = () => {\r\n clearValidation();\r\n let existingObj = referenceData.find(x => x.ReferenceSerNo == referenceSelected);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setReferenceObj(existingObj);\r\n } else {\r\n setReferenceObj(defaultObj);\r\n }\r\n }\r\n\r\n const HandleOnReferenceSearch = (d) => {\r\n let filterData = referenceData.filter(x => x.Name.toLowerCase().includes(d.toLowerCase()));\r\n setReferenceFilter(filterData);\r\n }\r\n //#endregion\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Reference Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Reference Name
    \r\n
    \r\n
      \r\n {\r\n referenceFilter.map((d) =>\r\n
    • \r\n {d.Name}\r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
    \r\n
    \r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n {\r\n setReferenceObj(prev => ({ ...prev, Name: v }));\r\n setReferenceValidation(prev => ({ ...prev, Name: \"\" }));\r\n }}\r\n >Name\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n Activate console.log(v)} >\r\n {\r\n referenceObj.Mode == \"View\"\r\n ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnPlainButton,\r\n InnModalPopup,\r\n InnSingleSelectDropdown,\r\n InnLoader,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetExemptionMaster, AddEditExemptionMaster, GetExemptionMasterSub, AddEditExemptionSubMaster } from \"../../../../services/generalService\";\r\nimport { GetModuleMaster } from \"../../../../services/posMasterService\";\r\nimport { GetTransactionMaster } from \"../../../../services/reservationService\";\r\nexport function ExemptionMaster(props) {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n //#region Local Variable\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ExemptionSerNo: 0,\r\n Name: \"\",\r\n Module: 0,\r\n Mode: \"View\"\r\n }\r\n const [exemptionObj, setExemptionObj] = useState(defaultObj);\r\n const defaultSubObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ExemptionSerNo: exemptionObj.ExemptionSerNo,\r\n Active: false,\r\n TransactionSerNo: 0,\r\n NewTransactionSerNo: 0,\r\n Mode: \"View\"\r\n }\r\n const validationObj = {\r\n Name: \"\"\r\n }\r\n const validationSubObj = {\r\n TransactionSerNo: 0,\r\n NewTransactionSerNo: 0\r\n }\r\n //#endregion\r\n //#region State Variable\r\n const [exemptionData, setExemptionData] = useState([]);\r\n const [filterExemption, setFilterExemption] = useState([]);\r\n const [selectedExemptionSerNo, setSelectedExemptionSerNo] = useState(\"\");\r\n const [exemptionValidataion, setExemptionValidation] = useState(validationObj);\r\n const [isActive, setIsActive] = useState(false);\r\n const [loadModules, setLoadModules] = useState([]);\r\n const [searchString, setsearchString] = useState(\"\");\r\n //#endregion\r\n const [exemptionSubObj, setExemptionSubObj] = useState(defaultSubObj);\r\n const [selectedExemptionSubSerNo, setSelectedExemptionSubSerNo] = useState(\"\");\r\n const [exemptionSubData, setExemptionSubData] = useState([]);\r\n const [filterExemptionSub, setFilterExemptionSub] = useState([]);\r\n const [exemptionSubValidataion, setExemptionSubValidation] = useState(validationSubObj);\r\n const [transactionList, setTransactionList] = useState([]);\r\n const [isActivee, setIsActivee] = useState(false);\r\n const [searchString1, setsearchString1] = useState(\"\");\r\n\r\n //#region Custom Functions\r\n const fillExemptionMaster = () => {\r\n setIsActive(true);\r\n GetExemptionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setIsActive(false);\r\n if (d.data.length > 0 && (exemptionObj.ExemptionSerNo == 0 || exemptionObj.ExemptionSerNo == undefined)) {\r\n let obj = d.data[0];\r\n obj.Mode = \"View\";\r\n setExemptionObj(obj);\r\n setSelectedExemptionSerNo(d.data[0].ExemptionSerNo);\r\n }\r\n setExemptionData(d.data);\r\n setFilterExemption(d.data);\r\n })\r\n }\r\n //#region Custom Functions Sub\r\n const fillExemptionMasterSub = () => {\r\n setIsActivee(true);\r\n GetExemptionMasterSub(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), exemptionObj.ExemptionSerNo).then((d) => {\r\n setIsActivee(false);\r\n if (d.data.length == 0) {\r\n let obj = JSON.parse(JSON.stringify(defaultSubObj));\r\n obj.Mode = \"View\"\r\n setExemptionSubObj(obj);\r\n }\r\n else if (d.data.length > 0 && (exemptionSubObj.TransactionSerNo == 0 || exemptionSubObj.TransactionSerNo == undefined)) {\r\n let obj = d.data[0];\r\n obj.Mode = \"View\"\r\n setExemptionSubObj(obj);\r\n setSelectedExemptionSubSerNo(d.data[0].TransactionSerNo);\r\n }\r\n setExemptionSubData(d.data);\r\n setFilterExemptionSub(d.data);\r\n \r\n })\r\n }\r\n //#endregion\r\n //console.log(\"Data11\",exemptionSubData)\r\n const filTransactionMaster = () => {\r\n GetTransactionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"T\", \"F\").then(d => {\r\n let temp = [{ key: 0, value: \"Select\" }]\r\n d.data.forEach(element => {\r\n temp.push({ key: element.TransactionSerNo, value: element.Name })\r\n })\r\n setTransactionList(temp);\r\n // console.log(\"h\", temp)\r\n })\r\n }\r\n //#region SearchChange\r\n const handleOnSearchChange = (b) => {\r\n let filterdata = exemptionData.filter(g => g.Name.toLowerCase().includes(b.toLowerCase()));\r\n setFilterExemption(filterdata);\r\n setsearchString(b);\r\n setIsActive(false);\r\n setExemptionObj(defaultObj);\r\n }\r\n //#endregion\r\n const handleOnSearch = (b) => {\r\n let filterExemptionSub = exemptionSubData.filter(g=>g.Name.toLowerCase().includes(b.toLowerCase()));\r\n setFilterExemptionSub(filterExemptionSub); \r\n setsearchString1(b);\r\n }\r\n //#region Exemption Click\r\n const handleExemptionClick = (e) => {\r\n clearValidation();\r\n let obj = exemptionData.find(j => j.ExemptionSerNo == e.ExemptionSerNo)\r\n obj.Mode = \"View\";\r\n setExemptionObj(obj);\r\n setSelectedExemptionSerNo(e.ExemptionSerNo)\r\n console.log(\"exemptionSubObj\",exemptionSubObj)\r\n }\r\n //#endregion\r\n //#region Exemption Click\r\n const handleExemptionSubClick = (e) => {\r\n clearValidationSub();\r\n let obj = exemptionSubData.find(j => j.TransactionSerNo == e.target.id)\r\n obj.Mode = \"View\";\r\n setExemptionSubObj(obj);\r\n setSelectedExemptionSubSerNo(e.target.id)\r\n }\r\n //#endregion\r\n //#region Validation\r\n const clearValidation = () => {\r\n setExemptionValidation(validationObj);\r\n }\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (exemptionObj.Name == \"\" || exemptionObj.Name.trim().length == 0 || /[’/`~!#*$@_+=^{}[\\]|;:<>?\\\\]/g.test(exemptionObj.Name) == true) {\r\n isValid = false;\r\n setExemptionValidation(prev => ({ ...prev, Name: \"Please enter valid Name\" }));\r\n }\r\n if (exemptionObj.Module == \"\" || exemptionObj.Module == 0) {\r\n isValid = false;\r\n setExemptionValidation(prev => ({ ...prev, Module: \"Please Select valid Module\" }));\r\n }\r\n return isValid;\r\n }\r\n //#endregion\r\n const clearValidationSub = () => {\r\n setExemptionSubValidation(defaultSubObj);\r\n }\r\n\r\n const isValidP = () => {\r\n let valid = true;\r\n if (exemptionSubObj.Mode == \"Add\") {\r\n if (exemptionSubObj.TransactionSerNo === 0 || /\\s/g.test(exemptionSubObj.TransactionSerNo)) {\r\n valid = false;\r\n setExemptionSubValidation(prev => ({ ...prev, TransactionSerNo: \"Select the Transaction\" }));\r\n }\r\n }\r\n if (exemptionSubObj.Mode == \"Edit\") {\r\n if (exemptionSubObj.NewTransactionSerNo === 0) {\r\n valid = false;\r\n setExemptionSubValidation(prev => ({ ...prev, TransactionSerNo: \"Select the Transaction\" }));\r\n }\r\n }\r\n return valid;\r\n }\r\n //#region Add\r\n const handleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setExemptionObj(obj);\r\n //console.log(\"G\", obj)\r\n }\r\n //#endregion\r\n const handleOnAddSubClick = () => {\r\n let temp = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ExemptionSerNo: exemptionObj.ExemptionSerNo,\r\n Active: false,\r\n TransactionSerNo: 0,\r\n NewTransactionSerNo: 0,\r\n Mode: \"Add\"\r\n }\r\n setExemptionSubObj(temp);\r\n }\r\n //#region Edit\r\n const handleOnEditClick = () => {\r\n if (exemptionObj.Name == \"\") {\r\n alertFunction(\"Please Select Name\");\r\n }\r\n else {\r\n setExemptionObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n setIsActive(false);\r\n }\r\n //#endregion\r\n\r\n const handleOnEditSubClick = () => {\r\n clearValidationSub();\r\n console.log(\"hhhhh\",exemptionSubObj)\r\n if (exemptionSubObj.TransactionSerNo === 0 ) {\r\n alertFunction(\"Select the Transation Name\")\r\n } else {\r\n let obj = exemptionSubData.find(d => d.TransactionSerNo == selectedExemptionSubSerNo);\r\n obj.NewTransactionSerNo = parseInt(exemptionSubObj.TransactionSerNo);\r\n setExemptionSubObj(obj);\r\n setSelectedExemptionSubSerNo(obj.TransactionSerNo);\r\n setExemptionSubObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n setIsActivee(false);\r\n }\r\n //#region Cancel\r\n const handleOnCancelClick = () => {\r\n clearValidation();\r\n let existingObj = exemptionData.find(x => x.ExemptionSerNo == selectedExemptionSerNo);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setExemptionObj(existingObj);\r\n }\r\n else {\r\n setExemptionObj(defaultObj);\r\n }\r\n setsearchString(\"\");\r\n }\r\n //#endregion\r\n //#region Cancel\r\n const handleOnCancelSubClick = () => {\r\n clearValidationSub();\r\n let tempObj = exemptionSubData.find(x => x.TransactionSerNo == selectedExemptionSubSerNo);\r\n if (tempObj != undefined) {\r\n tempObj.Mode = \"View\";\r\n setExemptionSubObj(tempObj);\r\n //console.log(\"GGGG\", tempObj)\r\n }\r\n else {\r\n setExemptionSubObj(defaultSubObj);\r\n }\r\n setsearchString1(\"\");\r\n }\r\n //#endregion\r\n const handleOnSaveClick = () => {\r\n let IspageValid = isValidPage();\r\n if (IspageValid) {\r\n setIsActive(true);\r\n let apiObj = exemptionObj;\r\n AddEditExemptionMaster(exemptionObj).then((d) => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n setIsActive(true)\r\n alertFunction(d.data.Message);\r\n if (exemptionObj.Mode == \"Add\") {\r\n setSelectedExemptionSerNo(parseInt(d.data.Returnvalue))\r\n apiObj.ExemptionSerNo = parseInt(d.data.ReturnValue)\r\n apiObj.Mode = \"View\";\r\n setExemptionObj(apiObj)\r\n \r\n }\r\n fillExemptionMaster();\r\n setsearchString(\"\");\r\n } else {\r\n alertFunction(\"Something Went Wrong\");\r\n }\r\n })\r\n setExemptionObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alertFunction(\"Field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n \r\n const handleOnSaveSubClick = () => {\r\n let IspageValid = isValidP();\r\n if (IspageValid) {\r\n let apiObj = exemptionSubObj;\r\n let temp = undefined;\r\n let flag = false;\r\n if (exemptionSubObj.Mode == 'Edit') {\r\n temp = exemptionSubData.find((x) => x.TransactionSerNo == exemptionSubObj.NewTransactionSerNo);\r\n if (temp !== undefined) {\r\n if (exemptionSubObj.Active == temp.Active) {\r\n flag = true;\r\n }\r\n }\r\n } else {\r\n temp = exemptionSubData.find((x) => x.TransactionSerNo == exemptionSubObj.TransactionSerNo);\r\n flag = true;\r\n }\r\n if (temp && flag == true) {\r\n alertFunction(\"Item already exists in Transaction\");\r\n }\r\n else {\r\n setIsActive(true);\r\n AddEditExemptionSubMaster(exemptionSubObj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n setIsActive(false);\r\n alertFunction(d.data.Message);\r\n if (exemptionSubObj.Mode == \"Add\") {\r\n setSelectedExemptionSubSerNo(parseInt(d.data.Returnvalue))\r\n apiObj.TransactionSerNo = parseInt(d.data.ReturnValue)\r\n apiObj.Mode = \"View\";\r\n setExemptionSubObj(apiObj)\r\n }\r\n fillExemptionMasterSub();\r\n setsearchString1(\"\");\r\n } else {\r\n alertFunction(\"Something Went Wrong\");\r\n }\r\n });\r\n setExemptionSubObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n }\r\n else {\r\n alertFunction(\"field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n //#endregion\r\n useEffect(() => {\r\n fillExemptionMasterSub(selectedExemptionSerNo);\r\n }, [selectedExemptionSerNo]);\r\n //#region useEffect\r\n useEffect(() => {\r\n fillExemptionMaster();\r\n GetModuleMaster().then((d) => {\r\n let temp = [{ key: \"0\", value: \"Select\" }];\r\n d.data.forEach(d => {\r\n temp.push({ key: d.Module, value: d.Name });\r\n })\r\n setLoadModules(temp);\r\n //console.log(\"ComboData->>\", temp);\r\n });\r\n }, []);\r\n //#endregion\r\n console.log(\"Ex\",exemptionSubData)\r\n useEffect(() => {\r\n filTransactionMaster();\r\n }, [])\r\n const [showExemptionModal, setShowExemptionModal] = useState();\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Exemption Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Exemption Names List
    \r\n
    \r\n
      \r\n {\r\n filterExemption.map(d =>\r\n
    • \r\n handleExemptionClick(d)}>{d.Name}\r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n {\r\n setExemptionValidation(prev => ({ ...prev, Name: \"\" }))\r\n setExemptionObj(prev => ({ ...prev, Name: v }))\r\n if (v == \"\") {\r\n setExemptionValidation(prev => ({ ...prev, Name: \"Invalid Name\" }))\r\n } else {\r\n setExemptionValidation(prev => ({ ...prev, Name: \"\" }))\r\n }\r\n }}\r\n >Name\r\n
    \r\n {\r\n setExemptionObj((prev) => ({ ...prev, Module: item.key }));\r\n setExemptionValidation((prev) => ({ ...prev, Module: \"\" }));\r\n }}\r\n selectedSerNo={exemptionObj.Module}\r\n label=\"Module\"\r\n disabled={exemptionObj.Mode == \"View\" ? true : false}\r\n customError={exemptionValidataion.Module}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Exemptions Sub \r\n {/* setShowExemptionModal(!showExemptionModal)} className=\"plus-gray-btn m0\">+ */}\r\n {\r\n fillExemptionMasterSub();\r\n setShowExemptionModal(!showExemptionModal)\r\n }}>
    \r\n
      \r\n {exemptionSubData.map((element) => {\r\n return (\r\n
    • \r\n {element.Name}{\" \"}\r\n
    • \r\n );\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n Activate console.log(v)} id=\"SW1\">\r\n {\r\n exemptionObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n {showExemptionModal ? (\r\n {\r\n setShowExemptionModal(!showExemptionModal);\r\n setExemptionSubObj(defaultSubObj);\r\n //clearValidationSub();\r\n }}>\r\n
    \r\n
    \r\n
    \r\n

    Sub Exemption

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Sub Exemption List
    \r\n
    \r\n
      \r\n {\r\n filterExemptionSub.map(d =>\r\n
    • \r\n {d.Name}\r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n {/* Add Deposit Term */}\r\n\r\n
    \r\n\r\n
    \r\n\r\n {/* console.log(v)}>Name */}\r\n
    \r\n {\r\n if (exemptionSubObj.Mode == \"Add\") {\r\n setExemptionSubObj(prev => ({ ...prev, TransactionSerNo: parseInt(item.key) }));\r\n } else {\r\n setExemptionSubObj(prev => ({ ...prev, NewTransactionSerNo: parseInt(item.key) }));\r\n }\r\n setExemptionSubValidation(prev => ({ ...prev, TransactionSerNo: \"\" }));\r\n }}\r\n >\r\n
    \r\n
    \r\n Active\r\n {\r\n setExemptionSubObj((prev) => ({ ...prev, Active: v }));\r\n }}\r\n id=\"s0\"\r\n >\r\n
    \r\n
    \r\n {\r\n exemptionSubObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save \r\n \r\n }\r\n
    \r\n\r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n
    \r\n );\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n} from \"../../../../component\";\r\nimport { GetUserByUserCategorySerNo, GetUserCategoryByRightsSerNo, GetUserRightsMaster, UserRightsApply } from \"../../../../services/generalService\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\n\r\nexport function UserRightsMaster() {\r\n\r\n //#region Local Variables\r\n const selectData = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n const currUser = useSelector(currentUser);\r\n const [userRightsData, setUserRightsData] = useState([]);\r\n const [filterUserRightsData, setFilterUserRightsData] = useState([]);\r\n const [userRightsMasterObj, setUserRightsMasterObj] = useState({});\r\n const [userData, setUserData] = useState([]);\r\n const [filterUserData, setFilterUserData] = useState([]);\r\n const [userDataByRights, setUserDataByRights] = useState([]);\r\n const [filterUserDataByRights, setFilterUserDataByRights] = useState([]);\r\n const [userCategorysearchstring, setUserCategorySearchString] = useState(\"\");\r\n const [userSearchString, setUserSearchString] = useState(\"\");\r\n const [rightsSearchString, setRightsSearchString] = useState(\"\");\r\n //#endregion\r\n\r\n //#region Custom Functions\r\n const fillUserRightsMaster = () => {\r\n GetUserRightsMaster().then(d => {\r\n if (d.data != undefined) {\r\n setUserRightsData(JSON.parse(JSON.stringify((d.data))));\r\n setFilterUserRightsData(d.data);\r\n let obj = d.data[0];\r\n obj.Mode = \"View\";\r\n setUserRightsMasterObj(obj);\r\n }\r\n })\r\n }\r\n\r\n const fillUserByCategory = () => {\r\n GetUserByUserCategorySerNo(currUser.ClientSerNo, userRightsMasterObj.UserCategorySerNo)\r\n .then(d => {\r\n if (d.data != undefined) {\r\n setUserData(JSON.parse(JSON.stringify((d.data))));\r\n setFilterUserData(d.data);\r\n }\r\n })\r\n }\r\n const fillUserByRights = () => {\r\n GetUserCategoryByRightsSerNo(currUser.ClientSerNo, userRightsMasterObj.RightsSerNo).then(d => {\r\n if (d.data != undefined) {\r\n setFilterUserDataByRights(d.data);\r\n setUserDataByRights(JSON.parse(JSON.stringify((d.data))));\r\n }\r\n })\r\n }\r\n //#endregion\r\n\r\n //#region Events\r\n const handleChecked = (serno, isChecked) => {\r\n let arr = filterUserDataByRights;\r\n for (let i = 0; i < arr.length; i++) {\r\n if (arr[i].UserCategorySerNo == serno) {\r\n arr[i].IsApply = isChecked;\r\n }\r\n }\r\n setFilterUserDataByRights(arr);\r\n }\r\n\r\n const handleUserCategorySearch = (e) => {\r\n // if (userRightsMasterObj.Mode == \"Edit\") {\r\n let filterData = userDataByRights.filter((item) => item.Name.toLowerCase().includes(e.toLowerCase()));\r\n setFilterUserDataByRights(filterData);\r\n setUserCategorySearchString(e);\r\n // }\r\n }\r\n\r\n const handleUserSearch = (e) => {\r\n let filterData = userData.filter((item) => item.UserName.toLowerCase().includes(e.toLowerCase()));\r\n setFilterUserData(filterData);\r\n setUserSearchString(e);\r\n }\r\n\r\n const handleRightsSearch = (e) => {\r\n let filterData = userRightsData.filter((item) => item.Name.toLowerCase().includes(e.toLowerCase()) || item.DisplayName.toLowerCase().includes(e.toLowerCase()));\r\n setFilterUserRightsData(filterData);\r\n setRightsSearchString(e);\r\n }\r\n\r\n const handleSaveClick = () => {\r\n let arr = JSON.parse(JSON.stringify(filterUserDataByRights));\r\n arr.forEach(element => {\r\n element.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n element.RightsSerNo = userRightsMasterObj.RightsSerNo;\r\n });\r\n console.log(arr);\r\n UserRightsApply(arr).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n fillUserByRights();\r\n }\r\n })\r\n setUserRightsMasterObj((prev) => ({ ...prev, Mode: \"View\", UserCategorySerNo: 0 }))\r\n setFilterUserData([]);\r\n setUserCategorySearchString(\"\")\r\n }\r\n\r\n const handleCancelClick = () => {\r\n setUserRightsMasterObj((prev) => ({ ...prev, Mode: \"View\", UserCategorySerNo: 0 }));\r\n setFilterUserDataByRights(JSON.parse(JSON.stringify(userDataByRights)));\r\n console.log(userDataByRights,JSON.parse(JSON.stringify(userDataByRights)))\r\n setUserCategorySearchString(\"\")\r\n setFilterUserData([]);\r\n }\r\n //#endregion\r\n\r\n //#region UseEffect\r\n useEffect(() => {\r\n fillUserRightsMaster();\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (userRightsMasterObj.UserCategorySerNo != undefined) {\r\n fillUserByCategory();\r\n }\r\n }, [userRightsMasterObj.UserCategorySerNo])\r\n\r\n useEffect(() => {\r\n if (userRightsMasterObj.RightsSerNo != undefined) {\r\n fillUserByRights();\r\n }\r\n }, [userRightsMasterObj.RightsSerNo])\r\n //#endregion\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    User Rights Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n searchable={[\"Search for Department \", \"No matching Country\"]}\r\n // customError={\"Please select atleast one option\"}\r\n // selectedSerNo={\"0\"}\r\n disabled={false}\r\n >\r\n
    \r\n
    \r\n console.log(item, name)}\r\n searchable={[\"Search for Pages \", \"No matching Country\"]}\r\n // customError={\"Please select atleast one option\"}\r\n // selectedSerNo={\"0\"}\r\n disabled={false}\r\n >\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n Functional User Rights\r\n
    \r\n
      \r\n {filterUserRightsData && filterUserRightsData.map(d => {\r\n return (\r\n {\r\n setUserRightsMasterObj(d);\r\n setUserRightsMasterObj((prev) => ({ ...prev, Mode: \"View\", UserCategorySerNo: 0 }));\r\n setUserCategorySearchString(\"\");\r\n }}>\r\n {d.DisplayName}

      {d.Name}

      \r\n \r\n )\r\n })}\r\n
    \r\n
    \r\n
    \r\n\r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n
    \r\n \r\n Name\r\n \r\n
    \r\n
    \r\n \r\n Description\r\n \r\n
    \r\n
    \r\n \r\n Notification text on functional event\r\n \r\n
    \r\n
    \r\n
    \r\n
    Assign Rights to User Category
    \r\n
    \r\n Search\r\n
    \r\n
    \r\n {filterUserDataByRights && filterUserDataByRights.map(d => {\r\n return (\r\n
    \r\n {\r\n console.log(isChecked)\r\n setUserRightsMasterObj((prev) => ({ ...prev, UserCategorySerNo: d.UserCategorySerNo }))\r\n handleChecked(d.UserCategorySerNo, isChecked);\r\n }}>{d.Name}\r\n
    \r\n )\r\n })}\r\n
    \r\n
    \r\n
    \r\n
    Employees Assigned to this Category
    \r\n
    \r\n Search\r\n
    \r\n
    \r\n
      \r\n {filterUserData && filterUserData.map(d => {\r\n return (\r\n
    • {d.UserName}
    • \r\n )\r\n })}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    List of Pages (Implemented)
    \r\n
    \r\n
      \r\n
    • Create New Reservation
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n {\r\n userRightsMasterObj.Mode == \"View\" ?\r\n setUserRightsMasterObj((prev) => ({ ...prev, Mode: \"Edit\" }))}>Edit\r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n Activate console.log(v)} id=\"1\">\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnCheckbox,\r\n InnModalPopup,\r\n useConfirm,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetTransactionMasterData, AddEditTransactionMasterData, GetTransactionSub } from \"../../../../services/generalService\";\r\nimport { AddEditTransactionSub, DeleteTransactionSubSub } from \"../../../../services/generalService\";\r\nimport { GetRoutingMaster } from \"../../../../services/reservationService\";\r\nimport { GetTransactionSubSub, AddTransactionSubSub, DeleteTransactionSubMaster } from \"../../../../services/generalService\";\r\nimport { useAlert } from \"../../../../utils/hooks/useAlert\";\r\n\r\nexport function TransactionMaster(props) {\r\n const selectData = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n const AddLessData = [\r\n { key: \"Add\", value: \"Add\" },\r\n { key: \"Less\", value: \"Less\" },\r\n // { key: \"Add 1\", value: \"Add 1\" },\r\n ];\r\n\r\n const chargeTypeData = [\r\n { key: \"NONE\", value: \"NONE\" },\r\n { key: \"CANC\", value: \"CANC\" },\r\n { key: \"PDISC\", value: \"PDISC\" },\r\n { key: \"RND\", value: \"RND\" },\r\n { key: \"ROOM\", value: \"ROOM\" },\r\n ]\r\n\r\n const transTypeData = [\r\n { key: '0', value: \"Select\" },\r\n { key: 'D', value: \"Debit\" },\r\n { key: 'C', value: \"Credit\" },\r\n ]\r\n\r\n const transactionTypeData = [\r\n { key: '0', value: \"Select\" },\r\n { key: 'C', value: \"Charge\" },\r\n { key: 'T', value: \"Tax\" },\r\n ]\r\n\r\n let currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const { innkeyAlert } = useAlert();\r\n\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n //#region default object\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"TransactionSerNo\": 0,\r\n \"Name\": \"\",\r\n \"TransType\": '0',\r\n \"TransactionType\": '0',\r\n \"IsPercentage\": true,\r\n \"Percentage\": 0.00,\r\n \"Module\": currUser.CurrentModule,\r\n \"RoutingSerNo\": 0,\r\n \"Sequence\": 0,\r\n \"IsAutoGeneratedReceipt\": false,\r\n \"ChargeType\": 'None',\r\n \"HSN_SAC_Code\": \"\",\r\n \"IsSGST\": true,\r\n \"IsCGST\": true,\r\n \"IsIGST\": true,\r\n \"IsCess\": true,\r\n \"MaskTransactionSerNo\": 0,\r\n \"Mode\": \"View\"\r\n }\r\n\r\n const validationObj = {\r\n \"Name\": \"\",\r\n \"TransType\": \"\",\r\n \"Percentage\": \"\",\r\n \"Sequence\": \"\",\r\n \"MaskTransactionSerNo\": 0,\r\n }\r\n\r\n const defaultApplicableObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"TransactionSerNo\": 0,\r\n \"AssoTransactionSerNo\": 0,\r\n \"Name\": \"\",\r\n \"Seq\": 0,\r\n \"Mode\": \"View\"\r\n }\r\n\r\n const applicationValidation = {\r\n \"AssoTransactionSerNo\": \"\",\r\n \"Seq\": \"\"\r\n }\r\n //#endregion \r\n\r\n //#region state variable\r\n const [isActive, setIsActive] = useState(true);\r\n const [transactionData, setTransactionData] = useState([]);\r\n const [transactionObj, setTransactionObj] = useState(defaultObj);\r\n const [transactionValidation, setTransactionValidation] = useState(validationObj);\r\n const [transactionFilter, setTransactionFilter] = useState([]);\r\n const [transactionSelected, setTransactionSelected] = useState(\"\");\r\n const [listRoutingType, setListRoutingType] = useState([]);\r\n const [selectedChargeType, setSelectedChargeType] = useState(\"\");\r\n\r\n const [transactionTaxData, setTransactionTaxData] = useState([]);\r\n const [modifyTransactionSub, setModifyTransactionSub] = useState([]);\r\n const [taxOnTaxObj, setTaxOnTaxObj] = useState([]);\r\n const [taxOnTaxData, setTaxOnTaxData] = useState([]);\r\n\r\n const [applicableTaxObj, setApplicableTaxObj] = useState(defaultApplicableObj);\r\n const [applicableTaxValidation, setApplicableTaxValidation] = useState(applicationValidation);\r\n const [applicableTaxSelected, setApplicableTaxSelected] = useState(0);\r\n\r\n const [listApplicationTax, setListApplicationTax] = useState([]);\r\n const [showAppTaxesPopup, setShowAppTaxesPopup] = useState(false);\r\n\r\n const [listOfAppTax, setListOfAppTax] = useState([])\r\n const [isValidApplicable, setIsValidApplicable] = useState(true);\r\n const [maskTypeCharge, setMaskTypeCharge] = useState([]);\r\n const [isDisabledTaxOn, setIsDisabledTaxOn] = useState(true);\r\n const [selectedMaskTransaction, setSelectedMaskTransaction] = useState({});\r\n\r\n //#endregion \r\n\r\n //#region useEffect \r\n useEffect(() => {\r\n fillTransactionMaster();\r\n }, [])\r\n\r\n // useEffect(() => {\r\n // GetTransactionMasterData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n\r\n // })\r\n // }, [])\r\n\r\n useEffect(() => {\r\n GetRoutingMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n if (d.data && d.data.length > 0) {\r\n d.data.forEach(ele => {\r\n temp.push({ key: parseInt(ele.RoutingSerNo), value: ele.Name });\r\n })\r\n }\r\n setListRoutingType(temp);\r\n })\r\n }, [])\r\n\r\n useEffect(() => {\r\n fillApplicableTax(false);\r\n }, [transactionObj.TransactionSerNo])\r\n //#endregion \r\n\r\n //#region validation\r\n const clearValidation = () => {\r\n setTransactionValidation(validationObj);\r\n }\r\n\r\n const clearApplicable = () => {\r\n setApplicableTaxValidation(applicationValidation);\r\n }\r\n\r\n const validTransaction = () => {\r\n let isvalid = true;\r\n if (transactionObj.Name == \"\" || transactionObj.Name.trim().length == 0 ||\r\n /[-’/`~!#*$@_+=,^&(){}[\\]|;:”<>?\\\\]/g.test(transactionObj.Name) || /^[0-9\\b]+$/.test(transactionObj.Name)) {\r\n isvalid = false;\r\n setTransactionValidation(prev => ({ ...prev, Name: \"Enter the valid name\" }));\r\n }\r\n if (transactionObj.TransType == \"0\") {\r\n isvalid = false;\r\n setTransactionValidation(prev => ({ ...prev, TransType: \"Select valid transaction type\" }));\r\n }\r\n if (transactionObj.Percentage === \"\" || isNaN(+transactionObj.Percentage) || /\\s/g.test(transactionObj.Percentage) || transactionObj.Percentage < 0) {\r\n isvalid = false;\r\n setTransactionValidation(prev => ({ ...prev, Percentage: \"Enter the valid percentage\" }));\r\n }\r\n return isvalid;\r\n }\r\n\r\n const validApplication = () => {\r\n let isvalid = true;\r\n if (applicableTaxObj.AssoTransactionSerNo == 0) {\r\n isvalid = false;\r\n setApplicableTaxValidation(prev => ({ ...prev, AssoTransactionSerNo: \"Select valid applicable type\" }));\r\n }\r\n if (applicableTaxObj.Seq === \"\" || isNaN(+applicableTaxObj.Seq) || /\\s/g.test(applicableTaxObj.Seq) || applicableTaxObj.Seq < 0) {\r\n isvalid = false;\r\n setApplicableTaxValidation(prev => ({ ...prev, Seq: \"Enter the valid sequence\" }));\r\n }\r\n return isvalid;\r\n }\r\n //#endregion \r\n\r\n //#region functions\r\n const fillTransactionMaster = () => {\r\n GetTransactionMasterData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), currUser.CurrentModule).then(d => {\r\n if (d.data && d.data.length > 0) {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach(ele => {\r\n if (ele.TransactionType == \"T\") {\r\n temp.push({ key: parseInt(ele.TransactionSerNo), value: ele.Name })\r\n }\r\n })\r\n setListApplicationTax(temp);\r\n let tempType = [{ key: 0, value: \"NONE\" }];\r\n d.data.forEach(e => {\r\n if (e.TransactionType == \"C\") {\r\n tempType.push({ key: parseInt(e.TransactionSerNo), value: e.Name })\r\n }\r\n })\r\n let tempp = d.data[0];\r\n if (tempp.MaskTransactionSerNo == 0) {\r\n let obj = tempType.find((x) => x.key == 0)\r\n console.log(obj);\r\n setSelectedMaskTransaction(obj)\r\n }\r\n else if (tempp.MaskTransactionSerNo == null) {\r\n let obj = tempType.find((x) => x.key == tempp.TransactionSerNo)\r\n setSelectedMaskTransaction(obj)\r\n }\r\n else {\r\n let obj = tempType.find((x) => x.key == tempp.MaskTransactionSerNo)\r\n setSelectedMaskTransaction(obj)\r\n }\r\n setMaskTypeCharge(tempType)//Gaurav\r\n }\r\n if (d.data && d.data.length > 0 && (transactionObj.TransactionSerNo == 0 || transactionObj.TransactionSerNo == undefined)) {\r\n console.log('Data>>', d.data);\r\n let temp = d.data[0];\r\n temp.Mode = \"View\";\r\n setTransactionObj(temp);\r\n setTransactionSelected(temp.TransactionSerNo);\r\n if (temp.ChargeType == null) {\r\n setSelectedChargeType(\"NONE\")\r\n }\r\n else {\r\n setSelectedChargeType(temp.ChargeType)\r\n }\r\n }\r\n setIsActive(false);\r\n setTransactionTaxData(d.data.filter(o => o.TransactionType == \"T\"));\r\n setTransactionData(d.data.filter((o) => o.TransactionType == \"C\" || o.TransactionType == \"T\"));\r\n setTransactionFilter(d.data.filter((o) => o.TransactionType == \"C\" || o.TransactionType == \"T\"));\r\n })\r\n }\r\n const fillTransactionSubSub = (TransSerNo) => {\r\n GetTransactionSubSub(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), TransSerNo).then(d => {\r\n if (d.data && d.data.length > 0) {\r\n setTaxOnTaxData(d.data)\r\n }\r\n else {\r\n setTaxOnTaxData([])\r\n }\r\n })\r\n }\r\n\r\n const fillApplicableTax = (isDeleted) => {\r\n GetTransactionSub(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), transactionObj.TransactionSerNo).then(d => {\r\n let modifyTaxList = [];\r\n if (d.data.length > 0) {\r\n setListOfAppTax(d.data)\r\n }\r\n else {\r\n setListOfAppTax([])\r\n }\r\n if (isDeleted) {\r\n if (d.data.length > 0) {\r\n setApplicableTaxSelected(d.data[0].AssoTransactionSerNo)\r\n let obj = d.data[0]\r\n if (obj) {\r\n obj.Mode = \"View\"\r\n setApplicableTaxObj(obj)\r\n }\r\n }\r\n else {\r\n let temp = JSON.parse(JSON.stringify(defaultApplicableObj));\r\n temp.Mode = \"View\";\r\n setApplicableTaxObj(temp);\r\n setApplicableTaxSelected(temp.AssoTransactionSerNo)\r\n }\r\n }\r\n if (d.data.length > 0) {\r\n transactionTaxData.forEach(ele => {\r\n if (ele.TransactionType == 'T') {\r\n d.data.forEach(ele1 => {\r\n if (ele.TransactionSerNo == ele1.AssoTransactionSerNo) {\r\n if (modifyTaxList.filter(x => x.AssoTransactionSerNo == ele.TransactionSerNo).length <= 0) {\r\n modifyTaxList.push({\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"Name\": ele.Name,\r\n \"TransactionSerNo\": transactionObj.TransactionSerNo,\r\n \"AssoTransactionSerNo\": ele.TransactionSerNo,\r\n \"IsChecked\": true,\r\n \"Seq\": ele1.Seq\r\n })\r\n } else {\r\n modifyTaxList = modifyTaxList.filter(x => x.AssoTransactionSerNo != ele.TransactionSerNo);\r\n modifyTaxList.push({\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"Name\": ele.Name,\r\n \"TransactionSerNo\": transactionObj.TransactionSerNo,\r\n \"AssoTransactionSerNo\": ele.TransactionSerNo,\r\n \"IsChecked\": true,\r\n \"Seq\": ele1.Seq\r\n })\r\n }\r\n } else {\r\n if (modifyTaxList.filter(x => x.AssoTransactionSerNo == ele.TransactionSerNo).length <= 0) {\r\n modifyTaxList.push({\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"Name\": ele.Name,\r\n \"TransactionSerNo\": transactionObj.TransactionSerNo,\r\n \"AssoTransactionSerNo\": ele.TransactionSerNo,\r\n \"IsChecked\": false,\r\n \"Seq\": 0\r\n })\r\n }\r\n }\r\n });\r\n }\r\n });\r\n } else {\r\n transactionTaxData.forEach(ele => {\r\n if (ele.TransactionType == 'T') {\r\n modifyTaxList.push({\r\n \"Name\": ele.Name,\r\n \"TransactionSerNo\": transactionObj.TransactionSerNo,\r\n \"AssoTransactionSerNo\": ele.TransactionSerNo,\r\n \"IsChecked\": false,\r\n \"Seq\": 0\r\n })\r\n }\r\n });\r\n }\r\n\r\n if (d.data && d.data.length > 0 && (applicableTaxObj.AssoTransactionSerNo == 0 || applicableTaxObj.AssoTransactionSerNo == undefined)) {\r\n let temp = d.data[0];\r\n temp.Mode = \"View\";\r\n setApplicableTaxObj(temp);\r\n setApplicableTaxSelected(temp.AssoTransactionSerNo)\r\n }\r\n setModifyTransactionSub(modifyTaxList);\r\n })\r\n }\r\n\r\n const TransactionMasterListClick = (e) => {\r\n clearValidation();\r\n let tempObj = transactionData.find(x => x.TransactionSerNo == e.target.id);\r\n tempObj.Mode = \"View\";\r\n setTransactionObj(tempObj);\r\n if (tempObj.MaskTransactionSerNo == 0) {\r\n setSelectedMaskTransaction({ key: 0, value: \"None\" })\r\n }\r\n else {\r\n let obj = maskTypeCharge.find((x) => x.key == tempObj.MaskTransactionSerNo)\r\n setSelectedMaskTransaction(obj)\r\n }\r\n if (tempObj.ChargeType == null || tempObj.ChargeType == \"\") {\r\n setSelectedChargeType(\"NONE\")\r\n }\r\n else {\r\n setSelectedChargeType(tempObj.ChargeType)\r\n }\r\n setTransactionSelected(e.target.id);\r\n setTaxOnTaxObj([])\r\n fillTransactionSubSub(e.target.id);\r\n }\r\n\r\n const handleOnTransactionSearch = (d) => {\r\n let tempSearch = transactionData.filter(x => x.Name.toLowerCase().includes(d.toLowerCase()));\r\n setTransactionFilter(tempSearch);\r\n }\r\n\r\n const handleOnTransactionSave = () => {\r\n let valid = validTransaction();\r\n if (valid) {\r\n let apiObj = transactionObj\r\n\r\n if (transactionObj.TransactionType == \"C\") {\r\n let Temp = selectedMaskTransaction.key;\r\n\r\n if (Temp == 0 || Temp == undefined) {\r\n Temp = transactionObj.TransactionSerNo;\r\n } else {\r\n Temp = selectedMaskTransaction.key;\r\n }\r\n apiObj.MaskTransactionSerNo = Temp\r\n\r\n apiObj.Percentage = 0\r\n apiObj.IsCGST = false\r\n apiObj.IsCess = false\r\n apiObj.IsSGST = false\r\n apiObj.IsIGST = false\r\n }\r\n else {\r\n apiObj.MaskTransactionSerNo = transactionObj.TransactionSerNo\r\n }\r\n\r\n console.log('finalObj', apiObj);\r\n AddEditTransactionMasterData(apiObj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n setIsActive(true);\r\n alertFunction(d.data.Message);\r\n fillTransactionMaster(parseInt(d.data.ReturnValue));\r\n } else {\r\n alertFunction(\"Something went wrong\");\r\n }\r\n })\r\n setTransactionObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n\r\n const handleOnTransactionAdd = () => {\r\n let temp = JSON.parse(JSON.stringify(defaultObj));\r\n temp.Mode = \"Add\";\r\n temp.TransactionType = \"C\"\r\n if (currUser.CurrentModule == \"F\") {\r\n temp.Module = \"R\";\r\n }\r\n setTransactionObj(temp);\r\n setSelectedMaskTransaction({})\r\n }\r\n\r\n const handleOnTransactionEdit = () => {\r\n if (transactionObj.Name == \"\") {\r\n alertFunction(\"Select transaction\");\r\n } else {\r\n setTransactionObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n }\r\n\r\n const handleOnTransactionCancel = () => {\r\n clearValidation();\r\n let existingObj = transactionData.find(x => x.TransactionSerNo == transactionSelected);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setTransactionObj(existingObj);\r\n } else {\r\n setTransactionObj(defaultObj);\r\n }\r\n }\r\n\r\n const handleOnTaxCheckedClick = (assoSubSerNo, isChecked) => {\r\n let tempTax = JSON.parse(JSON.stringify(taxOnTaxObj));\r\n tempTax.forEach(x => {\r\n if (x.AssoTransactionSubSerNo == assoSubSerNo) {\r\n x.IsChecked = isChecked\r\n }\r\n })\r\n setTaxOnTaxObj(tempTax)\r\n }\r\n\r\n const handleSaveTransactionSubSub = () => {\r\n setIsDisabledTaxOn(true)\r\n let temp = []\r\n taxOnTaxObj.forEach((x) => {\r\n if (x.IsChecked == true) {\r\n temp.push({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n TransactionSerNo: x.TransactionSerNo,\r\n AddLess: x.AddLess,\r\n AssoTransactionSerNo: x.AssoTransactionSerNo,\r\n AssoTransactionSubSerNo: x.AssoTransactionSubSerNo\r\n })\r\n }\r\n })\r\n if (temp.length == 0) {\r\n temp.push({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n TransactionSerNo: transactionObj.TransactionSerNo,\r\n AddLess: \"\",\r\n AssoTransactionSerNo: applicableTaxObj.AssoTransactionSerNo,\r\n AssoTransactionSubSerNo: 0\r\n })\r\n }\r\n let isValidTransactionSubSub = true;\r\n if (isValidTransactionSubSub) {\r\n setIsActive(true)\r\n AddTransactionSubSub(temp).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n } else {\r\n alertFunction(\"Something went wrong\");\r\n }\r\n setTimeout(() => {\r\n fillTransactionSubSub(transactionObj.TransactionSerNo);\r\n setIsActive(false)\r\n }, 10);\r\n })\r\n setTransactionObj(prev => ({ ...prev, Mode: \"View\" }))\r\n } else {\r\n alertFunction(\"One or more validation error occured\");\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region applicable taxes popup\r\n const ApplicableTaxListClick = (e) => {\r\n clearApplicable();\r\n let tempObj = listOfAppTax.find(x => x.AssoTransactionSerNo == e.target.id);\r\n tempObj.Mode = \"View\";\r\n setApplicableTaxObj(tempObj);\r\n setApplicableTaxSelected(e.target.id);\r\n }\r\n const handleSelectTaxClick = (assoSerNo, currSeq) => {\r\n let temp = JSON.parse(JSON.stringify(modifyTransactionSub));\r\n let tempData = [{\r\n Name: transactionObj.Name,\r\n TransactionSerNo: transactionObj.TransactionSerNo,\r\n AssoTransactionSerNo: assoSerNo,\r\n AssoTransactionSubSerNo: transactionObj.TransactionSerNo,\r\n AddLess: \"Add\",\r\n IsChecked: false\r\n }]\r\n temp.forEach((x) => {\r\n if (x.Seq < currSeq && x.Seq != 0 && x.Seq != undefined)\r\n tempData.push({\r\n Name: x.Name,\r\n TransactionSerNo: x.TransactionSerNo,\r\n AssoTransactionSerNo: assoSerNo,\r\n AssoTransactionSubSerNo: x.AssoTransactionSerNo,\r\n AddLess: \"Add\",\r\n IsChecked: false\r\n })\r\n })\r\n tempData = tempData.filter((x) => x.AssoTransactionSerNo != x.AssoTransactionSubSerNo)\r\n tempData.forEach((x) => {\r\n if (taxOnTaxData.length > 0) {\r\n taxOnTaxData.forEach((ele) => {\r\n if (x.AssoTransactionSerNo == ele.AssoTransactionSerNo) {\r\n if (x.AssoTransactionSubSerNo == ele.AssoTransactionSubSerNo) {\r\n x.IsChecked = true\r\n x.Name = ele.Name\r\n x.AssoTransactionSerNo = ele.AssoTransactionSerNo\r\n x.AssoTransactionSubSerNo = ele.AssoTransactionSubSerNo\r\n x.AddLess = ele.AddLess\r\n x.TransactionSerNo = transactionObj.TransactionSerNo\r\n }\r\n }\r\n })\r\n }\r\n })\r\n setTaxOnTaxObj(tempData)\r\n }\r\n\r\n const handleOnDeleteApplicable = () => {\r\n if (applicableTaxObj.TransactionSerNo == undefined || applicableTaxObj.TransactionSerNo == 0 ) {\r\n alertFunction(\"Please select applicable tax to continue.\")\r\n } else {\r\n DeleteTransactionSubMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), transactionObj.TransactionSerNo, applicableTaxObj.AssoTransactionSerNo).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n setTimeout(() => {\r\n fillApplicableTax(true);\r\n fillTransactionSubSub(transactionObj.TransactionSerNo)\r\n handleSelectTaxClick(listOfAppTax[0].AssoTransactionSerNo, listOfAppTax[0].Seq)\r\n }, 5);\r\n } else {\r\n alertFunction(\"Something went wrong\");\r\n }\r\n })\r\n }\r\n }\r\n\r\n const handleOnAddApplicable = () => {\r\n let temp = JSON.parse(JSON.stringify(defaultApplicableObj));\r\n temp.Mode = \"Add\";\r\n temp.TransactionSerNo = transactionObj.TransactionSerNo;\r\n setApplicableTaxObj(temp);\r\n }\r\n\r\n const handleOnEditApplicable = () => {\r\n if (applicableTaxObj.TransactionSerNo == undefined || applicableTaxObj.TransactionSerNo == 0 ) {\r\n alertFunction(\"Please select applicable tax to continue.\")\r\n } else {\r\n setApplicableTaxObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n }\r\n\r\n const handleOnCancelApplicable = () => {\r\n clearApplicable();\r\n let tempObj = listOfAppTax.find(x => x.AssoTransactionSerNo == applicableTaxSelected);\r\n if (tempObj != undefined) {\r\n tempObj.Mode = \"View\";\r\n setApplicableTaxObj(tempObj);\r\n } else {\r\n setApplicableTaxObj(defaultApplicableObj);\r\n }\r\n }\r\n\r\n const handleOnSaveApplicable = () => {\r\n let validData = validApplication();\r\n if (validData) {\r\n if (isValidApplicable != false) {\r\n AddEditTransactionSub(applicableTaxObj).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n fillApplicableTax(false);\r\n setApplicableTaxSelected(d.data.ReturnValue)\r\n setTimeout(() => {\r\n handleSelectTaxClick(d.data.ReturnValue, applicableTaxObj.Seq)\r\n }, 20);\r\n } else {\r\n alertFunction(\"Something went wrong\");\r\n }\r\n });\r\n setApplicableTaxObj(prev => ({ ...prev, Mode: \"View\" }))\r\n } else {\r\n alertFunction(\"Applicable already exists\");\r\n }\r\n } else {\r\n alertFunction(\"One or more validation error occured\");\r\n }\r\n }\r\n\r\n const alertFunction1 = async (Message, currSeq) => {\r\n let IsChangeable = true;\r\n IsChangeable = await innkeyAlert(Message);\r\n if (IsChangeable) {\r\n // delete Tax on data\r\n let tempObj = applicableTaxObj\r\n tempObj.Seq = currSeq\r\n DeleteTransactionSubSub(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), transactionObj.TransactionSerNo, applicableTaxObj.AssoTransactionSerNo).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n AddEditTransactionSub(tempObj).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n fillApplicableTax(false);\r\n setApplicableTaxSelected(d.data.ReturnValue)\r\n handleSelectTaxClick(d.data.ReturnValue, tempObj.Seq)\r\n } else {\r\n alertFunction(\"Something went wrong\");\r\n }\r\n })\r\n setApplicableTaxObj(prev => ({ ...prev, Mode: \"View\" }))\r\n } else {\r\n alertFunction(\"Something went wrong\");\r\n }\r\n })\r\n }\r\n };\r\n //#endregion \r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Transaction Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Transaction List
    \r\n
    \r\n
      \r\n {\r\n transactionFilter.map((d) =>\r\n
    • \r\n {d.Name}\r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
    \r\n
    \r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n {\r\n setTransactionObj(prev => ({ ...prev, Name: v }));\r\n setTransactionValidation(prev => ({ ...prev, Name: \"\" }));\r\n if (transactionObj.Mode == \"Add\") {\r\n let temp = maskTypeCharge.filter((x) => x.key != -1)\r\n setMaskTypeCharge(temp)\r\n setSelectedMaskTransaction({})\r\n }\r\n }}\r\n onBlur={(v) => {\r\n let tempName = v.target.value\r\n if (transactionObj.Mode == \"Add\" && tempName.trim().length !== 0) {\r\n let temp = { key: -1, value: tempName }\r\n maskTypeCharge.push(temp)\r\n setSelectedMaskTransaction(temp)\r\n console.log(\"hey\", temp);\r\n }\r\n }}\r\n >\r\n Transaction Name\r\n \r\n
    \r\n {\r\n setSelectedChargeType(item.key);\r\n setTransactionObj(prev => ({ ...prev, ChargeType: item.value }));\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n setTransactionObj(prev => ({ ...prev, TransType: item.key }));\r\n setTransactionValidation(prev => ({ ...prev, TransType: \"\" }));\r\n }}\r\n >\r\n
    \r\n\r\n
    \r\n {\r\n setTransactionObj(prev => ({ ...prev, TransactionType: item.key }));\r\n }}\r\n >\r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n if (!isNaN(+v) && parseFloat(v) >= 0) {\r\n setTransactionObj(prev => ({ ...prev, Percentage: parseFloat(v) }));\r\n setTransactionValidation(prev => ({ ...prev, Percentage: \"\" }));\r\n } else {\r\n setTransactionValidation(prev => ({ ...prev, Percentage: \"Enter the percentage\" }));\r\n setTransactionObj(prev => ({ ...prev, Percentage: v }));\r\n }\r\n }}>\r\n Percentage\r\n \r\n \r\n { }}\r\n > %\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n setTransactionObj(prev => ({ ...prev, RoutingSerNo: parseInt(item.key) }));\r\n }}\r\n >\r\n
    \r\n {transactionObj.TransactionType == \"C\" ?\r\n
    \r\n {\r\n console.log(item);\r\n setSelectedMaskTransaction(item)\r\n if (item.key !== 0) {\r\n setTransactionObj(prev => ({ ...prev, MaskTransactionSerNo: parseInt(item.key) }));\r\n }\r\n else {\r\n setTransactionObj(prev => ({ ...prev, MaskTransactionSerNo: transactionObj.TransactionSerNo }));\r\n }\r\n }}\r\n >\r\n
    \r\n :\r\n <>\r\n }\r\n
    \r\n
    \r\n {\r\n setTransactionObj(prev => ({ ...prev, HSN_SAC_Code: v }));\r\n }}>HNS/SAC Code\r\n \r\n
    \r\n Is it related to IGST?\r\n {\r\n setTransactionObj(prev => ({ ...prev, IsIGST: v }));\r\n }}>\r\n
    \r\n
    \r\n \r\n
    \r\n Is it related to CGST?\r\n {\r\n setTransactionObj(prev => ({ ...prev, IsCGST: v }));\r\n }}>\r\n
    \r\n
    \r\n \r\n
    \r\n Is it related to SGST?\r\n {\r\n setTransactionObj(prev => ({ ...prev, IsSGST: v }));\r\n }}>\r\n
    \r\n
    \r\n \r\n
    \r\n Is it related to Cess?\r\n {\r\n setTransactionObj(prev => ({ ...prev, IsCess: v }));\r\n }} >\r\n
    \r\n
    \r\n
    \r\n {\r\n if (transactionObj.Sequence == null || transactionObj.Sequence == 0) {\r\n setTransactionObj(prev => ({ ...prev, Sequence: 0 }));\r\n }\r\n if (!isNaN(+v) && parseInt(v) >= 0) {\r\n setTransactionObj(prev => ({ ...prev, Sequence: parseInt(v) }));\r\n }\r\n else {\r\n setTransactionObj(prev => ({ ...prev, Sequence: v }));\r\n }\r\n }}>Sequence\r\n
    \r\n
    \r\n
    \r\n {/*
    \r\n
    Applicable Taxes
    \r\n
    \r\n
    \r\n
    \r\n {\r\n modifyTransactionSub.map((o) => {\r\n return (\r\n o.Seq != 0 ?\r\n <>\r\n
    {\r\n handleSelectTaxClick(o.AssoTransactionSerNo, o.Seq)\r\n }}>\r\n \r\n \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n :\r\n <>\r\n )\r\n }\r\n )\r\n }\r\n\r\n
    \r\n
    \r\n {/.*
    \r\n {\r\n handleOnTransactionSubSaveClick()\r\n }}>Save\r\n
    *./}\r\n
    \r\n
    Tax On
    \r\n
    \r\n\r\n
    \r\n Save\r\n
    */}\r\n
    \r\n
    \r\n {\r\n setShowAppTaxesPopup(true)\r\n if (listOfAppTax.length > 0) {\r\n setApplicableTaxSelected(listOfAppTax[0].AssoTransactionSerNo)\r\n handleSelectTaxClick(listOfAppTax[0].AssoTransactionSerNo, listOfAppTax[0].Seq)\r\n let obj = listOfAppTax[0]\r\n if (obj) {\r\n obj.Mode = \"View\"\r\n setApplicableTaxObj(obj)\r\n }\r\n }\r\n else {\r\n setApplicableTaxSelected(0)\r\n }\r\n }}\r\n >\r\n Applicable Taxes\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n Activate console.log(v)} id=\"1\">\r\n {\r\n transactionObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n {/* setShowDepositTermTypeModal(!showDepositTermTypeModal)}>Add Deposit Term Type*/}\r\n\r\n
    \r\n
    \r\n \r\n {showAppTaxesPopup ? (\r\n {\r\n setShowAppTaxesPopup(false)\r\n setApplicableTaxSelected(0)\r\n setApplicableTaxObj(defaultApplicableObj)\r\n }}>\r\n
    \r\n
    \r\n
    \r\n

    Applicable Tax

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { }} OnCancelClick={() => { }}>Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Applicable Taxes
    \r\n
    \r\n
      \r\n {\r\n listOfAppTax.map((d) =>\r\n
    • \r\n {\r\n ApplicableTaxListClick(e)\r\n handleSelectTaxClick(d.AssoTransactionSerNo, d.Seq)\r\n }}>\r\n {d.Name}\r\n \r\n\r\n {/*
      */}\r\n\r\n
    • \r\n )\r\n }\r\n\r\n
    \r\n
    \r\n {/* Add Deposit Term */}\r\n\r\n
    \r\n\r\n
    \r\n \r\n {\r\n if (listOfAppTax) {\r\n if (listOfAppTax.find((x) => x.AssoTransactionSerNo == item.key)) {\r\n setIsValidApplicable(false);\r\n setApplicableTaxValidation(prev => ({ ...prev, AssoTransactionSerNo: \"Tax already exists.\" }));\r\n }\r\n else {\r\n setIsValidApplicable(true);\r\n }\r\n }\r\n setApplicableTaxSelected(item.key);\r\n setApplicableTaxObj(prev => ({ ...prev, Name: item.value }));\r\n setApplicableTaxObj(prev => ({ ...prev, AssoTransactionSerNo: item.key }));\r\n setApplicableTaxValidation(prev => ({ ...prev, AssoTransactionSerNo: \"\" }));\r\n }}\r\n >\r\n \r\n \r\n
    \r\n {\r\n if (!isNaN(+v) && parseInt(v) >= 0) {\r\n setApplicableTaxObj(prev => ({ ...prev, Seq: parseInt(v) }));\r\n if (parseInt(v) < applicableTaxObj.Seq) {\r\n alertFunction1(\"Decreasing sequence will delete tax on data\", parseInt(v))\r\n }\r\n setApplicableTaxObj(prev => ({ ...prev, Seq: parseInt(v) }));\r\n setApplicableTaxValidation(prev => ({ ...prev, Seq: \"\" }));\r\n } else {\r\n // modifyTransactionSub.map((x) => {\r\n // if (x.AssoTransactionSerNo == applicableTaxSelected) {\r\n // x.Seq = v;\r\n // }\r\n // })\r\n setApplicableTaxValidation(prev => ({ ...prev, Seq: \"Enter the sequence\" }));\r\n setApplicableTaxObj(prev => ({ ...prev, Seq: v }));\r\n }\r\n }}\r\n >\r\n Sequence\r\n \r\n
    \r\n {/*
    \r\n Active\r\n console.log(v)} id=\"3\">\r\n \r\n
    */}\r\n
    \r\n {\r\n applicableTaxObj.Mode == \"View\" ?\r\n <>\r\n Delete\r\n Add
    \r\n Edit
    \r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n {\r\n taxOnTaxObj.map((x) => {\r\n return (\r\n
    \r\n {\r\n handleOnTaxCheckedClick(x.AssoTransactionSubSerNo, ischecked)\r\n }}\r\n >{x.Name}\r\n \r\n \r\n {\r\n x.AddLess = item.key\r\n }}\r\n >\r\n \r\n \r\n
    \r\n );\r\n })\r\n }\r\n
    \r\n {\r\n isDisabledTaxOn ?\r\n <>\r\n {\r\n if (applicableTaxObj.TransactionSerNo == undefined || applicableTaxObj.TransactionSerNo == 0) {\r\n alertFunction(\"Please select applicable tax to continue.\");\r\n }\r\n else {\r\n setIsDisabledTaxOn(false)\r\n }\r\n }}\r\n >\r\n Map\r\n \r\n
    \r\n \r\n :\r\n <>\r\n { setIsDisabledTaxOn(true) }}>Cancel\r\n Save\r\n \r\n }\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null\r\n }\r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnSingleDateSelection,\r\n InnLoader,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport { GetUserMaster, AddEditUserMaster } from \"../../../../services/generalService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport function UserMaster() {\r\n //#region Local Variable\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"y\", title: \"Ok\", type: \"\" }],\r\n });\r\n }\r\n\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n UserID: \"\",\r\n UserName: \"\",\r\n Mobile: \"\",\r\n Email: \"\",\r\n Password: \"\",\r\n IsLocked: false,\r\n AccessFailedCount: 0,\r\n Mode: \"View\"\r\n }\r\n\r\n const validation = {\r\n UserID: \"\",\r\n UserName: \"\",\r\n Mobile: \"\",\r\n Email: \"\"\r\n }\r\n //#endregion\r\n //#region State Variable\r\n const [userMasterObj, setUserMasterObj] = useState(defaultObj);\r\n const [userMasterList, setUserMasterList] = useState([]);\r\n const [userMasterFilter, setUserMasterFilter] = useState([]);\r\n const [userValidation, setUserValidation] = useState(validation);\r\n const [search, setSearch] = useState(\"\");\r\n const [selectedSerNo, setSelectedSerNo] = useState(0);\r\n const [isActive, setIsActive] = useState(false);\r\n const [password, setPassword] = useState(\"\");\r\n //#endregion\r\n //#region Custom Function \r\n const fillUserMaster = () => {\r\n setIsActive(true);\r\n GetUserMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n setIsActive(false);\r\n setUserMasterList(d.data);\r\n setUserMasterFilter(d.data);\r\n if (d.data.length > 0) {\r\n if (userMasterObj.Mode == \"Add\" || userMasterObj.Mode == \"Edit\") {\r\n let obj = d.data.find(x => x.UserID == userMasterObj.UserID);\r\n if (obj) {\r\n obj.Mode = \"View\";\r\n setUserMasterObj(obj);\r\n console.log(\"AddEditData>>\", obj);\r\n }\r\n }\r\n else {\r\n d.data[0].Mode = \"View\";\r\n setUserMasterObj(d.data[0]);\r\n console.log(\"UserMasterData\", d.data);\r\n }\r\n }\r\n console.log(d.data);\r\n })\r\n }\r\n //#endregion\r\n //#region UseEffect\r\n useEffect(() => {\r\n fillUserMaster();\r\n }, [])\r\n //#endregion\r\n //#region Validation\r\n const clearValidation = () => {\r\n setUserValidation(validation);\r\n }\r\n\r\n const isValidPage = () => {\r\n let valid = true;\r\n if (userMasterObj.UserID.trim().length == \"\") {\r\n valid = false;\r\n setUserValidation((prev) => ({ ...prev, UserID: \"invalid user id\" }));\r\n }\r\n if (userMasterObj.UserName.trim().length == \"\") {\r\n valid = false;\r\n setUserValidation((prev) => ({ ...prev, UserName: \"invalid user name\" }));\r\n }\r\n if (userMasterObj.Mobile.trim().length == \"\" || !(/\\(?([0-9]{3})\\)?([ .-]?)([0-9]{3})\\2([0-9]{4})/).test(userMasterObj.Mobile)) {\r\n valid = false;\r\n setUserValidation((prev) => ({ ...prev, Mobile: \"invalid mobile number\" }));\r\n }\r\n if (userMasterObj.Email.trim().length == \"\" || !(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i).test(userMasterObj.Email)) {\r\n valid = false;\r\n setUserValidation((prev) => ({ ...prev, Email: \"invalid email\" }));\r\n }\r\n return valid;\r\n }\r\n //#endregion\r\n //#region Event Handler\r\n const handleClickOnSearch = (e) => {\r\n setSearch(e);\r\n setUserMasterObj(defaultObj);\r\n let obj = [];\r\n userMasterList.forEach((ele) => {\r\n if (ele.UserName.toLowerCase().includes(e.toLowerCase())) {\r\n obj.push(ele);\r\n }\r\n });\r\n setUserMasterFilter(obj);\r\n }\r\n const handleClickOnUserName = (e) => {\r\n clearValidation();\r\n setIsActive(false);\r\n let obj = userMasterList.find(x => x.UserID == e.target.id);\r\n obj.Mode = \"View\"\r\n setUserMasterObj(obj);\r\n console.log(\"Clicked Data\", obj)\r\n setSelectedSerNo(e.target.id);\r\n }\r\n const handleClickOnEdit = () => {\r\n if (userMasterObj.UserID == \"\") {\r\n alertFunction(\"Please select user name\");\r\n }\r\n else {\r\n setUserMasterObj((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n setSelectedSerNo(userMasterObj.UserID);\r\n }\r\n }\r\n const handleClickOnAdd = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setUserMasterObj(obj);\r\n }\r\n const handleClickOnCancel = () => {\r\n clearValidation();\r\n let existingObj = userMasterList.find(d => d.UserID == selectedSerNo);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setUserMasterObj(existingObj);\r\n }\r\n else {\r\n setUserMasterObj(defaultObj);\r\n }\r\n }\r\n const searchEdit = () => {\r\n GetUserMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n let temp = d.data.filter(x => x.UserName.toLowerCase().includes(search.toLowerCase()));\r\n setUserMasterFilter(temp);\r\n })\r\n }\r\n const handleClickOnSave = () => {\r\n let valid = isValidPage();\r\n if (valid) {\r\n setIsActive(true);\r\n AddEditUserMaster(userMasterObj).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n fillUserMaster();\r\n if (userMasterObj.Mode == \"Add\" || userMasterObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit();\r\n return;\r\n }\r\n userMasterObj.UserID = d.data.ReturnValue;\r\n }\r\n }\r\n else {\r\n alertFunction(\"Failed\");\r\n }\r\n });\r\n setUserMasterObj((prev) => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n //#endregion\r\n\r\n const daytypedata = [\r\n { key: \"Option 1\", value: \"City Wide conference\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    User Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    User Names
    \r\n
    \r\n
      \r\n {\r\n userMasterFilter.map(d =>\r\n
    • \r\n {d.UserName}\r\n
    • \r\n )\r\n }\r\n {/*
    • Pop Up
    • \r\n
    • Mobile App
    • \r\n
    • Report
    • \r\n
    • E mail
    • \r\n
    • Text Message
    • */}\r\n
    \r\n
    \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n {\r\n setUserMasterObj((prev) => ({ ...prev, UserID: v }));\r\n if (v == \"\") {\r\n setUserValidation((prev) => ({ ...prev, UserID: \"Invalid user id\" }));\r\n }\r\n else {\r\n setUserValidation((prev) => ({ ...prev, UserID: \"\" }))\r\n }\r\n console.log(v)\r\n }}\r\n >UserID\r\n {\r\n setUserMasterObj((prev) => ({ ...prev, UserName: v }));\r\n if (v == \"\") {\r\n setUserValidation((prev) => ({ ...prev, UserName: \"Invalid user name\" }));\r\n }\r\n else {\r\n setUserValidation((prev) => ({ ...prev, UserName: \"\" }))\r\n }\r\n console.log(v)\r\n }}>UserName\r\n {\r\n setUserMasterObj((prev) => ({ ...prev, Mobile: v }));\r\n if (v == \"\") {\r\n setUserValidation((prev) => ({ ...prev, Mobile: \"Invalid mobile no.\" }));\r\n }\r\n else {\r\n setUserValidation((prev) => ({ ...prev, Mobile: \"\" }))\r\n }\r\n console.log(v)\r\n }}>Mobile\r\n {\r\n setUserMasterObj((prev) => ({ ...prev, Email: v }));\r\n if (v == \"\") {\r\n setUserValidation((prev) => ({ ...prev, Email: \"Invalid email id\" }));\r\n }\r\n else {\r\n setUserValidation((prev) => ({ ...prev, Email: \"\" }))\r\n }\r\n console.log(v)\r\n }}>Email\r\n
    \r\n {\r\n userMasterObj.Mode == \"Add\" ?\r\n {\r\n setPassword(v)\r\n setUserMasterObj((prev) => ({ ...prev, Password: v }))\r\n }}>Password\r\n :\r\n <>\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n {\r\n userMasterObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n\r\n\r\n Activate console.log(v)} id=\"1\">\r\n {/* setShowDepositTermTypeModal(!showDepositTermTypeModal)}>Add Deposit Term Type*/}\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n","import React, { useState, useEffect } from \"react\"\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnLoader,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport { GetClientRoomFeatureGroupMaster, GetClientRoomFeatureValueMaster, GetClientRoomFeatureMaster, AddEditClientRoomFeatureGroupMaster, AddEditClientRoomFeatureMaster } from \"../../../../services/generalService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport function RoomFeatureModalPopup(props) {\r\n\r\n const currUser = useSelector(currentUser)\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const selectReseonData = [\r\n { key: \"opn1\", value: \"Option 1\" },\r\n { key: \"opn2\", value: \"Option 2\" },\r\n { key: \"opn3\", value: \"Option 3\" },\r\n { key: \"opn4\", value: \"Option 4\" },\r\n { key: \"opn5\", value: \"Option 5\" },\r\n { key: \"opn6\", value: \"Option 6\" },\r\n { key: \"opn7\", value: \"Option 7\" },\r\n { key: \"opn8\", value: \"Option 8\" },\r\n { key: \"opn9\", value: \"Option 9\" },\r\n { key: \"opn10\", value: \"Option 10\" },\r\n ]\r\n\r\n const defaultGroupObj = {\r\n ClientSerNo: parseInt(props.para.ClientSerNo),\r\n RoomFeaturesGroupSerNo: 0,\r\n Name: \"\",\r\n Mode: \"View\"\r\n }\r\n\r\n const defaultFeatureObj = {\r\n ClientSerNo: parseInt(props.para.ClientSerNo),\r\n RoomFeatureSerNo: 0,\r\n RoomFeatureTypeSerNo: '',\r\n RoomFeaturesGroupSerNo: 0,\r\n Name: \"\",\r\n Sequence: 0,\r\n Mode: \"View\"\r\n }\r\n\r\n //#region State variables\r\n\r\n const [roomFeatureGroupData, setRoomFeatureGroupData] = useState([]);\r\n const [filteredRoomFeatureGroupData, setFilteredRoomFeatureGroupData] = useState([]);\r\n const [selectedRoomFeatureGroup, setSelectedRoomFeatureGroup] = useState({});\r\n const [roomFeatureGroupObj, setRoomFeatureGroupObj] = useState(defaultGroupObj);\r\n const [groupValidationObj, setGroupValidationObj] = useState(defaultGroupObj);\r\n const [roomFeaturesData, setRoomFeaturesData] = useState([]);\r\n const [roomFeatureObj, setRoomFeatureObj] = useState(defaultFeatureObj);\r\n const [roomFeatureValidationObj, setRoomFeatureValidationObj] = useState(defaultFeatureObj);\r\n const [displayRoomFeaturesData, setDisplayRoomFeaturesData] = useState([]);\r\n const [filteredRoomFeaturesData, setFilteredRoomFeaturesData] = useState([]);\r\n const [selectedRoomFeature, setSelectedRoomFeature] = useState({});\r\n const [noOfBDT, setNoOfBDT] = useState(0);\r\n const [bedType, setBedType] = useState([]);\r\n const [bedTypeValueData, setBedTypeValueData] = useState([]);\r\n const [searchStrGroup, setSearchStrGroup] = useState(\"\");\r\n const [searchStrFeatures, setSearchStrFeatures] = useState(\"\");\r\n const [editableFeatures, setEditableFeatures] = useState([]);\r\n const [isEditableFeature, setIsEditableFeature] = useState(false);\r\n const [isActive, setIsActive] = useState(false);\r\n //#endregion\r\n\r\n //#region UseEffect\r\n\r\n useEffect(() => {\r\n fillRoomFeatureGroupMaster()\r\n fillRoomFeatureMaster()\r\n fillRoomFeatureValueMaster()\r\n setSearchStrFeatures(\"\")\r\n setSearchStrGroup(\"\")\r\n }, [])\r\n\r\n //#endregion\r\n\r\n const fillRoomFeatureGroupMaster = () => {\r\n setIsActive(true)\r\n GetClientRoomFeatureGroupMaster(parseInt(props.para.ClientSerNo)).then((d) => {\r\n console.log('Group', d.data);\r\n setIsActive(false)\r\n if (d.data.length > 0) {\r\n let obj = d.data[0]\r\n setRoomFeatureGroupData(d.data)\r\n setFilteredRoomFeatureGroupData(d.data)\r\n if (selectedRoomFeatureGroup.RoomFeaturesGroupSerNo == 0 || selectedRoomFeatureGroup.RoomFeaturesGroupSerNo == undefined) {\r\n setSelectedRoomFeatureGroup(obj)\r\n obj.Mode = \"View\"\r\n setRoomFeatureGroupObj(obj)\r\n }\r\n }\r\n })\r\n }\r\n const fillRoomFeatureMaster = () => {\r\n setIsActive(true)\r\n GetClientRoomFeatureMaster(parseInt(props.para.ClientSerNo)).then((d) => {\r\n console.log('Features', d.data.RoomFeatureList);\r\n setIsActive(false)\r\n if (d.data.RoomFeatureList.length > 0) {\r\n setRoomFeaturesData(d.data.RoomFeatureList)\r\n setRoomFeatureObj((prev) => ({ ...prev, Mode: \"View\" }))\r\n if (roomFeatureGroupObj.RoomFeaturesGroupSerNo == undefined || roomFeatureGroupObj.RoomFeaturesGroupSerNo == 0) {\r\n let data = d.data.RoomFeatureList.filter((x) => x.RoomFeaturesGroupSerNo == 1)\r\n setDisplayRoomFeaturesData(data)\r\n setFilteredRoomFeaturesData(data)\r\n }\r\n else {\r\n let data = d.data.RoomFeatureList.filter((x) => x.RoomFeaturesGroupSerNo == roomFeatureGroupObj.RoomFeaturesGroupSerNo)\r\n setDisplayRoomFeaturesData(data)\r\n setFilteredRoomFeaturesData(data)\r\n }\r\n }\r\n if (d.data.EditableFeatureList.length > 0) {\r\n setEditableFeatures(d.data.EditableFeatureList)\r\n }\r\n })\r\n }\r\n const fillRoomFeatureValueMaster = () => {\r\n setIsActive(true)\r\n GetClientRoomFeatureValueMaster(parseInt(props.para.ClientSerNo)).then((d) => {\r\n console.log('Value', d.data);\r\n setIsActive(false)\r\n if (d.data.length > 0) {\r\n let tempBDTData = d.data.filter((x) => x.RoomFeatureSerNo == 2)\r\n console.log('tempBDTData', tempBDTData);\r\n setBedTypeValueData(tempBDTData)\r\n }\r\n })\r\n }\r\n\r\n //#region handle Events\r\n\r\n const handleOnSearchGroup = (v) => {\r\n setSearchStrGroup(v)\r\n let filterData = roomFeatureGroupData.filter((obj) => obj.Name.toLowerCase().includes(v.toLowerCase()));\r\n setFilteredRoomFeatureGroupData(filterData);\r\n }\r\n\r\n const handleOnSearchFeature = (v) => {\r\n setSearchStrFeatures(v)\r\n let filterData = displayRoomFeaturesData.filter((obj) => obj.Name.toLowerCase().includes(v.toLowerCase()));\r\n setFilteredRoomFeaturesData(filterData);\r\n }\r\n\r\n const handleRmFeatureGroupClick = (e) => {\r\n if (e.target.id != selectedRoomFeatureGroup.RoomFeaturesGroupSerNo) {\r\n let obj = roomFeatureGroupData.find((x) => x.RoomFeaturesGroupSerNo == e.target.id)\r\n setSelectedRoomFeatureGroup(obj)\r\n obj.Mode = \"View\"\r\n setRoomFeatureGroupObj(obj)\r\n setSelectedRoomFeature({})\r\n\r\n if (roomFeaturesData.length > 0) {\r\n let data = roomFeaturesData.filter((x) => x.RoomFeaturesGroupSerNo == e.target.id)\r\n setDisplayRoomFeaturesData(data)\r\n setFilteredRoomFeaturesData(data)\r\n }\r\n }\r\n else {\r\n\r\n }\r\n }\r\n\r\n const handleRmGroupEditClick = (e) => {\r\n setSelectedRoomFeature({})\r\n setRoomFeatureGroupObj((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n setSelectedRoomFeatureGroup((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n\r\n const handleRmGroupAddClick = (e) => {\r\n setSelectedRoomFeature({})\r\n let obj = JSON.parse(JSON.stringify(defaultGroupObj));\r\n obj.Mode = \"Add\";\r\n setRoomFeatureGroupObj(obj);\r\n }\r\n\r\n const handleRmFeatureEditClick = (e) => {\r\n if (selectedRoomFeature.RoomFeatureSerNo == undefined) {\r\n alertFunction(\"Please select room feature to continue.\")\r\n }\r\n else if (isEditableFeature == false) {\r\n alertFunction(\"This feature is used at property level.\")\r\n }\r\n else {\r\n setRoomFeatureObj((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n setSelectedRoomFeature((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n }\r\n const handleRmFeatureAddClick = (e) => {\r\n let obj = JSON.parse(JSON.stringify(defaultFeatureObj));\r\n obj.Mode = \"Add\";\r\n setRoomFeatureObj(obj);\r\n setSelectedRoomFeature(obj);\r\n }\r\n\r\n const handleRmFeatureClick = (e) => {\r\n setIsEditableFeature(false)\r\n let obj = roomFeaturesData.find((x) => x.RoomFeatureSerNo == e.target.id)\r\n setSelectedRoomFeature(obj)\r\n obj.Mode = \"View\"\r\n setRoomFeatureObj(obj)\r\n\r\n if (editableFeatures.length > 0) {\r\n let temp = editableFeatures.find((x) => x.RoomFeatureSerNo == e.target.id)\r\n if (temp != undefined) {\r\n setIsEditableFeature(true)\r\n }\r\n }\r\n }\r\n\r\n const handleCancelClick = () => {\r\n let isFeatureMode = false\r\n if (selectedRoomFeature.RoomFeatureSerNo !== undefined) {\r\n isFeatureMode = true\r\n }\r\n else {\r\n isFeatureMode = false\r\n }\r\n setRoomFeatureValidationObj(defaultFeatureObj)\r\n setGroupValidationObj(defaultGroupObj)\r\n if (isFeatureMode) {\r\n if (roomFeatureObj.Mode == \"Add\") {\r\n if (selectedRoomFeature.RoomFeatureSerNo == undefined || selectedRoomFeature.RoomFeatureSerNo == 0) {\r\n setSelectedRoomFeature({})\r\n }\r\n else {\r\n let obj = displayRoomFeaturesData.find((x) => x.RoomFeatureSerNo == selectedRoomFeature.RoomFeatureSerNo)\r\n if (obj) {\r\n obj.Mode = \"View\"\r\n setSelectedRoomFeature(obj)\r\n }\r\n }\r\n }\r\n setRoomFeatureObj((prev) => ({ ...prev, Mode: \"View\" }))\r\n }\r\n else {\r\n let obj = roomFeatureGroupData.find((e) =>\r\n e.RoomFeaturesGroupSerNo == selectedRoomFeatureGroup.RoomFeaturesGroupSerNo\r\n );\r\n if (obj != undefined) {\r\n obj.Mode = \"View\";\r\n console.log(obj);\r\n setRoomFeatureGroupObj(obj);\r\n setSelectedRoomFeatureGroup(obj);\r\n }\r\n else {\r\n setRoomFeatureGroupObj(defaultGroupObj);\r\n setSelectedRoomFeatureGroup(defaultGroupObj);\r\n }\r\n }\r\n }\r\n const isValidPage = () => {\r\n let isValid = true\r\n\r\n if (selectedRoomFeature.RoomFeatureSerNo == undefined) {\r\n if (roomFeatureGroupObj.Name.trim().length === 0) {\r\n isValid = false;\r\n setGroupValidationObj((prev) => ({ ...prev, Name: \"Please enter name..\" }));\r\n }\r\n }\r\n else {\r\n if (roomFeatureObj.Name.trim().length === 0) {\r\n isValid = false;\r\n setRoomFeatureValidationObj((prev) => ({ ...prev, Name: \"Please enter name..\" }));\r\n }\r\n if (roomFeatureObj.Sequence === 0 || isNaN(roomFeatureObj.Sequence) == true) {\r\n isValid = false;\r\n setRoomFeatureValidationObj((prev) => ({ ...prev, Sequence: \"Please enter valid sequence..\" }));\r\n }\r\n }\r\n\r\n return isValid;\r\n }\r\n\r\n const handleSaveClick = () => {\r\n let isValid = isValidPage();\r\n let isFeatureMode = false\r\n if (selectedRoomFeature.RoomFeatureSerNo !== undefined) {\r\n isFeatureMode = true\r\n }\r\n else {\r\n isFeatureMode = false\r\n }\r\n\r\n if (isFeatureMode) {\r\n if (isValid) {\r\n handleClientRoomFeatures();\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n else {\r\n if (isValid) {\r\n handleClientRoomFeatureGroup();\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n }\r\n\r\n const handleClientRoomFeatureGroup = () => {\r\n let obj = roomFeatureGroupObj\r\n console.log(obj);\r\n AddEditClientRoomFeatureGroupMaster(obj).then((d) => {\r\n if (d.data.Code == '200') {\r\n setIsActive(true)\r\n alertFunction(d.data.Message);\r\n fillRoomFeatureGroupMaster();\r\n let tempSerNo = parseInt(d.data.ReturnValue)\r\n setRoomFeatureGroupObj((prev) => ({ ...prev, RoomFeaturesGroupSerNo: tempSerNo, Mode: \"View\" }))\r\n setSelectedRoomFeatureGroup((prev) => ({ ...prev, RoomFeaturesGroupSerNo: tempSerNo, Mode: \"View\" }))\r\n }\r\n })\r\n }\r\n const handleClientRoomFeatures = () => {\r\n let obj = roomFeatureObj\r\n obj.RoomFeaturesGroupSerNo = roomFeatureGroupObj.RoomFeaturesGroupSerNo\r\n setRoomFeatureObj((prev) => ({ ...prev, Mode: \"View\" }))\r\n\r\n AddEditClientRoomFeatureMaster(obj).then((d) => {\r\n if (d.data.Code == '200') {\r\n setIsActive(true)\r\n alertFunction(d.data.Message);\r\n fillRoomFeatureMaster();\r\n let tempSerNo = parseInt(d.data.ReturnValue)\r\n setRoomFeatureObj((prev) => ({ ...prev, RoomFeatureSerNo: tempSerNo, Mode: \"View\" }))\r\n setSelectedRoomFeature((prev) => ({ ...prev, RoomFeatureSerNo: tempSerNo, Mode: \"View\" }))\r\n }\r\n })\r\n }\r\n //#endregion\r\n\r\n return (\r\n props.OnClose()}\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n

    Room features

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Search\r\n \r\n
    Group
    \r\n
    \r\n
      \r\n {\r\n filteredRoomFeatureGroupData && filteredRoomFeatureGroupData.map((x) => {\r\n return (\r\n \r\n \r\n {x.Name}\r\n \r\n \r\n )\r\n })\r\n }\r\n
    \r\n
    \r\n {\r\n
    \r\n \r\n Edit\r\n \r\n \r\n Add\r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n {/*
    Features
    */}\r\n \r\n Search\r\n \r\n
    Features
    \r\n
    \r\n \r\n \r\n
      \r\n {\r\n filteredRoomFeaturesData && filteredRoomFeaturesData.map((x) => {\r\n return (\r\n \r\n \r\n {x.Name}\r\n \r\n \r\n )\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n\r\n
    \r\n \r\n Edit\r\n \r\n \r\n Add\r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n selectedRoomFeature.RoomFeatureSerNo == undefined ?\r\n <>\r\n
    Group
    \r\n {\r\n setRoomFeatureGroupObj((prev) => ({ ...prev, Name: v }))\r\n setGroupValidationObj((prev) => ({ ...prev, Name: \"\" }))\r\n }}\r\n >\r\n Name\r\n \r\n \r\n :\r\n <>\r\n
    Features
    \r\n {\r\n setSelectedRoomFeature((prev) => ({ ...prev, Name: v }))\r\n setRoomFeatureObj((prev) => ({ ...prev, Name: v }))\r\n }}\r\n >\r\n Name\r\n \r\n {\r\n setSelectedRoomFeature((prev) => ({ ...prev, Sequence: parseInt(v) }))\r\n setRoomFeatureObj((prev) => ({ ...prev, Sequence: parseInt(v) }))\r\n }}\r\n >\r\n Sequence\r\n \r\n {\r\n selectedRoomFeature.RoomFeatureSerNo == 2 ?\r\n <>\r\n {\r\n console.log(v)\r\n setNoOfBDT(v)\r\n }}\r\n onBlur={(v) => {\r\n let temp = []\r\n for (let i = 0; i < parseInt(v.target.value); i++) {\r\n temp.push('A')\r\n }\r\n setBedType(temp)\r\n }}\r\n >\r\n Value\r\n \r\n
    \r\n {\r\n bedType && bedType.map((x, index) => {\r\n return (\r\n console.log(v)}\r\n >\r\n )\r\n })\r\n }\r\n
    \r\n \r\n :\r\n null\r\n }\r\n \r\n }\r\n\r\n\r\n
    \r\n
    \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n )\r\n}","import React, { useState, useEffect } from \"react\"\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnLoader,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport {\r\n AddEditClientSpecialGroupMaster, AddEditClientSpecialMaster,\r\n GetClientSpecialGroupMaster, GetClientSpecialMaster\r\n} from \"../../../../services/generalService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport function SpecialsModalPopup(props) {\r\n //#region local variable\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"y\", title: \"Ok\", type: \"\" }],\r\n });\r\n }\r\n //#endregion\r\n //#region default object\r\n const defaultObj = {\r\n ClientSerNo: parseInt(props.para.ClientSerNo),\r\n SpecialGroupSerNo: 0,\r\n SpecialSerNo: 0,\r\n Name: \"\",\r\n Sequence: 0,\r\n Mode: \"View\",\r\n }\r\n const validation = {\r\n Name: \"\",\r\n Sequence: 0,\r\n }\r\n //#endregion\r\n //#region state variable\r\n const [specialGroupObj, setSepcialGroupObj] = useState(defaultObj);\r\n const [specialGroupList, setSpecialGroupList] = useState([]);\r\n const [specialGroupFilter, setSpecialGroupFilter] = useState([]);\r\n const [specialGroupValidation, setSpecialGroupValidation] = useState(validation);\r\n const [selectedSpecialGroup, setSelectedSpecialGroup] = useState({});\r\n const [search, setSearch] = useState(\"\");\r\n const [isActive, setIsActive] = useState(false);\r\n\r\n const [specialObj, setSpecialObj] = useState(defaultObj);\r\n const [specialList, setSpecialList] = useState([]);\r\n const [specialFilter, setSpecialFilter] = useState([]);\r\n const [editableSpecialList, setEditableSpecialList] = useState([]);\r\n const [isEditable, setIsEditable] = useState(false);\r\n const [specialValidation, setSpecialValidation] = useState(validation);\r\n const [selectedSpecial, setSelectedSpecial] = useState({});\r\n const [specialSearch, setSpecialSearch] = useState(\"\");\r\n //#endregion\r\n //#region fill special group list\r\n const fillSpecialGroupList = () => {\r\n setIsActive(true);\r\n GetClientSpecialGroupMaster(parseInt(props.para.ClientSerNo)).then((d) => {\r\n setIsActive(false);\r\n if (d.data && d.data.length > 0) {\r\n let obj = d.data[0];\r\n setSpecialGroupList(d.data)\r\n setSpecialGroupFilter(d.data)\r\n if (selectedSpecialGroup.SpecialGroupSerNo == 0 || selectedSpecialGroup.SpecialGroupSerNo == undefined) {\r\n setSelectedSpecialGroup(obj)\r\n obj.Mode = \"View\";\r\n setSepcialGroupObj(obj)\r\n }\r\n }\r\n });\r\n }\r\n //#endregion\r\n //#region fill specials list\r\n const fillSpecialsList = () => {\r\n setIsActive(true);\r\n GetClientSpecialMaster(parseInt(props.para.ClientSerNo)).then((d) => {\r\n setIsActive(false);\r\n console.log('SpecialData>>>', d.data.SpecialList);\r\n\r\n if (d.data.SpecialList && d.data.SpecialList.length > 0) {\r\n setSpecialList(d.data.SpecialList);\r\n setSpecialObj((prev) => ({ ...prev, Mode: \"View\" }))\r\n if (specialGroupObj.SpecialGroupSerNo == undefined || specialGroupObj.SpecialGroupSerNo == 0) {\r\n let obj = d.data.SpecialList.filter(x => x.SpecialGroupSerNo == 1)\r\n setSpecialFilter(obj)\r\n \r\n }\r\n else {\r\n let obj = d.data.SpecialList.filter(x => x.SpecialGroupSerNo == specialObj.SpecialGroupSerNo)\r\n setSpecialFilter(obj)\r\n }\r\n }\r\n if (d.data.EditableSpecialList.length > 0) {\r\n console.log(d.data.EditableSpecialList);\r\n setEditableSpecialList(d.data.EditableSpecialList)\r\n }\r\n });\r\n }\r\n //#endregion\r\n //#region useEffect\r\n useEffect(() => {\r\n fillSpecialGroupList();\r\n fillSpecialsList();\r\n }, [])\r\n //#endregion\r\n //#region validation \r\n const clearValidation = () => {\r\n setSpecialGroupValidation(validation)\r\n setSpecialValidation(validation)\r\n }\r\n const IsValidPage = () => {\r\n let valid = true;\r\n if (specialGroupObj.Name.trim().length == 0 || specialGroupObj.Name == \"\") {\r\n valid = false;\r\n setSpecialGroupValidation((prev) => ({ ...prev, Name: \"Invalid name\" }));\r\n }\r\n return valid;\r\n }\r\n const IsSpecialValid = () => {\r\n let validPage = true;\r\n if (specialObj.Name.trim().length == 0 || specialObj.Name == \"\") {\r\n validPage = false;\r\n setSpecialValidation((prev) => ({ ...prev, Name: \"Invalid name\" }))\r\n }\r\n if (specialObj.Sequence == 0) {\r\n validPage = false\r\n setSpecialValidation((prev) => ({ ...prev, Sequence: \"Invalid sequence\" }))\r\n }\r\n return validPage;\r\n }\r\n //#endregion\r\n //#region event handler for Special Group\r\n const handleOnClickSearch = (e) => {\r\n setSearch(e);\r\n setSepcialGroupObj(defaultObj);\r\n let temp = [];\r\n specialGroupList.forEach((ele) => {\r\n if (ele.Name.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(ele);\r\n }\r\n });\r\n setSpecialGroupFilter(temp);\r\n }\r\n const handleOnClickGroupName = (e) => {\r\n clearValidation();\r\n setIsActive(false);\r\n if (e.target.id != selectedSpecialGroup.SpecialGroupSerNo) {\r\n let obj = specialGroupFilter.find(x => x.SpecialGroupSerNo == e.target.id);\r\n setSelectedSpecialGroup(obj);\r\n obj.Mode = \"View\";\r\n setSepcialGroupObj(obj);\r\n setSelectedSpecial({})\r\n setSpecialObj(defaultObj);\r\n\r\n if (specialList.length > 0) {\r\n let data = specialList.filter((x) => x.SpecialGroupSerNo == e.target.id)\r\n setSpecialFilter(data)\r\n }\r\n console.log(\"SpecialGroupClickData>>\", obj);\r\n }\r\n else {\r\n\r\n }\r\n\r\n }\r\n const handleOnClickGroupEdit = () => {\r\n if (specialGroupObj.Name == \"\") {\r\n alertFunction(\"Please select special group to continue.\");\r\n }\r\n else {\r\n setSelectedSpecial({});\r\n setSepcialGroupObj((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n setSelectedSpecialGroup((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n }\r\n const handleOnClickGroupAdd = () => {\r\n clearValidation();\r\n setSelectedSpecial({})\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setSepcialGroupObj(obj);\r\n setSelectedSpecialGroup(obj);\r\n }\r\n\r\n //#endregion\r\n //#region event handler for Specials\r\n const handleOnClickSpecialSearch = (e) => {\r\n setSpecialSearch(e);\r\n setSpecialObj(defaultObj);\r\n let temp = [];\r\n specialList.forEach((ele) => {\r\n if (ele.Name.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(ele);\r\n }\r\n });\r\n setSpecialFilter(temp);\r\n }\r\n const handleOnClickName = (e) => {\r\n clearValidation();\r\n setIsEditable(false)\r\n setIsActive(false);\r\n let obj = specialList.find(x => x.SpecialSerNo == e.target.id);\r\n setSelectedSpecial(obj);\r\n obj.Mode = \"View\";\r\n setSpecialObj(obj);\r\n console.log(\"SpecialClickData>>\", obj);\r\n if (editableSpecialList.length > 0) {\r\n let obj = editableSpecialList.find(x => x.SpecialSerNo == e.target.id);\r\n if (obj != undefined) {\r\n setIsEditable(true)\r\n }\r\n }\r\n }\r\n const handleOnClickEdit = () => {\r\n if (specialObj.Name == \"\") {\r\n alertFunction(\"Please select specials to continue.\");\r\n }\r\n else if (isEditable == false) {\r\n alertFunction(\"This special is used on property level.\");\r\n }\r\n else {\r\n setSpecialObj((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n setSelectedSpecial((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n }\r\n const handleOnClickAdd = () => {\r\n clearValidation();\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setSpecialObj(obj);\r\n setSelectedSpecial(obj);\r\n }\r\n //#endregion\r\n //#region Save and Cancel Click\r\n const searchEdit = () => {\r\n GetClientSpecialGroupMaster(parseInt(currUser.ClientSerNo)).then((d) => {\r\n let obj = d.data.filter(x => x.Name.toLowerCase().includes(search.toLowerCase()));\r\n setSpecialGroupFilter(obj);\r\n });\r\n\r\n }\r\n const specialSearchEdit = () => {\r\n GetClientSpecialMaster(parseInt(currUser.ClientSerNo)).then(d => {\r\n let obj = d.data.filter(x => x.Name.toLowerCase().includes(specialSearch.toLowerCase()));\r\n setSpecialFilter(obj);\r\n });\r\n }\r\n const handleOnClickSave = () => {\r\n let isvalid = IsValidPage();\r\n let IsSpecial = IsSpecialValid();\r\n let isSpecialGroup = false\r\n if (selectedSpecial.SpecialSerNo == undefined) {\r\n isSpecialGroup = true;\r\n }\r\n else {\r\n isSpecialGroup = false\r\n }\r\n if (isSpecialGroup) {\r\n if (isvalid) {\r\n setIsActive(true);\r\n AddEditClientSpecialGroupMaster(specialGroupObj).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message)\r\n fillSpecialGroupList();\r\n if (specialGroupObj.Mode == \"Add\" || specialGroupObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit();\r\n return;\r\n }\r\n specialGroupObj.SpecialGroupSerNo = parseInt(d.data.ReturnValue);\r\n }\r\n else {\r\n alertFunction(\"something went wrong.\")\r\n }\r\n }\r\n });\r\n setSepcialGroupObj((prev) => ({ ...prev, Mode: \"View\" }));\r\n setSelectedSpecialGroup((prev) => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n else if (isSpecialGroup == false) {\r\n if (IsSpecial) {\r\n let tempObj = specialObj\r\n tempObj.SpecialGroupSerNo = specialGroupObj.SpecialGroupSerNo\r\n setIsActive(true);\r\n AddEditClientSpecialMaster(tempObj).then((d) => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message)\r\n fillSpecialsList();\r\n if (specialObj.Mode == \"Add\" || specialObj.Mode == \"Edit\") {\r\n if (specialSearch != \"\") {\r\n specialSearchEdit();\r\n return;\r\n }\r\n setSpecialObj((prev) => ({ ...prev, SpecialSerNo: parseInt(d.data.ReturnValue) }))\r\n setSelectedSpecial((prev) => ({ ...prev, SpecialSerNo: parseInt(d.data.ReturnValue) }))\r\n }\r\n else {\r\n alertFunction(\"something went wrong.\")\r\n }\r\n }\r\n });\r\n setSpecialObj((prev) => ({ ...prev, Mode: \"View\" }))\r\n setSelectedSpecial((prev) => ({ ...prev, Mode: \"View\" }))\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n }\r\n const handleOnClickCancel = () => {\r\n clearValidation();\r\n let isSpecialMode = false;\r\n if (selectedSpecial.SpecialSerNo !== undefined) {\r\n isSpecialMode = true;\r\n }\r\n else {\r\n isSpecialMode = false;\r\n }\r\n if (isSpecialMode) {\r\n if (specialObj.Mode == \"Add\") {\r\n if (selectedSpecial.SpecialSerNo == undefined || selectedSpecial.SpecialSerNo == 0) {\r\n setSelectedSpecial({})\r\n }\r\n else {\r\n let obj = specialList.find(x => x.SpecialSerNo == selectedSpecial.SpecialSerNo);\r\n console.log(obj);\r\n if (obj) {\r\n obj.Mode = \"View\";\r\n setSelectedSpecial(obj);\r\n }\r\n }\r\n }\r\n setSpecialObj((prev) => ({ ...prev, Mode: \"View\" }))\r\n }\r\n else {\r\n let obj = specialGroupList.find((e) => e.SpecialGroupSerNo == selectedSpecialGroup.SpecialGroupSerNo);\r\n if (obj != undefined) {\r\n obj.Mode = \"View\";\r\n console.log(obj);\r\n setSepcialGroupObj(obj);\r\n setSelectedSpecialGroup(obj);\r\n }\r\n else {\r\n setSepcialGroupObj(defaultObj);\r\n setSelectedSpecialGroup(defaultObj);\r\n }\r\n }\r\n }\r\n //#endregion\r\n\r\n const selectReseonData = [\r\n { key: \"opn1\", value: \"Option 1\" },\r\n { key: \"opn2\", value: \"Option 2\" },\r\n { key: \"opn3\", value: \"Option 3\" },\r\n { key: \"opn4\", value: \"Option 4\" },\r\n { key: \"opn5\", value: \"Option 5\" },\r\n { key: \"opn6\", value: \"Option 6\" },\r\n { key: \"opn7\", value: \"Option 7\" },\r\n { key: \"opn8\", value: \"Option 8\" },\r\n { key: \"opn9\", value: \"Option 9\" },\r\n { key: \"opn10\", value: \"Option 10\" },\r\n ]\r\n\r\n return (\r\n props.OnClose()}\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n

    Specials

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    Special Group
    \r\n
    \r\n
    \r\n \r\n
      \r\n {\r\n specialGroupFilter && specialGroupFilter.map((d) =>\r\n
    • \r\n {d.Name}\r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Edit\r\n \r\n \r\n Add\r\n \r\n
    \r\n
    \r\n
    \r\n {/*
    Features
    */}\r\n Search\r\n
    Specials
    \r\n
    \r\n
    \r\n \r\n
      \r\n {\r\n specialFilter.map((d) =>\r\n
    • \r\n {d.Name}\r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Edit\r\n \r\n \r\n Add\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n selectedSpecial.SpecialSerNo == undefined ?\r\n <>\r\n
    Special Group
    \r\n {\r\n setSepcialGroupObj((prev) => ({ ...prev, Name: v }));\r\n setSpecialGroupValidation((prev) => ({ ...prev, Name: \"\" }));\r\n }}>Name\r\n \r\n :\r\n <>\r\n
    Specials
    \r\n {\r\n setSpecialObj((prev) => ({ ...prev, Name: v }));\r\n setSpecialValidation((prev) => ({ ...prev, Name: \"\" }));\r\n }}>Name\r\n {\r\n setSpecialObj((prev) => ({ ...prev, Sequence: v }));\r\n setSpecialValidation((prev) => ({ ...prev, Sequence: \"\" }));\r\n }}>Sequence\r\n \r\n }\r\n
    \r\n\r\n
    \r\n Cancel\r\n Save\r\n
    \r\n
    \r\n \r\n \r\n \r\n )\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnLoader,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport { GetClientMaster, AddEditClientMaste, AddEditClientMaster } from \"../../../../services/generalService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { RoomFeatureModalPopup } from \"../modalPopup/RoomFeatureModalPopup\";\r\nimport { SpecialsModalPopup } from \"../modalPopup/SpecialsModalPopup\";\r\n\r\nexport function ClientMaster(props) {\r\n\r\n //#region local variable\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"y\", title: \"Ok\", type: \"\" }],\r\n });\r\n }\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n ClientName: \"\",\r\n DomainAlias: \"\",\r\n Mode: \"View\",\r\n }\r\n const valid = {\r\n ClientName: \"\",\r\n DomainAlias: \"\",\r\n }\r\n //#endregion\r\n //#region state variable\r\n const [clientObj, setClientObj] = useState(defaultObj);\r\n const [clientList, setClientList] = useState([]);\r\n const [clientFilter, setClientFilter] = useState([]);\r\n const [clientValidation, setClientValidation] = useState(valid);\r\n const [search, setSearch] = useState(\"\");\r\n const [selectedSerNo, setSelectedSerNo] = useState(0);\r\n const [isActive, setIsActive] = useState(false);\r\n const [showRoomfeaturesPopup, setShowRoomfeaturesPopup] = useState(false);\r\n const [showSpecialsPopup, setShowSpecialsPopup] = useState(false);\r\n //#endregion\r\n //#region custom function\r\n const fillClient = () => {\r\n setIsActive(true);\r\n GetClientMaster().then((d) => {\r\n setIsActive(false);\r\n setClientList(d.data);\r\n setClientFilter(d.data)\r\n if (d.data.length > 0) {\r\n if (clientObj.Mode == \"Add\" || clientObj.Mode == \"Edit\") {\r\n let obj = d.data.find(x => x.ClientName == clientObj.ClientName);\r\n if (obj) {\r\n obj.Mode = \"View\";\r\n setClientObj(obj);\r\n console.log(\"AddEditData>>\", obj);\r\n }\r\n }\r\n else {\r\n d.data[0].Mode = \"View\";\r\n setClientObj(d.data[0]);\r\n console.log(\"ClientMasterData>>>\", d.data[0]);\r\n }\r\n }\r\n console.log(d.data);\r\n })\r\n }\r\n //#endregion\r\n //#region useEffect \r\n useEffect(() => {\r\n fillClient();\r\n }, [])\r\n //#endregion\r\n //#region validation\r\n const clearValidation = () => {\r\n setClientValidation(valid);\r\n }\r\n const isValidPage = () => {\r\n let valid = true;\r\n if (clientObj.ClientName.trim().length == 0 || clientObj.ClientName == \"\") {\r\n valid = false;\r\n setClientValidation((prev) => ({ ...prev, ClientName: \"Invalid client name\" }));\r\n }\r\n if (clientObj.DomainAlias.trim().length == 0 || clientObj.DomainAlias == \"\") {\r\n valid = false;\r\n setClientValidation((prev) => ({ ...prev, DomainAlias: \"Invalid domain alias\" }));\r\n }\r\n return valid;\r\n }\r\n //#endregion\r\n //#region event handler\r\n const hanldeOnClickClientName = (e) => {\r\n clearValidation();\r\n setIsActive(false);\r\n let obj = clientList.find(x => x.ClientName == e.target.id);\r\n obj.Mode = \"View\"\r\n setClientObj(obj);\r\n setSelectedSerNo(e.target.id);\r\n console.log(\"NameClickData>>\", obj);\r\n }\r\n const handleOnClickSearch = (e) => {\r\n setSearch(e);\r\n setClientObj(defaultObj);\r\n let obj = [];\r\n clientList.forEach((ele) => {\r\n if (ele.ClientName.toLowerCase().includes(e.toLowerCase())) {\r\n obj.push(ele);\r\n }\r\n });\r\n setClientFilter(obj);\r\n }\r\n const handleOnClickEdit = () => {\r\n if (clientObj.ClientName == \"\") {\r\n alertFunction(\"Please select client name\");\r\n }\r\n else {\r\n setClientObj((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n setSelectedSerNo(clientObj.ClientSerNo);\r\n }\r\n }\r\n const handleClickOnAdd = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj))\r\n obj.Mode = \"Add\";\r\n setClientObj(obj);\r\n }\r\n const searchEdit = () => {\r\n setIsActive(true);\r\n GetClientMaster().then((d) => {\r\n let temp = d.data.filter(x => x.ClientName.toLowerCase().includes(search.toLowerCase()));\r\n setClientFilter(temp);\r\n })\r\n }\r\n const handleOnClickSave = () => {\r\n let isValid = isValidPage();\r\n if (isValid) {\r\n setIsActive(true);\r\n AddEditClientMaster(clientObj).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n fillClient();\r\n if (clientObj.Mode == \"Add\" || clientObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit();\r\n return;\r\n }\r\n clientObj.ClientSerNo = d.data.ReturnValue;\r\n }\r\n }\r\n else {\r\n alertFunction(\"Failed\");\r\n }\r\n });\r\n setClientObj((prev) => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n const handleClickOnCancel = () => {\r\n clearValidation();\r\n let existingObj = clientList.find(x => x.ClientSerNo == selectedSerNo);\r\n if (existingObj != undefined) {\r\n setClientObj(existingObj);\r\n }\r\n else {\r\n setClientObj(defaultObj);\r\n }\r\n }\r\n //#endregion\r\n\r\n const countrydata = [\r\n { key: \"Option 1\", value: \"In\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Client Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Client Name
    \r\n
    \r\n
      \r\n {\r\n clientFilter.map(d =>\r\n
    • \r\n {d.ClientName}\r\n
    • \r\n )\r\n }\r\n {/*
    • India
    • \r\n
    • USA
    • \r\n
    • China
    • \r\n
    • Singapore
    • \r\n
    • Japan
    • \r\n
    • UAE
    • */}\r\n
    \r\n
    \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n
    \r\n {\r\n setClientObj((prev) => ({ ...prev, ClientName: v }));\r\n if (v == \"\") {\r\n setClientValidation((prev) => ({ ...prev, ClientName: \"Invalid client Name\" }));\r\n }\r\n else {\r\n setClientValidation((prev) => ({ ...prev, ClientName: \"\" }));\r\n }\r\n console.log(v)\r\n }}>Client Name\r\n
    \r\n
    \r\n {\r\n setClientObj((prev) => ({ ...prev, DomainAlias: v }));\r\n if (v == \"\") {\r\n setClientValidation((prev) => ({ ...prev, DomainAlias: \"Invalid domain alias\" }));\r\n }\r\n else {\r\n setClientValidation((prev) => ({ ...prev, DomainAlias: \"\" }));\r\n }\r\n console.log(v)\r\n }}>Domain Alias\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n setShowRoomfeaturesPopup(true)\r\n }}\r\n >\r\n Room Features\r\n
    \r\n
    \r\n {\r\n setShowSpecialsPopup(true)\r\n }}\r\n >\r\n Specials\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n {\r\n clientObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n Activate console.log(v)} id=\"1\">\r\n {/* setShowDepositTermTypeModal(!showDepositTermTypeModal)}>Add Deposit Term Type*/}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n {\r\n showRoomfeaturesPopup ?\r\n { setShowRoomfeaturesPopup(false) }}\r\n para={{\r\n ClientSerNo: parseInt(clientObj.ClientSerNo)\r\n }}\r\n >\r\n \r\n :\r\n null\r\n }\r\n {\r\n showSpecialsPopup ?\r\n { setShowSpecialsPopup(false) }}\r\n >\r\n\r\n \r\n :\r\n null\r\n }\r\n \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnCheckbox,\r\n InnModalPopup,\r\n useConfirm,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetTransactionMasterData, AddEdtiPayModeMaster, GetChargeTypeMaster } from \"../../../../services/generalService\";\r\n\r\nexport function PayModeMaster(props) {\r\n //#region local variable\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"Ok\", type: \"\" }],\r\n });\r\n };\r\n //#endregion\r\n //#region default object\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"TransactionSerNo\": 0,\r\n \"Name\": \"\",\r\n \"PaymentMethodType\": \"\",\r\n \"Module\": \"R\",\r\n \"Sequence\": 0,\r\n \"TransType\": \"C\",\r\n \"TransactionType\": \"P\",\r\n \"ChargeType\": '0',\r\n \"Type\": \"\",\r\n \"Mode\": \"View\"\r\n }\r\n const validation = {\r\n \"Name\": \"\",\r\n \"Module\": \"\",\r\n \"PaymentMethodType\": \"\",\r\n \"Sequence\": \"\",\r\n }\r\n //#endregion\r\n //#region state variable\r\n const [payModeObj, setPayModeObj] = useState(defaultObj);\r\n const [payModeList, setPaymodeList] = useState([]);\r\n const [payModefilter, setPayModeFilter] = useState([]);\r\n const [paymentMethodList, setPaymentMethodList] = useState([]);\r\n const [payModeValidation, setPayModeValidation] = useState(validation);\r\n const [selectedSerNo, setSelectedSerNo] = useState(0);\r\n const [search, setSearch] = useState(\"\");\r\n const [isActive, setisActive] = useState(false)\r\n //#endregion\r\n //#region fill pay mode list\r\n const fillPayModeList = () => {\r\n setisActive(true);\r\n GetTransactionMasterData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"R\").then(d => {\r\n if (d.data && d.data.length > 0) {\r\n if (payModeObj.Mode == \"Add\" || payModeObj.Mode == \"Edit\") {\r\n let temp = d.data.filter(y => y.TransactionType == \"P\")\r\n let obj = temp.find(x => x.TransactionSerNo == payModeObj.TransactionSerNo);\r\n if (obj) {\r\n obj.Mode = \"View\";\r\n setPayModeObj(obj);\r\n console.log(\"AddEditData>>>\", obj);\r\n }\r\n }\r\n else {\r\n let obj = d.data.filter(o => o.TransactionType == \"P\");\r\n obj[0].Mode = \"View\";\r\n setPayModeObj(obj[0]);\r\n console.log(\"DefaultData>>\", d.data[0]);\r\n }\r\n }\r\n setisActive(false);\r\n let data = d.data.filter(o => o.TransactionType == \"P\");\r\n setPaymodeList(data);\r\n setPayModeFilter(data);\r\n console.log(\"PayModeData>>>\",data)\r\n });\r\n }\r\n //#endregion\r\n //#region fill payment method type dropdown list\r\n const fillPaymentMethodCombo = () => {\r\n GetChargeTypeMaster().then(d => {\r\n let temp = [{ key: 0, value: \"NONE\" }];\r\n d.data.forEach((ele) => {\r\n temp = [...temp, { key: ele.ChargeType, value: ele.Name }];\r\n })\r\n setPaymentMethodList(temp);\r\n console.log(\"PaymentMethodType>>>\", temp);\r\n })\r\n }\r\n //#endregion\r\n //#region useEffect \r\n useEffect(() => {\r\n fillPayModeList();\r\n fillPaymentMethodCombo();\r\n }, [])\r\n //#endregion\r\n //#region validation \r\n const clearValidation = () => {\r\n setPayModeValidation(validation);\r\n }\r\n const IsValidPage = () => {\r\n let valid = true;\r\n if (payModeObj.Name.trim().length == 0 || payModeObj.Name == \"\") {\r\n valid = false;\r\n setPayModeValidation((prev) => ({ ...prev, Name: \"Invalid Name\" }));\r\n }\r\n return valid;\r\n }\r\n //#endregion\r\n //#region event handler\r\n const handleClickOnList = (e) => {\r\n clearValidation();\r\n setisActive(false);\r\n let obj = payModeList.find(x => x.TransactionSerNo == e.target.id);\r\n obj.Mode = \"View\";\r\n setPayModeObj(obj);\r\n setSelectedSerNo(e.target.id);\r\n console.log(\"ListClickData>>\", obj);\r\n }\r\n const handleClickOnSearch = (e) => {\r\n setSearch(e);\r\n setPayModeObj(defaultObj);\r\n let obj = [];\r\n payModeList.forEach((ele) => {\r\n if (ele.Name.toLowerCase().includes(e.toLowerCase())) {\r\n obj.push(ele);\r\n }\r\n });\r\n setPayModeFilter(obj);\r\n }\r\n const handleClickOnEdit = () => {\r\n if (payModeObj.Name == \"\") {\r\n alertFunction(\"Please select transaction name\");\r\n }\r\n else {\r\n setPayModeObj((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n setSelectedSerNo(payModeObj.TransactionSerNo);\r\n }\r\n }\r\n const handleClickOnAdd = () => {\r\n clearValidation();\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setPayModeObj(obj);\r\n }\r\n const handleClickOnCancel = () => {\r\n clearValidation();\r\n let existingObj = payModeList.find(x => x.TransactionSerNo == selectedSerNo);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setPayModeObj(existingObj);\r\n }\r\n else {\r\n setPayModeObj(defaultObj);\r\n }\r\n }\r\n const searchEdit = () => {\r\n GetTransactionMasterData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"R\").then((d) => {\r\n let temp = d.data.filter(x => x.Name.toLowerCase().includes(search.toLowerCase()));\r\n setPayModeFilter(temp);\r\n })\r\n }\r\n const handleClickOnSave = () => {\r\n let valid = IsValidPage();\r\n if (valid) {\r\n setisActive(true);\r\n AddEdtiPayModeMaster(payModeObj).then(d => {\r\n setisActive(false);\r\n if (d.data.Code = \"200\") {\r\n alertFunction(d.data.Message);\r\n fillPayModeList()\r\n if (payModeObj.Mode == \"Add\" || payModeObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit();\r\n return;\r\n }\r\n payModeObj.TransactionSerNo = parseInt(d.data.ReturnValue);\r\n }\r\n }\r\n else {\r\n alertFunction(\"somrthing went wrong\");\r\n }\r\n });\r\n setPayModeObj((prev) => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n //#endregion\r\n const selectData = [\r\n { key: '0', value: \"Select\" },\r\n { key: 'D', value: \"Debit\" },\r\n { key: 'C', value: \"Credit\" }\r\n ]\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Pay Mode Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Pay Mode List
    \r\n
    \r\n
      \r\n {\r\n payModefilter.map(d =>\r\n
    • \r\n {d.Name}\r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
    \r\n
    \r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n {\r\n setPayModeObj((prev) => ({ ...prev, Name: v }));\r\n setPayModeValidation((prev) => ({ ...prev, Name: \"\" }));\r\n }}>Transaction Name\r\n
    \r\n {\r\n setPayModeObj((prev) => ({ ...prev, PaymentMethodType: item.value }));\r\n setPayModeValidation((prev) => ({ ...prev, PaymentMethodType: \"\" }));\r\n console.log(item)\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n setPayModeObj((prev) => ({ ...prev, Sequence: v }));\r\n setPayModeValidation((prev) => ({ ...prev, Sequence: \"\" }));\r\n console.log(v);\r\n }}>Sequence\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n Activate console.log(v)} id=\"1\">\r\n {\r\n payModeObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}","export default __webpack_public_path__ + \"static/media/sharer-primary-icon.5960ee7c.svg\";","export default __webpack_public_path__ + \"static/media/block-icon.3e3a99dd.svg\";","export default __webpack_public_path__ + \"static/media/sharer-secondary-icon.288e879a.svg\";","import React, { useState, useEffect } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n} from \"../../../../component\";\r\nimport { cmbGetAgentMaster } from '../../../../services/reservationService';\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\n\r\n\r\nexport function AgentModalPopup(props) {\r\n\r\n const [page, setPage] = useState(1);\r\n const [pageCount, setPageCount] = useState(1);\r\n const [agentData, setAgentData] = useState([]);\r\n const [filterText, setFilterText] = useState(\"A\") \r\n const currUser = useSelector(currentUser);\r\n \r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n }\r\n const handleOnSelect = (selected) =>{\r\n if (props.handleOnSelect === undefined) {\r\n console.log(\"handleOnSelect is not defined\");\r\n } else {\r\n props.handleOnSelect(selected);\r\n }\r\n }\r\n\r\n const fillAgent = (FilterText) => {\r\n cmbGetAgentMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), FilterText, page,props.ProfileType).then(d => { \r\n setAgentData(d.data);\r\n let pCount = 0\r\n let pModuler\r\n try {\r\n pCount = parseInt(parseInt(d.data[0].TotalCount) / 20);\r\n try {\r\n pModuler = parseInt(parseInt(d.data[0].TotalCount) % 20);\r\n if (pModuler > 0)\r\n pCount = pCount + 1;\r\n } catch (e1) {\r\n console.log(\"error e1\",e1);\r\n }\r\n setPageCount(pCount);\r\n } catch (e) {\r\n console.log(\"error e\",e);\r\n }\r\n })\r\n }\r\n\r\n // useEffect(() => {\r\n // fillAgent(filterText);\r\n // }, []);\r\n\r\n useEffect(() => {\r\n fillAgent(filterText); \r\n }, [page]);\r\n\r\n // useEffect(()=>{\r\n // console.log(selectedData);\r\n // if(selectedData !== undefined || selectedData !== {})\r\n // handleOnSelect();\r\n // },[selectedData]);\r\n\r\n const rbAgentSearch = [\r\n { \"key\": \"Arvind Limited\", \"value\": \"D\" },\r\n { \"key\": \"Torrent Power Limited\", \"value\": \"T\" },\r\n { \"key\": \"Airtel India Limited\", \"value\": \"R\" },\r\n { \"key\": \"Adani Ports Limited \", \"value\": \"A\" },\r\n { \"key\": \"Arvind Limited\", \"value\": \"D\" },\r\n { \"key\": \"Torrent Power Limited\", \"value\": \"T\" },\r\n { \"key\": \"Airtel India Limited\", \"value\": \"R\" },\r\n { \"key\": \"Adani Ports Limited \", \"value\": \"A\" },\r\n { \"key\": \"Arvind Limited\", \"value\": \"D\" },\r\n { \"key\": \"Torrent Power Limited\", \"value\": \"T\" },\r\n { \"key\": \"Airtel India Limited\", \"value\": \"R\" },\r\n { \"key\": \"Adani Ports Limited \", \"value\": \"A\" },\r\n { \"key\": \"Arvind Limited\", \"value\": \"D\" },\r\n { \"key\": \"Torrent Power Limited\", \"value\": \"T\" },\r\n { \"key\": \"Airtel India Limited\", \"value\": \"R\" },\r\n { \"key\": \"Adani Ports Limited \", \"value\": \"A\" },\r\n { \"key\": \"Arvind Limited\", \"value\": \"D\" },\r\n { \"key\": \"Torrent Power Limited\", \"value\": \"T\" },\r\n { \"key\": \"Airtel India Limited\", \"value\": \"R\" },\r\n { \"key\": \"Adani Ports Limited \", \"value\": \"A\" },\r\n { \"key\": \"Arvind Limited\", \"value\": \"D\" },\r\n { \"key\": \"Torrent Power Limited\", \"value\": \"T\" },\r\n { \"key\": \"Airtel India Limited\", \"value\": \"R\" },\r\n { \"key\": \"Adani Ports Limited \", \"value\": \"A\" },\r\n ];\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n

    Agents Search2

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n setFilterText(v)}>\r\n Search\r\n \r\n
    \r\n
    \r\n {\r\n if(page === 1)\r\n fillAgent(filterText)\r\n else \r\n setPage(1)\r\n }}\r\n >Search\r\n
    \r\n
    \r\n\r\n
    \r\n
      \r\n {\r\n agentData.map((d) => \r\n
    • {\r\n handleOnSelect(d); \r\n }}>{d.AgentName}
    • \r\n )\r\n } \r\n
    \r\n
    \r\n
    \r\n { setPage(v); }} style={{ float: \"left\" }} />\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABHNCSVQICAgIfAhkiAAAALNJREFUSEvNlt0OgCAIheHJqye36cypKT+JWje15c4Hh4DQOXcCACBiuFtfST8+HABwWcMKbZ/BDFitiY9VlrCWVgJZZdYLuACNwihXXqCvMM76JkgL4yChfai+kQhIzrAgLjMpRATqwTQQMaiGRbtV04SsUV2/LAv/SjWy/gfKazLNulbhzT8GSlAD29+wmmglZ/cNVUl0vfkoXhMjEG5Tr13lFpkQ4yqMKpwBadq46gfyBsFL7A/xAU5+AAAAAElFTkSuQmCC\"","import React, { useState, useEffect } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport closeIcon from \"../../../../assets/images/model-cls-btn.png\";\r\nimport uploadedimg from \"../../../../assets/images/adhar-card.png\";\r\nimport {\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnPlainButton,\r\n InnLoader,\r\n InnTextbox,\r\n InnCheckbox,\r\n InnTooltip\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from 'react-redux';\r\nimport { AddGuestModalPopup } from \"./addGuestModalPopup\";\r\nimport { ProfilePreferenceModalPopup } from \"./profilePreferenceModalPopup\";\r\nimport { GetGuestProfileByFilter, GetGuestProfileByFilterWithNo, GetProfileSpecial, GetProfileRoomFeature } from \"../../../../services/reservationService\";\r\nimport { IndiCompany, IndiFutureStay, IndiInternalComment, IndiPastStay, IndiVipStatus } from \"../indicators\";\r\n\r\n\r\nexport function GuestModalPopup(props) {\r\n\r\n\r\n\r\n const currUser = useSelector(currentUser);\r\n const [isActive, setActive] = useState(false);\r\n const [isOpenAddGuest, setIsOpenAddGuest] = useState(false);\r\n const [showGuestAdvancedSearchModal, setShowGuestAdvancedSearchModal] = useState(true);\r\n const [showGuestAttachmentList, setShowGuestAttachmentList] = useState(false);\r\n const [showGuestSelectAndContinueModal, setShowGuestSelectAndContinueModal] = useState(false);\r\n const [guestData, setGuestData] = useState([]);\r\n const [guestObject, setGuestObject] = useState({});\r\n const [page, setPage] = useState(1);\r\n const [pageCount, setPageCount] = useState(1);\r\n const [profileSpecial, setProfileSpecial] = useState([]);\r\n const [profileRoomFeature, setProfileRoomFeature] = useState([]);\r\n const [filGuestPara, setFilGuestPara] = useState({\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"FirstName\": \"\",\r\n \"LastName\": \"\",\r\n \"Mobile\": \"\",\r\n \"Email\": \"\",\r\n \"MembershipNo\": \"\",\r\n \"CompanyName\": \"\",\r\n \"CityName\": \"\",\r\n \"IsIncognito\": false,\r\n \"PageNumber\": page\r\n });\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n }\r\n const handleApplyClick = () => {\r\n if (page === 1)\r\n fillGuest();\r\n else {\r\n setFilGuestPara(prev => ({ ...prev, PageNumber: 1 }));\r\n setPage(1)\r\n }\r\n setShowGuestAdvancedSearchModal(!showGuestAdvancedSearchModal)\r\n }\r\n\r\n const fillGuest = () => {\r\n setActive(true);\r\n GetGuestProfileByFilter(filGuestPara).then(d => {\r\n setActive(false);\r\n setGuestData(d.data);\r\n\r\n let pCount = 0\r\n let pModuler\r\n try {\r\n pCount = parseInt(parseInt(d.data[0].Total) / 20);\r\n try {\r\n pModuler = parseInt(parseInt(d.data[0].Total) % 20);\r\n if (pModuler > 0)\r\n pCount = pCount + 1;\r\n } catch (e1) {\r\n console.log(\"error e1\", e1);\r\n }\r\n setPageCount(pCount);\r\n } catch (e) {\r\n setPageCount(1);\r\n console.log(\"error e\", e);\r\n }\r\n\r\n })\r\n }\r\n\r\n const getGuestProfile = (e) => {\r\n GetGuestProfileByFilterWithNo(parseInt(currUser.ClientSerNo), e.target.id).then((d) => {\r\n setGuestObject(d.data);\r\n })\r\n GetProfileSpecial(parseInt(currUser.ClientSerNo), e.target.id).then((d) => {\r\n setProfileSpecial(d.data);\r\n })\r\n GetProfileRoomFeature(parseInt(currUser.ClientSerNo), e.target.id).then((d) => {\r\n setProfileRoomFeature(d.data);\r\n })\r\n }\r\n\r\n const handleReset = () => {\r\n setFilGuestPara({\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"FirstName\": \"\",\r\n \"LastName\": \"\",\r\n \"Mobile\": \"\",\r\n \"Email\": \"\",\r\n \"MembershipNo\": \"\",\r\n \"CompanyName\": \"\",\r\n \"CityName\": \"\",\r\n \"IsIncognito\": false,\r\n \"PageNumber\": page\r\n })\r\n }\r\n\r\n const handleOnSelect = () => {\r\n if (props.OnSelect == undefined)\r\n console.log(\"OnSelect is not defined\");\r\n else\r\n props.OnSelect({ ...guestObject, ProfileRoomFeatures: [], ProfileSpecials: [] });\r\n }\r\n\r\n const handleSelectContinueClick = () => {\r\n if (props.from !== undefined && props.from === 'Banquet') {\r\n handleOnSelect();\r\n }\r\n else {\r\n if (profileRoomFeature.length > 0 || profileSpecial.length > 0) {\r\n setShowGuestSelectAndContinueModal(!showGuestSelectAndContinueModal)\r\n } else {\r\n handleOnSelect();\r\n }\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n fillGuest();\r\n }, [page]);\r\n\r\n const reservationObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: 50, //location.state.reservationSerNo,\r\n // ClientSerNo: 1201,\r\n // PropertySerNo: 1,\r\n // ReservationSerNo: 10\r\n };\r\n\r\n const RoomFeaturesTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Room Features (16)
    \r\n
      \r\n
    • Pool size view
    • \r\n
    • King Size Bed
    • \r\n
    • 72 inch LCD TV
    • \r\n
    • Some Text
    • \r\n
    • Inter-Connected
    • \r\n
    • Some more text
    • \r\n
    • Some more text
    • \r\n
    • Coffee shop
    • \r\n
    • King Size Bed
    • \r\n
    • 72 inch LCD TV
    • \r\n
    • Some Text
    • \r\n
    • Inter-Connected
    • \r\n
    • Some more text
    • \r\n
    • Some more text
    • \r\n
    • Coffee shop
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Edit\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n const SpecialsTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    specials (5)
    \r\n
      \r\n
    • Economic Times
    • \r\n
    • Feather Pillow
    • \r\n
    • HDMI Cable
    • \r\n
    • Some Text
    • \r\n
    • Some Text
    • \r\n
    • Some Text
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Edit\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const [previewModal, setpreviewModal] = useState();\r\n return (\r\n
    \r\n {\r\n console.log(\"save clicked\");\r\n }}\r\n Onclose={handleOnclose}\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n

    Guest

    \r\n
    \r\n
    \r\n \r\n setShowGuestAdvancedSearchModal(\r\n !showGuestAdvancedSearchModal\r\n )\r\n }\r\n >\r\n \r\n
    \r\n {\r\n props.para?.IsGuestCalling != undefined && props.para.IsGuestCalling ?\r\n <> :\r\n { setIsOpenAddGuest(!isOpenAddGuest); setShowGuestAdvancedSearchModal(false) }}\r\n >\r\n Add New\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n {showGuestAdvancedSearchModal ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Filters

    \r\n
    \r\n
    \r\n \r\n Reset\r\n \r\n \r\n Apply\r\n \r\n \r\n setShowGuestAdvancedSearchModal(\r\n !showGuestAdvancedSearchModal\r\n )\r\n }\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n setFilGuestPara(prev => ({ ...prev, FirstName: v }))}\r\n >\r\n First Name\r\n \r\n
    \r\n
    \r\n setFilGuestPara(prev => ({ ...prev, LastName: v }))}\r\n >\r\n Last Name\r\n \r\n
    \r\n
    \r\n setFilGuestPara(prev => ({ ...prev, Mobile: v }))}\r\n >\r\n Mobile\r\n \r\n
    \r\n
    \r\n setFilGuestPara(prev => ({ ...prev, Email: v }))}\r\n >\r\n Email\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n setFilGuestPara(prev => ({ ...prev, CompanyName: v }))}\r\n >\r\n Company\r\n \r\n
    \r\n
    \r\n
    \r\n setFilGuestPara(prev => ({ ...prev, MembershipNo: v }))}\r\n >\r\n Membership No\r\n \r\n
    \r\n
    \r\n setFilGuestPara(prev => ({ ...prev, CityName: v }))}\r\n >\r\n City\r\n \r\n
    \r\n
    \r\n setFilGuestPara(prev => ({ ...prev, IsIncognito: ischecked }))} >\r\n Incognito\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n RESULT FOUND: {guestData.length > 0 ? guestData[0].Total : 0}\r\n
    \r\n
    \r\n\r\n \r\n
    \r\n { setFilGuestPara(prev => ({ ...prev, PageNumber: v })); setPage(v); }} style={{ float: \"left\" }} />\r\n
    \r\n
    \r\n
    \r\n
    \r\n {guestObject.GuestName}
    \r\n {guestObject.Mobile}\r\n \r\n {guestObject.Email}\r\n \r\n
    \r\n
    \r\n {guestObject.Country == undefined ?\r\n <>\r\n :\r\n <>\r\n {guestObject.Street}\r\n {guestObject.CityName == \"\" ? \" \" : \" , \" + guestObject.CityName}\r\n {guestObject.StateName == \"\" ? \" \" : \" , \" + guestObject.StateName}\r\n {guestObject.Country == \"\" ? \" \" : \" , ( \" + guestObject.Country + \")\"}\r\n \r\n }\r\n
    \r\n {/*
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n setShowGuestAttachmentList(!showGuestAttachmentList)\r\n }\r\n >\r\n Attachment (4)\r\n
    \r\n
    \r\n
    */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Membership\r\n
    \r\n
    \r\n {guestObject.MemberShipName == undefined ? \" \" : guestObject.MemberShipName}\r\n {guestObject.MembershipNo == undefined ? \" \" : \" ( \" + guestObject.MembershipNo + \" )\"}\r\n
    \r\n
    \r\n
    \r\n VIP Level\r\n
    \r\n
    \r\n VIP1-Politician\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Profile Info
    \r\n
    \r\n Company\r\n
    \r\n
    \r\n Arvind Ltd.\r\n
    \r\n
    \r\n Designation\r\n
    \r\n
    \r\n General Manager\r\n
    \r\n
    \r\n Department\r\n
    \r\n
    \r\n Finance\r\n
    \r\n
    \r\n
    \r\n
    Identification Type
    \r\n
    \r\n
    Adhar Card\r\n \r\n
    \r\n
    123456789
    \r\n
    \r\n
    \r\n
    Front Side
    \r\n setpreviewModal(true)}>Preview\r\n
    \r\n
    \r\n
    Back Side
    \r\n setpreviewModal(true)}>Preview\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n {/*
    \r\n
    \r\n
    \r\n Associated Company\r\n
    \r\n
    \r\n {guestObject.CompanyName == undefined ? \" \" : guestObject.CompanyName}\r\n {guestObject.Designation == undefined ? \" \" : \" ( \" + guestObject.Designation + \" )\"}\r\n
    \r\n
    \r\n
    \r\n {showGuestAttachmentList ? (\r\n
    \r\n
    \r\n \r\n Aadhar Card\r\n (Front Side)\r\n \r\n ADH 234234987654\r\n
    \r\n
    \r\n \r\n Aadhar Card\r\n (Back Side)\r\n \r\n ADH 234234987654\r\n
    \r\n
    \r\n \r\n Passport\r\n (Front Side)\r\n \r\n ADH 234234987654\r\n
    \r\n
    \r\n \r\n Passport (Back\r\n Side)\r\n \r\n ADH 234234987654\r\n
    \r\n
    \r\n ) : null} \r\n
    \r\n
    \r\n
    \r\n
    \r\n Room Features\r\n
    \r\n
      \r\n {\r\n profileRoomFeature && profileRoomFeature.slice(0, 4).map(d =>\r\n
    • \r\n {d.DisplayName}\r\n
    • \r\n )\r\n }\r\n
    \r\n \r\n
    \r\n \r\n {\r\n profileRoomFeature.length > 4 ?\r\n More\r\n : <>\r\n }\r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n Specials\r\n
    \r\n
      \r\n {\r\n profileSpecial && profileSpecial.slice(0, 4).map(d =>\r\n
    • \r\n {d.Name}\r\n
    • \r\n )\r\n }\r\n
    \r\n \r\n
    \r\n \r\n {\r\n profileSpecial.length > 4 ?\r\n More\r\n : <>\r\n }\r\n \r\n
    \r\n
    \r\n
    \r\n
    */}\r\n\r\n
    \r\n\r\n
    \r\n\r\n \r\n View Full Profile\r\n \r\n {\r\n handleSelectContinueClick();\r\n }}\r\n >\r\n Select & Continue\r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n isOpenAddGuest ?\r\n {\r\n setIsOpenAddGuest(!isOpenAddGuest);\r\n setGuestObject(d.guest)\r\n let data = [d.guest, ...guestData];\r\n setGuestData(data);\r\n }}\r\n handleOnclose={(e) => {\r\n setIsOpenAddGuest(!isOpenAddGuest);\r\n }}\r\n >\r\n \r\n : <>\r\n }\r\n \r\n \r\n\r\n {showGuestSelectAndContinueModal ? (\r\n setShowGuestSelectAndContinueModal(false)}\r\n para={{ ProfileRoomFeatures: profileRoomFeature, ProfileSpecials: profileSpecial }}\r\n OnSave={(v) => {\r\n if (props.OnSelect == undefined)\r\n console.log(\"OnSelect is not defined\");\r\n else\r\n props.OnSelect({ ...guestObject, ProfileRoomFeatures: v.ProfileRoomFeatures, ProfileSpecials: v.ProfileSpecials });\r\n }}\r\n >\r\n \r\n ) : null}\r\n\r\n {previewModal == true ? (\r\n setpreviewModal(false)}\r\n >\r\n
    \r\n \r\n
    \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n )\r\n}","import React, { useState, useEffect, useRef } from \"react\";\r\nimport {\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnCheckbox,\r\n InnSingleSelectDropdown,\r\n InnActionButton,\r\n} from \"../../../../component\";\r\nimport {\r\n GetRoomFeature,\r\n AddEditReservationRoomFeature,\r\n AddProfileRoomFeature,\r\n GetProfileRoomFeature,\r\n GetReservationBasicData\r\n} from \"../../../../services/reservationService\";\r\n\r\nexport function RoomFeatureModalPopup(props) {\r\n //use state varible declartion start\r\n const [fillBedTypeComboData, setfillBedTypeComboData] = useState([]);\r\n const [fillSmokingTypeComboData, setfillSmokingTypeComboData] = useState([]);\r\n const [selectedBedTypeValue, setselectedBedTypeValue] = useState(\"\");\r\n const [selectedSmokingTypeValue, setselectedSmokingTypeValue] = useState(\"\");\r\n const [roomFeatureData, setroomFeatureData] = useState([]);\r\n const [GroupNameSectionShow, setGroupNameSectionShow] = useState(false);\r\n const [finalResponse, setfinalResponse] = useState(props.data);\r\n const [groupCollection, setgroupCollection] = useState([]);\r\n const [groupId, setgroupId] = useState(\"\");\r\n const [isShowSelected, setisShowSelected] = useState(false);\r\n const [RoomFeaturesConfirmPopupShow, setRoomFeaturesConfirmPopupShow] =\r\n useState(false);\r\n const [RoomFeatureProfileData, setRoomFeatureProfileData] = useState([]);\r\n const [RemoveRoomFeatureProfileData, setRemoveRoomFeatureProfileData] =\r\n useState([]);\r\n const [reservationData, setReservationData] = useState({});\r\n\r\n //use state varible declartion end\r\n\r\n //Modal Popup close event start\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n };\r\n //Modal Popup Close event end\r\n\r\n //one time api called in page load start\r\n useEffect(() => {\r\n let tempRes = JSON.parse(JSON.stringify(finalResponse));\r\n tempRes.forEach((ele) => {\r\n ele.ClientSerNo = parseInt(props.para.ClientSerNo);\r\n ele.PropertySerNo = parseInt(props.para.PropertySerNo);\r\n ele.ReservationSerNo = props.para.ReservationSerNo;\r\n ele.ProfileSerNo = props.para.ProfileSerNo;\r\n });\r\n setfinalResponse(tempRes);\r\n\r\n // GetRoomFeature(\"1106\", \"2\").then(\r\n GetRoomFeature(props.para.ClientSerNo, props.para.PropertySerNo).then(\r\n (response) => {\r\n if (response.data != undefined) {\r\n response.data.RoomFeatures.map((o) => {\r\n o.checked = false;\r\n //fill bed type combo start\r\n if (o.RoomFeatureTypeSerNo == \"BDT\") {\r\n let obj = [{ key: 0, value: \"Select\" }];\r\n response.data.RoomFeatureValues.map((b) => {\r\n if (o.RoomFeatureSerNo == b.RoomFeatureSerNo) {\r\n obj.push({ key: b.key, value: b.Value });\r\n }\r\n setfillBedTypeComboData(obj);\r\n });\r\n }\r\n //fill bed type combo end\r\n\r\n //fill smoking type combo start\r\n if (o.RoomFeatureTypeSerNo == \"SMK\") {\r\n let obj = [{ key: 0, value: \"Select\" }];\r\n response.data.RoomFeatureValues.map((s) => {\r\n if (o.RoomFeatureSerNo == s.RoomFeatureSerNo) {\r\n obj.push({ key: s.key, value: s.Value });\r\n }\r\n setfillSmokingTypeComboData(obj);\r\n });\r\n }\r\n //fill smoking type combo end\r\n });\r\n\r\n //for unique group collection logic start\r\n let unique = [...groupCollection];\r\n response.data.RoomFeatures.filter(\r\n (f) =>\r\n f.RoomFeatureTypeSerNo != \"BDT\" &&\r\n f.RoomFeatureTypeSerNo != \"SMK\" &&\r\n f.RoomFeatureTypeSerNo != \"ADJ\" &&\r\n f.RoomFeatureTypeSerNo != \"INCN\" &&\r\n f.RoomFeatureTypeSerNo != \"ARM\"\r\n ).map((d) => {\r\n let o = unique.find(\r\n (x) => x.RoomFeaturesGroupSerNo == d.RoomFeaturesGroupSerNo\r\n );\r\n if (o == undefined) unique.push(d);\r\n });\r\n setgroupCollection(unique);\r\n //for unique group collection logic end\r\n setroomFeatureData(response.data);\r\n console.log(\"room feature api data\", response.data);\r\n } else {\r\n console.log(\"Data Not Found\");\r\n }\r\n }\r\n );\r\n GetReservationBasicData(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo).then(d => {\r\n if (d.data != null || d.data != undefined) {\r\n setReservationData(d.data);\r\n }\r\n })\r\n\r\n }, []);\r\n //one time api called in page load end\r\n\r\n //Apply Room Feature Click Event start\r\n const ApplyRoomFeature = () => {\r\n if (props.para.Mode == \"Filter\") {\r\n props.handleOnSelect(finalResponse);\r\n }\r\n else {\r\n setRoomFeaturesConfirmPopupShow(true);\r\n }\r\n };\r\n //Apply Room Feature Click Event End\r\n\r\n //Editable useeffect start\r\n useEffect(() => {\r\n if (finalResponse.length > 0) {\r\n let temp = { ...roomFeatureData };\r\n if (temp.RoomFeatureValues != undefined) {\r\n temp.RoomFeatureValues.map((o) => {\r\n finalResponse.map((p) => {\r\n if (p.Value == o.Value) {\r\n if (o.RoomFeatureTypeSerNo == \"BDT\") {\r\n setselectedBedTypeValue(p.key);\r\n }\r\n if (o.RoomFeatureTypeSerNo == \"SMK\") {\r\n setselectedSmokingTypeValue(p.key);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n }\r\n }, [roomFeatureData]);\r\n //Editable useeffect end\r\n\r\n //change event for bed type combo start\r\n const handleBedTypeChange = (item) => {\r\n let obj = roomFeatureData.RoomFeatureValues.find((f) => f.key == item.key);\r\n console.log(obj);\r\n if (obj) {\r\n obj.DisplayName = item.value;\r\n obj.ClientSerNo = parseInt(props.para.ClientSerNo);\r\n obj.PropertySerNo = parseInt(props.para.PropertySerNo);\r\n obj.ReservationSerNo = props.para.ReservationSerNo;\r\n let fr = [...finalResponse];\r\n let exObj = fr.find((x) => x.RoomFeatureSerNo == obj.RoomFeatureSerNo);\r\n console.log(exObj);\r\n if (exObj) {\r\n let index = fr.indexOf(exObj);\r\n fr.splice(index, 1);\r\n }\r\n fr.push(obj);\r\n setfinalResponse(fr);\r\n } else {\r\n let fr = [...finalResponse];\r\n let filterRes = fr.filter((x) => x.RoomFeatureTypeSerNo != \"BDT\");\r\n setfinalResponse(filterRes);\r\n }\r\n };\r\n //change event for bed type combo end\r\n\r\n //change event for smoking type combo start\r\n const handleSmokingTypeChange = (item) => {\r\n let obj = roomFeatureData.RoomFeatureValues.find((f) => f.key == item.key);\r\n if (obj) {\r\n obj.DisplayName = item.value;\r\n obj.ClientSerNo = parseInt(props.para.ClientSerNo);\r\n obj.PropertySerNo = parseInt(props.para.PropertySerNo);\r\n obj.ReservationSerNo = props.para.ReservationSerNo;\r\n let fr = [...finalResponse];\r\n let exObj = fr.find((x) => x.RoomFeatureSerNo == obj.RoomFeatureSerNo);\r\n if (exObj) {\r\n let index = fr.indexOf(exObj);\r\n fr.splice(index, 1);\r\n }\r\n fr.push(obj);\r\n setfinalResponse(fr);\r\n } else {\r\n let fr = [...finalResponse];\r\n let filterRes = fr.filter((x) => x.RoomFeatureTypeSerNo != \"SMK\");\r\n setfinalResponse(filterRes);\r\n }\r\n };\r\n //change event for smoking type combo end\r\n\r\n //click event for group name start\r\n const handleGroupNameClick = (e) => {\r\n setgroupId(e.target.id);\r\n setGroupNameSectionShow(true);\r\n };\r\n //click event for group name end\r\n\r\n //click event for checkbox start\r\n const handleCheckboxClick = (e) => {\r\n if (e.target.checked) {\r\n let obj = roomFeatureData.RoomFeatureValues.find(\r\n (f) => f.RoomFeatureSerNo == e.target.id && f.Value == \"1\"\r\n );\r\n obj.checked = true;\r\n let displayName = roomFeatureData.RoomFeatures.find(\r\n (f1) => f1.RoomFeatureSerNo == obj.RoomFeatureSerNo\r\n );\r\n obj.DisplayName = displayName.Name;\r\n obj.ClientSerNo = parseInt(props.para.ClientSerNo);\r\n obj.PropertySerNo = parseInt(props.para.PropertySerNo);\r\n obj.ReservationSerNo = props.para.ReservationSerNo;\r\n let fr = [...finalResponse];\r\n fr.push(obj);\r\n setfinalResponse(fr);\r\n } else {\r\n let filterRes = finalResponse.filter(\r\n (x) => x.RoomFeatureSerNo != e.target.id\r\n );\r\n setfinalResponse(filterRes);\r\n }\r\n };\r\n //click event for checkbox end\r\n\r\n //reset click event start\r\n const ResetRoomFeature = () => {\r\n setselectedBedTypeValue(0);\r\n setselectedSmokingTypeValue(0);\r\n setfinalResponse([]);\r\n setisShowSelected(false);\r\n };\r\n //reset click event end\r\n\r\n //Profile checked and unchecked event start\r\n const handleProfileChecked = (e) => {\r\n if (e.target.checked) {\r\n let checkeddata = RemoveRoomFeatureProfileData.find(\r\n (x) => x.RoomFeatureSerNo == e.target.id\r\n );\r\n let temp = [...RoomFeatureProfileData];\r\n temp.push(checkeddata);\r\n setRoomFeatureProfileData(temp);\r\n\r\n let uncheckeddata = RemoveRoomFeatureProfileData.filter(\r\n (x) => x.RoomFeatureSerNo != e.target.id\r\n );\r\n setRemoveRoomFeatureProfileData(uncheckeddata);\r\n } else {\r\n let uncheckeddata = RoomFeatureProfileData.find(\r\n (x) => x.RoomFeatureSerNo == e.target.id\r\n );\r\n\r\n if (RemoveRoomFeatureProfileData) {\r\n let temp = [...RemoveRoomFeatureProfileData];\r\n temp.push(uncheckeddata);\r\n setRemoveRoomFeatureProfileData(temp);\r\n }\r\n\r\n let checkeddata = RoomFeatureProfileData.filter(\r\n (x) => x.RoomFeatureSerNo != e.target.id\r\n );\r\n\r\n setRoomFeatureProfileData(checkeddata);\r\n }\r\n };\r\n //Profile checked and unchecked event end\r\n\r\n //handle don't update button click event start\r\n const handleDonotUpdate = () => {\r\n setRoomFeaturesConfirmPopupShow(false);\r\n if (props.para.Mode == \"ADD\") {\r\n if (props.handleOnSelect == undefined) {\r\n console.log(\"handleOnSelect is not defined\");\r\n } else {\r\n props.handleOnSelect(finalResponse);\r\n }\r\n } else if (props.para.Mode == \"EDIT\") {\r\n if (props.handleOnSelect == undefined) {\r\n console.log(\"handleOnSelect is not defined\");\r\n } else {\r\n props.handleOnSelect(finalResponse);\r\n }\r\n AddEditReservationRoomFeature(finalResponse).then((response) => {\r\n alert(response.data.Message);\r\n });\r\n }\r\n // handleOnclose();\r\n };\r\n //handle don't update button click event end\r\n\r\n //handle All checked event start\r\n const handleAllChecekd = (ischecked) => {\r\n if (ischecked == true) {\r\n } else {\r\n let temp = [...RemoveRoomFeatureProfileData];\r\n RoomFeatureProfileData.map((c) => {\r\n c.checked = false;\r\n c.ProfileSerNo = props.para.ProfileSerNo;\r\n temp.push(c);\r\n });\r\n setRemoveRoomFeatureProfileData(temp);\r\n setRoomFeatureProfileData([]);\r\n }\r\n };\r\n //handle All checked event end\r\n\r\n //handle All checked removed event start\r\n const handleAllChecekdRemoved = (ischecked) => {\r\n if (ischecked) {\r\n let temp = [...RoomFeatureProfileData];\r\n RemoveRoomFeatureProfileData.map((c) => {\r\n c.checked = true;\r\n c.ProfileSerNo = props.para.ProfileSerNo;\r\n temp.push(c);\r\n });\r\n setRoomFeatureProfileData(temp);\r\n setRemoveRoomFeatureProfileData([]);\r\n } else {\r\n }\r\n };\r\n //handle All checked removed event end\r\n\r\n //handle update profile click event start\r\n const handleUpdate = () => {\r\n if (props.para.Mode == \"ADD\") {\r\n if (props.handleOnSelect == undefined) {\r\n console.log(\"handleOnSelect is not defined\");\r\n } else {\r\n props.handleOnSelect(finalResponse);\r\n let tempRes = JSON.parse(JSON.stringify(RoomFeatureProfileData));\r\n tempRes.forEach((ele) => {\r\n ele.ClientSerNo = parseInt(props.para.ClientSerNo);\r\n ele.PropertySerNo = parseInt(props.para.PropertySerNo);\r\n ele.ReservationSerNo = props.para.ReservationSerNo;\r\n ele.ProfileSerNo = props.para.ProfileSerNo;\r\n });\r\n if (tempRes.length == 0) {\r\n AddProfileRoomFeature(RemoveRoomFeatureProfileData).then((response) => {\r\n alert(response.data.Message);\r\n });\r\n } else {\r\n AddProfileRoomFeature(tempRes).then((response) => {\r\n alert(response.data.Message);\r\n });\r\n }\r\n }\r\n } else if (props.para.Mode == \"EDIT\") {\r\n if (props.handleOnSelect == undefined) {\r\n console.log(\"handleOnSelect is not defined\");\r\n } else {\r\n props.handleOnSelect(finalResponse);\r\n }\r\n AddEditReservationRoomFeature(finalResponse).then((response) => {\r\n alert(response.data.Message);\r\n });\r\n console.log(\"roomfeature\", finalResponse);\r\n console.log(\"profile\", RoomFeatureProfileData);\r\n console.log(\"remove profile\", RemoveRoomFeatureProfileData);\r\n if (RoomFeatureProfileData.length == 0) {\r\n AddProfileRoomFeature(RemoveRoomFeatureProfileData).then((response) => {\r\n alert(response.data.Message);\r\n });\r\n } else {\r\n AddProfileRoomFeature(RoomFeatureProfileData).then((response) => {\r\n alert(response.data.Message);\r\n });\r\n }\r\n } else {\r\n console.log(\"mode is not defined\");\r\n }\r\n };\r\n //handle update profile click event end\r\n\r\n //profile popup load event start\r\n useEffect(() => {\r\n console.log(\"RoomFeature Data\", finalResponse);\r\n if (RoomFeatureProfileData.length == 0) {\r\n setRoomFeatureProfileData(finalResponse);\r\n } else {\r\n GetProfileRoomFeature(\r\n props.para.ClientSerNo,\r\n props.para.ProfileSerNo\r\n ).then((response) => {\r\n console.log(\"Profile Data\", response.data);\r\n let newAddedData = JSON.parse(JSON.stringify(finalResponse));\r\n let newRemoveData = [];\r\n response.data.forEach((ele) => {\r\n let tempEle = finalResponse.find(\r\n (x) => x.RoomFeatureSerNo == ele.RoomFeatureSerNo\r\n );\r\n if (tempEle == undefined) {\r\n newRemoveData.push(ele);\r\n }\r\n });\r\n console.log(\"Add\", newAddedData);\r\n console.log(\"del\", newRemoveData);\r\n setRoomFeatureProfileData(newAddedData);\r\n setRemoveRoomFeatureProfileData(newRemoveData);\r\n });\r\n }\r\n }, [RoomFeaturesConfirmPopupShow]);\r\n //profile popup load event\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    Room Features

    \r\n
    \r\n
    \r\n \r\n Reset\r\n \r\n \r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      Confirmation No.
      \r\n
      \r\n {reservationData.BookingNo}\r\n
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      \r\n {reservationData.GuestName}\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setisShowSelected(ischecked);\r\n }}\r\n checked={isShowSelected}\r\n className=\"mrgn-tp10\"\r\n >\r\n Show Selected (\r\n {isShowSelected == true\r\n ? finalResponse.filter(\r\n (f) =>\r\n f.Value == \"1\" &&\r\n f.RoomFeatureTypeSerNo != \"BDT\" &&\r\n f.RoomFeatureTypeSerNo != \"SMK\" &&\r\n f.RoomFeatureTypeSerNo != \"ADJ\" &&\r\n f.RoomFeatureTypeSerNo != \"INCN\" &&\r\n f.RoomFeatureTypeSerNo != \"ARM\"\r\n ).length\r\n : // ? finalResponse.filter(\r\n // (x) =>\r\n // x.RoomFeaturesGroupSerNo == groupId &&\r\n // x.RoomFeatureTypeSerNo != \"BDT\" &&\r\n // x.RoomFeatureTypeSerNo != \"SMK\" &&\r\n // x.RoomFeatureTypeSerNo != \"ADJ\" &&\r\n // x.RoomFeatureTypeSerNo != \"INCN\" &&\r\n // x.RoomFeatureTypeSerNo != \"ARM\"\r\n // ).length > 0\r\n // ? finalResponse.filter(\r\n // (f) =>\r\n // f.RoomFeatureTypeSerNo != \"ADJ\" &&\r\n // f.RoomFeatureTypeSerNo != \"INCN\" &&\r\n // f.RoomFeatureTypeSerNo != \"ARM\" &&\r\n // f.RoomFeatureTypeSerNo != \"BDT\" &&\r\n // f.RoomFeatureTypeSerNo != \"SMK\"\r\n // ).length\r\n // : 0\r\n 0}\r\n )\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    In Room
    \r\n
    \r\n {\r\n handleBedTypeChange(item);\r\n }}\r\n selectedSerNo={selectedBedTypeValue}\r\n label=\"Bed Type\"\r\n >\r\n
    \r\n
    \r\n {\r\n handleSmokingTypeChange(item);\r\n }}\r\n selectedSerNo={selectedSmokingTypeValue}\r\n label=\"Smoking\"\r\n >\r\n
    \r\n {roomFeatureData.RoomFeatures == undefined ? (\r\n <>\r\n ) : (\r\n roomFeatureData.RoomFeatures.filter(\r\n (f) =>\r\n f.RoomFeatureTypeSerNo == \"ADJ\" ||\r\n f.RoomFeatureTypeSerNo == \"INCN\" ||\r\n f.RoomFeatureTypeSerNo == \"ARM\"\r\n ).map((o) => (\r\n handleCheckboxClick(e)}\r\n onChecked={(ischecked) => { }}\r\n checked={\r\n finalResponse.filter(\r\n (x) => x.RoomFeatureSerNo == o.RoomFeatureSerNo\r\n ).length > 0\r\n ? true\r\n : false\r\n }\r\n >\r\n {o.Name}\r\n \r\n ))\r\n )}\r\n
    \r\n
    \r\n Other Preferences\r\n
    \r\n {roomFeatureData.RoomFeatures == undefined ? (\r\n <>\r\n ) : (\r\n groupCollection.map((o) => (\r\n handleGroupNameClick(e)}\r\n id={o.RoomFeaturesGroupSerNo}\r\n >\r\n {o.GroupName} (\r\n {finalResponse.filter(\r\n (x) =>\r\n // x.RoomFeaturesGroupSerNo == groupId &&\r\n x.RoomFeatureTypeSerNo != \"BDT\" &&\r\n x.RoomFeatureTypeSerNo != \"SMK\" &&\r\n x.RoomFeatureTypeSerNo != \"ADJ\" &&\r\n x.RoomFeatureTypeSerNo != \"INCN\" &&\r\n x.RoomFeatureTypeSerNo != \"ARM\"\r\n ).length > 0\r\n ? finalResponse.filter(\r\n (f) =>\r\n f.RoomFeatureTypeSerNo != \"ADJ\" &&\r\n f.RoomFeatureTypeSerNo != \"INCN\" &&\r\n f.RoomFeatureTypeSerNo != \"ARM\" &&\r\n f.RoomFeatureTypeSerNo != \"BDT\" &&\r\n f.RoomFeatureTypeSerNo != \"SMK\" &&\r\n f.RoomFeaturesGroupSerNo ==\r\n o.RoomFeaturesGroupSerNo\r\n ).length\r\n : 0}\r\n )\r\n \r\n \r\n x.RoomFeatureTypeSerNo != \"BDT\" &&\r\n x.RoomFeatureTypeSerNo != \"SMK\" &&\r\n x.RoomFeatureTypeSerNo != \"ADJ\" &&\r\n x.RoomFeatureTypeSerNo != \"INCN\" &&\r\n x.RoomFeatureTypeSerNo != \"ARM\" &&\r\n x.RoomFeaturesGroupSerNo ==\r\n o.RoomFeaturesGroupSerNo\r\n ).length > 0\r\n ? \"has-preferences\"\r\n : \"\"\r\n }\r\n id={o.RoomFeaturesGroupSerNo}\r\n >\r\n \r\n \r\n
    \r\n ))\r\n )}\r\n
    \r\n
    \r\n
    \r\n Check Availability\r\n
    \r\n
    \r\n {/* {GroupNameSectionShow == true ? ( */}\r\n
    \r\n
    \r\n {isShowSelected ? (\r\n
    \r\n
    \r\n All\r\n
    \r\n\r\n {roomFeatureData.RoomFeatures == undefined ? (\r\n <>\r\n ) : (\r\n roomFeatureData.RoomFeatures.filter(\r\n (f) =>\r\n // f.RoomFeaturesGroupSerNo == groupId &&\r\n f.RoomFeatureTypeSerNo != \"ADJ\" &&\r\n f.RoomFeatureTypeSerNo != \"INCN\" &&\r\n f.RoomFeatureTypeSerNo != \"ARM\" &&\r\n f.RoomFeatureTypeSerNo != \"BDT\" &&\r\n f.RoomFeatureTypeSerNo != \"SMK\"\r\n ).map((o) =>\r\n finalResponse.filter(\r\n (x) => x.RoomFeatureSerNo == o.RoomFeatureSerNo\r\n ).length > 0 ? (\r\n { }}\r\n id={o.RoomFeatureSerNo}\r\n onClick={(e) => handleCheckboxClick(e)}\r\n checked={\r\n finalResponse.filter(\r\n (x) => x.RoomFeatureSerNo == o.RoomFeatureSerNo\r\n ).length > 0\r\n ? true\r\n : false\r\n }\r\n >\r\n {o.Name}\r\n \r\n ) : (\r\n <>\r\n )\r\n )\r\n )}\r\n
    \r\n ) : GroupNameSectionShow == true ? (\r\n
    \r\n
    \r\n {groupCollection.map((o) =>\r\n o.RoomFeaturesGroupSerNo == groupId ? (\r\n o.GroupName\r\n ) : (\r\n <>\r\n )\r\n )}\r\n
    \r\n {roomFeatureData.RoomFeatures == undefined ? (\r\n <>\r\n ) : (\r\n roomFeatureData.RoomFeatures.filter(\r\n (f) =>\r\n f.RoomFeaturesGroupSerNo == groupId &&\r\n f.RoomFeatureTypeSerNo != \"ADJ\" &&\r\n f.RoomFeatureTypeSerNo != \"INCN\" &&\r\n f.RoomFeatureTypeSerNo != \"ARM\"\r\n ).map((o) => (\r\n handleCheckboxClick(e)}\r\n checked={\r\n finalResponse.filter(\r\n (x) => x.RoomFeatureSerNo == o.RoomFeatureSerNo\r\n ).length > 0\r\n ? true\r\n : false\r\n }\r\n >\r\n {o.Name}\r\n \r\n ))\r\n )}\r\n
    \r\n ) : (\r\n <>\r\n )}\r\n
    \r\n
    \r\n {/* ) : (\r\n <>\r\n )} */}\r\n
    \r\n
    \r\n \r\n\r\n {RoomFeaturesConfirmPopupShow == true ? (\r\n \r\n
    \r\n
    \r\n
    \r\n

    Room Features

    \r\n
    \r\n {/*
    \r\n Reset\r\n Apply\r\n
    */}\r\n
    \r\n
    \r\n
    \r\n

    \r\n Would you like to apply the changes in features to the guest\r\n profile?\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Features Removed\r\n
    \r\n
    \r\n {\r\n handleAllChecekdRemoved(ischecked);\r\n }}\r\n checked={\r\n RemoveRoomFeatureProfileData.length == 0 ? true : false\r\n }\r\n >\r\n All\r\n \r\n\r\n {RemoveRoomFeatureProfileData &&\r\n RemoveRoomFeatureProfileData.map((r) => (\r\n r1.RoomFeatureSerNo == r.RoomFeatureSerNo\r\n )\r\n ? false\r\n : true\r\n }\r\n onClick={(e) => handleProfileChecked(e)}\r\n >\r\n {r.DisplayName}\r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n Features Added\r\n
    \r\n
    \r\n {\r\n handleAllChecekd(ischecked);\r\n }}\r\n checked={RoomFeatureProfileData.length > 0 ? true : false}\r\n >\r\n All\r\n \r\n {RoomFeatureProfileData.map((f) => (\r\n r.RoomFeatureSerNo == f.RoomFeatureSerNo\r\n )\r\n ? true\r\n : false\r\n }\r\n onClick={(e) => handleProfileChecked(e)}\r\n >\r\n {f.DisplayName}\r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Update Profile\r\n \r\n \r\n Don't Update\r\n \r\n
    \r\n
    \r\n \r\n ) : null}\r\n \r\n );\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnLoader,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnSwitch\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from 'react-redux';\r\nimport { GuestModalPopup } from \"./guestModalPopup\";\r\nimport { AddProfileMaster } from \"../../../../services/reservationService\";\r\n\r\nexport function AddCompanyModalPopup(props) {\r\n\r\n //#region State variable\r\n\r\n const currUser = useSelector(currentUser);\r\n const [showGuestModal, setShowGuestModal] = useState(false);\r\n const [profileObj, setProfileObj] = useState({\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"ProfileType\": props.para.ProfileType,\r\n \"TitleSerNo\": 0,\r\n \"FirstName\": \"\",\r\n \"MiddleName\": \"\",\r\n \"LastName\": \"\",\r\n \"FullName\": \"\",\r\n \"GSTNo\": \"\",\r\n \"IATANo\": \"\",\r\n \"Mode\": \"ADD\",\r\n \"ProfileCommunication\": {\r\n \"CommunicationTypeSerNo\": 0,\r\n \"Mobile\": \"\",\r\n \"Email\": \"\",\r\n \"Landline\": \"\",\r\n \"IsPrimary\": true\r\n },\r\n \"ProfileAddress\": {\r\n \"ProfileAddressTypeSerNo\": 0,\r\n \"CountrySerNo\": 0,\r\n \"StateSerNo\": 0,\r\n \"CitySerNo\": 0,\r\n \"PostCode\": \"\",\r\n \"Street\": \"\",\r\n \"IsPrimary\": true\r\n },\r\n \"ProfileContactDetail\": {\r\n \"ContactProfileSerNo\": 0,\r\n \"Designation\": \"\",\r\n \"IsPrimary\": true,\r\n \"Name\": \"\"\r\n }\r\n });\r\n //#endregion State variable\r\n const selectData = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n //#region Events\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n }\r\n const handleOnGuestSelection = (g) => {\r\n let temp = profileObj;\r\n temp.ProfileContactDetail.ContactProfileSerNo = g.ProfileSerNo;\r\n temp.ProfileContactDetail.Name = g.GuestName;\r\n temp.ProfileCommunication.Mobile = g.Mobile;\r\n temp.ProfileCommunication.Email = g.Email;\r\n setProfileObj(temp);\r\n setShowGuestModal(false);\r\n }\r\n const handleOnSaveClick = () => {\r\n AddProfileMaster(profileObj).then(d => {\r\n if (d.data.result.Code == \"200\") {\r\n alert(\"Profile is created successfully.\")\r\n if (props.OnSave != undefined) {\r\n props.OnSave(d.data.result.ReturnValue);\r\n }\r\n } else {\r\n alert(\"Something went wrong, please try again later.\")\r\n }\r\n })\r\n }\r\n //#endregion Events\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n

    Add {props.para.ProfileType == \"CO\" ? \"Company\" : \"Agent\"}

    \r\n
    \r\n
    \r\n \r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { setProfileObj(prev => ({ ...prev, FullName: v })) }} className=\"form-group\">{props.para.ProfileType == \"CO\" ? \"Company\" : \"Agent\"} Name*\r\n
    \r\n console.log(item, name)}\r\n >\r\n \r\n
    \r\n
    \r\n Identification No.\r\n
    \r\n
    \r\n
    \r\n Primary\r\n console.log(v)} id=\"Primary\" value={false}>\r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n \r\n
    \r\n
    \r\n Identification No.\r\n
    \r\n
    \r\n
    \r\n Primary\r\n console.log(v)} id=\"Primary\" value={false}>\r\n
    \r\n
    \r\n {/* { setProfileObj(prev => ({ ...prev, GSTNo: v })) }} className=\"form-group\">GST Number */}\r\n {/* { setProfileObj(prev => ({ ...prev, IATANo: v })) }} className=\"form-group\">IATA No */}\r\n setShowGuestModal(true)} className=\"form-group\">Contact Name\r\n Mobile\r\n Email\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n showGuestModal ?\r\n setShowGuestModal(false)}\r\n OnSelect={handleOnGuestSelection}\r\n >\r\n : null\r\n }\r\n \r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport closeIcon from \"../../../../assets/images/model-cls-btn.png\";\r\nimport {\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnActionButton,\r\n InnPlainButton,\r\n InnTextbox,\r\n InnLoader,\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { AddCompanyModalPopup } from \"./addCompanyModalPopup\";\r\nimport {\r\n GetAgentCompanyProfileByFilter,\r\n GetAgentCompanyProfileByFilterWithNo,\r\n} from \"../../../../services/reservationService\";\r\n\r\nexport function CompanyModalPopup(props) {\r\n const currUser = useSelector(currentUser);\r\n const [isActive, setActive] = useState(false);\r\n const [showCompanyAdvancedSearchModal, setShowCompanyAdvancedSearchModal] =\r\n useState(true);\r\n const [showAddCompany, setShowAddCompany] = useState(false);\r\n const [page, setPage] = useState(1);\r\n const [pageCount, setPageCount] = useState(1);\r\n const [companyData, setCompanyData] = useState([]);\r\n const [selectedCompany, setSelectedCompany] = useState({});\r\n const [filCompanyPara, setFilCompanyPara] = useState({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PageNumber: page,\r\n ProfileType: props.type,\r\n AgentCompanyName: \"\",\r\n CityName: \"\",\r\n GSTNo: \"\",\r\n ARID: \"\",\r\n });\r\n\r\n const fillCompany = () => {\r\n setActive(true);\r\n GetAgentCompanyProfileByFilter(filCompanyPara).then((d) => {\r\n setActive(false);\r\n setCompanyData(d.data);\r\n\r\n let pCount = 0;\r\n let pModuler;\r\n try {\r\n pCount = parseInt(parseInt(d.data[0].Total) / 20);\r\n try {\r\n pModuler = parseInt(parseInt(d.data[0].Total) % 20);\r\n if (pModuler > 0) pCount = pCount + 1;\r\n } catch (e1) {\r\n console.log(\"error e1\", e1);\r\n }\r\n setPageCount(pCount);\r\n } catch (e) {\r\n setPageCount(1);\r\n console.log(\"error e\", e);\r\n }\r\n });\r\n };\r\n\r\n const handleApplyClick = () => {\r\n if (page === 1) fillCompany();\r\n else {\r\n setFilCompanyPara((prev) => ({ ...prev, PageNumber: 1 }));\r\n setPage(1);\r\n }\r\n setShowCompanyAdvancedSearchModal(!showCompanyAdvancedSearchModal);\r\n setSelectedCompany({});\r\n };\r\n\r\n const getCompanyProfile = (e) => {\r\n GetAgentCompanyProfileByFilterWithNo(\r\n currUser.ClientSerNo,\r\n e.target.id,\r\n (props.para?.PropertySerNo == undefined ? 0 : props.para?.PropertySerNo),\r\n (props.para?.FromDate == undefined ? \"1-jan-2001\" : props.para?.FromDate),\r\n (props.para?.ToDate == undefined ? \"2-jan-2001\" : props.para?.ToDate)\r\n ).then((d) => {\r\n setSelectedCompany(d.data);\r\n console.log(\"selected company \", d.data);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n fillCompany();\r\n }, [page]);\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose === undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.handleOnclose(false);\r\n }\r\n };\r\n const handleReset = () => {\r\n setFilCompanyPara({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PageNumber: 1,\r\n ProfileType: props.type,\r\n AgentCompanyName: \"\",\r\n CityName: \"\",\r\n GSTNo: \"\",\r\n ARID: \"\",\r\n });\r\n };\r\n\r\n const handleOnSelect = () => {\r\n if (props.OnSelect == undefined) console.log(\"OnSelect is not defined\");\r\n else props.OnSelect(selectedCompany);\r\n };\r\n\r\n const handleOnCompanySave = (ProfileSerNo) => {\r\n GetAgentCompanyProfileByFilterWithNo(\r\n currUser.ClientSerNo,\r\n parseInt(ProfileSerNo),\r\n (props.para?.PropertySerNo == undefined ? 0 : props.para?.PropertySerNo),\r\n (props.para?.FromDate == undefined ? \"1-jan-2001\" : props.para?.FromDate),\r\n (props.para?.ToDate == undefined ? \"2-jan-2001\" : props.para?.ToDate)\r\n ).then((d) => {\r\n setSelectedCompany(d.data);\r\n let newCompany = {\r\n ProfileSerNo: d.data.ProfileSerNo,\r\n FullName: d.data.CompanyName,\r\n CityName: \"\",\r\n Total: 0,\r\n GSTNo: d.data.GSTNo,\r\n };\r\n let tempCompany = [newCompany, ...companyData];\r\n setCompanyData(tempCompany);\r\n });\r\n setShowAddCompany(false);\r\n };\r\n\r\n return (\r\n {\r\n console.log(\"save clicked\");\r\n }}\r\n Onclose={handleOnclose}\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n

    {props.type == \"CO\" ? \"Company\" : \"Agent\"}

    \r\n
    \r\n
    \r\n \r\n setShowCompanyAdvancedSearchModal(\r\n !showCompanyAdvancedSearchModal\r\n )\r\n }\r\n >\r\n \r\n
    \r\n {\r\n props.para?.IsCompanyCalling != undefined && props.para.IsCompanyCalling ?\r\n <> :\r\n { setShowAddCompany(true); setShowCompanyAdvancedSearchModal(false) }}>\r\n Add New\r\n \r\n }\r\n
    \r\n
    \r\n \r\n
    \r\n {showCompanyAdvancedSearchModal ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Filters

    \r\n
    \r\n
    \r\n Reset\r\n \r\n Apply\r\n \r\n \r\n setShowCompanyAdvancedSearchModal(\r\n !showCompanyAdvancedSearchModal\r\n )\r\n }\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n setFilCompanyPara((prev) => ({\r\n ...prev,\r\n AgentCompanyName: v,\r\n }))\r\n }\r\n >\r\n Company Name\r\n \r\n
    \r\n
    \r\n \r\n setFilCompanyPara((prev) => ({ ...prev, GSTNo: v }))\r\n }\r\n >\r\n GST No.\r\n \r\n
    \r\n
    \r\n \r\n setFilCompanyPara((prev) => ({ ...prev, ARID: v }))\r\n }\r\n >\r\n AR ID\r\n \r\n
    \r\n
    \r\n \r\n setFilCompanyPara((prev) => ({ ...prev, CityName: v }))\r\n }\r\n >\r\n City\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n RESULT FOUND:{\" \"}\r\n {companyData.length > 0 ? companyData[0].Total : 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 setFilCompanyPara((prev) => ({ ...prev, PageNumber: v }));\r\n setPage(v);\r\n }}\r\n style={{ float: \"left\" }}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n {selectedCompany.CompanyName}\r\n \r\n GST : {selectedCompany.GSTNo}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {selectedCompany.Street}, {selectedCompany.CityName},{\" \"}\r\n {selectedCompany.StateName} ({selectedCompany.Country})\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Sales Account Holder Name\r\n
    \r\n
    Mr. Ashish Singh
    \r\n
    \r\n
    \r\n
    Company Contact
    \r\n
    {selectedCompany.ContactName}
    \r\n
    \r\n
    \r\n
    AR ID
    \r\n
    {selectedCompany.ARID}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Select & Continue\r\n \r\n
    \r\n
    \r\n
    \r\n {showAddCompany ? (\r\n setShowAddCompany(false)}\r\n OnSave={handleOnCompanySave}\r\n >\r\n ) : null}\r\n \r\n \r\n );\r\n}\r\n","export default __webpack_public_path__ + \"static/media/jpg-file-icon.240e5a5e.svg\";","\r\nexport const ModifiedRateDetailData = (rateCodeDetails) => {\r\n\r\n let orgData = rateCodeDetails;\r\n let o = [];\r\n orgData.TaxDetails.map(n => {\r\n let o1 = o.find(x => x.TransactionSerNo == n.TransactionSerNo);\r\n if (o1 == undefined) {\r\n o.push({ TransactionSerNo: n.TransactionSerNo, Name: n.Name });\r\n }\r\n });\r\n o.map(n => {\r\n let RMTotalTax = orgData.TaxDetails.filter(x => x.TransactionSerNo == n.TransactionSerNo && x.Type == \"RM\").reduce((t, v) => t = t + parseFloat(v.Amount), 0);\r\n let PITotalTax = orgData.TaxDetails.filter(x => x.TransactionSerNo == n.TransactionSerNo && x.Type == \"PI\").reduce((t, v) => t = t + parseFloat(v.Amount), 0);\r\n n.Taxes = (RMTotalTax + (PITotalTax)).toFixed(2);\r\n })\r\n orgData.ChargeDetails = o;\r\n\r\n let NewPackageDetails = [];\r\n orgData.PackageDetails.map(np => {\r\n let n1 = NewPackageDetails.find(x => x.PackageSerNo == np.PackageSerNo && x.RateSerNo == np.RateSerNo);\r\n if (n1 == undefined) {\r\n\r\n // let calculatedQty = 1;\r\n // if (np.CalculationRuleSerNo == \"PP\") {\r\n // calculatedQty = parseInt(np.Adult) + parseInt(np.Child);\r\n // } else if (np.CalculationRuleSerNo == \"PA\") {\r\n // calculatedQty = parseInt(np.Adult);\r\n // } else if (np.CalculationRuleSerNo == \"PC\") {\r\n // calculatedQty = parseInt(np.Child);\r\n // } else {\r\n // calculatedQty = 1;\r\n // }\r\n\r\n NewPackageDetails.push({\r\n RateSerNo: np.RateSerNo, PackageSerNo: np.PackageSerNo, Name: np.Name,\r\n PackagePrice: np.PackagePrice, CalculationRule: np.CalculationRule,\r\n PostingRhythm: np.PostingRhythm, PostingType: np.PostingType,\r\n Component: (np.IsTaxInclusive ? np.PackagePrice + \" Incl.Tax\" : np.PackagePrice + \" + Tax\"),\r\n Total: (parseFloat(np.PackagePrice) + parseFloat(np.Taxes)).toFixed(2),\r\n Person: np.Adult + \"A, \" + np.Child + \"C\", Qty: \"1\", Action: \"Included\",\r\n });\r\n }\r\n })\r\n\r\n NewPackageDetails.map(np => {\r\n np.Qty = orgData.PackageDetails.filter(x => x.RateSerNo == np.RateSerNo && x.PackageSerNo == np.PackageSerNo).length;\r\n np.Nights = orgData.PackageDetails.filter(x => x.RateSerNo == np.RateSerNo && x.PackageSerNo == np.PackageSerNo).length;\r\n let pkgTotal = orgData.PackageDetails.filter(x => x.PackageSerNo == np.PackageSerNo).reduce((t, v) => t = t + parseFloat(v.PackagePrice), 0);\r\n np.TotalPackagePrice = pkgTotal.toFixed(2);\r\n })\r\n\r\n orgData.NewPackageDetails = NewPackageDetails;\r\n\r\n orgData.RateCodeDetails.map(d => {\r\n const totalPackage = orgData.PackageDetails.filter(x => x.Date == d.Date).reduce((t, v) => t = t + parseFloat(v.PackagePrice), 0);\r\n const totalPackageTaxes = orgData.PackageDetails.filter(x => x.Date == d.Date).reduce((t, v) => t = t + parseFloat(v.Taxes), 0);\r\n d.PackagePrice = (totalPackage).toFixed(2);\r\n d.SubTotal = (parseFloat(d.RoomRate) + parseFloat(totalPackage)).toFixed(2);\r\n d.TotalTaxes = (parseFloat(d.Taxes) + parseFloat(totalPackageTaxes)).toFixed(2);\r\n d.Amount = (parseFloat(d.SubTotal) + (d.IsTaxInclusive ? 0 : parseFloat(d.TotalTaxes))).toFixed(2);\r\n })\r\n \r\n return orgData;\r\n}","export default __webpack_public_path__ + \"static/media/settings-icon.480fb1b2.svg\";","import React from \"react\";\r\nexport default function InnLineBar(props) {\r\n const currWidthPercentage = (100 * props.checkedIn) / props.total;\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","export default __webpack_public_path__ + \"static/media/inside-left-menu-arrow.60625ce5.svg\";","export default __webpack_public_path__ + \"static/media/link-icon.b38907f2.svg\";","import React from \"react\";\r\nimport \"../assets/css/bootstrap-grid.css\";\r\nimport \"../assets/css/innkeyPMS.css\";\r\n\r\nexport function InnPrimaryButton(props) {\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n}\r\n\r\nexport function InnActionButton(props) {\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n}\r\n\r\nexport function InnPlainButton(props) {\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n}\r\n","import { createBrowserHistory } from \"history\";\r\n\r\nexport const history = createBrowserHistory();\r\n","import React from 'react';\r\nimport { Route,Redirect } from 'react-router-dom';\r\n\r\nexport const PrivateRoute = ( { component: Component,IsSignIn, ...rest }) => (\r\n \r\n { \r\n if(!IsSignIn){ \r\n return \r\n }\r\n return \r\n }} />\r\n)\r\n\r\n","import React from 'react';\r\nimport { useState } from 'react';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { setModule } from '../../reducer/authSlice';\r\nimport { useDispatch,useSelector } from \"react-redux\";\r\n\r\n\r\nexport function ModuleMenu(props) {\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","import React from 'react';\r\nimport { InnActionButton, InnPrimaryButton } from '../../component';\r\n\r\nexport function NotificationDropdown(props) {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Notification

    \r\n
    \r\n
    Clear all
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    NEW

    \r\n
    \r\n
    2
    \r\n
    \r\n
    \r\n
    \r\n

    New ticket added

    \r\n

    Some text show here

    \r\n
    \r\n
    5 min
    \r\n
    \r\n
    \r\n
    \r\n

    New ticket added

    \r\n

    Some text show here

    \r\n
    \r\n
    10 min
    \r\n
    \r\n
    \r\n
    \r\n
    EARLIER
    \r\n
    \r\n
    \r\n

    Discounts

    \r\n
    1 hour
    \r\n
    \r\n

    Leena (RN 502) want 20% extra discounts.

    \r\n
    \r\n Cancel\r\n Approve\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n

    New Login

    \r\n
    1 hour
    \r\n \r\n
    \r\n

    John currently login

    \r\n
    \r\n
    \r\n
    \r\n

    Booking Cancel

    \r\n
    1 hour
    \r\n
    \r\n

    Some text description show here

    \r\n \r\n
    \r\n
    \r\n
    \r\n

    New Booking

    \r\n
    1 hour
    \r\n
    \r\n

    Some text show here

    \r\n \r\n
    \r\n
    \r\n
    \r\n
    Show all notifications
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\n//export default NotificationDropdown;","import React from 'react';\r\nexport function SettingPageMenu(props) {\r\n\r\n\r\n return (\r\n
    \r\n
      \r\n
    • Documentation/help
    • \r\n
    • What's New
    • \r\n
    • Settings
    • \r\n
    • Quick Action Panel
    • \r\n
    \r\n
    \r\n\r\n );\r\n}\r\n","export default __webpack_public_path__ + \"static/media/close-menu.d422905f.svg\";","export default \"data:image/png;base64,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\"","import React, { useRef, useEffect } from \"react\";\r\n\r\n//import { toggleMenu, cGlobal } from \"../reducer/commonSlice\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { toggleMenu } from \"../reducer/commonSlice\";\r\n\r\nfunction TempNavigation(props) {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n\r\n\r\n return (\r\n
    \r\n\r\n\r\n \r\n
    Dashboard
    \r\n \r\n
    Reservation Masters
    \r\n\r\n \r\n
    MMS Masters
    \r\n \r\n
    Laundry Masters
    \r\n \r\n\r\n\r\n {/*
  • \r\n {\r\n history.push(\"/TempDashboardDrag\");\r\n dispatch(toggleMenu(false));\r\n }}>Temp Dashboard Drag\r\n
  • */}\r\n\r\n\r\n\r\n
    POS Masters
    \r\n \r\n\r\n
    Front Deck Module
    \r\n \r\n\r\n
    \r\n );\r\n}\r\n\r\nexport default TempNavigation;","import React, { useState, useRef, useEffect } from \"react\";\r\n//import Sidenav from \"./\";\r\nimport closemenu from \"../../assets/images/close-menu.svg\";\r\nimport innkeypmslogo from \"../../assets/images/innkeypmslogo.png\";\r\nimport deskmgt from \"../../assets/images/desk-mgt-icon-white.png\";\r\nimport menubackarrow from \"../../assets/images/left-arrow.png\";\r\nimport { toggleMenu, cGlobal } from \"../../reducer/commonSlice\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { GetMasters } from \"../../services/generalService\";\r\nimport { currentUser, setModule } from \"../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport TempNavigation from \"../../temp/temp-navigation\";\r\nimport { GetPropertyParameterByKeys } from \"../../services/reservationService\";\r\nimport moment from \"moment\";\r\n\r\nexport const LeftNavigation = (props) => {\r\n //#region Local Variable \r\n const wrapperRef = useRef(null);\r\n const dispatch = useDispatch();\r\n\r\n const [submenuwid, setSubWid] = useState(\"0%\");\r\n\r\n const openSubSidenav = () => {\r\n setSubWid(\"240px\");\r\n };\r\n const closeSubSidenav = () => {\r\n setSubWid(\"0%\");\r\n };\r\n const history = useHistory();\r\n\r\n const currUser = useSelector(currentUser);\r\n //#endregion\r\n //#region State variable\r\n const [pageName, setPageName] = useState([]);\r\n const [tempPageName, setTempPageName] = useState([]);\r\n const propertyParameters = ['BusinessDate'];\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n //#endregion\r\n\r\n //#region useEffect \r\n useEffect(() => {\r\n document.addEventListener(\"click\", handleClickOuside, false);\r\n return () => {\r\n //document.removeEventListener(\"click\", handleClickOuside, false);\r\n };\r\n }, [submenuwid]);\r\n\r\n useEffect(() => {\r\n GetMasters(currUser.CurrentModule, \"T\").then(d => {\r\n //setPageName(d.data);\r\n let tempObj = [];\r\n let tempObj2 = [];\r\n d.data.map(da => {\r\n if (da.MasterSerNo == 5 || da.MasterSerNo == 32 || da.MasterSerNo == 34 || da.MasterSerNo == 40 || da.MasterSerNo == 44) {\r\n tempObj.push(da);\r\n } else {\r\n if (da.MasterSerNo != 6)\r\n tempObj2.push(da);\r\n }\r\n });\r\n setPageName(tempObj);\r\n setTempPageName(tempObj2);\r\n console.log(\"menu \", d.data, tempObj, tempObj2);\r\n });\r\n GetPropertyParameterByKeys(currUser.ClientSerNo, currUser.PropertySerNo, propertyParameters).then(d => {\r\n console.log(d.data);\r\n let obj = d.data.find(x => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(d.data[0].value);\r\n }\r\n });\r\n }, []);\r\n\r\n //#endregion\r\n\r\n //#region Event\r\n // This Function Called When outside click Left sub sidebar is close or hide\r\n const handleClickOuside = (e) => {\r\n if (wrapperRef.current && !wrapperRef.current.contains(e.target)) {\r\n setSubWid(\"0%\");\r\n }\r\n };\r\n // //outside click event of left sidebar close or hide\r\n // const handleLeftMenuOutsideClick = (e) => {\r\n // if (wrapperRef.current && !wrapperRef.current.contains(e.target)) {\r\n // setmenuWid(\"0%\");\r\n // }\r\n // };\r\n //#endregion\r\n console.log(props.modulemenu, pageName);\r\n\r\n const addDays = (date, days) => {\r\n var result = new Date(date);\r\n result.setDate(result.getDate() + days);\r\n return result;\r\n };\r\n\r\n return (\r\n \r\n {\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n
    \r\n \r\n
    \r\n
    \r\n
      \r\n
    • \r\n {\r\n pageName.map(d => {\r\n return (\r\n d.Name == \"SubMenu\" ?\r\n {\r\n console.log(d);\r\n openSubSidenav();\r\n }}>{d.DisplayName}\r\n :\r\n <>\r\n );\r\n }\r\n\r\n )\r\n }\r\n
    • \r\n {props.modulemenu != undefined && props.modulemenu == \"Reservations\" ?\r\n <>\r\n
      \r\n \r\n \r\n {\" \"}\r\n Reservations\r\n
      \r\n\r\n
    • \r\n {\r\n console.log(\"Manage Block View click\");\r\n history.push(\"/ReservationBlockListPage\");\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Manage Block\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"Manage Reservation View click\");\r\n history.push({\r\n pathname: \"/ReservationListPage\",\r\n state: {\r\n filterObj: {\r\n FromDate: moment(businessDate).format(\"DD-MMM-YY\"),\r\n ToDate: moment(addDays(businessDate, 90)).format(\"DD-MMM-YY\"),\r\n DtType: \"STAY\",\r\n BookingNo: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n //ReservationStatus: [\"ARD\",\"INH\",'DOT', 'DIN', 'COT'],\r\n ReservationStatus: \"ARD,INH,DOT,DIN,COT\",\r\n IsEarlyDeparture: null,\r\n Adult: 0,\r\n Child: 0,\r\n RoomTypeSerNo: 0,\r\n RateSerNo: 0,\r\n ReservationTypeSerNo: 0,\r\n CompanyProfileSerNo: 0,\r\n AgentProfileSerNo: 0,\r\n BookingReferenceNo: \"\",\r\n MembershipNo: \"\",\r\n VIPLevelSerNo: 0,\r\n IsIncognitoName: null,\r\n NightsFrom: 0,\r\n NightsTo: 0,\r\n strMemberShipLevel: \"\",\r\n BlockSerNo: \"\",\r\n PartyNo: \"\",\r\n RoomSerNo: 0,\r\n IsShowBlockRoomsOnly: null,\r\n Mainmenu: \"Manage Reservation\"\r\n }\r\n }\r\n });\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Manage Reservation\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"Cancellations View click\");\r\n history.push({\r\n pathname: \"/ReservationCancelList\",\r\n state: {\r\n filterObj: {\r\n SortCol: \"ArrivalDate\",\r\n SortType: \"asc\",\r\n DtType: \"CANC\",\r\n FromDate: businessDate,\r\n ToDate: businessDate,\r\n RoomTypeSerNo: \"\",\r\n RateSerNo: 0,\r\n CompanyProfileSerNo: 0,\r\n AgentProfileSerNo: 0,\r\n BookingNo: \"\",\r\n BookingReferenceNo: \"\",\r\n MembershipNo: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n VIPLevelSerNo: 0,\r\n strMemberShipLevel: \"\",\r\n CanReservationStatus: \"DP,\",\r\n BlockName: \"\",\r\n RoomSerNo: 0,\r\n IsSameDayCancel: false,\r\n IsSameDayArrivalCancel: false,\r\n ReservationStatus: \"\",\r\n Mainmenu: \"Cancellation\"\r\n },\r\n },\r\n });\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Cancellations / No Show List\r\n \r\n
    • \r\n
    • \r\n \r\n Manage Reservation Traces\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"Manage Guest Profile View click\");\r\n history.push(\"/GuestProfileMaster\");\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Manage Guest Profile\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"Manage Company Profile View click\");\r\n history.push(\"/CompanyProfileList\");\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Manage Company Profile\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\" Manage Travel Agent Profile View click\");\r\n history.push(\"/CompanyProfileList\");\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Manage Travel Agent Profile\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"Operational Dashboard View click\");\r\n history.push({\r\n pathname: \"/ReservationDashboard\",\r\n state: {\r\n filterObj: {\r\n Mainmenu: \"Manage Reservation\",\r\n }\r\n }\r\n });\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Operational Dashboard\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"OTA Log click\");\r\n history.push({\r\n pathname: \"/OTALog\",\r\n });\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n OTA Log\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"Masters View click\");\r\n history.push(\"/GSTeinvoice\");\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n GST e Invoice\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"Masters View click\");\r\n history.push(\"/Master\");\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Masters\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"Report View click\");\r\n history.push({\r\n pathname: \"/ReservationReport\",\r\n state: {\r\n filterObj: {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n FromDate: moment(new Date(businessDate)).format('DD-MMM-YYYY'),\r\n ToDate: moment(new Date(businessDate)).format('DD-MMM-YYYY'),\r\n\r\n }\r\n }\r\n });\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Operational Reports\r\n \r\n
    • \r\n
    • \r\n \r\n Management Query\r\n \r\n
    • \r\n \r\n \r\n : <>}\r\n {props.modulemenu != undefined && props.modulemenu == \"Front Desk\" ?\r\n <>\r\n
      \r\n \r\n \r\n {\" \"}\r\n Front Desk\r\n
      \r\n\r\n
    • \r\n {\r\n console.log(\"Manage In house List\");\r\n history.push({\r\n pathname: \"/ReservationListPage\",\r\n state: {\r\n filterObj: {\r\n FromDate: moment(businessDate).format(\"DD-MMM-YY\"),\r\n ToDate: moment(businessDate).format(\"DD-MMM-YY\"),\r\n DtType: \"STAY\",\r\n BookingNo: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n //ReservationStatus: [\"ARD\",\"INH\",'DOT', 'DIN', 'COT'],\r\n ReservationStatus: \"INH\",\r\n IsEarlyDeparture: null,\r\n Adult: 0,\r\n Child: 0,\r\n RoomTypeSerNo: 0,\r\n RateSerNo: 0,\r\n ReservationTypeSerNo: 0,\r\n CompanyProfileSerNo: 0,\r\n AgentProfileSerNo: 0,\r\n BookingReferenceNo: \"\",\r\n MembershipNo: \"\",\r\n VIPLevelSerNo: 0,\r\n IsIncognitoName: null,\r\n NightsFrom: 0,\r\n NightsTo: 0,\r\n strMemberShipLevel: \"\",\r\n BlockSerNo: \"\",\r\n PartyNo: \"\",\r\n RoomSerNo: 0,\r\n IsShowBlockRoomsOnly: null,\r\n Mainmenu: \"Manage In-House List\"\r\n }\r\n }\r\n });\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Manage In House List\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"Manage Arrivals View click\");\r\n history.push({\r\n pathname: \"/ReservationArrivalList\",\r\n state: {\r\n filterObj: {\r\n ArrivalDate: moment(new Date(businessDate)).format(\"DD-MMM-YYYY\"),\r\n CompanyProfileSerNo: 0,\r\n AgentProfileSerNo: 0,\r\n IsIncognito: null,\r\n strVIPStatus: \"\",\r\n strMemberShipLevel: \"\",\r\n strRoomType: \"\",\r\n SameDayReservationNArrival: null,\r\n BookingNo: \"\",\r\n BookingReferenceNo: \"\",\r\n IsArrivalOnSameDay: null,\r\n ETAFrom: \"\",\r\n ETATo: \"\",\r\n NightsFrom: 0,\r\n NightsTo: 0,\r\n strHkStatusSerNo: \"\",\r\n strFloorSerNo: \"\",\r\n IsNoInfo: null,\r\n IsEarlyArrival: null,\r\n IsLateArrival: null,\r\n RateSerNo: 0,\r\n IsUnassignRoom: null,\r\n IsWalkIn: null,\r\n SelectReservation: \"\",\r\n strReservationStatus: \"\",\r\n RoomFeatureSerNo: \"\",\r\n BlockSerNo: null,\r\n RoomFeatureValueSerNo: \"\",\r\n IsAdvanceCheckin: null,\r\n IsCancelCheckin: null,\r\n AdvanceCheckInClean: null,\r\n AdvanceCheckInInspected: null,\r\n AdvanceCheckInUnassign: null,\r\n AdvanceCheckInDirty: null,\r\n AdvanceCheckInDueOut: null,\r\n AdvanceCheckInOutofService: null,\r\n IsPreReg: null,\r\n IsVipStatus: null,\r\n },\r\n },\r\n });\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Manage Arrivals\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"Manage Departures View click\");\r\n history.push({\r\n pathname: \"/ReservationDepartureList\",\r\n state: {\r\n filterObj: {\r\n DepartureDate: moment(new Date(businessDate)).format(\"DD-MMM-YYYY\"), //date\r\n FirstName: \"\",\r\n LastName: \"\",\r\n ETDFrom: null,\r\n ETDTo: null,\r\n IsOpenFolio: null,\r\n strMemberShipLevel: \"\",\r\n strFloorSerNo: \"\",\r\n IsLateCheckout: null,\r\n IsEarlyCheckout: null,\r\n BlockSerNo: 0,\r\n IsReinstated: null,\r\n IsNoResponse: null,\r\n IsWithLuggage: null,\r\n IsNoLuggage: null,\r\n IsLocked: null,\r\n IsNoInfo: null,\r\n CompanyProfileSerNo: null,\r\n AgentProfileSerNo: null,\r\n IsLoaded: false,\r\n },\r\n userId: \"1201\",\r\n password: \"123\",\r\n },\r\n });\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Manage Departures\r\n \r\n
    • \r\n
    • \r\n \r\n Manage Open Folios\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"Manage Pay Masters Click\");\r\n history.push({\r\n pathname: \"/ReservationListPage\",\r\n state: {\r\n filterObj: {\r\n FromDate: moment(businessDate).format(\"DD-MMM-YY\"),\r\n ToDate: moment(businessDate).format(\"DD-MMM-YY\"),\r\n DtType: \"STAY\",\r\n BookingNo: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n //ReservationStatus: [\"ARD\",\"INH\",'DOT', 'DIN', 'COT'],\r\n ReservationStatus: \"ARD,INH,DOT,DIN,COT,NSH,CAN\",\r\n IsEarlyDeparture: null,\r\n Adult: 0,\r\n Child: 0,\r\n RoomTypeSerNo: 0,\r\n RateSerNo: 0,\r\n ReservationTypeSerNo: 0,\r\n CompanyProfileSerNo: 0,\r\n AgentProfileSerNo: 0,\r\n BookingReferenceNo: \"\",\r\n MembershipNo: \"\",\r\n VIPLevelSerNo: 0,\r\n IsIncognitoName: null,\r\n NightsFrom: 0,\r\n NightsTo: 0,\r\n strMemberShipLevel: \"\",\r\n BlockSerNo: \"\",\r\n PartyNo: \"\",\r\n RoomSerNo: 0,\r\n IsShowBlockRoomsOnly: null\r\n }\r\n }\r\n });\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Manage Pay Masters\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"Manage Guest Profile View click\");\r\n history.push(\"/GuestProfileMaster\");\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Manage Guest Profile\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"Manage Company Profile View click\");\r\n history.push(\"/CompanyProfileList\");\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Manage Company Profile\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\" Manage Travel Agent Profile View click\");\r\n history.push(\"/CompanyProfileList\");\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Manage Travel Agent Profile\r\n \r\n
    • \r\n \r\n
    • \r\n {\r\n console.log(\"Operational Dashboard View click\");\r\n history.push({\r\n pathname: \"/ReservationDashboard\",\r\n state: {\r\n filterObj: {\r\n Mainmenu: \"Manage In-House List\",\r\n }\r\n }\r\n });\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Operational Dashboard\r\n \r\n
    • \r\n \r\n
    • \r\n {\r\n history.push(\"/NightAuditProcess\");\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Night Audit Process\r\n \r\n
    • \r\n
    • \r\n {\r\n history.push(\"/CashBook\");\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Cashbook\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"Masters View click\");\r\n history.push(\"/Master\");\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Masters\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"Report View click\");\r\n history.push({\r\n pathname: \"/ReservationReport\",\r\n state: {\r\n filterObj: {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n FromDate: moment(new Date(businessDate)).format('DD-MMM-YYYY'),\r\n ToDate: moment(new Date(businessDate)).format('DD-MMM-YYYY'),\r\n }\r\n }\r\n });\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Operational Reports\r\n \r\n
    • \r\n
    • \r\n \r\n Management Query\r\n \r\n
    • \r\n \r\n :\r\n <>\r\n }\r\n {props.modulemenu != undefined && props.modulemenu == \"Point of Sale\" ?\r\n <>\r\n
      \r\n \r\n \r\n {\" \"}\r\n Point of Sale\r\n
      \r\n \r\n
    • \r\n {\r\n history.push({\r\n pathname: \"/POSBilling\"\r\n });\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n POS Billing\r\n \r\n {/* {\r\n history.push({\r\n pathname: \"/Minibar\"\r\n });\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Minibar\r\n */}\r\n {\r\n history.push({\r\n pathname: \"/CheckHistory\"\r\n });\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Check History\r\n \r\n
    • \r\n
    • \r\n {\r\n history.push(\"/CashBook\");\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Cashbook\r\n \r\n
    • \r\n
    • \r\n {\r\n history.push(\"/Banquet\");\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Banquet\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"Masters View click\");\r\n history.push(\"/Master\");\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Masters\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"Report View click\");\r\n history.push(\"/POSReport\");\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Operational Reports\r\n \r\n
    • \r\n
    • \r\n \r\n Management Query\r\n \r\n
    • \r\n \r\n :\r\n <>\r\n }\r\n {/* {props.modulemenu != undefined && props.modulemenu == \"BanquetManagement\" ?\r\n <>\r\n
      \r\n \r\n \r\n {\" \"}\r\n Banquet Management\r\n
      \r\n
    • \r\n {\r\n history.push(\"/Banquet\");\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Banquet\r\n \r\n
    • \r\n \r\n :\r\n <>\r\n } */}\r\n {props.modulemenu != undefined && props.modulemenu == \"Housekeeping\" ?\r\n <>\r\n
      \r\n \r\n \r\n {\" \"}\r\n Housekeeping\r\n
      \r\n
    • \r\n {\r\n console.log(\"HKManagement View click\");\r\n history.push(\"/HKManagement\");\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n HK Management\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"Masters View click\");\r\n history.push(\"/LaundryList\");\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Laundry\r\n \r\n
    • \r\n
    • \r\n {\r\n history.push({\r\n pathname: \"/Minibar\"\r\n });\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Minibar\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"Masters View click\");\r\n history.push(\"/Master\");\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Masters\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"Report View click\");\r\n history.push(\"/HouseKeepingReport\");\r\n dispatch(toggleMenu(false));\r\n }} \r\n >\r\n Operational Reports\r\n \r\n
    • \r\n
    • \r\n \r\n Management Query\r\n \r\n
    • \r\n \r\n :\r\n <>\r\n }\r\n {props.modulemenu != undefined && props.modulemenu == \"Inventory\" ?\r\n <>\r\n
      \r\n \r\n \r\n {\" \"}\r\n Inventory\r\n
      \r\n
    • \r\n {\r\n console.log(\"MaterialManagementSystem View click\");\r\n history.push(\"/MaterialManagementSystem\");\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Material Management\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"MMS Day Closing View click\");\r\n history.push(\"/MMSDayClosing\");\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n MMS Day Closing\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"Masters View click\");\r\n history.push(\"/Master\");\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Masters\r\n \r\n
    • \r\n
    • \r\n {\r\n console.log(\"Report View click\");\r\n history.push(\"/InventoryReport\");\r\n dispatch(toggleMenu(false));\r\n }}\r\n >\r\n Operational Reports\r\n \r\n
    • \r\n
    • \r\n \r\n Management Query\r\n \r\n
    • \r\n \r\n :\r\n <>\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {\" \"}\r\n Payroll\r\n
    \r\n \r\n
    \r\n
    Temp pages
    \r\n \r\n
    Heading
    \r\n \r\n
    Heading
    \r\n \r\n
    Heading
    \r\n \r\n
    Heading
    \r\n \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAPCAYAAAA2yOUNAAAABHNCSVQICAgIfAhkiAAAAM1JREFUKFN10T0KwkAQBeD3NmIhiB7AA1h4HQtLlcRGrFWwEfyrFPwDQTRH8R7aeItIdkeibIhk3frbmXkzxJ/XDJaVatFcYyKgy3QHs4YnXAshkUYrhywgqCRi+3QaPn9QFsQF9M7r0T3plCILAHhaMzgfviBFWRBB++F28sjOyi/ABqBygU8lv78IAdRiLdPLcXxzpWXQn9eF3BPCv5WSnwmEUjuIcbZM02WhM52dw0IRoXHtyQXp2ngOQrTxovztLOx0VmVVMuFLxH8DeK11ozeLNZYAAAAASUVORK5CYII=\"","export default __webpack_public_path__ + \"static/media/chat-user-1.462bed18.png\";","import React from 'react';\r\nimport profilephoto from '../../assets/images/chat-user-1.png';\r\nimport { logout } from \"../../reducer/authSlice\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { history } from \"../../utils/helpers\";\r\n\r\n\r\nexport function UserProfileMenu(props) {\r\n\r\n const dispatch = useDispatch();\r\n let logout1 = () =>{\r\n dispatch(logout()); \r\n history.push('/login'); \r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    Krunal Patel
    \r\n
    Front Officer
    \r\n
    johnsmith@hotel.com
    \r\n
    \r\n
    \r\n
      \r\n
    • My Profile
    • \r\n
    • My Activities
    • \r\n
    • Change Password
    • \r\n
    • Sign Out
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\n","import { useDispatch } from \"react-redux\";\r\nimport { logout } from \"../reducer/authSlice\";\r\n\r\n\r\nconst getLocalRefreshToken = () => { \r\n const user = JSON.parse(localStorage.getItem(\"user\"));\r\n return user?.refreshToken;\r\n}\r\n\r\nconst getLocalAccessToken = () => {\r\n const user = JSON.parse(localStorage.getItem(\"user\"));\r\n console.log(\"get from local \",user);\r\n return user?.jwtToken;\r\n };\r\n \r\n const updateLocalAccessToken = (token,refresh_token) => {\r\n //const dispatch = useDispatch();\r\n let user = JSON.parse(localStorage.getItem(\"user\"));\r\n user.jwtToken = token;\r\n user.refreshToken = refresh_token;\r\n localStorage.setItem(\"user\", JSON.stringify(user));\r\n };\r\n \r\n const getUser = () => {\r\n return JSON.parse(localStorage.getItem(\"user\"));\r\n };\r\n \r\n const setUser = (user) => {\r\n console.log(JSON.stringify(user));\r\n localStorage.setItem(\"user\", JSON.stringify(user));\r\n };\r\n \r\n const removeUser = () => {\r\n localStorage.removeItem(\"user\");\r\n };\r\n\r\n const getRefreshTokenModel = ()=> {\r\n const user = JSON.parse(localStorage.getItem(\"user\"));\r\n const reUser = {\r\n \"Client_ID\": user?.Client_ID,\r\n \"User_ID\": user?.UserID,\r\n \"Password\": \"\",\r\n \"GrantType\": \"cmVmcmVzaF90b2tlbg==\",\r\n \"RefreshToken\": user?.refreshToken,\r\n \"SecureKey\": \"\",\r\n \"IP\": \"\"\r\n }\r\n return reUser;\r\n }\r\n\r\n const TokenService = {\r\n getLocalRefreshToken,\r\n getLocalAccessToken,\r\n updateLocalAccessToken,\r\n getUser,\r\n setUser,\r\n removeUser,\r\n getRefreshTokenModel\r\n };\r\n \r\n export default TokenService;","import React, { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { login } from \"../../reducer/authSlice\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../reducer/authSlice\";\r\nimport logo from '../../assets/images/login-left-logo.png';\r\nimport questionicon from '../../assets/images/question-icon-wht.svg';\r\nimport loginicon from '../../assets/images/login-icon.svg';\r\nimport interneticon from '../../assets/images/internet-icon.svg';\r\nimport { AuthenticateUser, GetClientIDbyDomain } from '../../services/authService';\r\nimport { InnTextbox, InnPrimaryButton } from '../../component';\r\nimport TokenService from '../../services/tokenService';\r\n// import AWS from 'aws-sdk';\r\n\r\nfunction LoginPage(props) {\r\n\r\n // AWS.config.update({\r\n // region: 'ap-south-1',\r\n // credentials: {\r\n // accessKeyId: 'AKIAUVGD44SFDGQT7ZC4',\r\n // secretAccessKey: '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'\r\n // }\r\n // });\r\n\r\n // const sns = new AWS.SNS();\r\n\r\n // const params = {\r\n // Protocol: 'http',\r\n // TopicArn: 'arn:aws:sns:ap-south-1:320385901706:my-topic',\r\n // Endpoint: 'http://cluster2.innkeylive.com'\r\n // };\r\n // const params = {\r\n // Name: 'my-topic'\r\n // };\r\n\r\n const { t } = useTranslation();\r\n\r\n const [UserID, SetUserID] = useState(\"\");\r\n const [Password, SetPassword] = useState(\"\");\r\n const [sendOTP, setSendOTP] = useState(false);\r\n const currUser = useSelector(currentUser);\r\n const dispatch = useDispatch();\r\n\r\n const handleLoginClick = () => {\r\n\r\n // sns.createTopic(params, (err, data) => {\r\n // if (err) console.log(\"SNS err: \",err);\r\n // else console.log(\"SNS data: \",data);\r\n // });\r\n\r\n // sns.subscribe(params, (err, data) => {\r\n // if (err) console.log(\"SNS err: \",err);\r\n // else console.log(\"SNS data: \",data);\r\n // });\r\n\r\n const { from } = props.location.state || { from: { pathname: \"/\" } };\r\n\r\n AuthenticateUser(currUser.ClientSerNo,UserID,Password).then((res)=>{ \r\n console.log(\"login success \",res); \r\n if(res.status == 200 && res.data.user != undefined && res.data.user != null){ \r\n if(res.data.IsReset == true){\r\n props.history.push(\"/Reset\"); \r\n }else{\r\n dispatch(login(res.data.user)); \r\n TokenService.setUser(res.data.user);\r\n props.history.push(from);\r\n }\r\n\r\n }\r\n });\r\n }\r\n\r\n // useEffect(()=>{\r\n // if(currUser.IsSignIn){\r\n // props.history.push(\"/\");\r\n // } \r\n // //ele.ipcRenderer.send('asynchronous-message', 'ping');\r\n // // ele.ipcRenderer.on('asynchronous-reply', (event, arg) => {\r\n // // console.log(arg) // prints \"pong\"\r\n // // })\r\n // });\r\n\r\n return (\r\n\r\n
    \r\n
    \r\n
    \r\n
    {t('INN_TITLE')}
    \r\n

    {t('INN_DESC')}

    \r\n
    \r\n
    \r\n
    {t('INN_SUPPORT')}
    \r\n
    {t('INN_CALL')}
    {t('INN_EMAIL')}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    132465
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {/*
    */}\r\n\r\n
    \r\n \r\n
    \r\n
    LOGIN
    \r\n\r\n {/* {sendOTP ? (\r\n
    \r\n

    Enter Passcode

    \r\n

    A 6-digit passcode was sent to you at

    \r\n

    (145) 201-0254

    \r\n
    \r\n console.log(v)}>0\r\n console.log(v)}>0\r\n console.log(v)}>0\r\n console.log(v)}>0\r\n console.log(v)}>0\r\n console.log(v)}>0\r\n
    \r\n

    Didn't get it? Resend code

    \r\n Continue\r\n
    \r\n ) : \r\n (\r\n
    \r\n

    Enter phone number

    \r\n

    Enter your phone number to receive a passcode for authentication.

    \r\n console.log(v)}>(123) 256-5842\r\n \r\n \r\n

    By continuing, you may receive an SMS for verification. Message and data rates may apply.

    \r\n setSendOTP(true)}>Continue\r\n
    \r\n )}\r\n */}\r\n\r\n\r\n\r\n\r\n
    \r\n \r\n\r\n
    \r\n Client id is required\r\n
    \r\n
    \r\n
    \r\n SetUserID(v)}>\r\n
    \r\n
    User id is required
    \r\n
    \r\n
    \r\n
    \r\n SetPassword(v)}>\r\n\r\n
    \r\n \r\n Please enter a password\r\n \r\n
    \r\n
    \r\n {/*
    \r\n \r\n
    You agree to all our Terms and Conditions.
    \r\n
    */}\r\n
    \r\n \r\n {/*
    Forgot Password?
    */}\r\n
    \r\n
    \r\n Online\r\n
    \r\n {/*
    */}\r\n
    \r\n\r\n {/*
    \r\n

    Login Page

    \r\n \r\n
    */}\r\n
    \r\n\r\n );\r\n\r\n}\r\nexport { LoginPage };\r\n","import { useEffect, useState } from \"react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { InnTextbox, InnSingleSelectDropdown, InnActionButton, InnPlainButton, InnPrimaryButton, InnModalPopup, InnTextarea, InnTooltip, useConfirm } from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetReasonMaster } from \"../../../../services/generalService\";\r\nimport {\r\n GetValidateRoomForTransaction,\r\n GetReservationTransactions,\r\n PostTransferTransactionToAnotherRoom,\r\n} from \"../../../../services/reservationCashieringService\";\r\nimport { GetReservationAccompanyGuest } from \"../../../../services/reservationService\";\r\nimport { GetReservationInfoData } from \"../../../../services/reservationService\";\r\nimport { useAlert } from \"../../../../utils/hooks/useAlert\";\r\nimport { TipCheckedOut, TipCancelled, TipNoShow, TipArrived, TipInHouse, TipDueOut } from \"../tooltips/index\";\r\n\r\nexport const TransferReservationTransactionModalPopup = (props) => {\r\n const { innkeyAlert } = useAlert();\r\n let currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const reservationStatusData = [\r\n {\r\n key: \"DIN\",\r\n value: \"Due In\",\r\n },\r\n {\r\n key: \"TEN\",\r\n value: \"Tentative\",\r\n },\r\n {\r\n key: \"HLD\",\r\n value: \"Hold\",\r\n },\r\n {\r\n key: \"ARD\",\r\n value: \"Arrived\",\r\n },\r\n {\r\n key: \"INH\",\r\n value: \"In-house\",\r\n },\r\n {\r\n key: \"DOT\",\r\n value: \"Due Out\",\r\n },\r\n {\r\n key: \"COT\",\r\n value: \"Checked-out\",\r\n },\r\n {\r\n key: \"CAN\",\r\n value: \"Cancelled\",\r\n },\r\n {\r\n key: \"NSH\",\r\n value: \"No-show\",\r\n },\r\n ];\r\n const validationObj = {\r\n RoomNo: \"\",\r\n // Note: \"\",\r\n };\r\n const defaultTransferToRoomObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n SourceReservationSerNo: props.data.ReservationSerNo,\r\n ReservationTransactionSerNo: 0,\r\n TargetReservationSerNo: 0,\r\n Remarks: \"\",\r\n ReasonSerNo: 0,\r\n };\r\n\r\n //#region state\r\n const [showToolTip, setShowToolTip] = useState(false);\r\n const [validatedResSerNo, setValidatedResSerNo] = useState(undefined);\r\n const [reservationTransactionsData, setReservationTransactionsData] = useState([]);\r\n const [totalAmount, setTotalAmount] = useState(0);\r\n const [roomNoValue, setRoomNoValue] = useState(\"\");\r\n const [verifiedRoomObj, setVerifiedRoomObj] = useState({\r\n ReservationSerNo: \"\",\r\n ReservationStatus: \"\",\r\n BookingNo: \"\",\r\n });\r\n const [guestData, setGuestData] = useState([{ key: 0, value: \"\" }]);\r\n const [reasonData, setReasonData] = useState([{ key: 0, value: \"\" }]);\r\n const [selectedGuestItem, setSelectedGuestItem] = useState({\r\n key: 0,\r\n value: \"Select\",\r\n });\r\n const [selectedReasonForTransferItem, setSelectedReasonForTransferItem] = useState({\r\n key: 0,\r\n value: \"Select\",\r\n });\r\n const [textAreaVal, setTextAreaVal] = useState(\"\");\r\n const [transferToRoomValidation, setTransferToRoomValidation] = useState(validationObj);\r\n const [isRoomVerified, setIsRoomVerified] = useState(false);\r\n const [reservationInfoData, setReservationInfoData] = useState({});\r\n const [reservationTransferToRoomObj, setReservationTransferToRoomObj] = useState(defaultTransferToRoomObj);\r\n //#endregion state\r\n\r\n //#region API calls\r\n const PostReservationTransactionsData = () => {\r\n\r\n GetReservationTransactions({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: props.data.ReservationSerNo,\r\n ReservationTransactionSerNo: props.data.ReservationTransactionSerNo,\r\n }).then((d) => {\r\n let tempAmount = 0;\r\n for (let i = 0; i < d.data.reservationTransactionList.length; i++) {\r\n tempAmount = tempAmount + d.data.reservationTransactionList[i].Amount + d.data.reservationTransactionList[i].Tax;\r\n }\r\n setTotalAmount(tempAmount);\r\n setReservationTransactionsData(d.data.reservationTransactionList);\r\n });\r\n };\r\n const fillIndiAccompanyGuest = (ReservationSerNo) => {\r\n GetReservationAccompanyGuest(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then((d) => {\r\n let tempData = [];\r\n if (d.data.length > 0) {\r\n for (let i = 0; i < d.data.length; i++) {\r\n tempData.push({\r\n key: d.data[i].GuestProfileSerNo,\r\n value: d.data[i].GuestName,\r\n IsPrimary: d.data[i].IsPrimary\r\n });\r\n }\r\n }\r\n if (d.data.length > 0) {\r\n setGuestData(tempData);\r\n setSelectedGuestItem(tempData[0]);\r\n } else {\r\n setGuestData([{ key: 0, value: \"\" }]);\r\n setSelectedGuestItem({ key: 0, value: \"\" });\r\n }\r\n });\r\n };\r\n const fillReasonMasterData = () => {\r\n GetReasonMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"TTR\").then((d) => {\r\n let tempData = [];\r\n for (let i = 0; i < d.data.length; i++) {\r\n tempData.push({\r\n key: d.data[i].ReasonSerNo,\r\n value: d.data[i].Name,\r\n });\r\n }\r\n setReasonData(tempData);\r\n });\r\n };\r\n //#endregion API calls\r\n\r\n //#region events\r\n const onCrossClick = async (item) => {\r\n if (reservationTransactionsData.length > 1) {\r\n let isConfirmed = true;\r\n isConfirmed = await innkeyAlert(\"Would you like to remove the selected transaction from the list?\");\r\n if (isConfirmed) {\r\n let temp = reservationTransactionsData.filter((d) => d.ReservationTransactionSerNo !== item.ReservationTransactionSerNo);\r\n let tempAmount = 0;\r\n for (let i = 0; i < temp.length; i++) {\r\n tempAmount = tempAmount + temp[i].Amount;\r\n }\r\n setTotalAmount(tempAmount);\r\n setReservationTransactionsData(temp);\r\n }\r\n } else {\r\n alertFunction(\"There must be at least one transaction.\");\r\n }\r\n };\r\n const validateRoomNumber = () => {\r\n if (roomNoValue.trim() !== \"\") {\r\n GetValidateRoomForTransaction(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), roomNoValue).then((d) => {\r\n if (d.data !== null) {\r\n if (d.data.ResultMessage === \"Success\") {\r\n setValidatedResSerNo(d.data);\r\n setIsRoomVerified(true);\r\n let currentStatus = reservationStatusData.find((item) => item.key === d.data.ReservationStatus);\r\n setVerifiedRoomObj((prev) => ({\r\n ...prev,\r\n ReservationSerNo: d.data.ReservationSerNo,\r\n BookingNo: d.data.BookingNo,\r\n ReservationStatus: currentStatus.value,\r\n }));\r\n setReservationTransferToRoomObj((prev) => ({\r\n ...prev,\r\n TargetReservationSerNo: d.data.ReservationSerNo,\r\n }));\r\n fillIndiAccompanyGuest(d.data.ReservationSerNo);\r\n } else {\r\n alertFunction('Invalid room number');\r\n setValidatedResSerNo(undefined);\r\n setVerifiedRoomObj((prev) => ({\r\n ...prev,\r\n BookingNo: \"\",\r\n ReservationStatus: \"\",\r\n }));\r\n setIsRoomVerified(false);\r\n setGuestData([{ key: 0, value: \"\" }]);\r\n setSelectedGuestItem({\r\n key: 0,\r\n value: \"Select\",\r\n });\r\n setTransferToRoomValidation((prev) => ({\r\n ...prev,\r\n RoomNo: \"please enter valid room number\",\r\n }));\r\n }\r\n } else {\r\n alertFunction(\"Invalid Room Number\");\r\n setValidatedResSerNo(undefined);\r\n setIsRoomVerified(false);\r\n setVerifiedRoomObj((prev) => ({\r\n ...prev,\r\n BookingNo: \"\",\r\n ReservationStatus: \"\",\r\n }));\r\n setGuestData([{ key: 0, value: \"\" }]);\r\n setSelectedGuestItem({\r\n key: 0,\r\n value: \"Select\",\r\n });\r\n setTransferToRoomValidation((prev) => ({\r\n ...prev,\r\n RoomNo: \"please enter valid room number\",\r\n }));\r\n }\r\n });\r\n } else {\r\n setVerifiedRoomObj({\r\n BookingNo: \"\",\r\n ReservationStatus: \"\",\r\n });\r\n setGuestData([{ key: 0, value: \"\" }]);\r\n setSelectedGuestItem({\r\n key: 0,\r\n value: \"Select\",\r\n });\r\n }\r\n };\r\n const onSaveButtonClick = () => {\r\n let tempArr = [];\r\n setRoomNoValue(roomNoValue.trim());\r\n if (roomNoValue.trim() === \"\") {\r\n tempArr.push(\"enter room number\");\r\n setTransferToRoomValidation((prev) => ({\r\n ...prev,\r\n RoomNo: \"please enter valid room number\",\r\n }));\r\n } else {\r\n setTransferToRoomValidation((prev) => ({\r\n ...prev,\r\n RoomNo: \"\",\r\n }));\r\n }\r\n if (selectedGuestItem.key === 0) {\r\n tempArr.push(\"select guest name\");\r\n }\r\n if (selectedReasonForTransferItem.key === 0) {\r\n tempArr.push(\"select reason for transfer\");\r\n }\r\n if (tempArr.length === 0) {\r\n let tempData = [];\r\n for (let i = 0; i < reservationTransactionsData.length; i++) {\r\n tempData.push({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n SourceReservationSerNo: props.data.ReservationSerNo,\r\n ReservationTransactionSerNo: reservationTransactionsData[i].ReservationTransactionSerNo,\r\n TargetReservationSerNo: reservationTransferToRoomObj.TargetReservationSerNo,\r\n Remarks: reservationTransferToRoomObj.Remarks,\r\n GroupSerNo: reservationTransactionsData[i].GroupSerNo,\r\n ReasonSerNo: reservationTransferToRoomObj.ReasonSerNo,\r\n });\r\n }\r\n PostTransferTransactionToAnotherRoom(tempData).then((d) => {\r\n if (d.data.Code === '200') {\r\n props.Onclose();\r\n alertFunction(\r\n `${reservationTransactionsData.length} ${reservationTransactionsData.length > 1 ? \"Transactions\" : \"Transaction\"} successfully transferred from ${props.getCurrentRoomNumber.RoomNo\r\n }, ${reservationInfoData.GuestName} to Room ${roomNoValue}, ${selectedGuestItem.value}`\r\n );\r\n } else {\r\n props.Onclose();\r\n alertFunction('Error in transferring please try again sometime.');\r\n }\r\n });\r\n } else {\r\n let str = \"please \";\r\n for (let i = 0; i < tempArr.length; i++) {\r\n if (i === tempArr.length - 1) {\r\n str = str + tempArr[i];\r\n } else {\r\n str = str + tempArr[i] + \", \";\r\n }\r\n }\r\n alertFunction(str);\r\n }\r\n };\r\n\r\n const onPopupClose = async () => {\r\n if (roomNoValue.trim() === \"\" && selectedGuestItem.key === 0 && selectedReasonForTransferItem.key === 0) {\r\n props.Onclose();\r\n } else {\r\n let isConfirmed = true;\r\n isConfirmed = await innkeyAlert(\"Would you like to discard the changes you have made?\");\r\n if (isConfirmed) {\r\n props.Onclose();\r\n }\r\n }\r\n };\r\n //#endregion events\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n if (props.data !== undefined) {\r\n if (props.data.Data !== undefined) {\r\n let tempAmount = 0;\r\n for (let i = 0; i < props.data.Data.length; i++) {\r\n tempAmount = tempAmount + props.data.Data[i].Amount;\r\n }\r\n setTotalAmount(tempAmount);\r\n setReservationTransactionsData(props.data.Data);\r\n }\r\n }\r\n //PostReservationTransactionsData();\r\n fillReasonMasterData();\r\n GetReservationInfoData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), props.data.ReservationSerNo).then((d) => {\r\n setReservationInfoData(d.data);\r\n });\r\n }, []);\r\n //#endregion useEffect\r\n\r\n const remarksToolTip = (Remarks) => {\r\n return (\r\n
    \r\n
    \r\n
    {Remarks}
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n return (\r\n \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n

    Transfer Transaction to another room

    \r\n
    \r\n
    \r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n {reservationTransactionsData.map((item, index) => {\r\n return (\r\n
    • \r\n
      {item.TransactionDate}
      \r\n
      {item.TransactionName}
      \r\n
      Doc No. : {item.DocumentNo}
      \r\n
      \r\n {item.WindowName} Note\r\n
      \r\n {(item.Amount).toFixed(2)}\r\n onCrossClick(item)}>\r\n
    • \r\n );\r\n })}\r\n
    \r\n
    \r\n
    \r\n Preview Check\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setRoomNoValue(v);\r\n if (v.trim() === \"\") {\r\n setTransferToRoomValidation((prev) => ({\r\n ...prev,\r\n RoomNo: \"please enter a valid room number\",\r\n }));\r\n } else {\r\n setTransferToRoomValidation((prev) => ({\r\n ...prev,\r\n RoomNo: \"\",\r\n }));\r\n }\r\n }}\r\n onBlur={validateRoomNumber}>\r\n Room No.\r\n \r\n
    \r\n
    \r\n {isRoomVerified ?
    Verified
    :
    Not Verified
    }\r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedGuestItem(item);\r\n }}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n { }} disabled>\r\n Reservation No\r\n \r\n
    \r\n
    {\r\n if (validatedResSerNo) {\r\n if (verifiedRoomObj.ReservationStatus !== undefined) {\r\n setShowToolTip(true);\r\n }\r\n }\r\n }}>\r\n {verifiedRoomObj.ReservationStatus}\r\n
    \r\n
    \r\n
    \r\n { }}>\r\n Amount\r\n \r\n
    \r\n {\r\n setSelectedReasonForTransferItem(item);\r\n if (item.key !== 0) {\r\n setReservationTransferToRoomObj((prev) => ({\r\n ...prev,\r\n ReasonSerNo: parseInt(item.key),\r\n }));\r\n } else {\r\n setReservationTransferToRoomObj((prev) => ({\r\n ...prev,\r\n ReasonSerNo: 0,\r\n }));\r\n }\r\n }}>\r\n
    \r\n {\r\n setTextAreaVal(v);\r\n setReservationTransferToRoomObj((prev) => ({\r\n ...prev,\r\n Remarks: v,\r\n }));\r\n }}>\r\n Note\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {showToolTip ? (\r\n validatedResSerNo.ReservationStatus === \"ARD\" ? (\r\n {\r\n setShowToolTip(false);\r\n }}>\r\n ) : validatedResSerNo.ReservationStatus === \"INH\" ? (\r\n {\r\n setShowToolTip(false);\r\n }}>\r\n ) : validatedResSerNo.ReservationStatus === \"DOT\" ? (\r\n {\r\n setShowToolTip(false);\r\n }}>\r\n ) : validatedResSerNo.ReservationStatus === \"COT\" ? (\r\n {\r\n setShowToolTip(false);\r\n }}>\r\n ) : validatedResSerNo.ReservationStatus === \"CAN\" ? (\r\n {\r\n setShowToolTip(false);\r\n }}>\r\n ) : validatedResSerNo.ReservationStatus === \"NSH\" ? (\r\n {\r\n setShowToolTip(false);\r\n }}>\r\n ) : (\r\n \r\n )\r\n ) : null}\r\n
    \r\n );\r\n};\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnModalPopup,\r\n InnTextarea,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport {\r\n GetCalculatedTaxByTransaction,\r\n GetTransactionMaster,\r\n} from \"../../../../services/reservationService\";\r\nimport {\r\n GetReservationTransactions,\r\n PostReservationAllowance,\r\n PostReservationGroupAllowance,\r\n PostReservationTransaction\r\n} from \"../../../../services/reservationCashieringService\";\r\nimport { GetReasonMaster } from \"../../../../services/generalService\";\r\nimport { useAlert } from \"../../../../utils/hooks/useAlert\";\r\n\r\n\r\nexport function AllowanceModalPopup(props) {\r\n\r\n //#region Local Variable\r\n const history = useHistory();\r\n const currUser = useSelector(currentUser);\r\n const defaultData = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: parseInt(props.data.ReservationSerNo),\r\n ReservationTransactionSerNo: props.data.ReservationTransactionSerNo,\r\n };\r\n const defaultReservationTransactionObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: parseInt(props.data.ReservationSerNo),\r\n //TransactionType: \"\",\r\n Amount: 0,\r\n //TransactionDate: \"\",\r\n //DocumentNo: \"\",\r\n TransactionSerNo: 0,\r\n WindowSerNo: 0,\r\n Remarks: \"\",\r\n //AssoTransactionSerNo: 0,\r\n ReasonSerNo: 0,\r\n RefReservationTransactionSerNo: parseInt(props.data?.ReservationTransactionSerNo),\r\n ReservationTransactionSerNo: parseInt(props.data?.ReservationTransactionSerNo),\r\n //OrgReservationSerNo: parseInt(props.data.ReservationSerNo),\r\n IsTaxInclusive: false,\r\n GroupSerNo: 0\r\n };\r\n const defaultReservationTransactionTaxListObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: 0,\r\n ReservationTransactionSerNo: 0,\r\n TransactionSerNo: 0,\r\n ParentTransactionSerNo: 0,\r\n Amount: 0,\r\n OnAmount: 0,\r\n Percentage: 0,\r\n TransType: \"\",\r\n TransactionDate: \"\"\r\n };\r\n const discAmount = 0;\r\n const isDiscPer = true;\r\n const defaultValidationObj = {\r\n Amount: \"\",\r\n };\r\n const { innkeyAlert } = useAlert();\r\n //#endregion\r\n\r\n //#region State Variables\r\n const [reservationTransactionSerNo, setReservationTransactionSerNo] = useState(0);\r\n const [reservationTransactionObj, setReservationTransactionObj] = useState(defaultReservationTransactionObj);\r\n const [reservationTransactionTaxListObj, setReservationTransactionTaxListObj] = useState(defaultReservationTransactionTaxListObj);\r\n const [reasonList, setReasonList] = useState([]);\r\n const [selectedReason, setSelectedReason] = useState({ key: 0, value: \"Select\" });\r\n const [selectedTax, setSelectedTax] = useState({ key: 0, value: \"Select\" });\r\n const [note, setNote] = useState(\"\");\r\n const [transactionDetailsList, setTransactionDetailsList] = useState([]);\r\n const [transactionList, setTransactionList] = useState([]);\r\n const [totalAmount, setTotalAmount] = useState(0);\r\n const [inputAmount, setInputAmount] = useState(\"\");\r\n const [isTaxInclusive, setIsTaxInclusive] = useState(false);\r\n const [taxAmount, setTaxAmount] = useState(0);\r\n const [taxSelection, setTaxSelection] = useState(false);\r\n const [validationObj, setValidationObj] = useState(defaultValidationObj);\r\n const [transactionSerNo, setTransactionSerNo] = useState(0);\r\n const [maxAmount, setMaxAmount] = useState(0);\r\n //#endregion\r\n\r\n //#region Events\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n // const fillPropertyParameterData = () => {\r\n // GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), [\r\n // \"BusinessDate\"\r\n // ]).then((d) => {\r\n // console.log(\"BusinessDate\", d.data[0].value);\r\n // setReservationTransactionObj(prev => ({ ...prev, TransactionDate: d.data[0].value }));\r\n // });\r\n // };\r\n\r\n const fillTaxValues = () => {\r\n console.log(discAmount, isDiscPer, isTaxInclusive, transactionSerNo, totalAmount);\r\n GetCalculatedTaxByTransaction(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), discAmount,\r\n isDiscPer, isTaxInclusive, transactionSerNo, totalAmount).then(d => {\r\n console.log(d.data);\r\n let tempObj = [];\r\n let totalTax = 0;\r\n\r\n if (d.data.length > 0) {\r\n d.data.map(d => {\r\n if (d.TransactionSerNo != 0) {\r\n totalTax += parseFloat(d.Amount);\r\n tempObj.push({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: parseInt(props.data.ReservationSerNo),\r\n TransactionSerNo: d.TransactionSerNo,\r\n ParentTransactionSerNo: transactionSerNo,\r\n ReservationTransactionSerNo: reservationTransactionSerNo,\r\n Amount: parseFloat(d.Amount) * (-1),\r\n Percentage: parseFloat(d.OnAmountPer),\r\n Transtype: d.TransType,\r\n OnAmount: parseFloat(d.OnAmount) * (-1),\r\n });\r\n }\r\n });\r\n setTaxAmount(totalTax);\r\n setReservationTransactionTaxListObj(tempObj);\r\n }\r\n });\r\n };\r\n //#endregion\r\n\r\n //#region Custom Functions\r\n const handleOnBlurAmount = () => {\r\n fillTaxValues();\r\n };\r\n const handleOnChangeAmount = (v) => {\r\n setInputAmount(v);\r\n console.log(v, maxAmount);\r\n if (v != undefined) {\r\n if (v != \"\" && parseFloat(v) <= parseFloat(maxAmount) && v > 0) {\r\n setInputAmount(parseInt(v));\r\n setTotalAmount(parseFloat(v));\r\n setValidationObj(prev => ({ ...prev, Amount: \"\" }));\r\n setReservationTransactionObj(prev => ({ ...prev, Amount: parseFloat(v) * (-1) }));\r\n }\r\n if (v === \"\") {\r\n setTotalAmount(0);\r\n setValidationObj(prev => ({ ...prev, Amount: \"Field is Required..\" }));\r\n }\r\n if (parseInt(v) > maxAmount) {\r\n setTotalAmount(0);\r\n setValidationObj(prev => ({ ...prev, Amount: \"Amount can not be higher than maximum amount\" }));\r\n }\r\n if (v < 0) {\r\n setTotalAmount(0);\r\n setValidationObj(prev => ({ ...prev, Amount: \"Amount can not be less than 0\" }));\r\n }\r\n if (isNaN(v)) {\r\n setTotalAmount(0);\r\n setValidationObj(prev => ({ ...prev, Amount: \"Invalid Amount\" }));\r\n }\r\n if (parseInt(v) === 0) {\r\n setTotalAmount(0);\r\n setValidationObj(prev => ({ ...prev, Amount: \"Amount can not be 0\" }));\r\n }\r\n }\r\n };\r\n\r\n const validate = () => {\r\n let isValid = true;\r\n // if (note == \"\") {\r\n // isValid = false;\r\n // setValidationObj(prev => ({ ...prev, Remarks: \"This Field is Required..\" }));\r\n // alert(\"Remarks field can not be empty\");\r\n // }\r\n if (selectedReason.key == 0) {\r\n isValid = false;\r\n setReservationTransactionObj((prev) => ({ ...prev, ReasonSerNo: 0 }));\r\n alertFunction(\"Provide a valid reason\");\r\n }\r\n if (selectedTax.key == 0) {\r\n isValid = false;\r\n alertFunction(\"Please select tax value\");\r\n }\r\n if (isTaxInclusive) {\r\n if (parseInt(totalAmount) > parseInt(maxAmount)) {\r\n isValid = false;\r\n alertFunction(\"Allowance can not be higher than revenue\");\r\n }\r\n }\r\n if (isTaxInclusive == false) {\r\n if (parseInt(totalAmount) + parseInt(taxAmount) > maxAmount) {\r\n isValid = false;\r\n alertFunction(\"Allowance can not be higher than revenue\");\r\n }\r\n }\r\n if (inputAmount == \"\") {\r\n isValid = false;\r\n setTotalAmount(0);\r\n setValidationObj(prev => ({ ...prev, Amount: \"Field is Required..\" }));\r\n alertFunction(\"Amount field can not be empty\");\r\n }\r\n if (inputAmount < 0) {\r\n isValid = false;\r\n setTotalAmount(0);\r\n setValidationObj(prev => ({ ...prev, Amount: \"Amount can not be less than 0\" }));\r\n alertFunction(validationObj.Amount);\r\n }\r\n if (parseInt(inputAmount) === 0) {\r\n isValid = false;\r\n setTotalAmount(0);\r\n setValidationObj(prev => ({ ...prev, Amount: \"Amount can not be 0\" }));\r\n alertFunction(validationObj.Amount);\r\n }\r\n if (inputAmount > maxAmount) {\r\n isValid = false;\r\n setTotalAmount(0);\r\n setValidationObj(prev => ({ ...prev, Amount: \"Amount can not be higher than maximum amount\" }));\r\n alertFunction(validationObj.Amount);\r\n }\r\n if (isNaN(inputAmount)) {\r\n isValid = false;\r\n setTotalAmount(0);\r\n setValidationObj(prev => ({ ...prev, Amount: \"Invalid Amount\" }));\r\n alertFunction(validationObj.Amount);\r\n }\r\n return isValid;\r\n };\r\n const onPopupClose = async () => {\r\n if (inputAmount.toString().trim() === \"\" && selectedTax.key === 0\r\n && selectedReason.key === 0 && note === \"\") {\r\n props.Onclose();\r\n }\r\n else {\r\n let isConfirmed = true;\r\n isConfirmed = await innkeyAlert(\"Would you like to discard the changes made?\");\r\n if (isConfirmed) {\r\n props.Onclose();\r\n }\r\n }\r\n };\r\n\r\n const handleApplyOnClick = () => {\r\n console.log(\"TransactionObj >>\", reservationTransactionObj);\r\n console.log(\"TransactionTaxList Obj >>\", reservationTransactionTaxListObj);\r\n let isValid = validate();\r\n if (isValid != undefined) {\r\n if (isValid) {\r\n let finalInputObj = reservationTransactionObj;\r\n console.error(finalInputObj);\r\n if (finalInputObj.GroupSerNo !== 0) {\r\n PostReservationGroupAllowance(finalInputObj).then(d => {\r\n if (d.data.ReturnValue !== '0') {\r\n if (props.Onclose !== undefined) {\r\n props.Onclose();\r\n }\r\n }\r\n alertFunction(d.data.Message);\r\n });\r\n } else {\r\n PostReservationAllowance(finalInputObj).then(d => {\r\n if (d.data.ReturnValue !== '0') {\r\n if (props.Onclose !== undefined) {\r\n props.Onclose();\r\n }\r\n }\r\n alertFunction(d.data.Message);\r\n });\r\n }\r\n }\r\n }\r\n };\r\n //#endregion\r\n\r\n //#region useEffect\r\n\r\n useEffect(async () => {\r\n await GetReasonMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"CAN\").then(d => {\r\n let defaultReason = [];\r\n d.data.map((e) => {\r\n defaultReason =\r\n [...defaultReason,\r\n {\r\n key: e.ReasonSerNo,\r\n value: e.Name,\r\n }];\r\n });\r\n setReasonList(defaultReason);\r\n });\r\n await GetReservationTransactions(defaultData).then(d => {\r\n if (d.data.reservationTransactionList.length > 0) {\r\n let transactionDetailList = d.data.reservationTransactionList[0];\r\n setReservationTransactionObj(prev => ({ ...prev, TransactionDate: transactionDetailList.TransactionDate }));\r\n if (transactionDetailList != undefined) {\r\n setTransactionDetailsList(transactionDetailList);\r\n setMaxAmount(d.data.MaxAmount.toFixed(2));\r\n if (transactionDetailList.WindowSerNo != undefined) {\r\n setReservationTransactionObj(prev => ({\r\n ...prev,\r\n WindowSerNo: transactionDetailList.WindowSerNo,\r\n //DocumentNo: transactionDetailList.DocumentNo + \" - Allowance\",\r\n GroupSerNo: transactionDetailList.GroupSerNo,\r\n TransactionSerNo: transactionDetailList.TransactionSerNo\r\n }));\r\n setReservationTransactionSerNo(transactionDetailList.ReservationTransactionSerNo);\r\n }\r\n }\r\n else {\r\n console.log(\"Transaction details not available\");\r\n }\r\n }\r\n else {\r\n alertFunction(\"Data not found\");\r\n }\r\n });\r\n await GetTransactionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"C\", \"ALL\").then(d => {\r\n let defaultValue = [{ key: 0, value: 'Select' }];\r\n d.data.map((e) => {\r\n defaultValue.push({\r\n key: e.TransactionSerNo,\r\n value: e.Name,\r\n type: e.TransactionType\r\n });\r\n // defaultValue =\r\n // [...defaultValue,\r\n // {\r\n // key: e.TransactionSerNo,\r\n // value: e.Name,\r\n // type: e.TransactionType\r\n // }];\r\n });\r\n setTransactionList(defaultValue);\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (totalAmount != undefined && totalAmount != 0 && selectedTax.key !== 0) {\r\n fillTaxValues();\r\n } else {\r\n setTaxAmount(0);\r\n }\r\n }, [isTaxInclusive, taxSelection]);\r\n\r\n useEffect(() => {\r\n if (reservationTransactionObj.TransactionSerNo !== 0 && transactionList.length > 0) {\r\n let temp = transactionList.find(x => parseInt(x.key) === reservationTransactionObj.TransactionSerNo);\r\n if (temp !== undefined) {\r\n setSelectedTax(temp);\r\n setTransactionSerNo(temp.key);\r\n setTaxSelection(!taxSelection);\r\n }\r\n }\r\n }, [reservationTransactionObj.TransactionSerNo, transactionList]);\r\n //#endregion\r\n\r\n //#region Dummy Data\r\n // const selectdata = [\r\n // { key: \"Option 1\", value: \"Option 1\" },\r\n // { key: \"Option 2\", value: \"Option 2\" },\r\n // { key: \"Option 3\", value: \"Option 3\" },\r\n // { key: \"Option 4\", value: \"Option 4\" },\r\n // { key: \"Option 5\", value: \"Option 5\" },\r\n // { key: \"Option 6\", value: \"Option 6\" },\r\n // ];\r\n //#endregion\r\n\r\n return (\r\n <>\r\n \r\n
    \r\n
    \r\n
    \r\n

    Allowance Against Revenue Posting

    \r\n
    \r\n
    \r\n { handleApplyOnClick(); }}\r\n >\r\n Apply\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n <>\r\n \r\n Transaction\r\n \r\n \r\n Date\r\n \r\n \r\n Document No.\r\n \r\n \r\n Window\r\n \r\n \r\n Transaction Amount\r\n \r\n \r\n Tax Amount\r\n \r\n \r\n Note\r\n \r\n \r\n
    \r\n Preview Check\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { handleOnChangeAmount(v); }}\r\n onBlur={handleOnBlurAmount}\r\n >\r\n Amount (Max : {Math.abs(maxAmount).toFixed(2)})\r\n \r\n
    \r\n {\r\n setSelectedTax(item);\r\n console.log(\"Tax >>\", item);\r\n setTaxSelection(!taxSelection);\r\n setReservationTransactionObj(prev => ({\r\n ...prev,\r\n TransactionType: item.type, TransactionSerNo: item.key,\r\n AssoTransactionSerNo: item.key\r\n }));\r\n setTransactionSerNo(item.key);\r\n }}\r\n >\r\n
    \r\n {\r\n setIsTaxInclusive(ischecked);\r\n setReservationTransactionObj(prev => ({ ...prev, IsTaxInclusive: ischecked }));\r\n }}\r\n >\r\n Inclusive of Taxes\r\n \r\n {\r\n if (parseInt(v) != undefined && parseInt(v) != null) {\r\n if (v == \"\") {\r\n console.log(v);\r\n setTaxAmount(0);\r\n }\r\n else {\r\n setTaxAmount(parseFloat(v));\r\n }\r\n }\r\n }}\r\n >\r\n Tax Amount\r\n \r\n\r\n
    \r\n {\r\n setSelectedReason(item);\r\n setReservationTransactionObj(prev => ({ ...prev, ReasonSerNo: item.key }));\r\n }}\r\n >\r\n
    \r\n {\r\n setNote(v);\r\n setReservationTransactionObj(prev => ({ ...prev, Remarks: v }));\r\n }}\r\n >\r\n Note\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Net TOTAL\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n !isNaN(totalAmount)\r\n ?\r\n (isTaxInclusive)\r\n ?\r\n parseFloat(totalAmount).toFixed(2)\r\n :\r\n (parseFloat(totalAmount) + parseFloat(taxAmount)).toFixed(2)\r\n :\r\n 0\r\n }\r\n {/* {\r\n isNaN(totalAmount) ?\r\n 0\r\n :\r\n totalAmount != undefined ?\r\n (\r\n isTaxInclusive == true ?\r\n (\r\n totalAmount\r\n )\r\n :\r\n (isTaxInclusive == false ?\r\n (\r\n (totalAmount + parseFloat(taxAmount)).toFixed(2)\r\n )\r\n :\r\n 0)\r\n )\r\n :\r\n 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}","import { parseZone } from \"moment\";\r\nimport React, { useState } from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nimport {\r\n InnActionButton, InnPrimaryButton, InnTextbox, InnPlainButton,\r\n InnModalPopup, InnRadioButton, InnSingleSelectDropdown, InnTextarea\r\n} from \"../../../../component\";\r\n\r\nimport {\r\n GetReservationTransactionSplitDetail,\r\n GetReservationWindowTransactionData,\r\n PostReservationTransactionSplitItemGroupDetail\r\n} from \"../../../../services/reservationCashieringService\";\r\nimport { GetReasonMaster } from \"../../../../services/generalService\";\r\nimport { InnLoader } from \"../../../../component\";\r\nimport { element } from \"prop-types\";\r\n\r\nexport function ReservationTransactionSplitModalPopup(props) {\r\n const currUser = useSelector(currentUser);\r\n\r\n let parameter;\r\n const [isActive, setActive] = useState(false);\r\n const [selectionWindowData, setSelectionWindowData] = useState([]);\r\n const [reasonListData, setReasonListData] = useState([]);\r\n const [note, setNote] = useState(\"\");\r\n const [isValidate, setIsValidate] = useState(true);\r\n const [labelPercentage, setLabelPercentage] = useState(\"\");\r\n const [selectedReason, setSelectedReason] = useState({ key: 0, value: \"Select\" });\r\n\r\n const [errorList, setErrorList] = useState({ reasonError: \"\", remarksError: \"\", percentageError: \"\" });\r\n\r\n const [resDefaultTransactionSplitDetail, setResDefaultTransactionSplitDetail] = useState([]);\r\n const [resTransactionSplitDetail, setResTransactionSplitDetail] = useState([]);\r\n const [resTransactionSplitItemGroup, setResTransactionSplitItemGroup] = useState([]);\r\n const [resTransactionSplitByValue, setResTransactionSplitByValue] = useState([]);\r\n const [rbDataTransSplit, setRbDataTransSplit] = useState([]);\r\n const [resTransactionItemGroup, setResTransactionItemGroup] = useState([]);\r\n const [resTransactionItemGroupCheck, setResTransactionItemGroupCheck] = useState([]);\r\n const [resTransactionCheck, setResTransactionCheck] = useState([]);\r\n\r\n const [SplitByValue, setSplitByValue] = useState(\"\");\r\n const [SplitByDetail, setSplitByDetail] = useState({ key: 0, value: \"Select\" });\r\n const [percentage, setPercentage] = useState(\"50\");\r\n const selectSplitBy = [\r\n { key: \"sbPercentage\", value: \"Split by Percentage\" },\r\n { key: \"sbAmount\", value: \"Split By Amount\" },\r\n { key: \"sbNumber\", value: \"Split By Number\" },\r\n ];\r\n\r\n const [showDetailButton, setShowDetailButton] = useState(false);\r\n const [showTransSplitValueDetailPopup, setShowTransSplitValueDetailPopup] = useState(false);\r\n const [showTransSplitGroupDetailPopup, setShowTransSplitGroupDetailPopup] = useState(false);\r\n\r\n useEffect(() => {\r\n parameter = props.para;\r\n console.log(parameter);\r\n funReasonListData();\r\n fillReservationWindowData(parameter[0]);\r\n funGetReservationTransactionSplitDetail(parameter);\r\n if (parameter[0].Module == \"R\") {\r\n setRbDataTransSplit([\r\n { key: \"Split By Value\", value: \"Split By Value\" }\r\n ]);\r\n setSplitByValue(\"Split By Value\");\r\n setSplitByDetail({ key: \"sbPercentage\" });\r\n } else {\r\n setRbDataTransSplit([\r\n { key: \"Split By Item Group\", value: \"Split By Item Group\" },\r\n { key: \"Split By Value\", value: \"Split By Value\" }\r\n ]);\r\n setSplitByValue(\"Split By Item Group\");\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (SplitByDetail.key == \"sbPercentage\") {\r\n setLabelPercentage(\"Percentage\");\r\n setPercentage(\"50\");\r\n let temp1 = [];\r\n let pPercentage = 0;\r\n pPercentage = 100 - parseInt(percentage);\r\n resTransactionSplitByValue.forEach(element => {\r\n for (let i = 0; i < 2; i++) {\r\n let obj = {};\r\n obj.SplitPreview = 1;\r\n obj.WindowSerNo = element.WindowSerNo;\r\n obj.WindowName = element.WindowName;\r\n if (i == 0) {\r\n obj.Amount = ((element.Amount * parseInt(percentage)) / 100);\r\n } else {\r\n obj.Amount = ((element.Amount * parseInt(pPercentage)) / 100);\r\n }\r\n temp1.push(obj);\r\n }\r\n });\r\n setResTransactionSplitItemGroup(temp1);\r\n } else if (SplitByDetail.key == \"sbNumber\") {\r\n setLabelPercentage(\"Quantity\");\r\n setPercentage(\"2\");\r\n let temp1 = [];\r\n resTransactionSplitByValue.forEach(element => {\r\n for (let i = 1; i <= parseInt(percentage); i++) {\r\n let obj = {};\r\n obj.SplitPreview = 1;\r\n obj.WindowSerNo = element.WindowSerNo;\r\n obj.WindowName = element.WindowName;\r\n obj.Amount = element.Amount / percentage;\r\n temp1.push(obj);\r\n }\r\n });\r\n setResTransactionSplitItemGroup(temp1);\r\n } else if (SplitByDetail.key == \"sbAmount\") {\r\n setLabelPercentage(\"Amount\");\r\n setPercentage(\"1\");\r\n }\r\n\r\n resDefaultTransactionSplitDetail.forEach(element => {\r\n element.SplitBy = SplitByDetail.key;\r\n element.SplitValue = percentage;\r\n });\r\n\r\n resTransactionSplitItemGroup.forEach(element => {\r\n element.SplitBy = SplitByDetail.key;\r\n element.SplitValue = percentage;\r\n });\r\n\r\n }, [SplitByDetail, resTransactionSplitDetail.length]);\r\n\r\n useEffect(() => {\r\n if (SplitByDetail.key == \"sbPercentage\") {\r\n const re = /^[0-9\\b]+$/;\r\n if (percentage != \"\") {\r\n setErrorList((prev) => ({ ...prev, percentageError: \"\" }));\r\n setIsValidate(true);\r\n if (re.test(percentage)) {\r\n setErrorList((prev) => ({ ...prev, percentageError: \"\" }));\r\n setIsValidate(true);\r\n if (parseInt(percentage) > 0 && parseInt(percentage) < 100) {\r\n setErrorList((prev) => ({ ...prev, percentageError: \"\" }));\r\n setIsValidate(true);\r\n let temp1 = [];\r\n let pPercentage = 0;\r\n pPercentage = 100 - parseInt(percentage);\r\n resTransactionSplitByValue.forEach(element => {\r\n for (let i = 0; i < 2; i++) {\r\n let obj = {};\r\n obj.SplitPreview = 1;\r\n obj.WindowSerNo = element.WindowSerNo;\r\n obj.WindowName = element.WindowName;\r\n if (i == 0) {\r\n obj.Amount = ((element.Amount * parseInt(percentage)) / 100);\r\n } else {\r\n obj.Amount = ((element.Amount * parseInt(pPercentage)) / 100);\r\n }\r\n temp1.push(obj);\r\n }\r\n });\r\n setResTransactionSplitItemGroup(temp1);\r\n } else {\r\n //seterrMsg(\"Invalid input. Value entered can be any number between 1% & 99%.\");\r\n setErrorList((prev) => ({ ...prev, percentageError: \"Invalid input. Value entered can be any number between 1% & 99%.\" }));\r\n setIsValidate(false);\r\n }\r\n } else {\r\n //seterrMsg(\"Invalid input. Please enter a numeric value.\");\r\n setErrorList((prev) => ({ ...prev, percentageError: \"Invalid input. Please enter a numeric value.\" }));\r\n setIsValidate(false);\r\n }\r\n } else {\r\n //seterrMsg(\"Invalid input. Please enter a numeric value.\");\r\n setErrorList((prev) => ({ ...prev, percentageError: \"Invalid input. Please enter a numeric value.\" }));\r\n setIsValidate(false);\r\n }\r\n } else if (SplitByDetail.key == \"sbNumber\") {\r\n const re = /^[0-9\\b]+$/;\r\n if (percentage != \"\") {\r\n setErrorList((prev) => ({ ...prev, percentageError: \"\" }));\r\n setIsValidate(true);\r\n if (re.test(percentage)) {\r\n setErrorList((prev) => ({ ...prev, percentageError: \"\" }));\r\n setIsValidate(true);\r\n let temp1 = [];\r\n resTransactionSplitByValue.forEach(element => {\r\n for (let i = 1; i <= parseInt(percentage); i++) {\r\n let obj = {};\r\n obj.SplitPreview = 1;\r\n obj.WindowSerNo = element.WindowSerNo;\r\n obj.WindowName = element.WindowName;\r\n obj.Amount = element.Amount / percentage;\r\n temp1.push(obj);\r\n }\r\n });\r\n setResTransactionSplitItemGroup(temp1);\r\n } else {\r\n //seterrMsg(\"Invalid input. Please enter a numeric value.\");\r\n setErrorList((prev) => ({ ...prev, percentageError: \"Invalid input. Please enter a numeric value.\" }));\r\n setIsValidate(false);\r\n }\r\n } else {\r\n setErrorList((prev) => ({ ...prev, percentageError: \"Invalid input. Please enter a numeric value.\" }));\r\n setIsValidate(false);\r\n }\r\n } else if (SplitByDetail.key == \"sbAmount\") {\r\n\r\n }\r\n\r\n resDefaultTransactionSplitDetail.forEach(element => {\r\n element.SplitBy = SplitByDetail.key;\r\n element.SplitValue = percentage;\r\n });\r\n\r\n resTransactionSplitItemGroup.forEach(element => {\r\n element.SplitBy = SplitByDetail.key;\r\n element.SplitValue = percentage;\r\n });\r\n }, [percentage]);\r\n\r\n useEffect(() => {\r\n let tempDetail = [];\r\n if (SplitByValue == \"Split By Value\") {\r\n setSplitByDetail({ key: \"sbPercentage\" });\r\n let temp = [];\r\n resDefaultTransactionSplitDetail.forEach(element => {\r\n let obj = {};\r\n obj.SplitPreview = 1;\r\n obj.WindowSerNo = element.WindowSerNo;\r\n obj.WindowName = element.WindowName;\r\n if (temp.length > 0 && temp.filter(x => x.WindowSerNo == element.WindowSerNo).length > 0) {\r\n temp.filter(x => x.WindowSerNo == element.WindowSerNo)[0].Amount = (temp.filter(x => x.WindowSerNo == element.WindowSerNo)[0].Amount + element.Amount);\r\n } else {\r\n obj.Amount = (element.Amount);\r\n temp.push(obj);\r\n }\r\n });\r\n setResTransactionSplitByValue(temp);\r\n let temp1 = [];\r\n temp.forEach(element => {\r\n for (let i = 0; i < 2; i++) {\r\n let obj = {};\r\n obj.SplitPreview = 1;\r\n obj.WindowSerNo = element.WindowSerNo;\r\n obj.WindowName = element.WindowName;\r\n obj.Amount = element.Amount / 2;\r\n temp1.push(obj);\r\n }\r\n });\r\n setResTransactionSplitItemGroup(temp1);\r\n } else if (SplitByValue == \"Split By Item Group\") {\r\n resDefaultTransactionSplitDetail.forEach(element => {\r\n let obj = {};\r\n obj.CheckNo = element.CheckNo;\r\n obj.GroupSerNo = element.GroupSerNo;\r\n obj.TransactionDate = element.TransactionDate;\r\n obj.TransactionName = element.TransactionName;\r\n obj.DocumentNo = element.DocumentNo;\r\n obj.WindowName = element.WindowName;\r\n obj.Remarks = element.Remarks;\r\n obj.ReasonSerNo = 0;\r\n obj.SplitRemarks = \"\";\r\n if (tempDetail.length > 0 && tempDetail.filter(x => x.CheckNo == element.CheckNo).length > 0) {\r\n tempDetail.filter(x => x.CheckNo == element.CheckNo)[0].Amount = (tempDetail.filter(x => x.CheckNo == element.CheckNo)[0].Amount + element.Amount);\r\n //obj.Amount = obj.Amount + element.Amount;\r\n } else {\r\n obj.Amount = (element.Amount);\r\n tempDetail.push(obj);\r\n }\r\n });\r\n setResTransactionSplitDetail(tempDetail);\r\n\r\n let temp = [];\r\n resDefaultTransactionSplitDetail.forEach(element => {\r\n let obj = {};\r\n obj.ItemGroupName = element.ItemGroupName;\r\n obj.ItemGroupSerNo = element.ItemGroupSerNo;\r\n obj.WindowSerNo = element.WindowSerNo;\r\n obj.WindowName = element.WindowName;\r\n if (temp.length > 0 && temp.filter(x => x.ItemGroupName == element.ItemGroupName).length > 0) {\r\n temp.filter(x => x.ItemGroupName == element.ItemGroupName)[0].Amount = (temp.filter(x => x.ItemGroupName == element.ItemGroupName)[0].Amount + element.Amount);\r\n } else {\r\n obj.Amount = (element.Amount);\r\n temp.push(obj);\r\n }\r\n });\r\n setResTransactionSplitItemGroup(temp);\r\n\r\n temp = [];\r\n resDefaultTransactionSplitDetail.forEach(element => {\r\n let obj = {};\r\n obj.ItemGroupName = element.ItemGroupName;\r\n obj.ItemGroupSerNo = element.ItemGroupSerNo;\r\n if (temp.length > 0 && temp.filter(x => x.ItemGroupName == element.ItemGroupName).length > 0) {\r\n temp.filter(x => x.ItemGroupName == element.ItemGroupName)[0].Amount = (temp.filter(x => x.ItemGroupName == element.ItemGroupName)[0].Amount + element.Amount);\r\n } else {\r\n obj.Amount = (element.Amount);\r\n temp.push(obj);\r\n }\r\n });\r\n setResTransactionItemGroup(temp);\r\n\r\n temp = [];\r\n resDefaultTransactionSplitDetail.forEach(element => {\r\n let obj = {};\r\n obj.CheckNo = element.CheckNo;\r\n if (temp.length > 0 && temp.filter(x => x.CheckNo == element.CheckNo).length > 0) {\r\n temp.filter(x => x.CheckNo == element.CheckNo)[0].Amount = (temp.filter(x => x.CheckNo == element.CheckNo)[0].Amount + element.Amount);\r\n } else {\r\n obj.Amount = (element.Amount);\r\n temp.push(obj);\r\n }\r\n });\r\n setResTransactionCheck(temp);\r\n\r\n temp = [];\r\n resDefaultTransactionSplitDetail.forEach(element => {\r\n let obj = {};\r\n obj.ItemGroupName = element.ItemGroupName;\r\n obj.ItemGroupSerNo = element.ItemGroupSerNo;\r\n obj.CheckNo = element.CheckNo;\r\n if (temp.length > 0 && temp.filter(x => x.ItemGroupName == element.ItemGroupName && x.CheckNo == element.CheckNo).length > 0) {\r\n temp.filter(x => x.ItemGroupName == element.ItemGroupName && x.CheckNo == element.CheckNo)[0].Amount = (temp.filter(x => x.ItemGroupName == element.ItemGroupName && x.CheckNo == element.CheckNo)[0].Amount + element.Amount);\r\n } else {\r\n obj.Amount = (element.Amount);\r\n temp.push(obj);\r\n }\r\n });\r\n setResTransactionItemGroupCheck(temp);\r\n\r\n resDefaultTransactionSplitDetail.forEach(element => {\r\n element.SplitBy = \"\";\r\n element.SplitValue = \"\";\r\n });\r\n\r\n resTransactionSplitItemGroup.forEach(element => {\r\n element.SplitBy = \"\";\r\n element.SplitValue = \"\";\r\n });\r\n }\r\n }, [SplitByValue]);\r\n\r\n const fillReservationWindowData = (x) => {\r\n GetReservationWindowTransactionData(parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n x.ReservationSerNo).then((d) => {\r\n let tempData1 = [];\r\n d.data.forEach((d) => {\r\n tempData1.push({ key: d.WindowSerNo, value: `W ${d.WindowSerNo}` });\r\n });\r\n setSelectionWindowData(tempData1);\r\n });\r\n };\r\n\r\n const funReasonListData = () => {\r\n GetReasonMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"TSPLT\").then((d) => {\r\n let tempReason = [];\r\n d.data.map((e) => {\r\n tempReason = [...tempReason,\r\n {\r\n key: e.ReasonSerNo,\r\n value: e.Name,\r\n }\r\n ];\r\n });\r\n setReasonListData(tempReason);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n let pObj;\r\n pObj = resTransactionItemGroup;\r\n pObj.forEach(element => {\r\n let tempDetail = [];\r\n resTransactionItemGroupCheck.filter((x1) => x1.ItemGroupSerNo == element.ItemGroupSerNo).forEach(e => {\r\n tempDetail.push(e);\r\n });\r\n element.itemGroupCheck = tempDetail;\r\n });\r\n setResTransactionItemGroup(pObj);\r\n\r\n pObj = resTransactionCheck;\r\n pObj.forEach(element => {\r\n let tempDetail = [];\r\n resTransactionItemGroupCheck.filter((x1) => x1.CheckNo == element.CheckNo).forEach(e => {\r\n tempDetail.push(e);\r\n });\r\n element.itemGroupCheck = tempDetail;\r\n });\r\n setResTransactionCheck(pObj);\r\n }, [resTransactionItemGroupCheck]);\r\n\r\n const funGetReservationTransactionSplitDetail = (parameter) => {\r\n setActive(true);\r\n GetReservationTransactionSplitDetail(parameter).then((d) => {\r\n setResDefaultTransactionSplitDetail(d.data);\r\n if (d.data.length > 0) {\r\n let tempDetail = [];\r\n if (d.data[0].Module == \"R\") {\r\n setShowDetailButton(false);\r\n d.data.forEach(element => {\r\n let obj = {};\r\n obj.ReservationTransactionSerNo = element.ReservationTransactionSerNo;\r\n obj.TransactionDate = element.TransactionDate;\r\n obj.TransactionName = element.TransactionName;\r\n obj.DocumentNo = element.DocumentNo;\r\n obj.WindowSerNo = element.WindowSerNo;\r\n obj.WindowName = element.WindowName;\r\n obj.Remarks = element.Remarks;\r\n obj.ReasonSerNo = 0;\r\n obj.SplitRemarks = \"\";\r\n obj.Amount = element.Amount;\r\n tempDetail.push(obj);\r\n });\r\n setResTransactionSplitDetail(tempDetail);\r\n\r\n let temp = [];\r\n d.data.forEach(element => {\r\n let obj = {};\r\n obj.SplitPreview = 1;\r\n obj.WindowSerNo = element.WindowSerNo;\r\n obj.WindowName = element.WindowName;\r\n if (temp.length > 0 && temp.filter(x => x.WindowSerNo == element.WindowSerNo).length > 0) {\r\n temp.filter(x => x.WindowSerNo == element.WindowSerNo)[0].Amount = (temp.filter(x => x.WindowSerNo == element.WindowSerNo)[0].Amount + element.Amount);\r\n } else {\r\n obj.Amount = (element.Amount);\r\n temp.push(obj);\r\n }\r\n });\r\n setResTransactionSplitByValue(temp);\r\n let temp1 = [];\r\n temp.forEach(element => {\r\n for (let i = 0; i < 2; i++) {\r\n let obj = {};\r\n obj.SplitPreview = 1;\r\n obj.WindowSerNo = element.WindowSerNo;\r\n obj.WindowName = element.WindowName;\r\n obj.Amount = element.Amount / 2;\r\n temp1.push(obj);\r\n }\r\n });\r\n setResTransactionSplitItemGroup(temp1);\r\n\r\n } else {\r\n setShowDetailButton(true);\r\n d.data.forEach(element => {\r\n let obj = {};\r\n obj.CheckNo = element.CheckNo;\r\n obj.GroupSerNo = element.GroupSerNo;\r\n obj.TransactionDate = element.TransactionDate;\r\n obj.TransactionName = element.TransactionName;\r\n obj.DocumentNo = element.DocumentNo;\r\n obj.WindowName = element.WindowName;\r\n obj.Remarks = element.Remarks;\r\n obj.ReasonSerNo = 0;\r\n obj.SplitRemarks = \"\";\r\n if (tempDetail.length > 0 && tempDetail.filter(x => x.CheckNo == element.CheckNo).length > 0) {\r\n tempDetail.filter(x => x.CheckNo == element.CheckNo)[0].Amount = (tempDetail.filter(x => x.CheckNo == element.CheckNo)[0].Amount + element.Amount);\r\n //obj.Amount = obj.Amount + element.Amount;\r\n } else {\r\n obj.Amount = (element.Amount);\r\n tempDetail.push(obj);\r\n }\r\n });\r\n setResTransactionSplitDetail(tempDetail);\r\n\r\n let temp = [];\r\n d.data.forEach(element => {\r\n let obj = {};\r\n obj.ItemGroupName = element.ItemGroupName;\r\n obj.ItemGroupSerNo = element.ItemGroupSerNo;\r\n obj.WindowSerNo = element.WindowSerNo;\r\n obj.WindowName = element.WindowName;\r\n if (temp.length > 0 && temp.filter(x => x.ItemGroupName == element.ItemGroupName).length > 0) {\r\n temp.filter(x => x.ItemGroupName == element.ItemGroupName)[0].Amount = (temp.filter(x => x.ItemGroupName == element.ItemGroupName)[0].Amount + element.Amount);\r\n //obj.Amount = obj.Amount + element.Amount;\r\n } else {\r\n obj.Amount = (element.Amount);\r\n temp.push(obj);\r\n }\r\n });\r\n setResTransactionSplitItemGroup(temp);\r\n\r\n temp = [];\r\n d.data.forEach(element => {\r\n let obj = {};\r\n obj.ItemGroupName = element.ItemGroupName;\r\n obj.ItemGroupSerNo = element.ItemGroupSerNo;\r\n if (temp.length > 0 && temp.filter(x => x.ItemGroupName == element.ItemGroupName).length > 0) {\r\n temp.filter(x => x.ItemGroupName == element.ItemGroupName)[0].Amount = (temp.filter(x => x.ItemGroupName == element.ItemGroupName)[0].Amount + element.Amount);\r\n } else {\r\n obj.Amount = (element.Amount);\r\n temp.push(obj);\r\n }\r\n });\r\n setResTransactionItemGroup(temp);\r\n\r\n temp = [];\r\n d.data.forEach(element => {\r\n let obj = {};\r\n obj.CheckNo = element.CheckNo;\r\n if (temp.length > 0 && temp.filter(x => x.CheckNo == element.CheckNo).length > 0) {\r\n temp.filter(x => x.CheckNo == element.CheckNo)[0].Amount = (temp.filter(x => x.CheckNo == element.CheckNo)[0].Amount + element.Amount);\r\n } else {\r\n obj.Amount = (element.Amount);\r\n temp.push(obj);\r\n }\r\n });\r\n setResTransactionCheck(temp);\r\n\r\n temp = [];\r\n d.data.forEach(element => {\r\n let obj = {};\r\n obj.ItemGroupName = element.ItemGroupName;\r\n obj.ItemGroupSerNo = element.ItemGroupSerNo;\r\n obj.CheckNo = element.CheckNo;\r\n if (temp.length > 0 && temp.filter(x => x.ItemGroupName == element.ItemGroupName && x.CheckNo == element.CheckNo).length > 0) {\r\n temp.filter(x => x.ItemGroupName == element.ItemGroupName && x.CheckNo == element.CheckNo)[0].Amount = (temp.filter(x => x.ItemGroupName == element.ItemGroupName && x.CheckNo == element.CheckNo)[0].Amount + element.Amount);\r\n } else {\r\n obj.Amount = (element.Amount);\r\n temp.push(obj);\r\n }\r\n });\r\n setResTransactionItemGroupCheck(temp);\r\n }\r\n }\r\n });\r\n setActive(false);\r\n };\r\n\r\n const handleApplyClick = () => {\r\n let isValid = true;\r\n isValid = isValidate;\r\n setActive(true);\r\n resDefaultTransactionSplitDetail.forEach(element => {\r\n element.ReasonSerNo = selectedReason.key;\r\n element.SplitRemarks = note;\r\n if (SplitByValue == \"Split By Value\") {\r\n element.SplitBy = SplitByDetail.key;\r\n element.SplitValue = percentage;\r\n } else if (SplitByValue == \"Split By Item Group\") {\r\n element.SplitBy = \"\";\r\n element.SplitValue = \"\";\r\n }\r\n });\r\n\r\n if (SplitByValue == \"Split By Value\") {\r\n resTransactionSplitItemGroup.forEach(element => {\r\n element.SplitBy = SplitByDetail.key;\r\n element.SplitValue = percentage;\r\n });\r\n } else if (SplitByValue == \"Split By Item Group\") {\r\n resTransactionSplitItemGroup.forEach(element => {\r\n element.SplitBy = \"\";\r\n element.SplitValue = \"\";\r\n });\r\n }\r\n\r\n if (selectedReason.key == 0) {\r\n //seterrMsg(\"select split reason first.\");\r\n setErrorList((prev) => ({ ...prev, reasonError: \"select split reason first.\" }));\r\n isValid = false;\r\n }\r\n\r\n //Commented on 16-05-2023 as per Cashiering return points note field is not mandatory in any page.\r\n // if (note == \"\") {\r\n //seterrMsg(\"enter split reason remarks.\");\r\n // setErrorList((prev) => ({...prev,remarksError : \"Enter split reason remarks.\"}));\r\n // isValid = false;\r\n // }\r\n\r\n if (isValid) {\r\n PostReservationTransactionSplitItemGroupDetail(resDefaultTransactionSplitDetail).then((d) => {\r\n if (d.data == \"Done\") {\r\n alert(\"sucess.\");\r\n if (props.OnApply == undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.OnApply(true);\r\n }\r\n } else if (d.data == \"Data\") {\r\n alert(\"Please refresh data.\");\r\n } else {\r\n alert(\"problem in split item group wise.\");\r\n }\r\n });\r\n } else {\r\n alert(\"One or more validation error occured.\");\r\n }\r\n setActive(false);\r\n };\r\n\r\n const handleOnclose = () => {\r\n if (props.handleOnclose() == undefined) {\r\n console.log(\"handleOnclose is not defined\");\r\n } else {\r\n props.OnClose(false);\r\n }\r\n };\r\n\r\n const handleOnRemoveClick = (e) => {\r\n if (e.target !== undefined) {\r\n let temp = JSON.parse(JSON.stringify(resTransactionSplitDetail));\r\n if (temp.length > 1) {\r\n let tempObj = temp.find(x => x.ReservationTransactionSerNo === e.target.id);\r\n if (temp !== undefined) {\r\n temp.splice(temp.indexOf(tempObj), 1);\r\n }\r\n setResTransactionSplitDetail(temp);\r\n let temp1 = [];\r\n temp.forEach(element => {\r\n let obj = {};\r\n obj.SplitPreview = 1;\r\n obj.WindowSerNo = element.WindowSerNo;\r\n obj.WindowName = element.WindowName;\r\n if (temp1.length > 0 && temp1.filter(x => x.WindowSerNo == element.WindowSerNo).length > 0) {\r\n temp1.filter(x => x.WindowSerNo == element.WindowSerNo)[0].Amount = (temp.filter(x => x.WindowSerNo == element.WindowSerNo)[0].Amount + element.Amount);\r\n } else {\r\n obj.Amount = (element.Amount);\r\n temp1.push(obj);\r\n }\r\n });\r\n setResTransactionSplitByValue(temp1);\r\n } else {\r\n alert('Can not remove last transaction.');\r\n }\r\n }\r\n };\r\n\r\n const funItemGroupSelectionChange = (x, y) => {\r\n resDefaultTransactionSplitDetail.forEach(element => {\r\n if (element.ItemGroupSerNo == y.ItemGroupSerNo) {\r\n element.WindowSerNo = x.key;\r\n }\r\n });\r\n\r\n resTransactionSplitItemGroup.forEach(element => {\r\n if (element.ItemGroupSerNo == y.ItemGroupSerNo) {\r\n element.WindowSerNo = x.key;\r\n }\r\n });\r\n };\r\n\r\n return (\r\n {\r\n props.OnClose(false);\r\n }}>\r\n
    \r\n
    \r\n
    \r\n

    Transaction Split

    \r\n
    \r\n
    \r\n { handleApplyClick(); }}>Apply\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSplitByValue(value);\r\n\r\n }}>\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {/*
    \r\n { console.log(\"checkbox is \" + ischecked); }} >Select All\r\n
    */}\r\n
    \r\n
      \r\n {\r\n resTransactionSplitDetail.map((item, index) =>\r\n
    • \r\n
      {item.TransactionDate}
      \r\n
      {item.TransactionName}
      \r\n
      {item.DocumentNo}
      \r\n
      \r\n {item.WindowName} Note\r\n
      \r\n {item.Amount.toFixed(2)}\r\n \r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {SplitByValue == \"Split By Value\" ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSplitByDetail(x);\r\n }}>\r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n setPercentage(v);\r\n }}>\r\n {labelPercentage}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n resTransactionSplitItemGroup.map((item, index) =>\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n
    Split PreviewAmountWindow
    {item.SplitPreview}{item.Amount.toFixed(2)}\r\n
    \r\n {\r\n funItemGroupSelectionChange(x, item);\r\n }}>\r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n showDetailButton ? (\r\n
    \r\n setShowTransSplitValueDetailPopup(!showTransSplitValueDetailPopup)}>\r\n Details\r\n \r\n
    \r\n ) : null\r\n }\r\n
    \r\n ) : SplitByValue == \"Split By Item Group\" ? (\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n resTransactionSplitItemGroup.map((item, index) =>\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n
    Split By Item GroupAmountWindow
    {item.ItemGroupName}{item.Amount.toFixed(2)}\r\n
    \r\n {\r\n funItemGroupSelectionChange(x, item);\r\n }}>\r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n showDetailButton ? (\r\n
    \r\n setShowTransSplitGroupDetailPopup(!showTransSplitGroupDetailPopup)}>\r\n Details\r\n \r\n
    \r\n ) : null\r\n }\r\n
    \r\n ) : (\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedReason(x);\r\n }}>\r\n \r\n
    \r\n {\r\n setNote(v);\r\n }}>\r\n Note\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {showTransSplitGroupDetailPopup ? (\r\n setShowTransSplitGroupDetailPopup(false)}>\r\n
    \r\n
    \r\n
    \r\n

    Details

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n\r\n {\r\n resTransactionItemGroup.map((item) =>\r\n
    • \r\n
      \r\n {item.ItemGroupName}\r\n {item.Amount.toFixed(2)}\r\n
      {\r\n item.itemGroupCheck.map((x) =>\r\n
      \r\n {x.CheckNo}\r\n {x.Amount.toFixed(2)}\r\n
      \r\n )\r\n }\r\n
    • \r\n )\r\n\r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n\r\n {showTransSplitValueDetailPopup ? (\r\n setShowTransSplitValueDetailPopup(false)}>\r\n
    \r\n
    \r\n
    \r\n

    Details

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n {\r\n resTransactionCheck.map((item) =>\r\n
    • \r\n
      \r\n {item.CheckNo}\r\n {item.Amount.toFixed(2)}\r\n
      \r\n {\r\n item.itemGroupCheck.map((x1) =>\r\n
      \r\n {x1.ItemGroupName}\r\n {x1.Amount.toFixed(2)}\r\n
      \r\n )\r\n }\r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n ) : null}\r\n \r\n\r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { InnModalPopup, InnTextarea, InnTextbox, InnSingleSelectDropdown, InnPrimaryButton, InnActionButton, useConfirm } from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetPaymentSplitDetail } from \"../../../../services/reservationCashieringService\";\r\nimport { GetReservationWindowRoutingList } from \"../../../../services/reservationCashieringService\";\r\nimport { GetReservationInfoProfileData, GetReservationInfoData } from \"../../../../services/reservationService\";\r\nimport { manageReservationIndicator } from \"../../../../services/reservationService\";\r\nimport { GetReasonMaster } from \"../../../../services/generalService\";\r\nimport { AddReservationPaymentSplitDetail } from \"../../../../services/reservationCashieringService\";\r\n\r\nexport function PaymentSplitModalPopup(props) {\r\n const currUser = useSelector(currentUser);\r\n //#region local variables\r\n const { confirm } = useConfirm();\r\n\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const selectdata = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n const splitByCombo = [\r\n { key: \"\", value: \"Select\" },\r\n { key: \"P\", value: \"Split by Percentage\" },\r\n { key: \"A\", value: \"Split By Amount\" },\r\n { key: \"N\", value: \"Split By Number\" },\r\n ];\r\n const validationObj = {\r\n Amount: \"\",\r\n Reason: \"\",\r\n SplitBy: \"\",\r\n };\r\n //#endregion\r\n\r\n //#region state\r\n const [cmbWindow, setCmbWindow] = useState([]);\r\n const [reservationInfoData, setReservationInfoData] = useState({});\r\n const [reservationGuestInfoData, setReservationGuestInfoData] = useState({});\r\n const [reservationRoomTypeData, setReservationRoomTypeData] = useState({});\r\n const [paymentSplitDetail, setPaymentSplitDetail] = useState({});\r\n const [selectedSplitBy, setSelectedSplitBy] = useState({ key: \"\", value: \"Select\" });\r\n const [reasonData, setReasonData] = useState([{ key: 0, value: \"Select\" }]);\r\n const [selectedReason, setSelectedReason] = useState({ key: 0, value: \"Select\" });\r\n const [paymentSplitRemark, setPaymentSplitRemark] = useState(\"\");\r\n const [valueOnSplitBy, setValueOnSplitBy] = useState(\"\");\r\n const [splitByData, setSplitByData] = useState([]);\r\n const [paymentSplitValidation, setPaymentSplitValidation] = useState(validationObj);\r\n //#endregion\r\n\r\n //#region api calls\r\n const fillReservationInfoData = (ReservationSerNo) => {\r\n GetReservationInfoData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then((d) => {\r\n setReservationInfoData(d.data);\r\n fillReservationGuestInfoData(d.data.GuestProfileSerNo);\r\n fillReservationRoomTypeData(d.data);\r\n });\r\n };\r\n const fillReservationGuestInfoData = (GuestProfileSerNo) => {\r\n GetReservationInfoProfileData(parseInt(currUser.ClientSerNo), GuestProfileSerNo, \"GU\").then((d) => {\r\n setReservationGuestInfoData(d.data);\r\n });\r\n };\r\n const fillReservationRoomTypeData = (x) => {\r\n manageReservationIndicator(x.ClientSerNo, x.PropertySerNo, x.ReservationSerNo).then((d) => {\r\n setReservationRoomTypeData(d.data);\r\n });\r\n };\r\n const fillReasonMasterData = () => {\r\n GetReasonMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"TSPLT\").then((d) => {\r\n let tempData = [];\r\n for (let i = 0; i < d.data.length; i++) {\r\n tempData.push({\r\n key: d.data[i].ReasonSerNo,\r\n value: d.data[i].Name,\r\n });\r\n }\r\n setReasonData(tempData);\r\n });\r\n };\r\n\r\n const GetPaymentSplitDetails = () => {\r\n if (props.para !== undefined) {\r\n if (props.para.ReservationSerNo != undefined && props.para.ReservationTransactionSerNo != undefined) {\r\n GetPaymentSplitDetail(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), props.para.ReservationSerNo, props.para.ReservationTransactionSerNo).then((d) => {\r\n console.log(d.data);\r\n if (d.data.length > 0) {\r\n setPaymentSplitDetail(d.data[0]);\r\n }\r\n });\r\n } else {\r\n console.log(\"props details missing...\");\r\n }\r\n } else {\r\n console.log(\"props details missing...\");\r\n }\r\n };\r\n const getReservationwindowRoutingList = () => {\r\n GetReservationWindowRoutingList(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), props.para.ReservationSerNo)\r\n .then((d) => {\r\n let cmbWindowList = [];\r\n d.data.map((element) => {\r\n cmbWindowList.push({ key: element.WindowSerNo, value: `W ${element.WindowSerNo}` });\r\n });\r\n setCmbWindow(cmbWindowList);\r\n })\r\n .catch((error) => {\r\n setCmbWindow([]);\r\n });\r\n };\r\n //#endregion\r\n\r\n //#region events\r\n const handleCloseClick = () => {\r\n if (props.OnClose !== undefined) {\r\n props.OnClose();\r\n } else {\r\n console.log(\"props.onclose is undefined\");\r\n }\r\n };\r\n const handleTransaction = () => {\r\n const data = paymentSplitDetail;\r\n if (selectedSplitBy.key === \"P\" || selectedSplitBy.key == \"A\") {\r\n let totalAmount = parseFloat(data.Amount);\r\n let tempData = [];\r\n for (let i = 0; i < 2; i++) {\r\n let target = {\r\n TransAmount: 0,\r\n WindowSerNo: 1,\r\n SplitSeqNo: 0,\r\n Sequence: 0,\r\n };\r\n let tempAmount = 0;\r\n if (selectedSplitBy.key == \"P\" && parseFloat(valueOnSplitBy) < 100) {\r\n if (i === 0) {\r\n tempAmount = (totalAmount * parseFloat(valueOnSplitBy)) / 100;\r\n target.SplitSeqNo = 1;\r\n } else if (i === 1) {\r\n tempAmount = (totalAmount * (100 - parseFloat(valueOnSplitBy))) / 100;\r\n target.SplitSeqNo = 2;\r\n }\r\n } else if (selectedSplitBy.key == \"A\") {\r\n if (i === 0) {\r\n tempAmount = parseFloat(valueOnSplitBy);\r\n target.SplitSeqNo = 1;\r\n } else if (i === 1) {\r\n tempAmount = totalAmount - parseFloat(valueOnSplitBy);\r\n target.SplitSeqNo = 2;\r\n }\r\n } else {\r\n break;\r\n }\r\n\r\n target.Sequence = i + 1;\r\n target.TransAmount = tempAmount;\r\n tempData.push(target);\r\n }\r\n setSplitByData(tempData);\r\n } else if (selectedSplitBy.key === \"N\") {\r\n let totalAmount = parseFloat(data.Amount);\r\n let tempData = [];\r\n for (let i = 0; i < parseInt(valueOnSplitBy); i++) {\r\n let target = {\r\n TransAmount: 0,\r\n WindowSerNo: 1,\r\n SplitSeqNo: 0,\r\n Sequence: 0,\r\n };\r\n let tempAmount = totalAmount / parseInt(valueOnSplitBy);\r\n if (i === 0) {\r\n target.SplitSeqNo = 1;\r\n } else {\r\n target.SplitSeqNo = 2;\r\n }\r\n target.Sequence = i + 1;\r\n target.TransAmount = tempAmount;\r\n tempData.push(target);\r\n }\r\n setSplitByData(tempData);\r\n } else {\r\n setValueOnSplitBy(\"\");\r\n setSplitByData([]);\r\n }\r\n };\r\n const handleWindowChange = (x, item) => {\r\n let temp = JSON.parse(JSON.stringify(splitByData));\r\n temp.forEach((o) => {\r\n if (o.Sequence === item.Sequence) {\r\n o.WindowSerNo = x.key;\r\n }\r\n });\r\n setSplitByData(temp);\r\n };\r\n const handleOnAmountChange = (v) => {\r\n if (selectedSplitBy.key !== \"\") {\r\n if (!isNaN(v) && v !== \"\") {\r\n if (selectedSplitBy.key === \"P\") {\r\n if (v >= 100) {\r\n setPaymentSplitValidation((prev) => ({ ...prev, Amount: \"Please enter less than 100\" }));\r\n } else {\r\n setPaymentSplitValidation((prev) => ({ ...prev, Amount: \"\" }));\r\n }\r\n } else if (selectedSplitBy.key === \"A\") {\r\n if (v >= paymentSplitDetail.Amount) {\r\n setPaymentSplitValidation((prev) => ({\r\n ...prev,\r\n Amount: `Please enter amount less than ${paymentSplitDetail.Amount}`,\r\n }));\r\n } else {\r\n setPaymentSplitValidation((prev) => ({ ...prev, Amount: \"\" }));\r\n }\r\n } else {\r\n setPaymentSplitValidation((prev) => ({ ...prev, Amount: \"\" }));\r\n }\r\n } else {\r\n setPaymentSplitValidation((prev) => ({\r\n ...prev,\r\n Amount: \"Invalid input. Please enter a numeric value.\",\r\n }));\r\n }\r\n }\r\n setValueOnSplitBy(v);\r\n };\r\n const handleOnSaveClick = async () => {\r\n let IsValid = true;\r\n let commentData = [];\r\n let comment = \"\";\r\n if (isNaN(valueOnSplitBy) || valueOnSplitBy == \"\") {\r\n IsValid = false;\r\n commentData.push(\"invalid amount\");\r\n setPaymentSplitValidation((prev) => ({ ...prev, Amount: \"Invalid input.\" }));\r\n }\r\n if (selectedReason.key === 0) {\r\n IsValid = false;\r\n commentData.push(\"select reason\");\r\n setPaymentSplitValidation((prev) => ({ ...prev, Reason: \"please select reason for split.\" }));\r\n }\r\n if (selectedSplitBy.key === \"\") {\r\n IsValid = false;\r\n commentData.push(\"select Split by type\");\r\n setPaymentSplitValidation((prev) => ({ ...prev, SplitBy: \"please select split by.\" }));\r\n }\r\n if (IsValid) {\r\n let tempData = [];\r\n for (let i = 0; i < splitByData.length; i++) {\r\n tempData.push({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: props.para.ReservationSerNo,\r\n ReservationTransactionSerNo: parseInt(props.para.ReservationTransactionSerNo),\r\n SplitValue: parseFloat(valueOnSplitBy),\r\n WindowSerNo: splitByData[i].WindowSerNo,\r\n SplitBy: selectedSplitBy.key,\r\n TransAmount: splitByData[i].TransAmount,\r\n SplitSeqNo: splitByData[i].SplitSeqNo,\r\n ReasonSerNo: selectedReason.key,\r\n Remarks: paymentSplitRemark,\r\n Result: \"\",\r\n });\r\n }\r\n let IsWindowEmpty = false;\r\n tempData.forEach((x) => {\r\n if (x.WindowSerNo === 0) {\r\n IsWindowEmpty = true;\r\n }\r\n });\r\n if (!IsWindowEmpty) {\r\n if (splitByData.length > 1) {\r\n if (selectedSplitBy.key !== \"N\") {\r\n AddReservationPaymentSplitDetail(tempData).then(async (d) => {\r\n alertFunction(d.data.Message);\r\n props.OnClose();\r\n });\r\n setPaymentSplitValidation(validationObj);\r\n } else {\r\n alertFunction(\"Split by number is not allowed at this moment...\");\r\n }\r\n } else {\r\n alertFunction(\"error occurred...\");\r\n }\r\n } else {\r\n alertFunction(\"one or more windows are empty...\");\r\n }\r\n } else {\r\n alertFunction(commentData.toString());\r\n }\r\n };\r\n //#endregion\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n getReservationwindowRoutingList();\r\n GetPaymentSplitDetails();\r\n if (props.para != undefined) {\r\n if (props.para.ReservationSerNo != undefined) {\r\n fillReservationInfoData(props.para.ReservationSerNo);\r\n }\r\n }\r\n fillReasonMasterData();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (selectedSplitBy.key !== 0 && valueOnSplitBy !== 0 && valueOnSplitBy !== \"\" && !isNaN(valueOnSplitBy.toString().trim())) {\r\n if ((valueOnSplitBy < 100 && selectedSplitBy.key === \"P\") || (valueOnSplitBy < paymentSplitDetail.Amount && selectedSplitBy.key === \"A\")) {\r\n setPaymentSplitValidation((prev) => ({ ...prev, Amount: \"\" }));\r\n handleTransaction();\r\n } else if (selectedSplitBy.key === \"N\") {\r\n setPaymentSplitValidation((prev) => ({ ...prev, Amount: \"\" }));\r\n handleTransaction();\r\n } else {\r\n setSplitByData([]);\r\n let comment = \"\";\r\n if (selectedSplitBy.key === \"P\") {\r\n comment = \"Please enter percentage less than 100\";\r\n } else if (selectedSplitBy.key === \"A\") {\r\n comment = `Please enter amount less than ${paymentSplitDetail.Amount}`;\r\n } else {\r\n comment = \"Invalid input. Please enter a nmeric value.\";\r\n }\r\n setPaymentSplitValidation((prev) => ({ ...prev, Amount: comment }));\r\n }\r\n } else {\r\n setSplitByData([]);\r\n }\r\n }, [selectedSplitBy.key, valueOnSplitBy]);\r\n\r\n //#endregion\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n

    Payment Split

    \r\n
    \r\n
    \r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      \r\n Room No / Room Type\r\n {reservationRoomTypeData && reservationRoomTypeData.RoomTypeSerNo > reservationRoomTypeData.ChargeableRoomTypeSerNo ? : reservationRoomTypeData.RoomTypeSerNo < reservationRoomTypeData.ChargeableRoomTypeSerNo ? : }\r\n
      \r\n
      \r\n {reservationRoomTypeData.RoomNo}/{reservationRoomTypeData.RoomTypeName}\r\n
      \r\n
    • \r\n
    • \r\n
      Confirmation No.
      \r\n
      {reservationInfoData.BookingNo}
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      {reservationGuestInfoData.ProfileName}
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { }} disabled>\r\n Mode of Payment\r\n \r\n console.log(v)} disabled>\r\n Window No\r\n \r\n
    \r\n
    \r\n { }} disabled>\r\n Amount\r\n \r\n
    \r\n
    \r\n { }} disabled>\r\n Tax\r\n \r\n
    \r\n
    \r\n\r\n { }} disabled>\r\n Document Reference\r\n \r\n { }} disabled>\r\n Transaction Date\r\n \r\n { }} disabled>\r\n Receipt No\r\n \r\n { }} disabled>\r\n Note\r\n \r\n\r\n
    \r\n Preview Receipt\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedSplitBy(item);\r\n if (item.key === \"\") {\r\n setValueOnSplitBy(\"\");\r\n }\r\n }}>\r\n
    \r\n
    \r\n
    \r\n handleOnAmountChange(v)}>\r\n {selectedSplitBy.key == \"\" ? \"Percentage/ Amount/ Number\" : selectedSplitBy.key == \"P\" ? \"Percentage\" : selectedSplitBy.key == \"A\" ? \"Amount\" : selectedSplitBy.key == \"N\" ? \"Number\" : \"\"}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {splitByData.map((item, index) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n
    Split PreviewAmountWindow
    {item.Sequence}{item.TransAmount?.toFixed(2)}\r\n
    \r\n {\r\n handleWindowChange(x, item);\r\n }}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedReason(item);\r\n }}>\r\n
    \r\n {\r\n setPaymentSplitRemark(v);\r\n }}>\r\n Note\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nimport {\r\n InnActionButton, InnPrimaryButton, InnTextbox, InnPlainButton,\r\n InnModalPopup, InnRadioButton, InnSingleSelectDropdown, InnTextarea,\r\n InnCheckbox\r\n} from \"../../../../component\";\r\nimport { GetReasonMaster } from \"../../../../services/generalService\";\r\nimport { GetReservationTransactionSplitDetail, ProcessReservationTransactionFandBAllowance } from \"../../../../services/reservationCashieringService\";\r\nimport { element } from \"prop-types\";\r\nimport { useAlert } from \"../../../../utils/hooks/useAlert\";\r\n\r\nconst selectdata = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n];\r\n\r\nexport function ReservationTransactionFAndBAllowanceModalPopup(props) {\r\n const currUser = useSelector(currentUser);\r\n const [showAllowanceFBPopup, setShowAllowanceFBPopup] = useState(false);\r\n const [reasonList, setReasonList] = useState([]);\r\n const [note, setNote] = useState(\"\");\r\n const [isTaxInclusive, setIsTaxInclusive] = useState(false);\r\n const [resDefaultTransactionDetail, setResDefaultTransactionDetail] = useState([]);\r\n const [resTransactionItemGroup, setResTransactionItemGroup] = useState([]);\r\n const [resTransactionDetail, setResTransactionDetail] = useState([]);\r\n const [selectedReason, setSelectedReason] = useState({ key: 0, value: \"Select\" });\r\n const [errorList, setErrorList] = useState({ reasonErr: \"\", remarksErr: \"\" });\r\n const { innkeyAlert } = useAlert();\r\n\r\n let parameter;\r\n useEffect(() => {\r\n parameter = props.data;\r\n funGetReasonMaster();\r\n funGetReservationTransactionData(parameter);\r\n }, []);\r\n\r\n const funGetReasonMaster = () => {\r\n GetReasonMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"CAN\").then(d => {\r\n let defaultReason = [];\r\n d.data.map((e) => {\r\n defaultReason =\r\n [...defaultReason,\r\n {\r\n key: e.ReasonSerNo,\r\n value: e.Name,\r\n }];\r\n });\r\n setReasonList(defaultReason);\r\n });\r\n };\r\n\r\n const funGetReservationTransactionData = (parameter) => {\r\n GetReservationTransactionSplitDetail(parameter).then((d) => {\r\n setResDefaultTransactionDetail(d.data);\r\n if (d.data != undefined) {\r\n let tempDetail = [];\r\n d.data.forEach(element => {\r\n let obj = {};\r\n obj.CheckNo = element.CheckNo;\r\n obj.GroupSerNo = element.GroupSerNo;\r\n obj.TransactionDate = element.TransactionDate;\r\n obj.TransactionName = element.TransactionName;\r\n obj.DocumentNo = element.DocumentNo;\r\n obj.WindowName = element.WindowName;\r\n obj.Remarks = element.Remarks;\r\n obj.ReasonSerNo = 0;\r\n obj.SplitRemarks = \"\";\r\n if (tempDetail.length > 0 && tempDetail.filter(x => x.CheckNo == element.CheckNo).length > 0) {\r\n tempDetail.filter(x => x.CheckNo == element.CheckNo)[0].Amount = (tempDetail.filter(x => x.CheckNo == element.CheckNo)[0].Amount + element.Amount);\r\n tempDetail.filter(x => x.CheckNo == element.CheckNo)[0].TaxAmount = (tempDetail.filter(x => x.CheckNo == element.CheckNo)[0].TaxAmount + element.TaxAmount);\r\n } else {\r\n obj.Amount = (element.Amount);\r\n obj.TaxAmount = (element.TaxAmount);\r\n tempDetail.push(obj);\r\n }\r\n });\r\n setResTransactionDetail(tempDetail);\r\n\r\n let temp = [];\r\n d.data.forEach(element => {\r\n let obj = {};\r\n obj.ItemGroupName = element.ItemGroupName;\r\n obj.ItemGroupSerNo = element.ItemGroupSerNo;\r\n obj.AllowanceAmount = element.AllowanceAmount;\r\n obj.ItemGroupErr = \"\";\r\n obj.newAllowanceAmount = \"0\";\r\n if (temp.length > 0 && temp.filter(x => x.ItemGroupName == element.ItemGroupName).length > 0) {\r\n temp.filter(x => x.ItemGroupName == element.ItemGroupName)[0].Amount = (temp.filter(x => x.ItemGroupName == element.ItemGroupName)[0].Amount + element.Amount);\r\n } else {\r\n obj.Amount = (element.Amount);\r\n temp.push(obj);\r\n }\r\n });\r\n setResTransactionItemGroup(temp);\r\n }\r\n });\r\n };\r\n\r\n const funItemGroupAmountChange = (x, y) => {\r\n let tempresTransactionItemGroup = JSON.parse(JSON.stringify(resTransactionItemGroup));\r\n\r\n tempresTransactionItemGroup.forEach(element => {\r\n if (element.ItemGroupSerNo == x.ItemGroupSerNo) {\r\n element.newAllowanceAmount = y;\r\n }\r\n });\r\n setResTransactionItemGroup(tempresTransactionItemGroup);\r\n };\r\n\r\n const validate = () => {\r\n let isValid = true;\r\n\r\n if (selectedReason.key == 0) {\r\n isValid = false;\r\n setErrorList((prev) => ({ ...prev, reasonErr: \"select allowance reason first.\" }));\r\n }\r\n\r\n //Commented on 16-05-2023 as per cashiering return points that note field is not mandatory in any pages.\r\n // if (note == \"\") {\r\n // isValid = false;\r\n // setErrorList((prev) => ({ ...prev, remarksErr: \"enter allowance remarks.\" }));\r\n // }\r\n\r\n let tempresTransactionItemGroup = JSON.parse(JSON.stringify(resTransactionItemGroup));\r\n tempresTransactionItemGroup.forEach(element => {\r\n if (element.newAllowanceAmount.trim() == \"\" || isNaN(element.newAllowanceAmount)) {\r\n element.ItemGroupErr = \"Please enter valid allowance amount\";\r\n } else {\r\n if (element.newAllowanceAmount < 0) {\r\n element.ItemGroupErr = \"Please enter valid allowance amount\";\r\n } else {\r\n if (element.Amount < element.newAllowanceAmount) {\r\n element.ItemGroupErr = \"The amount entered cannot be greater than the value displayed on the respective item group. Please re-enter a logical value.\";\r\n } else {\r\n element.ItemGroupErr = \"\";\r\n }\r\n }\r\n }\r\n });\r\n setResTransactionItemGroup(tempresTransactionItemGroup);\r\n\r\n return isValid;\r\n };\r\n\r\n const handleOnClick = () => {\r\n let isValid = validate();\r\n\r\n if (isValid) {\r\n resDefaultTransactionDetail.forEach(element => {\r\n resTransactionItemGroup.forEach(x => {\r\n if (x.ItemGroupSerNo == element.ItemGroupSerNo) {\r\n element.newAllowanceAmount = x.newAllowanceAmount;\r\n }\r\n });\r\n element.isTaxInclusive = isTaxInclusive;\r\n element.ReasonSerNo = selectedReason.key;\r\n element.SplitRemarks = note;\r\n });\r\n\r\n console.log(\"Final : \", resDefaultTransactionDetail);\r\n ProcessReservationTransactionFandBAllowance(resDefaultTransactionDetail).then((d) => {\r\n if (d.data == \"Done\") {\r\n alert(\"sucess.\");\r\n props.OnClose();\r\n } else if (d.data == \"Data\") {\r\n alert(\"Please refresh data.\");\r\n } else {\r\n alert(\"problem in FandB Allowance.\");\r\n }\r\n });\r\n }\r\n };\r\n\r\n const onPopupClose = async () => {\r\n let isChange = false;\r\n resDefaultTransactionDetail.forEach(element => {\r\n if (element.newAllowanceAmount != 0) {\r\n isChange = true;\r\n }\r\n });\r\n\r\n if (isChange) {\r\n let isConfirmed = true;\r\n isConfirmed = await innkeyAlert(\"Would you like to discard the changes made?\");\r\n if (isConfirmed) {\r\n props.OnClose(false);\r\n }\r\n } else {\r\n props.OnClose(false);\r\n }\r\n };\r\n\r\n return (\r\n { onPopupClose(); }}>\r\n
    \r\n
    \r\n
    \r\n

    F&B Allowance

    \r\n
    \r\n
    \r\n {\r\n handleOnClick();\r\n }}>Apply\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n resTransactionDetail.map((item) =>\r\n
    \r\n console.log(v)}\r\n disabled>\r\n Transaction\r\n \r\n console.log(v)}\r\n disabled>\r\n Date\r\n \r\n console.log(v)}\r\n disabled>\r\n Document No.\r\n \r\n console.log(v)} disabled>\r\n Window\r\n \r\n console.log(v)}\r\n disabled>\r\n Transaction Amount\r\n \r\n console.log(v)}\r\n disabled>\r\n Tax Amount\r\n \r\n console.log(v)}\r\n disabled>\r\n Note\r\n \r\n
    \r\n Preview Check\r\n
    \r\n
    \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n resTransactionItemGroup.map((item) =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n
    Item GroupAmountPrev. AllowanceAllowance
    {item.ItemGroupName}{item.Amount.toFixed(2)}{item.AllowanceAmount.toFixed(2)}\r\n {\r\n funItemGroupAmountChange(item, x);\r\n }}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setIsTaxInclusive(ischecked);\r\n }}>\r\n Inclusive of Taxes\r\n \r\n
    \r\n {\r\n setSelectedReason(x);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n { setNote(x); }}>\r\n Note\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { GetFrontInvoiceDetails } from '../../../services/reservationCashieringService';\r\nimport orchidLogo from \"../../../assets/images/the_orchid_logo.svg\";\r\nimport Qr from \"../../../assets/images/qr.jpg\";\r\nimport InnkeyPmsLogo from \"../../../assets/images/innkeypmslogo.svg\";\r\nimport { useRef } from 'react';\r\nimport ReactToPrint from \"react-to-print\";\r\n\r\nexport default function FrontInvoice(props) {\r\n const myRef = useRef();\r\n const printRef = useRef();\r\n\r\n\r\n //start \r\n function price_in_words(price) {\r\n var sglDigit = [\"Zero\", \"One\", \"Two\", \"Three\", \"Four\", \"Five\", \"Six\", \"Seven\", \"Eight\", \"Nine\"],\r\n dblDigit = [\"Ten\", \"Eleven\", \"Twelve\", \"Thirteen\", \"Fourteen\", \"Fifteen\", \"Sixteen\", \"Seventeen\", \"Eighteen\", \"Nineteen\"],\r\n tensPlace = [\"\", \"Ten\", \"Twenty\", \"Thirty\", \"Forty\", \"Fifty\", \"Sixty\", \"Seventy\", \"Eighty\", \"Ninety\"],\r\n handle_tens = function (dgt, prevDgt) {\r\n return 0 == dgt ? \"\" : \" \" + (1 == dgt ? dblDigit[prevDgt] : tensPlace[dgt]);\r\n },\r\n handle_utlc = function (dgt, nxtDgt, denom) {\r\n return (0 != dgt && 1 != nxtDgt ? \" \" + sglDigit[dgt] : \"\") + (0 != nxtDgt || dgt > 0 ? \" \" + denom : \"\");\r\n };\r\n\r\n var str = \"\",\r\n digitIdx = 0,\r\n digit = 0,\r\n nxtDigit = 0,\r\n words = [];\r\n if (price += \"\", isNaN(parseInt(price))) str = \"\";\r\n else if (parseInt(price) > 0 && price.length <= 10) {\r\n for (digitIdx = price.length - 1; digitIdx >= 0; digitIdx--) switch (digit = price[digitIdx] - 0, nxtDigit = digitIdx > 0 ? price[digitIdx - 1] - 0 : 0, price.length - digitIdx - 1) {\r\n case 0:\r\n words.push(handle_utlc(digit, nxtDigit, \"\"));\r\n break;\r\n case 1:\r\n words.push(handle_tens(digit, price[digitIdx + 1]));\r\n break;\r\n case 2:\r\n words.push(0 != digit ? \" \" + sglDigit[digit] + \" Hundred\" + (0 != price[digitIdx + 1] && 0 != price[digitIdx + 2] ? \" and\" : \"\") : \"\");\r\n break;\r\n case 3:\r\n words.push(handle_utlc(digit, nxtDigit, \"Thousand\"));\r\n break;\r\n case 4:\r\n words.push(handle_tens(digit, price[digitIdx + 1]));\r\n break;\r\n case 5:\r\n words.push(handle_utlc(digit, nxtDigit, \"Lakh\"));\r\n break;\r\n case 6:\r\n words.push(handle_tens(digit, price[digitIdx + 1]));\r\n break;\r\n case 7:\r\n words.push(handle_utlc(digit, nxtDigit, \"Crore\"));\r\n break;\r\n case 8:\r\n words.push(handle_tens(digit, price[digitIdx + 1]));\r\n break;\r\n case 9:\r\n words.push(0 != digit ? \" \" + sglDigit[digit] + \" Hundred\" + (0 != price[digitIdx + 1] || 0 != price[digitIdx + 2] ? \" and\" : \" Crore\") : \"\");\r\n }\r\n str = words.reverse().join(\"\");\r\n } else str = \"\";\r\n return str;\r\n\r\n }\r\n //end \r\n const GetFrontInvoiceData = async () => {\r\n if (props.para != undefined) {\r\n let IsDone = false;\r\n let mapData = [];\r\n await GetFrontInvoiceDetails(props.para).then(d => {\r\n IsDone = true;\r\n let data = d.data;\r\n data.forEach(o => {\r\n let tempNetAmount = 0;\r\n let tempPrimary = {};\r\n let tempGrossAmount = 0;\r\n let tempTotalAmount = 0;\r\n let tempTaxSummary = {\r\n Amount: 0,\r\n Discount: 0,\r\n Taxable: 0,\r\n SGST: 0,\r\n CGST: 0,\r\n IGST: 0,\r\n GST: 0,\r\n table: []\r\n };\r\n if (o.GuestDetail.length !== 0) {\r\n let temp = o.GuestDetail.find(x => x.IsPrimary === true);\r\n if (temp !== undefined) {\r\n tempPrimary = temp;\r\n }\r\n }\r\n\r\n if (o.ChargeDetail.length !== 0) {\r\n o.ChargeDetail.forEach(x => {\r\n tempNetAmount = tempNetAmount + x.Debit - x.Credit;\r\n });\r\n tempGrossAmount = tempNetAmount;\r\n tempTotalAmount = tempNetAmount;\r\n }\r\n if (o.TaxSummary.length !== 0) {\r\n let tempAmount = 0;\r\n let tempTaxable = 0;\r\n let tempSGST = 0;\r\n let tempCGST = 0;\r\n let tempIGST = 0;\r\n let tempGST = 0;\r\n\r\n o.TaxSummary.forEach(x => {\r\n x[\"GST\"] = x.SGSTAmt + x.CGSTAmt + x.IGSTAmt;\r\n tempAmount = tempAmount + x.TaxableAmount;\r\n tempTaxable = tempTaxable + x.TaxableAmount;\r\n tempSGST = tempSGST + x.SGSTAmt;\r\n tempCGST = tempCGST + x.CGSTAmt;\r\n tempGST = tempGST + x.SGSTAmt + x.CGSTAmt + x.IGSTAmt;\r\n tempIGST = tempIGST + x.IGSTAmt;\r\n });\r\n\r\n let obj = {\r\n Amount: tempAmount,\r\n Discount: 0,\r\n Taxable: tempTaxable,\r\n SGST: tempSGST,\r\n CGST: tempCGST,\r\n IGST: tempIGST,\r\n GST: tempGST,\r\n table: o.TaxSummary\r\n };\r\n tempTaxSummary = obj;\r\n }\r\n\r\n if (o.TaxDetail.length > 0) {\r\n o.TaxDetail.forEach(x => {\r\n if (x.Type === 'C') {\r\n tempTotalAmount = tempTotalAmount + x.Debit - x.Credit;\r\n }\r\n tempGrossAmount = tempGrossAmount + x.Debit - x.Credit;\r\n });\r\n }\r\n\r\n mapData.push({\r\n PropertyDetail: o.PropertyDetail.length > 0 ? o.PropertyDetail[0] : {},\r\n HeaderDetail: o.HeaderDetail.length > 0 ? o.HeaderDetail[0] : {},\r\n CompanyDetail: o.CompanyDetail.length > 0 ? o.CompanyDetail[0] : {},\r\n GuestDetail: o.GuestDetail,\r\n ChargeDetail: o.ChargeDetail,\r\n TaxDetail: o.TaxDetail,\r\n TaxSummary: tempTaxSummary,\r\n PrimaryGuest: tempPrimary,\r\n NetAmount: tempNetAmount,\r\n GrossAmount: Math.abs(tempGrossAmount),\r\n TotalAmount: tempTotalAmount\r\n });\r\n });\r\n console.log(\"final map data\", mapData);\r\n setList(mapData);\r\n });\r\n return { IsDone: true, data: mapData };\r\n }\r\n };\r\n\r\n //#region state\r\n const [list, setList] = useState([]);\r\n const [arr, setArr] = useState([]);\r\n const [totalHeight, setTotalHeight] = useState(0);\r\n //#endregion\r\n const saveIt = (fhh, gdh, cdh, tbh, fh, ffh, rhh) => {\r\n let minHeight = fhh + gdh + cdh + tbh + ffh + fh;\r\n\r\n let divVal = 0;\r\n if (minHeight <= 1000) {\r\n divVal = 0;\r\n } else {\r\n minHeight = minHeight - fhh - gdh;\r\n let isChargeIncludedInFirstPage = false;\r\n let isTaxIncludedInFirstPage = false;\r\n let isFinalFooterInFirstPage = false;\r\n if (fhh + gdh + cdh + fh <= 1000) {\r\n isChargeIncludedInFirstPage = true;\r\n }\r\n if (fhh + gdh + cdh + tbh + fh <= 1000) {\r\n isTaxIncludedInFirstPage = true;\r\n }\r\n if (fhh + gdh + cdh + tbh + ffh + fh <= 1000) {\r\n isFinalFooterInFirstPage = true;\r\n }\r\n\r\n if (isFinalFooterInFirstPage === false && isTaxIncludedInFirstPage === true) {\r\n console.log(\"only final footer remains\");\r\n divVal = 1000 - rhh;\r\n }\r\n if (isFinalFooterInFirstPage === false && isTaxIncludedInFirstPage === false && isChargeIncludedInFirstPage === true) {\r\n console.log(\"tax exceeded.\");\r\n let remainingH = tbh - (1000 - fhh - gdh - cdh - fh);\r\n\r\n while (remainingH >= 0) {\r\n if (remainingH + rhh + ffh + fh <= 1000) {\r\n divVal = divVal + 1000 - remainingH + rhh + ffh + fh;\r\n }\r\n else {\r\n remainingH = remainingH - (1000 - rhh - fh);\r\n }\r\n }\r\n }\r\n if (isFinalFooterInFirstPage === false && isTaxIncludedInFirstPage === false && isChargeIncludedInFirstPage === false) {\r\n console.log(\"charge excedded.\");\r\n let remainingH = cdh + tbh - (1000 - fhh - gdh - cdh - fh);\r\n\r\n while (remainingH >= 0) {\r\n console.log(\"InWhile\");\r\n if (remainingH + 225 + ffh + fh <= 1000) {\r\n console.log(\"in\");\r\n divVal = divVal + 1000 - remainingH + 225 + ffh + fh;\r\n remainingH = -1;\r\n }\r\n else {\r\n remainingH = remainingH - (1000 - 225 - fh);\r\n }\r\n console.log(remainingH, divVal);\r\n }\r\n }\r\n\r\n arr.push({ value: divVal });\r\n }\r\n };\r\n useEffect(() => {\r\n if (props.IsPrint) {\r\n GetFrontInvoiceData().then(x => {\r\n if (x.IsDone) {\r\n let arr = [];\r\n x.data.forEach((x, index) => {\r\n let fixedheader = document.getElementById(`fixedheader-${index}`);\r\n let repeatingheader = document.getElementById(`repeatingheader-${index}`);\r\n let guestdetail = document.getElementById(`guestdetail-${index}`);\r\n let chargedetail = document.getElementById(`chargedetail-${index}`);\r\n let taxdetail = document.getElementById(`taxdetail-${index}`);\r\n let taxbreakup = document.getElementById(`taxbreakup-${index}`);\r\n let footer = document.getElementById(`footer-${index}`);\r\n let finalfooter = document.getElementById(`finalfooter-${index}`);\r\n\r\n let fhh = 0;\r\n let rhh = 0;\r\n let gdh = 0;\r\n let cdh = 0;\r\n let tdh = 0;\r\n let tbh = 0;\r\n let fh = 0;\r\n let ffh = 0;\r\n if (fixedheader != undefined) {\r\n //fhh = fixedheader.clientHeight;\r\n fhh = 230;\r\n }\r\n if (repeatingheader != undefined) {\r\n //rhh = repeatingheader.clientHeight;\r\n rhh = 225;\r\n }\r\n if (guestdetail != undefined) {\r\n gdh = guestdetail.clientHeight;\r\n }\r\n if (chargedetail != undefined) {\r\n cdh = chargedetail.clientHeight;\r\n }\r\n if (taxdetail != undefined) {\r\n tdh = taxdetail.clientHeight;\r\n }\r\n if (taxbreakup != undefined) {\r\n tbh = taxbreakup.clientHeight;\r\n }\r\n if (finalfooter != undefined) {\r\n ffh = finalfooter.clientHeight;\r\n }\r\n if (footer != undefined) {\r\n fh = footer.clientHeight;\r\n }\r\n\r\n let ans = 0;\r\n\r\n let height = fhh + gdh + cdh + tdh + tbh + ffh;\r\n setTotalHeight(height);\r\n\r\n if (height > (1000 - fh)) {\r\n height -= 1000;\r\n while (height > 0) {\r\n let available = 1000 - rhh - fh;\r\n\r\n if (height + ffh <= available) {\r\n ans = 1000 - height - rhh;\r\n height = 0;\r\n } else {\r\n height = height - available;\r\n }\r\n }\r\n }\r\n else {\r\n let temp = (1000 - fh) - height;\r\n ans = 0;\r\n if (temp < 0) {\r\n ans = 0;\r\n } else {\r\n ans = temp;\r\n }\r\n }\r\n console.log(ans);\r\n arr.push({ value: ans });\r\n });\r\n setArr(arr);\r\n\r\n if (printRef.current) {\r\n printRef.current.handlePrint();\r\n }\r\n }\r\n });\r\n }\r\n props.OnPrint();\r\n }, [props.IsPrint]);\r\n\r\n return (\r\n
    \r\n {list.map((item, index) => {\r\n return (\r\n
    \r\n
    \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n

    {item.PropertyDetail.PropertyName}   ( {item.PropertyDetail.StatutoryName} )

    \r\n\r\n
    \r\n {item.PropertyDetail.Address1 + \" \" + item.PropertyDetail.Address2 + \" \" + item.PropertyDetail.CityName + \" -\" + item.PropertyDetail.Postcode}
    \r\n {item.PropertyDetail.StateName}, {item.PropertyDetail.CountryName}, Tel : {item.PropertyDetail.Telephone}
    \r\n Email: {item.PropertyDetail.Email}Web:\r\n {item.PropertyDetail.Website}\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    State Code : {item.PropertyDetail.StateCode} {item.PropertyDetail.StateName}
    \r\n
    Pan No : {item.PropertyDetail.PANNo}
    \r\n
    GSTIN : {item.PropertyDetail.GSTNo}
    \r\n
    \r\n
    TAN No : 24AACKJJLHUUK
    \r\n
    CIN No : 123456789012345678901
    \r\n
    CIN No : 123456789012345678901
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    Page No. 1 of 2 Tax Invoice (Original\r\n for Recipient)
    \r\n
    \r\n
    \r\n Invoice Date : {item.HeaderDetail.InvoiceDate}\r\n Invoice No : {item.HeaderDetail.InvoiceNo}\r\n
    \r\n IRN No : 123456789123456789\r\n
    \r\n
    \r\n\r\n\r\n {/* */}\r\n
    \r\n\r\n {/* */}\r\n
    \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    Page No. 1 of 2Tax Invoice (Original\r\n for Recipient)
    \r\n
    \r\n
    \r\n Invoice Date : {item.HeaderDetail.InvoiceDate}\r\n Invoice No : {item.HeaderDetail.InvoiceNo}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n
    \r\n {item.PrimaryGuest.GuestName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
    \r\n Room No:
    {item.HeaderDetail.RoomNo}\r\n ({item.HeaderDetail.RoomTypeCode})\r\n
    \r\n Membership No:
    {item.PrimaryGuest.MembershipNo}\r\n
    \r\n Block No:
    {item.HeaderDetail.BlockSerNo}\r\n
    \r\n Booking No:
    {item.HeaderDetail.BookingNo}\r\n
    \r\n Ref. No:
    {item.HeaderDetail.BookingRefNo}\r\n
    \r\n
    \r\n
    \r\n\r\n {/* */}\r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {/* */}\r\n  \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n
    \r\n
    \r\n
    {item.PrimaryGuest.GuestName}
    \r\n
    105, {item.PrimaryGuest.Street}, {item.PrimaryGuest.City}, {item.PrimaryGuest.State} ({item.PrimaryGuest.Country})\r\n
    \r\n
    \r\n {item.GuestDetail.map((x, index) => {\r\n return (x.IsPrimary !== true ?
    {index + 2}) {x.GuestName}
    : null);\r\n })}\r\n\r\n {/*
    2) Mr. Manoj Sharma
    \r\n
    3) Mr. Rohit Dave
    \r\n
    3) Mr. Rohit Dave
    */}\r\n
    \r\n\r\n
    \r\n
    \r\n
    Bill To {item.CompanyDetail.CompanyName}
    \r\n
    {item.CompanyDetail.Street}, {item.CompanyDetail.City}, {item.CompanyDetail.State} ({item.CompanyDetail.Country})
    \r\n
    GSTIN: 56acbin56ahmg
    \r\n
    PAN No: 56acbin56ahmg
    \r\n
    \r\n
    \r\n
    Tata Group, Mumbai
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    Arrival
    \r\n
    {item.HeaderDetail.ArrivalDate}
    \r\n
    \r\n
    Departure
    \r\n
    {item.HeaderDetail.DepartureDate}
    \r\n
    \r\n
    Agent / Corporate
    \r\n
    Make My Trip
    \r\n
    \r\n
    Room#
    \r\n
    {item.HeaderDetail.RoomNo} ({item.HeaderDetail.RoomTypeCode})
    \r\n
    \r\n
    Night
    \r\n
    {item.HeaderDetail.Nights}
    \r\n
    \r\n
    Adults
    \r\n
    {item.HeaderDetail.Adult}
    \r\n
    \r\n
    Rate Code
    \r\n
    AP
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    Membership\r\n No:{item.PrimaryGuest.MembershipNo}\r\n
    \r\n
    \r\n
    Block No:{item.HeaderDetail.BlockNo}\r\n
    \r\n
    \r\n
    Booking No:\r\n {item.HeaderDetail.BookingNo}\r\n
    \r\n
    \r\n
    Reg. No:\r\n 123456790
    \r\n
    \r\n
    Ref. No:\r\n {item.HeaderDetail.BookingRefNo}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.ChargeDetail.map((x, index) => {\r\n return \r\n \r\n \r\n \r\n \r\n \r\n \r\n ;\r\n })}\r\n \r\n \r\n \r\n \r\n\r\n
    DateDescriptionHSN / SACDocument NoDebitCredit
    {x.TransactionDate}{x.Description}{x.HSN_SAC_Code}{x.DocumentNo}{x.Debit.toFixed(2)}{x.Credit.toFixed(2)}
    Net Amount : {item.NetAmount.toFixed(2)}
    \r\n \r\n {item.TaxDetail.map((o, index) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n\r\n\r\n {/*end */}\r\n \r\n \r\n \r\n
    {o.TransactionDate}{o.Description} {o.ReceiptNo}{o.Debit?.toFixed(2)}{o.Credit.toFixed(2)}
    \r\n {price_in_words(parseInt(item.TotalAmount))} Only\r\n
    \r\n Total Bill Amount For the\r\n Stay:\r\n {item.TotalAmount?.toFixed(2)}\r\n Gross Payable Amount\r\n : ₹\r\n {item.GrossAmount?.toFixed(2)}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n Tax Breakup\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {item.TaxSummary.table && item.TaxSummary.table.map((x, index) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    HSN / SACAmountDiscountTaxableSGSTCGSTIGSTTotal GST
    {x.HSN_SAC_Code}{x.TaxableAmount?.toFixed(2)}0.00{x.TaxableAmount?.toFixed(2)}{x.SGSTPer}% {x.SGSTAmt?.toFixed(2)}{x.CGSTPer}% {x.CGSTAmt?.toFixed(2)}{x.IGSTPer}% {x.IGSTAmt?.toFixed(2)}{x.GST?.toFixed(2)}
    Total{item.TaxSummary.Amount?.toFixed(2)}0.00{item.TaxSummary.TaxableAmount?.toFixed(2)}{item.TaxSummary.SGST?.toFixed(2)}{item.TaxSummary.CGST?.toFixed(2)}{item.TaxSummary.IGST?.toFixed(2)}{item.TaxSummary.GST?.toFixed(2)}
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    A/C Name: {item.PropertyDetail.AccountName}
    \r\n
    \r\n A/C No : {item.PropertyDetail.AccountNumber}
    \r\n Swift Code : {item.PropertyDetail.SwiftCode}
    \r\n IFSC Code : {item.PropertyDetail.IFSCCode}\r\n
    \r\n
    \r\n
    \r\n (1) Any queries on above will not be entertained after 7 days
    \r\n (2) Share UTR/CHQ No. On Payemnt at email :credit.mubai@orchidhotel.com
    \r\n (3) Subject to {item.PropertyDetail.Jurisdiction}
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    Authorized Signature
    \r\n
    For, {item.PropertyDetail.PropertyName}
    \r\n
    {item.PropertyDetail.StatutoryName}
    \r\n
    \r\n
    Guest Signature
    \r\n
    \r\n
    \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n Date: 19 Nov. 2020, 07:20\r\n User name: rohan shah\r\n \r\n Powered by \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
     
    \r\n
    \r\n
    \r\n }\r\n content={() => myRef.current}\r\n onAfterPrint={() => {\r\n setList([]);\r\n }}\r\n />\r\n
    \r\n
    \r\n );\r\n })}\r\n
    \r\n );\r\n}\r\n\r\n","import moment from \"moment\";\r\nimport React from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport { useState } from \"react\";\r\nimport {\r\n InnActionButton, InnCheckbox, InnPrimaryButton, InnModalPopup, InnSwitch, InnTextbox, InnButtonTypeWithDropdown, InnPlainButton,\r\n InnTableGrid, InnRadioButton, InnContextMenu, InnSingleSelectDropdown, InnMultiSelectDropdown, useConfirm\r\n} from \"../../../../component\";\r\nimport {\r\n GetCheckoutInvoiceDetail, GetCheckoutTransaction, GetReservationCashieringList, GetReservationWindowTransactionData,\r\n ManageCheckOutInvoice, ManageNoPostAtCheckout\r\n} from \"../../../../services/reservationCashieringService\";\r\nimport { GetReservationInfoData, GetTransactionMaster } from \"../../../../services/reservationService\";\r\nimport { useAlert } from \"../../../../utils/hooks/useAlert\";\r\nimport { IndiCompanyOnFolio } from \"../indicators\";\r\nimport { PaymentModalPopup } from \"./paymentModalPopup\";\r\nimport { AddEditWindowRoutingModalPopup } from \"./addEditWindowRoutingModalPopup\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetPropertyParameterByKeys } from \"../../../../services/reservationService\";\r\nimport { manageReservationFields } from \"../../../../services/reservationService\";\r\nimport { PostCheckoutWithOpenFolio } from \"../../../../services/reservationCashieringService\";\r\nimport FrontInvoice from \"../front-invoice\";\r\n\r\nexport function CheckoutModalPopup(props) {\r\n const currUser = useSelector(currentUser);\r\n const { innkeyAlert } = useAlert();\r\n const { confirm } = useConfirm();\r\n\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n //#region Localvariables\r\n\r\n const LuggageSelect = [\r\n { key: \"NLG\", value: \"No Luggage\" },\r\n { key: \"WLG\", value: \"With Luggage\" },\r\n { key: \"WLGL\", value: \"With Luggage + Lock\" },\r\n { key: \"NLGL\", value: \"No Luggage + Lock\" },\r\n ];\r\n const defaultAddEditWindowRoutingObj = {\r\n WindowName: \"\",\r\n WindowSerNo: 0,\r\n PaymentTransactionSerNo: 0,\r\n PaymentTransactionName: \"\",\r\n GuestProfileSerNo: 0,\r\n GuestProfileName: \"\",\r\n CompanyOnFolioProfileSerNo: 0,\r\n CompanyOnFolioType: \"\",\r\n CompanyOnFolioName: \"\",\r\n Mode: \"\",\r\n IsManual: true\r\n };\r\n\r\n const validationObj = {\r\n Amount: \"\"\r\n };\r\n\r\n const rbDataCheckout = [\r\n { key: \"payment\", value: \"Payment\" },\r\n { key: \"invoice\", value: \"Invoices\" },\r\n ];\r\n\r\n const selectdata = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n const columHeaderPayment = [\r\n { key: \"Date\", value: \"date\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Windows\", value: \"window\", type: \"txt\", sorting: \"Y\", align: \"center\" },\r\n { key: \"Mode of Payment\", value: \"mode\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Amount\", value: \"amount\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Receipt No\", value: \"receipt\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n const columHeaderInvoice = [\r\n { key: \"Date\", value: \"InvoiceDate\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Window\", value: \"WindowSerNo\", type: \"txt\", sorting: \"N\", align: \"center\" },\r\n { key: \"Invoice No\", value: \"InvoiceNo\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Amount\", value: \"Amount\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n const optBtnData = [\r\n { key: \"Edit\", value: \"edt\" },\r\n { key: \"Delete\", value: \"del\" },\r\n ];\r\n\r\n const optBtnDataPayment = [\r\n { key: \"Print Receipt\", value: \"Print Receipt\" },\r\n { key: \"Email Receipt\", value: \"Email Receipt\" },\r\n { key: \"Payment Correction\", value: \"Payment Correction\" },\r\n { key: \"Refund\", value: \"Refund\" },\r\n ];\r\n const checkOutReservation = [\r\n { key: \"Option 1\", value: \"Check Out Reservation\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 2\", value: \"Option 3\" },\r\n ];\r\n const CheckoutTimeDD = [\r\n { key: \"ActualDepartureTime\", value: \"NoResponse\" },\r\n { key: \"ActualDepartureTime\", value: \"NoInfo\" },\r\n { key: \"ActualDepartureTime\", value: \"00:00\" },\r\n { key: \"ActualDepartureTime\", value: \"00:30\" },\r\n { key: \"ActualDepartureTime\", value: \"01:00\" },\r\n { key: \"ActualDepartureTime\", value: \"01:30\" },\r\n { key: \"ActualDepartureTime\", value: \"02:00\" },\r\n { key: \"ActualDepartureTime\", value: \"02:30\" },\r\n { key: \"ActualDepartureTime\", value: \"03:00\" },\r\n { key: \"ActualDepartureTime\", value: \"03:30\" },\r\n { key: \"ActualDepartureTime\", value: \"04:00\" },\r\n { key: \"ActualDepartureTime\", value: \"04:30\" },\r\n { key: \"ActualDepartureTime\", value: \"05:00\" },\r\n { key: \"ActualDepartureTime\", value: \"05:30\" },\r\n { key: \"ActualDepartureTime\", value: \"06:30\" },\r\n { key: \"ActualDepartureTime\", value: \"07:00\" },\r\n { key: \"ActualDepartureTime\", value: \"07:30\" },\r\n { key: \"ActualDepartureTime\", value: \"08:00\" },\r\n { key: \"ActualDepartureTime\", value: \"08:30\" },\r\n { key: \"ActualDepartureTime\", value: \"09:00\" },\r\n { key: \"ActualDepartureTime\", value: \"09:30\" },\r\n { key: \"ActualDepartureTime\", value: \"10:00\" },\r\n { key: \"ActualDepartureTime\", value: \"10:30\" },\r\n { key: \"ActualDepartureTime\", value: \"11:00\" },\r\n { key: \"ActualDepartureTime\", value: \"11:30\" },\r\n { key: \"ActualDepartureTime\", value: \"12:00\" },\r\n { key: \"ActualDepartureTime\", value: \"12:30\" },\r\n { key: \"ActualDepartureTime\", value: \"13:00\" },\r\n { key: \"ActualDepartureTime\", value: \"13:30\" },\r\n { key: \"ActualDepartureTime\", value: \"14:00\" },\r\n { key: \"ActualDepartureTime\", value: \"14:30\" },\r\n { key: \"ActualDepartureTime\", value: \"15:00\" },\r\n { key: \"ActualDepartureTime\", value: \"15:30\" },\r\n { key: \"ActualDepartureTime\", value: \"16:00\" },\r\n { key: \"ActualDepartureTime\", value: \"16:30\" },\r\n { key: \"ActualDepartureTime\", value: \"17:00\" },\r\n { key: \"ActualDepartureTime\", value: \"17:30\" },\r\n { key: \"ActualDepartureTime\", value: \"18:00\" },\r\n { key: \"ActualDepartureTime\", value: \"18:30\" },\r\n { key: \"ActualDepartureTime\", value: \"19:00\" },\r\n { key: \"ActualDepartureTime\", value: \"19:30\" },\r\n { key: \"ActualDepartureTime\", value: \"20:00\" },\r\n { key: \"ActualDepartureTime\", value: \"20:30\" },\r\n { key: \"ActualDepartureTime\", value: \"21:00\" },\r\n { key: \"ActualDepartureTime\", value: \"21:30\" },\r\n { key: \"ActualDepartureTime\", value: \"22:00\" },\r\n { key: \"ActualDepartureTime\", value: \"22:30\" },\r\n { key: \"ActualDepartureTime\", value: \"23:00\" },\r\n { key: \"ActualDepartureTime\", value: \"23:30\" },\r\n ];\r\n\r\n\r\n //#endregion\r\n\r\n //#region state\r\n\r\n const [IsCallIconVisible, setIsCallIconVisible] = useState(false);\r\n const [paymentFlag, setPaymentFlag] = useState('');\r\n const [selectedTab, setSelectedTab] = useState('payment');\r\n const [IsTaskComplete, setIsTaskComplete] = useState(false);\r\n const [filterDataPayment, setfilterDataPayment] = useState([]);\r\n const [showPaymentPopup, setShowPaymentPopup] = useState(false);\r\n const [Payment, setPayment] = useState(\"Payment\");\r\n const [selectMulti, setselectMulti] = useState([\"1\", \"2\", \"3\"]);\r\n const [guestTile, setGuestTile] = useState({});\r\n const [windowList, setWindowList] = useState([]);\r\n const [windowSubTotal, setWindowSubTotal] = useState(0);\r\n const [windowBalance, setWindowBalance] = useState(0);\r\n const [reservationInfoData, setReservationInfoData] = useState({});\r\n const [paymentModeCombo, setPaymentModeCombo] = useState([]);\r\n const [IsNoPost, setIsNoPost] = useState(false);\r\n const [invoiceDetailData, setInvoiceDetailData] = useState([]);\r\n const [paymentAmount, setPaymentAmount] = useState(0);\r\n const [editedPaymentAmount, setEditedPaymentAmount] = useState(0);\r\n const [IsWindowChecked, setIsWindowChecked] = useState(0);\r\n const [paymentMethod, setPaymentMethod] = useState(\"select\");\r\n const [selectedWindowList, setSelectedWindowList] = useState([]);\r\n const [checkoutValidationObj, setCheckoutValidationObj] = useState(validationObj);\r\n const [windowRoutingAddEditObject, setWindowRoutingAddEditObject] = useState(defaultAddEditWindowRoutingObj);\r\n const [showAddEditWindowRoutingModalPopuUp, setShowAddEditWindowRoutingModalPopUp] = useState(false);\r\n const [frontInvoicePara, setFrontInvoicePara] = useState([]);\r\n const [IsPrint, setIsPrint] = useState(false);\r\n //#endregion\r\n\r\n //#region service call\r\n\r\n const fillGuestTile = () => {\r\n if (props.para !== undefined) {\r\n GetReservationCashieringList(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo.toString()).then(d => {\r\n if (d.data.length > 0) {\r\n let temp = d.data[0];\r\n if (temp.ActualDepartureTime !== null) {\r\n temp.ActualDepartureTime = moment(new Date('1-apr-2022 ' + d.data[0].ActualDepartureTime)).format('HH:mm');\r\n }\r\n setIsNoPost(temp.IsNoPost);\r\n setGuestTile(temp);\r\n }\r\n }).catch(ex => {\r\n console.log('guest tile api: ', ex);\r\n setGuestTile({});\r\n });\r\n }\r\n };\r\n\r\n const fillWindowList = () => {\r\n if (props.para !== undefined) {\r\n GetReservationWindowTransactionData(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo).then(d => {\r\n if (d.data.length > 0) {\r\n let temp = 0;\r\n d.data.forEach(x => {\r\n if (x.IsDeleted === false) {\r\n temp += x.Amount;\r\n x[\"IsChecked\"] = false;\r\n }\r\n });\r\n setWindowSubTotal(temp);\r\n setWindowBalance(temp);\r\n } else {\r\n setWindowSubTotal(0);\r\n setWindowBalance(0);\r\n }\r\n setWindowList(d.data);\r\n }).catch(ex => {\r\n console.log('window list api', ex);\r\n setWindowList([]);\r\n });\r\n }\r\n };\r\n\r\n const fillReservationInfoData = () => {\r\n if (props.para !== undefined) {\r\n GetReservationInfoData(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo).then(d => {\r\n setReservationInfoData(d.data);\r\n }).catch(ex => {\r\n console.log('info ex: ', ex);\r\n setReservationInfoData({});\r\n });\r\n }\r\n };\r\n\r\n const fillPaymentModeCombo = () => {\r\n if (props.para !== undefined) {\r\n GetTransactionMaster(props.para.ClientSerNo, props.para.PropertySerNo, 'P', 'ALL').then(d => {\r\n let temp = d.data.filter(x => x.Module === \"R\" || x.Module === \"G\");\r\n let paymodeList = [{ key: \"select\", value: \"Select\" }];\r\n temp.map(element => {\r\n paymodeList.push({ key: element.TransactionSerNo, value: element.Name, methodType: element.PaymentMethodType });\r\n });\r\n setPaymentModeCombo(paymodeList);\r\n }).catch(error => {\r\n setPaymentModeCombo([]);\r\n });\r\n }\r\n };\r\n\r\n const EditNoPost = () => {\r\n if (props.para !== undefined) {\r\n let temp = {\r\n ClientSerNo: props.para.ClientSerNo,\r\n PropertySerNo: props.para.PropertySerNo,\r\n ReservationSerNo: props.para.ReservationSerNo\r\n };\r\n ManageNoPostAtCheckout(temp).then(d => {\r\n }).catch(ex => {\r\n console.log('No post edit ex:', ex);\r\n });\r\n }\r\n };\r\n\r\n const fillInvoiceDetail = (InvoiceNo) => {\r\n if (props.para !== undefined) {\r\n GetCheckoutInvoiceDetail(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo, InvoiceNo).then(d => {\r\n let temp = [];\r\n d.data.forEach(x => {\r\n temp.push({\r\n ClientSerNo: props.para.ClientSerNo,\r\n PropertySerNo: props.para.PropertySerNo,\r\n ReservationSerNo: x.ReservationSerNo,\r\n InvoiceSerNo: x.InvoiceSerNo,\r\n WindowSerNo: x.WindowSerNo,\r\n InvoiceNo: x.InvoiceNo\r\n });\r\n });\r\n setFrontInvoicePara(temp);\r\n setIsPrint(true);\r\n d.data.forEach(x => {\r\n let temp = new Date(x.InvoiceDate);\r\n x.InvoiceDate = moment(temp).format('DD, MMM');\r\n });\r\n setInvoiceDetailData(d.data);\r\n }).catch(ex => {\r\n console.log('invoice data ex: ', ex);\r\n setInvoiceDetailData([]);\r\n });\r\n }\r\n };\r\n\r\n const fillCheckoutDataGrid = (strResTransactionSerNo) => {\r\n GetCheckoutTransaction(parseInt(props.para.ClientSerNo), parseInt(props.para.PropertySerNo), parseInt(props.para.ReservationSerNo), strResTransactionSerNo).then((d) => {\r\n let tempPaymentData = JSON.parse(JSON.stringify(filterDataPayment));\r\n if (d.data != undefined) {\r\n setIsTaskComplete(true);\r\n d.data.map((x) => {\r\n tempPaymentData.push({\r\n date: x.TransactionDate,\r\n window: x.WindowSerNo,\r\n mode: x.TransactionName,\r\n amount: Math.abs(parseFloat(x.Amount)),\r\n receipt: x.ReceiptNo,\r\n action: \"...\",\r\n });\r\n });\r\n setfilterDataPayment(tempPaymentData);\r\n }\r\n });\r\n };\r\n //#endregion\r\n\r\n //#region events\r\n\r\n const onCheckoutClick = async () => {\r\n let IsOpenFolio = false;\r\n let IsReinstated = false;\r\n let ReservationStatus = '';\r\n if (guestTile.ReservationStatus === 'DOT') {\r\n ReservationStatus = 'COT';\r\n }\r\n else {\r\n ReservationStatus = guestTile.ReservationStatus;\r\n }\r\n if (guestTile.IsReinstated != null) {\r\n IsReinstated = guestTile.IsReinstated;\r\n }\r\n let IsAWS = true;\r\n windowList.forEach(x => {\r\n if (x.IsDeleted === false) {\r\n if (x.Amount !== 0) {\r\n IsAWS = false;\r\n }\r\n }\r\n });\r\n if (IsAWS) {\r\n console.log(\"Please generate invoice first.\");\r\n if (props.para != undefined) {\r\n let para = {\r\n ClientSerNo: parseInt(props.para.ClientSerNo),\r\n PropertySerNo: parseInt(props.para.PropertySerNo),\r\n ReservationSerNo: parseInt(props.para.ReservationSerNo),\r\n IsOpenFolio: IsOpenFolio,\r\n IsReinstated: IsReinstated,\r\n ReservationStatus: ReservationStatus\r\n };\r\n PostCheckoutWithOpenFolio(para).then(async (d) => {\r\n if (d.data != undefined) {\r\n if (d.data.ReturnValue == 'Please generate invoice first.') {\r\n alertFunction(d.data.ReturnValue);\r\n } else {\r\n props.OnClose();\r\n alertFunction(d.data.Message);\r\n }\r\n }\r\n }).catch(ex => {\r\n console.log(ex);\r\n });\r\n }\r\n } else {\r\n alertFunction(\"All windows not settled.\");\r\n }\r\n };\r\n\r\n const handleNoResponse = (key, ReservationSerNo) => {\r\n let IsWithLuggage = 0;\r\n let IsLocked = 0;\r\n if (key === \"WLG\") {\r\n IsWithLuggage = 1;\r\n IsLocked = 0;\r\n } else if (key === \"NLG\") {\r\n IsWithLuggage = 0;\r\n IsLocked = 0;\r\n } else if (key === \"WLGL\") {\r\n IsWithLuggage = 1;\r\n IsLocked = 1;\r\n } else if (key === \"NLGL\") {\r\n IsWithLuggage = 0;\r\n IsLocked = 1;\r\n }\r\n\r\n if (key !== undefined && ReservationSerNo !== undefined) {\r\n editReservationField(ReservationSerNo, \"IsWithLuggage\", IsWithLuggage);\r\n editReservationField(ReservationSerNo, \"IsLocked\", IsLocked);\r\n }\r\n };\r\n\r\n const editReservationField = (ReservationSerNo, field, value) => {\r\n manageReservationFields(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo, field, value);\r\n };\r\n\r\n const editField = (item) => {\r\n editReservationField(props.para.ReservationSerNo, item.key, item.value);\r\n fillGuestTile();\r\n };\r\n\r\n const handlePrintnSendFolio = async () => {\r\n if (props.para !== undefined && selectedWindowList.length > 0) {\r\n let strWindowSerNo = '';\r\n selectedWindowList.forEach((x, index) => {\r\n if (selectedWindowList.length === index + 1) {\r\n strWindowSerNo = strWindowSerNo + x.WindowSerNo;\r\n } else {\r\n strWindowSerNo = strWindowSerNo + x.WindowSerNo + ',';\r\n }\r\n });\r\n ManageCheckOutInvoice(parseInt(props.para.ClientSerNo), parseInt(props.para.PropertySerNo), parseInt(props.para.ReservationSerNo), strWindowSerNo, currUser.UserID).then(async (d) => {\r\n console.log(d.data.Retrunvalue);\r\n if (d.data.ReturnValue !== undefined && d.data.ReturnValue !== '') {\r\n alertFunction(d.data.Message);\r\n setPayment('Invoices');\r\n setSelectedTab('invoice');\r\n fillInvoiceDetail(d.data.ReturnValue);\r\n fillWindowList();\r\n setSelectedWindowList([]);\r\n }\r\n }).catch(ex => {\r\n console.log('print n send folio', ex);\r\n });\r\n } else {\r\n alertFunction('Please select atleast one window.');\r\n }\r\n };\r\n\r\n const [propertyDepartureTime, setPropertyDepartureTime] = useState('');\r\n const [gracePeriod, setGracePeriod] = useState('');\r\n const fillPropertyParameterData = () => {\r\n GetPropertyParameterByKeys(parseInt(props.para.ClientSerNo), parseInt(props.para.PropertySerNo), [\"BusinessDate\", \"DepartureTime\"]).then((d) => {\r\n setPropertyDepartureTime(d.data[1].value);\r\n let x = d.data[1].value.split(\":\");\r\n setGracePeriod(`${parseInt(x[0]) - 1}:${x[1]}`);\r\n });\r\n };\r\n\r\n const renderGuestTile = () => {\r\n return (\r\n
      \r\n
    • \r\n\r\n
      \r\n
      \r\n \r\n {guestTile.RoomTypeCode} {guestTile.RoomTypeSeq != guestTile.RoomTypeToChargeSeq ? guestTile.RoomTypeSeq > guestTile.RoomTypeToChargeSeq ? : : }\r\n \r\n
      \r\n
      \r\n {IsCallIconVisible ?\r\n {\r\n handleNoResponse(o.key, guestTile.ReservationSerNo);\r\n setTimeout(() => {\r\n fillGuestTile();\r\n }, 100);\r\n setIsCallIconVisible(false);\r\n }}>\r\n \r\n \r\n : null}\r\n {!IsCallIconVisible && guestTile.IsNoResponse ?\r\n <>\r\n {\r\n handleNoResponse(o.key, guestTile.ReservationSerNo);\r\n setTimeout(() => {\r\n fillGuestTile();\r\n }, 100);\r\n }}>\r\n {guestTile.IsWithLuggage ?\r\n \r\n :\r\n (guestTile.IsWithLuggage === false) ?\r\n \r\n :\r\n null}\r\n \r\n {guestTile.IsLocked ?\r\n \r\n : null}\r\n \r\n : null}\r\n {guestTile.IsReinstated ?\r\n \r\n :\r\n null}\r\n {guestTile.IsDepartureSameDay ?\r\n \r\n :\r\n null}\r\n {\r\n if (x.value === \"NoResponse\") {\r\n if (!guestTile.IsNoResponse) {\r\n setIsCallIconVisible(true);\r\n }\r\n } else {\r\n editReservationField(parseInt(guestTile.ReservationSerNo), \"IsWithLuggage\", 0);\r\n editReservationField(parseInt(guestTile.ReservationSerNo), \"IsLocked\", 0);\r\n setIsCallIconVisible(false);\r\n }\r\n editField(x);\r\n setTimeout(() => {\r\n fillGuestTile();\r\n }, 100);\r\n }}>\r\n {guestTile.IsNoResponse === true ? (\r\n
      \r\n NRSP{\" \"}\r\n
      \r\n ) : guestTile.ActualDepartureTime === null ? (\r\n
      \r\n No Info{\" \"}\r\n
      \r\n ) : (\r\n
      = gracePeriod && guestTile.ActualDepartureTime <= propertyDepartureTime ? \"time text-gray\" : guestTile.ActualDepartureTime <= propertyDepartureTime ? \"time text-green\" : guestTile.ActualDepartureTime > propertyDepartureTime ? \"time text-danger\" : \"\"}>{guestTile.ActualDepartureTime}
      \r\n )}\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      {guestTile.RoomNo} - {guestTile.GuestName}
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
    • \r\n
    \r\n\r\n );\r\n };\r\n const renderGuestTiles = () => {\r\n return (\r\n
    \r\n
    \r\n
    {`${guestTile.RoomNo} - ${guestTile.GuestName}`}
    \r\n\r\n {\r\n editField(x);\r\n }}>\r\n {guestTile.IsNoResponse === true ? (\r\n
    \r\n NRSP{\" \"}\r\n
    \r\n ) : guestTile.ActualDepartureTime === null ? (\r\n
    \r\n No Info{\" \"}\r\n
    \r\n ) : (\r\n
    = gracePeriod && guestTile.ActualDepartureTime <= propertyDepartureTime ? \"time text-gray\" : guestTile.ActualDepartureTime <= propertyDepartureTime ? \"time text-green\" : guestTile.ActualDepartureTime > propertyDepartureTime ? \"time text-danger\" : \"\"}>{guestTile.ActualDepartureTime}
    \r\n )}\r\n \r\n
    \r\n
    \r\n { }}>\r\n \r\n {guestTile.IsLocked ? : null}\r\n \r\n \r\n RNST\r\n\r\n ANA\r\n TIG\r\n \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const setSelectedItem = (items) => {\r\n };\r\n\r\n const handleCheckbox = (e, data, item, flag) => {\r\n if (e) {\r\n let temp = JSON.parse(JSON.stringify(data));\r\n temp.forEach(x => {\r\n if (flag === 'window') {\r\n if (x.WindowSerNo === item) {\r\n x.IsChecked = true;\r\n }\r\n }\r\n });\r\n if (flag === 'window') {\r\n setWindowList(temp);\r\n }\r\n } else {\r\n let temp = JSON.parse(JSON.stringify(data));\r\n temp.forEach(x => {\r\n if (flag === 'window') {\r\n if (x.WindowSerNo === item) {\r\n x.IsChecked = false;\r\n }\r\n }\r\n });\r\n if (flag === 'window') {\r\n setWindowList(temp);\r\n }\r\n }\r\n };\r\n\r\n //#endregion\r\n\r\n //#region useEffect\r\n\r\n useEffect(() => {\r\n if (props.para !== undefined) {\r\n fillGuestTile();\r\n fillWindowList();\r\n fillReservationInfoData();\r\n fillPaymentModeCombo();\r\n fillPropertyParameterData();\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (IsWindowChecked !== 0) {\r\n let temp = 0;\r\n let list = [];\r\n windowList.forEach(x => {\r\n if (x.IsChecked === true) {\r\n temp += x.Amount;\r\n list.push(x);\r\n }\r\n });\r\n if (list.length === 0) {\r\n setPaymentMethod(\"select\");\r\n }\r\n setPaymentAmount(temp);\r\n setEditedPaymentAmount(temp.toFixed(2));\r\n setCheckoutValidationObj(prev => ({ ...prev, Amount: \"\" }));\r\n setSelectedWindowList(list);\r\n }\r\n }, [IsWindowChecked]);\r\n\r\n //#endregion\r\n\r\n return (\r\n {\r\n if (props.OnClose !== undefined) {\r\n if ((paymentMethod == 'select' && parseInt(editedPaymentAmount) == 0 && selectedWindowList.length == 0) || IsTaskComplete) {\r\n props.OnClose();\r\n } else {\r\n let isConfirmed = true;\r\n isConfirmed = await innkeyAlert(\"Would you like to discard the changes you have made??\");\r\n if (isConfirmed) {\r\n props.OnClose();\r\n }\r\n }\r\n }\r\n }}>\r\n
    \r\n {showAddEditWindowRoutingModalPopuUp ? (\r\n {\r\n setShowAddEditWindowRoutingModalPopUp(false);\r\n setWindowRoutingAddEditObject(defaultAddEditWindowRoutingObj);\r\n }}\r\n OnSelect={(e) => {\r\n fillWindowList();\r\n }}>\r\n ) : null}\r\n
    \r\n
    \r\n

    Check Out

    \r\n
    \r\n
    \r\n
    \r\n {\r\n setPayment(value);\r\n if (value == 'Payment') {\r\n setSelectedTab('payment');\r\n } else {\r\n setSelectedTab('invoice');\r\n }\r\n }}>\r\n
    \r\n
    \r\n
    \r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {renderGuestTile()}\r\n
    \r\n
      \r\n {windowList.map((item, index) => {\r\n return (\r\n item.IsDeleted === false ?\r\n
    • \r\n {\r\n handleCheckbox(e, windowList, item.WindowSerNo, 'window');\r\n setIsWindowChecked(IsWindowChecked + 1);\r\n }}>\r\n {`W${item.WindowSerNo} - ${item.WindowName}`}\r\n \r\n {item.IsInvoiceGenerated ?\r\n
      \r\n Invoice generated\r\n
      \r\n :\r\n null}\r\n
      {item.TransactionName}
      \r\n
      {item.CompanyOnFolioProfile}
      \r\n
      {item.GuestName}
      \r\n {item.Amount.toFixed(2)}\r\n {item.WindowSerNo !== 1 ?\r\n {\r\n let tempObj = windowRoutingAddEditObject;\r\n tempObj.Mode = \"Edit\";\r\n tempObj.WindowName = item.WindowName;\r\n tempObj.WindowSerNo = item.WindowSerNo;\r\n tempObj.PaymentTransactionName = item.TransactionName;\r\n tempObj.PaymentTransactionSerNo = item.TransactionSerNo;\r\n tempObj.CompanyOnFolioName = item.CompanyOnFolioProfile;\r\n tempObj.CompanyOnFolioProfileSerNo = item.CompanyOnFolioProfileSerNo;\r\n tempObj.CompanyOnFolioType = item.CompanyOnFolioType;\r\n tempObj.GuestProfileName = item.GuestName;\r\n tempObj.GuestProfileSerNo = item.GuestProfileSerNo;\r\n tempObj.IsManual = true;\r\n setWindowRoutingAddEditObject(tempObj);\r\n setShowAddEditWindowRoutingModalPopUp(true);\r\n }}\r\n >\r\n :\r\n null}\r\n
    • \r\n :\r\n null\r\n );\r\n })}\r\n
    \r\n
    \r\n
    \r\n
    \r\n Subtotal\r\n {windowSubTotal.toFixed(2)}\r\n
    \r\n {/*
    \r\n Un Settle Bills at POS\r\n 4000\r\n
    \r\n
    \r\n Mini Bar\r\n Direct\r\n
    */}\r\n
    \r\n BALANCE\r\n {windowBalance.toFixed(2)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {Payment == \"Payment\" ? (\r\n
    \r\n
    \r\n
    \r\n
    {\r\n if (selectedWindowList.length === 0) {\r\n alertFunction('Select one or more windows to select a mode of payment.');\r\n }\r\n }}\r\n >\r\n 0 ? false : true}\r\n list={paymentModeCombo}\r\n name=\"Mode of Payment\"\r\n label=\"Mode of Payment\"\r\n selectedSerNo={paymentMethod}\r\n onChange={(item, name) => {\r\n setPaymentMethod(item.methodType);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    {\r\n if (selectedWindowList.length === 0) {\r\n alertFunction('Select one or more windows to enable this field.');\r\n }\r\n }}\r\n >\r\n 0 ? false : true}\r\n className=\"form-group\"\r\n customError={checkoutValidationObj.Amount}\r\n value={editedPaymentAmount}\r\n onChange={(v) => {\r\n setEditedPaymentAmount(v);\r\n if (v == '') {\r\n setCheckoutValidationObj(prev => ({ ...prev, Amount: \"Invalid input\" }));\r\n } else {\r\n if (parseInt(v) > parseInt(paymentAmount)) {\r\n setCheckoutValidationObj(prev => ({ ...prev, Amount: \"Invalid input\" }));\r\n } else {\r\n setCheckoutValidationObj(prev => ({ ...prev, Amount: \"\" }));\r\n }\r\n }\r\n }}\r\n onBlur={() => {\r\n if (!isNaN(editedPaymentAmount) && editedPaymentAmount !== '') {\r\n setEditedPaymentAmount(parseFloat(editedPaymentAmount).toFixed(2));\r\n }\r\n }}\r\n >\r\n Amount\r\n \r\n
    \r\n
    \r\n
    \r\n 0 ? false : true}\r\n onClick={async () => {\r\n if (paymentMethod !== 'select' && selectedWindowList.length > 0 && !isNaN(editedPaymentAmount) && editedPaymentAmount !== '' && parseInt(editedPaymentAmount) > 0) {\r\n if (parseInt(editedPaymentAmount) <= parseInt(paymentAmount)) {\r\n setPaymentFlag('CheckoutPageSettle');\r\n setShowPaymentPopup(!showPaymentPopup);\r\n } else {\r\n alertFunction('Please enter less amount');\r\n }\r\n } else {\r\n alertFunction('Post payment cannot be performed without a valid mode of payment or amount. Please check these two fields to apply.');\r\n }\r\n }}>Post Payment\r\n 0 ? false : true}\r\n onClick={async () => {\r\n if (paymentMethod !== 'select' && selectedWindowList.length > 0 && !isNaN(editedPaymentAmount) && editedPaymentAmount !== '' && parseInt(editedPaymentAmount) > 0) {\r\n if (parseInt(editedPaymentAmount) <= parseInt(paymentAmount)) {\r\n setPaymentFlag('CheckoutPageSettleandPrint');\r\n setShowPaymentPopup(!showPaymentPopup);\r\n } else {\r\n alertFunction('Please enter less amount');\r\n }\r\n } else {\r\n alertFunction('Post payment cannot be performed without a valid mode of payment or amount. Please check these two fields to apply.');\r\n }\r\n }}\r\n >Post Payment & Print\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnDataPayment}\r\n optClick={(v, d) => {\r\n }}\r\n fixedHeaderNo={1}\r\n handleRowSelect={(rowdata) => {\r\n }}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : Payment == \"Invoices\" ? (\r\n
    \r\n
    \r\n {\r\n setSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnData}\r\n optClick={(v, d) => {\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n }}>\r\n
    \r\n
    \r\n ) : (\r\n \r\n )}\r\n
    \r\n\r\n
    \r\n {(reservationInfoData.ReservationSerNo !== undefined) ?\r\n \r\n :\r\n null}\r\n
    \r\n No Post\r\n {\r\n EditNoPost(v);\r\n setIsNoPost(v);\r\n }} id=\"11\">\r\n
    \r\n
    \r\n Membership Credits\r\n some text\r\n
    \r\n
    \r\n { }}>\r\n
    \r\n
    \r\n { }} select={selectMulti}>\r\n
    \r\n
    \r\n Print & Send Folio\r\n {(guestTile.IsOpenFolio === true)\r\n ?\r\n Close folio\r\n :\r\n Check out\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n showPaymentPopup ?\r\n parseInt(x.Amount) > 0),\r\n Amount: parseFloat(parseFloat(editedPaymentAmount).toFixed(2)),\r\n PaymentMethodType: paymentMethod,\r\n }}\r\n handleOnclose={(v) => {\r\n setShowPaymentPopup(false);\r\n console.log('from payment modalpopup:??????', v);\r\n if (v !== false) {\r\n setTimeout(() => {\r\n fillGuestTile();\r\n fillWindowList();\r\n setPaymentAmount(0);\r\n setEditedPaymentAmount(0);\r\n setSelectedWindowList([]);\r\n setPaymentMethod('select');\r\n if (paymentFlag === 'CheckoutPageSettle') {\r\n fillCheckoutDataGrid(v);\r\n } else if (paymentFlag === 'CheckoutPageSettleandPrint') {\r\n fillCheckoutDataGrid(v.ReservationTransactionSerNo);\r\n fillInvoiceDetail(v.ReservationInvoiceSerNo);\r\n }\r\n }, 100);\r\n }\r\n }\r\n }\r\n >\r\n \r\n :\r\n null\r\n }\r\n
    \r\n {\r\n setIsPrint(false);\r\n }}\r\n />\r\n
    \r\n
    \r\n );\r\n}","import { useEffect, useState } from \"react\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { InnDataGrid, InnPrimaryButton, InnModalPopup, useConfirm } from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetAdvanceBillList } from \"../../../../services/reservationCashieringService\";\r\nimport moment from 'moment';\r\nimport { PostReservationBulkTransaction } from \"../../../../services/blockService\";\r\nimport { InnCheckbox } from \"../../../../component\";\r\n\r\nexport function AdvanceBillModalPopup(props) {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const AdvanceBillHeader = [\r\n { key: \"Date\", value: \"Date\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Rate Code\", value: \"Name\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Rate\", value: \"RoomRate\", type: \"txt\", sorting: \"Y\" },\r\n ];\r\n\r\n const [list, setList] = useState([]);\r\n const [chargeList, setChargeList] = useState([]);\r\n const [packageList, setPackageList] = useState([]);\r\n const [taxList, setTaxList] = useState([]);\r\n const [selectedItems, setSelectedItems] = useState([]);\r\n const [IsAllChecked, setIsAllChecked] = useState(false);\r\n\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const fillList = () => {\r\n GetAdvanceBillList(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), props.para.ReservationSerNo).then(d => {\r\n if (d.data != undefined) {\r\n setChargeList(d.data.ChargeList);\r\n setPackageList(d.data.PackageList);\r\n setTaxList(d.data.TaxList);\r\n let temp = JSON.parse(JSON.stringify(d.data.ChargeList));\r\n temp.forEach((x, index) => {\r\n let tempData = d.data.PackageList.filter(o => o.Date === x.Date);\r\n let amount = x.RoomRate;\r\n if (tempData.length > 0) {\r\n tempData.forEach(p => {\r\n amount = amount + p.PackageRate;\r\n });\r\n }\r\n if (x.IsTaxInclusive === true) {\r\n x.RoomRate = amount.toFixed(2).toString() + \" (Incl.)\";\r\n } else {\r\n x.RoomRate = amount.toFixed(2).toString() + \" + Taxes\";\r\n }\r\n x[\"OrgDate\"] = x.Date;\r\n x[\"Key\"] = index + 1;\r\n x[\"IsChecked\"] = false;\r\n });\r\n temp.forEach(x => {\r\n x.Date = moment(new Date(x.Date)).format(\"ddd, Do MMM\");\r\n });\r\n setList(temp);\r\n }\r\n });\r\n };\r\n\r\n const handleOnSaveClick = () => {\r\n if (selectedItems.length !== 0) {\r\n let ReservationTransactionDetail = [];\r\n\r\n let availableDates = [];\r\n selectedItems.forEach(x => {\r\n availableDates.push(x.OrgDate);\r\n });\r\n chargeList.filter(u => availableDates.includes(u.Date)).forEach(x => {\r\n let transactionObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: x.ReservationSerNo,\r\n TransactionType: \"C\",\r\n Amount: x.RoomRate,\r\n DocumentNo: x.Name,\r\n TransactionSerNo: x.TransactionSerNo,\r\n WindowSerNo: 1,\r\n Remarks: \"\",\r\n TransactionName: \"\",\r\n AssoTransactionSerNo: x.TransactionSerNo,\r\n IsTaxInclusive: x.IsTaxInclusive,\r\n IsPaidOut: null,\r\n OrgReservationSerNo: x.ReservationSerNo,\r\n TransactionDate: moment(new Date(x.Date)).format(\"DD-MMM-YYYY\"),\r\n };\r\n let taxData = taxList.filter(o =>\r\n o.Date === x.Date && o.Type === \"RM\" && o.PackageSerNo === 0\r\n );\r\n if (taxData.length > 0) {\r\n taxData.forEach(y => {\r\n y[\"ParentTransactionSerNo\"] = x.TransactionSerNo;\r\n y[\"Percentage\"] = y.OnAmountPer;\r\n });\r\n }\r\n ReservationTransactionDetail.push({\r\n ReservationTransactionObj: transactionObj,\r\n ReservationTransactionTaxList: taxData\r\n });\r\n });\r\n packageList.filter(u => availableDates.includes(u.Date)).forEach(x => {\r\n let transactionObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: x.ReservationSerNo,\r\n TransactionType: \"C\",\r\n Amount: x.PackageRate,\r\n DocumentNo: x.PackageName,\r\n TransactionSerNo: x.TransactionSerNo,\r\n WindowSerNo: 1,\r\n Remarks: \"\",\r\n TransactionName: \"\",\r\n AssoTransactionSerNo: x.TransactionSerNo,\r\n IsTaxInclusive: false,\r\n TransactionDate: moment(new Date(x.Date)).format(\"DD-MMM-YYYY\"),\r\n OrgReservationSerNo: x.ReservationSerNo,\r\n };\r\n let taxData = taxList.filter(o =>\r\n o.Date === x.Date && o.Type === \"PI\" && o.PackageSerNo === x.PackageSerNo\r\n );\r\n if (taxData.length > 0) {\r\n taxData.forEach(y => {\r\n y[\"ParentTransactionSerNo\"] = x.TransactionSerNo;\r\n y[\"Percentage\"] = y.OnAmountPer;\r\n });\r\n }\r\n ReservationTransactionDetail.push({\r\n ReservationTransactionObj: transactionObj,\r\n ReservationTransactionTaxList: taxData\r\n });\r\n });\r\n PostReservationBulkTransaction(ReservationTransactionDetail).then(d => {\r\n alertFunction(\"Process is completed successfully.\");\r\n props.OnClose();\r\n });\r\n } else {\r\n alertFunction(\"Please select atlease one transaction to proceed.\");\r\n }\r\n };\r\n\r\n const handleAllCheckBoxClick = (e) => {\r\n let temp = JSON.parse(JSON.stringify(list));\r\n temp.forEach(x => {\r\n if (e) {\r\n x.IsChecked = true;\r\n } else {\r\n x.IsChecked = false;\r\n }\r\n });\r\n if (e) {\r\n setIsAllChecked(true);\r\n setSelectedItems(temp);\r\n } else {\r\n setIsAllChecked(false);\r\n setSelectedItems([]);\r\n }\r\n setList(temp);\r\n };\r\n\r\n const handleSingleCheckboxClick = (e, item) => {\r\n let temp = JSON.parse(JSON.stringify(list));\r\n let checkedItem = JSON.parse(JSON.stringify(selectedItems));\r\n const getUpdatedDate = (date) => {\r\n return moment(new Date(date)).format(\"DD-MMM-YYYY\");\r\n };\r\n\r\n if (e) {\r\n checkedItem = [];\r\n temp.forEach(x => {\r\n if (getUpdatedDate(x.OrgDate) <= getUpdatedDate(item.OrgDate)) {\r\n x.IsChecked = true;\r\n checkedItem.push(x);\r\n }\r\n });\r\n } else {\r\n let tempChecked = checkedItem.filter(o => getUpdatedDate(o.OrgDate) < getUpdatedDate(item.OrgDate));\r\n temp.forEach(x => {\r\n if (tempChecked.some(i => i.Key === x.Key)) {\r\n x.IsChecked = true;\r\n } else {\r\n x.IsChecked = false;\r\n }\r\n });\r\n checkedItem = tempChecked;\r\n }\r\n setList(temp);\r\n setSelectedItems(checkedItem);\r\n };\r\n\r\n useEffect(() => {\r\n fillList();\r\n }, []);\r\n return (\r\n {\r\n if (props.OnClose != undefined) {\r\n props.OnClose();\r\n }\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Advance Bill

    \r\n
    \r\n
    \r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* {\r\n setSelectedItems(items);\r\n console.log(items);\r\n }}\r\n fixedHeaderNo={2}\r\n handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"Date\"\r\n //optData={selectData}\r\n optClick={(item, d) => {\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(\"is row data\", rowdata);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n > */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {list.map((item, index) => {\r\n return \r\n \r\n \r\n \r\n \r\n ;\r\n })}\r\n \r\n
    \r\n {\r\n handleAllCheckBoxClick(ischecked);\r\n }}>\r\n DateRate CodeRate
    \r\n {\r\n handleSingleCheckboxClick(ischecked, item);\r\n }}>\r\n {item.Date}{item.Name}{item.RoomRate}
    \r\n
    \r\n \r\n );\r\n}\r\n","import moment from 'moment';\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { InnTextarea, InnSingleSelectDropdown, InnModalPopup, InnPrimaryButton, useConfirm } from '../../../../component';\r\nimport { currentUser } from '../../../../reducer/authSlice';\r\nimport { GetReasonMaster } from '../../../../services/generalService';\r\nimport { EditReservationEarlyDeparture } from '../../../../services/reservationCashieringService';\r\n\r\nexport function EarlyDepartureModalPopup(props) {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const [dayCount, setDayCount] = useState(0);\r\n const [reasonData, setReasonData] = useState([]);\r\n const [note, setNote] = useState(\"\");\r\n const [selectedReason, setSelectedReason] = useState(0);\r\n const [validationObj, setValidationObj] = useState({\r\n Reason: \"\",\r\n Note: \"\"\r\n });\r\n\r\n const fillReasonMasterData = () => {\r\n GetReasonMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"ErlDp\").then((d) => {\r\n let tempData = [{ key: 0, value: \"Select\" }];\r\n for (let i = 0; i < d.data.length; i++) {\r\n tempData.push({\r\n key: d.data[i].ReasonSerNo,\r\n value: d.data[i].Name,\r\n });\r\n }\r\n setReasonData(tempData);\r\n });\r\n };\r\n\r\n const onSaveClick = () => {\r\n let isValid = true;\r\n let temp = {\r\n Reason: \"\",\r\n Note: \"\"\r\n };\r\n if (selectedReason === 0) {\r\n temp.Reason = \"Please select reason.\";\r\n isValid = false;\r\n }\r\n if (note.trim() === \"\") {\r\n temp.Note = \"Please enter note.\";\r\n isValid = false;\r\n }\r\n setValidationObj(temp);\r\n if (isValid) {\r\n let para = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"ReservationSerNo\": props.para.ReservationSerNo,\r\n \"ReasonSerNo\": selectedReason,\r\n \"Remarks\": note,\r\n \"UserID\": currUser.UserID\r\n };\r\n EditReservationEarlyDeparture(para).then(d => {\r\n alertFunction(d.data.Message);\r\n if (props.OnClose != undefined) {\r\n props.OnClose();\r\n }\r\n });\r\n } else {\r\n alertFunction(\"one or more validation error occured.\");\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n fillReasonMasterData();\r\n if (props.para != undefined) {\r\n if (props.para.DepartureDate != undefined && props.para.BusinessDate != undefined) {\r\n setDayCount(((new Date(props.para.DepartureDate).setHours(0, 0, 0, 0) - new Date(props.para.BusinessDate).setHours(0, 0, 0, 0)) / 1000 / 60 / 60 / 24));\r\n }\r\n }\r\n }, []);\r\n return (\r\n {\r\n if (props.OnClose != undefined) {\r\n props.OnClose();\r\n }\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n

     Early Departure

    \r\n
    \r\n
    \r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Departure\r\n {moment(new Date(props.para.DepartureDate)).format('ddd, Do MMM, YYYY')}\r\n
    \r\n
    \r\n Early Departing Today\r\n ({(dayCount > 0) ? dayCount : 0} {(dayCount > 1) ? \"Days\" : \"Day\"} Early)\r\n
    \r\n
    \r\n {\r\n setSelectedReason(item.key);\r\n if (item.key !== 0) {\r\n setValidationObj(prev => ({ ...prev, Reason: \"\" }));\r\n }\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n if (e != \"\") {\r\n setValidationObj(prev => ({ ...prev, Note: \"\" }));\r\n }\r\n setNote(e);\r\n }}\r\n customError={validationObj.Note}\r\n >\r\n Note\r\n \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnTextarea,\r\n InnSingleDateSelection,\r\n InnSearchTextbox,\r\n InnMultiSelectDropdown,\r\n InnDataGrid,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport {\r\n GetTransactionMaster,\r\n GetReservationInfoData,\r\n GetReservationInfoProfileData,\r\n manageReservationIndicator\r\n} from \"../../../../services/reservationService\";\r\nimport {\r\n GetReservationWindowRoutingList\r\n} from \"../../../../services/reservationCashieringService\";\r\nimport { GetPropertyParameterByKeys, cmbGetReservationStatus } from \"../../../../services/reservationService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { AddReservationBulkTransaction, GetBlockReservationForBulkPost } from \"../../../../services/blockService\";\r\nimport { useAlert } from \"../../../../utils/hooks/useAlert\";\r\n\r\nexport function BulkPaymentModalPopup(props) {\r\n\r\n\r\n //#region local varialbes\r\n const { confirm } = useConfirm();\r\n const { innkeyAlert } = useAlert();\r\n const selectData = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n ];\r\n const bulkPostTableHeader = [\r\n { key: \"Res.Status\", value: \"ReservationStatus\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Room No\", value: \"RoomNo\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Guest Name\", value: \"GuestName\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Arr. Date\", value: \"ArrivalDate\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Night\", value: \"Nights\", type: \"txt\", sorting: \"Y\", align: \"left\" },\r\n { key: \"Adult\", value: \"Adult\", type: \"txt\", sorting: \"Y\", align: \"left\" },\r\n { key: \"Amount\", value: \"Amount\", type: \"txt\", sorting: \"Y\", align: \"center\" },\r\n { key: \"Status\", value: \"Status\", type: \"txt\", sorting: \"Y\" },\r\n ];\r\n //#endregion\r\n\r\n //#region state\r\n const currUser = useSelector(currentUser);\r\n const [reservationInfoData, setReservationInfoData] = useState({});\r\n const [reservationGuestInfoData, setReservationGuestInfoData] = useState({});\r\n const [reservationRoomTypeData, setReservationRoomTypeData] = useState({});\r\n const [paymodeTypeList, setPaymodeTypeList] = useState([]);\r\n const [transactionChargeList, setTransactionChargeList] = useState([]);\r\n const [cmbPaymentMode, setCmbPaymentMode] = useState([]);\r\n const [cmbWindow, setCmbWindow] = useState([]);\r\n const [cmbReason, setCmbReason] = useState([]);\r\n const [paymentMethodType, setPaymentMethodType] = useState(\"\");\r\n const [transactionMode, setTransactionMode] = useState(\"Payment\");//Payment , Refund, PaymentCorrection\r\n const [disabledAmountText, setdDisabledAmountText] = useState(false);\r\n const [disableCmbPaymentMode, setDisableCmbPaymentMode] = useState(false);\r\n const [disableCmbCharge, setDisableCmbCharge] = useState(false);\r\n const [disableCmbWindow, setDisableCmbWindow] = useState(true);\r\n const [depositCorrectionAmount, setDepositCorrectionAmount] = useState(0);\r\n const [IsTaxCalcOnAdvance, setIsTaxCalcOnAdvance] = useState(false);\r\n const [reservationList, setReservationList] = useState([]);\r\n const [filterReservationList, setFilterReservationList] = useState([]);\r\n const [searchString, setSearchString] = useState(\"\");\r\n const [selectedResStatus, setSelectedResStatus] = useState([]);\r\n const [reservationStatusList, setReservationStatusList] = useState([]);\r\n const [selectedReservations, setSelectedReservations] = useState([]);\r\n const [amount, setAmount] = useState(\"0\");\r\n const [IsCompleted, setIsCompleted] = useState(false);\r\n const [reservationTransactionObj, setReservationTransactionObj] = useState({\r\n ClientSerNo: props.para.ClientSerNo,\r\n PropertySerNo: props.para.PropertySerNo,\r\n OrgReservationSerNo: props.para.ReservationSerNo,\r\n TransactionType: \"\",\r\n TransactionDate: \"\",\r\n DocumentNo: \"\",\r\n TransactionSerNo: 0,\r\n PaymentMethodType: \"\",\r\n WindowSerNo: 1,\r\n CCNo: \"\",\r\n CCHolderName: \"\",\r\n CCExpiryDate: \"\",\r\n PanCardNo: \"\",\r\n PanHolderName: \"\",\r\n ChequeNo: \"\",\r\n BankName: \"\",\r\n BranchName: \"\",\r\n NameOfAccount: \"\",\r\n PaymentReceivedDate: \"\",\r\n UPIId: \"\",\r\n Remarks: \"\",\r\n TransactionName: \"\",\r\n AssoTransactionSerNo: 0,\r\n RefundRemarks: \"\",\r\n CorrectionRemarks: \"\",\r\n ReceiptNo: \"\",\r\n RefReservationTransactionSerNo: 0,\r\n PaymentType: \"P\",\r\n IsPaidOut: false,\r\n ReasonSerNo: 0,\r\n IsTaxInclusive: true\r\n });\r\n const [transactionValidationObj, setTransactionValidationObj] = useState({\r\n Amount: \"\",\r\n DocumentNo: \"\",\r\n TransactionSerNo: \"\",\r\n CCNo: \"\",\r\n CCHolderName: \"\",\r\n CCExpiryDate: \"\",\r\n PanCardNo: \"\",\r\n PanHolderName: \"\",\r\n ChequeNo: \"\",\r\n BankName: \"\",\r\n BranchName: \"\",\r\n NameOfAccount: \"\",\r\n PaymentReceivedDate: \"\",\r\n UPIId: \"\",\r\n RefundRemarks: \"\",\r\n CorrectionRemarks: \"\",\r\n CorrectionAmount: \"\",\r\n ReasonSerNo: \"\"\r\n });\r\n //#endregion\r\n\r\n //#region service\r\n const fillReservationInfoData = () => {\r\n if (props.para != undefined) {\r\n let o = props.para;\r\n GetReservationInfoData(parseInt(o.ClientSerNo), parseInt(o.PropertySerNo), o.ReservationSerNo).then((d) => {\r\n setReservationInfoData(d.data);\r\n fillReservationGuestInfoData(d.data.GuestProfileSerNo);\r\n fillReservationRoomTypeData(d.data);\r\n });\r\n }\r\n };\r\n const fillReservationGuestInfoData = (GuestProfileSerNo) => {\r\n GetReservationInfoProfileData(parseInt(currUser.ClientSerNo), GuestProfileSerNo, \"GU\").then((d) => {\r\n setReservationGuestInfoData(d.data);\r\n });\r\n };\r\n const fillReservationRoomTypeData = (x) => {\r\n manageReservationIndicator(x.ClientSerNo, x.PropertySerNo, x.ReservationSerNo).then((d) => {\r\n setReservationRoomTypeData(d.data);\r\n });\r\n };\r\n const GetReservationBulkList = () => {\r\n if (props.para != undefined) {\r\n let o = props.para;\r\n GetBlockReservationForBulkPost(o.ClientSerNo, o.PropertySerNo, o.BlockSerNo).then(d => {\r\n let temp = JSON.parse(JSON.stringify(d.data));\r\n temp.forEach(x => {\r\n x[\"Amount\"] = 0.00;\r\n x[\"Status\"] = \"\";\r\n });\r\n setReservationList(temp);\r\n setFilterReservationList(temp.filter(x => [\"ARD\", \"INH\", \"DOT\"].includes(x.ReservationStatus)));\r\n }).catch(error => {\r\n console.log(error);\r\n setReservationList([]);\r\n setFilterReservationList([]);\r\n });\r\n }\r\n };\r\n\r\n const getTransactionMasterData = () => {\r\n GetTransactionMaster(props.para.ClientSerNo, props.para.PropertySerNo, 'P', 'G').then(d => {\r\n setPaymodeTypeList(d.data);\r\n let paymodeList = [];\r\n d.data.map(element => {\r\n paymodeList.push({ key: element.TransactionSerNo, value: element.Name });\r\n });\r\n setCmbPaymentMode(paymodeList);\r\n let tempPaymodeSerNo = d.data.filter(e => e.Name == \"By Cash\")[0].TransactionSerNo;\r\n setReservationTransactionObj(prev => ({ ...prev, TransactionSerNo: tempPaymodeSerNo, PaymentMethodType: \"CA\", TransactionType: \"P\", WindowSerNo: 1 }));\r\n setPaymentMethodType(\"CA\");\r\n\r\n\r\n }).catch(error => {\r\n setPaymodeTypeList([]);\r\n setCmbPaymentMode([]);\r\n });\r\n };\r\n\r\n const getReservationwindowRoutingList = () => {\r\n GetReservationWindowRoutingList(props.para.ClientSerNo, props.para.PropertySerNo, props.para.ReservationSerNo).then(d => {\r\n let cmbWindowList = [];\r\n d.data.map(element => {\r\n cmbWindowList.push({ key: element.WindowSerNo, value: element.WindowName });\r\n });\r\n setCmbWindow(cmbWindowList);\r\n }).catch(error => {\r\n setCmbWindow([]);\r\n });\r\n };\r\n\r\n const getChargeMasterData = () => {\r\n GetTransactionMaster(props.para.ClientSerNo, props.para.PropertySerNo, 'C', 'F').then(d => {\r\n let chargeList = [];\r\n d.data.map(element => {\r\n chargeList.push({ key: element.TransactionSerNo, value: element.Name });\r\n });\r\n setTransactionChargeList(chargeList);\r\n }).catch(error => {\r\n setTransactionChargeList([]);\r\n });\r\n };\r\n const fillPropertyParameterData = () => {\r\n GetPropertyParameterByKeys(parseInt(props.para.ClientSerNo), parseInt(props.para.PropertySerNo), [\"IsTaxCalculateOnAdvance\"]).then((d) => {\r\n if (d.data.length > 0) {\r\n if (d.data[0].value == '1') {\r\n setIsTaxCalcOnAdvance(true);\r\n getChargeMasterData();\r\n } else if (d.data[0].value == '0') {\r\n setIsTaxCalcOnAdvance(false);\r\n setTransactionChargeList([]);\r\n }\r\n }\r\n });\r\n };\r\n //#endregion\r\n\r\n //#region event\r\n const handleModeOfPaymentChange = (paymodeSerNo) => {\r\n let paymentMethodType = paymodeTypeList.filter(element => element.TransactionSerNo == paymodeSerNo)[0].PaymentMethodType;\r\n setPaymentMethodType(paymentMethodType);\r\n setReservationTransactionObj(prev => ({ ...prev, TransactionSerNo: paymodeSerNo, PaymentMethodType: paymentMethodType, TransactionType: \"P\", WindowSerNo: 1 }));\r\n };\r\n const handleSaveOnClick = () => {\r\n let IsPageValid = isValidData();\r\n if (selectedReservations.length > 0) {\r\n let arr = [];\r\n selectedReservations.forEach(x => {\r\n arr.push({ ...reservationTransactionObj, ReservationSerNo: x.ReservationSerNo, Amount: parseFloat(amount) });\r\n });\r\n if (IsPageValid) {\r\n AddReservationBulkTransaction(arr).then(d => {\r\n let temp = JSON.parse(JSON.stringify(reservationList));\r\n if (d.data != undefined) {\r\n setIsCompleted(true);\r\n }\r\n let o = d.data;\r\n temp.forEach(x => {\r\n let obj = o.find(u => u.ReservationSerNo === x.ReservationSerNo);\r\n alertFunction(\"Process is completed successfully.\");\r\n if (obj !== undefined) {\r\n if (obj.status == '1') {\r\n x.Status = \"Success\";\r\n } else if (obj.status == '0') {\r\n x.Status = \"Failed\";\r\n }\r\n }\r\n });\r\n setFilterReservationList(temp);\r\n setSearchString(\"\");\r\n setSelectedResStatus([]);\r\n });\r\n }\r\n } else {\r\n alertFunction(\"please select reservation first.\");\r\n }\r\n };\r\n const isValidData = () => {\r\n let isValid = true;\r\n setTransactionValidationObj([]);\r\n if (reservationTransactionObj.TransactionSerNo == 0 || reservationTransactionObj.TransactionSerNo == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, TransactionSerNo: \"Select Payment Method\" }));\r\n }\r\n if (amount == \"\" || parseInt(amount) <= 0) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, Amount: \"Enter the deposit Amount\" }));\r\n }\r\n if (paymentMethodType == \"CA\") {\r\n if (parseInt(amount) >= 50000) {\r\n if (reservationTransactionObj.PanCardNo == \"\" || reservationTransactionObj.PanCardNo == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, PanCardNo: \"Enter PanCard No\" }));\r\n }\r\n if (reservationTransactionObj.PanHolderName == \"\" || reservationTransactionObj.PanHolderName == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, PanHolderName: \"Enter Pan Holder Name\" }));\r\n }\r\n\r\n }\r\n }\r\n if (paymentMethodType == \"CH\") {\r\n if (reservationTransactionObj.ChequeNo == \"\" || reservationTransactionObj.ChequeNo == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, ChequeNo: \"Enter ChequeNo\" }));\r\n }\r\n if (reservationTransactionObj.BankName == \"\" || reservationTransactionObj.BankName == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, BankName: \"Enter Bank Name\" }));\r\n }\r\n if (reservationTransactionObj.BranchName == \"\" || reservationTransactionObj.BranchName == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, BranchName: \"Enter Branch Name\" }));\r\n }\r\n if (reservationTransactionObj.NameOfAccount == \"\" || reservationTransactionObj.NameOfAccount == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, NameOfAccount: \"Enter Name Of Account\" }));\r\n }\r\n }\r\n if (paymentMethodType == \"CD\") {\r\n if (reservationTransactionObj.CCNo == \"\" || reservationTransactionObj.CCNo == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, CCNo: \"Enter Card No\" }));\r\n }\r\n if (reservationTransactionObj.CCExpiryDate == \"\" || reservationTransactionObj.CCExpiryDate == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, CCExpiryDate: \"Enter Expiry Date\" }));\r\n }\r\n if (reservationTransactionObj.CCHolderName == \"\" || reservationTransactionObj.CCHolderName == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, CCHolderName: \"Enter Card Holder Name\" }));\r\n }\r\n }\r\n if (paymentMethodType == \"BT\") {\r\n if (reservationTransactionObj.BankName == \"\" || reservationTransactionObj.BankName == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, BankName: \"Enter Bank Name\" }));\r\n }\r\n if (reservationTransactionObj.PaymentReceivedDate == \"\" || reservationTransactionObj.PaymentReceivedDate == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, PaymentReceivedDate: \"Enter Payment Receive Date\" }));\r\n }\r\n if (reservationTransactionObj.NameOfAccount == \"\" || reservationTransactionObj.NameOfAccount == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, NameOfAccount: \"Enter Name Of Account\" }));\r\n }\r\n }\r\n if (paymentMethodType == \"UP\") {\r\n if (reservationTransactionObj.UPIId == \"\" || reservationTransactionObj.UPIId == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, UPIId: \"Enter UPI ID\" }));\r\n }\r\n if (reservationTransactionObj.PaymentReceivedDate == \"\" || reservationTransactionObj.PaymentReceivedDate == null) {\r\n isValid = false;\r\n setTransactionValidationObj(prev => ({ ...prev, PaymentReceivedDate: \"Enter Payment Receive Date\" }));\r\n }\r\n }\r\n return isValid;\r\n };\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const handleOnSearchChange = (e) => {\r\n setSearchString(e);\r\n let tempData = [];\r\n tempData = reservationList.filter(x =>\r\n x.GuestName.toLowerCase().includes(e.toLowerCase()) || x.RoomNo.includes(e)\r\n );\r\n setFilterReservationList(tempData);\r\n };\r\n //#endregion\r\n\r\n //#region useEffect\r\n\r\n useEffect(() => {\r\n getTransactionMasterData();\r\n getReservationwindowRoutingList();\r\n fillPropertyParameterData();\r\n fillReservationInfoData();\r\n cmbGetReservationStatus().then((d) => {\r\n let temp = d.data.filter(x => x.key != 0);\r\n setReservationStatusList(temp);\r\n setSelectedResStatus([\"ARD\", \"INH\", \"DOT\"]);\r\n });\r\n GetReservationBulkList();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (transactionMode == \"Payment\") {\r\n setDisableCmbPaymentMode(false);\r\n setdDisabledAmountText(false);\r\n setDisableCmbCharge(false);\r\n setReservationTransactionObj(prev => ({\r\n ...prev,\r\n ClientSerNo: props.para.ClientSerNo,\r\n PropertySerNo: props.para.PropertySerNo,\r\n ReservationSerNo: props.para.ReservationSerNo,\r\n WindowSerNo: 1,\r\n PaymentType: \"P\"\r\n }));\r\n setAmount(\"0\");\r\n }\r\n }, [transactionMode]);\r\n\r\n //#endregion\r\n\r\n return (\r\n {\r\n if (props.OnClose != undefined) {\r\n if (IsCompleted) {\r\n props.OnClose();\r\n } else {\r\n let isConfirmed = true;\r\n isConfirmed = await innkeyAlert(\"Would you like to discard the changes you have made?\");\r\n if (isConfirmed) {\r\n props.OnClose();\r\n }\r\n }\r\n }\r\n }}>\r\n
    \r\n
    \r\n
    \r\n

     Post Payment (Bulk)

    \r\n
    \r\n
    \r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      \r\n Room No / Room Type\r\n {reservationRoomTypeData && reservationRoomTypeData.RoomTypeSerNo > reservationRoomTypeData.ChargeableRoomTypeSerNo ? : reservationRoomTypeData.RoomTypeSerNo < reservationRoomTypeData.ChargeableRoomTypeSerNo ? : }\r\n
      \r\n
      \r\n {reservationRoomTypeData.RoomNo}/{reservationRoomTypeData.RoomTypeName}\r\n
      \r\n
    • \r\n
    • \r\n
      Confirmation No.
      \r\n
      {reservationInfoData.BookingNo}
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      {reservationGuestInfoData.ProfileName}
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n handleModeOfPaymentChange(parseInt(item.key))}\r\n >\r\n
    \r\n
    \r\n
    \r\n {\r\n if (amount == \"\") {\r\n setTransactionValidationObj(prev => ({ ...prev, Amount: \"\" }));\r\n }\r\n }}\r\n onChange={(v) => {\r\n setAmount(v);\r\n let temp = JSON.parse(JSON.stringify(filterReservationList));\r\n let temp1 = JSON.parse(JSON.stringify(reservationList));\r\n if (parseFloat(v) >= 0) {\r\n temp.forEach(x => {\r\n x.Amount = parseFloat(v).toFixed(2);\r\n });\r\n temp1.forEach(x => {\r\n x.Amount = parseFloat(v).toFixed(2);\r\n });\r\n setTransactionValidationObj(prev => ({ ...prev, Amount: \"\" }));\r\n } else {\r\n temp.forEach(x => {\r\n x.Amount = 0.00;\r\n });\r\n temp1.forEach(x => {\r\n x.Amount = 0.00;\r\n });\r\n setTransactionValidationObj(prev => ({ ...prev, Amount: \"enter valid amount\" }));\r\n }\r\n setReservationList(temp1);\r\n setFilterReservationList(temp);\r\n }}>Amount\r\n
    \r\n
    \r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, DocumentNo: v }));\r\n }}>Document Reference\r\n {transactionMode == \"Refund\" ?\r\n \r\n Refundable Amount\r\n : null}\r\n {transactionMode == \"Refund\" ?\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, RefundRemarks: v }));\r\n }}>Refund Reason\r\n : null\r\n }\r\n {transactionMode == \"PaymentCorrection\" ?\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, CorrectionRemarks: v }));\r\n }}>Correction Reason\r\n : null}\r\n {transactionMode == \"PaymentCorrection\" ?\r\n {\r\n setAmount((depositCorrectionAmount * (-1) - parseFloat(v)));\r\n }} >\r\n Correction Amount\r\n : null}\r\n {transactionMode == \"Refund\" ?\r\n Receipt No\r\n : null\r\n }\r\n {IsTaxCalcOnAdvance ?\r\n
    \r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, AssoTransactionSerNo: parseInt(item.key) }));\r\n }}\r\n >\r\n
    \r\n :\r\n null}\r\n
    \r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, WindowSerNo: parseInt(item.key) }));\r\n }}\r\n >\r\n
    \r\n {props.para.TransactionMode == \"PaidOut\" ?\r\n
    \r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, ReasonSerNo: parseInt(item.key) }));\r\n }}\r\n >\r\n
    \r\n : null}\r\n
    \r\n
    \r\n {paymentMethodType == \"CD\" ?\r\n
    \r\n
    \r\n
    Card Details
    \r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, CCNo: v }));\r\n }}>Credit Card Number\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, CCExpiryDate: e }));\r\n }}\r\n placeholder=\"mm/yyyy\"\r\n dateformat=\"MM-yyyy\"\r\n selected={reservationTransactionObj.CCExpiryDate}\r\n calendarStartDay={1}\r\n label=\"Expiry Date\"\r\n customError={transactionValidationObj.CCExpiryDate}\r\n >\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, CCHolderName: v }));\r\n }}>Card Holder Name\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, Remarks: v }));\r\n }}>Note\r\n
    \r\n
    \r\n : null\r\n }\r\n {paymentMethodType == \"CA\" ?\r\n
    \r\n
    Cash Payment Details
    \r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, PanCardNo: v }));\r\n\r\n }}>PAN Card No\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, PanHolderName: v }));\r\n\r\n }}>Name on PAN Card\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, Remarks: v }));\r\n\r\n }}>Note\r\n
    \r\n : null\r\n }\r\n {paymentMethodType == \"CH\" ?\r\n
    \r\n
    Cheque Details
    \r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, ChequeNo: v }));\r\n }}>Cheque No\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, BankName: v }));\r\n }}>Bank Name\r\n\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, BranchName: v }));\r\n\r\n }}>Branch Name\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, NameOfAccount: v }));\r\n\r\n }}>Name on Account\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, Remarks: v }));\r\n\r\n }}>Note\r\n
    \r\n : null}\r\n {paymentMethodType == \"BT\" ?\r\n
    \r\n\r\n
    Bank Transfer Details
    \r\n\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, BankName: v }));\r\n }}>Bank Name\r\n\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, NameOfAccount: v }));\r\n\r\n }}>Name on Account\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, PaymentReceivedDate: e }));\r\n }}\r\n placeholder=\"mm/yyyy\"\r\n selected={reservationTransactionObj.PaymentReceivedDate}\r\n calendarStartDay={1}\r\n label=\"Payment Received Date\"\r\n >\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, Remarks: v }));\r\n\r\n }}>Note\r\n
    \r\n : null}\r\n {paymentMethodType == \"UP\" ?\r\n
    \r\n\r\n
    UPI payment details
    \r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, UPIId: v }));\r\n\r\n }}>UPI ID\r\n\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, NameOfAccount: v }));\r\n\r\n }}>Name on Account\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, PaymentReceivedDate: e }));\r\n }}\r\n placeholder=\"mm/yyyy\"\r\n calendarStartDay={1}\r\n label=\"Payment Received Date\"\r\n selected={reservationTransactionObj.PaymentReceivedDate}\r\n >\r\n {\r\n setReservationTransactionObj(prev => ({ ...prev, Remarks: v }));\r\n }}>Note\r\n\r\n
    \r\n : null}\r\n
    \r\n
    \r\n
    \r\n
    Reservation ({reservationList.length})
    \r\n
    \r\n
    \r\n
    \r\n First Name, Last Name , Room No.\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedResStatus(item);\r\n let temp = [];\r\n if (searchString != \"\") {\r\n temp = reservationList.filter(x => x.GuestName.toLowerCase().includes(searchString.toLowerCase()) || x.RoomNo.includes(searchString));\r\n }\r\n setFilterReservationList(temp.filter(x => item.includes(x.ReservationStatus)));\r\n }}\r\n label=\"Reservation Status\"\r\n disabled={false}\r\n >\r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedReservations(items);\r\n }}\r\n fixedHeaderNo={2}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={selectData}\r\n optClick={(item, d) => {\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n \r\n\r\n );\r\n}","import React, { useState } from 'react';\r\nimport { useEffect } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnDataGrid,\r\n InnMultiSelectDropdown,\r\n InnSingleSelectDropdown,\r\n InnRadioButton,\r\n InnToolTip,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnTooltip,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport { currentUser } from '../../../../reducer/authSlice';\r\nimport {\r\n GetReservationInfoData,\r\n GetReservationInfoProfileData,\r\n manageReservationIndicator,\r\n GetCalculatedTaxByTransaction,\r\n GetTransactionMaster,\r\n cmbGetReservationStatus,\r\n GetPropertyParameterByKeys\r\n} from '../../../../services/reservationService';\r\nimport { GetBlockReservationForBulkPost, PostReservationBulkTransaction } from '../../../../services/blockService';\r\nimport moment from 'moment';\r\nimport { useAlert } from '../../../../utils/hooks/useAlert';\r\n\r\nexport function PostPMTransactionModalPopup(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const TaxesTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    CGST 6%
    \r\n
    \r\n
    \r\n
    SGST 6%
    \r\n
    \r\n
    \r\n
    Taxable Amount 4,500
    \r\n
    \r\n
    \r\n
    Tax Amount 140
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n const { confirm } = useConfirm();\r\n const { innkeyAlert } = useAlert();\r\n const bulkPostTableHeader = [\r\n { key: \"Res.Status\", value: \"ReservationStatus\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Room No\", value: \"RoomNo\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Guest Name\", value: \"GuestName\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Arr. Date\", value: \"ArrivalDate\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Night\", value: \"Nights\", type: \"txt\", sorting: \"Y\", align: \"left\" },\r\n { key: \"Adult\", value: \"Adult\", type: \"txt\", sorting: \"Y\", align: \"left\" },\r\n { key: \"Amount\", value: \"Amount\", type: \"txt\", sorting: \"Y\", align: \"center\" },\r\n { key: \"Status\", value: \"Status\", type: \"txt\", sorting: \"Y\" },\r\n ];\r\n\r\n\r\n const selectData = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n ];\r\n const [selectMulti, setselectMulti] = useState([\"1\", \"2\", \"3\"]);\r\n const rbData = [\r\n { key: \"room\", value: \"Per Room\" },\r\n { key: \"adult\", value: \"Per Adult\" },\r\n ];\r\n\r\n //#region local variables\r\n const [reservationTransactionObj, setReservationTransactionObj] = useState({\r\n ClientSerNo: props.para.ClientSerNo,\r\n PropertySerNo: props.para.PropertySerNo,\r\n ReservationSerNo: props.para.ReservationSerNo,\r\n TransactionType: \"\",\r\n Amount: \"0\",\r\n DocumentNo: \"\",\r\n TransactionSerNo: 0,\r\n WindowSerNo: 1,\r\n Remarks: \"\",\r\n TransactionName: \"\",\r\n AssoTransactionSerNo: 0,\r\n Quantity: 0,\r\n IsTaxInclusive: false,\r\n IsPaidOut: false,\r\n TransactionDate: \"\"\r\n });\r\n const defaultValidationObj = {\r\n Amount: \"\",\r\n Window: \"\",\r\n Transaction: \"\",\r\n Night: \"\"\r\n };\r\n const [validationObj, setValidationObj] = useState(defaultValidationObj);\r\n\r\n //#endregion\r\n\r\n //#region service\r\n const fillReservationInfoData = () => {\r\n if (props.para != undefined) {\r\n let o = props.para;\r\n GetReservationInfoData(parseInt(o.ClientSerNo), parseInt(o.PropertySerNo), o.ReservationSerNo).then((d) => {\r\n setReservationInfoData(d.data);\r\n fillReservationGuestInfoData(d.data.GuestProfileSerNo);\r\n fillReservationRoomTypeData(d.data);\r\n });\r\n }\r\n };\r\n const fillReservationGuestInfoData = (GuestProfileSerNo) => {\r\n GetReservationInfoProfileData(parseInt(currUser.ClientSerNo), GuestProfileSerNo, \"GU\").then((d) => {\r\n setReservationGuestInfoData(d.data);\r\n });\r\n };\r\n const fillReservationRoomTypeData = (x) => {\r\n manageReservationIndicator(x.ClientSerNo, x.PropertySerNo, x.ReservationSerNo).then((d) => {\r\n setReservationRoomTypeData(d.data);\r\n });\r\n };\r\n const getChargeMasterData = () => {\r\n GetTransactionMaster(props.para.ClientSerNo, props.para.PropertySerNo, \"C\", \"ALL\")\r\n .then((d) => {\r\n let chargeList = [];\r\n d.data.map((element) => {\r\n chargeList.push({ key: element.TransactionSerNo, value: element.Name });\r\n });\r\n setTransactionChargeList(chargeList);\r\n })\r\n .catch((error) => {\r\n setTransactionChargeList([]);\r\n });\r\n };\r\n\r\n const GetReservationBulkList = () => {\r\n if (props.para != undefined) {\r\n let o = props.para;\r\n GetBlockReservationForBulkPost(o.ClientSerNo, o.PropertySerNo, o.BlockSerNo).then(d => {\r\n let temp = JSON.parse(JSON.stringify(d.data));\r\n temp.forEach(x => {\r\n x[\"Amount\"] = 0.00;\r\n x[\"Status\"] = \"\";\r\n });\r\n setReservationList(temp);\r\n setFilterReservationList(temp.filter(x => [\"ARD\", \"INH\", \"DOT\"].includes(x.ReservationStatus)));\r\n }).catch(error => {\r\n console.log(error);\r\n setReservationList([]);\r\n setFilterReservationList([]);\r\n });\r\n }\r\n };\r\n //#endregion\r\n\r\n //#region state\r\n const [reservationInfoData, setReservationInfoData] = useState({});\r\n const [reservationGuestInfoData, setReservationGuestInfoData] = useState({});\r\n const [reservationRoomTypeData, setReservationRoomTypeData] = useState({});\r\n const [reservationTransactionTaxDetail, setReservationTransactionTaxDetail] = useState([]);\r\n const [transactionChargeList, setTransactionChargeList] = useState([]);\r\n const [cmbWindow, setCmbWindow] = useState([{ key: 1, value: \"Window 1\" }]);\r\n const [totalTax, setTotalTax] = useState(0);\r\n const [totalAmount, setTotalAmount] = useState(0);\r\n const [reservationList, setReservationList] = useState([]);\r\n const [filterReservationList, setFilterReservationList] = useState([]);\r\n const [nightCount, setNightCount] = useState(\"1\");\r\n const [selectedRb, setSelectedRb] = useState(\"\");\r\n const [searchString, setSearchString] = useState(\"\");\r\n const [reservationStatusList, setReservationStatusList] = useState([]);\r\n const [selectedResStatus, setSelectedResStatus] = useState([]);\r\n const [selectedReservations, setSelectedReservations] = useState([]);\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n const [IsCompleted, setIsCompleted] = useState(false);\r\n //#endregion\r\n\r\n //#region events\r\n\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const IsPageValid = () => {\r\n let returnValue = true;\r\n if (reservationTransactionObj.TransactionSerNo == 0) {\r\n returnValue = false;\r\n setValidationObj(prev => ({ ...prev, Transaction: \"please select transaction name\" }));\r\n }\r\n if (selectedRb == \"\") {\r\n returnValue = false;\r\n }\r\n if (parseInt(nightCount) < 1 || validationObj.Night || nightCount == \"\") {\r\n returnValue = false;\r\n setValidationObj(prev => ({ ...prev, Night: \"not valid.\" }));\r\n }\r\n if (validationObj.Amount || parseInt(reservationTransactionObj.Amount) < 1 || reservationTransactionObj.Amount == \"\") {\r\n returnValue = false;\r\n setValidationObj(prev => ({ ...prev, Amount: \"Enter valid amount.\" }));\r\n }\r\n\r\n if (selectedReservations.length == 0) {\r\n alertFunction(\"please select reservation to proceed.\");\r\n returnValue = false;\r\n } else if (returnValue != true) {\r\n alertFunction(\"one or more validation error occured.\");\r\n }\r\n return returnValue;\r\n };\r\n\r\n const handleOnSaveClick = () => {\r\n let output = IsPageValid();\r\n let ReservationTransactionDetail = [];\r\n if (output) {\r\n let arr = [];\r\n selectedReservations.forEach(x => {\r\n let numberOfNights = 0;\r\n let BusinessDate = new Date(businessDate);\r\n let year = BusinessDate.getFullYear();\r\n let DepartureDate = new Date(x.DepartureDate + `-${year}`);\r\n if (DepartureDate > BusinessDate) {\r\n let dateDiff = (DepartureDate.setHours(0, 0, 0, 0) - BusinessDate.setHours(0, 0, 0, 0)) / 1000 / 60 / 60 / 24;\r\n numberOfNights = dateDiff;\r\n } else {\r\n numberOfNights = 0;\r\n }\r\n if (numberOfNights > 0) {\r\n let currDate = BusinessDate;\r\n for (let i = 0; i < numberOfNights; i++) {\r\n let ReservationTransactionObj = {\r\n ClientSerNo: props.para.ClientSerNo,\r\n PropertySerNo: props.para.PropertySerNo,\r\n ReservationSerNo: x.ReservationSerNo,\r\n TransactionType: reservationTransactionObj.TransactionType,\r\n Amount: (selectedRb === \"room\") ? parseInt(reservationTransactionObj.Amount) : (selectedRb === \"adult\") ? parseInt(x.Adult) * parseInt(reservationTransactionObj.Amount) : null,\r\n DocumentNo: reservationTransactionObj.DocumentNo,\r\n TransactionSerNo: reservationTransactionObj.TransactionSerNo,\r\n WindowSerNo: 1,\r\n Remarks: reservationTransactionObj.Remarks,\r\n TransactionName: reservationTransactionObj.TransactionName,\r\n AssoTransactionSerNo: reservationTransactionObj.AssoTransactionSerNo,\r\n IsTaxInclusive: reservationTransactionObj.IsTaxInclusive,\r\n IsPaidOut: reservationTransactionObj.IsPaidOut,\r\n OrgReservationSerNo: props.para.ReservationSerNo,\r\n TransactionDate: moment(currDate).format(\"DD-MMM-YYYY\")\r\n };\r\n ReservationTransactionDetail.push({\r\n ReservationTransactionObj: ReservationTransactionObj,\r\n ReservationTransactionTaxList: reservationTransactionTaxDetail,\r\n });\r\n currDate.setDate(currDate.getDate() + 1);\r\n }\r\n }\r\n });\r\n if (ReservationTransactionDetail.length > 0) {\r\n PostReservationBulkTransaction(ReservationTransactionDetail).then(d => {\r\n let o = d.data;\r\n let temp = JSON.parse(JSON.stringify(reservationList));\r\n temp.forEach(x => {\r\n let obj = o.find(u => u.ReservationSerNo === x.ReservationSerNo);\r\n alertFunction(\"Process is completed successfully.\");\r\n if (obj !== undefined) {\r\n if (obj.status == '1') {\r\n x.Status = \"Success\";\r\n } else if (obj.status == '0') {\r\n x.Status = \"Failed\";\r\n }\r\n }\r\n setIsCompleted(true);\r\n });\r\n setFilterReservationList(temp);\r\n setSearchString(\"\");\r\n setSelectedResStatus([]);\r\n });\r\n } else {\r\n alertFunction(\"All of the reservation are at business date so charge can not be posted.\");\r\n }\r\n }\r\n };\r\n\r\n\r\n\r\n const handleOnSearchChange = (e) => {\r\n setSearchString(e);\r\n let tempData = [];\r\n tempData = reservationList.filter(x =>\r\n x.GuestName.toLowerCase().includes(e.toLowerCase()) || x.RoomNo.includes(e)\r\n );\r\n setFilterReservationList(tempData);\r\n };\r\n\r\n const handleApplyClick = () => {\r\n let alertMessage = \"\";\r\n if (validationObj.Amount == \"\") {\r\n if (parseInt(nightCount) > 0 && validationObj.Night == \"\") {\r\n if (selectedRb != \"\") {\r\n let temp = JSON.parse(JSON.stringify(reservationList));\r\n temp.forEach(x => {\r\n if (selectedRb === \"room\") {\r\n x.Amount = (parseInt(totalAmount) * parseInt(nightCount)).toFixed(2);\r\n }\r\n else if (selectedRb === \"adult\") {\r\n x.Amount = (parseInt(totalAmount) * parseInt(x.Adult) * parseInt(nightCount)).toFixed(2);\r\n }\r\n });\r\n setReservationList(temp);\r\n setFilterReservationList(temp);\r\n setSearchString(\"\");\r\n }\r\n else {\r\n alertMessage = \"select radio button to proceed.\";\r\n }\r\n } else {\r\n alertMessage = \"Enter valid number of nights to proceed.\";\r\n }\r\n } else {\r\n alertMessage = \"Enter valid amount to proceed.\";\r\n }\r\n if (alertMessage != \"\") {\r\n alertFunction(alertMessage);\r\n }\r\n };\r\n const getTaxDetail = (tranSerno, isTaxInclusive, taxableAmount) => {\r\n if (parseInt(taxableAmount) > 0) {\r\n GetCalculatedTaxByTransaction(props.para.ClientSerNo, props.para.PropertySerNo, 0, false, isTaxInclusive, tranSerno, taxableAmount)\r\n .then((d) => {\r\n let tax = 0;\r\n let total = 0;\r\n d.data.forEach((element) => {\r\n if (element.TransactionSerNo != 0) {\r\n tax = tax + (element.TransType == \"D\" ? parseFloat(element.Amount) : parseFloat(element.Amount) * -1);\r\n }\r\n });\r\n total = total + taxableAmount + (isTaxInclusive == false ? tax : 0);\r\n setTotalTax(parseInt(tax));\r\n setTotalAmount(total);\r\n\r\n let taxList = [];\r\n let taxTooltip = [];\r\n d.data.forEach((element) => {\r\n if (element.TransactionSerNo != 0) {\r\n taxList.push({\r\n TransactionSerNo: element.TransactionSerNo,\r\n ParentTransactionSerNo: reservationTransactionObj.TransactionSerNo,\r\n Amount: parseFloat(element.Amount),\r\n OnAmount: parseFloat(element.OnAmount),\r\n Percentage: parseFloat(element.OnAmountPer),\r\n TransType: element.TransType,\r\n });\r\n taxTooltip.push({ Title: element.Name, Detail: element.OnAmountPer + \"%\" });\r\n }\r\n });\r\n taxTooltip.push({ Title: \"Taxable Amount\", Detail: taxableAmount - (isTaxInclusive == true ? tax : 0) });\r\n taxTooltip.push({ Title: \"Tax Amount\", Detail: tax });\r\n setReservationTransactionTaxDetail(taxList);\r\n })\r\n .catch((error) => {\r\n setReservationTransactionTaxDetail([]);\r\n });\r\n }\r\n };\r\n\r\n //#endregion\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n fillReservationInfoData();\r\n getChargeMasterData();\r\n cmbGetReservationStatus().then((d) => {\r\n let temp = d.data.filter(x => x.key != 0);\r\n setReservationStatusList(temp);\r\n setSelectedResStatus([\"ARD\", \"INH\", \"DOT\"]);\r\n });\r\n GetReservationBulkList();\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), [\"BusinessDate\"]).then((d) => {\r\n setBusinessDate(moment(new Date(d.data[0].value)).format(\"DD-MMM-YYYY\"));\r\n });\r\n }, []);\r\n //#endregion\r\n\r\n return (\r\n <>\r\n {\r\n if (props.OnClose != undefined) {\r\n if (IsCompleted) {\r\n props.OnClose();\r\n } else {\r\n let isConfirmed = true;\r\n isConfirmed = await innkeyAlert(\"Would you like to discard the changes you have made?\");\r\n if (isConfirmed) {\r\n props.OnClose();\r\n }\r\n }\r\n }\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    BULK POST (Block Reservation)

    \r\n
    \r\n
    \r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      \r\n Room No / Room Type\r\n {reservationRoomTypeData && reservationRoomTypeData.RoomTypeSerNo > reservationRoomTypeData.ChargeableRoomTypeSerNo ? : reservationRoomTypeData.RoomTypeSerNo < reservationRoomTypeData.ChargeableRoomTypeSerNo ? : }\r\n
      \r\n
      \r\n {reservationRoomTypeData.RoomNo}/{reservationRoomTypeData.RoomTypeName}\r\n
      \r\n
    • \r\n
    • \r\n
      Confirmation No.
      \r\n
      {reservationInfoData.BookingNo}
      \r\n
    • \r\n
    • \r\n
      Guest Name
      \r\n
      {reservationGuestInfoData.ProfileName}
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setReservationTransactionObj((prev) => ({\r\n ...prev,\r\n TransactionSerNo: parseInt(item.key),\r\n AssoTransactionSerNo: parseInt(item.key),\r\n TransactionType: \"C\",\r\n }));\r\n if (validationObj.Amount === \"\") {\r\n getTaxDetail(parseInt(item.key), reservationTransactionObj.IsTaxInclusive, parseInt(reservationTransactionObj.Amount));\r\n } else {\r\n setTotalTax(0);\r\n setTotalAmount(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
    \r\n
    \r\n {\r\n setSelectedRb(value1);\r\n }}\r\n disabled={false}\r\n >\r\n
    \r\n
    \r\n
    \r\n {\r\n setNightCount(v);\r\n if (v.trim() == \"\" || isNaN(v)) {\r\n setValidationObj(prev => ({ ...prev, Night: \"not valid\" }));\r\n } else {\r\n setValidationObj(prev => ({ ...prev, Night: \"\" }));\r\n }\r\n }}\r\n onBlur={() => {\r\n if (nightCount.trim() === \"\") {\r\n setValidationObj(prev => ({ ...prev, Night: \"\" }));\r\n }\r\n }}\r\n >For Night\r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Apply\r\n
    \r\n
    \r\n
    \r\n {\r\n setReservationTransactionObj((prev) => ({ ...prev, IsTaxInclusive: ischecked }));\r\n if (validationObj.Amount === \"\") {\r\n getTaxDetail(reservationTransactionObj.TransactionSerNo, ischecked, parseInt(reservationTransactionObj.Amount));\r\n } else {\r\n setTotalAmount(0);\r\n setTotalTax(0);\r\n }\r\n }}>\r\n Inclusive of Taxes\r\n \r\n
    \r\n
    \r\n {\r\n setReservationTransactionObj((prev) => ({ ...prev, Amount: v }));\r\n if (v.trim() === \"\" || isNaN(v)) {\r\n setValidationObj(prev => ({ ...prev, Amount: \"please enter valid amount\" }));\r\n } else {\r\n setValidationObj(prev => ({ ...prev, Amount: \"\" }));\r\n }\r\n }}\r\n onBlur={() => {\r\n if (reservationTransactionObj.Amount == \"\") {\r\n setValidationObj(prev => ({ ...prev, Amount: \"\" }));\r\n }\r\n if (validationObj.Amount === \"\") {\r\n getTaxDetail(reservationTransactionObj.TransactionSerNo, reservationTransactionObj.IsTaxInclusive, parseInt(reservationTransactionObj.Amount));\r\n } else {\r\n setTotalAmount(0);\r\n setTotalTax(0);\r\n }\r\n }}>\r\n {\" \"}\r\n Amount\r\n \r\n
    \r\n
    \r\n
    \r\n
    Taxes
    \r\n
    {totalTax.toFixed(2)}
    \r\n\r\n
    \r\n
    \r\n
    \r\n {\r\n setReservationTransactionObj((prev) => ({ ...prev, DocumentNo: v }));\r\n }}>\r\n Document Reference\r\n \r\n\r\n setReservationTransactionObj((prev) => ({ ...prev, Remarks: v }))}>\r\n Note\r\n \r\n
    \r\n Auto Route to Group Folio\r\n \r\n
    \r\n\r\n
    \r\n Transaction Value\r\n {totalAmount.toFixed(2)}\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    Reservation ({reservationList.length})
    \r\n
    \r\n
    \r\n
    \r\n First Name, Last Name , Room No.\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n {\r\n setSelectedResStatus(item);\r\n let temp = [];\r\n if (searchString != \"\") {\r\n temp = reservationList.filter(x => x.GuestName.toLowerCase().includes(searchString.toLowerCase()) || x.RoomNo.includes(searchString));\r\n }\r\n setFilterReservationList(temp.filter(x => item.includes(x.ReservationStatus)));\r\n }}\r\n label=\"Reservation Status\"\r\n disabled={false}\r\n >\r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedReservations(items);\r\n }}\r\n fixedHeaderNo={2}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={selectData}\r\n optClick={(item, d) => {\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { InnActionButton, InnCheckbox, InnPrimaryButton, InnSearchTextbox, InnTextbox, InnButtonTypeWithDropdown, InnPlainButton, InnContextMenu, useConfirm } from \"../../../component\";\r\n\r\nimport closeIcon from \"../../../assets/images/model-cls-btn.png\";\r\nimport rightarrow from \"../../../assets/images/right-circle-arrow-gray.svg\";\r\nimport LeftMenuArrow from \"../../../assets/images/inside-left-menu-arrow.svg\";\r\nimport { InnTooltip } from \"../../../component\";\r\nimport { InnMultiSelectDropdown } from \"../../../component\";\r\nimport { InnSingleDateSelection } from \"../../../component\";\r\nimport { InnTimeSelection } from \"../../../component\";\r\nimport { IndiAlert, IndiBillingInstruction, IndiCardAuthentication, IndiCompanyOnFolio, IndiLoyalty, IndiNoPost, IndiRoutingInstruction, IndiTaskCompleted, IndiVipStatus } from \"./indicators\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { InnMovablePanel } from \"../../../component\";\r\nimport { currentUser } from \"../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { GetDepartureListFilteredData, GetPropertyParameterByKeys, GetReservationInfoData, manageReservationFields } from \"../../../services/reservationService\";\r\n\r\nimport { SingleSelectFilter, CheckboxFilter } from \"./filters\";\r\nimport { cmbGetMemberShipLvl } from \"../../../services/reservationService\";\r\nimport { GetFloorMaster } from \"../../../services/frontMasterService\";\r\nimport { AgentModalPopup } from \"./modalPopup/AgentModalPopup\";\r\nimport { GetReservationBlockListCombo } from \"../../../services/reservationService\";\r\nimport { GetReservationTaskList, GetReservationWindowTransactionData } from \"../../../services/reservationCashieringService\";\r\nimport moment from \"moment\";\r\nimport { TipDueOut } from \"./tooltips/tip-due-out\";\r\nimport { TipDueIn } from \"./tooltips\";\r\nimport { ManageRights } from \"../../../services/generalService\";\r\nimport { useAlert } from \"../../../utils/hooks/useAlert\";\r\nimport { AddCheckoutInvoices } from \"../../../services/reservationCashieringService\";\r\nimport { AutoCheckout } from \"../../../services/reservationCashieringService\";\r\nimport { AutoCheckoutSharer } from \"../../../services/reservationCashieringService\";\r\nimport { ReinstateReservations } from \"../../../services/reservationCashieringService\";\r\nimport SharerSecondry from \"../../../assets/images/sharer-secondary-icon.svg\";\r\nimport SharerPrimary from \"../../../assets/images/sharer-primary-icon.svg\";\r\nimport BlockIcon from \"../../../assets/images/block-icon.svg\";\r\nimport { CheckoutModalPopup } from \"./modalPopup/checkoutModalPopup\";\r\n\r\n\r\nfunction ReservationDepartureList(props) {\r\n const { t } = useTranslation();\r\n const currUser = useSelector(currentUser);\r\n const { innkeyAlert } = useAlert();\r\n const history = useHistory();\r\n const { confirm } = useConfirm();\r\n //getToday'sDate\r\n const getCurrDate = new Date();\r\n const currDateToString = `${getCurrDate.getDate()}-${getCurrDate.toLocaleString(\"default\", {\r\n month: \"short\",\r\n })}-${getCurrDate.getFullYear()}`;\r\n //end\r\n\r\n //handlePropsFilters\r\n\r\n\r\n //#region local variables\r\n\r\n\r\n const LuggageSelect = [\r\n { key: \"NLG\", value: \"No Luggage\" },\r\n { key: \"WLG\", value: \"With Luggage\" },\r\n { key: \"WLGL\", value: \"With Luggage + Lock\" },\r\n { key: \"NLGL\", value: \"No Luggage + Lock\" },\r\n ];\r\n\r\n const CheckoutTimeDD = [\r\n { key: \"ActualDepartureTime\", value: \"NoResponse\" },\r\n { key: \"ActualDepartureTime\", value: \"NoInfo\" },\r\n { key: \"ActualDepartureTime\", value: \"00:00\" },\r\n { key: \"ActualDepartureTime\", value: \"00:30\" },\r\n { key: \"ActualDepartureTime\", value: \"01:00\" },\r\n { key: \"ActualDepartureTime\", value: \"01:30\" },\r\n { key: \"ActualDepartureTime\", value: \"02:00\" },\r\n { key: \"ActualDepartureTime\", value: \"02:30\" },\r\n { key: \"ActualDepartureTime\", value: \"03:00\" },\r\n { key: \"ActualDepartureTime\", value: \"03:30\" },\r\n { key: \"ActualDepartureTime\", value: \"04:00\" },\r\n { key: \"ActualDepartureTime\", value: \"04:30\" },\r\n { key: \"ActualDepartureTime\", value: \"05:00\" },\r\n { key: \"ActualDepartureTime\", value: \"05:30\" },\r\n { key: \"ActualDepartureTime\", value: \"06:30\" },\r\n { key: \"ActualDepartureTime\", value: \"07:00\" },\r\n { key: \"ActualDepartureTime\", value: \"07:30\" },\r\n { key: \"ActualDepartureTime\", value: \"08:00\" },\r\n { key: \"ActualDepartureTime\", value: \"08:30\" },\r\n { key: \"ActualDepartureTime\", value: \"09:00\" },\r\n { key: \"ActualDepartureTime\", value: \"09:30\" },\r\n { key: \"ActualDepartureTime\", value: \"10:00\" },\r\n { key: \"ActualDepartureTime\", value: \"10:30\" },\r\n { key: \"ActualDepartureTime\", value: \"11:00\" },\r\n { key: \"ActualDepartureTime\", value: \"11:30\" },\r\n { key: \"ActualDepartureTime\", value: \"12:00\" },\r\n { key: \"ActualDepartureTime\", value: \"12:30\" },\r\n { key: \"ActualDepartureTime\", value: \"13:00\" },\r\n { key: \"ActualDepartureTime\", value: \"13:30\" },\r\n { key: \"ActualDepartureTime\", value: \"14:00\" },\r\n { key: \"ActualDepartureTime\", value: \"14:30\" },\r\n { key: \"ActualDepartureTime\", value: \"15:00\" },\r\n { key: \"ActualDepartureTime\", value: \"15:30\" },\r\n { key: \"ActualDepartureTime\", value: \"16:00\" },\r\n { key: \"ActualDepartureTime\", value: \"16:30\" },\r\n { key: \"ActualDepartureTime\", value: \"17:00\" },\r\n { key: \"ActualDepartureTime\", value: \"17:30\" },\r\n { key: \"ActualDepartureTime\", value: \"18:00\" },\r\n { key: \"ActualDepartureTime\", value: \"18:30\" },\r\n { key: \"ActualDepartureTime\", value: \"19:00\" },\r\n { key: \"ActualDepartureTime\", value: \"19:30\" },\r\n { key: \"ActualDepartureTime\", value: \"20:00\" },\r\n { key: \"ActualDepartureTime\", value: \"20:30\" },\r\n { key: \"ActualDepartureTime\", value: \"21:00\" },\r\n { key: \"ActualDepartureTime\", value: \"21:30\" },\r\n { key: \"ActualDepartureTime\", value: \"22:00\" },\r\n { key: \"ActualDepartureTime\", value: \"22:30\" },\r\n { key: \"ActualDepartureTime\", value: \"23:00\" },\r\n { key: \"ActualDepartureTime\", value: \"23:30\" },\r\n ];\r\n\r\n const selectdataArrow = [\r\n { key: \"Option 1\", value: \"Zero Balance\" },\r\n { key: \"Option 2\", value: \"Checked Out\" },\r\n ];\r\n const actionList = [\r\n { key: 0, value: \"Auto Check Out\" },\r\n { key: 1, value: \"Print Information Folio\" },\r\n { key: 2, value: \"Reinstate\" },\r\n { key: 3, value: \"Check out\" }\r\n ];\r\n const rbDataTasks = [\r\n { key: \"All\", value: \"All\" },\r\n { key: \"Completed\", value: \"Completed\" },\r\n { key: \"Pending\", value: \"Pending\" },\r\n ];\r\n\r\n const checkList = [\r\n { key: \"WR\", value: \"Window Routing\" },\r\n { key: \"RR\", value: \"Room Routing\" },\r\n { key: \"A\", value: \"Alert\" },\r\n { key: \"AT\", value: \"Alert & Trace\" },\r\n { key: \"KF\", value: \"Company on Folio\" },\r\n { key: \"DS\", value: \"Drop Services\" },\r\n { key: \"DT\", value: \"Departure Transportation\" },\r\n { key: \"BTC\", value: \"BTC\" },\r\n { key: \"IFB\", value: \"Inclusions F&B\" },\r\n { key: \"IT\", value: \"Inclusions Transportation\" },\r\n { key: \"IL\", value: \"Inclusions Laundry\" },\r\n { key: \"IO\", value: \"Inclusions Others\" },\r\n { key: \"SRA\", value: \"Service Recovery Allowance\" },\r\n ];\r\n const OpenFolio = () => {\r\n return (\r\n
    \r\n
    \r\n
    Open Folio
    \r\n
    \r\n\r\n
    \r\n );\r\n };\r\n\r\n const rbDataType = [\r\n { key: \"multi\", value: \"Multiplier \" },\r\n { key: \"adr\", value: \"Adder\" },\r\n ];\r\n const selectdata = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n\r\n const MoreFilterOption = [\r\n // { key: \"fillDueOut\", value: \"Due Out\" },\r\n { key: \"selectAll\", value: \"Select all\" },\r\n { key: \"fillBlock\", value: \"Block Name\", ObjectName: \"BlockSerNo\" },\r\n { key: \"fillETDFrom\", value: \"ETD From\", ObjectName: \"ETDFrom\" },\r\n { key: \"fillETDTo\", value: \"ETD To\", ObjectName: \"ETDTo\" },\r\n { key: \"fillFloor\", value: \"Floor\", ObjectName: \"strFloorSerNo\" },\r\n { key: \"fillLastCheckOut\", value: \"Late Check Out\", ObjectName: \"IsLateCheckout\" },\r\n { key: \"fillLockOut\", value: \"Lock Out\", ObjectName: \"IsLocked\" },\r\n { key: \"fillMembershipLevel\", value: \"Membership Level\", ObjectName: \"strMemberShipLevel\" },\r\n { key: \"fillNoResponse\", value: \"No Response\", ObjectName: \"IsNoResponse\" },\r\n { key: \"fillNoInfo\", value: \"No Info\", ObjectName: \"IsNoInfo\" },\r\n { key: \"fillNoLuggage\", value: \"No Luggage\", ObjectName: \"IsNoLuggage\" },\r\n { key: \"fillOpenFolio\", value: \"Open Folio\", ObjectName: \"IsOpenFolio\" },\r\n { key: \"fillRegularCheckOut\", value: \"Early Check Out Time\", ObjectName: \"IsEarlyCheckout\" },\r\n { key: \"fillReinstated\", value: \"Reinstated\", ObjectName: \"IsReinstated\" },\r\n { key: \"fillWithLuggage\", value: \"With Luggage\", ObjectName: \"IsWithLuggage\" },\r\n { key: \"fillPreviousDayDeparture\", value: \"Previous Day Departure\", ObjectName: \"IsDepartureOnSameDay\" },\r\n //{ key: \"fillStayOver\", value: \"Stay Over\" },\r\n ];\r\n\r\n //#endregion\r\n\r\n //#region state\r\n const [dueInReservationList, setDueInReservationList] = useState([]);\r\n const [selectedDueInReservation, setSelectedDueInReservation] = useState({});\r\n const [userRights, setUserRights] = useState([]);\r\n const [cashieringSerNo, setCashieringSerNo] = useState(\"\");\r\n const [showZeroBalance, setZeroBalance] = useState(true);\r\n //const [showCheckedOut, setCheckedOut] = useState(false);\r\n const [showDepartureListFilterModal, setShowDepartureListFilterModal] = useState(false);\r\n const [showTaskMovableBox, setTaskMovableBox] = useState(false);\r\n const [showLeftBlueBar, setshowLeftBlueBar] = useState(false);\r\n const [dueOutArrivalCheckBox, setDueOutArrivalCheckBox] = useState(false);\r\n const [departuresCheckBox, setDeparturesCheckBox] = useState(false);\r\n const [zeroBalanceCheckBox, setZeroBalanceCheckBox] = useState(false);\r\n const [checkedOutCheckBox, setCheckedOutCheckBox] = useState(false);\r\n const [IsCheckBoxDisabled, setIsCheckBoxDisabled] = useState(false);\r\n const [collectedNRSP, setCollectedNRSP] = useState([]);\r\n const [propertyBusinessDate, setPropertyBusinessDate] = useState(\"\");\r\n const [propertyDepartureTime, setPropertyDepartureTime] = useState(\"\");\r\n const [date, setDate] = useState(moment(new Date()).format(\"DD-MMM-yyyy\"));\r\n const [selectedDepartureDate, setSelectedDepartureDate] = useState(propertyBusinessDate ? moment(new Date(propertyBusinessDate)).format(\"DD-MMM-yyyy\") : date);\r\n const [showDueInToolTip, setShowDueInToolTip] = useState(false);\r\n const [showDueOutToolTip, setShowDueOutToolTip] = useState(false);\r\n const [selectedAgent, setSelectedAgent] = useState({\r\n AgentSerNo: 0,\r\n AgentName: \"Select\",\r\n });\r\n const [selectedCompany, setSelectedCompany] = useState({\r\n AgentSerNo: 0,\r\n AgentName: \"Select\",\r\n });\r\n const [showAgentFilterModalPopup, setShowAgentFilterModalPopup] = useState(false);\r\n const [showCompanyFilterModalPopup, setShowCompanyFilterModalPopup] = useState(false);\r\n\r\n const [colList, setColList] = useState([]);\r\n const [colListKeys, setColListKeys] = useState([]);\r\n const [showFilter, setShowFilter] = useState(false);\r\n const [selectedMembershipLevel, setSelectedMembershipLevel] = useState([]);\r\n const [fillMembershipLevelData, setFillMembershipLevelData] = useState([]);\r\n const [selectedFloor, setSelectedFloor] = useState([]);\r\n const [fillFloorData, setFillFloorData] = useState([]);\r\n const [etdFrom, setETDFrom] = useState(\"\");\r\n const [etdTo, setETDTo] = useState(\"\");\r\n const defaultDepartureFilterObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n DepartureDate: propertyBusinessDate ? moment(new Date(propertyBusinessDate)).format(\"DD-MMM-yyyy\") : date, //date\r\n FirstName: \"\",\r\n LastName: \"\",\r\n ETDFrom: null,\r\n ETDTo: null,\r\n IsOpenFolio: null,\r\n strMemberShipLevel: \"\",\r\n strFloorSerNo: \"\",\r\n IsLateCheckout: null,\r\n IsEarlyCheckout: null,\r\n BlockSerNo: 0,\r\n IsReinstated: null,\r\n IsNoResponse: null,\r\n IsWithLuggage: null,\r\n IsNoLuggage: null,\r\n IsLocked: null,\r\n IsNoInfo: null,\r\n IsDepartureOnSameDay: null,\r\n CompanyProfileSerNo: null,\r\n AgentProfileSerNo: null,\r\n IsLoaded: false,\r\n };\r\n const [departureFilterObj, setDepartureFilterObj] = useState(defaultDepartureFilterObj);\r\n const [departureData, setDepartureData] = useState([]);\r\n const [departureDateFilteredData, setDepartureDateFilteredData] = useState([]);\r\n const [dueOutReservationList, setDueOutReservationList] = useState([]);\r\n const [departureReservationList, setDepartureReservationList] = useState([]);\r\n const [dueOutArrivalData, setDueOutArrivalData] = useState([]);\r\n const [departuresData, setDeparturesData] = useState([]);\r\n const [checkedOutData, setCheckedOutData] = useState([]);\r\n const [zeroBalanceData, setZeroBalanceData] = useState([]);\r\n const [searchString, setSearchString] = useState(\"\");\r\n const [selectedBlock, setSelectedBlock] = useState({\r\n key: 0,\r\n value: \"Select\",\r\n });\r\n const [reservationWindowData, setReservationWindowData] = useState([]);\r\n const [fillBlockComboData, setFillBlockComboData] = useState([]);\r\n\r\n const [windowTransactionBalance, setWindowTransactionBalance] = useState(0);\r\n const [selectedCheckBoxData, setSelectedCheckBoxData] = useState([]);\r\n const [gracePeriod, setGracePeriod] = useState(\"\");\r\n const [selectedGuestTile, setSelectedGuestTile] = useState({});\r\n const [reservationObj, setReservationObj] = useState({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: 0,\r\n });\r\n const [reservationInfoData, setReservationInfoData] = useState(reservationObj);\r\n const [updateRI, setUpdateRI] = useState();\r\n const [showCheckoutPopup, setShowCheckoutPopup] = useState(false);\r\n //#endregion state\r\n\r\n //#region API calls\r\n const fillReservationTaskList = async (str, Data) => {\r\n await GetReservationTaskList(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), str).then(d => {\r\n Data.forEach(x => {\r\n let temp = d.data.filter(o => o.ReservationSerNo === x.ReservationSerNo);\r\n if (temp.length > 0) {\r\n let IsVer = true;\r\n for (let i = 0; i < temp.length; i++) {\r\n if (temp[i].IsCompleted !== true) {\r\n IsVer = false;\r\n break;\r\n }\r\n }\r\n x[\"isVerified\"] = IsVer;\r\n } else {\r\n x[\"isVerified\"] = false;\r\n }\r\n });\r\n });\r\n };\r\n\r\n const funGetUserRights = () => {\r\n if (currUser.ClientSerNo != undefined && currUser.UserID != undefined) {\r\n ManageRights(currUser.ClientSerNo, currUser.UserID, \"31,32\").then(async (d) => {\r\n if (d.data.length > 0) {\r\n setUserRights(d.data);\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n });\r\n }\r\n };\r\n const fillWindowTransactionData = (ReservationSerNo) => {\r\n GetReservationWindowTransactionData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then((d) => {\r\n let amount = 0;\r\n if (d.data.length === 0) {\r\n setWindowTransactionBalance(0);\r\n }\r\n for (let i = 0; i < d.data.length; i++) {\r\n amount = amount + d.data[i].Amount;\r\n if (i === d.data.length - 1) {\r\n setWindowTransactionBalance(amount);\r\n }\r\n }\r\n setReservationWindowData(d.data);\r\n });\r\n };\r\n const fillPropertyParameterData = () => {\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), [\"BusinessDate\", \"DepartureTime\"]).then((d) => {\r\n setPropertyBusinessDate(moment(new Date(d.data[0].value)).format(\"DD-MMM-YYYY\"));\r\n setPropertyDepartureTime(d.data[1].value);\r\n if (departureFilterObj.DepartureDate == \"\") {\r\n setDepartureFilterObj((prev) => ({ ...prev, DepartureDate: d.data[0].value }));\r\n setSelectedDepartureDate(d.data[0].value);\r\n //fillFilteredData({});\r\n } else {\r\n if (new Date(d.data[0].value) > new Date(departureFilterObj.DepartureDate)) {\r\n setDepartureFilterObj((prev) => ({ ...prev, DepartureDate: d.data[0].value }));\r\n setSelectedDepartureDate(d.data[0].value);\r\n //fillFilteredData({});\r\n }\r\n }\r\n //setSelectedDepartureDate(departureFilterObj.DepartureDate);\r\n let x = d.data[1].value.split(\":\");\r\n setGracePeriod(`${parseInt(x[0]) - 1}:${x[1]}`);\r\n });\r\n };\r\n\r\n const fillFilteredData = (tile) => {\r\n if (departureFilterObj.DepartureDate !== \"\") {\r\n GetDepartureListFilteredData(departureFilterObj).then(async (d) => {\r\n if (d.data.ReservationDepartureList.length === 0) {\r\n setReservationWindowData([]);\r\n setWindowTransactionBalance(0);\r\n setReservationObj((prev) => ({ ...prev, ReservationSerNo: 1 }));\r\n setReservationInfoData((prev) => ({ ...prev, ReservationSerNo: 1 }));\r\n setIsCheckBoxDisabled(true);\r\n } else {\r\n setIsCheckBoxDisabled(false);\r\n }\r\n let tempData = d.data.ReservationDepartureList;\r\n\r\n tempData.forEach((d) => {\r\n if (d.ActualDepartureTime !== null) {\r\n let t = new Date(\"1-Apr-2022 \" + d.ActualDepartureTime);\r\n d.ActualDepartureTime = moment(t).format(\"HH:mm\");\r\n }\r\n d[\"isChecked\"] = false;\r\n if (collectedNRSP.some((x) => x === d.ReservationSerNo)) {\r\n d[\"isNRSP\"] = true;\r\n } else {\r\n d[\"isNRSP\"] = false;\r\n }\r\n });\r\n if (tile !== undefined) {\r\n if (Object.keys(tile).length === 0) {\r\n if (d.data.ReservationDepartureList.length > 0) {\r\n setSelectedGuestTile(d.data.ReservationDepartureList[0]);\r\n setReservationObj((prev) => ({\r\n ...prev,\r\n ReservationSerNo: d.data.ReservationDepartureList[0].ReservationSerNo,\r\n }));\r\n fillReservationInfoData(d.data.ReservationDepartureList[0].ReservationSerNo);\r\n fillWindowTransactionData(d.data.ReservationDepartureList[0].ReservationSerNo);\r\n\r\n //due in res no\r\n let temp = d.data.DueInReservationList.find(x => x.RoomSerNo == d.data.ReservationDepartureList[0].RoomSerNo);\r\n if (temp != undefined) {\r\n GetReservationInfoData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), temp.ReservationSerNo).then((d) => {\r\n setSelectedDueInReservation(d.data);\r\n });\r\n }\r\n }\r\n }\r\n }\r\n // for no response and no info filter... mainData created.\r\n let mainData = [];\r\n if (departureFilterObj.IsNoResponse === true && departureFilterObj.IsNoInfo === null) {\r\n mainData = tempData.filter((x) => x.IsNoResponse == true && x.ActualDepartureTime === null);\r\n } else if (departureFilterObj.IsNoResponse === null && departureFilterObj.IsNoInfo === true) {\r\n mainData = tempData.filter(x => x.ActualDepartureTime === null && (x.IsNoResponse === false || x.IsNoResponse === null));\r\n } else {\r\n mainData = tempData;\r\n }\r\n let str = '';\r\n mainData.forEach(x => {\r\n str += x.ReservationSerNo + ',';\r\n });\r\n //no response and no info filter end...\r\n await fillReservationTaskList(str, mainData);\r\n setDepartureData(mainData);\r\n\r\n let tempDepartureReservationList = [];\r\n d.data.DepartureReservationList.forEach((x) => {\r\n if (!(d.data.DueOutReservationList.some(o => o.DueOutReservationSerNo === x.DepartureReservationSerNo))) {\r\n tempDepartureReservationList.push(x);\r\n }\r\n });\r\n setDueOutReservationList(d.data.DueOutReservationList);\r\n setDepartureReservationList(tempDepartureReservationList);\r\n setDueInReservationList(d.data.DueInReservationList);\r\n setDepartureDateFilteredData(mainData);\r\n getDividedData(mainData, d.data.DueOutReservationList, tempDepartureReservationList);\r\n });\r\n } else {\r\n setTimeout(() => {\r\n alertFunction(\"Departure Date from props is not defined.\");\r\n }, 500);\r\n }\r\n };\r\n\r\n const fillReservationInfoData = (ReservationSerNo) => {\r\n GetReservationInfoData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then((d) => {\r\n setReservationInfoData(d.data);\r\n });\r\n };\r\n\r\n const editReservationField = (ReservationSerNo, field, value) => {\r\n manageReservationFields(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo, field, value);\r\n };\r\n //#endregion API calls\r\n\r\n //#region events\r\n\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const IsSharerOrPrimary = (item) => {\r\n let tempData = [];\r\n let resSerNo = [];\r\n if (item.IsSharer === true) {\r\n tempData = departureData.filter(x => item.SharerReservationSerNo === x.ReservationSerNo || (item.SharerReservationSerNo === x.SharerReservationSerNo && item.IsSharer === true));\r\n tempData.forEach(x => {\r\n resSerNo.push(x.ReservationSerNo);\r\n });\r\n } else {\r\n tempData = departureData.filter(x => (item.ReservationSerNo === x.SharerReservationSerNo && x.IsSharer === true) || x.ReservationSerNo === item.ReservationSerNo);\r\n tempData.forEach(x => {\r\n resSerNo.push(x.ReservationSerNo);\r\n });\r\n }\r\n return resSerNo;\r\n };\r\n\r\n const handleSharerandPrimary = async (item, IsAlert, type) => {\r\n let collectedResSerNo = [];\r\n let IsMultiple = true;\r\n let Message = `Would you like to ${(type == \"ACO\") ? \"auto check out \" : (type === \"RI\") ? \"reinstate \" : null}`;\r\n if (item.IsSharer === true) {\r\n let first = departureData.filter((o) =>\r\n (o.ReservationSerNo === item.SharerReservationSerNo || o.SharerReservationSerNo === item.SharerReservationSerNo) && o.ReservationSerNo !== item.ReservationSerNo\r\n );\r\n\r\n let temp = [];\r\n if (type === \"ACO\") {\r\n temp = first.filter(x => x.ReservationStatus !== \"COT\");\r\n } else if (type === \"RI\") {\r\n temp = first.filter(x => x.ReservationStatus === \"COT\");\r\n }\r\n if (temp.length !== 0) {\r\n if (temp.find(x => x.ReservationSerNo === item.SharerReservationSerNo)) { //check if primary is available\r\n if (temp.length === 1) {\r\n Message = Message + `primary sharer guest ${temp[0].GuestName} having same departure date as well?`;\r\n collectedResSerNo.push({ ReservationSerNo: temp[0].ReservationSerNo, name: temp[0].GuestName, IsSharer: false });\r\n } else {\r\n let primary = temp.find(x => x.IsSharer !== true);\r\n if (primary != undefined) {\r\n Message = Message + `primary guest ${primary.GuestName} and `;\r\n collectedResSerNo.push({ ReservationSerNo: primary.ReservationSerNo, name: primary.GuestName, IsSharer: false });\r\n }\r\n Message = Message + `sharer guest `;\r\n temp.forEach(x => {\r\n if (x.IsSharer === true) {\r\n Message = Message + \" \" + x.GuestName + \" ,\";\r\n collectedResSerNo.push({ ReservationSerNo: x.ReservationSerNo, name: x.GuestName, IsSharer: true });\r\n }\r\n });\r\n Message = Message + ` having same departure date as well?`;\r\n\r\n console.log(\"there is one primary and other sharer also available\");\r\n }\r\n } else { //there will be another sharer if primary is not available\r\n if (temp.length === 1) {\r\n console.log(\"only one sharer available.\");\r\n Message = Message + `sharer guest ${temp[0].GuestName} having same departuer date as well?`;\r\n collectedResSerNo.push({ ReservationSerNo: temp[0].ReservationSerNo, name: temp[0].GuestName, IsSharer: true });\r\n } else {\r\n Message = Message + `sharer guests `;\r\n temp.forEach(x => {\r\n if (x.IsSharer === true) {\r\n collectedResSerNo.push({ ReservationSerNo: item.ReservationSerNo, name: item.GuestName, IsSharer: true });\r\n Message = Message + \" \" + x.GuestName + \" ,\";\r\n }\r\n });\r\n Message = Message + ` having same departure date as well?`;\r\n }\r\n }\r\n collectedResSerNo.push({ ReservationSerNo: item.ReservationSerNo, name: item.GuestName, IsSharer: true });\r\n } else {\r\n IsMultiple = false;\r\n }\r\n } else {\r\n let first = departureData.filter(x => x.SharerReservationSerNo === item.ReservationSerNo && x.IsSharer === true);\r\n let temp = [];\r\n if (type === \"ACO\") {\r\n temp = first.filter(x => x.ReservationStatus !== \"COT\");\r\n } else if (type === \"RI\") {\r\n temp = first.filter(x => x.ReservationStatus === \"COT\");\r\n }\r\n // console.log(\"temp here primary side\", temp);\r\n if (temp.length === 0) {\r\n IsMultiple = false;\r\n } else {\r\n Message = Message + \" sharer reservation\";\r\n temp.forEach((o, index) => {\r\n if (index === temp.length - 1) {\r\n Message = Message + \" \" + o.GuestName + \" \";\r\n } else {\r\n Message = Message + \" \" + o.GuestName + \" \" + \", \";\r\n }\r\n collectedResSerNo.push({ ReservationSerNo: o.ReservationSerNo, name: o.GuestName, IsSharer: true });\r\n });\r\n Message = Message + \" having same departure date as well?\";\r\n collectedResSerNo.push({ ReservationSerNo: item.ReservationSerNo, name: item.GuestName, IsSharer: false });\r\n }\r\n }\r\n if (IsMultiple && IsAlert) {\r\n let isConfirmed = true;\r\n isConfirmed = await innkeyAlert(Message);\r\n if (isConfirmed === true) {\r\n return { IsSharerApi: true, output: collectedResSerNo };\r\n } else {\r\n let temp = { IsSharerApi: false, output: [{ ReservationSerNo: item.ReservationSerNo, name: item.GuestName, IsSharer: false }] };\r\n return temp;\r\n }\r\n } else {\r\n let temp = { IsSharerApi: false, output: [{ ReservationSerNo: item.ReservationSerNo, name: item.GuestName, IsSharer: false }] };\r\n return temp;\r\n }\r\n };\r\n\r\n const printInvoices = async (data) => {\r\n if (data.length !== 0) {\r\n let temp = [];\r\n data.forEach(x => {\r\n temp.push({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: parseInt(x.ReservationSerNo),\r\n strWindowSerNo: x.WindowSerNo,\r\n UserID: currUser.UserID\r\n });\r\n });\r\n let output = \"\";\r\n await AddCheckoutInvoices(temp).then(d => {\r\n if (d.data === \"Error\") {\r\n alertFunction(\"Error in printing invoices please try after some time.\");\r\n output = d.data;\r\n } else {\r\n output = \"success\";\r\n }\r\n });\r\n return output;\r\n }\r\n };\r\n\r\n const ManageAutoCheckout = async (x) => {\r\n let para = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: parseInt(x)\r\n };\r\n let output = {};\r\n await AutoCheckout(para).then((d) => {\r\n if (d.data !== undefined) {\r\n output = d.data;\r\n }\r\n }).catch(ex => {\r\n console.log(ex);\r\n });\r\n return output;\r\n };\r\n\r\n const ManageAutoCheckoutSharer = async (obj) => {\r\n let para = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n PrimaryReservationSerNo: parseInt(obj.PrimaryReservationSerNo),\r\n SharerReservationSerNo: obj.SharerReservationSerNo\r\n };\r\n let output = {};\r\n await AutoCheckoutSharer(para).then(d => {\r\n if (d.data !== undefined) {\r\n output = d.data;\r\n }\r\n });\r\n return output;\r\n };\r\n\r\n const handleAutoCheckout = async (x) => {\r\n let ReturnValue = await ManageAutoCheckout(x).then(async d => {\r\n let output = \"\";\r\n if (d.Message === \"print\") {\r\n await printInvoices([{ WindowSerNo: d.strWindowSerNo, ReservationSerNo: x }]).then(d => {\r\n if (d === \"Error\") {\r\n output = d;\r\n } else {\r\n output = \"success\";\r\n }\r\n });\r\n return output;\r\n } else {\r\n alertFunction(d.Message);\r\n if (d.Message.toLowerCase().includes(\"checked\")) {\r\n setTimeout(() => {\r\n fillFilteredData({});\r\n }, 100);\r\n }\r\n }\r\n });\r\n return ReturnValue;\r\n };\r\n\r\n const handleAutoCheckoutSharer = async (obj) => {\r\n let x = await ManageAutoCheckoutSharer(obj).then(async d => {\r\n if (d.Message === \"print-both\" || d.Message === \"print-primary\" || d.Message === \"print-sharer\") {\r\n let returnValue = \"\";\r\n await printInvoices(d.WindowList).then(output => {\r\n if (output === \"Error\") {\r\n returnValue = output;\r\n } else {\r\n returnValue = \"success\";\r\n }\r\n });\r\n return returnValue;\r\n } else {\r\n alertFunction(d.Message);\r\n if (d.Message.toLowerCase().includes(\"checked\")) {\r\n setTimeout(() => {\r\n fillFilteredData({});\r\n }, 100);\r\n }\r\n }\r\n });\r\n return x;\r\n };\r\n\r\n const actionPopup = async (item, x) => {\r\n //3 - Checkout\r\n //2 - Reinstate\r\n //1 - print info folio\r\n //0 - autocheckout\r\n if (item.key === 2) {\r\n if (x.IsOpenFolio) {\r\n alertFunction('This option is not available when reservation is Open folio');\r\n } else {\r\n handleSharerandPrimary(x, true, \"RI\").then(d => {\r\n if (d != undefined) {\r\n if (d.output != undefined) {\r\n let para = [];\r\n d.output.forEach(o => {\r\n para.push({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: parseInt(o.ReservationSerNo)\r\n });\r\n });\r\n ReinstateReservations(para).then(x => {\r\n alertFunction(x.data);\r\n setTimeout(() => {\r\n fillFilteredData({});\r\n }, 50);\r\n });\r\n }\r\n }\r\n });\r\n }\r\n } else if (item.key === 0) {\r\n if (moment(new Date(x.DepartureDate)).format(\"DD-MMM-YYYY\") == moment(new Date(propertyBusinessDate)).format(\"DD-MMM-YYYY\")) {\r\n handleSharerandPrimary(x, true, \"ACO\").then(d => {\r\n if (d != undefined) {\r\n if (d.IsSharerApi === true) {\r\n let PrimaryReservationSerNo = 0;\r\n let SharerReservationSerNo = \"\";\r\n d.output.forEach(x => {\r\n if (x.IsSharer === false) {\r\n PrimaryReservationSerNo = x.ReservationSerNo;\r\n }\r\n if (x.IsSharer === true) {\r\n SharerReservationSerNo = SharerReservationSerNo + x.ReservationSerNo + \",\";\r\n }\r\n });\r\n let count = 0;\r\n handleAutoCheckoutSharer({ SharerReservationSerNo: SharerReservationSerNo, PrimaryReservationSerNo: PrimaryReservationSerNo }).then(d => {\r\n if (count === 0) {\r\n setTimeout(() => {\r\n if (d === \"success\") {\r\n handleAutoCheckoutSharer({ SharerReservationSerNo: SharerReservationSerNo, PrimaryReservationSerNo: PrimaryReservationSerNo });\r\n count = 1;\r\n }\r\n }, 50);\r\n }\r\n });\r\n } else {\r\n let count = 0;\r\n if (count === 0) {\r\n handleAutoCheckout(d.output[0].ReservationSerNo).then(x => {\r\n setTimeout(() => {\r\n if (x === \"success\") {\r\n handleAutoCheckout(d.output[0].ReservationSerNo);\r\n }\r\n }, 50);\r\n });\r\n }\r\n }\r\n }\r\n });\r\n } else {\r\n alertFunction(\"This functionality is not avialable for furture dates.\");\r\n }\r\n } else if (item.key === 3) {\r\n console.log(selectedGuestTile);\r\n if (!isNaN(selectedGuestTile.ReservationSerNo)) {\r\n setShowCheckoutPopup(true);\r\n }\r\n }\r\n };\r\n const BillingActionPopup = (item) => {\r\n };\r\n\r\n const handleCashieringClick = async () => {\r\n let o = selectedGuestTile;\r\n\r\n const openCashieringScreen = () => {\r\n props.history.push({\r\n pathname: \"/ReservationCashiering\",\r\n state: {\r\n ReservationSerNo: selectedCheckBoxData.length > 0 ? cashieringSerNo : selectedGuestTile.ReservationSerNo.toString(),\r\n filterObj: {\r\n FromDate: moment(new Date(reservationInfoData.ArrivalDate1)).format(\"DD-MMM-YYYY\"),\r\n ToDate: moment(new Date(reservationInfoData.DepartureDate1)).format(\"DD-MMM-YYYY\"),\r\n DtType: \"STAY\",\r\n ReservationStatus: \"ARD,INH,DOT,DIN,COT\",\r\n Mainmenu: \"Manage In-House List\"\r\n }\r\n },\r\n });\r\n };\r\n\r\n if (o.ReservationStatus === 'DIN') {\r\n if (o.IsAdvanceCheckin) {\r\n openCashieringScreen();\r\n } else {\r\n alertFunction(\"Can not access cashiering screen beacuse reservation status is DUE IN and reservation is not marked as IsAdvanceCheckin\");\r\n }\r\n } else {\r\n openCashieringScreen();\r\n }\r\n };\r\n\r\n const handleRights = async (rightSerNo) => {\r\n if (rightSerNo != undefined) {\r\n const userRight = userRights.find((x) => x.RightsSerNo == rightSerNo);\r\n if (userRight != undefined) {\r\n if (userRight.IsApply != undefined) {\r\n if (userRight.IsApply) {\r\n return true;\r\n } else {\r\n await confirm({\r\n Message: `${userRight.Name} : ${userRight.PromptMessage}`,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n }\r\n };\r\n\r\n const selectDepartureType = (item) => {\r\n if (item.value == \"Zero Balance\") {\r\n setZeroBalance(true);\r\n //setCheckedOut(false);\r\n } else if (item.value == \"Checked Out\") {\r\n // setCheckedOut(true);\r\n setZeroBalance(false);\r\n }\r\n };\r\n\r\n const handleGuestTileClick = (item, from) => {\r\n fillReservationInfoData(item.ReservationSerNo);\r\n if (selectedGuestTile.ReservationSerNo !== item.ReservationSerNo && selectedCheckBoxData.length < 1) {\r\n setReservationObj((prev) => ({\r\n ...prev,\r\n ReservationSerNo: item.ReservationSerNo,\r\n }));\r\n setSelectedGuestTile(item);\r\n fillWindowTransactionData(item.ReservationSerNo);\r\n } else {\r\n setReservationObj((prev) => ({\r\n ...prev,\r\n ReservationSerNo: selectedGuestTile.ReservationSerNo,\r\n }));\r\n setSelectedGuestTile(selectedGuestTile);\r\n }\r\n if (from === 'DOA') {\r\n let temp = dueInReservationList.find(x => x.RoomSerNo == item.RoomSerNo);\r\n if (temp != undefined) {\r\n GetReservationInfoData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), temp.ReservationSerNo).then((d) => {\r\n setSelectedDueInReservation(d.data);\r\n });\r\n }\r\n } else {\r\n setSelectedDueInReservation({});\r\n }\r\n };\r\n\r\n const handleFilterApply = async () => {\r\n let x = moment(new Date(departureFilterObj.DepartureDate)).format(\"DD-MMM-yyyy\");\r\n let y = moment(new Date(propertyBusinessDate)).format(\"DD-MMM-yyyy\");\r\n if (x >= y) {\r\n setSelectedDepartureDate(departureFilterObj.DepartureDate);\r\n setSelectedCheckBoxData([]);\r\n setIsCheckBoxDisabled(false);\r\n setDueOutArrivalCheckBox(false);\r\n setDeparturesCheckBox(false);\r\n setZeroBalanceCheckBox(false);\r\n setCheckedOutCheckBox(false);\r\n setSelectedGuestTile({});\r\n fillFilteredData({});\r\n setShowDepartureListFilterModal(!showDepartureListFilterModal);\r\n } else {\r\n alertFunction(\"Invalid Date.\");\r\n setDepartureFilterObj((prev) => ({ ...prev, DepartureDate: propertyBusinessDate }));\r\n }\r\n };\r\n const ResetFilter = () => {\r\n setDepartureFilterObj(defaultDepartureFilterObj);\r\n setSelectedFloor([]);\r\n setSelectedMembershipLevel([]);\r\n setETDFrom(\"\");\r\n setETDTo(\"\");\r\n setDate(currDateToString);\r\n setSelectedAgent({ AgentSerNo: null, AgentName: \"Select\" });\r\n setSelectedCompany({ AgentSerNo: null, AgentName: \"Select\" });\r\n };\r\n const handleOnSearchChange = (e) => {\r\n let filterData = departureData.filter((obj) => {\r\n if (obj.RoomSerNo === null) {\r\n return obj.GuestName.toLowerCase().includes(e.toLowerCase());\r\n } else {\r\n return obj.RoomNo.toString().includes(e) || obj.GuestName.toLowerCase().includes(e.toLowerCase());\r\n }\r\n });\r\n if (filterData.length === 0) {\r\n setSelectedGuestTile({});\r\n getDividedData(filterData, dueOutReservationList, departureReservationList);\r\n } else {\r\n if (!filterData.includes(selectedGuestTile)) {\r\n setSelectedGuestTile(filterData[0]);\r\n }\r\n getDividedData(filterData, dueOutReservationList, departureReservationList);\r\n setSearchString(e);\r\n }\r\n setDepartureDateFilteredData(filterData);\r\n };\r\n\r\n const editField = (ReservationSerNo, item) => {\r\n editReservationField(ReservationSerNo, item.key, item.value);\r\n fillFilteredData(selectedGuestTile);\r\n };\r\n const handleNoResponse = (key, ReservationSerNo) => {\r\n let IsWithLuggage = 0;\r\n let IsLocked = 0;\r\n if (key === \"WLG\") {\r\n IsWithLuggage = 1;\r\n IsLocked = 0;\r\n } else if (key === \"NLG\") {\r\n IsWithLuggage = 0;\r\n IsLocked = 0;\r\n } else if (key === \"WLGL\") {\r\n IsWithLuggage = 1;\r\n IsLocked = 1;\r\n } else if (key === \"NLGL\") {\r\n IsWithLuggage = 0;\r\n IsLocked = 1;\r\n }\r\n\r\n if (key !== undefined && ReservationSerNo !== undefined) {\r\n editReservationField(ReservationSerNo, \"IsWithLuggage\", IsWithLuggage);\r\n editReservationField(ReservationSerNo, \"IsLocked\", IsLocked);\r\n }\r\n };\r\n\r\n const getDividedData = (data, data1, data2) => {\r\n let checkedOutList = data.filter((item) => item.ReservationStatus === \"COT\");\r\n\r\n let reservationNumberData = [];\r\n let dueOutList = [];\r\n for (let i = 0; i < data.length; i++) {\r\n for (let j = 0; j < data1.length; j++) {\r\n if (data[i].ReservationSerNo === data1[j].DueOutReservationSerNo && data[i].ReservationStatus === \"INH\") {\r\n dueOutList.push(data[i]);\r\n\r\n reservationNumberData.push({\r\n ReservationSerNo: data1[j].DueOutReservationSerNo,\r\n });\r\n }\r\n }\r\n }\r\n let departuresList = [];\r\n for (let i = 0; i < data.length; i++) {\r\n for (let j = 0; j < data2.length; j++) {\r\n if (data[i].ReservationSerNo === data2[j].DepartureReservationSerNo && data[i].ReservationStatus === \"INH\") {\r\n departuresList.push(data[i]);\r\n reservationNumberData.push({\r\n ReservationSerNo: data2[j].DepartureReservationSerNo,\r\n });\r\n }\r\n }\r\n }\r\n let zeroBalanceList = [];\r\n zeroBalanceList = data.filter((item) => item.ReservationStatus !== \"COT\");\r\n for (let i = 0; i < data.length; i++) {\r\n for (let j = 0; j < reservationNumberData.length; j++) {\r\n if (data[i].ReservationSerNo === reservationNumberData[j].ReservationSerNo) {\r\n zeroBalanceList = zeroBalanceList.filter((item) => item.ReservationSerNo !== reservationNumberData[j].ReservationSerNo);\r\n }\r\n }\r\n }\r\n let IsDueOutValid = true;\r\n let IsDeparturesValid = true;\r\n let IsZeroBalanceValid = true;\r\n let IsCheckedOutValid = true;\r\n let checkedData = [];\r\n let collectedCashieringData = [];\r\n for (let i = 0; i < dueOutList.length; i++) {\r\n if (dueOutList[i].isChecked === false) {\r\n IsDueOutValid = false;\r\n } else {\r\n checkedData.push(dueOutList[i]);\r\n collectedCashieringData.push(dueOutList[i].ReservationSerNo);\r\n }\r\n }\r\n for (let i = 0; i < departuresList.length; i++) {\r\n if (departuresList[i].isChecked === false) {\r\n IsDeparturesValid = false;\r\n } else {\r\n checkedData.push(departuresList[i]);\r\n collectedCashieringData.push(departuresList[i].ReservationSerNo);\r\n }\r\n }\r\n for (let i = 0; i < zeroBalanceList.length; i++) {\r\n if (zeroBalanceList[i].isChecked === false) {\r\n IsZeroBalanceValid = false;\r\n } else {\r\n checkedData.push(zeroBalanceList[i]);\r\n collectedCashieringData.push(zeroBalanceList[i].ReservationSerNo);\r\n }\r\n }\r\n for (let i = 0; i < checkedOutList.length; i++) {\r\n if (checkedOutList[i].isChecked === false) {\r\n IsCheckedOutValid = false;\r\n } else {\r\n checkedData.push(checkedOutList[i]);\r\n collectedCashieringData.push(checkedOutList[i].ReservationSerNo);\r\n }\r\n }\r\n setSelectedCheckBoxData(checkedData);\r\n setCashieringSerNo(collectedCashieringData);\r\n if (!IsDueOutValid || dueOutList.length === 0) setDueOutArrivalCheckBox(false);\r\n else {\r\n if (dueOutList.length > 0) setDueOutArrivalCheckBox(true);\r\n }\r\n if (!IsDeparturesValid || departuresList.length === 0) setDeparturesCheckBox(false);\r\n else {\r\n if (departuresList.length > 0) setDeparturesCheckBox(true);\r\n }\r\n if (!IsZeroBalanceValid || zeroBalanceList.length === 0) setZeroBalanceCheckBox(false);\r\n else {\r\n if (zeroBalanceList.length > 0) setZeroBalanceCheckBox(true);\r\n }\r\n if (!IsCheckedOutValid || checkedOutList.length === 0) setCheckedOutCheckBox(false);\r\n else {\r\n if (checkedOutList.length > 0) {\r\n setCheckedOutCheckBox(true);\r\n }\r\n }\r\n setCheckedOutData(checkedOutList.sort(function (a, b) {\r\n if (b.IsPMReservation === true) {\r\n return -1;\r\n } else {\r\n if (b.RoomSerNo < a.RoomSerNo) {\r\n return 1;\r\n } else {\r\n return 1;\r\n }\r\n }\r\n }));\r\n setDueOutArrivalData(dueOutList.sort(function (a, b) {\r\n if (b.IsPMReservation === true) {\r\n return -1;\r\n } else {\r\n if (b.RoomSerNo < a.RoomSerNo) {\r\n return 1;\r\n } else {\r\n return 1;\r\n }\r\n }\r\n }));\r\n setDeparturesData(departuresList.sort(function (a, b) {\r\n if (b.IsPMReservation === true) {\r\n return -1;\r\n } else {\r\n if (b.RoomSerNo < a.RoomSerNo) {\r\n return 1;\r\n } else {\r\n return 1;\r\n }\r\n }\r\n }));\r\n setZeroBalanceData(zeroBalanceList.sort(function (a, b) {\r\n if (b.IsPMReservation === true) {\r\n return -1;\r\n } else {\r\n if (b.RoomSerNo < a.RoomSerNo) {\r\n return 1;\r\n } else {\r\n return 1;\r\n }\r\n }\r\n\r\n }));\r\n };\r\n //#endregion events\r\n\r\n //#region filterFunctions\r\n const fillETDFrom = () => {\r\n return (\r\n \r\n
    \r\n
    \r\n {\r\n let d = new Date(\"1-jan-2001 \" + m);\r\n setETDFrom(moment(d).format(\"DD-MMM-YYYY HH:mm\"));\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n ETDFrom: m,\r\n }));\r\n if (m === null || m === undefined) {\r\n setETDFrom(\"\");\r\n setDepartureFilterObj((prev) => ({ ...prev, ETDFrom: null }));\r\n }\r\n }}\r\n //disabled=\"disabled\"\r\n placeholder=\"ETD From\"\r\n label=\"ETD From\"\r\n timeformat=\"HH:mm\" //for 12 hour h:mm aa\r\n dateformat=\"HH:mm\" //for 12 hour h:mm aa\r\n selected={departureFilterObj.ETDFrom ? \"1-jan-2001 \" + departureFilterObj.ETDFrom : \"\"}>\r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillETDFrom\");\r\n setColList(c);\r\n setETDFrom(\"\");\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n ETDFrom: null,\r\n }));\r\n }}>\r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n const fillETDTo = () => {\r\n return (\r\n \r\n
    \r\n
    \r\n {\r\n let d = new Date(\"1-jan-2001 \" + m);\r\n setETDTo(moment(d).format(\"DD-MMM-YYYY HH:mm\"));\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n ETDTo: m,\r\n }));\r\n if (m === null || m === undefined) {\r\n setETDTo(\"\");\r\n setDepartureFilterObj((prev) => ({ ...prev, ETDTo: null }));\r\n }\r\n }}\r\n //disabled=\"disabled\"\r\n placeholder=\"ETD To\"\r\n label=\"ETD To\"\r\n timeformat=\"HH:mm\" //for 12 hour h:mm aa\r\n dateformat=\"HH:mm\" //for 12 hour h:mm aa\r\n selected={departureFilterObj.ETDTo ? \"1-jan-2001 \" + departureFilterObj.ETDTo : \"\"}>\r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillETDTo\");\r\n setETDTo(\"\");\r\n setColList(c);\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n ETDTo: null,\r\n }));\r\n }}>\r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n const fillOpenFolio = () => {\r\n return (\r\n \r\n {\r\n // ReservationListFilterModel.Data.IsIncognitoName = isChecked;\r\n // setSelectedIncong(isChecked);\r\n // }}\r\n onChecked={(isChecked) => {\r\n //setSelectedOpenFolio(isChecked);\r\n if (isChecked === true) {\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n IsOpenFolio: isChecked,\r\n }));\r\n } else {\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n IsOpenFolio: null,\r\n }));\r\n }\r\n }}\r\n onClose={() => {\r\n // ReservationListFilterModel.Data.IsIncognitoName = false;\r\n // setSelectedIncong(false);\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillOpenFolio\");\r\n setColList(c);\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n IsOpenFolio: null,\r\n }));\r\n }}>\r\n Open Folio\r\n \r\n \r\n );\r\n };\r\n const fillMembershipLevel = () => {\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n let str = \"\";\r\n setSelectedMembershipLevel(item);\r\n if (item.length > 0) {\r\n item.forEach((x) => {\r\n str = str + x + \",\";\r\n });\r\n }\r\n setDepartureFilterObj((prev) => ({ ...prev, strMemberShipLevel: str }));\r\n }}\r\n //ref={refMembershipLvl}\r\n >\r\n
    \r\n {\r\n //ReservationListFilterModel.Data.strMemberShipLevel = \"\";\r\n setSelectedMembershipLevel([]);\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n strMembershipLevel: \"\",\r\n }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillMembershipLevel\");\r\n setColList(c);\r\n }}>\r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const fillFloor = () => {\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n let str = \"\";\r\n if (item.length > 0) {\r\n item.map((x) => {\r\n str = str + x + \",\";\r\n });\r\n }\r\n setDepartureFilterObj((prev) => ({ ...prev, strFloorSerNo: str }));\r\n setSelectedFloor(item);\r\n }}>\r\n
    \r\n {\r\n setSelectedFloor([]);\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n strFloorSerNo: \"\",\r\n }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillFloor\");\r\n setColList(c);\r\n }}>\r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n const fillLastCheckOut = () => {\r\n return (\r\n \r\n {\r\n if (isChecked === true) {\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n IsLateCheckout: isChecked,\r\n }));\r\n } else {\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n IsLateCheckout: null,\r\n }));\r\n }\r\n }}\r\n onClose={() => {\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n IsLateCheckout: null,\r\n }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillLastCheckOut\");\r\n setColList(c);\r\n }}>\r\n Late Check Out\r\n \r\n \r\n );\r\n };\r\n const fillRegularCheckOut = () => {\r\n return (\r\n \r\n {\r\n if (isChecked === true) {\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n IsEarlyCheckout: isChecked,\r\n }));\r\n } else {\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n IsEarlyCheckout: null,\r\n }));\r\n }\r\n }}\r\n onClose={() => {\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n IsEarlyCheckout: null,\r\n }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillRegularCheckOut\");\r\n setColList(c);\r\n }}>\r\n Early Check Out Time\r\n \r\n \r\n );\r\n };\r\n const fillBlock = () => {\r\n return (\r\n {\r\n setSelectedBlock(item);\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n BlockSerNo: item.key,\r\n }));\r\n }}\r\n onClose={() => {\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n BlockSerNo: 0,\r\n }));\r\n setSelectedBlock({ key: 0, value: \"Select\" });\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillBlock\");\r\n setColList(c);\r\n }}\r\n />\r\n );\r\n };\r\n const fillReinstated = () => {\r\n return (\r\n \r\n {\r\n if (isChecked === true) {\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n IsReinstated: isChecked,\r\n }));\r\n } else {\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n IsReinstated: null,\r\n }));\r\n }\r\n }}\r\n onClose={() => {\r\n setDepartureFilterObj((prev) => ({ ...prev, IsReinstated: null }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillReinstated\");\r\n setColList(c);\r\n }}>\r\n Reinstated\r\n \r\n \r\n );\r\n };\r\n const fillNoResponse = () => {\r\n return (\r\n \r\n {\r\n if (isChecked === true) {\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n IsNoResponse: isChecked,\r\n }));\r\n } else {\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n IsNoResponse: null,\r\n }));\r\n }\r\n }}\r\n onClose={() => {\r\n setDepartureFilterObj((prev) => ({ ...prev, IsNoResponse: null }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillNoResponse\");\r\n setColList(c);\r\n }}>\r\n No Response\r\n \r\n \r\n );\r\n };\r\n const fillNoLuggage = () => {\r\n return (\r\n \r\n {\r\n if (isChecked === true) {\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n IsNoLuggage: isChecked,\r\n }));\r\n } else {\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n IsNoLuggage: null,\r\n }));\r\n }\r\n }}\r\n onClose={() => {\r\n setDepartureFilterObj((prev) => ({ ...prev, IsNoLuggage: null }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillNoLuggage\");\r\n setColList(c);\r\n }}>\r\n No Luggage\r\n \r\n \r\n );\r\n };\r\n const fillWithLuggage = () => {\r\n return (\r\n \r\n {\r\n if (isChecked === true) {\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n IsWithLuggage: isChecked,\r\n }));\r\n } else {\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n IsWithLuggage: null,\r\n }));\r\n }\r\n }}\r\n onClose={() => {\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n IsWithLuggage: null,\r\n }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillWithLuggage\");\r\n setColList(c);\r\n }}>\r\n With Luggage\r\n \r\n \r\n );\r\n };\r\n const fillNoInfo = () => {\r\n return (\r\n \r\n {\r\n if (isChecked === true) {\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n IsNoInfo: isChecked,\r\n }));\r\n } else {\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n IsNoInfo: null,\r\n }));\r\n }\r\n }}\r\n onClose={() => {\r\n setDepartureFilterObj((prev) => ({ ...prev, IsNoInfo: null }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillNoInfo\");\r\n setColList(c);\r\n }}>\r\n No Info\r\n \r\n \r\n );\r\n };\r\n const fillLockOut = () => {\r\n return (\r\n \r\n {\r\n if (isChecked === true) {\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n IsLocked: isChecked,\r\n }));\r\n } else {\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n IsLocked: null,\r\n }));\r\n }\r\n }}\r\n onClose={() => {\r\n setDepartureFilterObj((prev) => ({ ...prev, IsLocked: null }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillLockOut\");\r\n setColList(c);\r\n }}>\r\n Lock Out\r\n \r\n \r\n );\r\n };\r\n const fillPreviousDayDeparture = () => {\r\n return (\r\n \r\n {\r\n if (isChecked === true) {\r\n setDepartureFilterObj((prev) => ({ ...prev, IsDepartureOnSameDay: false }));\r\n } else {\r\n setDepartureFilterObj((prev) => ({ ...prev, IsDepartureOnSameDay: null }));\r\n }\r\n }}\r\n onClose={() => {\r\n setDepartureFilterObj((prev) => ({ ...prev, IsDepartureOnSameDay: null }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"fillPreviousDayDeparture\");\r\n setColList(c);\r\n }}>\r\n Previous Day Departure\r\n \r\n \r\n );\r\n };\r\n //#endregion filterFunctions\r\n\r\n //#region checkboxlogic --c\r\n useEffect(() => {\r\n if (dueOutArrivalCheckBox || departuresCheckBox || zeroBalanceCheckBox || checkedOutCheckBox) {\r\n setIsCheckBoxDisabled(true);\r\n } else {\r\n setIsCheckBoxDisabled(false);\r\n }\r\n }, [dueOutArrivalCheckBox, departuresCheckBox, zeroBalanceCheckBox, checkedOutCheckBox]);\r\n\r\n const handleCheckBox = (o, item, data) => {\r\n let allSelected = true;\r\n let allDeselected = true;\r\n let checkBoxData = selectedCheckBoxData;\r\n let temp = data;\r\n if (o) {\r\n temp.forEach((d) => {\r\n if (d.ReservationSerNo === item.ReservationSerNo) {\r\n d.isChecked = true;\r\n checkBoxData.push(d);\r\n }\r\n if (d.isChecked === false) {\r\n allSelected = false;\r\n }\r\n allDeselected = false;\r\n });\r\n } else {\r\n temp.forEach((x) => {\r\n allSelected = false;\r\n if (x.ReservationSerNo === item.ReservationSerNo) {\r\n x.isChecked = false;\r\n checkBoxData.splice(checkBoxData.indexOf(x), 1);\r\n }\r\n if (x.isChecked === true) {\r\n allDeselected = false;\r\n }\r\n });\r\n }\r\n setSelectedCheckBoxData(checkBoxData);\r\n if (allSelected && data === dueOutArrivalData) setDueOutArrivalCheckBox(true);\r\n if (allSelected && data === departuresData) setDeparturesCheckBox(true);\r\n if (allSelected && data === zeroBalanceData) setZeroBalanceCheckBox(true);\r\n if (allSelected && data === checkedOutData) setCheckedOutCheckBox(true);\r\n if (allDeselected && data === dueOutArrivalData) setDueOutArrivalCheckBox(false);\r\n if (allDeselected && data === departuresData) setDeparturesCheckBox(false);\r\n if (allDeselected && data === zeroBalanceData) setZeroBalanceCheckBox(false);\r\n if (allDeselected && data === checkedOutData) setCheckedOutCheckBox(false);\r\n if (allSelected) {\r\n setIsCheckBoxDisabled(true);\r\n }\r\n if (allDeselected && (dueOutArrivalCheckBox || departuresCheckBox || zeroBalanceCheckBox || checkedOutCheckBox)) {\r\n setIsCheckBoxDisabled(true);\r\n } else if (allDeselected) {\r\n setIsCheckBoxDisabled(false);\r\n }\r\n return data;\r\n };\r\n const handleMultipleCheckBox = (o, data) => {\r\n let temp = data;\r\n let checkBoxData = selectedCheckBoxData;\r\n if (o) {\r\n temp.forEach((x) => {\r\n x.isChecked = true;\r\n if (!checkBoxData.includes(x)) {\r\n checkBoxData.push(x);\r\n }\r\n });\r\n setIsCheckBoxDisabled(true);\r\n } else {\r\n temp.forEach((x) => {\r\n x.isChecked = false;\r\n if (checkBoxData.includes(x)) {\r\n checkBoxData.splice(checkBoxData.indexOf(x), 1);\r\n }\r\n });\r\n }\r\n setSelectedCheckBoxData(checkBoxData);\r\n };\r\n\r\n //#endregion\r\n\r\n //#region tooltips\r\n const WindowListTooltip = (compName, guestName) => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    {compName}
    \r\n
    {guestName}
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const LastUpdateTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
      \r\n
    • By Rohan Shah
    • \r\n
    • Date: 25th Sept.
    • \r\n
    • Time: 15:45
    • \r\n
    • PC: 192.168.600.789
    • \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const NoLuggageTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    No Luggage
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const LockTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    Locked
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const ReturnTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    Reinstate
    \r\n
    \r\n
    \r\n );\r\n };\r\n const DepartureTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    Previous Day Departure
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const VerifiedTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    (Verified)
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const NRSPTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    No Response
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n //#endregion\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n cmbGetMemberShipLvl(currUser.ClientSerNo).then((d) => {\r\n setFillMembershipLevelData(d.data);\r\n });\r\n GetFloorMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n let floorData = [];\r\n d.data.map((item) => {\r\n floorData = [...floorData, { key: item.FloorSerNo, value: item.Name }];\r\n });\r\n setFillFloorData(floorData);\r\n });\r\n fillPropertyParameterData();\r\n funGetUserRights();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (selectedGuestTile.ReservationSerNo != undefined) {\r\n fillWindowTransactionData(selectedGuestTile.ReservationSerNo);\r\n }\r\n }, [updateRI]);\r\n\r\n useEffect(() => {\r\n let temp = [];\r\n if (colList && colList.length > 0) {\r\n colList.map((d) => {\r\n temp.push(d.key);\r\n });\r\n }\r\n setColListKeys(temp);\r\n }, [colList]);\r\n useEffect(() => {\r\n let filterKeys = Object.keys(departureFilterObj);\r\n let tempObj = departureFilterObj;\r\n filterKeys.forEach((x) => {\r\n if (MoreFilterOption.find((o) => o.ObjectName === x)) {\r\n if (!colListKeys.includes(MoreFilterOption.find((o) => o.ObjectName === x).key)) {\r\n if (tempObj[x] !== null && tempObj[x] !== undefined && tempObj[x] !== 0 && tempObj[x] !== false && tempObj[x] !== \"\") {\r\n tempObj[x] = defaultDepartureFilterObj[x];\r\n }\r\n }\r\n }\r\n });\r\n }, [colListKeys.length]);\r\n\r\n useEffect(() => {\r\n if (new Date(departureFilterObj.DepartureDate) > new Date(propertyBusinessDate)) {\r\n GetReservationBlockListCombo(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), departureFilterObj.DepartureDate, departureFilterObj.DepartureDate).then((d) => {\r\n let defaultBlockComboData = [{ key: 0, value: \"Select\" }];\r\n d.data.map((e) => {\r\n defaultBlockComboData = [\r\n ...defaultBlockComboData,\r\n {\r\n key: e.BlockSerNo,\r\n value: e.BlockName,\r\n },\r\n ];\r\n });\r\n\r\n if (departureFilterObj.BlockSerNo !== 0) {\r\n let temp = defaultBlockComboData.find((x) => x.key === departureFilterObj.BlockSerNo);\r\n if (temp !== undefined) {\r\n setSelectedBlock(temp);\r\n }\r\n }\r\n setFillBlockComboData(defaultBlockComboData);\r\n });\r\n }\r\n }, [departureFilterObj.DepartureDate, propertyBusinessDate]);\r\n\r\n useEffect(() => {\r\n if (selectedCheckBoxData.length > 0) {\r\n let temp = [];\r\n selectedCheckBoxData.forEach((x) => {\r\n temp.push(x.ReservationSerNo);\r\n });\r\n setCashieringSerNo(temp.toString());\r\n }\r\n }, [selectedCheckBoxData.length]);\r\n\r\n useEffect(() => {\r\n if (props.location.state !== undefined) {\r\n if (props.location.state[\"filterObj\"] !== undefined) {\r\n let propsFilterObj = departureFilterObj;\r\n let propsKeys = Object.keys(props.location.state[\"filterObj\"]);\r\n if (propsKeys.length > 0) {\r\n let j = props.location.state[\"filterObj\"];\r\n if (j[\"DepartureDate\"]) {\r\n propsFilterObj[\"DepartureDate\"] = j[\"DepartureDate\"];\r\n setSelectedDepartureDate(j[\"DepartureDate\"]);\r\n }\r\n // if (j[\"FirstName\"]) {\r\n // propsFilterObj[\"FirstName\"] = j[\"FirstName\"];\r\n // }\r\n // if (j[\"LastName\"]) {\r\n // propsFilterObj[\"LastName\"] = j[\"LastName\"];\r\n // }\r\n if (j[\"CompanyProfileSerNo\"] && !isNaN(j[\"CompanyProfileSerNo\"])) {\r\n propsFilterObj[\"CompanyProfileSerNo\"] = j[\"CompanyProfileSerNo\"];\r\n }\r\n if (j[\"AgentProfileSerNo\"] && !isNaN(j[\"AgentProfileSerNo\"])) {\r\n propsFilterObj[\"AgentProfileSerNo\"] = j[\"AgentProfileSerNo\"];\r\n }\r\n let tempColList = [];\r\n let tempColListKeys = [];\r\n propsKeys.forEach((o, index) => {\r\n let tempObj = MoreFilterOption.find((x) => x.ObjectName === o);\r\n if (tempObj !== undefined) {\r\n if (j[o] !== null && j[o] !== undefined && j[o] !== 0 && j[o] !== false && j[o] !== \"\") {\r\n tempColList.push(tempObj);\r\n tempColListKeys.push(tempObj.key);\r\n if (o === \"strMemberShipLevel\") {\r\n let temp = j[o].split(\",\");\r\n temp = temp.filter((x) => x.trim().length > 0);\r\n setSelectedMembershipLevel(temp);\r\n }\r\n if (o === \"strFloorSerNo\") {\r\n let temp = j[o].split(\",\");\r\n temp = temp.filter((x) => x.trim().length > 0);\r\n let data = [];\r\n temp.forEach((x) => data.push(parseInt(x)));\r\n setSelectedFloor(data);\r\n }\r\n propsFilterObj[o] = j[o];\r\n if (o === 'IsDepartureOnSameDay') {\r\n console.error(\"same day departure\", j[0]);\r\n }\r\n }\r\n }\r\n });\r\n if (j[\"IsDepartureOnSameDay\"] === false) {\r\n let tempObj = MoreFilterOption.find((x) => x.ObjectName === 'IsDepartureOnSameDay');\r\n propsFilterObj[\"IsDepartureOnSameDay\"] = false;\r\n tempColList.push(tempObj);\r\n tempColListKeys.push(tempObj.key);\r\n } else {\r\n propsFilterObj[\"IsDepartureOnSameDay\"] = null;\r\n }\r\n setColList(tempColList);\r\n setColListKeys(tempColListKeys);\r\n propsFilterObj.IsLoaded = true;\r\n setDepartureFilterObj(propsFilterObj);\r\n } else {\r\n setDepartureFilterObj((prev) => ({ ...prev, IsLoaded: true }));\r\n }\r\n fillFilteredData({});\r\n } else {\r\n alertFunction(\"Default parameters undefined...\");\r\n }\r\n } else {\r\n setTimeout(() => {\r\n alertFunction(\"Default parameters undefined...\");\r\n }, 500);\r\n }\r\n }, []);\r\n //#endregion useEffect\r\n\r\n\r\n return (\r\n
    \r\n {showCompanyFilterModalPopup ? (\r\n {\r\n setShowCompanyFilterModalPopup(false);\r\n setSelectedAgent({\r\n AgentSerNo: 0,\r\n AgentName: \"Select\",\r\n });\r\n }}\r\n handleOnSelect={(selected) => {\r\n setSelectedCompany(selected);\r\n setShowCompanyFilterModalPopup(false);\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n CompanyProfileSerNo: selected.AgentSerNo,\r\n }));\r\n }}\r\n />\r\n ) : null}\r\n {showAgentFilterModalPopup ? (\r\n {\r\n setShowAgentFilterModalPopup(false);\r\n }}\r\n handleOnSelect={(selected) => {\r\n setSelectedAgent(selected);\r\n setShowAgentFilterModalPopup(false);\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n AgentProfileSerNo: selected.AgentSerNo,\r\n }));\r\n }}\r\n />\r\n ) : null}\r\n {showDueOutToolTip ? (\r\n {\r\n setShowDueOutToolTip(false);\r\n }}>\r\n ) : null}\r\n {showDueInToolTip ? (\r\n {\r\n setShowDueInToolTip(false);\r\n }}\r\n >\r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n Departure List ({departureDateFilteredData.length}) \r\n {moment(new Date(selectedDepartureDate)).format(\"ddd, DD MMM\")}\r\n

    \r\n
    \r\n
    \r\n {/*
    Tabs
    */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setshowLeftBlueBar(true);\r\n }}>\r\n
    \r\n \r\n {selectedGuestTile.GuestName}\r\n \r\n {\r\n setShowDueOutToolTip(true);\r\n }}\r\n >\r\n Due out\r\n \r\n
    \r\n
    \r\n
    \r\n {(selectedDueInReservation.ReservationSerNo != undefined) ?\r\n
    \r\n {selectedDueInReservation.GuestName}\r\n {\r\n setShowDueInToolTip(true);\r\n }}\r\n >\r\n Due In\r\n \r\n
    \r\n :\r\n null}\r\n\r\n {\r\n setShowDepartureListFilterModal(!showDepartureListFilterModal);\r\n }}>\r\n \r\n
    \r\n
    \r\n \r\n Search\r\n \r\n
    \r\n
    \r\n 1 ? selectedCheckBoxData.length : \"\"}`}\r\n name=\"action\"\r\n disabled={selectedCheckBoxData.length < 2 ? true : false}\r\n onChange={(item, name) => {\r\n BillingActionPopup(item);\r\n }}>\r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {showDepartureListFilterModal ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Filters

    \r\n
    \r\n
    \r\n
    \r\n {\r\n if (item.includes(\"selectAll\") && item.length === 1) {\r\n let tempColListKeys = [];\r\n let tempColList = [];\r\n MoreFilterOption.forEach((x) => {\r\n tempColList.push(x);\r\n tempColListKeys.push(x.key);\r\n });\r\n setColList(tempColList);\r\n setColListKeys(tempColListKeys);\r\n setShowFilter(true);\r\n } else if (item.includes(\"selectAll\") && item.length < MoreFilterOption.length) {\r\n let tempColListKeys = [];\r\n let tempColList = [];\r\n if (items.length > colList.length) {\r\n MoreFilterOption.forEach((x) => {\r\n tempColList.push(x);\r\n tempColListKeys.push(x.key);\r\n });\r\n } else {\r\n items.forEach((x) => {\r\n if (x.key != \"selectAll\") {\r\n tempColList.push(x);\r\n tempColListKeys.push(x.key);\r\n }\r\n });\r\n }\r\n setColList(tempColList);\r\n setColListKeys(tempColListKeys);\r\n if (item.length > 0) {\r\n setShowFilter(true);\r\n } else {\r\n setShowFilter(false);\r\n }\r\n } else {\r\n setColList(items);\r\n let temp = [];\r\n items.forEach((o) => {\r\n temp.push(o.key);\r\n });\r\n setColListKeys(temp);\r\n if (item.length > 0) {\r\n setShowFilter(true);\r\n } else {\r\n setShowFilter(false);\r\n }\r\n }\r\n }}\r\n label=\"More Filters\"\r\n searchable={[\"Search\", \"No matching property\"]}\r\n className=\"button-layout-dd gray-btn\"\r\n buttonLayout={true}>\r\n
    \r\n ResetFilter()}>Reset\r\n Apply\r\n setShowDepartureListFilterModal(!showDepartureListFilterModal)}>\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\" \"}\r\n {/* filter-elements-section */}\r\n
    \r\n
    \r\n {\r\n setSelectedBlock({ key: 0, value: \"Select\" });\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n DepartureDate: item,\r\n }));\r\n if (item === \"01-Jan-70\") {\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n DepartureDate: \"\",\r\n }));\r\n }\r\n }}\r\n calendarStartDay={1}\r\n label=\"Date\">\r\n
    \r\n
    \r\n {/*Filter removed because it search box already covers first name and last name */}\r\n {/*
    \r\n
    \r\n {\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n FirstName: item,\r\n }));\r\n }}\r\n className=\"form-group\">\r\n First Name\r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n setDepartureFilterObj((prev) => ({\r\n ...prev,\r\n LastName: item,\r\n }));\r\n }}\r\n className=\"form-group\">\r\n Last Name\r\n \r\n
    */}\r\n
    \r\n
    \r\n
    \r\n {\r\n setShowAgentFilterModalPopup(true);\r\n }}>\r\n Agent\r\n \r\n {\r\n setShowAgentFilterModalPopup(true);\r\n }}>\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setShowCompanyFilterModalPopup(true);\r\n }}>\r\n Company\r\n \r\n {\r\n setShowCompanyFilterModalPopup(true);\r\n }}>\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n {showFilter ? (\r\n \r\n {colList.map((o) =>\r\n o.key === \"fillETDFrom\" ? (\r\n fillETDFrom()\r\n ) : o.key === \"fillETDTo\" ? (\r\n fillETDTo()\r\n ) : o.key === \"fillOpenFolio\" ? (\r\n fillOpenFolio()\r\n ) : o.key === \"fillMembershipLevel\" ? (\r\n fillMembershipLevel()\r\n ) : o.key === \"fillFloor\" ? (\r\n fillFloor()\r\n ) : o.key === \"fillLastCheckOut\" ? (\r\n fillLastCheckOut()\r\n ) : o.key === \"fillRegularCheckOut\" ? (\r\n fillRegularCheckOut()\r\n ) : o.key === \"fillBlock\" ? (\r\n fillBlock()\r\n ) : o.key === \"fillReinstated\" ? (\r\n fillReinstated()\r\n ) : o.key === \"fillNoResponse\" ? (\r\n fillNoResponse()\r\n ) : o.key === \"fillNoLuggage\" ? (\r\n fillNoLuggage()\r\n ) : o.key === \"fillWithLuggage\" ? (\r\n fillWithLuggage()\r\n ) : o.key === \"fillNoInfo\" ? (\r\n fillNoInfo()\r\n ) : o.key === \"fillLockOut\" ? (\r\n fillLockOut()\r\n ) : o.key === \"fillPreviousDayDeparture\" ? (\r\n fillPreviousDayDeparture()\r\n ) : (\r\n null\r\n )\r\n )}\r\n \r\n ) : (\r\n
    \r\n )}\r\n
    \r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setDeparturesCheckBox(e);\r\n handleMultipleCheckBox(e, departuresData);\r\n }}>\r\n
    \r\n
    DEPARTURES ({departuresData.length})
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n {departuresData.map((item, index) => {\r\n return (\r\n \r\n
    • handleGuestTileClick(item)}>\r\n {item.isVerified === true\r\n ?\r\n \r\n \r\n \r\n \r\n \r\n :\r\n null}\r\n
      \r\n
      \r\n {\r\n handleCheckBox(isChecked, item, departuresData);\r\n if (isChecked === false && departuresCheckBox) setDeparturesCheckBox(false);\r\n }}\r\n className=\"d-inline-block\">\r\n \r\n {(item.IsPMReservation) ?\r\n item.BlockSerNo == 0 ?\r\n \"PM\"\r\n :\r\n <>\r\n PM\r\n \r\n \r\n :\r\n item.RoomTypeCode\r\n } {item.RoomTypeSeq != item.RoomTypeToChargeSeq ? item.RoomTypeSeq > item.RoomTypeToChargeSeq ? : : }\r\n \r\n
      \r\n\r\n
      \r\n {!item.IsPMReservation ?\r\n \r\n {item.IsSharer ? :\r\n }\r\n {/* */}\r\n \r\n : null}\r\n {!item.isNRSP ?\r\n {\r\n let tempData = IsSharerOrPrimary(item);\r\n tempData.forEach(u => {\r\n handleNoResponse(o.key, u);\r\n });\r\n fillFilteredData(selectedGuestTile);\r\n }}>\r\n {\r\n item.IsWithLuggage && item.IsNoResponse ? (\r\n \r\n ) : item.IsNoResponse ? (\r\n \r\n \r\n \r\n ) : null\r\n }\r\n \r\n :\r\n null}\r\n {!item.isNRSP ?\r\n item.IsLocked && item.IsNoResponse ? (\r\n \r\n \r\n \r\n ) : null\r\n :\r\n null}\r\n\r\n {item.IsReinstated ? (\r\n \r\n \r\n \r\n ) : null}\r\n {item.isNRSP ? (\r\n {\r\n let tempData = IsSharerOrPrimary(item);\r\n tempData.forEach(u => {\r\n let temp = collectedNRSP.find((x) => x === u);\r\n collectedNRSP.splice(collectedNRSP.indexOf(temp), 1);\r\n handleNoResponse(o.key, u);\r\n });\r\n fillFilteredData(selectedGuestTile);\r\n }}>\r\n \r\n \r\n ) : null}\r\n {item.IsDepartureOnSameDay === false ?\r\n \r\n \r\n \r\n :\r\n null}\r\n {(selectedCheckBoxData.length > 1 || (item.IsPMReservation === true) || moment(new Date(reservationInfoData.DepartureDate1)).format(\"DD-MMM-yyyy\") > moment(new Date(propertyBusinessDate)).format(\"DD-MMM-yyyy\")) ?\r\n <>\r\n {item.IsNoResponse === true ? (\r\n
      \r\n NRSP{\" \"}\r\n
      \r\n ) : item.ActualDepartureTime === null ? (\r\n
      \r\n No Info{\" \"}\r\n
      \r\n ) : (\r\n
      = gracePeriod && item.ActualDepartureTime <= propertyDepartureTime ? \"time text-gray\" : item.ActualDepartureTime <= propertyDepartureTime ? \"time text-green\" : item.ActualDepartureTime > propertyDepartureTime ? \"time text-danger\" : \"\"}>{item.ActualDepartureTime}
      \r\n )}\r\n \r\n :\r\n <>\r\n {\r\n if (x.value === \"NoResponse\") {\r\n if (!item.IsNoResponse) {\r\n handleRights(\"31\").then((d) => {\r\n if (d) {\r\n let tempData = IsSharerOrPrimary(item);\r\n tempData.forEach(o => {\r\n collectedNRSP.push(parseInt(o));\r\n editReservationField(o, x.key, x.value);\r\n });\r\n setTimeout(() => {\r\n fillFilteredData(selectedGuestTile);\r\n }, 100);\r\n }\r\n });\r\n }\r\n } else {\r\n let temp = collectedNRSP.find((x) => x === item.ReservationSerNo);\r\n if (temp != undefined) {\r\n collectedNRSP.splice(collectedNRSP.indexOf(temp), 1);\r\n }\r\n editField(item.ReservationSerNo, x);\r\n editReservationField(parseInt(item.ReservationSerNo), \"IsWithLuggage\", 0);\r\n editReservationField(parseInt(item.ReservationSerNo), \"IsLocked\", 0);\r\n }\r\n }}>\r\n {item.IsNoResponse === true ? (\r\n
      \r\n NRSP{\" \"}\r\n
      \r\n ) : item.ActualDepartureTime === null ? (\r\n
      \r\n No Info{\" \"}\r\n
      \r\n ) : (\r\n
      = gracePeriod && item.ActualDepartureTime <= propertyDepartureTime ? \"time text-gray\" : item.ActualDepartureTime <= propertyDepartureTime ? \"time text-green\" : item.ActualDepartureTime > propertyDepartureTime ? \"time text-danger\" : \"\"}>{item.ActualDepartureTime}
      \r\n )}\r\n \r\n }\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n {item.GuestName}\r\n
      \r\n
      \r\n\r\n
      \r\n {selectedCheckBoxData.length > 1 ? (\r\n
      \r\n
      \r\n
      \r\n ) : (\r\n x.key !== 2)}\r\n name=\"Single Select\"\r\n onChange={(x, name) => actionPopup(x, item)}\r\n >\r\n
      \r\n \r\n )}\r\n
      \r\n
      \r\n
    • \r\n
      \r\n );\r\n })}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setZeroBalanceCheckBox(e);\r\n handleMultipleCheckBox(e, zeroBalanceData);\r\n }}>\r\n
    \r\n
    Zero Balance ({zeroBalanceData.length})
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n {zeroBalanceData.map((item, index) => {\r\n return (\r\n \r\n
    • handleGuestTileClick(item)}>\r\n {item.isVerified === true\r\n ?\r\n \r\n \r\n \r\n \r\n \r\n :\r\n null}\r\n
      \r\n
      \r\n console.log(item, name)} //-c2\r\n checked={item.isChecked}\r\n onChecked={(isChecked) => {\r\n handleCheckBox(isChecked, item, zeroBalanceData);\r\n if (isChecked === false && zeroBalanceCheckBox) setZeroBalanceCheckBox(false);\r\n }}\r\n className=\"d-inline-block\">\r\n \r\n {(item.IsPMReservation) ?\r\n item.BlockSerNo == 0 ?\r\n \"PM\"\r\n :\r\n <>\r\n PM\r\n \r\n \r\n :\r\n item.RoomTypeCode\r\n }\r\n {item.RoomTypeSeq != item.RoomTypeToChargeSeq ? item.RoomTypeSeq > item.RoomTypeToChargeSeq ? : : }\r\n \r\n
      \r\n\r\n
      \r\n {!item.IsPMReservation ?\r\n \r\n {item.IsSharer ? :\r\n }\r\n {/* */}\r\n \r\n : null}\r\n {!item.isNRSP ?\r\n {\r\n let tempData = IsSharerOrPrimary(item);\r\n tempData.forEach(u => {\r\n handleNoResponse(o.key, u);\r\n });\r\n fillFilteredData(selectedGuestTile);\r\n }}>\r\n {\r\n item.IsWithLuggage && item.IsNoResponse ? (\r\n \r\n ) : item.IsNoResponse ? (\r\n \r\n \r\n \r\n ) : null\r\n }\r\n \r\n :\r\n null}\r\n {!item.isNRSP ?\r\n item.IsLocked && item.IsNoResponse ? (\r\n \r\n \r\n \r\n ) : null\r\n :\r\n null}\r\n\r\n {item.IsReinstated ? (\r\n \r\n \r\n \r\n ) : null}\r\n {item.isNRSP ? (\r\n {\r\n let tempData = IsSharerOrPrimary(item);\r\n tempData.forEach(u => {\r\n let temp = collectedNRSP.find((x) => x === u);\r\n collectedNRSP.splice(collectedNRSP.indexOf(temp), 1);\r\n handleNoResponse(o.key, u);\r\n });\r\n fillFilteredData(selectedGuestTile);\r\n }}>\r\n \r\n \r\n ) : null}\r\n {item.IsDepartureOnSameDay === false ?\r\n \r\n \r\n \r\n :\r\n null}\r\n {(selectedCheckBoxData.length > 1 || (item.IsPMReservation === true) || moment(new Date(reservationInfoData.DepartureDate1)).format(\"DD-MMM-yyyy\") > moment(new Date(propertyBusinessDate)).format(\"DD-MMM-yyyy\")) ?\r\n <>\r\n {item.IsNoResponse === true ? (\r\n
      \r\n NRSP{\" \"}\r\n
      \r\n ) : item.ActualDepartureTime === null ? (\r\n
      \r\n No Info{\" \"}\r\n
      \r\n ) : (\r\n
      = gracePeriod && item.ActualDepartureTime <= propertyDepartureTime ? \"time text-gray\" : item.ActualDepartureTime <= propertyDepartureTime ? \"time text-green\" : item.ActualDepartureTime > propertyDepartureTime ? \"time text-danger\" : \"\"}>{item.ActualDepartureTime}
      \r\n )}\r\n \r\n :\r\n <>\r\n {\r\n if (x.value === \"NoResponse\") {\r\n if (!item.IsNoResponse) {\r\n handleRights(\"31\").then((d) => {\r\n if (d) {\r\n let tempData = IsSharerOrPrimary(item);\r\n tempData.forEach(o => {\r\n collectedNRSP.push(parseInt(o));\r\n editReservationField(o, x.key, x.value);\r\n });\r\n setTimeout(() => {\r\n fillFilteredData(selectedGuestTile);\r\n }, 100);\r\n }\r\n });\r\n }\r\n } else {\r\n let temp = collectedNRSP.find((x) => x === item.ReservationSerNo);\r\n if (temp != undefined) {\r\n collectedNRSP.splice(collectedNRSP.indexOf(temp), 1);\r\n }\r\n editField(item.ReservationSerNo, x);\r\n editReservationField(parseInt(item.ReservationSerNo), \"IsWithLuggage\", 0);\r\n editReservationField(parseInt(item.ReservationSerNo), \"IsLocked\", 0);\r\n }\r\n }}>\r\n {item.IsNoResponse === true ? (\r\n
      \r\n NRSP{\" \"}\r\n
      \r\n ) : item.ActualDepartureTime === null ? (\r\n
      \r\n No Info{\" \"}\r\n
      \r\n ) : (\r\n
      = gracePeriod && item.ActualDepartureTime <= propertyDepartureTime ? \"time text-gray\" : item.ActualDepartureTime <= propertyDepartureTime ? \"time text-green\" : item.ActualDepartureTime > propertyDepartureTime ? \"time text-danger\" : \"\"}>{item.ActualDepartureTime}
      \r\n )}\r\n \r\n }\r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n {(item.IsPMReservation && item.BlockSerNo != null && item.BlockSerNo != 0) ?\r\n item.BlockName\r\n :\r\n item.GuestName\r\n }\r\n
      \r\n
      \r\n\r\n
      \r\n {selectedCheckBoxData.length > 1 ? (\r\n
      \r\n
      \r\n
      \r\n ) : (\r\n x.key !== 2)}\r\n name=\"Single Select\"\r\n onChange={(x, name) => actionPopup(x, item)}\r\n >\r\n
      \r\n \r\n )}\r\n
      \r\n
      \r\n
    • \r\n
      \r\n );\r\n })}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setDueOutArrivalCheckBox(e);\r\n handleMultipleCheckBox(e, dueOutArrivalData);\r\n }}>\r\n
    \r\n
    DUE OUT - ARRIVAL ({dueOutArrivalData.length})
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n {dueOutArrivalData.map((item, index) => {\r\n return (\r\n
    • {\r\n handleGuestTileClick(item, 'DOA');\r\n }}>\r\n {item.isVerified === true\r\n ?\r\n \r\n \r\n \r\n \r\n \r\n :\r\n null}\r\n\r\n
      \r\n
      \r\n {\r\n handleCheckBox(ischecked, item, dueOutArrivalData);\r\n if (ischecked === false && dueOutArrivalCheckBox) setDueOutArrivalCheckBox(false);\r\n }}\r\n className=\"d-inline-block\">\r\n \r\n {(item.IsPMReservation) ?\r\n item.BlockSerNo == 0 ?\r\n \"PM\"\r\n :\r\n <>\r\n PM\r\n \r\n \r\n :\r\n item.RoomTypeCode\r\n }\r\n {item.RoomTypeSeq != item.RoomTypeToChargeSeq ? item.RoomTypeSeq > item.RoomTypeToChargeSeq ? : : }\r\n \r\n
      \r\n\r\n
      \r\n {!item.IsPMReservation ?\r\n \r\n {item.IsSharer ? :\r\n }\r\n {/* */}\r\n \r\n : null}\r\n {!item.isNRSP ?\r\n {\r\n\r\n let tempData = IsSharerOrPrimary(item);\r\n tempData.forEach(u => {\r\n handleNoResponse(o.key, u);\r\n });\r\n fillFilteredData(selectedGuestTile);\r\n }}>\r\n {\r\n item.IsWithLuggage && item.IsNoResponse ? (\r\n \r\n ) : (item.IsWithLuggage === false && item.IsNoResponse) ? (\r\n \r\n \r\n \r\n ) : null\r\n }\r\n \r\n :\r\n null}\r\n {!item.isNRSP ?\r\n item.IsLocked && item.IsNoResponse ? (\r\n \r\n \r\n \r\n ) : null\r\n :\r\n null}\r\n {item.IsReinstated ? (\r\n \r\n \r\n \r\n ) : null}\r\n {item.isNRSP ? (\r\n {\r\n let tempData = IsSharerOrPrimary(item);\r\n tempData.forEach(u => {\r\n let temp = collectedNRSP.find((x) => x === u);\r\n collectedNRSP.splice(collectedNRSP.indexOf(temp), 1);\r\n handleNoResponse(o.key, u);\r\n });\r\n fillFilteredData(selectedGuestTile);\r\n }}>\r\n \r\n \r\n ) : null}\r\n {item.IsDepartureOnSameDay === false ?\r\n \r\n \r\n \r\n :\r\n null}\r\n {(selectedCheckBoxData.length > 1 || item.IsPMReservation === true || moment(new Date(reservationInfoData.DepartureDate1)).format(\"DD-MMM-yyyy\") > moment(new Date(propertyBusinessDate)).format(\"DD-MMM-yyyy\")) ?\r\n <>\r\n {item.IsNoResponse === true ? (\r\n
      \r\n NRSP{\" \"}\r\n
      \r\n ) : item.ActualDepartureTime === null ? (\r\n
      \r\n No Info{\" \"}\r\n
      \r\n ) : (\r\n
      = gracePeriod && item.ActualDepartureTime <= propertyDepartureTime ? \"time text-gray\" : item.ActualDepartureTime <= propertyDepartureTime ? \"time text-green\" : item.ActualDepartureTime > propertyDepartureTime ? \"time text-danger\" : \"\"}>{item.ActualDepartureTime}
      \r\n )}\r\n \r\n :\r\n <>\r\n {\r\n if (x.value === \"NoResponse\") {\r\n if (!item.IsNoResponse) {\r\n handleRights(\"31\").then((d) => {\r\n if (d) {\r\n let tempData = IsSharerOrPrimary(item);\r\n tempData.forEach(o => {\r\n collectedNRSP.push(parseInt(o));\r\n editReservationField(o, x.key, x.value);\r\n });\r\n setTimeout(() => {\r\n fillFilteredData(selectedGuestTile);\r\n }, 100);\r\n }\r\n });\r\n }\r\n } else {\r\n let temp = collectedNRSP.find((x) => x === item.ReservationSerNo);\r\n if (temp != undefined) {\r\n collectedNRSP.splice(collectedNRSP.indexOf(temp), 1);\r\n }\r\n editField(item.ReservationSerNo, x);\r\n editReservationField(parseInt(item.ReservationSerNo), \"IsWithLuggage\", 0);\r\n editReservationField(parseInt(item.ReservationSerNo), \"IsLocked\", 0);\r\n }\r\n }}>\r\n {item.IsNoResponse === true ? (\r\n
      \r\n NRSP{\" \"}\r\n
      \r\n ) : item.ActualDepartureTime === null ? (\r\n
      \r\n No Info{\" \"}\r\n
      \r\n ) : (\r\n
      = gracePeriod && item.ActualDepartureTime <= propertyDepartureTime ? \"time text-gray\" : item.ActualDepartureTime <= propertyDepartureTime ? \"time text-green\" : item.ActualDepartureTime > propertyDepartureTime ? \"time text-danger\" : \"\"}>{item.ActualDepartureTime}
      \r\n )}\r\n \r\n }\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n {item.GuestName}\r\n
      \r\n
      \r\n
      \r\n {selectedCheckBoxData.length > 1 ? (\r\n
      \r\n
      \r\n
      \r\n ) : (\r\n x.key !== 2)}\r\n name=\"Single Select\"\r\n onChange={(x, name) => actionPopup(x, item)}\r\n >\r\n
      \r\n \r\n )}\r\n
      \r\n
      \r\n
    • \r\n );\r\n })}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {\r\n setCheckedOutCheckBox(e);\r\n handleMultipleCheckBox(e, checkedOutData);\r\n }}>\r\n
    \r\n
    Checked Out ({checkedOutData.length})
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n {checkedOutData.map((item, index) => {\r\n return (\r\n \r\n
    • {\r\n handleGuestTileClick(item);\r\n console.log(item);\r\n }}>\r\n {item.isVerified === true\r\n ?\r\n \r\n \r\n \r\n \r\n \r\n :\r\n null}\r\n
      \r\n
      \r\n {\r\n handleCheckBox(isChecked, item, checkedOutData);\r\n if (isChecked === false && checkedOutCheckBox) setCheckedOutCheckBox(false);\r\n }}\r\n className=\"d-inline-block\">\r\n \r\n {(item.IsPMReservation) ?\r\n item.BlockSerNo == 0 ?\r\n \"PM\"\r\n :\r\n <>\r\n PM\r\n \r\n \r\n :\r\n item.RoomTypeCode\r\n }\r\n {item.RoomTypeSeq != item.RoomTypeToChargeSeq ? item.RoomTypeSeq > item.RoomTypeToChargeSeq ? : : }\r\n \r\n
      \r\n\r\n
      \r\n {!item.IsPMReservation ?\r\n \r\n {item.IsSharer ? :\r\n }\r\n {/* */}\r\n \r\n : null}\r\n {!item.isNRSP ?\r\n {\r\n let tempData = IsSharerOrPrimary(item);\r\n tempData.forEach(u => {\r\n handleNoResponse(o.key, u);\r\n });\r\n fillFilteredData(selectedGuestTile);\r\n }}>\r\n {\r\n item.IsWithLuggage && item.IsNoResponse ? (\r\n \r\n ) : item.IsNoResponse ? (\r\n \r\n \r\n \r\n ) : null\r\n }\r\n \r\n :\r\n null}\r\n {!item.isNRSP ?\r\n item.IsLocked && item.IsNoResponse ? (\r\n \r\n \r\n \r\n ) : null\r\n :\r\n null}\r\n\r\n {item.IsReinstated ? (\r\n \r\n \r\n \r\n ) : null}\r\n {item.isNRSP ? (\r\n {\r\n let tempData = IsSharerOrPrimary(item);\r\n tempData.forEach(u => {\r\n let temp = collectedNRSP.find((x) => x === u);\r\n collectedNRSP.splice(collectedNRSP.indexOf(temp), 1);\r\n handleNoResponse(o.key, u);\r\n });\r\n fillFilteredData(selectedGuestTile);\r\n }}>\r\n \r\n \r\n ) : null}\r\n {item.IsDepartureOnSameDay === false ?\r\n \r\n \r\n \r\n :\r\n null}\r\n\r\n\r\n {\r\n item.IsOpenFolio ?\r\n \r\n \r\n \r\n :\r\n null\r\n }\r\n {(selectedCheckBoxData.length > 1 || (item.IsPMReservation === true) || moment(new Date(reservationInfoData.DepartureDate1)).format(\"DD-MMM-yyyy\") > moment(new Date(propertyBusinessDate)).format(\"DD-MMM-yyyy\")) ?\r\n <>\r\n {item.IsNoResponse === true ? (\r\n
      \r\n NRSP{\" \"}\r\n
      \r\n ) : item.ActualDepartureTime === null ? (\r\n
      \r\n No Info{\" \"}\r\n
      \r\n ) : (\r\n
      = gracePeriod && item.ActualDepartureTime <= propertyDepartureTime ? \"time text-gray\" : item.ActualDepartureTime <= propertyDepartureTime ? \"time text-green\" : item.ActualDepartureTime > propertyDepartureTime ? \"time text-danger\" : \"\"}>{item.ActualDepartureTime}
      \r\n )}\r\n \r\n :\r\n <>\r\n {\r\n if (x.value === \"NoResponse\") {\r\n if (!item.IsNoResponse) {\r\n handleRights(\"31\").then((d) => {\r\n if (d) {\r\n let tempData = IsSharerOrPrimary(item);\r\n tempData.forEach(o => {\r\n collectedNRSP.push(parseInt(o));\r\n editReservationField(o, x.key, x.value);\r\n });\r\n setTimeout(() => {\r\n fillFilteredData(selectedGuestTile);\r\n }, 100);\r\n }\r\n });\r\n }\r\n } else {\r\n let temp = collectedNRSP.find((x) => x === item.ReservationSerNo);\r\n if (temp != undefined) {\r\n collectedNRSP.splice(collectedNRSP.indexOf(temp), 1);\r\n }\r\n editField(item.ReservationSerNo, x);\r\n editReservationField(parseInt(item.ReservationSerNo), \"IsWithLuggage\", 0);\r\n editReservationField(parseInt(item.ReservationSerNo), \"IsLocked\", 0);\r\n }\r\n }}>\r\n {item.IsNoResponse === true ? (\r\n
      \r\n NRSP{\" \"}\r\n
      \r\n ) : item.ActualDepartureTime === null ? (\r\n
      \r\n No Info{\" \"}\r\n
      \r\n ) : (\r\n
      = gracePeriod && item.ActualDepartureTime <= propertyDepartureTime ? \"time text-gray\" : item.ActualDepartureTime <= propertyDepartureTime ? \"time text-green\" : item.ActualDepartureTime > propertyDepartureTime ? \"time text-danger\" : \"\"}>{item.ActualDepartureTime}
      \r\n )}\r\n \r\n }\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n {item.GuestName}\r\n
      \r\n
      \r\n
      \r\n {selectedCheckBoxData.length > 1 ? (\r\n
      \r\n
      \r\n
      \r\n ) : (\r\n x.key !== 0 && x.key !== 3)}\r\n name=\"Single Select\"\r\n onChange={(x, name) => {\r\n if (x.key == \"2\") {\r\n handleRights(\"32\").then((d) => {\r\n if (d) {\r\n actionPopup(x, item);\r\n }\r\n });\r\n }\r\n }}>\r\n
      \r\n \r\n )}\r\n
      \r\n
      \r\n
    • \r\n
      \r\n );\r\n })}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n {selectedCheckBoxData.length > 1\r\n ?
    \r\n : null\r\n }\r\n
    \r\n {\r\n //refresh grid.\r\n let temp = JSON.parse(JSON.stringify(departureData));\r\n temp.forEach(x => {\r\n if (x.ReservationSerNo === selectedGuestTile.ReservationSerNo) {\r\n if (total === comp) {\r\n x.isVerified = true;\r\n } else {\r\n x.isVerified = false;\r\n }\r\n }\r\n });\r\n setDepartureData(temp);\r\n getDividedData(temp, dueOutReservationList, departureReservationList);\r\n }}\r\n />\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
      \r\n {reservationWindowData.map((item, index) => {\r\n {\r\n return (\r\n item.IsDeleted == false ?\r\n
    • \r\n \r\n
      \r\n {item.WindowName} {item.Amount.toFixed(2)}\r\n
      \r\n
      \r\n

      {item.TransactionName}

      \r\n

      {item.CompanyOnFolioProfile}

      \r\n

      {item.GuestName}

      \r\n
      \r\n
      \r\n
    • \r\n :\r\n null\r\n );\r\n }\r\n })}\r\n
    \r\n
    \r\n
    \r\n {/*
    \r\n Un Settle Bills at POS\r\n 1200.00\r\n
    \r\n
    \r\n Mini Bar\r\n Direct\r\n
    */}\r\n
    \r\n BALANCE\r\n {windowTransactionBalance.toFixed(2)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Go to Cashierings\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* blue bg inside menu Start */}\r\n {showLeftBlueBar == true && (\r\n
    \r\n
    \r\n
    \r\n

    system views

    \r\n
    \r\n\r\n {\r\n setshowLeftBlueBar(false);\r\n }}>\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n \r\n {\r\n history.push({\r\n pathname: \"/ReservationListPage\",\r\n state: {\r\n filterObj: {\r\n FromDate: moment(propertyBusinessDate).format(\"DD-MMM-YY\"),\r\n ToDate: moment(propertyBusinessDate).format(\"DD-MMM-YY\"),\r\n DtType: \"STAY\",\r\n BookingNo: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n //ReservationStatus: [\"ARD\",\"INH\",'DOT', 'DIN', 'COT'],\r\n ReservationStatus: \"INH\",\r\n IsEarlyDeparture: null,\r\n Adult: 0,\r\n Child: 0,\r\n RoomTypeSerNo: 0,\r\n RateSerNo: 0,\r\n ReservationTypeSerNo: 0,\r\n CompanyProfileSerNo: 0,\r\n AgentProfileSerNo: 0,\r\n BookingReferenceNo: \"\",\r\n MembershipNo: \"\",\r\n VIPLevelSerNo: 0,\r\n IsIncognitoName: null,\r\n NightsFrom: 0,\r\n NightsTo: 0,\r\n strMemberShipLevel: \"\",\r\n BlockSerNo: \"\",\r\n PartyNo: \"\",\r\n RoomSerNo: 0,\r\n IsShowBlockRoomsOnly: null,\r\n Mainmenu: \"Manage In-House List\"\r\n }\r\n }\r\n });\r\n }}>\r\n Manage Reservation\r\n
    \r\n \r\n
  • \r\n \r\n {\r\n // console.log(\"Arrival click\");\r\n history.push({\r\n pathname: \"/ReservationArrivalList\",\r\n state: {\r\n filterObj: {\r\n ArrivalDate: moment(new Date(propertyBusinessDate)).format(\"DD-MMM-YYYY\"),\r\n CompanyProfileSerNo: 0,\r\n AgentProfileSerNo: 0,\r\n IsIncognito: null,\r\n strVIPStatus: \"\",\r\n strMemberShipLevel: \"\",\r\n strRoomType: \"\",\r\n SameDayReservationNArrival: null,\r\n BookingNo: \"\",\r\n BookingReferenceNo: \"\",\r\n IsArrivalOnSameDay: null,\r\n ETAFrom: \"\",\r\n ETATo: \"\",\r\n NightsFrom: 0,\r\n NightsTo: 0,\r\n strHkStatusSerNo: \"\",\r\n strFloorSerNo: \"\",\r\n IsNoInfo: null,\r\n IsEarlyArrival: null,\r\n IsLateArrival: null,\r\n RateSerNo: 0,\r\n IsUnassignRoom: null,\r\n IsWalkIn: null,\r\n SelectReservation: \"\",\r\n strReservationStatus: \"\",\r\n RoomFeatureSerNo: \"\",\r\n BlockSerNo: null,\r\n RoomFeatureValueSerNo: \"\",\r\n IsAdvanceCheckin: null,\r\n IsCancelCheckIn: null,\r\n AdvanceCheckInClean: null,\r\n AdvanceCheckInInspected: null,\r\n AdvanceCheckInUnassign: null,\r\n AdvanceCheckInDirty: null,\r\n AdvanceCheckInDueOut: null,\r\n AdvanceCheckInOutofService: null,\r\n IsPreReg: null,\r\n IsVipStatus: null,\r\n },\r\n },\r\n });\r\n }}>\r\n Arrival List\r\n
  • \r\n \r\n
  • \r\n \r\n {\r\n history.push({\r\n pathname: \"/ReservationDepartureList\",\r\n state: {\r\n filterObj: defaultDepartureFilterObj,\r\n userId: \"1201\",\r\n password: \"123\",\r\n },\r\n });\r\n //dispatch(toggleMenu(false));\r\n }}>\r\n Departure List\r\n \r\n
  • \r\n
  • \r\n \r\n
    New Reservations confirm today (19)
    \r\n
  • \r\n
  • \r\n \r\n
    Reservation on Hold (2)
    \r\n
  • \r\n \r\n\r\n
    \r\n custom Views\r\n {/* console.log(item, name)}> */}\r\n
    \r\n\r\n
      \r\n
    • \r\n \r\n
      Dynamic List
      \r\n
    • \r\n
    • \r\n \r\n
      Dynamic List
      \r\n
    • \r\n
    • \r\n \r\n
      Dynamic List two line text show
      \r\n
    • \r\n
    • \r\n \r\n
      Dynamic List
      \r\n
    • \r\n
    • \r\n \r\n
      Dynamic List
      \r\n
    • \r\n
    • \r\n \r\n
      Dynamic List
      \r\n
    • \r\n
    • \r\n \r\n
      Dynamic List
      \r\n
    • \r\n
    • \r\n \r\n
      Dynamic List
      \r\n
    • \r\n
    • \r\n \r\n
      Dynamic List
      \r\n
    • \r\n
    • \r\n \r\n
      Dynamic List
      \r\n
    • \r\n
    \r\n \r\n \r\n \r\n )}\r\n {/* blue bg inside menu End*/}\r\n {showCheckoutPopup ?\r\n {\r\n setShowCheckoutPopup(false);\r\n setTimeout(() => {\r\n fillFilteredData(selectedGuestTile);\r\n fillWindowTransactionData(selectedGuestTile.ReservationSerNo);\r\n }, 100);\r\n }}\r\n />\r\n :\r\n null}\r\n \r\n );\r\n}\r\n\r\nexport default ReservationDepartureList;\r\n\r\n","import React, { useState, } from 'react';\r\nimport { InnCheckbox, InnPlainButton } from '../../../../component';\r\nimport settingicon from \"../../../../assets/images/settings-icon.svg\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport ReservationSubMenu from '../reservation-sub-menu';\r\nimport { ReservationDashboardHouseuseTile,ReservationDashboardArrivalTile,ReservationDashboardDepartureTile,ReservationDashboard60minTile,\r\n ReservationDashboardArrivedInhouseTile,ReservationDashboardAdvanceCheckinTile,ReservationDashboardBlockOverviewTile,\r\n ReservationDashboardComplimentaryTile,ReservationDashboardQueueTile,ReservationDashboardDailyProjectionTile,ReservationDashboardActivityTile,\r\n ReservationDashboardRevenueTile,ReservationDashboardCancellationTile,ReservationDashboardRoomMaintenanceTile,\r\n ReservationDashboardRoomSummaryTile,ReservationDashboardRoomAvailabilityTile,ReservationDashboardTodayTile,ReservationDashboardRoomStatusTile} from './';\r\n\r\n{/*const ReservationStatistics =
    \r\n
    \r\n

    Reservation Statistics (Current day)

    \r\n console.log(item, name)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n Pre-Registered10\r\n
    \r\n
    \r\n Turndowns14\r\n
    \r\n
    \r\n Open Folios6\r\n
    \r\n
    \r\n Departures6\r\n
    \r\n
    \r\n
    */}\r\n\r\n\r\nfunction Widget({ content, onDragStart }) {\r\n return (\r\n
    \r\n {content}\r\n
    \r\n );\r\n}\r\n\r\nfunction WidgetContainer({\r\n onDrop,\r\n children,\r\n onDragEnter,\r\n onDragLeave,\r\n isDraggedOver,\r\n size,\r\n}) {\r\n return (\r\n e.preventDefault()}\r\n >\r\n {!isDraggedOver && children}\r\n \r\n );\r\n}\r\n\r\nexport function ReservationDashboard() {\r\n\r\n\r\n const RoomStatus = \r\n const RoomSummary = \r\n const RoomMaintenance = \r\n const ReservationCancellation = \r\n const HouseUse = \r\n const Departures = \r\n const Complimentary = \r\n const InHouse = \r\n const Arrivals = \r\n const QueueReservation = \r\n const AdvanceCheckedIn = \r\n const BlockOverview = \r\n const SixtyMinutesActivities = \r\n const ReservationActivity = \r\n const ReservationRevenue = \r\n const DailyProjection = \r\n const RoomAvailibility = \r\n const ReservationsToday = \r\n\r\n let WIDGET_LIST = [\r\n { id: \"b\", content: Arrivals, size: \"col-12\", isShowTile: true, displayName: \"Arrivals\" },\r\n { id: \"h\", content: Departures, size: \"col-8\", isShowTile: true, displayName: \"Departures\" },\r\n { id: \"a\", content: SixtyMinutesActivities, size: \"col-4\", isShowTile: true, displayName: \"60 Minutes Activities\" },\r\n { id: \"e\", content: InHouse, size: \"col-4\", isShowTile: true, displayName: \"Arrived + In House\" },\r\n { id: \"j\", content: AdvanceCheckedIn, size: \"col-4\", isShowTile: true, displayName: \"Advance Checked-In (Block & Individual)\" },\r\n { id: \"c\", content: BlockOverview, size: \"col-4\", isShowTile: true, displayName: \"Block Overview\" },\r\n { id: \"d\", content: Complimentary, size: \"col-4\", isShowTile: true, displayName: \"Complimentary\" },\r\n { id: \"s\", content: HouseUse, size: \"col-4\", isShowTile: true, displayName: \"House Use\" },\r\n { id: \"f\", content: QueueReservation, size: \"col-12\", isShowTile: true, displayName: \"Queue Reservation\" },\r\n { id: \"g\", content: DailyProjection, size: \"col-12\", isShowTile: true, displayName: \"Daily Projection for day\" },\r\n { id: \"q\", content: ReservationActivity, size: \"col-12\", isShowTile: true, displayName: \"Reservation Activity\" },\r\n { id: \"r\", content: ReservationRevenue, size: \"col-12\", isShowTile: true, displayName: \"Reservation revenue Summary\" },\r\n { id: \"k\", content: ReservationCancellation, size: \"col-4\", isShowTile: true, displayName: \"Reservation & Cancellation\" },\r\n { id: \"l\", content: RoomMaintenance, size: \"col-4\", isShowTile: true, displayName: \"Room Maintenance\" },\r\n { id: \"o\", content: RoomSummary, size: \"col-4\", isShowTile: true, displayName: \"Room Summary\" },\r\n { id: \"n\", content: RoomAvailibility, size: \"col-8\", isShowTile: true, displayName: \"Room Availibility Summary\" },\r\n { id: \"p\", content: RoomStatus, size: \"col-8\", isShowTile: true, displayName: \"Room Status\" },\r\n { id: \"t\", content: ReservationsToday, size: \"col-8\", isShowTile: true, displayName: \"Reservations Today\" }\r\n ];\r\n \r\n /* Draggable Widget Start */\r\n const [widgets, setWidgets] = useState(WIDGET_LIST);\r\n const [isShowWidget, setIsShowWidget] = useState([\r\n { id: \"b\", name: \"Arrivals\", isShowTile: true, displayName: \"Arrivals\", description:\"Some text will be show here respect of below graph component and widget.\" },\r\n { id: \"h\", name: \"Departures\", isShowTile: true, displayName: \"Departures\", description:\"Some text will be show here respect of below graph component and widget.\" },\r\n { id: \"a\", name: \"SixtyMinutesActivities\", isShowTile: true, displayName: \"60 Minutes Activities\", description:\"Some text will be show here respect of below graph component and widget.\" },\r\n { id: \"e\", name: \"InHouse\", isShowTile: true, displayName: \"Arrived + In House\", description:\"Some text will be show here respect of below graph component and widget.\" },\r\n { id: \"j\", name: \"AdvanceCheckedIn\", isShowTile: true, displayName: \"Advance Checked-In (Block & Individual)\", description:\"Some text will be show here respect of below graph component and widget.\" },\r\n { id: \"c\", name: \"BlockOverview\", isShowTile: true, displayName: \"Block Overview\", description:\"Some text will be show here respect of below graph component and widget.\" },\r\n { id: \"d\", name: \"Complimentary\", isShowTile: true, displayName: \"Complimentary\", description:\"Some text will be show here respect of below graph component and widget.\" },\r\n { id: \"s\", name: \"HouseUse\", isShowTile: true, displayName: \"House Use\", description:\"Some text will be show here respect of below graph component and widget.\" },\r\n { id: \"f\", name: \"QueueReservation\", isShowTile: true, displayName: \"Queue Reservation\", description:\"Some text will be show here respect of below graph component and widget.\" },\r\n { id: \"g\", name: \"DailyProjection\", isShowTile: true, displayName: \"Daily Projection for day\", description:\"Some text will be show here respect of below graph component and widget.\" },\r\n { id: \"q\", name: \"ReservationActivity\", isShowTile: true, displayName: \"Reservation Activity\", description:\"Some text will be show here respect of below graph component and widget.\" },\r\n { id: \"r\", name: \"ReservationRevenue\", isShowTile: true, displayName: \"Reservation revenue Summary\", description:\"Some text will be show here respect of below graph component and widget.\" },\r\n { id: \"k\", name: \"ReservationCancellation\", isShowTile: true, displayName: \"Reservation & Cancellation\", description:\"Some text will be show here respect of below graph component and widget.\" },\r\n { id: \"l\", name: \"RoomMaintenance\", isShowTile: true, displayName: \"Room Maintenance\", description:\"Some text will be show here respect of below graph component and widget.\" },\r\n { id: \"o\", name: \"RoomSummary\", isShowTile: true, displayName: \"Room Summary\", description:\"Some text will be show here respect of below graph component and widget.\" },\r\n { id: \"n\", name: \"RoomAvailibility\", isShowTile: true, displayName: \"Room Availibility Summary\", description:\"Some text will be show here respect of below graph component and widget.\" },\r\n { id: \"p\", name: \"RoomStatus\", isShowTile: true, displayName: \"Room Status\", description:\"Some text will be show here respect of below graph component and widget.\" },\r\n { id: \"t\", name: \"ReservationsToday\", isShowTile: true, displayName: \"Reservations Today\", description:\"Some text will be show here respect of below graph component and widget.\" }\r\n ]);\r\n const [draggedItemId, setDraggedItemId] = useState(null);\r\n const [draggedOverContainerId, setDraggedOverContainerId] = useState(null);\r\n\r\n const handleDragStart = (id) => setDraggedItemId(id);\r\n const handleDragEntered = (id) => setDraggedOverContainerId(id);\r\n const handleDragLeave = () => setDraggedOverContainerId(null);\r\n\r\n\r\n const handleDrop = () => {\r\n if (!draggedOverContainerId) {\r\n clearState();\r\n return;\r\n }\r\n\r\n const fromIndex = widgets.findIndex((w) => w.id === draggedItemId);\r\n const toIndex = widgets.findIndex((w) => w.id === draggedOverContainerId);\r\n setWidgets((w) => moveItem(w, fromIndex, toIndex));\r\n\r\n clearState();\r\n };\r\n\r\n const clearState = () => {\r\n setDraggedItemId(null);\r\n setDraggedOverContainerId(null);\r\n };\r\n /* Draggable Widget End */\r\n\r\n const [showLeftBlueBar, setshowLeftBlueBar] = useState(false);\r\n const history = useHistory();\r\n const [showRightWhiteBar, setshowRightWhiteBar] = useState(false);\r\n // const setSelectedItem = (items) => {\r\n // // SetgridSelectedItem(items);\r\n // // settemp(!temp);\r\n // };\r\n // useEffect(() => {\r\n\r\n // }, [widgets]);\r\n\r\n const onSettingMenuCheckboxChecked = (v, w) => {\r\n let tmpWidgets = widgets;\r\n tmpWidgets.forEach(ele => {\r\n if (ele.id == w.id) {\r\n ele.isShowTile = v;\r\n }\r\n });\r\n setWidgets(tmpWidgets);\r\n let tmpShowHideWidgets = JSON.parse(JSON.stringify(isShowWidget));\r\n tmpShowHideWidgets.forEach(ele => {\r\n if (ele.id == w.id) {\r\n ele.isShowTile = v;\r\n }\r\n });\r\n setIsShowWidget(tmpShowHideWidgets);\r\n };\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n {showLeftBlueBar ? (\r\n {\r\n setshowLeftBlueBar(false);\r\n }}\r\n >\r\n ) : (\r\n {\r\n setshowLeftBlueBar(true);\r\n }}\r\n >\r\n )}\r\n\r\n

    Dashboard / Reservation

    \r\n
    \r\n
    \r\n Default Dashboard\r\n \r\n {\r\n setshowRightWhiteBar(!showRightWhiteBar);\r\n }}\r\n >\r\n {/* {showRightWhiteBar ? (\r\n {\r\n setshowRightWhiteBar(false);\r\n }}\r\n >\r\n ) : (\r\n {\r\n setshowRightWhiteBar(true);\r\n }}\r\n >\r\n )} */}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {widgets.map((w, i) => (\r\n (w.isShowTile == true ?\r\n handleDragEntered(w.id)}\r\n onDragLeave={handleDragLeave}\r\n isDraggedOver={w.id === draggedOverContainerId}\r\n size={w.size}\r\n >\r\n handleDragStart(w.id)}\r\n />\r\n \r\n : null)\r\n ))}\r\n
    \r\n
    \r\n\r\n {/* blue bg inside menu Start */}\r\n {showLeftBlueBar == true && (\r\n \r\n\r\n )}\r\n {/* blue bg inside menu End */}\r\n {/*
    \r\n
    \r\n
    \r\n

    Dashboard Menu

    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
      \r\n
    • \r\n \r\n
      Dashboard Reservation
      \r\n
    • \r\n
    • \r\n \r\n
      { console.log(\"click\"); }}>Central Reservation
      \r\n
    • \r\n
    • \r\n \r\n
      { console.log(\"click\"); }}>Front Desk Management
      \r\n
    • \r\n
    • \r\n \r\n
      { console.log(\"click\"); }}>Point Of Sale
      \r\n
    • \r\n
    • \r\n \r\n
      { console.log(\"click\"); }}>Banquet Management
      \r\n
    • \r\n
    • \r\n \r\n
      { console.log(\"click\"); }}>Material Management
      \r\n
    • \r\n
    • \r\n \r\n
      { console.log(\"click\"); }}>Housekeeping
      \r\n
    • \r\n
    • \r\n \r\n
      { console.log(\"click\"); }}>Loundry & Minibar
      \r\n
    • \r\n
    • \r\n \r\n
      { console.log(\"click\"); }}>Maintenance
      \r\n
    • \r\n
    • \r\n \r\n
      { console.log(\"click\"); }}>Budget & Actuals
      \r\n
    • \r\n
    • \r\n \r\n
      { console.log(\"click\"); }}>Account Receivable
      \r\n
    • \r\n
    • \r\n \r\n
      { console.log(\"click\"); }}>Financial Accounting
      \r\n
    • \r\n
    • \r\n \r\n
      { console.log(\"click\"); }}>Account Payable
      \r\n
    • \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    */}\r\n\r\n {showRightWhiteBar == true && (\r\n
    \r\n
    \r\n
    \r\n {/* */}\r\n {isShowWidget.map((w) => (\r\n
    \r\n {\r\n console.log(\"checked with \", v, w);\r\n onSettingMenuCheckboxChecked(v, w);\r\n }}\r\n >{w.displayName}\r\n
    {w.description}\r\n
    \r\n
    \r\n ))}\r\n {/*
    \r\n Arrivals\r\n
    Some text will be show here respect of below\r\n graph component and widget.\r\n
    \r\n
    \r\n
    \r\n Departures\r\n
    Some text will be show here respect of below\r\n graph component and widget.\r\n
    \r\n
    \r\n
    \r\n 60 Minutes Activities\r\n
    Some text will be show here respect of below\r\n graph component and widget.\r\n
    \r\n
    \r\n
    \r\n Arrived + In House\r\n
    Some text will be show here respect of below\r\n graph component and widget.\r\n
    \r\n
    \r\n
    \r\n Advance Checked-In (Block & Individual)\r\n
    Some text will be show here respect of below\r\n graph component and widget.\r\n
    \r\n
    \r\n
    \r\n Block Overview\r\n
    Some text will be show here respect of below\r\n graph component and widget.\r\n
    \r\n
    \r\n
    \r\n Complimentary\r\n
    Some text will be show here respect of below\r\n graph component and widget.\r\n
    \r\n
    \r\n
    \r\n House Use\r\n
    Some text will be show here respect of below\r\n graph component and widget.\r\n
    \r\n
    \r\n
    \r\n Queue Reservation\r\n
    Some text will be show here respect of below\r\n graph component and widget.\r\n
    \r\n
    \r\n
    \r\n Daily Projection for day\r\n
    Some text will be show here respect of below\r\n graph component and widget.\r\n
    \r\n
    \r\n
    \r\n Reservation Activity\r\n
    Some text will be show here respect of below\r\n graph component and widget.\r\n
    \r\n
    \r\n
    \r\n Reservation revenue Summary\r\n
    Some text will be show here respect of below\r\n graph component and widget.\r\n
    \r\n
    \r\n
    \r\n Reservation & Cancellation\r\n
    Some text will be show here respect of below\r\n graph component and widget.\r\n
    \r\n
    \r\n
    \r\n Room Maintenance\r\n
    Some text will be show here respect of below\r\n graph component and widget.\r\n
    \r\n
    \r\n
    \r\n Room Summary\r\n
    Some text will be show here respect of below\r\n graph component and widget.\r\n
    \r\n
    \r\n
    \r\n Room Availibility Summary\r\n
    Some text will be show here respect of below\r\n graph component and widget.\r\n
    \r\n
    \r\n
    \r\n Room Status\r\n
    Some text will be show here respect of below\r\n graph component and widget.\r\n
    \r\n
    \r\n
    \r\n Reservations Today \r\n
    Some text will be show here respect of below\r\n graph component and widget.\r\n
    \r\n
    */}\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n )}\r\n\r\n
    \r\n )\r\n}\r\n\r\n\r\nexport function moveItem(list, from, to) {\r\n const listClone = [...list];\r\n if (from < to) {\r\n listClone.splice(to + 1, 0, listClone[from]);\r\n listClone.splice(from, 1);\r\n } else if (to < from) {\r\n listClone.splice(to, 0, listClone[from]);\r\n listClone.splice(from + 1, 1);\r\n }\r\n return listClone;\r\n}\r\n","import React, { useEffect, useState, } from 'react';\r\nimport { InnContextMenu, } from '../../../../component';\r\nimport { useHistory,useLocation } from \"react-router-dom\";\r\nimport InnLineBar from '../../../../component/innLineBar';\r\nimport { GetReservationDashboardInHouseUseData } from '../../../../services/reservationDashboardService';\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from '../../../../reducer/authSlice';\r\nimport { GetPropertyParameterByKeys } from '../../../../services/reservationService';\r\nimport { ReservationListFilterModel } from '../../../../utils/Model/ReservationListFilterModel';\r\n\r\nexport function ReservationDashboardHouseuseTile(props) {\r\n\r\n const history = useHistory();\r\n const location = useLocation();\r\n const actionData = [\r\n { key: 1, value: \"Option 1\" },\r\n { key: 2, value: \"Option 2\" }\r\n ]\r\n\r\n const currUser = useSelector(currentUser);\r\n const propertyParameters = [\"BusinessDate\"];\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n const [reservationArriving, setReservationArriving] = useState(0);\r\n const [reservationTotalArriving, setReservationTotalArriving] = useState(0);\r\n const [reservationDeparture, setReservationDeparture] = useState(0);\r\n const [reservationTotalDeparture, setReservationTotalDeparture] = useState(0);\r\n const [reservationStayOver, setReservationStayOver] = useState(0);\r\n\r\n const loadReservationHouseuseTile = () => {\r\n GetReservationDashboardInHouseUseData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n // setReservationHouseuseTile(d.data);\r\n setReservationArriving(d.data.find(e => e.Description == \"Arriving\"));\r\n setReservationTotalArriving(d.data.find(e => e.Description == \"TotalArriving\"));\r\n setReservationDeparture(d.data.find(e => e.Description == \"Departure\"));\r\n setReservationTotalDeparture(d.data.find(e => e.Description == \"TotalDeparture\"));\r\n setReservationStayOver(d.data.find(d => d.Description == \"StayOver\"));\r\n })\r\n }\r\n\r\n const HouseUseTile = () => {\r\n history.push({\r\n pathname: \"/ReservationListPage\",\r\n state: {\r\n filterObj: ReservationListFilterModel.Data,\r\n }\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n loadReservationHouseuseTile();\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), propertyParameters).then((d) => {\r\n console.log(\"Key >>\", d.data);\r\n let obj = d.data.find(x => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(d.data[0].value);\r\n }\r\n })\r\n }, [])\r\n\r\n return (\r\n
    \r\n
    \r\n

    House Use

    \r\n console.log(item, name)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    {\r\n if (reservationArriving.Value != 0) {\r\n ReservationListFilterModel.Data.ToDate = businessDate;\r\n ReservationListFilterModel.Data.FromDate = businessDate;\r\n ReservationListFilterModel.Data.RateSerNo = 0;\r\n ReservationListFilterModel.Data.ReservationStatus = \"DIN\";\r\n ReservationListFilterModel.Data.Mainmenu = location.state.filterObj?.Mainmenu;\r\n HouseUseTile();\r\n } else {\r\n alert(\"You can not navigate due to no reservation.\");\r\n }\r\n }}>\r\n
    \r\n

    Rooms Arriving

    \r\n {reservationArriving.Value}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n Person Arriving:\r\n {reservationArriving.Adult}\r\n \r\n
    \r\n
    \r\n
    {\r\n if (reservationDeparture.Value != 0) {\r\n ReservationListFilterModel.Data.ToDate = businessDate;\r\n ReservationListFilterModel.Data.FromDate = businessDate;\r\n ReservationListFilterModel.Data.RateSerNo = 0;\r\n ReservationListFilterModel.Data.ReservationStatus = \"DOT\";\r\n ReservationListFilterModel.Data.Mainmenu = location.state.filterObj?.Mainmenu;\r\n HouseUseTile();\r\n } else {\r\n alert(\"You can not navigate due to no reservation.\");\r\n }\r\n }}>\r\n
    \r\n

    Rooms Departures

    \r\n {reservationDeparture.Value}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n Person Departures:\r\n {reservationDeparture.Adult}\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n if (reservationStayOver.Value != 0) {\r\n ReservationListFilterModel.Data.ToDate = businessDate;\r\n ReservationListFilterModel.Data.FromDate = businessDate;\r\n ReservationListFilterModel.Data.ReservationStatus = \"ARD,INH\";\r\n ReservationListFilterModel.Data.RateSerNo = 0;\r\n ReservationListFilterModel.Data.Mainmenu = location.state.filterObj?.Mainmenu;\r\n HouseUseTile();\r\n } else {\r\n alert(\"You can not navigate due to no reservation.\");\r\n }\r\n }}>\r\n Stay Over\r\n {reservationStayOver.Value}\r\n \r\n
    \r\n
    \r\n )\r\n\r\n}","import axios from \"axios\";\r\n\r\nexport const GetReservationDashboardArrivalData = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/ReservationDashboard/manage-dashboard-Arrival/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetReservationDashboard60MinActivityData = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/ReservationDashboard/manage-dashboard-60MinActivity/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetReservationDashboardArrivedAndInhouseData = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/ReservationDashboard/manage-dashboard-ArrivedAndInhouse/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\n//#region Departure\r\nexport const GetReservationDashboardDepartureData = (clientSerNo, propertySerNo) => {\r\n const apiUrl = \"/ReservationDashboard/manage-dashboard-Departure/\" + clientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion Departure\r\n\r\n//#region Block Overview\r\nexport const GetReservationDashboardBlockOverViewData = (clientSerNo, propertySerNo) => {\r\n const apiUrl = \"/ReservationDashboard/manage-dashboard-BlockOverview/\" + clientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion Block Overview\r\n\r\n//#region Advance CheckIn\r\nexport const GetReservationDashboardAdvanceCheckinData = (clientSerNo, propertySerNo) => {\r\n const apiUrl = \"/ReservationDashboard/manage-dashboard-AdvanceCheckin/\" + clientSerNo + \"/\" + propertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion Advance CheckIn\r\n\r\nexport const GetReservationDashboardComplimentaryData = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/ReservationDashboard/manage-dashboard-Complimentary/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetReservationDashboardInHouseUseData = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/ReservationDashboard/manage-dashboard-Inhouseuse/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\n//#region Reservation & Cancellation\r\nexport const GetReservationDashboardResAndCancelData = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/ReservationDashboard/manage-dashboard-ReservationAndCancel/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion\r\n\r\n//#region Room Availibility Summary\r\nexport const GetReservationDashboardRoomAvailability = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/ReservationDashboard/manage-dashboard-RoomAvailability/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n//#endregion\r\n\r\nexport const GetReservationDashboardQueueReservationData = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/ReservationDashboard/manage-dashboard-QueueReservation/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetReservationDashboardRoomSummaryData = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/ReservationDashboard/manage-dashboard-RoomSummary/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetReservationDashboardRevenueSummaryData = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/ReservationDashboard/manage-dashboard-RevenueSummaryData/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetReservationDashboardRoomStatusData = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/ReservationDashboard/manage-dashboard-RoomStatus/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\n\r\nexport const GetReservationActivityData = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/ReservationDashboard/manage-dashboard-ReservationActivity/\" + ClientSerNo + \"/\" + PropertySerNo;\r\n return axios.get(apiUrl);\r\n};\r\nexport const GetReservationDashboardReservationTodayData = (ClientSerNo, PropertySerNo) => {\r\n const apiUrl = \"/ReservationDashboard/manage-dashboard-ReservationToday/\" + ClientSerNo + \"/\" + \r\n PropertySerNo;\r\n return axios.get(apiUrl);\r\n}\r\nexport const GetReservationDashboardDailyprojectionData = (ClientSerNo, PropertySerNo ,SeletedDate) => {\r\n const apiUrl = \"/ReservationDashboard/manage-dashboard-DailyProjection/\" + ClientSerNo + \"/\" + PropertySerNo + \"/\" + SeletedDate;\r\n return axios.get(apiUrl);\r\n};","import React, { useEffect, useState } from 'react';\r\nimport { InnContextMenu } from '../../../../component';\r\nimport InnLineBar from '../../../../component/innLineBar';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from '../../../../reducer/authSlice';\r\nimport { GetReservationDashboard60MinActivityData } from '../../../../services/reservationDashboardService';\r\n\r\nexport function ReservationDashboard60minTile(props) {\r\n\r\n const history = useHistory();\r\n const actionData = [\r\n { key: 1, value: \"Option 1\" },\r\n { key: 2, value: \"Option 2\" }\r\n ]\r\n\r\n const currUser = useSelector(currentUser);\r\n\r\n const [reservation60minTile, setReservation60minTile] = useState([]);\r\n const [isActive, setIsActive] = useState(false);\r\n\r\n const loadReservationData = () => {\r\n setIsActive(true);//true\r\n GetReservationDashboard60MinActivityData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n // console.log(\"d.data here >>\", d.data);\r\n setReservation60minTile(d.data);\r\n })\r\n setIsActive(false);//false\r\n }\r\n\r\n useEffect(() => {\r\n loadReservationData();\r\n }, [])\r\n\r\n return (\r\n
    \r\n
    \r\n

    60 Minutes Activities

    \r\n console.log(item, name)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    Rooms Checked In

    \r\n {reservation60minTile.find(d => d.Description == \"RoomCheckin\")?.Value}\r\n
    \r\n d.Description == \"RoomCheckin\")?.Value}\r\n total={reservation60minTile.find(d => d.Description == \"TotalRoomCheckin\")?.Value}\r\n currentColor={\"#35C5FB\"}\r\n totalColor={\"#25315633\"}\r\n />\r\n
    \r\n
    \r\n
    \r\n

    Rooms Checked Out

    \r\n {reservation60minTile.find(d => d.Description == \"RoomCheckout\")?.Value}\r\n
    \r\n d.Description == \"RoomCheckout\")?.Value}\r\n total={reservation60minTile.find(d => d.Description == \"TotalRoomCheckout\")?.Value}\r\n currentColor={\"#00D590\"}\r\n totalColor={\"#25315633\"}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {reservation60minTile.filter(resMinTile => resMinTile.Description == \"RoomInspected\").map(resMinTileValue => (\r\n Inspected: {resMinTileValue.Value}\r\n ))}\r\n\r\n {reservation60minTile.filter(resMinTile => resMinTile.Description == \"RoomClean\").map(resMinTileValue => (\r\n Clean: {resMinTileValue.Value}\r\n ))}\r\n
    \r\n
    \r\n
    \r\n )\r\n\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { InnContextMenu, InnSingleDateSelection } from \"../../../../component\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport InnThreeBarChart from \"../../../../component/innThreeBarChart\";\r\nimport { GetReservationActivityData } from \"../../../../services/reservationDashboardService\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nexport function ReservationDashboardActivityTile(props) {\r\n const history = useHistory();\r\n const currUser = useSelector(currentUser);\r\n const actionData = [\r\n { key: 1, value: \"Option 1\" },\r\n { key: 2, value: \"Option 2\" },\r\n ];\r\n const yData = [100, 200, 300, 400];\r\n const y1Data = [20, 40, 60, 80];\r\n const y2Data = [2, 4, 6, 8];\r\n const [reservationActivityData, setReservationActivityData] = useState([]);\r\n const [avgCheckInTime, setAvgCheckInTime] = useState({});\r\n const fillReservationActivityData = () => {\r\n GetReservationActivityData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n console.log(\"ReservationActivityData>>>>>>\", d.data);\r\n let temp = [];\r\n if (d.data.length > 0) {\r\n d.data.forEach((x) => {\r\n temp.push({ name: x.Description, data1: x.Room, data2: x.Adult, data3: x.Vip });\r\n if (x.Description == \"AverageCheckinTime\") {\r\n setAvgCheckInTime(x);\r\n }\r\n });\r\n }\r\n setReservationActivityData(temp);\r\n });\r\n };\r\n useEffect(() => {\r\n fillReservationActivityData();\r\n }, []);\r\n\r\n return (\r\n
    \r\n
    \r\n

    Reservation Activity

    \r\n console.log(item, name)}>\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Arrivals

    \r\n
    \r\n
    \r\n x.name == \"Arrivals\" || x.name == \"Cancelled\" || x.name == \"NoShow\"\r\n )}\r\n yData={yData}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n Avg. Check-In
    Time\r\n

    \r\n
    \r\n
    \r\n {avgCheckInTime.Time}\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Departures

    \r\n
    \r\n
    \r\n x.name == \"Departures\" || x.name == \"Early\" || x.name == \"OpenFolio\"\r\n )}\r\n yData={y1Data}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Stay Over

    \r\n
    \r\n
    \r\n x.name == \"StayOver\")}\r\n yData={y2Data}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Extended Stay

    \r\n
    \r\n
    \r\n x.name == \"Extended\")}\r\n yData={y2Data}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Day Use

    \r\n
    \r\n
    \r\n x.name == \"DayUse\")}\r\n yData={y2Data}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Walk-Ins

    \r\n
    \r\n
    \r\n x.name == \"WalkIn\")}\r\n yData={y2Data}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    House Use

    \r\n
    \r\n
    \r\n x.name == \"HouseUse\")}\r\n yData={y2Data}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Complementary

    \r\n
    \r\n
    \r\n x.name == \"Complimentary\")}\r\n yData={y2Data}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n No of rooms\r\n
    \r\n
    \r\n
    \r\n No of Persons\r\n
    \r\n
    \r\n
    \r\n VIPs\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","import React, { useEffect, useState, } from 'react';\r\nimport { InnContextMenu, useConfirm } from '../../../../component';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { GetReservationDashboardAdvanceCheckinData } from '../../../../services/reservationDashboardService';\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from '../../../../reducer/authSlice';\r\nimport { GetPropertyParameterByKeys } from '../../../../services/reservationService';\r\n\r\nexport function ReservationDashboardAdvanceCheckinTile(props) {\r\n const history = useHistory();\r\n const actionData = [\r\n { key: 1, value: \"Option 1\" },\r\n { key: 2, value: \"Option 2\" }\r\n ]\r\n const curr = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const propertyParameters = [\"BusinessDate\"];\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n // const [dashboardAdvanceCheckInList, setDashboardAdvanceCheckInList] = useState([]);\r\n const [currentIndividual, setCurrentIndividual] = useState(0);\r\n const [currentBlock, setCurrentBlock] = useState(0);\r\n const [checkinIndividual, setCheckInIndividual] = useState(0);\r\n const [checkinBlock, setCheckInBlock] = useState(0);\r\n const [totalIndividual, setTotalIndividual] = useState(0);\r\n const [totalBlock, setTotalBlock] = useState(0);\r\n\r\n const filterObj = {\r\n ArrivalDate: \"\",//\"01-Apr-2022\",\r\n CompanyProfileSerNo: 0,\r\n AgentProfileSerNo: 0,\r\n IsIncognito: null,\r\n strVIPStatus: \"\",\r\n strMemberShipLevel: \"\",\r\n strRoomType: \"\",\r\n SameDayReservationNArrival: null,\r\n BookingNo: \"\",\r\n BookingReferenceNo: \"\",\r\n IsArrivalOnSameDay: null,\r\n ETAFrom: \"\",\r\n ETATo: \"\",\r\n NightsFrom: 0,\r\n NightsTo: 0,\r\n strHkStatusSerNo: \"\",\r\n strFloorSerNo: \"\",\r\n IsNoInfo: null,\r\n IsEarlyArrival: null,\r\n IsLateArrival: null,\r\n RateSerNo: 0,\r\n IsUnassignRoom: null,\r\n IsWalkIn: null,\r\n SelectReservation: \"\",\r\n strReservationStatus: \"\",\r\n RoomFeatureSerNo: \"\",\r\n BlockSerNo: null,\r\n RoomFeatureValueSerNo: \"\",\r\n IsAdvanceCheckin: null,\r\n IsCancelCheckIn: null,\r\n AdvanceCheckInClean: null,\r\n AdvanceCheckInInspected: null,\r\n AdvanceCheckInUnassign: null,\r\n AdvanceCheckInDirty: null,\r\n AdvanceCheckInDueOut: null,\r\n AdvanceCheckInOutofService: null,\r\n }\r\n\r\n useEffect(() => {\r\n GetReservationDashboardAdvanceCheckinData(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo)).then(d => {\r\n // setDashboardAdvanceCheckInList(d.data);\r\n console.log(\"Result :\", d.data);\r\n\r\n let currentIndi = d.data.find(x => x.Description == \"CurrentIndividual\")?.Value;\r\n setCurrentIndividual(currentIndi);\r\n let currentBlk = d.data.find(x => x.Description == \"CurrentBlock\")?.Value;\r\n setCurrentBlock(currentBlk);\r\n let checkinIndi = d.data.find(x => x.Description == \"CheckinIndividual\")?.Value;\r\n setCheckInIndividual(checkinIndi);\r\n let checkinBlk = d.data.find(x => x.Description == \"CheckinBlock\")?.Value;\r\n setCheckInBlock(checkinBlk);\r\n\r\n let totalIndi = currentIndi + checkinIndi;\r\n setTotalIndividual(totalIndi);\r\n let totalBlk = currentBlk + checkinBlk;\r\n setTotalBlock(totalBlk);\r\n\r\n });\r\n\r\n GetPropertyParameterByKeys(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo), propertyParameters).then((d) => {\r\n console.log(\"key >>\", d.data);\r\n let obj = d.data.find(x => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(d.data[0].value);\r\n }\r\n });\r\n }, []);\r\n\r\n const reservationArrivalList = () => {\r\n history.push({\r\n pathname: \"/ReservationArrivalList\",\r\n state: {\r\n filterObj: filterObj,\r\n },\r\n });\r\n }\r\n\r\n const handleCurrentIndividualAndBlockClick = async (e) => {\r\n if ((e.target.id == \"CurrentIndividual\" && currentIndividual == 0) ||\r\n (e.target.id == \"CurrentBlock\" && currentBlock == 0)) {\r\n await confirm({\r\n Message: \"You can not navigate due to no reservation.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n //alert(\"You can not navigate due to more reservation.\");\r\n }\r\n else {\r\n filterObj.ArrivalDate = businessDate;\r\n filterObj.IsAdvanceCheckin = true;\r\n filterObj.strReservationStatus = \"DIN\";\r\n if (e.target.id == \"CurrentIndividual\") {\r\n // filterObj.ArrivalDate = businessDate;\r\n // filterObj.IsAdvanceCheckin = true;\r\n // filterObj.AdvanceCheckInClean = true;\r\n // filterObj.AdvanceCheckInDirty = true;\r\n // filterObj.AdvanceCheckInDueOut = true;\r\n // filterObj.AdvanceCheckInInspected = true;\r\n // filterObj.AdvanceCheckInOutofService = true;\r\n // filterObj.AdvanceCheckInUnassign = true;\r\n // filterObj.strReservationStatus = \"DIN\";\r\n filterObj.SelectReservation = \"I\";\r\n // console.log(\"Ind >>\", filterObj);\r\n reservationArrivalList();\r\n }\r\n else if (e.target.id == \"CurrentBlock\") {\r\n // filterObj.ArrivalDate = businessDate;\r\n // filterObj.IsAdvanceCheckin = true;\r\n // filterObj.AdvanceCheckInClean = true;\r\n // filterObj.AdvanceCheckInDirty = true;\r\n // filterObj.AdvanceCheckInDueOut = true;\r\n // filterObj.AdvanceCheckInInspected = true;\r\n // filterObj.AdvanceCheckInOutofService = true;\r\n // filterObj.AdvanceCheckInUnassign = true;\r\n // filterObj.strReservationStatus = \"DIN\";\r\n filterObj.SelectReservation = \"B\";\r\n //console.log(\"Block >>\", filterObj); \r\n reservationArrivalList();\r\n }\r\n }\r\n }\r\n\r\n const handleCheckInIndividualAndBlockClick = async (e) => {\r\n if ((e.target.id == \"CheckinIndividual\" && checkinIndividual == 0) ||\r\n (e.target.id == \"CheckinBlock\" && checkinBlock == 0)) {\r\n await confirm({\r\n Message: \"You can not navigate due to no reservation.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n //alert(\"You can not navigate due to more reservation.\");\r\n } else {\r\n filterObj.ArrivalDate = businessDate;\r\n filterObj.IsAdvanceCheckin = true;\r\n filterObj.strReservationStatus = \"INH\";\r\n if (e.target.id == \"CheckinIndividual\") {\r\n // filterObj.ArrivalDate = businessDate;\r\n // filterObj.AdvanceCheckInClean = true;\r\n // filterObj.AdvanceCheckInDirty = true;\r\n // filterObj.AdvanceCheckInDueOut = true;\r\n // filterObj.AdvanceCheckInInspected = true;\r\n // filterObj.AdvanceCheckInOutofService = true;\r\n // filterObj.strReservationStatus = \"INH\";\r\n filterObj.SelectReservation = \"I\";\r\n reservationArrivalList();\r\n }\r\n else if (e.target.id == \"CheckinBlock\") {\r\n // filterObj.ArrivalDate = businessDate;\r\n // filterObj.AdvanceCheckInClean = true;\r\n // filterObj.AdvanceCheckInDirty = true;\r\n // filterObj.AdvanceCheckInDueOut = true;\r\n // filterObj.AdvanceCheckInInspected = true;\r\n // filterObj.AdvanceCheckInOutofService = true;\r\n // filterObj.strReservationStatus = \"INH\";\r\n filterObj.SelectReservation = \"B\";\r\n reservationArrivalList();\r\n }\r\n }\r\n }\r\n\r\n const handleTotalIndividualAndBlockClick = async (e) => {\r\n if ((e.target.id == \"totalIndividual\" && totalIndividual == 0) ||\r\n (e.target.id == \"totalBlock\" && totalBlock == 0)) {\r\n await confirm({\r\n Message: \"You can not navigate due to no reservation.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n // alert(\"You can not navigate due to more reservation.\");\r\n } else {\r\n filterObj.ArrivalDate = businessDate;\r\n filterObj.IsAdvanceCheckin = true;\r\n filterObj.strReservationStatus = \"DIN,INH\";\r\n if (e.target.id == \"totalIndividual\") {\r\n // filterObj.ArrivalDate = businessDate;\r\n // filterObj.AdvanceCheckInClean = true;\r\n // filterObj.AdvanceCheckInDirty = true;\r\n // filterObj.AdvanceCheckInDueOut = true;\r\n // filterObj.AdvanceCheckInInspected = true;\r\n // filterObj.AdvanceCheckInOutofService = true;\r\n // filterObj.AdvanceCheckInUnassign = true;\r\n // filterObj.strReservationStatus = \"DIN,INH\";\r\n filterObj.SelectReservation = \"I\";\r\n reservationArrivalList();\r\n }\r\n else if (e.target.id == \"totalBlock\") {\r\n // filterObj.ArrivalDate = businessDate;\r\n // filterObj.AdvanceCheckInClean = true;\r\n // filterObj.AdvanceCheckInDirty = true;\r\n // filterObj.AdvanceCheckInDueOut = true;\r\n // filterObj.AdvanceCheckInInspected = true;\r\n // filterObj.AdvanceCheckInOutofService = true;\r\n // filterObj.AdvanceCheckInUnassign = true;\r\n // filterObj.strReservationStatus = \"DIN,INH\";\r\n filterObj.SelectReservation = \"B\";\r\n reservationArrivalList();\r\n }\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n

    Advance Check In (Block & Individual)

    \r\n console.log(item, name)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Current

    \r\n
    \r\n
    \r\n
    \r\n Individual\r\n \r\n {currentIndividual}\r\n \r\n
    \r\n
    \r\n Block\r\n \r\n {currentBlock}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Checked-In

    \r\n
    \r\n
    \r\n
    \r\n Individual\r\n \r\n {checkinIndividual}\r\n \r\n
    \r\n
    \r\n Block\r\n \r\n {checkinBlock}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Total for the Day

    \r\n
    \r\n
    \r\n
    Individual\r\n \r\n {totalIndividual}\r\n \r\n
    \r\n
    Block\r\n \r\n {totalBlock}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { InnContextMenu, useConfirm } from '../../../../component';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport InnLineBar from '../../../../component/innLineBar';\r\nimport { GetReservationDashboardArrivalData } from \"../../../../services/reservationDashboardService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetPropertyParameterByKeys } from '../../../../services/reservationService';\r\n\r\nexport function ReservationDashboardArrivalTile() {\r\n const history = useHistory();\r\n const actionData = [\r\n { key: 1, value: \"Option 1\" },\r\n { key: 2, value: \"Option 2\" }\r\n ]\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const currUser = useSelector(currentUser);\r\n const propertyParameters = [\"BusinessDate\"];\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n\r\n const [totalArrivals, setTotalArrivals] = useState(0);\r\n const [totalExpected, setTotalExpected] = useState(0);\r\n const [roomClean, setRoomClean] = useState(0);\r\n const [inspected, setInspected] = useState(0);\r\n const [outOfService, setOutOfService] = useState(0);\r\n const [arrivalsWithRoomsAssigned, setArrivalsWithRoomsAssigned] = useState(0);\r\n const [ArrivalsWithRoomNotAssigned, setArrivalsWithRoomNotAssigned] = useState(0);\r\n const [arrivalsAgainstDueOut, setArrivalsAgainstDueOut] = useState(0);\r\n const [earlyArrival, setEarlyArrival] = useState(0);\r\n const [lateArrival, setLateArrival] = useState(0);\r\n const [canceledCheckin, setCanceledCheckin] = useState(0);\r\n const [preRegister, setPreRegister] = useState(0);\r\n const [vipStatus, setVipStatus] = useState(0);\r\n const [nextDayArrival, setNextDayArrival] = useState(0);\r\n const [walkIN, setWalkIN] = useState(0);\r\n const [reservationMadeToday, setReservationMadeToday] = useState(0);\r\n\r\n const filterObj = {\r\n ArrivalDate: \"\",\r\n CompanyProfileSerNo: 0,\r\n AgentProfileSerNo: 0,\r\n IsIncognito: null,\r\n strVIPStatus: \"\",\r\n strMemberShipLevel: \"\",\r\n strRoomType: \"\",\r\n SameDayReservationNArrival: null,\r\n BookingNo: \"\",\r\n BookingReferenceNo: \"\",\r\n IsArrivalOnSameDay: null,\r\n ETAFrom: \"\",\r\n ETATo: \"\",\r\n NightsFrom: 0,\r\n NightsTo: 0,\r\n strHkStatusSerNo: \"\",\r\n strFloorSerNo: \"\",\r\n IsNoInfo: null,\r\n IsEarlyArrival: null,\r\n IsLateArrival: null,\r\n RateSerNo: 0,\r\n IsUnassignRoom: null,\r\n IsWalkIn: null,\r\n SelectReservation: \"\",\r\n strReservationStatus: \"\",\r\n RoomFeatureSerNo: \"\",\r\n BlockSerNo: null,\r\n RoomFeatureValueSerNo: \"\",\r\n IsAdvanceCheckin: null,\r\n IsCancelCheckin: null,\r\n AdvanceCheckInClean: null,\r\n AdvanceCheckInInspected: null,\r\n AdvanceCheckInUnassign: null,\r\n AdvanceCheckInDirty: null,\r\n AdvanceCheckInDueOut: null,\r\n AdvanceCheckInOutofService: null,\r\n }\r\n\r\n function HandleReservationTile() {\r\n history.push({\r\n pathname: \"/ReservationArrivalList\",\r\n state: {\r\n filterObj: filterObj,\r\n }\r\n });\r\n }\r\n\r\n const loadReservationDash = () => {\r\n GetReservationDashboardArrivalData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n // setReservationArrivalsData(d.data);\r\n setTotalArrivals(d.data.find(x => x.Description == \"TotalArrivals\"));\r\n setTotalExpected(d.data.find(x => x.Description == \"TotalExpected\"));\r\n setRoomClean(d.data.find(x => x.Description == \"RoomClean\"));\r\n setInspected(d.data.find(x => x.Description == \"Inspected\"));\r\n setOutOfService(d.data.find(x => x.Description == \"OutOfService\"));\r\n setArrivalsWithRoomsAssigned(d.data.find(x => x.Description == \"ArrivalsWithRoomsAssigned\"));\r\n setArrivalsWithRoomNotAssigned(d.data.find(x => x.Description == \"ArrivalsWithRoomNotAssigned\"));\r\n setArrivalsAgainstDueOut(d.data.find(x => x.Description == \"ArrivalsAgainstDueOut\"));\r\n setEarlyArrival(d.data.find(x => x.Description == \"EarlyArrival\"));\r\n setLateArrival(d.data.find(x => x.Description == \"LateArrival\"));\r\n setCanceledCheckin(d.data.find(x => x.Description == \"CanceledCheckin\"));\r\n setPreRegister(d.data.find(x => x.Description == \"PreRegister\"));\r\n setVipStatus(d.data.find(x => x.Description == \"VipStatus\"));\r\n setNextDayArrival(d.data.find(x => x.Description == \"NextDayArrival\"));\r\n setWalkIN(d.data.find(x => x.Description == \"WalkIN\"));\r\n setReservationMadeToday(d.data.find(x => x.Description == \"ReservationMadeToday\"));\r\n })\r\n }\r\n\r\n const RoomAssignTotal = arrivalsWithRoomsAssigned.Value + ArrivalsWithRoomNotAssigned.Value;\r\n\r\n useEffect(() => {\r\n loadReservationDash();\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), propertyParameters).then((d) => {\r\n console.log(\"Key >>\", d.data);\r\n let obj = d.data.find(x => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(d.data[0].value);\r\n }\r\n })\r\n }, []);\r\n\r\n return (\r\n
    \r\n
    \r\n

    Arrivals

    \r\n console.log(item, name)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    {\r\n console.log(\"Total Arrivals vs Expected\");\r\n filterObj.ArrivalDate = businessDate;\r\n HandleReservationTile();\r\n //dispatch(toggleMenu(false));\r\n }}>Total Arrivals vs Expected

    \r\n
    \r\n
    \r\n {totalArrivals.Value}\r\n
    \r\n
    \r\n {totalExpected.Value}\r\n
    \r\n
    \r\n
    \r\n
    {\r\n if (roomClean.Value != 0) {\r\n filterObj.ArrivalDate = businessDate;\r\n filterObj.strHkStatusSerNo = \"Clean\"; //HK Status ---> Clean\r\n filterObj.strReservationStatus = \"DIN\";\r\n HandleReservationTile();\r\n } else {\r\n alertFunction(\"You can not navigate due to no reservation.\");\r\n }\r\n }}>\r\n Rooms Clean\r\n {roomClean.Value}\r\n
    \r\n\r\n
    {\r\n if (inspected.Value != 0) {\r\n filterObj.ArrivalDate = businessDate;\r\n filterObj.strHkStatusSerNo = \"Insp\"; //HK Status ---> Insp\r\n filterObj.strReservationStatus = \"DIN\";\r\n HandleReservationTile();\r\n } else {\r\n alertFunction(\"You can not navigate due to no reservation.\");\r\n }\r\n }}>\r\n Inspected\r\n {inspected.Value}\r\n
    \r\n\r\n
    {\r\n if (outOfService.Value != 0) {\r\n filterObj.ArrivalDate = businessDate;\r\n filterObj.strHkStatusSerNo = \"OS\"; //HK Status ---> OS\r\n filterObj.strReservationStatus = \"DIN\";\r\n HandleReservationTile();\r\n } else {\r\n alertFunction(\"You can not navigate due to no reservation.\");\r\n }\r\n }}>\r\n Out of Service\r\n {outOfService.Value}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {\r\n console.log(\"Departure List click\");\r\n if (arrivalsWithRoomsAssigned.Value != 0 || ArrivalsWithRoomNotAssigned.Value != 0) {\r\n filterObj.ArrivalDate = businessDate;\r\n HandleReservationTile();\r\n } else {\r\n alertFunction(\"You can not navigate due to no reservation.\");\r\n }\r\n }}>\r\n
    \r\n
    \r\n
    \r\n

    \r\n Arrivals with

    rooms assigned

    \r\n {arrivalsWithRoomsAssigned.Value}\r\n
    \r\n
    \r\n

    \r\n Arrivals with

    rooms not assign

    \r\n {ArrivalsWithRoomNotAssigned.Value}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Persons / Child\r\n {arrivalsWithRoomsAssigned.Adult} / {arrivalsWithRoomsAssigned.Child}\r\n
    \r\n
    \r\n Persons / Child\r\n {ArrivalsWithRoomNotAssigned.Adult} / {ArrivalsWithRoomNotAssigned.Child}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {\r\n console.log(\"Departure List click\");\r\n if (arrivalsAgainstDueOut.Value != 0) {\r\n filterObj.ArrivalDate = businessDate;\r\n HandleReservationTile();\r\n } else {\r\n alertFunction(\"You can not navigate due to no reservation.\");\r\n }\r\n }}>\r\n Arrivals against Due Out\r\n {arrivalsAgainstDueOut.Value}\r\n
    \r\n
    {\r\n console.log(\"Departure List click\");\r\n if (earlyArrival.Value != 0) {\r\n filterObj.ArrivalDate = businessDate;\r\n filterObj.IsEarlyArrival = true;\r\n filterObj.strReservationStatus = \"DIN\";\r\n HandleReservationTile();\r\n }\r\n else {\r\n alertFunction(\"You can not navigate due to no reservation.\");\r\n }\r\n }}>\r\n Early Arrivals\r\n {earlyArrival.Value}\r\n
    \r\n
    {\r\n console.log(\"Departure List click\");\r\n if (lateArrival.Value != 0) {\r\n filterObj.ArrivalDate = businessDate;\r\n filterObj.IsLateArrival = true;\r\n filterObj.strReservationStatus = \"DIN\";\r\n HandleReservationTile();\r\n } else {\r\n alertFunction(\"You can not navigate due to no reservation.\");\r\n }\r\n }}>\r\n Late Arrivals\r\n {lateArrival.Value}\r\n
    \r\n
    {\r\n console.log(\"Departure List click\");\r\n if (canceledCheckin.Value != 0) {\r\n filterObj.ArrivalDate = businessDate;\r\n filterObj.IsCancelCheckin = true;\r\n filterObj.strReservationStatus = \"DIN\";\r\n HandleReservationTile();\r\n } else {\r\n alertFunction(\"You can not navigate due to no reservation.\");\r\n }\r\n }}>\r\n Cancelled Check In\r\n {canceledCheckin.Value}\r\n
    \r\n
    {\r\n if (preRegister.Value != 0) {\r\n filterObj.ArrivalDate = businessDate;\r\n filterObj.IsPreReg = true;\r\n HandleReservationTile();\r\n } else {\r\n alertFunction(\"You can not navigate due to no reservation.\");\r\n }\r\n }}\r\n >\r\n Pre-Registered\r\n {preRegister.Value}\r\n
    \r\n
    \r\n
    \r\n
    {\r\n console.log(\"Departure List click\");\r\n if (vipStatus != 0) {\r\n filterObj.ArrivalDate = businessDate;\r\n filterObj.IsVipStatus = true;\r\n filterObj.strReservationStatus = \"DIN\";\r\n }\r\n HandleReservationTile();\r\n }}>\r\n VIP Arrivals\r\n {vipStatus.Value}\r\n
    \r\n
    {\r\n console.log(\"Departure List click\");\r\n if (nextDayArrival.Value != 0) {\r\n filterObj.ArrivalDate = businessDate;\r\n filterObj.IsArrivalOnSameDay = true;\r\n filterObj.strReservationStatus = \"DIN\";\r\n HandleReservationTile();\r\n } else {\r\n alertFunction(\"You can not navigate due to no reservation.\");\r\n }\r\n\r\n }}>\r\n Next Day Arrivals\r\n {nextDayArrival.Value}\r\n
    \r\n
    {\r\n if (walkIN.Value != 0) {\r\n filterObj.ArrivalDate = businessDate;\r\n filterObj.IsWalkIn = true;\r\n HandleReservationTile();\r\n } else {\r\n alertFunction(\"You can not navigate due to no reservation.\");\r\n }\r\n\r\n }}>\r\n Walk In\r\n {walkIN.Value}\r\n
    \r\n {\r\n console.log(\"Departure List click\");\r\n if (reservationMadeToday.Value != 0) {\r\n filterObj.ArrivalDate = businessDate;\r\n filterObj.SameDayReservationNArrival = true;\r\n HandleReservationTile();\r\n } else {\r\n alertFunction(\"You can not navigate due to no reservation.\");\r\n }\r\n }}>Reservations made today\r\n {reservationMadeToday.Value}\r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n};","import React, { useEffect, useState, } from 'react';\r\nimport { InnContextMenu, useConfirm, } from '../../../../component';\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from '../../../../reducer/authSlice';\r\nimport { GetReservationDashboardArrivedAndInhouseData } from '../../../../services/reservationDashboardService';\r\nimport { GetPropertyParameterByKeys } from '../../../../services/reservationService'\r\nimport { ReservationListFilterModel } from '../../../../utils/Model/ReservationListFilterModel';\r\n\r\nexport function ReservationDashboardArrivedInhouseTile(props) {\r\n\r\n const history = useHistory();\r\n const location = useLocation();\r\n const actionData = [\r\n { key: 1, value: \"Option 1\" },\r\n { key: 2, value: \"Option 2\" }\r\n ]\r\n\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const currUser = useSelector(currentUser);\r\n const propertyParameters = [\"BusinessDate\"];\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n const [roomData, setRoomData] = useState(0);\r\n\r\n const loadArrivedInhouseTile = () => {\r\n GetReservationDashboardArrivedAndInhouseData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n setRoomData(d.data);\r\n })\r\n }\r\n\r\n const ArrivedInhousePush = () => {\r\n history.push({\r\n pathname: \"/ReservationListPage\",\r\n state: {\r\n filterObj: ReservationListFilterModel.Data,\r\n }\r\n })\r\n console.log(\"ReservationListFilterModel>>\", ReservationListFilterModel);\r\n }\r\n\r\n const ArrivedInhouseTile = () => {\r\n if (roomData.Room != 0 || roomData.Adult != 0 || roomData.Child != 0 || roomData.Vip != 0) {\r\n ReservationListFilterModel.Data.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n ReservationListFilterModel.Data.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n ReservationListFilterModel.Data.FromDate = businessDate;\r\n ReservationListFilterModel.Data.ToDate = businessDate;\r\n ReservationListFilterModel.Data.ReservationStatus = \"ARD,INH\";\r\n ReservationListFilterModel.Data.DtType = \"STAY\";\r\n ReservationListFilterModel.Data.Mainmenu = location.state.filterObj?.Mainmenu;\r\n ArrivedInhousePush();\r\n } else {\r\n alertFunction(\"You can not navigate due to no reservation.\");\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n loadArrivedInhouseTile();\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), propertyParameters).then((d) => {\r\n console.log(\"Key >>\", d.data);\r\n let obj = d.data.find(x => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(d.data[0].value);\r\n }\r\n })\r\n }, [])\r\n\r\n return (\r\n
    \r\n
    \r\n

    Arrived + In House

    \r\n console.log(item, name)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    {\r\n console.log(\"Departure List click\");\r\n ArrivedInhouseTile();\r\n //dispatch(toggleMenu(false));\r\n }}>\r\n

    Rooms

    \r\n {roomData.Room}\r\n
    \r\n
    \r\n
    {\r\n console.log(\"Departure List click\");\r\n ArrivedInhouseTile();\r\n }}>\r\n

    Adult

    \r\n {roomData.Adult}\r\n
    \r\n
    {\r\n console.log(\"Departure List click\");\r\n ArrivedInhouseTile();\r\n }}>\r\n

    Child

    \r\n {roomData.Child}\r\n
    \r\n
    \r\n
    {\r\n console.log(\"Departure List click\");\r\n ArrivedInhouseTile();\r\n }}\r\n >\r\n

    VIPs

    \r\n {roomData.Vip}\r\n
    \r\n
    \r\n
    \r\n )\r\n}","import React, { useEffect, useState, } from 'react';\r\nimport { InnContextMenu, useConfirm } from '../../../../component';\r\nimport { useHistory,useLocation } from \"react-router-dom\";\r\nimport { GetReservationDashboardBlockOverViewData } from '../../../../services/reservationDashboardService';\r\nimport { currentUser } from '../../../../reducer/authSlice';\r\nimport { useSelector } from 'react-redux';\r\nimport { GetPropertyParameterByKeys } from '../../../../services/reservationService';\r\n\r\n\r\nexport function ReservationDashboardBlockOverviewTile(props) {\r\n\r\n const history = useHistory();\r\n const location = useLocation();\r\n const actionData = [\r\n { key: 1, value: \"Option 1\" },\r\n { key: 2, value: \"Option 2\" }\r\n ]\r\n const { confirm } = useConfirm();\r\n const propertyParameters = [\"BusinessDate\"];\r\n const curr = useSelector(currentUser);\r\n //const [dashboardBlockOverviewList, setDashboardBlockOverviewList] = useState([]);\r\n const [colList, setColList] = useState([]);\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n const [arrivedBlock, setArrivedBlock] = useState(0);\r\n const [arrivedRoom, setArrivedRoom] = useState(0);\r\n const [arrivingBlock, setArrivingBlock] = useState(0);\r\n const [arrivingRoom, setArrivingRoom] = useState(0);\r\n\r\n const filterObj = {\r\n ClientSerNo: parseInt(curr.ClientSerNo),\r\n PropertySerNo: parseInt(curr.PropertySerNo),\r\n PageNumber: 0,\r\n SortCol: \"\",\r\n SortType: \"\",\r\n Adult: 0,\r\n Child: 0,\r\n DtType: \"\",\r\n FromDate: \"\",\r\n ToDate: \"\",\r\n RoomTypeSerNo: 0,\r\n RateSerNo: 0,\r\n ReservationTypeSerNo: 0,\r\n CompanyProfileSerNo: 0,\r\n AgentProfileSerNo: 0,\r\n BookingNo: \"\",\r\n BookingReferenceNo: \"\",\r\n MembershipNo: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n VIPLevelSerNo: 0,\r\n IsIncognitoName: false,\r\n NightsFrom: 0,\r\n NightsTo: 0,\r\n strMemberShipLevel: \"\",\r\n ReservationStatus: \"\",\r\n BlockSerNo: \"\",\r\n PartyNo: \"\",\r\n RoomSerNo: 0,\r\n IsEarlyDeparture: null,\r\n IsShowBlockRoomsOnly: null,\r\n Mainmenu: location.state.filterObj?.Mainmenu,\r\n }\r\n\r\n const getDashboardBlockOverviewData = () => {\r\n GetReservationDashboardBlockOverViewData(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo)).then(d => {\r\n //setDashboardBlockOverviewList(d.data);\r\n console.log(\"Result :\", d.data);\r\n\r\n let Block = d.data.filter(x => x.Description == \"BlockArrived\").map(blockArrivedValue => (\r\n blockArrivedValue.Block\r\n ));\r\n setArrivedBlock(Block);\r\n let Room = d.data.filter(x => x.Description == \"BlockArrived\").map(blockArrivedValue => (\r\n blockArrivedValue.Room\r\n ));\r\n setArrivedRoom(Room);\r\n\r\n let BlockArriving = d.data.filter(x => x.Description == \"BlockArriving\").map(blockArrivingValue => (\r\n blockArrivingValue.Block\r\n ));\r\n setArrivingBlock(BlockArriving);\r\n let RoomArriving = d.data.filter(x => x.Description == \"BlockArriving\").map(blockArrivingValue => (\r\n blockArrivingValue.Room\r\n ));\r\n setArrivingRoom(RoomArriving);\r\n\r\n });\r\n }\r\n\r\n const getPropertyParameterByKey = () => {\r\n GetPropertyParameterByKeys(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo), propertyParameters).then((d) => {\r\n console.log(\"keys >>\", d.data);\r\n let obj = d.data.find(x => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(d.data[0].value);\r\n }\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n getDashboardBlockOverviewData();\r\n getPropertyParameterByKey();\r\n }, []);\r\n\r\n const reservationListPage = () => {\r\n history.push({\r\n pathname: \"/ReservationListPage\",\r\n state: {\r\n filterObj: filterObj,\r\n },\r\n });\r\n }\r\n\r\n const handleBlockArrivedClick = async (e) => {\r\n let AI = [];\r\n AI = colList.filter(d => d.key !== \"BlockArrived\");\r\n if (arrivedBlock != 0 || arrivedRoom != 0) {\r\n if (e.target.id == AI) {\r\n filterObj.FromDate = businessDate;\r\n filterObj.ToDate = businessDate;\r\n filterObj.ReservationStatus = \"ARD,INH\";\r\n filterObj.IsShowBlockRoomsOnly = true;\r\n }\r\n console.log(\"BlockArrived >>\", filterObj);\r\n reservationListPage();\r\n } else {\r\n await confirm({\r\n Message: \"You can not navigate due to no reservation.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n }\r\n\r\n const handleBlockArrivingClick = async (e) => {\r\n let DI = [];\r\n DI = colList.filter(d => d.key !== \"BlockArriving\");\r\n if (arrivingBlock != 0 || arrivingRoom != 0) {\r\n if (e.target.id == DI) {\r\n filterObj.FromDate = businessDate;\r\n filterObj.ToDate = businessDate;\r\n filterObj.IsShowBlockRoomsOnly = true;\r\n filterObj.ReservationStatus = \"DIN\";\r\n }\r\n console.log(\"BlockArriving >>\", filterObj);\r\n reservationListPage();\r\n } else {\r\n await confirm({\r\n Message: \"You can not navigate due to no reservation.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n //alert(\"You can not navigate due to more reservation.\");\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n

    Block Overview

    \r\n console.log(item, name)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    Arrived + In House

    \r\n {/* {Block}/{Room} */}\r\n {arrivedBlock}/{arrivedRoom}\r\n
    \r\n
    \r\n

    Arriving

    \r\n {/* {BlockArriving}/{RoomArriving} */}\r\n {arrivingBlock}/{arrivingRoom}\r\n
    \r\n
    \r\n
    \r\n )\r\n}","import React, { useEffect, useState, } from 'react';\r\nimport { InnContextMenu, InnSingleDateSelection } from '../../../../component';\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { GetReservationDashboardResAndCancelData } from '../../../../services/reservationDashboardService';\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from '../../../../reducer/authSlice';\r\nimport { GetPropertyParameterByKeys } from \"../../../../services/reservationService\";\r\nexport function ReservationDashboardCancellationTile(props) {\r\n\r\n const history = useHistory();\r\n const location = useLocation();\r\n const actionData = [\r\n { key: 1, value: \"Option 1\" },\r\n { key: 2, value: \"Option 2\" }\r\n ]\r\n\r\n const currUser = useSelector(currentUser);\r\n const propertyParameters = [\"BusinessDate\"];\r\n\r\n const [seletedDate, setSelectedDate] = useState(\"\");\r\n const [resAndCancelData, setResAndCancelData] = useState([]);\r\n const [isActive, setIsActive] = useState(false);\r\n\r\n const loadResAndCancelData = () => {\r\n setIsActive(true);\r\n GetReservationDashboardResAndCancelData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n setResAndCancelData(d.data);\r\n setIsActive(false);\r\n })\r\n }\r\n const fillBusinessDate = () => {\r\n GetPropertyParameterByKeys(\r\n currUser.ClientSerNo,\r\n currUser.PropertySerNo,\r\n propertyParameters\r\n ).then((d) => {\r\n console.log(d.data);\r\n let obj = d.data.find((x) => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setSelectedDate(d.data[0].value);\r\n }\r\n });\r\n };\r\n useEffect(() => {\r\n loadResAndCancelData();\r\n fillBusinessDate();\r\n }, []);\r\n\r\n return (\r\n
    \r\n
    \r\n

    Reservation & Cancellation

    \r\n console.log(item, name)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    {\r\n console.log(\"Departure List click\");\r\n //history.push(\"/ReservationListPage\");\r\n history.push({\r\n pathname: \"/ReservationListPage\",\r\n state: {\r\n filterObj: {\r\n FromDate: seletedDate,\r\n ToDate: seletedDate,\r\n DtType: \"BOOK\",\r\n ReservationStatus: \"DIN\",\r\n Mainmenu: location.state.filterObj?.Mainmenu\r\n }\r\n }\r\n });\r\n }}>\r\n

    Picked Up

    \r\n {resAndCancelData.find(d => d.Description == \"Pickup\")?.Value}\r\n
    \r\n
    {\r\n console.log(\"Departure List click\");\r\n //history.push(\"/ReservationListPage\");\r\n history.push({\r\n pathname: \"/ReservationListPage\",\r\n state: {\r\n filterObj: {\r\n FromDate: seletedDate,\r\n ToDate: seletedDate,\r\n DtType: \"Cancellation Date\",\r\n ReservationStatus: \"CAN\",\r\n Mainmenu: location.state.filterObj?.Mainmenu\r\n }\r\n }\r\n });\r\n }}>\r\n

    Cancellations

    \r\n {resAndCancelData.find(d => d.Description == \"Cancel\")?.Value}\r\n
    \r\n
    {\r\n console.log(\"Departure List click\");\r\n //history.push(\"/ReservationListPage\");\r\n history.push({\r\n pathname: \"/ReservationListPage\",\r\n state: {\r\n filterObj: {\r\n FromDate: seletedDate,\r\n ToDate: seletedDate,\r\n DtType: \"No Show Reservation\",\r\n ReservationStatus: \"NSH\",\r\n Mainmenu: location.state.filterObj?.Mainmenu\r\n }\r\n }\r\n });\r\n }}>\r\n

    No-Show

    \r\n {resAndCancelData.find(d => d.Description == \"NoShow\")?.Value}\r\n
    \r\n
    \r\n {/*
    \r\n
    \r\n

    Picked Up

    \r\n 10\r\n
    \r\n
    \r\n

    Cancellations

    \r\n 2\r\n
    \r\n
    \r\n

    No-Show

    \r\n 10\r\n
    \r\n
    */}\r\n
    \r\n )\r\n}","import React, { useEffect, useState, } from 'react';\r\nimport { InnContextMenu, } from '../../../../component';\r\nimport { useHistory,useLocation } from \"react-router-dom\";\r\nimport InnLineBar from '../../../../component/innLineBar';\r\nimport { GetReservationDashboardComplimentaryData } from '../../../../services/reservationDashboardService';\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from '../../../../reducer/authSlice';\r\nimport { GetPropertyParameterByKeys } from '../../../../services/reservationService';\r\nimport { ReservationListFilterModel } from '../../../../utils/Model/ReservationListFilterModel';\r\n\r\nexport function ReservationDashboardComplimentaryTile(props) {\r\n\r\n const history = useHistory();\r\n const location = useLocation();\r\n const actionData = [\r\n { key: 1, value: \"Option 1\" },\r\n { key: 2, value: \"Option 2\" }\r\n ]\r\n\r\n const currUser = useSelector(currentUser);\r\n const propertyParameters = [\"BusinessDate\"];\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n const [reservationArriving, setReservationArriving] = useState(0);\r\n const [reservationTotalArriving, setReservationTotalArriving] = useState(0);\r\n const [reservationDeparture, setReservationDeparture] = useState(0);\r\n const [reservationTotalDeparture, setReservationTotalDeparture] = useState(0);\r\n const [stayOver, setStayOver] = useState(0);\r\n\r\n const loadReservationComplimentary = () => {\r\n GetReservationDashboardComplimentaryData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n // setReservationComplimentaryTile(d.data);\r\n setReservationArriving(d.data.find(arriving => arriving.Description == \"Arriving\"));\r\n setReservationTotalArriving(d.data.find(x => x.Description == \"TotalArriving\"));\r\n setReservationDeparture(d.data.find(departure => departure.Description == \"Departure\"));\r\n setReservationTotalDeparture(d.data.find(x => x.Description == \"TotalDeparture\"));\r\n setStayOver(d.data.find(stayOver => stayOver.Description == \"StayOver\"));\r\n })\r\n } \r\n\r\n const ComplimentaryTile = () => {\r\n history.push({\r\n pathname: \"/ReservationListPage\",\r\n state: {\r\n filterObj: ReservationListFilterModel.Data,\r\n }\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n loadReservationComplimentary();\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), propertyParameters).then((d) => {\r\n console.log(\"Key >>\", d.data);\r\n let obj = d.data.find(x => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(d.data[0].value);\r\n }\r\n })\r\n }, [])\r\n\r\n return (\r\n
    \r\n
    \r\n

    Complimentary

    \r\n console.log(item, name)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    {\r\n if (reservationArriving.Value != 0) {\r\n ReservationListFilterModel.Data.FromDate = businessDate;\r\n ReservationListFilterModel.Data.ToDate = businessDate;\r\n ReservationListFilterModel.Data.ReservationStatus = \"DIN\";\r\n ReservationListFilterModel.Data.RateSerNo = 0;\r\n ReservationListFilterModel.Data.Mainmenu = location.state.filterObj?.Mainmenu;\r\n ComplimentaryTile();\r\n } else {\r\n alert(\"You can not navigate due to no reservation.\");\r\n }\r\n }}>\r\n
    \r\n

    Rooms Arriving

    \r\n {reservationArriving.Value}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n Person Arriving:\r\n {reservationArriving.Adult}\r\n
    \r\n
    \r\n
    {\r\n if (reservationDeparture.Value != 0) {\r\n ReservationListFilterModel.Data.FromDate = businessDate;\r\n ReservationListFilterModel.Data.ToDate = businessDate;\r\n ReservationListFilterModel.Data.ReservationStatus = \"DOT\";\r\n ReservationListFilterModel.Data.RateSerNo = 0;\r\n ReservationListFilterModel.Data.Mainmenu = location.state.filterObj?.Mainmenu;\r\n ComplimentaryTile();\r\n } else {\r\n alert(\"You can not navigate due to no reservation.\");\r\n }\r\n }}>\r\n
    \r\n

    Rooms Departures

    \r\n {reservationDeparture.Value}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n Person Departures: {reservationDeparture.Adult}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n if (stayOver.Value != 0) {\r\n ReservationListFilterModel.Data.FromDate = businessDate;\r\n ReservationListFilterModel.Data.ToDate = businessDate;\r\n ReservationListFilterModel.Data.ReservationStatus = \"ARD,INH\";\r\n ReservationListFilterModel.Data.RateSerNo = 0;\r\n ReservationListFilterModel.Data.Mainmenu = location.state.filterObj?.Mainmenu;\r\n ComplimentaryTile();\r\n } else {\r\n alert(\"You can not navigate due to no reservation.\");\r\n }\r\n }}>\r\n Stay Over\r\n {stayOver.Value}\r\n \r\n
    \r\n
    \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { InnContextMenu, InnSingleDateSelection } from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { GetReservationDashboardDailyprojectionData } from \"../../../../services/reservationDashboardService\";\r\nimport { GetPropertyParameterByKeys } from \"../../../../services/reservationService\";\r\nexport function ReservationDashboardDailyProjectionTile(props) {\r\n const actionData = [\r\n { key: 1, value: \"Option 1\" },\r\n { key: 2, value: \"Option 2\" },\r\n ];\r\n\r\n const currUser = useSelector(currentUser);\r\n const propertyParameters = [\"BusinessDate\"];\r\n\r\n const [seletedDate, setSelectedDate] = useState(\"04-Apr-22\");\r\n const [dashboardDailyprojectionList, setDashboardDailyprojectionList] = useState({});\r\n \r\n const getDashboardDailyprojectionData = () => {\r\n GetReservationDashboardDailyprojectionData(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n seletedDate\r\n ).then((d) => {\r\n setDashboardDailyprojectionList(d.data);\r\n //console.log(\"Daily Data\", d.data);\r\n });\r\n };\r\n\r\n const fillBusinessDate = () => {\r\n GetPropertyParameterByKeys(\r\n currUser.ClientSerNo,\r\n currUser.PropertySerNo,\r\n propertyParameters\r\n ).then((d) => {\r\n console.log(d.data);\r\n let obj = d.data.find((x) => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setSelectedDate(d.data[0].value);\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n fillBusinessDate();\r\n }, []);\r\n useEffect(() => {\r\n getDashboardDailyprojectionData();\r\n }, [seletedDate]);\r\n //console.log(seletedDate);\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Daily Projection for day

    \r\n
    \r\n setSelectedDate(item)}\r\n >\r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Individuals

    \r\n
    \r\n
    \r\n
    \r\n

    Rooms

    \r\n {dashboardDailyprojectionList.IndividualRoom}\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Persons

    \r\n \r\n {dashboardDailyprojectionList.IndividualPerson}\r\n \r\n
    \r\n
    \r\n

    VIPs

    \r\n {dashboardDailyprojectionList.IndividualVIP}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Block

    \r\n
    \r\n
    \r\n
    \r\n

    Rooms

    \r\n {dashboardDailyprojectionList.BlockRoom}\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Persons

    \r\n {dashboardDailyprojectionList.BlockPerson}\r\n
    \r\n
    \r\n

    VIPs

    \r\n {dashboardDailyprojectionList.BlockVIP}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Occupied Tonight

    \r\n
    \r\n
    \r\n
    \r\n

    Rooms

    \r\n {dashboardDailyprojectionList.IndividualRoom + dashboardDailyprojectionList.BlockRoom}\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Persons

    \r\n {dashboardDailyprojectionList.IndividualPerson + dashboardDailyprojectionList.BlockPerson}\r\n
    \r\n
    \r\n

    VIPs

    \r\n {dashboardDailyprojectionList.IndividualVIP + dashboardDailyprojectionList.BlockVIP}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Blocked Rooms not picked-up\r\n {dashboardDailyprojectionList.BlockRoomNotPickup}\r\n
    \r\n
    \r\n Percentage Rooms Occupied\r\n {dashboardDailyprojectionList.OccuPercentage}\r\n
    \r\n
    \r\n Minimum Available Rooms\r\n {dashboardDailyprojectionList.Available}\r\n
    \r\n
    \r\n Average Daily Rate\r\n \r\n {dashboardDailyprojectionList.AverageDailyRate?.toLocaleString(\r\n \"hi-IN\"\r\n )}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n RevPar\r\n \r\n {dashboardDailyprojectionList.RevPAR?.toLocaleString(\r\n \"hi-IN\"\r\n )}\r\n \r\n
    \r\n
    \r\n ADR w/o Block\r\n \r\n {dashboardDailyprojectionList.AverageDailyRateWOBlock?.toLocaleString(\r\n \"hi-IN\"\r\n )}\r\n \r\n
    \r\n
    \r\n ADR w/o COMP/House Use\r\n \r\n {dashboardDailyprojectionList.AverageDailyRateWOCompAndHouse?.toLocaleString(\r\n \"hi-IN\"\r\n )}\r\n \r\n
    \r\n
    \r\n ADR w/o Block/Comp/House Use\r\n \r\n {dashboardDailyprojectionList.AverageDailyRateWOBlockCompAndHouse?.toLocaleString(\r\n \"hi-IN\"\r\n )}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Room Revenue

    \r\n \r\n {dashboardDailyprojectionList.RoomRevenue?.toLocaleString(\r\n \"hi-IN\",{style:\"currency\", currency:\"INR\"}\r\n )}\r\n \r\n
    \r\n
    \r\n

    Total Revenue

    \r\n \r\n {dashboardDailyprojectionList.TotalRevenue?.toLocaleString(\r\n \"hi-IN\",{style:\"currency\", currency:\"INR\"}\r\n )}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","import React, { useEffect, useState, } from 'react';\r\nimport { InnContextMenu, useConfirm } from '../../../../component';\r\nimport InnLineBar from '../../../../component/innLineBar';\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { GetReservationDashboardDepartureData } from '../../../../services/reservationDashboardService';\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from '../../../../reducer/authSlice';\r\nimport { GetPropertyParameterByKeys, ResetReservationRouting } from '../../../../services/reservationService';\r\n\r\nexport function ReservationDashboardDepartureTile(props) {\r\n\r\n const history = useHistory();\r\n const location = useLocation();\r\n const actionData = [\r\n { key: 1, value: \"Option 1\" },\r\n { key: 2, value: \"Option 2\" }\r\n ]\r\n const { confirm } = useConfirm();\r\n const curr = useSelector(currentUser);\r\n const propertyParameters = [\"BusinessDate\"];\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n const [dashboardDepartureList, setDashboardDepartureList] = useState([]);\r\n const [previousDays, setPreviousDay] = useState(0);\r\n const [totalRoomDepartures, setTotalRoomDeparture] = useState(0);\r\n const [checkOutRoom, setCheckOutRoom] = useState(0);\r\n const [exceptCheckOutRoom, setExpectCheckOutRoom] = useState(0);\r\n const [openfoilo, setOpenFolio] = useState(0);\r\n const [noinfo, setNoinfo] = useState(0);\r\n const [earlyDepartures, setEarlyDeaparture] = useState(0);\r\n const checkedOutRoomTotal = checkOutRoom + exceptCheckOutRoom;\r\n\r\n\r\n const filterObj = {\r\n ClientSerNo: parseInt(curr.ClientSerNo),\r\n PropertySerNo: parseInt(curr.PropertySerNo),\r\n DepartureDate: businessDate, //date \"01-Apr-2022\"\r\n FirstName: \"\",\r\n LastName: \"\",\r\n ETDFrom: null,\r\n ETDTo: null,\r\n IsOpenFolio: null,\r\n strMemberShipLevel: \"\",\r\n strFloorSerNo: \"\",\r\n IsLateCheckout: null,\r\n IsEarlyCheckout: null,\r\n BlockSerNo: 0,\r\n IsReinstated: null,\r\n IsNoResponse: null,\r\n IsWithLuggage: null,\r\n IsNoLuggage: null,\r\n IsLocked: null,\r\n IsNoInfo: null,\r\n IsPreviousDayDeparture: null,\r\n CompanyProfileSerNo: null,\r\n AgentProfileSerNo: null,\r\n IsLoaded: false,\r\n }\r\n\r\n const reservationFilterObj = {\r\n ClientSerNo: parseInt(curr.ClientSerNo),\r\n PropertySerNo: parseInt(curr.PropertySerNo),\r\n PageNumber: 0,\r\n SortCol: \"\",\r\n SortType: \"\",\r\n Adult: 0,\r\n Child: 0,\r\n DtType: \"\",\r\n FromDate: \"\", //01-Apr-22\r\n ToDate: \"\",\r\n RoomTypeSerNo: 0,\r\n RateSerNo: 0,\r\n ReservationTypeSerNo: 0,\r\n CompanyProfileSerNo: 0,\r\n AgentProfileSerNo: 0,\r\n BookingNo: \"\",\r\n BookingReferenceNo: \"\",\r\n MembershipNo: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n VIPLevelSerNo: 0,\r\n IsIncognitoName: false,\r\n NightsFrom: 0,\r\n NightsTo: 0,\r\n strMemberShipLevel: \"\",\r\n ReservationStatus: \"\",\r\n BlockSerNo: \"\",\r\n PartyNo: \"\",\r\n RoomSerNo: 0,\r\n IsEarlyDeparture: null,\r\n IsShowBlockRoomsOnly: false,\r\n Mainmenu: location.state.filterObj?.Mainmenu\r\n }\r\n\r\n\r\n useEffect(() => {\r\n GetReservationDashboardDepartureData(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo)).then((d) => {\r\n setDashboardDepartureList(d.data);\r\n console.log(\"Result :\", d.data);\r\n\r\n let previousDay = d.data.find(x => x.Description == \"PreviousDay\")?.Value;\r\n setPreviousDay(previousDay);\r\n let totalRoomDeparture = d.data.find(x => x.Description == \"TotalRoomDeparture\")?.Value;\r\n setTotalRoomDeparture(totalRoomDeparture);\r\n let checkedOutRoom = d.data.find(x => x.Description == \"CheckedOutRoom\")?.Value;\r\n setCheckOutRoom(checkedOutRoom);\r\n let expectedCheckoutRoom = d.data.find(x => x.Description == \"ExpectedCheckoutRoom\")?.Value;\r\n setExpectCheckOutRoom(expectedCheckoutRoom);\r\n let openFolio = d.data.find(x => x.Description == \"OpenFolio\")?.Value;\r\n setOpenFolio(openFolio);\r\n let noInfo = d.data.find(x => x.Description == \"NoInfo\")?.Value;\r\n setNoinfo(noInfo);\r\n let earlyDeparture = d.data.find(x => x.Description == \"EarlyDeparture\")?.Value;\r\n setEarlyDeaparture(earlyDeparture);\r\n\r\n });\r\n\r\n GetPropertyParameterByKeys(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo), propertyParameters).then((d) => {\r\n console.log(\"keys >>\", d.data);\r\n let obj = d.data.find(x => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(d.data[0].value);\r\n }\r\n });\r\n }, []);\r\n\r\n const reservationDepartureList = () => {\r\n history.push({\r\n pathname: \"/ReservationDepartureList\",\r\n state: {\r\n filterObj: filterObj,\r\n },\r\n });\r\n }\r\n\r\n const handleEarlyDepartureClick = async (e) => {\r\n if (earlyDepartures != 0) {\r\n if (e.target.id == \"EarlyDeparture\") {\r\n reservationFilterObj.FromDate = businessDate;\r\n reservationFilterObj.ToDate = businessDate;\r\n reservationFilterObj.DtType = \"DEPT\";\r\n reservationFilterObj.IsEarlyDeparture = true;\r\n reservationFilterObj.ReservationStatus = 'COT,DOT';\r\n }\r\n console.log(\"Early :\", reservationFilterObj);\r\n history.push({\r\n pathname: \"/ReservationListPage\",\r\n state: {\r\n filterObj: reservationFilterObj,\r\n },\r\n });\r\n }\r\n else {\r\n await confirm({\r\n Message: \"You can not navigate due to no reservation.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n }\r\n }\r\n\r\n const handleLinkClick = async (e) => {\r\n if ((e.target.id == \"PreviousDay\" && previousDays == 0) ||\r\n (e.target.id == \"NoInfo\" && noinfo == 0) ||\r\n (e.target.id == \"OpenFolio\" && openfoilo == 0)) {\r\n await confirm({\r\n Message: \"You can not navigate due to no reservation.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n } else {\r\n if (e.target.id == \"PreviousDay\") {\r\n filterObj.DepartureDate = businessDate;\r\n filterObj.IsPreviousDayDeparture = true;\r\n reservationDepartureList();\r\n }\r\n else if (e.target.id == \"NoInfo\") {\r\n filterObj.DepartureDate = businessDate;\r\n filterObj.IsNoInfo = true;\r\n reservationDepartureList()\r\n }\r\n else if (e.target.id == \"OpenFolio\") {\r\n filterObj.DepartureDate = businessDate;\r\n filterObj.IsOpenFolio = true;\r\n reservationDepartureList();\r\n }\r\n }\r\n }\r\n\r\n // const data=(e)=>{\r\n // if((e.target.id == \"TotalRoomDeparture\" && totalRoomDepartures == 0) ||\r\n // (e.target.id == \"CheckedOutRoom\" && checkOutRoom == 0) ||\r\n // (e.target.id == \"ExpectedCheckoutRoom\" && exceptCheckOutRoom == 0)){\r\n // alert(\"wrong\");\r\n // }\r\n // else{\r\n // if (e.target.id == \"TotalRoomDeparture\") { \r\n // filterObj.DepartureDate=businessDate; \r\n // reservationDepartureList();\r\n // }\r\n // else if (e.target.id == \"CheckedOutRoom\") { \r\n // filterObj.DepartureDate=businessDate; \r\n // reservationDepartureList();\r\n // }\r\n // else if (e.target.id == \"ExpectedCheckoutRoom\") { \r\n // filterObj.DepartureDate=businessDate; \r\n // reservationDepartureList();\r\n // }\r\n // }\r\n // }\r\n\r\n return (\r\n
    \r\n
    \r\n

    Departures

    \r\n console.log(item, name)}\r\n >\r\n \r\n \r\n
    \r\n\r\n
    \r\n
    {\r\n console.log(\"Departure List click\");\r\n if (totalRoomDepartures != 0) {\r\n history.push(\"/ReservationDepartureList\", { filterObj });\r\n } else {\r\n await confirm({\r\n Message: \"You can not navigate due to no reservation.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n //alert(\"You can not navigate due to no reservation.\");\r\n }\r\n }}\r\n //onClick={data}\r\n >\r\n

    Total Room Departures

    \r\n
    \r\n
    \r\n {totalRoomDepartures}\r\n
    \r\n
    \r\n
    \r\n\r\n
    {\r\n console.log(\"Departure List click\");\r\n if (checkOutRoom != 0 || exceptCheckOutRoom != 0) {\r\n history.push(\"/ReservationDepartureList\", { filterObj });\r\n } else {\r\n await confirm({\r\n Message: \"You can not navigate due to no reservation.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n //alert(\"You can not navigate due to no reservation.\");\r\n }\r\n }}\r\n // onClick={data}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Checked Out Rooms

    \r\n \r\n {checkOutRoom}\r\n \r\n
    \r\n
    \r\n

    Expected Rooms

    \r\n \r\n {exceptCheckOutRoom}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Persons / Child\r\n {dashboardDepartureList.filter(x => x.Description == \"CheckedOutRoom\").map(adultChildValue => (\r\n {adultChildValue.Adult} / {adultChildValue.Child}\r\n ))}\r\n
    \r\n
    \r\n Persons / Child\r\n {dashboardDepartureList.filter(x => x.Description == \"ExpectedCheckoutRoom\").map(adultChildValue => (\r\n {adultChildValue.Adult} / {adultChildValue.Child}\r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Previous Day\r\n \r\n {previousDays}\r\n \r\n
    \r\n
    \r\n Early Departures\r\n \r\n {earlyDepartures}\r\n \r\n
    \r\n
    \r\n No Information\r\n \r\n {noinfo}\r\n \r\n
    \r\n
    \r\n Open Folio\r\n \r\n {openfoilo}\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n )\r\n}","import React, { useEffect, useState, } from 'react';\r\nimport { InnContextMenu, InnTableGrid, useConfirm } from '../../../../component';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from '../../../../reducer/authSlice';\r\nimport { GetReservationDashboardQueueReservationData } from '../../../../services/reservationDashboardService';\r\nimport { GetPropertyParameterByKeys } from '../../../../services/reservationService';\r\n\r\n\r\nexport function ReservationDashboardQueueTile(props) {\r\n\r\n const history = useHistory();\r\n const actionData = [\r\n { key: 1, value: \"Option 1\" },\r\n { key: 2, value: \"Option 2\" }\r\n ]\r\n const { confirm } = useConfirm();\r\n const [colList, setColList] = useState([]);\r\n const [dashboardQueueReservation, setDashboardQueueReservation] = useState({\r\n DashboardQueueReservationRoomCategory: [],\r\n DashboardQueueReservationAverageTime: [],\r\n });\r\n const propertyParameters = [\"BusinessDate\"];\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n const averageTime = [dashboardQueueReservation.DashboardQueueReservationAverageTime];\r\n const curr = useSelector(currentUser);\r\n const [clean, setClean] = useState(0);\r\n const [queue, setQueue] = useState(0);\r\n const [dirty, setDirty] = useState(0);\r\n const [outOfService, setOutOfService] = useState(0);\r\n const filterObj = {\r\n ArrivalDate: \"\", //\"01-Apr-2022\"\r\n CompanyProfileSerNo: 0,\r\n AgentProfileSerNo: 0,\r\n IsIncognito: null,\r\n strVIPStatus: \"\",\r\n strMemberShipLevel: \"\",\r\n strRoomType: \"\",\r\n SameDayReservationNArrival: null,\r\n BookingNo: \"\",\r\n BookingReferenceNo: \"\",\r\n IsArrivalOnSameDay: null,\r\n ETAFrom: \"\",\r\n ETATo: \"\",\r\n NightsFrom: 0,\r\n NightsTo: 0,\r\n strHkStatusSerNo: \"\",\r\n strFloorSerNo: \"\",\r\n IsNoInfo: null,\r\n IsEarlyArrival: null,\r\n IsLateArrival: null,\r\n RateSerNo: 0,\r\n IsUnassignRoom: null,\r\n IsWalkIn: null,\r\n SelectReservation: \"\",\r\n strReservationStatus: \"\",\r\n RoomFeatureSerNo: \"\",\r\n BlockSerNo: null,\r\n RoomFeatureValueSerNo: \"\",\r\n IsAdvanceCheckin: null,\r\n IsCancelCheckIn: null,\r\n AdvanceCheckInClean: null,\r\n AdvanceCheckInInspected: null,\r\n AdvanceCheckInUnassign: null,\r\n AdvanceCheckInDirty: null,\r\n AdvanceCheckInDueOut: null,\r\n AdvanceCheckInOutofService: null,\r\n }\r\n\r\n const headerQueueReservation = [\r\n { key: \"Room Type\", value: \"RoomCategory\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Queue\", value: \"Queue\", type: \"txt\", sorting: \"N\", align: 'center' },\r\n // { key: \"Inspected\", value: \"days\", type: \"txt\", sorting: \"N\", align: 'center' },\r\n { key: \"Clean\", value: \"Clean\", type: \"txt\", sorting: \"N\", align: 'center' },\r\n { key: \"Dirty\", value: \"Dirty\", type: \"txt\", sorting: \"N\", align: 'center' },\r\n { key: \"Out Of Service\", value: \"OutOfService\", type: \"txt\", sorting: \"N\", align: 'center' },\r\n ];\r\n const optBtnData = [\r\n { key: \"Cancel\", value: \"Cancel\" },\r\n { key: \"No Show\", value: \"No-Show\" },\r\n { key: \"Cange Status\", value: \"Cange Status\" },\r\n { key: \"Registration Card\", value: \"Registration Card\" },\r\n { key: \"Porforma Invoice\", value: \"Porforma Invoice\" },\r\n { key: \"Confirmation Email\", value: \"Confirmation Email\" },\r\n { key: \"Checkin\", value: \"Checkin\" },\r\n { key: \"Assign Room\", value: \"Assign Room\" },\r\n { key: \"Auto Assign Room\", value: \"Auto Assign Room\" },\r\n { key: \"Room Move\", value: \"Room Move\" },\r\n ];\r\n\r\n const setSelectedItem = (items) => {\r\n // SetgridSelectedItem(items);\r\n // settemp(!temp);\r\n };\r\n\r\n const getQueueReservationData = () => {\r\n GetReservationDashboardQueueReservationData(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo)).then(d => {\r\n setDashboardQueueReservation(d.data);\r\n console.log(\"Queue :\", d.data);\r\n\r\n let queue = 0;\r\n let clean = 0;\r\n let dirty = 0;\r\n let outOfService = 0;\r\n dashboardQueueReservation.DashboardQueueReservationRoomCategory.forEach(value => {\r\n if (value && value.Queue) {\r\n queue = queue + value.Queue;\r\n }\r\n setQueue(queue);\r\n if (value && value.Clean) {\r\n clean = clean + value.Clean;\r\n }\r\n setClean(clean);\r\n if (value && value.Dirty) {\r\n dirty = dirty + value.Dirty;\r\n }\r\n setDirty(dirty);\r\n if (value && value.OutOfService) {\r\n outOfService = outOfService + value.OutOfService;\r\n }\r\n setOutOfService(outOfService);\r\n console.log(\"Queue :\", queue);\r\n });\r\n });\r\n }\r\n const getPropertyParameterByKey = () => {\r\n GetPropertyParameterByKeys(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo), propertyParameters).then((d) => {\r\n console.log(\"keys >>\", d.data);\r\n let obj = d.data.find(x => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(d.data[0].value);\r\n }\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n getQueueReservationData();\r\n getPropertyParameterByKey();\r\n }, []);\r\n\r\n const reservationArrivalList = () => {\r\n history.push({\r\n pathname: \"/ReservationArrivalList\",\r\n state: {\r\n filterObj: filterObj,\r\n },\r\n });\r\n }\r\n\r\n const handleLinkCleanClick = async (e) => {\r\n let c = [];\r\n c = colList.filter(d => d.key !== \"Clean\");\r\n if (clean != 0) {\r\n if (e.target.id == c) {\r\n filterObj.ArrivalDate = businessDate;\r\n filterObj.AdvanceCheckInClean = true;\r\n }\r\n //console.log(\"Clean >>\", filterObj);\r\n reservationArrivalList();\r\n } else {\r\n await confirm({\r\n Message: \"You can not navigate due to no reservation.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n //alert(\"You can not navigate due to more reservation.\");\r\n }\r\n }\r\n\r\n const handleLinkDirtyClick = async (e) => {\r\n let d = [];\r\n d = colList.filter(d => d.key !== \"Dirty\");\r\n if (dirty != 0) {\r\n if (e.target.id == d) {\r\n filterObj.ArrivalDate = businessDate;\r\n filterObj.AdvanceCheckInDirty = true;\r\n }\r\n //console.log(\"Dirty >>\", filterObj);\r\n reservationArrivalList();\r\n } else {\r\n await confirm({\r\n Message: \"You can not navigate due to no reservation.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n //alert(\"You can not navigate due to more reservation.\");\r\n }\r\n }\r\n const handleLinkOutOfServiceClick = async (e) => {\r\n let OS = [];\r\n OS = colList.filter(d => d.key !== \"OutOfService\");\r\n if (outOfService != 0) {\r\n if (e.target.id == OS) {\r\n filterObj.ArrivalDate = businessDate;\r\n filterObj.AdvanceCheckInOutofService = true;\r\n }\r\n //console.log(\"OS >>\", filterObj);\r\n reservationArrivalList();\r\n } else {\r\n await confirm({\r\n Message: \"You can not navigate due to no reservation.\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n //alert(\"You can not navigate due to more reservation.\");\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n

    Queue Reservation

    \r\n console.log(item, name)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Queue

    \r\n \r\n {queue}\r\n \r\n
    \r\n
    \r\n

    Avg. wait time
    to Check-In

    \r\n \r\n {averageTime && averageTime.find(x => x.Description == \"AverageCheckinTime\")?.Time}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/*
    \r\n
    \r\n

    INSPECTED

    \r\n
    \r\n
    \r\n
    10
    \r\n
    \r\n
    */}\r\n
    \r\n
    \r\n

    CLEAN

    \r\n
    \r\n
    \r\n
    \r\n {clean}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    DIRTY

    \r\n
    \r\n
    \r\n
    \r\n {dirty}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n

    OUT OF SERVICE

    \r\n
    \r\n
    \r\n
    \r\n {outOfService}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnData}\r\n optClick={(v, d) => {\r\n console.log(v, d);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n\r\n}","import React, { useEffect, useState, } from 'react';\r\nimport { InnContextMenu, InnSingleDateSelection } from '../../../../component';\r\nimport InnLineBarChart from '../../../../component/innLineBarChart';\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from '../../../../reducer/authSlice';\r\nimport { GetReservationDashboardRevenueSummaryData } from '../../../../services/reservationDashboardService';\r\n\r\n\r\nexport function ReservationDashboardRevenueTile(props) {\r\n\r\n const actionData = [\r\n { key: 1, value: \"Option 1\" },\r\n { key: 2, value: \"Option 2\" }\r\n ]\r\n const currUser = useSelector(currentUser);\r\n const [reservationDashboardRevenueSummaryData, setReservationDashboardRevenueSummaryData] = useState([]);\r\n const [xAxisData, setXAxisData] = useState([]);\r\n const [yAxisData, setYAxisData] = useState([]);\r\n\r\n const loadRevenueSummeryData = () => {\r\n GetReservationDashboardRevenueSummaryData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(e => {\r\n setReservationDashboardRevenueSummaryData(e.data);\r\n let BigValue = [];\r\n let ADRValue = null;\r\n let maxValue = [];\r\n e.data.forEach(r => {\r\n maxValue.push((\r\n Math.max(r.AverageDailyRate)\r\n ));\r\n for (let i = 0; i < maxValue.length; i++) {\r\n ADRValue = maxValue[i]\r\n BigValue = Math.max(BigValue, ADRValue)\r\n }\r\n });\r\n let maxNearestValue = Math.ceil(BigValue / 1000);\r\n maxNearestValue = maxNearestValue * 1000;\r\n let yValue = maxNearestValue / 4;\r\n let result = 0;\r\n let yData = [];\r\n for (let i = 0; i <= 3; i++) {\r\n result += yValue;\r\n yData.push(result);\r\n }\r\n \r\n setYAxisData(yData)\r\n let xAxis = [];\r\n e.data.forEach(d => {\r\n xAxis.push({\r\n name: d.RoomType,\r\n data1: d.Salable,\r\n data2: d.RoomSold,\r\n data3: d.NonDeduct,\r\n data4: d.AverageDailyRate,\r\n });\r\n });\r\n setXAxisData(xAxis)\r\n });\r\n }\r\n useEffect(() => {\r\n loadRevenueSummeryData();\r\n }, []);\r\n\r\n return (\r\n
    \r\n
    \r\n

    Reservation Revenue Summary

    \r\n console.log(item, name)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Salable Rooms\r\n
    \r\n
    \r\n
    \r\n Room Sold\r\n
    \r\n
    \r\n
    \r\n Non-Deduct Rooms\r\n
    \r\n
    \r\n
    \r\n ADR\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}","import React, { useEffect, useState, } from 'react';\r\nimport { InnContextMenu, InnSingleDateSelection } from '../../../../component';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from '../../../../reducer/authSlice';\r\nimport { GetReservationDashboardRoomAvailability } from '../../../../services/reservationDashboardService';\r\n\r\nexport function ReservationDashboardRoomAvailabilityTile(props) {\r\n\r\n const history = useHistory();\r\n const actionData = [\r\n { key: 1, value: \"Option 1\" },\r\n { key: 2, value: \"Option 2\" }\r\n ]\r\n\r\n const currUser = useSelector(currentUser);\r\n const [data, setData] = useState([]);\r\n const [roomAvailabilitySummary, setRoomAvailabilitySummary] = useState([]);\r\n const [uniqueDateWiseData, setUniqueDateWiseData] = useState([]);\r\n const [selectedDate, setSelectedDate] = useState('');\r\n\r\n const loadRoomAvailabilitySummary = () => {\r\n GetReservationDashboardRoomAvailability(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n let temp = d.data.filter(x => x.Date == d.data[0].Date);\r\n if (d.data[0] != undefined) {\r\n setSelectedDate(d.data[0].Date)\r\n }\r\n let tempData = [];\r\n let curr = [];\r\n for (let i = 0; i < temp.length; i++) {\r\n curr.push(temp[i]);\r\n if ((i + 1) % 5 === 0) {\r\n tempData.push(curr);\r\n curr = [];\r\n }\r\n if (i + 1 === temp.length) {\r\n let temp = curr;\r\n for (let i = 0; i < 4; i++) {\r\n if (temp.length != 5) {\r\n temp.push({});\r\n } else {\r\n break;\r\n }\r\n }\r\n tempData.push(temp);\r\n }\r\n }\r\n setData(d.data);\r\n setRoomAvailabilitySummary(tempData);\r\n\r\n // const groupByDate = data.reduce((group, dates) => {\r\n // const { Date } = dates;\r\n // group[Date] = group[Date] ?? [];\r\n // group[Date].push(dates);\r\n // return group;\r\n // }, {}); \r\n // console.log(\"Final >>>\", groupByDate);\r\n\r\n const uniqueDate = [];\r\n console.log('is data real???', d.data);\r\n d.data.map(d => {\r\n if (uniqueDate.indexOf(d.Date) === -1) {\r\n uniqueDate.push(d.Date);\r\n }\r\n });\r\n console.log(\"uniqueDate>>\", uniqueDate);\r\n const DateWiseData = [];\r\n for (let i = 0; i < uniqueDate.length; i++) {\r\n let dateFilterData = d.data.filter(item => item.Date == uniqueDate[i]);\r\n\r\n let sumAvailable = dateFilterData.reduce(function (result, current) {\r\n return result + +current.Available\r\n }, 0);\r\n let sumSold = dateFilterData.reduce(function (result, current) {\r\n return result + +current.Sold\r\n }, 0);\r\n let sumTotal = dateFilterData.reduce(function (result, current) {\r\n return result + +current.Total\r\n }, 0);\r\n\r\n let objDateWise = {\r\n Date: uniqueDate[i],\r\n Available: sumAvailable,\r\n Sold: sumSold,\r\n Total: sumTotal\r\n }\r\n DateWiseData.push(objDateWise);\r\n }\r\n console.log(\"DateWiseData>>\", DateWiseData);\r\n setUniqueDateWiseData(DateWiseData);\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n loadRoomAvailabilitySummary();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (data.length > 0) {\r\n let temp = data.filter(d => d.Date == selectedDate);\r\n let tempData = [];\r\n let curr = [];\r\n for (let i = 0; i < temp.length; i++) {\r\n curr.push(temp[i]);\r\n if ((i + 1) % 5 === 0) {\r\n tempData.push(curr);\r\n curr = [];\r\n }\r\n if (i + 1 === temp.length) {\r\n let temp = curr\r\n for (let i = 0; i < 4; i++) {\r\n if (temp.length !== 5) {\r\n temp.push({});\r\n } else {\r\n break;\r\n }\r\n }\r\n tempData.push(temp);\r\n }\r\n }\r\n console.log('final Data', temp);\r\n console.log('tempData', tempData);\r\n setRoomAvailabilitySummary(tempData);\r\n }\r\n }, [selectedDate, data]);\r\n return (\r\n
    \r\n
    \r\n

    Room Availibility Summary

    \r\n console.log(item, name)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {uniqueDateWiseData.map((item, index) => {\r\n return
    { setSelectedDate(item.Date) }}>\r\n
    {item.Date}Available : {item.Available}
    \r\n
    Sold : {item.Sold}Total : {item.Total}
    \r\n
    \r\n })}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {roomAvailabilitySummary.map((item, index) => {\r\n return (\r\n
    \r\n {item.map((d, index) => {\r\n return (\r\n
    \r\n {(d.RoomType != undefined)\r\n ?\r\n <>\r\n

    {d?.RoomType}

    \r\n
    \r\n Available : {d?.Available}\r\n
    \r\n
    \r\n Sold : {d?.Sold}\r\n
    \r\n \r\n :\r\n null}\r\n
    \r\n )\r\n })}\r\n
    \r\n )\r\n })}\r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}","import React, { useEffect, useState, } from 'react';\r\nimport { InnContextMenu, InnSingleDateSelection } from '../../../../component';\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\n\r\nexport function ReservationDashboardRoomMaintenanceTile(props){\r\n\r\n const history = useHistory();\r\n const actionData = [\r\n { key: 1, value: \"Option 1\" },\r\n { key: 2, value: \"Option 2\" }\r\n ]\r\n\r\n return(\r\n
    \r\n
    \r\n

    Room Maintenance

    \r\n console.log(item, name)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    Total Request

    \r\n 10\r\n
    \r\n
    \r\n

    Resolved

    \r\n 14\r\n
    \r\n
    \r\n

    Un-Resolved

    \r\n 6\r\n
    \r\n
    \r\n
    \r\n )\r\n}","import React, { useEffect, useState, } from 'react';\r\nimport { InnContextMenu, InnSingleDateSelection } from '../../../../component';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { GetReservationDashboardRoomStatusData } from '../../../../services/reservationDashboardService';\r\nimport { currentUser } from '../../../../reducer/authSlice';\r\nimport { useSelector } from 'react-redux';\r\n\r\nexport function ReservationDashboardRoomStatusTile(props) {\r\n\r\n const history = useHistory();\r\n const actionData = [\r\n { key: 1, value: \"Option 1\" },\r\n { key: 2, value: \"Option 2\" }\r\n ]\r\n const curr = useSelector(currentUser);\r\n const [dashboardRoomStatus, setDashboardRoomStatus] = useState([]);\r\n\r\n useEffect(() => {\r\n GetReservationDashboardRoomStatusData(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo)).then((d) => {\r\n setDashboardRoomStatus(d.data);\r\n console.log(\"Room >>>\", d.data);\r\n });\r\n }, []);\r\n\r\n return (\r\n
    \r\n
    \r\n

    Room Status

    \r\n console.log(item, name)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    INSPECTED

    \r\n
    \r\n
    \r\n
    \r\n Occupied\r\n \r\n {dashboardRoomStatus && dashboardRoomStatus.find(x => x.HKStatusType == \"Insp\")?.Occupied}\r\n \r\n
    \r\n
    \r\n Assigned\r\n \r\n {dashboardRoomStatus && dashboardRoomStatus.find(x => x.HKStatusType == \"Insp\")?.Assigned}\r\n \r\n
    \r\n
    \r\n Vacant\r\n \r\n {dashboardRoomStatus && dashboardRoomStatus.find(x => x.HKStatusType == \"Insp\")?.Vacant}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    CLEAN

    \r\n
    \r\n
    \r\n
    \r\n Occupied\r\n \r\n {dashboardRoomStatus && dashboardRoomStatus.find(x => x.HKStatusType == \"Clean\")?.Occupied}\r\n \r\n
    \r\n
    \r\n Assigned\r\n \r\n {dashboardRoomStatus && dashboardRoomStatus.find(x => x.HKStatusType == \"Clean\")?.Assigned}\r\n \r\n
    \r\n
    \r\n Vacant\r\n \r\n {dashboardRoomStatus && dashboardRoomStatus.find(x => x.HKStatusType == \"Clean\")?.Vacant}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    DIRTY

    \r\n
    \r\n
    \r\n
    \r\n Occupied\r\n \r\n {dashboardRoomStatus && dashboardRoomStatus.find(x => x.HKStatusType == \"Dirty\")?.Occupied}\r\n \r\n
    \r\n
    \r\n Assigned\r\n \r\n {dashboardRoomStatus && dashboardRoomStatus.find(x => x.HKStatusType == \"Dirty\")?.Assigned}\r\n \r\n
    \r\n
    \r\n Vacant\r\n \r\n {dashboardRoomStatus && dashboardRoomStatus.find(x => x.HKStatusType == \"Dirty\")?.Vacant}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    OUT OF SERVICE

    \r\n
    \r\n
    \r\n
    \r\n Occupied\r\n \r\n {dashboardRoomStatus && dashboardRoomStatus.find(x => x.HKStatusType == \"OS\")?.Occupied}\r\n \r\n
    \r\n
    \r\n Assigned\r\n \r\n {dashboardRoomStatus && dashboardRoomStatus.find(x => x.HKStatusType == \"OS\")?.Assigned}\r\n \r\n
    \r\n
    \r\n Vacant\r\n \r\n {dashboardRoomStatus && dashboardRoomStatus.find(x => x.HKStatusType == \"OS\")?.Vacant}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n Queue\r\n
    \r\n {dashboardRoomStatus && dashboardRoomStatus.find(x => x.HKStatusType == \"Queue\")?.Value}\r\n
    \r\n
    \r\n
    \r\n Skip\r\n
    \r\n {dashboardRoomStatus && dashboardRoomStatus.find(x => x.HKStatusType == \"Skip\")?.Value}\r\n
    \r\n
    \r\n
    \r\n Sleep\r\n
    \r\n {dashboardRoomStatus && dashboardRoomStatus.find(x => x.HKStatusType == \"Sleep\")?.Value}\r\n
    \r\n
    \r\n
    \r\n DND\r\n
    \r\n {dashboardRoomStatus && dashboardRoomStatus.find(x => x.HKStatusType == \"DND\")?.Value}\r\n
    \r\n
    \r\n
    \r\n Scanty Baggage\r\n
    \r\n {dashboardRoomStatus && dashboardRoomStatus.find(x => x.HKStatusType == \"Scanty Baggage\")?.Value}\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n )\r\n}","import React, { useEffect, useState, } from 'react';\r\nimport { InnContextMenu, InnSingleDateSelection } from '../../../../component';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport InnLineBarChart from '../../../../component/innLineBarChart';\r\nimport { GetReservationDashboardRoomSummaryData } from '../../../../services/reservationDashboardService';\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from '../../../../reducer/authSlice';\r\n\r\nexport function ReservationDashboardRoomSummaryTile(props){\r\n const history = useHistory();\r\n const actionData = [\r\n { key: 1, value: \"Option 1\" },\r\n { key: 2, value: \"Option 2\" }\r\n ]\r\n const currUser = useSelector(currentUser);\r\n\r\n const [ reservationRoomSummeryData, setReservationRoomSummeryData ] = useState([]);\r\n\r\n const loadRoomSummeryTile = () => {\r\n GetReservationDashboardRoomSummaryData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(e => {\r\n setReservationRoomSummeryData(e.data);\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n loadRoomSummeryTile();\r\n },[])\r\n\r\n \r\n return(\r\n
    \r\n
    \r\n

    Room Summary

    \r\n console.log(item, name)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    Physical Rooms

    \r\n {reservationRoomSummeryData && reservationRoomSummeryData?.find(x =>\r\n x.Description==\"Physical\")?.Value}\r\n
    \r\n
    \r\n

    Out of services

    \r\n {reservationRoomSummeryData && reservationRoomSummeryData?.find(x => \r\n x.Description == \"OutOfService\")?.Value}\r\n
    \r\n
    \r\n

    Out of Order

    \r\n {reservationRoomSummeryData && reservationRoomSummeryData?.find(x =>\r\n x.Description == \"OutOforder\")?.Value}\r\n
    \r\n
    \r\n
    \r\n )\r\n}","import React, { useEffect, useState, } from 'react';\r\nimport { InnContextMenu, InnSingleDateSelection } from '../../../../component';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from '../../../../reducer/authSlice';\r\nimport { GetReservationDashboardReservationTodayData } from '../../../../services/reservationDashboardService';\r\n\r\nexport function ReservationDashboardTodayTile(props) {\r\n\r\n const history = useHistory();\r\n const currUser = useSelector(currentUser);\r\n const actionData = [\r\n { key: 1, value: \"Option 1\" },\r\n { key: 2, value: \"Option 2\" }\r\n ]\r\n const [resTodayData, setResTodayData] = useState([]);\r\n\r\n const fillResTodayData = () => {\r\n GetReservationDashboardReservationTodayData(currUser.ClientSerNo, currUser.PropertySerNo).then(d => {\r\n console.log(\"ResTodayData\", d.data)\r\n let count = 1;\r\n d.data.forEach((item) => {\r\n if (item.Description != 'ADR' && item.Description != 'Revenue') {\r\n item['SerNo'] = count;\r\n count += 1;\r\n }\r\n });\r\n setResTodayData(d.data)\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n fillResTodayData();\r\n }, [])\r\n return (\r\n
    \r\n
    \r\n

    Reservations Today

    \r\n console.log(item, name)}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n resTodayData.map((item, index) => {\r\n return
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {item.Description}

    \r\n
    \r\n
    \r\n
    \r\n

    Rooms

    \r\n {item.Room}\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Persons

    \r\n {item.Adult}\r\n
    \r\n
    \r\n

    VIPs

    \r\n {item.Vip}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n })\r\n }\r\n {/*
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Tentative

    \r\n
    \r\n
    \r\n
    \r\n

    Rooms

    \r\n 215\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Persons

    \r\n 189\r\n
    \r\n
    \r\n

    VIPs

    \r\n 19\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Hold

    \r\n
    \r\n
    \r\n
    \r\n

    Rooms

    \r\n 184\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Persons

    \r\n 189\r\n
    \r\n
    \r\n

    VIPs

    \r\n 19\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Picked-Up

    \r\n
    \r\n
    \r\n
    \r\n

    Rooms

    \r\n 189\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Persons

    \r\n 189\r\n
    \r\n
    \r\n

    VIPs

    \r\n 19\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Cancelled

    \r\n
    \r\n
    \r\n
    \r\n

    Rooms

    \r\n 189\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Persons

    \r\n 189\r\n
    \r\n
    \r\n

    VIPs

    \r\n 19\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    */}\r\n
    \r\n
    \r\n
    \r\n

    ADR

    \r\n {resTodayData.find((x) => x.Description == 'ADR')?.Value.toLocaleString(\"hi-IN\",{style:\"currency\", currency:\"INR\"})}\r\n
    \r\n
    \r\n

    Revenue

    \r\n {resTodayData.find((x) => x.Description == 'Revenue')?.Value.toLocaleString(\"hi-IN\",{style:\"currency\", currency:\"INR\"})}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextarea,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnSingleDateSelection\r\n} from \"../../../../component\";\r\nimport {\r\n GetRateCodeMasterBySerNo,\r\n GetCancellationRuleMaster,\r\n GetPackageTypeMaster,\r\n cmbGetRateTypeMaster,\r\n GetRateGroupMaster,\r\n GetRateCodeMiscellaneousMaster,\r\n GetPackageMaster,\r\n AddEditRateCodeMaster,\r\n} from \"../../../../services/frontMasterService\";\r\nimport {\r\n GetDepositRuleMaster,\r\n GetTransactionMaster,\r\n cmbGetPackagePostingRhythm,\r\n cmbGetPackagePostingType,\r\n GetPropertyParameterByKeys\r\n} from \"../../../../services/reservationService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useAlert } from \"../../../../utils/hooks/useAlert\";\r\nimport { IndiFnBDiscount } from \"../indicators/indi-fnb-discount\"\r\nimport { findAllByDisplayValue } from \"@testing-library/react\";\r\nimport moment from \"moment\";\r\n\r\nexport function RateCodeMasterModelPopup(props) {\r\n const currUser = useSelector(currentUser);\r\n const propertyParameters = [\"BusinessDate\"];\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n const [fnbObject, setFnbObject] = useState([]);\r\n const { innkeyAlert } = useAlert();\r\n const defaultMISC = {\r\n RateSerNo: props.para.RateSerNo,\r\n MiscSerNo: 0\r\n }\r\n const defaultMP = {\r\n RateSerNo: props.para.RateSerNo,\r\n PackageSerNo: 0,\r\n PackagePrice: 0,\r\n postingtype: \"0\",\r\n postingRhythm: \"\",\r\n //CalculationRuleSerNo: \"\",\r\n ForecastNextDay: false,\r\n TransactionSerNo: 0\r\n }\r\n const defaultPS = [{\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n RateSerNo: props.para.RateSerNo,\r\n OutletGroupSerNo: 0,\r\n OutletSerNo: 0,\r\n DiscountPercentage: 0.00,\r\n PosItemGroupSerNo: 0,\r\n DiscountSerNo: 0,\r\n OutletGroupName: \"\",\r\n OutletName: \"\",\r\n ItemGroupName: \"\"\r\n }]\r\n const defaultRateCodeObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n RateSerNo: props.para.RateSerNo,\r\n Name: \"\",\r\n RateCode: \"\",\r\n LongDescription: \"\",\r\n Discountable: false,\r\n IsDayUseRate: false,\r\n IsOTARate: false,\r\n IsComplimentary: false,\r\n IsTaxInclusive: false,\r\n WebURL: \"\",\r\n StartDate: businessDate,\r\n EndDate: businessDate,\r\n RateGroupSerNo: 0,\r\n IsPrivilegedRate: false,\r\n TransactionSerNo: 0,\r\n FolioText: \"\",\r\n IsPrintRate: false,\r\n Negotiated: false,\r\n IsHouseUse: false,\r\n SellMessage: \"\",\r\n IsApplyDayType: false,\r\n MinOccupancy: 0,\r\n MaxOccupancy: 0,\r\n MinAdvanceBookingDays: 0,\r\n MaxAdvanceBookingDays: 0,\r\n FloorRate: 0,\r\n CeilingRate: 0,\r\n IsDiscloseRate: false,\r\n FreeChild: 0,\r\n Child: 0,\r\n Sequence: 0,\r\n CancellationRuleSerNo: 0,\r\n DepositRuleSerNo: 0,\r\n RateTypeSerNo: \"\",\r\n FnbDiscountType: \"\",\r\n MealPlanList: defaultMP,\r\n MiscellaneousList: defaultMISC,\r\n POSDiscountList: defaultPS,\r\n Mode: \"View\"\r\n }\r\n\r\n const defaultValid = {\r\n Name: \"\",\r\n LongDescription: \"\",\r\n MinOccupancy: 0,\r\n MaxOccupancy: 0,\r\n MinAdvanceBookingDays: 0,\r\n MaxAdvanceBookingDays: 0,\r\n FloorRate: 0,\r\n CeilingRate: 0,\r\n FreeChild: 0,\r\n TransactionSerNo: \"\",\r\n CancellationRuleSerNo: 0,\r\n DepositRuleSerNo: 0,\r\n RateTypeSerNo: \"0\"\r\n }\r\n\r\n const defaultPackageMaster = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n RateSerNo: props.para.RateSerNo,\r\n PackageSerNo: 0,\r\n Name: \"\",\r\n PackagePrice: 0,\r\n Taxes: \"\",\r\n CalculationRuleSerNo: \"\",\r\n CalculationRule: \"\",\r\n TransactionSerNo: 0,\r\n IsTaxInclusive: false,\r\n PostingRhythm: \"\",\r\n PostingType: \"0\",\r\n PostingRhythmSerNo: \"\",\r\n PostingTypeSerNo: \"0\",\r\n PackageType: \"\",\r\n ForecastNextDay: false,\r\n MiscSerNo: 0,\r\n Description: \"\",\r\n Mode: \"View\",\r\n }\r\n\r\n //#region ratecode state\r\n const [showPackageInclusionPopup, SetPackageInclusionPopup] = useState(false);\r\n const [rateCodeObj, setRateCodeObj] = useState(defaultRateCodeObj);\r\n const [rateTypeData, setRateTypeData] = useState([]);\r\n const [cancellationRuleData, setCancellationRuleData] = useState([]);\r\n const [depositRuleData, setDepositRuleData] = useState([]);\r\n const [rateCategory, setRateCategory] = useState([]);\r\n const [revenueTransactionCode, setRevenueTransactionCode] = useState([]);\r\n const [filteredRateCategory, setFilteredRateCategory] = useState([]);\r\n const [isActive, setIsActive] = useState(false);\r\n const [sequenceList, setSequenceList] = useState([]);\r\n const [rateCodeBySerNo, setRateCodeBySerNo] = useState([]);\r\n const [isValid, setIsValid] = useState(defaultValid);\r\n //const [selectedRateSerNo,setselectedRateSerNo]=useState(props.para.RateSerNo);\r\n //#endregion\r\n\r\n //#region PackageInclusion State \r\n const [packageInclusionType, setPackageInclusionType] = useState([]);\r\n const [filterpackageInclusionType, setFilterPackageInclusionType] = useState([]);\r\n const [packageObj, setPackageObj] = useState(defaultPackageMaster);\r\n const [selectPackageInclusion, setSelectPackageInclusion] = useState([]);\r\n const [selectedPackageObj, setSelectedPackageObj] = useState(defaultPackageMaster);\r\n const [showFnBIndi, setShowFnBIndi] = useState(false);\r\n const [rateCodeMiscellaniousMaster, setRatecodeMiscellaniousMaster] = useState([]);\r\n const [packageMaster, setPackageMaster] = useState([]);\r\n const [postingtype, setPostingType] = useState([]);\r\n const [postingRhythm, setPostingRhythm] = useState([]);\r\n const [mealPlanLocalList, setMealPlanLocalList] = useState([]);\r\n const [packageInclusionObj, setPackageInclusionObj] = useState({});\r\n const [tempPackageSerNo, setTempPackageSerNo] = useState();\r\n const [selectedMealPlanSerNo, setSelectedMealPlanSerNo] = useState();\r\n let packageType = packageInclusionObj.PackageType;\r\n // let packageType = packageObj.PackageType.toString().trim();\r\n //#endregion\r\n\r\n //-----------------------------------------------------------#region rateCode Events ----------------------------------------------------------------------\r\n\r\n const fillRateCodeMasterBySerNo = () => {\r\n setIsActive(true);\r\n GetRateCodeMasterBySerNo(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), props.para.RateSerNo).then(d => {\r\n // let tmpRate = d.data[0];\r\n // tmpRate.Mode = \"View\";\r\n // setRateCodeObj(tmpRate);\r\n // setRateCodeBySerNo(tmpRate);\r\n // if (rateCategory != undefined && rateCategory.length > 0) {\r\n // let tempCatg = rateCategory.filter((x) => x.RateTypeSerno === tmpRate.RateTypeSerNo);\r\n // setFilteredRateCategory(tempCatg);\r\n // }\r\n // }\r\n\r\n\r\n // if (d.data != undefined && d.data.length > 0) {\r\n d.data.Mode = \"View\";\r\n setMealPlanLocalList(d.data.MealPlanList);\r\n if (d.data.MiscellaneousList.length > 0) {\r\n settempMiscellaneous(d.data.MiscellaneousList);\r\n fillRateCodeMiscellaneousMaster(d.data.MiscellaneousList);\r\n }\r\n setRateCodeObj(d.data);\r\n setRateCodeBySerNo(d.data);\r\n if (rateCategory == undefined || rateCategory.length == 0) {\r\n fillRateCategory();\r\n }\r\n else if (d.data != undefined) {\r\n filterRateCategory(d.data.RateTypeSerNo, rateCategory);\r\n }\r\n // }\r\n // else{\r\n // fillRateCategory();\r\n // }\r\n\r\n setIsActive(false);\r\n });\r\n }\r\n\r\n const filterRateCategory = (pRateTypeSerNo, pRateCategory) => {\r\n if (pRateCategory != undefined && pRateCategory.length > 0 && pRateTypeSerNo != undefined) {\r\n let tempCatg = pRateCategory.filter((x) => x.RateTypeSerno === pRateTypeSerNo);\r\n setFilteredRateCategory(tempCatg);\r\n }\r\n }\r\n\r\n const fillCancellationRule = () => {\r\n setIsActive(true);\r\n GetCancellationRuleMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n\r\n var tmpData = [];\r\n d.data.forEach(ele => {\r\n tmpData.push({ \"key\": ele.CancellationRuleSerNo, \"value\": ele.Name });\r\n });\r\n tmpData.splice(0, 0, { \"key\": 0, \"value\": \"Select\" });\r\n setCancellationRuleData(tmpData);\r\n setIsActive(false);\r\n });\r\n }\r\n const fillDepositRule = () => {\r\n setIsActive(true);\r\n GetDepositRuleMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n var tmpData = [];\r\n d.data.forEach(ele => {\r\n tmpData.push({ \"key\": ele.DepositRuleSerNo, \"value\": ele.Name });\r\n });\r\n tmpData.splice(0, 0, { \"key\": 0, \"value\": \"Select\" });\r\n setDepositRuleData(tmpData);\r\n setIsActive(false);\r\n });\r\n }\r\n\r\n const fillRateType = () => {\r\n setIsActive(true);\r\n cmbGetRateTypeMaster(parseInt(currUser.ClientSerNo)).then(d => {\r\n var tmpRateType = [];\r\n d.data.forEach(ele => {\r\n var RateTypeSerNo = ele.key;\r\n var Name = ele.value;\r\n tmpRateType.push({ \"key\": RateTypeSerNo, \"value\": Name });\r\n });\r\n tmpRateType.splice(0, 0, { \"key\": '0', \"value\": \"Select\" });\r\n //tmpRateType.splice(0, { \"key\": 1, \"value\": tmpRateType.value });\r\n setRateTypeData(tmpRateType);\r\n setIsActive(false);\r\n fillRateCategory();\r\n });\r\n\r\n }\r\n\r\n const fillRateCategory = () => {\r\n setIsActive(true);\r\n GetRateGroupMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n setRateCategory(d.data);\r\n setIsActive(false);\r\n filterRateCategory(rateCodeBySerNo.RateTypeSerNo, d.data);\r\n });\r\n }\r\n\r\n const fillRevenueTransactionCode = () => {\r\n setIsActive(true);\r\n GetTransactionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"C\", \"F\").then(d => {\r\n let temp = d.data.filter((x) => x.ChargeType == \"ROOM\");\r\n\r\n var tmpData = [{ \"key\": 0, \"value\": \"Select\" }];\r\n temp.forEach(ele => {\r\n tmpData.push({ \"key\": ele.TransactionSerNo, \"value\": ele.Name });\r\n });\r\n setRevenueTransactionCode(tmpData);\r\n setIsActive(false);\r\n });\r\n }\r\n\r\n const fillBusinessDate = () => {\r\n setIsActive(true);\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), propertyParameters).then(d => {\r\n let obj = d.data.find(x => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(d.data[0].value);\r\n setRateCodeObj((prev) => ({ ...prev, StartDate: d.data[0].value, EndDate: d.data[0].value }));\r\n }\r\n setIsActive(false);\r\n });\r\n }\r\n\r\n const seqList = () => {\r\n let tempSeqList = [];\r\n for (let i = 0; i <= 100; i++) {\r\n let tempData = tempSeqList.find(x => x.key == parseInt(i));\r\n if (tempData == undefined) {\r\n tempSeqList.push({\r\n key: parseInt(i),\r\n value: parseInt(i),\r\n });\r\n setSequenceList(tempSeqList);\r\n }\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (props.para.RateSerNo) {\r\n fillRateCodeMasterBySerNo();\r\n }\r\n }, [props.para.RateSerNo]);\r\n\r\n useEffect(() => {\r\n fillRateType();\r\n fillCancellationRule();\r\n fillDepositRule();\r\n fillRevenueTransactionCode();\r\n fillBusinessDate();\r\n seqList();\r\n\r\n fillPackageInclusionType();\r\n fillPackageMaster();\r\n fillPostingRhythm();\r\n fillPostingType();\r\n }, []);\r\n\r\n const isValidOnlyIntegerNumber = (value) => {\r\n let IsValid = /^[0-9]+$/.test(value);\r\n return IsValid;\r\n }\r\n\r\n const ClearAllFields = () => {\r\n setIsValid(defaultValid);\r\n setRateCodeObj(prev => ({\r\n ...prev,\r\n RateSerNo: 0,\r\n Name: \"\",\r\n LongDescription: \"\",\r\n StartDate: businessDate,\r\n EndDate: businessDate,\r\n CancellationRuleSerNo: 0,\r\n DepositRuleSerNo: 0,\r\n MinOccupancy: 0,\r\n MaxOccupancy: 0,\r\n MinAdvanceBookingDays: 0,\r\n MaxAdvanceBookingDays: 0,\r\n FloorRate: 0,\r\n CeilingRate: 0,\r\n FreeChild: 0,\r\n Negotiated: false,\r\n IsOTARate: false,\r\n IsTaxInclusive: false,\r\n FolioText: \"\",\r\n IsPrintRate: false,\r\n IsDiscloseRate: false,\r\n Discountable: false,\r\n IsDayUseRate: false,\r\n IsComplimentary: false,\r\n IsHouseUse: false,\r\n IsApplyDayType: false,\r\n SellMessage: \"\",\r\n RateTypeSerNo: null,\r\n TransactionSerNo: null,\r\n RateGroupSerNo: null,\r\n Sequence: 1,\r\n WebURL: \"\",\r\n CancellationRuleSerNo: 0,\r\n DepositRuleSerNo: 0\r\n }));\r\n // setRateCodeObj(defaultRateCodeObj)\r\n setRateCodeBySerNo([]);\r\n settempMiscellaneous([]);\r\n setMealPlanLocalList([]);\r\n setFnbObject([]);\r\n }\r\n\r\n const validPage = () => {\r\n var isvalid = true;\r\n if (rateCodeObj.Name.trim().length === 0 ) {\r\n isvalid = false;\r\n setIsValid(prev => ({ ...prev, Name: \"please Enter Name\" }));\r\n }\r\n if (isValidOnlyIntegerNumber(rateCodeObj.MinOccupancy) == false) {\r\n isvalid = false;\r\n setIsValid(prev => ({ ...prev, MinOccupancy: \"Invalid Input\" }));\r\n }\r\n if (isValidOnlyIntegerNumber(rateCodeObj.MaxOccupancy) == false) {\r\n isvalid = false;\r\n setIsValid(prev => ({ ...prev, MaxOccupancy: \"Invalid Input\" }));\r\n }\r\n if (isValidOnlyIntegerNumber(rateCodeObj.MinAdvanceBookingDays) == false) {\r\n isvalid = false;\r\n setIsValid(prev => ({ ...prev, MinAdvanceBookingDays: \"Invalid Input\" }));\r\n }\r\n if (isValidOnlyIntegerNumber(rateCodeObj.MaxAdvanceBookingDays) == false) {\r\n isvalid = false;\r\n setIsValid(prev => ({ ...prev, MaxAdvanceBookingDays: \"Invalid Input\" }));\r\n }\r\n if (isValidOnlyIntegerNumber(rateCodeObj.FloorRate) == false) {\r\n isvalid = false;\r\n setIsValid(prev => ({ ...prev, FloorRate: \"Invalid Input\" }));\r\n }\r\n if (isValidOnlyIntegerNumber(rateCodeObj.CeilingRate) == false) {\r\n isvalid = false;\r\n setIsValid(prev => ({ ...prev, CeilingRate: \"Invalid Input\" }));\r\n }\r\n if (isValidOnlyIntegerNumber(rateCodeObj.FreeChild) == false) {\r\n isvalid = false;\r\n setIsValid(prev => ({ ...prev, FreeChild: \"Invalid Input\" }));\r\n }\r\n if (rateCodeObj.TransactionSerNo == 0 || rateCodeObj.TransactionSerNo == \"\") {\r\n isvalid = false;\r\n setIsValid(prev => ({ ...prev, TransactionSerNo: \"Please Select Transaction Code\" }));\r\n }\r\n if (new Date(rateCodeObj.StartDate).getDate() > new Date(rateCodeObj.EndDate).getDate()) {\r\n isvalid = false;\r\n alert(\"End date can not less than start date.\");\r\n }\r\n return isvalid;\r\n\r\n }\r\n\r\n const handleOnAddNewClick = () => {\r\n ClearAllFields();\r\n let obj = JSON.parse(JSON.stringify(defaultRateCodeObj));\r\n obj.RateTypeSerNo = \"0\";\r\n obj.Mode = \"Add\";\r\n setRateCodeObj(obj);\r\n setIsActive(true);\r\n }\r\n\r\n const handleOnEditClick = () => {\r\n if (rateCodeObj.RateSerNo !== 0) {\r\n setRateCodeObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n setIsActive(true);\r\n }\r\n else {\r\n alert(\"Please select Rate Code Name\");\r\n }\r\n }\r\n\r\n const handleOnCancelClick = async () => {\r\n let Ok = await innkeyAlert(\"Would you like to discard the changes you have made?\");\r\n if (Ok) {\r\n fillRateCodeMasterBySerNo(props.para.RateSerNo);\r\n setRateCodeObj(prev => ({ ...prev, Mode: \"View\" }));\r\n setIsActive(false);\r\n }\r\n }\r\n\r\n const handleOnSaveClick = () => {\r\n var IsValidPage = validPage();\r\n if (IsValidPage) {\r\n setIsActive(true);\r\n rateCodeObj.Sequence = parseInt(rateCodeObj.Sequence);\r\n rateCodeObj.RateGroupSerNo = parseInt(rateCodeObj.RateGroupSerNo);\r\n rateCodeObj.TransactionSerNo = parseInt(rateCodeObj.TransactionSerNo);\r\n rateCodeObj.CancellationRuleSerNo = parseInt(rateCodeObj.CancellationRuleSerNo);\r\n rateCodeObj.DepositRuleSerNo = parseInt(rateCodeObj.DepositRuleSerNo);\r\n rateCodeObj.MinAdvanceBookingDays = parseInt(rateCodeObj.MinAdvanceBookingDays);\r\n rateCodeObj.MaxAdvanceBookingDays = parseInt(rateCodeObj.MaxAdvanceBookingDays);\r\n rateCodeObj.MinOccupancy = parseInt(rateCodeObj.MinOccupancy);//\r\n rateCodeObj.MaxOccupancy = parseInt(rateCodeObj.MaxOccupancy);// \r\n rateCodeObj.FloorRate = parseFloat(rateCodeObj.FloorRate);\r\n rateCodeObj.CeilingRate = parseFloat(rateCodeObj.CeilingRate);\r\n rateCodeObj.FreeChild = parseInt(rateCodeObj.FreeChild);\r\n\r\n rateCodeObj.FnbDiscountType = rateCodeBySerNo.FnbDiscountType;\r\n rateCodeObj.MiscellaneousList = tempMiscellaneous;\r\n rateCodeObj.MealPlanList = mealPlanLocalList;\r\n rateCodeObj.POSDiscountList = rateCodeBySerNo.POSDiscountList;\r\n AddEditRateCodeMaster(rateCodeObj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n if (d.data.Mode == \"Add\") {\r\n fillRateCodeMasterBySerNo(parseInt(d.data.ReturnValue));\r\n }\r\n setIsActive(false);\r\n props.OnSave(parseInt(d.data.ReturnValue));\r\n }\r\n else {\r\n alert(d.data.Message);\r\n }\r\n });\r\n // ClearAllFields();\r\n setRateCodeObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n // else {\r\n // alert(\"Something Went Wrong\");\r\n // }\r\n }\r\n //-----------------------------------------------------#endregion ----------------------------------------------------------------------------------\r\n\r\n //--------------------------------------------#region PackageInclusion event ----------------------------------------------------------------------- \r\n useEffect(() => {\r\n setPackageObj((prev) => ({ ...prev, Mode: \"View\" }));\r\n setShowFnBIndi(false);\r\n if (fnbObject != undefined) {\r\n setRateCodeBySerNo((prev) => ({ ...prev, FnbDiscountType: fnbObject.FnbDiscountType }));\r\n if (fnbObject.fnbdata != undefined) {\r\n let tmpfnbData = [];\r\n if (fnbObject.FnbDiscountType == \"O\") {\r\n fnbObject.fnbdata.forEach(element1 => {\r\n element1.LstOutlet.forEach(element => {\r\n if (element.DiscountPercentage > 0) {\r\n let tmpEle = {\r\n OutletGroupSerNo: element1.OutletGroupSerNo,\r\n OutletGroupName: element1.OutletGroupName,\r\n OutletSerNo: element.OutletSerNo,\r\n OutletName: element.OutletName,\r\n DiscountPercentage: element.DiscountPercentage\r\n }\r\n tmpfnbData.push(tmpEle);\r\n }\r\n });\r\n });\r\n }\r\n else if (fnbObject.FnbDiscountType == \"OI\") {\r\n fnbObject.fnbdata.forEach(element1 => {\r\n element1.LstItemGroup.forEach(element => {\r\n if (element.DiscountPercentage > 0) {\r\n let tmpEle = {\r\n OutletGroupSerNo: element1.OutletGroupSerNo,\r\n OutletGroupName: element1.OutletGroupName,\r\n PosItemGroupSerNo: element.ItemGroupSerNo,\r\n ItemGroupName: element.ItemGroupName,\r\n DiscountPercentage: element.DiscountPercentage\r\n }\r\n tmpfnbData.push(tmpEle);\r\n }\r\n });\r\n });\r\n\r\n }\r\n else if (fnbObject.FnbDiscountType == \"AI\") {\r\n fnbObject.fnbdata.forEach(element2 => {\r\n element2.LstOutlet.forEach(element1 => {\r\n element1.LstItemGroup.forEach(element => {\r\n if (element.DiscountPercentage > 0) {\r\n let tmpEle = {\r\n OutletGroupSerNo: element2.OutletGroupSerNo,\r\n OutletGroupName: element2.OutletGroupName,\r\n OutletSerNo: element1.OutletSerNo,\r\n OutletName: element1.OutletName,\r\n PosItemGroupSerNo: element.ItemGroupSerNo,\r\n ItemGroupName: element.ItemGroupName,\r\n DiscountPercentage: element.DiscountPercentage\r\n }\r\n tmpfnbData.push(tmpEle);\r\n }\r\n });\r\n });\r\n });\r\n\r\n }\r\n else {\r\n fnbObject.fnbdata.LstOutlet.forEach(element => {\r\n let tmpEle = {\r\n OutletGroupSerNo: fnbObject.fnbdata.OutletGroupSerNo,\r\n OutletGroupName: fnbObject.fnbdata.OutletGroupName,\r\n OutletSerNo: element.OutletSerNo,\r\n OutletName: element.OutletName,\r\n DiscountPercentage: fnbObject.fnbdata.DiscountPercentage\r\n }\r\n tmpfnbData.push(tmpEle);\r\n });\r\n }\r\n setRateCodeBySerNo((prev) => ({ ...prev, POSDiscountList: tmpfnbData }));\r\n }\r\n }\r\n }, [fnbObject]);\r\n const fillPackageInclusionType = () => {\r\n setIsActive(true);\r\n GetPackageTypeMaster(parseInt(currUser.ClientSerNo)).then(d => {\r\n setPackageInclusionType(d.data);\r\n setFilterPackageInclusionType(d.data);\r\n setIsActive(false);\r\n });\r\n }\r\n\r\n const fillRateCodeMiscellaneousMaster = (arr) => {\r\n setIsActive(true);\r\n GetRateCodeMiscellaneousMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n let tempData = d.data;\r\n if (arr.length > 0) {\r\n for (let i = 0; i < arr.length; i++) {\r\n for (let j = 0; j < tempData.length; j++) {\r\n if (arr[i].MiscSerNo == tempData[j].MiscSerNo) {\r\n tempData[j].ischecked = true;\r\n }\r\n }\r\n }\r\n }\r\n setRatecodeMiscellaniousMaster(tempData);\r\n setIsActive(false);\r\n });\r\n }\r\n\r\n const fillPackageMaster = () => {\r\n setIsActive(true);\r\n GetPackageMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"MP\").then(d => {\r\n setPackageMaster(d.data);\r\n setIsActive(false);\r\n });\r\n }\r\n\r\n const fillPostingType = () => {\r\n setIsActive(true);\r\n cmbGetPackagePostingType().then(d => {\r\n let temp = [{key: d.data.key, value: d.data.value}];\r\n d.data.forEach(ele => {\r\n temp.push({key: ele.key, value: ele.value});\r\n })\r\n setPostingType(temp);\r\n setIsActive(false);\r\n });\r\n }\r\n\r\n const fillPostingRhythm = () => {\r\n setIsActive(true);\r\n cmbGetPackagePostingRhythm().then(d => {\r\n setPostingRhythm(d.data);\r\n setIsActive(false);\r\n });\r\n }\r\n\r\n // useEffect(() => {\r\n // fillRateCodeMiscellaneousMaster();\r\n // }, [props.para.RateSerNo]);\r\n\r\n const handleOnSearchChange = (s) => {\r\n let filterData = packageInclusionType.filter(d => d.Name.toLowerCase().includes(s.toLowerCase()));\r\n setFilterPackageInclusionType(filterData);\r\n }\r\n\r\n const handleOnPackageInclusionClick = (e) => {\r\n let obj = packageInclusionType.find(d => d.PackageType == e.target.id)\r\n obj.Mode = \"View\";\r\n obj.PackageType = obj.PackageType.trim();\r\n setPackageInclusionObj(obj);\r\n setSelectPackageInclusion(e.target.id);\r\n setPackageObj((prev) => ({ ...prev, Mode: \"View\" }))\r\n }\r\n const handleMealPlanLocalClick = (e) => {\r\n // let obj = rateCodeBySerNo.MealPlanList.find(x => x.PackageSerNo == e.target.id)\r\n let obj = mealPlanLocalList.find(x => x.PackageSerNo == e.target.id)\r\n console.log(mealPlanLocalList);\r\n if (obj) {\r\n obj.Mode = \"View\";\r\n setPackageObj(obj);\r\n setTempPackageSerNo(obj.PackageSerNo);\r\n setSelectedMealPlanSerNo(e.target.id)\r\n }\r\n else {\r\n alert(\"Save meal plan details first\")\r\n }\r\n }\r\n\r\n const handleOnAdd = () => {\r\n setPackageObj(prev => ({ ...prev, Mode: \"Add\" }));\r\n clear();\r\n setShowFnBIndi(true);\r\n }\r\n\r\n const handleOnEdit = () => {\r\n if (packageType == \"MP\") {\r\n if (mealPlanLocalList.length > 0 && selectedMealPlanSerNo == packageObj.PackageSerNo) {\r\n setPackageObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n setShowFnBIndi(true)\r\n }\r\n else {\r\n alert(\"No meal plan selected\")\r\n }\r\n }\r\n else {\r\n setPackageObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n setShowFnBIndi(true)\r\n }\r\n }\r\n\r\n const handleOnCancel = () => {\r\n clear();\r\n setPackageObj(prev => ({ ...prev, Mode: \"View\" }));\r\n setShowFnBIndi(false)\r\n setSelectedMealPlanSerNo(0)\r\n }\r\n\r\n const clear = () => {\r\n setPackageObj((e) => ({\r\n ...e,\r\n PackageSerNo: null,\r\n PackagePrice: 0,\r\n IsTaxInclusive: false,\r\n ForecastNextDay: false,\r\n PostingType: null,\r\n PostingRhythm: null,\r\n }));\r\n selectedPackageObj.CalculationRuleSerNo = \"\";\r\n }\r\n\r\n //#region Miscellanous\r\n const [tempMiscellaneous, settempMiscellaneous] = useState([]);\r\n const handleMiscellaneousclick = (e) => {\r\n let tempData = JSON.parse(JSON.stringify(rateCodeMiscellaniousMaster));\r\n tempData.forEach(item => {\r\n if (item.MiscSerNo == e.target.id) {\r\n item.ischecked = e.target.checked;\r\n }\r\n });\r\n setRatecodeMiscellaniousMaster(tempData);\r\n }\r\n //#endregion Miscellanous\r\n\r\n const handlePackageComboSave = () => {\r\n if (packageType == \"MP\") {\r\n let obj = packageObj;\r\n obj.PackagePrice = parseFloat(packageObj.PackagePrice);\r\n if (obj.Mode == \"Edit\") {\r\n let arr = mealPlanLocalList;\r\n arr.map((d) => {\r\n if (d.PackageSerNo == tempPackageSerNo) {\r\n d.PackageSerNo = obj.PackageSerNo;\r\n d.Name = obj.Name;\r\n d.PackagePrice = obj.PackagePrice;\r\n d.IsTaxInclusive = obj.IsTaxInclusive;\r\n d.ForecastNextDay = obj.ForecastNextDay;\r\n d.PostingType = obj.PostingType;\r\n d.CalculationRuleSerNo = obj.CalculationRuleSerNo;\r\n d.PostingRhythm = obj.PostingRhythm;\r\n }\r\n }\r\n )\r\n setMealPlanLocalList(arr)\r\n }\r\n else if (obj.Mode == \"Add\") {\r\n setMealPlanLocalList((prev) => [...prev, obj]);\r\n }\r\n // clear();\r\n setPackageObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else if (packageType == \"MISC\") {\r\n let tempData = rateCodeMiscellaniousMaster.filter(item => item.ischecked == true);\r\n settempMiscellaneous(tempData);\r\n setPackageObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alert(\"invalid\");\r\n }\r\n }\r\n\r\n const handleOnClosePKInclusionPopup = async () => {\r\n let Ok = await innkeyAlert(\"Would you like to apply the changes to existing reservations using this rate code?\");\r\n if (Ok) {\r\n SetPackageInclusionPopup(false);\r\n }\r\n }\r\n //------------------------------------------------------------------ #endregion Package ------------------------------------------------------------------\r\n\r\n const PackageInclusionTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Package inclusions
    \r\n
      \r\n {rateCodeBySerNo.MealPlanList && rateCodeBySerNo.MealPlanList.length > 0 ?\r\n rateCodeBySerNo.MealPlanList && rateCodeBySerNo.MealPlanList.map((d, index) => {\r\n if (index >= 5) {\r\n return (
    • {d.Name}
    • )\r\n }\r\n }\r\n ) : <>\r\n }\r\n {rateCodeBySerNo.MiscellaneousList && rateCodeBySerNo.MiscellaneousList.length > 0 ?\r\n rateCodeBySerNo.MiscellaneousList && rateCodeBySerNo.MiscellaneousList.map((d, index) => {\r\n if ((rateCodeBySerNo.MealPlanList.length + index) >= 5) {\r\n return (
    • {d.Description}
    • )\r\n }\r\n }\r\n ) : <>\r\n }\r\n {rateCodeBySerNo.FnbDiscountType == \"A\" ?\r\n <>\r\n {rateCodeBySerNo.POSDiscountList && rateCodeBySerNo.POSDiscountList.length > 0 ?\r\n rateCodeBySerNo.POSDiscountList && rateCodeBySerNo.POSDiscountList.map((d, index) => {\r\n if ((rateCodeBySerNo.MealPlanList && rateCodeBySerNo.MealPlanList.length + rateCodeBySerNo.MiscellaneousList && rateCodeBySerNo.MiscellaneousList.length) >= 5 && index == 0) {\r\n return (\r\n
    • \r\n \r\n {rateCodeBySerNo.POSDiscountList[0].DiscountPercentage} % Discount on ALL\r\n
    • )\r\n }\r\n }\r\n ) : <>\r\n }\r\n :\r\n <>\r\n {rateCodeBySerNo.POSDiscountList && rateCodeBySerNo.POSDiscountList.length > 0 ?\r\n rateCodeBySerNo.POSDiscountList && rateCodeBySerNo.POSDiscountList.map((d, index) => {\r\n if ((rateCodeBySerNo.MealPlanList && rateCodeBySerNo.MealPlanList.length + rateCodeBySerNo.MiscellaneousList && rateCodeBySerNo.MiscellaneousList.length + index) >= 5) {\r\n return (
    • {d.DiscountPercentage} % Discount On {rateCodeBySerNo.FnbDiscountType == \"O\" ? d.OutletName : d.ItemGroupName}
    • )\r\n }\r\n }\r\n ) : <>\r\n }\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n return (\r\n <>\r\n
    {rateCodeObj.Name}
    \r\n
    {/* disabled-section */}\r\n
    \r\n {\r\n setRateCodeObj(prev => ({ ...prev, Name: v }));\r\n if (v == \"\") {\r\n setIsValid(prev => ({ ...prev, Name: \"please Enter Name\" }));\r\n }\r\n }}\r\n >Name\r\n\r\n {\r\n setRateCodeObj(prev => ({ ...prev, LongDescription: v }));\r\n if (v == \"\") {\r\n setIsValid(prev => ({ ...prev, LongDescription: \"Invalid\" }));\r\n }\r\n }}\r\n >Long Description\r\n\r\n
    \r\n {\r\n setRateCodeObj(prev => ({ ...prev, RateTypeSerNo: item.key }))\r\n let temp = rateCategory.filter((x) => x.RateTypeSerno === item.key);\r\n setFilteredRateCategory(temp);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n {\r\n let oldDate = rateCodeObj.StartDate\r\n if (new Date(moment(businessDate).format(\"DD-MMM-YYYY\")).getTime() <= new Date(moment(v).format(\"DD-MMM-YYYY\")).getTime()) {\r\n setRateCodeObj(prev => ({ ...prev, StartDate: v }))\r\n }\r\n else {\r\n setRateCodeObj(prev => ({ ...prev, StartDate: v }))\r\n setTimeout(() => {\r\n setRateCodeObj(prev => ({ ...prev, StartDate: oldDate }))\r\n }, 50);\r\n alert(\"Invalid Date\");\r\n }\r\n\r\n }}\r\n placeholder=\"StartDate\"\r\n calendarStartDay={1}\r\n label=\"Sell Start Date\"\r\n >\r\n {/* 1 Jan 2022 */}\r\n \r\n\r\n
    \r\n
    \r\n setRateCodeObj(prev => ({ ...prev, EndDate: v }))}\r\n placeholder=\"EndDate\"\r\n calendarStartDay={1}\r\n label=\"Sell End Date\"\r\n >\r\n {/* 31 June 2022 */}\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n ({\r\n key: RateGroupSerNo,\r\n value: Name,\r\n }))}\r\n name=\"Single Select\"\r\n label=\"Rate Category\"\r\n onChange={(item) => {\r\n setRateCodeObj(prev => ({ ...prev, RateGroupSerNo: item.key }));\r\n }}\r\n >\r\n
    \r\n
    \r\n { setRateCodeObj(prev => ({ ...prev, Sequence: item.key })) }}\r\n >\r\n
    \r\n\r\n setRateCodeObj(prev => ({ ...prev, WebURL: v }))}\r\n >Web Page URL\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n Negotiated\r\n {\r\n setRateCodeObj(prev => ({ ...prev, Negotiated: v }));\r\n setIsActive(true);\r\n }}\r\n id=\"Negotiated\" >\r\n
    \r\n\r\n
    \r\n For OTAs\r\n setRateCodeObj(prev => ({ ...prev, IsOTARate: v }))}\r\n id=\"OTA\" >\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    Package Inclusions\r\n
    \r\n {\r\n rateCodeObj.Mode == \"View\" ?\r\n <>\r\n SetPackageInclusionPopup(true)} >\r\n SetPackageInclusionPopup(true)}>+\r\n \r\n :\r\n <>\r\n {\r\n rateCodeObj.Mode == \"Edit\" || rateCodeObj.Mode != \"Add\" ?\r\n <>\r\n SetPackageInclusionPopup(true)} >\r\n \r\n :\r\n <>\r\n SetPackageInclusionPopup(true)}>+\r\n \r\n }\r\n \r\n }\r\n
    \r\n
      SetPackageInclusionPopup(true)}>\r\n {rateCodeBySerNo.MealPlanList && rateCodeBySerNo.MealPlanList.length > 0 ?\r\n rateCodeBySerNo.MealPlanList && rateCodeBySerNo.MealPlanList.map((d, index) => {\r\n if (index < 5) {\r\n return (
    • {d.Name}
    • )\r\n }\r\n }\r\n ) : <>\r\n }\r\n {rateCodeBySerNo.MiscellaneousList && rateCodeBySerNo.MiscellaneousList.length > 0 ?\r\n rateCodeBySerNo.MiscellaneousList && rateCodeBySerNo.MiscellaneousList.map((d, index) => {\r\n if ((rateCodeBySerNo.MealPlanList.length + index) < 5) {\r\n return (
    • {d.Description}
    • )\r\n }\r\n }\r\n ) : <>\r\n }\r\n {rateCodeBySerNo.FnbDiscountType == \"A\" ?\r\n <>\r\n {rateCodeBySerNo.POSDiscountList && rateCodeBySerNo.POSDiscountList.length > 0 ?\r\n rateCodeBySerNo.POSDiscountList && rateCodeBySerNo.POSDiscountList.map((d, index) => {\r\n if ((rateCodeBySerNo.MealPlanList && rateCodeBySerNo.MealPlanList.length + rateCodeBySerNo.MiscellaneousList && rateCodeBySerNo.MiscellaneousList.length) < 5 && index == 0) {\r\n return (
    • \r\n \r\n {rateCodeBySerNo.POSDiscountList[0].DiscountPercentage} % Discount on ALL\r\n
    • )\r\n }\r\n }\r\n ) : <>\r\n }\r\n :\r\n <>\r\n {rateCodeBySerNo.POSDiscountList && rateCodeBySerNo.POSDiscountList.length > 0 ?\r\n rateCodeBySerNo.POSDiscountList && rateCodeBySerNo.POSDiscountList.map((d, index) => {\r\n if ((rateCodeBySerNo.MealPlanList && rateCodeBySerNo.MealPlanList.length + rateCodeBySerNo.MiscellaneousList && rateCodeBySerNo.MiscellaneousList.length + index) < 5) {\r\n return (
    • {d.DiscountPercentage} % Discount On {rateCodeBySerNo.FnbDiscountType == \"O\" ? d.OutletName : d.ItemGroupName}
    • )\r\n }\r\n }\r\n ) : <>\r\n }\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n More\r\n \r\n
    \r\n
    \r\n setRateCodeObj(prev => ({ ...prev, CancellationRuleSerNo: item.key }))}\r\n >\r\n
    \r\n
    \r\n setRateCodeObj(prev => ({ ...prev, DepositRuleSerNo: item.key }))}\r\n >\r\n
    \r\n
    \r\n\r\n
    \r\n
    Rate Control
    \r\n {\r\n setRateCodeObj(prev => ({ ...prev, MinOccupancy: v }));\r\n }}\r\n >Min Occupancy (Adult)\r\n setRateCodeObj(prev => ({ ...prev, MaxOccupancy: v }))}\r\n >Max Occupancy (Adult)\r\n setRateCodeObj(prev => ({ ...prev, MinAdvanceBookingDays: v }))}\r\n >Min Advance Booking (Days)\r\n setRateCodeObj(prev => ({ ...prev, MaxAdvanceBookingDays: v }))}\r\n >Max Advance booking (Days)\r\n setRateCodeObj(prev => ({ ...prev, FloorRate: v }))}\r\n >Rate Floor\r\n setRateCodeObj(prev => ({ ...prev, CeilingRate: v }))}\r\n >Rate Ceiling\r\n setRateCodeObj(prev => ({ ...prev, FreeChild: v }))}\r\n >No. of child free\r\n
    \r\n\r\n
    \r\n
    Financials
    \r\n
    \r\n Tax Inclusive\r\n setRateCodeObj(prev => ({ ...prev, IsTaxInclusive: v }))}\r\n id=\"IsTax\" >\r\n
    \r\n
    \r\n ({\r\n // key: TransactionSerNo,\r\n // value: Name,\r\n // }))}\r\n list={revenueTransactionCode}\r\n name=\"Single Select\"\r\n label=\"Revenue Transaction Code\"\r\n onChange={(item) => { setRateCodeObj(prev => ({ ...prev, TransactionSerNo: item.key })) }}\r\n >\r\n
    \r\n\r\n setRateCodeObj(prev => ({ ...prev, FolioText: v }))}\r\n >Folio Text\r\n\r\n
    \r\n Print Rate\r\n setRateCodeObj(prev => ({ ...prev, IsPrintRate: v }))}\r\n id=\"IsPrintRate\">\r\n
    \r\n
    \r\n Do not Disclose Rate\r\n setRateCodeObj(prev => ({ ...prev, IsDiscloseRate: v }))}\r\n id=\"IsDiscloseRate\" >\r\n
    \r\n
    \r\n Discountable\r\n setRateCodeObj(prev => ({ ...prev, Discountable: v }))}\r\n id=\"Discountable\" >\r\n
    \r\n
    \r\n Day Use\r\n setRateCodeObj(prev => ({ ...prev, IsDayUseRate: v }))}\r\n id=\"IsDayUseRate\" >\r\n
    \r\n
    \r\n Complimentary\r\n setRateCodeObj(prev => ({ ...prev, IsComplimentary: v }))}\r\n id=\"IsComplimentary\" >\r\n
    \r\n
    \r\n House Use\r\n setRateCodeObj(prev => ({ ...prev, IsHouseUse: v }))}\r\n id=\"IsHouseUse\" >\r\n
    \r\n
    \r\n Apply Day Type\r\n setRateCodeObj(prev => ({ ...prev, IsApplyDayType: v }))}\r\n id=\"IsApplyDayType\" >\r\n
    \r\n\r\n setRateCodeObj(prev => ({ ...prev, SellMessage: v }))}\r\n >Sell Message\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n rateCodeObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add New\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n\r\n {showPackageInclusionPopup ? (\r\n \r\n Onclose={() => {\r\n SetPackageInclusionPopup(false)\r\n setRateCodeBySerNo((prev) => ({ ...prev, MealPlanList: mealPlanLocalList, MiscellaneousList: tempMiscellaneous }))\r\n setPackageObj((prev) => ({ ...prev, Mode: \"View\" }))\r\n }}>\r\n
    \r\n
    \r\n
    \r\n

    Package Inclusions

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n
    Inclusion Type
    \r\n
    \r\n
      \r\n {\r\n filterpackageInclusionType.map(d =>\r\n
    • \r\n \r\n {d.Name}\r\n \r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    INCLUSION SUMMARY
    \r\n {\r\n packageType == \"MP\" ? (\r\n <>\r\n
    Meal Plan
    \r\n
      \r\n {/* {\r\n rateCodeBySerNo.MealPlanList && rateCodeBySerNo.MealPlanList.map((d) =>\r\n
    • {d.Name}
    • \r\n )\r\n } */}\r\n {\r\n mealPlanLocalList.map((x) =>\r\n
    • \r\n {x.Name}\r\n
    • \r\n )\r\n }\r\n
    \r\n \r\n ) : null\r\n }\r\n {\r\n packageType == \"PS\" ? (\r\n <>\r\n
    POS Discount
    \r\n
    \r\n
      \r\n {rateCodeBySerNo.FnbDiscountType == \"A\" ?\r\n <>\r\n
    • \r\n \r\n {rateCodeBySerNo.POSDiscountList[0].DiscountPercentage} % Discount on ALL\r\n
    • \r\n :\r\n <>\r\n {\r\n rateCodeBySerNo.POSDiscountList && rateCodeBySerNo.POSDiscountList.map((d) =>\r\n
    • \r\n \r\n {d.DiscountPercentage} % Discount on {rateCodeBySerNo.FnbDiscountType == \"O\" ? d.OutletName : d.ItemGroupName}\r\n
    • \r\n )\r\n }\r\n \r\n }\r\n
    \r\n
    \r\n \r\n ) : null\r\n }\r\n {/* {\r\n selectPackageInclusion.length < 5 ?\r\n <>\r\n
    Laundry
    \r\n\r\n
    \r\n
      \r\n
    • 2 Pieces Laundry
    • \r\n
    • Lowest value
    • \r\n
    \r\n
    \r\n \r\n :\r\n <>\r\n }\r\n {\r\n selectPackageInclusion.length < 5 ?\r\n <>\r\n
    Transportation
    \r\n
      \r\n
    • Breakfast
    • \r\n
    • Dinner
    • \r\n
    \r\n\r\n \r\n :\r\n <>\r\n } */}\r\n {\r\n packageType == \"MISC\" ? (\r\n <>\r\n
    Miscellanious
    \r\n
    \r\n
      \r\n {/* {\r\n rateCodeBySerNo.MiscellaneousList && rateCodeBySerNo.MiscellaneousList.map((d) =>\r\n
    • {d.Description}
    • \r\n )\r\n } */}\r\n {\r\n tempMiscellaneous.map((d) =>\r\n
    • {d.Description}
    • \r\n )\r\n }\r\n
    \r\n
    \r\n \r\n ) : null\r\n }\r\n
    \r\n
    \r\n {\r\n packageType == \"MP\" ? (\r\n <>\r\n
    Meal Plan
    \r\n
    \r\n ({\r\n key: PackageSerNo,\r\n value: Name\r\n }))}\r\n name=\"Single Select\"\r\n label=\"Meal Plan Type \"\r\n onChange={(item) => {\r\n setPackageObj(prev => ({ ...prev, PackageSerNo: item.key }));\r\n setPackageObj(prev => ({ ...prev, Name: item.value }));\r\n packageMaster.forEach(ele => {\r\n if (ele.PackageSerNo == item.key) {\r\n setSelectedPackageObj(ele);\r\n }\r\n });\r\n }}\r\n >\r\n
    \r\n\r\n setPackageObj(prev => ({ ...prev, PackagePrice: v }))}\r\n >Price\r\n\r\n setPackageObj(prev => ({ ...prev, IsTaxInclusive: ischecked }))}\r\n >\r\n Price Inclusive of Taxes\r\n \r\n
    \r\n Forecast Next Day\r\n setPackageObj(prev => ({ ...prev, ForecastNextDay: v }))}\r\n id=\"ForecastNextDay\"\r\n >\r\n
    \r\n
    \r\n \r\n {\r\n setPackageObj(prev => ({ ...prev, PostingType: item.key }));\r\n setIsValid(prev => ({...prev, PostingType: \"\"}));\r\n }}\r\n >\r\n
    \r\n\r\n console.log(v)}\r\n value={selectedPackageObj.CalculationRuleSerNo}\r\n >Calculation Rule\r\n\r\n
    \r\n ({\r\n key: PostingRhythmSerNo,\r\n value: Name\r\n }))}\r\n name=\"Single Select\"\r\n label=\"Posting Rhythm\"\r\n onChange={(item) => { setPackageObj(prev => ({ ...prev, PostingRhythm: item.key })) }}\r\n >\r\n
    \r\n { console.log(\"checkbox is \" + ischecked); }}>\r\n Deduct to calculate ADR\r\n \r\n \r\n ) : null\r\n }\r\n {\r\n packageType == \"PS\" ? (\r\n <>\r\n
    POS Discount
    \r\n
    \r\n \r\n
    \r\n setShowFnBIndi(false)}\r\n >\r\n
    \r\n
    \r\n
    \r\n \r\n ) : null\r\n }\r\n {\r\n packageType == \"MISC\" ? (\r\n <>\r\n
    Miscellanious
    \r\n {\r\n rateCodeMiscellaniousMaster.map((d) =>\r\n \r\n {d.Description}\r\n \r\n )\r\n }\r\n \r\n ) : null\r\n }\r\n {/* {\r\n packageType == \"\" ? (\r\n <>\r\n
    Laundry
    \r\n No. of Pieces\r\n
    \r\n { }}\r\n >\r\n
    \r\n \r\n ) : null\r\n }\r\n {\r\n packageType == \"\" ? (\r\n <>\r\n
    Transportation
    \r\n
    \r\n { }}\r\n >\r\n
    \r\n Price\r\n\r\n { console.log(\"checkbox is \" + ischecked); }}>\r\n Price inclusive of taxes\r\n \r\n\r\n console.log(v)}\r\n value=\"Per Adult\"\r\n disabled=\"true\"\r\n >Calculation Rule\r\n\r\n
    \r\n { }}\r\n >\r\n
    \r\n { console.log(\"checkbox is \" + ischecked); }}>\r\n Deduct to calculate ADR\r\n \r\n \r\n ) : null\r\n } */}\r\n\r\n
    \r\n {\r\n packageObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n {packageType == \"MP\" ?\r\n Add : null}\r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n ) : null}\r\n \r\n )\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnTableGrid,\r\n InnTextbox,\r\n InnTooltip,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnSingleDateSelection,\r\n InnLoader,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport {\r\n GetRoomTypeForRateCode,\r\n GetRateCodeDetailRoomTypeBySerNo,\r\n GetRateCodeDetailRateMonth,\r\n GetRateCodeDetailRate,\r\n UpdateRateCodeDetailRate,\r\n AddRateCodeDetailRoomType\r\n} from \"../../../../services/frontMasterService\";\r\nimport { GetPropertyParameterByKeys } from \"../../../../services/reservationService\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport moment from \"moment\";\r\n\r\nexport function PriceScheduleModalPopup(props) {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const propertyParameters = [\"BusinessDate\"];\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n const defaultRateCodeObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n RateSerNo: props.para.RateSerNo,\r\n RoomTypeSerNo: 0,\r\n Name: \"\",\r\n Date: \"\",\r\n Child: 0,\r\n RateCode: \"\",\r\n StartDate: \"\",\r\n EndDate: \"\",\r\n Year: \"\",\r\n Month: \"\",\r\n ID: \"\",\r\n RoomRateAdult1: 0,\r\n RoomRateAdult2: 0,\r\n RoomRateAdult3: 0,\r\n RoomRateAdult4: 0,\r\n RoomRateAdult5: 0,\r\n RoomRateAdult6: 0,\r\n Mode: \"View\",\r\n }\r\n\r\n const validationObj = {\r\n RoomRateAdult1: 0,\r\n RoomRateAdult2: 0,\r\n RoomRateAdult3: 0,\r\n RoomRateAdult4: 0,\r\n RoomRateAdult5: 0,\r\n RoomRateAdult6: 0,\r\n Child: 0\r\n }\r\n\r\n const [showPackageRoomTypePopup, SetPackageRoomTypePopup] = useState();\r\n const [isActive, setIsActive] = useState(false);\r\n const [roomTypeObj, setRoomTypeObj] = useState(defaultRateCodeObj);\r\n const [fillRoomTypeData, setFillRoomTypeData] = useState([]);\r\n const [roomTypeDataBySerNo, setRoomTypeDataBySerNo] = useState([]);\r\n const [filterRoomTypeData, setFilterRoomTypeData] = useState([]);\r\n const [rateCodeDetailRate, setRateCodeDetailRate] = useState([]);\r\n const [year, setYear] = useState([]);\r\n const [month, setMonth] = useState([]);\r\n const [totalMonthList, setTotalMonthList] = useState([]);\r\n const [isValidObj, setIsValidObj] = useState(defaultRateCodeObj);\r\n const [selectedRoomTypeId, setSelectedRoomTypeId] = useState(0);\r\n const [searchString, setSearchString] = useState(\"\");\r\n\r\n const roomTypeHeader = [\r\n { key: \"Year\", value: \"Year\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Date\", value: \"Date\", type: \"txt\", sorting: \"Y\", },\r\n { key: \"1 Adult\", value: \"RoomRateAdult1\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n { key: \"2 Adult\", value: \"RoomRateAdult2\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n { key: \"Child\", value: \"Child\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n ];\r\n\r\n const fillBusinessDate = () => {\r\n setIsActive(true);\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), propertyParameters).then((d) => {\r\n console.log(\"key >>\", d.data);\r\n let obj = d.data.find(x => x.key == \"BusinessDate\");\r\n setIsActive(false);\r\n if (obj != undefined) {\r\n setBusinessDate(moment(obj.value).format(\"DD-MMM-YYYY\"));\r\n setTimeout(() => {\r\n setRoomTypeObj((prev) => ({\r\n ...prev,\r\n StartDate: moment(obj.value).format(\"DD-MMM-YYYY\"),\r\n EndDate: moment(obj.value).format(\"DD-MMM-YYYY\")\r\n }));\r\n }, 20);\r\n }\r\n });\r\n }\r\n\r\n const fillRoomType = () => {\r\n setIsActive(true);\r\n console.log(\"props values \", props.para);\r\n GetRoomTypeForRateCode(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), props.para.RateSerNo).then(d => {\r\n let tempData = d.data;\r\n setIsActive(false);\r\n tempData.forEach(element => {\r\n element.ischecked = false;\r\n });\r\n setFillRoomTypeData(tempData);\r\n });\r\n }\r\n\r\n const fillRoomTypeBySerNo = () => {\r\n setIsActive(true);\r\n GetRateCodeDetailRoomTypeBySerNo(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), props.para.RateSerNo)\r\n .then(d => {\r\n setIsActive(false);\r\n setRoomTypeDataBySerNo(d.data);\r\n setFilterRoomTypeData(d.data);\r\n if (d.data.length > 0) {\r\n let temp = d.data[0]\r\n // setRoomTypeObj(temp);\r\n setRoomTypeObj((prev) => ({\r\n ...prev, Name: temp.Name, RateSerNo: temp.RateSerNo, RoomTypeSerNo: temp.RoomTypeSerNo\r\n }))\r\n console.log(\"PSchedule >>\", d.data[0]);\r\n setSelectedRoomTypeId(d.data[0].RoomTypeSerNo)\r\n fillRateCodeDetailRateMonth(d.data[0].RoomTypeSerNo);\r\n }\r\n });\r\n fillRoomType();\r\n }\r\n\r\n const fillRateCodeDetailRateMonth = (RoomTypeSerNo) => {\r\n if (props.para.RateSerNo && RoomTypeSerNo) {\r\n setIsActive(true);\r\n GetRateCodeDetailRateMonth(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), props.para.RateSerNo, RoomTypeSerNo)\r\n .then(d => {\r\n setIsActive(false);\r\n let tempYearList = [];\r\n setTotalMonthList(d.data);\r\n\r\n for (let i = 0; i < d.data.length; i++) {\r\n let tempobjData = tempYearList.find(item => item.key == d.data[i].ID)\r\n if (tempobjData == undefined) {\r\n tempYearList.push({\r\n key: parseInt(d.data[i].ID),\r\n value: d.data[i].ID\r\n });\r\n }\r\n }\r\n setYear(tempYearList);\r\n });\r\n }\r\n }\r\n\r\n const fillRateCodeDetailRate = (RoomTypeSerNo) => {\r\n if (RoomTypeSerNo && roomTypeObj.Month && roomTypeObj.Year) {\r\n setIsActive(true);\r\n GetRateCodeDetailRate(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), props.para.RateSerNo, RoomTypeSerNo, roomTypeObj.Year, roomTypeObj.Month)\r\n .then(d => {\r\n setIsActive(false);\r\n setRateCodeDetailRate(d.data);\r\n });\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (roomTypeObj.RoomTypeSerNo != \"\" && roomTypeObj.Year != \"\" && roomTypeObj.Month != \"\") {\r\n fillRateCodeDetailRate(selectedRoomTypeId);\r\n }\r\n }, [roomTypeObj.Year, roomTypeObj.Month]);\r\n\r\n useEffect(() => {\r\n if (props.para.RateSerNo) {\r\n fillRoomTypeBySerNo();\r\n clearFields();\r\n setSearchString(\"\")\r\n }\r\n }, [props.para.RateSerNo]);\r\n\r\n useEffect(() => {\r\n fillBusinessDate();\r\n }, []);\r\n\r\n const handleOnSearchChange = (s) => {\r\n let filterData = roomTypeDataBySerNo.filter(d => d.Name.toLowerCase().includes(s.toLowerCase()));\r\n setFilterRoomTypeData(filterData);\r\n setSearchString(s)\r\n setSelectedRoomTypeId(0)\r\n setRoomTypeObj((prev) => ({ ...prev, RoomTypeSerNo: 0 }))\r\n }\r\n\r\n const handleOnRoomTypeClick = (e) => {\r\n if (e.target.id != selectedRoomTypeId) {\r\n clearFields();\r\n }\r\n let obj = roomTypeDataBySerNo.find(d => d.RoomTypeSerNo == e.target.id);\r\n if (obj) {\r\n obj.Mode = \"View\";\r\n setRoomTypeObj((prev) => ({ ...prev, Name: obj.Name, RateSerNo: obj.RateSerNo, RoomTypeSerNo: obj.RoomTypeSerNo }));\r\n fillRateCodeDetailRateMonth(e.target.id);\r\n setSelectedRoomTypeId(e.target.id);\r\n setYear([]);\r\n setMonth([]);\r\n setRateCodeDetailRate([]);\r\n }\r\n }\r\n\r\n const clearFields = () => {\r\n setSearchString(\"\")\r\n setRoomTypeObj(prev => ({\r\n ...prev,\r\n StartDate: businessDate,\r\n EndDate: businessDate,\r\n RoomRateAdult1: 0,\r\n RoomRateAdult2: 0,\r\n RoomRateAdult3: 0,\r\n RoomRateAdult4: 0,\r\n RoomRateAdult5: 0,\r\n RoomRateAdult6: 0,\r\n Child: 0\r\n }));\r\n setIsValidObj(defaultRateCodeObj)\r\n setRateCodeDetailRate([])\r\n }\r\n\r\n const validPage = () => {\r\n var isValid = true;\r\n if (roomTypeObj.RoomTypeSerNo == 0) {\r\n isValid = false;\r\n alertFunction(\"Please select room type to continue.\");\r\n }\r\n if (isNaN(roomTypeObj.RoomRateAdult1) || roomTypeObj.RoomRateAdult1 == 0\r\n || parseFloat(roomTypeObj.RoomRateAdult1) < 0) {\r\n isValid = false;\r\n setIsValidObj(prev => ({ ...prev, RoomRateAdult1: \"Invalid Input\" }));\r\n }\r\n if (isNaN(roomTypeObj.RoomRateAdult2) || roomTypeObj.RoomRateAdult2 == 0\r\n || parseFloat(roomTypeObj.RoomRateAdult2) < 0) {\r\n isValid = false;\r\n setIsValidObj(prev => ({ ...prev, RoomRateAdult2: \"Invalid Input\" }));\r\n }\r\n if (isNaN(roomTypeObj.RoomRateAdult3) || parseFloat(roomTypeObj.RoomRateAdult3) < 0) {\r\n isValid = false;\r\n setIsValidObj(prev => ({ ...prev, RoomRateAdult3: \"Invalid Input\" }));\r\n }\r\n if (isNaN(roomTypeObj.RoomRateAdult4) || parseFloat(roomTypeObj.RoomRateAdult4) < 0) {\r\n isValid = false;\r\n setIsValidObj(prev => ({ ...prev, RoomRateAdult4: \"Invalid Input\" }));\r\n }\r\n if (isNaN(roomTypeObj.RoomRateAdult5) || parseFloat(roomTypeObj.RoomRateAdult5) < 0) {\r\n isValid = false;\r\n setIsValidObj(prev => ({ ...prev, RoomRateAdult5: \"Invalid Input\" }));\r\n }\r\n if (isNaN(roomTypeObj.RoomRateAdult6) || parseFloat(roomTypeObj.RoomRateAdult6) < 0) {\r\n isValid = false;\r\n setIsValidObj(prev => ({ ...prev, RoomRateAdult6: \"Invalid Input\" }));\r\n }\r\n if (isNaN(roomTypeObj.Child) || parseFloat(roomTypeObj.Child) < 0) {\r\n isValid = false;\r\n setIsValidObj(prev => ({ ...prev, Child: \"Invalid Input\" }));\r\n }\r\n if (roomTypeObj.EndDate < roomTypeObj.StartDate) {\r\n isValid = false;\r\n alertFunction(\"End date cannot be less than the start date.\");\r\n }\r\n return isValid;\r\n }\r\n\r\n const handleUpdateClick = () => {\r\n var isValidPage = validPage();\r\n setSearchString(\"\")\r\n if (isValidPage) {\r\n let tempObj = roomTypeObj\r\n if (roomTypeObj.RoomRateAdult3 == \"\") {\r\n tempObj.RoomRateAdult3 = null;\r\n }\r\n if (roomTypeObj.RoomRateAdult4 == \"\") {\r\n tempObj.RoomRateAdult4 = null;\r\n }\r\n if (roomTypeObj.RoomRateAdult5 == \"\") {\r\n tempObj.RoomRateAdult5 = null;\r\n }\r\n if (roomTypeObj.RoomRateAdult6 == \"\") {\r\n tempObj.RoomRateAdult6 = null;\r\n }\r\n if (roomTypeObj.Child == \"\") {\r\n tempObj.Child = null;\r\n }\r\n UpdateRateCodeDetailRate(tempObj).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n fillRateCodeDetailRate(selectedRoomTypeId);\r\n clearFields();\r\n }\r\n else {\r\n alertFunction(\"One or more field has invalid input. Check accordingly\");\r\n }\r\n });\r\n setRoomTypeObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n\r\n }\r\n\r\n const handleRateTypeclick = (e) => {\r\n let tempData = JSON.parse(JSON.stringify(fillRoomTypeData));\r\n tempData.forEach(item => {\r\n if (item.RoomTypeSerNo == e.target.id) {\r\n item.ischecked = e.target.checked;\r\n }\r\n });\r\n setFillRoomTypeData(tempData);\r\n }\r\n const handleSaveRateType = (e) => {\r\n let tempData = fillRoomTypeData.filter(item => item.ischecked == true);\r\n console.log(\"tempData>>\", tempData);\r\n let finalObj = [];\r\n tempData.forEach(item => {\r\n let RoomType = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n RateSerNo: props.para.RateSerNo,\r\n RoomTypeSerNo: item.RoomTypeSerNo\r\n }\r\n finalObj.push(RoomType);\r\n });\r\n\r\n AddRateCodeDetailRoomType(finalObj).then(d => {\r\n if (d.data.Code == 200) {\r\n alertFunction(d.data.Message);\r\n fillRoomTypeBySerNo();\r\n SetPackageRoomTypePopup(false);\r\n clearFields();\r\n }\r\n });\r\n }\r\n\r\n const handleReset = () => {\r\n let tempData = JSON.parse(JSON.stringify(fillRoomTypeData));\r\n tempData.forEach(item => {\r\n item.ischecked = false;\r\n });\r\n setFillRoomTypeData(tempData);\r\n }\r\n\r\n return (\r\n
    \r\n
    Price Schedule -- {roomTypeObj.Name}
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Search\r\n \r\n SetPackageRoomTypePopup(true)}>\r\n +\r\n \r\n
    \r\n
    Room Type
    \r\n
    \r\n
      \r\n {\r\n filterRoomTypeData.map(d =>\r\n
    • \r\n \r\n {d.Name}\r\n \r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n setRoomTypeObj(prev => ({ ...prev, StartDate: v }))}\r\n >\r\n
    \r\n
    \r\n setRoomTypeObj(prev => ({ ...prev, EndDate: v }))}\r\n >\r\n
    \r\n
    \r\n {\r\n setIsValidObj(prev => ({ ...prev, RoomRateAdult1: \"\" }));\r\n if (v == \"\") {\r\n //setIsValidObj(prev => ({ ...prev, RoomRateAdult3: \"Invalid Input\" }))\r\n setRoomTypeObj(prev => ({ ...prev, RoomRateAdult1: \"\" }));\r\n }\r\n else if (isNaN(v)) {\r\n setRoomTypeObj(prev => ({ ...prev, RoomRateAdult1: v }));\r\n }\r\n else {\r\n setRoomTypeObj(prev => ({ ...prev, RoomRateAdult1: parseFloat(v) }));\r\n }\r\n }}\r\n >Price for 1 Adult\r\n {\r\n setIsValidObj(prev => ({ ...prev, RoomRateAdult2: \"\" }));\r\n if (v == \"\") {\r\n //setIsValidObj(prev => ({ ...prev, RoomRateAdult3: \"Invalid Input\" }))\r\n setRoomTypeObj(prev => ({ ...prev, RoomRateAdult2: \"\" }));\r\n }\r\n else if (isNaN(v)) {\r\n setRoomTypeObj(prev => ({ ...prev, RoomRateAdult2: v }));\r\n }\r\n else {\r\n setRoomTypeObj(prev => ({ ...prev, RoomRateAdult2: parseFloat(v) }));\r\n }\r\n }}\r\n >Price for 2 Adult\r\n {\r\n setIsValidObj(prev => ({ ...prev, RoomRateAdult3: \"\" }));\r\n if (v == \"\") {\r\n //setIsValidObj(prev => ({ ...prev, RoomRateAdult3: \"Invalid Input\" }))\r\n setRoomTypeObj(prev => ({ ...prev, RoomRateAdult3: \"\" }));\r\n }\r\n else if (isNaN(v)) {\r\n setRoomTypeObj(prev => ({ ...prev, RoomRateAdult3: v }));\r\n }\r\n else {\r\n setRoomTypeObj(prev => ({ ...prev, RoomRateAdult3: parseFloat(v) }));\r\n }\r\n }}\r\n >Price for 3 Adult\r\n {\r\n setIsValidObj(prev => ({ ...prev, RoomRateAdult4: \"\" }));\r\n if (v == \"\") {\r\n //setIsValidObj(prev => ({ ...prev, RoomRateAdult3: \"Invalid Input\" }))\r\n setRoomTypeObj(prev => ({ ...prev, RoomRateAdult4: \"\" }));\r\n }\r\n else if (isNaN(v)) {\r\n setRoomTypeObj(prev => ({ ...prev, RoomRateAdult4: v }));\r\n }\r\n else {\r\n setRoomTypeObj(prev => ({ ...prev, RoomRateAdult4: parseFloat(v) }));\r\n }\r\n }}\r\n >Price for 4 Adult\r\n {\r\n setIsValidObj(prev => ({ ...prev, RoomRateAdult5: \"\" }));\r\n if (v == \"\") {\r\n //setIsValidObj(prev => ({ ...prev, RoomRateAdult3: \"Invalid Input\" }))\r\n setRoomTypeObj(prev => ({ ...prev, RoomRateAdult5: \"\" }));\r\n }\r\n else if (isNaN(v)) {\r\n setRoomTypeObj(prev => ({ ...prev, RoomRateAdult5: v }));\r\n }\r\n else {\r\n setRoomTypeObj(prev => ({ ...prev, RoomRateAdult5: parseFloat(v) }));\r\n }\r\n }}\r\n >Price for 5 Adult\r\n {\r\n setIsValidObj(prev => ({ ...prev, RoomRateAdult6: \"\" }));\r\n if (v == \"\") {\r\n //setIsValidObj(prev => ({ ...prev, RoomRateAdult3: \"Invalid Input\" }))\r\n setRoomTypeObj(prev => ({ ...prev, RoomRateAdult6: \"\" }));\r\n }\r\n else if (isNaN(v)) {\r\n setRoomTypeObj(prev => ({ ...prev, RoomRateAdult6: v }));\r\n }\r\n else {\r\n setRoomTypeObj(prev => ({ ...prev, RoomRateAdult6: parseFloat(v) }));\r\n }\r\n }}\r\n >Price for 6 Adult\r\n {\r\n setIsValidObj(prev => ({ ...prev, Child: \"\" }));\r\n if (v == \"\") {\r\n setRoomTypeObj(prev => ({ ...prev, Child: \"\" }));\r\n }\r\n else if (isNaN(v)) {\r\n setRoomTypeObj(prev => ({ ...prev, Child: v }));\r\n }\r\n else {\r\n setRoomTypeObj(prev => ({ ...prev, Child: parseFloat(v) }));\r\n }\r\n }}\r\n >Price for Child\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setRoomTypeObj(prev => ({ ...prev, Year: item.key }));\r\n let tempMonthList = totalMonthList.filter((x) => x.ID === item.value);\r\n console.log(\"monthlist>>>\", totalMonthList);\r\n let temp = [];\r\n // for (let i = 0; i < totalMonthList.length; i++) {\r\n // let tempData = tempMonthList.find(items => items.value == totalMonthList[i].Name.split(\"-\")[0])\r\n // if (tempData == undefined) {\r\n // tempMonthList.push({\r\n // key: totalMonthList[i].Name.split(\"-\")[1],\r\n // value: totalMonthList[i].Name.split(\"-\")[0]\r\n // });\r\n // } \r\n // }\r\n tempMonthList.forEach((x) => {\r\n let o = x.Name.split(\"-\");\r\n temp.push({\r\n key: o[1],\r\n value: o[0]\r\n })\r\n })\r\n console.log(\"here temp\", temp);\r\n temp.sort(function (a, b) {\r\n let temp1 = a.key;\r\n let temp2 = b.key;\r\n if (parseInt(temp1) < parseInt(temp2)) {\r\n return -1;\r\n }\r\n })\r\n setMonth(temp);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setRoomTypeObj(prev => ({ ...prev, Month: item.key }));\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n {\r\n // setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n }}\r\n pagination={false}\r\n fixedHeaderNo={0}\r\n uniqueColumn=\"srno\"\r\n optClick={(v, d) => {\r\n console.log(v, d);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Update\r\n
    \r\n
    \r\n\r\n {showPackageRoomTypePopup ? (\r\n SetPackageRoomTypePopup(false)}>\r\n
    \r\n
    \r\n
    \r\n

    Room Type

    \r\n
    \r\n
    \r\n \r\n Reset\r\n \r\n \r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n fillRoomTypeData.map(d =>\r\n {d.Name}\r\n \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n
    \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnFileUpload,\r\n InnFileUploadPreview,\r\n InnLoader,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnRadioButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnToastMessage,\r\n InnTabs,\r\n InnStatusLabel,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnButton3Darrow,\r\n InnPlainTextbox,\r\n InnButtonTypeWithDropdown,\r\n InnSingleDateSelection,\r\n InnTimeSelection,\r\n InnSingleRadioButton,\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { GetRateCodeMaster } from \"../../../../services/frontMasterService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { RateCodeMasterModelPopup } from \"../modalPopup/rateCodeMasterModelPopup\";\r\nimport { PriceScheduleModalPopup } from \"../modalPopup/priceScheduleModalPopup\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nfunction RateCodeMaster(props) {\r\n const history = useHistory();\r\n const curr = useSelector(currentUser);\r\n\r\n const [rateCodeMaster, setRateCodeMaster] = useState([]);\r\n const [rateCodeObj, setRateCodeObj] = useState(1);\r\n const [isActive, setIsActive] = useState(false);\r\n const [filterRateCodeMaster, setFilterRateCodeMaster] = useState([]);\r\n //const [selectRateCodeMaster, setSelectRateCodeMaster] = useState(1);\r\n const [toggleView, setToggleView] = useState(false);\r\n\r\n const fillRateCodeMasterDetail = () => {\r\n setIsActive(true);\r\n GetRateCodeMaster(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo)).then((d) => {\r\n setRateCodeMaster(d.data);\r\n setFilterRateCodeMaster(d.data);\r\n if (d.data.length > 0) {\r\n if (rateCodeObj != undefined){\r\n if (rateCodeObj.RateSerNo != undefined && rateCodeObj.RateSerNo != 0){\r\n let obj = d.data.find(d => d.RateSerNo == rateCodeObj.RateSerNo)\r\n if (obj != undefined){\r\n obj.Mode = \"View\";\r\n setRateCodeObj(obj);\r\n }\r\n else{\r\n setRateCodeObj(d.data[0]);\r\n }\r\n }\r\n else{\r\n setRateCodeObj(d.data[0]);\r\n }\r\n }\r\n else{\r\n setRateCodeObj(d.data[0]);\r\n //console.log(\"Select >>\",d.data[0]);\r\n }\r\n }\r\n setIsActive(false);\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n fillRateCodeMasterDetail();\r\n }, []);\r\n\r\n const handleOnSearchChange = (s) => {\r\n let filterData = rateCodeMaster.filter(d => d.Name.toLowerCase().includes(s.toLowerCase()));\r\n setFilterRateCodeMaster(filterData);\r\n console.log(\"filter >>\", filterData);\r\n }\r\n\r\n const handleOnRateCodeClick = (e) => {\r\n let obj = rateCodeMaster.find(d => d.RateSerNo == e.target.id)\r\n obj.Mode = \"View\";\r\n console.log(\"selected rate code\", obj);\r\n setRateCodeObj(obj);\r\n //setSelectRateCodeMaster(obj);\r\n console.log(e.target.id);\r\n }\r\n\r\n const LastUpdateTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
      \r\n
    • By Rohan Shah
    • \r\n
    • Date: 25th Sept.
    • \r\n
    • Time: 15:45
    • \r\n
    • PC: 192.168.600.789
    • \r\n
    \r\n
    \r\n\r\n
    \r\n );\r\n };\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Rate Code Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Search\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    Rate
    \r\n
    \r\n
      \r\n {\r\n filterRateCodeMaster.map((d,index) =>{\r\n return(\r\n
    • \r\n \r\n {d.Name}\r\n \r\n
    • \r\n );\r\n })\r\n }\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {\r\n toggleView ?\r\n <>\r\n \r\n \r\n :\r\n <>\r\n {\r\n let obj = rateCodeObj\r\n obj.Mode = \"View\";\r\n obj.RateSerNo = e;\r\n setRateCodeObj(obj);\r\n fillRateCodeMasterDetail();\r\n }}>\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n\r\n
    \r\n
    \r\n {\r\n toggleView ?\r\n <>\r\n { setToggleView(!toggleView) }}>Back\r\n \r\n :\r\n <>\r\n { setToggleView(!toggleView) }}>Price Schedule\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\nexport default RateCodeMaster;","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnTextbox,\r\n InnPlainButton,\r\n InnSingleSelectDropdown,\r\n InnSwitch\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetReasonType, GetReasonMaster, AddEditReason } from \"../../../../services/generalService\"\r\nimport { use } from \"i18next\";\r\nimport { element } from \"prop-types\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nfunction ReasonMaster() {\r\n const currUser=useSelector(currentUser)\r\n\r\n useEffect(() => {\r\n GetAllData(0);\r\n }, []);\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReasonType: \"SEL\",\r\n ReasonSerNo: 0,\r\n Name: \"\",\r\n Mode: \"\"\r\n } \r\n \r\n const [resultList, setResultList] = useState([]);\r\n const [inputb, setInputb] = useState(true);\r\n const [allDetailsList, setAllDetailList] = useState([]);\r\n const [userReason, setUserReason] = useState(defaultObj);\r\n const [reasonTypeList, setReasonTypeList] = useState([]);\r\n const [oldValue, setOldValue] = useState(0);\r\n const [search, setSearch] = useState(\"\");\r\n const [validation, setValidation] = useState({});\r\n const scrollRef = useRef(); \r\n \r\n const GetAllData = (x) => {\r\n if (x == 0) {\r\n GetReasonMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), 0).then(resp => {\r\n console.log(\"hi this is the respomse\", resp.data);\r\n setAllDetailList(resp.data);\r\n setResultList(resp.data);\r\n if(resp.data.length!=0){\r\n setUserReason(resp.data[0]);\r\n }\r\n })\r\n GetReasonType().then(resp => {\r\n console.log(\"hi this is the response\", resp.data);\r\n\r\n let temp = [{ Sequence: 0, key: \"SEL\", value: \"Select\" }]\r\n resp.data.forEach(x => {\r\n temp.push(x);\r\n })\r\n setReasonTypeList(temp);\r\n })\r\n }\r\n else {\r\n GetReasonMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), 0).then(resp => {\r\n console.log(\"hi this is the respomse\", resp.data);\r\n setAllDetailList(resp.data);\r\n setResultList(resp.data);\r\n // setUserReason(resp.data[0]);\r\n })\r\n\r\n }\r\n }\r\n\r\n const searchEdit = () => {\r\n GetReasonMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), 0).then(resp => {\r\n console.log(\"hi this is the respomse\", );\r\n setUserReason(defaultObj);\r\n setAllDetailList(resp.data);\r\n let temp = []\r\n resp.data.forEach(x => {\r\n if (x.Name.toLowerCase().includes(search.toLowerCase())) {\r\n console.log(\"HI THIS IS TJHE VALUE OF X\", x)\r\n temp.push(x);\r\n }\r\n });\r\n console.log('New List>>', temp);\r\n setResultList(temp);\r\n })\r\n }\r\n\r\n const handleClickReason = (reason) => {\r\n setUserReason(reason);\r\n setInputb(true);\r\n console.log(\"h \", reason)\r\n clearValidation();\r\n }\r\n\r\n const handleChangeSearch = (e) => {\r\n setSearch(e);\r\n setInputb(true);\r\n clearValidation();\r\n setUserReason(defaultObj);\r\n setUserReason((prev) => ({ ...prev, ReasonType: \"SEL\" }));\r\n let temp = []\r\n allDetailsList.forEach(element => {\r\n if (element.Name.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(element);\r\n }\r\n \r\n });\r\n setResultList(temp);\r\n }\r\n const handleClickEdit = () => {\r\n if (userReason.ReasonSerNo == 0) {\r\n alert(\"Please Select the rule for edit\")\r\n return\r\n }\r\n setOldValue(userReason.ReasonSerNo);\r\n setUserReason((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n setInputb(false)\r\n }\r\n const handleClickAdd = () => {\r\n setOldValue(userReason.ReasonSerNo)\r\n setUserReason(defaultObj);\r\n setSearch(\"\");\r\n setUserReason((prev) => ({ ...prev, Mode: \"Add\", ReasonSerNo: 0, ReasonType: \"SEL\" }));\r\n setInputb(false)\r\n setResultList(allDetailsList);\r\n }\r\n const clearValidation = () => {\r\n setValidation((prev) => ({ ...prev, Name: \"\", ReasonType: \"\" }))\r\n }\r\n const IsvalidPage = () => {\r\n let isValid = true;\r\n if (userReason.Name.trim().length == 0) {\r\n isValid = false;\r\n setValidation((prev) => ({ ...prev, Name: \"Please Enter Correct Name\" }))\r\n }\r\n console.log(userReason.ReasonType);\r\n if (userReason.ReasonType == \"SEL\") {\r\n isValid = false;\r\n setValidation((prev) => ({ ...prev, ReasonType: \"Please select valid Reason type\" }));\r\n }\r\n return isValid;\r\n }\r\n const handleClickSave = () => {\r\n let isvalidPage = IsvalidPage();\r\n console.log(\"useer input\", userReason);\r\n let temp = userReason;\r\n console.log(\"hi this is temp array\", temp);\r\n if (isvalidPage) {\r\n console.log(\">>>>>>>\")\r\n setInputb(true);\r\n AddEditReason(temp).then(resp => {\r\n if (resp.data.Code == \"200\") {\r\n console.log(\"hi this is the return value\", resp.data.ReturnValue);\r\n alert(resp.data.Message);\r\n GetAllData();\r\n clearValidation()\r\n setUserReason((prev) => ({ ...prev, ReasonSerNo: parseInt(resp.data.ReturnValue) }));\r\n if (userReason.Mode == \"Add\") {\r\n setTimeout(() => {\r\n // scrollRef.current.scrollIntoView({ block: \"end\" });\r\n let temp=document.getElementById(parseInt(resp.data.ReturnValue));\r\n temp.scrollIntoView({behavior:\"smooth\"});\r\n }, 100)\r\n }\r\n else if(userReason.Mode==\"Edit\"){\r\n setTimeout(() => {\r\n if (scrollRef.current != null) {\r\n scrollRef.current.scrollIntoView({ behaviour: \"smooth\" });\r\n }\r\n }, 100)\r\n }\r\n if (search != \"\") {\r\n searchEdit()\r\n }\r\n setUserReason((prev) => ({ ...prev, Mode: \"Save\" }));\r\n }\r\n }\r\n )\r\n }\r\n }\r\n\r\n const handleChangeName = (e) => {\r\n console.log(\"hio thisa is the change ion \", e);\r\n setUserReason((prev) => ({ ...prev, Name: e }));\r\n }\r\n\r\n const handleChangeReasonType = (e) => {\r\n console.log(\"hit is the change in the element\", e);\r\n setUserReason((prev) => ({ ...prev, ReasonType: e.key }));\r\n }\r\n const handelClickCancel = () => {\r\n setInputb(true);\r\n clearValidation();\r\n setUserReason((prev) => ({ ...prev, ReasonSerNo: oldValue, Mode: \"Cancel\" }))\r\n allDetailsList.forEach(element => {\r\n if (element.ReasonSerNo == oldValue) {\r\n setUserReason(element);\r\n }\r\n });\r\n setUserReason((prev) => ({ ...prev, Mode: \"Cancel\" }));\r\n }\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    GetAllData()}>Reason Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Reason
    \r\n
    \r\n\r\n {\r\n resultList.map((reason, index) => {\r\n return (\r\n
      \r\n
    • handleClickReason(reason)} id={reason.ReasonSerNo} className={(reason.ReasonSerNo == userReason.ReasonSerNo) ? \"active\" : \"\"} > {reason.Name}
    • \r\n
    \r\n )\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n handleChangeName(e)} disabled={inputb} >Name\r\n
    \r\n handleChangeReasonType(e)}\r\n // onChange={(item, name) => { }}\r\n >\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n { console.log(v); }} > Activate\r\n {userReason.Mode == \"Edit\" || userReason.Mode == \"Add\" ?\r\n <>\r\n Cancel\r\n Save\r\n \r\n :\r\n <>\r\n Edit\r\n Add\r\n \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\nexport default ReasonMaster;","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnFileUpload,\r\n InnFileUploadPreview,\r\n InnLoader,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnRadioButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnToastMessage,\r\n InnTabs,\r\n InnStatusLabel,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnButton3Darrow,\r\n InnButtonTypeWithDropdown,\r\n InnPlainTextbox,\r\n InnSingleDateSelection,\r\n InnTimeSelection,\r\n InnSingleRadioButton,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { cmbGetReservationStatus, cmbGetRoomTypeMaster, cmbGetMarketMaster, cmbGetSourceMaster, cmbGetMemberShipLvl, cmbGetVIPStatusMaster, cmbGetRateCodeMaster, GetPropertyParameterByKeys, cmbGetBillingInstructionMaster, cmbGetReservationTypeMaster, GetTransactionMaster } from \"../../../../services/reservationService\";\r\nimport moment from \"moment\";\r\nimport {\r\n GetArrivalReport,\r\n GetArrivalReportAdditionalPkg,\r\n GetArrivalReportDropTransportation,\r\n GetArrivalReportInclusivePkg,\r\n GetArrivalReportInternalComment,\r\n GetArrivalReportLastRoom,\r\n GetArrivalReportPastStay,\r\n GetArrivalReportPaymode,\r\n GetArrivalReportReservationBalance,\r\n GetArrivalReportRoomFeature,\r\n GetArrivalReportRoomRouting,\r\n GetArrivalReportWindowRouting,\r\n GetCancellationReport,\r\n GetEarlyDepartureReport,\r\n GetNoShowReport,\r\n GetOpenFolioDetailReport,\r\n GetPMNonBlockDetailReport,\r\n GetRateVarianceReport,\r\n GetReportColumnMaster,\r\n GetReportFilterMaster,\r\n GetReportMaster,\r\n GetReservationReportList,\r\n GetReservationDetailReport,\r\n GetArrivalReportRoomSpecial,\r\n GetReservationDepartureReport,\r\n GetReservationInHouseReport,\r\n GetReservationCreditLimitReport\r\n} from \"../../../../services/reservationReportService\";\r\nimport rightarrow from \"../../../../assets/images/right-circle-arrow-gray.svg\";\r\nimport { CheckboxFilter, SingleSelectFilter } from \"../filters\";\r\nimport { GetPackageMasterList, GetTransportationTypeMaster } from \"../../../../services/frontMasterService\";\r\nimport { AgentModalPopup } from \"../modalPopup/AgentModalPopup\";\r\nimport BlockIcon from \"../../../../assets/images/block-icon.svg\";\r\nimport SharerSecondry from \"../../../../assets/images/sharer-secondary-icon.svg\";\r\nimport SharerPrimary from \"../../../../assets/images/sharer-primary-icon.svg\";\r\nimport linkIcon from \"../../../../assets/images/link-icon.svg\";\r\nimport { GetUserMaster } from \"../../../../services/generalService\";\r\n\r\n//#region for functions of gragable columns\r\nfunction Widget({ content, onDragStart }) {\r\n return (\r\n
    \r\n {content}\r\n
    \r\n );\r\n}\r\n\r\nfunction WidgetContainer({\r\n onDrop,\r\n children,\r\n onDragEnter,\r\n onDragLeave,\r\n isDraggedOver,\r\n size,\r\n}) {\r\n return (\r\n e.preventDefault()}\r\n >\r\n {!isDraggedOver && children}\r\n \r\n );\r\n}\r\n//#endregion\r\n\r\nexport function ReservationReport(props) {\r\n\r\n const history = useHistory();\r\n const selectdata = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n const dtTypeData = [\r\n { key: \"ARR\", value: \"Arrival Date\" },\r\n { key: \"DEPT\", value: \"Departure Date\" },\r\n { key: \"BOOK\", value: \"Booking Date\" },\r\n { key: \"STAY\", value: \"Stay Date\" },\r\n ];\r\n const [colList, setColList] = useState([]);\r\n const [colListKeys, setColListKeys] = useState([]);\r\n\r\n /* Draggable Widget Start */\r\n const [widgets, setWidgets] = useState([]);\r\n const [draggedItemId, setDraggedItemId] = useState(null);\r\n const [draggedOverContainerId, setDraggedOverContainerId] = useState(null);\r\n\r\n const handleDragStart = (id) => setDraggedItemId(id);\r\n const handleDragEntered = (id) => setDraggedOverContainerId(id);\r\n const handleDragLeave = () => setDraggedOverContainerId(null);\r\n const [columnList, setColumnlist] = useState([])\r\n\r\n const handleDrop = () => {\r\n if (!draggedOverContainerId) {\r\n clearState();\r\n return;\r\n }\r\n\r\n const fromIndex = widgets.findIndex((w) => w.id === draggedItemId);\r\n const toIndex = widgets.findIndex((w) => w.id === draggedOverContainerId);\r\n setWidgets((w) => moveItem(w, fromIndex, toIndex));\r\n setColumnlist((w) => moveItem(w, fromIndex, toIndex));\r\n\r\n clearState();\r\n };\r\n\r\n const clearState = () => {\r\n setDraggedItemId(null);\r\n setDraggedOverContainerId(null);\r\n };\r\n /* Draggable Widget End */\r\n\r\n //#region local vairables\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const filterData = [\r\n { key: \"FromDate\", value: \"Date From\" },\r\n { key: \"ToDate\", value: \"Date To\" },\r\n { key: \"CompanyProfileSerNo\", value: \"Company\" },\r\n { key: \"AgentProfileSerNo\", value: \"Agent\" },\r\n { key: \"RoomTypeSerNo\", value: \"Room Type\" },\r\n { key: \"VIPStatusSerNo\", value: \"VIP Status\" },\r\n { key: \"MembershipLevelSerNo\", value: \"Membership Level\" },\r\n { key: \"BlockSerNo\", value: \"Block No.\" },\r\n { key: \"ETAFrom\", value: \"ETA From\" },\r\n { key: \"ETATo\", value: \"ETA To\" },\r\n { key: \"SelectReservation\", value: \"Select Reservation\" },\r\n { key: \"ReservationStatus\", value: \"Reservation Status\" },\r\n { key: \"InclPackageSerNo\", value: \"Included Packages\" },\r\n { key: \"ExclPakcageSerNo\", value: \"Additional Packages\" },\r\n { key: \"IsAdvanceCheckedIn\", value: \"Advance Check in Marked\" },\r\n { key: \"strTransType\", value: \"Transportation Type\" },\r\n { key: \"IsWalkIn\", value: \"Walk In\" },\r\n { key: \"RateSerNo\", value: \"Rate Code\" },\r\n { key: \"SameDayReservationNArrival\", value: \"Same Day Reservation\" },\r\n { key: \"IsPreReg\", value: \"Pre-Registered\" },\r\n { key: \"IsNoPost\", value: \"Arrivals with No Post\" },\r\n { key: \"IsArrivalOnSameDay\", value: \"Rooms With Next Day Arrival\" },\r\n { key: \"CancellationDate\", value: \"Date of Cancellation\" },\r\n { key: \"CancelReservationStatus\", value: \"Cancelled Res. Status\" },\r\n { key: \"BillingInstructionSerNo\", value: \"Billing Instructions\" },\r\n { key: \"TodayOpenFolio\", value: \"Open Folios Today\" },\r\n { key: \"NoShowDate\", value: \"No Show Date\" },\r\n { key: \"NoShowReservationStatus\", value: \"No Show Res Status\" },\r\n { key: \"FromNight\", value: \"From Night\" },\r\n { key: \"ToNight\", value: \"To Night\" },\r\n { key: \"DtType\", value: \"Date Type\" },\r\n\r\n ]\r\n const orderByData = [\r\n { key: \"\", value: \"Select\" },\r\n { key: \"RoomNo\", value: \"RoomNo\" }\r\n ];\r\n const selReservationData = [\r\n { key: 1, value: \"Individual\", code: \"I\" },\r\n { key: 2, value: \"Block\", code: \"B\" },\r\n { key: 3, value: \"All\", code: \"\" },\r\n ]\r\n const resStatusData = [\r\n { key: 1, value: \"Due In\", code: \"DIN\" },\r\n { key: 2, value: \"Arrived\", code: \"ARD\" },\r\n { key: 3, value: \"Due Out\", code: \"DOT\" },\r\n { key: 4, value: \"Checked Out\", code: \"COT\" },\r\n { key: 5, value: \"In-House\", code: \"INH\" },\r\n { key: 6, value: \"Hold\", code: \"HLD\" },\r\n { key: 7, value: \"Tentative\", code: \"TEN\" },\r\n { key: 8, value: \"Cancelled\", code: \"CAN\" },\r\n { key: 9, value: \"No-Show\", code: \"NSH\" },\r\n ]\r\n const cancResStat = [\r\n { key: \"NA\", value: \"Not Applicable (NA) \" },\r\n { key: \"DP\", value: \"Decision Pending (DP) \" },\r\n { key: \"PC\", value: \"Penalty Charged (PC) \" },\r\n { key: \"GP\", value: \"Generated Proforma Invoice (GPI) \" },\r\n { key: \"CM\", value: \"Cancellation Managed (CM) \" },\r\n { key: \"WO\", value: \"Waive Off (WO) \" },\r\n ];\r\n //#endregion\r\n\r\n //#region state\r\n const [showReportFilterPopup, setShowReportFilterPopup] = useState(false);\r\n const [reservationStatusData, setReservationStatusData] = useState([]);\r\n const [roomTypeData, setRoomTypeData] = useState([]);\r\n const [membershipLvlData, setMembershipLvlData] = useState([]);\r\n const [sourceData, setSourceData] = useState([]);\r\n const [marketData, setMarketData] = useState([]);\r\n const [strFilterList, setStrFilterList] = useState(\"\");\r\n\r\n const [reportList, setReportList] = useState([]);\r\n const [tempRepostList, setTempReportList] = useState([]);\r\n // const [selectedReportSerNo, setSelectedReportSerNo] = useState(props.location.state != undefined && props.location.state.reportserno != undefined ? props.location.state.reportserno : 1);\r\n const [selectedReportSerNo, setSelectedReportSerNo] = useState(props.location.state != undefined && props.location.state.reportserno != undefined ? props.location.state.reportserno : null);\r\n const [fixedFilterList, setFixedFilterList] = useState([])\r\n const [additionalFilterList, setAdditionalFilterList] = useState([])\r\n\r\n const [fillVipStatusData, setFillVipStatusData] = useState([]);\r\n const [selectedVipStatus, setSelectedVipStatus] = useState([]);\r\n const [selectedMemLvl, setSelectedMemLvl] = useState([]);\r\n const [selectedRes, setSelectedRes] = useState([1, 2]);\r\n const [selectedResType, setSelectedResType] = useState({ key: 1, value: \"Individual\" });\r\n const [selectedRmType, setSelectedRmType] = useState([]);\r\n const [selectTransType, setSelectTransType] = useState([]);\r\n const [showFilter, setShowFilter] = useState(false);\r\n const [fillRateCodeData, setFillRateCodeData] = useState([]);\r\n const [transTypeData, setTransTypeData] = useState([]);\r\n\r\n const [validationObj, setValidationObj] = useState({});\r\n\r\n const [isRemoveClick, setIsRemoveClick] = useState(false);\r\n const [fixedColumnList, setFixedColumnList] = useState([]);\r\n const [addColumnList, setAddColumnList] = useState([]);\r\n const [selectedColumn, setSelectedColumn] = useState(0);\r\n const [showCompanySearchFilterModal, setShowCompanySearchFilterModal] = useState(false);\r\n const [selectedCompany, setSelectedCompany] = useState({\r\n AgentSerNo: 0,\r\n AgentName: \"Select\",\r\n });\r\n const [showAgentSearchFilterModal, setShowAgentSearchFilterModal] = useState(false);\r\n const [selectedAgent, setSelectedAgent] = useState({\r\n AgentSerNo: 0,\r\n AgentName: \"Select\",\r\n });\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n const parameter = \"BusinessDate\"\r\n const [reportFilterObj, setReportFilterObj] = useState({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n // FromDate: businessDate ? moment(new Date(businessDate)).format(\"DD-MMM-yyyy\") : moment(new Date()).format(\"DD-MMM-yyyy\"),\r\n // ToDate: businessDate ? moment(new Date(businessDate)).format(\"DD-MMM-yyyy\") : moment(new Date()).format(\"DD-MMM-yyyy\"),\r\n });\r\n const [cancellationReportObj, setCancellationReportObj] = useState({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo)\r\n })\r\n const [inclPkgList, setInclPkgList] = useState([]);\r\n const [addPkgList, setAddPkgList] = useState([]);\r\n const [selectedInclPkg, setSelectedInclPkg] = useState([]);\r\n const [selectedAddPkg, setSelectedAddPkg] = useState([]);\r\n const [flag, setFlag] = useState(false);\r\n const [isActive, setIsActive] = useState(false);\r\n const [columnKeys, setColumnKeys] = useState([]);\r\n const [selectedCancelledResStatus, setSelectedCancelledResStatus] = useState([]);\r\n const [selectedNoShowResStatus, setSelectedNoShowResStatus] = useState([]);\r\n const [billingData, setBillingData] = useState([]);\r\n const [selectedBilling, setSelectedBilling] = useState([]);\r\n const [selectedReportName, setSelectedReportName] = useState(props.location.state != undefined && props.location.state.reportname != undefined ? props.location.state.reportname : \"\");\r\n const [filResTypeData, setFilResTypeData] = useState([]);\r\n const [userData, setUserData] = useState([]);\r\n const [selectedResTypeSerNo, setSelectedResTypeSerNo] = useState([]);\r\n const [selectAll, setSelectAll] = useState(false);\r\n const [vipSelectAll, setVIPSelectAll] = useState(false);\r\n const [membershipSelectAll, setMembershipSelectAll] = useState(false);\r\n const [rmTypeSelectAll, setRmTypeSelectAll] = useState(false);\r\n const [addPackSelectAll, setAddPackSelectAll] = useState(false);\r\n const [inclPackSelectAll, setInclPackSelectAll] = useState(false);\r\n const [paymentMtdSelectAll, setPaymentMtdSelectAll] = useState(false);\r\n const [paymentModeCombo, setPaymentModeCombo] = useState([]);\r\n const [selectedPaymode, setSelectedPaymode] = useState([]);\r\n //#endregion\r\n\r\n //#region api\r\n const fillDynamicReportList = async (finalColumnList) => {\r\n let output = [];\r\n console.log(reportFilterObj)\r\n console.log(finalColumnList)\r\n setIsActive(true);\r\n await GetArrivalReport(reportFilterObj).then(d => {\r\n d.data.forEach((x) => {\r\n if (x.BlockSerNo != 0) {\r\n x[\"BlockSerNo\"] = BlockIcon;\r\n }\r\n else {\r\n x[\"BlockSerNo\"] = \"\";\r\n }\r\n if (x.IsSharer != false) {\r\n x[\"IsSharer\"] = SharerSecondry;\r\n }\r\n else {\r\n x[\"IsSharer\"] = SharerPrimary;\r\n }\r\n // if (x.PartySerNo != 0) {\r\n // x[\"PartySerNo\"] = linkIcon;\r\n // }\r\n // else {\r\n // x[\"PartySerNo\"] = \"\";\r\n // }\r\n })\r\n output = d.data;\r\n\r\n });\r\n if (finalColumnList.find(x => x.key == \"Included Packages\")) {\r\n await GetArrivalReportInclusivePkg(currUser.ClientSerNo, currUser.PropertySerNo, reportFilterObj.FromDate, reportFilterObj.ToDate, reportFilterObj.InclPackageSerNo == \"\" || reportFilterObj.InclPackageSerNo == undefined ? \"0\" : reportFilterObj.InclPackageSerNo).then(d => {\r\n let temp = output;\r\n for (let i in temp) {\r\n for (let j in d.data) {\r\n if (temp[i].ReservationSerNo == d.data[j].ReservationSerNo) {\r\n temp[i].InclPackageName = d.data[j].InclPackageName;\r\n }\r\n }\r\n }\r\n output = temp;\r\n })\r\n }\r\n\r\n if (finalColumnList.find(x => x.key == \"Additional Packages\")) {\r\n await GetArrivalReportAdditionalPkg(currUser.ClientSerNo, currUser.PropertySerNo, reportFilterObj.FromDate, reportFilterObj.ToDate, reportFilterObj.ExclPakcageSerNo == \"\" || reportFilterObj.ExclPakcageSerNo == undefined ? \"0\" : reportFilterObj.ExclPakcageSerNo, reportFilterObj.DtType == undefined ? \"ARR\" : reportFilterObj.DtType).then(d => {\r\n let temp = output;\r\n for (let i in temp) {\r\n for (let j in d.data) {\r\n if (temp[i].ReservationSerNo == d.data[j].ReservationSerNo) {\r\n temp[i].ExclPackageName = d.data[j].AddPackageName;\r\n }\r\n }\r\n }\r\n output = temp;\r\n })\r\n }\r\n\r\n if (finalColumnList.find(x => x.key == \"Departure Transportation Type\")) {\r\n await GetArrivalReportDropTransportation(currUser.ClientSerNo, currUser.PropertySerNo, reportFilterObj.FromDate, reportFilterObj.ToDate).then(d => {\r\n let temp = output;\r\n for (let i in temp) {\r\n for (let j in d.data) {\r\n if (temp[i].ReservationSerNo == d.data[j].ReservationSerNo) {\r\n temp[i].DropTransportationType = d.data[j].DropTransportationType;\r\n }\r\n }\r\n }\r\n output = temp;\r\n })\r\n }\r\n\r\n if (finalColumnList.find(x => x.key == \"Drop Carrier No.\")) {\r\n await GetArrivalReportDropTransportation(currUser.ClientSerNo, currUser.PropertySerNo, reportFilterObj.FromDate, reportFilterObj.ToDate).then(d => {\r\n let temp = output;\r\n for (let i in temp) {\r\n for (let j in d.data) {\r\n if (temp[i].ReservationSerNo == d.data[j].ReservationSerNo) {\r\n temp[i].DropTransportationCarrier = d.data[j].DropTransportationCarrier;\r\n }\r\n }\r\n }\r\n output = temp;\r\n })\r\n }\r\n\r\n if (finalColumnList.find(x => x.key == \"Internal Comment\")) {\r\n await GetArrivalReportInternalComment(currUser.ClientSerNo, currUser.PropertySerNo, reportFilterObj.FromDate, reportFilterObj.ToDate).then(d => {\r\n let temp = output;\r\n for (let i in temp) {\r\n for (let j in d.data) {\r\n if (temp[i].ReservationSerNo == d.data[j].ReservationSerNo) {\r\n temp[i].InternalComment = d.data[j].InternalComment;\r\n }\r\n }\r\n }\r\n output = temp;\r\n })\r\n }\r\n\r\n if (finalColumnList.find(x => x.key == \"Mode of Payment\")) {\r\n await GetArrivalReportPaymode(currUser.ClientSerNo, currUser.PropertySerNo, reportFilterObj.FromDate, reportFilterObj.ToDate).then(d => {\r\n let temp = output;\r\n for (let i in temp) {\r\n for (let j in d.data) {\r\n if (temp[i].ReservationSerNo == d.data[j].ReservationSerNo) {\r\n temp[i].PaymodeName = d.data[j].PaymodeName;\r\n }\r\n }\r\n }\r\n output = temp;\r\n })\r\n }\r\n\r\n if (finalColumnList.find(x => x.key == \"Room Features\")) {\r\n await GetArrivalReportRoomFeature(currUser.ClientSerNo, currUser.PropertySerNo, reportFilterObj.FromDate, reportFilterObj.ToDate).then(d => {\r\n let temp = output;\r\n for (let i in temp) {\r\n for (let j in d.data) {\r\n if (temp[i].ReservationSerNo == d.data[j].ReservationSerNo) {\r\n temp[i].RoomFeature = d.data[j].RoomFeature;\r\n }\r\n }\r\n }\r\n output = temp;\r\n })\r\n }\r\n\r\n if (finalColumnList.find(x => x.key == \"Room Routing\")) {\r\n await GetArrivalReportRoomRouting(currUser.ClientSerNo, currUser.PropertySerNo, reportFilterObj.FromDate, reportFilterObj.ToDate).then(d => {\r\n let temp = output;\r\n for (let i in temp) {\r\n for (let j in d.data) {\r\n if (temp[i].ReservationSerNo == d.data[j].ReservationSerNo) {\r\n temp[i].RoomRouting = d.data[j].RoomRouting;\r\n }\r\n }\r\n }\r\n output = temp;\r\n })\r\n }\r\n\r\n if (finalColumnList.find(x => x.key == \"Window Routing\")) {\r\n await GetArrivalReportWindowRouting(currUser.ClientSerNo, currUser.PropertySerNo, reportFilterObj.FromDate, reportFilterObj.ToDate).then(d => {\r\n let temp = output;\r\n for (let i in temp) {\r\n for (let j in d.data) {\r\n if (temp[i].ReservationSerNo == d.data[j].ReservationSerNo) {\r\n temp[i].WindowRouting = d.data[j].WindowRouting;\r\n }\r\n }\r\n }\r\n output = temp;\r\n })\r\n }\r\n //\r\n if (finalColumnList.find(x => x.key == \"Balance\")) {\r\n await GetArrivalReportReservationBalance(currUser.ClientSerNo, currUser.PropertySerNo, reportFilterObj.FromDate, reportFilterObj.ToDate).then(d => {\r\n let temp = output;\r\n for (let i in temp) {\r\n for (let j in d.data) {\r\n if (temp[i].ReservationSerNo == d.data[j].ReservationSerNo) {\r\n temp[i].Balance = d.data[j].Balance;\r\n }\r\n }\r\n }\r\n output = temp;\r\n })\r\n }\r\n if (finalColumnList.find(x => x.key == \"Last Room\")) {\r\n await GetArrivalReportLastRoom(currUser.ClientSerNo, currUser.PropertySerNo, reportFilterObj.FromDate, reportFilterObj.ToDate).then(d => {\r\n let temp = output;\r\n for (let i in temp) {\r\n for (let j in d.data) {\r\n if (temp[i].GuestProfileSerNo == d.data[j].GuestProfileSerNo) {\r\n temp[i].LastRoomNo = d.data[j].LastRoomNo;\r\n }\r\n }\r\n }\r\n output = temp;\r\n })\r\n }\r\n if (finalColumnList.find(x => x.key == \"Past Stay\")) {\r\n await GetArrivalReportPastStay(currUser.ClientSerNo, currUser.PropertySerNo, reportFilterObj.FromDate, reportFilterObj.ToDate, reportFilterObj.DtType == undefined ? \"ARR\" : reportFilterObj.DtType).then(d => {\r\n let temp = output;\r\n for (let i in temp) {\r\n for (let j in d.data) {\r\n if (temp[i].GuestProfileSerNo == d.data[j].GuestProfileSerNo) {\r\n temp[i].PastStay = d.data[j].PastStay;\r\n }\r\n else {\r\n temp[i].PastStay = 0;\r\n }\r\n }\r\n }\r\n output = temp;\r\n })\r\n }\r\n setIsActive(false);\r\n console.log(\"now return\");\r\n return output;\r\n\r\n };\r\n\r\n const fillColumnMasterList = () => {\r\n GetReportColumnMaster(selectedReportSerNo).then((d) => {\r\n let tempFixedData = [];\r\n let tempAdditionalData = [];\r\n let temp = {};\r\n let tempColumnList = [];\r\n let tempData = [];\r\n let tempAddColumns = [];\r\n if (d.data.length > 0) {\r\n d.data.map((x) => {\r\n // if (selectedReportSerNo == x.ReportSerNo) {\r\n if (x.ColumnName == \"BlockSerNo\") {\r\n tempData.push({ key: x.ColumnCaption, value: x.ColumnName, type: \"img\", sorting: \"Y\", align: \"center\", uniqueId: x.ColumnSerNo });\r\n }\r\n else if (x.ColumnName == \"IsSharer\") {\r\n tempData.push({ key: x.ColumnCaption, value: x.ColumnName, type: \"img\", sorting: \"Y\", align: \"center\", uniqueId: x.ColumnSerNo });\r\n }\r\n else if (x.ColumnName == \"PartySerNo\") {\r\n tempData.push({ key: x.ColumnCaption, value: x.ColumnName, type: \"txt\", sorting: \"Y\", align: \"center\", uniqueId: x.ColumnSerNo });\r\n }\r\n else {\r\n tempData.push({ key: x.ColumnCaption, value: x.ColumnName, type: \"txt\", sorting: \"Y\", align: \"center\", uniqueId: x.ColumnSerNo });\r\n }\r\n if (x.IsFixed) {\r\n temp =
    {x.ColumnCaption}
    ;\r\n tempFixedData.push({ key: x.ColumnCaption, value: x.ColumnName, type: \"txt\", sorting: \"Y\", align: \"center\", serno: x.ColumnSerNo });\r\n tempColumnList.push({ id: x.ColumnSerNo, content: temp, size: \"w100p\" });\r\n }\r\n else {\r\n tempAddColumns.push({ key: x.ColumnSerNo, value: x.ColumnCaption });\r\n tempAdditionalData.push({ key: x.ColumnCaption, value: x.ColumnName, type: \"txt\", sorting: \"Y\", align: \"center\", uniqueId: x.ColumnSerNo });\r\n }\r\n // tempColumnList.push({ id: x.ColumnSerNo, content: temp, size: \"w100p\" })\r\n // }\r\n })\r\n console.log(tempData);\r\n setColumnlist(tempData);\r\n setWidgets(tempColumnList);\r\n setFixedColumnList(tempFixedData);\r\n //setAddColumnList(tempAdditionalData)\r\n setAddColumnList(tempAddColumns);\r\n }\r\n })\r\n }\r\n const fillPropertyParameter = () => {\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parameter).then(d => {\r\n if (d.data != undefined && d.data.length > 0) {\r\n let obj = d.data.find(x => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(obj.value);\r\n }\r\n }\r\n });\r\n };\r\n const fillBilling = () => {\r\n cmbGetBillingInstructionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n if (d.data) {\r\n setBillingData(d.data);\r\n }\r\n })\r\n }\r\n\r\n const fillCancellationReport = async (finalColumnList) => {\r\n let output = [];\r\n console.log(reportFilterObj)\r\n console.log(finalColumnList)\r\n setIsActive(true);\r\n await GetCancellationReport(reportFilterObj).then(d => {\r\n d.data.forEach((x) => {\r\n if (x.BlockSerNo != 0) {\r\n x[\"BlockSerNo\"] = BlockIcon;\r\n }\r\n else {\r\n x[\"BlockSerNo\"] = \"\";\r\n }\r\n if (x.IsSharer != false) {\r\n x[\"IsSharer\"] = SharerSecondry;\r\n }\r\n else {\r\n x[\"IsSharer\"] = SharerPrimary;\r\n }\r\n if (x.PartySerNo == null) {\r\n x[\"PartySerNo\"] = 0;\r\n }\r\n })\r\n output = d.data;\r\n\r\n });\r\n return output\r\n }\r\n const fillPMNonBlockReport = async (finalColumnList) => {\r\n let output = [];\r\n console.log(reportFilterObj)\r\n console.log(finalColumnList)\r\n setIsActive(true);\r\n await GetPMNonBlockDetailReport(currUser.ClientSerNo, parseInt(currUser.PropertySerNo), reportFilterObj.PaymodeSerNo == undefined ? null : reportFilterObj.PaymodeSerNo).then(d => {\r\n output = d.data;\r\n }\r\n );\r\n return output\r\n }\r\n const fillOpenFolioReport = async (finalColumnList) => {\r\n let output = [];\r\n console.log(reportFilterObj)\r\n console.log(finalColumnList)\r\n setIsActive(true);\r\n await GetOpenFolioDetailReport(reportFilterObj).then(d => {\r\n d.data.forEach((x) => {\r\n if (x.BlockSerNo != 0) {\r\n x[\"BlockSerNo\"] = BlockIcon;\r\n }\r\n else {\r\n x[\"BlockSerNo\"] = \"\";\r\n }\r\n if (x.IsSharer != false) {\r\n x[\"IsSharer\"] = SharerSecondry;\r\n }\r\n else {\r\n x[\"IsSharer\"] = SharerPrimary;\r\n }\r\n })\r\n output = d.data;\r\n\r\n });\r\n return output\r\n }\r\n const fillRateVarianceReport = async () => {\r\n let output = [];\r\n console.log(reportFilterObj)\r\n setIsActive(true);\r\n await GetRateVarianceReport(reportFilterObj).then(d => {\r\n output = d.data;\r\n });\r\n return output\r\n }\r\n const fillNoShowReport = async (finalColumnList) => {\r\n let output = [];\r\n console.log(reportFilterObj)\r\n console.log(finalColumnList)\r\n setIsActive(true);\r\n await GetNoShowReport(reportFilterObj).then(d => {\r\n d.data.forEach((x) => {\r\n if (x.BlockSerNo != 0) {\r\n x[\"BlockSerNo\"] = BlockIcon;\r\n }\r\n else {\r\n x[\"BlockSerNo\"] = \"\";\r\n }\r\n if (x.IsSharer != false) {\r\n x[\"IsSharer\"] = SharerSecondry;\r\n }\r\n else {\r\n x[\"IsSharer\"] = SharerPrimary;\r\n }\r\n })\r\n output = d.data;\r\n\r\n });\r\n return output\r\n }\r\n const fillEarlyDepartureReport = async (finalColumnList) => {\r\n let output = [];\r\n console.log(reportFilterObj)\r\n console.log(finalColumnList)\r\n setIsActive(true);\r\n await GetEarlyDepartureReport(reportFilterObj).then(d => {\r\n d.data.forEach((x) => {\r\n if (x.BlockSerNo != 0) {\r\n x[\"BlockSerNo\"] = BlockIcon;\r\n }\r\n else {\r\n x[\"BlockSerNo\"] = \"\";\r\n }\r\n if (x.IsSharer != false) {\r\n x[\"IsSharer\"] = SharerSecondry;\r\n }\r\n else {\r\n x[\"IsSharer\"] = SharerPrimary;\r\n }\r\n })\r\n output = d.data;\r\n\r\n });\r\n return output\r\n }\r\n const fillReservationDetailReport = async (finalColumnList) => {\r\n let output = [];\r\n console.log(reportFilterObj)\r\n let apiObj = JSON.parse(JSON.stringify(reportFilterObj));\r\n if (reportFilterObj.FromNight != undefined) {\r\n apiObj.FromNight = parseInt(apiObj.FromNight)\r\n }\r\n if (reportFilterObj.ToNight != undefined) {\r\n apiObj.ToNight = parseInt(apiObj.ToNight)\r\n }\r\n setIsActive(true);\r\n await GetReservationDetailReport(apiObj).then(d => {\r\n d.data.forEach((x) => {\r\n if (x.BlockSerNo != 0) {\r\n x[\"BlockSerNo\"] = BlockIcon;\r\n }\r\n else {\r\n x[\"BlockSerNo\"] = \"\";\r\n }\r\n if (x.IsSharer != false) {\r\n x[\"IsSharer\"] = SharerSecondry;\r\n }\r\n else {\r\n x[\"IsSharer\"] = SharerPrimary;\r\n }\r\n // if (x.PartySerNo != 0) {\r\n // x[\"PartySerNo\"] = linkIcon;\r\n // }\r\n // else {\r\n // x[\"PartySerNo\"] = \"\";\r\n // }\r\n })\r\n output = d.data;\r\n });\r\n if (finalColumnList.find(x => x.key == \"Additional Packages\")) {\r\n await GetArrivalReportAdditionalPkg(currUser.ClientSerNo, currUser.PropertySerNo, reportFilterObj.FromDate, reportFilterObj.ToDate, reportFilterObj.ExclPakcageSerNo == \"\" || reportFilterObj.ExclPakcageSerNo == undefined ? \"0\" : reportFilterObj.ExclPakcageSerNo, reportFilterObj.DtType == undefined ? \"ARR\" : reportFilterObj.DtType).then(d => {\r\n let temp = output;\r\n for (let i in temp) {\r\n for (let j in d.data) {\r\n if (temp[i].ReservationSerNo == d.data[j].ReservationSerNo) {\r\n temp[i].ExclPackageName = d.data[j].AddPackageName;\r\n }\r\n }\r\n }\r\n output = temp;\r\n })\r\n }\r\n if (finalColumnList.find(x => x.key == \"Past Stay\")) {\r\n await GetArrivalReportPastStay(currUser.ClientSerNo, currUser.PropertySerNo, reportFilterObj.FromDate, reportFilterObj.ToDate, reportFilterObj.DtType == undefined ? \"ARR\" : reportFilterObj.DtType).then(d => {\r\n let temp = output;\r\n for (let i in temp) {\r\n for (let j in d.data) {\r\n if (temp[i].GuestProfileSerNo == d.data[j].GuestProfileSerNo) {\r\n temp[i].PastStay = d.data[j].PastStay;\r\n }\r\n else {\r\n temp[i].PastStay = 0;\r\n }\r\n }\r\n }\r\n output = temp;\r\n })\r\n }\r\n if (finalColumnList.find(x => x.key == \"Special\")) {\r\n await GetArrivalReportRoomSpecial(currUser.ClientSerNo, currUser.PropertySerNo, reportFilterObj.FromDate, reportFilterObj.ToDate, reportFilterObj.DtType == undefined ? \"ARR\" : reportFilterObj.DtType).then(d => {\r\n let temp = output;\r\n for (let i in temp) {\r\n for (let j in d.data) {\r\n if (temp[i].ReservationSerNo == d.data[j].ReservationSerNo) {\r\n temp[i].Special = d.data[j].Special;\r\n }\r\n }\r\n }\r\n output = temp;\r\n })\r\n }\r\n return output\r\n }\r\n const fillReservationDepartureReport = async (finalColumnList) => {\r\n let output = [];\r\n console.log(reportFilterObj)\r\n setIsActive(true);\r\n await GetReservationDepartureReport(reportFilterObj).then(d => {\r\n d.data.forEach((x) => {\r\n if (x.BlockSerNo != 0) {\r\n x[\"BlockSerNo\"] = BlockIcon;\r\n }\r\n else {\r\n x[\"BlockSerNo\"] = \"\";\r\n }\r\n if (x.IsSharer != false) {\r\n x[\"IsSharer\"] = SharerSecondry;\r\n }\r\n else {\r\n x[\"IsSharer\"] = SharerPrimary;\r\n }\r\n // if (x.PartySerNo != 0) {\r\n // x[\"PartySerNo\"] = linkIcon;\r\n // }\r\n // else {\r\n // x[\"PartySerNo\"] = \"\";\r\n // }\r\n })\r\n output = d.data;\r\n });\r\n if (finalColumnList.find(x => x.key == \"Additional Packages\")) {\r\n await GetArrivalReportAdditionalPkg(currUser.ClientSerNo, currUser.PropertySerNo, reportFilterObj.FromDate, reportFilterObj.ToDate, reportFilterObj.ExclPakcageSerNo == \"\" || reportFilterObj.ExclPakcageSerNo == undefined ? \"0\" : reportFilterObj.ExclPakcageSerNo, reportFilterObj.DtType == undefined ? \"ARR\" : reportFilterObj.DtType).then(d => {\r\n let temp = output;\r\n for (let i in temp) {\r\n for (let j in d.data) {\r\n if (temp[i].ReservationSerNo == d.data[j].ReservationSerNo) {\r\n temp[i].ExclPackageName = d.data[j].AddPackageName;\r\n }\r\n }\r\n }\r\n output = temp;\r\n })\r\n }\r\n return output\r\n }\r\n const fillReservationInHouseReport = async (finalColumnList) => {\r\n let output = [];\r\n console.log(reportFilterObj)\r\n setIsActive(true);\r\n await GetReservationInHouseReport(reportFilterObj).then(d => {\r\n d.data.forEach((x) => {\r\n if (x.BlockSerNo != 0) {\r\n x[\"BlockSerNo\"] = BlockIcon;\r\n }\r\n else {\r\n x[\"BlockSerNo\"] = \"\";\r\n }\r\n if (x.IsSharer != false) {\r\n x[\"IsSharer\"] = SharerSecondry;\r\n }\r\n else {\r\n x[\"IsSharer\"] = SharerPrimary;\r\n }\r\n // if (x.PartySerNo != 0) {\r\n // x[\"PartySerNo\"] = linkIcon;\r\n // }\r\n // else {\r\n // x[\"PartySerNo\"] = \"\";\r\n // }\r\n })\r\n output = d.data;\r\n });\r\n return output\r\n }\r\n const fillReservationCreditLimitReport = async (finalColumnList) => {\r\n let output = [];\r\n console.log(reportFilterObj)\r\n let apiObj = JSON.parse(JSON.stringify(reportFilterObj));\r\n if (reportFilterObj.FromNight != undefined) {\r\n apiObj.FromNight = parseInt(apiObj.FromNight)\r\n }\r\n if (reportFilterObj.ToNight != undefined) {\r\n apiObj.ToNight = parseInt(apiObj.ToNight)\r\n }\r\n\r\n setIsActive(true);\r\n await GetReservationCreditLimitReport(apiObj).then(d => {\r\n d.data.forEach((x) => {\r\n if (x.BlockSerNo != 0) {\r\n x[\"BlockSerNo\"] = BlockIcon;\r\n }\r\n else {\r\n x[\"BlockSerNo\"] = \"\";\r\n }\r\n if (x.IsSharer != false) {\r\n x[\"IsSharer\"] = SharerSecondry;\r\n }\r\n else {\r\n x[\"IsSharer\"] = SharerPrimary;\r\n }\r\n // if (x.PartySerNo != 0) {\r\n // x[\"PartySerNo\"] = linkIcon;\r\n // }\r\n // else {\r\n // x[\"PartySerNo\"] = \"\";\r\n // }\r\n })\r\n output = d.data;\r\n });\r\n return output\r\n }\r\n //#endregion\r\n\r\n //#region event\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const onReportPreviewClick = () => {\r\n let finalColumnList = []\r\n let tempObj = {}\r\n widgets.map((x) => {\r\n tempObj = columnList.find((d) => d.uniqueId == x.id)\r\n if (tempObj != undefined) {\r\n finalColumnList.push(tempObj);\r\n }\r\n })\r\n // fillReportList().then(d => {\r\n // history.push({\r\n // pathname: \"/ReservationReportPreview\",\r\n // state: { obj: reportObj, list: d, filterList: strFilterList }\r\n // });\r\n // });\r\n if (selectedReportSerNo == 7) {\r\n fillCancellationReport(finalColumnList).then(d => {\r\n history.push({\r\n pathname: \"/ReservationReportPreview\",\r\n state: { obj: reportFilterObj, list: d, filterList: strFilterList, columnList: finalColumnList, reportserno: selectedReportSerNo, reportname: selectedReportName }\r\n });\r\n });\r\n }\r\n else if (selectedReportSerNo == 8) {\r\n fillPMNonBlockReport(finalColumnList).then(d => {\r\n history.push({\r\n pathname: \"/ReservationReportPreview\",\r\n state: { obj: reportFilterObj, list: d, filterList: strFilterList, columnList: finalColumnList, reportserno: selectedReportSerNo, reportname: selectedReportName }\r\n });\r\n })\r\n }\r\n else if (selectedReportSerNo == 9) {\r\n fillOpenFolioReport(finalColumnList).then(d => {\r\n history.push({\r\n pathname: \"/ReservationReportPreview\",\r\n state: { obj: reportFilterObj, list: d, filterList: strFilterList, columnList: finalColumnList, reportserno: selectedReportSerNo, reportname: selectedReportName }\r\n });\r\n })\r\n }\r\n else if (selectedReportSerNo == 10) {\r\n fillRateVarianceReport().then(d => {\r\n history.push({\r\n pathname: \"/ReservationReportPreview\",\r\n state: { obj: reportFilterObj, list: d, filterList: strFilterList, columnList: finalColumnList, reportserno: selectedReportSerNo, reportname: selectedReportName }\r\n });\r\n })\r\n }\r\n else if (selectedReportSerNo == 11) {\r\n fillNoShowReport(finalColumnList).then(d => {\r\n history.push({\r\n pathname: \"/ReservationReportPreview\",\r\n state: { obj: reportFilterObj, list: d, filterList: strFilterList, columnList: finalColumnList, reportserno: selectedReportSerNo, reportname: selectedReportName }\r\n });\r\n })\r\n }\r\n else if (selectedReportSerNo == 5) {\r\n fillEarlyDepartureReport(finalColumnList).then(d => {\r\n history.push({\r\n pathname: \"/ReservationReportPreview\",\r\n state: { obj: reportFilterObj, list: d, filterList: strFilterList, columnList: finalColumnList, reportserno: selectedReportSerNo, reportname: selectedReportName }\r\n });\r\n })\r\n }\r\n else if (selectedReportSerNo == 6) {\r\n fillReservationDetailReport(finalColumnList).then(d => {\r\n history.push({\r\n pathname: \"/ReservationReportPreview\",\r\n state: { obj: reportFilterObj, list: d, filterList: strFilterList, columnList: finalColumnList, reportserno: selectedReportSerNo, reportname: selectedReportName }\r\n });\r\n })\r\n }\r\n else if (selectedReportSerNo == 2) {\r\n fillReservationDepartureReport(finalColumnList).then(d => {\r\n history.push({\r\n pathname: \"/ReservationReportPreview\",\r\n state: { obj: reportFilterObj, list: d, filterList: strFilterList, columnList: finalColumnList, reportserno: selectedReportSerNo, reportname: selectedReportName }\r\n });\r\n })\r\n }\r\n else if (selectedReportSerNo == 3) {\r\n fillReservationInHouseReport(finalColumnList).then(d => {\r\n history.push({\r\n pathname: \"/ReservationReportPreview\",\r\n state: { obj: reportFilterObj, list: d, filterList: strFilterList, columnList: finalColumnList, reportserno: selectedReportSerNo, reportname: selectedReportName }\r\n });\r\n })\r\n }\r\n else if (selectedReportSerNo == 4) {\r\n fillReservationCreditLimitReport(finalColumnList).then(d => {\r\n history.push({\r\n pathname: \"/ReservationReportPreview\",\r\n state: { obj: reportFilterObj, list: d, filterList: strFilterList, columnList: finalColumnList, reportserno: selectedReportSerNo, reportname: selectedReportName }\r\n });\r\n })\r\n }\r\n else {\r\n fillDynamicReportList(finalColumnList).then(d => {\r\n history.push({\r\n pathname: \"/ReservationReportPreview\",\r\n state: { obj: reportFilterObj, list: d, filterList: strFilterList, columnList: finalColumnList, reportserno: selectedReportSerNo, reportname: selectedReportName }\r\n });\r\n });\r\n }\r\n };\r\n\r\n const handleReportClick = (e) => {\r\n setSelectedReportSerNo(e.target.id);\r\n setSelectedReportName(e.target.textContent);\r\n setIsRemoveClick(false);\r\n setFlag(true);\r\n setSelectAll(false);\r\n setVIPSelectAll(false);\r\n setMembershipSelectAll(false);\r\n setRmTypeSelectAll(false);\r\n setAddPackSelectAll(false);\r\n setInclPackSelectAll(false);\r\n setPaymentMtdSelectAll(false);\r\n setColumnKeys([]);\r\n }\r\n\r\n // const handleSearch = (e) => {\r\n // let filterData = setTempReportList.filter((obj) =>\r\n // obj.FilterCaption.toLowerCase().includes(e.toLowerCase())\r\n // );\r\n // setReportList(filterData);\r\n // }\r\n //#endregion\r\n\r\n //#region useEffect\r\n const validate = (x) => {\r\n if (x != null && x != undefined && x != 0 && x != '' && x != false) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n\r\n cmbGetReservationStatus().then((d) => {\r\n let temp = [{ key: \"\", value: \"Select\" }];\r\n d.data.filter(x => x.key !== '0').forEach(x => {\r\n temp.push({ key: x.key, value: x.value });\r\n });\r\n setReservationStatusData(temp);\r\n });\r\n cmbGetRoomTypeMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n d.data.forEach((x) => {\r\n if (x.key == 0) {\r\n x.value = \"All\";\r\n }\r\n })\r\n setRoomTypeData(d.data);\r\n });\r\n cmbGetMarketMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n setMarketData(d.data);\r\n });\r\n cmbGetSourceMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n setSourceData(d.data);\r\n });\r\n cmbGetRateCodeMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n if (d.data != undefined) {\r\n setFillRateCodeData(d.data);\r\n }\r\n });\r\n cmbGetMemberShipLvl(currUser.ClientSerNo).then((d) => {\r\n if (d.data != undefined) {\r\n d.data.forEach((x) => {\r\n if (x.key == 0) {\r\n x.value = \"All\";\r\n }\r\n })\r\n setMembershipLvlData(d.data);\r\n }\r\n });\r\n cmbGetVIPStatusMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n if (d.data != undefined) {\r\n d.data.forEach((x) => {\r\n if (x.key == 0) {\r\n x.value = \"All\";\r\n }\r\n })\r\n setFillVipStatusData(d.data);\r\n }\r\n })\r\n GetTransportationTypeMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n var tmpData = [];\r\n d.data.forEach(ele => {\r\n tmpData.push({ \"key\": ele.TransportationTypeSerNo, \"value\": ele.Name });\r\n });\r\n tmpData.splice(0, 0, { \"key\": 0, \"value\": \"All\" });\r\n setTransTypeData(tmpData);\r\n });\r\n GetReportMaster().then((d) => {\r\n if (d.data && d.data.length > 0) {\r\n let obj = []\r\n obj = d.data.filter((x) => x.Module == \"F\")\r\n setReportList(obj)\r\n setTempReportList(obj);\r\n if (props.location.state.reportserno == undefined) {\r\n setSelectedReportSerNo(obj[0].ReportSerNo);\r\n setSelectedReportName(obj[0].ReportCaption);\r\n }\r\n }\r\n })\r\n //fillColumnMasterList();\r\n fillPropertyParameter();\r\n fillBilling();\r\n GetPackageMasterList(currUser.ClientSerNo, currUser.PropertySerNo).then(d => {\r\n let inclPkg = [{ key: \"0\", value: \"All\" }];\r\n let addPkg = [{ key: \"0\", value: \"All\" }];\r\n if (d.data.length > 0) {\r\n d.data.forEach(x => {\r\n if (x.IsSellSeparately == 0) {\r\n inclPkg.push({ key: x.PackageSerNo, value: x.Name });\r\n }\r\n else if (x.IsSellSeparately == 1) {\r\n addPkg.push({ key: x.PackageSerNo, value: x.Name })\r\n }\r\n })\r\n setInclPkgList(inclPkg);\r\n setAddPkgList(addPkg);\r\n }\r\n })\r\n cmbGetReservationTypeMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n let tmpData1 = [];\r\n d.data.forEach(ele => {\r\n tmpData1.push({ \"key\": ele.key, \"value\": ele.value });\r\n });\r\n setFilResTypeData(tmpData1);\r\n });\r\n GetUserMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n var tmpData = [];\r\n d.data.forEach(ele => {\r\n tmpData.push({ \"key\": ele.UserID, \"value\": ele.UserName });\r\n });\r\n setUserData(tmpData);\r\n });\r\n GetTransactionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), 'P', 'ALL').then(d => {\r\n console.log(\"paymode data\", d.data);\r\n let paymodeList = [{ key: \"0\", value: \"All\" }];\r\n d.data.forEach(element => {\r\n paymodeList.push({ key: element.TransactionSerNo, value: element.Name });\r\n });\r\n setPaymentModeCombo(paymodeList);\r\n })\r\n \r\n }, []);\r\n\r\n useEffect(() => {\r\n if (selectedReportSerNo != null || selectedReportSerNo != undefined) {\r\n\r\n\r\n GetReportFilterMaster(selectedReportSerNo).then((d) => {\r\n let tempFixed = []\r\n let tempAdditional = []\r\n console.log(\"selectedreportserno\", selectedReportSerNo, reportFilterObj)\r\n if (d.data) {\r\n d.data.forEach((x) => {\r\n // if (selectedReportSerNo == x.ReportSerNo) {\r\n if (x.IsFixed) {\r\n tempFixed.push({ key: x.FilterName, value: x.FilterCaption, type: x.FilterType });\r\n }\r\n else {\r\n tempAdditional.push({ key: x.FilterName, value: x.FilterCaption, type: x.FilterType });\r\n }\r\n // }\r\n })\r\n setFixedFilterList(tempFixed);\r\n setAdditionalFilterList(tempAdditional);\r\n let tempColList = [];\r\n let tempColListKeys = [];\r\n if (props.location != undefined && props.location.state != undefined) {\r\n let state = props.location.state;\r\n console.log(\"State\", state)\r\n if (state != undefined) {\r\n if (state.filterObj != undefined && flag == false) {\r\n let o = state.filterObj;\r\n let finalObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n // FromDate: businessDate ? moment(new Date(businessDate)).format(\"DD-MMM-yyyy\") : moment(new Date()).format(\"DD-MMM-yyyy\"),\r\n // ToDate: businessDate ? moment(new Date(businessDate)).format(\"DD-MMM-yyyy\") : moment(new Date()).format(\"DD-MMM-yyyy\"),\r\n };\r\n // if(o[\"CompanyProfileSerNo\"]){\r\n // finalObj[\"CompanyProfileSerNo\"] = o[\"CompanyProfileSerNo\"];\r\n // setSelectedCompany((prev)=>({...prev,AgentSerNo:parseInt(o[\"CompanyProfileSerNo\"])}));\r\n // }\r\n Object.keys(o).forEach(x => {\r\n let temp = tempAdditional.find((d) => d.key === x);\r\n let IsValid = validate(o[x]);\r\n if (IsValid) {\r\n if (o[\"RoomTypeSerNo\"]) {\r\n finalObj[\"RoomTypeSerNo\"] = o[\"RoomTypeSerNo\"];\r\n let y = o[\"RoomTypeSerNo\"].split(\",\");\r\n console.log(\"rmtypeserno\", y);\r\n setSelectedRmType(y);\r\n }\r\n if (o[\"VIPStatusSerNo\"]) {\r\n finalObj[\"VIPStatusSerNo\"] = o[\"VIPStatusSerNo\"];\r\n let y = o[\"VIPStatusSerNo\"].split(\",\");\r\n setSelectedVipStatus(y);\r\n }\r\n\r\n if (o[\"MembershipLevelSerNo\"]) {\r\n finalObj[\"MembershipLevelSerNo\"] = o[\"MembershipLevelSerNo\"];\r\n let y = o[\"MembershipLevelSerNo\"].split(\",\");\r\n setSelectedMemLvl(y);\r\n }\r\n if (o[\"ReservationStatus\"]) {\r\n finalObj[\"ReservationStatus\"] = o[\"ReservationStatus\"];\r\n let y = o[\"ReservationStatus\"].split(\",\");\r\n let arr = [];\r\n resStatusData.map(d => {\r\n y.map(z => {\r\n if (d.code == z) {\r\n arr.push(d.key);\r\n }\r\n })\r\n })\r\n setSelectedRes(arr);\r\n }\r\n if (o[\"InclPackageSerNo\"]) {\r\n finalObj[\"InclPackageSerNo\"] = o[\"InclPackageSerNo\"];\r\n let y = o[\"InclPackageSerNo\"].split(\",\");\r\n let num = y.map(z => z = parseInt(z));\r\n setSelectedInclPkg(num);\r\n }\r\n if (o[\"ExclPakcageSerNo\"]) {\r\n finalObj[\"ExclPakcageSerNo\"] = o[\"ExclPakcageSerNo\"];\r\n let y = o[\"ExclPakcageSerNo\"].split(\",\");\r\n let num = y.map(z => z = parseInt(z));\r\n setSelectedAddPkg(num);\r\n }\r\n if (o[\"strTransType\"]) {\r\n finalObj[\"strTransType\"] = o[\"strTransType\"];\r\n let y = o[\"strTransType\"].split(\",\");\r\n let num = y.map(z => z = parseInt(z));\r\n setSelectTransType(num);\r\n }\r\n if (o[\"BillingInstructionSerNo\"]) {\r\n finalObj[\"BillingInstructionSerNo\"] = o[\"BillingInstructionSerNo\"];\r\n let y = o[\"BillingInstructionSerNo\"].split(\",\");\r\n //let num = y.map(z => z = parseInt(z));\r\n setSelectedBilling(y);\r\n }\r\n if (o[\"CancelReservationStatus\"]) {\r\n finalObj[\"CancelReservationStatus\"] = o[\"CancelReservationStatus\"];\r\n let y = o[\"CancelReservationStatus\"].split(\",\");\r\n let arr = [];\r\n cancResStat.map(d => {\r\n y.map(z => {\r\n if (d.key == z) {\r\n arr.push(d.key);\r\n }\r\n })\r\n })\r\n setSelectedCancelledResStatus(arr);\r\n }\r\n if (o[\"NoShowReservationStatus\"]) {\r\n finalObj[\"NoShowReservationStatus\"] = o[\"NoShowReservationStatus\"];\r\n let y = o[\"NoShowReservationStatus\"].split(\",\");\r\n let arr = [];\r\n cancResStat.map(d => {\r\n y.map(z => {\r\n if (d.key == z) {\r\n arr.push(d.key);\r\n }\r\n })\r\n })\r\n setSelectedNoShowResStatus(arr);\r\n }\r\n if (o[\"ReservationTypeSerNo\"]) {\r\n finalObj[\"ReservationTypeSerNo\"] = o[\"ReservationTypeSerNo\"];\r\n let y = o[\"ReservationTypeSerNo\"].split(\",\");\r\n let arr = [];\r\n console.log(\"first\", filResTypeData);\r\n filResTypeData.map(d => {\r\n y.map(z => {\r\n if (d.key == z) {\r\n arr.push(d.key);\r\n }\r\n })\r\n })\r\n console.log(\"12\", arr);\r\n setSelectedResTypeSerNo(arr);\r\n }\r\n if (o[\"PaymodeSerNo\"]) {\r\n finalObj[\"PaymodeSerNo\"] = o[\"PaymodeSerNo\"];\r\n let y = o[\"PaymodeSerNo\"].split(\",\").map(a => parseInt(a));\r\n console.log(\"PaymodeSerNop\",y)\r\n setSelectedPaymode(y);\r\n }\r\n finalObj[x] = o[x];\r\n if (temp != undefined) {\r\n tempColList.push(temp);\r\n tempColListKeys.push(temp.key);\r\n }\r\n }\r\n });\r\n setReportFilterObj(finalObj);\r\n setShowFilter(true)\r\n setColList(tempColList);\r\n setColListKeys(tempColListKeys);\r\n }\r\n else {\r\n console.log(\"else\")\r\n if (selectedReportSerNo == 7) {\r\n setReportFilterObj({\r\n ClientSerNo: currUser.ClientSerNo,\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n CancellationDate: moment(businessDate).format(\"DD-MMM-YYYY\")\r\n });\r\n setSelectedCancelledResStatus([]);\r\n setSelectedBilling([]);\r\n setSelectedVipStatus([]);\r\n setSelectedRmType([]);\r\n setColList([]);\r\n setColListKeys([]);\r\n setSelectedPaymode([]);\r\n }\r\n else if (selectedReportSerNo == 8) {\r\n setReportFilterObj({\r\n ClientSerNo: currUser.ClientSerNo,\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n });\r\n setSelectedPaymode([])\r\n }\r\n else if (selectedReportSerNo == 9) {\r\n setReportFilterObj({\r\n ClientSerNo: currUser.ClientSerNo,\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n TodayOpenFolio: false\r\n });\r\n }\r\n else if (selectedReportSerNo == 10) {\r\n setReportFilterObj({\r\n ClientSerNo: currUser.ClientSerNo,\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n FromDate: moment(businessDate).format(\"DD-MMM-YYYY\"),\r\n ToDate: moment(businessDate).format(\"DD-MMM-YYYY\"),\r\n ReservationStatus: \"DIN,ARD,INH\"\r\n });\r\n setSelectedCompany({\r\n AgentSerNo: 0,\r\n AgentName: \"Select\",\r\n })\r\n setSelectedAgent({\r\n AgentSerNo: 0,\r\n AgentName: \"Select\",\r\n })\r\n setSelectedRes([1, 2, 5])\r\n }\r\n else if (selectedReportSerNo == 11) {\r\n setReportFilterObj({\r\n ClientSerNo: currUser.ClientSerNo,\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n NoShowDate: moment(businessDate).format(\"DD-MMM-YYYY\")\r\n });\r\n setSelectedNoShowResStatus([]);\r\n setSelectedBilling([]);\r\n setSelectedVipStatus([]);\r\n setSelectedRmType([]);\r\n setColList([]);\r\n setColListKeys([]);\r\n }\r\n else if (selectedReportSerNo == 5) {\r\n setReportFilterObj({\r\n ClientSerNo: currUser.ClientSerNo,\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n FromDate: moment(businessDate).format(\"DD-MMM-YYYY\"),\r\n ToDate: moment(businessDate).format(\"DD-MMM-YYYY\"),\r\n });\r\n setColList([]);\r\n setColListKeys([]);\r\n }\r\n else if (selectedReportSerNo == 2) {\r\n setReportFilterObj({\r\n ClientSerNo: currUser.ClientSerNo,\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n FromDate: moment(businessDate).format(\"DD-MMM-YYYY\"),\r\n ToDate: moment(businessDate).format(\"DD-MMM-YYYY\"),\r\n ReservationStatus: \"DOT,\"\r\n });\r\n setSelectedRes([3])\r\n setColList([]);\r\n setColListKeys([]);\r\n }\r\n else if (selectedReportSerNo == 3) {\r\n setReportFilterObj({\r\n ClientSerNo: currUser.ClientSerNo,\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n FromDate: moment(businessDate).format(\"DD-MMM-YYYY\"),\r\n ToDate: moment(businessDate).format(\"DD-MMM-YYYY\"),\r\n ReservationStatus: \"ARD,INH,\"\r\n });\r\n setSelectedRes([2, 5])\r\n setColList([]);\r\n setColListKeys([]);\r\n }\r\n else if (selectedReportSerNo == 4) {\r\n setReportFilterObj({\r\n ClientSerNo: currUser.ClientSerNo,\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n FromDate: moment(businessDate).format(\"DD-MMM-YYYY\"),\r\n ToDate: moment(businessDate).format(\"DD-MMM-YYYY\"),\r\n ReservationStatus: \"ARD,DOT,INH\"\r\n });\r\n setSelectedRes([2, 3, 5])\r\n setColList([]);\r\n setColListKeys([]);\r\n }\r\n else {\r\n console.log(\"else2\")\r\n setReportFilterObj({\r\n ClientSerNo: currUser.ClientSerNo,\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n FromDate: moment(businessDate).format(\"DD-MMM-YYYY\"),\r\n ToDate: moment(businessDate).format(\"DD-MMM-YYYY\"),\r\n // CancellationDate: moment(businessDate).format(\"DD-MMM-YYYY\"),\r\n })\r\n setSelectedRmType([]);\r\n setSelectedResType({ key: 1, value: \"Individual\" });\r\n setSelectedCompany({\r\n AgentSerNo: 0,\r\n AgentName: \"Select\",\r\n })\r\n setSelectedAgent({\r\n AgentSerNo: 0,\r\n AgentName: \"Select\",\r\n })\r\n setSelectedVipStatus([]);\r\n setSelectedMemLvl([]);\r\n setSelectedRes([1]);\r\n setSelectedInclPkg([]);\r\n setSelectedAddPkg([]);\r\n setSelectTransType([]);\r\n setColList([]);\r\n setColListKeys([]);\r\n setSelectedResTypeSerNo([]);\r\n }\r\n }\r\n }\r\n else {\r\n setReportFilterObj({\r\n ClientSerNo: currUser.ClientSerNo,\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n FromDate: moment(businessDate).format(\"DD-MMM-YYYY\"),\r\n ToDate: moment(businessDate).format(\"DD-MMM-YYYY\"),\r\n // CancellationDate: moment(businessDate).format(\"DD-MMM-YYYY\"),\r\n })\r\n }\r\n }\r\n else {\r\n setReportFilterObj({\r\n ClientSerNo: currUser.ClientSerNo,\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n FromDate: moment(businessDate).format(\"DD-MMM-YYYY\"),\r\n ToDate: moment(businessDate).format(\"DD-MMM-YYYY\"),\r\n // CancellationDate: moment(businessDate).format(\"DD-MMM-YYYY\"),\r\n })\r\n }\r\n }\r\n })\r\n fillColumnMasterList();\r\n }\r\n\r\n }, [selectedReportSerNo])\r\n\r\n useEffect(() => {\r\n //if (isRemoveClick) {\r\n let temp = columnList.filter((x) => x.ColumnSerNo != selectedColumn);\r\n let tempWidget = widgets.filter((x) => x.id != selectedColumn);\r\n let tempColumnKeys = columnKeys.filter((x) => x != selectedColumn);\r\n setColumnlist(temp);\r\n setWidgets(tempWidget);\r\n setColumnKeys(tempColumnKeys);\r\n //}\r\n }, [selectedColumn]) //[isRemoveClick, selectedColumn]\r\n\r\n\r\n useEffect(() => {\r\n let temp = [];\r\n if (colList && colList.length > 0) {\r\n colList.map((d) => {\r\n temp.push(d.key);\r\n });\r\n }\r\n setColListKeys(temp);\r\n }, [colList]);\r\n\r\n useEffect(() => {\r\n let str = \"\";\r\n console.log(reportFilterObj)\r\n\r\n filterData.forEach(x => {\r\n let IsValid = validate(reportFilterObj[x.key]);\r\n\r\n if (IsValid) {\r\n let val = reportFilterObj[x.key];\r\n if (x.key == \"CompanyProfileSerNo\") {\r\n val = selectedCompany.AgentName;\r\n }\r\n if (x.key == \"AgentProfileSerNo\") {\r\n val = selectedAgent.AgentName;\r\n }\r\n if (x.key == \"RoomTypeSerNo\") {\r\n val = \"\";\r\n let temp = reportFilterObj[x.key].split(\",\");\r\n roomTypeData.map(d => {\r\n temp.map(z => {\r\n if (d.key == parseInt(z)) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n })\r\n }\r\n if (x.key == \"VIPStatusSerNo\") {\r\n val = \"\";\r\n let temp = reportFilterObj[x.key].split(\",\");\r\n fillVipStatusData.map(d => {\r\n temp.map(z => {\r\n if (d.key == parseInt(z)) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n })\r\n }\r\n if (x.key == \"MembershipLevelSerNo\") {\r\n val = \"\";\r\n let temp = reportFilterObj[x.key].split(\",\");\r\n membershipLvlData.map(d => {\r\n temp.map(z => {\r\n if (d.key == parseInt(z)) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n })\r\n }\r\n if (x.key == \"SelectReservation\") {\r\n val = \"\";\r\n let temp = reportFilterObj[x.key].split(\",\");\r\n selReservationData.map(d => {\r\n temp.map(z => {\r\n if (d.key == parseInt(z)) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n })\r\n }\r\n // if(x.key == \"strReservationStatus\"){\r\n // val = \"\";\r\n // let temp = reportFilterObj[x.key].split(\",\");\r\n // resStatusData.map(d =>{\r\n // temp.map(z => {\r\n // if(d.key == parseInt(z)){\r\n // val = val + d.value + \",\";\r\n // }\r\n // })\r\n // })\r\n // }\r\n if (x.key == \"InclPackageSerNo\") {\r\n val = \"\";\r\n let temp = reportFilterObj[x.key].split(\",\");\r\n inclPkgList.map(d => {\r\n temp.map(z => {\r\n if (d.key == parseInt(z)) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n })\r\n }\r\n if (x.key == \"ExclPakcageSerNo\") {\r\n val = \"\";\r\n let temp = reportFilterObj[x.key].split(\",\");\r\n addPkgList.map(d => {\r\n temp.map(z => {\r\n if (d.key == parseInt(z)) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n })\r\n }\r\n if (x.key == \"strTransType\") {\r\n val = \"\";\r\n let temp = reportFilterObj[x.key].split(\",\");\r\n transTypeData.map(d => {\r\n temp.map(z => {\r\n if (d.key == parseInt(z)) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n })\r\n }\r\n if (x.key == \"RateSerNo\") {\r\n val = \"\";\r\n let temp = reportFilterObj[x.key].split(\",\");\r\n fillRateCodeData.map(d => {\r\n temp.map(z => {\r\n if (d.key == parseInt(z)) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n })\r\n }\r\n if (x.key == \"CancelReservationStatus\") {\r\n val = \"\";\r\n let temp = reportFilterObj[x.key].split(\",\");\r\n cancResStat.map(d => {\r\n temp.map(z => {\r\n if (d.key == z) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n })\r\n }\r\n if (x.key == \"NoShowReservationStatus\") {\r\n val = \"\";\r\n let temp = reportFilterObj[x.key].split(\",\");\r\n cancResStat.map(d => {\r\n temp.map(z => {\r\n if (d.key == z) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n })\r\n }\r\n if (x.key == \"BillingInstructionSerNo\") {\r\n val = \"\";\r\n let temp = reportFilterObj[x.key].split(\",\");\r\n billingData.map(d => {\r\n temp.map(z => {\r\n if (d.key == parseInt(z)) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n })\r\n }\r\n str = str + ', ' + x.value + ': ' + val;\r\n }\r\n });\r\n setStrFilterList(str);\r\n\r\n }, [reportFilterObj]);\r\n\r\n //#region Filter Functions\r\n\r\n const fillFromDate = () => {\r\n return (\r\n
    \r\n {\r\n let prevDate = reportFilterObj.FromDate;\r\n //setReportObj(prev => ({ ...prev, DateFrom: moment(new Date(e)).format('DD-MMM-YYYY') }));\r\n setReportFilterObj(prev => ({ ...prev, FromDate: moment(new Date(e)).format('DD-MMM-YYYY') }));\r\n if (new Date(reportFilterObj.ToDate) < new Date(e)) {\r\n alertFunction(\"Please enter Date smaller than Date To\");\r\n setTimeout(() => {\r\n //setReportObj(prev => ({ ...prev, DateFrom: prevDate }));\r\n setReportFilterObj(prev => ({ ...prev, FromDate: prevDate }));\r\n }, 50);\r\n }\r\n }}\r\n placeholder=\"Date From\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Date From\"\r\n selected={reportFilterObj.FromDate}\r\n >\r\n
    \r\n );\r\n }\r\n const fillToDate = () => {\r\n return (\r\n
    \r\n {\r\n let prevDate = reportFilterObj.ToDate;\r\n //setReportObj(prev => ({ ...prev, DateTo: moment(new Date(e)).format('DD-MMM-YYYY') }));\r\n console.log(prevDate)\r\n setReportFilterObj(prev => ({ ...prev, ToDate: moment(new Date(e)).format('DD-MMM-YYYY') }));\r\n if (new Date(e) < new Date(reportFilterObj.FromDate)) {\r\n alertFunction(\"Please enter Date bigger than Date From\");\r\n setTimeout(() => {\r\n //setReportObj(prev => ({ ...prev, DateTo: prevDate }));\r\n setReportFilterObj(prev => ({ ...prev, ToDate: prevDate }));\r\n }, 50);\r\n }\r\n }}\r\n placeholder=\"Date To\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Date To\"\r\n selected={reportFilterObj.ToDate}\r\n >\r\n
    \r\n );\r\n }\r\n\r\n const fillCancellationDate = () => {\r\n return (\r\n
    \r\n {\r\n let prevDate = reportFilterObj.CancellationDate;\r\n console.log(prevDate)\r\n setReportFilterObj(prev => ({ ...prev, CancellationDate: moment(new Date(e)).format('DD-MMM-YYYY') }));\r\n if (new Date().getTime() < new Date(e).getTime()) {\r\n alertFunction(\"Cancellation Date cannot be bigger than current date.\");\r\n setTimeout(() => {\r\n //setReportObj(prev => ({ ...prev, DateTo: prevDate }));\r\n setReportFilterObj(prev => ({ ...prev, CancellationDate: moment(new Date(prevDate)).format('DD-MMM-YYYY') }));\r\n }, 50);\r\n }\r\n }}\r\n placeholder=\"Cancellation Date\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Cancellation Date\"\r\n selected={reportFilterObj.CancellationDate}\r\n >\r\n
    \r\n );\r\n }\r\n const fillNoShowDate = () => {\r\n return (\r\n
    \r\n {\r\n let prevDate = reportFilterObj.NoShowDate;\r\n //setReportObj(prev => ({ ...prev, DateTo: moment(new Date(e)).format('DD-MMM-YYYY') }));\r\n console.log(prevDate)\r\n setReportFilterObj(prev => ({ ...prev, NoShowDate: moment(new Date(e)).format('DD-MMM-YYYY') }));\r\n if (new Date(e) < new Date(reportFilterObj.NoShowDate)) {\r\n alertFunction(\"Please enter Date bigger than Date From\");\r\n setTimeout(() => {\r\n //setReportObj(prev => ({ ...prev, DateTo: prevDate }));\r\n setReportFilterObj(prev => ({ ...prev, NoShowDate: prevDate }));\r\n }, 50);\r\n }\r\n }}\r\n placeholder=\"No Show Date\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"No Show Date\"\r\n selected={reportFilterObj.NoShowDate}\r\n >\r\n
    \r\n );\r\n }\r\n\r\n const fillCompany = () => {\r\n return (\r\n
    \r\n
    \r\n {\r\n setShowCompanySearchFilterModal(!showCompanySearchFilterModal);\r\n }}\r\n >\r\n Company\r\n \r\n {\r\n setShowCompanySearchFilterModal(!showCompanySearchFilterModal);\r\n }}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n const fillAgent = () => {\r\n return (\r\n
    \r\n
    \r\n {\r\n setShowAgentSearchFilterModal(!showAgentSearchFilterModal);\r\n // setReservationArrivalListFilterObj(prev=>({...prev,AgentProfileSerNo:\"\"}))\r\n }}\r\n value={selectedAgent.AgentName}\r\n >\r\n Agent\r\n \r\n {\r\n setShowAgentSearchFilterModal(!showAgentSearchFilterModal);\r\n }}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n const fillVipLevel = () => {\r\n return (\r\n
    \r\n
    \r\n {\r\n let temp = \"\";\r\n //setSelectedVipStatus(item);\r\n if (item.length > 0) {\r\n for (let i = 0; i < item.length; i++) {\r\n if (i == item.length - 1) {\r\n temp = temp + item[i]\r\n }\r\n else {\r\n temp = temp + item[i] + \",\";\r\n }\r\n }\r\n setReportFilterObj((prev) => ({ ...prev, VIPStatusSerNo: temp }));\r\n //All Data CheckBox\r\n let variable = item.find(x => x == 0);\r\n if (variable == undefined) {\r\n variable = false;\r\n }\r\n else {\r\n variable = true;\r\n }\r\n if ((!vipSelectAll && variable) || (!variable && item.length == fillVipStatusData.length - 1 && !vipSelectAll)) {\r\n setVIPSelectAll(true);\r\n let t = []\r\n fillVipStatusData.forEach(x => {\r\n t.push(x.key);\r\n })\r\n setSelectedVipStatus(t);\r\n }\r\n else if (!variable && item.length == fillVipStatusData.length - 1 && vipSelectAll) {\r\n setSelectedVipStatus([])\r\n setVIPSelectAll(false);\r\n setReportFilterObj((prev) => ({ ...prev, VIPStatusSerNo: \"\" }));\r\n }\r\n else if (variable && item.length == fillVipStatusData.length - 1) {\r\n setSelectedVipStatus(item.filter(x => x != 0));\r\n setVIPSelectAll(false);\r\n }\r\n // setReservationArrivalListFilterObj((prev) => ({ ...prev, strVIPStatus: temp }));\r\n }\r\n }}\r\n >\r\n
    \r\n {\r\n selectedReportSerNo == 2 || selectedReportSerNo == 4 || selectedReportSerNo == 6 || selectedReportSerNo == 7 || selectedReportSerNo == 11 ?\r\n {\r\n setReportFilterObj((prev) => ({ ...prev, VIPStatusSerNo: \"\" }));\r\n setSelectedVipStatus([]);\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"VIPStatusSerNo\");\r\n setColList(c);\r\n }}\r\n >\r\n :\r\n <>\r\n }\r\n
    \r\n );\r\n }\r\n const fillMembershipLevel = () => {\r\n return (\r\n
    \r\n
    \r\n {\r\n let temp = \"\";\r\n console.log(item);\r\n //setSelectedMemLvl(item);\r\n if (item.length > 0) {\r\n for (let i = 0; i < item.length; i++) {\r\n if (i == item.length - 1) {\r\n temp = temp + item[i]\r\n }\r\n else {\r\n temp = temp + item[i] + \",\";\r\n }\r\n }\r\n setReportFilterObj((prev) => ({ ...prev, MembershipLevelSerNo: temp }));\r\n //All Data CheckBox\r\n let variable = item.find(x => x == 0);\r\n if (variable == undefined) {\r\n variable = false;\r\n }\r\n else {\r\n variable = true;\r\n }\r\n if ((!membershipSelectAll && variable) || (!variable && item.length == membershipLvlData.length - 1 && !membershipSelectAll)) {\r\n setMembershipSelectAll(true);\r\n let t = []\r\n membershipLvlData.forEach(x => {\r\n t.push(x.key);\r\n })\r\n setSelectedMemLvl(t);\r\n }\r\n else if (!variable && item.length == membershipLvlData.length - 1 && membershipSelectAll) {\r\n setSelectedMemLvl([])\r\n setMembershipSelectAll(false);\r\n setReportFilterObj((prev) => ({ ...prev, MembershipLevelSerNo: \"\" }));\r\n }\r\n else if (variable && item.length == membershipLvlData.length - 1) {\r\n setSelectedMemLvl(item.filter(x => x != 0));\r\n setMembershipSelectAll(false);\r\n }\r\n\r\n }\r\n }}\r\n >\r\n
    \r\n {\r\n selectedReportSerNo == 2 || selectedReportSerNo == 3 || selectedReportSerNo == 6 ?\r\n {\r\n setReportFilterObj((prev) => ({ ...prev, MembershipLevelSerNo: \"\" }));\r\n setSelectedMemLvl([]);\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"MembershipLevelSerNo\");\r\n setColList(c);\r\n }}\r\n >\r\n :\r\n <>\r\n }\r\n
    \r\n );\r\n }\r\n const fillRoomType = () => {\r\n return (\r\n
    \r\n
    \r\n {\r\n let temp = \"\";\r\n console.log(index)\r\n //setSelectedRmType(index);\r\n if (index.length > 0) {\r\n for (let i = 0; i < index.length; i++) {\r\n if (i == index.length - 1) {\r\n temp = temp + index[i]\r\n } else {\r\n temp = temp + index[i] + \",\";\r\n }\r\n }\r\n console.log(temp)\r\n setReportFilterObj((prev) => ({ ...prev, RoomTypeSerNo: temp }));\r\n }\r\n\r\n //All Selection Code\r\n let variable = index.find(x => x == 0);\r\n if (variable == undefined) {\r\n variable = false;\r\n }\r\n else {\r\n variable = true;\r\n }\r\n if ((!rmTypeSelectAll && variable) || (!variable && index.length == roomTypeData.length - 1 && !rmTypeSelectAll)) {\r\n setRmTypeSelectAll(true);\r\n let t = []\r\n roomTypeData.forEach(x => {\r\n t.push(x.key);\r\n })\r\n setSelectedRmType(t);\r\n }\r\n else if (!variable && index.length == roomTypeData.length - 1 && rmTypeSelectAll) {\r\n setSelectedRmType([])\r\n setRmTypeSelectAll(false);\r\n setReportFilterObj((prev) => ({ ...prev, RoomTypeSerNo: \"\" }));\r\n }\r\n else if (variable && index.length == roomTypeData.length - 1) {\r\n setSelectedRmType(index.filter(x => x != 0));\r\n setRmTypeSelectAll(false);\r\n }\r\n }}\r\n >\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n const fillCancelledResStatus = () => {\r\n return (\r\n
    \r\n
    \r\n {\r\n let str = \"\";\r\n item.forEach((x) => {\r\n str = str + x + \",\";\r\n });\r\n setSelectedCancelledResStatus(item);\r\n setReportFilterObj((prev) => ({ ...prev, CancelReservationStatus: str }));\r\n }}>\r\n
    \r\n
    \r\n );\r\n }\r\n const fillBillingInstructions = () => {\r\n return (\r\n
    \r\n
    \r\n {\r\n let temp = \"\";\r\n console.log(item, index);\r\n setSelectedBilling(item);\r\n if (item.length > 0) {\r\n item.map((d) => {\r\n temp = temp + d + \",\";\r\n });\r\n setReportFilterObj((prev) => ({ ...prev, BillingInstructionSerNo: temp }));\r\n //setReservationArrivalListFilterObj((prev) => ({ ...prev, strMemberShipLevel: temp }));\r\n }\r\n }}\r\n >\r\n
    \r\n {\r\n setReportFilterObj((prev) => ({ ...prev, BillingInstructionSerNo: \"\" }));\r\n setSelectedBilling([]);\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"BillingInstructionSerNo\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n )\r\n }\r\n const fillNoShowResStatus = () => {\r\n return (\r\n
    \r\n
    \r\n {\r\n let str = \"\";\r\n item.forEach((x) => {\r\n str = str + x + \",\";\r\n });\r\n setSelectedNoShowResStatus(item);\r\n setReportFilterObj((prev) => ({ ...prev, NoShowReservationStatus: str }));\r\n }}>\r\n
    \r\n
    \r\n );\r\n }\r\n const fillBlockNo = () => {\r\n return (\r\n
    \r\n
    \r\n {\r\n if (/^[0-9]+$/.test((v))) {\r\n setValidationObj((prev) => ({ ...prev, BlockSerNo: \"\" }));\r\n setReportFilterObj((prev) => ({ ...prev, BlockSerNo: v }));\r\n }\r\n else {\r\n setValidationObj((prev) => ({\r\n ...prev,\r\n BlockSerNo: \"Please enter number\",\r\n }));\r\n }\r\n }}\r\n >\r\n Block No.\r\n \r\n
    \r\n {\r\n selectedReportSerNo == 6 ?\r\n {\r\n setReportFilterObj((prev) => ({ ...prev, BlockSerNo: \"\" }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"BlockSerNo\");\r\n setColList(c);\r\n }}\r\n >\r\n :\r\n <>\r\n }\r\n
    \r\n );\r\n }\r\n const fillETAFrom = () => {\r\n return (\r\n
    \r\n
    \r\n {\r\n if (e != undefined || e != null) {\r\n let t = new Date(\"1-jan-2001 \" + e);\r\n setReportFilterObj((prev) => ({ ...prev, ETAFrom: e }));\r\n } else {\r\n setReportFilterObj((prev) => ({ ...prev, ETAFrom: \"\" }));\r\n }\r\n }}\r\n //disabled=\"disabled\"\r\n placeholder=\"ETA From\"\r\n label=\"ETA From\"\r\n timeformat=\"HH:mm\" //for 12 hour h:mm aa\r\n dateformat=\"HH:mm\" //for 12 hour h:mm aa\r\n selected={reportFilterObj.ETAFrom ? \"1-jan-2001 \" + reportFilterObj.ETAFrom : \"\"}\r\n >\r\n
    \r\n
    \r\n );\r\n }\r\n const fillETATo = () => {\r\n return (\r\n
    \r\n {\r\n if (e != undefined || e != null) {\r\n let t = new Date(\"1-jan-2001 \" + e);\r\n setReportFilterObj((prev) => ({ ...prev, ETATo: e }));\r\n } else {\r\n setReportFilterObj((prev) => ({ ...prev, ETATo: \"\" }));\r\n }\r\n }}\r\n //disabled=\"disabled\"\r\n placeholder=\"ETA To\"\r\n label=\"ETA To\"\r\n timeformat=\"HH:mm\" //for 12 hour h:mm aa\r\n dateformat=\"HH:mm\" //for 12 hour h:mm aa\r\n selected={reportFilterObj.ETATo ? \"1-jan-2001 \" + reportFilterObj.ETATo : \"\"}\r\n >\r\n
    \r\n );\r\n }\r\n const fillSelectReservation = () => {\r\n return (\r\n
    \r\n
    \r\n {\r\n setSelectedResType(item);\r\n if (item.value === \"All\") {\r\n setReportFilterObj((prev) => ({ ...prev, SelectReservation: null }))\r\n }\r\n else if (item.value === \"Block\") {\r\n setReportFilterObj((prev) => ({ ...prev, SelectReservation: \"B\" }))\r\n }\r\n else if (item.value === \"Individual\") {\r\n setReportFilterObj((prev) => ({ ...prev, SelectReservation: \"I\" }))\r\n }\r\n }}\r\n >\r\n \r\n
    \r\n
    \r\n );\r\n }\r\n const fillResStatus = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {\r\n let temp = \"\";\r\n if (item.length > 0) {\r\n setSelectedRes(index);\r\n item.map((d) => {\r\n temp = temp + d.code + \",\";\r\n });\r\n setReportFilterObj((prev) => ({ ...prev, ReservationStatus: temp }));\r\n }\r\n else if (item.length < 1) {\r\n alert(\"Reservation Status is mandatory please select at least one option.\")\r\n setReportFilterObj(prev =>\r\n ({ ...prev, ReservationStatus: \"DIN,\" }));\r\n setSelectedRes([1]);\r\n }\r\n else {\r\n setSelectedRes(index);\r\n setReportFilterObj(prev => ({\r\n ...prev, ReservationStatus: temp\r\n }));\r\n }\r\n }}\r\n >\r\n
    \r\n {\r\n selectedReportSerNo == 6 || selectedReportSerNo == 10 ?\r\n <>\r\n :\r\n {\r\n setSelectedRes([1]);\r\n setReportFilterObj((prev) => ({ ...prev, ReservationStatus: \"DIN,\" }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"ReservationStatus\");\r\n setColList(c);\r\n }}\r\n >\r\n }\r\n
    \r\n
    \r\n );\r\n }\r\n const fillRoutingCodes = () => {\r\n\r\n }\r\n const fillWR = () => {\r\n }\r\n const fillTodayOpenFolio = () => {\r\n return (\r\n {\r\n if (isChecked)\r\n setReportFilterObj((prev) => ({ ...prev, TodayOpenFolio: isChecked }));\r\n else\r\n setReportFilterObj((prev) => ({ ...prev, TodayOpenFolio: null }));\r\n }}\r\n onClose={() => {\r\n setReportFilterObj((prev) => ({ ...prev, TodayOpenFolio: false }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"TodayOpenFolio\");\r\n setColList(c);\r\n }}\r\n >\r\n Open Folios Today\r\n \r\n )\r\n }\r\n const fillWalkin = () => {\r\n return (\r\n {\r\n if (isChecked)\r\n setReportFilterObj((prev) => ({ ...prev, IsWalkIn: isChecked }));\r\n else\r\n setReportFilterObj((prev) => ({ ...prev, IsWalkIn: null }));\r\n }}\r\n onClose={() => {\r\n setReportFilterObj((prev) => ({ ...prev, IsWalkIn: null }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"IsWalkIn\");\r\n setColList(c);\r\n }}\r\n >\r\n Walk In\r\n \r\n );\r\n }\r\n const fillRmRouting = () => {\r\n\r\n }\r\n const fillTransType = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(index)\r\n setSelectTransType(index)\r\n let temp = \"\";\r\n if (item.length > 0) {\r\n item.map((d) => {\r\n temp = temp + d.key + \",\";\r\n });\r\n setReportFilterObj((prev) => ({ ...prev, strTransType: temp }));\r\n }\r\n }}\r\n >\r\n
    \r\n {\r\n setReportFilterObj((prev) => ({ ...prev, strTransType: \"\" }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"strTransType\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n
    \r\n );\r\n }\r\n const fillAddPack = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {\r\n //setSelectedAddPkg(index);\r\n let temp = \"\";\r\n console.log(index)\r\n if (index.length > 0) {\r\n for (let i = 0; i < index.length; i++) {\r\n if (i == index.length - 1) {\r\n temp = temp + index[i]\r\n } else {\r\n temp = temp + index[i] + \",\";\r\n }\r\n }\r\n console.log(temp)\r\n setReportFilterObj((prev) => ({ ...prev, ExclPakcageSerNo: temp }));\r\n }\r\n\r\n //All Selection Code\r\n let variable = index.find(x => x == 0);\r\n if (variable == undefined) {\r\n variable = false;\r\n }\r\n else {\r\n variable = true;\r\n }\r\n if ((!addPackSelectAll && variable) || (!variable && index.length == addPkgList.length - 1 && !addPackSelectAll)) {\r\n setAddPackSelectAll(true);\r\n let t = []\r\n addPkgList.forEach(x => {\r\n t.push(x.key);\r\n })\r\n setSelectedAddPkg(t);\r\n }\r\n else if (!variable && index.length == addPkgList.length - 1 && addPackSelectAll) {\r\n setSelectedAddPkg([])\r\n setAddPackSelectAll(false);\r\n setReportFilterObj((prev) => ({ ...prev, ExclPakcageSerNo: \"\" }));\r\n }\r\n else if (variable && index.length == addPkgList.length - 1) {\r\n setSelectedAddPkg(index.filter(x => x != 0));\r\n setAddPackSelectAll(false);\r\n }\r\n }}\r\n >\r\n
    \r\n {\r\n setReportFilterObj((prev) => ({ ...prev, ExclPakcageSerNo: \"\" }));\r\n setSelectedAddPkg([]);\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"ExclPakcageSerNo\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n
    \r\n );\r\n }\r\n const fillInclPack = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(index)\r\n // setSelectedInclPkg(index);\r\n let temp = \"\";\r\n if (index.length > 0) {\r\n for (let i = 0; i < index.length; i++) {\r\n if (i == index.length - 1) {\r\n temp = temp + index[i]\r\n } else {\r\n temp = temp + index[i] + \",\";\r\n }\r\n }\r\n console.log(temp)\r\n setReportFilterObj((prev) => ({ ...prev, InclPackageSerNo: temp }));\r\n }\r\n\r\n //All Selection Code\r\n let variable = index.find(x => x == 0);\r\n if (variable == undefined) {\r\n variable = false;\r\n }\r\n else {\r\n variable = true;\r\n }\r\n if ((!inclPackSelectAll && variable) || (!variable && index.length == inclPkgList.length - 1 && !inclPackSelectAll)) {\r\n setInclPackSelectAll(true);\r\n let t = []\r\n inclPkgList.forEach(x => {\r\n t.push(x.key);\r\n })\r\n setSelectedInclPkg(t);\r\n }\r\n else if (!variable && index.length == inclPkgList.length - 1 && inclPackSelectAll) {\r\n setSelectedInclPkg([])\r\n setInclPackSelectAll(false);\r\n setReportFilterObj((prev) => ({ ...prev, InclPackageSerNo: \"\" }));\r\n }\r\n else if (variable && index.length == inclPkgList.length - 1) {\r\n setSelectedInclPkg(index.filter(x => x != 0));\r\n setInclPackSelectAll(false);\r\n }\r\n }}\r\n >\r\n
    \r\n {\r\n setReportFilterObj((prev) => ({ ...prev, InclPackageSerNo: \"\" }));\r\n setSelectedInclPkg([]);\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"InclPackageSerNo\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n
    \r\n );\r\n }\r\n const fillNDA = () => {\r\n return (\r\n {\r\n if (isChecked == true)\r\n setReportFilterObj((prev) => ({ ...prev, IsArrivalOnSameDay: true }));\r\n else\r\n setReportFilterObj((prev) => ({ ...prev, IsArrivalOnSameDay: null }));\r\n }}\r\n onClose={() => {\r\n setReportFilterObj((prev) => ({ ...prev, IsArrivalOnSameDay: null }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"IsArrivalOnSameDay\");\r\n setColList(c);\r\n }}\r\n >\r\n Rooms With Next Day Arrival\r\n \r\n );\r\n }\r\n const fillNoPost = () => {\r\n return (\r\n {\r\n if (isChecked == true)\r\n setReportFilterObj((prev) => ({ ...prev, IsNoPost: true }));\r\n else\r\n setReportFilterObj((prev) => ({ ...prev, IsNoPost: null }));\r\n }}\r\n onClose={() => {\r\n setReportFilterObj((prev) => ({ ...prev, IsNoPost: null }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"IsNoPost\");\r\n setColList(c);\r\n }}\r\n >\r\n Arrivals with No Post\r\n \r\n );\r\n }\r\n const fillAdvCheckin = () => {\r\n return (\r\n {\r\n if (isChecked == true)\r\n setReportFilterObj((prev) => ({ ...prev, IsAdvanceCheckedIn: true }));\r\n else\r\n setReportFilterObj((prev) => ({ ...prev, IsAdvanceCheckedIn: null }));\r\n }}\r\n onClose={() => {\r\n setReportFilterObj((prev) => ({ ...prev, IsAdvanceCheckedIn: null }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"IsAdvanceCheckedIn\");\r\n setColList(c);\r\n }}\r\n >\r\n Advance Check in Marked\r\n \r\n );\r\n }\r\n const fillPreReg = () => {\r\n return (\r\n {\r\n if (isChecked == true)\r\n setReportFilterObj((prev) => ({ ...prev, IsPreReg: true }));\r\n else\r\n setReportFilterObj((prev) => ({ ...prev, IsPreReg: null }));\r\n }}\r\n onClose={() => {\r\n setReportFilterObj((prev) => ({ ...prev, IsPreReg: null }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"IsPreReg\");\r\n setColList(c);\r\n }}\r\n >\r\n Pre-Registered\r\n \r\n );\r\n }\r\n const fillRateCode = () => {\r\n return (\r\n {\r\n setReportFilterObj((prev) => ({ ...prev, RateSerNo: item.key.toString() }));\r\n }}\r\n onClose={() => {\r\n setReportFilterObj((prev) => ({ ...prev, RateSerNo: \"\" }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"RateSerNo\");\r\n setColList(c);\r\n }}\r\n />\r\n );\r\n }\r\n const fillSameDayResNArr = () => {\r\n return (\r\n {\r\n if (isChecked) {\r\n setReportFilterObj((prev) =>\r\n ({ ...prev, IsSameDayReservation: isChecked }));\r\n }\r\n else\r\n setReportFilterObj((prev) =>\r\n ({ ...prev, IsSameDayReservation: null }));\r\n }}\r\n onClose={() => {\r\n setReportFilterObj((prev) =>\r\n ({ ...prev, IsSameDayReservation: null }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"IsSameDayReservation\");\r\n setColList(c);\r\n }}\r\n >\r\n Same Day Reservation\r\n \r\n );\r\n }\r\n const fillFromNight = () => {\r\n return (\r\n
    \r\n
    \r\n {\r\n // if (/^[0-9]+$/.test((v))) {\r\n // setValidationObj((prev) => ({ ...prev, FromNight: \"\" }));\r\n setReportFilterObj((prev) => ({ ...prev, FromNight: (v) }));\r\n // }\r\n // else {\r\n // setValidationObj((prev) => ({\r\n // ...prev,\r\n // FromNight: \"Please enter number\",\r\n // }));\r\n // }\r\n }}\r\n >\r\n From Nights\r\n \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n const fillToNight = () => {\r\n return (\r\n
    \r\n
    \r\n {\r\n console.log(typeof v, v)\r\n // if (/^[0-9]+$/.test((v))) {\r\n // setValidationObj((prev) => ({ ...prev, ToNight: \"\" }));\r\n setReportFilterObj((prev) => ({ ...prev, ToNight: (v) }));\r\n // }\r\n // else {\r\n // setValidationObj((prev) => ({\r\n // ...prev,\r\n // ToNight: \"Please enter number\",\r\n // }));\r\n // }\r\n }}\r\n >\r\n To Nights\r\n \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n const fillDateType = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {\r\n setReportFilterObj((prev) => ({ ...prev, DtType: item.key }));\r\n }}\r\n >\r\n \r\n
    \r\n {\r\n selectedReportSerNo == 1 ?\r\n {\r\n setReportFilterObj((prev) => ({ ...prev, DtType: \"\" }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"DtType\");\r\n setColList(c);\r\n }}\r\n > : <>\r\n }\r\n\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n const filResType = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(index)\r\n setSelectedResTypeSerNo(index);\r\n let temp = \"\";\r\n if (item.length > 0) {\r\n item.map((d) => {\r\n temp = temp + d.key + \",\";\r\n });\r\n setReportFilterObj((prev) => ({ ...prev, ReservationTypeSerNo: temp }));\r\n }\r\n }}\r\n >\r\n
    \r\n {\r\n setReportFilterObj((prev) => ({ ...prev, ReservationTypeSerNo: \"\" }));\r\n setSelectedResTypeSerNo([]);\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"ReservationTypeSerNo\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n
    \r\n );\r\n }\r\n const filUserID = () => {\r\n return (\r\n // {\r\n // setReportFilterObj((prev) => ({ ...prev, UserID: item.key }))\r\n // }}\r\n // onClose={() => {\r\n // setReportFilterObj((prev) => ({ ...prev, UserID: \"\" }))\r\n // let c = [];\r\n // c = colList.filter((d) => d.key !== \"UserID\");\r\n // setColList(c);\r\n // }}\r\n // />\r\n
    \r\n
    \r\n
    \r\n {\r\n setReportFilterObj((prev) => ({ ...prev, UserID: item.key }))\r\n }}\r\n >\r\n \r\n
    \r\n {\r\n selectedReportSerNo == 6 ?\r\n {\r\n setReportFilterObj((prev) => ({ ...prev, UserID: \"\" }));\r\n setSelectedResTypeSerNo([]);\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"UserID\");\r\n setColList(c);\r\n }}\r\n >\r\n :\r\n <>\r\n }\r\n
    \r\n
    \r\n );\r\n }\r\n const fillETDFrom = () => {\r\n return (\r\n
    \r\n
    \r\n {\r\n if (e != undefined || e != null) {\r\n let t = new Date(\"1-jan-2001 \" + e);\r\n setReportFilterObj((prev) => ({ ...prev, ETDFrom: e }));\r\n } else {\r\n setReportFilterObj((prev) => ({ ...prev, ETDFrom: \"\" }));\r\n }\r\n }}\r\n //disabled=\"disabled\"\r\n placeholder=\"ETD From\"\r\n label=\"ETD From\"\r\n timeformat=\"HH:mm\" //for 12 hour h:mm aa\r\n dateformat=\"HH:mm\" //for 12 hour h:mm aa\r\n selected={reportFilterObj.ETDFrom ? \"1-jan-2001 \" + reportFilterObj.ETDFrom : \"\"}\r\n >\r\n
    \r\n
    \r\n );\r\n }\r\n const fillETDTo = () => {\r\n return (\r\n
    \r\n {\r\n if (e != undefined || e != null) {\r\n let t = new Date(\"1-jan-2001 \" + e);\r\n setReportFilterObj((prev) => ({ ...prev, ETDTo: e }));\r\n } else {\r\n setReportFilterObj((prev) => ({ ...prev, ETDTo: \"\" }));\r\n }\r\n }}\r\n //disabled=\"disabled\"\r\n placeholder=\"ETD To\"\r\n label=\"ETD To\"\r\n timeformat=\"HH:mm\" //for 12 hour h:mm aa\r\n dateformat=\"HH:mm\" //for 12 hour h:mm aa\r\n selected={reportFilterObj.ETDTo ? \"1-jan-2001 \" + reportFilterObj.ETDTo : \"\"}\r\n >\r\n
    \r\n );\r\n }\r\n const fillNoResponse = () => {\r\n return (\r\n {\r\n if (isChecked == true)\r\n setReportFilterObj((prev) => ({ ...prev, IsNoResponse: true }));\r\n else\r\n setReportFilterObj((prev) => ({ ...prev, IsNoResponse: null }));\r\n }}\r\n onClose={() => {\r\n setReportFilterObj((prev) => ({ ...prev, IsNoResponse: null }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"IsNoResponse\");\r\n setColList(c);\r\n }}\r\n >\r\n Rooms with No Response\r\n \r\n );\r\n }\r\n const fillWithLuggage = () => {\r\n return (\r\n {\r\n if (isChecked == true)\r\n setReportFilterObj((prev) => ({ ...prev, IsWithLuggage: true }));\r\n else\r\n setReportFilterObj((prev) => ({ ...prev, IsWithLuggage: null }));\r\n }}\r\n onClose={() => {\r\n setReportFilterObj((prev) => ({ ...prev, IsWithLuggage: null }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"IsWithLuggage\");\r\n setColList(c);\r\n }}\r\n >\r\n Rooms with Luggage\r\n \r\n );\r\n }\r\n const fillWithLuggageNLock = () => {\r\n return (\r\n {\r\n if (isChecked == true)\r\n setReportFilterObj((prev) => ({ ...prev, IsWithLuggageAndLock: true }));\r\n else\r\n setReportFilterObj((prev) => ({ ...prev, IsWithLuggageAndLock: null }));\r\n }}\r\n onClose={() => {\r\n setReportFilterObj((prev) => ({ ...prev, IsWithLuggageAndLock: null }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"IsWithLuggageAndLock\");\r\n setColList(c);\r\n }}\r\n >\r\n Rooms with Luggage and Lock\r\n \r\n );\r\n }\r\n const fillWithoutLuggage = () => {\r\n return (\r\n {\r\n if (isChecked == true)\r\n setReportFilterObj((prev) => ({ ...prev, IsWithoutLuggage: true }));\r\n else\r\n setReportFilterObj((prev) => ({ ...prev, IsWithoutLuggage: null }));\r\n }}\r\n onClose={() => {\r\n setReportFilterObj((prev) => ({ ...prev, IsWithoutLuggage: null }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"IsWithoutLuggage\");\r\n setColList(c);\r\n }}\r\n >\r\n Rooms without Luggage\r\n \r\n );\r\n }\r\n const fillWithoutLuggageNLock = () => {\r\n return (\r\n {\r\n if (isChecked == true)\r\n setReportFilterObj((prev) => ({ ...prev, IsWithoutLuggageAndLock: true }));\r\n else\r\n setReportFilterObj((prev) => ({ ...prev, IsWithoutLuggageAndLock: null }));\r\n }}\r\n onClose={() => {\r\n setReportFilterObj((prev) => ({ ...prev, IsWithoutLuggageAndLock: null }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"IsWithoutLuggageAndLock\");\r\n setColList(c);\r\n }}\r\n >\r\n Rooms without Luggage and Lock\r\n \r\n );\r\n }\r\n const fillFixedRate = () => {\r\n return (\r\n {\r\n if (isChecked == true)\r\n setReportFilterObj((prev) => ({ ...prev, IsFixedRate: true }));\r\n else\r\n setReportFilterObj((prev) => ({ ...prev, IsFixedRate: null }));\r\n }}\r\n onClose={() => {\r\n setReportFilterObj((prev) => ({ ...prev, IsFixedRate: null }));\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"IsFixedRate\");\r\n setColList(c);\r\n }}\r\n >\r\n Fixed Rate\r\n \r\n );\r\n }\r\n const fillPaymentMethod = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(index)\r\n let temp = \"\";\r\n if (index.length > 0) {\r\n for (let i = 0; i < index.length; i++) {\r\n if (i == index.length - 1) {\r\n temp = temp + index[i]\r\n } else {\r\n temp = temp + index[i] + \",\";\r\n }\r\n }\r\n console.log(temp)\r\n setReportFilterObj((prev) => ({ ...prev, PaymodeSerNo: temp }));\r\n }\r\n\r\n //All Selection Code\r\n let variable = index.find(x => x == 0);\r\n if (variable == undefined) {\r\n variable = false;\r\n }\r\n else {\r\n variable = true;\r\n }\r\n if ((!paymentMtdSelectAll && variable) || (!variable && index.length == paymentModeCombo.length - 1 && !paymentMtdSelectAll)) {\r\n setPaymentMtdSelectAll(true);\r\n let t = []\r\n paymentModeCombo.forEach(x => {\r\n t.push(x.key);\r\n })\r\n setSelectedPaymode(t);\r\n }\r\n else if (!variable && index.length == paymentModeCombo.length - 1 && paymentMtdSelectAll) {\r\n setSelectedPaymode([])\r\n setPaymentMtdSelectAll(false);\r\n setReportFilterObj((prev) => ({ ...prev, PaymodeSerNo: \"\" }));\r\n }\r\n else if (variable && index.length == paymentModeCombo.length - 1) {\r\n setSelectedPaymode(index.filter(x => x != 0));\r\n setPaymentMtdSelectAll(false);\r\n }\r\n }}\r\n >\r\n
    \r\n {\r\n setReportFilterObj((prev) => ({ ...prev, PaymodeSerNo: \"\" }));\r\n setSelectedPaymode([]);\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"PaymodeSerNo\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n
    \r\n );\r\n }\r\n //#endregion\r\n\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Report

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/*
    \r\n { }}\r\n >\r\n
    */}\r\n
    \r\n Search\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Reservation\r\n
    \r\n
      \r\n {\r\n reportList && reportList.map((x) => {\r\n return (\r\n \r\n \r\n {x.ReportCaption}\r\n \r\n \r\n );\r\n })\r\n }\r\n
    \r\n\r\n {/*
    \r\n Front desk\r\n
    \r\n
      \r\n
    • Guest in house report
    • \r\n
    • Departure Today
    • \r\n
    */}\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {selectedReportName}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setColList(items);\r\n setColListKeys(item);\r\n if (item.length > 0) {\r\n setShowFilter(true);\r\n } else {\r\n setShowFilter(false);\r\n }\r\n }}\r\n searchable={[\"Search\", \"No matching filter\"]}\r\n className=\"button-layout-dd gray-btn\"\r\n buttonLayout={true}\r\n select={colListKeys}\r\n >\r\n {\r\n console.log(\"items\", items);\r\n console.log(\"item\", item);\r\n setColumnKeys(item);\r\n console.log(widgets);\r\n //let tempWidget = widgets;\r\n let temp = {};\r\n for (let i = 0; i < items.length; i++) {\r\n if (!widgets.some(o => o.id == items[i].key)) {\r\n let tempColumn = {};\r\n temp =\r\n \r\n {items[i].value}\r\n {\r\n //setIsRemoveClick(true);\r\n setSelectedColumn(e.target.id)\r\n console.log(e.target.id)\r\n }}\r\n >\r\n \r\n
    \r\n tempColumn.id = items[i].key;\r\n tempColumn.content = temp;\r\n tempColumn.size = \"w100p\";\r\n tempColumn.isFixed = 1;\r\n setWidgets((prev) => [...prev, tempColumn]);\r\n }\r\n }\r\n //setWidgets loop\r\n\r\n for (let i = 0; i < widgets.length; i++) {\r\n if (widgets[i].isFixed == 1) {\r\n console.log(\"condition\", !items.some(z => z.key == widgets[i].id), widgets[i].id, i)\r\n if (!items.some(z => z.key == widgets[i].id)) {\r\n setWidgets((curr) => curr.filter(x => x.id != widgets[i].id))\r\n }\r\n }\r\n }\r\n console.log(\"tempWidget\", widgets);\r\n }}\r\n searchable={[\"Search\", \"No matching columns\"]}\r\n className=\"button-layout-dd gray-btn\"\r\n buttonLayout={true}\r\n select={columnKeys}\r\n >\r\n
    \r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {fixedFilterList && selectedReportSerNo == 1 ? (\r\n <>\r\n {fixedFilterList.map((x) =>\r\n x.key === \"FromDate\" ? (\r\n fillFromDate()\r\n ) : x.key === \"ToDate\" ? (\r\n fillToDate()\r\n ) : x.key === \"CompanyProfileSerNo\" ? (\r\n fillCompany()\r\n ) : x.key === \"AgentProfileSerNo\" ? (\r\n fillAgent()\r\n ) : x.key === \"RoomTypeSerNo\" ? (\r\n fillRoomType()\r\n ) : x.key === \"VIPStatusSerNo\" ? (\r\n fillVipLevel()\r\n ) : x.key === \"MembershipLevelSerNo\" ? (\r\n fillMembershipLevel()\r\n ) : x.key === \"ETAFrom\" ? (\r\n fillETAFrom()\r\n ) : x.key === \"ETATo\" ? (\r\n fillETATo()\r\n ) : x.key === \"SelectReservation\" ? (\r\n fillSelectReservation()\r\n ) : x.key === \"FromNight\" ? (\r\n fillFromNight()\r\n ) : x.key === \"ToNight\" ? (\r\n fillToNight()\r\n ) : null\r\n )}\r\n \r\n )\r\n :\r\n fixedFilterList && selectedReportSerNo == 2 ? (\r\n <>\r\n {fixedFilterList.map((x) =>\r\n x.key === \"FromDate\" ? (\r\n fillFromDate()\r\n ) : x.key === \"ToDate\" ? (\r\n fillToDate()\r\n ) : x.key === \"CompanyProfileSerNo\" ? (\r\n fillCompany()\r\n ) : x.key === \"AgentProfileSerNo\" ? (\r\n fillAgent()\r\n ) : x.key === \"RoomTypeSerNo\" ? (\r\n fillRoomType()\r\n ) : x.key === \"BlockSerNo\" ? (\r\n fillBlockNo()\r\n ) : x.key === \"SelectReservation\" ? (\r\n fillSelectReservation()\r\n ) : x.key === \"ETDFrom\" ? (\r\n fillETDFrom()\r\n ) : x.key === \"ETDTo\" ? (\r\n fillETDTo()\r\n ) : null\r\n )}\r\n \r\n )\r\n :\r\n fixedFilterList && selectedReportSerNo == 3 ? (\r\n <>\r\n {fixedFilterList.map((x) =>\r\n x.key === \"CompanyProfileSerNo\" ? (\r\n fillCompany()\r\n ) : x.key === \"AgentProfileSerNo\" ? (\r\n fillAgent()\r\n ) : x.key === \"RoomTypeSerNo\" ? (\r\n fillRoomType()\r\n ) : x.key === \"VIPStatusSerNo\" ? (\r\n fillVipLevel()\r\n ) : x.key === \"BlockSerNo\" ? (\r\n fillBlockNo()\r\n ) : x.key === \"SelectReservation\" ? (\r\n fillSelectReservation()\r\n ) : null\r\n )}\r\n \r\n ) :\r\n fixedFilterList && selectedReportSerNo == 4 ? (\r\n <>\r\n {fixedFilterList.map((x) =>\r\n x.key === \"FromDate\" ? (\r\n fillFromDate()\r\n ) : x.key === \"ToDate\" ? (\r\n fillToDate()\r\n ) : x.key === \"CompanyProfileSerNo\" ? (\r\n fillCompany()\r\n ) : x.key === \"AgentProfileSerNo\" ? (\r\n fillAgent()\r\n ) : x.key === \"RoomTypeSerNo\" ? (\r\n fillRoomType()\r\n ) : x.key === \"BlockSerNo\" ? (\r\n fillBlockNo()\r\n ) : x.key === \"SelectReservation\" ? (\r\n fillSelectReservation()\r\n ) : null\r\n )}\r\n \r\n ) :\r\n fixedFilterList && selectedReportSerNo == 5 ? (\r\n <>\r\n {fixedFilterList.map((x) =>\r\n x.key === \"FromDate\" ? (\r\n fillFromDate()\r\n ) : x.key === \"ToDate\" ? (\r\n fillToDate()\r\n ) : null\r\n )}\r\n \r\n ) :\r\n fixedFilterList && selectedReportSerNo == 6 ? (\r\n <>\r\n {fixedFilterList.map((x) =>\r\n x.key === \"FromDate\" ? (\r\n fillFromDate()\r\n ) : x.key === \"ToDate\" ? (\r\n fillToDate()\r\n ) : x.key === \"CompanyProfileSerNo\" ? (\r\n fillCompany()\r\n ) : x.key === \"AgentProfileSerNo\" ? (\r\n fillAgent()\r\n ) : x.key === \"RoomTypeSerNo\" ? (\r\n fillRoomType()\r\n ) : x.key === \"SelectReservation\" ? (\r\n fillSelectReservation()\r\n ) : x.key === \"ReservationStatus\" ? (\r\n fillResStatus()\r\n ) : x.key === \"FromNight\" ? (\r\n fillFromNight()\r\n ) : x.key === \"ToNight\" ? (\r\n fillToNight()\r\n ) : x.key === \"DtType\" ? (\r\n fillDateType()\r\n ) : null\r\n )}\r\n \r\n ) :\r\n fixedFilterList && selectedReportSerNo == 7 ? (\r\n <>\r\n {fixedFilterList.map((x) =>\r\n x.key === \"RoomTypeSerNo\" ? (\r\n fillRoomType()\r\n ) : x.key === \"CancellationDate\" ? (\r\n fillCancellationDate()\r\n ) : x.key === \"CancelReservationStatus\" ? (\r\n fillCancelledResStatus()\r\n ) : x.key === \"UserID\" ? (\r\n filUserID()\r\n ) : null\r\n )}\r\n \r\n ) : fixedFilterList && selectedReportSerNo == 10 ? (\r\n <>\r\n {fixedFilterList.map((x) =>\r\n x.key === \"FromDate\" ? (\r\n fillFromDate()\r\n ) : x.key === \"ToDate\" ? (\r\n fillToDate()\r\n ) : x.key === \"CompanyProfileSerNo\" ? (\r\n fillCompany()\r\n ) : x.key === \"AgentProfileSerNo\" ? (\r\n fillAgent()\r\n ) : x.key === \"ReservationStatus\" ? (\r\n fillResStatus()\r\n ) : null\r\n )}\r\n \r\n ) :\r\n fixedFilterList && selectedReportSerNo == 11 ? (\r\n <>\r\n {fixedFilterList.map((x) =>\r\n x.key === \"RoomTypeSerNo\" ? (\r\n fillRoomType()\r\n ) : x.key === \"NoShowDate\" ? (\r\n fillNoShowDate()\r\n ) : x.key === \"NoShowReservationStatus\" ? (\r\n fillNoShowResStatus()\r\n ) : null\r\n )}\r\n \r\n ) :\r\n null\r\n }\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n {\r\n //setReportObj(prev => ({ ...prev, SortBy: item.key }));\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n {showFilter && selectedReportSerNo == 1 ? (\r\n <>\r\n {colList.map((x) =>\r\n x.key === \"ReservationStatus\" ? (\r\n fillResStatus()\r\n ) : x.key === \"InclPackageSerNo\" ? (\r\n fillInclPack()\r\n ) : x.key === \"ExclPakcageSerNo\" ? (\r\n fillAddPack()\r\n ) : x.key === \"IsAdvanceCheckedIn\" ? (\r\n fillAdvCheckin()\r\n ) : x.key === \"IsWalkIn\" ? (\r\n fillWalkin()\r\n ) : x.key === \"RateSerNo\" ? (\r\n fillRateCode()\r\n ) : x.key === \"IsSameDayReservation\" ? (\r\n fillSameDayResNArr()\r\n ) : x.key === \"IsPreReg\" ? (\r\n fillPreReg()\r\n ) : x.key === \"IsNoPost\" ? (\r\n fillNoPost()\r\n ) : x.key === \"IsArrivalOnSameDay\" ? (\r\n fillNDA()\r\n ) : x.key === \"BlockSerNo\" ? (\r\n fillBlockNo()\r\n ) : x.key === \"DtType\" ? (\r\n fillDateType()\r\n ) : (\r\n <>\r\n )\r\n )}\r\n \r\n ) :\r\n showFilter && selectedReportSerNo == 2 ? (\r\n <>\r\n {colList.map((x) =>\r\n x.key === \"ReservationStatus\" ? (\r\n fillResStatus()\r\n ) : x.key === \"VIPStatusSerNo\" ? (\r\n fillVipLevel()\r\n ) : x.key === \"MembershipLevelSerNo\" ? (\r\n fillMembershipLevel()\r\n ) : x.key === \"RateSerNo\" ? (\r\n fillRateCode()\r\n ) : x.key === \"IsNoPost\" ? (\r\n fillNoPost()\r\n ) : x.key === \"BillingInstructionSerNo\" ? (\r\n fillBillingInstructions()\r\n ) : x.key === \"IsNoResponse\" ? (\r\n fillNoResponse()\r\n ) : x.key === \"IsWithLuggage\" ? (\r\n fillWithLuggage()\r\n ) : x.key === \"IsWithLuggageAndLock\" ? (\r\n fillWithLuggageNLock()\r\n ) : x.key === \"IsWithoutLuggage\" ? (\r\n fillWithoutLuggage()\r\n ) : x.key === \"IsWithoutLuggageAndLock\" ? (\r\n fillWithoutLuggageNLock()\r\n ) : (\r\n <>\r\n )\r\n )}\r\n \r\n ) :\r\n showFilter && selectedReportSerNo == 3 ? (\r\n <>\r\n {colList.map((x) =>\r\n x.key === \"ReservationStatus\" ? (\r\n fillResStatus()\r\n ) : x.key === \"MembershipLevelSerNo\" ? (\r\n fillMembershipLevel()\r\n ) : x.key === \"RateSerNo\" ? (\r\n fillRateCode()\r\n ) : x.key === \"BillingInstructionSerNo\" ? (\r\n fillBillingInstructions()\r\n ) : x.key === \"IsFixedRate\" ? (\r\n fillFixedRate()\r\n ) : (\r\n <>\r\n )\r\n )}\r\n \r\n ) :\r\n showFilter && selectedReportSerNo == 4 ? (\r\n <>\r\n {colList.map((x) =>\r\n x.key === \"ReservationStatus\" ? (\r\n fillResStatus()\r\n ) : x.key === \"VIPStatusSerNo\" ? (\r\n fillVipLevel()\r\n ) : x.key === \"FromNight\" ? (\r\n fillFromNight()\r\n ) : x.key === \"ToNight\" ? (\r\n fillToNight()\r\n ) : x.key === \"IsNoPost\" ? (\r\n fillNoPost()\r\n ) : (\r\n <>\r\n )\r\n )}\r\n \r\n ) :\r\n showFilter && selectedReportSerNo == 6 ? (\r\n <>\r\n {colList.map((x) =>\r\n x.key === \"InclPackageSerNo\" ? (\r\n fillInclPack()\r\n ) : x.key === \"ExclPakcageSerNo\" ? (\r\n fillAddPack()\r\n ) : x.key === \"VIPStatusSerNo\" ? (\r\n fillVipLevel()\r\n ) : x.key === \"RateSerNo\" ? (\r\n fillRateCode()\r\n ) : x.key === \"BlockSerNo\" ? (\r\n fillBlockNo()\r\n ) : x.key === \"MembershipLevelSerNo\" ? (\r\n fillMembershipLevel()\r\n ) : x.key === \"ReservationTypeSerNo\" ? (\r\n filResType()\r\n ) : x.key === \"UserID\" ? (\r\n filUserID()\r\n ) : (\r\n <>\r\n )\r\n )}\r\n \r\n ) :\r\n showFilter && selectedReportSerNo == 7 ? (\r\n <>\r\n {colList.map((x) =>\r\n x.key === \"VIPStatusSerNo\" ? (\r\n fillVipLevel()\r\n ) : x.key === \"RateSerNo\" ? (\r\n fillRateCode()\r\n ) : x.key === \"BillingInstructionSerNo\" ? (\r\n fillBillingInstructions()\r\n ) : x.key === \"PaymodeSerNo\" ? (\r\n fillPaymentMethod()\r\n ) : (\r\n <>\r\n )\r\n )}\r\n \r\n ) :\r\n showFilter && selectedReportSerNo == 11 ? (\r\n <>\r\n {colList.map((x) =>\r\n x.key === \"VIPStatusSerNo\" ? (\r\n fillVipLevel()\r\n ) : x.key === \"RateSerNo\" ? (\r\n fillRateCode()\r\n ) : x.key === \"BillingInstructionSerNo\" ? (\r\n fillBillingInstructions()\r\n ) : (\r\n <>\r\n )\r\n )}\r\n \r\n ) :\r\n showFilter && selectedReportSerNo == 9 ? (\r\n <>\r\n {colList.map((x) =>\r\n x.key === \"TodayOpenFolio\" ? (\r\n fillTodayOpenFolio()\r\n ) : x.key === \"PaymodeSerNo\" ? (\r\n fillPaymentMethod()\r\n ) : (\r\n <>\r\n )\r\n )}\r\n \r\n ) :\r\n showFilter && selectedReportSerNo == 8 ? (\r\n <>\r\n {colList.map((x) =>\r\n x.key === \"PaymodeSerNo\" ? (\r\n fillPaymentMethod()\r\n ) : (\r\n <>\r\n )\r\n )}\r\n \r\n )\r\n : (\r\n <>\r\n )}\r\n
    \r\n
    \r\n
    Display
    \r\n {widgets.map((w, i) => (\r\n handleDragEntered(w.id)}\r\n onDragLeave={handleDragLeave}\r\n isDraggedOver={w.id === draggedOverContainerId}\r\n size={w.size}\r\n >\r\n handleDragStart(w.id)}\r\n />\r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n\r\n { }}\r\n >\r\n { }}\r\n >\r\n { }}\r\n >\r\n\r\n Preview\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n {/* Popups Start */}\r\n\r\n {\r\n showReportFilterPopup ? (\r\n setShowReportFilterPopup(false)}\r\n >\r\n\r\n
    \r\n
    \r\n Search\r\n
    \r\n Date From - Date To\r\n Date Type\r\n Reservation\r\n Room Assignment\r\n Reservation Type\r\n Room Type\r\n Rate Code\r\n Market\r\n Source\r\n Checked In Today\r\n Zero Rate Only\r\n Include Cancelled Reservation\r\n VIP Level\r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n \r\n ) : null\r\n }\r\n {/* Popups End */}\r\n {showAgentSearchFilterModal ? (\r\n setShowAgentSearchFilterModal(false)}\r\n handleOnSelect={(data) => {\r\n setSelectedAgent(data);\r\n setReportFilterObj((prev) => ({ ...prev, AgentProfileSerNo: data.AgentSerNo.toString() }));\r\n setShowAgentSearchFilterModal(false);\r\n }}\r\n ProfileType=\"ag\"\r\n >\r\n ) :\r\n null\r\n }\r\n {showCompanySearchFilterModal ? (\r\n setShowCompanySearchFilterModal(false)}\r\n handleOnSelect={(data) => {\r\n console.log(data)\r\n setSelectedCompany(data);\r\n setReportFilterObj((prev) => ({ ...prev, CompanyProfileSerNo: data.AgentSerNo.toString() }));\r\n setShowCompanySearchFilterModal(false);\r\n }}\r\n ProfileType=\"co\"\r\n >\r\n ) :\r\n null\r\n }\r\n\r\n \r\n );\r\n}\r\n\r\n//export default Report;\r\nexport function moveItem(list, from, to) {\r\n const listClone = [...list];\r\n if (from < to) {\r\n listClone.splice(to + 1, 0, listClone[from]);\r\n listClone.splice(from, 1);\r\n } else if (to < from) {\r\n listClone.splice(to, 0, listClone[from]);\r\n listClone.splice(from + 1, 1);\r\n }\r\n return listClone;\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnButtonTypeWithDropdown,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnSingleDateSelection,\r\n InnSwitch,\r\n InnTableGrid,\r\n InnModalPopup,\r\n InnTextarea,\r\n InnContextMenu,\r\n useConfirm,\r\n InnMultiSelectDropdown\r\n} from \"../../../../component\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport LeftMenuArrow from \"../../../../assets/images/inside-left-menu-arrow.svg\";\r\nimport { IndiCompanyOnFolio, IndiNoPost, IndiRoutingInstruction } from \"../../../../modules/client/reservation/indicators\";\r\nimport { AddLaundryInvoice, GetLaundryBillDetail, GetLaundryDetailBySerNo, GetLaundryHotelServiceMaster, GetLaundryItemList, GetLaundryServiceMaster, GetLaundrySettlementList, GetLaundryTransaction, PostLaundrySettlement, PostLaundryTransaction, PostLaundryTransactionToRoom, validateReservationByRoomNo } from \"../../../../services/housekeepingServiceMaster\";\r\nimport { GetPropertyParameterByKeys, GetReservationAccompanyGuest, GetReservationInfoData, GetTransactionMaster, GetUsersList, manageReservationPackageIndicator } from \"../../../../services/reservationService\";\r\nimport moment from \"moment\";\r\nimport { GetLaundryVenderMaster } from \"../../../../services/housekeepingServiceMaster\";\r\nimport { GetTaxExemptionMaster } from \"../../../../services/posbillingService\";\r\n\r\n\r\nexport default function PostLaundryTransactionModalPopup(props) {\r\n //#region other\r\n const selectdata = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n const InclusionsTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    INCLUSIONS
    \r\n
      \r\n
    • \r\n Item Name\r\n
    • \r\n
    • \r\n Item Name\r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n const TaxesTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    CGST 6%
    \r\n
    \r\n
    \r\n
    SGST 6%
    \r\n
    \r\n
    \r\n
    Taxable Amount 4,500
    \r\n
    \r\n
    \r\n
    Tax Amount 140
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n // Custom laundry list DD start\r\n const [showLaundryItemDD, setShowLaundryItemDD] = useState();\r\n const wrapperRef = useRef(null);\r\n const handleClickOuside = (e) => {\r\n if (wrapperRef.current && !wrapperRef.current.contains(e.target)) {\r\n setShowLaundryItemDD(false);\r\n }\r\n };\r\n useEffect(() => {\r\n document.addEventListener(\"click\", handleClickOuside, false);\r\n return () => {\r\n //document.removeEventListener(\"click\", handleClickOuside, false);\r\n };\r\n });\r\n const LaundryCharge = [\r\n { key: \"free\", value: \"Free\" },\r\n { key: \"charge\", value: \"Charge\" },\r\n ];\r\n const [reservationObj, setReservationObj] = useState({\r\n ClientSerNo: 1201,\r\n PropertySerNo: 1,\r\n ReservationSerNo: 51\r\n });\r\n const columHeaderPostLaundry =\r\n [\r\n { key: \"Mode Of Payment\", value: \"Name\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Amount\", value: \"Amount\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n { key: \"\", value: \"action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n // Custom laundry list DD end\r\n //#endregion\r\n\r\n //#region local variables\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n SerNo: props.serNo ? props.serNo : 0,\r\n VenderSerNo: 0,\r\n ReservationSerNo: 0,\r\n RoomSerNo: 0,\r\n GuestProfileSerNo: 0,\r\n IsComplimentary: false,\r\n IsTaxInclusive: false,\r\n Discount: 0,\r\n IsDiscountPer: true,\r\n LaundryServiceSerNo: 0,\r\n LaundryHotelServiceSerNo: 0,\r\n ExemptionSerNo: 0,\r\n CompanyOnFolio: 0,\r\n UserID: currUser.UserID,\r\n ItemList: []\r\n };\r\n const defaultValidationObj = {\r\n Discount: \"\",\r\n RoomNo: \"\",\r\n Vender: \"\",\r\n Discount: \"\",\r\n HotelService: \"\",\r\n LaundryService: \"\"\r\n };\r\n const defaultSettlementObj = {\r\n Amount: \"\",\r\n TransactionSerNo: 0,\r\n UserID: \"\",\r\n PaymentMethodType: \"\",\r\n PanCardNo: \"\",\r\n PanHolderName: \"\",\r\n ChequeNo: \"\",\r\n BankName: \"\",\r\n BranchName: \"\",\r\n NameOfAccount: \"\",\r\n CCNo: \"\",\r\n CCHolderName: \"\",\r\n CCExpiryDate: \"\",\r\n PaymentReceivedDate: \"\",\r\n UPIId: \"\",\r\n };\r\n const defaultPostSettlementValidation = {\r\n Amount: \"\",\r\n TransactionSerNo: \"\",\r\n CCNo: \"\",\r\n CCHolderName: \"\",\r\n CCExpiryDate: \"\",\r\n PanCardNo: \"\",\r\n PanHolderName: \"\",\r\n ChequeNo: \"\",\r\n BankName: \"\",\r\n BranchName: \"\",\r\n NameOfAccount: \"\",\r\n PaymentReceivedDate: \"\",\r\n UPIId: \"\",\r\n };\r\n const defaultDisableObj = {\r\n post: false,\r\n payment: true,\r\n postToRoom: false,\r\n addSettlement: true,\r\n };\r\n //#endregion\r\n\r\n //#region states\r\n const [roomNo, setRoomNo] = useState(\"\");\r\n const [guestList, setGuestList] = useState([]);\r\n const [taxExemptionList, setTaxExemptionList] = useState([]);\r\n const [venderList, setVenderList] = useState([]);\r\n const [hotelServiceTypeList, setHotelServiceTypeList] = useState([]);\r\n const [laundryServiceTypeList, setLaundryServiceTypeList] = useState([]);\r\n const [dropDownItemList, setDropDownItemList] = useState([]);\r\n const [laundryItemList, setLaundryItemList] = useState([]);\r\n const [postLaundryObj, setPostLaundryObj] = useState(defaultObj);\r\n const [postLaundryValidation, setPostLaundryValidation] = useState(defaultValidationObj);\r\n const [reservationStatus, setReservationStatus] = useState(\"\");\r\n const [inclusionList, setInclusionList] = useState([]);\r\n const [billingInstruction, setBillingInstruction] = useState(\"\");\r\n const [reservationInfoData, setReservationInfoData] = useState({\r\n ReservationSerNo: 0\r\n });\r\n const [billDetail, setBillDetail] = useState([]);\r\n const [postSettlementObj, setPostSettlementObj] = useState(defaultSettlementObj);\r\n const [paymentMethodTypeList, setPaymentMethodTypeList] = useState([]);\r\n const [paymentList, setPaymentList] = useState([]);\r\n const [selectedPaymentMethod, setSelectedPaymentMethod] = useState(\"\");\r\n const [postSettlementValidation, setPostSettlementValidation] = useState(defaultPostSettlementValidation);\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n const [disabledObj, setDisabledObj] = useState(defaultDisableObj);\r\n const [IsShowSummary, setIsShowSummary] = useState(true);\r\n const [paidList, setPaidList] = useState([]);\r\n const [IsDefaultLoaded, setIsDefaultLoaded] = useState(false);\r\n const [laundryData, setLaundryData] = useState({\r\n Detail: {},\r\n ItemList: []\r\n });\r\n const [IsPrinted, setIsPrinted] = useState(false);\r\n //#endregion\r\n\r\n //#region service\r\n const propertyPara = [\"BusinessDate\"];\r\n const fillPropertyPara = () => {\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), propertyPara).then(d => {\r\n let temp = d.data.find(x => x.key === \"BusinessDate\");\r\n if (temp !== undefined) {\r\n setBusinessDate(moment(d.data[0].value).format(\"DD-MMM-YYYY\"));\r\n // setBusinessDate(temp.value);\r\n }\r\n });\r\n };\r\n const fillVenderList = () => {\r\n GetLaundryVenderMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n console.log(d.data);\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach(x => {\r\n temp.push({ key: x.VenderSerNo, value: x.VenderName });\r\n });\r\n setVenderList(temp);\r\n });\r\n };\r\n const fillHotelServiceList = () => {\r\n GetLaundryHotelServiceMaster(parseInt(currUser.ClientSerNo)).then(d => {\r\n console.log(d.data);\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach(x => {\r\n temp.push({ key: x.LaundryHotelServiceSerNo, value: x.HotelServiceName });\r\n });\r\n setHotelServiceTypeList(temp);\r\n });\r\n };\r\n const fillLaundryServiceType = () => {\r\n GetLaundryServiceMaster(parseInt(currUser.ClientSerNo)).then(d => {\r\n console.log(d.data);\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach(x => {\r\n temp.push({ key: x.LaundryServiceSerNo, value: x.LaundryServiceName });\r\n });\r\n setLaundryServiceTypeList(temp);\r\n });\r\n };\r\n const fillLaundryItemList = () => {\r\n GetLaundryItemList(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(postLaundryObj.VenderSerNo), parseInt(postLaundryObj.LaundryHotelServiceSerNo), parseInt(postLaundryObj.LaundryServiceSerNo)).then(d => {\r\n console.log(\"Called\", laundryData, d.data);\r\n if (laundryData.ItemList !== undefined && laundryData.ItemList.length > 0) {\r\n d.data.forEach(x => {\r\n let temp = laundryData.ItemList.find(o => o.LaundryItemSerNo === x.LaundryItemSerNo);\r\n if (temp !== undefined) {\r\n x[\"IsChecked\"] = true;\r\n x[\"IsFree\"] = temp.IsFree;\r\n x[\"Qty\"] = temp.Qty;\r\n } else {\r\n x[\"IsChecked\"] = false;\r\n x[\"IsFree\"] = false;\r\n x[\"Qty\"] = 1;\r\n }\r\n });\r\n }\r\n else {\r\n d.data.forEach(x => {\r\n x[\"IsChecked\"] = false;\r\n x[\"IsFree\"] = false;\r\n x[\"Qty\"] = 1;\r\n });\r\n }\r\n setLaundryItemList(d.data);\r\n setDropDownItemList(d.data);\r\n });\r\n };\r\n const fillInclusions = (ReservationSerNo) => {\r\n manageReservationPackageIndicator(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then(d => {\r\n if (d.status === 200) {\r\n if (d.data.length > 0) {\r\n let tempCol = [];\r\n d.data.forEach(ele => {\r\n if (!ele.IsAdditional) {\r\n let tempPackage = tempCol.find(x => ele.PackageSerNo === x.PackageSerNo);\r\n if (tempPackage === undefined) {\r\n tempCol.push({ \"PackageSerNo\": ele.PackageSerNo, \"Name\": ele.Name });\r\n }\r\n }\r\n });\r\n setInclusionList(tempCol);\r\n } else {\r\n setInclusionList([]);\r\n }\r\n }\r\n });\r\n };\r\n const fillInfoData = (ReservationSerNo) => {\r\n GetReservationInfoData(\r\n parseInt(currUser.ClientSerNo),\r\n parseInt(currUser.PropertySerNo),\r\n ReservationSerNo\r\n ).then((response) => {\r\n console.log(\"Billing instruction\", response.data, businessDate);\r\n let dates = { ArrivalDate: new Date(response.data.ArrivalDate1).getTime(), DepartureDate1: new Date(response.data.DepartureDate1).getTime(), BusinessDate: new Date(businessDate).getTime() }\r\n\r\n if (dates.ArrivalDate == dates.BusinessDate && dates.ArrivalDate == dates.DepartureDate1) {\r\n setReservationStatus(\"Due-out\")\r\n }\r\n else if (dates.ArrivalDate == dates.BusinessDate && dates.ArrivalDate != dates.DepartureDate1) {\r\n setReservationStatus(\"Arrived\")\r\n }\r\n else if (dates.ArrivalDate != dates.BusinessDate && dates.BusinessDate == dates.DepartureDate1) {\r\n setReservationStatus(\"Due-out\")\r\n }\r\n else if (dates.ArrivalDate != dates.BusinessDate && dates.BusinessDate != dates.DepartureDate1) {\r\n setReservationStatus(\"In-house\")\r\n }\r\n setBillingInstruction(response.data.BillingInstructionRemarks);\r\n setReservationInfoData(response.data);\r\n setPostLaundryObj(prev => ({ ...prev, CompanyOnFolio: response.data.CompanyOnFolioProfileSerNo }));\r\n });\r\n };\r\n const fillGuestList = (ReservationSerNo) => {\r\n GetReservationAccompanyGuest(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then((d) => {\r\n if (d.status === 200) {\r\n console.log(\"Guest list\", d.data);\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach(x => {\r\n temp.push({ key: x.GuestProfileSerNo, value: x.GuestName });\r\n });\r\n setGuestList(temp);\r\n\r\n }\r\n });\r\n };\r\n const fillTaxExemptionList = () => {\r\n GetTaxExemptionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n let temp = [];\r\n console.log(d.data);\r\n d.data.forEach(x => {\r\n temp.push({ key: x.ExemptionSerNo, value: (parseInt(x.ExemptionSerNo) === 0) ? \"Select\" : x.Name });\r\n });\r\n setTaxExemptionList(temp);\r\n }).catch(() => {\r\n setTaxExemptionList([{ key: 0, value: \"Select\" }]);\r\n });\r\n };\r\n const fillReservation = () => {\r\n if (roomNo.trim() === \"\") {\r\n console.log(\"clear all data that need to be cleared\");\r\n clearReservationDetails();\r\n }\r\n else {\r\n if ((/^[A-Za-z0-9+$]/).test(roomNo)) {\r\n validateReservationByRoomNo(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), roomNo).then(d => {\r\n if (d.data.ReservationSerNo === -1) {\r\n alertFunction(\"Room No. does not exist.\");\r\n clearReservationDetails();\r\n } else if (d.data.ReservationSerNo === 0) {\r\n alertFunction(\"No room reservation found with this room no.\");\r\n clearReservationDetails();\r\n } else {\r\n setPostLaundryObj(prev => ({ ...prev, ReservationSerNo: parseInt(d.data.ReservationSerNo), RoomSerNo: d.data.RoomSerNo }));\r\n // setReservationStatus(\"In-house\");\r\n fillInclusions(d.data.ReservationSerNo);\r\n fillInfoData(d.data.ReservationSerNo);\r\n fillGuestList(d.data.ReservationSerNo);\r\n }\r\n }).catch(() => {\r\n clearReservationDetails();\r\n });\r\n } else {\r\n alertFunction(\"Room No. does not exist.\");\r\n }\r\n }\r\n };\r\n const fillBillDetail = (LaundrySerNo) => {\r\n GetLaundryBillDetail(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), LaundrySerNo).then(d => {\r\n if (d.data.length > 0) {\r\n let temp = d.data[0];\r\n let netAmount = temp.Gross + temp.Tax - temp.Discount - temp.Settled;\r\n setPostSettlementObj((prev) => ({ ...prev, Amount: netAmount }))\r\n setBillDetail({ ...temp, netAmount: netAmount });\r\n }\r\n });\r\n };\r\n const fillPaymentMethodType = () => {\r\n GetTransactionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"P\", \"ALL\").then(d => {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n console.log(d.data);\r\n d.data.filter(x => x.Module === \"R\").forEach(x => {\r\n temp.push({ key: x.TransactionSerNo, value: x.Name });\r\n });\r\n setPaymentMethodTypeList(temp);\r\n setPaymentList(d.data);\r\n });\r\n };\r\n const fillSettledList = (SerNo) => {\r\n if (postLaundryObj.SerNo !== 0) {\r\n GetLaundrySettlementList(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), SerNo).then(d => {\r\n setPaidList(d.data);\r\n }).catch(ex => {\r\n console.log(ex);\r\n setPaidList([]);\r\n });\r\n } else {\r\n setPaidList([]);\r\n }\r\n };\r\n const fillLaundryDetailBySerNo = async () => {\r\n if (props.serNo !== undefined && props.serNo > 0) {\r\n GetLaundryDetailBySerNo(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(props.serNo)).then(d => {\r\n console.log(d.data);\r\n setLaundryData(d.data);\r\n if (d.data.Detail !== undefined) {\r\n let o = d.data.Detail;\r\n // setReservationStatus(\"In-house\");\r\n setRoomNo(o.RoomNo);\r\n fillInclusions(o.ReservationSerNo);\r\n fillInfoData(o.ReservationSerNo);\r\n fillGuestList(o.ReservationSerNo);\r\n fillBillDetail(o.SerNo);\r\n fillSettledList(o.SerNo);\r\n setIsPrinted(o.IsPrinted);\r\n if (o.IsPrinted) {\r\n setDisabledObj(prev => ({\r\n ...prev,\r\n post: true,\r\n addSettlement: false,\r\n payment: false,\r\n postToRoom: true\r\n }));\r\n } else {\r\n setDisabledObj(prev => ({\r\n ...prev,\r\n post: false,\r\n addSettlement: true,\r\n payment: true,\r\n postToRoom: false\r\n }));\r\n }\r\n setPostLaundryObj(prev => ({\r\n ...prev,\r\n SerNo: o.SerNo,\r\n RoomSerNo: o.RoomSerNo,\r\n ReservationSerNo: o.ReservationSerNo,\r\n GuestProfileSerNo: o.GuestProfileSerNo,\r\n IsComplimentary: o.IsComplimentary,\r\n IsTaxInclusive: o.IsTaxInclusive,\r\n ExemptionSerNo: o.ExemptionSerNo,\r\n Discount: o.Discount,\r\n IsDiscountPercentage: o.IsDiscountPercentage,\r\n VenderSerNo: o.VenderSerNo,\r\n LaundryHotelServiceSerNo: o.LaundryHotelServiceSerNo,\r\n LaundryServiceSerNo: o.LaundryServiceSerNo\r\n }));\r\n }\r\n });\r\n }\r\n };\r\n const AddInvoice = () => {\r\n if (postLaundryObj.SerNo !== 0 || postLaundryObj.SerNo !== undefined) {\r\n let IsPrint = true;\r\n if (props.serNo !== 0) {\r\n if (laundryData.Detail?.IsPrinted) {\r\n IsPrint = false;\r\n //show preview only from invoice number.\r\n alertFunction(\"Invoice already generated\");\r\n }\r\n } else if (IsPrinted) {\r\n IsPrint = false;\r\n //show preview only from invoice number.\r\n alertFunction(\"Invoice already generated\");\r\n }\r\n if (IsPrint) {\r\n AddLaundryInvoice(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), postLaundryObj.SerNo).then(d => {\r\n alertFunction(d.data.Message);\r\n console.log(d.data);\r\n if (d.data.Code === \"200\") {\r\n setDisabledObj(prev => ({\r\n ...prev,\r\n post: true,\r\n payment: false,\r\n postToRoom: true,\r\n addSettlement: false\r\n }));\r\n setIsPrinted(true);\r\n }\r\n });\r\n }\r\n } else {\r\n alertFunction(\"Error in generating invoice number,Check - Maybe bill amount is zero\");\r\n }\r\n };\r\n //#endregion\r\n\r\n //#region events\r\n\r\n const clearReservationDetails = () => {\r\n setGuestList([{ key: 0, value: \"Select\" }]);\r\n // setReservationStatus(\"\");\r\n setInclusionList([]);\r\n setBillingInstruction(\"\");\r\n setPostLaundryObj(prev => ({ ...prev, ReservationSerNo: 0, RoomSerNo: 0, GuestProfileSerNo: 0 }));\r\n setReservationInfoData({});\r\n };\r\n const IsPageValid = (Case) => {\r\n let IsValid = true;\r\n if (Case === \"C\") {\r\n if (postLaundryObj.RoomSerNo === 0) {\r\n setPostLaundryValidation(prev => ({ ...prev, RoomNo: \"Please enter valid room number.\" }));\r\n IsValid = false;\r\n }\r\n if (postLaundryObj.GuestProfileSerNo === 0) {\r\n setPostLaundryValidation(prev => ({ ...prev, GuestName: \"Please select guestname.\" }));\r\n IsValid = false;\r\n }\r\n if (postLaundryObj.IsTaxInclusive && postLaundryObj.ExemptionSerNo === 0) {\r\n setPostLaundryValidation(prev => ({ ...prev, Exemption: \"Please select tax exemption.\" }));\r\n IsValid = false;\r\n }\r\n if (isNaN(postLaundryObj.Discount)) {\r\n setPostLaundryValidation(prev => ({ ...prev, Discount: \"Invalid input\" }));\r\n IsValid = false;\r\n } else {\r\n if (parseFloat(postLaundryObj.Discount) > 100 && postLaundryObj.IsDiscountPer) {\r\n setPostLaundryValidation(prev => ({ ...prev, Discount: \"Enter discount less than 100\" }));\r\n IsValid = false;\r\n }\r\n }\r\n if (parseInt(postLaundryObj.VenderSerNo) === 0) {\r\n setPostLaundryValidation(prev => ({ ...prev, Vender: \"Please select vender.\" }));\r\n IsValid = false;\r\n }\r\n if (parseInt(postLaundryObj.LaundryHotelServiceSerNo) === 0) {\r\n setPostLaundryValidation(prev => ({ ...prev, HotelService: \"Please select hotel service\" }));\r\n IsValid = false;\r\n }\r\n if (parseInt(postLaundryObj.LaundryServiceSerNo) === 0) {\r\n setPostLaundryValidation(prev => ({ ...prev, LaundryService: \"Please select laundry service\" }));\r\n IsValid = false;\r\n }\r\n if (laundryItemList.filter(x => x.IsChecked === true).length === 0) {\r\n IsValid = false;\r\n } else {\r\n laundryItemList.forEach(x => {\r\n console.log(\"qty\", x.Qty);\r\n if (isNaN(x.Qty) || parseInt(x.Qty) <= 0 || x.Qty.toString().trim() === \"\") {\r\n console.log('in');\r\n IsValid = false;\r\n }\r\n });\r\n }\r\n return IsValid;\r\n }\r\n else if (Case === \"P\") {\r\n if (postSettlementObj.TransactionSerNo === 0) {\r\n setPostSettlementValidation(prev => ({ ...prev, TransactionSerNo: \"Select Payment Method\" }));\r\n IsValid = false;\r\n }\r\n if (isNaN(postSettlementObj.Amount)) {\r\n setPostSettlementValidation(prev => ({ ...prev, Amount: \"Enter valid amount\" }));\r\n IsValid = false;\r\n } else {\r\n if (parseFloat(postSettlementObj.Amount) <= 0) {\r\n setPostSettlementValidation(prev => ({ ...prev, Amount: \"Enter amount more than 0\" }));\r\n IsValid = false;\r\n }\r\n }\r\n if (selectedPaymentMethod === \"CASH\") {\r\n if (parseInt(postSettlementObj.Amount) >= 50000) {\r\n if (postSettlementObj.PanCardNo.trim() === \"\") {\r\n setPostSettlementValidation(prev => ({ ...prev, PanCardNo: \"Enter PanCard No\" }));\r\n IsValid = false;\r\n }\r\n if (postSettlementObj.PanHolderName.trim() === \"\") {\r\n setPostSettlementValidation(prev => ({ ...prev, PanHolderName: \"Enter Pan Holder Name\" }));\r\n IsValid = false;\r\n }\r\n }\r\n }\r\n if (selectedPaymentMethod === \"CH\") {\r\n if (postSettlementObj.ChequeNo.trim() === \"\") {\r\n setPostSettlementValidation(prev => ({ ...prev, ChequeNo: \"Enter ChequeNo\" }));\r\n IsValid = false;\r\n }\r\n if (postSettlementObj.BankName.trim() === \"\") {\r\n setPostSettlementValidation(prev => ({ ...prev, BankName: \"Enter Bank Name\" }));\r\n IsValid = false;\r\n }\r\n if (postSettlementObj.BranchName.trim() === \"\") {\r\n setPostSettlementValidation(prev => ({ ...prev, BranchName: \"Enter Branch Name\" }));\r\n IsValid = false;\r\n }\r\n if (postSettlementObj.NameOfAccount.trim() === \"\") {\r\n setPostSettlementValidation(prev => ({ ...prev, NameOfAccount: \"Enter Name Of Account\" }));\r\n IsValid = false;\r\n }\r\n }\r\n if (selectedPaymentMethod === \"CD\") {\r\n if (postSettlementObj.CCNo.trim() === \"\") {\r\n IsValid = false;\r\n setPostSettlementValidation(prev => ({ ...prev, CCNo: \"Enter Card No\" }));\r\n }\r\n if (postSettlementObj.CCExpiryDate.trim() === \"\") {\r\n IsValid = false;\r\n setPostSettlementValidation(prev => ({ ...prev, CCExpiryDate: \"Enter Expiry Date\" }));\r\n }\r\n if (postSettlementObj.CCHolderName.trim() === \"\") {\r\n IsValid = false;\r\n setPostSettlementValidation(prev => ({ ...prev, CCHolderName: \"Enter Card Holder Name\" }));\r\n }\r\n }\r\n if (selectedPaymentMethod === \"BT\") {\r\n if (postSettlementObj.BankName.trim() === \"\") {\r\n IsValid = false;\r\n setPostSettlementValidation(prev => ({ ...prev, BankName: \"Enter Bank Name\" }));\r\n }\r\n if (postSettlementObj.PaymentReceivedDate === \"\") {\r\n IsValid = false;\r\n setPostSettlementValidation(prev => ({ ...prev, PaymentReceivedDate: \"Enter Payment Receive Date\" }));\r\n }\r\n if (postSettlementObj.NameOfAccount.trim() === \"\") {\r\n IsValid = false;\r\n setPostSettlementValidation(prev => ({ ...prev, NameOfAccount: \"Enter Name Of Account\" }));\r\n }\r\n }\r\n if (selectedPaymentMethod === \"UP\") {\r\n if (postSettlementObj.UPIId.trim() === \"\") {\r\n IsValid = false;\r\n setPostSettlementValidation(prev => ({ ...prev, UPIId: \"Enter UPI ID\" }));\r\n }\r\n if (postSettlementObj.PaymentReceivedDate.trim() === \"\") {\r\n IsValid = false;\r\n setPostSettlementValidation(prev => ({ ...prev, PaymentReceivedDate: \"Enter Payment Receive Date\" }));\r\n }\r\n }\r\n return IsValid;\r\n }\r\n };\r\n const onSaveClick = () => {\r\n let IsValid = IsPageValid(\"C\");\r\n if (IsValid) {\r\n let list = [];\r\n laundryItemList.forEach(x => {\r\n if (x.IsChecked) {\r\n list.push({\r\n LaundryItemSerNo: parseInt(x.LaundryItemSerNo),\r\n Rate: parseFloat(x.SalesRate),\r\n Qty: parseInt(x.Qty),\r\n IsFree: x.IsFree,\r\n ChargeTransactionSerNo: x.TransactionSerNo,\r\n IsDiscountable: x.IsDiscountable\r\n });\r\n }\r\n });\r\n let obj = {\r\n ClientSerNo: postLaundryObj.ClientSerNo,\r\n SerNo: parseInt(postLaundryObj.SerNo),\r\n PropertySerNo: postLaundryObj.PropertySerNo,\r\n VenderSerNo: parseInt(postLaundryObj.VenderSerNo),\r\n ReservationSerNo: parseInt(postLaundryObj.ReservationSerNo),\r\n RoomSerNo: parseInt(postLaundryObj.RoomSerNo),\r\n GuestProfileSerNo: parseInt(postLaundryObj.GuestProfileSerNo),\r\n IsComplimentary: postLaundryObj.IsComplimentary,\r\n IsTaxInclusive: postLaundryObj.IsTaxInclusive,\r\n Discount: parseFloat(postLaundryObj.Discount),\r\n IsDiscountPer: postLaundryObj.IsDiscountPer,\r\n LaundryHotelServiceSerNo: parseInt(postLaundryObj.LaundryHotelServiceSerNo),\r\n LaundryServiceSerNo: parseInt(postLaundryObj.LaundryServiceSerNo),\r\n CompanyOnFolio: parseInt(postLaundryObj.CompanyOnFolio),\r\n ExemptionSerNo: parseInt(postLaundryObj.ExemptionSerNo),\r\n UserID: currUser.UserID,\r\n ItemList: list\r\n };\r\n console.log(\"final api obj\", obj);\r\n PostLaundryTransaction(obj).then(d => {\r\n alertFunction(d.data.Message);\r\n console.log(d.data.ReturnValue);\r\n setPostLaundryValidation(defaultValidationObj);\r\n if (d.data.ReturnValue !== \"\") {\r\n setPostLaundryObj(prev => ({ ...prev, SerNo: parseInt(d.data.ReturnValue) }));\r\n fillBillDetail(parseInt(d.data.ReturnValue));\r\n }\r\n });\r\n } else {\r\n alertFunction(\"One or more validation error occured.\");\r\n }\r\n };\r\n const onSettleSaveClick = () => {\r\n let IsValid = IsPageValid('P');\r\n if (IsValid) {\r\n let obj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n SerNo: parseInt(postLaundryObj.SerNo),\r\n Amount: parseFloat(postSettlementObj.Amount),\r\n TransactionSerNo: parseInt(postSettlementObj.TransactionSerNo),\r\n UserID: currUser.UserID,\r\n PaymentMethodType: selectedPaymentMethod,\r\n PanCardNo: (selectedPaymentMethod === 'CASH') ? postSettlementObj.PanCardNo : null,\r\n PanHolderName: (selectedPaymentMethod === 'CASH') ? postSettlementObj.PanHolderName : null,\r\n ChequeNo: (selectedPaymentMethod === 'CH') ? postSettlementObj.ChequeNo : null,\r\n BankName: (\r\n selectedPaymentMethod === 'CH' ||\r\n selectedPaymentMethod === 'BT'\r\n ) ? postSettlementObj.BankName : null,\r\n BranchName: (selectedPaymentMethod === 'CH') ? postSettlementObj.BranchName : null,\r\n NameOfAccount: (\r\n selectedPaymentMethod === 'CH'\r\n || selectedPaymentMethod === 'BT'\r\n || selectedPaymentMethod === 'UP'\r\n ) ? postSettlementObj.NameOfAccount : null,\r\n CCNo: (selectedPaymentMethod === 'CD') ? postSettlementObj.CCNo : null,\r\n CCHolderName: (selectedPaymentMethod === 'CD') ? postSettlementObj.CCHolderName : null,\r\n CCExpiryDate: (selectedPaymentMethod === 'CD') ? postSettlementObj.CCExpiryDate : null,\r\n PaymentReceivedDate: (\r\n selectedPaymentMethod === 'BT'\r\n || selectedPaymentMethod === 'UP'\r\n ) ? postSettlementObj.PaymentReceivedDate : null,\r\n UPIId: (selectedPaymentMethod === 'UP') ? postSettlementObj.UPIId : null,\r\n };\r\n PostLaundrySettlement(obj).then(async d => {\r\n await alertFunction(d.data.Message);\r\n console.log(d.data);\r\n setPostSettlementValidation(defaultPostSettlementValidation);\r\n if (parseInt(d.data.ReturnValue) !== 0) {\r\n fillSettledList(postLaundryObj.SerNo);\r\n fillBillDetail(postLaundryObj.SerNo);\r\n setIsShowSummary(true)\r\n } else {\r\n if (props.OnClose !== undefined) {\r\n props.OnClose();\r\n alertFunction(\"Process is completed and bill is closed.\");\r\n }\r\n }\r\n });\r\n } else {\r\n alertFunction('One or more validation error occured');\r\n }\r\n };\r\n const onSettleCancelClick = () => {\r\n setIsShowSummary(true);\r\n setPostSettlementValidation(defaultPostSettlementValidation);\r\n };\r\n const onPostToRoomClick = () => {\r\n if (parseInt(postLaundryObj.SerNo) !== 0) {\r\n PostLaundryTransactionToRoom(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(postLaundryObj.SerNo), parseInt(postLaundryObj.ReservationSerNo), postLaundryObj.IsTaxInclusive, currUser.UserID).then(async d => {\r\n // await alertFunction(d.data.Message);\r\n if (props.OnClose !== undefined) {\r\n props.OnClose();\r\n alertFunction(d.data.Message);\r\n // alertFunction(\"Process is completed and bill is closed.\");\r\n }\r\n });\r\n } else {\r\n alertFunction(\"Please post laundry charge to continue.\");\r\n }\r\n };\r\n //#endregion\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n fillVenderList();\r\n fillHotelServiceList();\r\n fillLaundryServiceType();\r\n fillTaxExemptionList();\r\n fillPaymentMethodType();\r\n fillPropertyPara();\r\n setIsDefaultLoaded(true);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (IsDefaultLoaded && parseInt(props.serNo) !== 0) {\r\n fillLaundryDetailBySerNo();\r\n }\r\n }, [IsDefaultLoaded]);\r\n\r\n useEffect(() => {\r\n if (postLaundryObj.VenderSerNo !== 0 && postLaundryObj.LaundryHotelServiceSerNo !== 0 && postLaundryObj.LaundryServiceSerNo !== 0) {\r\n fillLaundryItemList();\r\n } else {\r\n setLaundryItemList([]);\r\n setDropDownItemList([]);\r\n }\r\n }, [postLaundryObj.VenderSerNo, postLaundryObj.LaundryHotelServiceSerNo, postLaundryObj.LaundryServiceSerNo]);\r\n //#endregion\r\n\r\n return (\r\n {\r\n if (props.OnClose !== undefined) {\r\n props.OnClose();\r\n }\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Post Laundry

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setRoomNo(e);\r\n setPostLaundryValidation(prev => ({ ...prev, RoomNo: \"\" }));\r\n }}\r\n onBlur={fillReservation}\r\n customError={postLaundryValidation.RoomNo}\r\n >\r\n Room No.\r\n \r\n {reservationStatus}\r\n
    \r\n\r\n
    \r\n {\r\n setPostLaundryObj(prev => ({ ...prev, GuestProfileSerNo: item.key }));\r\n setPostLaundryValidation(prev => ({ ...prev, GuestName: \"\" }));\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n Complementary ?\r\n {\r\n if (v === true) {\r\n setPostLaundryObj(prev => ({ ...prev, Discount: 0 }));\r\n }\r\n setPostLaundryObj(prev => ({ ...prev, IsComplimentary: v }));\r\n }}\r\n id=\"P1\"\r\n value={postLaundryObj.IsComplimentary}\r\n >\r\n
    \r\n
    \r\n\r\n
    \r\n Inclusive of Taxes\r\n {\r\n setPostLaundryObj(prev => ({ ...prev, IsTaxInclusive: v }));\r\n }}\r\n id=\"P2\"\r\n value={postLaundryObj.IsTaxInclusive}\r\n >\r\n
    \r\n
    \r\n {\r\n setPostLaundryObj(prev => ({ ...prev, ExemptionSerNo: item.key }));\r\n setPostLaundryValidation(prev => ({ ...prev, Exemption: \"\" }));\r\n }}\r\n disabled={disabledObj.post}\r\n >\r\n
    \r\n
    \r\n
    \r\n {\r\n\r\n setPostLaundryObj(prev => ({ ...prev, Discount: e }));\r\n setPostLaundryValidation(prev => ({ ...prev, Discount: \"\" }));\r\n }}\r\n >\r\n Discount\r\n \r\n
    \r\n
    \r\n {\r\n //setPostLaundryObj(prev => ({ ...prev, IsDiscountPer: e }));\r\n }}\r\n >\r\n In Percentage\r\n \r\n
    \r\n
    \r\n {/*
    \r\n {\r\n setPostLaundryObj(prev => ({ ...prev, VenderSerNo: item.key }));\r\n setPostLaundryValidation(prev => ({ ...prev, Vender: \"\" }));\r\n }}\r\n disabled={disabledObj.post}\r\n >\r\n
    */}\r\n \r\n Billing Instruction\r\n \r\n
    \r\n
    Inclusions
    \r\n
      \r\n {inclusionList.map((item, index) => {\r\n return
    • {item.Name}
    • ;\r\n })}\r\n
    \r\n\r\n
    \r\n More\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setPostLaundryObj(prev => ({ ...prev, VenderSerNo: item.key }));\r\n setPostLaundryValidation(prev => ({ ...prev, Vender: \"\" }));\r\n }}\r\n disabled={disabledObj.post}\r\n >\r\n
    \r\n
    \r\n {\r\n setPostLaundryObj(prev => ({ ...prev, LaundryHotelServiceSerNo: item.key }));\r\n setPostLaundryValidation(prev => ({ ...prev, HotelService: \"\" }));\r\n }}\r\n disabled={disabledObj.post}\r\n >\r\n
    \r\n
    \r\n {\r\n setPostLaundryObj(prev => ({ ...prev, LaundryServiceSerNo: item.key }));\r\n setPostLaundryValidation(prev => ({ ...prev, LaundryService: \"\" }));\r\n }}\r\n disabled={disabledObj.post}\r\n >\r\n
    \r\n
    \r\n setShowLaundryItemDD(!showLaundryItemDD)}>Select Items\r\n {showLaundryItemDD ?
    \r\n {dropDownItemList.map((x, index) => {\r\n return (\r\n
    \r\n
    \r\n {\r\n let temp = JSON.parse(JSON.stringify(dropDownItemList));\r\n temp.forEach(item => {\r\n if (item.LaundryItemSerNo === x.LaundryItemSerNo) {\r\n item.IsChecked = e;\r\n }\r\n });\r\n setDropDownItemList(temp);\r\n }}\r\n >\r\n {x.LaundryItemName}\r\n \r\n
    \r\n
    {x.SalesRate}
    \r\n
    \r\n );\r\n })}\r\n {\r\n setLaundryItemList(dropDownItemList);\r\n setShowLaundryItemDD(!showLaundryItemDD);\r\n }}\r\n >Apply\r\n setShowLaundryItemDD(!showLaundryItemDD)}\r\n >Cancel\r\n
    : null}\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {laundryItemList.map((x, index) => {\r\n return (\r\n (x.IsChecked) ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n :\r\n null\r\n );\r\n })}\r\n \r\n
    Item NameAmountQty.
    {x.LaundryItemName}\r\n {\r\n let temp = JSON.parse(JSON.stringify(laundryItemList));\r\n temp.forEach(item => {\r\n if (item.LaundryItemSerNo === x.LaundryItemSerNo) {\r\n if (o.key === 'free') {\r\n item.IsFree = true;\r\n } else {\r\n item.IsFree = false;\r\n }\r\n }\r\n });\r\n setLaundryItemList(temp);\r\n }}>\r\n {(x.IsFree)\r\n ?\r\n Free\r\n :\r\n {x.SalesRate}\r\n }\r\n \r\n \r\n {\r\n let temp = JSON.parse(JSON.stringify(laundryItemList));\r\n temp.forEach(item => {\r\n if (item.LaundryItemSerNo === x.LaundryItemSerNo) {\r\n item.Qty = e.target.value;\r\n }\r\n });\r\n setLaundryItemList(temp);\r\n let temp1 = JSON.parse(JSON.stringify(dropDownItemList));\r\n temp1.forEach(item => {\r\n if (item.LaundryItemSerNo === x.LaundryItemSerNo) {\r\n item.Qty = e.target.value;\r\n }\r\n });\r\n setDropDownItemList(temp);\r\n }}\r\n >\r\n \r\n {!disabledObj.post\r\n ?\r\n {\r\n let temp = JSON.parse(JSON.stringify(laundryItemList));\r\n temp.forEach(item => {\r\n if (item.LaundryItemSerNo === x.LaundryItemSerNo) {\r\n item.IsChecked = false;\r\n item.Qty = 1;\r\n }\r\n });\r\n let temp1 = JSON.parse(JSON.stringify(dropDownItemList));\r\n temp1.forEach(item => {\r\n if (item.LaundryItemSerNo === x.LaundryItemSerNo) {\r\n item.IsChecked = false;\r\n item.Qty = 1;\r\n }\r\n });\r\n setLaundryItemList(temp);\r\n setDropDownItemList(temp1);\r\n }}\r\n >\r\n :\r\n null\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n Total : {laundryItemList.filter(x => x.IsChecked === true).length} {(laundryItemList.filter(x => x.IsChecked === true).length > 1) ? \"Items\" : \"Item\"}\r\n Save\r\n
    \r\n
    \r\n {\r\n //setShowGuestPopup(true);\r\n }}\r\n fixedHeaderNo={1}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={selectdata}\r\n optClick={(item, d) => {\r\n //actionPopup(item);\r\n //history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n }}\r\n\r\n >\r\n
    \r\n
    \r\n {IsShowSummary\r\n ?\r\n
    \r\n
    Billing summary
    \r\n
    \r\n Gross Value\r\n {billDetail.Gross ? billDetail.Gross.toFixed(2) : 0.00}\r\n
    \r\n
    \r\n Less : Discount\r\n {billDetail.Discount ? billDetail.Discount.toFixed(2) : 0.00}\r\n
    \r\n\r\n
    \r\n Add : Taxes\r\n {billDetail.Tax ? billDetail.Tax.toFixed(2) : 0.00}\r\n
    \r\n
    \r\n Net Value\r\n {billDetail.netAmount ? billDetail.netAmount.toFixed(2) : 0.00}\r\n
    \r\n
    Additional Functions
    \r\n {reservationInfoData.ReservationSerNo !== 0\r\n ?\r\n <>\r\n \r\n \r\n \r\n \r\n :\r\n null\r\n }\r\n
    \r\n Print Information Bill\r\n {\r\n setIsShowSummary(false);\r\n }}\r\n >Add Settlement\r\n Print Invoice\r\n Post to Room\r\n
    \r\n\r\n
    \r\n :\r\n
    \r\n
    settlements
    \r\n
    \r\n {\r\n setPostSettlementValidation(defaultPostSettlementValidation);\r\n setPostSettlementObj(prev => ({ ...prev, TransactionSerNo: item.key }));\r\n let temp = paymentList.find(x => x.TransactionSerNo === item.key);\r\n if (temp !== undefined) {\r\n setSelectedPaymentMethod(temp.PaymentMethodType);\r\n } else {\r\n setSelectedPaymentMethod(\"\");\r\n }\r\n }}\r\n disabled={disabledObj.payment}\r\n >\r\n
    \r\n
    \r\n {\r\n setPostSettlementObj(prev => ({ ...prev, Amount: e }));\r\n }}\r\n >Amount\r\n \r\n
    \r\n {selectedPaymentMethod === \"CD\" ?\r\n <>\r\n
    Card Details
    \r\n {\r\n setPostSettlementObj(prev => ({ ...prev, CCNo: v }));\r\n }}>Credit Card Number\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, CCExpiryDate: e }));\r\n let oldDate = postSettlementObj.CCExpiryDate;\r\n if (new Date(moment(businessDate).format(\"DD-MMM-YYYY\")).getTime() <= new Date(moment(e).format(\"DD-MMM-YYYY\")).getTime()) {\r\n setPostSettlementObj(prev => ({ ...prev, CCExpiryDate: e }));\r\n }\r\n else {\r\n setPostSettlementObj(prev => ({ ...prev, CCExpiryDate: e }));\r\n setTimeout(() => {\r\n setPostSettlementObj(prev => ({ ...prev, CCExpiryDate: oldDate }));\r\n }, 50);\r\n alertFunction(\"Invalid Date\");\r\n }\r\n }}\r\n placeholder=\"mm/yyyy\"\r\n dateformat=\"MM-yyyy\"\r\n selected={postSettlementObj.CCExpiryDate}\r\n calendarStartDay={1}\r\n label=\"Expiry Date\"\r\n customError={postSettlementValidation.CCExpiryDate}\r\n >\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, CCHolderName: v }));\r\n }}>Card Holder Name\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, Remarks: v }));\r\n }}>Note\r\n \r\n : null\r\n }\r\n {selectedPaymentMethod === \"CASH\" ?\r\n <>\r\n
    Cash Payment Details
    \r\n {\r\n setPostSettlementObj(prev => ({ ...prev, PanCardNo: v }));\r\n\r\n }}>PAN Card No\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, PanHolderName: v }));\r\n\r\n }}>Name on PAN Card\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, Remarks: v }));\r\n\r\n }}>Note\r\n \r\n : null\r\n }\r\n {selectedPaymentMethod === \"CH\" ?\r\n <>\r\n
    Cheque Details
    \r\n {\r\n setPostSettlementObj(prev => ({ ...prev, ChequeNo: v }));\r\n }}>Cheque No\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, BankName: v }));\r\n }}>Bank Name\r\n\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, BranchName: v }));\r\n\r\n }}>Branch Name\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, NameOfAccount: v }));\r\n\r\n }}>Name on Account\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, Remarks: v }));\r\n\r\n }}>Note\r\n \r\n : null}\r\n {selectedPaymentMethod === \"BT\" ?\r\n <>\r\n
    Bank Transfer Details
    \r\n\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, BankName: v }));\r\n }}>Bank Name\r\n\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, NameOfAccount: v }));\r\n\r\n }}>Name on Account\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, PaymentReceivedDate: e }));\r\n }}\r\n placeholder=\"mm/yyyy\"\r\n selected={postSettlementObj.PaymentReceivedDate ? postSettlementObj.PaymentReceivedDate : moment(new Date()).format('DD-MMM-YYYY')}\r\n calendarStartDay={1}\r\n label=\"Payment Received Date\"\r\n >\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, Remarks: v }));\r\n\r\n }}>Note\r\n \r\n : null}\r\n {selectedPaymentMethod === \"UP\" ?\r\n <>\r\n
    UPI payment details
    \r\n {\r\n setPostSettlementObj(prev => ({ ...prev, UPIId: v }));\r\n\r\n }}>UPI ID\r\n\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, NameOfAccount: v }));\r\n\r\n }}>Name on Account\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, PaymentReceivedDate: e }));\r\n }}\r\n placeholder=\"mm/yyyy\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Payment Received Date\"\r\n selected={postSettlementObj.PaymentReceivedDate}\r\n >\r\n {\r\n setPostSettlementObj(prev => ({ ...prev, Remarks: v }));\r\n }}>Note\r\n \r\n : null}\r\n {/* console.log(v)}>Credit Card Number\r\n \r\n console.log(v)}>Expiry Date\r\n\r\n console.log(v)}>Card Holder Name\r\n console.log(v)}>Note */}\r\n
    \r\n Cancel\r\n Save\r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnSingleDateSelection,\r\n InnModalPopup,\r\n InnTextarea,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport {\r\n IndiGuestName, IndiArrival, IndiAdultChild, IndiCompany, IndiAgent\r\n} from \"../../reservation/indicators\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport LeftMenuArrow from \"../../../../assets/images/inside-left-menu-arrow.svg\";\r\nimport moment from \"moment\";\r\nimport { ChangeHouseKeepingStatus, GetHKDetailByRoomSerNo, GetHKServiceMaster, GetHKStatusMaster, ValidateOOStatus } from \"../../../../services/housekeepingServiceMaster\";\r\nimport { GetPropertyParameterByKeys, GetReservationInfoData } from \"../../../../services/reservationService\";\r\nimport { GetReasonMaster } from \"../../../../services/generalService\";\r\nimport { TipDueIn } from \"../../reservation\";\r\n\r\nexport function ChangeHKStatusModalPopup(props) {\r\n const currUser = useSelector(currentUser);\r\n const history = useHistory();\r\n\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const parameter = \"BusinessDate\"\r\n const selectData = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n RoomSerNo: 0,\r\n HKStatusSerNo: 0,\r\n StartDate: \"\",\r\n EndDate: \"\",\r\n Remarks: \"\",\r\n ReasonSerNo: 0,\r\n HKServiceSerNo: 0,\r\n HKFOStatus: \"\",\r\n Adult: 0,\r\n Child: 0,\r\n IsOutOfOrder: false,\r\n IsReverseOutOfOrder: false,\r\n OldStartDate: \"\",\r\n OldEndDate: \"\",\r\n OOSerNo: 0,\r\n }\r\n\r\n const HKFOStatusData = [\r\n { key: \"Occ\", value: \"Occupied\" },\r\n { key: \"Vac\", value: \"Vacant\" }\r\n ]\r\n\r\n const [reservationInfoData, setReservationInfoData] = useState({});\r\n const [fillHKStatusData, setFillHKStatusData] = useState([]);\r\n const [fillHKServiceData, setFillHKServiceData] = useState([]);\r\n const [selectedHKStatus, setSelectedHKStatus] = useState({});\r\n const [selectedHKService, setSelectedHKService] = useState({ key: 0, value: \"Select\" });\r\n const [selectedHKFOStatus, setSelectedHKFOStatus] = useState({});\r\n const [roomHKDetail, setRoomHKDetail] = useState({});\r\n const [changeStatusObj, setChangeStatusObj] = useState(defaultObj);\r\n const [validationObj, setValidationObj] = useState(defaultObj);\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n const [reasonData, setReasonData] = useState([]);\r\n const [showDueInToolTip, setShowDueInToolTip] = useState(false);\r\n\r\n const handleOnClose = () => {\r\n if (props.OnClose != undefined) {\r\n props.OnClose()\r\n }\r\n }\r\n const isValidPage = () => {\r\n let isValid = true;\r\n let userStartDate = new Date(moment(changeStatusObj.StartDate).format(\"DD-MMM-YYYY\")).getTime();\r\n let userEndDate = new Date(moment(changeStatusObj.EndDate).format(\"DD-MMM-YYYY\")).getTime();\r\n\r\n if (changeStatusObj.HKStatusSerNo == 0) {\r\n isValid = false;\r\n setValidationObj((prev) => ({ ...prev, HKStatusSerNo: \"Select valid New HK status\" }));\r\n }\r\n if (isNaN(changeStatusObj.Child) == true) {\r\n isValid = false;\r\n setValidationObj((prev) => ({ ...prev, Child: \"Enter valid No Of Child\" }));\r\n }\r\n if (isNaN(changeStatusObj.Adult) == true) {\r\n isValid = false;\r\n setValidationObj((prev) => ({ ...prev, Adult: \"Enter valid No Of Adult\" }));\r\n }\r\n if (selectedHKStatus.type == \"OO\" || selectedHKStatus.type == \"OS\") {\r\n if (props.para.ReservationSerNo || changeStatusObj.HKFOStatus == 'Occ') {\r\n isValid = false;\r\n setValidationObj((prev) => ({ ...prev, HKStatusSerNo: \"Status of occupied room can not be set out of order\" }));\r\n }\r\n else if (changeStatusObj.ReasonSerNo == 0) {\r\n isValid = false;\r\n setValidationObj((prev) => ({ ...prev, ReasonSerNo: \"Select valid Reason for out of order\" }));\r\n }\r\n else if (userEndDate < userStartDate) {\r\n isValid = false;\r\n setValidationObj((prev) => ({ ...prev, EndDate: \"Invalid Date\" }));\r\n alertFunction(\"Recovery date can not be less than From date.\")\r\n }\r\n // else if (changeStatusObj.Remarks.trim().length == 0) {\r\n // isValid = false;\r\n // setValidationObj((prev) => ({ ...prev, Remarks: \"Enter valid remark\" }));\r\n // }\r\n }\r\n return isValid;\r\n }\r\n const handleValidateOOStatus = async () => {\r\n let isValid = true;\r\n await ValidateOOStatus(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo),\r\n parseInt(props.para.RoomSerNo), changeStatusObj.StartDate, changeStatusObj.EndDate).then((d) => {\r\n if (d.data && d.data.length > 0) {\r\n // handleAlertOOValidation(d.data);\r\n isValid = false;\r\n alertFunction(\"Out of order already\");\r\n }\r\n })\r\n return isValid;\r\n }\r\n const isValidOODate = async () => {\r\n // let userStartDate = new Date(moment(changeStatusObj.StartDate).format(\"DD-MMM-YYYY\")).getTime()\r\n // let userEndDate = new Date(moment(changeStatusObj.EndDate).format(\"DD-MMM-YYYY\")).getTime()\r\n // let systemStartDate = new Date(moment(roomHKDetail.StartDate).format(\"DD-MMM-YYYY\")).getTime()\r\n // let systemEndDate = new Date(moment(roomHKDetail.EndDate).format(\"DD-MMM-YYYY\")).getTime()\r\n\r\n // if (userEndDate >= userStartDate) {\r\n // if (userStartDate < systemStartDate && systemEndDate < userEndDate) {\r\n // await confirm({\r\n // Message: `Room is already out of order from ${roomHKDetail.StartDate} to ${roomHKDetail.EndDate}`,\r\n // Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n // });\r\n // return false;\r\n // }\r\n // else if (userStartDate >= systemStartDate && systemEndDate >= userEndDate) {\r\n // await confirm({\r\n // Message: `Room is already out of order from ${roomHKDetail.StartDate} to ${roomHKDetail.EndDate}`,\r\n // Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n // });\r\n // return false;\r\n // }\r\n // else if (userStartDate < systemStartDate && systemEndDate >= userEndDate && systemStartDate <= userEndDate) {\r\n // await confirm({\r\n // Message: `Room is already out of order from ${roomHKDetail.StartDate} to ${roomHKDetail.EndDate}`,\r\n // Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n // });\r\n // return false;\r\n // }\r\n // else if (userStartDate >= systemStartDate && userStartDate < systemEndDate && systemEndDate < userEndDate) {\r\n // await confirm({\r\n // Message: `Room is already out of order from ${roomHKDetail.StartDate} to ${roomHKDetail.EndDate}`,\r\n // Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n // });\r\n // return false;\r\n // }\r\n // else {\r\n // return true;\r\n // }\r\n // }\r\n }\r\n\r\n const handleOnSaveClick = () => {\r\n let isValid = isValidPage();\r\n let InputObj = changeStatusObj;\r\n if (props.para.RoomSerNo) {\r\n InputObj.RoomSerNo = props.para.RoomSerNo;\r\n }\r\n if (InputObj.HKFOStatus == \"Vac\") {\r\n InputObj.HKServiceSerNo = 0;\r\n InputObj.Adult = 0;\r\n InputObj.Child = 0;\r\n }\r\n if (selectedHKStatus.type != \"OO\" && selectedHKStatus.type != \"OS\") {\r\n InputObj.StartDate = \"\";\r\n InputObj.EndDate = \"\";\r\n InputObj.Remarks = \"\";\r\n InputObj.ReasonSerNo = 0;\r\n InputObj.IsOutOfOrder = false;\r\n if (roomHKDetail.HKStatusType == \"OO\" || roomHKDetail.HKStatusType == \"OS\") {\r\n InputObj.IsReverseOutOfOrder = true;\r\n InputObj.OldStartDate = roomHKDetail.StartDate;\r\n InputObj.OldEndDate = roomHKDetail.EndDate;\r\n InputObj.OOSerNo = roomHKDetail.OOSerNo;\r\n }\r\n else {\r\n InputObj.IsReverseOutOfOrder = false;\r\n InputObj.OldStartDate = \"\";\r\n InputObj.OldEndDate = \"\";\r\n InputObj.OOSerNo = 0;\r\n }\r\n }\r\n else {\r\n InputObj.IsOutOfOrder = true;\r\n }\r\n if (isValid) {\r\n if (selectedHKStatus.type == \"OO\" || selectedHKStatus.type == \"OS\") {\r\n handleValidateOOStatus().then((e) => {\r\n if (e) {\r\n ChangeHouseKeepingStatus(InputObj).then((d) => {\r\n if (d.data) {\r\n alertFunction(d.data.Message)\r\n if (d.data.Code == \"200\") {\r\n handleOnClose();\r\n setChangeStatusObj(defaultObj);\r\n }\r\n }\r\n })\r\n }\r\n })\r\n }\r\n else {\r\n ChangeHouseKeepingStatus(InputObj).then((d) => {\r\n if (d.data) {\r\n alertFunction(d.data.Message)\r\n if (d.data.Code == \"200\") {\r\n handleOnClose();\r\n setChangeStatusObj(defaultObj);\r\n }\r\n }\r\n })\r\n }\r\n\r\n }\r\n else {\r\n alertFunction(\"One or more field has invalid value, Please verify accordingly.\")\r\n }\r\n\r\n }\r\n //#region useEffect\r\n\r\n useEffect(() => {\r\n GetHKStatusMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n // console.log(d.data);\r\n let defaultHKStatusData = [];\r\n if (d.data != undefined) {\r\n d.data.map((e) => {\r\n defaultHKStatusData = [\r\n ...defaultHKStatusData,\r\n {\r\n key: e.HKStatusSerNo,\r\n value: e.Name,\r\n type: e.HKStatusType,\r\n IsOutOfOrder: e.IsOutOfOrder\r\n },\r\n ];\r\n });\r\n }\r\n setFillHKStatusData(defaultHKStatusData);\r\n })\r\n GetHKServiceMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n let defaultHKServiceData = [{ key: 0, value: \"Select\" }];\r\n if (d.data != undefined) {\r\n d.data.map((e) => {\r\n defaultHKServiceData = [\r\n ...defaultHKServiceData,\r\n {\r\n key: e.HKServiceSerNo,\r\n value: e.HKServiceName,\r\n },\r\n ];\r\n });\r\n }\r\n setFillHKServiceData(defaultHKServiceData);\r\n })\r\n if (props.Date && props.para.RoomSerNo) {\r\n GetHKDetailByRoomSerNo(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(props.para.RoomSerNo), props.Date).then((d) => {\r\n if (d.data) {\r\n console.log(d.data);\r\n setRoomHKDetail(d.data[0])\r\n }\r\n })\r\n }\r\n if (props.para.ReservationSerNo) {\r\n GetReservationInfoData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo),\r\n props.para.ReservationSerNo).then((d) => {\r\n if (d.data) {\r\n setReservationInfoData(d.data)\r\n }\r\n })\r\n }\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parameter).then(d => {\r\n if (d.data != undefined && d.data.length > 0) {\r\n let obj = d.data.find(x => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(obj.value);\r\n setTimeout(() => {\r\n setChangeStatusObj((prev) => ({\r\n ...prev,\r\n StartDate: moment(obj.value).format(\"DD-MMM-YYYY\"),\r\n EndDate: moment(obj.value).format(\"DD-MMM-YYYY\"),\r\n }));\r\n }, 20);\r\n }\r\n }\r\n });\r\n GetReasonMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"OO\").then((d) => {\r\n if (d.data) {\r\n let tempData = []\r\n d.data.map((x) => {\r\n tempData = [...tempData,\r\n { key: x.ReasonSerNo, value: x.Name }\r\n ]\r\n })\r\n setReasonData(tempData)\r\n }\r\n })\r\n if (props.para) {\r\n if (props.para.HKFOStatus) {\r\n if (props.para.HKFOStatus == \"Occ\") {\r\n setSelectedHKFOStatus((prev) => ({ ...prev, key: \"Occ\" }))\r\n setChangeStatusObj((prev) => ({ ...prev, HKFOStatus: \"Occ\" }))\r\n if (props.para.HKPersons) {\r\n setChangeStatusObj((prev) => ({ ...prev, Adult: props.para.Adult, Child: props.para.Child }))\r\n }\r\n if (props.para.HKServiceSerNo) {\r\n setSelectedHKService({ key: props.para.HKServiceSerNo, value: props.para.ServiceStatus })\r\n setChangeStatusObj((prev) => ({ ...prev, HKServiceSerNo: props.para.HKServiceSerNo }))\r\n }\r\n }\r\n else {\r\n setSelectedHKFOStatus((prev) => ({ ...prev, key: \"Vac\" }))\r\n setChangeStatusObj((prev) => ({ ...prev, HKFOStatus: \"Vac\" }))\r\n }\r\n }\r\n }\r\n }, []);\r\n //#endregion\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n

    HK Change Status

    \r\n
    \r\n
    \r\n \r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Room details
    \r\n
    \r\n Room No.\r\n {roomHKDetail.RoomNo}\r\n
    \r\n
    \r\n Floor\r\n {roomHKDetail.FloorSerNo}\r\n
    \r\n
    \r\n HK Section\r\n {roomHKDetail.SectionName}\r\n
    \r\n
    \r\n Current HK Status\r\n {roomHKDetail.CurrentStatus}\r\n
    \r\n {\r\n roomHKDetail.HKStatusType == \"OO\" || roomHKDetail.HKStatusType == \"OS\" ?\r\n <>\r\n
    \r\n Start Date\r\n {roomHKDetail.StartDate}\r\n
    \r\n
    \r\n Recovery Date\r\n {roomHKDetail.EndDate}\r\n
    \r\n \r\n :\r\n null\r\n\r\n }\r\n {\r\n props.para.ReservationSerNo ?\r\n <>\r\n
    reservation details
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {\r\n setShowDueInToolTip(true)\r\n }}\r\n >\r\n Due In\r\n \r\n
    \r\n \r\n :\r\n null\r\n }\r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedHKStatus(item)\r\n setChangeStatusObj((prev) => ({ ...prev, HKStatusSerNo: item.key }))\r\n setValidationObj((prev) => ({ ...prev, HKStatusSerNo: \"\" }))\r\n }}\r\n selectedSerNo={selectedHKStatus.key}\r\n label=\"New HK Status\"\r\n customError={validationObj.HKStatusSerNo}\r\n >\r\n
    \r\n {\r\n selectedHKStatus.type == \"OO\" || selectedHKStatus.type == \"OS\" ?\r\n <>\r\n
    \r\n {\r\n setChangeStatusObj((prev) => ({ ...prev, ReasonSerNo: item.key }))\r\n setValidationObj((prev) => ({ ...prev, ReasonSerNo: \"\" }))\r\n }}\r\n selectedSerNo={changeStatusObj.ReasonSerNo}\r\n label=\"Reason for out of order\"\r\n >\r\n
    \r\n {\r\n setChangeStatusObj((prev) => ({ ...prev, Remarks: v }))\r\n }}\r\n >\r\n Remarks\r\n \r\n
    \r\n
    \r\n {\r\n let oldDate = changeStatusObj.StartDate\r\n if (new Date(moment(businessDate).format(\"DD-MMM-YYYY\")).getTime()\r\n <= new Date(moment(value).format(\"DD-MMM-YYYY\")).getTime()) {\r\n setChangeStatusObj((prev) => ({ ...prev, StartDate: value }));\r\n }\r\n else {\r\n setChangeStatusObj((prev) => ({ ...prev, StartDate: value }))\r\n setTimeout(() => {\r\n setChangeStatusObj((prev) => ({ ...prev, StartDate: oldDate }))\r\n }, 20);\r\n alertFunction(\"From date cannot be lesser than the business date. This action cannot be performed.\");\r\n }\r\n }}\r\n calendarStartDay={1}\r\n label=\"From Date\"\r\n >\r\n
    \r\n
    \r\n {\r\n let oldDate = changeStatusObj.EndDate\r\n if (new Date(moment(changeStatusObj.StartDate).format(\"DD-MMM-YYYY\")).getTime() <\r\n new Date(moment(value).format(\"DD-MMM-YYYY\")).getTime()) {\r\n setChangeStatusObj((prev) => ({ ...prev, EndDate: value }));\r\n }\r\n else {\r\n setChangeStatusObj((prev) => ({ ...prev, EndDate: value }))\r\n setTimeout(() => {\r\n setChangeStatusObj((prev) => ({ ...prev, EndDate: oldDate }))\r\n }, 20);\r\n alertFunction(\"Recovery Date cannot be lesser than the business date or from date.This action cannot be performed.\");\r\n }\r\n }}\r\n calendarStartDay={1}\r\n label=\"Recovery Date\"\r\n >\r\n
    \r\n
    \r\n \r\n :\r\n null\r\n }\r\n\r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedHKFOStatus(item)\r\n setChangeStatusObj((prev) => ({ ...prev, HKFOStatus: item.key }))\r\n setValidationObj((prev) => ({ ...prev, HKFOStatus: \"\" }))\r\n }}\r\n selectedSerNo={selectedHKFOStatus.key}\r\n label=\"HK-FO Status\"\r\n >\r\n
    \r\n {\r\n selectedHKFOStatus.key == \"Occ\" ?\r\n <>\r\n
    \r\n {\r\n setSelectedHKService(item)\r\n setChangeStatusObj((prev) => ({ ...prev, HKServiceSerNo: item.key }))\r\n setValidationObj((prev) => ({ ...prev, HKServiceSerNo: \"\" }))\r\n }}\r\n selectedSerNo={selectedHKService.key}\r\n label=\"Service Status\"\r\n >\r\n
    \r\n
    \r\n
    \r\n {\r\n if (parseInt(v) > 0) {\r\n setValidationObj((prev) => ({ ...prev, Adult: \"\" }))\r\n setChangeStatusObj((prev) => ({ ...prev, Adult: parseInt(v) }))\r\n }\r\n else if (isNaN(v) == true) {\r\n setChangeStatusObj((prev) => ({ ...prev, Adult: v }))\r\n setValidationObj((prev) => ({ ...prev, Adult: \"Invalid Input\" }));\r\n }\r\n else if (v.trim().length === 0) {\r\n setChangeStatusObj((prev) => ({ ...prev, Adult: 0 }))\r\n }\r\n }}\r\n >\r\n No. of Adult\r\n \r\n
    \r\n
    \r\n {\r\n if (parseInt(v) >= 0) {\r\n setValidationObj((prev) => ({ ...prev, Child: \"\" }))\r\n setChangeStatusObj((prev) => ({ ...prev, Child: parseInt(v) }))\r\n }\r\n else if (isNaN(v) == true) {\r\n setChangeStatusObj((prev) => ({ ...prev, Child: v }))\r\n setValidationObj((prev) => ({ ...prev, Child: \"Invalid Input\" }));\r\n }\r\n else if (v.trim().length === 0) {\r\n setChangeStatusObj((prev) => ({ ...prev, Child: 0 }))\r\n }\r\n }}\r\n >\r\n No. of Child\r\n \r\n
    \r\n
    \r\n \r\n :\r\n null\r\n }\r\n
    \r\n\r\n
    \r\n
    Change - 07 April, 2023, 12:30
    \r\n\r\n
    \r\n User\r\n \r\n Mr. Rohan\r\n {/* {currUser.UserID} */}\r\n \r\n
    \r\n
    \r\n User IP\r\n 192.168.200.22\r\n
    \r\n
    \r\n Dirty\r\n {/* {roomHKDetail.CurrentStatus} */}\r\n \r\n Clean\r\n {/* {selectedHKStatus.value} */}\r\n \r\n
    \r\n
    \r\n
    \r\n {showDueInToolTip ? (\r\n {\r\n setShowDueInToolTip(false);\r\n }}\r\n >\r\n ) :\r\n null\r\n }\r\n
    \r\n \r\n );\r\n}","import React, { useState, useEffect } from \"react\"\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnLoader,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport { GetInvStoreUserMaster, AddInvStoreUserMaster } from \"../../../../services/inventoryMasterService\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nexport function StoreUserModelPopup(props) {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"y\", title: \"Ok\", type: \"\" }],\r\n });\r\n }\r\n //#region state variable\r\n const [storeUserList, setStoreUserList] = useState([]);\r\n const [storeUserFilter, setStoreUserFilter] = useState([]);\r\n const [search, setSearch] = useState(\"\");\r\n const [isActive, setIsActive] = useState(false);\r\n const [finalArr, setFinalArr] = useState([])\r\n //#endregion\r\n //#region fill user list \r\n const fillUserList = () => {\r\n setIsActive(true)\r\n GetInvStoreUserMaster(parseInt(currUser.ClientSerNo)).then((d) => {\r\n setIsActive(false);\r\n let temp = []\r\n if (d.data.length > 0) {\r\n d.data.forEach((x) => {\r\n if (d.IsApply == 1) {\r\n x[\"isChecked\"] = true\r\n }\r\n else {\r\n x[\"isChecked\"] = false\r\n }\r\n temp.push(x)\r\n });\r\n temp.forEach((x) => {\r\n if (x.IsApply == 1) {\r\n x.isChecked = true\r\n }\r\n else {\r\n x.isChecked = false\r\n }\r\n });\r\n if (temp) {\r\n setStoreUserList(temp)\r\n setStoreUserFilter(temp)\r\n }\r\n console.log(\"UserList>>\", temp)\r\n }\r\n })\r\n }\r\n //#endregion\r\n //#region useEffect\r\n useEffect(() => {\r\n fillUserList();\r\n }, [])\r\n //#endregion\r\n //#region event handler\r\n const handleOnClickSeach = (e) => {\r\n setSearch(e);\r\n let temp = [];\r\n storeUserList.forEach((ele) => {\r\n if (ele.UserID.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(ele);\r\n }\r\n });\r\n setStoreUserFilter(temp);\r\n }\r\n const handleOnClickSave = () => {\r\n let apiArr = []\r\n if (finalArr.length > 0) {\r\n let temp = storeUserList.filter((x) => x.isChecked == true && x.IsApply == 0);\r\n temp.forEach((ele) => {\r\n let obj = ele\r\n obj[\"ClientSerNo\"] = parseInt(currUser.ClientSerNo)\r\n obj[\"PropertySerNo\"] = parseInt(currUser.PropertySerNo)\r\n obj[\"StoreSerNo\"] = parseInt(props.para.StoreSerNo)\r\n obj[\"flag\"] = 'Insert'\r\n apiArr.push(obj);\r\n })\r\n let tempData = storeUserList.filter((x) => x.isChecked == false && x.IsApply == 1);\r\n tempData.forEach((ele) => {\r\n let obj = ele\r\n obj[\"ClientSerNo\"] = parseInt(currUser.ClientSerNo)\r\n obj[\"PropertySerNo\"] = parseInt(currUser.PropertySerNo)\r\n obj[\"StoreSerNo\"] = parseInt(props.para.StoreSerNo)\r\n obj[\"flag\"] = 'Delete'\r\n apiArr.push(obj);\r\n })\r\n }\r\n if (apiArr.length > 0) {\r\n AddInvStoreUserMaster(apiArr).then((d) => {\r\n if (d.data) {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message)\r\n fillUserList()\r\n props.OnClose();\r\n }\r\n else{\r\n alertFunction(d.data.Message)\r\n props.OnClose();\r\n }\r\n }\r\n })\r\n }\r\n else {\r\n alertFunction(\"No changes done.\")\r\n }\r\n console.log( \"Obj\",storeUserFilter);\r\n }\r\n //#endregion\r\n return (\r\n props.OnClose()}\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n

    Store User

    \r\n
    \r\n
    \r\n Save\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n {\r\n storeUserFilter.map(d =>\r\n {\r\n let temp = storeUserList\r\n temp.forEach((x) => {\r\n if (x.UserID == d.UserID) {\r\n if (ischecked) {\r\n x.isChecked = true\r\n }\r\n else {\r\n x.isChecked = false\r\n }\r\n }\r\n })\r\n let obj = temp.filter((x) => x.StoreSerNo == d.StoreSerNo)\r\n setFinalArr(obj)\r\n console.log(ischecked);\r\n }}>{d.UserID}\r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTooltip,\r\n InnModalPopup,\r\n InnCheckbox,\r\n InnTextarea,\r\n useConfirm,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport { GetItemDepartmentMaster, AddEditItemDepartmentMaster, GetInvDepartmentMaster } from \"../../../../services/inventoryMasterService\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nexport function ItemDepartmentMaster(props) {\r\n //#region Local Variable\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"Ok\", type: \"\" }],\r\n });\r\n }\r\n //#endregion\r\n //#region Default Object\r\n const defaultObj = {\r\n ClientserNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n RmitSerNo: parseInt(props.para.RmitSerNo),\r\n DepartmentSerNo: 0,\r\n NewDepartmentSerNo: 0,\r\n Name: \"\",\r\n OpeningItemRate: 0.00,\r\n OpeningStockQty: 0.00,\r\n OpeningBaseQty: 0.00,\r\n Mode: \"View\"\r\n }\r\n const validation = {\r\n DepartmentSerNo: 0,\r\n Name: \"\",\r\n OpeningItemRate: 0.00,\r\n OpeningStockQty: 0.00,\r\n }\r\n //#endregion\r\n //#region State Variable\r\n const [departmentObj, setDepartmentObj] = useState(defaultObj);\r\n const [departmentList, setDepartmentList] = useState([]);\r\n const [departmentFilter, setDepartmentFilter] = useState([]);\r\n const [departmentValid, setDepartmentValid] = useState(validation);\r\n const [selectedSerNo, setSelectedSerNo] = useState(0);\r\n const [search, setSearch] = useState(\"\");\r\n const [loadDepartmentCombo, setLoadDepartmentCombo] = useState([]);\r\n const [isActive, setIsActive] = useState(false);\r\n //#endregion\r\n //#region Fill List OF Department\r\n const fillDepartmentList = () => {\r\n setIsActive(true)\r\n GetItemDepartmentMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(props.para.RmitSerNo)).then((d) => {\r\n setIsActive(false);\r\n console.log(d.data);\r\n setDepartmentList(d.data);\r\n setDepartmentFilter(d.data);\r\n if (d.data && d.data.length > 0) {\r\n if (departmentObj.Mode == \"Edit\" || departmentObj.Mode == \"Add\") {\r\n let obj = d.data.find(x => x.DepartmentSerNo == departmentObj.DepartmentSerNo);\r\n if (obj) {\r\n obj.Mode = \"View\";\r\n setDepartmentObj(obj);\r\n setSelectedSerNo(obj.DepartmentSerNo);\r\n console.log(obj);\r\n }\r\n }\r\n else {\r\n d.data[0].Mode = \"View\";\r\n setDepartmentObj(d.data[0]);\r\n setSelectedSerNo(d.data[0].DepartmentSerNo);\r\n console.log(d.data[0]);\r\n }\r\n }\r\n })\r\n }\r\n //#endregion\r\n //#region fill department combo box\r\n const fillDepartmentCombo = () => {\r\n GetInvDepartmentMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n let temp = [{ key: 0, value: \"Select\" }]\r\n d.data.forEach(ele => {\r\n temp = [...temp, { key: ele.DepartmentSerNo, value: ele.Name }]\r\n })\r\n setLoadDepartmentCombo(temp)\r\n console.log(temp);\r\n\r\n })\r\n }\r\n //#endregion\r\n //#region useEffect \r\n useEffect(() => {\r\n fillDepartmentList();\r\n fillDepartmentCombo();\r\n }, [])\r\n //#endregion\r\n //#region Validation\r\n const clearValidation = () => {\r\n setDepartmentValid(validation);\r\n }\r\n const isValidPage = () => {\r\n let valid = true;\r\n if (departmentObj.DepartmentSerNo == 0) {\r\n valid = false\r\n setDepartmentValid((prev) => ({ ...prev, DepartmentSerNo: \"Please select department.\" }));\r\n }\r\n // if (!(/^\\d+$/).test(parseInt(departmentObj.OpeningItemRate))) {\r\n // valid = false;\r\n // setDepartmentValid((prev) => ({ ...prev, OpeningItemRate: \"Invalid Item Rate\" }));\r\n // }\r\n // if (!(/^\\d+$/).test(parseFloat(departmentObj.OpeningStockQty))) {\r\n // valid = false;\r\n // setDepartmentValid((prev) => ({ ...prev, OpeningStockQty: \"Invalid Stock Qty\" }));\r\n // }\r\n return valid;\r\n }\r\n //#endregion\r\n //#region Event Handler\r\n const handleOnSearchChange = (e) => {\r\n clearValidation()\r\n setSearch(e);\r\n setDepartmentObj(defaultObj);\r\n let temp = departmentList.filter(d => d.Name.toLowerCase().includes(e.toLowerCase()));\r\n setDepartmentFilter(temp);\r\n console.log(temp);\r\n }\r\n const handleClickOnName = (e) => {\r\n clearValidation();\r\n let obj = departmentList.find(d => d.DepartmentSerNo == e.target.id);\r\n obj.Mode = \"View\";\r\n setDepartmentObj(obj);\r\n setSelectedSerNo(e.target.id);\r\n console.log(obj);\r\n }\r\n const handleClickOnEdit = () => {\r\n if (departmentObj.DepartmentSerNo == 0) {\r\n alertFunction(\"Please select department list.\")\r\n }\r\n else {\r\n setDepartmentObj((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n }\r\n const handleClickOnAdd = () => {\r\n clearValidation();\r\n let temp = JSON.parse(JSON.stringify(defaultObj));\r\n temp.Mode = \"Add\";\r\n setDepartmentObj(temp);\r\n }\r\n const handleClickOnCancel = () => {\r\n let existingObj = departmentList.find(d => d.DepartmentSerNo == selectedSerNo);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setDepartmentObj(existingObj)\r\n }\r\n else {\r\n setDepartmentObj(defaultObj)\r\n }\r\n }\r\n const searchEdit = () => {\r\n GetItemDepartmentMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(props.para.RmitSerNo)).then(d => {\r\n let temp = d.data.filter((d) => d.Name.toLowerCase().includes(search.toLowerCase()));\r\n setDepartmentFilter(temp);\r\n })\r\n }\r\n const handleClickOnSave = () => {\r\n let isValid = isValidPage();\r\n if (isValid) {\r\n setIsActive(true);\r\n AddEditItemDepartmentMaster(departmentObj).then((d) => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n fillDepartmentList();\r\n if (departmentObj.Mode == \"Add\" || departmentObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit();\r\n return;\r\n }\r\n setSelectedSerNo((prev) => ({ ...prev, NewDepartmentSerNo: d.data.DepartmentSerNo }));\r\n }\r\n }\r\n else {\r\n alertFunction(d.data.Message);\r\n }\r\n });\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n //#endregion\r\n const selectdata = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n const [showItemdepartmentModal, setShowItemdepartmentModal] = useState(false);\r\n return (\r\n
    \r\n props.OnClose()}\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n

    Department

    \r\n
    \r\n
    \r\n {\r\n departmentObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    List of Department
    \r\n
    \r\n
      \r\n {\r\n departmentFilter.map((d) =>\r\n
    • \r\n {d.Name}\r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n if (departmentFilter.find((d) => d.DepartmentSerNo == item.key)) {\r\n alertFunction(\"this department already exists\");\r\n }\r\n else if (departmentObj.Mode == \"Edit\") {\r\n if (departmentFilter.find((d) => d.DepartmentSerNo == item.key)) {\r\n alertFunction(\"this department already exists\");\r\n }\r\n else {\r\n setDepartmentObj((prev) => ({ ...prev, NewDepartmentSerNo: item.key }))\r\n }\r\n }\r\n else {\r\n setDepartmentObj((prev) => ({ ...prev, DepartmentSerNo: item.key }))\r\n }\r\n setDepartmentValid((prev) => ({ ...prev, DepartmentSerNo: \"\" }))\r\n console.log(item, name)\r\n }}\r\n >\r\n
    \r\n {\r\n setDepartmentObj((prev) => ({ ...prev, NewDepartmentSerNo: departmentObj.DepartmentSerNo }))\r\n setDepartmentObj((prev) => ({ ...prev, OpeningItemRate: v }))\r\n setDepartmentValid((prev) => ({ ...prev, OpeningItemRate: \"\" }))\r\n console.log(v)\r\n }}>Opening Item Rate\r\n {\r\n setDepartmentObj((prev) => ({ ...prev, NewDepartmentSerNo: departmentObj.DepartmentSerNo }))\r\n setDepartmentObj((prev) => ({ ...prev, OpeningStockQty: v }))\r\n setDepartmentValid((prev) => ({ ...prev, OpeningStockQty: \"\" }))\r\n console.log(v)\r\n }}>Opening Stock Qty\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton, InnPrimaryButton, InnSearchTextbox, InnSwitch, InnTextbox,\r\n InnSingleSelectDropdown, InnPlainButton, InnTooltip, InnModalPopup, InnCheckbox, InnTextarea, useConfirm\r\n} from \"../../../../component\";\r\nimport { GetRawMaterialChargeMaster, AddEditRawMaterialChargeMaster } from \"../../../../services/inventoryMasterService\";\r\nimport { GetTransactionMaster } from \"../../../../services/reservationService\";\r\nimport { GetHSN_SAC_CodeMaster } from \"../../../../services/posMasterService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport function RawMaterialChargeMaster(props) {\r\n let currUser = useSelector(currentUser);\r\n let { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const selectdata = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n //#region default object and validation\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"RmitSerNo\": parseInt(props.para.RmitSerNo),\r\n \"TransactionSerNo\": 0,\r\n \"IsStockable\": false,\r\n \"HSN_SAC_Code\": \"\",\r\n \"IsExpiry\": false,\r\n \"IsDaily\": false,\r\n \"Remark\": \"\",\r\n \"IsInputGSTEligible\": false,\r\n \"IsTDSapplicable\": false,\r\n \"IsAllowDirectBillingInService\": false,\r\n \"Mode\": \"View\"\r\n }\r\n\r\n const validationObj = {\r\n \"TransactionSerNo\": 0\r\n }\r\n //#endregion\r\n\r\n //#region state variable\r\n const [isActive, setIsActive] = useState(false);\r\n const [transactionType, setTransactionType] = useState([]);\r\n const [hsnCodeType, setHSNCodeType] = useState([]);\r\n const [rawMaterialChargeObj, setRawMaterialChargeObj] = useState(defaultObj);\r\n const [rawMaterialChargeValid, setRawMaterialChargeValid] = useState(validationObj);\r\n //#endregion\r\n\r\n //#region Use effect\r\n useEffect(() => {\r\n fillTransactionMaster();\r\n fillHSNCode();\r\n }, [])\r\n useEffect(() => {\r\n fillRawMaterialChargeData();\r\n }, [])\r\n //#endregion\r\n\r\n const clearValidation = () => {\r\n setRawMaterialChargeValid(validationObj);\r\n }\r\n\r\n //#region functions\r\n const fillTransactionMaster = () => {\r\n GetTransactionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), 'C', 'I').then(d => {\r\n let tempTransaction = [];\r\n if (d.data && d.data.length > 0) {\r\n d.data.forEach(ele => {\r\n tempTransaction.push({ key: ele.TransactionSerNo, value: ele.Name });\r\n })\r\n setTransactionType(tempTransaction);\r\n }\r\n })\r\n }\r\n const fillHSNCode = () => {\r\n GetHSN_SAC_CodeMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n let tempHSNCode = [];\r\n if (d.data && d.data.length > 0) {\r\n d.data.forEach(ele => {\r\n tempHSNCode.push({ key: ele.HSN_SAC_Code, value: ele.Description });\r\n })\r\n }\r\n setHSNCodeType(tempHSNCode);\r\n })\r\n }\r\n\r\n const fillRawMaterialChargeData = () => {\r\n setIsActive(true);\r\n if (parseInt(props.para.RmitSerNo) > 0) {\r\n GetRawMaterialChargeMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(props.para.RmitSerNo)).then(d => {\r\n setIsActive(false);\r\n if (d.data && d.data.length > 0) {\r\n let temp = d.data[0];\r\n temp.Mode = \"Edit\";\r\n setRawMaterialChargeObj(temp);\r\n } else {\r\n clearValidation();\r\n let tempObj = JSON.parse(JSON.stringify(defaultObj));\r\n tempObj.Mode = \"Add\";\r\n setRawMaterialChargeObj(tempObj);\r\n }\r\n });\r\n }\r\n }\r\n\r\n const validData = () => {\r\n let isValid = true;\r\n if (rawMaterialChargeObj.TransactionSerNo == 0) {\r\n setRawMaterialChargeValid(prev => ({ ...prev, TransactionSerNo: \"Select Transaction Type\" }));\r\n isValid = false;\r\n }\r\n return isValid;\r\n }\r\n\r\n const handleOnSaveClick = () => {\r\n let IsValidData = validData();\r\n if (IsValidData) {\r\n setIsActive(true);\r\n AddEditRawMaterialChargeMaster(rawMaterialChargeObj).then(d => {\r\n if (d.data.Code == \"200\") {\r\n setIsActive(false);\r\n alertFunction(d.data.Message);\r\n fillRawMaterialChargeData();\r\n props.OnClose();\r\n } else {\r\n alertFunction(\"Something went wrong\");\r\n }\r\n })\r\n setRawMaterialChargeObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n //#endregion\r\n return (\r\n
    \r\n props.OnClose()}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Charge

    \r\n
    \r\n
    \r\n {\r\n rawMaterialChargeObj.Mode == \"Edit\" ?\r\n <>\r\n Save\r\n \r\n :\r\n <>\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setRawMaterialChargeObj(prev => ({ ...prev, TransactionSerNo: item.key }));\r\n setRawMaterialChargeValid(prev => ({ ...prev, TransactionSerNo: \"\" }));\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n Is Stockable ?\r\n {\r\n setRawMaterialChargeObj(prev => ({ ...prev, IsStockable: v }));\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n {\r\n setRawMaterialChargeObj(prev => ({ ...prev, HSN_SAC_Code: item.key }));\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n Is Expiry ?\r\n {\r\n setRawMaterialChargeObj(prev => ({ ...prev, IsExpiry: v }));\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n Is Daily ?\r\n {\r\n setRawMaterialChargeObj(prev => ({ ...prev, IsDaily: v }));\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n setRawMaterialChargeObj(prev => ({ ...prev, Remark: v }))\r\n }}>\r\n Remark\r\n \r\n
    \r\n
    \r\n Is Input GST Eligible ?\r\n {\r\n setRawMaterialChargeObj(prev => ({ ...prev, IsInputGSTEligible: v }));\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n Is TDS applicable ?\r\n {\r\n setRawMaterialChargeObj(prev => ({ ...prev, IsTDSapplicable: v }));\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n Is Allow Direct Billing In Service ?\r\n {\r\n setRawMaterialChargeObj(prev => ({ ...prev, IsAllowDirectBillingInService: v }));\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTooltip,\r\n InnModalPopup,\r\n InnCheckbox,\r\n InnTextarea,\r\n useConfirm,\r\n InnLoader,\r\n} from \"../../../../component\";\r\nimport { GetItemVenderMaster, AddEditItemVenderMaster, GetInvVenderMaster } from \"../../../../services/inventoryMasterService\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nexport function ItemVenderMaster(props) {\r\n //#region local variable \r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"Ok\", type: \"\" }],\r\n });\r\n }\r\n //#endregion\r\n //#region default Object\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n RmitSerNo: parseInt(props.para.RmitSerNo),\r\n VenderSerNo: 0,\r\n NewVenderSerNo: 0,\r\n ItemRate: 0,\r\n Name: \"\",\r\n IsFixedRate: false,\r\n Mode: \"View\"\r\n }\r\n const Validation = {\r\n VenderSerNo: 0,\r\n ItemRate: 0.00,\r\n Name: \"\"\r\n }\r\n //#endregion\r\n //#region State Variable\r\n const [itemVenderObj, setItemVenderObj] = useState(defaultObj);\r\n const [itemVenderList, setItemVenderList] = useState([]);\r\n const [itemVenderFilter, setItemVenderFilter] = useState([]);\r\n const [itemVenderValid, setItemVenderValid] = useState(Validation);\r\n const [selectedSerNo, setSelectedSerNo] = useState(0);\r\n const [search, setSearch] = useState(\"\");\r\n const [loadVenderCombo, setLoadVenderCombo] = useState([]);\r\n const [isActive, setIsActive] = useState(false);\r\n //#endregion\r\n //region useEffect\r\n useEffect(() => {\r\n fillItemVenderList();\r\n fillVenderCombo();\r\n }, [])\r\n //#endregion\r\n\r\n //#region fill item vender list\r\n const fillItemVenderList = () => {\r\n\r\n setIsActive(true);\r\n GetItemVenderMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(props.para.RmitSerNo)).then((d) => {\r\n setIsActive(false);\r\n console.log(\"hii\", d.data);\r\n setItemVenderList(d.data);\r\n setItemVenderFilter(d.data);\r\n if (d.data && d.data.length > 0) {\r\n if (itemVenderObj.Mode == \"Add\" || itemVenderObj.Mode == \"Edit\") {\r\n let obj = d.data.find((x) => x.VenderSerNo == itemVenderObj.VenderSerNo);\r\n if (obj) {\r\n obj.Mode = \"View\";\r\n setItemVenderObj(obj);\r\n setSelectedSerNo(obj.VenderSerNo)\r\n console.log(obj);\r\n\r\n }\r\n }\r\n else {\r\n d.data[0].Mode = \"View\";\r\n setItemVenderObj(d.data[0]);\r\n setSelectedSerNo(d.data[0].VenderSerNo)\r\n console.log(\"defaultData\", d.data[0]);\r\n }\r\n }\r\n });\r\n }\r\n //#endregion\r\n //#region fill vender dropdown list\r\n const fillVenderCombo = () => {\r\n GetInvVenderMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n let temp = [{ key: 0, value: \"Select\" }]\r\n d.data.forEach((ele) => {\r\n temp = [...temp, { key: ele.VenderSerNo, value: ele.Name }];\r\n })\r\n setLoadVenderCombo(temp);\r\n console.log(temp);\r\n })\r\n }\r\n //#endregion\r\n //#region validation\r\n const clearValidation = () => {\r\n setItemVenderValid(Validation);\r\n }\r\n const validPage = () => {\r\n let valid = true;\r\n if (itemVenderObj.VenderSerNo == 0) {\r\n valid = false;\r\n setItemVenderValid((prev) => ({ ...prev, Name: \"Please select Vender\" }))\r\n }\r\n if (itemVenderObj.Mode == \"Add\") {\r\n if (itemVenderList.filter(x => x.VenderSerNo == itemVenderObj.VenderSerNo).length > 0) {\r\n valid = false;\r\n setItemVenderValid((prev) => ({ ...prev, VenderSerNo: \"vender already existes.\" }))\r\n }\r\n }\r\n return valid;\r\n }\r\n //#endregion\r\n //#region event handler \r\n const handleOnSearchChange = (e) => {\r\n clearValidation();\r\n setSearch(e);\r\n setItemVenderObj(defaultObj);\r\n let obj = itemVenderList.filter(d => d.Name.toLowerCase().includes(e.toLowerCase()));\r\n setItemVenderFilter(obj);\r\n }\r\n\r\n const handleOnNameClickChange = (e) => {\r\n clearValidation();\r\n let temp = itemVenderList.find(d => d.VenderSerNo == e.target.id);\r\n temp.Mode = \"View\";\r\n setItemVenderObj(temp);\r\n setSelectedSerNo(e.target.id);\r\n }\r\n\r\n const handleOnClickEdit = () => {\r\n if (itemVenderObj.VenderSerNo == 0) {\r\n alertFunction(\"Please select vender from the list.\");\r\n }\r\n else {\r\n setItemVenderObj((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n\r\n }\r\n\r\n const handleOnClickAdd = () => {\r\n clearValidation();\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setItemVenderObj(obj);\r\n console.log(obj);\r\n }\r\n\r\n const handleOnCancelClick = () => {\r\n const existingObj = itemVenderList.find((d) => d.VenderSerNo == selectedSerNo);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\"\r\n setItemVenderObj(existingObj);\r\n }\r\n else {\r\n setItemVenderObj(defaultObj);\r\n }\r\n }\r\n\r\n const searchEdit = () => {\r\n GetItemVenderMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(props.para.RmitSerNo)).then(d => {\r\n let temp = d.data.filter(x => x.Name.toLowerCase().includes(search.toLowerCase()));\r\n setItemVenderFilter(temp);\r\n });\r\n }\r\n\r\n const handleOnSaveClick = () => {\r\n let isValid = validPage();\r\n if (isValid) {\r\n setIsActive(true);\r\n if(itemVenderObj.IsFixedRate == null){\r\n itemVenderObj.IsFixedRate = false;\r\n }\r\n AddEditItemVenderMaster(itemVenderObj).then((d) => {\r\n setIsActive(false)\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n fillItemVenderList();\r\n if (itemVenderObj.Mode == \"Add\" || itemVenderObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit();\r\n return\r\n }\r\n setSelectedSerNo((prev) => ({ ...prev, NewVenderSerNo: d.data.VenderSerNo }));\r\n setItemVenderObj((prev) => ({ ...prev, VenderSerNo: d.data.ReturnValue }));\r\n }\r\n setSelectedSerNo(parseInt(d.data.ReturnValue));\r\n }\r\n else {\r\n alertFunction(d.data.Message);\r\n }\r\n });\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n //#endregion\r\n const selectdata = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n return (\r\n
    \r\n props.OnClose()}\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n

    Vender

    \r\n
    \r\n
    \r\n {\r\n itemVenderObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    List of Vender
    \r\n
    \r\n
      \r\n {\r\n itemVenderFilter.map((d) =>\r\n
    • \r\n {d.Name}\r\n
    • \r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n if (itemVenderFilter.find((x) => x.VenderSerNo == item.key)) {\r\n alertFunction(\"this vender already exists\")\r\n }\r\n else if (itemVenderObj.Mode == \"Edit\") {\r\n if (itemVenderFilter.find((x) => x.VenderSerNo == item.key)) {\r\n alertFunction(\"this vender already exists\")\r\n }\r\n else {\r\n setItemVenderObj((prev) => ({ ...prev, NewVenderSerNo: item.key }));\r\n }\r\n }\r\n else {\r\n setItemVenderObj((prev) => ({ ...prev, VenderSerNo: item.key }))\r\n }\r\n setItemVenderValid((prev) => ({ ...prev, VenderSerNo: \"\" }));\r\n console.log(\"VenderCombo>>>\", item)\r\n }}\r\n >\r\n
    \r\n {\r\n setItemVenderObj((prev) => ({ ...prev, NewVenderSerNo: itemVenderObj.VenderSerNo }));\r\n setItemVenderObj((prev) => ({ ...prev, ItemRate: v }));\r\n console.log(v)\r\n }}>Item Rate\r\n
    \r\n
    \r\n Is Fixed Rate ?\r\n {\r\n console.log(v);\r\n setItemVenderObj((prev) => ({ ...prev, NewVenderSerNo: itemVenderObj.VenderSerNo }));\r\n setItemVenderObj((prev) => ({ ...prev, IsFixedRate: v }));\r\n }}\r\n >\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton, InnPrimaryButton, InnSearchTextbox, InnSwitch, InnTextbox,\r\n InnSingleSelectDropdown, InnPlainButton, InnTooltip, InnModalPopup, InnCheckbox, InnTextarea, useConfirm, InnLoader\r\n} from \"../../../../component\";\r\nimport { GetItemStoreMaster, AddEditItemStoreMaster } from \"../../../../services/inventoryMasterService\";\r\nimport { GetInvStoreMaster } from \"../../../../services/inventoryMasterService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport function ItemStoreMaster(props) {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const selectdata = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n //#region default/valid object \r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"StoreSerNo\": 0,\r\n \"RmitSerNo\": parseInt(props.para.RmitSerNo),\r\n \"OpeningItemRate\": 0.00,\r\n \"OpeningStockQty\": 0.00,\r\n \"OpeningBaseQty\": 0,\r\n \"Mode\": \"View\"\r\n }\r\n\r\n const validationObj = {\r\n \"StoreSerNo\": \"\",\r\n // \"OpeningItemRate\": \"\",\r\n // \"OpeningStockQty\": \"\",\r\n }\r\n //#endregion\r\n\r\n //#region state variable\r\n const [isActive, setIsActive] = useState(false);\r\n const [loadStore, setLoadStore] = useState([]);\r\n const [storeData, setStoreData] = useState([]);\r\n const [storeFilter, setStoreFilter] = useState([]);\r\n const [storeObj, setStoreObj] = useState(defaultObj);\r\n const [storeValidation, setStoreValidation] = useState(validationObj);\r\n const [search, setSearch] = useState(\"\");\r\n const [storeNo, setStoreNo] = useState(\"\");\r\n //#endregion\r\n\r\n //#region use effect\r\n useEffect(() => {\r\n loadStoreData();\r\n }, [])\r\n\r\n useEffect(() => {\r\n fillStoreMaster();\r\n }, [])\r\n //#endregion\r\n\r\n const clearValidation = () => {\r\n setStoreValidation(validationObj);\r\n }\r\n\r\n const validStore = () => {\r\n let valid = true;\r\n if (storeObj.StoreSerNo == 0 || storeObj.StoreSerNo == \"\") {\r\n setStoreValidation(prev => ({ ...prev, StoreSerNo: \"Select the store\" }));\r\n valid = false;\r\n }\r\n // if (!(/^\\d+$/).test(parseFloat(storeObj.OpeningItemRate))) {\r\n // valid = false;\r\n // setStoreValidation((prev) => ({ ...prev, OpeningItemRate: \"Invalid Item Rate\" }));\r\n // }\r\n // if (!(/^\\d+$/).test(parseFloat(storeObj.OpeningStockQty))) {\r\n // valid = false;\r\n // setStoreValidation((prev) => ({ ...prev, OpeningStockQty: \"Invalid Stock Qty\" }));\r\n // }\r\n return valid;\r\n }\r\n\r\n //#region functions\r\n const loadStoreData = () => {\r\n GetInvStoreMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n let temp = [{ key: 0, value: \"\" }];\r\n d.data.forEach(ele => {\r\n temp.push({ key: ele.StoreSerNo, value: ele.Name });\r\n })\r\n setLoadStore(temp);\r\n })\r\n }\r\n\r\n const fillStoreMaster = () => {\r\n setIsActive(true);\r\n GetItemStoreMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(props.para.RmitSerNo)).then(d => {\r\n setIsActive(false);\r\n setStoreData(d.data);\r\n setStoreFilter(d.data);\r\n if (d.data && d.data.length > 0) {\r\n if (storeObj.Mode == \"Add\" || storeObj.Mode == \"Edit\") {\r\n let tempObj = d.data.find(x => x.StoreSerNo == storeObj.StoreSerNo);\r\n if (tempObj) {\r\n tempObj.Mode = \"View\";\r\n setStoreObj(tempObj);\r\n setStoreNo(tempObj.StoreSerNo);\r\n }\r\n } else {\r\n let temp = d.data[0];\r\n temp.Mode = \"View\";\r\n setStoreObj(temp);\r\n setStoreNo(temp.StoreSerNo);\r\n }\r\n }\r\n })\r\n }\r\n\r\n const handleOnStoreList = (e) => {\r\n clearValidation();\r\n let temp = storeData.find(x => x.StoreSerNo == e.target.id);\r\n temp.Mode = \"View\";\r\n setStoreObj(temp);\r\n setStoreNo(e.target.id);\r\n }\r\n\r\n const handleOnSearch = (e) => {\r\n clearValidation();\r\n console.log(e)\r\n setStoreObj(defaultObj);\r\n let filter = storeData.filter(x => x.Name.toLowerCase().includes(e.toLowerCase()));\r\n console.log(\"filter >>\", filter)\r\n setStoreFilter(filter);\r\n setSearch(e);\r\n }\r\n\r\n const handleOnAdd = () => {\r\n clearValidation();\r\n let tempObj = JSON.parse(JSON.stringify(defaultObj));\r\n tempObj.Mode = \"Add\";\r\n setStoreObj(tempObj);\r\n }\r\n\r\n const handleOnEdit = () => {\r\n if (storeObj.StoreSerNo == 0) {\r\n alertFunction(\"Select the store\");\r\n } else {\r\n setStoreObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n //setStoreNo(storeObj.StoreSerNo);\r\n }\r\n }\r\n\r\n const handleOnCancel = () => {\r\n clearValidation();\r\n let existingObj = storeData.find(x => x.StoreSerNo == storeNo);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setStoreObj(existingObj);\r\n } else {\r\n setStoreObj(defaultObj);\r\n }\r\n }\r\n\r\n const EditSearch = () => {\r\n GetItemStoreMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(props.para.RmitSerNo)).then(d => {\r\n let filter = d.data.filter(x => x.Name.toLowerCase().includes(search.toLowerCase()));\r\n setStoreFilter(filter);\r\n })\r\n }\r\n\r\n const handleOnSave = () => {\r\n let isValid = validStore();\r\n if (isValid) {\r\n let temp = undefined;\r\n let flag = false;\r\n if (storeObj.Mode == \"Edit\") {\r\n temp = storeData.find(x => x.StoreSerNo == storeObj.StoreSerNo);\r\n if (temp !== undefined) {\r\n if (storeObj.OpeningItemRate == temp.OpeningItemRate && storeObj.OpeningStockQty == temp.OpeningStockQty) {\r\n flag = true;\r\n }\r\n }\r\n } else {\r\n temp = storeData.find(x => x.StoreSerNo == storeObj.StoreSerNo);\r\n flag = true;\r\n }\r\n\r\n if (temp && flag == true) {\r\n alertFunction(\"Item already exists in store\");\r\n } else {\r\n setIsActive(true);\r\n AddEditItemStoreMaster(storeObj).then(d => {\r\n if (d.data.Code == \"200\") {\r\n setIsActive(false);\r\n alertFunction(d.data.Message);\r\n fillStoreMaster();\r\n //props.OnClose();\r\n if (storeObj.Mode == \"Add\" || storeObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n EditSearch();\r\n return;\r\n }\r\n }\r\n } else {\r\n alertFunction(\"Something went wrong\");\r\n }\r\n });\r\n setStoreObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n } else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n //#endregion\r\n\r\n const [showItemstoreModal, setShowItemstoreModal] = useState(false);\r\n return (\r\n
    \r\n \r\n props.OnClose()}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    Store

    \r\n
    \r\n
    \r\n {\r\n storeObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    List of Store
    \r\n
    \r\n
      \r\n {\r\n storeFilter.map((d, index) => {\r\n return (\r\n
    • \r\n {d.Name}\r\n
    • \r\n )\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setStoreObj(prev => ({ ...prev, StoreSerNo: item.key }));\r\n setStoreValidation(prev => ({ ...prev, StoreSerNo: \"\" }));\r\n }}\r\n >\r\n
    \r\n {\r\n if (!isNaN(+v) && parseFloat(v) >= 0) {\r\n setStoreObj(prev => ({ ...prev, OpeningItemRate: parseFloat(v) }));\r\n // setStoreValidation(prev => ({ ...prev, OpeningItemRate: \"\" }));\r\n } else {\r\n // setStoreValidation(prev => ({ ...prev, OpeningItemRate: \"Enter the Item Rate\" }));\r\n setStoreObj(prev => ({ ...prev, OpeningItemRate: v }));\r\n }\r\n }}\r\n >Opening Item Rate\r\n \r\n {\r\n if (!isNaN(+v) && parseFloat(v) >= 0) {\r\n setStoreObj(prev => ({ ...prev, OpeningStockQty: parseFloat(v) }));\r\n // setStoreValidation(prev => ({ ...prev, OpeningBaseQty: \"\" }));\r\n } else {\r\n // setStoreValidation(prev => ({ ...prev, OpeningBaseQty: \"Enter the Stock Qty\" }));\r\n setStoreObj(prev => ({ ...prev, OpeningStockQty: v }));\r\n }\r\n }\r\n }\r\n >Opening Stock Qty\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnButtonTypeWithDropdown,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnSingleDateSelection,\r\n InnSwitch,\r\n InnTableGrid, InnModalPopup, InnTextarea, InnTimeSelection, useConfirm, InnLoader, InnDataGrid\r\n} from \"../../../../../component\";\r\nimport { GetCurrentStock, GetInvCategoryMaster, GetInvSubCategoryMaster, GetInventoryItemFromCatgSubCatg, GetItemLastPurchasePrice, GetRequisitionItemList, SaveStoreRequisitionItem } from \"../../../../../services/inventoryMasterService\";\r\nexport function StoreRequestItemModalPopup(props) {\r\n\r\n const optBtnData = [\r\n { key: \"Edit\", value: \"Edit\" },\r\n { key: \"Remove\", value: \"Remove\" },\r\n { key: \"Approve\", value: \"Approve\" },\r\n { key: \"UnApprove\", value: \"Un-Approve\" },\r\n { key: \"PrintRequest\", value: \"Print Request\" },\r\n { key: \"ShowLog\", value: \"Show Log\" },\r\n ];\r\n const selectdata = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n\r\n const PurchaseReqItemHeader = [\r\n { key: \"Item Name\", value: \"ItemName\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Unit of Measure\", value: \"UnitofMeasure\", type: \"txt\", sorting: \"Y\", },\r\n { key: \"Item Category\", value: \"ItemCategory\", type: \"txt\", sorting: \"Y\", },\r\n { key: \"Item Sub Category\", value: \"ItemSubCategory\", type: \"txt\", sorting: \"Y\", },\r\n ];\r\n\r\n\r\n const actionPopup = (item) => {\r\n if (item.key == \"Approve\") {\r\n // setShowMMSPurchApproveItemsModal(true);\r\n }\r\n }\r\n\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n //#region State Variables\r\n const [filterDataPurchaseReqItem, setfilterDataPurchaseReqItem] = useState([]);\r\n const [categoryList, setCategoryList] = useState([]);\r\n const [subCategoryList, setSubCategoryList] = useState([]);\r\n const [selectedCategory, setSelectedCategory] = useState({});\r\n const [previosCategory, setPreviosCategory] = useState(0);\r\n const [selectedSubCategory, setSelectedSubCategory] = useState({});\r\n const [previosSubCategory, setPreviosSubCategory] = useState(0);\r\n const [itemList, setItemList] = useState([]);\r\n const [selectedItemList, setSelectedItemList] = useState([]);\r\n const [finalItemList, setFinalItemList] = useState([]);\r\n const [deletedItemList, setDeletedItemList] = useState([]);\r\n const [searchStr, setSearchStr] = useState(\"\");\r\n const [totalAmount, setTotalAmount] = useState(0);\r\n const [isActive, setIsActive] = useState(false);\r\n //#endregion\r\n\r\n const [topKey, setTopKey] = useState(1);\r\n const [bottomKey, setBottomKey] = useState(1);\r\n\r\n const renderTopGrid = () => {\r\n let newkey = Math.floor(Math.random() * 100);\r\n setTopKey(newkey);\r\n };\r\n const renderBottomGrid = () => {\r\n let newkey = Math.floor(Math.random() * 100);\r\n setBottomKey(newkey);\r\n };\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n console.log(props.para);\r\n fillItemCategory();\r\n fillBottomGrid();\r\n }, [])\r\n //#endregion\r\n\r\n //#region custom functions\r\n const fillLastPurchasePrice = async (ItemSerNo) => {\r\n let lastPurchasePrice = 0\r\n await GetItemLastPurchasePrice(parseInt(props.para.ClientSerNo), parseInt(props.para.PropertySerNo), parseInt(props.para.SerNo), ItemSerNo).then((d) => {\r\n if (d.data != undefined) {\r\n if (d.data.LastPurchasePrice != null || d.data.LastPurchasePrice != undefined) {\r\n lastPurchasePrice = d.data.LastPurchasePrice\r\n }\r\n else {\r\n lastPurchasePrice = 1\r\n }\r\n }\r\n })\r\n return lastPurchasePrice;\r\n }\r\n const fillBottomGrid = () => {\r\n setIsActive(true);\r\n GetRequisitionItemList(parseInt(props.para.ClientSerNo), parseInt(props.para.PropertySerNo), parseInt(props.para.SerNo)).then((d) => {\r\n console.log('Bottom Data', d.data);\r\n setIsActive(false);\r\n if (d.data.length > 0) {\r\n let temp = []\r\n d.data.forEach((x) => {\r\n x[\"LPP\"] = parseFloat(x.ItemRate).toFixed(4);\r\n x.ReqQty = (x.ReqQty).toFixed(3);\r\n delete x[\"Discount\"];\r\n delete x[\"IsDiscountable\"];\r\n delete x[\"IsPercentage\"];\r\n x[\"Mode\"] = \"Edit\";\r\n x[\"Value\"] = parseFloat(parseFloat(x.ItemRate).toFixed(4) * parseFloat(x.ReqQty).toFixed(3)).toFixed(4);\r\n x[\"UnitofMeasure\"] = x.StockUnitID + \".\" + x.BaseUnitID;\r\n\r\n fillCurrentStock(x.RmitSerNo).then((y) => {\r\n x[\"CurrentStock\"] = parseFloat(y).toFixed(3);\r\n renderBottomGrid();\r\n });\r\n temp.push(x);\r\n handleCalculateTotal(temp);\r\n setFinalItemList(temp);\r\n });\r\n }\r\n })\r\n }\r\n const fillItemCategory = () => {\r\n GetInvCategoryMaster(props.para.ClientSerNo).then((d) => {\r\n if (d.data) {\r\n let temp = []\r\n d.data.forEach((x) => {\r\n temp.push({ key: x.CategorySerNo, value: x.Name });\r\n })\r\n setCategoryList(temp);\r\n if (temp.length > 0) {\r\n setSelectedCategory(temp[0])\r\n fillItemSubCategory(temp[0].key)\r\n }\r\n }\r\n })\r\n }\r\n const fillItemSubCategory = (CategorySerNo) => {\r\n GetInvSubCategoryMaster(props.para.ClientSerNo, CategorySerNo).then((d) => {\r\n if (d.data) {\r\n let temp = []\r\n d.data.forEach((x) => {\r\n temp.push({ key: x.SubCategorySerNo, value: x.Name });\r\n })\r\n setSubCategoryList(temp);\r\n\r\n if (temp.length > 0) {\r\n setSelectedSubCategory(temp[0])\r\n }\r\n }\r\n })\r\n }\r\n const fillCurrentStock = async (ItemSerNo) => {\r\n let CurrentStock = 0\r\n await GetCurrentStock(parseInt(props.para.ClientSerNo), parseInt(props.para.PropertySerNo),\r\n parseInt(props.para.StoreSerNo), ItemSerNo).then((d) => {\r\n console.log('StockQty', d.data);\r\n if (d.data != undefined) {\r\n CurrentStock = d.data.StockQty;\r\n }\r\n })\r\n return CurrentStock;\r\n }\r\n //#endregion\r\n\r\n //#region Events\r\n const handleApplyBtnClick = (CatgSerNo, SubCatgSerNo) => {\r\n renderTopGrid();\r\n setIsActive(true);\r\n setPreviosCategory(selectedCategory.key);\r\n setPreviosSubCategory(selectedSubCategory.key);\r\n if (CatgSerNo != undefined && SubCatgSerNo != undefined) {\r\n GetInventoryItemFromCatgSubCatg(parseInt(props.para.ClientSerNo), parseInt(props.para.PropertySerNo),\r\n props.para.SourceSerNo, props.para.DestSerNo, props.para.SourceType, props.para.DestType,\r\n CatgSerNo, SubCatgSerNo).then((d) => {\r\n setIsActive(false);\r\n let temp = []\r\n if (d.data.length > 0) {\r\n d.data.forEach((x) => {\r\n x[\"ItemCategory\"] = x.ItemCatgName;\r\n x[\"ItemSubCategory\"] = x.ItemSubCatgName;\r\n x[\"UnitofMeasure\"] = x.StockUnitID + \".\" + x.BaseUnitID;\r\n x[\"isEnabled\"] = true;\r\n\r\n if (finalItemList.length > 0) {\r\n finalItemList.forEach((y) => {\r\n if (y.RmitSerNo == x.RmitSerNo) {\r\n x.isEnabled = false;\r\n }\r\n })\r\n }\r\n\r\n temp.push({\r\n ClientSerNo: x.ClientSerNo,\r\n ItemCategory: x.ItemCategory,\r\n ItemName: x.ItemName,\r\n ItemSubCategory: x.ItemSubCategory,\r\n PropertySerNo: x.PropertySerNo,\r\n RmitSerNo: x.RmitSerNo,\r\n StockUnitID: x.StockUnitID,\r\n BaseUnitID: x.BaseUnitID,\r\n UnitofMeasure: x.UnitofMeasure,\r\n isEnabled: x.isEnabled\r\n })\r\n })\r\n }\r\n else {\r\n setIsActive(false);\r\n alertFunction(\"No items found\")\r\n }\r\n setfilterDataPurchaseReqItem(temp);\r\n setItemList(temp);\r\n })\r\n }\r\n else {\r\n setIsActive(false);\r\n }\r\n }\r\n const handleAddItems = () => {\r\n let temp = filterDataPurchaseReqItem;\r\n let tempArr = finalItemList;\r\n setIsActive(true);\r\n if (selectedItemList.length > 0) {\r\n selectedItemList.forEach((y) => {\r\n y[\"ReqQty\"] = 0\r\n y[\"Value\"] = 0.0000\r\n y[\"Mode\"] = \"Add\"\r\n\r\n temp.forEach((x) => {\r\n if (x.RmitSerNo == y.RmitSerNo) {\r\n x.isEnabled = false\r\n }\r\n })\r\n renderTopGrid();\r\n temp = temp.filter((value, index, array) => array.indexOf(value) === index)\r\n setfilterDataPurchaseReqItem(temp)\r\n\r\n fillLastPurchasePrice(y.RmitSerNo).then((x) => {\r\n setIsActive(false);\r\n y[\"LPP\"] = parseFloat(x).toFixed(4)\r\n console.log(tempArr);\r\n renderBottomGrid();\r\n });\r\n fillCurrentStock(y.RmitSerNo).then((x) => {\r\n setIsActive(false);\r\n y[\"CurrentStock\"] = parseFloat(x).toFixed(3)\r\n renderBottomGrid();\r\n });\r\n tempArr.push(y)\r\n renderBottomGrid();\r\n setFinalItemList(tempArr)\r\n })\r\n }\r\n else {\r\n setIsActive(false);\r\n alertFunction(\"Please select at least one item to add.\")\r\n }\r\n setSelectedItemList([])\r\n }\r\n const handleReqQtyBlur = (v, CurrRmitSerNo) => {\r\n console.log(v);\r\n renderBottomGrid();\r\n let temp = finalItemList\r\n\r\n temp.forEach((x) => {\r\n if (CurrRmitSerNo == x.RmitSerNo) {\r\n if (v > 0) {\r\n x.ReqQty = parseFloat(v).toFixed(3)\r\n x.Value = parseFloat(parseFloat(v) * parseFloat(x.LPP)).toFixed(4)\r\n }\r\n else {\r\n x.Value = 0.0000\r\n x.ReqQty = 0.000\r\n }\r\n }\r\n })\r\n handleCalculateTotal(temp)\r\n setFinalItemList(temp)\r\n }\r\n const handleRemarksChange = (v, CurrRmitSerNo) => {\r\n let temp = finalItemList\r\n\r\n temp.forEach((x) => {\r\n if (CurrRmitSerNo == x.RmitSerNo) {\r\n x.Remarks = (v)\r\n }\r\n })\r\n setFinalItemList(temp)\r\n }\r\n const handleRemoveItemFromList = (CurrRmitSerNo) => {\r\n let temp = filterDataPurchaseReqItem\r\n let tempArr = []\r\n let tempDelArr = deletedItemList\r\n\r\n finalItemList.forEach((x) => {\r\n if (CurrRmitSerNo == x.RmitSerNo) {\r\n console.log(x);\r\n if (x.Mode == \"Edit\") {\r\n x.Mode = \"Delete\";\r\n }\r\n else if (x.Mode == \"Add\") {\r\n delete x[\"Mode\"];\r\n }\r\n delete x[\"ReqQty\"];\r\n delete x[\"Value\"];\r\n if (temp.length > 0) {\r\n temp.forEach((y) => {\r\n if (y.RmitSerNo == x.RmitSerNo) {\r\n y.isEnabled = true\r\n }\r\n else {\r\n y.isEnabled = false\r\n }\r\n })\r\n // var deleteItem = filterDataPurchaseReqItem.find((y) => y.RmitSerNo == x.RmitSerNo);\r\n // if (deleteItem == undefined) {\r\n // temp.push(x);\r\n // }\r\n }\r\n tempDelArr.push(x)\r\n }\r\n else {\r\n tempArr.push(x)\r\n }\r\n })\r\n console.log(tempDelArr, tempArr, temp);\r\n if (temp.length > 0) {\r\n renderTopGrid();\r\n }\r\n setDeletedItemList(tempDelArr)\r\n setfilterDataPurchaseReqItem(temp);\r\n handleCalculateTotal(tempArr);\r\n setFinalItemList(tempArr);\r\n }\r\n const handleCalculateTotal = (selectedData) => {\r\n let total = 0\r\n\r\n selectedData.map((x) => {\r\n total += parseFloat(x.Value)\r\n })\r\n setTotalAmount(total.toFixed(4))\r\n }\r\n const isValidPage = () => {\r\n let isValid = true\r\n let temp = finalItemList;\r\n temp.forEach((x) => {\r\n if (x.ReqQty == 0) {\r\n isValid = false\r\n }\r\n })\r\n return isValid;\r\n }\r\n const handleSaveClick = () => {\r\n let isValid = isValidPage();\r\n let temp = finalItemList;\r\n let apiArr = [];\r\n temp.forEach((x) => {\r\n if (x.Mode != 'Delete') {\r\n x.ReqQty = parseFloat(x.ReqQty);\r\n }\r\n if (x.Mode == \"Add\") {\r\n x[\"SubSerNo\"] = 0;\r\n }\r\n\r\n x[\"SourceSerNo\"] = props.para.SourceSerNo;\r\n x[\"DestSerNo\"] = props.para.DestSerNo;\r\n x[\"SourceType\"] = props.para.SourceType;\r\n x[\"DestType\"] = props.para.DestType;\r\n x[\"SerNo\"] = props.para.SerNo;\r\n x.LPP = parseFloat(x.LPP);\r\n x.CurrentStock = parseFloat(x.CurrentStock);\r\n apiArr.push(x);\r\n })\r\n if (deletedItemList.length > 0) {\r\n deletedItemList.forEach((x) => {\r\n x[\"LPP\"] = parseFloat(x.LPP);\r\n x.CurrentStock = parseFloat(x.CurrentStock);\r\n apiArr.push(x);\r\n })\r\n }\r\n console.log(apiArr);\r\n if (isValid) {\r\n if (apiArr.length > 0) {\r\n SaveStoreRequisitionItem(apiArr).then((d) => {\r\n if (d.data) {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n handleOnClose();\r\n }\r\n else {\r\n alertFunction(\"Something went wrong.\");\r\n }\r\n }\r\n })\r\n }\r\n else {\r\n alertFunction(\"No item to save\")\r\n }\r\n }\r\n else {\r\n alertFunction(\"One or more field has invalid value, Please verify accordingly.\")\r\n }\r\n }\r\n const handleOnClose = () => {\r\n if (props.onClose != undefined) {\r\n props.onClose();\r\n }\r\n else {\r\n console.log(\"handle onClose is undefined\");\r\n }\r\n }\r\n const handleOnSearchChange = (e) => {\r\n setSearchStr(e)\r\n let filterData = itemList.filter((x) => x.ItemName.toLowerCase().includes(e.toLowerCase()))\r\n setfilterDataPurchaseReqItem(filterData)\r\n }\r\n const handleRefreshCurrentStock = () => {\r\n if (finalItemList.length > 0) {\r\n setIsActive(true);\r\n finalItemList.map((x) => {\r\n fillCurrentStock(x.RmitSerNo).then((y) => {\r\n setIsActive(false);\r\n x.CurrentStock = parseFloat(y).toFixed(3);\r\n renderBottomGrid();\r\n });\r\n })\r\n }\r\n else {\r\n alertFunction(\"Please add items to continue.\")\r\n }\r\n }\r\n //#endregion\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    Store Request Items

    \r\n
    \r\n
    \r\n {\r\n handleSaveClick()\r\n }}\r\n >\r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {\r\n setSelectedCategory(item)\r\n setSelectedSubCategory([])\r\n setSelectedItemList([])\r\n if (item.key != selectedCategory.key) {\r\n fillItemSubCategory(item.key)\r\n }\r\n }}\r\n >\r\n\r\n
    \r\n
    \r\n {\r\n setSelectedSubCategory(item)\r\n setSelectedItemList([])\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n // if (previosCategory != selectedCategory.key || previosSubCategory != selectedSubCategory.key) {\r\n if (selectedCategory.key == undefined || selectedCategory.key == 0\r\n || selectedSubCategory.key == 0 || selectedSubCategory.key == undefined) {\r\n alertFunction(\"Invalid Category or SubCategory.\")\r\n }\r\n else {\r\n handleApplyBtnClick(selectedCategory.key, selectedSubCategory.key)\r\n }\r\n // }\r\n // else {\r\n // }\r\n }}\r\n >\r\n Apply\r\n \r\n \r\n Add Items\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n 0 ?\r\n true\r\n :\r\n false\r\n }\r\n header={PurchaseReqItemHeader}\r\n data={filterDataPurchaseReqItem}\r\n getSelectedItem={(items) => {\r\n setSelectedItemList(items)\r\n //setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n //setReservationStatus(v);\r\n //setShowGuestPopup(true);\r\n }}\r\n uniqueColumn=\"RmitSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n actionPopup(item)\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n //setSelectedReservation(rowdata);\r\n // handleRmAssignmentData([rowdata]);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n key={topKey}\r\n >\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n finalItemList.map((x) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n })\r\n }\r\n \r\n
    Item NameUnit of MeasureCurrent StockReq. QtyLPPValueRemarksAction
    {x.ItemName}{x.UnitofMeasure}{parseFloat(x.CurrentStock).toFixed(3)}\r\n {\r\n // handleReqQtyChange(v, x.RmitSerNo)\r\n }}\r\n onBlur={(v) => {\r\n handleReqQtyBlur(v.target.value, x.RmitSerNo)\r\n }}\r\n >\r\n \r\n {parseFloat(x.LPP).toFixed(4)}\r\n {parseFloat(x.Value).toFixed(4)}\r\n \r\n {\r\n handleRemarksChange(v, x.RmitSerNo)\r\n }}\r\n >\r\n \r\n \r\n {\r\n handleRemoveItemFromList(x.RmitSerNo);\r\n }}\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Refresh Current Stock\r\n \r\n
    \r\n
    Total Amount: {totalAmount}
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n\r\n \r\n )\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTableGrid,\r\n InnModalPopup,\r\n useConfirm,\r\n InnLoader,\r\n InnDataGrid\r\n} from \"../../../../../component\";\r\nimport { GetCurrentStock, GetInvCategoryMaster, GetInvSubCategoryMaster, GetInventoryItemFromCatgSubCatg, GetItemLastPurchasePrice, GetRequisitionItemList, SavePurchaseRequisitionItem, SaveRequisitionItem } from \"../../../../../services/inventoryMasterService\";\r\nimport { GetTransactionMaster } from \"../../../../../services/reservationService\";\r\nexport function PurchaseRequestItemModalPopup(props) {\r\n\r\n const optBtnData = [\r\n { key: \"Edit\", value: \"Edit\" },\r\n { key: \"Remove\", value: \"Remove\" },\r\n { key: \"Approve\", value: \"Approve\" },\r\n { key: \"UnApprove\", value: \"Un-Approve\" },\r\n { key: \"PrintRequest\", value: \"Print Request\" },\r\n { key: \"ShowLog\", value: \"Show Log\" },\r\n ];\r\n const selectdata = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n\r\n const PurchaseReqItemHeader = [\r\n { key: \"Item Name\", value: \"ItemName\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Unit of Measure\", value: \"UnitofMeasure\", type: \"txt\", sorting: \"Y\", },\r\n { key: \"Item Category\", value: \"ItemCategory\", type: \"txt\", sorting: \"Y\", },\r\n { key: \"Item Sub Category\", value: \"ItemSubCategory\", type: \"txt\", sorting: \"Y\", },\r\n ];\r\n\r\n\r\n const actionPopup = (item) => {\r\n if (item.key == \"Approve\") {\r\n // setShowMMSPurchApproveItemsModal(true);\r\n }\r\n }\r\n\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n //#region State Variables\r\n const [filterDataPurchaseReqItem, setfilterDataPurchaseReqItem] = useState([]);\r\n const [categoryList, setCategoryList] = useState([]);\r\n const [subCategoryList, setSubCategoryList] = useState([]);\r\n const [selectedCategory, setSelectedCategory] = useState({});\r\n const [previosCategory, setPreviosCategory] = useState(0);\r\n const [selectedSubCategory, setSelectedSubCategory] = useState({});\r\n const [previosSubCategory, setPreviosSubCategory] = useState(0);\r\n const [itemList, setItemList] = useState([])\r\n const [selectedItemList, setSelectedItemList] = useState([])\r\n const [finalItemList, setFinalItemList] = useState([])\r\n const [deletedItemList, setDeletedItemList] = useState([])\r\n const [con, setCon] = useState(false)\r\n const [searchStr, setSearchStr] = useState(\"\")\r\n const [totalAmount, setTotalAmount] = useState(0)\r\n const [chargeList, setChargeList] = useState([])\r\n const [disAmount, setDisAmount] = useState(0);\r\n const [isActive, setIsActive] = useState(false);\r\n //#endregion\r\n\r\n const [topKey, setTopKey] = useState(1);\r\n const [bottomKey, setBottomKey] = useState(1);\r\n\r\n const renderTopGrid = () => {\r\n let newkey = Math.floor(Math.random() * 100);\r\n setTopKey(newkey);\r\n };\r\n const renderBottomGrid = () => {\r\n let newkey = Math.floor(Math.random() * 100);\r\n setBottomKey(newkey);\r\n };\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n console.log(props.para);\r\n fillItemCategory();\r\n fillBottomGrid();\r\n fillCharge();\r\n }, [])\r\n //#endregion\r\n\r\n //#region custom functions\r\n\r\n const fillBottomGrid = () => {\r\n setIsActive(true);\r\n GetRequisitionItemList(parseInt(props.para.ClientSerNo), parseInt(props.para.PropertySerNo), parseInt(props.para.SerNo)).then((d) => {\r\n console.log('Bottom Data', d.data);\r\n setIsActive(false);\r\n if (d.data.length > 0) {\r\n let temp = []\r\n d.data.forEach((x) => {\r\n delete x[\"IsDiscountable\"];\r\n delete x[\"IsPercentage\"];\r\n x.ReqQty = (x.ReqQty).toFixed(3);\r\n x.Discount = parseInt(x.Discount);\r\n x[\"Mode\"] = \"Edit\";\r\n x[\"Value\"] = parseFloat(parseFloat(x.ItemRate).toFixed(4) * parseFloat(x.ReqQty).toFixed(3)).toFixed(4);\r\n x[\"UnitofMeasure\"] = x.StockUnitID + \".\" + x.BaseUnitID;\r\n\r\n fillCurrentStock(x.RmitSerNo).then((y) => {\r\n x[\"CurrentStock\"] = parseFloat(y).toFixed(3);\r\n renderBottomGrid();\r\n });\r\n temp.push(x);\r\n handleCalculateTotal(temp);\r\n setFinalItemList(temp);\r\n });\r\n }\r\n })\r\n }\r\n const fillItemCategory = () => {\r\n GetInvCategoryMaster(props.para.ClientSerNo).then((d) => {\r\n if (d.data) {\r\n let temp = []\r\n d.data.forEach((x) => {\r\n temp.push({ key: x.CategorySerNo, value: x.Name })\r\n })\r\n setCategoryList(temp)\r\n if (temp.length > 0) {\r\n setSelectedCategory(temp[0])\r\n fillItemSubCategory(temp[0].key)\r\n }\r\n }\r\n })\r\n }\r\n const fillItemSubCategory = (CategorySerNo) => {\r\n GetInvSubCategoryMaster(props.para.ClientSerNo, CategorySerNo).then((d) => {\r\n if (d.data) {\r\n let temp = []\r\n d.data.forEach((x) => {\r\n temp.push({ key: x.SubCategorySerNo, value: x.Name })\r\n })\r\n setSubCategoryList(temp)\r\n\r\n if (temp.length > 0) {\r\n setSelectedSubCategory(temp[0])\r\n }\r\n }\r\n })\r\n }\r\n const fillCharge = () => {\r\n GetTransactionMaster(parseInt(props.para.ClientSerNo), parseInt(props.para.PropertySerNo), \"C\", \"I\").then((d) => {\r\n if (d.data) {\r\n let temp = []\r\n d.data.forEach((x) => {\r\n temp.push({ key: x.TransactionSerNo, value: x.Name })\r\n })\r\n setChargeList(temp)\r\n }\r\n })\r\n }\r\n const fillCurrentStock = async (ItemSerNo) => {\r\n let CurrentStock = 0\r\n if (props.para.SourceType == \"S\" || props.para.DestType == \"S\") {\r\n await GetCurrentStock(parseInt(props.para.ClientSerNo), parseInt(props.para.PropertySerNo),\r\n parseInt(props.para.StoreSerNo), ItemSerNo).then((d) => {\r\n console.log('StockQty', d.data);\r\n if (d.data != undefined) {\r\n CurrentStock = d.data.StockQty;\r\n }\r\n })\r\n }\r\n return CurrentStock;\r\n }\r\n //#endregion\r\n\r\n //#region Events\r\n const handleApplyClick = (CatgSerNo, SubCatgSerNo) => {\r\n renderTopGrid();\r\n setIsActive(true);\r\n setPreviosCategory(selectedCategory.key);\r\n setPreviosSubCategory(selectedSubCategory.key);\r\n if (CatgSerNo != undefined && SubCatgSerNo != undefined) {\r\n setSelectedItemList([]);\r\n GetInventoryItemFromCatgSubCatg(parseInt(props.para.ClientSerNo), parseInt(props.para.PropertySerNo),\r\n props.para.SourceSerNo, props.para.DestSerNo, props.para.SourceType, props.para.DestType,\r\n CatgSerNo, SubCatgSerNo).then((d) => {\r\n console.log(d.data);\r\n setIsActive(false);\r\n let temp = []\r\n if (d.data.length > 0) {\r\n d.data.forEach((x) => {\r\n x[\"ItemCategory\"] = x.ItemCatgName\r\n x[\"ItemSubCategory\"] = x.ItemSubCatgName\r\n x[\"UnitofMeasure\"] = x.StockUnitID + \".\" + x.BaseUnitID\r\n x[\"isEnabled\"] = true\r\n\r\n if (finalItemList.length > 0) {\r\n finalItemList.forEach((y) => {\r\n if (y.RmitSerNo == x.RmitSerNo) {\r\n x.isEnabled = false\r\n }\r\n })\r\n }\r\n\r\n temp.push({\r\n ClientSerNo: x.ClientSerNo,\r\n ItemCategory: x.ItemCategory,\r\n ItemName: x.ItemName,\r\n ItemSubCategory: x.ItemSubCategory,\r\n PropertySerNo: x.PropertySerNo,\r\n RmitSerNo: x.RmitSerNo,\r\n StockUnitID: x.StockUnitID,\r\n BaseUnitID: x.BaseUnitID,\r\n UnitofMeasure: x.UnitofMeasure,\r\n isEnabled: x.isEnabled,\r\n TransactionSerNo: x.TransactionSerNo,\r\n })\r\n })\r\n }\r\n else {\r\n setIsActive(false);\r\n alertFunction(\"No items found\")\r\n }\r\n setfilterDataPurchaseReqItem(temp)\r\n setItemList(temp)\r\n })\r\n }\r\n else {\r\n setIsActive(false);\r\n }\r\n }\r\n const handleAddItems = () => {\r\n // setIsActive(true);\r\n let temp = filterDataPurchaseReqItem\r\n let tempArr = finalItemList\r\n if (selectedItemList.length > 0) {\r\n selectedItemList.forEach((y) => {\r\n y[\"ReqQty\"] = 0\r\n y[\"TransactionSerNo\"] = y.TransactionSerNo\r\n y[\"Value\"] = 0.0000\r\n y[\"ItemRate\"] = 0\r\n y[\"Discount\"] = 0\r\n y[\"Mode\"] = \"Add\"\r\n\r\n temp.forEach((x) => {\r\n if (x.RmitSerNo == y.RmitSerNo) {\r\n x.isEnabled = false\r\n }\r\n })\r\n renderTopGrid();\r\n temp = temp.filter((value, index, array) => array.indexOf(value) === index)\r\n setfilterDataPurchaseReqItem(temp)\r\n\r\n fillCurrentStock(y.RmitSerNo).then((x) => {\r\n setIsActive(false);\r\n y[\"CurrentStock\"] = parseFloat(x).toFixed(3)\r\n renderBottomGrid();\r\n });\r\n tempArr.push(y)\r\n renderBottomGrid();\r\n setFinalItemList(tempArr)\r\n })\r\n }\r\n else {\r\n setIsActive(false);\r\n alertFunction(\"Please select at least one item to add.\")\r\n }\r\n setSelectedItemList([])\r\n }\r\n const handleTransactionChange = (item, CurrRmitSerNo) => {\r\n let temp = finalItemList\r\n\r\n temp.forEach((x) => {\r\n if (CurrRmitSerNo == x.RmitSerNo) {\r\n x.TransactionSerNo = parseInt(item.key)\r\n }\r\n })\r\n setFinalItemList(temp)\r\n }\r\n const handleRateBlur = (v, CurrRmitSerNo) => {\r\n let temp = finalItemList\r\n renderBottomGrid();\r\n temp.forEach((x) => {\r\n if (CurrRmitSerNo == x.RmitSerNo) {\r\n if (v > 0) {\r\n x.ItemRate = parseFloat(v).toFixed(4)\r\n x.Value = parseFloat(parseFloat(v) * parseFloat(x.ReqQty)).toFixed(4)\r\n }\r\n else {\r\n x.Value = 0.0000\r\n x.ItemRate = 0.0000\r\n }\r\n }\r\n })\r\n handleCalculateTotal(temp)\r\n setFinalItemList(temp)\r\n }\r\n const handleDiscountChange = (v, CurrRmitSerNo) => {\r\n let temp = finalItemList\r\n\r\n temp.forEach((x) => {\r\n if (CurrRmitSerNo == x.RmitSerNo) {\r\n if (v.length > 0) {\r\n x.Discount = parseFloat(v).toFixed(2)\r\n }\r\n else {\r\n x.Discount = 0\r\n }\r\n }\r\n })\r\n setFinalItemList(temp)\r\n }\r\n const handleReqQtyBlur = (v, CurrRmitSerNo) => {\r\n renderBottomGrid();\r\n let temp = finalItemList\r\n\r\n temp.forEach((x) => {\r\n if (CurrRmitSerNo == x.RmitSerNo) {\r\n if (v > 0) {\r\n x.ReqQty = parseFloat(v).toFixed(3)\r\n x.Value = parseFloat(parseFloat(v) * parseFloat(x.ItemRate)).toFixed(4)\r\n }\r\n else {\r\n x.Value = 0.0000\r\n x.ReqQty = 0.000\r\n }\r\n }\r\n })\r\n handleCalculateTotal(temp)\r\n setFinalItemList(temp)\r\n }\r\n const handleRemarksChange = (v, CurrRmitSerNo) => {\r\n let temp = finalItemList\r\n\r\n temp.forEach((x) => {\r\n if (CurrRmitSerNo == x.RmitSerNo) {\r\n x.Remarks = (v)\r\n }\r\n })\r\n setFinalItemList(temp)\r\n }\r\n const handleRemoveItemFromList = (CurrRmitSerNo) => {\r\n let temp = filterDataPurchaseReqItem\r\n let tempArr = []\r\n let tempDelArr = deletedItemList\r\n\r\n finalItemList.forEach((x) => {\r\n if (CurrRmitSerNo == x.RmitSerNo) {\r\n if (x.Mode == \"Edit\") {\r\n x.Mode = \"Delete\";\r\n }\r\n else if (x.Mode == \"Add\") {\r\n delete x[\"Mode\"];\r\n }\r\n delete x[\"ReqQty\"];\r\n delete x[\"Value\"];\r\n if (temp.length > 0) {\r\n temp.forEach((y) => {\r\n if (y.RmitSerNo == x.RmitSerNo) {\r\n y.isEnabled = true\r\n }\r\n })\r\n }\r\n tempDelArr.push(x)\r\n }\r\n else {\r\n tempArr.push(x)\r\n }\r\n })\r\n console.log(tempDelArr, tempArr, temp);\r\n if (temp.length > 0) {\r\n renderTopGrid();\r\n }\r\n setDeletedItemList(tempDelArr)\r\n setfilterDataPurchaseReqItem(temp);\r\n handleCalculateTotal(tempArr);\r\n setFinalItemList(tempArr);\r\n }\r\n const handleCalculateTotal = (selectedData) => {\r\n let total = 0\r\n\r\n selectedData.map((x) => {\r\n total += parseFloat(x.Value)\r\n })\r\n setTotalAmount(total.toFixed(4))\r\n }\r\n\r\n const isValidPage = () => {\r\n let isValid = true\r\n let temp = finalItemList;\r\n temp.forEach((x) => {\r\n if (x.ReqQty == 0) {\r\n isValid = false\r\n }\r\n if (x.TransactionSerNo == 0) {\r\n isValid = false\r\n }\r\n if (x.Discount > 100 || x.Discount < 0) {\r\n isValid = false\r\n }\r\n })\r\n return isValid;\r\n }\r\n\r\n const handleSaveClick = () => {\r\n let isValid = isValidPage();\r\n let temp = finalItemList;\r\n let apiArr = [];\r\n temp.forEach((x) => {\r\n if (x.Mode != 'Delete') {\r\n x.ReqQty = parseFloat(x.ReqQty);\r\n }\r\n if (x.Mode == \"Add\") {\r\n x[\"SubSerNo\"] = 0;\r\n }\r\n\r\n x[\"SourceSerNo\"] = props.para.SourceSerNo;\r\n x[\"DestSerNo\"] = props.para.DestSerNo;\r\n x[\"SourceType\"] = props.para.SourceType;\r\n x[\"DestType\"] = props.para.DestType;\r\n x[\"SerNo\"] = props.para.SerNo;\r\n x.CurrentStock = parseFloat(x.CurrentStock);\r\n x.Discount = parseFloat(x.Discount);\r\n x.ItemRate = parseFloat(x.ItemRate);\r\n apiArr.push(x);\r\n })\r\n if (deletedItemList.length > 0) {\r\n deletedItemList.forEach((x) => {\r\n x.Discount = parseFloat(x.Discount);\r\n x.ItemRate = parseFloat(x.ItemRate);\r\n x.CurrentStock = parseFloat(x.CurrentStock);\r\n apiArr.push(x);\r\n })\r\n }\r\n console.log(apiArr);\r\n if (isValid) {\r\n if (apiArr.length > 0) {\r\n SavePurchaseRequisitionItem(apiArr).then((d) => {\r\n if (d.data) {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n handleOnClose();\r\n }\r\n else {\r\n alertFunction(\"Something went wrong.\");\r\n }\r\n }\r\n })\r\n }\r\n else {\r\n alertFunction(\"No item to save\")\r\n }\r\n }\r\n else {\r\n alertFunction(\"One or more field has invalid value, Please verify accordingly.\")\r\n }\r\n }\r\n const handleOnClose = () => {\r\n if (props.onClose != undefined) {\r\n props.onClose();\r\n }\r\n else {\r\n console.log(\"handle onClose is undefined\");\r\n }\r\n }\r\n const handleOnSearchChange = (e) => {\r\n setSearchStr(e);\r\n let filterData = itemList.filter((x) => x.ItemName.toLowerCase().includes(e.toLowerCase()));\r\n setfilterDataPurchaseReqItem(filterData);\r\n }\r\n const handleRefreshCurrentStock = () => {\r\n if (finalItemList.length > 0) {\r\n setIsActive(true);\r\n finalItemList.map((x) => {\r\n fillCurrentStock(x.RmitSerNo).then((y) => {\r\n setIsActive(false);\r\n x.CurrentStock = parseFloat(y).toFixed(3);\r\n renderBottomGrid();\r\n });\r\n })\r\n }\r\n else {\r\n alertFunction(\"Please add items to continue.\")\r\n }\r\n }\r\n //#endregion\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    \r\n {\r\n props.para.MovementID == \"PURCREQ\" ?\r\n \"Purchase Request Items\"\r\n :\r\n \"Department Purchase Request Items\"\r\n }\r\n

    \r\n
    \r\n
    \r\n {\r\n handleSaveClick()\r\n }}\r\n >\r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {\r\n setSelectedCategory(item)\r\n setSelectedSubCategory([])\r\n setSelectedItemList([])\r\n if (item.key != selectedCategory.key) {\r\n fillItemSubCategory(item.key)\r\n }\r\n }}\r\n >\r\n\r\n
    \r\n
    \r\n {\r\n setSelectedSubCategory(item)\r\n setSelectedItemList([])\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n // if (previosCategory != selectedCategory.key || previosSubCategory != selectedSubCategory.key) {\r\n if (selectedCategory.key == undefined || selectedCategory.key == 0\r\n || selectedSubCategory.key == 0 || selectedSubCategory.key == undefined) {\r\n alertFunction(\"Invalid Category or SubCategory.\")\r\n }\r\n else {\r\n handleApplyClick(selectedCategory.key, selectedSubCategory.key)\r\n }\r\n // }\r\n // else {\r\n // }\r\n }}\r\n >\r\n Apply\r\n \r\n \r\n Add Items\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n 0 ?\r\n true\r\n :\r\n false\r\n }\r\n header={PurchaseReqItemHeader}\r\n data={filterDataPurchaseReqItem}\r\n getSelectedItem={(items) => {\r\n setSelectedItemList(items)\r\n //setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n //setReservationStatus(v);\r\n //setShowGuestPopup(true);\r\n }}\r\n uniqueColumn=\"RmitSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n actionPopup(item)\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n //setSelectedReservation(rowdata);\r\n // handleRmAssignmentData([rowdata]);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n key={topKey}\r\n >\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {\r\n props.para.SourceType == \"S\" || props.para.DestType == \"S\" ?\r\n \r\n :\r\n null\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n finalItemList.map((x) => {\r\n return (\r\n \r\n \r\n \r\n {\r\n props.para.SourceType == \"S\" || props.para.DestType == \"S\" ?\r\n \r\n :\r\n null\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n })\r\n }\r\n \r\n
    Item NameUnit of Measure Current StockChargeReq. QtyRateDiscountValueRemarksAction
    {x.ItemName}{x.UnitofMeasure}{parseFloat(x.CurrentStock).toFixed(3)}\r\n
    \r\n {\r\n handleTransactionChange(item, x.RmitSerNo)\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n // handleReqQtyChange(v, x.RmitSerNo)\r\n }}\r\n onBlur={(v) => {\r\n handleReqQtyBlur(v.target.value, x.RmitSerNo)\r\n }}\r\n >\r\n \r\n \r\n {\r\n // handleRateChange(v, x.RmitSerNo)\r\n }}\r\n onBlur={(v) => {\r\n handleRateBlur(v.target.value, x.RmitSerNo)\r\n }}\r\n >\r\n \r\n \r\n {\r\n setDisAmount(v)\r\n }}\r\n onBlur={(v) => {\r\n handleDiscountChange(v.target.value, x.RmitSerNo)\r\n // let oldValue = disAmount\r\n // let data = finalItemList\r\n // if (v.target.value > 100) {\r\n // data.forEach((y) => {\r\n // if (x.RmitSerNo == y.RmitSerNo) {\r\n // y.Discount = oldValue\r\n // }\r\n // })\r\n // alertFunction(\"Discount amount can not be more than 100\")\r\n // }\r\n // if (v.target.value < 0) {\r\n // data.forEach((y) => {\r\n // if (x.RmitSerNo == y.RmitSerNo) {\r\n // y.Discount = oldValue\r\n // }\r\n // })\r\n // alertFunction(\"Discount amount can not be less than 0\")\r\n // }\r\n // setFinalItemList(data)\r\n }}\r\n >\r\n \r\n %\r\n \r\n {parseFloat(x.Value).toFixed(4)}\r\n \r\n {\r\n handleRemarksChange(v.target.value, x.RmitSerNo)\r\n }}\r\n >\r\n \r\n \r\n {\r\n handleRemoveItemFromList(x.RmitSerNo);\r\n }}\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n props.para.SourceType == \"S\" || props.para.DestType == \"S\" ?\r\n \r\n Refresh Current Stock\r\n \r\n :\r\n <>\r\n \r\n }\r\n
    \r\n
    Total Amount: {totalAmount}
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n\r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTableGrid,\r\n InnModalPopup,\r\n useConfirm,\r\n InnLoader,\r\n InnDataGrid\r\n} from \"../../../../../component\";\r\nimport {\r\n GetCurrentStock, GetInvCategoryMaster,\r\n GetInvSubCategoryMaster, GetInventoryItemFromCatgSubCatg,\r\n GetRequisitionItemList, SavePurchaseRequisitionItem\r\n} from \"../../../../../services/inventoryMasterService\";\r\nimport { GetTransactionMaster } from \"../../../../../services/reservationService\";\r\nexport function OtherTxnRequestItemModalPopup(props) {\r\n\r\n const optBtnData = [\r\n { key: \"Edit\", value: \"Edit\" },\r\n { key: \"Remove\", value: \"Remove\" },\r\n { key: \"Approve\", value: \"Approve\" },\r\n { key: \"UnApprove\", value: \"Un-Approve\" },\r\n { key: \"PrintRequest\", value: \"Print Request\" },\r\n { key: \"ShowLog\", value: \"Show Log\" },\r\n ];\r\n const selectdata = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n\r\n const PurchaseReqItemHeader = [\r\n { key: \"Item Name\", value: \"ItemName\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Unit of Measure\", value: \"UnitofMeasure\", type: \"txt\", sorting: \"Y\", },\r\n { key: \"Item Category\", value: \"ItemCategory\", type: \"txt\", sorting: \"Y\", },\r\n { key: \"Item Sub Category\", value: \"ItemSubCategory\", type: \"txt\", sorting: \"Y\", },\r\n ];\r\n\r\n\r\n const actionPopup = (item) => {\r\n if (item.key == \"Approve\") {\r\n // setShowMMSPurchApproveItemsModal(true);\r\n }\r\n }\r\n\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n //#region State Variables\r\n const [filterDataPurchaseReqItem, setfilterDataPurchaseReqItem] = useState([]);\r\n const [categoryList, setCategoryList] = useState([]);\r\n const [subCategoryList, setSubCategoryList] = useState([]);\r\n const [selectedCategory, setSelectedCategory] = useState({});\r\n const [previosCategory, setPreviosCategory] = useState(0);\r\n const [selectedSubCategory, setSelectedSubCategory] = useState({});\r\n const [previosSubCategory, setPreviosSubCategory] = useState(0);\r\n const [itemList, setItemList] = useState([])\r\n const [selectedItemList, setSelectedItemList] = useState([])\r\n const [finalItemList, setFinalItemList] = useState([])\r\n const [deletedItemList, setDeletedItemList] = useState([])\r\n const [searchStr, setSearchStr] = useState(\"\")\r\n const [totalAmount, setTotalAmount] = useState(0)\r\n const [chargeList, setChargeList] = useState([])\r\n const [isActive, setIsActive] = useState(false);\r\n // const [disAmount, setDisAmount] = useState(0)\r\n // const [isStore, setIsStore] = useState(false)\r\n //#endregion\r\n\r\n const [topKey, setTopKey] = useState(1);\r\n const [bottomKey, setBottomKey] = useState(1);\r\n\r\n const renderTopGrid = () => {\r\n let newkey = Math.floor(Math.random() * 100);\r\n setTopKey(newkey);\r\n };\r\n const renderBottomGrid = () => {\r\n let newkey = Math.floor(Math.random() * 100);\r\n setBottomKey(newkey);\r\n };\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n console.log(props.para);\r\n fillItemCategory();\r\n fillBottomGrid();\r\n fillCharge();\r\n if (props.para) {\r\n if (props.para.SourceType == \"S\") {\r\n // setIsStore(true)\r\n }\r\n }\r\n }, [])\r\n //#endregion\r\n\r\n //#region custom functions\r\n\r\n const fillBottomGrid = () => {\r\n setIsActive(true)\r\n GetRequisitionItemList(parseInt(props.para.ClientSerNo), parseInt(props.para.PropertySerNo), parseInt(props.para.SerNo)).then((d) => {\r\n console.log('Bottom Data', d.data);\r\n setIsActive(false)\r\n if (d.data.length > 0) {\r\n let temp = []\r\n d.data.forEach((x) => {\r\n delete x[\"IsDiscountable\"];\r\n delete x[\"IsPercentage\"];\r\n // delete x[\"Discount\"];\r\n x.Discount = parseInt(x.Discount);\r\n x.ReqQty = (x.ReqQty).toFixed(3);\r\n x.ItemRate = parseFloat(x.ItemRate).toFixed(4);\r\n x[\"Mode\"] = \"Edit\";\r\n x[\"Value\"] = parseFloat(parseFloat(x.ItemRate).toFixed(4) * parseFloat(x.ReqQty).toFixed(3)).toFixed(4);\r\n x[\"UnitofMeasure\"] = x.StockUnitID + \".\" + x.BaseUnitID;\r\n\r\n fillCurrentStock(x.RmitSerNo).then((y) => {\r\n x[\"CurrentStock\"] = parseFloat(y.CurrentStock).toFixed(3);\r\n x[\"BaseQty\"] = parseFloat(y.BaseQty).toFixed(4);\r\n x[\"UnitConversion\"] = parseFloat(y.UnitConversion);\r\n renderBottomGrid();\r\n });\r\n temp.push(x);\r\n handleCalculateTotal(temp);\r\n setFinalItemList(temp);\r\n });\r\n }\r\n })\r\n }\r\n const fillItemCategory = () => {\r\n GetInvCategoryMaster(props.para.ClientSerNo).then((d) => {\r\n if (d.data) {\r\n let temp = []\r\n d.data.forEach((x) => {\r\n temp.push({ key: x.CategorySerNo, value: x.Name })\r\n })\r\n setCategoryList(temp)\r\n if (temp.length > 0) {\r\n setSelectedCategory(temp[0])\r\n fillItemSubCategory(temp[0].key)\r\n }\r\n }\r\n })\r\n }\r\n const fillItemSubCategory = (CategorySerNo) => {\r\n GetInvSubCategoryMaster(props.para.ClientSerNo, CategorySerNo).then((d) => {\r\n if (d.data) {\r\n let temp = []\r\n d.data.forEach((x) => {\r\n temp.push({ key: x.SubCategorySerNo, value: x.Name })\r\n })\r\n setSubCategoryList(temp)\r\n\r\n if (temp.length > 0) {\r\n setSelectedSubCategory(temp[0])\r\n }\r\n }\r\n })\r\n }\r\n const fillCharge = () => {\r\n GetTransactionMaster(parseInt(props.para.ClientSerNo), parseInt(props.para.PropertySerNo), \"C\", \"I\").then((d) => {\r\n if (d.data) {\r\n let temp = []\r\n d.data.forEach((x) => {\r\n temp.push({ key: x.TransactionSerNo, value: x.Name })\r\n })\r\n setChargeList(temp)\r\n }\r\n })\r\n }\r\n const fillCurrentStock = async (ItemSerNo) => {\r\n let obj = {\r\n CurrentStock: 0,\r\n ItemRate: 0,\r\n BaseQty: 0,\r\n UnitConversion: 0\r\n }\r\n if (props.para.SourceType == \"S\" || props.para.DestType == \"S\") {\r\n await GetCurrentStock(parseInt(props.para.ClientSerNo), parseInt(props.para.PropertySerNo),\r\n parseInt(props.para.StoreSerNo), ItemSerNo).then((d) => {\r\n console.log('StockQty', d.data);\r\n if (d.data != undefined) {\r\n obj.CurrentStock = d.data.StockQty;\r\n obj.ItemRate = d.data.ItemRate;\r\n obj.BaseQty = d.data.BaseQty\r\n obj.UnitConversion = d.data.UnitConversion\r\n }\r\n })\r\n }\r\n return obj;\r\n }\r\n //#endregion\r\n\r\n //#region Events\r\n const handleApplyClick = (CatgSerNo, SubCatgSerNo) => {\r\n renderTopGrid();\r\n setIsActive(true)\r\n setPreviosCategory(selectedCategory.key);\r\n setPreviosSubCategory(selectedSubCategory.key);\r\n if (CatgSerNo != undefined && SubCatgSerNo != undefined) {\r\n setSelectedItemList([]);\r\n GetInventoryItemFromCatgSubCatg(parseInt(props.para.ClientSerNo), parseInt(props.para.PropertySerNo),\r\n props.para.SourceSerNo, props.para.DestSerNo, props.para.SourceType, props.para.DestType,\r\n CatgSerNo, SubCatgSerNo).then((d) => {\r\n setIsActive(false);\r\n console.log(d.data);\r\n let temp = []\r\n if (d.data.length > 0) {\r\n d.data.forEach((x) => {\r\n x[\"ItemCategory\"] = x.ItemCatgName\r\n x[\"ItemSubCategory\"] = x.ItemSubCatgName\r\n x[\"UnitofMeasure\"] = x.StockUnitID + \".\" + x.BaseUnitID\r\n x[\"isEnabled\"] = true\r\n\r\n if (finalItemList.length > 0) {\r\n finalItemList.forEach((y) => {\r\n if (y.RmitSerNo == x.RmitSerNo) {\r\n x.isEnabled = false\r\n }\r\n })\r\n }\r\n\r\n temp.push({\r\n ClientSerNo: x.ClientSerNo,\r\n ItemCategory: x.ItemCategory,\r\n ItemName: x.ItemName,\r\n ItemSubCategory: x.ItemSubCategory,\r\n PropertySerNo: x.PropertySerNo,\r\n RmitSerNo: x.RmitSerNo,\r\n StockUnitID: x.StockUnitID,\r\n BaseUnitID: x.BaseUnitID,\r\n UnitofMeasure: x.UnitofMeasure,\r\n isEnabled: x.isEnabled,\r\n TransactionSerNo: x.TransactionSerNo,\r\n })\r\n })\r\n }\r\n else {\r\n alertFunction(\"No items found\")\r\n }\r\n setfilterDataPurchaseReqItem(temp)\r\n setItemList(temp)\r\n })\r\n }\r\n else {\r\n setIsActive(false);\r\n }\r\n }\r\n const handleAddItems = () => {\r\n let temp = filterDataPurchaseReqItem\r\n let tempArr = finalItemList\r\n // setIsActive(true)\r\n if (selectedItemList.length > 0) {\r\n selectedItemList.forEach((y) => {\r\n y[\"ReqQty\"] = 0\r\n y[\"TransactionSerNo\"] = y.TransactionSerNo\r\n y[\"Value\"] = 0.0000\r\n y[\"Discount\"] = 0\r\n y[\"Mode\"] = \"Add\"\r\n\r\n temp.forEach((x) => {\r\n if (x.RmitSerNo == y.RmitSerNo) {\r\n x.isEnabled = false\r\n }\r\n })\r\n renderTopGrid();\r\n temp = temp.filter((value, index, array) => array.indexOf(value) === index)\r\n setfilterDataPurchaseReqItem(temp)\r\n\r\n fillCurrentStock(y.RmitSerNo).then((x) => {\r\n // setIsActive(false)\r\n y[\"ItemRate\"] = parseFloat(x.ItemRate).toFixed(4)\r\n y[\"CurrentStock\"] = parseFloat(x.CurrentStock).toFixed(3)\r\n y[\"BaseQty\"] = parseFloat(x.BaseQty).toFixed(4)\r\n y[\"UnitConversion\"] = parseFloat(x.UnitConversion)\r\n renderBottomGrid();\r\n });\r\n tempArr.push(y)\r\n renderBottomGrid();\r\n setFinalItemList(tempArr)\r\n })\r\n }\r\n else {\r\n setIsActive(false);\r\n alertFunction(\"Please select at least one item to add.\")\r\n }\r\n setSelectedItemList([])\r\n }\r\n const handleTransactionChange = (item, CurrRmitSerNo) => {\r\n let temp = finalItemList\r\n\r\n temp.forEach((x) => {\r\n if (CurrRmitSerNo == x.RmitSerNo) {\r\n x.TransactionSerNo = parseInt(item.key)\r\n }\r\n })\r\n setFinalItemList(temp)\r\n }\r\n const handleRateBlur = (v, CurrRmitSerNo) => {\r\n let temp = finalItemList;\r\n renderBottomGrid();\r\n temp.forEach((x) => {\r\n if (CurrRmitSerNo == x.RmitSerNo) {\r\n if (v > 0) {\r\n x.ItemRate = parseFloat(v).toFixed(4);\r\n x.Value = parseFloat(parseFloat(v) * parseFloat(x.ReqQty)).toFixed(4);\r\n }\r\n else {\r\n x.Value = 0.0000\r\n x.ItemRate = 0.0000\r\n }\r\n }\r\n })\r\n handleCalculateTotal(temp)\r\n setFinalItemList(temp)\r\n }\r\n const handleDiscountChange = (v, CurrRmitSerNo) => {\r\n let temp = finalItemList\r\n\r\n temp.forEach((x) => {\r\n if (CurrRmitSerNo == x.RmitSerNo) {\r\n if (v.length > 0) {\r\n x.Discount = parseFloat(v).toFixed(2)\r\n }\r\n else {\r\n x.Discount = 0\r\n }\r\n }\r\n })\r\n setFinalItemList(temp)\r\n }\r\n const handleQtyBlur = (v, CurrRmitSerNo) => {\r\n renderBottomGrid();\r\n let temp = finalItemList\r\n\r\n temp.forEach((x) => {\r\n if (CurrRmitSerNo == x.RmitSerNo) {\r\n if (v > 0) {\r\n console.log('Validation', parseFloat(v).toFixed(3) * x.UnitConversion > parseFloat(parseFloat(x.BaseQty).toFixed(4)));\r\n x.ReqQty = parseFloat(v).toFixed(3)\r\n x.Value = parseFloat(parseFloat(v) * parseFloat(x.ItemRate)).toFixed(4)\r\n if (parseFloat(v).toFixed(3) * x.UnitConversion > parseFloat(parseFloat(x.BaseQty).toFixed(4))) {\r\n x.IsValidQty = false\r\n }\r\n else {\r\n x.IsValidQty = true\r\n }\r\n }\r\n else {\r\n x.Value = 0.0000\r\n x.ReqQty = 0.000\r\n }\r\n }\r\n })\r\n handleCalculateTotal(temp)\r\n setFinalItemList(temp)\r\n }\r\n const handleRemarksChange = (v, CurrRmitSerNo) => {\r\n let temp = finalItemList\r\n\r\n temp.forEach((x) => {\r\n if (CurrRmitSerNo == x.RmitSerNo) {\r\n x.Remarks = (v)\r\n }\r\n })\r\n setFinalItemList(temp)\r\n }\r\n const handleRemoveItemFromList = (CurrRmitSerNo) => {\r\n let temp = filterDataPurchaseReqItem\r\n let tempArr = []\r\n let tempDelArr = deletedItemList\r\n\r\n finalItemList.forEach((x) => {\r\n if (CurrRmitSerNo == x.RmitSerNo) {\r\n if (x.Mode == \"Edit\") {\r\n x.Mode = \"Delete\";\r\n }\r\n else if (x.Mode == \"Add\") {\r\n delete x[\"Mode\"];\r\n }\r\n delete x[\"ReqQty\"];\r\n delete x[\"Value\"];\r\n if (temp.length > 0) {\r\n temp.forEach((y) => {\r\n if (y.RmitSerNo == x.RmitSerNo) {\r\n y.isEnabled = true\r\n }\r\n })\r\n }\r\n tempDelArr.push(x)\r\n }\r\n else {\r\n tempArr.push(x)\r\n }\r\n })\r\n console.log(tempDelArr, tempArr, temp);\r\n if (temp.length > 0) {\r\n renderTopGrid();\r\n }\r\n setDeletedItemList(tempDelArr)\r\n setfilterDataPurchaseReqItem(temp);\r\n handleCalculateTotal(tempArr);\r\n setFinalItemList(tempArr);\r\n }\r\n const handleCalculateTotal = (selectedData) => {\r\n let total = 0\r\n\r\n selectedData.map((x) => {\r\n total += parseFloat(x.Value)\r\n })\r\n setTotalAmount(total.toFixed(4))\r\n }\r\n\r\n const isValidPage = () => {\r\n let isValid = true\r\n let temp = finalItemList;\r\n temp.forEach((x) => {\r\n if (x.ReqQty == 0) {\r\n isValid = false\r\n }\r\n if (props.para.SourceType == \"S\") {\r\n if (parseFloat(x.ReqQty).toFixed(3) * x.UnitConversion > parseFloat(parseFloat(x.BaseQty).toFixed(4))) {\r\n isValid = false\r\n }\r\n if (x.IsValidQty == false) {\r\n isValid = false\r\n }\r\n }\r\n if (x.Discount > 100 || x.Discount < 0) {\r\n isValid = false\r\n }\r\n })\r\n return isValid;\r\n }\r\n\r\n const handleSaveClick = () => {\r\n let isValid = isValidPage();\r\n let temp = finalItemList;\r\n let apiArr = [];\r\n temp.forEach((x) => {\r\n if (x.Mode != 'Delete') {\r\n x.ReqQty = parseFloat(x.ReqQty);\r\n }\r\n if (x.Mode == \"Add\") {\r\n x[\"SubSerNo\"] = 0;\r\n }\r\n\r\n delete x[\"UnitConversion\"];\r\n delete x[\"BaseQty\"];\r\n x[\"SourceSerNo\"] = props.para.SourceSerNo;\r\n x[\"DestSerNo\"] = props.para.DestSerNo;\r\n x[\"SourceType\"] = props.para.SourceType;\r\n x[\"DestType\"] = props.para.DestType;\r\n x[\"SerNo\"] = props.para.SerNo;\r\n x[\"MovementID\"] = props.para.MovementID;\r\n x.CurrentStock = parseFloat(x.CurrentStock);\r\n x.Discount = parseFloat(x.Discount);\r\n x.ItemRate = parseFloat(x.ItemRate);\r\n apiArr.push(x);\r\n })\r\n if (deletedItemList.length > 0) {\r\n deletedItemList.forEach((x) => {\r\n delete x[\"UnitConversion\"];\r\n delete x[\"BaseQty\"];\r\n x.Discount = parseFloat(x.Discount);\r\n x.ItemRate = parseFloat(x.ItemRate);\r\n x.CurrentStock = parseFloat(x.CurrentStock);\r\n apiArr.push(x);\r\n })\r\n }\r\n console.log(apiArr);\r\n if (isValid) {\r\n if (apiArr.length > 0) {\r\n SavePurchaseRequisitionItem(apiArr).then((d) => {\r\n if (d.data) {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n handleOnClose();\r\n // setIsActive(true)\r\n }\r\n else {\r\n alertFunction(\"Something went wrong.\");\r\n }\r\n }\r\n })\r\n }\r\n else {\r\n alertFunction(\"No item to save\")\r\n }\r\n }\r\n else {\r\n alertFunction(\"One or more field has invalid value, Please verify accordingly.\")\r\n }\r\n }\r\n const handleOnClose = () => {\r\n if (props.onClose != undefined) {\r\n props.onClose();\r\n }\r\n else {\r\n console.log(\"handle onClose is undefined\");\r\n }\r\n }\r\n const handleOnSearchChange = (e) => {\r\n setSearchStr(e);\r\n let filterData = itemList.filter((x) => x.ItemName.toLowerCase().includes(e.toLowerCase()));\r\n setfilterDataPurchaseReqItem(filterData);\r\n }\r\n const handleRefreshCurrentStock = () => {\r\n if (finalItemList.length > 0) {\r\n setIsActive(true);\r\n finalItemList.map((x) => {\r\n fillCurrentStock(x.RmitSerNo).then((y) => {\r\n setIsActive(false);\r\n x.CurrentStock = parseFloat(y.CurrentStock).toFixed(3);\r\n renderBottomGrid();\r\n });\r\n })\r\n }\r\n else {\r\n alertFunction(\"Please add items to continue.\")\r\n }\r\n }\r\n //#endregion\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    \r\n {\r\n props.MovementName != \"\" ?\r\n `${props.MovementName} items`\r\n :\r\n \"Other transaction items\"\r\n }\r\n

    \r\n
    \r\n
    \r\n {\r\n handleSaveClick()\r\n }}\r\n >\r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {\r\n setSelectedCategory(item)\r\n setSelectedSubCategory([])\r\n setSelectedItemList([])\r\n if (item.key != selectedCategory.key) {\r\n fillItemSubCategory(item.key)\r\n }\r\n }}\r\n >\r\n\r\n
    \r\n
    \r\n {\r\n setSelectedSubCategory(item)\r\n setSelectedItemList([])\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n // if (previosCategory != selectedCategory.key || previosSubCategory != selectedSubCategory.key) {\r\n if (selectedCategory.key == undefined || selectedCategory.key == 0\r\n || selectedSubCategory.key == 0 || selectedSubCategory.key == undefined) {\r\n alertFunction(\"Invalid Category or SubCategory.\")\r\n }\r\n else {\r\n handleApplyClick(selectedCategory.key, selectedSubCategory.key)\r\n }\r\n // }\r\n // else {\r\n // }\r\n }}\r\n >\r\n Apply\r\n \r\n \r\n Add Items\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n 0 ?\r\n true\r\n :\r\n false\r\n }\r\n header={PurchaseReqItemHeader}\r\n data={filterDataPurchaseReqItem}\r\n getSelectedItem={(items) => {\r\n setSelectedItemList(items)\r\n //setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n //setReservationStatus(v);\r\n //setShowGuestPopup(true);\r\n }}\r\n uniqueColumn=\"RmitSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n actionPopup(item)\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n //setSelectedReservation(rowdata);\r\n // handleRmAssignmentData([rowdata]);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n key={topKey}\r\n >\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {\r\n props.para.SourceType == \"S\" || props.para.DestType == \"S\" ?\r\n \r\n :\r\n null\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n finalItemList.map((x) => {\r\n return (\r\n \r\n \r\n \r\n {\r\n props.para.SourceType == \"S\" || props.para.DestType == \"S\" ?\r\n \r\n :\r\n null\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n })\r\n }\r\n \r\n
    Item NameUnit of Measure Current StockChargeQtyRateDiscountValueRemarksAction
    {x.ItemName}{x.UnitofMeasure}{parseFloat(x.CurrentStock).toFixed(3)}\r\n
    \r\n {\r\n handleTransactionChange(item, x.RmitSerNo)\r\n }}\r\n >\r\n
    \r\n
    \r\n parseFloat(x.BaseQty).toFixed(4) ?\r\n \"form-group text-danger\"\r\n :\r\n \"form-group\"\r\n :\r\n \"form-group\"\r\n }\r\n tag=\"decimal\"\r\n value={parseFloat(x.ReqQty).toFixed(3)}\r\n onChange={(v) => {\r\n // handleReqQtyChange(v, x.RmitSerNo)\r\n }}\r\n onBlur={(v) => {\r\n handleQtyBlur(v.target.value, x.RmitSerNo)\r\n }}\r\n >\r\n \r\n \r\n {\r\n // handleRateChange(v, x.RmitSerNo)\r\n }}\r\n onBlur={(v) => {\r\n handleRateBlur(v.target.value, x.RmitSerNo)\r\n }}\r\n >\r\n \r\n \r\n {\r\n // setDisAmount(v)\r\n }}\r\n onBlur={(v) => {\r\n handleDiscountChange(v.target.value, x.RmitSerNo)\r\n // let oldValue = disAmount\r\n // let data = finalItemList\r\n // if (v.target.value > 100) {\r\n // data.forEach((y) => {\r\n // if (x.RmitSerNo == y.RmitSerNo) {\r\n // y.Discount = oldValue\r\n // }\r\n // })\r\n // alertFunction(\"Discount amount can not be more than 100\")\r\n // }\r\n // if (v.target.value < 0) {\r\n // data.forEach((y) => {\r\n // if (x.RmitSerNo == y.RmitSerNo) {\r\n // y.Discount = oldValue\r\n // }\r\n // })\r\n // alertFunction(\"Discount amount can not be less than 0\")\r\n // }\r\n // setFinalItemList(data)\r\n }}\r\n >\r\n \r\n %\r\n \r\n {parseFloat(x.Value).toFixed(4)}\r\n \r\n {\r\n handleRemarksChange(v.target.value, x.RmitSerNo)\r\n }}\r\n >\r\n \r\n \r\n {\r\n handleRemoveItemFromList(x.RmitSerNo);\r\n }}\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n props.para.SourceType == \"S\" || props.para.DestType == \"S\" ?\r\n \r\n Refresh Current Stock\r\n \r\n :\r\n <>\r\n }\r\n
    \r\n
    Total Amount: {totalAmount}
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n\r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnModalPopup,\r\n useConfirm,\r\n InnLoader,\r\n} from \"../../../../../component\";\r\nimport { GetTransactionMaster } from \"../../../../../services/reservationService\";\r\nimport { currentUser } from \"../../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { AddEditInvOtherCharges, GetInvOtherCharges } from \"../../../../../services/inventoryMasterService\";\r\n\r\nexport function InvOtherChargesModalPopup(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const [finalChargeList, setFinalChargeList] = useState([]);\r\n const [totalAmount, setTotalAmount] = useState(0);\r\n const [isActive, setIsActive] = useState(false);\r\n\r\n useEffect(() => {\r\n fillTransactionList();\r\n }, [])\r\n\r\n const fillTransactionList = () => {\r\n setIsActive(true);\r\n GetTransactionMaster(parseInt(props.para.ClientSerNo), parseInt(props.para.PropertySerNo),\r\n 'C', 'I').then((d) => {\r\n console.log('Data>>', d.data);\r\n setIsActive(false);\r\n let temp = []\r\n\r\n if (d.data.length > 0) {\r\n d.data.forEach((x) => {\r\n x[\"Mode\"] = \"Insert\";\r\n x[\"IsChanged\"] = false;\r\n x[\"Value\"] = 0.0000\r\n temp.push({\r\n Name: x.Name,\r\n TaxSerNo: 0,\r\n Mode: x.Mode,\r\n IsChanged: x.IsChanged,\r\n TransactionSerNo: x.TransactionSerNo,\r\n Value: x.Value\r\n })\r\n })\r\n }\r\n else {\r\n alertFunction(\"No data found\");\r\n }\r\n fillGrid(temp);\r\n // setFinalChargeList(temp);\r\n // setTransactionList(temp);\r\n })\r\n }\r\n const fillGrid = (list) => {\r\n setIsActive(true);\r\n GetInvOtherCharges(parseInt(props.para.ClientSerNo), parseInt(props.para.PropertySerNo), props.para.SerNo).then((d) => {\r\n console.log('Edit Mode Data>>', d.data);\r\n let temp = []\r\n setIsActive(false);\r\n if (list.length > 0) {\r\n list.forEach((y) => {\r\n if (d.data.length > 0) {\r\n d.data.forEach((x) => {\r\n if (x.TransactionSerNo == y.TransactionSerNo) {\r\n y.Mode = \"Edit\";\r\n y.Value = x.Amount\r\n y.TaxSerNo = x.TaxSerNo\r\n }\r\n })\r\n }\r\n temp.push({\r\n Name: y.Name,\r\n Mode: y.Mode,\r\n TaxSerNo: y.TaxSerNo,\r\n TransactionSerNo: y.TransactionSerNo,\r\n Value: y.Value,\r\n IsChanged: y.IsChanged,\r\n })\r\n })\r\n }\r\n handleCalculateTotal(temp)\r\n setFinalChargeList(temp);\r\n })\r\n }\r\n\r\n const handleOnClose = () => {\r\n if (props.OnClose != undefined) {\r\n props.OnClose();\r\n }\r\n else {\r\n console.log(\"handle OnClose is undefined\");\r\n }\r\n }\r\n const handleValueOnBlur = (v, CurrTransSerNo) => {\r\n let temp = finalChargeList\r\n\r\n temp.forEach((x) => {\r\n if (x.TransactionSerNo == CurrTransSerNo) {\r\n if (v > 0) {\r\n x.Value = parseFloat(v).toFixed(4)\r\n x.IsChanged = true\r\n }\r\n else {\r\n if (x.Mode == \"Insert\") {\r\n x.Value = 0.0000\r\n }\r\n else if (x.Mode == \"Edit\") {\r\n x.Value = 0.0000\r\n x.Mode = 'Delete'\r\n x.IsChanged = true\r\n }\r\n }\r\n }\r\n })\r\n handleCalculateTotal(temp)\r\n setFinalChargeList(temp)\r\n }\r\n const handleCalculateTotal = (selectedData) => {\r\n let total = 0\r\n\r\n selectedData.map((x) => {\r\n total += parseFloat(x.Value)\r\n })\r\n setTotalAmount(total.toFixed(4))\r\n }\r\n const handleSaveClick = () => {\r\n let apiArr = []\r\n console.log('final List', finalChargeList);\r\n\r\n finalChargeList.map((x) => {\r\n x[\"ClientSerNo\"] = parseInt(props.para.ClientSerNo)\r\n x[\"PropertySerNo\"] = parseInt(props.para.PropertySerNo)\r\n x[\"SerNo\"] = parseInt(props.para.SerNo)\r\n x.Value = parseFloat(x.Value)\r\n if (x.Mode == 'Insert' && x.Value > 0 && x.IsChanged == true) {\r\n apiArr.push(x);\r\n }\r\n if (x.Mode == 'Edit' && x.IsChanged == true) {\r\n apiArr.push(x);\r\n }\r\n if (x.Mode == 'Delete') {\r\n apiArr.push(x);\r\n }\r\n })\r\n\r\n console.log('ApiArr', apiArr);\r\n if (apiArr.length > 0) {\r\n AddEditInvOtherCharges(apiArr).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n handleOnClose();\r\n }\r\n })\r\n }\r\n else {\r\n alertFunction(\"No charge is there to update\");\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    Other Charges

    \r\n
    \r\n
    \r\n \r\n Save\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n finalChargeList.map((x) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n })\r\n }\r\n {/* \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n
    Charges
    {x.Name}\r\n {\r\n handleValueOnBlur(v.target.value, x.TransactionSerNo)\r\n }}\r\n >\r\n \r\n
    Freight
    \r\n
    \r\n
    \r\n
    \r\n
    Total     {totalAmount}
    \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnTableGrid,\r\n InnModalPopup,\r\n useConfirm,\r\n InnLoader,\r\n} from \"../../../../../component\";\r\nimport { currentUser } from \"../../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { GetInvTransactionTaxBreakup, GetInvTransactionTaxSummary } from \"../../../../../services/inventoryMasterService\";\r\n\r\nexport function InvTaxBreakupModalPopup(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const TaxBreakuptable1Header = [\r\n { key: \"Tax Name\", value: \"TaxName\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Taxable\", value: \"Taxable\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n { key: \"Tax\", value: \"Tax\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n ];\r\n\r\n const TaxBreakuptable2Header = [\r\n { key: \"Items\", value: \"Items\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"\", value: \"Taxable\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n { key: \"\", value: \"Tax\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n ];\r\n\r\n const TaxBreakuptable3Header = [\r\n { key: \"Other Charges\", value: \"OtherCharges\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"\", value: \"Taxable\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n { key: \"\", value: \"Tax\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n ];\r\n\r\n\r\n const optBtnData = [\r\n { key: \"Edit\", value: \"Edit\" },\r\n { key: \"Remove\", value: \"Remove\" },\r\n { key: \"Approve\", value: \"Approve\" },\r\n { key: \"UnApprove\", value: \"Un-Approve\" },\r\n { key: \"PrintRequest\", value: \"Print Request\" },\r\n { key: \"ShowLog\", value: \"Show Log\" },\r\n ];\r\n\r\n const [filterDataTaxBreakuptable1, setfilterDataTaxBreakuptable1] = useState([]);\r\n const [filterDataTaxBreakuptable2, setfilterDataTaxBreakuptable2] = useState([]);\r\n const [filterDataTaxBreakuptable3, setfilterDataTaxBreakuptable3] = useState([]);\r\n const [gridData, setGridData] = useState([]);\r\n const [isActive, setIsActive] = useState(false);\r\n\r\n useEffect(() => {\r\n fillGrid1();\r\n fillGrid2();\r\n }, [])\r\n\r\n const fillGrid1 = () => {\r\n setIsActive(true);\r\n GetInvTransactionTaxSummary(parseInt(props.para.ClientSerNo), parseInt(props.para.PropertySerNo),\r\n props.para.SerNo).then((d) => {\r\n setIsActive(false);\r\n let temp = []\r\n if (d.data.length > 0) {\r\n d.data.map((x) => {\r\n temp.push({\r\n ClientSerNo: x.ClientSerNo,\r\n PropertySerNo: x.PropertySerNo,\r\n TransactionSerNo: x.TransactionSerNo,\r\n Taxable: x.Taxable,\r\n Tax: x.Tax,\r\n TaxName: `${x.TaxName} @ ${x.OnAmountPercentage}%`,\r\n // TaxName: x.TaxName,\r\n AssoTransactionSerNo: x.AssoTransactionSerNo\r\n })\r\n })\r\n setfilterDataTaxBreakuptable1(temp)\r\n }\r\n else {\r\n alertFunction(\"No data found.\")\r\n }\r\n })\r\n }\r\n const fillGrid2 = () => {\r\n setIsActive(true);\r\n GetInvTransactionTaxBreakup(parseInt(props.para.ClientSerNo), parseInt(props.para.PropertySerNo),\r\n props.para.SerNo).then((d) => {\r\n let temp = []\r\n setIsActive(false);\r\n if (d.data.length > 0) {\r\n d.data.map((x) => {\r\n temp.push({\r\n ClientSerNo: props.para.ClientSerNo,\r\n PropertySerNo: props.para.PropertySerNo,\r\n TransactionSerNo: x.TransactionSerNo,\r\n Taxable: x.Taxable,\r\n Tax: x.Tax,\r\n TaxName: x.TransactionName,\r\n ItemName: x.ItemName,\r\n SubSerNo: x.SubSerNo\r\n })\r\n })\r\n }\r\n else {\r\n alertFunction(\"No data found.\")\r\n }\r\n setGridData(temp);\r\n })\r\n }\r\n\r\n const handleTaxClick = (v) => {\r\n let tempGrid2 = []\r\n let tempGrid3 = []\r\n gridData.map((x) => {\r\n if (v.TransactionSerNo == x.TransactionSerNo) {\r\n if (x.SubSerNo != null) {\r\n tempGrid2.push({\r\n Items: x.ItemName,\r\n Taxable: x.Taxable,\r\n Tax: x.Tax,\r\n })\r\n }\r\n else {\r\n tempGrid3.push({\r\n OtherCharges: x.TaxName,\r\n Taxable: x.Taxable,\r\n Tax: x.Tax,\r\n })\r\n }\r\n }\r\n })\r\n setfilterDataTaxBreakuptable2(tempGrid2);\r\n setfilterDataTaxBreakuptable3(tempGrid3);\r\n }\r\n\r\n const handleOnClose = () => {\r\n if (props.OnClose != undefined) {\r\n props.OnClose();\r\n }\r\n else {\r\n console.log(\"handle OnClose is undefined\");\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    Tax Breakup

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n }}\r\n //fixedHeaderNo={0}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"TransactionSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(\"Rowdata\", rowdata);\r\n handleTaxClick(rowdata);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n console.log(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n }}\r\n //fixedHeaderNo={0}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n console.log(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n }}\r\n //fixedHeaderNo={0}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n // actionPopup(item)\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n
    \r\n\r\n
    \r\n
    \r\n\r\n \r\n )\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnSingleDateSelection,\r\n InnTableGrid,\r\n InnModalPopup,\r\n InnTextarea,\r\n useConfirm\r\n} from \"../../../../../component\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../../reducer/authSlice\";\r\nimport { StoreRequestItemModalPopup } from \"./storeItemRequestModalPopup\";\r\nimport { GetRequestHeader, GetInvDepartmentMaster, GetInvVenderMaster, GetMovementForBasicInventoryTransaction, AddEditDepartmentRequestHeader, GetInvStoreMaster, GetRequisitionItemList, GetInvMonthClosing, AddEditRequestHeader } from \"../../../../../services/inventoryMasterService\";\r\nimport { GetDocumentRemarkMaster } from \"../../../../../services/posMasterService\";\r\nimport { GetPropertyParameterByKeys } from \"../../../../../services/reservationService\";\r\nimport moment from \"moment\";\r\nimport { PurchaseRequestItemModalPopup } from \"./purchaseItemRequestModalPopup\";\r\nimport { setRef } from \"@mui/material\";\r\nimport { ManageRights } from \"../../../../../services/generalService\";\r\nimport { OtherTxnRequestItemModalPopup } from \"./otherTransactionItemRequestModalPopup\";\r\nimport { InvOtherChargesModalPopup } from \"./inventoryOtherChargesModalPopup\";\r\nimport { InvTaxBreakupModalPopup } from \"./inventoryTaxBreakupModalPopup\";\r\n\r\nexport function DepartmentPurchaseRequestModalPopup(props) {\r\n\r\n const [showMMSPurchReqItemsModal, setShowMMSPurchReqItemsModal] = useState(false);\r\n const [movementData, setMovementData] = useState([]);\r\n const currUser = useSelector(currentUser);\r\n const [invBusinessDate, setInvBusinessDate] = useState(\"\");\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const [restrictBackDateEdit, setRestrictBackDateEdit] = useState();\r\n const [allowEditTransDay, setAllowEditTransDay] = useState();\r\n const optBtnData = [\r\n { key: \"Edit\", value: \"Edit\" },\r\n { key: \"Remove\", value: \"Remove\" },\r\n { key: \"Approve\", value: \"Approve\" },\r\n { key: \"UnApprove\", value: \"Un-Approve\" },\r\n { key: \"PrintRequest\", value: \"Print Request\" },\r\n { key: \"ShowLog\", value: \"Show Log\" },\r\n ];\r\n\r\n const excludedMovementArr = [\r\n \"ADJDPTD\",\r\n \"ADJDPTI\",\r\n \"ADJSTKD\",\r\n \"ADJSTKI\",\r\n \"DP\",\r\n \"ISSUE\",\r\n \"PURCHASE\"\r\n ];\r\n\r\n const defaultObj = {\r\n ClientSerNo: props.para.ClientSerNo,\r\n PropertySerNo: props.para.PropertySerNo,\r\n SerNo: 0,\r\n TransNo: '',\r\n MovementID: \"Sel\",\r\n TransDateTime: invBusinessDate,\r\n SourceSerNo: 0,\r\n DestSerNo: 0,\r\n SourceType: \"\",\r\n DestType: \"\",\r\n UserID: currUser.UserID,\r\n Remarks: \"\",\r\n Discount: 0,\r\n IsPercentage: false,\r\n IsTaxInclusive: false,\r\n DocRemarkSerNo: 0,\r\n DocumentReferenceNo: \"\",\r\n RequestedBy: \"\",\r\n Mode: props.para.Mode,\r\n TransDiscountAmount: 0,\r\n TaxAmount: 0,\r\n OtherChargeAmount: 0,\r\n OtherChargeTaxAmount: 0,\r\n ChallanDate: null,\r\n ChallanNo: \"\",\r\n InvoiceNo: \"\",\r\n InvoiceDate: null\r\n }\r\n const defaultValidationObj = {\r\n Discount: \"\",\r\n TransDateTime: \"ok\",\r\n SourceSerNo: \"\",\r\n DestSerNo: \"\",\r\n MovementID: \"\"\r\n }\r\n\r\n const defaultComboObj = {\r\n Date: true,\r\n MovementID: true,\r\n Source: true,\r\n Dest: true,\r\n DocumentRef: true,\r\n Discount: true,\r\n Percentage: true,\r\n TaxInclusive: true,\r\n ReqBy: true,\r\n TnC: true,\r\n Note: true,\r\n ChallanDate: true,\r\n ChallanNo: true,\r\n InvoiceNo: true,\r\n InvoiceDate: true\r\n }\r\n const [departmentReqObj, setDepartmentReqObj] = useState(defaultObj);\r\n const [orgObj, setOrgObj] = useState({})\r\n const [departmentData, setDepartmentData] = useState([]);\r\n const [vendorData, setVendorData] = useState([]);\r\n const [storeData, setStoreData] = useState([]);\r\n const [tnCData, setTnCData] = useState([]);\r\n const propertyParameters = [\"InvBusinessDate\", \"RestrictBackDateEdit\", \"AllowEditBackDatedTransDay\", \"IsUseMonthClosing\"];\r\n const [validationObj, setValidationObj] = useState(defaultValidationObj);\r\n const [departmentGrid, setDepartmentGrid] = useState([]);\r\n const [subTotal, setSubTotal] = useState(0);\r\n const [movementList, setMovementList] = useState([]);\r\n const [comboDisabledObj, setComboDisabledObj] = useState(defaultComboObj);\r\n const [userRightsData, setUserRightsData] = useState([]);\r\n const [IsUseMonthClosing, setIsMonthlyClosing] = useState();\r\n const [monthClosingData, setMonthClosingData] = useState([]);\r\n const [movementName, setMovementName] = useState(\"\");\r\n const [logicalDeptData, setLogicalDeptData] = useState([]);\r\n\r\n const [showMMSOtherChargesModal, setShowMMSOtherChargesModal] = useState(false);\r\n const [showMMSTaxBreakupModal, setShowMMSTaxBreakupModal] = useState(false);\r\n const MMStable2Header = [\r\n { key: \"Item Name\", value: \"ItemName\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Unit\", value: \"StockUnitID\", type: \"txt\", sorting: \"Y\", align: 'left' },\r\n { key: \"Req. Qty\", value: \"ReqQty\", type: \"txt\", sorting: \"Y\", align: 'right' },\r\n { key: \"App. Qty\", value: \"AppQty\", type: \"txt\", sorting: \"Y\", align: 'right' },\r\n { key: \"LPP\", value: \"ItemRate\", type: \"txt\", sorting: \"N\", align: 'right' },\r\n { key: \"Value\", value: \"Value\", type: \"txt\", sorting: \"N\", align: 'right' },\r\n ];\r\n const MMStable2Header1 = [\r\n { key: \"Item Name\", value: \"ItemName\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Unit\", value: \"StockUnitID\", type: \"txt\", sorting: \"Y\", align: 'left' },\r\n { key: \"Qty\", value: \"ReqQty\", type: \"txt\", sorting: \"Y\", align: 'right' },\r\n { key: \"LPP\", value: \"ItemRate\", type: \"txt\", sorting: \"N\", align: 'right' },\r\n { key: \"Value\", value: \"Value\", type: \"txt\", sorting: \"N\", align: 'right' },\r\n ];\r\n const actionPopup = (item) => {\r\n if (item.key == \"Approve\") {\r\n // setShowMMSPurchApproveItemsModal(true);\r\n }\r\n }\r\n\r\n const departmentCombo = (num, flag) => {\r\n return (\r\n <>\r\n
    \r\n {\r\n if (flag == \"Src\") {\r\n setDepartmentReqObj((prev) => ({ ...prev, SourceSerNo: item.key }));\r\n setValidationObj((prev) => ({ ...prev, SourceSerNo: \"\" }));\r\n\r\n }\r\n if (flag == \"Dst\") {\r\n setDepartmentReqObj((prev) => ({ ...prev, DestSerNo: item.key }));\r\n setValidationObj((prev) => ({ ...prev, DestSerNo: \"\" }));\r\n if ((departmentReqObj.MovementID == \"SALVD\" || departmentReqObj.MovementID == \"TRAND\")) {\r\n setValidationObj((prev) => ({ ...prev, SourceSerNo: \"\" }));\r\n }\r\n }\r\n }}\r\n selectedSerNo={num}\r\n >\r\n
    \r\n \r\n )\r\n }\r\n\r\n const storeCombo = (num, flag) => {\r\n return (\r\n <>\r\n
    \r\n {\r\n if (flag == \"Src\") {\r\n setDepartmentReqObj((prev) => ({ ...prev, SourceSerNo: item.key }));\r\n setValidationObj((prev) => ({ ...prev, SourceSerNo: \"\" }));\r\n\r\n }\r\n if (flag == \"Dst\") {\r\n setDepartmentReqObj((prev) => ({ ...prev, DestSerNo: item.key }));\r\n setValidationObj((prev) => ({ ...prev, DestSerNo: \"\" }));\r\n if ((departmentReqObj.MovementID == \"SALVS\" || departmentReqObj.MovementID == \"TRANS\")) {\r\n setValidationObj((prev) => ({ ...prev, SourceSerNo: \"\" }));\r\n }\r\n }\r\n }}\r\n selectedSerNo={num}\r\n >\r\n
    \r\n \r\n )\r\n }\r\n\r\n const vendorCombo = (num, flag) => {\r\n return (\r\n <>\r\n
    \r\n {\r\n if (flag == \"Src\") {\r\n setDepartmentReqObj((prev) => ({ ...prev, SourceSerNo: item.key }));\r\n setValidationObj((prev) => ({ ...prev, SourceSerNo: \"\" }));\r\n\r\n }\r\n if (flag == \"Dst\") {\r\n setDepartmentReqObj((prev) => ({ ...prev, DestSerNo: item.key }));\r\n setValidationObj((prev) => ({ ...prev, DestSerNo: \"\" }));\r\n\r\n }\r\n }}\r\n selectedSerNo={num}\r\n >\r\n
    \r\n \r\n )\r\n }\r\n const fillMovementData = () => {\r\n GetMovementForBasicInventoryTransaction(props.para.ClientSerNo).then((d) => {\r\n let temp = [{ key: \"Sel\", value: \"Select\" }];\r\n let arr = [{ MovementID: \"Sel\", Name: \"Select\", SourceType: \"\", DestType: \"\" }]\r\n if (props.para.Mode == \"Add\") {\r\n d.data.forEach((s) => {\r\n if (excludedMovementArr.find((x) => x == s.MovementID)) { }\r\n else {\r\n temp.push({ key: s.MovementID, value: s.Name })\r\n }\r\n })\r\n } else {\r\n d.data.forEach((x) => {\r\n temp.push({ key: x.MovementID, value: x.Name })\r\n })\r\n }\r\n d.data.forEach((x) => {\r\n arr.push(x);\r\n if (props.para.MovementID !== undefined && props.para.MovementID !== null) {\r\n if (props.para.MovementID == x.MovementID) {\r\n setMovementName(x.Name);\r\n }\r\n }\r\n })\r\n\r\n console.log(arr)\r\n setMovementList(arr);\r\n setMovementData(temp);\r\n console.log(props.para)\r\n })\r\n }\r\n const fillDepartmentData = () => {\r\n GetInvDepartmentMaster(props.para.ClientSerNo, props.para.PropertySerNo).then((d) => {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n let temp2 = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach((x) => {\r\n if (x.IsLogicalDepartment == false) {\r\n temp.push({ key: x.DepartmentSerNo, value: x.Name })\r\n }\r\n if (x.IsLogicalDepartment == true) {\r\n temp2.push({ key: x.DepartmentSerNo, value: x.Name })\r\n }\r\n })\r\n setDepartmentData(temp);\r\n setLogicalDeptData(temp2);\r\n })\r\n }\r\n const fillVendorData = () => {\r\n GetInvVenderMaster(props.para.ClientSerNo, props.para.PropertySerNo).then((d) => {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach((x) => {\r\n temp.push({ key: x.VenderSerNo, value: x.Name })\r\n })\r\n setVendorData(temp);\r\n })\r\n }\r\n const fillStoreData = () => {\r\n GetInvStoreMaster(props.para.ClientSerNo, props.para.PropertySerNo).then((d) => {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach((x) => {\r\n temp.push({ key: x.StoreSerNo, value: x.Name })\r\n })\r\n setStoreData(temp);\r\n })\r\n }\r\n const fillTnC = () => {\r\n GetDocumentRemarkMaster(props.para.ClientSerNo, props.para.PropertySerNo).then(d => {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach((x) => {\r\n if (x.Module == \"I\") {\r\n temp.push({ key: x.RemarkSerNo, value: x.Description })\r\n }\r\n })\r\n setTnCData(temp);\r\n })\r\n }\r\n const fillDepartmentReq = (SerNo) => { //props.para.SerNo\r\n GetRequestHeader(props.para.ClientSerNo, props.para.PropertySerNo, SerNo).then(d => {\r\n if (d.data) {\r\n let obj = d.data;\r\n obj.Mode = \"View\";\r\n setOrgObj(obj);\r\n setDepartmentReqObj(obj);\r\n }\r\n })\r\n }\r\n const fillUserRights = () => {\r\n ManageRights(currUser.ClientSerNo, currUser.UserID, \"76,77,78,79,80,81,82,83,84\").then((d) => {\r\n if (d.data.length > 0) {\r\n setUserRightsData(d.data);\r\n }\r\n else {\r\n console.log(\"No user rights\");\r\n }\r\n })\r\n }\r\n const fillMonthClosing = () => {\r\n GetInvMonthClosing(currUser.ClientSerNo, currUser.PropertySerNo).then(d => {\r\n if (d.data.length > 0) {\r\n setMonthClosingData(d.data);\r\n }\r\n })\r\n }\r\n const fillGrid = (SerNo) => {\r\n GetRequisitionItemList(currUser.ClientSerNo, currUser.PropertySerNo, SerNo).then((d) => {\r\n if (d.data.length > 0) {\r\n // setDepartmentGrid(d.data);\r\n let SubTotal = 0;\r\n d.data.forEach((d) => {\r\n d.ReqQty = d.ReqQty.toFixed(3);\r\n d.AppQty = d.AppQty.toFixed(3);\r\n d.ItemRate = d.ItemRate.toFixed(4);\r\n SubTotal = SubTotal + d.Value;\r\n d.Value = d.Value.toFixed(4);\r\n })\r\n setSubTotal(SubTotal);\r\n }\r\n setDepartmentGrid(d.data);\r\n })\r\n }\r\n\r\n const IsValidPage = () => {\r\n let isValid = { isValid: true, Message: \"\" };\r\n if (departmentReqObj.IsPercentage == true && parseFloat(departmentReqObj.Discount) > 100) {\r\n setValidationObj((prev) => ({ ...prev, Discount: \"Enter value less than 100.\" }))\r\n isValid = { isValid: false, Message: \"Discount should less than 100.\" };;\r\n }\r\n // if (!(/^[0-9]*$/).test(departmentReqObj.Discount)) {\r\n // setValidationObj((prev) => ({ ...prev, Discount: \"Not a number.\" }))\r\n // isValid = false;\r\n // }\r\n if (departmentReqObj.Mode == \"Add\" && departmentReqObj.TransDateTime == \"\") {\r\n setValidationObj((prev) => ({ ...prev, TransDateTime: \"Invalid Input\" }))\r\n isValid = { isValid: false, Message: \"Select date.\" };;\r\n\r\n }\r\n if (departmentReqObj.Mode == \"Add\" && departmentReqObj.DestSerNo == 0) {\r\n setValidationObj((prev) => ({ ...prev, DestSerNo: \"Invalid Input\" }))\r\n isValid = { isValid: false, Message: \"One or more fields are incorrect. Please verify accordingly.\" };\r\n\r\n }\r\n if (departmentReqObj.Mode == \"Add\" && departmentReqObj.SourceSerNo == 0) {\r\n setValidationObj((prev) => ({ ...prev, SourceSerNo: \"Invalid Input\" }))\r\n isValid = { isValid: false, Message: \"One or more fields are incorrect. Please verify accordingly.\" };\r\n\r\n }\r\n if (departmentReqObj.Mode == \"Add\" && departmentReqObj.MovementID == \"Sel\") {\r\n setValidationObj((prev) => ({ ...prev, MovementID: \"Select Movement Id.\" }))\r\n isValid = { isValid: false, Message: \"Movement Id is not selected.\" };\r\n\r\n }\r\n if (new Date(moment(departmentReqObj.TransDateTime).format(\"DD-MMM-YYYY\")).getTime() > new Date(moment(invBusinessDate).format(\"DD-MMM-YYYY\")).getTime()) {\r\n console.log(\"first\")\r\n // setValidationObj((prev) => ({ ...prev, TransDateTime: \"Date cannot be greater than business date.\" }))\r\n isValid = { isValid: false, Message: \"Date cannot be greater than business date.\" };\r\n }\r\n if ((departmentReqObj.MovementID == \"SALVD\" || departmentReqObj.MovementID == \"TRAND\") && departmentReqObj.SourceSerNo == departmentReqObj.DestSerNo) {\r\n setValidationObj((prev) => ({ ...prev, SourceSerNo: \"Source and destination department cannot be same.\" }));\r\n isValid = { isValid: false, Message: \"One or more fields are incorrect. Please verify accordingly.\" };\r\n }\r\n if ((departmentReqObj.MovementID == \"TRANS\") && departmentReqObj.SourceSerNo == departmentReqObj.DestSerNo) {\r\n setValidationObj((prev) => ({ ...prev, SourceSerNo: \"Source and destination store cannot be same.\" }));\r\n isValid = { isValid: false, Message: \"One or more fields are incorrect. Please verify accordingly.\" };\r\n }\r\n return isValid;\r\n }\r\n const handleUserRights = async (strRightsSerNo) => {\r\n if (strRightsSerNo != undefined) {\r\n const userRightObj = userRightsData.find((x) => x.RightsSerNo == strRightsSerNo);\r\n //userRightObj.IsApply = false;\r\n if (userRightObj != undefined) {\r\n if (userRightObj.IsApply != undefined) {\r\n if (userRightObj.IsApply) {\r\n return true;\r\n } else {\r\n await confirm({\r\n Message: `${userRightObj.Name} : ${userRightObj.PromptMessage}`,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n } else {\r\n await confirm({\r\n Message: \"Can not load Innkey Task (UserRights).\",\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n return false;\r\n }\r\n }\r\n };\r\n\r\n const clearValidation = () => {\r\n setValidationObj(defaultValidationObj);\r\n }\r\n\r\n const calculateDays = (a, b) => {\r\n let date1 = new Date(a);\r\n let date2 = new Date(b);\r\n let diffTime = (date2.getTime() - date1.getTime());\r\n let days_difference = Math.floor(diffTime / (1000 * 60 * 60 * 24));\r\n console.log(days_difference)\r\n return days_difference;\r\n }\r\n\r\n\r\n\r\n const handleClickOnEdit = () => {\r\n clearValidation();\r\n let monthclose = false;\r\n console.log(restrictBackDateEdit);\r\n let dt = monthClosingData.find(x => x.Month == (new Date(moment(departmentReqObj.TransDateTime).format(\"DD-MMM-YYYY\")).getMonth() + 1) && x.Year == (new Date(moment(departmentReqObj.TransDateTime).format(\"DD-MMM-YYYY\")).getFullYear()));\r\n\r\n if (IsUseMonthClosing == \"Y\") {\r\n if (dt !== undefined) {\r\n if (dt.IsClosed == true) {\r\n monthclose = true;\r\n }\r\n }\r\n }\r\n\r\n if (!monthclose) {\r\n let days = calculateDays(departmentReqObj.TransDateTime, invBusinessDate);\r\n if (new Date(moment(departmentReqObj.TransDateTime).format(\"DD-MMM-YYYY\")).getTime() < new Date(moment(invBusinessDate).format(\"DD-MMM-YYYY\")).getTime()) {\r\n if (restrictBackDateEdit == \"Y\") {\r\n if (days <= parseInt(allowEditTransDay)) {\r\n let tempRightsSerNo = 0;\r\n if (departmentReqObj.MovementID === \"ISSUE\") {\r\n tempRightsSerNo = 76;\r\n }\r\n if (departmentReqObj.MovementID === \"DP\") {\r\n tempRightsSerNo = 78;\r\n }\r\n if (departmentReqObj.MovementID === \"PURCHASE\") {\r\n tempRightsSerNo = 77;\r\n }\r\n if (departmentReqObj.MovementID === \"DPURCREQ\") {\r\n tempRightsSerNo = 82;\r\n }\r\n if (departmentReqObj.MovementID === \"STRREQ\") {\r\n tempRightsSerNo = 81;\r\n }\r\n if (departmentReqObj.MovementID === \"PURCREQ\") {\r\n tempRightsSerNo = 83;\r\n }\r\n else {\r\n tempRightsSerNo = 80;\r\n }\r\n let temp = userRightsData.find(x => x.RightsSerNo == tempRightsSerNo);\r\n console.log(temp, departmentReqObj)\r\n if (temp !== undefined) {\r\n if (temp.IsApply === true) {\r\n setComboDisabledObj((prev) => ({\r\n ...prev,\r\n Discount: false,\r\n Percentage: false,\r\n TaxInclusive: false,\r\n ReqBy: false,\r\n TnC: false,\r\n Note: false,\r\n ChallanDate: false,\r\n ChallanNo: false,\r\n InvoiceNo: false,\r\n InvoiceDate: false\r\n }))\r\n setDepartmentReqObj((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n else {\r\n alertFunction(`${temp.Name} : ${temp.PromptMessage}`);\r\n }\r\n }\r\n\r\n }\r\n else {\r\n alertFunction(\"You are not authorize to edit this back dated transaction.\")\r\n }\r\n }\r\n else {\r\n // allow to edit all fields with rights\r\n if (userRightsData.find(x => x.RightsSerNo === 84).IsApply) {\r\n let tempRightsSerNo = 0;\r\n if (departmentReqObj.MovementID === \"ISSUE\") {\r\n tempRightsSerNo = 76;\r\n }\r\n if (departmentReqObj.MovementID === \"DP\") {\r\n tempRightsSerNo = 78;\r\n }\r\n if (departmentReqObj.MovementID === \"PURCHASE\") {\r\n tempRightsSerNo = 77;\r\n }\r\n if (departmentReqObj.MovementID === \"DPURCREQ\") {\r\n tempRightsSerNo = 82;\r\n }\r\n if (departmentReqObj.MovementID === \"STRREQ\") {\r\n tempRightsSerNo = 81;\r\n }\r\n if (departmentReqObj.MovementID === \"PURCREQ\") {\r\n tempRightsSerNo = 83;\r\n }\r\n else {\r\n tempRightsSerNo = 80;\r\n }\r\n let temp = userRightsData.find(x => x.RightsSerNo == tempRightsSerNo);\r\n console.log(temp, departmentReqObj)\r\n if (temp !== undefined) {\r\n if (temp.IsApply === true) {\r\n setComboDisabledObj((prev) => ({\r\n ...prev,\r\n Date: false,\r\n MovementID: false,\r\n Source: false,\r\n Dest: false,\r\n Discount: false,\r\n Percentage: false,\r\n TaxInclusive: false,\r\n ReqBy: false,\r\n TnC: false,\r\n Note: false,\r\n ChallanDate: false,\r\n ChallanNo: false,\r\n InvoiceNo: false,\r\n InvoiceDate: false\r\n }))\r\n setDepartmentReqObj((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n else {\r\n alertFunction(`${temp.Name} : ${temp.PromptMessage}`);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n let tempRightsSerNo = 0;\r\n if (departmentReqObj.MovementID === \"ISSUE\") {\r\n tempRightsSerNo = 76;\r\n }\r\n if (departmentReqObj.MovementID === \"DP\") {\r\n tempRightsSerNo = 78;\r\n }\r\n if (departmentReqObj.MovementID === \"PURCHASE\") {\r\n tempRightsSerNo = 77;\r\n }\r\n if (departmentReqObj.MovementID === \"DPURCREQ\") {\r\n tempRightsSerNo = 82;\r\n }\r\n if (departmentReqObj.MovementID === \"STRREQ\") {\r\n tempRightsSerNo = 81;\r\n }\r\n if (departmentReqObj.MovementID === \"PURCREQ\") {\r\n tempRightsSerNo = 83;\r\n }\r\n else {\r\n tempRightsSerNo = 80;\r\n }\r\n let temp = userRightsData.find(x => x.RightsSerNo == tempRightsSerNo);\r\n console.log(temp, departmentReqObj)\r\n if (temp !== undefined) {\r\n if (temp.IsApply === true) {\r\n setComboDisabledObj((prev) => ({\r\n ...prev,\r\n Discount: false,\r\n Percentage: false,\r\n TaxInclusive: false,\r\n ReqBy: false,\r\n TnC: false,\r\n Note: false,\r\n ChallanDate: false,\r\n ChallanNo: false,\r\n InvoiceNo: false,\r\n InvoiceDate: false\r\n }))\r\n setDepartmentReqObj((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n else {\r\n alertFunction(`${temp.Name} : ${temp.PromptMessage}`);\r\n }\r\n }\r\n // setComboDisabledObj((prev) => ({\r\n // ...prev,\r\n // DocumentRef: false,\r\n // Discount: false,\r\n // Percentage: false,\r\n // TaxInclusive: false,\r\n // ReqBy: false,\r\n // TnC: false,\r\n // Note: false\r\n // }))\r\n // setDepartmentReqObj((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n }\r\n else {\r\n alertFunction(\"Transactions for this month has been closed.\")\r\n }\r\n\r\n }\r\n // const handleClickOnAdd = () => {\r\n // clearValidation();\r\n // let obj = defaultObj;\r\n // obj.Mode = \"Add\";\r\n // setDepartmentReqObj(obj);\r\n // }\r\n const handleClickOnCancel = () => {\r\n clearValidation();\r\n if (departmentReqObj.Mode == \"Edit\") {\r\n let obj = orgObj;\r\n obj.Mode = \"View\";\r\n setDepartmentReqObj(obj)\r\n setComboDisabledObj(defaultComboObj);\r\n }\r\n if (departmentReqObj.Mode == \"Add\") {\r\n // let obj = defaultObj;\r\n // obj.Mode = \"View\";\r\n // setDepartmentReqObj(defaultObj)\r\n props.onClose();\r\n }\r\n }\r\n const handleBackDatedAdd = async () => {\r\n let isAllow = false;\r\n let monthclose = false;\r\n console.log(restrictBackDateEdit);\r\n let dt = monthClosingData.find(x => x.Month == (new Date(moment(departmentReqObj.TransDateTime).format(\"DD-MMM-YYYY\")).getMonth() + 1) && x.Year == (new Date(moment(departmentReqObj.TransDateTime).format(\"DD-MMM-YYYY\")).getFullYear()));\r\n\r\n if (IsUseMonthClosing == \"Y\") {\r\n if (dt !== undefined) {\r\n if (dt.IsClosed == true) {\r\n monthclose = true;\r\n }\r\n }\r\n }\r\n\r\n if (!monthclose) {\r\n if (departmentReqObj.Mode == \"Add\") {\r\n if (new Date(moment(departmentReqObj.TransDateTime).format(\"DD-MMM-YYYY\")).getTime() < new Date(moment(invBusinessDate).format(\"DD-MMM-YYYY\")).getTime()) {\r\n if (restrictBackDateEdit == \"Y\") {\r\n //rights will come here\r\n await handleUserRights(\"84\").then(d => {\r\n console.log(d)\r\n if (d) {\r\n if (departmentReqObj.MovementID == \"DPURCREQ\") {\r\n handleUserRights(\"82\").then(d => {\r\n if (d) {\r\n isAllow = true;\r\n console.log(d)\r\n\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n }\r\n if (departmentReqObj.MovementID == \"STRREQ\") {\r\n handleUserRights(\"81\").then(d => {\r\n console.log(d)\r\n if (d) {\r\n isAllow = true;\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n }\r\n if (departmentReqObj.MovementID == \"PURCREQ\") {\r\n handleUserRights(\"83\").then(d => {\r\n console.log(d)\r\n if (d) {\r\n isAllow = true;\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n }\r\n else {\r\n handleUserRights(\"80\").then(d => {\r\n console.log(d)\r\n if (d) {\r\n isAllow = true;\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n }\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n }\r\n }\r\n else {\r\n console.log(\"first\")\r\n if (departmentReqObj.MovementID == \"DPURCREQ\") {\r\n await handleUserRights(\"82\").then(d => {\r\n if (d) {\r\n isAllow = true;\r\n console.log(d)\r\n\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n }\r\n if (departmentReqObj.MovementID == \"STRREQ\") {\r\n await handleUserRights(\"81\").then(d => {\r\n console.log(d)\r\n if (d) {\r\n isAllow = true;\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n }\r\n if (departmentReqObj.MovementID == \"PURCREQ\") {\r\n await handleUserRights(\"83\").then(d => {\r\n console.log(d)\r\n if (d) {\r\n isAllow = true;\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n }\r\n else {\r\n await handleUserRights(\"79\").then(d => {\r\n console.log(d)\r\n if (d) {\r\n isAllow = true;\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n }\r\n //isAllow = true;\r\n }\r\n }\r\n // if()\r\n }\r\n else {\r\n alertFunction(\"Transactions for this month has been closed.\")\r\n }\r\n console.log(isAllow)\r\n return isAllow\r\n\r\n }\r\n const handleClickOnSave = async () => {\r\n let isValid = IsValidPage();\r\n console.log(validationObj)\r\n // let isAddAllow = handleBackDatedAdd();\r\n let isAddAllow;\r\n await handleBackDatedAdd().then(d => {\r\n console.log(d)\r\n isAddAllow = d\r\n })\r\n let obj = departmentReqObj;\r\n obj.ClientSerNo = parseInt(obj.ClientSerNo);\r\n obj.PropertySerNo = parseInt(obj.PropertySerNo);\r\n if(obj.InvoiceDate != null){\r\n obj.InvoiceDate = moment(obj.InvoiceDate).format(\"DD-MMM-YYYY\");\r\n }\r\n if(obj.ChallanDate != null){\r\n obj.ChallanDate = moment(obj.ChallanDate).format(\"DD-MMM-YYYY\");\r\n }\r\n console.log(obj, isAddAllow)\r\n if (isValid.isValid) {\r\n if (departmentReqObj.Mode == \"Add\") {\r\n if (isAddAllow) {\r\n AddEditRequestHeader(obj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(`${movementName}` + \" is inserted.\");\r\n let apiObj = departmentReqObj;\r\n apiObj.SerNo = parseInt(d.data.ReturnValue);\r\n apiObj.Mode = \"View\";\r\n setDepartmentReqObj(apiObj);\r\n setComboDisabledObj(defaultComboObj);\r\n fillDepartmentReq(parseInt(d.data.ReturnValue));\r\n }\r\n else {\r\n alertFunction(d.data.Message);\r\n }\r\n })\r\n }\r\n }\r\n else {\r\n AddEditRequestHeader(obj).then((d) => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(`${movementName}` + \" is updated.\");\r\n let apiObj = departmentReqObj;\r\n apiObj.SerNo = parseInt(d.data.ReturnValue);\r\n apiObj.Mode = \"View\";\r\n setDepartmentReqObj(apiObj);\r\n setComboDisabledObj(defaultComboObj);\r\n fillDepartmentReq(parseInt(d.data.ReturnValue));\r\n }\r\n else {\r\n alertFunction(d.data.Message);\r\n }\r\n })\r\n }\r\n\r\n // else {\r\n // alertFunction(\"You are not authorize to add.\")\r\n // }\r\n }\r\n else {\r\n alertFunction(isValid.Message)\r\n }\r\n }\r\n useEffect(() => {\r\n if (props.para.ClientSerNo != undefined && props.para.PropertySerNo != undefined) {\r\n fillMovementData();\r\n fillDepartmentData();\r\n fillVendorData();\r\n fillStoreData();\r\n fillTnC();\r\n fillUserRights();\r\n fillMonthClosing();\r\n GetPropertyParameterByKeys(props.para.ClientSerNo, props.para.PropertySerNo, propertyParameters).then((d) => {\r\n d.data.forEach((x) => {\r\n if (x.key == \"InvBusinessDate\") {\r\n setInvBusinessDate(x.value);\r\n if (props.para.Mode == \"Add\") {\r\n setDepartmentReqObj((prev) => ({ ...prev, TransDateTime: x.value }))\r\n setComboDisabledObj((prev) => ({\r\n ...prev,\r\n Date: false,\r\n MovementID: false,\r\n Source: false,\r\n Dest: false,\r\n DocumentRef: false,\r\n Discount: false,\r\n Percentage: false,\r\n TaxInclusive: false,\r\n ReqBy: false,\r\n TnC: false,\r\n Note: false,\r\n ChallanDate: false,\r\n ChallanNo: false,\r\n InvoiceNo: false,\r\n InvoiceDate: false\r\n }))\r\n }\r\n }\r\n if (x.key == \"RestrictBackDateEdit\") {\r\n setRestrictBackDateEdit(x.value);\r\n }\r\n if (x.key == \"AllowEditBackDatedTransDay\") {\r\n setAllowEditTransDay(x.value);\r\n }\r\n if (x.key === \"IsUseMonthClosing\") {\r\n setIsMonthlyClosing(x.value);\r\n }\r\n })\r\n });\r\n }\r\n\r\n if (props.para.SerNo != undefined) {\r\n fillDepartmentReq(props.para.SerNo);\r\n fillGrid(props.para.SerNo);\r\n\r\n }\r\n }, [])//props.para\r\n\r\n return (\r\n { props.onClose() }}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    {movementName}

    \r\n
    \r\n
    \r\n x == departmentReqObj.MovementID)) ? true : false}\r\n onClick={() => {\r\n if (departmentReqObj.IsCompleted) {\r\n alertFunction(\"Transaction is completed\")\r\n }\r\n else {\r\n if (departmentReqObj.MovementID == \"DPURCREQ\") {\r\n handleUserRights(\"82\").then(d => {\r\n console.log(d)\r\n if (d) {\r\n setShowMMSPurchReqItemsModal(true);\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n }\r\n if (departmentReqObj.MovementID == \"STRREQ\") {\r\n handleUserRights(\"81\").then(d => {\r\n console.log(d)\r\n if (d) {\r\n setShowMMSPurchReqItemsModal(true);\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n }\r\n if (departmentReqObj.MovementID == \"PURCREQ\") {\r\n handleUserRights(\"83\").then(d => {\r\n console.log(d)\r\n if (d) {\r\n setShowMMSPurchReqItemsModal(true);\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n }\r\n else {\r\n handleUserRights(\"79\").then(d => {\r\n console.log(d)\r\n if (d) {\r\n setShowMMSPurchReqItemsModal(true);\r\n }\r\n else {\r\n console.log(\"No Operation\");\r\n }\r\n })\r\n }\r\n }\r\n }}>Add\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setDepartmentReqObj((prev) => ({ ...prev, MovementID: item.key, SourceSerNo: 0, DestSerNo: 0 }));\r\n if (item.key == \"Sel\") {\r\n setMovementName(\"\");\r\n }\r\n else {\r\n setMovementName(item.value);\r\n }\r\n\r\n setValidationObj((prev) => ({ ...prev, MovementID: \"\" }));\r\n for (let i = 0; i < movementList.length; i++) {\r\n if (movementList[i].MovementID == item.key) {\r\n setDepartmentReqObj((prev) => ({ ...prev, SourceType: movementList[i].SourceType, DestType: movementList[i].DestType }));\r\n break;\r\n }\r\n }\r\n }}\r\n selectedSerNo={departmentReqObj.MovementID}\r\n >\r\n
    \r\n Transaction No.\r\n {\r\n setDepartmentReqObj((prev) => ({ ...prev, TransDateTime: e }))\r\n setValidationObj((prev) => ({ ...prev, TransDateTime: \"\" }));\r\n // handleBackDatedAdd();\r\n }}\r\n label=\"Transaction Date\"\r\n >\r\n {\r\n departmentReqObj.SourceType == \"D\" ?\r\n departmentCombo(departmentReqObj.SourceSerNo, \"Src\")\r\n :\r\n departmentReqObj.SourceType == \"V\" ?\r\n vendorCombo(departmentReqObj.SourceSerNo, \"Src\")\r\n :\r\n departmentReqObj.SourceType == \"S\" ?\r\n storeCombo(departmentReqObj.SourceSerNo, \"Src\")\r\n :\r\n null\r\n\r\n }\r\n {\r\n\r\n departmentReqObj.DestType == \"D\"\r\n ?\r\n departmentCombo(departmentReqObj.DestSerNo, \"Dst\")\r\n :\r\n departmentReqObj.DestType == \"V\" ?\r\n vendorCombo(departmentReqObj.DestSerNo, \"Dst\")\r\n :\r\n departmentReqObj.DestType == \"S\"\r\n ?\r\n storeCombo(departmentReqObj.DestSerNo, \"Dst\")\r\n :\r\n null\r\n }\r\n {\r\n departmentReqObj.MovementID == \"STRREQ\" || departmentReqObj.MovementID == \"ISSUE\" || departmentReqObj.MovementID == \"PURCHASE\" || departmentReqObj.MovementID == \"DP\" ?\r\n setDepartmentReqObj((prev) => ({ ...prev, DocumentReferenceNo: v }))} value={departmentReqObj.DocumentReferenceNo}>Document Reference No.\r\n :\r\n <>\r\n {/*
    \r\n
    \r\n {\r\n setDepartmentReqObj((prev) => ({ ...prev, Discount: (v) }));\r\n setValidationObj((prev) => ({ ...prev, Discount: \"\" }));\r\n }} className=\"form-group\" value={departmentReqObj.Discount}>Discount\r\n\r\n
    \r\n
    \r\n
    \r\n {\r\n setDepartmentReqObj((prev) => ({ ...prev, IsPercentage: d }));\r\n setValidationObj((prev) => ({ ...prev, Discount: \"\" }));\r\n }} className=\"form-group\" >In %\r\n
    \r\n
    \r\n
    */}\r\n
    \r\n setDepartmentReqObj((prev) => ({ ...prev, IsTaxInclusive: d }))} className=\"form-group\" >All price are inclusive of taxes\r\n
    \r\n \r\n }\r\n setDepartmentReqObj((prev) => ({ ...prev, RequestedBy: v }))}>Requested By\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n setDepartmentReqObj((prev) => ({ ...prev, DocRemarkSerNo: item.key }))}\r\n selectedSerNo={departmentReqObj.DocRemarkSerNo}\r\n >\r\n
    \r\n {\r\n departmentReqObj.MovementID == \"DP\" ||\r\n departmentReqObj.MovementID == \"DPURCREQ\" ||\r\n departmentReqObj.MovementID == \"PURCHASE\" ||\r\n departmentReqObj.MovementID == \"PURCREQ\" ?\r\n <>\r\n
    \r\n
    \r\n setDepartmentReqObj((prev) => ({ ...prev, ChallanNo: v }))}>Challan No.\r\n\r\n
    \r\n
    \r\n {\r\n setDepartmentReqObj((prev) => ({ ...prev, ChallanDate: e }));\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n setDepartmentReqObj((prev) => ({ ...prev, InvoiceNo: v }))}>Invoice No.\r\n\r\n
    \r\n
    \r\n {\r\n setDepartmentReqObj((prev) => ({ ...prev, InvoiceDate: e }));\r\n }}\r\n >\r\n
    \r\n
    \r\n \r\n :\r\n <>\r\n }\r\n setDepartmentReqObj((prev) => ({ ...prev, Remarks: v }))}>Note\r\n
    \r\n
    \r\n {departmentReqObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n {/* Add */}\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n {\r\n //setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n //setReservationStatus(v);\r\n //setShowGuestPopup(true);\r\n }}\r\n //fixedHeaderNo={0}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n actionPopup(item)\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Sub Total : {subTotal.toFixed(4)}
    \r\n
    \r\n
    \r\n {\r\n console.log(departmentReqObj)\r\n if ((departmentReqObj.IsCompleted == false || departmentReqObj.IsCompleted == undefined) && departmentReqObj.MovementID != \"PURCHASE\" && departmentReqObj.MovementID != \"DP\") {\r\n setShowMMSTaxBreakupModal(!showMMSTaxBreakupModal)\r\n }\r\n else {\r\n alertFunction(\"Transaction is completed.\")\r\n }\r\n }}\r\n >\r\n Add : Taxes\r\n
    \r\n
    {departmentReqObj.TaxAmount.toFixed(4)}
    \r\n
    \r\n
    \r\n
    Sub-Total
    \r\n
    {(departmentReqObj.TaxAmount + subTotal).toFixed(4)}
    \r\n
    \r\n
    \r\n
    Less : Discount
    \r\n
    {departmentReqObj.TransDiscountAmount.toFixed(4)}
    \r\n
    \r\n
    \r\n {\r\n console.log(departmentReqObj)\r\n if ((departmentReqObj.IsCompleted == false || departmentReqObj.IsCompleted == undefined) && departmentReqObj.MovementID != \"PURCHASE\" && departmentReqObj.MovementID != \"DP\") {\r\n setShowMMSOtherChargesModal(!showMMSOtherChargesModal)\r\n }\r\n else {\r\n alertFunction(\"Transaction is completed.\")\r\n }\r\n }}\r\n >\r\n Add : Other Charges\r\n
    \r\n
    {departmentReqObj.OtherChargeAmount.toFixed(4)}
    \r\n
    \r\n
    \r\n
    Other Charges' Tax
    \r\n
    {departmentReqObj.OtherChargeTaxAmount.toFixed(4)}
    \r\n
    \r\n
    \r\n
    \r\n
    Transaction Total : {(subTotal + departmentReqObj.TaxAmount + departmentReqObj.TransDiscountAmount + departmentReqObj.OtherChargeAmount + departmentReqObj.OtherChargeTaxAmount).toFixed(4)}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n {showMMSPurchReqItemsModal ? (\r\n departmentReqObj.MovementID == \"DPURCREQ\" ||\r\n departmentReqObj.MovementID == \"PURCREQ\" ?\r\n {\r\n setShowMMSPurchReqItemsModal(false)\r\n fillGrid(departmentReqObj.SerNo);\r\n fillDepartmentReq(departmentReqObj.SerNo)\r\n }}\r\n para={departmentReqObj}\r\n MovementName={movementName}\r\n >\r\n :\r\n departmentReqObj.MovementID == \"STRREQ\" ?\r\n {\r\n setShowMMSPurchReqItemsModal(false)\r\n fillGrid(departmentReqObj.SerNo);\r\n fillDepartmentReq(departmentReqObj.SerNo)\r\n }}\r\n para={departmentReqObj}\r\n MovementName={movementName}\r\n >\r\n :\r\n departmentReqObj.MovementID == \"ISSUE\" ?\r\n null\r\n :\r\n departmentReqObj.MovementID == \"PURCHASE\" ?\r\n null\r\n :\r\n {\r\n setShowMMSPurchReqItemsModal(false)\r\n fillGrid(departmentReqObj.SerNo);\r\n fillDepartmentReq(departmentReqObj.SerNo)\r\n }}\r\n para={departmentReqObj}\r\n MovementName={movementName}\r\n >\r\n ) : null}\r\n {\r\n showMMSTaxBreakupModal ?\r\n {\r\n setShowMMSTaxBreakupModal(!showMMSTaxBreakupModal)\r\n }}\r\n para={departmentReqObj}\r\n >\r\n :\r\n null\r\n }\r\n {\r\n showMMSOtherChargesModal ?\r\n {\r\n setShowMMSOtherChargesModal(!showMMSOtherChargesModal)\r\n setTimeout(() => {\r\n fillDepartmentReq(departmentReqObj.SerNo)\r\n }, 10);\r\n }}\r\n para={departmentReqObj}\r\n >\r\n :\r\n null\r\n }\r\n \r\n \r\n )\r\n}","import React from 'react';\r\nimport {\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnPlainButton,\r\n InnModalPopup, InnTextarea, useConfirm,\r\n} from '../../../../../component';\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from '../../../../../reducer/authSlice';\r\nimport { useState } from 'react';\r\nimport { ApproveStoreRequisition, GetCurrentStock, GetIssueTransactionList, GetItemLastRequestAndPurchaseDetail, GetRequisitionItemList, IssueStoreRequisition } from '../../../../../services/inventoryMasterService';\r\nimport { useEffect } from 'react';\r\nimport { useAlert } from '../../../../../utils/hooks/useAlert';\r\nimport moment from 'moment';\r\n\r\nexport function ApproveStoreRequisitionModalPopup(props) {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const { innkeyAlert } = useAlert();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n //#region state\r\n const [list, setList] = useState([]);\r\n const [serNo, setSerNo] = useState(props.obj.SerNo);\r\n const [IsIssue, setIsIssue] = useState(props.obj.IsIssue);\r\n const [Mode, setMode] = useState(props.obj.Mode);\r\n const [selectedItem, setSelectedItem] = useState({});\r\n const [total, setTotal] = useState(0);\r\n const [IsChange, setIsChange] = useState(false);\r\n const [lastPurchaseObj, setLastPurchaseObj] = useState({});\r\n const [IsLoaded, setIsLoaded] = useState(false);\r\n //#endregion\r\n\r\n //#region api\r\n const fillItemList = (IsSelect) => {\r\n if (IsIssue) {\r\n GetIssueTransactionList(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), serNo, Mode).then(async d => {\r\n if (d.data.length > 0 && IsSelect) {\r\n setSelectedItem(d.data[0]);\r\n fillGetItemLastRequestAndPurchaseDetail(serNo, d.data[0].RmitSerNo);\r\n }\r\n //let temptotal = 0;\r\n d.data.forEach(async x => {\r\n x.AppQty = x.AppQty.toFixed(3);\r\n x.IssQty = x.IssQty.toFixed(3);\r\n //temptotal += parseFloat(x.Value);\r\n });\r\n //setTotal(temptotal);\r\n console.log(\"Changed data\", d.data);\r\n setTimeout(() => {\r\n setList(d.data);\r\n setIsLoaded(true);\r\n setIsChange(true);\r\n }, 50);\r\n }).catch(d => {\r\n console.error(d);\r\n });\r\n }\r\n else {\r\n GetRequisitionItemList(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), serNo).then(d => {\r\n if (d.data.length > 0 && IsSelect) {\r\n setSelectedItem(d.data[0]);\r\n fillGetItemLastRequestAndPurchaseDetail(serNo, d.data[0].RmitSerNo);\r\n }\r\n //let temptotal = 0;\r\n d.data.forEach(x => {\r\n x.AppQty = x.AppQty.toFixed(3);\r\n //temptotal += parseFloat(x.Value);\r\n });\r\n //setTotal(temptotal);\r\n setTimeout(() => {\r\n setList(d.data);\r\n setIsChange(true);\r\n }, 100);\r\n }).catch(ex => {\r\n console.log(ex);\r\n setList([]);\r\n setTotal(0);\r\n setSelectedItem({});\r\n });\r\n }\r\n };\r\n const fillGetItemLastRequestAndPurchaseDetail = (SerNo, RmitSerNo) => {\r\n GetItemLastRequestAndPurchaseDetail(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), SerNo, RmitSerNo).then(d => {\r\n if (d.data === '') {\r\n setLastPurchaseObj({\r\n LastRequestedDate: '--',\r\n LastRequestedQty: 0,\r\n LastPurchaseDate: '--',\r\n LastPurchaseQty: 0\r\n });\r\n } else {\r\n setLastPurchaseObj(d.data);\r\n }\r\n });\r\n };\r\n //#endregion\r\n\r\n //#region events \r\n const onCurrStockRefClick = async () => {\r\n let arr = JSON.parse(JSON.stringify(list));\r\n for (let i = 0; i < arr.length; i++) {\r\n await GetCurrentStock(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), arr[i].StoreSerNo, list[i].RmitSerNo).then(o => {\r\n if (o.data.StockQty === undefined) {\r\n if (Mode === 'Edit') {\r\n arr[i][\"CurrQty\"] = arr[i].TempQty;\r\n } else {\r\n arr[i][\"CurrQty\"] = 0;\r\n }\r\n arr[i][\"UnitConversion\"] = 0;\r\n } else {\r\n if (Mode === \"Edit\") {\r\n arr[i][\"CurrQty\"] = parseFloat(o.data.StockQty) + parseFloat(arr[i].TempQty);\r\n } else {\r\n arr[i][\"CurrQty\"] = parseFloat(o.data.StockQty);\r\n }\r\n arr[i][\"UnitConversion\"] = o.data.UnitConversion;\r\n }\r\n });\r\n if (i === list.length - 1) {\r\n setList(arr);\r\n }\r\n }\r\n };\r\n // const onRemoveItem = async (item) => {\r\n // let arr = JSON.parse(JSON.stringify(list));\r\n // if (arr.length > 1) {\r\n // let isConfirmed = await innkeyAlert(\"Would you like to remove an item?\");\r\n // if (isConfirmed) {\r\n // let temp = arr.filter(x => x.SubSerNo !== item.SubSerNo);\r\n // setList(temp);\r\n // setSelectedItem(temp[0]);\r\n // setIsChange(true);\r\n // }\r\n // } else {\r\n // alertFunction(\"There should be at least one item.\");\r\n // }\r\n // };\r\n const onQtyBlur = (e, item) => {\r\n let arr = JSON.parse(JSON.stringify(list));\r\n for (let i = 0; i < arr.length; i++) {\r\n if (arr[i].SubSerNo === parseInt(item.SubSerNo)) {\r\n if (!isNaN(e.target.value) && e.target.value?.trim() !== '') {\r\n arr[i].AppQty = parseFloat(e.target.value).toFixed(3);\r\n arr[i].Value = parseFloat(item.ItemRate * e.target.value);\r\n }\r\n else {\r\n setTotal(0);\r\n arr[i].AppQty = 0;\r\n arr[i].Value = 0;\r\n }\r\n }\r\n }\r\n setList(arr);\r\n setIsChange(true);\r\n };\r\n const onIssQtyBlur = (e, item) => {\r\n console.error(\"e.target.value\", e.target.value, item.CurrQty, item.AppQty);\r\n let arr = JSON.parse(JSON.stringify(list));\r\n for (let i = 0; i < arr.length; i++) {\r\n if (arr[i].SubSerNo === parseInt(item.SubSerNo)) {\r\n if (!isNaN(e.target.value) && e.target.value?.trim() !== '') {\r\n arr[i].IssQty = parseFloat(e.target.value).toFixed(3);\r\n arr[i].Value = parseFloat(item.ItemRate * e.target.value);\r\n }\r\n else {\r\n setTotal(0);\r\n arr[i].AppQty = 0;\r\n arr[i].Value = 0;\r\n }\r\n }\r\n }\r\n setList(arr);\r\n setIsChange(true);\r\n };\r\n const onQtyChange = (e) => {\r\n console.log(e);\r\n };\r\n const onItemClick = (item) => {\r\n console.log(\"clicked\");\r\n setSelectedItem(item);\r\n fillGetItemLastRequestAndPurchaseDetail(serNo, item.RmitSerNo);\r\n };\r\n const onApprovalNoteChange = (e, item) => {\r\n if (selectedItem !== undefined) {\r\n let arr = JSON.parse(JSON.stringify(list));\r\n for (let i = 0; i < arr.length; i++) {\r\n if (arr[i].SubSerNo === item.SubSerNo) {\r\n if (IsIssue) {\r\n arr[i].IssRemarks = e.target.value;\r\n } else {\r\n arr[i].AppRemarks = e.target.value;\r\n }\r\n setSelectedItem(arr[i]);\r\n break;\r\n }\r\n }\r\n setList(arr);\r\n }\r\n };\r\n const IsPageValid = () => {\r\n let obj = {\r\n isValid: true,\r\n ErrorMessage: ''\r\n };\r\n if (list.length === 0) {\r\n obj.isValid = false;\r\n obj.ErrorMessage = 'No items available to process.';\r\n }\r\n else {\r\n for (let x = 0; x < list.length; x++) {\r\n if (IsIssue) {\r\n let min = 0;\r\n let label = '';\r\n if (parseFloat(list[x].CurrQty) >= parseFloat(list[x].AppQty)) {\r\n min = list[x].AppQty * list[x].UnitConversion;\r\n label = 'AQ';\r\n } else {\r\n min = list[x].CurrQty * list[x].UnitConversion;\r\n label = 'CS';\r\n }\r\n\r\n if (isNaN(list[x].IssQty)) {\r\n obj.isValid = false;\r\n obj.ErrorMessage = \"Issue quantity is not valid\";\r\n break;\r\n } else if (list[x].IssQty * parseFloat(list[x].UnitConversion) > parseFloat(min)) {\r\n obj.isValid = false;\r\n if (label === 'AQ') {\r\n obj.ErrorMessage = 'Issue quantity should be equal or less than approve quantity';\r\n }\r\n else if (label === 'CS') {\r\n obj.ErrorMessage = `Current stock is less than ${label} qty.`;\r\n }\r\n break;\r\n }\r\n }\r\n else {\r\n if (isNaN(list[x].AppQty)) {\r\n obj.isValid = false;\r\n obj.ErrorMessage = \"Approve Quantity is not valid\";\r\n break;\r\n }\r\n else if (parseFloat(list[x].AppQty) > parseFloat(list[x].ReqQty)) {\r\n obj.isValid = false;\r\n obj.ErrorMessage = \"Approve Quantity should be less than Request Quantity\";\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return obj;\r\n };\r\n const onApproveClick = () => {\r\n let IsValid = IsPageValid();\r\n\r\n if (IsValid.isValid) {\r\n let tempList = JSON.parse(JSON.stringify(list));\r\n tempList.forEach(x => {\r\n if (IsIssue) {\r\n x.AppQty = parseFloat(x.AppQty);\r\n x.IssQty = parseFloat(x.IssQty);\r\n } else {\r\n x.AppQty = parseFloat(x.AppQty);\r\n }\r\n });\r\n const obj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n SerNo: parseInt(serNo),\r\n UserID: currUser.UserID,\r\n Mode: Mode,\r\n ItemList: tempList\r\n };\r\n console.error(\"Final api obj\", obj);\r\n if (IsIssue) {\r\n IssueStoreRequisition(obj).then(d => {\r\n alertFunction(d.data.Message);\r\n if (d.data.Code === '200') {\r\n console.log(d.data);\r\n if (d.data.Code !== '-1') {\r\n props.OnClose();\r\n }\r\n }\r\n });\r\n } else {\r\n ApproveStoreRequisition(obj).then(d => {\r\n alertFunction(d.data.Message);\r\n if (d.data.Code === '200') {\r\n props.OnClose();\r\n }\r\n });\r\n }\r\n } else {\r\n alertFunction(IsValid.ErrorMessage);\r\n }\r\n };\r\n //#endregion\r\n useEffect(() => {\r\n console.log(\"Selected item change\", selectedItem);\r\n }, [selectedItem]);\r\n useEffect(() => {\r\n fillItemList(true);\r\n }, []);\r\n useEffect(() => {\r\n if (IsChange === true) {\r\n let arr = JSON.parse(JSON.stringify(list));\r\n let temptotal = 0;\r\n for (let i = 0; i < arr.length; i++) {\r\n if (!isNaN(arr[i].Value)) {\r\n temptotal += arr[i].Value;\r\n }\r\n }\r\n setTotal(temptotal);\r\n setIsChange(false);\r\n }\r\n }, [IsChange]);\r\n useEffect(() => {\r\n if (IsLoaded) {\r\n console.log(\"before stock refresh\", list);\r\n onCurrStockRefClick();\r\n }\r\n }, [IsLoaded]);\r\n\r\n useEffect(() => {\r\n console.log(list);\r\n }, [list]);\r\n\r\n\r\n return (\r\n {\r\n if (props.OnClose !== undefined) {\r\n props.OnClose();\r\n }\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    {IsIssue ? \"Issue\" : \"Approve\"} Item ({props.obj?.TransNo})

    \r\n
    \r\n
    \r\n {(IsIssue) ? \"Issue\" : \"Approve\"}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {IsIssue ?\r\n <>\r\n \r\n \r\n \r\n :\r\n null}\r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n {list.map((item, index) => {\r\n return (\r\n {\r\n onItemClick(item);\r\n }}\r\n className={(item.SubSerNo === selectedItem.SubSerNo) ? \"active\" : \"\"}\r\n >\r\n \r\n \r\n \r\n \r\n {IsIssue ?\r\n <>\r\n \r\n \r\n \r\n :\r\n null}\r\n \r\n \r\n \r\n {/* */}\r\n \r\n );\r\n })}\r\n \r\n
    Item NameUnitReq. QtyApp. QtyCurr. StockIss. QtyItem RateValueRemarksAction
    {item.ItemName}{item.UnitofMeasure}{item.ReqQty.toFixed(3)}\r\n parseFloat(item.ReqQty) || parseFloat(item.AppQty) < 0) ?\r\n \"text-danger\"\r\n :\r\n ''\r\n }\r\n `}\r\n tag=\"decimal\"\r\n value={item.AppQty}\r\n onChange={onQtyChange}\r\n onBlur={(e) => {\r\n onQtyBlur(e, item);\r\n }}\r\n disabled={IsIssue}\r\n >\r\n \r\n {item.CurrQty?.toFixed(3)}\r\n parseFloat(item.AppQty) || parseFloat(item.IssQty) > parseFloat(item.CurrQty)) ?\r\n \"text-danger\"\r\n :\r\n ''\r\n }\r\n `}\r\n tag=\"decimal\"\r\n value={item.IssQty}\r\n onChange={onQtyChange}\r\n onBlur={(e) => {\r\n onIssQtyBlur(e, item);\r\n }}\r\n >\r\n \r\n {item.ItemRate.toFixed(4)}{item.Value.toFixed(4)}\r\n {\r\n onApprovalNoteChange(e, item);\r\n }}\r\n >\r\n \r\n {\r\n onRemoveItem(item);\r\n }}\r\n >\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    General Remarks
    \r\n
    \r\n {(IsIssue) ? selectedItem.AppRemarks : selectedItem.Remarks}\r\n
    \r\n
    \r\n
    Total Amount
    {total.toFixed(4)}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Details
    Last Requested Date{lastPurchaseObj.LastRequestedDate}
    Last Requested Quantity{parseFloat(lastPurchaseObj.LastRequestedQty).toFixed(3)}
    Last Received Date{lastPurchaseObj.LastPurchaseDate}
    Last Received Quantity{parseFloat(lastPurchaseObj.LastPurchaseQty).toFixed(3)}
    \r\n {(IsIssue) ?\r\n \r\n Refresh Stock\r\n \r\n :\r\n null}\r\n {/* \r\n Approval Note\r\n */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}","import React from 'react';\r\nimport {\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnPlainButton,\r\n InnModalPopup,\r\n InnTextarea,\r\n useConfirm,\r\n InnCheckbox,\r\n InnSingleSelectDropdown\r\n} from '../../../../../component';\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from '../../../../../reducer/authSlice';\r\nimport { useState } from 'react';\r\nimport { ApprovePurchaseRequisition, ApproveStoreRequisition, GetCurrentStock, GetIssueTransactionList, GetItemLastRequestAndPurchaseDetail, GetRequisitionItemList, ProcessPurchaseRequest } from '../../../../../services/inventoryMasterService';\r\nimport { useEffect } from 'react';\r\nimport { useAlert } from '../../../../../utils/hooks/useAlert';\r\nimport moment from 'moment';\r\nimport { GetTransactionMaster } from '../../../../../services/reservationService';\r\n\r\nexport function ApprovePurchaseRequisitionModalPopup(props) {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const { innkeyAlert } = useAlert();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n //#region state\r\n const [list, setList] = useState([]);\r\n const [serNo, setSerNo] = useState(props.obj.SerNo);\r\n const [Mode, setMode] = useState(props.obj.Mode);\r\n const [IsPurchase, setIsPurchase] = useState(props.obj.IsPurchase);\r\n const [selectedItem, setSelectedItem] = useState({});\r\n const [total, setTotal] = useState(0);\r\n const [IsChange, setIsChange] = useState(false);\r\n const [lastPurchaseObj, setLastPurchaseObj] = useState({});\r\n const [transactionList, setTransactionList] = useState([]);\r\n const [IsLoaded, setIsLoaded] = useState(false);\r\n //#endregion\r\n\r\n //#region api\r\n const filTransactionMaster = () => {\r\n GetTransactionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"C\", \"ALL\").then(d => {\r\n console.log(d.data);\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.filter(x => x.Module === 'I').forEach(element => {\r\n temp.push({ key: element.TransactionSerNo, value: element.Name });\r\n });\r\n setTransactionList(temp);\r\n });\r\n };\r\n const fillItemList = (IsSelect) => {\r\n if (IsPurchase) {\r\n GetIssueTransactionList(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), serNo, Mode).then(async d => {\r\n if (d.data.length > 0 && IsSelect) {\r\n setSelectedItem(d.data[0]);\r\n fillGetItemLastRequestAndPurchaseDetail(serNo, d.data[0].RmitSerNo);\r\n }\r\n //let temptotal = 0;\r\n d.data.forEach(async x => {\r\n x.AppQty = x.AppQty.toFixed(3);\r\n x.IssQty = x.IssQty.toFixed(3);\r\n //temptotal += parseFloat(x.Value);\r\n });\r\n //setTotal(temptotal);\r\n console.log(\"Changed data\", d.data, props.obj.MovementID);\r\n setTimeout(() => {\r\n setList(d.data);\r\n setIsChange(true);\r\n if (props.obj.MovementID === 'PURCHASE' || props.obj.MovementID === 'PURCREQ') {\r\n setIsLoaded(true);\r\n }\r\n }, 50);\r\n }).catch(d => {\r\n console.error(d);\r\n });\r\n } else {\r\n GetRequisitionItemList(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), serNo).then(d => {\r\n if (d.data.length > 0 && IsSelect) {\r\n setSelectedItem(d.data[0]);\r\n fillGetItemLastRequestAndPurchaseDetail(serNo, d.data[0].RmitSerNo);\r\n }\r\n //let temptotal = 0;\r\n d.data.forEach(x => {\r\n x.AppQty = x.AppQty.toFixed(3);\r\n x.IsDiscountable = false;\r\n x.IsPercentage = false;\r\n //temptotal += parseFloat(x.Value);\r\n });\r\n // setTotal(temptotal);\r\n setTimeout(() => {\r\n setList(d.data);\r\n setIsChange(true);\r\n if (props.obj.MovementID === 'PURCREQ') {\r\n setIsLoaded(true);\r\n }\r\n }, 50);\r\n }).catch(ex => {\r\n console.log(ex);\r\n setList([]);\r\n setTotal(0);\r\n setSelectedItem({});\r\n });\r\n }\r\n };\r\n const fillGetItemLastRequestAndPurchaseDetail = (SerNo, RmitSerNo) => {\r\n GetItemLastRequestAndPurchaseDetail(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), SerNo, RmitSerNo).then(d => {\r\n if (d.data === '') {\r\n setLastPurchaseObj({\r\n LastRequestedDate: '--',\r\n LastRequestedQty: 0,\r\n LastPurchaseDate: '--',\r\n LastPurchaseQty: 0\r\n });\r\n } else {\r\n setLastPurchaseObj(d.data);\r\n }\r\n //setLastPurchaseObj(d.data);\r\n });\r\n };\r\n //#endregion\r\n\r\n //#region events \r\n // const onRemoveItem = async (item) => {\r\n // let arr = JSON.parse(JSON.stringify(list));\r\n // if (arr.length > 1) {\r\n // let isConfirmed = await innkeyAlert(\"Would you like to remove an item?\");\r\n // if (isConfirmed) {\r\n // let temp = arr.filter(x => x.SubSerNo !== item.SubSerNo);\r\n // setList(temp);\r\n // setSelectedItem(temp[0]);\r\n // setIsChange(true);\r\n // }\r\n // } else {\r\n // alertFunction(\"There should be at least one item.\");\r\n // }\r\n // };\r\n const onCurrStockRefClick = async () => {\r\n let arr = JSON.parse(JSON.stringify(list));\r\n for (let i = 0; i < arr.length; i++) {\r\n await GetCurrentStock(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), arr[i].StoreSerNo, list[i].RmitSerNo).then(o => {\r\n if (o.data.StockQty === undefined) {\r\n arr[i][\"CurrQty\"] = 0;\r\n } else {\r\n arr[i][\"CurrQty\"] = parseFloat(o.data.StockQty);\r\n }\r\n });\r\n if (i === list.length - 1) {\r\n setList(arr);\r\n }\r\n }\r\n };\r\n const onPurcQtyBlur = (e, item) => {\r\n let arr = JSON.parse(JSON.stringify(list));\r\n for (let i = 0; i < arr.length; i++) {\r\n if (arr[i].SubSerNo === parseInt(item.SubSerNo)) {\r\n if (!isNaN(e.target.value) && e.target.value?.trim() !== '') {\r\n arr[i].IssQty = parseFloat(e.target.value).toFixed(3);\r\n arr[i].Value = parseFloat(item.ItemRate * e.target.value);\r\n }\r\n else {\r\n setTotal(0);\r\n arr[i].IssQty = 0;\r\n arr[i].Value = 0;\r\n }\r\n }\r\n }\r\n setList(arr);\r\n setIsChange(true);\r\n };\r\n const onQtyBlur = (e, item) => {\r\n let arr = JSON.parse(JSON.stringify(list));\r\n for (let i = 0; i < arr.length; i++) {\r\n if (arr[i].SubSerNo === parseInt(item.SubSerNo)) {\r\n if (!isNaN(e.target.value) && e.target.value?.trim() !== '') {\r\n arr[i].AppQty = parseFloat(e.target.value).toFixed(3);\r\n arr[i].Value = parseFloat(item.ItemRate * e.target.value);\r\n }\r\n else {\r\n setTotal(0);\r\n arr[i].AppQty = 0;\r\n arr[i].Value = 0;\r\n }\r\n }\r\n }\r\n setList(arr);\r\n setIsChange(true);\r\n };\r\n const onQtyChange = (e) => {\r\n console.log(e);\r\n };\r\n const onItemClick = (item) => {\r\n console.log(\"clicked\");\r\n setSelectedItem(item);\r\n fillGetItemLastRequestAndPurchaseDetail(serNo, item.RmitSerNo);\r\n };\r\n const onApprovalNoteChange = (e) => {\r\n if (selectedItem !== undefined) {\r\n let arr = JSON.parse(JSON.stringify(list));\r\n for (let i = 0; i < arr.length; i++) {\r\n if (arr[i].SubSerNo === selectedItem.SubSerNo) {\r\n if (IsPurchase) {\r\n arr[i].IssRemarks = e;\r\n setSelectedItem(arr[i]);\r\n } else {\r\n arr[i].AppRemarks = e;\r\n setSelectedItem(arr[i]);\r\n }\r\n break;\r\n }\r\n }\r\n setList(arr);\r\n }\r\n };\r\n const onIsDiscountableChange = (e) => {\r\n let arr = JSON.parse(JSON.stringify(list));\r\n for (let i = 0; i < arr.length; i++) {\r\n if (arr[i].SubSerNo === selectedItem.SubSerNo) {\r\n if (e) {\r\n arr[i].IsDiscountable = e;\r\n } else {\r\n arr[i].IsDiscountable = e;\r\n arr[i].IsPercentage = false;\r\n arr[i].IsDiscountable = 0;\r\n }\r\n setSelectedItem(arr[i]);\r\n break;\r\n }\r\n }\r\n setList(arr);\r\n };\r\n const onIsPercentageChange = (e) => {\r\n let arr = JSON.parse(JSON.stringify(list));\r\n for (let i = 0; i < arr.length; i++) {\r\n if (arr[i].SubSerNo === selectedItem.SubSerNo) {\r\n if (e) {\r\n arr[i].IsPercentage = e;\r\n } else {\r\n arr[i].IsPercentage = e;\r\n }\r\n //arr[i].Discount = 0;\r\n setSelectedItem(arr[i]);\r\n break;\r\n }\r\n }\r\n setList(arr);\r\n };\r\n const onDiscountChange = (e) => {\r\n let arr = JSON.parse(JSON.stringify(list));\r\n for (let i = 0; i < arr.length; i++) {\r\n if (selectedItem.SubSerNo === arr[i].SubSerNo) {\r\n if (e.target.value.trim() !== \"\") {\r\n if (true) { //selectedItem.IsPercentage === true\r\n let temp = arr[i].Discount;\r\n arr[i].Discount = parseFloat(e.target.value);\r\n if (parseInt(e.target.value) > 100) {\r\n setSelectedItem(arr[i]);\r\n alertFunction(\"Entered discount is greater than 100 so it is restored to its previous value.\");\r\n setTimeout(() => {\r\n arr[i].Discount = temp;\r\n setSelectedItem(arr[i]);\r\n }, 50);\r\n } else {\r\n arr[i].Discount = parseFloat(e.target.value);\r\n setSelectedItem(arr[i]);\r\n }\r\n } else {\r\n let temp = arr[i].Discount;\r\n arr[i].Discount = parseFloat(e.target.value);\r\n if (parseInt(e.target.value) > parseFloat(arr[i].ItemRate * arr[i].AppQty)) {\r\n setSelectedItem(arr[i]);\r\n alertFunction(\"Entered discount is greater than item value so it is restored to its previous value.\");\r\n setTimeout(() => {\r\n arr[i].Discount = temp;\r\n setSelectedItem(arr[i]);\r\n }, 50);\r\n } else {\r\n arr[i].Discount = parseFloat(e.target.value);\r\n setSelectedItem(arr[i]);\r\n }\r\n }\r\n } else {\r\n arr[i].Discount = '';\r\n setSelectedItem(arr[i]);\r\n }\r\n }\r\n }\r\n setList(arr);\r\n };\r\n const onItemRateBlur = (e) => {\r\n console.warn(\"changed value to \", e.target.value);\r\n let arr = JSON.parse(JSON.stringify(list));\r\n console.log(e.target.value);\r\n for (let i = 0; i < arr.length; i++) {\r\n if (arr[i].SubSerNo === selectedItem.SubSerNo) {\r\n if (e.target.value.trim() !== '') {\r\n arr[i].ItemRate = parseFloat(e.target.value);\r\n arr[i].Value = parseFloat(arr[i].AppQty) * parseFloat(e.target.value);\r\n setSelectedItem(arr[i]);\r\n\r\n } else {\r\n let tempVal = arr[i].ItemRate;\r\n arr[i].ItemRate = 0;\r\n setSelectedItem(arr[i]);\r\n setTimeout(() => {\r\n arr[i].ItemRate = parseFloat(tempVal);\r\n setSelectedItem(arr[i]);\r\n }, 50);\r\n }\r\n break;\r\n }\r\n }\r\n setTimeout(() => {\r\n setList(arr);\r\n setIsChange(true);\r\n }, 50);\r\n };\r\n const IsPageValid = () => {\r\n let obj = {\r\n isValid: true,\r\n ErrorMessage: ''\r\n };\r\n if (list.length === 0) {\r\n obj.isValid = false;\r\n obj.ErrorMessage = 'No items available to process.';\r\n }\r\n else {\r\n for (let x = 0; x < list.length; x++) {\r\n if (list[x].TransactionSerNo === 0) {\r\n obj.isValid = false;\r\n obj.ErrorMessage = \"Please select valid charge type.\";\r\n }\r\n else if (list[x].Discount === '' || parseFloat(list[x].Discount) < 0) {\r\n obj.isValid = false;\r\n obj.ErrorMessage = \"Please enter valid discount.\";\r\n }\r\n else if (list[x].ItemRate === '' || list[x].ItemRate === 0) {\r\n obj.isValid = false;\r\n obj.ErrorMessage = 'Please enter valid item rate.';\r\n }\r\n\r\n if (IsPurchase) {\r\n if (isNaN(list[x].IssQty)) {\r\n obj.isValid = false;\r\n obj.ErrorMessage = \"Purchase quantity is not valid\";\r\n break;\r\n }\r\n else if (parseFloat(list[x].IssQty) > parseFloat(list[x].AppQty) || parseFloat(list[x].IssQty) < 0) {\r\n obj.isValid = false;\r\n obj.ErrorMessage = \"Purchase quantity should be less than approved quantity\";\r\n break;\r\n }\r\n if (Mode === 'Edit' && parseFloat(list[x].IssQty) < parseFloat(list[x].TempQty - list[x].CurrQty)) {\r\n obj.isValid = false;\r\n obj.ErrorMessage = \"Quantity error, check whether any of the products are issued\";\r\n break;\r\n }\r\n }\r\n else {\r\n if (isNaN(list[x].AppQty)) {\r\n obj.isValid = false;\r\n obj.ErrorMessage = \"Approve quantity is not valid\";\r\n break;\r\n }\r\n else if (parseFloat(list[x].AppQty) > parseFloat(list[x].ReqQty) || parseFloat(list[x].AppQty) < 0) {\r\n obj.isValid = false;\r\n obj.ErrorMessage = \"Approve quantity should be less than request quantity\";\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return obj;\r\n };\r\n const onApproveClick = () => {\r\n let IsValid = IsPageValid();\r\n\r\n if (IsValid.isValid) {\r\n let tempList = JSON.parse(JSON.stringify(list));\r\n tempList.forEach(x => {\r\n x.AppQty = parseFloat(x.AppQty);\r\n x.IssQty = parseFloat(x.IssQty);\r\n });\r\n console.warn(list);\r\n const obj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n SerNo: parseInt(serNo),\r\n UserID: currUser.UserID,\r\n Mode: Mode,\r\n ItemList: tempList\r\n };\r\n console.error('final api obj', obj);\r\n if (IsPurchase) {\r\n ProcessPurchaseRequest(obj).then(d => {\r\n alertFunction(d.data.Message);\r\n if (d.data.Code === '200') {\r\n props.OnClose();\r\n }\r\n });\r\n }\r\n else {\r\n ApprovePurchaseRequisition(obj).then(d => {\r\n alertFunction(d.data.Message);\r\n if (d.data.Code === '200') {\r\n props.OnClose();\r\n }\r\n });\r\n }\r\n } else {\r\n alertFunction(IsValid.ErrorMessage);\r\n }\r\n };\r\n //#endregion\r\n useEffect(() => {\r\n console.log(\"Selected item change\", selectedItem);\r\n }, [selectedItem]);\r\n useEffect(() => {\r\n fillItemList(true);\r\n filTransactionMaster();\r\n }, []);\r\n useEffect(() => {\r\n if (IsChange === true) {\r\n let arr = JSON.parse(JSON.stringify(list));\r\n let temptotal = 0;\r\n for (let i = 0; i < arr.length; i++) {\r\n if (!isNaN(arr[i].Value)) {\r\n temptotal += arr[i].Value;\r\n }\r\n }\r\n setTotal(temptotal);\r\n setIsChange(false);\r\n }\r\n }, [IsChange]);\r\n useEffect(() => {\r\n if (IsLoaded) {\r\n console.log(\"before stock refresh\", list);\r\n onCurrStockRefClick();\r\n }\r\n }, [IsLoaded]);\r\n\r\n useEffect(() => {\r\n console.log(list);\r\n }, [list]);\r\n\r\n return (\r\n {\r\n if (props.OnClose !== undefined) {\r\n props.OnClose();\r\n }\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    {(IsPurchase) ? \"Purchase\" : \"Approve\"} Item ({props.obj?.TransNo})

    \r\n
    \r\n
    \r\n {(IsPurchase) ? \"Purchase\" : \"Approve\"}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(props.obj.MovementID === 'PURCREQ' || props.obj.MovementID === 'PURCHASE') ? : null}\r\n {IsPurchase ? : null}\r\n {/* */}\r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n {list.map((item, index) => {\r\n return (\r\n {\r\n onItemClick(item);\r\n }}\r\n className={(item.SubSerNo === selectedItem.SubSerNo) ? \"active\" : \"\"}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n {(props.obj.MovementID === 'PURCREQ' || props.obj.MovementID === 'PURCHASE') ? : null}\r\n {IsPurchase ?\r\n <>\r\n\r\n \r\n {/* */}\r\n \r\n :\r\n null}\r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n
    Item NameUnitTaxReq. QtyApp. QtyCurr. StockPurc. QtyRemarksItem RateDiscountValueAction
    {item.ItemName}{item.UnitofMeasure}{item.ChargeName}{item.ReqQty.toFixed(3)}\r\n item.ReqQty || item.AppQty < 0) ?\r\n \"text-danger\"\r\n :\r\n ''\r\n }\r\n `}\r\n tag=\"decimal\"\r\n value={item.AppQty}\r\n onChange={onQtyChange}\r\n onBlur={(e) => {\r\n onQtyBlur(e, item);\r\n }}\r\n disabled={IsPurchase}\r\n >\r\n \r\n {item.CurrQty?.toFixed(3)}\r\n parseFloat(item.AppQty)) ?\r\n \"text-danger\"\r\n :\r\n ''\r\n }\r\n `}\r\n tag=\"decimal\"\r\n value={item.IssQty}\r\n onChange={onQtyChange}\r\n onBlur={(e) => {\r\n onPurcQtyBlur(e, item);\r\n }}\r\n >\r\n \r\n {item.IssRemarks}{item.ItemRate.toFixed(4)}{item.Discount !== '' ? item.Discount.toFixed(2) : ''}{item.Value?.toFixed(4)}
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    General Remarks
    \r\n
    \r\n {(IsPurchase) ? selectedItem.AppRemarks : selectedItem.Remarks}\r\n
    \r\n
    \r\n
    Total Amount
    {total.toFixed(4)}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Details
    Last Requested Date{lastPurchaseObj.LastRequestedDate}
    Last Requested Quantity{parseFloat(lastPurchaseObj.LastRequestedQty).toFixed(3)}
    Last Received Date{lastPurchaseObj.LastPurchaseDate}
    Last Received Quantity{parseFloat(lastPurchaseObj.LastPurchaseQty).toFixed(3)}
    \r\n
    \r\n {\r\n let arr = JSON.parse(JSON.stringify(list));\r\n for (let i = 0; i < arr.length; i++) {\r\n if (arr[i].SubSerNo === selectedItem.SubSerNo) {\r\n arr[i].TransactionSerNo = x.key;\r\n arr[i].ChargeName = x.value;\r\n setSelectedItem(arr[i]);\r\n break;\r\n }\r\n }\r\n setList(arr);\r\n }}\r\n label=\"Charge Type\"\r\n >\r\n
    \r\n \r\n Item Rate\r\n \r\n {/* Is Discountable */}\r\n
    \r\n
    \r\n \r\n Discount (In %)\r\n \r\n
    \r\n {/*
    \r\n \r\n In Percentage\r\n \r\n
    */}\r\n
    \r\n \r\n {(IsPurchase) ? 'Purchase remarks' : 'Approval Note'}\r\n \r\n
    \r\n
    \r\n
    \r\n {(IsPurchase || props.obj.MovementID === 'PURCREQ') ?\r\n \r\n Refresh Stock\r\n \r\n :\r\n null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}","import React, { useState, useEffect, useRef } from 'react';\r\nimport innkey_logo from '../../../../assets/images/innkeypmslogo.svg';\r\nimport orchid_logo from '../../../../assets/images/the_orchid_logo.svg';\r\nimport ReactToPrint from \"react-to-print\";\r\nimport { GetInvTransactionSlip } from '../../../../services/inventoryMasterService';\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from '../../../../reducer/authSlice';\r\nimport moment from 'moment';\r\nfunction INVTransactionSlip(props) {\r\n const currUser = useSelector(currentUser);\r\n const myRef = useRef();\r\n const printRef = useRef();\r\n const [propertyObj, setPropertyObj] = useState({});\r\n const [headerObj, setHeaderObj] = useState({});\r\n const [ItemList, setItemList] = useState([]);\r\n const [TaxList, setTaxList] = useState([]);\r\n const [IsShowTax, setIsShowTax] = useState(false);\r\n const [IsShowHeader, setIsShowHeader] = useState(true);\r\n const [IsShowTandC, setIsShowTandC] = useState(false);\r\n const [movementId, setMovementId] = useState(props.para.MovementID);\r\n const [para, setPara] = useState(props.para);\r\n const [netAmount, setNetAmount] = useState(0);\r\n const [netValue, setNetValue] = useState(0);\r\n const [IsOther, setIsOther] = useState(false);\r\n useEffect(() => {\r\n if (props.para !== undefined) {\r\n setPara(props.para);\r\n setMovementId(props.para.MovementID);\r\n }\r\n console.warn(\"para changed\", props.para);\r\n }, [props.para]);\r\n useEffect(() => {\r\n if (props.IsPrint !== undefined) {\r\n if (props.IsPrint && para.SerNo !== undefined) {\r\n GetInvTransactionSlip(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), para.SerNo).then(d => {\r\n let data = d.data;\r\n\r\n if (data.PropertyDetail.length > 0) {\r\n setPropertyObj(data.PropertyDetail[0]);\r\n }\r\n if (data.HeaderDetail.length > 0) {\r\n setHeaderObj(data.HeaderDetail[0]);\r\n let temp = data.HeaderDetail[0];\r\n if (temp.EntryDateTime !== '') {\r\n let date = moment(new Date(temp.EntryDateTime)).format('DD MMM YYYY');\r\n let time = moment(new Date(temp.EntryDateTime)).format('HH:mm');\r\n temp.EntryDateTime = date + ', ' + time;\r\n }\r\n if (temp.RequestDateTime !== '') {\r\n let date = moment(new Date(temp.RequestDateTime)).format('DD MMM YYYY');\r\n let time = moment(new Date(temp.RequestDateTime)).format('HH:mm');\r\n temp.RequestDateTime = date + ', ' + time;\r\n }\r\n if (temp.ApproveDateTime !== '') {\r\n let date = moment(new Date(temp.ApproveDateTime)).format('DD MMM YYYY');\r\n let time = moment(new Date(temp.ApproveDateTime)).format('HH:mm');\r\n temp.ApproveDateTime = date + ', ' + time;\r\n }\r\n }\r\n setItemList(data.ItemDetail);\r\n data.TaxDetail.sort(function (a, b) {\r\n if (b.AddLess === 'Less') {\r\n return -1;\r\n } else {\r\n return 1;\r\n }\r\n });\r\n setTaxList(data.TaxDetail);\r\n let tempAmount = 0;\r\n data.ItemDetail.forEach(x => {\r\n tempAmount += (parseFloat(x.Qty) * parseFloat(x.Rate));\r\n });\r\n setNetAmount(tempAmount);\r\n data.TaxDetail.forEach(x => {\r\n if (x.AddLess === 'Add') {\r\n tempAmount += parseFloat(x.Amount);\r\n }\r\n else if (x.AddLess === 'Less') {\r\n tempAmount -= parseFloat(x.Amount);\r\n }\r\n });\r\n if (movementId === 'PURCREQ' || movementId === 'DPURCREQ') {\r\n setIsShowTandC(true);\r\n } else {\r\n setIsShowTandC(false);\r\n }\r\n if (movementId === 'STRREQ' || movementId === 'PURCREQ' || movementId === 'DPURCREQ' || movementId === 'PURCHASE' || movementId === 'ISSUE' || movementId === 'DP') {\r\n setIsOther(false);\r\n } else {\r\n setIsOther(true);\r\n }\r\n setNetValue(tempAmount);\r\n if (printRef.current) {\r\n printRef.current.handlePrint();\r\n }\r\n });\r\n }\r\n }\r\n }, [props.IsPrint]);\r\n\r\n return (\r\n props.IsPrint ?\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n\r\n \r\n
    \r\n \r\n \r\n
    \r\n

    {propertyObj.PropertyName}   ( {propertyObj.StatutoryName} )

    \r\n\r\n
    \r\n {propertyObj.Address1 + ' ' + propertyObj.Address2}
    {propertyObj.CityName} - {propertyObj.Postcode}\r\n {\" \" + propertyObj.StateName}, {propertyObj.CountryName},
    \r\n Tel : {propertyObj.Telephone}\r\n Email: {propertyObj.Email}Web: {propertyObj.Website}\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    State Code : {propertyObj.StateCode} {propertyObj.StateName}
    \r\n
    Pan No : {propertyObj.PANNo}
    \r\n
    \r\n
    GSTIN : {propertyObj.GSTNo}
    \r\n
    TAN No : 24AACKJJLHUUK
    \r\n
    \r\n
    FSSAI No : L564DKKLIUTY206
    \r\n
    CIN No : L564DKKLIUTY206
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {headerObj.Title}\r\n {/* {(movementId === 'STRREQ') ? 'Store Requisition'\r\n :\r\n (movementId === 'PURCREQ') ? 'Purchase Request(PO)'\r\n :\r\n (movementId === 'DPURCREQ') ? 'Department Purchase Request'\r\n :\r\n (movementId === 'PURCHASE') ? 'Purchase'\r\n :\r\n (movementId === 'DP') ? 'Direct Purchase'\r\n :\r\n (movementId === 'ISSUE') ? 'Issue'\r\n :\r\n null\r\n } */}\r\n
    \r\n
    \r\n {IsShowHeader ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    Trans Slip No : {headerObj.TransNo}
    \r\n
    \r\n
    Trans Date :{headerObj.TransDate}
    \r\n
    \r\n {movementId !== 'STRREQ' && !IsOther ?\r\n
    Invoice Date : {headerObj.InvoiceDate}
    \r\n :\r\n null\r\n }\r\n
    \r\n
    \r\n {(headerObj.SourceType === 'V') ? 'Vender'\r\n : (headerObj.SourceType === 'D') ? 'Department'\r\n : (headerObj.SourceType === 'S') ? 'Store'\r\n : ''}\r\n : {headerObj.SourceName}
    \r\n
    \r\n
    \r\n {(headerObj.DestType === 'V') ? 'Vender'\r\n : (headerObj.DestType === 'D') ? 'Department'\r\n : (headerObj.DestType === 'S') ? 'Store'\r\n : ''}\r\n : {headerObj.DestName}
    \r\n
    \r\n
    Entry Date Time : {headerObj.EntryDateTime}
    \r\n
    \r\n {!IsOther ?\r\n
    Requested User ID {headerObj.RequestUserId}
    \r\n :\r\n null}\r\n
    \r\n {!IsOther ?\r\n
    Request Date Time {headerObj.RequestDateTime}
    \r\n :\r\n null}\r\n
    \r\n
    User ID : {headerObj.UserID}
    \r\n
    \r\n {(!IsOther) ?\r\n
    Approved User ID : {headerObj.ApproveUserID}
    \r\n :\r\n null}\r\n
    \r\n {(!IsOther) ?\r\n
    Approve Date Time {headerObj.ApproveDateTime}
    \r\n :\r\n null}\r\n
    \r\n
    Document No: {headerObj.DocumentReferenceNo}
    \r\n
    \r\n :\r\n null}\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {movementId === 'ISSUE' || movementId === 'STRREQ' ?\r\n null :\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {ItemList.map((item, index) => {\r\n return (\r\n \r\n \r\n \r\n {movementId === 'ISSUE' || movementId === 'STRREQ' ?\r\n null :\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n {TaxList.map((tax, index) => {\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n
    Ser NoItem NameChargeUOMQtyRateValue
    1{item.ItemName}{item.ChargeName} {item.UOM}{parseFloat(item.Qty).toFixed(3)}{parseFloat(item.Rate).toFixed(4)}{parseFloat(item.Qty * item.Rate).toFixed(4)}
    Net Amount : {netAmount.toFixed(4)}
    {tax.AddLess} : {tax.TaxName}\r\n {tax.OnAmountPercentage !== 0 ?\r\n parseFloat(tax.OnAmountPercentage).toFixed(2) + \"%\"\r\n :\r\n null\r\n }\r\n {parseFloat(tax.Amount).toFixed(4)}
    Net Value{netValue.toFixed(4)}
    \r\n
    \r\n
    \r\n {IsShowTax ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {TaxList.map((tax, index) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    HSN CodeTaxableSGSTCGSTIGSTTOTAL GST
    1902180.00\r\n
    10.80 6.0%
    \r\n
    \r\n
    10.80 6.0%
    \r\n
    \r\n
    0.00 0.0%
    \r\n
    21.60
    Total10.8010.800.0021.60
    \r\n :\r\n null}\r\n {!IsShowTandC ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n Remarks: {headerObj.Remarks}\r\n
    \r\n :\r\n null}\r\n
    \r\n {IsShowTandC ?\r\n
    \r\n
    terms & condition
    \r\n
    \r\n {/*
      \r\n
    • Please note Hotel Check In 1400 hrs Check Out 1200 Noon.
    • \r\n
    • The Management does not take the responsibility for loss of VALUABLES/CASH left by Guest in the\r\n Rooms/Apartments.
    • \r\n
    • Incase you need to modify or cancel your reservation please do so before 18:00 hrs (Local time)\r\n 48 hours prior to date of reservation to avoid 1 Room Night charges as Retention Fees.
    • \r\n
    • We do not allow any external prepared food in our hotel premises.
    • \r\n
    • Being an Ecotel hotel our hotels promote complete Non Smoking environment on our Guest floors.\r\n If found smoking in the room a room cleaning\r\n charge of Rs. 5000 would be charged per incident.\r\n
    • \r\n
    • I have gone through the terms and conditions of my stay in hotel and I agree to abide the same.\r\n
    • \r\n
    • I hereby authorize the Hotel to settle my Hotel Bill on the credit card provided at the time of\r\n Reservation/Check In.\r\n All disputes subject to MUMBAI Jurisdication
    • \r\n\r\n
    */}\r\n
    \r\n
    \r\n :\r\n null}\r\n
    \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    Checked By
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    Approved By
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    Authorized Signature
    \r\n
    For, {propertyObj.PropertyName}
    \r\n
    {propertyObj.StatutoryName}
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n Date: {moment(new Date()).format('DD MMM YYYY')}\r\n User name: {currUser.UserID}\r\n \r\n Powered by \r\n
    \r\n
    \r\n }\r\n content={() => myRef.current}\r\n onAfterPrint={() => {\r\n // setList([]);\r\n props.OnPrint();\r\n }}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n :\r\n <>\r\n );\r\n}\r\n\r\nexport default INVTransactionSlip;","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnFileUpload,\r\n InnFileUploadPreview,\r\n InnLoader,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnRadioButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnToastMessage,\r\n InnTabs,\r\n InnStatusLabel,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnButton3Darrow,\r\n InnPlainTextbox,\r\n InnSingleDateSelection,\r\n InnButtonTypeWithDropdown,\r\n InnTimeSelection,\r\n InnSingleRadioButton,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { currentUser, setPropertySerNo } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { GetReportColumnMaster, GetReportFilterMaster, GetReportMaster } from \"../../../../services/reservationReportService\";\r\nimport {\r\n GetInvStoreMaster, GetInvDepartmentMaster,\r\n GetInvVenderMaster, GetInvCategoryMaster,\r\n GetInvSubCategoryMaster, GetMovementForBasicInventoryTransaction\r\n} from \"../../../../services/inventoryMasterService\";\r\nimport { useAlert } from \"../../../../utils/hooks/useAlert\";\r\nimport { GetPropertyMaster, GetPropertyParameterByKeys } from \"../../../../services/reservationService\";\r\nimport moment from \"moment\";\r\n//import { InnPlainTabs, Tab } from \"./innPlainTabs\";\r\nfunction Widget({ content, onDragStart }) {\r\n return (\r\n
    \r\n {content}\r\n
    \r\n );\r\n}\r\n\r\nfunction WidgetContainer({\r\n onDrop,\r\n children,\r\n onDragEnter,\r\n onDragLeave,\r\n isDraggedOver,\r\n size,\r\n}) {\r\n return (\r\n e.preventDefault()}\r\n >\r\n {!isDraggedOver && children}\r\n \r\n );\r\n}\r\n\r\nexport function InventoryReport(props) {\r\n\r\n const history = useHistory();\r\n const currUser = useSelector(currentUser);\r\n const [invBusinessDate, setInvBusinessDate] = useState(\"\");\r\n const { confirm } = useConfirm();\r\n const selectdata = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n\r\n const SourceType = [\r\n // { key: \"0\", value: \"Select\" },\r\n { key: \"S\", value: \"Store\" },\r\n { key: \"V\", value: \"Vendor\" },\r\n { key: \"D\", value: \"Department\" }\r\n ]\r\n\r\n const ItemType = [\r\n // { key: \"0\", value: \"Select\" },\r\n { key: \"All\", value: \"All\" },\r\n { key: \"Yes\", value: \"Stockable\" },\r\n { key: \"No\", value: \"Non-Stockable\" }\r\n ]\r\n\r\n const rbDataType = [\r\n { key: \"arrival\", value: \"Arrival Dates\" },\r\n { key: \"stay\", value: \"Stay Dates\" },\r\n ];\r\n const [colList, setColList] = useState([]);\r\n const [colListKeys, setColListKeys] = useState([]);\r\n const MoreFilterData = [\r\n { key: \"Select All\", value: \"Room Type\" },\r\n { key: \"Option 1\", value: \"Membership Level\" },\r\n { key: \"Option 2\", value: \"ETA From - ETA To\" },\r\n { key: \"Option 3\", value: \"Market\" },\r\n { key: \"Option 4\", value: \"Source\" },\r\n { key: \"Option 5\", value: \"Rate Code\" },\r\n { key: \"Option 6\", value: \"Reservation \" },\r\n { key: \"Option 7\", value: \"VIP Only\" },\r\n { key: \"Option 8\", value: \"Include Day Used\" },\r\n { key: \"Option 9\", value: \"Include Canceled / No-Show\" },\r\n { key: \"Option 10\", value: \"Zero Rate Only\" },\r\n { key: \"Option 11\", value: \"Include Checked-In Today\" },\r\n { key: \"Option 12\", value: \"Include Pseudo Rooms\" },\r\n { key: \"Option 13\", value: \"Include Complimentary / In-House\" },\r\n\r\n ];\r\n const box1 =
    Room No & Type
    \r\n const box2 =
    Reservation Status
    \r\n const box3 =
    First Name
    \r\n const box4 =
    Company
    \r\n const box5 =
    Travel Agent
    \r\n const box6 =
    Arrival Date & Time
    \r\n const box7 =
    Departure Date & Time
    \r\n const box8 =
    Adult
    \r\n const box9 =
    Child
    \r\n const box10 =
    No Of Rooms
    \r\n const box11 =
    Rate Code
    \r\n const box12 =
    Market
    \r\n const box13 =
    Source
    \r\n const box14 =
    Actual Rate
    \r\n const box15 =
    Confirmation No
    \r\n const box16 =
    Booking Reference
    \r\n const box17 =
    VIP Status
    \r\n const box18 =
    Advance Deposit
    \r\n const box19 =
    Accompany Guest
    \r\n const box20 =
    Preference
    \r\n\r\n const WIDGET_LIST = [\r\n { id: \"a\", content: box1, size: \"w100p\" },\r\n { id: \"b\", content: box2, size: \"w100p\" },\r\n { id: \"c\", content: box3, size: \"w100p\" },\r\n { id: \"d\", content: box4, size: \"w100p\" },\r\n { id: \"e\", content: box5, size: \"w100p\" },\r\n { id: \"f\", content: box6, size: \"w100p\" },\r\n { id: \"t\", content: box7, size: \"w100p\" },\r\n { id: \"g\", content: box8, size: \"w100p\" },\r\n { id: \"h\", content: box9, size: \"w100p\" },\r\n { id: \"i\", content: box10, size: \"w100p\" },\r\n { id: \"j\", content: box11, size: \"w100p\" },\r\n { id: \"k\", content: box12, size: \"w100p\" },\r\n { id: \"l\", content: box13, size: \"w100p\" },\r\n { id: \"m\", content: box14, size: \"w100p\" },\r\n { id: \"n\", content: box15, size: \"w100p\" },\r\n { id: \"o\", content: box16, size: \"w100p\" },\r\n { id: \"p\", content: box17, size: \"w100p\" },\r\n { id: \"q\", content: box18, size: \"w100p\" },\r\n { id: \"r\", content: box19, size: \"w100p\" },\r\n { id: \"s\", content: box20, size: \"w100p\" },\r\n ];\r\n /* Draggable Widget Start */\r\n const [widgets, setWidgets] = useState([]);\r\n const [draggedItemId, setDraggedItemId] = useState(null);\r\n const [draggedOverContainerId, setDraggedOverContainerId] = useState(null);\r\n\r\n const handleDragStart = (id) => setDraggedItemId(id);\r\n const handleDragEntered = (id) => setDraggedOverContainerId(id);\r\n const handleDragLeave = () => setDraggedOverContainerId(null);\r\n const [columnList, setColumnlist] = useState([])\r\n const [strFilterList, setStrFilterList] = useState(\"\");\r\n\r\n\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const handleDrop = () => {\r\n if (!draggedOverContainerId) {\r\n clearState();\r\n return;\r\n }\r\n\r\n const fromIndex = widgets.findIndex((w) => w.id === draggedItemId);\r\n const toIndex = widgets.findIndex((w) => w.id === draggedOverContainerId);\r\n setWidgets((w) => moveItem(w, fromIndex, toIndex));\r\n setColumnlist((w) => moveItem(w, fromIndex, toIndex));\r\n\r\n clearState();\r\n };\r\n\r\n const clearState = () => {\r\n setDraggedItemId(null);\r\n setDraggedOverContainerId(null);\r\n };\r\n /* Draggable Widget End */\r\n\r\n\r\n /* Tooltip Starts */\r\n const radioData = [\r\n { key: \"D\", value: \"Day\" },\r\n { key: \"M\", value: \"Month\" },\r\n ];\r\n\r\n /* Tooltip Ends */\r\n\r\n const validate = (x) => {\r\n if (x != null && x != undefined && x !== '' && x !== false) { //&& x != 0 \r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const [reportFilterObj, setReportFilterObj] = useState(\r\n props.location.state?.filterObj != undefined ?\r\n props.location.state?.filterObj :\r\n {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n });\r\n const propertyParameters = [\"InvBusinessDate\"];\r\n const [showReportFilterPopup, setShowReportFilterPopup] = useState(false);\r\n const [reportList, setReportList] = useState([]);\r\n const [tempReportList, setTempReportList] = useState([]);\r\n const [isRemoveClick, setIsRemoveClick] = useState(false);\r\n const [flag, setFlag] = useState(false);\r\n const [isActive, setIsActive] = useState(false);\r\n const [selectedReportSerNo, setSelectedReportSerNo] = useState(props.location.state != undefined && props.location.state.reportserno != undefined ? props.location.state.reportserno : null);\r\n const [selectedReportName, setSelectedReportName] = useState(props.location.state != undefined && props.location.state.reportname != undefined ? props.location.state.reportname : \"\");\r\n const [fixedColumnList, setFixedColumnList] = useState([]);\r\n const [addColumnList, setAddColumnList] = useState([]);\r\n const [filterData, setFilterData] = useState([]);\r\n const [fixedFilterList, setFixedFilterList] = useState([]);\r\n const [additionalFilterList, setAdditionalFilterList] = useState([]);\r\n const [storeFilter, setStoreFilter] = useState([]);\r\n const [departmentFilter, setDepartmentFilter] = useState([]);\r\n const [venderFilter, setVenderFilter] = useState([]);\r\n const [sourceTypeObj, setSourceTypeObj] = useState(SourceType);\r\n const [selectedSourceType, setSelectedSourceType] = useState({});\r\n const [selectedSerNo, setSelectedSerNo] = useState([]);\r\n const [selectedItemType, setSelectedItemType] = useState([]);\r\n const [selectedItem, setSelectedItem] = useState(0)\r\n const [multiSelect, setMultiSelect] = useState([]);\r\n const [storeDataForStock, setStoreDataForStock] = useState([]);\r\n const [propertyName, setPropertyName] = useState(\"\");\r\n const [itemCategoryData, setItemCategoryData] = useState([]);\r\n const [itemSubCategoryData, setItemSubCategoryData] = useState([{ key: 0, value: \"All\" }]);\r\n const [movementData, setMovementData] = useState([]);\r\n const [departmentData, setDepartmentData] = useState([]);\r\n const [vendorData, setVendorData] = useState([]);\r\n const [movementList, setMovementList] = useState([]);\r\n const [sourceSelectedSerNo, setSourceSelectedSerNo] = useState([]);\r\n const [destinationSelectedSerNo, setDestinationSelectedSerNo] = useState([]);\r\n const [itemCategorySelectedSerNo, setItemCategorySelectedSerNo] = useState([]);\r\n const [itemSubCategorySelectedSerNo, setItemSubCategorySelectedSerNo] = useState([]);\r\n const [allSelect, setAllSelect] = useState([]);\r\n const [selectAll, setSelectAll] = useState(false);\r\n const [selectedVenderName, setSelectedVenderName] = useState([]);\r\n const [selectedStoreSerNo, setSelectedStoreSerNo] = useState([]);\r\n\r\n useEffect(() => {\r\n setIsActive(true)\r\n\r\n GetInvStoreMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n let temp = []\r\n d.data.forEach(x => {\r\n temp.push({ key: x.StoreSerNo, value: x.Name });\r\n });\r\n let sortData = temp.sort((a, b) => {\r\n return a.value.toLowerCase() > b.value.toLowerCase() ? 1 : -1\r\n })\r\n sortData.splice(0, 0, { key: \"0\", value: \"All\" });\r\n setStoreDataForStock(sortData);\r\n let tempData = temp;\r\n tempData.forEach(element => {\r\n element.Mode = \"S\"\r\n });\r\n setStoreFilter(tempData);\r\n });\r\n\r\n GetInvDepartmentMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n let temp = [{ key: \"0\", value: \"All\" }];\r\n d.data.forEach(x => {\r\n temp.push({ key: x.DepartmentSerNo, value: x.Name });\r\n });\r\n setDepartmentData(temp);\r\n let tempData = temp;\r\n tempData.forEach(element => {\r\n element.Mode = \"D\"\r\n });\r\n setDepartmentFilter(tempData);\r\n });\r\n\r\n GetInvVenderMaster((currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n let temp = [{ key: \"0\", value: \"All\" }];\r\n d.data.forEach(x => {\r\n temp.push({ key: x.VenderSerNo, value: x.Name });\r\n });\r\n setVendorData(temp);\r\n let tempData = temp;\r\n tempData.forEach(element => {\r\n element.Mode = \"V\"\r\n });\r\n\r\n setVenderFilter(tempData);\r\n })\r\n\r\n GetPropertyMaster(currUser.ClientSerNo).then(d => {\r\n d.data.forEach(x => {\r\n if (x.key == currUser.PropertySerNo) {\r\n setPropertyName(x.value);\r\n }\r\n })\r\n })\r\n\r\n GetPropertyParameterByKeys(currUser.ClientSerNo, currUser.PropertySerNo, propertyParameters).then((d) => {\r\n d.data.forEach((x) => {\r\n if (x.key == \"InvBusinessDate\") {\r\n setInvBusinessDate(x.value);\r\n setReportFilterObj((prev) => ({ ...prev, Date: x.value }));\r\n setReportFilterObj((prev) => ({ ...prev, FromDate: x.value }));\r\n setReportFilterObj((prev) => ({ ...prev, ToDate: x.value }));\r\n }\r\n });\r\n });\r\n\r\n GetInvCategoryMaster(parseInt(currUser.ClientSerNo)).then(d => {\r\n if (d.data.length > 0) {\r\n let tempArr = [{ key: \"0\", value: \"All\" }];\r\n d.data.forEach((x) => {\r\n let temp = {};\r\n temp.key = x.CategorySerNo;\r\n temp.value = x.Name;\r\n tempArr.push(temp);\r\n })\r\n setItemCategoryData(tempArr);\r\n }\r\n })\r\n\r\n GetMovementForBasicInventoryTransaction(currUser.ClientSerNo).then((d) => {\r\n setMovementList(d.data);\r\n let temp = [{ key: \"Sel\", value: \"Select\" }];\r\n d.data.forEach((x) => {\r\n temp.push({ key: x.MovementID, value: x.Name });\r\n });\r\n setMovementData(temp);\r\n });\r\n setIsActive(false)\r\n }, []);\r\n\r\n //#endregion\r\n\r\n\r\n const fillColumnMasterList = () => {\r\n GetReportColumnMaster(selectedReportSerNo).then((d) => {\r\n let tempFixedData = [];\r\n let tempAdditionalData = [];\r\n let temp = {};\r\n let tempColumnlist = [];\r\n let tempData = [];\r\n let tempAddColumn = []\r\n if (d.data.length > 0) {\r\n d.data.map((x) => {\r\n // if (selectedReportSerNo == x.ReportSerNo) {\r\n if (x.IsFixed) {\r\n temp =
    {x.ColumnCaption}
    ;\r\n tempData.push({ key: x.ColumnCaption, value: x.ColumnName, type: \"txt\", sorting: \"Y\", align: x.Align, serno: x.ColumnSerNo, IsTotalGiven: x.IsTotalGiven });\r\n tempColumnlist.push({ id: x.ColumnSerNo, content: temp, size: \"w100p\" });\r\n }\r\n else {\r\n tempAddColumn.push({ key: x.ColumnSerNo, value: x.ColumnCaption });\r\n tempAdditionalData.push({ key: x.ColumnCaption, value: x.ColumnName, type: \"txt\", sorting: \"Y\", align: \"center\", uniqueId: x.ColumnSerNo });\r\n }\r\n\r\n // }\r\n })\r\n setColumnlist(tempData);\r\n setWidgets(tempColumnlist);\r\n setFixedColumnList(tempFixedData);\r\n setAddColumnList(tempAddColumn);\r\n }\r\n })\r\n }\r\n const fillFilterList = () => {\r\n GetReportFilterMaster(selectedReportSerNo).then(d => {\r\n let tempFixed = [];\r\n let tempAdditional = [];\r\n let data = [];\r\n if (d.data) {\r\n d.data.forEach((x) => {\r\n // if (selectedReportSerNo == x.ReportSerNo) {\r\n if (x.IsFixed) {\r\n tempFixed.push({ key: x.FilterName, value: x.FilterCaption, type: x.FilterType });\r\n }\r\n else {\r\n tempAdditional.push({ key: x.FilterName, value: x.FilterCaption, type: x.FilterType });\r\n }\r\n data.push(x);\r\n })\r\n setFixedFilterList(tempFixed);\r\n setAdditionalFilterList(tempAdditional);\r\n setFilterData(d.data);\r\n }\r\n })\r\n }\r\n useEffect(() => {\r\n GetReportMaster().then((d) => {\r\n if (d.data && d.data.length > 0) {\r\n let sortData = [...d.data].sort((a, b) => {\r\n return a.ReportName > b.ReportName ? 1 : -1;\r\n });\r\n let obj = []\r\n obj = sortData.filter((x) => x.Module == \"I\")\r\n setReportList(obj);\r\n setTempReportList(obj);\r\n if (props.location.state == undefined) {\r\n setSelectedReportSerNo(obj[0].ReportSerNo);\r\n setSelectedReportName(obj[0].ReportCaption);\r\n }\r\n }\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n let valid = validate(selectedReportSerNo);\r\n if (valid) {\r\n fillColumnMasterList();\r\n fillFilterList();\r\n }\r\n }, [selectedReportSerNo])\r\n\r\n useEffect(() => {\r\n if (reportFilterObj.ItemCategorySerNo != undefined) {\r\n GetInvSubCategoryMaster(parseInt(currUser.ClientSerNo), reportFilterObj.ItemCategorySerNo).then((d) => {\r\n if (d.data) {\r\n let tempArr = [{ key: \"0\", value: \"All\" }];\r\n d.data.forEach((x) => {\r\n let temp = {};\r\n temp.key = x.SubCategorySerNo;\r\n temp.value = x.Name;\r\n tempArr.push(temp);\r\n })\r\n setItemSubCategoryData(tempArr);\r\n // setSelectedItemSubCategorySerNo(tempArr[0]);\r\n }\r\n })\r\n }\r\n\r\n }, [reportFilterObj.ItemCategorySerNo])\r\n\r\n const handleSearchReport = (a) => {\r\n let filterData = tempReportList.filter(d => d.ReportName.toLowerCase().includes(a.toLowerCase()));\r\n setReportList(filterData);\r\n }\r\n\r\n const handleReportPreview = () => {\r\n let finalColumnList = [];\r\n let tempObj = {};\r\n widgets.map((x) => {\r\n tempObj = columnList.find((d) => d.serno == x.id);\r\n if (tempObj != undefined) {\r\n finalColumnList.push(tempObj);\r\n }\r\n })\r\n if (selectedReportSerNo == 12) {\r\n if (reportFilterObj.VenderSerNo == '') {\r\n alertFunction(\"Please Select Vender Name\")\r\n }\r\n else {\r\n history.push({\r\n pathname: \"/VenderDetailReport\",\r\n state: { obj: reportFilterObj, filterList: strFilterList, columnList: finalColumnList, reportserno: selectedReportSerNo, reportname: selectedReportName, propertyName: propertyName }\r\n });\r\n }\r\n }\r\n else if (selectedReportSerNo == 13) {\r\n if (reportFilterObj.SourceType != undefined && reportFilterObj.Stockable != undefined && reportFilterObj.SourceSerNo != undefined) {\r\n history.push({\r\n pathname: \"/ItemListReport\",\r\n state: { obj: reportFilterObj, filterList: strFilterList, columnList: finalColumnList, reportserno: selectedReportSerNo, reportname: selectedReportName, propertyName: propertyName }\r\n });\r\n }\r\n else {\r\n\r\n if (reportFilterObj.SourceType == undefined) {\r\n alertFunction(\"Please Select Source Type\")\r\n }\r\n else if (reportFilterObj.Stockable == undefined) {\r\n alertFunction(\"Please Select Item Type\")\r\n }\r\n else if (reportFilterObj.SourceSerNo == undefined) {\r\n alertFunction(\"Please Select \" + selectedSourceType.value + \" Name\")\r\n }\r\n else {\r\n\r\n }\r\n }\r\n }\r\n else if (selectedReportSerNo == 15) {\r\n let colList = finalColumnList.filter(x => x.value != \"CategoryName\" && x.value != \"SubCategoryName\" && x.value != \"RmitSerNo\");\r\n if (reportFilterObj.StoreSerNo != undefined && reportFilterObj.StoreSerNo != \"\" ) {\r\n history.push({\r\n pathname: \"/StockValuationReport\",\r\n state: { columnList: colList, reportserno: selectedReportSerNo, reportname: selectedReportName, propertyName: propertyName, obj: reportFilterObj, filterList: strFilterList }\r\n });\r\n }\r\n else {\r\n if (reportFilterObj.StoreSerNo == undefined || reportFilterObj.StoreSerNo == \"\") {\r\n alertFunction(\"Please Select a Store\");\r\n }\r\n }\r\n }\r\n else if (selectedReportSerNo == 18) {\r\n history.push({\r\n pathname: \"/StockLevelReport\",\r\n state: { columnList: finalColumnList, reportserno: selectedReportSerNo, reportname: selectedReportName, propertyName: propertyName, obj: reportFilterObj, filterList: strFilterList }\r\n });\r\n }\r\n else if (selectedReportSerNo == 19) {\r\n let colList = finalColumnList.filter(x => x.value != \"CategoryName\" && x.value != \"SubCategoryName\");\r\n history.push({\r\n pathname: \"/NonMovingItemReport\",\r\n state: { columnList: colList, reportserno: selectedReportSerNo, reportname: selectedReportName, propertyName: propertyName, obj: reportFilterObj, filterList: strFilterList }\r\n })\r\n }\r\n else if (selectedReportSerNo == 24) {\r\n if (reportFilterObj.MovementID === \"Sel\") {\r\n alertFunction(\"Please select Movement Id.\")\r\n }\r\n else {\r\n history.push({\r\n pathname: \"/MaterialMovementReport\",\r\n state: { columnList: finalColumnList, reportserno: selectedReportSerNo, reportname: selectedReportName, propertyName: propertyName, obj: reportFilterObj, filterList: strFilterList }\r\n });\r\n }\r\n }\r\n else if (selectedReportSerNo == 25) {\r\n if (reportFilterObj.FromDate !== undefined || reportFilterObj.ToDate !== undefined) {\r\n history.push({\r\n pathname: \"/DayCloseLogReport\",\r\n state: { columnList: finalColumnList, reportserno: selectedReportSerNo, reportname: selectedReportName, propertyName: propertyName, obj: reportFilterObj, filterList: strFilterList }\r\n });\r\n } else {\r\n alertFunction(\"Please Select a Date\");\r\n }\r\n }\r\n else {\r\n }\r\n };\r\n\r\n const handleReportClick = (e) => {\r\n console.log(e.target.id);\r\n setSelectedReportSerNo(e.target.id)\r\n setSelectedReportName(e.target.textContent)\r\n setSelectAll(false);\r\n setSelectedSerNo([])\r\n setSelectedStoreSerNo([])\r\n if (e.target.id == 12) {\r\n setSelectedSourceType({ key: 0, value: \"All\" })\r\n setSelectedItem(0)\r\n setReportFilterObj({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n VenderSerNo: \"0\"\r\n })\r\n }\r\n if (e.target.id == 13) {\r\n setReportFilterObj({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo)\r\n })\r\n }\r\n if (e.target.id == 15) {\r\n setReportFilterObj({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n StockValationDate: moment(invBusinessDate).format('DD-MMM-YY'),\r\n })\r\n }\r\n if (e.target.id == 19) {\r\n setReportFilterObj({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n StoreSerNo: \"0\",\r\n IsMonthYear: \"D\",\r\n NOfMonthDays: 0,\r\n Date: invBusinessDate,\r\n ItemCategorySerNo: \"0\",\r\n ItemSubCategorySerNo: \"0\"\r\n })\r\n setItemSubCategoryData([{ key: 0, value: \"All\" }]);\r\n setSelectedSerNo([]);\r\n }\r\n if (e.target.id == 25) {\r\n setReportFilterObj({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n FromDate: moment(invBusinessDate).format('DD-MMM-YY'),\r\n ToDate: moment(invBusinessDate).format('DD-MMM-YY'),\r\n })\r\n }\r\n if (e.target.id == 24) {\r\n setReportFilterObj({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n MovementID: \"Sel\",\r\n FromDate: moment(invBusinessDate).format('DD-MMM-YY'),\r\n ToDate: moment(invBusinessDate).format('DD-MMM-YY'),\r\n SourceSerNo: \"\",\r\n DestinationSerNo: \"\",\r\n ItemCategorySerNo: 0,\r\n ItemSubCategorySerNo: 0\r\n })\r\n }\r\n\r\n setIsRemoveClick(false)\r\n setFlag(true)\r\n }\r\n\r\n\r\n useEffect(() => {\r\n let str = \"\";\r\n console.log(reportFilterObj)\r\n\r\n filterData.forEach(x => {\r\n let IsValid = validate(reportFilterObj[x.FilterName]);\r\n if (IsValid) {\r\n let val = reportFilterObj[x.FilterName];\r\n if (x.FilterName == \"StoreSerNo\") {\r\n val = \"\";\r\n storeDataForStock.forEach(d => {\r\n if (d.key == reportFilterObj[x.FilterName]) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n }\r\n if (x.FilterName == \"MovementID\") {\r\n val = \"\";\r\n movementData.forEach(d => {\r\n if (d.key == reportFilterObj[x.FilterName]) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n }\r\n if (x.FilterName == \"ItemCategorySerNo\") {\r\n val = \"\";\r\n let temp = reportFilterObj[x.FilterName];\r\n itemCategoryData.forEach(d => {\r\n if (d.key == temp) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n }\r\n if (x.FilterName == \"ItemSubCategorySerNo\") {\r\n val = \"\";\r\n let temp = reportFilterObj[x.FilterName];\r\n itemSubCategoryData.forEach(d => {\r\n if (d.key == temp) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n }\r\n if (x.FilterName == \"SourceSerNo\") {\r\n val = \"\";\r\n if ((reportFilterObj.SourceSerNo).match(/,/g)?.length > 0) {\r\n let temp = reportFilterObj[x.FilterName].split(\",\");\r\n if (reportFilterObj.SourceType == \"V\") {\r\n vendorData.forEach(d => {\r\n temp.map(z => {\r\n if (d.key == parseInt(z)) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n })\r\n }\r\n else if (reportFilterObj.SourceType == \"S\") {\r\n storeDataForStock.forEach(d => {\r\n temp.map(z => {\r\n if (d.key == parseInt(z)) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n })\r\n }\r\n else if (reportFilterObj.SourceType == \"D\") {\r\n departmentData.forEach(d => {\r\n temp.map(z => {\r\n if (d.key == parseInt(z)) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n })\r\n }\r\n }\r\n else {\r\n let temp = reportFilterObj[x.FilterName];\r\n if (reportFilterObj.SourceType == \"V\") {\r\n vendorData.forEach(d => {\r\n if (d.key == temp) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n }\r\n else if (reportFilterObj.SourceType == \"S\") {\r\n storeDataForStock.forEach(d => {\r\n if (d.key == temp) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n }\r\n else if (reportFilterObj.SourceType == \"D\") {\r\n departmentData.forEach(d => {\r\n if (d.key == temp) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n }\r\n\r\n }\r\n }\r\n if (x.FilterName == \"DestinationSerNo\") {\r\n val = \"\";\r\n if ((reportFilterObj.DestinationSerNo).match(/,/g)?.length > 0) {\r\n let temp = reportFilterObj[x.FilterName].split(\",\");\r\n if (reportFilterObj.DestType == \"V\") {\r\n vendorData.forEach(d => {\r\n temp.map(z => {\r\n if (d.key == parseInt(z)) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n })\r\n }\r\n else if (reportFilterObj.DestType == \"S\") {\r\n storeDataForStock.forEach(d => {\r\n temp.map(z => {\r\n if (d.key == parseInt(z)) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n })\r\n }\r\n else if (reportFilterObj.DestType == \"D\") {\r\n departmentData.forEach(d => {\r\n temp.map(z => {\r\n if (d.key == parseInt(z)) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n })\r\n }\r\n }\r\n else {\r\n let temp = reportFilterObj[x.FilterName];\r\n if (reportFilterObj.DestType == \"V\") {\r\n vendorData.forEach(d => {\r\n if (d.key == temp) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n }\r\n else if (reportFilterObj.DestType == \"S\") {\r\n storeDataForStock.forEach(d => {\r\n if (d.key == temp) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n }\r\n else if (reportFilterObj.DestType == \"D\") {\r\n departmentData.forEach(d => {\r\n if (d.key == temp) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n }\r\n }\r\n }\r\n if (x.FilterName == \"VenderSerNo\") {\r\n val = \"\";\r\n let temp = reportFilterObj[x.FilterName].split(\",\");\r\n vendorData.map(d => {\r\n temp.map(z => {\r\n if (d.key == parseInt(z)) {\r\n val = val + d.value + \",\";\r\n }\r\n })\r\n })\r\n }\r\n str = str + ', ' + x.FilterCaption + ': ' + val;\r\n }\r\n });\r\n\r\n console.log(str, reportFilterObj)\r\n setStrFilterList(str);\r\n\r\n }, [reportFilterObj]);\r\n const fillStore = () => {\r\n return (\r\n
    \r\n {\r\n let temp = \"\";\r\n setSelectedSerNo(item);\r\n if (item.length > 0) {\r\n for (let i = 0; i < item.length; i++) {\r\n if (i == item.length - 1) {\r\n temp = temp + item[i]\r\n }\r\n else {\r\n temp = temp + item[i] + \",\";\r\n }\r\n }\r\n // item.map((d) => {\r\n // temp = temp + d + \",\";\r\n // });\r\n setReportFilterObj((prev) => ({ ...prev, StoreSerNo: temp }));\r\n }\r\n }}\r\n >\r\n
    \r\n )\r\n }\r\n\r\n const fillDate = () => {\r\n return (\r\n
    \r\n {\r\n let prevDate = reportFilterObj.Date;\r\n setReportFilterObj(prev => ({ ...prev, Date: moment(new Date(e)).format('DD-MMM-YYYY') }));\r\n if (new Date(moment(e).format(\"DD-MMM-YYYY\")).getTime() > new Date(moment(invBusinessDate).format(\"DD-MMM-YYYY\")).getTime()) {\r\n alertFunction(\"Please enter Date less than business date.\");\r\n setTimeout(() => {\r\n setReportFilterObj(prev => ({ ...prev, Date: prevDate }));\r\n }, 50);\r\n }\r\n }}\r\n placeholder=\"Date\"\r\n calendarStartDay={1}\r\n label=\"Date\"\r\n selected={reportFilterObj.Date}\r\n >\r\n
    \r\n );\r\n }\r\n\r\n const fillDayMonth = () => {\r\n return (\r\n
    \r\n {\r\n // setReportFilterObj((prev)=>({...prev,IsMonthYear: key}));\r\n }}\r\n >\r\n
    \r\n )\r\n }\r\n\r\n const fillNoOfMonthDays = () => {\r\n return (\r\n
    \r\n {\r\n setReportFilterObj((prev) => ({ ...prev, NOfMonthDays: v }))\r\n }}\r\n >\r\n No. of Days/Months\r\n \r\n
    \r\n )\r\n }\r\n\r\n const fillItemCategory = () => {\r\n return (\r\n
    \r\n {\r\n setReportFilterObj((prev) => ({ ...prev, ItemCategorySerNo: item.key, ItemSubCategorySerNo: 0 }));\r\n }}\r\n >\r\n
    \r\n )\r\n }\r\n\r\n const fillItemSubCategory = () => {\r\n return (\r\n
    \r\n {\r\n setReportFilterObj((prev) => ({ ...prev, ItemSubCategorySerNo: item.key }));\r\n }}\r\n >\r\n
    \r\n )\r\n }\r\n const fillFromDate = () => {\r\n \r\n return (\r\n
    \r\n {\r\n if (reportFilterObj.ToDate != undefined && reportFilterObj.ToDate != \"\") {\r\n if (new Date(value) <= new Date(reportFilterObj.ToDate)) {\r\n setReportFilterObj((prev) => ({ ...prev, FromDate: value }));\r\n } else {\r\n alertFunction(\"Please enter less than To date\");\r\n let oldDate = reportFilterObj.FromDate;\r\n setReportFilterObj((prev) => ({ ...prev, FromDate: value }));\r\n setTimeout(() => {\r\n setReportFilterObj((prev) => ({ ...prev, FromDate: oldDate }));\r\n }, 1);\r\n }\r\n } else {\r\n setReportFilterObj((prev) => ({ ...prev, FromDate: value }));\r\n }\r\n }}\r\n placeholder=\"From Date\"\r\n calendarStartDay={1}\r\n label=\"From Date\"\r\n selected={reportFilterObj.FromDate}\r\n >\r\n
    \r\n );\r\n }\r\n const fillToDate = () => {\r\n return (\r\n
    \r\n {\r\n if (reportFilterObj.FromDate != undefined && reportFilterObj.FromDate != \"\") {\r\n if (new Date(value) >= new Date(reportFilterObj.FromDate)) {\r\n setReportFilterObj((prev) => ({ ...prev, ToDate: value }));\r\n } else {\r\n alertFunction(\"Please enter more than From date\");\r\n let oldDate = reportFilterObj.ToDate;\r\n setReportFilterObj((prev) => ({ ...prev, ToDate: value }));\r\n setTimeout(() => {\r\n setReportFilterObj((prev) => ({ ...prev, ToDate: oldDate }));\r\n }, 1);\r\n }\r\n } else {\r\n setReportFilterObj((prev) => ({ ...prev, ToDate: value }));\r\n }\r\n }}\r\n placeholder=\"Date To\"\r\n calendarStartDay={1}\r\n label=\"To Date\"\r\n selected={reportFilterObj.ToDate}\r\n >\r\n
    \r\n );\r\n }\r\n\r\n const fillMovementID = () => {\r\n return (\r\n
    \r\n {\r\n setReportFilterObj((prev) => ({ ...prev, MovementID: item.key }));\r\n movementList.forEach((s) => {\r\n if (s.MovementID == item.key) {\r\n setReportFilterObj((prev) => ({ ...prev, SourceType: s.SourceType, DestType: s.DestType }));\r\n setSourceSelectedSerNo([]);\r\n setDestinationSelectedSerNo([]);\r\n }\r\n });\r\n }}\r\n selectedSerNo={reportFilterObj.MovementID}\r\n >\r\n
    \r\n )\r\n }\r\n\r\n const departmentCombo = (num, flag) => {\r\n return (\r\n
    \r\n {\r\n let temp = \"\";\r\n // setSelectedSerNo(item);\r\n if (flag == \"Src\") {\r\n setSourceSelectedSerNo(item);\r\n if (item.length > 0) {\r\n for (let i = 0; i < item.length; i++) {\r\n if (i == item.length - 1) {\r\n temp = temp + item[i]\r\n }\r\n else {\r\n temp = temp + item[i] + \",\";\r\n }\r\n }\r\n setReportFilterObj((prev) => ({ ...prev, SourceSerNo: temp }));\r\n }\r\n }\r\n if (flag == \"Dst\") {\r\n setDestinationSelectedSerNo(item);\r\n if (item.length > 0) {\r\n for (let i = 0; i < item.length; i++) {\r\n if (i == item.length - 1) {\r\n temp = temp + item[i]\r\n }\r\n else {\r\n temp = temp + item[i] + \",\";\r\n }\r\n }\r\n setReportFilterObj((prev) => ({ ...prev, DestinationSerNo: temp }));\r\n }\r\n }\r\n }}\r\n >\r\n
    \r\n );\r\n };\r\n const StoreCombo = (num, flag) => {\r\n return (\r\n
    \r\n {\r\n let temp = \"\";\r\n // setSelectedSerNo(item);\r\n if (flag == \"Src\") {\r\n setSourceSelectedSerNo(item);\r\n if (item.length > 0) {\r\n for (let i = 0; i < item.length; i++) {\r\n if (i == item.length - 1) {\r\n temp = temp + item[i]\r\n }\r\n else {\r\n temp = temp + item[i] + \",\";\r\n }\r\n }\r\n setReportFilterObj((prev) => ({ ...prev, SourceSerNo: temp }));\r\n }\r\n }\r\n if (flag == \"Dst\") {\r\n setDestinationSelectedSerNo(item);\r\n if (item.length > 0) {\r\n for (let i = 0; i < item.length; i++) {\r\n if (i == item.length - 1) {\r\n temp = temp + item[i]\r\n }\r\n else {\r\n temp = temp + item[i] + \",\";\r\n }\r\n }\r\n setReportFilterObj((prev) => ({ ...prev, DestinationSerNo: temp }));\r\n }\r\n }\r\n }}\r\n >\r\n
    \r\n );\r\n };\r\n const vendorCombo = (num, flag) => {\r\n return (\r\n
    \r\n {\r\n let temp = \"\";\r\n // setSelectedSerNo(item);\r\n if (flag == \"Src\") {\r\n setSourceSelectedSerNo(item);\r\n if (item.length > 0) {\r\n for (let i = 0; i < item.length; i++) {\r\n if (i == item.length - 1) {\r\n temp = temp + item[i]\r\n }\r\n else {\r\n temp = temp + item[i] + \",\";\r\n }\r\n }\r\n setReportFilterObj((prev) => ({ ...prev, SourceSerNo: temp }));\r\n }\r\n }\r\n if (flag == \"Dst\") {\r\n setDestinationSelectedSerNo(item);\r\n if (item.length > 0) {\r\n for (let i = 0; i < item.length; i++) {\r\n if (i == item.length - 1) {\r\n temp = temp + item[i]\r\n }\r\n else {\r\n temp = temp + item[i] + \",\";\r\n }\r\n }\r\n setReportFilterObj((prev) => ({ ...prev, DestinationSerNo: temp }));\r\n }\r\n }\r\n }}\r\n >\r\n
    \r\n );\r\n };\r\n const itemCategoryMultiSelect = () => {\r\n return (\r\n
    \r\n {\r\n let temp = \"\";\r\n setItemCategorySelectedSerNo(item);\r\n if (item.length > 0) {\r\n for (let i = 0; i < item.length; i++) {\r\n if (i == item.length - 1) {\r\n temp = temp + item[i]\r\n }\r\n else {\r\n temp = temp + item[i] + \",\";\r\n }\r\n }\r\n setReportFilterObj((prev) => ({ ...prev, ItemCategorySerNo: temp }));\r\n }\r\n }}\r\n >\r\n
    \r\n )\r\n }\r\n const itemSubCategoryMultiSelect = () => {\r\n return (\r\n
    \r\n {\r\n let temp = \"\";\r\n setItemSubCategorySelectedSerNo(item);\r\n if (item.length > 0) {\r\n for (let i = 0; i < item.length; i++) {\r\n if (i == item.length - 1) {\r\n temp = temp + item[i]\r\n }\r\n else {\r\n temp = temp + item[i] + \",\";\r\n }\r\n }\r\n setReportFilterObj((prev) => ({ ...prev, ItemCategorySerNo: temp }));\r\n }\r\n }}\r\n >\r\n
    \r\n )\r\n }\r\n const fillVenderName = () => {\r\n return (\r\n
    \r\n {\r\n let temp = \"\";\r\n setSelectedVenderName(index);\r\n if (index.length > 0) {\r\n for (let i = 0; i < index.length; i++) {\r\n if (i == index.length - 1) {\r\n temp = temp + index[i]\r\n }\r\n else {\r\n temp = temp + index[i] + \",\";\r\n }\r\n }\r\n }\r\n setReportFilterObj((prev) => ({ ...prev, VenderSerNo: temp }));\r\n let variable = index.find(x => x == 0);\r\n if (variable == undefined) {\r\n variable = false;\r\n }\r\n else {\r\n variable = true;\r\n }\r\n if ((!selectAll && variable) || (!variable && index.length == vendorData.length - 1 && !selectAll)) {\r\n setSelectAll(true);\r\n let t = []\r\n vendorData.forEach(x => {\r\n t.push(x.key);\r\n })\r\n setSelectedVenderName(t);\r\n setReportFilterObj((prev) => ({ ...prev, VenderSerNo: \"0\" }));\r\n }\r\n else if (!variable && index.length == vendorData.length - 1 && selectAll) {\r\n setSelectedVenderName([])\r\n setReportFilterObj((prev) => ({ ...prev, VenderSerNo: '' }));\r\n setSelectAll(false);\r\n }\r\n else if (variable && index.length == vendorData.length - 1) {\r\n setSelectedVenderName(index.filter(x => x != 0));\r\n setSelectAll(false);\r\n }\r\n }}\r\n >\r\n
    \r\n )\r\n }\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Report

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n Inventory\r\n
    \r\n
      \r\n {\r\n reportList && reportList.map((d) =>\r\n
    • \r\n \r\n {d.ReportCaption}\r\n \r\n
    • \r\n )\r\n }\r\n\r\n {/*
    • Duplicate Reservation
    • \r\n
    • Arrivals : Details
    • \r\n
    • Reservation Summary
    • \r\n
    • Reservation with room type upgrades
    • \r\n
    • Reservation with routing instructions
    • \r\n
    • Deposit Activity Report
    • */}\r\n\r\n
    \r\n\r\n {/*
    \r\n Front desk\r\n
    \r\n
      \r\n
    • Guest in house report
    • \r\n
    • Departure Today
    • \r\n
    */}\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {selectedReportName}\r\n
    \r\n
    \r\n {/*
    \r\n
    \r\n \r\n
    \r\n
    */}\r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n selectedReportSerNo == 13 ?\r\n <>\r\n
    \r\n {\r\n if (e.key != selectedSourceType.key) {\r\n setSelectedSerNo([])\r\n }\r\n setSelectedSourceType(e)\r\n if (e.key == \"S\") {\r\n let temp = [];\r\n temp = storeFilter.filter(x => x.Mode == e.key)\r\n setMultiSelect(temp);\r\n }\r\n if (e.key == \"D\") {\r\n let temp = [];\r\n temp = departmentFilter.filter(x => x.Mode == e.key)\r\n let ar = columnList.findIndex((y) => y.value === \"StoreName\" || y.value === \"VenderName\")\r\n let array = columnList\r\n array.splice(ar, 0, { key: \"Department Name\", value: \"DepartmentName\", type: \"txt\", sorting: \"Y\", })\r\n setColumnlist(array)\r\n let tempwidgets = widgets;\r\n let swid =
    Department Name
    ;\r\n tempwidgets.splice(ar, 1, { id: 2, content: swid, size: \"w100p\" })\r\n setMultiSelect(temp);\r\n }\r\n if (e.key == \"V\") {\r\n let temp = [];\r\n temp = venderFilter.filter(x => x.Mode == e.key)\r\n let ar = columnList.findIndex((y) => y.value === \"StoreName\" || y.value === \"DepartmentName\")\r\n let array = columnList\r\n array.splice(ar, 0, { key: \"Vender Name\", value: \"VenderName\", type: \"txt\", sorting: \"Y\", })\r\n setColumnlist(array)\r\n let tempwidgets = widgets;\r\n let swid =
    Vender Name
    ;\r\n tempwidgets.splice(ar, 1, { id: 2, content: swid, size: \"w100p\" })\r\n setMultiSelect(temp);\r\n }\r\n setReportFilterObj((prev) => ({ ...prev, SourceType: e.key }))\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n setSelectedItem(item);\r\n setReportFilterObj((prev) => ({ ...prev, Stockable: item.key }))\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n setSelectedSerNo(item);\r\n let temp = \"\";\r\n if (item.length > 0) {\r\n for (let i = 0; i < item.length; i++) {\r\n if (i == item.length - 1) {\r\n temp = temp + item[i]\r\n }\r\n else {\r\n temp = temp + item[i] + \",\";\r\n }\r\n }\r\n setReportFilterObj((prev) => ({ ...prev, SourceSerNo: temp }));\r\n }\r\n let variable = item.find(x => x == 0);\r\n if (variable == undefined) {\r\n variable = false;\r\n }\r\n else {\r\n variable = true;\r\n }\r\n if ((!selectAll && variable) || (!variable && item.length == multiSelect.length - 1 && !selectAll)) {\r\n setSelectAll(true);\r\n let t = []\r\n multiSelect.forEach(x => {\r\n t.push(x.key);\r\n })\r\n setSelectedSerNo(t);\r\n }\r\n else if (!variable && item.length == multiSelect.length - 1 && selectAll) {\r\n setSelectedSerNo([])\r\n setSelectAll(false);\r\n }\r\n else if (variable && item.length == multiSelect.length - 1) {\r\n setSelectedSerNo(item.filter(x => x != 0));\r\n setSelectAll(false);\r\n }\r\n }}\r\n >\r\n
    \r\n \r\n :\r\n null\r\n }\r\n\r\n {\r\n selectedReportSerNo == 15 ?\r\n <>\r\n
    \r\n {\r\n setReportFilterObj((prev) => ({ ...prev, StockValationDate: value }));\r\n }}\r\n >\r\n
    \r\n
    \r\n {\r\n let temp = \"\";\r\n setSelectedStoreSerNo(item);\r\n if (item.length > 0) {\r\n for (let i = 0; i < item.length; i++) {\r\n if (i == item.length - 1) {\r\n temp = temp + item[i]\r\n }\r\n else {\r\n temp = temp + item[i] + \",\";\r\n }\r\n }\r\n setReportFilterObj((prev) => ({ ...prev, StoreSerNo: temp }));\r\n }else{\r\n setReportFilterObj((prev) => ({ ...prev, StoreSerNo: null }));\r\n }\r\n //All Data CheckBox\r\n let variable = item.find(x => x == 0);\r\n if (variable == undefined) {\r\n variable = false;\r\n }\r\n else {\r\n variable = true;\r\n }\r\n if ((!selectAll && variable) || (!variable && item.length == storeDataForStock.length - 1 && !selectAll)) {\r\n setSelectAll(true);\r\n let t = []\r\n storeDataForStock.forEach(x => {\r\n t.push(x.key);\r\n })\r\n setSelectedStoreSerNo(t);\r\n setReportFilterObj((prev) => ({ ...prev, StoreSerNo: \"0\" }));\r\n }\r\n else if (!variable && item.length == storeDataForStock.length - 1 && selectAll) {\r\n setSelectedStoreSerNo([])\r\n setReportFilterObj((prev) => ({ ...prev, StoreSerNo: \"\"}));\r\n setSelectAll(false);\r\n }\r\n else if (variable && item.length == storeDataForStock.length - 1) {\r\n setSelectedStoreSerNo(item.filter(x => x != 0));\r\n setSelectAll(false);\r\n }\r\n }}\r\n >\r\n
    \r\n \r\n :\r\n null\r\n }\r\n {fixedFilterList && selectedReportSerNo == 18 ? (\r\n <>\r\n {fixedFilterList.map((x) =>\r\n x.key === \"StoreSerNo\" ? (\r\n fillStore()\r\n ) : null\r\n )}\r\n \r\n )\r\n :\r\n fixedFilterList && selectedReportSerNo == 19 ? (\r\n <>\r\n {fixedFilterList.map((x) =>\r\n x.key === \"Date\" ? (\r\n fillDate()\r\n ) : x.key === \"Day\" ? (\r\n fillDayMonth()\r\n ) : x.key === \"NoOfMonthDays\" ? (\r\n fillNoOfMonthDays()\r\n ) : x.key === \"CategorySerNo\" ? (\r\n fillItemCategory()\r\n ) : x.key === \"SubCategorySerNo\" ? (\r\n fillItemSubCategory()\r\n ) : x.key === \"StoreSerNo\" ? (\r\n fillStore()\r\n ) : null\r\n )}\r\n \r\n )\r\n :\r\n fixedFilterList && selectedReportSerNo == 25 ? (\r\n <>\r\n {fixedFilterList.map((x) =>\r\n x.key === \"FromDate\" ? (\r\n fillFromDate()\r\n ) : x.key === \"ToDate\" ? (\r\n fillToDate()\r\n ) : null\r\n )}\r\n \r\n )\r\n :\r\n fixedFilterList && selectedReportSerNo == 24 ? (\r\n <>\r\n {fixedFilterList.map((x) =>\r\n x.key === \"FromDate\" ? (\r\n fillFromDate()\r\n ) : x.key === \"ToDate\" ? (\r\n fillToDate()\r\n ) : x.key === \"ItemCategorySerNo\" ? (\r\n fillItemCategory()\r\n ) : x.key === \"ItemSubCategorySerNo\" ? (\r\n fillItemSubCategory()\r\n ) : x.key === \"MovementID\" ? (\r\n fillMovementID()\r\n ) : x.key === \"SourceSerNo\" ? (\r\n reportFilterObj.SourceType == \"D\" ?\r\n departmentCombo(sourceSelectedSerNo, \"Src\")\r\n :\r\n reportFilterObj.SourceType == \"V\" ?\r\n vendorCombo(sourceSelectedSerNo, \"Src\")\r\n :\r\n reportFilterObj.SourceType == \"S\" ?\r\n StoreCombo(sourceSelectedSerNo, \"Src\")\r\n :\r\n null\r\n ) : x.key === \"DestinationSerNo\" ? (\r\n reportFilterObj.DestType == \"D\" ?\r\n departmentCombo(destinationSelectedSerNo, \"Dst\")\r\n :\r\n reportFilterObj.DestType == \"V\" ?\r\n vendorCombo(destinationSelectedSerNo, \"Dst\")\r\n :\r\n reportFilterObj.DestType == \"S\" ?\r\n StoreCombo(destinationSelectedSerNo, \"Dst\")\r\n :\r\n null\r\n )\r\n : null\r\n )}\r\n \r\n ) :\r\n fixedFilterList && selectedReportSerNo == 12 ? (\r\n <>\r\n {fixedFilterList.map((x) =>\r\n x.key === \"VenderSerNo\" ? (\r\n fillVenderName()\r\n ) : null\r\n )}\r\n \r\n ) :\r\n null\r\n }\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    Display
    \r\n {widgets.map((w, i) => (\r\n handleDragEntered(w.id)}\r\n onDragLeave={handleDragLeave}\r\n isDraggedOver={w.id === draggedOverContainerId}\r\n size={w.size}\r\n >\r\n handleDragStart(w.id)}\r\n />\r\n \r\n ))}\r\n {/*
    Room No & Type
    \r\n
    Reservation Status
    \r\n
    First Name
    \r\n
    Company
    \r\n
    Travel Agent
    \r\n
    Arrival Date & Time
    \r\n
    Departure Date & Time
    \r\n
    Adult
    \r\n
    Child
    \r\n
    No Of Rooms
    \r\n
    Rate Code
    \r\n
    Market
    \r\n
    Source
    \r\n
    Actual Rate
    \r\n
    Confirmation No
    \r\n
    Booking Reference
    \r\n
    VIP Status
    \r\n
    Advance Deposit
    \r\n
    Accompany Guest
    \r\n
    Preference
    */}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n\r\n console.log(item, name)}\r\n >\r\n console.log(item, name)}\r\n >\r\n console.log(item, name)}\r\n >\r\n\r\n Preview\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n {/* Popups Start */}\r\n\r\n {showReportFilterPopup ? (\r\n setShowReportFilterPopup(false)}\r\n >\r\n\r\n
    \r\n
    \r\n Search\r\n
    \r\n Date From - Date To\r\n Date Type\r\n Reservation\r\n Room Assignment\r\n Reservation Type\r\n Room Type\r\n Rate Code\r\n Market\r\n Source\r\n Checked In Today\r\n Zero Rate Only\r\n Include Cancelled Reservation\r\n VIP Level\r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n \r\n ) : null}\r\n {/* Popups End */}\r\n\r\n
    \r\n );\r\n}\r\n\r\n//export default Report;\r\nexport function moveItem(list, from, to) {\r\n const listClone = [...list];\r\n if (from < to) {\r\n listClone.splice(to + 1, 0, listClone[from]);\r\n listClone.splice(from, 1);\r\n } else if (to < from) {\r\n listClone.splice(to, 0, listClone[from]);\r\n listClone.splice(from + 1, 1);\r\n }\r\n return listClone;\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnFileUpload,\r\n InnFileUploadPreview,\r\n InnLoader,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnRadioButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnToastMessage,\r\n InnTabs,\r\n InnStatusLabel,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnButton3Darrow,\r\n InnPlainTextbox,\r\n InnSingleDateSelection,\r\n InnButtonTypeWithDropdown,\r\n InnTimeSelection,\r\n InnSingleRadioButton,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { currentUser, setPropertySerNo } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { GetReportColumnMaster, GetReportFilterMaster, GetReportMaster } from \"../../../../services/reservationReportService\";\r\nimport { GetVenderDetailReport, GetItemListReport, GetInvStoreMaster, GetInvDepartmentMaster, GetInvVenderMaster, GetStockLevelReport } from \"../../../../services/inventoryMasterService\";\r\nimport { useAlert } from \"../../../../utils/hooks/useAlert\";\r\nimport { GetPropertyMaster } from \"../../../../services/reservationService\";\r\n//import { InnPlainTabs, Tab } from \"./innPlainTabs\";\r\nfunction Widget({ content, onDragStart }) {\r\n return (\r\n
    \r\n {content}\r\n
    \r\n );\r\n}\r\n\r\nfunction WidgetContainer({\r\n onDrop,\r\n children,\r\n onDragEnter,\r\n onDragLeave,\r\n isDraggedOver,\r\n size,\r\n}) {\r\n return (\r\n e.preventDefault()}\r\n >\r\n {!isDraggedOver && children}\r\n \r\n );\r\n}\r\n\r\nexport function HouseKeepingReport(props) {\r\n\r\n const history = useHistory();\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const selectdata = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n\r\n const SourceType = [\r\n // { key: \"0\", value: \"Select\" },\r\n { key: \"Store\", value: \"Store\" },\r\n { key: \"Vendor\", value: \"Vendor\" },\r\n { key: \"Department\", value: \"Department\" }\r\n ]\r\n\r\n const ItemType = [\r\n { key: \"0\", value: \"Select\" },\r\n { key: \"All\", value: \"All\" },\r\n { key: \"Yes\", value: \"Stockable\" },\r\n { key: \"No\", value: \"Non-Stockable\" }\r\n ]\r\n\r\n const rbDataType = [\r\n { key: \"arrival\", value: \"Arrival Dates\" },\r\n { key: \"stay\", value: \"Stay Dates\" },\r\n ];\r\n const [colList, setColList] = useState([]);\r\n const [colListKeys, setColListKeys] = useState([]);\r\n const MoreFilterData = [\r\n { key: \"Select All\", value: \"Room Type\" },\r\n { key: \"Option 1\", value: \"Membership Level\" },\r\n { key: \"Option 2\", value: \"ETA From - ETA To\" },\r\n { key: \"Option 3\", value: \"Market\" },\r\n { key: \"Option 4\", value: \"Source\" },\r\n { key: \"Option 5\", value: \"Rate Code\" },\r\n { key: \"Option 6\", value: \"Reservation \" },\r\n { key: \"Option 7\", value: \"VIP Only\" },\r\n { key: \"Option 8\", value: \"Include Day Used\" },\r\n { key: \"Option 9\", value: \"Include Canceled / No-Show\" },\r\n { key: \"Option 10\", value: \"Zero Rate Only\" },\r\n { key: \"Option 11\", value: \"Include Checked-In Today\" },\r\n { key: \"Option 12\", value: \"Include Pseudo Rooms\" },\r\n { key: \"Option 13\", value: \"Include Complimentary / In-House\" },\r\n\r\n ];\r\n const box1 =
    Room No & Type
    \r\n const box2 =
    Reservation Status
    \r\n const box3 =
    First Name
    \r\n const box4 =
    Company
    \r\n const box5 =
    Travel Agent
    \r\n const box6 =
    Arrival Date & Time
    \r\n const box7 =
    Departure Date & Time
    \r\n const box8 =
    Adult
    \r\n const box9 =
    Child
    \r\n const box10 =
    No Of Rooms
    \r\n const box11 =
    Rate Code
    \r\n const box12 =
    Market
    \r\n const box13 =
    Source
    \r\n const box14 =
    Actual Rate
    \r\n const box15 =
    Confirmation No
    \r\n const box16 =
    Booking Reference
    \r\n const box17 =
    VIP Status
    \r\n const box18 =
    Advance Deposit
    \r\n const box19 =
    Accompany Guest
    \r\n const box20 =
    Preference
    \r\n\r\n const WIDGET_LIST = [\r\n { id: \"a\", content: box1, size: \"w100p\" },\r\n { id: \"b\", content: box2, size: \"w100p\" },\r\n { id: \"c\", content: box3, size: \"w100p\" },\r\n { id: \"d\", content: box4, size: \"w100p\" },\r\n { id: \"e\", content: box5, size: \"w100p\" },\r\n { id: \"f\", content: box6, size: \"w100p\" },\r\n { id: \"t\", content: box7, size: \"w100p\" },\r\n { id: \"g\", content: box8, size: \"w100p\" },\r\n { id: \"h\", content: box9, size: \"w100p\" },\r\n { id: \"i\", content: box10, size: \"w100p\" },\r\n { id: \"j\", content: box11, size: \"w100p\" },\r\n { id: \"k\", content: box12, size: \"w100p\" },\r\n { id: \"l\", content: box13, size: \"w100p\" },\r\n { id: \"m\", content: box14, size: \"w100p\" },\r\n { id: \"n\", content: box15, size: \"w100p\" },\r\n { id: \"o\", content: box16, size: \"w100p\" },\r\n { id: \"p\", content: box17, size: \"w100p\" },\r\n { id: \"q\", content: box18, size: \"w100p\" },\r\n { id: \"r\", content: box19, size: \"w100p\" },\r\n { id: \"s\", content: box20, size: \"w100p\" },\r\n ];\r\n /* Draggable Widget Start */\r\n const [widgets, setWidgets] = useState([]);\r\n const [draggedItemId, setDraggedItemId] = useState(null);\r\n const [draggedOverContainerId, setDraggedOverContainerId] = useState(null);\r\n\r\n const handleDragStart = (id) => setDraggedItemId(id);\r\n const handleDragEntered = (id) => setDraggedOverContainerId(id);\r\n const handleDragLeave = () => setDraggedOverContainerId(null);\r\n const [columnList, setColumnlist] = useState([])\r\n\r\n\r\n const handleDrop = () => {\r\n if (!draggedOverContainerId) {\r\n clearState();\r\n return;\r\n }\r\n\r\n const fromIndex = widgets.findIndex((w) => w.id === draggedItemId);\r\n const toIndex = widgets.findIndex((w) => w.id === draggedOverContainerId);\r\n setWidgets((w) => moveItem(w, fromIndex, toIndex));\r\n setColumnlist((w) => moveItem(w, fromIndex, toIndex));\r\n\r\n clearState();\r\n };\r\n\r\n const clearState = () => {\r\n setDraggedItemId(null);\r\n setDraggedOverContainerId(null);\r\n };\r\n /* Draggable Widget End */\r\n\r\n\r\n /* Tooltip Starts */\r\n\r\n\r\n /* Tooltip Ends */\r\n const validate = (x) => {\r\n if (x != null && x != undefined && x != 0 && x != '' && x != false) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n const [reportFilterObj, setReportFilterObj] = useState({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n StoreSerNo: \"0\"\r\n // FromDate: businessDate ? moment(new Date(businessDate)).format(\"DD-MMM-yyyy\") : moment(new Date()).format(\"DD-MMM-yyyy\"),\r\n // ToDate: businessDate ? moment(new Date(businessDate)).format(\"DD-MMM-yyyy\") : moment(new Date()).format(\"DD-MMM-yyyy\"),\r\n });\r\n const [showReportFilterPopup, setShowReportFilterPopup] = useState(false);\r\n const [reportList, setReportList] = useState([]);\r\n const [tempReportList, setTempReportList] = useState([]);\r\n const [isRemoveClick, setIsRemoveClick] = useState(false);\r\n const [flag, setFlag] = useState(false);\r\n const [isActive, setIsActive] = useState(false);\r\n const [selectedReportSerNo, setSelectedReportSerNo] = useState(props.location.state != undefined && props.location.state.reportserno != undefined ? props.location.state.reportserno : null);\r\n const [selectedReportName, setSelectedReportName] = useState(props.location.state != undefined && props.location.state.reportname != undefined ? props.location.state.reportname : \"\");\r\n const [fixedColumnList, setFixedColumnList] = useState([]);\r\n const [addColumnList, setAddColumnList] = useState([]);\r\n const [storeFilter, setStoreFilter] = useState([]);\r\n const [departmentFilter, setDepartmentFilter] = useState([]);\r\n const [venderFilter, setVenderFilter] = useState([]);\r\n const [sourceTypeObj, setSourceTypeObj] = useState(SourceType);\r\n const [selectedSourceType, setSelectedSourceType] = useState({});\r\n const [selectedSerNo, setSelectedSerNo] = useState([]);\r\n const [selectedItemType, setSelectedItemType] = useState([]);\r\n const [selectedItem, setSelectedItem] = useState(0)\r\n const [multiSelect, setMultiSelect] = useState([]);\r\n const [filterData, setFilterData] = useState([]);\r\n const [fixedFilterList, setFixedFilterList] = useState([]);\r\n const [additionalFilterList, setAdditionalFilterList] = useState([]);\r\n\r\n\r\n //#endregion\r\n\r\n const fillColumnMasterList = () => {\r\n GetReportColumnMaster().then((d) => {\r\n let tempFixedData = [];\r\n let tempAdditionalData = [];\r\n let temp = {};\r\n let tempColumnlist = [];\r\n let tempData = [];\r\n let tempAddColumn = []\r\n if (d.data.length > 0) {\r\n d.data.map((x) => {\r\n if (selectedReportSerNo == x.ReportSerNo) {\r\n if (x.IsFixed) {\r\n temp =
    {x.ColumnCaption}
    ;\r\n tempData.push({ key: x.ColumnCaption, value: x.ColumnName, type: \"txt\", sorting: \"Y\", align: \"center\", serno: x.ColumnSerNo });\r\n tempColumnlist.push({ id: x.ColumnSerNo, content: temp, size: \"w100p\" });\r\n console.log(\"TempData\", tempData)\r\n }\r\n else {\r\n tempAddColumn.push({ key: x.ColumnSerNo, value: x.ColumnCaption });\r\n tempAdditionalData.push({ key: x.ColumnCaption, value: x.ColumnName, type: \"txt\", sorting: \"Y\", align: \"center\", uniqueId: x.ColumnSerNo });\r\n }\r\n\r\n }\r\n })\r\n console.log(tempData);\r\n setColumnlist(tempData);\r\n // setWidgets(tempColumnlist);\r\n setFixedColumnList(tempFixedData);\r\n setAddColumnList(tempAddColumn);\r\n }\r\n })\r\n }\r\n\r\n const fillFilterList = () => {\r\n GetReportFilterMaster(selectedReportSerNo).then(d => {\r\n let tempFixed = [];\r\n let tempAdditional = [];\r\n let data = [];\r\n if (d.data) {\r\n d.data.forEach((x) => {\r\n // if (selectedReportSerNo == x.ReportSerNo) {\r\n if (x.IsFixed) {\r\n tempFixed.push({ key: x.FilterName, value: x.FilterCaption, type: x.FilterType });\r\n }\r\n else {\r\n tempAdditional.push({ key: x.FilterName, value: x.FilterCaption, type: x.FilterType });\r\n }\r\n data.push(x);\r\n })\r\n setFixedFilterList(tempFixed);\r\n setAdditionalFilterList(tempAdditional);\r\n setFilterData(d.data);\r\n }\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n\r\n GetReportMaster().then((d) => {\r\n if (d.data && d.data.length > 0) {\r\n let obj = []\r\n obj = d.data.filter((x) => x.Module == \"K\")\r\n console.log(obj);\r\n setReportList(obj);\r\n setTempReportList(obj);\r\n d.data.forEach(x => {\r\n if (x.ReportName == \"VenderDetailReport\") {\r\n setSelectedReportSerNo(x.ReportSerNo);\r\n setSelectedReportName(x.ReportCaption)\r\n\r\n }\r\n })\r\n }\r\n })\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n let valid = validate(selectedReportSerNo);\r\n if (valid) {\r\n fillColumnMasterList();\r\n fillFilterList();\r\n }\r\n }, [selectedReportSerNo])\r\n\r\n const handleReportPreview = () => {\r\n let finalColumnList = [];\r\n let tempObj = {};\r\n widgets.map((x) => {\r\n tempObj = columnList.find((d) => d.serno == x.id);\r\n if (tempObj != undefined) {\r\n finalColumnList.push(tempObj);\r\n\r\n }\r\n })\r\n };\r\n\r\n const handleReportClick = (e) => {\r\n setIsRemoveClick(false)\r\n setFlag(true)\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Report

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/*
    \r\n\r\n console.log(item, name)}\r\n >\r\n
    */}\r\n
    \r\n Search\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n House Keeping\r\n
    \r\n
      \r\n {\r\n reportList && reportList.map((d) =>\r\n
    • \r\n \r\n {d.ReportCaption}\r\n \r\n
    • \r\n )\r\n }\r\n\r\n {/*
    • Duplicate Reservation
    • \r\n
    • Arrivals : Details
    • \r\n
    • Reservation Summary
    • \r\n
    • Reservation with room type upgrades
    • \r\n
    • Reservation with routing instructions
    • \r\n
    • Deposit Activity Report
    • */}\r\n\r\n
    \r\n\r\n {/*
    \r\n Front desk\r\n
    \r\n
      \r\n
    • Guest in house report
    • \r\n
    • Departure Today
    • \r\n
    */}\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* {selectedReportName} */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {/*
    \r\n {\r\n console.log(e);\r\n }}\r\n placeholder=\"Date From\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Date From\"\r\n selected={\"14-FEb-2022\"}\r\n >\r\n
    \r\n
    \r\n {\r\n console.log(e);\r\n }}\r\n placeholder=\"Date To\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"Date To\"\r\n selected={\"14-FEb-2022\"}\r\n >\r\n
    */}\r\n
    \r\n {/*
    Date Type
    \r\n
    \r\n {\r\n console.log(\"selection changed called : \" + value);\r\n }}\r\n >\r\n
    */}\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n {/*
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filSmok\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(e);\r\n }}\r\n //disabled=\"disabled\"\r\n placeholder=\"ETA From\"\r\n label=\"ETA From\"\r\n timeformat=\"HH:mm\" //for 12 hour h:mm aa\r\n dateformat=\"HH:mm\" //for 12 hour h:mm aa\r\n selected={\"14-FEb-2022 3:30 PM\"}\r\n >\r\n
    \r\n
    \r\n {\r\n console.log(e);\r\n }}\r\n //disabled=\"disabled\"\r\n placeholder=\"ETA To\"\r\n label=\"ETA To\"\r\n timeformat=\"HH:mm\" //for 12 hour h:mm aa\r\n dateformat=\"HH:mm\" //for 12 hour h:mm aa\r\n selected={\"14-FEb-2022 3:30 PM\"}\r\n >\r\n
    \r\n
    \r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filSmok\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n\r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filSmok\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filSmok\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    Include Day Used
    \r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filSmok\");\r\n setColList(c);\r\n }}\r\n >
    \r\n
    Zero Rates Only
    \r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filSmok\");\r\n setColList(c);\r\n }}\r\n >
    \r\n
    Include Pseudo Rooms
    \r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filSmok\");\r\n setColList(c);\r\n }}\r\n >
    \r\n\r\n
    */}\r\n {/*
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filSmok\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filSmok\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n console.log(item, name)}\r\n >\r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filSmok\");\r\n setColList(c);\r\n }}\r\n >\r\n
    \r\n
    \r\n
    VIP Only
    \r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filSmok\");\r\n setColList(c);\r\n }}\r\n >
    \r\n\r\n
    Include Canceled / No-Show
    \r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filSmok\");\r\n setColList(c);\r\n }}\r\n >
    \r\n\r\n
    Include Checked-In Today
    \r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filSmok\");\r\n setColList(c);\r\n }}\r\n >
    \r\n\r\n
    Include Complimentary / In-House
    \r\n {\r\n let c = [];\r\n c = colList.filter((d) => d.key !== \"filSmok\");\r\n setColList(c);\r\n }}\r\n >
    \r\n
    */}\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    Display
    \r\n {widgets.map((w, i) => (\r\n handleDragEntered(w.id)}\r\n onDragLeave={handleDragLeave}\r\n isDraggedOver={w.id === draggedOverContainerId}\r\n size={w.size}\r\n >\r\n handleDragStart(w.id)}\r\n />\r\n \r\n ))}\r\n {/*
    Room No & Type
    \r\n
    Reservation Status
    \r\n
    First Name
    \r\n
    Company
    \r\n
    Travel Agent
    \r\n
    Arrival Date & Time
    \r\n
    Departure Date & Time
    \r\n
    Adult
    \r\n
    Child
    \r\n
    No Of Rooms
    \r\n
    Rate Code
    \r\n
    Market
    \r\n
    Source
    \r\n
    Actual Rate
    \r\n
    Confirmation No
    \r\n
    Booking Reference
    \r\n
    VIP Status
    \r\n
    Advance Deposit
    \r\n
    Accompany Guest
    \r\n
    Preference
    */}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n\r\n console.log(item, name)}\r\n >\r\n console.log(item, name)}\r\n >\r\n console.log(item, name)}\r\n >\r\n\r\n Preview\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n {/* Popups Start */}\r\n\r\n {showReportFilterPopup ? (\r\n setShowReportFilterPopup(false)}\r\n >\r\n\r\n
    \r\n
    \r\n Search\r\n
    \r\n Date From - Date To\r\n Date Type\r\n Reservation\r\n Room Assignment\r\n Reservation Type\r\n Room Type\r\n Rate Code\r\n Market\r\n Source\r\n Checked In Today\r\n Zero Rate Only\r\n Include Cancelled Reservation\r\n VIP Level\r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n \r\n ) : null}\r\n {/* Popups End */}\r\n\r\n
    \r\n );\r\n}\r\n\r\n//export default Report;\r\nexport function moveItem(list, from, to) {\r\n const listClone = [...list];\r\n if (from < to) {\r\n listClone.splice(to + 1, 0, listClone[from]);\r\n listClone.splice(from, 1);\r\n } else if (to < from) {\r\n listClone.splice(to, 0, listClone[from]);\r\n listClone.splice(from + 1, 1);\r\n }\r\n return listClone;\r\n}","import {\r\n RoomTypeMaster,\r\n RateGroupMaster,\r\n UpgradeReasonMaster,\r\n ReservationAdd,\r\n ReservationListPage,\r\n ReservationPage,\r\n FloorMaster,\r\n BillingInstructionMaster,\r\n BuildingMaster,\r\n SourceMaster,\r\n ReservationView,\r\n BlockAtGlance,\r\n NewBlockReservation,\r\n ReservationBlockListPage,\r\n SpecialGroupMaster,\r\n MarketMaster,\r\n CancellationReasonMaster,\r\n RoomMaster,\r\n TraceMaster,\r\n RoomClassMaster,\r\n RoutingMaster,\r\n RateCodeMiscellaneousMaster,\r\n OTALog,\r\n GSTeinvoice\r\n} from \"../../modules/client/reservation\";\r\nimport {\r\n Master,\r\n BrandMaster,\r\n ProfileTitleMaster,\r\n ProfileAddressTypeMaster,\r\n ProfileCommunicationTypeMaster,\r\n DepositRuleMaster,\r\n GuestProfileMaster,\r\n RegionMaster,\r\n CompanyProfileList,\r\n VIPStatusMaster,\r\n StateMaster,\r\n EmployeeMaster,\r\n ReferenceMaster,\r\n ExemptionMaster,\r\n UserRightsMaster,\r\n TransactionMaster,\r\n PayModeMaster\r\n} from \"../../modules/client/general/masters\";\r\n//import { FolioView, Billing } from \"../../temp\";\r\nimport { ReservationCashiering } from \"../../modules/client/reservation/reservation-cashiering\";\r\nimport ReservationDepartureList from \"../../modules/client/reservation/reservation-departure-list\";\r\nimport { ReservationArrivalList } from \"../../modules/client/reservation\";\r\nimport { PersonalIdentificationTypeMaster } from \"../../modules/client/general/masters/personal-identification-type-master\";\r\nimport { CancellationRuleMaster } from \"../../modules/client/reservation/masters/cancellation-rule-master\";\r\nimport { MarketGroupMaster } from \"../../modules/client/reservation/masters/market-group-master\";\r\nimport { DayTypeMaster } from \"../../modules/client/reservation\";\r\n//import { ReservationDashboardPage } from \"../../modules/client/reservation/dashboard\";\r\n//import { ReservationDashboardPage } from \"../../modules/client/reservation/dashboard/reservation-dashboard\";\r\nimport { ReservationDashboard } from \"../../modules/client/reservation/dashboard\";\r\nimport { ReservationCancelList } from \"../../modules/client/reservation/reservation-cancel-list.js\";\r\nimport RateCodeMaster from \"../../modules/client/reservation/masters/rate-code-master\";\r\nimport ReasonMaster from \"../../modules/client/reservation/masters/reason-master\";\r\nimport { UserCategoryMaster } from \"../../modules/client/general/masters\";\r\nimport DepartmentMaster from \"../../modules/client/reservation/masters/department-master\";\r\nimport NoteTypeMaster from \"../../modules/client/general/masters/note-type-master\";\r\nimport CountryMaster from \"../../modules/client/general/masters/country-master\";\r\nimport { IndustryMaster } from \"../../modules/client/general/masters/industry-master\";\r\nimport EventMaster from \"../../modules/client/reservation/masters/event-master\";\r\nimport { CityMaster } from \"../../modules/client/general/masters/city-master\";\r\nimport { Minibar } from \"../../modules/client/pos\";\r\nimport MembershipLevelMaster from \"../../modules/client/reservation/masters/membership-level-Master\";\r\nimport ReservationTypeMaster from \"../../modules/client/reservation/masters/reservation-type-master\";\r\nimport AlertMaster from \"../../modules/client/reservation/masters/alert-master\";\r\nimport TransportationProviderMaster from \"../../modules/client/reservation/masters/transportation-provider-master\";\r\nimport PackageMaster from \"../../modules/client/reservation/masters/package-master\";\r\nimport FunctionalAreaMaster from \"../../modules/client/general/masters/functional-area-master\";\r\nimport TransportationTypeMaster from \"../../modules/client/reservation/masters/transportation-type-master\";\r\nimport RateTypeMaster from \"../../modules/client/general/masters/rate-type-master\";\r\nimport { ReservationReport } from \"../../modules/client/reservation/report/reservation-report\";\r\nimport { ReservationReportPreview } from \"../../modules/client/reservation/report/reservation-report-preview\";\r\nimport {\r\n HKStatusMaster, HousekeepingSectionGroupMaster, HousekeepingSectionMaster, LaundryItemMaster, LaundryItemCategoryMaster, LaundryReturnInMaster, LaundryHotelServiceMaster, LaundryVenderMaster, LaundryMaster, LaundryServiceMaster\r\n , LaundryItemRateMaster, HKServiceMaster, LaundryList, HKManagement\r\n} from \"../../modules/client/housekeeping\";\r\n// import {\r\n// MenuCategoryMaster, ItemGroupMaster, LocationMaster, ItemToppingMaster, POSOutletMaster, PosItemMaster, DocumentRemarkMaster, ServerMaster, MenuMaster, CourseMaster\r\n// } from \"../../modules/client/pos\";\r\nimport { NightAuditProcess } from \"../../modules/client/general/night-audit-process\";\r\nimport { RelationshipTypeMaster } from \"../../modules/client/general/masters/relationship-type-master\";\r\nimport { DeviceMaster } from \"../../modules/client/general/masters\";\r\n//import CheckHistory from \"../../modules/client/pos/check-history\";\r\nimport { SourceGroupMaster } from \"../../modules/client/reservation/masters/source-group-master\";\r\nimport CashBookTransactionMaster from \"../../modules/client/reservation/masters/cashbook-transaction-master\";\r\nimport CashBook from \"../../modules/client/general/cash-book\"\r\nimport { UserMaster } from \"../../modules/client/general/masters\";\r\nimport { ClientMaster } from \"../../modules/client/general/masters\";\r\nimport PropertyMaster from \"../../modules/client/general/masters/property-master\";\r\nimport { InvDepartmentMaster, RawMaterialMaster, StoreMaster, VendorMaster } from \"../../modules/client/inventory/master\";\r\nimport UnitofMeasureMaster from \"../../modules/client/inventory/master/unit-of-measure-master\";\r\nimport { VenderMaster } from \"../../modules/client/inventory/master/vender-master\";\r\nimport { MaterialManagementSystem } from \"../../modules/client/inventory/basic\";\r\nimport { InvCategoryMaster } from \"../../modules/client/inventory/master/inv-category-master\";\r\nimport { InvItemClassMaster } from \"../../modules/client/inventory/master/inv-Item-Class-Master\";\r\nimport { DocumentRemarkMaster } from \"../../modules/client/general/masters\";\r\nimport { InventoryReport } from \"../../modules/client/inventory/report/inventoryReport\";\r\nimport { InventoryReportPreview } from \"../../modules/client/inventory/report/inventory-report-preview\";\r\nimport { MMSDayClosing } from \"../../modules/client/inventory/basic/mms-day-closing\";\r\nimport { HouseKeepingReport } from \"../../modules/client/housekeeping/report/housekeepingReport\";\r\nimport { HouseKeepingReportPreview } from \"../../modules/client/housekeeping/report/housekeeping-report-preview\";\r\nimport { StockLevelReport } from \"../../modules/client/inventory/report/inv-stock-level-report\";\r\nimport { StockValuationReport } from \"../../modules/client/inventory/report/inv-stock-valuation-report\";\r\nimport { MaterialMovementReport } from \"../../modules/client/inventory/report/inv-material-movement-report\";\r\nimport { VenderDetailReport } from \"../../modules/client/inventory/report/inv-vender-detail-report\";\r\nimport { ItemListReport } from \"../../modules/client/inventory/report/inv-item-list-report\";\r\nimport { DayCloseLogReport } from \"../../modules/client/inventory/report/inv-Day-CloseLog-Report\";\r\nimport { NonMovingItemReport } from \"../../modules/client/inventory/report/inv-non-moving-report\";\r\nexport const menuMaster = [\r\n // { name: \"POSBilling\", Comp: POSBilling },\r\n // { name: \"CheckHistory\", Comp: CheckHistory },\r\n { name: \"NightAuditProcess\", Comp: NightAuditProcess },\r\n { name: \"TraceMaster\", Comp: TraceMaster },\r\n { name: \"EmployeeMaster\", Comp: EmployeeMaster },\r\n { name: \"ReservationCashiering\", Comp: ReservationCashiering },\r\n //{ name: \"Billing\", Comp: Billing },\r\n { name: \"ReservationAdd\", Comp: ReservationAdd },\r\n { name: \"ReservationListPage\", Comp: ReservationListPage },\r\n { name: \"ReservationPage\", Comp: ReservationPage },\r\n { name: \"Master\", Comp: Master },\r\n { name: \"FloorMaster\", Comp: FloorMaster },\r\n { name: \"BillingInstructionMaster\", Comp: BillingInstructionMaster },\r\n { name: \"BuildingMaster\", Comp: BuildingMaster },\r\n { name: \"RateGroupMaster\", Comp: RateGroupMaster },\r\n { name: \"RoomMaster\", Comp: RoomMaster },\r\n { name: \"RoomTypeMaster\", Comp: RoomTypeMaster },\r\n { name: \"UpgradeReasonMaster\", Comp: UpgradeReasonMaster },\r\n { name: \"BrandMaster\", Comp: BrandMaster },\r\n { name: \"ProfileAddressTypeMaster\", Comp: ProfileAddressTypeMaster },\r\n { name: \"ProfileTitleMaster\", Comp: ProfileTitleMaster },\r\n { name: \"ReservationView\", Comp: ReservationView },\r\n { name: \"ProfileCommunicationTypeMaster\", Comp: ProfileCommunicationTypeMaster },\r\n { name: \"SourceMaster\", Comp: SourceMaster },\r\n { name: \"HousekeepingSectionMaster\", Comp: HousekeepingSectionMaster },\r\n { name: \"ReservationArrivalList\", Comp: ReservationArrivalList },\r\n { name: \"ReservationDepartureList\", Comp: ReservationDepartureList },\r\n { name: \"DepositRuleMaster\", Comp: DepositRuleMaster },\r\n { name: \"HousekeepingSectionGroupMaster\", Comp: HousekeepingSectionGroupMaster },\r\n //{ name: \"FolioView\", Comp: FolioView },\r\n { name: \"RegionMaster\", Comp: RegionMaster },\r\n { name: \"BlockAtGlance\", Comp: BlockAtGlance },\r\n { name: \"PersonalIdentificationTypeMaster\", Comp: PersonalIdentificationTypeMaster },\r\n { name: \"DayTypeMaster\", \"Comp\": DayTypeMaster },\r\n { name: \"NewBlockReservation\", Comp: NewBlockReservation },\r\n { name: \"ReservationBlockListPage\", Comp: ReservationBlockListPage },\r\n { name: \"SpecialGroupMaster\", Comp: SpecialGroupMaster },\r\n { name: \"CancellationReasonMaster\", \"Comp\": CancellationReasonMaster },\r\n { name: \"CancellationRuleMaster\", Comp: CancellationRuleMaster },\r\n { name: \"ReservationDashboard\", Comp: ReservationDashboard },\r\n { name: \"ReservationCancelList\", Comp: ReservationCancelList },\r\n { name: \"GuestProfileMaster\", Comp: GuestProfileMaster },\r\n { name: \"RateCodeMaster\", \"Comp\": RateCodeMaster },\r\n { name: \"CompanyProfileList\", Comp: CompanyProfileList },\r\n { name: \"ReasonMaster\", Comp: ReasonMaster },\r\n { name: \"UserCategoryMaster\", Comp: UserCategoryMaster },\r\n { name: \"VIPStatusMaster\", Comp: VIPStatusMaster },\r\n { name: \"CountryMaster\", Comp: CountryMaster },\r\n { name: \"IndustryMaster\", Comp: IndustryMaster },\r\n { name: \"EventMaster\", Comp: EventMaster },\r\n { name: \"StateMaster\", Comp: StateMaster },\r\n { name: \"CityMaster\", Comp: CityMaster },\r\n { name: \"MembershipLevelMaster\", Comp: MembershipLevelMaster },\r\n { name: \"ReservationTypeMaster\", Comp: ReservationTypeMaster },\r\n { name: \"DepartmentMaster\", Comp: DepartmentMaster },\r\n { name: \"NoteTypeMaster\", Comp: NoteTypeMaster },\r\n { name: \"TransportationProviderMaster\", Comp: TransportationProviderMaster },\r\n { name: \"PackageMaster\", Comp: PackageMaster },\r\n { name: \"AlertMaster\", Comp: AlertMaster },\r\n { name: \"FunctionalAreaMaster\", Comp: FunctionalAreaMaster },\r\n { name: \"HousekeepingStatusMaster\", Comp: HKStatusMaster },\r\n { name: \"TransportationTypeMaster\", Comp: TransportationTypeMaster },\r\n { name: \"RateTypeMaster\", Comp: RateTypeMaster },\r\n { name: \"MarketGroupMaster\", Comp: MarketGroupMaster },\r\n { name: \"MarketMaster\", Comp: MarketMaster },\r\n { name: \"ReservationReport\", Comp: ReservationReport },\r\n { name: \"ReservationReportPreview\", Comp: ReservationReportPreview },\r\n { name: \"RelationshipTypeMaster\", Comp: RelationshipTypeMaster },\r\n { name: \"RoomClassMaster\", Comp: RoomClassMaster },\r\n { name: \"DeviceMaster\", Comp: DeviceMaster },\r\n { name: \"ReferenceMaster\", Comp: ReferenceMaster },\r\n { name: \"RoutingMaster\", Comp: RoutingMaster },\r\n { name: \"RateCodeMiscellaneousMaster\", Comp: RateCodeMiscellaneousMaster },\r\n { name: \"ExemptionMaster\", Comp: ExemptionMaster },\r\n { name: \"SourceGroupMaster\", Comp: SourceGroupMaster },\r\n { name: \"UserRightsMaster\", Comp: UserRightsMaster },\r\n { name: \"CashBookTransactionMaster\", Comp: CashBookTransactionMaster },\r\n { name: \"CashBook\", Comp: CashBook },\r\n { name: \"TransactionMaster\", Comp: TransactionMaster },\r\n { name: \"OTALog\", Comp: OTALog },\r\n { name: \"GSTeinvoice\", Comp: GSTeinvoice },\r\n { name: \"PayModeMaster\", Comp: PayModeMaster },\r\n { name: \"PropertyMaster\", Comp: PropertyMaster },\r\n\r\n //POS\r\n // { name: \"LocationMaster\", Comp: LocationMaster },\r\n // { name: \"MenuCategoryMaster\", Comp: MenuCategoryMaster },\r\n // { name: \"ServerMaster\", Comp: ServerMaster },\r\n // { name: \"ItemGroupMaster\", Comp: ItemGroupMaster },\r\n // { name: \"POSItemMaster\", Comp: PosItemMaster },\r\n // { name: \"OutletMaster\", Comp: POSOutletMaster },\r\n // { name: \"ItemToppingMaster\", Comp: ItemToppingMaster },\r\n // { name: \"DocumentRemarkMaster\", Comp: DocumentRemarkMaster },\r\n // { name: \"MenuMaster\", Comp: MenuMaster },\r\n // { name: \"CourseMaster\", Comp: CourseMaster },\r\n //Hk\r\n { name: \"LaundryItemMaster\", Comp: LaundryItemMaster },\r\n { name: \"LaundryItemCategoryMaster\", Comp: LaundryItemCategoryMaster },\r\n { name: \"LaundryReturnInMaster\", Comp: LaundryReturnInMaster },\r\n { name: \"LaundryHotelServiceMaster\", Comp: LaundryHotelServiceMaster },\r\n { name: \"LaundryVenderMaster\", Comp: LaundryVenderMaster },\r\n { name: \"LaundryServiceMaster\", Comp: LaundryServiceMaster },\r\n { name: \"LaundryMaster\", Comp: LaundryMaster },\r\n { name: \"LaundryItemRateMaster\", Comp: LaundryItemRateMaster },\r\n { name: \"HKServiceMaster\", Comp: HKServiceMaster },\r\n { name: \"Minibar\", Comp: Minibar },\r\n { name: \"LaundryList\", Comp: LaundryList },\r\n { name: \"HKManagement\", Comp: HKManagement },\r\n //{ name: \"Banquet\", Comp: Banquet },\r\n { name: \"UserMaster\", Comp: UserMaster },\r\n { name: \"ClientMaster\", Comp: ClientMaster },\r\n { name: \"HouseKeepingReport\", Comp: HouseKeepingReport },\r\n { name: \"HouseKeepingReportPreview\", Comp: HouseKeepingReportPreview },\r\n //Inventory\r\n { name: \"InvDepartmentMaster\", Comp: InvDepartmentMaster },\r\n { name: \"StoreMaster\", Comp: StoreMaster },\r\n { name: \"UnitofMeasureMaster\", Comp: UnitofMeasureMaster },\r\n { name: \"VenderMaster\", Comp: VenderMaster },\r\n { name: \"MaterialManagementSystem\", Comp: MaterialManagementSystem },\r\n { name: \"InvCategoryMaster\", Comp: InvCategoryMaster },\r\n { name: \"InvItemClassMaster\", Comp: InvItemClassMaster },\r\n { name: \"DocumentRemarkMaster\", Comp: DocumentRemarkMaster },\r\n { name: \"InventoryReport\", Comp: InventoryReport },\r\n { name: \"InventoryReportPreview\", Comp: InventoryReportPreview },\r\n { name: \"StockLevelReport\", Comp: StockLevelReport },\r\n { name: \"RawMaterialMaster\", Comp: RawMaterialMaster },\r\n { name: \"MMSDayClosing\", Comp: MMSDayClosing },\r\n { name: \"StockValuationReport\", Comp: StockValuationReport },\r\n { name: \"MaterialMovementReport\", Comp: MaterialMovementReport },\r\n { name: \"VenderDetailReport\", Comp: VenderDetailReport },\r\n { name: \"ItemListReport\", Comp: ItemListReport },\r\n { name: \"DayCloseLogReport\", Comp: DayCloseLogReport },\r\n { name: \"NonMovingItemReport\", Comp: NonMovingItemReport }\r\n]\r\n// Taha","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnButtonTypeWithDropdown,\r\n InnTableGrid,\r\n InnToastMessage,\r\n InnModalPopup,\r\n useConfirm,\r\n InnDataGrid,\r\n InnSingleDateSelection\r\n} from \"../../../component\";\r\n\r\nimport SharerPrimary from \"../../../assets/images/sharer-primary-icon.svg\";\r\nimport SharerSecondary from \"../../../assets/images/sharer-secondary-icon.svg\";\r\nimport LinkedIcon from \"../../../assets/images/link-icon.svg\";\r\nimport BlockIcon from \"../../../assets/images/block-icon.svg\";\r\nimport { currentUser } from \"../../../reducer/authSlice\";\r\nimport moment from \"moment/moment\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { EditCheckedInReservations, GetPropertyParameterByKeys, GetReservationInfoData } from \"../../../services/reservationService\";\r\nimport { ExtendReservation, GetNightAuditDueOutList, GetNightAuditExpectedArrivalList, GetNightAuditOpenFolioList, GetNightAuditPayMasterList, GetNightAuditPostNightList, PostponeReservation, ProcessNightAudit } from \"../../../services/generalService\";\r\nimport { CancelReservationModalPopup } from \"../reservation/modalPopup/cancelReservationModalPopup\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { useAlert } from \"../../../utils/hooks/useAlert\";\r\nexport function NightAuditProcess(props) {\r\n const currUser = useSelector(currentUser);\r\n const history = useHistory();\r\n const { confirm } = useConfirm();\r\n const { innkeyAlert } = useAlert();\r\n const defaultObj = {\r\n UserID: currUser.UserID,\r\n PcName: null,\r\n IpAddress: null,\r\n OutputPara: null\r\n };\r\n\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n //#region local variables\r\n const defaultTaskGrid = [\r\n { label: \"List of Due Out Rooms\", IsActive: true, IsCompleted: false, TaskSerNo: 1 },\r\n { label: \"List of Expected Arrivals\", IsActive: false, IsCompleted: false, TaskSerNo: 2 },\r\n { label: \"List of Unsettled Bills at POS\", IsActive: false, IsCompleted: false, TaskSerNo: 3 },\r\n { label: \"List of Unsettled Bills at Banquet\", IsActive: false, IsCompleted: false, TaskSerNo: 4 },\r\n { label: \"List of Open Folios\", IsActive: false, IsCompleted: false, TaskSerNo: 5 },\r\n { label: \"List of Pay Masters\", IsActive: false, IsCompleted: false, TaskSerNo: 6 },\r\n { label: \"Roll Date & Post nights\", IsActive: false, IsCompleted: false, TaskSerNo: 7 }\r\n ];\r\n const defaultHeader = [\r\n { key: \"Guest Name\", value: \"GuestName\", type: \"txt\", sorting: \"Y\", Inclusion: \"1,2,3,4,5,6,7\" },\r\n { key: \"Room No.\", value: \"RoomNo\", type: \"lnk\", sorting: \"Y\", Inclusion: \"1,2,3,4,5,6,7\" },\r\n { key: \"HK Status\", value: \"HKStatusCode\", type: \"txt\", sorting: \"Y\", Inclusion: \"2\" },\r\n { key: \"Room Type\", value: \"RoomTypeName\", type: \"txt\", sorting: \"Y\", Inclusion: \"1,2,3,4,5,6,7\" },\r\n { key: \"Sharer\", value: \"Sharer\", type: \"img\", sorting: \"N\", align: 'center', Inclusion: \"1,2,5,6,7\" },\r\n { key: \"Block\", value: \"Block\", type: \"img\", sorting: \"N\", align: 'center', Inclusion: \"1,2,5,6,7\" },\r\n { key: \"Party\", value: \"Party\", type: \"img\", sorting: \"N\", align: 'center', Inclusion: \"1,2,7\" },\r\n { key: \"ETA\", value: \"ArrivalTime\", type: \"txt\", sorting: \"Y\", Inclusion: \"2\" },\r\n { key: \"Arrival Date\", value: \"ArrivalDate\", type: \"txt\", sorting: \"Y\", Inclusion: \"1,3,4,5,6,7\" },\r\n { key: \"Nights\", value: \"Nights\", type: \"txt\", sorting: \"Y\", align: 'center', Inclusion: \"1,2,3,4,5,6\" },\r\n { key: \"Person\", value: \"Person\", type: \"txt\", sorting: \"Y\", Inclusion: \"1,2,3,4,5,6,7\" },\r\n { key: \"Rate Code\", value: \"RateCode\", type: \"txt\", sorting: \"Y\", Inclusion: \"7\" },\r\n { key: \"Total Rate\", value: \"RoomRate\", type: \"txt\", sorting: \"Y\", Inclusion: \"7\" },\r\n { key: \"Balance\", value: \"RoomRate\", type: \"txt\", sorting: \"Y\", Inclusion: \"5,6\" },\r\n { key: \"Rate\", value: \"RoomRate\", type: \"txt\", sorting: \"Y\", Inclusion: \"1,2\" },\r\n { key: \"POS Unsettled Amount\", value: \"POSAmount\", type: \"txt\", sorting: \"Y\", Inclusion: \"3,4\" },\r\n { key: \"Outlet Name\", value: \"OutletName\", type: \"txt\", sorting: \"Y\", Inclusion: \"3,4\" },\r\n { key: \"Check No.\", value: \"CheckNo\", type: \"txt\", sorting: \"Y\", Inclusion: \"3,4\" },\r\n { key: \"User Id\", value: \"UserID\", type: \"txt\", sorting: \"Y\", Inclusion: \"3,4,5,6\" },\r\n { key: \"Company\", value: \"CompanyName\", type: \"txt\", sorting: \"Y\", Inclusion: \"1,2,3,4,5,6,7\" },\r\n { key: \"Agent\", value: \"AgentName\", type: \"txt\", sorting: \"Y\", Inclusion: \"1,2,3,4,5,6,7\" },\r\n { key: \"Booking No.\", value: \"BookingNo\", type: \"txt\", sorting: \"N\", Inclusion: \"1,2,3,4,5,6,7\" },\r\n { key: \"Booking Ref.No.\", value: \"BookingReferenceNo\", type: \"txt\", sorting: \"N\", Inclusion: \"1,2,3,4,5,6,7\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\", Inclusion: \"1,2,3,4,5,6,7\" },\r\n ];\r\n\r\n const dueOutOptList = [\r\n { key: \"Auto Extend\", value: \"Auto Extend\", serNo: \"DOT\" },\r\n { key: \"Manual Extend\", value: \"Manual Extend\", serNo: \"DOT2\" },\r\n { key: \"Check Out Manually\", value: \"Check Out Manually\", serNo: \"DOT3\" },\r\n ];\r\n\r\n const expectedArrivalOptList = [\r\n { key: \"Show Check in\", value: \"Show Check in\", serNo: \"ARR1\" },\r\n { key: \"Cancel Reservation\", value: \"Cancel Reservation\", serNo: \"ARR2\" },\r\n { key: \"No Show Reservation\", value: \"No Show Reservation\", serNo: \"ARR3\" },\r\n { key: \"Auto Roll Date\", value: \"Auto Roll Date\", serNo: \"ARR4\" },\r\n { key: \"Manual Roll Date\", value: \"Manual Roll Date\", serNo: \"ARR5\" },\r\n ];\r\n\r\n const postNightOptList = [\r\n { key: \"Go to Cashiering\", value: \"Go to Cashiering\" },\r\n { key: \"Go to At a Glance\", value: \"Go to At a Glance\" }\r\n ];\r\n //#endregion\r\n\r\n //#region state\r\n const [taskGrid, setTaskGrid] = useState(defaultTaskGrid);\r\n const [TaskSerNo, setTaskSerNo] = useState(1);\r\n const [maxTaskSerNo, setMaxTaskSerNo] = useState(7);\r\n const [dynamicHeader, setDynamicHeader] = useState(defaultHeader);\r\n const [list, setList] = useState([]);\r\n const [dueOutList, setDueOutList] = useState([]);\r\n const [expectedArrivalList, setExpectedArrivalList] = useState([]);\r\n const [postNightList, setPostNightList] = useState([]);\r\n const [openFolioList, setOpenFolioList] = useState([]);\r\n const [payMasterList, setPayMasterList] = useState([]);\r\n const [BusinessDate, setBusinessDate] = useState(\"\");\r\n const [optList, setOptList] = useState([]);\r\n const [reservationInfoData, setReservationInfoData] = useState({});\r\n const [selectedRow, setSelectedRow] = useState({});\r\n const [showRollBusinessDate, setShowRollBusinessDate] = useState(false);\r\n const [selectedCheckboxData, setSelectedCheckboxData] = useState([]);\r\n const [primaryReservationInfo, setPrimaryReservationInfo] = useState({});\r\n const [ManualExtendNightCount, setManualExtendNightCount] = useState(0);\r\n const [showDateAddModalPopup, setShowDateAddModalPopup] = useState(false);\r\n const [selectedDate, setSelectedDate] = useState(\"\");\r\n const [showCancelPopup, setShowCancelPopup] = useState(false);\r\n const [cancelPopupMode, setCancelPopupMode] = useState(\"\");\r\n const [IsPageLoaded, setIsPageLoaded] = useState(false);\r\n\r\n //#endregion\r\n\r\n //#region API\r\n const GetBusinessDate = () => {\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), [\"BusinessDate\"]).then((d) => {\r\n console.log(\"BusinessDate\", d.data[0]);\r\n setBusinessDate(moment(new Date(d.data[0].value)).format(\"DD-MMM-YYYY\"));\r\n setSelectedDate(moment(new Date(d.data[0].value)).format(\"DD-MMM-YYYY\"));\r\n });\r\n };\r\n const fillDueOutList = () => {\r\n GetNightAuditDueOutList(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), BusinessDate).then(d => {\r\n setDueOutList(d.data);\r\n if (d.data.length === 0) {\r\n onNextButtonClick();\r\n } else {\r\n let temp = JSON.parse(JSON.stringify(d.data));\r\n temp.forEach(x => {\r\n x.RoomRate = parseFloat(x.RoomRate).toFixed(2);\r\n x.ArrivalDate = moment(new Date(x.ArrivalDate)).format(\"ddd, do MMM\");\r\n x[\"Person\"] = x.Adult + \"A\" + \", \" + x.Child + \"C\";\r\n if (x.BlockSerNo != 0) {\r\n x[\"Block\"] = BlockIcon;\r\n } else {\r\n if (x.IsSharer === true) {\r\n x[\"Sharer\"] = SharerSecondary;\r\n } else {\r\n x[\"Sharer\"] = SharerPrimary;\r\n }\r\n }\r\n if (x.PartyNo !== 0) {\r\n x[\"Party\"] = LinkedIcon;\r\n }\r\n x[\"Action\"] = \"...\";\r\n });\r\n setList(temp);\r\n }\r\n });\r\n };\r\n const fillExpectedArrivalList = () => {\r\n GetNightAuditExpectedArrivalList(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), BusinessDate).then(d => {\r\n setExpectedArrivalList(d.data);\r\n if (d.data.length === 0) {\r\n onNextButtonClick();\r\n } else {\r\n let temp = JSON.parse(JSON.stringify(d.data));\r\n temp.forEach(x => {\r\n x.RoomRate = parseFloat(x.RoomRate).toFixed(2);\r\n x.ArrivalDate = moment(new Date(x.ArrivalDate)).format(\"ddd, do MMM\");\r\n x[\"Person\"] = x.Adult + \"A\" + \", \" + x.Child + \"C\";\r\n if (x.BlockSerNo != 0) {\r\n x[\"Block\"] = BlockIcon;\r\n } else {\r\n if (x.IsSharer === true) {\r\n x[\"Sharer\"] = SharerSecondary;\r\n } else {\r\n x[\"Sharer\"] = SharerPrimary;\r\n }\r\n }\r\n if (x.PartyNo !== 0) {\r\n x[\"Party\"] = LinkedIcon;\r\n }\r\n x[\"Action\"] = \"...\";\r\n });\r\n setList(temp);\r\n }\r\n });\r\n };\r\n const fillOpenFolioList = () => {\r\n GetNightAuditOpenFolioList(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), BusinessDate).then(d => {\r\n setOpenFolioList(d.data);\r\n if (d.data.length === 0) {\r\n onNextButtonClick();\r\n }\r\n else {\r\n let temp = JSON.parse(JSON.stringify(d.data));\r\n temp.forEach(x => {\r\n x.RoomRate = parseFloat(x.RoomRate).toFixed(2);\r\n x.ArrivalDate = moment(new Date(x.ArrivalDate)).format(\"ddd, do MMM\");\r\n x[\"Person\"] = x.Adult + \"A\" + \", \" + x.Child + \"C\";\r\n if (x.BlockSerNo != 0) {\r\n x[\"Block\"] = BlockIcon;\r\n } else {\r\n if (x.IsSharer === true) {\r\n x[\"Sharer\"] = SharerSecondary;\r\n } else {\r\n x[\"Sharer\"] = SharerPrimary;\r\n }\r\n }\r\n if (x.PartyNo !== 0) {\r\n x[\"Party\"] = LinkedIcon;\r\n }\r\n x[\"Action\"] = \"...\";\r\n });\r\n setList(temp);\r\n }\r\n });\r\n };\r\n const fillPayMasterList = () => {\r\n GetNightAuditPayMasterList(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), BusinessDate).then(d => {\r\n setPayMasterList(d.data);\r\n if (d.data.length === 0) {\r\n onNextButtonClick();\r\n } else {\r\n let temp = JSON.parse(JSON.stringify(d.data));\r\n temp.forEach(x => {\r\n x.RoomRate = parseFloat(x.RoomRate).toFixed(2);\r\n x.ArrivalDate = moment(new Date(x.ArrivalDate)).format(\"ddd, do MMM\");\r\n x[\"Person\"] = x.Adult + \"A\" + \", \" + x.Child + \"C\";\r\n if (x.BlockSerNo != 0) {\r\n x[\"Block\"] = BlockIcon;\r\n } else {\r\n if (x.IsSharer === true) {\r\n x[\"Sharer\"] = SharerSecondary;\r\n } else {\r\n x[\"Sharer\"] = SharerPrimary;\r\n }\r\n }\r\n if (x.PartyNo !== 0) {\r\n x[\"Party\"] = LinkedIcon;\r\n }\r\n x[\"Action\"] = \"...\";\r\n });\r\n setList(temp);\r\n }\r\n });\r\n };\r\n const fillPostNightList = () => {\r\n GetNightAuditPostNightList(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), BusinessDate).then(d => {\r\n setPostNightList(d.data);\r\n if (d.data.length === 0) {\r\n onNextButtonClick();\r\n }\r\n let temp = JSON.parse(JSON.stringify(d.data));\r\n temp.forEach(x => {\r\n x.RoomRate = parseFloat(x.RoomRate).toFixed(2);\r\n x.ArrivalDate = moment(new Date(x.ArrivalDate)).format(\"ddd, do MMM\");\r\n x[\"Person\"] = x.Adult + \"A\" + \", \" + x.Child + \"C\";\r\n if (x.BlockSerNo != 0) {\r\n x[\"Block\"] = BlockIcon;\r\n } else {\r\n if (x.IsSharer === true) {\r\n x[\"Sharer\"] = SharerSecondary;\r\n } else {\r\n x[\"Sharer\"] = SharerPrimary;\r\n }\r\n }\r\n if (x.PartyNo !== 0) {\r\n x[\"Party\"] = LinkedIcon;\r\n }\r\n x[\"Action\"] = \"...\";\r\n });\r\n setList(temp);\r\n });\r\n };\r\n const fillReservationInfoData = (rowData) => {\r\n if (reservationInfoData.ReservationSerNo !== rowData.ReservationSerNo) {\r\n GetReservationInfoData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), rowData.ReservationSerNo).then((d) => {\r\n console.log(\"info data\", d.data);\r\n setReservationInfoData(d.data);\r\n });\r\n }\r\n };\r\n const CheckInReservations = (para) => {\r\n EditCheckedInReservations(para).then(d => {\r\n alertFunction(d.data.Message);\r\n setTimeout(() => {\r\n fillExpectedArrivalList();\r\n setSelectedCheckboxData([]);\r\n setSelectedRow({});\r\n setReservationInfoData({});\r\n setPrimaryReservationInfo({});\r\n }, 50);\r\n });\r\n };\r\n //#endregion\r\n\r\n //#region event\r\n\r\n const onNextButtonClick = (num) => {\r\n let IsSkipable = false;\r\n const temp = [3, 4, 5, 6];\r\n for (let i = 0; i < temp.length; i++) {\r\n if (temp[i] == TaskSerNo) {\r\n IsSkipable = true;\r\n }\r\n }\r\n if (list.length > 0 && IsSkipable) {\r\n alertFunction(\"Please complete current phase to continue.\");\r\n }\r\n else {\r\n if (maxTaskSerNo >= TaskSerNo) {\r\n let temp = JSON.parse(JSON.stringify(taskGrid));\r\n temp.forEach(x => {\r\n if (x.TaskSerNo === TaskSerNo) {\r\n x.IsCompleted = true;\r\n x.IsActive = false;\r\n setTaskSerNo(x.TaskSerNo + 1);\r\n }\r\n if (x.TaskSerNo === TaskSerNo + 1) {\r\n x.IsCompleted = false;\r\n x.IsActive = true;\r\n }\r\n });\r\n setTaskGrid(temp);\r\n } else {\r\n alertFunction(\"Can not proceed further.\");\r\n }\r\n }\r\n };\r\n const handleOptClick = (e, item) => {\r\n console.log(e);\r\n if (e.key === 'Check Out Manually') {\r\n history.push({\r\n pathname: \"/ReservationCashiering\",\r\n state: {\r\n ReservationSerNo: selectedRow.ReservationSerNo.toString(),\r\n filterObj: {\r\n FromDate: moment(new Date(reservationInfoData.ArrivalDate1)).format(\"DD-MMM-YYYY\"),\r\n ToDate: moment(new Date(reservationInfoData.DepartureDate1)).format(\"DD-MMM-YYYY\"),\r\n DtType: \"STAY\",\r\n ReservationStatus: \"ARD,INH,DOT,DIN,COT\",\r\n Mainmenu: \"Manage In-House List\"\r\n }\r\n },\r\n });\r\n }\r\n else if (e.key === \"Auto Extend\") {\r\n if (selectedRow.IsSharer === true) {\r\n if (primaryReservationInfo.ReservationStatus === \"INH\") {\r\n let PrimaryDepartureDate = primaryReservationInfo.DepartureDate1;\r\n let SharerDepartureDate = reservationInfoData.DepartureDate1;\r\n let tempDate1 = new Date(moment(new Date(PrimaryDepartureDate)).format(\"DD-MMM-YYYY\"));\r\n let tempDate2 = new Date(moment(new Date(SharerDepartureDate).setDate(new Date(SharerDepartureDate).getDate() + 1)).format(\"DD-MMM-YYYY\"));\r\n if (tempDate2.getTime() <= tempDate1.getTime()) {\r\n handleExtendReservation(selectedRow.ReservationSerNo, 1).then(Message => {\r\n if (Message === 'Done') {\r\n fillDueOutList();\r\n setSelectedRow({});\r\n setPrimaryReservationInfo({});\r\n setReservationInfoData({});\r\n setSelectedCheckboxData([]);\r\n }\r\n });\r\n }\r\n else {\r\n alertFunction(\"This Functionality is not available at this moment\");\r\n }\r\n } else {\r\n alertFunction('Sharer reservation without a primary reservation cannot be extended.');\r\n }\r\n } else {\r\n handleExtendReservation(selectedRow.ReservationSerNo, 1).then(Message => {\r\n if (Message === 'Done') {\r\n fillDueOutList();\r\n setSelectedRow({});\r\n setPrimaryReservationInfo({});\r\n setReservationInfoData({});\r\n setSelectedCheckboxData([]);\r\n }\r\n });;\r\n }\r\n }\r\n else if (e.key === \"Manual Extend\") {\r\n setShowDateAddModalPopup(true);\r\n }\r\n else if (e.key === \"Cancel Reservation\") {\r\n setCancelPopupMode(\"CAN\");\r\n setShowCancelPopup(true);\r\n }\r\n else if (e.key === \"No Show Reservation\") {\r\n setCancelPopupMode(\"NSH\");\r\n setShowCancelPopup(true);\r\n }\r\n else if (e.key === \"Show Check in\") {\r\n if (selectedRow.RoomNo != 0) {\r\n let para = [{\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: selectedRow.ReservationSerNo,\r\n WithSharer: false\r\n }];\r\n CheckInReservations(para);\r\n } else {\r\n alertFunction(\"Reservation does not have a room assigned. This action cannot be performed.\");\r\n }\r\n }\r\n else if (e.key === \"Auto Roll Date\") {\r\n if (selectedRow.IsSharer === true) {\r\n let PrimaryDepartureDate = primaryReservationInfo.DepartureDate1;\r\n let SharerDepartureDate = reservationInfoData.DepartureDate1;\r\n let tempDate1 = new Date(moment(new Date(PrimaryDepartureDate)).format(\"DD-MMM-YYYY\"));\r\n let tempDate2 = new Date(moment(new Date(SharerDepartureDate).setDate(new Date(SharerDepartureDate).getDate() + 1)).format(\"DD-MMM-YYYY\"));\r\n if (tempDate2.getTime() <= tempDate1.getTime()) {\r\n handlePostponeReservation(selectedRow.ReservationSerNo, 1).then(Message => {\r\n if (Message === 'Done') {\r\n fillExpectedArrivalList();\r\n setSelectedRow({});\r\n setPrimaryReservationInfo({});\r\n setReservationInfoData({});\r\n setSelectedCheckboxData([]);\r\n }\r\n });\r\n }\r\n else {\r\n alertFunction(\"Departure date of sharer will exceed the departure date of primary reservation hence this action can not be performed.\");\r\n }\r\n\r\n } else {\r\n handlePostponeReservation(selectedRow.ReservationSerNo, 1).then(Message => {\r\n if (Message === 'Done') {\r\n fillExpectedArrivalList();\r\n setSelectedRow({});\r\n setPrimaryReservationInfo({});\r\n setReservationInfoData({});\r\n setSelectedCheckboxData([]);\r\n }\r\n });;\r\n }\r\n }\r\n else if (e.key === \"Manual Roll Date\") {\r\n setShowDateAddModalPopup(true);\r\n }\r\n else if (e.key === \"Go to Cashiering\") {\r\n history.push({\r\n pathname: \"/ReservationCashiering\",\r\n state: {\r\n ReservationSerNo: selectedRow.ReservationSerNo.toString(),\r\n filterObj: {\r\n FromDate: moment(new Date(reservationInfoData.ArrivalDate1)).format(\"DD-MMM-YYYY\"),\r\n ToDate: moment(new Date(reservationInfoData.DepartureDate1)).format(\"DD-MMM-YYYY\"),\r\n DtType: \"STAY\",\r\n ReservationStatus: \"ARD,INH,DOT,DIN,COT\",\r\n Mainmenu: \"Manage In-House List\"\r\n }\r\n },\r\n });\r\n }\r\n else if (e.key === \"Go to At a Glance\") {\r\n history.push({\r\n pathname: \"/ReservationView\",\r\n state: {\r\n reservationSerNo: selectedRow.ReservationSerNo,\r\n filterObj: {\r\n FromDate: moment(new Date(reservationInfoData.ArrivalDate1)).format(\"DD-MMM-YYYY\"),\r\n ToDate: moment(new Date(reservationInfoData.DepartureDate1)).format(\"DD-MMM-YYYY\"),\r\n DtType: \"STAY\",\r\n ReservationStatus: \"ARD,INH,DOT,DIN,COT\",\r\n Mainmenu: \"Manage In-House List\"\r\n }\r\n }\r\n });\r\n }\r\n };\r\n const handleOnActionChange = (e) => {\r\n if (selectedCheckboxData.length > 0) {\r\n if (e.key === 'Check Out Manually') {\r\n let str = \"\";\r\n selectedCheckboxData.forEach(x => {\r\n str = str + \",\" + x.ReservationSerNo;\r\n });\r\n history.push({\r\n pathname: \"/ReservationCashiering\",\r\n state: {\r\n ReservationSerNo: str,\r\n filterObj: {\r\n FromDate: moment(new Date(reservationInfoData.ArrivalDate1)).format(\"DD-MMM-YYYY\"),\r\n ToDate: moment(new Date(reservationInfoData.DepartureDate1)).format(\"DD-MMM-YYYY\"),\r\n DtType: \"STAY\",\r\n ReservationStatus: \"ARD,INH,DOT,DIN,COT\",\r\n Mainmenu: \"Manage In-House List\"\r\n }\r\n },\r\n });\r\n }\r\n else if (e.key === 'Show Check in') {\r\n let para = [];\r\n let IsValid = true;\r\n let IsAllInspected = true;\r\n console.log(\"Check box data\", selectedCheckboxData);\r\n for (let i = 0; i < selectedCheckboxData.length; i++) {\r\n if (selectedCheckboxData[i].RoomNo === 0) {\r\n IsValid = false;\r\n break;\r\n }\r\n if (selectedCheckboxData[i].HKStatusCode !== 'Insp') {\r\n IsAllInspected = false;\r\n }\r\n para.push({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: selectedCheckboxData[i].ReservationSerNo,\r\n WithSharer: false,\r\n });\r\n }\r\n if (IsValid) {\r\n if (IsAllInspected) {\r\n CheckInReservations(para);\r\n } else {\r\n let isConfirmed = innkeyAlert(\"Some rooms are not on inspected HK status. Would you like to continue showing check in to all?\");\r\n if (isConfirmed) {\r\n CheckInReservations(para);\r\n }\r\n }\r\n } else {\r\n alertFunction(\"One or more reservation does not have a room assigned. This action cannot be performed.\");\r\n }\r\n }\r\n else {\r\n alertFunction(\"This action is not avialable when multiple rows are selected.\");\r\n }\r\n }\r\n else {\r\n alertFunction(\"Please select checkbox first.\");\r\n }\r\n };\r\n const handleExtendReservation = async (ReservationSerNo, Night) => {\r\n let Message = \"\";\r\n await ExtendReservation(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo, Night).then((d) => {\r\n if (d.data === \"Done\") {\r\n alertFunction(\"Reservation is extended Successfully.\");\r\n } else {\r\n alertFunction(d.data);\r\n }\r\n Message = d.data;\r\n });\r\n return Message;\r\n };\r\n const handleOnManualDateChangeClick = (str) => {\r\n if (ManualExtendNightCount > 0) {\r\n if (str === 'Extend') {\r\n if (selectedRow.IsSharer === true) {\r\n if (primaryReservationInfo.ReservationStatus === \"INH\") {\r\n let PrimaryDepartureDate = primaryReservationInfo.DepartureDate1;\r\n let SharerDepartureDate = reservationInfoData.DepartureDate1;\r\n let tempDate1 = new Date(moment(new Date(PrimaryDepartureDate)).format(\"DD-MMM-YYYY\"));\r\n let tempDate2 = new Date(moment(new Date(SharerDepartureDate).setDate(new Date(SharerDepartureDate).getDate() + ManualExtendNightCount)).format(\"DD-MMM-YYYY\"));\r\n if (tempDate2.getTime() <= tempDate1.getTime()) {\r\n handleExtendReservation(selectedRow.ReservationSerNo, parseInt(ManualExtendNightCount)).then(Message => {\r\n console.log(\"Message\", Message);\r\n if (Message === 'Done') {\r\n fillDueOutList();\r\n setSelectedRow({});\r\n setSelectedCheckboxData([]);\r\n setSelectedDate(BusinessDate);\r\n setPrimaryReservationInfo({});\r\n setReservationInfoData({});\r\n setShowDateAddModalPopup(false);\r\n }\r\n });\r\n } else {\r\n alertFunction(\"Departure date of sharer will exceed the departure date of Primary reservation hence this action can not be performed.\");\r\n setSelectedDate(BusinessDate);\r\n }\r\n } else {\r\n alertFunction('Sharer reservation without a primary reservation cannot be extended.');\r\n }\r\n } else {\r\n handleExtendReservation(selectedRow.ReservationSerNo, parseInt(ManualExtendNightCount)).then(Message => {\r\n console.log(\"Message\", Message);\r\n if (Message === 'Done') {\r\n fillDueOutList();\r\n setSelectedRow({});\r\n setPrimaryReservationInfo({});\r\n setReservationInfoData({});\r\n setSelectedCheckboxData([]);\r\n setSelectedDate(BusinessDate);\r\n setShowDateAddModalPopup(false);\r\n }\r\n });\r\n }\r\n }\r\n else if (str === 'Postpone') {\r\n if (selectedRow.IsSharer === true) {\r\n let PrimaryDepartureDate = primaryReservationInfo.DepartureDate1;\r\n let SharerDepartureDate = reservationInfoData.DepartureDate1;\r\n let tempDate1 = new Date(moment(new Date(PrimaryDepartureDate)).format(\"DD-MMM-YYYY\"));\r\n let tempDate2 = new Date(moment(new Date(SharerDepartureDate).setDate(new Date(SharerDepartureDate).getDate() + ManualExtendNightCount)).format(\"DD-MMM-YYYY\"));\r\n if (tempDate2.getTime() <= tempDate1.getTime()) {\r\n handlePostponeReservation(selectedRow.ReservationSerNo, parseInt(ManualExtendNightCount)).then(Message => {\r\n console.log(\"Message\", Message);\r\n if (Message === 'Done') {\r\n fillExpectedArrivalList();\r\n setSelectedRow({});\r\n setSelectedCheckboxData([]);\r\n setSelectedDate(BusinessDate);\r\n setPrimaryReservationInfo({});\r\n setReservationInfoData({});\r\n setShowDateAddModalPopup(false);\r\n }\r\n });\r\n } else {\r\n alertFunction(\"Departure date of sharer will exceed the departure date of Primary reservation hence this action can not be performed.\");\r\n setSelectedDate(BusinessDate);\r\n }\r\n } else {\r\n handlePostponeReservation(selectedRow.ReservationSerNo, parseInt(ManualExtendNightCount)).then(Message => {\r\n console.log(\"Message\", Message);\r\n if (Message === 'Done') {\r\n fillExpectedArrivalList();\r\n setSelectedRow({});\r\n setPrimaryReservationInfo({});\r\n setReservationInfoData({});\r\n setSelectedCheckboxData([]);\r\n setSelectedDate(BusinessDate);\r\n setShowDateAddModalPopup(false);\r\n }\r\n });\r\n }\r\n }\r\n\r\n }\r\n else {\r\n console.log(\"Invalid nights\");\r\n }\r\n };\r\n const handlePostponeReservation = async (ReservationSerNo, Night) => {\r\n let Message = \"\";\r\n await PostponeReservation(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo, Night).then((d) => {\r\n if (d.data === \"Done\") {\r\n alertFunction(\"Reservation is rolled Successfully.\");\r\n } else {\r\n alertFunction(d.data);\r\n }\r\n Message = d.data;\r\n });\r\n return Message;\r\n };\r\n const handleRollBusinessDate = () => {\r\n console.log(\"default obj here\", defaultObj, BusinessDate);\r\n ProcessNightAudit(\r\n currUser.ClientSerNo,\r\n currUser.PropertySerNo,\r\n defaultObj.UserID,\r\n defaultObj.PcName,\r\n defaultObj.IpAddress,\r\n defaultObj.OutputPara\r\n ).then((d) => {\r\n setShowRollBusinessDate(!showRollBusinessDate);\r\n GetBusinessDate();\r\n setTaskSerNo(1);\r\n });\r\n };\r\n //#endregion\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n if (BusinessDate !== \"\") {\r\n let temp = JSON.parse(JSON.stringify(defaultHeader));\r\n if (TaskSerNo != undefined && TaskSerNo <= maxTaskSerNo) {\r\n setDynamicHeader(temp.filter(x => x.Inclusion.includes(TaskSerNo)));\r\n if (TaskSerNo === 1) {\r\n fillDueOutList();\r\n setOptList(dueOutOptList);\r\n }\r\n else if (TaskSerNo === 2) {\r\n fillExpectedArrivalList();\r\n setOptList(expectedArrivalOptList);\r\n }\r\n else if (TaskSerNo === 5) {\r\n fillOpenFolioList();\r\n setOptList([]);\r\n }\r\n else if (TaskSerNo === 6) {\r\n fillPayMasterList();\r\n setOptList([]);\r\n }\r\n else if (TaskSerNo === 7) {\r\n fillPostNightList();\r\n setOptList(postNightOptList);\r\n }\r\n else {\r\n setList([]);\r\n setOptList([]);\r\n }\r\n }\r\n }\r\n }, [TaskSerNo, BusinessDate]);\r\n useEffect(() => {\r\n GetBusinessDate();\r\n }, []);\r\n\r\n useEffect(() => {\r\n let DateDiff = (new Date(selectedDate + ' 00:00') - new Date(BusinessDate + ' 00:00')) / 1000 / 60 / 60 / 24;\r\n if (DateDiff > 0) {\r\n setManualExtendNightCount(DateDiff);\r\n } else {\r\n setManualExtendNightCount(0);\r\n }\r\n }, [selectedDate]);\r\n\r\n useEffect(() => {\r\n if (selectedRow.ReservationSerNo != undefined) {\r\n fillReservationInfoData(selectedRow);\r\n if (selectedRow.IsSharer === true) {\r\n if (selectedRow.SharerReservationSerNo !== null) {\r\n GetReservationInfoData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), selectedRow.SharerReservationSerNo).then((d) => {\r\n setPrimaryReservationInfo(d.data);\r\n });\r\n }\r\n }\r\n }\r\n }, [selectedRow]);\r\n //#endregion\r\n return (\r\n
    \r\n {showCancelPopup ? {\r\n setShowCancelPopup(false);\r\n setTimeout(() => {\r\n fillExpectedArrivalList();\r\n setSelectedCheckboxData([]);\r\n setSelectedDate([]);\r\n setSelectedRow({});\r\n setPrimaryReservationInfo({});\r\n setReservationInfoData({});\r\n }, 100);\r\n }}\r\n >\r\n \r\n : null}\r\n {showDateAddModalPopup ?\r\n {\r\n setShowDateAddModalPopup(false);\r\n setSelectedDate(BusinessDate);\r\n }}\r\n >\r\n {(TaskSerNo === 2) ?\r\n
    Please select a date to which this reservation needs to be rolled to.\r\n
    \r\n :\r\n
    \r\n Please select a date to which this reservation needs to be Extended.\r\n
    \r\n }\r\n
    \r\n {\r\n setSelectedDate(moment(new Date(e)).format(\"DD-MMM-YYYY\"));\r\n if (new Date(moment(new Date(e)).format(\"DD-MMM-YYYY\") + \" 00:00\") < new Date(BusinessDate + ' 00:00')) {\r\n setTimeout(() => {\r\n setSelectedDate(BusinessDate);\r\n }, 50);\r\n alertFunction(\"Please select date greater than Business Date\");\r\n }\r\n }}\r\n placeholder=\"Date\"\r\n label=\"Date\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n />\r\n
    \r\n
    \r\n {\r\n let temp = '';\r\n if (TaskSerNo === 1) {\r\n temp = 'Extend';\r\n } else {\r\n temp = 'Postpone';\r\n }\r\n handleOnManualDateChangeClick(temp);\r\n }}\r\n >Ok\r\n
    \r\n : null\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Business Date : {moment(new Date(BusinessDate)).format('ddd, DD MMM, YYYY')}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Night audit process
    \r\n
    \r\n
      \r\n {taskGrid.map((item, index) => {\r\n return (\r\n \r\n {item.label}\r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {taskGrid.find(x => x.TaskSerNo === TaskSerNo)?.label}
    \r\n
    \r\n {\r\n handleOnActionChange(item);\r\n }}\r\n >\r\n Action\r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n console.log(\"Checkbox data\", items);\r\n setSelectedCheckboxData(items);\r\n }}\r\n fixedHeaderNo={2}\r\n uniqueColumn=\"BookingNo\"\r\n optData={optList}\r\n optClick={(item, d) => {\r\n handleOptClick(item, d);\r\n }}\r\n handleRowSelect={(rowData) => {\r\n setSelectedRow(rowData);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n {(TaskSerNo === 7) ?\r\n {\r\n handleRollBusinessDate();\r\n }\r\n }>Roll Business Date\r\n \r\n :\r\n Next\r\n \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n {showRollBusinessDate ? (\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    Success Message
    \r\n
    \r\n

    Night audit process for business date 12th May successfully completed.

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n setShowRollBusinessDate(false)}>OK\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null\r\n }\r\n
    \r\n );\r\n};","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport { useAlert } from \"../../../utils/hooks/useAlert\";\r\nimport moment from \"moment\";\r\nimport { InnActionButton, InnCheckbox, InnPrimaryButton, InnSearchTextbox, InnSwitch, InnTextbox, InnButtonTypeWithDropdown, InnPlainButton, InnTableGrid, InnFileUpload, useConfirm } from \"../../../component\";\r\n\r\nimport infoicon from \"../../../assets/images/info-icon-2.svg\";\r\nimport closeIcon from \"../../../assets/images/model-cls-btn.png\";\r\nimport rightarrow from \"../../../assets/images/right-circle-arrow-gray.svg\";\r\nimport smsIcon from \"../../../assets/images/sms-tooltip-icon.svg\";\r\nimport EmailTooltipIcon from \"../../../assets/images/email-tooltip-icon.svg\";\r\n\r\nimport { InnTooltip } from \"../../../component\";\r\nimport { InnMultiSelectDropdown } from \"../../../component\";\r\nimport { InnSingleDateSelection } from \"../../../component\";\r\nimport { InnSingleSelectDropdown } from \"../../../component\";\r\nimport { InnTimeSelection } from \"../../../component\";\r\nimport { IndiAccompanyGuest, IndiAlert, IndiArrival, IndiBillingInstruction, IndiCardAuthentication, IndiCompanyOnFolio, IndiDailyRate, IndiDepositeReceived, IndiDiscloseRate, IndiFnBDiscount, IndiInclusion, IndiLoyalty, IndiNoPost, IndiPackege, IndiPastStay, IndiRateCode, IndiRoomRate, IndiRoutingInstruction, IndiTransportation, IndiVipStatus } from \"./indicators\";\r\nimport { InnPlainTabs, Tab } from \"../../../component\";\r\n\r\nimport { InnStatusLabel } from \"../../../component\";\r\n\r\nimport { InnContextMenu } from \"../../../component\";\r\n\r\nimport { InnMovablePanel } from \"../../../component\";\r\n\r\nimport { InnRadioButton } from \"../../../component\";\r\nimport { InnModalPopup } from \"../../../component\";\r\nimport { InnTextarea } from \"../../../component\";\r\n\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\n\r\nimport { currentUser } from \"../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nimport { GetAlertTraceData, GetReservationInfoData, GetReservationWindowRoutingData } from \"../../../services/reservationService\";\r\nimport { GetReservationTransactionData, GetReservationWindowTransactionData, PostReservationWindowTransferSingleWindow, PostReservationWindowTransferMultipleWindow, GetReservationCashieringList, GetCheckoutInvoiceDetail, PostCheckoutWithOpenFolio, ManageOpenFolio, ManageRoutingWindow, GetReservationLinkPartyList } from \"../../../services/reservationCashieringService\";\r\nimport { TransferReservationTransactionModalPopup } from \"./modalPopup/trasferReservationTransactionModalPopup\";\r\nimport { AllowanceModalPopup } from \"./modalPopup/allowanceModalPopup\";\r\n\r\nimport { PostReservationTransactionModalPopup } from \"./modalPopup/postReservationTransactionModalPopup\";\r\nimport { PaymentModalPopup } from \"./modalPopup/paymentModalPopup\";\r\nimport { GetReservationInfoProfileData } from \"../../../services/reservationService\";\r\nimport { manageReservationIndicator } from \"../../../services/reservationService\";\r\nimport { GetPropertyParameterByKeys } from \"../../../services/reservationService\";\r\nimport { IndiTaskCompleted } from \"./indicators\";\r\nimport { TipArrived } from \"./tooltips/tip-arrived\";\r\nimport { TipCheckedOut } from \"./tooltips/tip-checked-out\";\r\nimport { TipNoShow } from \"./tooltips/tip-no-show\";\r\nimport { TipCancelled } from \"./tooltips/tip-cancelled\";\r\nimport { TipInHouse } from \"./tooltips/tip-in-house\";\r\nimport { TipDueOut } from \"./tooltips/tip-due-out\";\r\nimport { ReservationTransactionSplitModalPopup } from \"./modalPopup/reservationTransactionSplitModalPopup\";\r\nimport { AddEditWindowRoutingModalPopup } from \"./modalPopup/addEditWindowRoutingModalPopup\";\r\nimport { PaymentSplitModalPopup } from \"./modalPopup/paymentSplitModalPopup\";\r\nimport { ReservationTransactionFAndBAllowanceModalPopup } from \"./modalPopup/reservationTransactionFAndBAllowanceModalPopup\";\r\nimport { CheckoutModalPopup } from \"./modalPopup/checkoutModalPopup\";\r\nimport { ManageCheckOutInvoice } from \"../../../services/reservationCashieringService\";\r\nimport SharerSecondry from \"../../../assets/images/sharer-secondary-icon.svg\";\r\nimport SharerPrimary from \"../../../assets/images/sharer-primary-icon.svg\";\r\nimport { AdvanceBillModalPopup } from \"./modalPopup/advanceBillModalPopup\";\r\nimport { EarlyDepartureModalPopup } from \"./modalPopup/earlyDepartureModalPopup\";\r\nimport { BulkPaymentModalPopup } from \"./modalPopup/bulkPaymentModalPopup\";\r\nimport { PostPMTransactionModalPopup } from \"./modalPopup/postPMTransactionModalPopup\";\r\nimport BlockIcon from \"../../../assets/images/block-icon.svg\";\r\nimport FrontInvoice from \"./front-invoice\";\r\nimport threedots from \"../../../assets/images/hr-three-dot.svg\";\r\nimport { InnDropdownTable } from \"../../../component/innDropdownTable\";\r\n\r\nexport function ReservationCashiering(props) {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const { innkeyAlert } = useAlert();\r\n\r\n const [propsResSerNoString, setPropsResSerNoString] = useState(props.location.state.ReservationSerNo);\r\n const [selectedRoomListTile, setSelectedRoomListTile] = useState({});\r\n const [reservationObj, setReservationObj] = useState({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: selectedRoomListTile.ReservationSerNo,\r\n });\r\n\r\n //#region local variables\r\n const defaultSummarisedTile = { Transaction: \"All\", TransactionSerNo: 0 };\r\n\r\n const TableViewDDHeader = [\r\n { key: \"Transaction\", value: \"Transaction\", align: 'left' },\r\n { key: \"Revenue\", value: \"Revenue\", align: 'right' },\r\n { key: \"Allowance\", value: \"Allowance\", align: 'right' },\r\n\r\n ];\r\n const reservationStatusData = [\r\n { key: \"DIN\", value: \"Due In\" },\r\n { key: \"TEN\", value: \"Tentative\" },\r\n { key: \"HLD\", value: \"Hold\" },\r\n { key: \"ARD\", value: \"Arrived\" },\r\n { key: \"INH\", value: \"In-house\" },\r\n { key: \"DOT\", value: \"Due Out\" },\r\n { key: \"COT\", value: \"Checked-out\" },\r\n { key: \"CAN\", value: \"Cancelled\" },\r\n { key: \"NSH\", value: \"No-show\" },\r\n ];\r\n //#endregion local variables\r\n\r\n //#region API calls\r\n\r\n const fillInvoiceDetail = () => {\r\n if (selectedRoomListTile.ReservationSerNo !== undefined) {\r\n GetCheckoutInvoiceDetail(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), selectedRoomListTile.ReservationSerNo, '0').then(d => {\r\n d.data.sort(function (a, b) {\r\n return a.WindowSerNo - b.WindowSerNo;\r\n });\r\n setInvoiceDetailsData(d.data);\r\n });\r\n }\r\n };\r\n const fillReservationCashieringRoomListData = (selNum) => {\r\n GetReservationCashieringList(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), propsResSerNoString).then((d) => {\r\n if (d.data.length > 0) {\r\n d.data.forEach((x) => {\r\n if (x.ActualDepartureTime !== null) {\r\n let t = new Date(\"1-Apr-2022 \" + x.ActualDepartureTime);\r\n x.ActualDepartureTime = moment(t).format(\"HH:mm\");\r\n }\r\n });\r\n setReservationCashieringRoomListData(d.data);\r\n if (Object.keys(selectedRoomListTile).length === 0) {\r\n setSelectedRoomListTile(d.data[0]);\r\n fillReservationTransactionData(d.data[0], 0);\r\n fillReservationInfoData(d.data[0].ReservationSerNo);\r\n fillReservationWindowData(d.data[0]);\r\n let tempStatus = reservationStatusData.find((x) => x.key === d.data[0].ReservationStatus);\r\n setStateHandle((prev) => ({\r\n ...prev,\r\n ReservationStatus: tempStatus.value,\r\n }));\r\n }\r\n if (selNum !== undefined) {\r\n let temp = d.data.find(o => o.ReservationSerNo === selNum);\r\n if (temp !== undefined) {\r\n setSelectedRoomListTile(temp);\r\n let tempStatus = reservationStatusData.find((x) => x.key === temp.ReservationStatus);\r\n setStateHandle((prev) => ({\r\n ...prev,\r\n ReservationStatus: tempStatus.value,\r\n }));\r\n }\r\n }\r\n }\r\n });\r\n };\r\n const fillReservationInfoData = (ReservationSerNo) => {\r\n GetReservationInfoData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then((d) => {\r\n setReservationInfoData(d.data);\r\n fillReservationGuestInfoData(d.data.GuestProfileSerNo);\r\n fillReservationRoomTypeData(d.data);\r\n });\r\n };\r\n const fillReservationGuestInfoData = (GuestProfileSerNo) => {\r\n GetReservationInfoProfileData(parseInt(currUser.ClientSerNo), GuestProfileSerNo, \"GU\").then((d) => {\r\n setReservationInfoGuestData(d.data);\r\n });\r\n };\r\n const fillReservationRoomTypeData = (x) => {\r\n manageReservationIndicator(x.ClientSerNo, x.PropertySerNo, x.ReservationSerNo).then((d) => {\r\n setReservationInfoRoomType(d.data);\r\n });\r\n };\r\n const fillReservationWindowData = (x) => {\r\n GetReservationWindowTransactionData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), x.ReservationSerNo).then((d) => {\r\n setReservationWindowData(d.data);\r\n let amount = 0;\r\n if (d.data.length === 0) {\r\n setWindowTransactionBalance(0);\r\n }\r\n for (let i = 0; i < d.data.length; i++) {\r\n amount = amount + d.data[i].Amount;\r\n if (i === d.data.length - 1) {\r\n setWindowTransactionBalance(amount);\r\n }\r\n }\r\n let tempData = [{ key: \"all\", value: \"All\" }];\r\n let tempData1 = [];\r\n d.data.forEach((x) => {\r\n if (x.IsDeleted == false) {\r\n tempData.push({ key: x.WindowSerNo, value: `W${x.WindowSerNo} - ${x.WindowName}` });\r\n tempData1.push({ key: x.WindowSerNo, value: `W ${x.WindowSerNo}` });\r\n }\r\n });\r\n setSelectionWindowData(tempData);\r\n setGridWindowData(tempData1);\r\n if (tempData1.length > 1 && selectedSplitviewLeftWindow.key === undefined && selectedSplitviewRightWindow.key === undefined) {\r\n setSelectedSplitviewLeftWindow(tempData1[0]);\r\n setSelectedSplitviewRightWindow(tempData1[1]);\r\n setStateHandle((prev) => ({\r\n ...prev,\r\n splitLeftWindowName: tempData[1].value,\r\n splitRightWindowName: tempData[2].value,\r\n }));\r\n }\r\n });\r\n };\r\n\r\n const fillReservationTransactionData = (x, InvoiceSerNo, IsClean) => {\r\n setStateHandle((prev) => ({\r\n ...prev,\r\n detailedCheckBox: false,\r\n summarisedCheckBox: false,\r\n splitLeftCheckBox: false,\r\n splitRightCheckBox: false,\r\n }));\r\n GetReservationTransactionData(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), x.ReservationSerNo, InvoiceSerNo).then((d) => {\r\n d.data.sort(function (a, b) {\r\n return a.WindowSerNo - b.WindowSerNo;\r\n });\r\n d.data.forEach((item, index) => {\r\n item[\"key\"] = index + 1;\r\n item[\"isChecked\"] = false;\r\n if (item.RefReservationTransactionSerNo !== 0 && parseFloat(item.Amount) < 0 && item.TransactionType === 'C') {\r\n item[\"IsAllowanceRow\"] = true;\r\n } else {\r\n item[\"IsAllowanceRow\"] = false;\r\n }\r\n // if (cashieringCollectedData.length > 0) {\r\n // if (cashieringCollectedData.filter((x) => x.ReservationTransactionSerNo === item.ReservationTransactionSerNo && x.GroupSerNo === item.GroupSerNo && x.CheckNo === item.CheckNo).length > 0) {\r\n // item[\"isChecked\"] = true;\r\n // } else {\r\n // item[\"isChecked\"] = false;\r\n // }\r\n // } else {\r\n // item[\"isChecked\"] = false;\r\n // }\r\n });\r\n setReservationCashieringTransactionData(d.data);\r\n setReservationTransactionDataPerWindow(d.data);\r\n // setCurrentSelectedSummarisedData(d.data.filter((x) => x.TransactionSerNo === selectedSummarisedTile.TransactionSerNo));\r\n if (showFullView) {\r\n if (InvoiceSerNo === 0) {\r\n handleWindowChange(selectedWindow, d.data);\r\n } else {\r\n setIsGridRefreshed(true);\r\n }\r\n } else if (showSplitView) {\r\n let leftData = d.data.filter((x) => x.WindowSerNo === selectedSplitviewLeftWindow.key);\r\n let rightData = d.data.filter((x) => x.WindowSerNo === selectedSplitviewRightWindow.key);\r\n leftData.forEach((x) => {\r\n x.isChecked = false;\r\n });\r\n rightData.forEach((x) => {\r\n x.isChecked = false;\r\n });\r\n setSplitLeftSelectedData(leftData);\r\n setSplitRightSelectedData(rightData);\r\n setIsGridRefreshed(true);\r\n }\r\n });\r\n };\r\n const fillPropertyParameterData = () => {\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), [\"BusinessDate\", \"DepartureTime\"]).then((d) => {\r\n setPropertyBusinessDate(d.data[0].value);\r\n setPropertyDepartureTime(d.data[1].value);\r\n let x = d.data[1].value.split(\":\");\r\n setGracePeriod(`${parseInt(x[0]) - 1}:${x[1]}`);\r\n });\r\n };\r\n const fillPartyList = (ReservationSerNo) => {\r\n GetReservationLinkPartyList(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), ReservationSerNo).then(d => {\r\n console.log('party data', d.data);\r\n setPartyList(d.data);\r\n }).catch(ex => {\r\n console.log(ex);\r\n setPartyList([]);\r\n });\r\n };\r\n\r\n //#endregion API calls\r\n\r\n //#region states\r\n const [currWindow, setCurrWindow] = useState(0);\r\n const [IsGridRefreshed, setIsGridRefreshed] = useState(false);\r\n const [partyList, setPartyList] = useState([]);\r\n const [frontInvoicePara, setFrontInvoicePara] = useState([]);\r\n const [showFrontInvoiceModel, setShowFrontInvoiceModel] = useState(false);\r\n const [deletedWindowInSession, setDeletedWindowInSession] = useState([]);\r\n const [showAdvanceBillPopup, setShowAdvanceBillPopup] = useState(false);\r\n const [showEarlyDeparturePopup, setShowEarlyDeparturePopup] = useState(false);\r\n const [IsReopened, setIsReopened] = useState(false);\r\n const [existingWindowSerNo, setExistingWindowSerNo] = useState([]);\r\n const [IsDisabled, setIsDisabled] = useState({\r\n IsCompanyOnFolio: true,\r\n IsFnbDiscount: true,\r\n IsCardAuthentication: true,\r\n IsBillingInstruction: true,\r\n IsRoutingInstruction: true,\r\n IsDepositRecieved: true,\r\n IsTransportation: true,\r\n IsNoPost: true,\r\n IsAccompanyGuest: true,\r\n IsPastStay: true,\r\n IsAlert: true,\r\n IsIndiPackege: true,\r\n IsPayment: true,\r\n IsPost: true,\r\n IsTransferToRoom: true,\r\n IsTransferToPM: true,\r\n IsDeleteWindow: true,\r\n IsAddWindow: true,\r\n IsEditWindow: true,\r\n IsViewSummarized: true,\r\n IsPaidOut: true,\r\n IsAddNewPM: true,\r\n IsTransactionSplit: true,\r\n IsPaymentSplit: true,\r\n IsViewPosCheck: true,\r\n IsViewTaxBreakdown: true,\r\n IsOtherAllowance: true,\r\n IsFnBAllowance: true,\r\n IsLaundryAllowance: true,\r\n IsPaymentCorrection: true,\r\n IsRefund: true,\r\n IsPrintReciept: true,\r\n IsMultiWindowSelect: true,\r\n IsSingleWindowSelect: true,\r\n IsTaskCompleted: true,\r\n IsCancelInvoice: true,\r\n });\r\n const [reservationCashieringRoomListData, setReservationCashieringRoomListData] = useState([]);\r\n const [showToolTip, setShowToolTip] = useState(false);\r\n const [selectedSummarisedTile, setSelectedSummarisedTile] = useState(defaultSummarisedTile);\r\n const [reservationInfoGuestData, setReservationInfoGuestData] = useState({});\r\n const [selectedSplitviewLeftWindow, setSelectedSplitviewLeftWindow] = useState({});\r\n const [selectedSplitviewRightWindow, setSelectedSplitviewRightWindow] = useState({});\r\n const [splitLeftSelectedData, setSplitLeftSelectedData] = useState([]);\r\n const [splitRightSelectedData, setSplitRightSelectedData] = useState([]);\r\n const [stateHandle, setStateHandle] = useState({\r\n ReservationStatus: \"\",\r\n splitLeftWindowName: \"\",\r\n splitRightWindowName: \"\",\r\n detailedContext: { key: 0, value: \"\" },\r\n summarisedContext: { key: 0, value: \"\" },\r\n splitLeftContext: { key: 0, value: \"\" },\r\n splitRightContext: { key: 0, value: \"\" },\r\n detailedCheckBox: false,\r\n summarisedCheckBox: false,\r\n splitLeftCheckBox: false,\r\n splitRightCheckBox: false,\r\n splitLeftDisabled: false,\r\n splitRightDisabled: false,\r\n });\r\n //checkboxStates\r\n const [detailedCheckBox, setDetailedCheckBox] = useState(false);\r\n const [summarisedCheckBox, setSummarisedCheckBox] = useState(false);\r\n const [splitLeftCheckBox, setSplitleftCheckBox] = useState(false);\r\n const [splitRightCheckBox, setSplitRightCheckBox] = useState(false);\r\n const [IsSplitLeftDisabled, setIsSplitLeftDisabled] = useState(false);\r\n const [IsSplitRightDisabled, setIsSplitRightDisabled] = useState(false);\r\n //end\r\n // const [propParaBusinessDate, setPropParaBusinessDate] = useState(\"\");\r\n const [propertyDepartureTime, setPropertyDepartureTime] = useState(\"\");\r\n const [propertyBusinessDate, setPropertyBusinessDate] = useState(\"\");\r\n const [gracePeriod, setGracePeriod] = useState(\"\");\r\n const [gridSelectedItem, SetgridSelectedItem] = useState([]);\r\n const [temp, settemp] = useState(false);\r\n const history = useHistory();\r\n const location = useLocation();\r\n\r\n const [showFolioSummarisedGrid, setFolioSummarisedGrid] = useState(false);\r\n const [showFolioDetailedGrid, setFolioDetailedGrid] = useState(true);\r\n const [showFullView, setFullView] = useState(true);\r\n const [showSplitView, setSplitView] = useState(false);\r\n const [showIndicatorColumn, setIndicatorColumn] = useState(false);\r\n const [showLayoutIcon, setLayoutIcon] = useState(true);\r\n const [showTaskMovableBox, setTaskMovableBox] = useState(false);\r\n const [selectMulti, setselectMulti] = useState([\"1\", \"2\", \"3\"]);\r\n const [paymentTransactionMode, setPaymentTransactionMode] = useState(\"\");\r\n /* Popup start */\r\n const [showReceivedPopup, setShowReceivedPopup] = useState(false);\r\n const [showPaymentPopup, setShowPaymentPopup] = useState(false);\r\n const [showPostPopup, setShowPostPopup] = useState(false);\r\n const [showAllowanceLaundryPopup, setShowAllowanceLaundryPopup] = useState(false);\r\n const [showAllowanceFBPopup, setShowAllowanceFBPopup] = useState(false);\r\n const [showAllowanceOtherPopup, setShowAllowanceOtherPopup] = useState(false);\r\n const [showTransactionSplitPopup, setShowTransactionSplitPopup] = useState(false);\r\n const [showTransSplitGroupDetailPopup, setShowTransSplitGroupDetailPopup] = useState(false);\r\n const [showTransSplitValueDetailPopup, setShowTransSplitValueDetailPopup] = useState(false);\r\n const [showPaymentSplitPopup, setShowPaymentSplitPopup] = useState(false);\r\n const [showTransferTransactionPopup, setShowTransferTransactionPopup] = useState(false);\r\n const [showCheckoutPopup, setShowCheckoutPopup] = useState(false);\r\n const [showWindowRoutingEditModal, setShowWindowRoutingEditModal] = useState(false);\r\n const [allowanceData, setAllowanceData] = useState({\r\n Allowance: null,\r\n Revenue: null,\r\n });\r\n // Transaction Split Popup Radio button selection\r\n const [SplitByValue, setSplitByValue] = useState(\"\");\r\n\r\n // Checkout Popup Radio button selection\r\n\r\n const [reservationInfoData, setReservationInfoData] = useState(reservationObj);\r\n const [reservationCashieringTransactionData, setReservationCashieringTransactionData] = useState([]);\r\n const [reservationTransactionDataPerWindow, setReservationTransactionDataPerWindow] = useState([]);\r\n const [uniqueSummarisedData, setUniqueSummarisedData] = useState([]);\r\n const [selectedSummarisedData, setSelectedSummarisedData] = useState([]);\r\n const [reservationWindowData, setReservationWindowData] = useState([]);\r\n const [selectionWindowData, setSelectionWindowData] = useState([]);\r\n const [collectedReservationTransactionSerNo, setCollectedReservationTransactionSerNo] = useState([]);\r\n const [cashieringCollectedData, setCashieringCollectedData] = useState([]);\r\n const [transferData, setTransferData] = useState({\r\n ReservationSerNo: null,\r\n ReservationTransactionSerNo: null,\r\n });\r\n const [ttRData, setTTRData] = useState([]);\r\n const [currentSelectedSummarisedData, setCurrentSelectedSummarisedData] = useState([]);\r\n const [gridWindowData, setGridWindowData] = useState([]);\r\n const [selectedWindow, setSelectedWindow] = useState({\r\n key: \"all\",\r\n value: \"All\",\r\n });\r\n const [windowTransactionBalance, setWindowTransactionBalance] = useState(0);\r\n const [reservationInfoRoomType, setReservationInfoRoomType] = useState({});\r\n const [postedReservationTransaction, setPostedReservationTransaction] = useState(null);\r\n const [activeInnTab, setActiveInnTab] = useState(\"t2\");\r\n const defaultAddEditWindowRoutingObj = {\r\n WindowName: \"\",\r\n WindowSerNo: 0,\r\n PaymentTransactionSerNo: 0,\r\n PaymentTransactionName: \"\",\r\n GuestProfileSerNo: 0,\r\n GuestProfileName: \"\",\r\n CompanyOnFolioProfileSerNo: 0,\r\n CompanyOnFolioType: \"\",\r\n CompanyOnFolioName: \"\",\r\n Mode: \"\",\r\n IsManual: true\r\n };\r\n const [windowRoutingAddEditObject, setWindowRoutingAddEditObject] = useState(defaultAddEditWindowRoutingObj);\r\n const [showAddEditWindowRoutingModalPopuUp, setShowAddEditWindowRoutingModalPopUp] = useState(false);\r\n const [activeRightTab, setActiveRightTab] = useState(\"t1\");\r\n const [invoiceDetailsData, setInvoiceDetailsData] = useState([]);\r\n //#endregion states\r\n\r\n //#region events\r\n\r\n const handleOpenFolio = (e, e1) => {\r\n if (e !== undefined && e1 != undefined) {\r\n let para = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: parseInt(selectedRoomListTile.ReservationSerNo),\r\n IsOpenFolio: e,\r\n IsReinstated: e1\r\n };\r\n ManageOpenFolio(para).then(d => {\r\n alertFunction(d.data.Message);\r\n }).catch(ex => {\r\n console.log(ex);\r\n });\r\n }\r\n };\r\n const handleResStatnOpenFolio = (e, e1, Status) => {\r\n if (e !== undefined && Status !== undefined && e1 != undefined) {\r\n let para = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: selectedRoomListTile.ReservationSerNo,\r\n IsOpenFolio: e,\r\n IsReinstated: e1,\r\n ReservationStatus: Status\r\n };\r\n PostCheckoutWithOpenFolio(para).then(d => {\r\n alertFunction(d.data.ReturnValue);\r\n }).catch(ex => {\r\n console.log(ex);\r\n });\r\n }\r\n };\r\n const handleRoomListTileClick = (x) => {\r\n if (selectedRoomListTile.ReservationSerNo !== x.ReservationSerNo) {\r\n setFullView(true);\r\n setSplitView(false);\r\n setFolioDetailedGrid(true);\r\n setFolioSummarisedGrid(false);\r\n setSelectedSummarisedData([]);\r\n if (reservationCashieringRoomListData.length > 0 && Object.keys(x).length > 0) {\r\n fillReservationTransactionData(x, 0);\r\n fillReservationInfoData(x.ReservationSerNo);\r\n fillReservationWindowData(x);\r\n let tempStatus = reservationStatusData.find((o) => o.key === x.ReservationStatus);\r\n setStateHandle((prev) => ({\r\n ...prev,\r\n ReservationStatus: tempStatus.value,\r\n }));\r\n setReservationObj((prev) => ({ ...prev, ReservationSerNo: x.ReservationSerNo }));\r\n }\r\n }\r\n setReservationObj((prev) => ({\r\n ...prev,\r\n ReservationSerNo: x.ReservationSerNo,\r\n }));\r\n setSelectedRoomListTile(x);\r\n setActiveInnTab(\"t1\");\r\n setActiveRightTab(\"t1\");\r\n };\r\n const printInvoices = (strWindowSerNo) => {\r\n ManageCheckOutInvoice(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), selectedRoomListTile.ReservationSerNo, strWindowSerNo, currUser.UserID).then(async (d) => {\r\n if (d.data.ReturnValue !== undefined && d.data.ReturnValue !== '') {\r\n alertFunction(d.data.Message);\r\n GetCheckoutInvoiceDetail(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), selectedRoomListTile.ReservationSerNo, d.data.ReturnValue).then(d => {\r\n let temp = [];\r\n d.data.forEach(x => {\r\n temp.push({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: x.ReservationSerNo,\r\n InvoiceSerNo: x.InvoiceSerNo,\r\n WindowSerNo: x.WindowSerNo,\r\n InvoiceNo: x.InvoiceNo\r\n });\r\n });\r\n setFrontInvoicePara(temp);\r\n setShowFrontInvoiceModel(true);\r\n });\r\n fillInvoiceDetail();\r\n } else {\r\n alertFunction(\"error in printing invoices.\");\r\n }\r\n }).catch(ex => {\r\n console.log('print n send folio', ex);\r\n });\r\n };\r\n const handleCheckoutndCloseFolio = (flag) => {\r\n let IsAWS = true; //All window settled.\r\n let IsAWP = true; // All window Printed.\r\n let IsAWNS = true; // All window not settled.\r\n let IsAWNP = true; // All window not printed.\r\n let IsSP = true; // Is all settled printed?\r\n let IsPS = false; //Is partial settled?\r\n let IsPP = false; //Is partial printed?\r\n let IsReinstated = false;\r\n if (selectedRoomListTile.IsReinstated != undefined) {\r\n IsReinstated = selectedRoomListTile.IsReinstated;\r\n }\r\n for (let i = 0; i < reservationWindowData.length; i++) {\r\n\r\n if (reservationWindowData[i].IsDeleted === false) {\r\n let transactionData = reservationCashieringTransactionData.filter(x => x.WindowSerNo === reservationWindowData[i].WindowSerNo && x.InvoiceSerNo === null);\r\n if (reservationWindowData[i].Amount !== 0) {\r\n ;\r\n IsAWS = false;\r\n }\r\n if (transactionData.length !== 0) {\r\n IsAWP = false;\r\n }\r\n if (reservationWindowData[i].Amount === 0 && transactionData.length !== 0) {\r\n IsSP = false;\r\n }\r\n if (reservationWindowData[i].Amount == 0) {\r\n IsAWNS = false;\r\n }\r\n if (transactionData.length === 0) {\r\n IsAWNP = false;\r\n }\r\n if (reservationWindowData[i].Amount === 0 && transactionData.length !== 0) {\r\n IsPS = true;\r\n }\r\n if (reservationWindowData[i].Amount === 0 && transactionData.length === 0) {\r\n IsPP = true;\r\n }\r\n }\r\n }\r\n\r\n if (IsAWS && IsAWP) {\r\n if (flag === 'COT') {\r\n handleResStatnOpenFolio(false, IsReinstated, \"COT\");\r\n }\r\n else if (flag == 'CF') {\r\n handleOpenFolio(false, IsReinstated);\r\n setIsReopened(false);\r\n setExistingWindowSerNo([]);\r\n }\r\n setTimeout(() => {\r\n fillReservationCashieringRoomListData(selectedRoomListTile.ReservationSerNo);\r\n setTimeout(() => {\r\n fillReservationTransactionData(selectedRoomListTile, 0);\r\n }, 100);\r\n }, 100);\r\n\r\n }\r\n else if (IsAWS && (IsPP || IsAWNP)) {\r\n let strWindowSerNo = '';\r\n reservationWindowData.forEach(o => {\r\n if (o.IsDeleted === false) {\r\n let transactionData = reservationCashieringTransactionData.filter(x => x.WindowSerNo === o.WindowSerNo && x.InvoiceSerNo === null);\r\n if (o.Amount === 0 && transactionData.length !== 0) {\r\n strWindowSerNo += ',' + o.WindowSerNo;\r\n }\r\n }\r\n });\r\n if (strWindowSerNo !== '') {\r\n printInvoices(strWindowSerNo);\r\n setTimeout(() => {\r\n if (flag === 'COT') {\r\n handleResStatnOpenFolio(false, IsReinstated, 'COT');\r\n }\r\n else if (flag === 'CF') {\r\n handleOpenFolio(false, IsReinstated);\r\n setIsReopened(false);\r\n setExistingWindowSerNo([]);\r\n }\r\n setTimeout(() => {\r\n fillReservationCashieringRoomListData(selectedRoomListTile.ReservationSerNo);\r\n }, 100);\r\n }, 100);\r\n setTimeout(() => {\r\n fillReservationTransactionData(selectedRoomListTile, 0);\r\n }, 100);\r\n }\r\n }\r\n else if (IsPS) {\r\n setShowCheckoutPopup(true);\r\n\r\n //Commented on 07-04-2023 \r\n //Case - If partial windows are settled and printed -> Print invoice of settled windows on first checkout click and then open checkout popup on second checkout click.\r\n // let strWindowSerNo = '';\r\n // reservationWindowData.forEach(o => {\r\n // if (o.IsDeleted === false) {\r\n // let transactionData = reservationCashieringTransactionData.filter(x => x.WindowSerNo === o.WindowSerNo && x.InvoiceSerNo === null);\r\n // if (o.Amount === 0 && transactionData.length !== 0) {\r\n // strWindowSerNo = strWindowSerNo + ',' + o.WindowSerNo;\r\n // }\r\n // }\r\n // });\r\n // if (strWindowSerNo !== '') {\r\n // printInvoices(strWindowSerNo);\r\n // setTimeout(() => {\r\n // fillReservationTransactionData(selectedRoomListTile, 0);\r\n // }, 100);\r\n // }\r\n }\r\n else if (IsAWNS && IsAWNP || (!(IsAWS && IsAWP) && IsSP)) {\r\n setShowCheckoutPopup(true);\r\n }\r\n };\r\n const handleReinstate = () => {\r\n handleResStatnOpenFolio(false, true, \"INH\");\r\n setTimeout(() => {\r\n fillReservationCashieringRoomListData(selectedRoomListTile.ReservationSerNo);\r\n }, 100);\r\n };\r\n const handleReinstateWithOpenFolio = () => {\r\n handleOpenFolio(true, true);\r\n setTimeout(() => {\r\n fillReservationCashieringRoomListData(selectedRoomListTile.ReservationSerNo);\r\n }, 100);\r\n };\r\n const handleReOpen = () => {\r\n let IsReinstated = false;\r\n if (selectedRoomListTile.IsReinstated != undefined) {\r\n IsReinstated = selectedRoomListTile.IsReinstated;\r\n }\r\n handleOpenFolio(true, IsReinstated);\r\n setIsReopened(true);\r\n let temp = [];\r\n reservationWindowData.forEach(x => {\r\n if (x.IsDeleted === false) {\r\n temp.push(x.WindowSerNo);\r\n }\r\n });\r\n setExistingWindowSerNo(temp);\r\n setTimeout(() => {\r\n fillReservationCashieringRoomListData(selectedRoomListTile.ReservationSerNo);\r\n }, 100);\r\n };\r\n const handleCheckoutWithOpenFolio = async () => {\r\n\r\n let isConfirmed = true;\r\n isConfirmed = await innkeyAlert(\"Are you sure want to create open folio?\");\r\n if (isConfirmed) {\r\n handleResStatnOpenFolio(true, false, 'COT');\r\n setTimeout(() => {\r\n fillReservationCashieringRoomListData(selectedRoomListTile.ReservationSerNo);\r\n }, 100);\r\n }\r\n };\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const clearAllCheckBox = () => {\r\n setDetailedCheckBox(false);\r\n setSummarisedCheckBox(false);\r\n setSplitRightCheckBox(false);\r\n setSplitleftCheckBox(false);\r\n setIsSplitLeftDisabled(false);\r\n setIsSplitRightDisabled(false);\r\n // if(showFullView){\r\n // setReservationTransactionDataPerWindow(clearCheckBox(JSON.parse(JSON.stringify(reservationTransactionDataPerWindow))))\r\n // }else{\r\n // setSplitLeftSelectedData(clearCheckBox(JSON.parse(JSON.stringify(splitLeftSelectedData))));\r\n // setSplitRightSelectedData(clearCheckBox(JSON.parse(JSON.stringify(splitRightSelectedData))));\r\n // }\r\n };\r\n const clearCheckBox = (data) => {\r\n data.forEach((x) => {\r\n x.isChecked = false;\r\n });\r\n return data;\r\n };\r\n const handleHeaderCheckBox = (e, data) => {\r\n let temp = data;\r\n let collectedData = JSON.parse(JSON.stringify(cashieringCollectedData));\r\n if (e) {\r\n temp.forEach((x) => {\r\n if (x.RefReservationTransactionSerNo !== 0 && parseFloat(x.Amount) < 0 && x.TransactionType === \"C\") {\r\n // Allowance row not allowed\r\n } else {\r\n if (x.isChecked === false) {\r\n collectedData.push(x);\r\n }\r\n x.isChecked = true;\r\n }\r\n });\r\n } else {\r\n temp.forEach((x) => {\r\n if (x.RefReservationTransactionSerNo !== 0 && parseFloat(x.Amount) < 0 && x.TransactionType === \"C\") {\r\n // Allowance row not allowed\r\n } else {\r\n x.isChecked = false;\r\n // if (collectedData.includes(x)) {\r\n // collectedData.splice(collectedData.indexOf(x), 1);\r\n // }\r\n }\r\n });\r\n }\r\n if (e) {\r\n setCashieringCollectedData(collectedData);\r\n } else {\r\n setCashieringCollectedData([]);\r\n }\r\n };\r\n const handleCheckBox = (e, item, data) => {\r\n let temp = data;\r\n let collectedData = JSON.parse(JSON.stringify(cashieringCollectedData));\r\n let allSelected = true;\r\n if (e) {\r\n temp.forEach((x) => {\r\n if (x.ReservationTransactionSerNo === item.ReservationTransactionSerNo && x.GroupSerNo === item.GroupSerNo && x.CheckNo === item.CheckNo) {\r\n x.isChecked = true;\r\n collectedData.push(x);\r\n }\r\n if (x.isChecked === false) {\r\n allSelected = false;\r\n }\r\n });\r\n } else {\r\n temp.forEach((x) => {\r\n if (x.ReservationTransactionSerNo === item.ReservationTransactionSerNo && x.GroupSerNo == item.GroupSerNo && x.CheckNo === item.CheckNo) {\r\n x.isChecked = false;\r\n }\r\n allSelected = false;\r\n });\r\n console.log(\"before collected data and item\", collectedData, item);\r\n let tempObj = data.find(o => o.ReservationTransactionSerNo === item.ReservationTransactionSerNo && o.GroupSerNo === item.GroupSerNo && o.CheckNo === item.CheckNo);\r\n collectedData.splice(collectedData.indexOf(tempObj), 1);\r\n console.log(\"after data\", collectedData);\r\n // collectedData = data.filter((o) => o.ReservationTransactionSerNo !== item.ReservationTransactionSerNo && o.GroupSerNo !== item.GroupSerNo && o.CheckNo !== item.CheckNo);\r\n }\r\n setCashieringCollectedData(collectedData);\r\n if (allSelected && data === reservationTransactionDataPerWindow) setDetailedCheckBox(true);\r\n if (allSelected && data === selectedSummarisedData) setSummarisedCheckBox(true);\r\n if (allSelected && data === splitLeftSelectedData) setSplitleftCheckBox(true);\r\n if (allSelected && data === splitRightSelectedData) setSplitRightCheckBox(true);\r\n };\r\n const funTransferMultipleWindow = (x) => {\r\n if (cashieringCollectedData.length > 0) {\r\n let temp = [];\r\n for (let i in cashieringCollectedData) {\r\n temp.push({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: selectedRoomListTile.ReservationSerNo,\r\n ReservationTransactionSerNo: cashieringCollectedData[i].ReservationTransactionSerNo.toString(),\r\n WindowSerNo: x.key,\r\n });\r\n }\r\n PostReservationWindowTransferMultipleWindow(temp).then((d) => {\r\n setCashieringCollectedData([]);\r\n clearAllCheckBox();\r\n setTimeout(() => {\r\n fillReservationWindowData(selectedRoomListTile);\r\n }, 50);\r\n });\r\n } else {\r\n alertFunction(\"select checkbox first.\");\r\n }\r\n };\r\n const funTransferSingleWindow = (x, y) => {\r\n let temp = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: selectedRoomListTile.ReservationSerNo,\r\n ReservationTransactionSerNo: y.ReservationTransactionSerNo.toString(),\r\n WindowSerNo: x.key,\r\n };\r\n PostReservationWindowTransferSingleWindow(temp).then((d) => {\r\n setTimeout(() => {\r\n fillReservationWindowData(selectedRoomListTile);\r\n }, 50);\r\n });\r\n };\r\n const divideData = (window) => {\r\n let tempD = [{\r\n key: \"All\",\r\n Transaction: \"All\",\r\n Revenue: '',\r\n Allowance: '',\r\n Action: '',\r\n TransactionSerNo: 0,\r\n }];\r\n let data = [];\r\n if (window.key === 'all') {\r\n data = JSON.parse(JSON.stringify(reservationCashieringTransactionData));\r\n } else {\r\n data = JSON.parse(JSON.stringify(reservationCashieringTransactionData.filter(x => x.WindowSerNo === window.key)));\r\n }\r\n data.sort(function (a, b) { return a.TransactionSerNo - b.TransactionSerNo; });\r\n console.error(\"sorted data\", data);\r\n\r\n if (data.length > 0) {\r\n let currIndex = 1;\r\n let revenue = 0;\r\n let allowance = 0;\r\n if (data[0].Amount > 0) {\r\n revenue = data[0].Amount;\r\n } else {\r\n allowance = data[0].Amount;\r\n }\r\n tempD.push({\r\n key: data[0].TransactionName,\r\n Transaction: data[0].TransactionName,\r\n Revenue: revenue,\r\n Allowance: allowance,\r\n Action: \"\",\r\n TransactionSerNo: data[0].TransactionSerNo,\r\n });\r\n for (let i = 1; i < data.length; i++) {\r\n let revenue = 0;\r\n let allowance = 0;\r\n if (data[i].Amount > 0) {\r\n revenue = data[i].Amount;\r\n } else {\r\n allowance = data[i].Amount;\r\n }\r\n if (tempD[currIndex].TransactionSerNo !== data[i].TransactionSerNo) {\r\n tempD.push({\r\n key: data[i].TransactionName,\r\n Transaction: data[i].TransactionName,\r\n Revenue: revenue,\r\n Allowance: allowance,\r\n Action: \"\",\r\n TransactionSerNo: data[i].TransactionSerNo,\r\n });\r\n currIndex += 1;\r\n } else {\r\n tempD[currIndex].Revenue += revenue;\r\n tempD[currIndex].Allowance += allowance;\r\n }\r\n }\r\n }\r\n tempD.forEach(x => {\r\n if (x.TransactionSerNo !== 0) {\r\n x.Allowance = x.Allowance.toFixed(2);\r\n x.Revenue = x.Revenue.toFixed(2);\r\n }\r\n });\r\n\r\n setUniqueSummarisedData(tempD);\r\n setSelectedSummarisedTile(defaultSummarisedTile);\r\n // for (let i = 0; i < reservationCashieringTransactionData.length; i++) {\r\n // if (!tempD.some((item) => item.TransactionSerNo === reservationCashieringTransactionData[i].TransactionSerNo)) {\r\n // tempD.push({\r\n // Transaction: reservationCashieringTransactionData[i].TransactionName,\r\n // Revenue: reservationCashieringTransactionData[i].Amount,\r\n // Allowance: reservationCashieringTransactionData[i].Allowance,\r\n // Action: \"\",\r\n // TransactionSerNo: reservationCashieringTransactionData[i].TransactionSerNo,\r\n // });\r\n // }\r\n // }\r\n // for (let a = 0; a < tempD.length; a++) {\r\n // let crrAllowance = 0;\r\n // let crrAmount = 0;\r\n // for (let b = 0; b < reservationCashieringTransactionData.length; b++) {\r\n // if (tempD[a].TransactionSerNo === reservationCashieringTransactionData[b].TransactionSerNo) {\r\n // crrAllowance = crrAllowance + reservationCashieringTransactionData[b].Allowance;\r\n // crrAmount = crrAmount + reservationCashieringTransactionData[b].Amount;\r\n // }\r\n\r\n // tempD[a].Allowance = crrAllowance.toFixed(2);\r\n // tempD[a].Revenue = crrAmount.toFixed(2);\r\n // }\r\n // if (a === tempD.length - 1) {\r\n // setUniqueSummarisedData(tempD);\r\n // }\r\n // }\r\n };\r\n const handleSummarisedTileClick = (temp) => {\r\n setSelectedSummarisedTile(temp);\r\n setTransferData((prev) => ({ ...prev, ReservationTransactionSerNo: null }));\r\n setCashieringCollectedData([]);\r\n setStateHandle((prev) => ({ ...prev, summarisedCheckBox: false }));\r\n\r\n const data = reservationCashieringTransactionData.filter((d) => d.TransactionSerNo === temp.TransactionSerNo);\r\n const dividedWindowData = data.filter((d) => d.WindowSerNo === selectedWindow.key || selectedWindow.key === \"all\");\r\n dividedWindowData.forEach((item, index) => {\r\n item.isChecked = false;\r\n });\r\n data.forEach((item, index) => {\r\n item.isChecked = false;\r\n });\r\n setSelectedSummarisedData(dividedWindowData);\r\n setCurrentSelectedSummarisedData(data);\r\n };\r\n const handleWindowChange = (d, data) => {\r\n setCashieringCollectedData([]);\r\n divideData(d);\r\n setSelectedWindow(d);\r\n data.forEach((x) => {\r\n x.isChecked = false;\r\n });\r\n if (d.key === \"all\") {\r\n\r\n setReservationTransactionDataPerWindow(data);\r\n // if(selectedSummarisedTile.TransactionSerNo === 0){\r\n // }else{\r\n // setReservationTransactionDataPerWindow(data.filter(x => x.TransactionSerNo === selectedSummarisedTile.TransactionSerNo));\r\n // }\r\n //setSelectedSummarisedData(data.filter((x) => x.TransactionSerNo === selectedSummarisedTile.TransactionSerNo));\r\n } else {\r\n setReservationTransactionDataPerWindow(data.filter(x => x.WindowSerNo === d.key));\r\n // if(selectedSummarisedTile.TransactionSerNo ===0){\r\n // }else{\r\n // setReservationTransactionDataPerWindow(data.filter(x => x.TransactionSerNo === selectedSummarisedTile.TransactionSerNo && x.WindowSerNo === d.key));\r\n // }\r\n // if (showFolioDetailedGrid) {\r\n // let tempData = data.filter((x) => x.WindowSerNo === d.key);\r\n // tempData.forEach((x) => {\r\n // x.isChecked = false;\r\n // });\r\n // setReservationTransactionDataPerWindow(tempData);\r\n // } else if (showFolioSummarisedGrid) {\r\n // let currData = data.filter((x) => x.TransactionSerNo === selectedSummarisedTile.TransactionSerNo && x.WindowSerNo === d.key);\r\n // let tempData = clearCheckBox(currData);\r\n // tempData.forEach((x) => {\r\n // x.isChecked = false;\r\n // });\r\n // setSelectedSummarisedData(tempData);\r\n // }\r\n }\r\n };\r\n const onRemoveRoomList = async (d) => {\r\n if (reservationCashieringRoomListData.length > 1) {\r\n let isConfirmed = true;\r\n isConfirmed = await innkeyAlert(\"�Would you like to remove this room from the room list?\");\r\n if (isConfirmed) {\r\n setSelectedRoomListTile({});\r\n let tempResSerNoString = propsResSerNoString.split(\",\").filter((x) => x !== d.ReservationSerNo.toString());\r\n setPropsResSerNoString(tempResSerNoString.toString());\r\n setTimeout(() => {\r\n alertFunction(`Room No. ${d.RoomNo} Removed.`);\r\n }, 100);\r\n }\r\n } else {\r\n alertFunction(\"There must be atlest one tile left.\");\r\n }\r\n };\r\n\r\n //#endregion events\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n const timeId = setTimeout(() => {\r\n setActive(isActive);\r\n }, 3000);\r\n fillPropertyParameterData();\r\n }, []);\r\n useEffect(() => {\r\n fillReservationCashieringRoomListData();\r\n }, [propsResSerNoString]);\r\n useEffect(() => {\r\n if (IsGridRefreshed === true) {\r\n console.warn('refreshed');\r\n divideData(selectedWindow);\r\n setIsGridRefreshed(false);\r\n }\r\n }, [IsGridRefreshed]);\r\n useEffect(() => {\r\n let amount = 0;\r\n if (reservationWindowData.length === 0) {\r\n setWindowTransactionBalance(0);\r\n }\r\n for (let i = 0; i < reservationWindowData.length; i++) {\r\n amount = amount + reservationWindowData[i].Amount;\r\n if (i === reservationWindowData.length - 1) {\r\n setWindowTransactionBalance(amount);\r\n }\r\n }\r\n }, [reservationWindowData.length]);\r\n useEffect(() => {\r\n console.warn(\"selection changed\", cashieringCollectedData);\r\n // console.log(selectedRoomListTile)\r\n if (cashieringCollectedData.length > 1) {\r\n setIsDisabled(prev => ({ ...prev, IsSingleWindowSelect: true }));\r\n } else {\r\n setIsDisabled(prev => ({ ...prev, IsSingleWindowSelect: false }));\r\n }\r\n }, [cashieringCollectedData.length]);\r\n\r\n //#endregion useEffect\r\n\r\n //#region others\r\n\r\n //#region handle actions on Reservation status\r\n\r\n const handleAction = (x, Arr) => {\r\n let objArr = Object.keys(IsDisabled);\r\n let tempIsDisabled = IsDisabled;\r\n objArr.forEach(o => {\r\n\r\n if (Arr == undefined) {\r\n if (x === true) {\r\n tempIsDisabled[o] = true;\r\n }\r\n else if (x === false) {\r\n tempIsDisabled[o] = false;\r\n }\r\n }\r\n else {\r\n if (Arr.includes(o)) {\r\n tempIsDisabled[o] = x;\r\n }\r\n else {\r\n tempIsDisabled[o] = !x;\r\n }\r\n }\r\n });\r\n setIsDisabled(tempIsDisabled);\r\n };\r\n\r\n const handleStatus = () => {\r\n if (selectedRoomListTile.IsOpenFolio) {\r\n if (IsReopened) {\r\n let Arr = [\"IsCancelInvoice\", \"IsTaskCompleted\", \"IsFnbDiscount\", \"IsCardAuthentication\", \"IsDepositRecieved\", \"IsRefund\", \"IsIndiPackege\", \"IsTransportation\", \"IsAccompanyGuest\", \"IsAlert\"];\r\n handleAction(true, Arr);\r\n } else {\r\n handleAction(false);\r\n }\r\n } else {\r\n if (selectedRoomListTile.ReservationStatus === 'COT') {\r\n handleAction(true);\r\n }\r\n else if (selectedRoomListTile.ReservationStatus === 'DOT' || selectedRoomListTile.IsOpenFolio === true) {\r\n handleAction(false);\r\n }\r\n else if (selectedRoomListTile.ReservationStatus === 'DIN') {\r\n let Arr = [\"IsPaidOut\", \"IsTransferToRoom\", \"IsTransferToPM\"];\r\n handleAction(true, Arr);\r\n }\r\n else if (selectedRoomListTile.ReservationStatus === 'INH' || selectedRoomListTile.ReservationStatus === 'ARD') {\r\n handleAction(false);\r\n } else if (selectedRoomListTile.ReservationStatus === 'CAN' || selectedRoomListTile.ReservationStatus === 'NSH') {\r\n handleAction(true);\r\n }\r\n }\r\n };\r\n\r\n const reservationStatusAlert = () => {\r\n alertFunction(`This Functionality cannot be performed when reservation status is ${selectedRoomListTile.ReservationStatus}`);\r\n };\r\n useEffect(() => {\r\n if (selectedRoomListTile.ReservationStatus !== undefined) {\r\n handleStatus();\r\n }\r\n }, [selectedRoomListTile]);\r\n\r\n useEffect(() => {\r\n if (selectedRoomListTile.ReservationStatus !== 'COT') {\r\n if (activeRightTab === 't1') {\r\n setIsDisabled(prev => ({ ...prev, IsSingleWindowSelect: false, IsMultiWindowSelect: false }));\r\n }\r\n else if (activeRightTab === 't2') {\r\n setIsDisabled(prev => ({ ...prev, IsSingleWindowSelect: true, IsMultiWindowSelect: true }));\r\n }\r\n else {\r\n setIsDisabled(prev => ({ ...prev, IsSingleWindowSelect: false, IsMultiWindowSelect: false }));\r\n }\r\n }\r\n }, [activeRightTab]);\r\n\r\n //#endregion\r\n\r\n const [transactionSplitTransferData, setTransactionSplitTransferData] = useState([]);\r\n const actionPopup = (item, row) => {\r\n console.warn(allowanceData);\r\n if (item.value == \"Payment Split\") {\r\n if (IsDisabled.IsPaymentSplit || (IsReopened && activeRightTab === 't2')) {\r\n reservationStatusAlert();\r\n } else {\r\n if (row.TransactionType === 'P') {\r\n setShowPaymentSplitPopup(true);\r\n } else {\r\n alertFunction(\"Payment split function is only available on payments.\");\r\n }\r\n }\r\n }\r\n else if (item.value == \"Transaction Split\") {\r\n if (IsDisabled.IsTransactionSplit || (IsReopened && activeRightTab === 't2')) {\r\n reservationStatusAlert();\r\n }\r\n else {\r\n let temp = [];\r\n temp.push({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: selectedRoomListTile.ReservationSerNo,\r\n ReservationTransactionSerNo: row.ReservationTransactionSerNo,\r\n GroupSerNo: row.GroupSerNo,\r\n CheckNo: row.CheckNo,\r\n Module: row.Module,\r\n });\r\n if (row.TransactionType !== 'P') {\r\n setTransactionSplitTransferData(temp);\r\n setShowTransactionSplitPopup(true);\r\n } else {\r\n alertFunction(\"This Functionality only available on charges.\");\r\n }\r\n }\r\n }\r\n else if (item.value == \"F&B Allowance\") {\r\n if (IsDisabled.IsFnBAllowance || (IsReopened && activeRightTab === 't2')) {\r\n reservationStatusAlert();\r\n }\r\n else {\r\n let isValid = true;\r\n let temp = [];\r\n temp.push({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: selectedRoomListTile.ReservationSerNo,\r\n ReservationTransactionSerNo: row.ReservationTransactionSerNo,\r\n GroupSerNo: row.GroupSerNo,\r\n CheckNo: row.CheckNo,\r\n Module: row.Module\r\n });\r\n if (row.GroupSerNo == 0 || row.Module !== 'P') {\r\n isValid = false;\r\n }\r\n if (isValid) {\r\n setTransactionSplitTransferData(temp);\r\n setShowAllowanceFBPopup(true);\r\n } else {\r\n alertFunction(\"This Functionality is only available on payments\");\r\n }\r\n }\r\n }\r\n else if (item.value == \"Laundry Allowance\") {\r\n if (IsDisabled.IsLaundryAllowance || (IsReopened && activeRightTab === 't2')) {\r\n reservationStatusAlert();\r\n }\r\n else {\r\n setShowAllowanceLaundryPopup(true);\r\n }\r\n }\r\n else if (item.value == \"Other Allowance\" && allowanceData.Allowance == 0) {\r\n if (IsDisabled.IsOtherAllowance || (IsReopened && activeRightTab === 't2')) {\r\n reservationStatusAlert();\r\n }\r\n else {\r\n setShowAllowanceOtherPopup(true);\r\n }\r\n }\r\n else if (item.value == \"Payment Correction\") {\r\n if (IsDisabled.IsPaymentCorrection || (IsReopened && activeRightTab === 't2')) {\r\n reservationStatusAlert();\r\n } else {\r\n setPaymentTransactionMode(\"PaymentCorrection\");\r\n setShowPaymentPopup(true);\r\n }\r\n }\r\n else if (item.value == \"Transfer to Room\") {\r\n if (IsDisabled.IsTransferToRoom || (IsReopened && activeRightTab === 't2')) {\r\n reservationStatusAlert();\r\n } else {\r\n if (row.TransactionType === \"C\") {\r\n let temp = [];\r\n temp.push(row);\r\n setTTRData(temp);\r\n setShowTransferTransactionPopup(true);\r\n } else {\r\n alertFunction(\"Transfer to room function is only available on charges.\");\r\n }\r\n }\r\n }\r\n else if (item.value == \"Refund\") {\r\n if (IsDisabled.IsRefund || (IsReopened && activeRightTab === 't2')) {\r\n reservationStatusAlert();\r\n } else {\r\n setPaymentTransactionMode(\"Refund\");\r\n setShowPaymentPopup(true);\r\n }\r\n }\r\n };\r\n\r\n const BillingActionPopup = async (item, window) => {\r\n if (item.value == \"Payment\") {\r\n if (IsDisabled.IsPayment || (IsReopened && activeRightTab === 't2')) {\r\n reservationStatusAlert();\r\n } else {\r\n setPaymentTransactionMode(\"Payment\");\r\n if (window === 'all') {\r\n setCurrWindow(0);\r\n } else {\r\n setCurrWindow(window);\r\n }\r\n setShowPaymentPopup(true);\r\n }\r\n }\r\n else if (item.value == \"Post\") {\r\n if (IsDisabled.IsPost || (IsReopened && activeRightTab === 't2')) {\r\n reservationStatusAlert();\r\n }\r\n else {\r\n if (window === 'all') {\r\n setCurrWindow(0);\r\n } else {\r\n setCurrWindow(window);\r\n }\r\n setShowPostPopup(true);\r\n }\r\n }\r\n else if (item.value == \"Transfer to Room\") {\r\n if (IsDisabled.IsTransferToRoom || (activeRightTab === \"t2\" && IsReopened)) {\r\n alertFunction('This Functionality cannot be performed when reservation is in advance check in.');\r\n } else {\r\n if (cashieringCollectedData.length > 1) {\r\n let IsPaymentAvailable = false;\r\n cashieringCollectedData.forEach((x) => {\r\n if (x.TransactionType == \"P\" || x.Amount == 0) {\r\n IsPaymentAvailable = true;\r\n }\r\n });\r\n if (!IsPaymentAvailable) {\r\n setTTRData(cashieringCollectedData);\r\n setShowTransferTransactionPopup(true);\r\n } else {\r\n alertFunction(\"This Functionality is only available on charges.\");\r\n }\r\n }\r\n else {\r\n alertFunction(\"Please select more than one transaction to continue.\");\r\n }\r\n }\r\n }\r\n else if (item.value == \"Refund\") {\r\n if (IsDisabled.IsRefund || (IsReopened && activeRightTab === 't2')) {\r\n reservationStatusAlert();\r\n } else {\r\n setShowPaymentPopup(true);\r\n }\r\n }\r\n else if (item.value == \"Paid Out\") {\r\n if (IsDisabled.IsPaidOut || (IsReopened && activeRightTab === 't2')) {\r\n alertFunction('This Functionality cannot be performed when reservation is in advance check in.');\r\n } else {\r\n setPaymentTransactionMode(\"PaidOut\");\r\n setShowPaymentPopup(true);\r\n }\r\n }\r\n else if (item.value == 'Transfer to PM') {\r\n if (IsDisabled.IsTransferToPM || (IsReopened && activeRightTab === 't2')) {\r\n alertFunction('This Functionality cannot be performed when reservation is in advance check in.');\r\n }\r\n }\r\n else if (item.value == 'Transaction Split') {\r\n if (IsDisabled.IsTransactionSplit || (IsReopened && activeRightTab === 't2')) {\r\n reservationStatusAlert();\r\n }\r\n else {\r\n if (cashieringCollectedData.length > 1) {\r\n let temp = [];\r\n let IsPaymentAvailable = false;\r\n let IsSameModule = true;\r\n let currModule = '';\r\n for (let i = 0; i < cashieringCollectedData.length; i++) {\r\n if (i === 0) {\r\n currModule = cashieringCollectedData[i].Module;\r\n } else {\r\n if (cashieringCollectedData[i].Module !== currModule) {\r\n IsSameModule = false;\r\n }\r\n }\r\n temp.push({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: selectedRoomListTile.ReservationSerNo,\r\n ReservationTransactionSerNo: cashieringCollectedData[i].ReservationTransactionSerNo,\r\n GroupSerNo: cashieringCollectedData[i].GroupSerNo,\r\n CheckNo: cashieringCollectedData[i].CheckNo,\r\n Module: cashieringCollectedData[i].Module,\r\n });\r\n if (cashieringCollectedData[i].TransactionType === 'P' || item.Amount == 0) {\r\n IsPaymentAvailable = true;\r\n break;\r\n }\r\n }\r\n if (!IsPaymentAvailable) {\r\n if (IsSameModule) {\r\n setTransactionSplitTransferData(temp);\r\n setShowTransactionSplitPopup(true);\r\n } else {\r\n alertFunction('Split of combined charges is not allowed please select single type charges to continue.');\r\n }\r\n } else {\r\n alertFunction(\"This Functionality is only available on charges.\");\r\n }\r\n } else {\r\n alertFunction(\"Please select more than one transaction to continue.\");\r\n }\r\n }\r\n }\r\n else if (item.value == 'F & B Allowance') {\r\n if (IsDisabled.IsFnBAllowance || (IsReopened && activeRightTab === 't2')) {\r\n reservationStatusAlert();\r\n }\r\n else {\r\n if (cashieringCollectedData.length > 1) {\r\n let isValid = true;\r\n let temp = [];\r\n for (let i = 0; i < cashieringCollectedData.length; i++) {\r\n if (cashieringCollectedData[i].GroupSerNo == 0 || cashieringCollectedData[i].Module !== 'P') {\r\n isValid = false;\r\n }\r\n temp.push({\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: selectedRoomListTile.ReservationSerNo,\r\n ReservationTransactionSerNo: cashieringCollectedData[i].ReservationTransactionSerNo,\r\n GroupSerNo: cashieringCollectedData[i].GroupSerNo,\r\n CheckNo: cashieringCollectedData[i].CheckNo,\r\n Module: cashieringCollectedData[i].Module\r\n });\r\n }\r\n if (isValid) {\r\n setTransactionSplitTransferData(temp);\r\n setShowAllowanceFBPopup(true);\r\n } else {\r\n alertFunction(\"This Functionality is only available on payments\");\r\n }\r\n } else {\r\n alertFunction(\"Please select more than one transaction to continue.\");\r\n }\r\n }\r\n }\r\n };\r\n\r\n const DepartureTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    Early Departure
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n //grid header\r\n\r\n const [isActive, setActive] = useState(false);\r\n\r\n /* Grid Table End */\r\n\r\n const rbDataAllowanceLaundry = [\r\n { key: \"amount\", value: \"Amount\" },\r\n { key: \"no\", value: \"No. Of Pieces\" },\r\n ];\r\n\r\n const rbDataTransSplit = [\r\n { key: \"group\", value: \"Split By Item Group\" },\r\n { key: \"val\", value: \"Split By Value\" },\r\n ];\r\n /*Checkout Popup End */\r\n\r\n const selectdata = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n const InvoiceAction = [\r\n { key: \"print\", value: \"Print invoice\" },\r\n ];\r\n const detailedGridOption = [\r\n { key: \"Transaction Split\", value: \"Transaction Split\" },\r\n { key: \"Payment Split\", value: \"Payment Split\" },\r\n { key: \"View POS Check\", value: \"View POS Check\" },\r\n { key: \"View Tax Breakdown\", value: \"View Tax Breakdown\" },\r\n { key: \"Other Allowance\", value: \"Other Allowance\" },\r\n { key: \"F&B Allowance\", value: \"F&B Allowance\" },\r\n { key: \"Laundry Allowance\", value: \"Laundry Allowance\" },\r\n { key: \"Transfer to Room\", value: \"Transfer to Room\" },\r\n { key: \"Payment Correction\", value: \"Payment Correction\" },\r\n { key: \"Refund\", value: \"Refund\" },\r\n { key: \"Print Receipt\", value: \"Print Receipt\" },\r\n ];\r\n\r\n const BillingAction = [\r\n { key: \"Payment\", value: \"Payment\" },\r\n { key: \"Post\", value: \"Post\" },\r\n { key: \"Transfer to Room\", value: \"Transfer to Room\" },\r\n { key: \"Transfer to PM\", value: \"Transfer to PM\" },\r\n //{ key: \"Delete Window\", value: \"Delete Window\" },\r\n { key: \"View Summarized\", value: \"View Summarized\" },\r\n { key: \"Paid Out\", value: \"Paid Out\" },\r\n { key: \"Add New PM\", value: \"Add New PM\" },\r\n { key: \"Transaction Split\", value: \"Transaction Split\" },\r\n { key: \"F & B Allowance\", value: \"F & B Allowance\" }\r\n ];\r\n\r\n\r\n\r\n /* Summarised Grid Start */\r\n\r\n const columHeaderSummarised = [\r\n { key: \"Transaction\", value: \"Transaction\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Revenue\", value: \"Revenue\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Allowance\", value: \"Allowance\", type: \"txt\", sorting: \"Y\" },\r\n {\r\n key: \"Action\",\r\n value: \"Action\",\r\n type: \"txt\",\r\n sorting: \"N\",\r\n align: \"right\",\r\n },\r\n ];\r\n\r\n const setSelectedItem = (items) => {\r\n SetgridSelectedItem(items);\r\n settemp(!temp);\r\n };\r\n\r\n\r\n /* Summarised Grid End */\r\n\r\n const selectData = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n ];\r\n\r\n const TransactionNameTooltip = (e) => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    {e}
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const LastUpdateTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
      \r\n
    • By Jindal Mistry
    • \r\n
    • Date: 11th Nov.
    • \r\n
    • Time: 14:37
    • \r\n
    • PC: 192.168.100.43
    • \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n\r\n\r\n const [toggleClass, settoggleClass] = useState(false);\r\n const handleToggle = () => {\r\n settoggleClass(!toggleClass);\r\n };\r\n\r\n\r\n\r\n /* Tooltip Data Start */\r\n\r\n const GuestTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    {reservationInfoGuestData.ContactName ? reservationInfoGuestData.ContactName : \"\"}
    \r\n
    \r\n {`Mobile : ${reservationInfoGuestData.ContactMobile != undefined ? reservationInfoGuestData.ContactMobile : \"\"}`}\r\n \r\n SMS\r\n \r\n
    \r\n
    \r\n {`Email : ${reservationInfoGuestData.ContactEmail !== undefined ? reservationInfoGuestData.ContactEmail : \"\"}`}\r\n \r\n Email\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Edit\r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const UpgradeTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    {reservationInfoRoomType && reservationInfoRoomType.RoomTypeSerNo > reservationInfoRoomType.ChargeableRoomTypeSerNo ? Upgrade : reservationInfoRoomType.RoomTypeSerNo < reservationInfoRoomType.ChargeableRoomTypeSerNo ? Downgrade : }
    \r\n
    \r\n Room type to be charged : {reservationInfoRoomType.ChargeableRoomTypeName}\r\n
    \r\n
    Reason: {reservationInfoRoomType.UpgradeReason}
    \r\n
    User Name : Mr. Hemang(db:pending)
    \r\n
    Date : 15 Dec 2021(db:pending)
    \r\n
    Time : 10:20 PM(db:pending)
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n const DueOutStatusTooltip = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n Checked In By\r\n Mr. Hemang\r\n
    \r\n
    Date: 12 Mar.
    \r\n
    Time: 10:20PM
    \r\n
    PC: 192.168.600.789
    \r\n
    \r\n
    \r\n
    \r\n );\r\n };\r\n\r\n /* Tooltip data End */\r\n //#endregion\r\n\r\n return (\r\n <>\r\n
    \r\n {showAddEditWindowRoutingModalPopuUp ? (\r\n {\r\n setShowAddEditWindowRoutingModalPopUp(false);\r\n setWindowRoutingAddEditObject(defaultAddEditWindowRoutingObj);\r\n }}\r\n OnSelect={(e) => {\r\n fillReservationWindowData(selectedRoomListTile);\r\n }}>\r\n ) : null}\r\n {showToolTip ? (\r\n selectedRoomListTile.ReservationStatus === \"ARD\" ? (\r\n {\r\n setShowToolTip(false);\r\n }}>\r\n ) : selectedRoomListTile.ReservationStatus === \"INH\" ? (\r\n {\r\n setShowToolTip(false);\r\n }}>\r\n ) : selectedRoomListTile.ReservationStatus === \"DOT\" ? (\r\n {\r\n setShowToolTip(false);\r\n }}>\r\n ) : selectedRoomListTile.ReservationStatus === \"COT\" ? (\r\n {\r\n setShowToolTip(false);\r\n }}>\r\n ) : selectedRoomListTile.ReservationStatus === \"CAN\" ? (\r\n {\r\n setShowToolTip(false);\r\n }}>\r\n ) : selectedRoomListTile.ReservationStatus === \"NSH\" ? (\r\n {\r\n setShowToolTip(false);\r\n }}>\r\n ) : (\r\n \r\n )\r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Cashiering

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {showIndicatorColumn == true && (\r\n
    \r\n {\r\n setIndicatorColumn(!showIndicatorColumn);\r\n settoggleClass(false);\r\n }}>{\" \"}\r\n {\r\n handleToggle();\r\n }}>\r\n {\r\n setActiveInnTab(x.id);\r\n }}>\r\n \r\n
      \r\n {\r\n handleRoomListTileClick(selectedRoomListTile);\r\n }}>\r\n
      \r\n
      \r\n \r\n {selectedRoomListTile.RoomTypeCode}\r\n {selectedRoomListTile.RoomTypeSeq != selectedRoomListTile.RoomTypeToChargeSeq ? selectedRoomListTile.RoomTypeSeq > selectedRoomListTile.RoomTypeToChargeSeq ? : : }\r\n \r\n
      \r\n
      \r\n {selectedRoomListTile.IsWithLuggage ? : selectedRoomListTile.IsWithLuggage === false ? : null}\r\n {selectedRoomListTile.IsLocked ? : null}\r\n {selectedRoomListTile.IsReinstated ? : null}\r\n {selectedRoomListTile.ActualDepartureTime < propertyDepartureTime ? : null}\r\n {selectedRoomListTile.IsNoResponse === true ? (\r\n
      \r\n NRSP{\" \"}\r\n
      \r\n ) : selectedRoomListTile.ActualDepartureTime === null ? (\r\n
      \r\n No Info{\" \"}\r\n
      \r\n ) : (\r\n
      = gracePeriod && selectedRoomListTile.ActualDepartureTime <= propertyDepartureTime ? \"time text-gray\" : selectedRoomListTile.ActualDepartureTime <= propertyDepartureTime ? \"time text-green\" : selectedRoomListTile.ActualDepartureTime > propertyDepartureTime ? \"time text-danger\" : \"\"}>{selectedRoomListTile.ActualDepartureTime}
      \r\n )}\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      {selectedRoomListTile.GuestName}
      \r\n
      \r\n
      \r\n \r\n
    \r\n\r\n {reservationInfoData.ReservationSerNo !== 0 ? (\r\n
    \r\n
    Billing
    \r\n \r\n \r\n \r\n {/* */}\r\n \r\n {\r\n fillReservationWindowData(selectedRoomListTile);\r\n }}\r\n >\r\n \r\n
    Reservation
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n Arrival Time\r\n 14:00\r\n
    \r\n \r\n
    Profile
    \r\n \r\n
    \r\n Membership No. & Level\r\n 45234 (Gold)\r\n
    \r\n \r\n
    notification
    \r\n \r\n
    \r\n ) : null}\r\n
    \r\n {\r\n history.push({\r\n pathname: \"/ReservationView\",\r\n state: {\r\n reservationSerNo: selectedRoomListTile.ReservationSerNo,\r\n filterObj: location.state.filterObj\r\n }\r\n });\r\n }}>\r\n View\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
      \r\n {reservationCashieringRoomListData.map((item, index) => {\r\n return (\r\n {\r\n handleRoomListTileClick(item);\r\n }}\r\n key={index}>\r\n
      \r\n
      \r\n \r\n {item.ReservationStatus !== \"INH\" && item.ReservationStatus !== \"DOT\" ?\r\n (item.IsPMReservation) ?\r\n item.BlockSerNo == 0 ?\r\n \"PM\"\r\n :\r\n <>\r\n PM\r\n \r\n \r\n :\r\n item.RoomTypeCode\r\n :\r\n item.RoomTypeCode}\r\n {item.RoomTypeSeq != item.RoomTypeToChargeSeq ?\r\n item.RoomTypeSeq > item.RoomTypeToChargeSeq ?\r\n :\r\n :\r\n \r\n }\r\n {!item.IsPMReservation ?\r\n item.IsSharer ?\r\n \r\n :\r\n \r\n : null}\r\n {item.ReservationStatus !== 'DIN' && item.ReservationStatus !== 'DOT' ?\r\n <>\r\n \r\n {item.ReservationStatus}\r\n \r\n :\r\n null\r\n }\r\n \r\n
      \r\n
      \r\n {item.ReservationStatus === 'DIN' || item.ReservationStatus === 'DOT' ?\r\n <>\r\n {item.IsNoResponse ?\r\n item.IsWithLuggage ?\r\n \r\n :\r\n item.IsWithLuggage === false ?\r\n \r\n :\r\n null\r\n :\r\n null}\r\n {item.IsNoResponse ?\r\n item.IsLocked && item.IsNoResponse ?\r\n :\r\n null :\r\n null}\r\n {item.IsReinstated ?\r\n :\r\n null}\r\n \r\n :\r\n null}\r\n {item.IsDepartureOnSameDay ? (\r\n \r\n \r\n \r\n ) : null}\r\n {item.IsNoResponse === true ? (\r\n
      \r\n NRSP{\" \"}\r\n
      \r\n ) : item.ActualDepartureTime === null ? (\r\n
      \r\n No Info{\" \"}\r\n
      \r\n ) : (\r\n
      = gracePeriod && item.ActualDepartureTime <= propertyDepartureTime ? \"time text-gray\" : item.ActualDepartureTime <= propertyDepartureTime ? \"time text-green\" : item.ActualDepartureTime > propertyDepartureTime ? \"time text-danger\" : \"\"}>{item.ActualDepartureTime}
      \r\n )}\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      {item.RoomNo} - {(item.IsPMReservation && item.ReservationStatus !== \"INH\" && item.ReservationStatus !== \"DOT\" && item.BlockSerNo !== 0) ? item.BlockName : item.GuestName}
      \r\n
      \r\n {reservationCashieringRoomListData.length > 1 ? onRemoveRoomList(item)}> : null}\r\n
      \r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {toggleClass ? (\r\n \r\n ) : (\r\n {\r\n if (showIndicatorColumn === false) setActiveInnTab(\"t2\");\r\n setIndicatorColumn(!showIndicatorColumn);\r\n setLayoutIcon(!showLayoutIcon);\r\n }}>\r\n )}\r\n\r\n
    \r\n
    \r\n {reservationInfoGuestData.ProfileName ? reservationInfoGuestData.ProfileName : \" \"}\r\n \r\n \r\n \r\n
    \r\n
    \r\n {`${reservationInfoRoomType.RoomNo ? reservationInfoRoomType.RoomNo : \"\"} ${reservationInfoRoomType.RoomTypeName ? reservationInfoRoomType.RoomTypeName : \"\"}`}\r\n \r\n {reservationInfoRoomType && reservationInfoRoomType.RoomTypeSerNo > reservationInfoRoomType.ChargeableRoomTypeSerNo ? : reservationInfoRoomType.RoomTypeSerNo < reservationInfoRoomType.ChargeableRoomTypeSerNo ? : }\r\n \r\n
    \r\n
    \r\n Arrival:{\" \"}\r\n \r\n {\" \"}\r\n {reservationInfoData.ArrivalDay}, {reservationInfoData.ArrivalDate} ({reservationInfoData.Nights} {reservationInfoData.Nights > 1 ? \"Nights\" : \"Night\"})\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {\r\n setShowToolTip(true);\r\n }}>\r\n {stateHandle.ReservationStatus}\r\n \r\n \r\n
    \r\n {showFullView == true && (\r\n
    \r\n \r\n {\r\n if (reservationWindowData.length > 1) {\r\n if (!showIndicatorColumn) {\r\n setSplitView(!showSplitView);\r\n setFullView(!showFullView);\r\n setCashieringCollectedData([]);\r\n if (gridWindowData.length > 1) {\r\n setSplitLeftSelectedData(clearCheckBox(reservationCashieringTransactionData.filter((x) => x.WindowSerNo === gridWindowData[0].key)));\r\n setSplitRightSelectedData(clearCheckBox(reservationCashieringTransactionData.filter((x) => x.WindowSerNo === gridWindowData[1].key)));\r\n }\r\n setSplitleftCheckBox(false);\r\n setSplitRightCheckBox(false);\r\n setIsSplitLeftDisabled(false);\r\n setIsSplitRightDisabled(false);\r\n } else {\r\n alertFunction(\"Please close indicator column first.\");\r\n }\r\n } else {\r\n alertFunction(\"Minimum 2 windows are required to perform this action.\");\r\n }\r\n }}>\r\n
    \r\n )}\r\n {showSplitView == true && (\r\n
    \r\n {\r\n setFullView(!showFullView);\r\n setSplitView(!showSplitView);\r\n setFolioDetailedGrid(true);\r\n setFolioSummarisedGrid(false);\r\n setCashieringCollectedData([]);\r\n setSelectedWindow({ key: \"all\", value: \"All\" });\r\n handleWindowChange({ key: \"all\", value: \"All\" }, reservationCashieringTransactionData);\r\n setDetailedCheckBox(false);\r\n setSummarisedCheckBox(false);\r\n }}>\r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {showFullView == true && (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n handleWindowChange(item, reservationCashieringTransactionData);\r\n }}>\r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • {selectedWindow.value}
    • \r\n
    \r\n
    \r\n\r\n {/* Code comment by Vasant : INNKEY - 722 */}\r\n\r\n {/*
    \r\n
    \r\n console.log(item, name)}>\r\n
    \r\n
    */}\r\n {/*
    \r\n {showFolioDetailedGrid == true && (\r\n {\r\n setFolioSummarisedGrid(!showFolioSummarisedGrid);\r\n setFolioDetailedGrid(!showFolioDetailedGrid);\r\n setTransferData((prev) => ({\r\n ...prev,\r\n ReservationTransactionSerNo: null,\r\n }));\r\n setCashieringCollectedData([]);\r\n setSummarisedCheckBox(false);\r\n setSelectedSummarisedData([]);\r\n }}>\r\n Summarised\r\n \r\n )}\r\n\r\n {showFolioSummarisedGrid == true && (\r\n {\r\n setFolioDetailedGrid(!showFolioDetailedGrid);\r\n setFolioSummarisedGrid(!showFolioSummarisedGrid);\r\n setTransferData((prev) => ({\r\n ...prev,\r\n ReservationTransactionSerNo: null,\r\n }));\r\n setCashieringCollectedData([]);\r\n setDetailedCheckBox(false);\r\n if (selectedWindow.key === \"all\") {\r\n setReservationTransactionDataPerWindow(reservationCashieringTransactionData);\r\n } else {\r\n let temp = reservationCashieringTransactionData.filter((x) => x.WindowSerNo === selectedWindow.key);\r\n setReservationTransactionDataPerWindow(temp);\r\n }\r\n setReservationTransactionDataPerWindow(clearCheckBox(reservationTransactionDataPerWindow));\r\n }}>\r\n Detailed\r\n \r\n )}\r\n
    */}\r\n {\r\n setCashieringCollectedData([]);\r\n let currTile = uniqueSummarisedData.find(x => x.Transaction === item);\r\n if (currTile !== undefined) {\r\n let temp = JSON.parse(JSON.stringify(reservationCashieringTransactionData));\r\n temp.forEach(x => {\r\n x.isChecked = false;\r\n });\r\n if (selectedWindow.key === 'all' && currTile.TransactionSerNo === 0) {\r\n } else if (selectedWindow.key === 'all' && currTile.TransactionSerNo !== 0) {\r\n temp = temp.filter(x => x.TransactionSerNo === currTile.TransactionSerNo);\r\n } else if (currTile.TransactionSerNo === 0 && selectedWindow.key !== 'all') {\r\n temp = temp.filter(x => x.WindowSerNo === selectedWindow.key);\r\n } else {\r\n temp = temp.filter(x => x.WindowSerNo === selectedWindow.key && x.TransactionSerNo === currTile.TransactionSerNo);\r\n }\r\n setSelectedSummarisedTile(currTile);\r\n setReservationTransactionDataPerWindow(temp);\r\n // let temp = reservationCashieringTransactionData.filter(x => x.TransactionSerNo === currTile.TransactionSerNo);\r\n // temp.forEach(x => {\r\n // x.ischecked = false;\r\n // });\r\n // setSelectedSummarisedTile(currTile);\r\n // if (selectedWindow.key === \"all\") {\r\n // setReservationTransactionDataPerWindow(temp);\r\n // } else {\r\n // setReservationTransactionDataPerWindow(temp.filter(x => x.TransactionSerNo === selectedSummarisedTile.TransactionSerNo));\r\n // }\r\n }\r\n }} >\r\n
    \r\n
    \r\n
    \r\n {\r\n BillingActionPopup(item, selectedWindow.key);\r\n }}>\r\n
    \r\n
    \r\n {showFolioSummarisedGrid == true && (\r\n
    \r\n
    \r\n
    \r\n {\r\n setSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={selectdata}\r\n optClick={(v, d) => {\r\n }}\r\n fixedHeaderNo={1}\r\n handleRowSelect={(rowdata) => handleSummarisedTileClick(rowdata)}>\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {selectedSummarisedData.map((item, index) => {\r\n return (\r\n {\r\n setAllowanceData({\r\n Revenue: item.Amount,\r\n Allowance: (item.Amount >= 0) ? 0 : item.Amount,\r\n });\r\n }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n
    \r\n {\r\n setSummarisedCheckBox(ischecked);\r\n handleHeaderCheckBox(ischecked, selectedSummarisedData);\r\n }}>\r\n DateTransactionDocumentRevenueAllowance \r\n {\r\n if (cashieringCollectedData.length > 0) {\r\n setStateHandle((prev) => ({\r\n ...prev,\r\n summarisedContext: item,\r\n }));\r\n }\r\n funTransferMultipleWindow(item);\r\n setTimeout(() => {\r\n fillReservationTransactionData(selectedRoomListTile, 0);\r\n }, 50);\r\n setCashieringCollectedData([]);\r\n }}>\r\n Action
    \r\n {\r\n handleCheckBox(ischecked, item, selectedSummarisedData);\r\n if (!ischecked) {\r\n setSummarisedCheckBox(false);\r\n }\r\n }}>\r\n {item.TransactionDate}{item.TransactionName}{item.DocumentNo}{item.Amount.toFixed(2)}{item.Allowance.toFixed(2)}\r\n
    \r\n {\r\n funTransferSingleWindow(x, item);\r\n setTimeout(() => {\r\n fillReservationTransactionData(selectedRoomListTile, 0);\r\n }, 50);\r\n }}>\r\n
    \r\n
    \r\n {cashieringCollectedData.length > 1\r\n ?\r\n
    \r\n
    \r\n {\r\n alertFunction(\"This Functionality is not available when multiple rows are selected\");\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n :\r\n {\r\n actionPopup(x, item);\r\n setTransferData((prev) => ({\r\n ...prev,\r\n ReservationSerNo: item.ReservationSerNo,\r\n ReservationTransactionSerNo: `${item.ReservationTransactionSerNo}`,\r\n }));\r\n }}>\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )}\r\n {showFolioDetailedGrid == true && (\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n {reservationTransactionDataPerWindow.map((item, index) => {\r\n return (\r\n {\r\n setAllowanceData({\r\n Revenue: item.Amount,\r\n Allowance: (item.Amount >= 0) ? 0 : item.Amount,\r\n });\r\n }}>\r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n
    \r\n {\r\n setDetailedCheckBox(ischecked);\r\n handleHeaderCheckBox(ischecked, reservationTransactionDataPerWindow);\r\n }}>\r\n DateTransactionDocumentRevenueAllowance \r\n {\r\n funTransferMultipleWindow(x);\r\n if (cashieringCollectedData.length > 0) {\r\n setStateHandle((prev) => ({\r\n ...prev,\r\n detailedContext: x,\r\n }));\r\n if (!(selectedWindow.key === \"all\" && showFullView === true)) {\r\n setCashieringCollectedData([]);\r\n }\r\n }\r\n setTimeout(() => {\r\n if (Object.keys(selectedRoomListTile).length !== 0) {\r\n fillReservationTransactionData(selectedRoomListTile, 0);\r\n clearAllCheckBox();\r\n }\r\n }, 50);\r\n }}>\r\n Action
    \r\n {\r\n handleCheckBox(ischecked, item, reservationTransactionDataPerWindow);\r\n if (!ischecked) {\r\n setDetailedCheckBox(false);\r\n }\r\n }}>\r\n {item.TransactionDate}{item.TransactionName}{item.DocumentNo}{item.Amount.toFixed(2)}{item.Allowance.toFixed(2)}\r\n
    \r\n {\r\n funTransferSingleWindow(x, item);\r\n setTimeout(() => {\r\n fillReservationTransactionData(selectedRoomListTile, 0);\r\n }, 50);\r\n }\r\n }>\r\n
    \r\n
    \r\n {cashieringCollectedData.length > 1\r\n ?\r\n
    \r\n
    \r\n {\r\n alertFunction(\"This Functionality is not available when multiple rows are selected\");\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n :\r\n {\r\n actionPopup(x, item);\r\n // setTTRData([item]);\r\n setTransferData((prev) => ({\r\n ...prev,\r\n ReservationSerNo: item.ReservationSerNo,\r\n ReservationTransactionSerNo: `${item.ReservationTransactionSerNo}`,\r\n }));\r\n }}>}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n )}\r\n\r\n {showSplitView == true && (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n if (!(item.key === selectedSplitviewRightWindow.key)) {\r\n let wName = selectionWindowData.find((x) => x.key === item.key);\r\n\r\n setStateHandle((prev) => ({\r\n ...prev,\r\n splitLeftWindowName: wName.value,\r\n }));\r\n setSelectedSplitviewLeftWindow(item);\r\n setSplitLeftSelectedData(reservationCashieringTransactionData.filter((x) => x.WindowSerNo === item.key));\r\n } else {\r\n alertFunction(\"There can`t be same windows on both sides.\");\r\n }\r\n }}>\r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • {stateHandle.splitLeftWindowName}
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n BillingActionPopup(item, selectedSplitviewLeftWindow.key);\r\n }}>\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {splitLeftSelectedData.map((item, index) => {\r\n return (\r\n {\r\n setAllowanceData({\r\n Revenue: item.Amount,\r\n Allowance: (item.Amount >= 0) ? 0 : item.Amount,\r\n });\r\n }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n
    \r\n {\r\n setSplitleftCheckBox(ischecked);\r\n handleHeaderCheckBox(ischecked, splitLeftSelectedData);\r\n if (!ischecked) {\r\n setIsSplitRightDisabled(false);\r\n setIsSplitLeftDisabled(false);\r\n } else {\r\n setIsSplitLeftDisabled(false);\r\n setIsSplitRightDisabled(true);\r\n }\r\n }}>\r\n DateTransactionDocumentRevenue\r\n {\r\n setCashieringCollectedData([]);\r\n setStateHandle((prev) => ({\r\n ...prev,\r\n splitLeftContext: item,\r\n splitLeftDisabled: false,\r\n splitRightDisabled: false,\r\n }));\r\n funTransferMultipleWindow(item);\r\n setTimeout(() => {\r\n fillReservationTransactionData(selectedRoomListTile, 0);\r\n }, 50);\r\n }}>\r\n
    \r\n {\r\n handleCheckBox(ischecked, item, splitLeftSelectedData);\r\n if (!ischecked) {\r\n setSplitleftCheckBox(false);\r\n }\r\n let selected = true;\r\n splitLeftSelectedData.forEach((x) => {\r\n if (x.isChecked === true) {\r\n selected = false;\r\n }\r\n });\r\n if (!selected) {\r\n setIsSplitLeftDisabled(false);\r\n setIsSplitRightDisabled(true);\r\n } else {\r\n setIsSplitLeftDisabled(false);\r\n setIsSplitRightDisabled(false);\r\n }\r\n }}>\r\n {item.TransactionDate}\r\n \r\n {item.TransactionName}\r\n \r\n {item.DocumentNo}{item.Amount.toFixed(2)}\r\n
    \r\n {\r\n funTransferSingleWindow(x, item);\r\n setTimeout(() => {\r\n fillReservationTransactionData(selectedRoomListTile, 0);\r\n let leftData = reservationCashieringTransactionData.filter((x) => x.WindowSerNo === selectedSplitviewLeftWindow.key);\r\n let rightData = reservationCashieringTransactionData.filter((x) => x.WindowSerNo === selectedSplitviewRightWindow.key);\r\n setSplitLeftSelectedData(leftData);\r\n setSplitRightSelectedData(rightData);\r\n }, 50);\r\n }}\r\n >\r\n
    \r\n
    \r\n {cashieringCollectedData.length > 1\r\n ?\r\n
    \r\n
    \r\n {\r\n alertFunction(\"This Functionality is not available when multiple rows are selected\");\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n :\r\n {\r\n actionPopup(x, item);\r\n // setTTRData([item]);\r\n setTransferData((prev) => ({\r\n ...prev,\r\n ReservationSerNo: item.ReservationSerNo,\r\n ReservationTransactionSerNo: `${item.ReservationTransactionSerNo}`,\r\n }));\r\n }}>\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n if (item.key !== selectedSplitviewLeftWindow.key) {\r\n let wName = selectionWindowData.find((x) => x.key === item.key);\r\n setStateHandle((prev) => ({\r\n ...prev,\r\n splitRightWindowName: wName.value,\r\n }));\r\n setSelectedSplitviewRightWindow(item);\r\n setSplitRightSelectedData(reservationCashieringTransactionData.filter((x) => x.WindowSerNo === item.key));\r\n } else {\r\n alertFunction(\"There can`t be same windows on both sides.\");\r\n }\r\n }}>\r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • {stateHandle.splitRightWindowName}
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n BillingActionPopup(item, selectedSplitviewRightWindow.key);\r\n }}>\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {splitRightSelectedData.map((item, index) => {\r\n return (\r\n {\r\n setAllowanceData({\r\n Revenue: item.Amount,\r\n Allowance: (item.Amount >= 0) ? 0 : item.Amount,\r\n });\r\n }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n
    \r\n {\r\n setSplitRightCheckBox(ischecked);\r\n handleHeaderCheckBox(ischecked, splitRightSelectedData);\r\n if (!ischecked) {\r\n setIsSplitRightDisabled(false);\r\n setIsSplitLeftDisabled(false);\r\n } else {\r\n setIsSplitLeftDisabled(true);\r\n setIsSplitRightDisabled(false);\r\n }\r\n }}>\r\n DateTransactionDocumentRevenue\r\n {\r\n setCashieringCollectedData([]);\r\n setStateHandle((prev) => ({\r\n ...prev,\r\n splitRightContext: item,\r\n splitLeftDisabled: false,\r\n splitRightDisabled: false,\r\n }));\r\n funTransferMultipleWindow(item);\r\n setTimeout(() => {\r\n fillReservationTransactionData(selectedRoomListTile, 0);\r\n }, 50);\r\n }}>\r\n
    \r\n {\r\n handleCheckBox(ischecked, item, splitRightSelectedData);\r\n if (!ischecked) {\r\n setSplitRightCheckBox(false);\r\n }\r\n let selected = true;\r\n splitRightSelectedData.forEach((x) => {\r\n if (x.isChecked === true) {\r\n selected = false;\r\n }\r\n });\r\n if (!selected) {\r\n setIsSplitLeftDisabled(true);\r\n setIsSplitRightDisabled(false);\r\n } else {\r\n setIsSplitLeftDisabled(false);\r\n setIsSplitRightDisabled(false);\r\n }\r\n }}>\r\n {item.TransactionDate}\r\n \r\n {item.TransactionName}\r\n \r\n {item.DocumentNo}{item.Amount.toFixed(2)}\r\n
    \r\n {\r\n funTransferSingleWindow(x, item);\r\n setTimeout(() => {\r\n fillReservationTransactionData(selectedRoomListTile, 0);\r\n let leftData = reservationCashieringTransactionData.filter((x) => x.WindowSerNo === selectedSplitviewLeftWindow.key);\r\n let rightData = reservationCashieringTransactionData.filter((x) => x.WindowSerNo === selectedSplitviewRightWindow.key);\r\n setSplitLeftSelectedData(leftData);\r\n setSplitRightSelectedData(rightData);\r\n }, 50);\r\n }}\r\n >\r\n
    \r\n
    \r\n {cashieringCollectedData.length > 1\r\n ?\r\n
    \r\n
    \r\n {\r\n alertFunction(\"This functionality is not available when multiple rows are selected\");\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n :\r\n {\r\n actionPopup(x, item);\r\n // setTTRData([item]);\r\n setTransferData((prev) => ({\r\n ...prev,\r\n ReservationSerNo: item.ReservationSerNo,\r\n ReservationTransactionSerNo: `${item.ReservationTransactionSerNo}`,\r\n }));\r\n }}>\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n {showSplitView == false && reservationInfoData.ReservationSerNo !== undefined ? (\r\n )\r\n :\r\n null\r\n }\r\n
    \r\n
    \r\n {\r\n setActiveRightTab(x.id);\r\n setCashieringCollectedData([]);\r\n clearAllCheckBox();\r\n if (x.id === 't1') {\r\n fillReservationTransactionData(selectedRoomListTile, 0);\r\n fillReservationWindowData(selectedRoomListTile);\r\n }\r\n if (x.id === 't2') {\r\n fillInvoiceDetail();\r\n }\r\n if (x.id === 't3') {\r\n if (selectedRoomListTile !== undefined) {\r\n fillPartyList(selectedRoomListTile.ReservationSerNo);\r\n }\r\n }\r\n }}\r\n >\r\n \r\n
    \r\n
      \r\n {reservationWindowData.map((item, index) => {\r\n return (\r\n //cashiering versioning \r\n // (item.IsDeleted === false || deletedWindowInSession.includes(item.WindowSerNo)) ?\r\n (item.IsDeleted == false)\r\n ?\r\n {\r\n setSelectedWindow({ key: item.WindowSerNo, value: item.WindowName });\r\n handleWindowChange({ key: item.WindowSerNo, value: item.WindowName }, reservationCashieringTransactionData);\r\n }}\r\n className={item.WindowSerNo === selectedWindow.key ? \"active\" : \"\"}\r\n key={index}\r\n >\r\n
      \r\n {`W${item.WindowSerNo} - ${item.WindowName}`}\r\n {item.Amount.toFixed(2)}\r\n
      \r\n
      \r\n {selectedRoomListTile.ReservationStatus !== 'COT'\r\n ?\r\n (item.IsInvoiceGenerated) ?\r\n
      \r\n Invoice generated\r\n
      \r\n : null\r\n :\r\n null}\r\n {(item.IsDeleted === true) ?

      {\"Deleted\"}

      : null}\r\n

      {item.TransactionName}

      \r\n

      {item.CompanyOnFolioProfile}

      \r\n

      {item.GuestName}

      \r\n
      \r\n\r\n {item.WindowSerNo != 1 ? (\r\n \r\n {\r\n if (IsDisabled.IsEditWindow || (IsReopened && existingWindowSerNo.includes(item.WindowSerNo))) {\r\n reservationStatusAlert();\r\n } else if (deletedWindowInSession.includes(item.WindowSerNo)) {\r\n alertFunction(\"Window is deleted and hence this action cannot be performed.\");\r\n } else {\r\n let tempObj = windowRoutingAddEditObject;\r\n tempObj.Mode = \"Edit\";\r\n tempObj.WindowName = item.WindowName;\r\n tempObj.WindowSerNo = item.WindowSerNo;\r\n tempObj.PaymentTransactionName = item.TransactionName;\r\n tempObj.PaymentTransactionSerNo = item.TransactionSerNo;\r\n tempObj.CompanyOnFolioName = item.CompanyOnFolioProfile;\r\n tempObj.CompanyOnFolioProfileSerNo = item.CompanyOnFolioProfileSerNo;\r\n tempObj.CompanyOnFolioType = item.CompanyOnFolioType;\r\n tempObj.GuestProfileName = item.GuestName;\r\n tempObj.GuestProfileSerNo = item.GuestProfileSerNo;\r\n setWindowRoutingAddEditObject(tempObj);\r\n setShowAddEditWindowRoutingModalPopUp(true);\r\n }\r\n }}>\r\n {\r\n if (IsDisabled.IsDeleteWindow || (IsReopened && existingWindowSerNo.includes(item.WindowSerNo))) {\r\n reservationStatusAlert();\r\n }\r\n else if (deletedWindowInSession.includes(item.WindowSerNo)) {\r\n alertFunction(\"Window is deleted and hence this action cannot be performed.\");\r\n }\r\n else {\r\n let isConfirmed = await innkeyAlert(\"This window has existing routing instructions. Deleting thewindow will delete the routing instruction and move all charged to the default window. Do you want to continue?\");\r\n if (isConfirmed) {\r\n let temp = defaultAddEditWindowRoutingObj;\r\n temp.WindowSerNo = item.WindowSerNo;\r\n temp.Mode = \"Delete\";\r\n temp[\"SourceWindowSerNo\"] = parseInt(item.WindowSerNo);\r\n temp[\"targetWindowSerNo\"] = 1;\r\n ManageRoutingWindow({\r\n ...temp,\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: parseInt(selectedRoomListTile.ReservationSerNo)\r\n }).then(d => {\r\n if (d.data.Code === \"200\") {\r\n alertFunction(\"Existing routing is deleted and all charges moved to default window, W1\");\r\n let temp = JSON.parse(JSON.stringify(deletedWindowInSession));\r\n temp.push(parseInt(d.data?.ReturnValue));\r\n setDeletedWindowInSession(temp);\r\n setTimeout(() => {\r\n fillReservationTransactionData(selectedRoomListTile, 0);\r\n fillReservationWindowData(selectedRoomListTile);\r\n }, 50);\r\n }\r\n });\r\n }\r\n }\r\n }}\r\n >\r\n \r\n ) : null}\r\n \r\n :\r\n null\r\n );\r\n })}\r\n
    \r\n
    \r\n
    \r\n
    \r\n Subtotal\r\n \r\n {windowTransactionBalance.toFixed(2)}\r\n \r\n
    \r\n
    \r\n Unsettled Bills at POS\r\n \r\n
    \r\n {/*
    \r\n Mini Bar\r\n Direct\r\n
    */}\r\n
    \r\n Balance\r\n {windowTransactionBalance.toFixed(2)}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
      \r\n {invoiceDetailsData.map((item, index) => {\r\n return (\r\n {\r\n let tempInvoiceNo = item.InvoiceNo.split('/').join(\"\");\r\n setFrontInvoicePara([{\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n ReservationSerNo: parseInt(selectedRoomListTile.ReservationSerNo),\r\n InvoiceSerNo: item.InvoiceSerNo,\r\n WindowSerNo: item.WindowSerNo,\r\n InvoiceNo: tempInvoiceNo\r\n }]);\r\n setSelectedWindow({ key: item.WindowSerNo, value: item.WindowName });\r\n if (item.InvoiceNo !== undefined) {\r\n fillReservationTransactionData(selectedRoomListTile, item.InvoiceSerNo);\r\n }\r\n }}\r\n >\r\n
      {`${item.InvoiceNo} - ${item.InvoiceDate}`}{item.Amount.toFixed(2)}
      \r\n
      \r\n
      \r\n
      \r\n

      {`W${item.WindowSerNo}- ${item.WindowName}`}

      \r\n

      {item.Payment}

      \r\n

      {item.CompanyOnFolio}

      \r\n

      {item.PayeeName}

      \r\n
      \r\n
      \r\n {\r\n if (item.key === 'print') {\r\n setShowFrontInvoiceModel(true);\r\n }\r\n }}\r\n >\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n
    \r\n
    \r\n Subtotal\r\n \r\n {windowTransactionBalance.toFixed(2)}\r\n \r\n
    \r\n
    \r\n Unsettled Bills at POS\r\n \r\n
    \r\n {/*
    \r\n Mini Bar\r\n Direct\r\n
    */}\r\n
    \r\n Balance\r\n {windowTransactionBalance.toFixed(2)}\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n {/* {selectedRoomListTile.BlockSerNo !== 0 && selectedRoomListTile.IsPMReservation ? */}\r\n <>\r\n
    \r\n
      \r\n {partyList.map((item, index) => {\r\n return (\r\n
    • \r\n
      {item.FullName}
      \r\n
      {item.BookingNo} {moment(new Date(item.ArrivalDate)).format('DD MMM')}, ({item.Nights} {item.Nights > 1 ? \"Nights\" : \"Night\"})
      \r\n
      \r\n
      \r\n
      \r\n {item.RoomNo}\r\n {item.RoomTypeCode}\r\n {item.RoomTypeSerNo > item.RoomTypeSerNoToCharge\r\n ?\r\n \r\n :\r\n item.RoomTypeSerNoToCharge > item.RoomTypeSerNo\r\n ?\r\n \r\n :\r\n null\r\n }\r\n \r\n
      \r\n
      \r\n console.log(item, name)}\r\n >\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
    • \r\n );\r\n })}\r\n
    \r\n
    \r\n
    \r\n
    \r\n Subtotal\r\n \r\n {windowTransactionBalance.toFixed(2)}\r\n \r\n
    \r\n
    \r\n Unsettled Bills at POS\r\n \r\n
    \r\n {/*
    \r\n Mini Bar\r\n Direct\r\n
    */}\r\n
    \r\n Balance\r\n {windowTransactionBalance.toFixed(2)}\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n\r\n {\r\n if (IsDisabled.IsAddWindow) {\r\n reservationStatusAlert();\r\n } else {\r\n let tempObj = windowRoutingAddEditObject;\r\n tempObj.GuestProfileSerNo = selectedRoomListTile.GuestProfileSerNo;\r\n tempObj.Mode = \"Add\";\r\n let maxWindowSerNo = 0;\r\n reservationWindowData.forEach((x) => {\r\n if (x.WindowSerNo > maxWindowSerNo) {\r\n maxWindowSerNo = x.WindowSerNo;\r\n }\r\n });\r\n if (maxWindowSerNo !== 0) {\r\n tempObj.WindowSerNo = maxWindowSerNo + 1;\r\n setWindowRoutingAddEditObject(tempObj);\r\n setShowAddEditWindowRoutingModalPopUp(true);\r\n }\r\n }\r\n }}>\r\n +\r\n \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n {(selectedRoomListTile.ReservationStatus === \"DIN\") ?\r\n <>\r\n {selectedRoomListTile.IsOpenFolio ?\r\n <>\r\n {\r\n handleCheckoutndCloseFolio(\"CF\");\r\n }}>Close Folio\r\n \r\n :\r\n <>\r\n Re Open\r\n \r\n }\r\n \r\n :\r\n (selectedRoomListTile.ReservationStatus === \"INH\" || selectedRoomListTile.ReservationStatus === \"ARD\") ?\r\n <>\r\n setShowAdvanceBillPopup(!showAdvanceBillPopup)}>Advance Bill\r\n setShowEarlyDeparturePopup(!showEarlyDeparturePopup)}>Early Departure\r\n \r\n : (selectedRoomListTile.ReservationStatus === \"DOT\") ?\r\n <>\r\n Checkout with Open Folio\r\n {\r\n handleCheckoutndCloseFolio(\"COT\");\r\n }}>Check Out\r\n \r\n :\r\n (selectedRoomListTile.ReservationStatus === \"COT\") ?\r\n <>\r\n {selectedRoomListTile.IsOpenFolio ?\r\n <>\r\n {\r\n handleCheckoutndCloseFolio(\"CF\");\r\n }}>Close Folio\r\n \r\n :\r\n (selectedRoomListTile.IsOpenFolio === false && selectedRoomListTile.IsReinstated === true)\r\n ?\r\n Re Open\r\n :\r\n <>\r\n {(moment(new Date(selectedRoomListTile.CheckedOutDate)).format(\"DD-MMM-YYYY\") === moment(new Date(propertyBusinessDate)).format(\"DD-MMM-YYYY\")) ?\r\n <>\r\n Reinstate\r\n Reinstate with open folio\r\n \r\n :\r\n (moment(new Date(selectedRoomListTile.CheckedOutDate)).format(\"DD-MMM-YYYY\") < moment(new Date(propertyBusinessDate)).format(\"DD-MMM-YYYY\")) ?\r\n <>\r\n Re Open\r\n \r\n :\r\n null\r\n }\r\n \r\n }\r\n \r\n :\r\n (selectedRoomListTile.ReservationStatus === \"CAN\" || selectedRoomListTile.ReservationStatus === \"NSH\") ?\r\n <>\r\n {selectedRoomListTile.IsOpenFolio ?\r\n <>\r\n {\r\n handleCheckoutndCloseFolio(\"CF\");\r\n }}>Close Folio\r\n \r\n :\r\n <>\r\n Re Open\r\n \r\n }\r\n \r\n :\r\n null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {/* Popup HTML start */}\r\n\r\n {/* Popup HTML start */}\r\n\r\n {showPaymentPopup ? (selectedRoomListTile.BlockSerNo != 0 && selectedRoomListTile.IsPMReservation === true) ?\r\n {\r\n setShowPaymentPopup(false);\r\n fillReservationTransactionData(selectedRoomListTile, 0);\r\n fillReservationWindowData(selectedRoomListTile);\r\n }}\r\n />\r\n :\r\n {\r\n setShowPaymentPopup(false);\r\n fillReservationTransactionData(selectedRoomListTile, 0);\r\n fillReservationWindowData(selectedRoomListTile);\r\n }}>\r\n :\r\n null\r\n }\r\n\r\n {showPostPopup ? (selectedRoomListTile.BlockSerNo != 0 && selectedRoomListTile.IsPMReservation === true) ?\r\n <>\r\n {\r\n setShowPostPopup(false);\r\n }}\r\n />\r\n \r\n :\r\n <>\r\n {\r\n setShowPostPopup(false);\r\n clearAllCheckBox();\r\n setCashieringCollectedData([]);\r\n setStateHandle((prev) => ({\r\n ...prev,\r\n splitLeftDisabled: false,\r\n splitRightDisabled: false,\r\n }));\r\n setTimeout(() => {\r\n fillReservationTransactionData(selectedRoomListTile, 0);\r\n fillReservationWindowData(selectedRoomListTile);\r\n }, 100);\r\n setPostedReservationTransaction(parseInt(x));\r\n }}>\r\n \r\n : null\r\n }\r\n\r\n {showAllowanceFBPopup ? (\r\n {\r\n setShowAllowanceFBPopup(!showAllowanceFBPopup);\r\n clearAllCheckBox();\r\n if (showSplitView) {\r\n setStateHandle((prev) => ({ ...prev, splitLeftDisabled: false, splitRightDisabled: false }));\r\n }\r\n setCashieringCollectedData([]);\r\n setTimeout(() => {\r\n fillReservationTransactionData(selectedRoomListTile, 0);\r\n fillReservationWindowData(selectedRoomListTile);\r\n }, 100);\r\n }}>\r\n \r\n ) : null}\r\n\r\n {showAllowanceOtherPopup ? (\r\n {\r\n setShowAllowanceOtherPopup(!showAllowanceOtherPopup);\r\n clearAllCheckBox();\r\n if (showSplitView) {\r\n setStateHandle((prev) => ({\r\n ...prev,\r\n splitLeftDisabled: false,\r\n splitRightDisabled: false,\r\n }));\r\n }\r\n setCashieringCollectedData([]);\r\n setTimeout(() => {\r\n fillReservationTransactionData(selectedRoomListTile, 0);\r\n fillReservationWindowData(selectedRoomListTile);\r\n }, 100);\r\n }}>\r\n ) : null}\r\n\r\n {showTransactionSplitPopup ? (\r\n {\r\n setShowTransactionSplitPopup(false);\r\n if (v) {\r\n clearAllCheckBox();\r\n setCashieringCollectedData([]);\r\n setStateHandle((prev) => ({\r\n ...prev,\r\n splitLeftDisabled: false,\r\n splitRightDisabled: false,\r\n }));\r\n setTimeout(() => {\r\n fillReservationTransactionData(selectedRoomListTile, 0);\r\n fillReservationWindowData(selectedRoomListTile);\r\n }, 100);\r\n }\r\n }}\r\n OnClose={() => {\r\n setShowTransactionSplitPopup(false);\r\n }}\r\n para={transactionSplitTransferData}>\r\n ) :\r\n null}\r\n\r\n {showTransSplitGroupDetailPopup ? (\r\n setShowTransSplitGroupDetailPopup(false)}>\r\n
    \r\n
    \r\n
    \r\n

    Details

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      \r\n Food\r\n 500.00\r\n
      \r\n
      \r\n KK/22/34345\r\n 200.00\r\n
      \r\n
      \r\n IRD/22/34345\r\n 300.00\r\n
      \r\n
    • \r\n
    • \r\n
      \r\n Beverage\r\n 500.00\r\n
      \r\n
      \r\n KK/22/34345\r\n 200.00\r\n
      \r\n
      \r\n IRD/22/34345\r\n 300.00\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n\r\n {showTransSplitValueDetailPopup ? (\r\n setShowTransSplitValueDetailPopup(false)}>\r\n
    \r\n
    \r\n
    \r\n

    Details

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      \r\n KK/22/34345\r\n 2150.00\r\n
      \r\n
      \r\n 1\r\n 1075.00\r\n
      \r\n
      \r\n 2\r\n 1075.00\r\n
      \r\n
    • \r\n
    • \r\n
      \r\n KK/22/34345\r\n 4510.00\r\n
      \r\n
      \r\n 1\r\n 2255.00\r\n
      \r\n
      \r\n 2\r\n 2255.00\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : null}\r\n\r\n {showPaymentSplitPopup ? (\r\n {\r\n clearAllCheckBox();\r\n if (showSplitView) {\r\n setStateHandle((prev) => ({\r\n ...prev,\r\n splitLeftDisabled: false,\r\n splitRightDisabled: false,\r\n }));\r\n }\r\n setCashieringCollectedData([]);\r\n setTimeout(() => {\r\n fillReservationTransactionData(selectedRoomListTile, 0);\r\n fillReservationWindowData(selectedRoomListTile);\r\n }, 100);\r\n setShowPaymentSplitPopup(false);\r\n }}\r\n />\r\n ) : null}\r\n {showTransferTransactionPopup ? (\r\n {\r\n setTimeout(() => {\r\n fillReservationTransactionData(selectedRoomListTile, 0);\r\n fillReservationWindowData(selectedRoomListTile);\r\n }, 100);\r\n setShowTransferTransactionPopup(false);\r\n clearAllCheckBox();\r\n if (showSplitView) {\r\n setStateHandle((prev) => ({\r\n ...prev,\r\n splitLeftDisabled: false,\r\n splitRightDisabled: false,\r\n }));\r\n }\r\n setCashieringCollectedData([]);\r\n setTTRData([]);\r\n }}\r\n />\r\n ) : null}\r\n\r\n {showCheckoutPopup ?\r\n {\r\n setShowCheckoutPopup(false);\r\n clearAllCheckBox();\r\n if (showSplitView) {\r\n setStateHandle((prev) => ({\r\n ...prev,\r\n splitLeftDisabled: false,\r\n splitRightDisabled: false,\r\n }));\r\n }\r\n setCashieringCollectedData([]);\r\n setTimeout(() => {\r\n fillReservationTransactionData(selectedRoomListTile, 0);\r\n fillInvoiceDetail();\r\n fillReservationWindowData(selectedRoomListTile);\r\n fillReservationCashieringRoomListData(selectedRoomListTile.ReservationSerNo);\r\n }, 100);\r\n }}\r\n />\r\n :\r\n null}\r\n {/* Popup HTML end */}\r\n {showAdvanceBillPopup ? (\r\n {\r\n setShowAdvanceBillPopup(false);\r\n fillReservationTransactionData(selectedRoomListTile, 0);\r\n fillReservationWindowData(selectedRoomListTile);\r\n }}\r\n para={{\r\n ReservationSerNo: selectedRoomListTile.ReservationSerNo\r\n }}\r\n />\r\n ) : null\r\n\r\n }\r\n {/* Advance Bill Popup End */}\r\n\r\n {/* Early Departure Popup Start */}\r\n {showEarlyDeparturePopup ? (\r\n {\r\n setShowEarlyDeparturePopup(false);\r\n setTimeout(() => {\r\n fillReservationCashieringRoomListData(selectedRoomListTile.ReservationSerNo);\r\n fillReservationInfoData(selectedRoomListTile.ReservationSerNo);\r\n }, 100);\r\n }}\r\n para={{\r\n ReservationSerNo: selectedRoomListTile.ReservationSerNo,\r\n DepartureDate: selectedRoomListTile.DepartureDate,\r\n BusinessDate: propertyBusinessDate\r\n }}\r\n />\r\n ) : null\r\n }\r\n
    \r\n
    \r\n
    \r\n {\r\n setShowFrontInvoiceModel(false);\r\n }}\r\n />\r\n
    \r\n \r\n );\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { cmbGetHousekeepingSectionGroup, GetHousekeepingSectionMaster, GetHousekeepingSectionMasterBySerNo, AddEditHouseKeepingSectionMaster } from \"../../../../services/housekeepingServiceMaster\";\r\nimport { useSelector } from 'react-redux';\r\nimport { nothing } from \"@reduxjs/toolkit/node_modules/immer\";\r\n\r\n\r\nexport function HousekeepingSectionMaster(props) {\r\n const currUser = useSelector(currentUser);\r\n\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"HKSectionSerNo\": 0,\r\n \"HKSectionGroupSerNo\": 0,\r\n \"Name\": \"\",\r\n \"Mode\": \"View\",\r\n \"Sequence\": 1,\r\n }\r\n\r\n const defaultHouseKeepingSectionGroupType = {\r\n \"key\": '0',\r\n \"value\": 'Select'\r\n }\r\n const validationObj = {\r\n \"HKSectionGroupSerNo\": \"\",\r\n \"Name\": \"\",\r\n \"Sequence\": \"\"\r\n }\r\n\r\n const [isActive, setIsActive] = useState(false);\r\n const [housekeepingSectionGroupType, setHouseKeepingSectionGroupTypeData] = useState([]);\r\n const [housekeepingSectionData, setHousekeepingSectionData] = useState([]);\r\n const [filterHousekeepingSectionData, setFilterHousekeepingSectionData] = useState([]);\r\n const [housekeepingSectionObj, setHousekeepingSectionObj] = useState(defaultObj);\r\n const [housekeepingSectionValidation, setHousekeepingSectionValidation] = useState(validationObj);\r\n const [housekeepingSectionRoomList, setHousekeepingSectionRoomList] = useState([]);\r\n const [selectedHousekeepingSectionSerNo, setSelectedHousekeepingSectionSerNo] = useState(0);\r\n\r\n\r\n useEffect(() => {\r\n getHousekeepingSectionData();\r\n setIsActive(true);\r\n cmbGetHousekeepingSectionGroup(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n setIsActive(false);\r\n setHouseKeepingSectionGroupTypeData([defaultHouseKeepingSectionGroupType, ...d.data]);\r\n })\r\n }, [])\r\n\r\n const getHousekeepingSectionData = () => {\r\n setIsActive(true);\r\n GetHousekeepingSectionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n setIsActive(false);\r\n setHousekeepingSectionData(d.data);\r\n setFilterHousekeepingSectionData(d.data);\r\n if (d.data.length > 0 && housekeepingSectionObj.Mode == \"View\") {\r\n getSelectedHousekeepingSectionData(d.data[0].HKSectionSerNo);\r\n }\r\n })\r\n }\r\n const getSelectedHousekeepingSectionData = (hkSectionSerNo) => {\r\n setIsActive(true);\r\n console.log(hkSectionSerNo);\r\n GetHousekeepingSectionMasterBySerNo(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(hkSectionSerNo)).then(d => {\r\n setIsActive(false);\r\n console.log(d.data.HousekeepingSectionRoomList);\r\n d.data.HousekeepingSectionMasterDetail[0].Mode = \"View\";\r\n setHousekeepingSectionObj(d.data.HousekeepingSectionMasterDetail[0]);\r\n setHousekeepingSectionRoomList(d.data.HousekeepingSectionRoomList);\r\n })\r\n }\r\n\r\n const isValidData = () => {\r\n let isValid = true;\r\n console.log(housekeepingSectionObj);\r\n if (housekeepingSectionObj.Name == \"\") {\r\n isValid = false;\r\n setHousekeepingSectionValidation(prev => ({ ...prev, Name: \"Enter the Name\" }));\r\n }\r\n if (housekeepingSectionObj.HKSectionGroupSerNo == 0) {\r\n isValid = false;\r\n setHousekeepingSectionValidation(prev => ({ ...prev, HKSectionGroupSerNo: \"Please select any Section Group\" }));\r\n }\r\n if (housekeepingSectionObj.Sequence == nothing || housekeepingSectionObj.Sequence == null || housekeepingSectionObj.Sequence == NaN) {\r\n isValid = false;\r\n setHousekeepingSectionValidation(prev => ({ ...prev, Sequence: \"Enter the Sequence\" }));\r\n }\r\n\r\n return isValid;\r\n }\r\n\r\n const handleOnAddClick = () => {\r\n defaultObj.Mode = \"Add\";\r\n setHousekeepingSectionObj(defaultObj);\r\n setHousekeepingSectionRoomList([]);\r\n\r\n }\r\n const handleOnEditClick = () => {\r\n setHousekeepingSectionObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidData();\r\n if (IsPageValid) {\r\n console.log(housekeepingSectionObj);\r\n setIsActive(true);\r\n AddEditHouseKeepingSectionMaster(housekeepingSectionObj).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n getHousekeepingSectionData();\r\n getSelectedHousekeepingSectionData(d.data.ReturnValue);\r\n } else {\r\n alert(d.data.Message);\r\n }\r\n })\r\n setHousekeepingSectionObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n\r\n }\r\n const handleOnHousekeepingSectionClick = (e) => {\r\n setHousekeepingSectionValidation(validationObj);\r\n getSelectedHousekeepingSectionData(e.target.id);\r\n setSelectedHousekeepingSectionSerNo(e.target.id);\r\n }\r\n\r\n const hanldeOnCancelClick = () => {\r\n setHousekeepingSectionValidation(validationObj);\r\n if (housekeepingSectionObj.Mode != \"Edit\") {\r\n setHousekeepingSectionObj(defaultObj);\r\n setHousekeepingSectionRoomList([]);\r\n }\r\n else {\r\n getSelectedHousekeepingSectionData(selectedHousekeepingSectionSerNo);\r\n }\r\n }\r\n\r\n const handleOnSearchChanged = (e) => {\r\n setHousekeepingSectionValidation(validationObj);\r\n setHousekeepingSectionObj(defaultObj);\r\n setHousekeepingSectionRoomList([]);\r\n let filterData = housekeepingSectionData.filter(item => item.Name.toLowerCase().includes(e.toLowerCase()));\r\n console.log(filterData);\r\n setFilterHousekeepingSectionData(filterData);\r\n }\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    Housekeeping Section Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Search\r\n
    \r\n \r\n
    \r\n
    \r\n
    Housekeeping Sections
    \r\n
    \r\n
      \r\n {\r\n filterHousekeepingSectionData.map(element => {\r\n return (
    • \r\n {element.Name}
    • );\r\n })\r\n }\r\n
    \r\n
    \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
    \r\n
    \r\n\r\n
    {/* disabled-section */}\r\n
    \r\n
    \r\n\r\n {\r\n setHousekeepingSectionObj(prev => ({ ...prev, Name: v }));\r\n }}> Name\r\n\r\n {\r\n setHousekeepingSectionObj(prev => ({ ...prev, Sequence: parseInt(v) }));\r\n }}>Sequence\r\n\r\n
    \r\n {\r\n console.log(item);\r\n setHousekeepingSectionObj(prev => ({ ...prev, HKSectionGroupSerNo: parseInt(item.key) }))\r\n }}\r\n >\r\n
    \r\n
    \r\n
    List of Rooms
    \r\n
    \r\n
    \r\n
      \r\n {\r\n\r\n housekeepingSectionRoomList.map(element => {\r\n return (
    • {element.RoomNo}
    • )\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
    \r\n
    \r\n Activate\r\n console.log(v)} id=\"1\">\r\n {\r\n housekeepingSectionObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnLoader,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetHouseKeepingSectionGroup, AddEditHouseKeepingSectionGroup } from \"../../../../services/housekeepingServiceMaster\";\r\nimport { cmbGetHousekeepingSectionGroup, GetHousekeepingSectionMaster, GetHousekeepingSectionMasterBySerNo, AddEditHouseKeepingSectionMaster } from \"../../../../services/housekeepingServiceMaster\";\r\n\r\nexport function HousekeepingSectionGroupMaster() {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"HKSectionGroupSerNo\": 0,\r\n \"HKSectionSerNo\": 0,\r\n \"Name\": \"\",\r\n \"Sequence\": 0,\r\n \"Active\": false,\r\n \"Mode\": \"View\"\r\n }\r\n const defaultHouseKeepingSectionGroupType = {\r\n \"key\": '0',\r\n \"value\": 'Select'\r\n }\r\n const validationObj = {\r\n \"HKSectionGroupSerNo\": \"\",\r\n \"Name\": \"\",\r\n \"Sequence\": \"\",\r\n \"LongDescription\": \"\",\r\n }\r\n //----------------------------------------------------------------------//\r\n const [isActive, setIsActive] = useState(false);\r\n const [hkSectionGroupData, setHKSectionGroupData] = useState([]);\r\n const [filterHKSectionGroupData, setFilterHKSectionGroupData] = useState([]);\r\n const [hkSectionGroupObj, setHKSectionGroupObj] = useState(defaultObj);\r\n const [hkSectionGroupValidation, setHKSectionGroupValidation] = useState(validationObj)\r\n const [selectedHKSectionGroupSerNo, setSelectedHKSectionGroupSerNo] = useState(0)\r\n const [showHKSectionGroupModal, setShowHKSectionGroupModal] = useState();\r\n //-------------------------------------------------------------------------------------------//\r\n const [isActive1, setIsActive1] = useState(false);\r\n const [housekeepingSectionGroupType, setHouseKeepingSectionGroupTypeData] = useState([]);\r\n const [housekeepingSectionData, setHousekeepingSectionData] = useState([]);\r\n const [filterHousekeepingSectionData, setFilterHousekeepingSectionData] = useState([]);\r\n const [housekeepingSectionObj, setHousekeepingSectionObj] = useState(defaultObj);\r\n const [housekeepingSectionValidation, setHousekeepingSectionValidation] = useState(validationObj);\r\n const [selectedHousekeepingSectionSerNo, setSelectedHousekeepingSectionSerNo] = useState(0);\r\n const [isAddBtnClicked, setIsAddBtnClicked] = useState(false);\r\n //--------------------------------------------------------------------------------------------------------//\r\n const fillSelectedHKSectionGroup = (hkSectionGroupSerNo) => {\r\n if (hkSectionGroupData.filter(x => x.HKSectionGroupSerNo == hkSectionGroupSerNo).length > 0) {\r\n let selectedHKSectionGroupobj = hkSectionGroupData.find(x => x.HKSectionGroupSerNo == hkSectionGroupSerNo);\r\n setHKSectionGroupObj({ ...defaultObj, HKSectionGroupSerNo: selectedHKSectionGroupobj.HKSectionGroupSerNo, Name: selectedHKSectionGroupobj.Name, Sequence: selectedHKSectionGroupobj.Sequence });\r\n }\r\n }\r\n const fillHKSectionGroup = () => {\r\n setIsActive(true);\r\n GetHouseKeepingSectionGroup(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n d.data.forEach((x) => {\r\n x.Mode = \"View\";\r\n })\r\n setIsActive(false);\r\n setHKSectionGroupData(d.data);\r\n setFilterHKSectionGroupData(d.data);\r\n if (d.data.length > 0 && selectedHKSectionGroupSerNo == 0) {\r\n setSelectedHKSectionGroupSerNo(d.data[0].HKSectionGroupSerNo);\r\n }\r\n\r\n })\r\n }\r\n //------------------------------------------------------------------------------------//\r\n const clearValidation = () => {\r\n setHKSectionGroupValidation(validationObj);\r\n }\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (/[-’/`~!#*$@_%+=,^&(){}[\\]|;.:”<>?\\\\]/g.test(hkSectionGroupObj.Name) == true || hkSectionGroupObj.Name.trim().length == 0) {\r\n isValid = false;\r\n setHKSectionGroupValidation(prev => ({ ...prev, Name: \"Please Enter valid name.\" }))\r\n alertFunction(\"Please Enter valid name.\");\r\n }\r\n if (hkSectionGroupObj.Sequence <= 0 || isNaN(hkSectionGroupObj.Sequence)) {\r\n isValid = false;\r\n setHKSectionGroupValidation(prev => ({ ...prev, Sequence: \"Please enter valid sequence.\" }))\r\n alertFunction(\"Please enter valid sequence.\");\r\n }\r\n if (hkSectionGroupObj.LongDescription == \"\") {\r\n isValid = false;\r\n setHKSectionGroupValidation(prev => ({ ...prev, LongDescription: \"Please Enter valid LongDescription.\" }))\r\n alertFunction(\"Please Enter valid name.\");\r\n }\r\n return isValid;\r\n }\r\n //------------------------------------------------------------------------------------------------------------------//\r\n const handleOnSearchChanged = (v) => {\r\n let filteredType = hkSectionGroupData.filter(obj => obj.Name.toLowerCase().includes(v.toLowerCase()));\r\n setFilterHKSectionGroupData(filteredType);\r\n }\r\n const handleOnHKSectionGroupClick = (e) => {\r\n clearValidation();\r\n let obj = hkSectionGroupData.find((x) => x.HKSectionGroupSerNo == e.target.id)\r\n setHKSectionGroupObj(obj)\r\n setSelectedHKSectionGroupSerNo(e.target.id);\r\n }\r\n const handleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setHKSectionGroupObj(obj);\r\n setFilterHousekeepingSectionData([]);\r\n setSelectedHousekeepingSectionSerNo(0);\r\n }\r\n const handleOnEditClick = () => {\r\n setHKSectionGroupObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n setIsActive(true);\r\n AddEditHouseKeepingSectionGroup(hkSectionGroupObj).then(d => {\r\n if (d.data.Code == \"200\") {\r\n setIsActive(false);\r\n alertFunction(d.data.Message);\r\n setSelectedHKSectionGroupSerNo(parseInt(d.data.ReturnValue));\r\n fillHKSectionGroup();\r\n } else {\r\n alertFunction(\"Something went wrong\");\r\n }\r\n })\r\n setHKSectionGroupObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n }\r\n\r\n const hanldeOnCancelClick = () => {\r\n clearValidation();\r\n if (hkSectionGroupObj.Mode == \"Edit\") {\r\n let existingObj = hkSectionGroupData.find(x => x.HKSectionGroupSerNo == selectedHKSectionGroupSerNo);\r\n if (existingObj != undefined)\r\n setHKSectionGroupObj(existingObj);\r\n else\r\n setHKSectionGroupObj(defaultObj);\r\n }\r\n if (hkSectionGroupObj.Mode == \"Add\") {\r\n let existingObj = hkSectionGroupData.find(x => x.HKSectionGroupSerNo == selectedHKSectionGroupSerNo);\r\n if (existingObj != undefined)\r\n setHKSectionGroupObj(existingObj);\r\n else\r\n setHKSectionGroupObj(defaultObj);\r\n }\r\n }\r\n //-----------------------------------------------------------------------//\r\n //#region UseEffect\r\n useEffect(() => {\r\n fillHKSectionGroup();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (selectedHKSectionGroupSerNo != 0) {\r\n fillSelectedHKSectionGroup(selectedHKSectionGroupSerNo);\r\n }\r\n getHousekeepingSectionData();\r\n }, [selectedHKSectionGroupSerNo]);\r\n //#endregion \r\n //-----------------------------------------------------------------------------//\r\n //#region UseEffect\r\n useEffect(() => {\r\n getHousekeepingSectionData();\r\n HousekeepingSectionGroupData();\r\n }, [])\r\n //#endregion \r\n //--------------------------------------------------------------------------------------------------------------------//\r\n const HousekeepingSectionGroupData = () => {\r\n setIsActive1(true);\r\n cmbGetHousekeepingSectionGroup(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n setIsActive1(false);\r\n setHouseKeepingSectionGroupTypeData([defaultHouseKeepingSectionGroupType, ...d.data]);\r\n })\r\n }\r\n const getHousekeepingSectionData = () => {\r\n setIsActive1(true);\r\n GetHousekeepingSectionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), selectedHKSectionGroupSerNo).then(d => {\r\n d.data.forEach((x) => {\r\n x.Mode = \"View\";\r\n })\r\n setIsActive1(false);\r\n setHousekeepingSectionData(d.data);\r\n setFilterHousekeepingSectionData(d.data);\r\n if (d.data.length > 0) {\r\n setSelectedHousekeepingSectionSerNo(d.data[0].HKSectionSerNo)\r\n setHousekeepingSectionObj(d.data[0])\r\n }\r\n else {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n setHousekeepingSectionObj(obj);\r\n }\r\n if (d.data.length > 0 && selectedHKSectionGroupSerNo == 0) {\r\n getSelectedHousekeepingSectionData(d.data[0].HKSectionSerNo);\r\n }\r\n })\r\n }\r\n\r\n const getSelectedHousekeepingSectionData = (hkSectionSerNo) => {\r\n setIsActive1(true);\r\n GetHousekeepingSectionMasterBySerNo(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(hkSectionSerNo)).then(d => {\r\n setIsActive1(false);\r\n d.data.HousekeepingSectionMasterDetail[0].Mode = \"View\";\r\n setHousekeepingSectionObj(d.data.HousekeepingSectionMasterDetail[0]);\r\n })\r\n }\r\n //-----------------------------------------------------------------------------------------//\r\n const isValidData = () => {\r\n let isValid = true;\r\n if (/[-’/`~!#*$@_%+=,^&(){}[\\]|;.:”<>?\\\\]/g.test(housekeepingSectionObj.Name) == true || housekeepingSectionObj.Name.trim().length == 0) {\r\n isValid = false;\r\n setHousekeepingSectionValidation(prev => ({ ...prev, Name: \"Please Enter valid name.\" }));\r\n alertFunction(\"Please Enter valid name.\");\r\n }\r\n if (housekeepingSectionObj.HKSectionGroupSerNo == 0) {\r\n isValid = false;\r\n setHousekeepingSectionValidation(prev => ({ ...prev, HKSectionGroupSerNo: \"Please select any Section Group\" }));\r\n alertFunction(\"Please select Houskeeping group.\");\r\n }\r\n if (housekeepingSectionObj.Sequence <= 0 || housekeepingSectionObj.Sequence == null || housekeepingSectionObj.Sequence == NaN) {\r\n isValid = false;\r\n setHousekeepingSectionValidation(prev => ({ ...prev, Sequence: \"Please enter valid sequence.\" }));\r\n alertFunction(\"Please enter valid sequence.\");\r\n }\r\n\r\n return isValid;\r\n }\r\n //-----------------------------------------------------------------------------------------------------------------------//\r\n const handleOnAddClick1 = () => {\r\n defaultObj.Mode = \"Add\";\r\n setHousekeepingSectionObj(defaultObj);\r\n\r\n\r\n }\r\n const handleOnEditClick1 = () => {\r\n setHousekeepingSectionObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n\r\n const handleOnSaveClick1 = () => {\r\n let IsPageValid = isValidData();\r\n if (IsPageValid) {\r\n setIsActive1(true);\r\n AddEditHouseKeepingSectionMaster(housekeepingSectionObj).then(d => {\r\n if (d.data.Code == \"200\") {\r\n setIsActive1(false);\r\n alertFunction(d.data.Message);\r\n getSelectedHousekeepingSectionData(parseInt(d.data.ReturnValue));\r\n getHousekeepingSectionData();\r\n } else {\r\n alertFunction(d.data.Message);\r\n }\r\n })\r\n setHousekeepingSectionObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n\r\n }\r\n\r\n const handleOnHousekeepingSectionClick = (e) => {\r\n getSelectedHousekeepingSectionData(e.target.id);\r\n setSelectedHousekeepingSectionSerNo(e.target.id);\r\n }\r\n const hanldeOnCancelClick1 = () => {\r\n setHousekeepingSectionValidation(validationObj);\r\n if (housekeepingSectionObj.Mode == \"Edit\") {\r\n let existingObj = housekeepingSectionData.find(x => x.HKSectionSerNo == selectedHousekeepingSectionSerNo);\r\n if (existingObj != undefined)\r\n setHousekeepingSectionObj(existingObj);\r\n else\r\n setHousekeepingSectionObj(selectedHousekeepingSectionSerNo);\r\n }\r\n if (housekeepingSectionObj.Mode == \"Add\") {\r\n let existingObj = housekeepingSectionData.find(x => x.HKSectionSerNo == selectedHousekeepingSectionSerNo);\r\n if (existingObj != undefined)\r\n setHousekeepingSectionObj(existingObj);\r\n else\r\n setHousekeepingSectionObj(defaultObj);\r\n }\r\n }\r\n\r\n\r\n const handleOnSearchChanged1 = (e) => {\r\n let filterData = housekeepingSectionData.filter(item => item.Name.toLowerCase().includes(e.toLowerCase()));\r\n setFilterHousekeepingSectionData(filterData);\r\n }\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    HK Section Group Master

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Search\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n HK Section Groups{\" \"}\r\n
    \r\n
    \r\n
      \r\n {filterHKSectionGroupData.map((d) => (\r\n
    • \r\n {\" \"}\r\n \r\n {d.Name}\r\n \r\n
    • \r\n ))}\r\n
    \r\n
    \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
    \r\n
    \r\n
    \r\n {\" \"}\r\n {/* disabled-section */}\r\n
    \r\n
    \r\n {\r\n setHKSectionGroupValidation((prev) => ({ ...prev, Name: \"\" }))\r\n setHKSectionGroupObj(prev => ({ ...prev, Name: m }));\r\n if (m == \"\") {\r\n setHKSectionGroupValidation(prev => ({ ...prev, Name: \"Invalid Name\" }))\r\n }\r\n }}\r\n >\r\n Name\r\n \r\n {/* {\r\n setHKSectionGroupObj((prev) => ({\r\n ...prev,\r\n LongDescription: e,\r\n }));\r\n }}\r\n\r\n >LongDescription */}\r\n {\r\n setHKSectionGroupObj((prev) => ({\r\n ...prev,\r\n Sequence: v,\r\n }));\r\n setHKSectionGroupValidation((prev) => ({\r\n ...prev,\r\n Sequence: \"\",\r\n }));\r\n if (v == \"\") {\r\n setHKSectionGroupValidation(prev => ({ ...prev, Sequence: \"Invalid Sequence\" }))\r\n }\r\n }}\r\n >\r\n Sequence{\" \"}\r\n \r\n
    \r\n
    \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n HK Sections \r\n \r\n {filterHousekeepingSectionData != \"\" ? (\r\n {\r\n if (hkSectionGroupObj.Mode != \"Add\") {\r\n setIsAddBtnClicked(false);\r\n setShowHKSectionGroupModal(\r\n !showHKSectionGroupModal\r\n );\r\n }\r\n else {\r\n alertFunction(\"Add HouseKeeping Section Group first\")\r\n }\r\n }}\r\n >\r\n ) : (\r\n {\r\n if (hkSectionGroupObj.Mode != \"Add\") {\r\n setIsAddBtnClicked(true);\r\n setShowHKSectionGroupModal(\r\n !showHKSectionGroupModal\r\n );\r\n }\r\n else {\r\n alertFunction(\"Add HouseKeeping Section Group first\")\r\n }\r\n }}\r\n className=\"plus-gray-btn m0\"\r\n >\r\n +\r\n \r\n )}\r\n \r\n
      \r\n
        \r\n {filterHousekeepingSectionData.map((element) => {\r\n return (\r\n
      • \r\n {element.Name}{\" \"}\r\n
      • \r\n );\r\n })\r\n }\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n \r\n
      \r\n
      \r\n {hkSectionGroupObj.Mode == \"View\" ? (\r\n <>\r\n \r\n Edit\r\n \r\n \r\n Add\r\n \r\n \r\n ) : (\r\n <>\r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n \r\n )}\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n {showHKSectionGroupModal ? (\r\n setShowHKSectionGroupModal(!showHKSectionGroupModal)}\r\n >\r\n
      \r\n
      \r\n
      \r\n

      HK Section

      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Search\r\n \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n Housekeeping Section Names{\" \"}\r\n
      \r\n
      \r\n
        \r\n {filterHousekeepingSectionData.map((element) => {\r\n return (\r\n
      • \r\n \r\n {element.Name}\r\n \r\n
      • \r\n );\r\n })}\r\n
      \r\n
      \r\n {/* Add Deposit Term */}\r\n
      \r\n\r\n
      \r\n {\r\n setHousekeepingSectionValidation((prev) => ({ ...prev, Name: \"\" }))\r\n setHousekeepingSectionObj(prev => ({ ...prev, Name: m }));\r\n if (m == \"\") {\r\n setHousekeepingSectionValidation(prev => ({ ...prev, Name: \"Invalid Name\" }))\r\n }\r\n }}\r\n >\r\n HK Section Name\r\n \r\n {\r\n setHousekeepingSectionObj((prev) => ({\r\n ...prev,\r\n Sequence: parseInt(v),\r\n }));\r\n if (v === 0 || isNaN(v) || parseInt(v) < 0) {\r\n setHousekeepingSectionValidation((prev) => ({\r\n ...prev,\r\n Sequence: \"Invalid Sequence No\",\r\n }));\r\n } else {\r\n setHousekeepingSectionValidation(validationObj);\r\n }\r\n }}\r\n >\r\n Sequence\r\n \r\n
      \r\n {\r\n setHousekeepingSectionObj((prev) => ({\r\n ...prev,\r\n HKSectionGroupSerNo: parseInt(item.key),\r\n }));\r\n }}\r\n >\r\n
      \r\n
      \r\n
      \r\n {/* Active{\" \"}\r\n {\r\n setHousekeepingSectionObj((prev) => ({ ...prev, Active: v }));\r\n }}\r\n id=\"s0\"\r\n > */}\r\n
      \r\n
      \r\n
      \r\n {\r\n housekeepingSectionObj.Mode == \"View\" ?\r\n (\r\n isAddBtnClicked ?\r\n <>\r\n Add
      \r\n \r\n :\r\n <>\r\n Edit\r\n Add\r\n \r\n )\r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n\r\n }\r\n
      \r\n\r\n
      \r\n\r\n {/*
      */}\r\n
      \r\n
      \r\n \r\n ) : null}\r\n
      \r\n );\r\n}\r\n\r\n// export default TempHKSectionGroupMaster;","import React, { useEffect, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnPlainButton,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport { GetIndustryMaster, AddEditIndustryMaster } from \"../../../../services/generalService\";\r\n\r\nexport function IndustryMaster(props) {\r\n const defaultIndustry = {\r\n IndustrySerNo: 0,\r\n IndustryName: \"\",\r\n Mode: \"View\"\r\n }\r\n\r\n const validationObj = {\r\n IndustryName: \"\"\r\n }\r\n\r\n const [industryObj, setIndustryObj] = useState(defaultIndustry);\r\n const [industryMaster, setIndustryMaster] = useState([]);\r\n const [filterIndustryMaster, setFilterIndustryMaster] = useState([]);\r\n const [isActive, setIsActive] = useState(false);\r\n const [industryValidation, setIndustryValidation] = useState(validationObj);\r\n const [selectedIndustrySerNo, setSelectedIndustrySerNo] = useState(0);\r\n const [search, setSearch] = useState(\"\");\r\n\r\n const fillIndustryMaster = () => {\r\n setIsActive(true);\r\n GetIndustryMaster().then(d => {\r\n setIsActive(false);\r\n setIndustryMaster(d.data);\r\n setFilterIndustryMaster(d.data);\r\n // let obj = d.data[0];\r\n // obj.Mode = \"View\";\r\n // setIndustryObj(obj);\r\n if (d.data.length > 0) {\r\n if (industryObj.Mode == \"Add\" || industryObj.Mode == \"Edit\") {\r\n let tmp = d.data.find(d => d.IndustrySerNo == industryObj.IndustrySerNo);\r\n tmp.Mode = \"View\";\r\n setIndustryObj(tmp);\r\n }\r\n else {\r\n d.data[0].Mode = \"View\";\r\n setIndustryObj(d.data[0]);\r\n }\r\n }\r\n\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n fillIndustryMaster();\r\n }, []);\r\n\r\n const clearValidation = () => {\r\n setIndustryValidation(validationObj);\r\n }\r\n\r\n const handleOnSearchChange = (s) => {\r\n setSearch(s);\r\n setIndustryObj(defaultIndustry);\r\n let filterData = industryMaster.filter(d => d.IndustryName.toLowerCase().includes(s.toLowerCase()));\r\n setFilterIndustryMaster(filterData);\r\n console.log(\"Filter >>\", filterData);//\r\n }\r\n\r\n const searchEditData = () => {\r\n GetIndustryMaster().then(d => {\r\n let filterEdit = d.data.filter(x => x.IndustryName.toLowerCase().includes(search.toLowerCase()));\r\n setFilterIndustryMaster(filterEdit);\r\n });\r\n }\r\n\r\n const handleOnSelected = (e) => {\r\n clearValidation();\r\n let Obj = industryMaster.find(d => d.IndustrySerNo == e.target.id);\r\n Obj.Mode = \"View\";\r\n setIndustryObj(Obj);\r\n setSelectedIndustrySerNo(e.target.id);\r\n console.log(\"selected >>\", Obj);//\r\n }\r\n\r\n const isValidPage = () => {\r\n let isvalid = true;\r\n if (industryObj.IndustryName == \"\" || industryObj.IndustryName.trim().length == 0) {\r\n isvalid = false;\r\n setIndustryValidation(prev => ({ ...prev, IndustryName: \"Invalid Input\" }));\r\n }\r\n return isvalid;\r\n }\r\n\r\n const handleOnAddClick = () => {\r\n let AddObj = JSON.parse(JSON.stringify(defaultIndustry));\r\n AddObj.Mode = \"Add\"\r\n setIndustryObj(AddObj);\r\n }\r\n const handleOnCancelClick = () => {\r\n clearValidation();\r\n let existingObj = industryMaster.find(x => x.IndustrySerNo == selectedIndustrySerNo);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setIndustryObj(existingObj);\r\n }\r\n else {\r\n setIndustryObj(defaultIndustry);\r\n }\r\n }\r\n\r\n const handleOnEditClick = () => {\r\n if (industryObj.IndustryName == \"\") {\r\n alert(\"Please Select Industry Name\");\r\n }\r\n else {\r\n setIndustryObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n }\r\n\r\n const handleOnSaveClick = () => {\r\n let valid = isValidPage();\r\n if (valid) {\r\n setIsActive(true);\r\n AddEditIndustryMaster(industryObj).then((d) => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n fillIndustryMaster();\r\n if (industryObj.Mode == \"Add\" || industryObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEditData();\r\n }\r\n industryObj.IndustrySerNo = parseInt(d.data.ReturnValue);\r\n setSelectedIndustrySerNo(d.data.ReturnValue);\r\n }\r\n }\r\n else {\r\n alert(\"Something wents Wrong\");\r\n }\r\n });\r\n setIndustryObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alert(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n\r\n return (\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Industry Master

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      Industry Names
      \r\n
      \r\n
        \r\n {\r\n filterIndustryMaster.map(d =>\r\n
      • \r\n {d.IndustryName}\r\n
      • \r\n )\r\n }\r\n
      \r\n
      \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
      \r\n
      \r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n {\r\n setIndustryObj(prev => ({ ...prev, IndustryName: v }));\r\n setIndustryValidation(prev => ({ ...prev, IndustryName: \"\" }));\r\n }}\r\n >Name\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n {\r\n industryObj.Mode == \"View\" ?\r\n <>\r\n console.log(v)} id=\"1\"> Activate\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnSingleDateSelection,\r\n useConfirm,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport { GetEventMaster, AddEditEventMaster } from \"../../../../services/frontMasterService\";\r\nimport { GetDayTypemaster } from \"../../../../services/frontMasterService\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nexport default function EventMaster() {\r\n const daytypedata = [\r\n { key: \"Option 1\", value: \"City Wide conference\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"EventSerNo\": 0,\r\n \"Name\": \"\",\r\n \"Description\": \"\",\r\n \"StartDate\": new Date(),\r\n \"EndDate\": new Date(),\r\n \"DayTypeSerNo\": 0,\r\n \"Mode\": \"View\"\r\n }\r\n\r\n const validationObj = {\r\n \"Name\": \"\",\r\n \"StartDate\": \"\",\r\n \"EndDate\": \"\",\r\n \"DayTypeSerNo\": 0\r\n }\r\n\r\n //#region State variable\r\n const [isActive, setIsActive] = useState(true);\r\n const [eventMasterObj, setEventMasterObj] = useState(defaultObj);\r\n const [eventMasterData, setEventMasterData] = useState([]);\r\n const [eventMasterValidation, SetEventMasterValidation] = useState(validationObj);\r\n const [ddlDayType, setDayType] = useState([]);\r\n const [filterEventMaster, setFilterEventMaster] = useState([]);\r\n const [selectedEventMaster, setSelectedEventMaster] = useState(\"\");\r\n const [search, setSearch] = useState(\"\");\r\n //#endregion\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n fillEventMaster();\r\n loadDayTypeMaster();\r\n }, []);\r\n //#endregion \r\n\r\n //#region load data\r\n const fillEventMaster = () => {\r\n setIsActive(true);\r\n GetEventMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n if (d.data.length > 0 && (eventMasterObj.EventSerNo == 0 || eventMasterObj.EventSerNo == undefined)) {\r\n let obj = d.data[0];\r\n obj.Mode = \"View\";\r\n setEventMasterObj(obj);\r\n setSelectedEventMaster(obj.EventSerNo);\r\n }\r\n setIsActive(false);\r\n setEventMasterData(d.data);\r\n setFilterEventMaster(d.data);\r\n });\r\n }\r\n\r\n const loadDayTypeMaster = () => {\r\n GetDayTypemaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n let DayType = [{ key: 0, value: \"Select Day Type\" }];\r\n d.data.map(ele => {\r\n DayType.push({ key: parseInt(ele.DayTypeSerNo), value: (ele.Name) });\r\n })\r\n setDayType(DayType);\r\n })\r\n }\r\n //#endregion\r\n\r\n const clearValidation = () => {\r\n SetEventMasterValidation(validationObj);\r\n }\r\n\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (eventMasterObj.Name == \"\" || /[-’/`~!#*$@_%+=,^&(){}[\\]|;.:”<>?\\\\]/g.test(eventMasterObj.Name)) {\r\n isValid = false;\r\n SetEventMasterValidation(prev => ({ ...prev, Name: \"Enter the valid name.\" }));\r\n }\r\n if (eventMasterObj.StartDate == \"\") {\r\n isValid = false;\r\n SetEventMasterValidation(prev => ({ ...prev, StartDate: \"Enter the valid from date.\" }));\r\n }\r\n if (eventMasterObj.EndDate == \"\") {\r\n isValid = false;\r\n SetEventMasterValidation(prev => ({ ...prev, EndDate: \"Enter the valid to date.\" }));\r\n }\r\n if (eventMasterObj.DayTypeSerNo == 0 || eventMasterObj.DayTypeSerNo == undefined) {\r\n isValid = false;\r\n SetEventMasterValidation(prev => ({ ...prev, DayTypeSerNo: \"Please Select Day Type.\" }));\r\n }\r\n return isValid;\r\n }\r\n\r\n //#region Fun\r\n const handleOnEventMasterClick = (e) => {\r\n clearValidation();\r\n let obj = eventMasterData.find(x => x.EventSerNo == e.EventSerNo);\r\n obj.Mode = \"View\";\r\n setEventMasterObj(obj);\r\n setSelectedEventMaster(e.EventSerNo);\r\n }\r\n\r\n const HandleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n let obj = eventMasterObj;\r\n AddEditEventMaster(obj).then((d) => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n setIsActive(true);\r\n alertFunction(d.data.Message);\r\n fillEventMaster();\r\n if (eventMasterObj.Mode == \"Add\" || eventMasterObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n handleSearchEdit();\r\n }\r\n obj.EventSerNo = parseInt(d.data.ReturnValue);\r\n obj.Mode = \"View\";\r\n setEventMasterObj(obj);\r\n setSelectedEventMaster(d.data.ReturnValue);\r\n }\r\n } else {\r\n alertFunction(\"Something Went Wrong\");\r\n }\r\n })\r\n setEventMasterObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n\r\n const HandleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setEventMasterObj(obj);\r\n }\r\n\r\n const HandleOnEditClick = () => {\r\n setEventMasterObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n\r\n const HandleOnCancelClick = () => {\r\n clearValidation();\r\n let existingObj = eventMasterData.find(x => x.EventSerNo == selectedEventMaster)\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setEventMasterObj(existingObj);\r\n } else {\r\n setEventMasterObj(defaultObj);\r\n }\r\n }\r\n\r\n const handleOnSearchClick = (d) => {\r\n setSearch(d);\r\n setEventMasterObj(defaultObj);\r\n let searchFilter = eventMasterData.filter(x => x.Name.toLowerCase().includes(d.toLowerCase()));\r\n setFilterEventMaster(searchFilter);\r\n }\r\n\r\n const handleSearchEdit = () => {\r\n GetEventMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n let filterEdit = d.data.filter(x => x.Name.toLowerCase().includes(search.toLowerCase()));\r\n setFilterEventMaster(filterEdit);\r\n });\r\n }\r\n //#endregion\r\n\r\n return (\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Event Master

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      List of Events
      \r\n
      \r\n
        \r\n {\r\n filterEventMaster.map((d) =>\r\n
      • \r\n handleOnEventMasterClick(d)}>{d.Name}\r\n
      • \r\n )\r\n }\r\n
      \r\n
      \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
      \r\n
      \r\n\r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n {\r\n setEventMasterObj(prev => ({ ...prev, Name: v }));\r\n SetEventMasterValidation(prev => ({ ...prev, Name: \"\" }));\r\n }}>Name\r\n {\r\n setEventMasterObj(prev => ({ ...prev, Description: v }))\r\n }}>Description\r\n\r\n
      \r\n {\r\n setEventMasterObj(prev => ({ ...prev, StartDate: e }));\r\n }}\r\n calendarStartDay={1}\r\n label=\"From Date\"\r\n selected={eventMasterObj.StartDate}\r\n >\r\n
      \r\n
      \r\n {\r\n setEventMasterObj(prev => ({ ...prev, EndDate: e }));\r\n }}\r\n calendarStartDay={1}\r\n label=\"To Date\"\r\n selected={eventMasterObj.EndDate}\r\n >\r\n
      \r\n
      \r\n {\r\n setEventMasterObj(prev => ({ ...prev, DayTypeSerNo: parseInt(item.key) }))\r\n }}>\r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n Activate console.log(v)} id=\"1\">\r\n {\r\n eventMasterObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n {/* setShowDepositTermTypeModal(!showDepositTermTypeModal)}>Add Deposit Term Type*/}\r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n )\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport {\r\n GetCountryMaster,\r\n GetStateMaster,\r\n GetCityMaster,\r\n AddEditCityMaster\r\n} from \"../../../../services/generalService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport function CityMaster() {\r\n const curr = useSelector(currentUser);\r\n const defaultCity = {\r\n CountrySerNo: 0,\r\n StateSerNo: 0,\r\n CitySerNo: 0,\r\n Name: \"\",\r\n Mode: \"View\"\r\n }\r\n const cityValidationObj = {\r\n Name: \"\"\r\n }\r\n const [cityObj, setCityObj] = useState(defaultCity);\r\n const [cityMaster, setCityMaster] = useState([]);\r\n const [countryMaster, setCountryMaster] = useState([]);\r\n const [stateMaster, setStateMaster] = useState([]);\r\n const [isActive, setIsActive] = useState(false);\r\n const [cityValidation, setCityValidation] = useState(cityValidationObj);\r\n const [filterCity, setFilterCity] = useState([]);\r\n const [selectedSerNo, setSelectedSerNo] = useState(0);\r\n const [search, setSearch] = useState(\"\");\r\n\r\n const fillCountry = () => {\r\n setIsActive(true);\r\n GetCountryMaster(parseInt(curr.ClientSerNo)).then(d => {\r\n let LoadCountry = [];\r\n d.data.forEach((x) => {\r\n LoadCountry.push({ key: x.CountrySerNo, value: x.Name });\r\n });\r\n LoadCountry.splice(0, 0, { \"key\": 0, \"value\": \"Select\" });\r\n setCountryMaster(LoadCountry);\r\n setIsActive(false);\r\n });\r\n }\r\n\r\n const fillState = () => {\r\n if (parseInt(curr.ClientSerNo) > 0 && cityObj.CountrySerNo > 0) {\r\n setIsActive(true);\r\n GetStateMaster(parseInt(curr.ClientSerNo), cityObj.CountrySerNo).then(d => {\r\n let loadState = [];\r\n d.data.forEach((x) => {\r\n loadState.push({ key: x.StateSerNo, value: x.Name });\r\n });\r\n loadState.splice(0, 0, { \"key\": 0, \"value\": \"Select\" });\r\n setStateMaster(loadState);\r\n setIsActive(false);\r\n });\r\n }\r\n }\r\n\r\n const fillCity = () => {\r\n if (parseInt(curr.ClientSerNo) > 0 && cityObj.CountrySerNo > 0 && cityObj.StateSerNo > 0) {\r\n setIsActive(true);\r\n GetCityMaster(parseInt(curr.ClientSerNo), cityObj.CountrySerNo, cityObj.StateSerNo).then(d => {\r\n setCityMaster(d.data);\r\n setFilterCity(d.data);\r\n console.log(\"filter >>\", d.data);\r\n if (d.data.length > 0) {\r\n if (cityObj.Mode == \"Add\" || cityObj.Mode == \"Edit\") {\r\n let obj = d.data.find(x => x.CitySerNo == cityObj.CitySerNo);\r\n obj.Mode = \"View\";\r\n setCityObj(obj);\r\n }\r\n else {\r\n d.data[0].Mode = \"View\";\r\n setCityObj(d.data[0]);\r\n }\r\n }\r\n setIsActive(false);\r\n });\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n fillCountry();\r\n }, []);\r\n\r\n useEffect(() => {\r\n fillState();\r\n }, [cityObj.CountrySerNo]);\r\n\r\n useEffect(() => {\r\n fillCity();\r\n }, [cityObj.StateSerNo]);\r\n\r\n const clearValidation = () => {\r\n setCityValidation(cityValidationObj);\r\n }\r\n\r\n const handleOnSearch = (c) => {\r\n setSearch(c);\r\n setCityObj(prev => ({ ...prev, CitySerNo: 0, Name: \"\" }));\r\n let filterCity = cityMaster.filter(d => d.Name.toLowerCase().includes(c.toLowerCase()));\r\n setFilterCity(filterCity);\r\n }\r\n\r\n const handleOnSearchEdit = () => {\r\n GetCityMaster(parseInt(curr.ClientSerNo), cityObj.CountrySerNo, cityObj.StateSerNo).then(d => {\r\n let filterCityEdit = d.data.filter(d => d.Name.toLowerCase().includes(search.toLowerCase()));\r\n setFilterCity(filterCityEdit);\r\n });\r\n }\r\n\r\n const handleCityClick = (e) => {\r\n clearValidation();\r\n let obj = cityMaster.find(x => x.CitySerNo == e.target.id);\r\n obj.Mode = \"View\";\r\n setCityObj(obj);\r\n setSelectedSerNo(e.target.id);\r\n }\r\n\r\n const handleOnAddClick = () => {\r\n setCityObj(prev => ({ ...prev, Name: \"\", CitySerNo: 0, Mode: \"Add\" }));\r\n }\r\n\r\n const handleOnEditClick = () => {\r\n if (cityObj.Name == \"\") {\r\n alert(\"Please Select City Name\");\r\n }\r\n else {\r\n setCityObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n }\r\n\r\n const handleOnCancelClick = () => {\r\n //setCityObj(prev => ({ ...prev, Mode: \"View\" }));\r\n clearValidation();\r\n let existingObj = cityMaster.find(x => x.CitySerNo == selectedSerNo);\r\n console.log(\"Cancel >>\", selectedSerNo);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setCityObj(existingObj);\r\n console.log(\"Cancel >>\", existingObj);\r\n }\r\n else {\r\n //setCityObj(defaultCity);\r\n setCityObj(prev => ({ ...prev, Name: \"\", CitySerNo: 0, Mode: \"View\" }));\r\n }\r\n }\r\n\r\n const isValidPage = () => {\r\n let isvalid = true;\r\n if (cityObj.Name == \"\" || cityObj.Name.trim().length == 0) {\r\n isvalid = false;\r\n setCityValidation(prev => ({ ...prev, Name: \"Invalid Input\" }));\r\n }\r\n return isvalid;\r\n }\r\n\r\n const handleOnSaveClick = () => {\r\n let IsValid = isValidPage();\r\n if (IsValid) {\r\n setIsActive(true);\r\n AddEditCityMaster(cityObj).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n fillCity();\r\n if (cityObj.Mode == \"Add\" || cityObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n handleOnSearchEdit();\r\n }\r\n cityObj.CitySerNo = parseInt(d.data.ReturnValue);\r\n }\r\n }\r\n else {\r\n alert(\"Something Went Wrong\");\r\n }\r\n });\r\n setCityObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alert(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n\r\n return (\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      City Master

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n {\r\n setCityObj(prev => ({ ...prev, CountrySerNo: item.key }));\r\n }}\r\n searchable={[\"Search for Country \", \"No matching Country\"]}\r\n disabled={false}\r\n >\r\n
      \r\n
      \r\n
      \r\n
      \r\n {\r\n setCityObj(prev => ({ ...prev, StateSerNo: item.key }));\r\n }}\r\n searchable={[\"Search for State\", \"No matching State\"]}\r\n disabled={false}\r\n >\r\n
      \r\n
      \r\n
      \r\n\r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n List of Cities\r\n
      \r\n
        \r\n {\r\n filterCity.map(d =>\r\n
      • \r\n {d.Name}\r\n
      • \r\n )\r\n }\r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n {\r\n setCityObj(prev => ({ ...prev, Name: v }))\r\n setCityValidation(prev => ({ ...prev, Name: \"\" }))\r\n }}\r\n >Name\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n {\r\n cityObj.Mode == \"View\" ?\r\n <>\r\n Activate console.log(v)} id=\"1\">\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport { GetReservationTypes, GetDepositRuleMaster, AddEditReservationType } from \"../../../../services/reservationService\";\r\nimport { GetCancellationRuleMaster } from \"../../../../services/frontMasterService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport default function ReservationTypeMaster() {\r\n\r\n const curr = useSelector(currentUser);\r\n const defaultReservationType = {\r\n ClientSerNo: parseInt(curr.ClientSerNo),\r\n PropertySerNo: parseInt(curr.PropertySerNo),\r\n ReservationTypeSerNo: 0,\r\n ReservationTypeCode: \"\",\r\n Name: \"\",\r\n IsDeductInventory: false,\r\n Sequence: 0,\r\n IsArrivalTimeMandatory: false,\r\n IsMobileNoMandatory: false,\r\n IsCompanywithAssociatedAR: false,\r\n IsDepositMandatory: false,\r\n IsCreditCardMandatory: false,\r\n IsHoldByGuest: false,\r\n CancellationRuleSerNo: 0,\r\n DepositRuleSerNo: 0,\r\n Mode: \"View\"\r\n }\r\n const ValidTypeObj = {\r\n Name: \"\",\r\n Sequence: 0,\r\n CancellationRuleSerNo: 0,\r\n DepositRuleSerNo: 0\r\n }\r\n const [reservationTypeObj, setReservationTypeObj] = useState(defaultReservationType);\r\n const [reservationTypeMaster, setReservationTypeMaster] = useState([]);\r\n const [filterReservationType, setFilterReservationType] = useState([]);\r\n const [cancellationRule, setCancellationRule] = useState([]);\r\n const [depositRule, setDepositRule] = useState([]);\r\n const [reservationTypeValidation, setReservationTypeValidation] = useState(ValidTypeObj);\r\n const [resTypeSelectedSerNo, setResTypeSelectedSerno] = useState(0);\r\n const [search, setSearch] = useState(\"\");\r\n const [isActive, setIsActive] = useState(false);\r\n\r\n const fillReservationType = () => {\r\n setIsActive(true);\r\n GetReservationTypes(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo)).then(d => {\r\n setReservationTypeMaster(d.data);\r\n setFilterReservationType(d.data);\r\n if (d.data.length > 0) {\r\n if (reservationTypeObj.Mode == \"Add\" || reservationTypeObj.Mode == \"Edit\") {\r\n let tmp = d.data.find(d => d.ReservationTypeSerNo == reservationTypeObj.ReservationTypeSerNo);\r\n tmp.Mode = \"View\";\r\n setReservationTypeObj(tmp);\r\n }\r\n else {\r\n d.data[0].Mode = \"View\";\r\n setReservationTypeObj(d.data[0]);\r\n }\r\n }\r\n setIsActive(false);\r\n });\r\n }\r\n\r\n const fillCancellationRule = () => {\r\n setIsActive(true);\r\n GetCancellationRuleMaster(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo)).then(d => {\r\n let temp = [];\r\n d.data.forEach((x) => {\r\n temp.push({ key: x.CancellationRuleSerNo, value: x.Name });\r\n });\r\n temp.splice(0, 0, { \"key\": 0, \"value\": \"Select\" });\r\n setCancellationRule(temp);\r\n setIsActive(false);\r\n });\r\n }\r\n\r\n const fillDepositRule = () => {\r\n setIsActive(true);\r\n GetDepositRuleMaster(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo)).then(d => {\r\n let temp = [];\r\n d.data.forEach((x) => {\r\n temp.push({ key: x.DepositRuleSerNo, value: x.Name });\r\n });\r\n temp.splice(0, 0, { \"key\": 0, \"value\": \"Select\" });\r\n setDepositRule(temp);\r\n setIsActive(false);\r\n });\r\n }\r\n useEffect(() => {\r\n fillReservationType();\r\n }, []);\r\n\r\n useEffect(() => {\r\n fillCancellationRule();\r\n fillDepositRule();\r\n }, []);\r\n\r\n const handleOnSearch = (s) => {\r\n setSearch(s);\r\n setReservationTypeObj(defaultReservationType);\r\n let filterType = reservationTypeMaster.filter(d => d.Name.toLowerCase().includes(s.toLowerCase()));\r\n setFilterReservationType(filterType);\r\n }\r\n\r\n const searchEditData = () => {\r\n GetReservationTypes(parseInt(curr.ClientSerNo), parseInt(curr.PropertySerNo)).then(d => {\r\n let filterEdit = d.data.filter(x => x.Name.toLowerCase().includes(search.toLowerCase()));\r\n setFilterReservationType(filterEdit);\r\n });\r\n }\r\n const clearValidation = () => {\r\n setReservationTypeValidation(ValidTypeObj);\r\n }\r\n\r\n const handleOnReservationTypeClick = (e) => {\r\n clearValidation();\r\n let objType = reservationTypeMaster.find(d => d.ReservationTypeSerNo == e.target.id);\r\n objType.Mode = \"View\";\r\n setReservationTypeObj(objType);\r\n setResTypeSelectedSerno(e.target.id);\r\n }\r\n\r\n const handleOnAdd = () => {\r\n setReservationTypeObj(prev => ({\r\n ...prev,\r\n ReservationTypeSerNo: 0,\r\n ReservationTypeCode: \"\",\r\n Name: \"\",\r\n IsDeductInventory: false,\r\n Sequence: 0,\r\n IsArrivalTimeMandatory: false,\r\n IsMobileNoMandatory: false,\r\n IsCompanywithAssociatedAR: false,\r\n IsDepositMandatory: false,\r\n IsCreditCardMandatory: false,\r\n IsHoldByGuest: false,\r\n CancellationRuleSerNo: 0,\r\n DepositRuleSerNo: 0,\r\n Mode: \"Add\"\r\n }));\r\n }\r\n\r\n const handleOnEdit = () => {\r\n if (reservationTypeObj.Name == \"\") {\r\n alert(\"Please Select Reservation Type\");\r\n }\r\n else {\r\n setReservationTypeObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n }\r\n\r\n const handleOnCancel = () => {\r\n clearValidation();\r\n let existingObj = reservationTypeMaster.find(x => x.ReservationTypeSerNo == resTypeSelectedSerNo);\r\n console.log(\"Cancel >>\", resTypeSelectedSerNo);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setReservationTypeObj(existingObj);\r\n console.log(\"Cancel >>\", existingObj);\r\n }\r\n else {\r\n setReservationTypeObj(defaultReservationType);\r\n }\r\n }\r\n\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (reservationTypeObj.Name == \"\" || reservationTypeObj.Name.trim().length == 0) {\r\n isValid = false;\r\n setReservationTypeValidation(prev => ({ ...prev, Name: \"Invalid Input\" }));\r\n }\r\n if (reservationTypeObj.Sequence == 0) {\r\n isValid = false;\r\n setReservationTypeValidation(prev => ({ ...prev, Sequence: \"Input Sequence\" }));\r\n }\r\n if (reservationTypeObj.CancellationRuleSerNo == 0) {\r\n isValid = false;\r\n setReservationTypeValidation(prev => ({ ...prev, CancellationRuleSerNo: \"Select CancellationRule\" }));\r\n }\r\n if (reservationTypeObj.DepositRuleSerNo == 0) {\r\n isValid = false;\r\n setReservationTypeValidation(prev => ({ ...prev, DepositRuleSerNo: \"Select DepositRule\" }));\r\n }\r\n return isValid;\r\n }\r\n\r\n const handleOnSave = () => {\r\n let Valid = isValidPage();\r\n if (Valid) {\r\n reservationTypeObj.ClientSerNo = parseInt(curr.ClientSerNo);\r\n reservationTypeObj.PropertySerNo = parseInt(curr.PropertySerNo);\r\n AddEditReservationType(reservationTypeObj).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n fillReservationType();\r\n\r\n if (reservationTypeObj.Mode == \"Add\" || reservationTypeObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEditData();\r\n }\r\n reservationTypeObj.ReservationTypeSerNo = parseInt(d.data.ReturnValue);\r\n setResTypeSelectedSerno(d.data.ReturnValue);\r\n console.log(\"selected >>\", resTypeSelectedSerNo);\r\n console.log(\"selected1 >>\", reservationTypeObj.ReservationTypeSerNo);\r\n }\r\n }\r\n else {\r\n alert(\"Something Wents Wrong.\");\r\n }\r\n });\r\n //setReservationTypeObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alert(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n\r\n return (\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Reservation Type Master

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      Reservation Type
      \r\n
      \r\n
        \r\n {\r\n filterReservationType.map(d =>\r\n
      • \r\n {d.Name}\r\n
      • \r\n )\r\n }\r\n
      \r\n
      \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
      \r\n
      \r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n {\r\n setReservationTypeObj(prev => ({ ...prev, Name: v }));\r\n setReservationTypeValidation(prev => ({ ...prev, Name: \"\" }));\r\n }}\r\n >Reservation Type\r\n setReservationTypeObj(prev => ({ ...prev, ReservationTypeCode: v }))}\r\n >Short Name\r\n {\r\n setReservationTypeObj(prev => ({ ...prev, Sequence: v }));\r\n setReservationTypeValidation(prev => ({ ...prev, Sequence: 0 }));\r\n }}\r\n >Sequence\r\n \r\n
      \r\n {\r\n setReservationTypeObj(prev => ({ ...prev, DepositRuleSerNo: item.key }));\r\n if (item == 0) {\r\n setReservationTypeValidation(prev => ({ ...prev, DepositRuleSerNo: \"Select Deposit Rule\" }));\r\n }\r\n }}\r\n >\r\n
      \r\n
      \r\n {\r\n setReservationTypeObj(prev => ({ ...prev, CancellationRuleSerNo: item.key }));\r\n if (item == 0) {\r\n setReservationTypeValidation(prev => ({ ...prev, CancellationRuleSerNo: \"Select Cancellation Rule\" }));\r\n }\r\n }}\r\n >\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Deduct Inventory\r\n setReservationTypeObj(prev => ({ ...prev, IsDeductInventory: v }))}\r\n >\r\n
      \r\n
      \r\n
      \r\n
      \r\n Hold By Guest\r\n setReservationTypeObj(prev => ({ ...prev, IsHoldByGuest: v }))}\r\n >\r\n
      \r\n
      \r\n
      \r\n
      \r\n Applicable to Block Only\r\n setReservationTypeObj(prev => ({ ...prev, IsCompanywithAssociatedAR: v }))}\r\n >\r\n
      \r\n
      \r\n
      \r\n
      \r\n Advance Depoist Require\r\n setReservationTypeObj(prev => ({ ...prev, IsDepositMandatory: v }))}\r\n >\r\n
      \r\n
      \r\n
      \r\n
      \r\n Arrival time Require\r\n setReservationTypeObj(prev => ({ ...prev, IsArrivalTimeMandatory: v }))}\r\n >\r\n
      \r\n
      \r\n
      \r\n
      \r\n Phone No Require\r\n setReservationTypeObj(prev => ({ ...prev, IsMobileNoMandatory: v }))}\r\n >\r\n
      \r\n
      \r\n
      \r\n
      \r\n Credit Card Details Require\r\n setReservationTypeObj(prev => ({ ...prev, IsCreditCardMandatory: v }))}\r\n >\r\n
      \r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n {\r\n reservationTypeObj.Mode == \"View\" ?\r\n <>\r\n Activate console.log(v)} id=\"1\">\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n} from \"../../../../component\";\r\nimport {\r\n GetDepartmentMaster,\r\n AddEditDepartment\r\n} from \"../../../../services/frontMasterService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\n\r\nexport default function DepartmentMaster() {\r\n //#region StateVariables\r\n const currUser = useSelector(currentUser);\r\n const defaultObj={ClientSerNo:parseInt(currUser.ClientSerNo),PropertySerNo:parseInt(currUser.PropertySerNo),Mode:\"\",Name:\"\",DepartmentSerNo:0}\r\n const [selected,setSelected]=useState(defaultObj);\r\n const [departmentList,setDepartmentList]=useState([]);\r\n const [resultList,setResultList]=useState([])\r\n const [search,setSearch]=useState(\"\");\r\n const [old,setOld]=useState(0);\r\n const [validation,setValidation]=useState({});\r\n \r\n const scrollRef=useRef();\r\n\r\n //#endregion \r\n\r\n \r\n\r\n //#region UseEffect\r\n useEffect(() => {\r\n GetAllData(0);\r\n }, []);\r\n //#endregion\r\n\r\n //#region LocalFunction\r\n\r\n //#endregion\r\n const GetAllData=(x)=>{\r\n GetDepartmentMaster(parseInt(currUser.ClientSerNo),parseInt(currUser.PropertySerNo)).then(resp=>{\r\n if (x == 0) {\r\n if (resp.data.length != 0) {\r\n setSelected(resp.data[0]);\r\n }\r\n }\r\n setDepartmentList(resp.data);\r\n setResultList(resp.data);\r\n })\r\n }\r\n //#region Events\r\n const handleClickAdd=()=>{\r\n handleChangeSearch(\"\")\r\n setOld(selected.DepartmentSerNo)\r\n setSelected((prev)=>({...prev,Name:\"\",DepartmentSerNo:0,Mode:\"Add\"}))\r\n }\r\n const handleClickEdit=()=>{\r\n if(selected.DepartmentSerNo==0){\r\n alert(\"Please select the department first\")\r\n return\r\n }\r\n setSelected((prev)=>({...prev,Mode:\"Edit\"}))\r\n setOld(selected.DepartmentSerNo)\r\n }\r\n const searchEdit = () => {\r\n GetDepartmentMaster(parseInt(currUser.ClientSerNo),parseInt(currUser.PropertySerNo)).then(resp=>{\r\n setDepartmentList(resp.data);\r\n setSelected(defaultObj)\r\n let temp = []\r\n resp.data.forEach(x => {\r\n if (x.Name.toLowerCase().includes(search.toLowerCase())) {\r\n temp.push(x);\r\n }\r\n });\r\n console.log('New List>>', temp);\r\n setResultList(temp);\r\n })\r\n }\r\n\r\n const AddEditAPI=(selected)=>{\r\n AddEditDepartment(selected).then(resp=>{\r\n if(resp.status==200){\r\n alert(\"Successful\");\r\n setValidation((prev)=>({...prev,Name:\"\"}))\r\n setSelected((prev)=>({...prev,DepartmentSerNo:parseInt(resp.data.ReturnValue)}))\r\n if (selected.Mode == \"Add\" || selected.Mode==\"Edit\") {\r\n if (search != \"\") {\r\n searchEdit()\r\n return;\r\n }\r\n setTimeout(() => {\r\n if(scrollRef.current!=null){\r\n scrollRef.current.scrollIntoView({ behaviour: \"smooth\" });\r\n }\r\n }, 100)\r\n }\r\n GetAllData();\r\n } \r\n }\r\n )\r\n }\r\n\r\n const handleClickSave=()=>{\r\n if(selected.Name.trim().length==0)\r\n {\r\n setValidation((prev)=>({...prev,Name:\"Please enter valid name\"}))\r\n return;\r\n }\r\n let flag=0;\r\n if(selected.Mode==\"Add\"){\r\n departmentList.forEach(element => {\r\n if(element.Name==selected.Name.trim()){\r\n setValidation((prev)=>({...prev,Name:\"Please enter new name\"}))\r\n flag=1;\r\n return;\r\n }\r\n });\r\n }\r\n if(flag==1){\r\n return;\r\n }\r\n AddEditAPI(selected)\r\n setSelected((prev)=>({...prev,Mode:\"Save\"}))\r\n }\r\n\r\n const handleClickCancel=()=>{\r\n setValidation((prev)=>({...prev,Name:\"\"}))\r\n if(old==0)\r\n {\r\n setSelected(defaultObj)\r\n }\r\n else{\r\n departmentList.forEach(element => {\r\n if(element.DepartmentSerNo==old ){\r\n setSelected(element);\r\n }\r\n });\r\n }\r\n }\r\n\r\n const handleChangeName=(e)=>{\r\n setSelected((prev)=>({...prev,Name:e}));\r\n }\r\n\r\n const handleChangeSearch=(e)=>{\r\n setSearch(e);\r\n setSelected((prev)=>({...prev,Name:\"\",DepartmentSerNo:0,Mode:\"\"}))\r\n let temp=[] \r\n departmentList.forEach(element => {\r\n if (element.Name.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(element);\r\n }\r\n });\r\n setResultList(temp);\r\n }\r\n const handleClickDepartment=(department)=>{\r\n setValidation((prev)=>({...prev,Name:\"\"}))\r\n setSelected(department)\r\n }\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Department Master

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n {handleChangeSearch(e)}} value={search} OnCancelClick={()=>handleChangeSearch(\"\")}>Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      Department Names
      \r\n
      \r\n
        \r\n { resultList.map((department, index) => {\r\n return (\r\n
      • handleClickDepartment(department)} \r\n ref={(department.DepartmentSerNo == selected.DepartmentSerNo) ? scrollRef : null}\r\n id={department.DepartmentSerNo} \r\n className={(department.DepartmentSerNo == selected.DepartmentSerNo) ? \"active\" : \"\"} \r\n > {department.Name}
      • \r\n )\r\n })\r\n }\r\n
      \r\n
      \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
      \r\n
      \r\n\r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n Name\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n Activate console.log(v)} id=\"1\">\r\n {selected.Mode == \"Edit\" || selected.Mode == \"Add\" ?\r\n <>\r\n Cancel\r\n Save\r\n \r\n :\r\n <> \r\n {/* setShowDepositTermTypeModal(!showDepositTermTypeModal)}>Add Deposit Term Type*/}\r\n Edit\r\n Add\r\n \r\n }\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnSingleDateSelection\r\n} from \"../../../../component\";\r\nimport {\r\n GetNoteTypeMaster,\r\n AddEditNoteTypeMaster\r\n } from \"../../../../services/frontMasterService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport default function NoteTypeMaster() {\r\n const currUser = useSelector(currentUser);\r\n const defaultObj={ClientSerNo:parseInt(currUser.ClientSerNo),PropertySerNo:parseInt(currUser.PropertySerNo),Mode:\"\",Note:\"\",NoteTypeSerNo:0}\r\n const [selected,setSelected]=useState(defaultObj);\r\n const [noteTypeList,setNoteTypeList]=useState([]);\r\n const [resultList,setResultList]=useState([])\r\n const [search,setSearch]=useState(\"\");\r\n const [old,setOld]=useState(0);\r\n const [validation,setValidation]=useState({});\r\n \r\n const scrollRef=useRef();\r\n\r\n //#endregion \r\n\r\n \r\n\r\n //#region UseEffect\r\n useEffect(() => {\r\n GetAllData(0);\r\n }, []);\r\n //#endregion\r\n\r\n //#region LocalFunction\r\n\r\n //#endregion\r\n const GetAllData=(x)=>{\r\n GetNoteTypeMaster().then(resp=>{\r\n if (x == 0) {\r\n if (resp.data.length != 0) {\r\n setSelected(resp.data[0]);\r\n }\r\n }\r\n setNoteTypeList(resp.data);\r\n setResultList(resp.data);\r\n }\r\n )\r\n }\r\n //#region Events\r\n const handleClickAdd=()=>{\r\n setOld(selected.NoteTypeSerNo)\r\n handleChangeSearch(\"\");\r\n setSelected((prev)=>({...prev,Note:\"\",NoteTypeSerNo:0,Mode:\"Add\"}))\r\n }\r\n const handleClickEdit=()=>{\r\n if(selected.NoteTypeSerNo==0){\r\n alert(\"Please select the Note first\")\r\n return\r\n }\r\n setSelected((prev)=>({...prev,Mode:\"Edit\"}))\r\n setOld(selected.NoteTypeSerNo)\r\n\r\n }\r\n const searchEdit = () => {\r\n GetNoteTypeMaster().then(resp=>{\r\n setNoteTypeList(resp.data);\r\n setSelected(defaultObj)\r\n let temp = []\r\n resp.data.forEach(x => {\r\n if (x.Note.toLowerCase().includes(search.toLowerCase())) {\r\n temp.push(x);\r\n }\r\n });\r\n console.log('New List>>', temp);\r\n setResultList(temp);\r\n })\r\n }\r\n\r\n const AddEditAPI=(selected)=>{\r\n AddEditNoteTypeMaster(selected).then(resp=>{\r\n console.log(\"response \",resp)\r\n if(resp.status==200){\r\n alert(\"Successful\");\r\n setValidation((prev)=>({...prev,Note:\"\"}))\r\n setSelected((prev)=>({...prev,NoteTypeSerNo:parseInt(resp.data.ReturnValue)}))\r\n if (selected.Mode == \"Add\" || selected.Mode==\"Edit\") {\r\n if (search != \"\") {\r\n searchEdit()\r\n return;\r\n }\r\n setTimeout(() => {\r\n if(scrollRef.current!=null){\r\n scrollRef.current.scrollIntoView({ behaviour: \"smooth\" });\r\n }\r\n }, 100)\r\n }\r\n GetAllData();\r\n } \r\n }\r\n )\r\n }\r\n\r\n const handleClickSave=()=>{\r\n if(selected.Note.trim().length==0)\r\n {\r\n setValidation((prev)=>({...prev,Note:\"Please enter valid Note\"}))\r\n return;\r\n }\r\n let flag=0;\r\n if(selected.Mode==\"Add\"){\r\n noteTypeList.forEach(element => {\r\n if(element.Note==selected.Note.trim()){\r\n setValidation((prev)=>({...prev,Note:\"Please enter new Note\"}))\r\n flag=1;\r\n return;\r\n }\r\n });\r\n }\r\n if(flag==1){\r\n return;\r\n }\r\n AddEditAPI(selected)\r\n setSelected((prev)=>({...prev,Mode:\"Save\"}))\r\n }\r\n\r\n const handleClickCancel=()=>{\r\n setValidation((prev)=>({...prev,Note:\"\"}))\r\n if(old==0){\r\n setSelected(defaultObj)\r\n }\r\n else{ \r\n noteTypeList.forEach(element => {\r\n if(element.NoteTypeSerNo==old ){\r\n setSelected(element);\r\n }\r\n });\r\n } \r\n }\r\n\r\n const handleChangeNote=(e)=>{\r\n setValidation((prev)=>({...prev,Note:\"\"}))\r\n setSelected((prev)=>({...prev,Note:e}));\r\n }\r\n\r\n const handleChangeSearch=(e)=>{\r\n setSearch(e);\r\n setSelected((prev)=>({...prev,Note:\"\",NoteTypeSerNo:0}))\r\n let temp=[] \r\n noteTypeList.forEach(element => {\r\n if (element.Note.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(element);\r\n }\r\n });\r\n setResultList(temp);\r\n }\r\n const handleClickNoteType=(noteType)=>{\r\n setValidation((prev)=>({...prev,Note:\"\"}))\r\n setSelected(noteType)\r\n }\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Note Type Master

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n {handleChangeSearch(e)}} value={search} OnCancelClick={()=>handleChangeSearch(\"\")}>Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      Note Type Names
      \r\n
      \r\n
        \r\n { resultList.map((noteType, index) => {\r\n return (\r\n
      • handleClickNoteType(noteType)} \r\n ref={(noteType.NoteTypeSerNo == selected.NoteTypeSerNo) ? scrollRef : null}\r\n className={(noteType.NoteTypeSerNo == selected.NoteTypeSerNo) ? \"active\" : \"\"} \r\n > {noteType.Note}
      • \r\n )\r\n })\r\n }\r\n
      \r\n
      \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
      \r\n
      \r\n\r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n Name\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n Activate console.log(v)} id=\"1\">\r\n {/* setShowDepositTermTypeModal(!showDepositTermTypeModal)}>Add Deposit Term Type*/}\r\n {selected.Mode == \"Edit\" || selected.Mode == \"Add\" ?\r\n <>\r\n Cancel\r\n Save\r\n \r\n :\r\n <> \r\n Edit\r\n Add\r\n \r\n }\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n} from \"../../../../component\";\r\nimport { GetTransportationProviderMaster,AddEditTransportationProviderMaster } from \"../../../../services/frontMasterService\";\r\nimport { GetCoutryMaster,GetStateMaster,GetCityMaster } from \"../../../../services/reservationService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport default function TransportationProviderMaster() {\r\n //#region StateVariables\r\n const currUser = useSelector(currentUser);\r\n\r\n const selectdata = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n const validationObj = {\r\n Name: \"\",\r\n Street: \"\",\r\n PostCode: 0,\r\n CountrySerNo: 0,\r\n StateSerNo: 0,\r\n CitySerNo: 0,\r\n Mobile: 0,\r\n Email: \"\",\r\n ContactName: \"\"\r\n }\r\n const defaultObj={\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n TransportationProviderSerNo: 0,\r\n Name: \"\",\r\n Street: \"\",\r\n PostCode: 0,\r\n CountrySerNo: 0,\r\n StateSerNo: 0,\r\n CitySerNo: 0,\r\n Mobile: 0,\r\n Email: \"\",\r\n ContactName: \"\",\r\n Label: \"\",\r\n Mode: \"\"\r\n }\r\n const [selected,setSelected]=useState(defaultObj);\r\n const [transportProviderList,setTransportProviderList]=useState([]);\r\n const [resultList,setResultList]=useState([])\r\n const [search,setSearch]=useState(\"\");\r\n const [old,setOld]=useState(0);\r\n const [validation,setValidation]=useState(validationObj);\r\n const [countryList, setCountryList] = useState([]);\r\n const [stateList, setStateList] = useState([]);\r\n const [cityList, setCityList] = useState([]);\r\n \r\n const scrollRef=useRef();\r\n const [showDepositTermTypeModal, setShowDepositTermTypeModal] = useState();\r\n \r\n //#endregion \r\n \r\n //#region UseEffect\r\n useEffect(() => {\r\n GetAllData(0);\r\n getCoutryMasterList(parseInt(currUser.ClientSerNo));\r\n }, []);\r\n useEffect(() => {\r\n if(selected.CountrySerNo!=0){\r\n getStateMasterList(parseInt(currUser.ClientSerNo),selected.CountrySerNo);\r\n }\r\n else{\r\n setStateList([{key: 0, value: \"Select\" }]);\r\n // setCityList([{key: 0, value: \"Select\" }]);\r\n setSelected((prev)=>({...prev,StateSerNo:0}));\r\n }\r\n }, [selected.CountrySerNo]);\r\n useEffect(() => {\r\n if(selected.StateSerNo!=0){\r\n getCityMasterList(parseInt(currUser.ClientSerNo),selected.CountrySerNo,selected.StateSerNo);\r\n }\r\n else{\r\n setCityList([{key: 0, value: \"Select\" }]);\r\n setSelected((prev)=>({...prev,CitySerNo:0})); \r\n }\r\n }, [selected.StateSerNo]);\r\n //#endregion\r\n //#region HandleChange\r\n const handleChangeName=(e)=>{\r\n setValidation((prev) => ({ ...prev, Name: \"\" }))\r\n setSelected((prev)=>({...prev,Name:e}));\r\n }\r\n \r\n const handleChangeLable=(e)=>{\r\n setSelected((prev)=>({...prev,Label:e}));\r\n }\r\n\r\n const handleChangeContactPerson=(e)=>{\r\n setValidation((prev) => ({ ...prev, ContactName: \"\" }))\r\n setSelected((prev)=>({...prev,ContactName:e}));\r\n }\r\n const handleChangeMobile=(e)=>{\r\n setValidation((prev) => ({ ...prev, Mobile: \"\" }));\r\n setSelected((prev)=>({...prev,Mobile:e}));\r\n }\r\n const handleChangeEmail=(e)=>{\r\n setValidation((prev) => ({ ...prev, Email: \"\" }));\r\n setSelected((prev)=>({...prev,Email:e}));\r\n }\r\n const handleChangeStreet=(e)=>{ \r\n setValidation((prev) => ({ ...prev, Street: \"\" }));\r\n setSelected((prev)=>({...prev,Street:e}));\r\n }\r\n const handleChangeCountry=(e)=>{\r\n setSelected((prev)=>({...prev,CountrySerNo:e.key}));\r\n setValidation((prev) => ({ ...prev, CountrySerNo: \"\" }));\r\n }\r\n const handleChangeState=(e)=>{\r\n setSelected((prev)=>({...prev,StateSerNo:e.key}));\r\n setValidation((prev) => ({ ...prev, StateSerNo: \"\" }));\r\n }\r\n\r\n const handleChangeCity=(e)=>{\r\n setValidation((prev) => ({ ...prev, CitySerNo: \"\" }));\r\n setSelected((prev)=>({...prev,CitySerNo:e.key}));\r\n }\r\n const handleChangePinCode=(e)=>{\r\n setValidation((prev) => ({ ...prev, PostCode: \"\" }));\r\n setSelected((prev)=>({...prev,PostCode:e}));\r\n }\r\n //#endregion\r\n //#region Get country,state,city list \r\n const getCoutryMasterList = (ClientSerNo) => {\r\n GetCoutryMaster(ClientSerNo)\r\n .then((d) => {\r\n let countryData = [{key: 0, value: \"Select\" }];\r\n d.data.map((element) => {\r\n countryData.push({ key: element.CountrySerNo, value: element.Name });\r\n });\r\n setCountryList(countryData);\r\n })\r\n .catch((error) => {\r\n setCountryList([]);\r\n });\r\n };\r\n const getStateMasterList = (ClientSerNo, CountrySerNo) => {\r\n GetStateMaster(ClientSerNo, CountrySerNo)\r\n .then((d) => {\r\n let stateData = [{key: 0, value: \"Select\" }];\r\n d.data.map((element) => {\r\n stateData.push({ key: element.StateSerNo, value: element.Name });\r\n });\r\n setStateList(stateData);\r\n })\r\n .catch((error) => {\r\n setStateList([]);\r\n });\r\n };\r\n\r\n\r\n\r\n const getCityMasterList = (ClientSerNo,CountrySerNo, StateSerNo) => {\r\n GetCityMaster(ClientSerNo,CountrySerNo, StateSerNo)\r\n .then((d) => {\r\n let cityData = [{key: 0, value: \"Select\" }];\r\n d.data.map((element) => {\r\n cityData.push({ key: element.CitySerNo, value: element.Name });\r\n });\r\n setCityList(cityData);\r\n })\r\n .catch((error) => {\r\n setCityList([]);\r\n });\r\n };\r\n \r\n //#endregion\r\n\r\n const GetAllData=(x)=>{\r\n GetTransportationProviderMaster(parseInt(currUser.ClientSerNo),parseInt(currUser.PropertySerNo)).then(resp=>{\r\n if (x == 0) {\r\n if (resp.data.length != 0) {\r\n setSelected(resp.data[0]);\r\n }\r\n }\r\n setTransportProviderList(resp.data);\r\n setResultList(resp.data);\r\n }\r\n )\r\n }\r\n //#region Events\r\n const handleClickAdd=()=>{\r\n handleChangeSearch(\"\");\r\n setOld(selected.TransportationProviderSerNo)\r\n let temp =defaultObj;\r\n temp.Mode=\"Add\"\r\n setSelected(temp);\r\n setStateList([{key: 0, value: \"Select\" }]);\r\n setCityList([{key: 0, value: \"Select\" }]);\r\n }\r\n const handleClickEdit=()=>{\r\n if(selected.TransportationProviderSerNo==0){\r\n alert(\"Please select the TransportProvider name first\")\r\n return\r\n }\r\n setSelected((prev)=>({...prev,Mode:\"Edit\"}))\r\n setOld(selected.TransportationProviderSerNo)\r\n \r\n }\r\n const searchEdit = () => {\r\n GetTransportationProviderMaster(parseInt(currUser.ClientSerNo),parseInt(currUser.PropertySerNo)).then(resp=>{\r\n setTransportProviderList(resp.data);\r\n setSelected(defaultObj)\r\n let temp = []\r\n resp.data.forEach(x => {\r\n if (x.Name.toLowerCase().includes(search.toLowerCase())) {\r\n temp.push(x);\r\n }\r\n });\r\n console.log('New List>>', temp);\r\n setResultList(temp);\r\n })\r\n }\r\n \r\n const AddEditAPI=(selected)=>{\r\n AddEditTransportationProviderMaster(selected).then(resp=>{\r\n if(resp.status==200){\r\n alert(\"Successful\");\r\n setValidation(validationObj)\r\n setSelected((prev)=>({...prev,TransportationProviderSerNo:parseInt(resp.data.ReturnValue)}))\r\n if (selected.Mode == \"Add\" || selected.Mode==\"Edit\") {\r\n if (search != \"\") {\r\n searchEdit()\r\n return;\r\n }\r\n setTimeout(() => {\r\n if(scrollRef.current!=null){\r\n scrollRef.current.scrollIntoView({ behaviour: \"smooth\" });\r\n }\r\n }, 100)\r\n }\r\n GetAllData();\r\n } \r\n }\r\n )\r\n }\r\n\r\n const IsvalidPage = () => {\r\n let isValid = true;\r\n if (selected.Name.trim().length == 0) {\r\n isValid = false;\r\n setValidation((prev) => ({ ...prev, Name: \"Please Enter Correct Name\" }))\r\n }\r\n if (selected.ContactName.trim().length == 0) {\r\n isValid = false;\r\n setValidation((prev) => ({ ...prev, ContactName: \"Please Enter Correct Contact Name\" }))\r\n }\r\n if (selected.CountrySerNo == 0) {\r\n isValid = false;\r\n setValidation((prev) => ({ ...prev, CountrySerNo: \"Please select valid Country\" }));\r\n }\r\n if (selected.StateSerNo == 0) {\r\n isValid = false;\r\n setValidation((prev) => ({ ...prev, StateSerNo: \"Please select valid state\" }));\r\n }\r\n if (selected.CitySerNo == 0) {\r\n isValid = false;\r\n setValidation((prev) => ({ ...prev, CitySerNo: \"Please select valid city\" }));\r\n }\r\n if (/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/.test(selected.Email)==false) {\r\n isValid = false;\r\n setValidation((prev) => ({ ...prev, Email: \"Please select valid email address\" }));\r\n }\r\n if (/^\\(?(\\d{3})\\)?[- ]?(\\d{3})[- ]?(\\d{4})$/.test(selected.Mobile)==false) {\r\n isValid = false;\r\n setValidation((prev) => ({ ...prev, Mobile: \"Please enter valid Mobile number\" }));\r\n }\r\n if (/^\\d{6}$/.test(selected.PostCode)==false) {\r\n isValid = false;\r\n setValidation((prev) => ({ ...prev, PostCode: \"Please enter valid postalcode\" }));\r\n }\r\n return isValid;\r\n }\r\n \r\n const handleClickSave=()=>{\r\n let Isvalid=IsvalidPage();\r\n console.log(\"hi this is the object\",selected);\r\n if(Isvalid){\r\n selected.Mobile=parseInt(selected.Mobile);\r\n selected.PostCode=parseInt(selected.PostCode);\r\n AddEditAPI(selected)\r\n }\r\n else{\r\n return;\r\n } \r\n setSelected((prev)=>({...prev,Mode:\"Save\"}))\r\n }\r\n \r\n const handleClickCancel=()=>{\r\n setValidation(validationObj)\r\n if(old==0){\r\n setSelected(defaultObj)\r\n }\r\n else{ \r\n transportProviderList.forEach(element => {\r\n if(element.TransportationProviderSerNo==old ){\r\n setSelected(element);\r\n }\r\n });\r\n } \r\n }\r\n const handleChangeSearch=(e)=>{\r\n setSearch(e);\r\n setValidation(validationObj)\r\n setSelected(defaultObj)\r\n let temp=[] \r\n transportProviderList.forEach(element => {\r\n if (element.Name.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(element);\r\n }\r\n });\r\n setResultList(temp);\r\n }\r\n const handleClickTransportProvider=(transportProvider)=>{\r\n setValidation(validationObj)\r\n console.log(\"list click\",transportProvider);\r\n setSelected(transportProvider)\r\n getStateMasterList(parseInt(currUser.ClientSerNo),transportProvider.CountrySerNo);\r\n getCityMasterList(parseInt(currUser.ClientSerNo),transportProvider.CountrySerNo,transportProvider.StateSerNo);\r\n }\r\n //#endregion\r\n \r\n \r\n return (\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Transportation(Travel Company)

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n {handleChangeSearch(e)}} value={search} OnCancelClick={()=>handleChangeSearch(\"\")}>Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      Transportation (Travel Company Names)
      \r\n
      \r\n { resultList.map((transportProvider, index) => {\r\n return (\r\n
        \r\n
      • handleClickTransportProvider(transportProvider)} \r\n ref={(transportProvider.TransportationProviderSerNo == selected.TransportationProviderSerNo) ? scrollRef : null}\r\n id={transportProvider.TransportationProviderSerNo} \r\n className={(transportProvider.TransportationProviderSerNo == selected.TransportationProviderSerNo) ? \"active\" : \"\"} \r\n > {transportProvider.Name}
      • \r\n
      \r\n )\r\n })\r\n }\r\n
      \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
      \r\n
      \r\n\r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n handleChangeName(v)}>Name\r\n handleChangeLable(v)}>Label\r\n handleChangeContactPerson(v)}>Contact Person Name\r\n handleChangeMobile(v)}>Mobile No. \r\n handleChangeEmail(v)}>E-mail Address \r\n
      \r\n {handleChangeStreet(e)}}\r\n customError={validation.Street}\r\n disabled={selected.Mode==\"Add\" || selected.Mode==\"Edit\"?false:true} \r\n value={selected.Street}\r\n >\r\n Address\r\n \r\n
      \r\n
      \r\n {handleChangeCountry(e)}}\r\n >\r\n
      \r\n
      \r\n {handleChangeState(e)}}\r\n searchable={[\"Search for State\", \"No matching State\"]}\r\n label=\"State\"\r\n customError={validation.StateSerNo}\r\n selectedSerNo={selected.StateSerNo}\r\n >\r\n
      \r\n
      \r\n {handleChangeCity(e)}}\r\n customError={validation.CitySerNo}\r\n disabled={selected.Mode==\"Add\" || selected.Mode==\"Edit\"?false:true} \r\n searchable={[\"Search for City\", \"No matching City\"]}\r\n label=\"City\"\r\n selectedSerNo={selected.CitySerNo}\r\n >\r\n
      \r\n
      \r\n handleChangePinCode(v)}\r\n >\r\n Pincode\r\n \r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n\r\n Activate console.log(v)} id=\"1\">\r\n {/* setShowDepositTermTypeModal(!showDepositTermTypeModal)}>Add Deposit Term Type*/}\r\n {selected.Mode == \"Edit\" || selected.Mode == \"Add\" ?\r\n <>\r\n Cancel\r\n Save\r\n \r\n :\r\n <>\r\n Edit\r\n Add\r\n \r\n }\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n {showDepositTermTypeModal ? (\r\n setShowDepositTermTypeModal(!showDepositTermTypeModal)}>\r\n
      \r\n
      \r\n
      \r\n

      Deposit Term Type

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      Deposit Term Types
      \r\n
      \r\n
        \r\n
      • 25% of booking value to be deposited 15Days before arrival
      • \r\n
      • 25% of booking value to be deposited on arrival
      • \r\n\r\n
      \r\n
      \r\n {/* Add Deposit Term */}\r\n\r\n
      \r\n\r\n
      \r\n\r\n\r\n console.log(v)}>Deposit Term Description\r\n
      \r\n { }}\r\n >\r\n
      \r\n console.log(v)}>Deposit Term Value \r\n
      \r\n { }}\r\n >\r\n
      \r\n console.log(v)}>Days\r\n
      \r\n Add Deposit Term
      \r\n Cancel\r\n setShowDepositTermTypeModal(!showDepositTermTypeModal)}>Save\r\n
      \r\n\r\n\r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n ) : null}\r\n
      \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnTableGrid,\r\n InnSingleDateSelection,\r\n} from \"../../../../component\";\r\nimport moment from \"moment\";\r\nimport {\r\n GetPackageList, AddEditPackageMasterList, cmbGetPackagePostingRhythm,\r\n cmbGetPackagePostingType, GetTransactionMaster, GetPropertyParameterByKeys,\r\n GetPackageRateDetail, AddEditPackageRateDetail,\r\n GetPackageYear\r\n} from \"../../../../services/reservationService\";\r\nimport { GetCalculationRuleList } from \"../../../../services/generalService\";\r\nimport { GetPackageTypeMaster } from \"../../../../services/frontMasterService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { element } from \"prop-types\";\r\nimport ReactToPrint from \"react-to-print\";\r\n\r\nexport default function PackageMaster() {\r\n\r\n const [years, setYears] = useState([]);\r\n const month = [\r\n { key: \"1\", value: \"January\" },\r\n { key: \"2\", value: \"February\" },\r\n { key: \"3\", value: \"March\" },\r\n { key: \"4\", value: \"April\" },\r\n { key: \"5\", value: \"May\" },\r\n { key: \"6\", value: \"June\" },\r\n { key: \"7\", value: \"July\" },\r\n { key: \"8\", value: \"August\" },\r\n { key: \"9\", value: \"September\" },\r\n { key: \"10\", value: \"October\" },\r\n { key: \"11\", value: \"November\" },\r\n { key: \"12\", value: \"December\" },\r\n ];\r\n\r\n const [showPackageModal, setShowPackageModal] = useState();\r\n const roomTypeHeader = [\r\n { key: \"Year\", value: \"Year\", type: \"txt\", sorting: \"Y\", },\r\n { key: \"Date\", value: \"Date\", type: \"txt\", sorting: \"Y\", },\r\n { key: \"Package Price\", value: \"PackagePrice\", type: \"txt\", sorting: \"N\", align: \"right\" },\r\n ];\r\n\r\n // const [showPackageModal, setShowPackageModal] = useState();\r\n const [buisnessDate, setBuisnessDate] = useState(\"\");\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = { ClientSerNo: parseInt(currUser.ClientSerNo), PropertySerNo: parseInt(currUser.PropertySerNo), Mode: \"\", Name: \"\", PackageSerNo: 0, PackageCode: \"\", PackageType: \"SEL\", TransactionSerNo: \"SEL\", CalculationRuleSerNo: \"SEL\", MinPerson: 0, MaxPerson: 0, IsSellSeparately: false, IsTaxInclusive: false, IsUpSellable: false, StartDate: buisnessDate, EndDate: buisnessDate, PostingTypeSerNo: \"0\", PostingRhythmSerNo: \"SEL\" }\r\n const [selected, setSelected] = useState(defaultObj);\r\n const [packageList, setPackageList] = useState([]);\r\n const [resultList, setResultList] = useState([])\r\n const [search, setSearch] = useState(\"\");\r\n const [old, setOld] = useState(0);\r\n const validationObj = { Name: \"\", PackageSerNo: \"\", PackageCode: \"\", PackageType: \"\", TransactionSerNo: \"\", CalculationRuleSerNo: \"\", IsSellSeparately: \"\", IsTaxInclusive: \"\", IsUpSellable: \"\", StartDate: \"\", EndDate: \"\", PostingTypeSerNo: \"\", PostingRhythmSerNo: \"\" }\r\n const [validation, setValidation] = useState(validationObj);\r\n const [postingTypeList, setPostingTypeList] = useState([]);\r\n const [packageTypeList, setPackageTypeList] = useState([]);\r\n const [calculationTypeList, setCalculationTypeList] = useState([]);\r\n const [postingRhythmList, setPostingRhythmList] = useState([]);\r\n const [transactionCodeList, setTransactionCodeList] = useState([]);\r\n const scrollRef = useRef();\r\n const [rateDetailList, setRateDetailList] = useState([])\r\n const [convertedList, setConvertedList] = useState([])\r\n const [priceScheduleObj, setPriceScheduleObj] = useState({ Year: \"\", Month: \"\", minDate: \"\", maxDate: \"\" })\r\n const [packageRateObj, setPackageRateObj] = useState({ ClientSerNo: parseInt(currUser.ClientSerNo), PropertySerNo: parseInt(currUser.PropertySerNo), PackageSerNo: 0, PackagePrice: 0, FromDate: \"\", ToDate: \"\" })\r\n //#endregion \r\n\r\n\r\n\r\n //#region UseEffect\r\n useEffect(() => {\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), [\"BusinessDate\"]).then(resp => {\r\n console.log(\"b\", resp.data);\r\n if (resp.data.length != 0) {\r\n setBuisnessDate(resp.data[0].value)\r\n }\r\n })\r\n GetAllComboData();\r\n GetAllData(0);\r\n }, []);\r\n //#endregion\r\n\r\n //#region LocalFunction\r\n\r\n //#endregion\r\n const GetYearList = (packageType) => {\r\n GetPackageYear(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), packageType.PackageSerNo).then(resp => {\r\n let temp = [];\r\n resp.data.forEach(element => {\r\n temp.push({ key: element.Year, value: element.Year })\r\n });\r\n setPriceScheduleObj((prev) => ({ ...prev, minDate: resp.data[0].minDate, maxDate: resp.data[resp.data.length - 1].maxDate }))\r\n setPackageRateObj((prev) => ({ ...prev, FromDate: resp.data[0].minDate, ToDate: resp.data[resp.data.length - 1].maxDate }))\r\n setYears(temp);\r\n })\r\n }\r\n const GetAllComboData = () => {\r\n GetCalculationRuleList().then(resp => {\r\n let temp = [{ key: \"SEL\", value: \"Select\" }]\r\n resp.data.forEach(element => {\r\n temp.push({ key: element.CalculationRuleSerNo, value: element.Name })\r\n })\r\n setCalculationTypeList(temp);\r\n })\r\n cmbGetPackagePostingType().then(resp => {\r\n // let temp = [{ key: \"SEL\", value: \"Select\" }]\r\n let temp = [{key: resp.data.key, value: resp.data.value}]\r\n resp.data.forEach(element => {\r\n temp.push({key: element.key, value: element.value});\r\n })\r\n setPostingTypeList(temp);\r\n })\r\n\r\n cmbGetPackagePostingRhythm().then(resp => {\r\n console.log(\"rhytham \", resp.data)\r\n let temp = [{ key: \"SEL\", value: \"Select\" }]\r\n resp.data.forEach(element => {\r\n temp.push({ key: element.PostingRhythmSerNo, value: element.Name })\r\n })\r\n setPostingRhythmList(temp);\r\n })\r\n\r\n\r\n GetTransactionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"C\", \"F\").then(resp => {\r\n console.log(\"trasn\", resp.data)\r\n let temp = [{ key: \"SEL\", value: \"Select\" }]\r\n resp.data.forEach(element => {\r\n if (element.Module == \"F\" || element.Module == \"G\") {\r\n temp.push({ key: element.TransactionSerNo, value: element.Name })\r\n }\r\n })\r\n setTransactionCodeList(temp);\r\n })\r\n GetPackageTypeMaster(parseInt(currUser.ClientSerNo)).then(resp => {\r\n let temp = [{ key: \"SEL\", value: \"Select\" }]\r\n resp.data.forEach(element => {\r\n temp.push({ key: element.PackageType, value: element.Name })\r\n })\r\n setPackageTypeList(temp);\r\n })\r\n }\r\n const GetAllData = (x) => {\r\n GetPackageList(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n if (x == 0) {\r\n if (resp.data.length != 0) {\r\n setSelected(resp.data[0]);\r\n setPackageRateObj((prev) => ({ ...prev, PackageSerNo: resp.data[0].PackageSerNo }))\r\n GetYearList(resp.data[0])\r\n }\r\n }\r\n setPackageList(resp.data);\r\n setResultList(resp.data);\r\n })\r\n }\r\n //#region Events\r\n const handleClickAdd = () => {\r\n setOld(selected.PackageSerNo)\r\n handleChangeSearch(\"\");\r\n setSelected((prev) => ({ ...prev, Name: \"\", PackageSerNo: 0, Mode: \"Add\" }))\r\n }\r\n const handleClickEdit = () => {\r\n if (selected.PackageSerNo == 0) {\r\n alert(\"Please select the Package first\")\r\n return\r\n }\r\n setSelected((prev) => ({ ...prev, Mode: \"Edit\" }))\r\n setOld(selected.PackageSerNo)\r\n\r\n }\r\n const searchEdit = () => {\r\n GetPackageList(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n setPackageList(resp.data);\r\n setSelected(defaultObj)\r\n let temp = []\r\n resp.data.forEach(x => {\r\n if (x.Name.toLowerCase().includes(search.toLowerCase())) {\r\n temp.push(x);\r\n }\r\n });\r\n console.log('New List>>', temp);\r\n setResultList(temp);\r\n })\r\n }\r\n\r\n const AddEditAPI = (selected) => {\r\n selected.PostingTypeSerNo = selected.PostingTypeSerNo.toString();\r\n selected.PostingRhythmSerNo = selected.PostingRhythmSerNo.toString();\r\n selected.MaxPerson = parseInt(selected.MaxPerson);\r\n selected.MinPerson = parseInt(selected.MinPerson);\r\n AddEditPackageMasterList(selected).then(resp => {\r\n console.log(\"response \", resp)\r\n if (resp.status == 200) {\r\n alert(\"Successful\");\r\n setValidation(validationObj)\r\n setSelected((prev) => ({ ...prev, PackageSerNo: parseInt(resp.data.ReturnValue) }))\r\n if (selected.Mode == \"Add\" || selected.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit()\r\n return;\r\n }\r\n setTimeout(() => {\r\n if (scrollRef.current != null) {\r\n scrollRef.current.scrollIntoView({ behaviour: \"smooth\" });\r\n }\r\n }, 100)\r\n }\r\n GetAllData();\r\n }\r\n }\r\n )\r\n }\r\n\r\n const isValid = () => {\r\n let validity = true;\r\n if (selected.Name.trim().length == 0) {\r\n validity = false;\r\n setValidation((prev) => ({ ...prev, Name: \"Please enter correct name\" }))\r\n }\r\n if (selected.PackageCode.trim().length == 0) {\r\n validity = false;\r\n setValidation((prev) => ({ ...prev, PackageCode: \"Please enter correct short name\" }))\r\n }\r\n if (selected.PackageType == \"SEL\") {\r\n validity = false;\r\n setValidation((prev) => ({ ...prev, PackageType: \"Please select the package type\" }))\r\n }\r\n if (selected.PostingTypeSerNo == \"0\") {\r\n validity = false;\r\n setValidation((prev) => ({ ...prev, PostingTypeSerNo: \"Please select the posting type\" }))\r\n }\r\n if (selected.CalculationRuleSerNo == \"SEL\") {\r\n validity = false;\r\n setValidation((prev) => ({ ...prev, CalculationRuleSerNo: \"Please select the calculation rule\" }))\r\n }\r\n if (selected.PostingRhythmSerNo == \"SEL\") {\r\n validity = false;\r\n setValidation((prev) => ({ ...prev, PostingRhythmSerNo: \"Please select the rhytham type.\" }))\r\n }\r\n if (selected.TransactionSerNo == \"SEL\") {\r\n validity = false;\r\n setValidation((prev) => ({ ...prev, TransactionSerNo: \"Please select the transaction type.\" }))\r\n }\r\n if (isNaN(selected.MinPerson)) {\r\n validity = false;\r\n setValidation((prev) => ({ ...prev, MinPerson: \"Please enter number.\" }))\r\n }\r\n if (isNaN(selected.MaxPerson)) {\r\n validity = false;\r\n setValidation((prev) => ({ ...prev, MaxPerson: \"Please enter number.\" }))\r\n }\r\n if (selected.MinPerson > selected.MaxPerson) {\r\n validity = false;\r\n setValidation((prev) => ({ ...prev, MinPerson: \"Please enter the correct min person and maxperson.\" }))\r\n }\r\n let sd = new Date(selected.StartDate)\r\n let ed = new Date(selected.EndDate)\r\n if (sd > ed) {\r\n validity = false;\r\n alert(\"Start date should be less than end date\")\r\n }\r\n return validity;\r\n }\r\n const handleClickSave = () => {\r\n let isValidpage = isValid();\r\n console.log(isValidpage)\r\n if (isValidpage) {\r\n AddEditAPI(selected)\r\n setSelected((prev) => ({ ...prev, Mode: \"Save\" }))\r\n }\r\n }\r\n\r\n const handleClickCancel = () => {\r\n setValidation(validationObj)\r\n if (old == 0) {\r\n setSelected(defaultObj)\r\n }\r\n else {\r\n packageList.forEach(element => {\r\n if (element.PackageSerNo == old) {\r\n setSelected(element);\r\n }\r\n });\r\n }\r\n }\r\n\r\n const handleChangeName = (e) => {\r\n setValidation((prev) => ({ ...prev, Name: \"\" }))\r\n setSelected((prev) => ({ ...prev, Name: e }));\r\n }\r\n const handleChangeShortName = (e) => {\r\n setValidation((prev) => ({ ...prev, PackageCode: \"\" }))\r\n setSelected((prev) => ({ ...prev, PackageCode: e }));\r\n }\r\n const handleChangeStartDate = (e) => {\r\n setValidation((prev) => ({ ...prev, StartDate: \"\" }))\r\n setSelected((prev) => ({ ...prev, StartDate: e }));\r\n }\r\n const handleChangeEndDate = (e) => {\r\n setValidation((prev) => ({ ...prev, EndDate: \"\" }))\r\n setSelected((prev) => ({ ...prev, EndDate: e }))\r\n }\r\n const handleChangeMinPerson = (e) => {\r\n setValidation((prev) => ({ ...prev, MinPerson: \"\" }))\r\n setSelected((prev) => ({ ...prev, MinPerson: e }));\r\n }\r\n const handleChangeMaxPerson = (e) => {\r\n setValidation((prev) => ({ ...prev, MaxPerson: \"\" }))\r\n setSelected((prev) => ({ ...prev, MaxPerson: e }));\r\n }\r\n const handleChangePostingType = (e) => {\r\n console.log(\"posting type\", e)\r\n setValidation((prev) => ({ ...prev, PostingTypeSerNo: \"\" }))\r\n setSelected((prev) => ({ ...prev, PostingTypeSerNo: e.key }));\r\n }\r\n const handleChangeCalculationRule = (e) => {\r\n setValidation((prev) => ({ ...prev, CalculationRuleSerNo: \"\" }))\r\n setSelected((prev) => ({ ...prev, CalculationRuleSerNo: e.key }));\r\n }\r\n\r\n const handleChangeTransactionCode = (e) => {\r\n setValidation((prev) => ({ ...prev, TransactionSerNo: \"\" }))\r\n setSelected((prev) => ({ ...prev, TransactionSerNo: e.key }));\r\n }\r\n const handleChangePackageType = (e) => {\r\n setValidation((prev) => ({ ...prev, PackageType: \"\" }))\r\n setSelected((prev) => ({ ...prev, PackageType: e.key }));\r\n }\r\n\r\n const handleChangeRhythamType = (e) => {\r\n setValidation((prev) => ({ ...prev, PostingRhythmSerNo: \"\" }))\r\n setSelected((prev) => ({ ...prev, PostingRhythmSerNo: e.key }));\r\n }\r\n\r\n const handleChangeUpSellable = (e) => {\r\n setSelected((prev) => ({ ...prev, IsUpSellable: e }));\r\n }\r\n const handleChangeForecastNextDay = (e) => {\r\n setSelected((prev) => ({ ...prev, ForecastNextDay: e }));\r\n }\r\n\r\n\r\n const handleChangeTaxInclusive = (e) => {\r\n console.log(e);\r\n setSelected((prev) => ({ ...prev, IsTaxInclusive: e }));\r\n }\r\n const handleChangeSellSaperate = (e) => {\r\n setSelected((prev) => ({ ...prev, IsSellSeparately: e }));\r\n }\r\n const handleChangeSearch = (e) => {\r\n setSearch(e);\r\n setSelected(defaultObj)\r\n let temp = []\r\n packageList.forEach(element => {\r\n if (element.Name.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(element);\r\n }\r\n });\r\n setResultList(temp);\r\n }\r\n\r\n const handleClickPackageType = (packagetype) => {\r\n setValidation(validationObj)\r\n setSelected(packagetype)\r\n setConvertedList([])\r\n setRateDetailList([]);\r\n GetYearList(packagetype)\r\n setPopupValidation((prev) => ({ ...prev, PackagePrice: \"\" }))\r\n setPriceScheduleObj((prev) => ({ ...prev, Year: \"\", Month: \"\" }))\r\n setPackageRateObj((prev) => ({ ...prev, PackageSerNo: packagetype.PackageSerNo, FromDate: moment(new Date()).format(\"DD-MMM-YYYY\") }))\r\n }\r\n\r\n //#region popupfunctions \r\n const handleChangeFromDate = (e) => {\r\n console.log(\"hi this is e\", e)\r\n // if(new Date(moment(priceScheduleObj.minDate).format(\"DD-MMM-YYYY\")).getTime() >\r\n // new Date(moment(e).format(\"DD-MMM-YYYY\")).getTime())\r\n // {\r\n // alert(\"Invalid Date\")\r\n // }\r\n setPackageRateObj((prev) => ({ ...prev, FromDate: e }))\r\n }\r\n const handleChangeToDate = (e) => {\r\n // if(new Date(moment(priceScheduleObj.maxDate).format(\"DD-MMM-YYYY\")).getTime() < \r\n // new Date(moment(e).format(\"DD-MMM-YYYY\")).getTime())\r\n // {\r\n // alert(\"Invalid Date\")\r\n // }\r\n // else{\r\n // }\r\n setPackageRateObj((prev) => ({ ...prev, ToDate: e }))\r\n }\r\n const handleChangePrice = (e) => {\r\n setPopupValidation((prev) => ({ ...prev, PackagePrice: \"\" }))\r\n setPackageRateObj((prev) => ({ ...prev, PackagePrice: e }))\r\n }\r\n\r\n const GetPopupList = () => {\r\n if (parseInt(priceScheduleObj.Year) && parseInt(priceScheduleObj.Month)) {\r\n GetPackageRateDetail(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), parseInt(packageRateObj.PackageSerNo), parseInt(priceScheduleObj.Year), parseInt(priceScheduleObj.Month)).then(resp1 => {\r\n console.log(\"date list\", resp1.data)\r\n if (resp1.data.length != 0) {\r\n console.log(\"Is this correct?\", resp1.data[0].Date, resp1.data[resp1.data.length - 1].Date);\r\n // setPackageRateObj((prev)=>({...prev,FromDate:resp1.data[0].Date,ToDate:resp1.data[resp1.data.length-1].Date}))\r\n // setStartDate(resp1.data[0].Date)\r\n // setEndDate(resp1.data[resp1.data.length-1].Date)\r\n }\r\n let temp = []\r\n resp1.data.forEach(element => {\r\n temp.push({ Year: moment(new Date(element.Date)).format(\"YYYY\"), Date: moment(new Date(element.Date)).format(\"ddd, Do MMM\"), PackagePrice: parseFloat(element.PackagePrice) })\r\n })\r\n setConvertedList(temp)\r\n setRateDetailList(resp1.data);\r\n })\r\n }\r\n }\r\n useEffect(() => {\r\n GetPopupList();\r\n }, [priceScheduleObj])\r\n\r\n const handleChangeYear = (e) => {\r\n setPriceScheduleObj((prev) => ({ ...prev, Year: e.key }))\r\n }\r\n const handleChangeMonth = (e) => {\r\n setPriceScheduleObj((prev) => ({ ...prev, Month: e.key }))\r\n }\r\n\r\n const [popupValidation, setPopupValidation] = useState({ PackagePrice: \"\" });\r\n const validPopUp = () => {\r\n let validity = true;\r\n if (new Date(packageRateObj.FromDate).getTime() < new Date(priceScheduleObj.minDate).getTime() || new Date(packageRateObj.FromDate).getTime() > new Date(priceScheduleObj.maxDate).getTime()) {\r\n validity = false;\r\n alert(\"Please select a valid from date\")\r\n }\r\n if (new Date(packageRateObj.ToDate).getTime() > new Date(priceScheduleObj.maxDate).getTime() || new Date(packageRateObj.ToDate).getTime() < new Date(priceScheduleObj.minDate).getTime()) {\r\n validity = false;\r\n alert(\"Please select a valid To date\")\r\n }\r\n if (new Date(packageRateObj.FromDate).getTime() > new Date(packageRateObj.ToDate).getTime()) {\r\n validity = false;\r\n alert(\"Please select a valid date\")\r\n }\r\n if (packageRateObj.PackagePrice == \"\" || packageRateObj.PackagePrice == 0 || packageRateObj.PackagePrice == null) {\r\n validity = false;\r\n setPopupValidation((prev) => ({ ...prev, PackagePrice: \"Please enter a valid package price\" }));\r\n }\r\n return validity;\r\n }\r\n\r\n const handleClickSavePopup = () => {\r\n const isValid = validPopUp()\r\n console.log(packageRateObj);\r\n console.log(priceScheduleObj);\r\n packageRateObj.PackagePrice = parseInt(packageRateObj.PackagePrice)\r\n if (isValid) {\r\n AddEditPackageRateDetail(packageRateObj).then(resp => {\r\n alert(\"Succesful\")\r\n if (parseInt(priceScheduleObj.Year) && parseInt(priceScheduleObj.Month)) {\r\n GetPackageRateDetail(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), packageRateObj.PackageSerNo, parseInt(priceScheduleObj.Year), parseInt(priceScheduleObj.Month)).then(resp1 => {\r\n if (resp1.data.length != 0) {\r\n // setPackageRateObj((prev)=>({...prev,FromDate:resp1.data[0].Date,ToDate:resp1.data[resp1.data.length-1].Date}))\r\n // setStartDate(resp1.data[0].Date)\r\n // setEndDate(resp1.data[resp1.data.length-1].Date)\r\n }\r\n let temp = []\r\n resp1.data.forEach(element => {\r\n temp.push({ Year: moment(new Date(element.Date)).format(\"YYYY\"), Date: moment(new Date(element.Date)).format(\"ddd, Do MMM\"), PackagePrice: element.PackagePrice })\r\n })\r\n setConvertedList(temp)\r\n setRateDetailList(resp.data);\r\n })\r\n }\r\n })\r\n\r\n }\r\n }\r\n //#endregion\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Package Master

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n { handleChangeSearch(e) }} value={search} OnCancelClick={() => handleChangeSearch(\"\")}>Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      Package List
      \r\n
      \r\n
        \r\n {resultList.map((packagetype, index) => {\r\n return (\r\n handleClickPackageType(packagetype)}\r\n ref={(packagetype.PackageSerNo == selected.PackageSerNo) ? scrollRef : null}\r\n className={(packagetype.PackageSerNo == selected.PackageSerNo) ? \"active\" : \"\"}\r\n > {packagetype.Name} \r\n )\r\n })\r\n }\r\n
      \r\n
      \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
      \r\n
      \r\n\r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n Name\r\n Short Name\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n { handleChangeEndDate(e) }}\r\n >\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n Sell Separate\r\n \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n Minimum person \r\n
      \r\n
      \r\n Maximum person\r\n
      \r\n
      \r\n
      \r\n Up Sellable\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n Forecast Next Day\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n Tax Inclusive\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      setShowPackageModal(!showPackageModal)}>Price Schedule
      \r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n {selected.Mode == \"Edit\" || selected.Mode == \"Add\" ?\r\n <>\r\n Cancel\r\n Save\r\n \r\n :\r\n <>\r\n Edit\r\n Add\r\n \r\n }\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n {showPackageModal ? (\r\n {\r\n setShowPackageModal(!showPackageModal)\r\n setPackageRateObj((prev) => ({ ...prev, FromDate: \"\", ToDate: \"\", PackagePrice: \"\" }))\r\n }}>\r\n
      \r\n
      \r\n
      \r\n

      Price Schedule

      \r\n
      \r\n
      \r\n { handleClickSavePopup(e) }}>Save\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n { handleChangeFromDate(e) }}\r\n calendarStartDay={1}\r\n selected={packageRateObj.FromDate}\r\n dateFormat=\"E dd MMM,yyyy\"\r\n //onChange={(v) => setRoomTypeObj(prev => ({ ...prev, StartDate: v }))}\r\n >\r\n { handleChangeToDate(e) }}\r\n disabled={false}\r\n calendarStartDay={1}\r\n selected={packageRateObj.ToDate}\r\n dateFormat=\"E dd MMM,yyyy\"\r\n //onChange={(v) => setRoomTypeObj(prev => ({ ...prev, EndDate: v }))}\r\n >\r\n { handleChangePrice(e) }}>Price for 1 Adult\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n { handleChangeYear(e) }}\r\n name=\"Single Select\"\r\n label=\"Year\"\r\n >\r\n
      \r\n
      \r\n
      \r\n
      \r\n { handleChangeMonth(e) }}\r\n list={month}\r\n name=\"Single Select\"\r\n label=\"Month\"\r\n\r\n >\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n {\r\n console.log(items)\r\n // setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n }}\r\n pagination={false}\r\n fixedHeaderNo={0}\r\n uniqueColumn=\"srno\"\r\n optClick={(v, d) => {\r\n console.log(v, d);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}\r\n >\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n ) : null\r\n }\r\n
      \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n} from \"../../../../component\";\r\nimport { GetAlertMaster, AddEditAlertMaster } from \"../../../../services/reservationService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nexport default function AlertMaster() {\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = { ClientSerNo: parseInt(currUser.ClientSerNo), PropertySerNo: parseInt(currUser.PropertySerNo), Mode: \"\", Name: \"\", Description: \"\", AlertSerNo: 0 }\r\n const [selected, setSelected] = useState(defaultObj);\r\n const [alertList, setAlertList] = useState([]);\r\n const [resultList, setResultList] = useState([])\r\n const [search, setSearch] = useState(\"\");\r\n const [old, setOld] = useState(0);\r\n const [validation, setValidation] = useState({});\r\n\r\n const scrollRef = useRef();\r\n\r\n //#endregion \r\n\r\n\r\n\r\n //#region UseEffect\r\n useEffect(() => {\r\n GetAllData(0);\r\n }, []);\r\n //#endregion\r\n\r\n const GetAllData = (x) => {\r\n GetAlertMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n if (x == 0) {\r\n if (resp.data.length != 0) {\r\n setSelected(resp.data[0]);\r\n }\r\n }\r\n setAlertList(resp.data);\r\n setResultList(resp.data);\r\n })\r\n }\r\n //#region Events\r\n const handleClickAdd = () => {\r\n setOld(selected.AlertSerNo)\r\n handleChangeSearch(\"\");\r\n setSelected((prev) => ({ ...prev, Name: \"\", Description: \"\", AlertSerNo: 0, Mode: \"Add\" }))\r\n }\r\n const handleClickEdit = () => {\r\n if (selected.AlertSerNo == 0) {\r\n alert(\"Please select the Alert first\")\r\n return\r\n }\r\n setSelected((prev) => ({ ...prev, Mode: \"Edit\" }))\r\n setOld(selected.AlertSerNo)\r\n }\r\n const searchEdit = () => {\r\n GetAlertMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n setAlertList(resp.data);\r\n setSelected(defaultObj)\r\n let temp = []\r\n resp.data.forEach(x => {\r\n if (x.Name.toLowerCase().includes(search.toLowerCase())) {\r\n temp.push(x);\r\n }\r\n });\r\n setResultList(temp);\r\n })\r\n }\r\n\r\n const AddEditAPI = (selected) => {\r\n AddEditAlertMaster(selected).then(resp => {\r\n if (resp.status == 200) {\r\n alert(\"Successful\");\r\n setValidation((prev) => ({ ...prev, Name: \"\", Description: \"\" }))\r\n setSelected((prev) => ({ ...prev, AlertSerNo: parseInt(resp.data.ReturnValue) }))\r\n if (selected.Mode == \"Add\" || selected.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit()\r\n return;\r\n }\r\n setTimeout(() => {\r\n if(scrollRef.current!=null){\r\n scrollRef.current.scrollIntoView({ behaviour: \"smooth\" });\r\n }\r\n }, 100)\r\n }\r\n GetAllData();\r\n }\r\n }\r\n )\r\n }\r\n const isValidpage = () => {\r\n let isValid = true;\r\n if (selected.Name.trim().length == 0) {\r\n setValidation((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n isValid = false;\r\n }\r\n if (selected.Description.trim().length == 0) {\r\n setValidation((prev) => ({ ...prev, Description: \"Please enter valid description\" }))\r\n isValid = false;\r\n }\r\n return isValid\r\n }\r\n\r\n const handleClickSave = () => {\r\n let isValid = isValidpage();\r\n if (isValid) {\r\n let temp = selected;\r\n temp.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n temp.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n AddEditAPI(temp);\r\n setSelected((prev) => ({ ...prev, Mode: \"Save\" }))\r\n }\r\n\r\n }\r\n\r\n const handleClickCancel = () => {\r\n setValidation((prev) => ({ ...prev, Name: \"\", Description: \"\" }))\r\n if (old == 0) {\r\n setSelected(defaultObj)\r\n }\r\n else {\r\n alertList.forEach(element => {\r\n if (element.AlertSerNo == old) {\r\n setSelected(element);\r\n }\r\n });\r\n }\r\n }\r\n\r\n const handleChangeName = (e) => {\r\n setValidation((prev) => ({ ...prev, Name: \"\" }))\r\n setSelected((prev) => ({ ...prev, Name: e }));\r\n }\r\n const handleChangeDescription = (e) => {\r\n setValidation((prev) => ({ ...prev, Description: \"\" }))\r\n setSelected((prev) => ({ ...prev, Description: e }));\r\n }\r\n\r\n\r\n const handleChangeSearch = (e) => {\r\n setSearch(e);\r\n setValidation((prev) => ({ ...prev, Name: \"\", Description: \"\" }))\r\n setSelected((prev) => ({ ...prev, Name: \"\", Description: \"\", AlertSerNo: 0,Mode:\"\" }))\r\n let temp = []\r\n alertList.forEach(element => {\r\n if (element.Name.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(element);\r\n }\r\n });\r\n setResultList(temp);\r\n }\r\n const handleClickAlertType = (alert) => {\r\n setValidation((prev) => ({ ...prev, Name: \"\", Description: \"\" }))\r\n setSelected(alert)\r\n }\r\n\r\n\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Alert Master

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n { handleChangeSearch(e) }} value={search} OnCancelClick={() => handleChangeSearch(\"\")}>Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      Alert Type
      \r\n
      \r\n
        \r\n {resultList.map((alert, index) => {\r\n return (\r\n handleClickAlertType(alert)}\r\n ref={(alert.AlertSerNo == selected.AlertSerNo) ? scrollRef : null}\r\n className={(alert.AlertSerNo == selected.AlertSerNo) ? \"active\" : \"\"}\r\n > {alert.Name} \r\n )\r\n })\r\n }\r\n
      \r\n
      \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
      \r\n
      \r\n\r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n Name\r\n Full Description\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n\r\n {selected.Mode == \"Edit\" || selected.Mode == \"Add\" ?\r\n <>\r\n Cancel\r\n Save\r\n \r\n :\r\n <>\r\n Edit\r\n Add\r\n \r\n }\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport { GetAreaofAlertCombo } from \"../../../../services/reservationService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { AddEditFunctionalAreaMaster } from \"../../../../services/generalService\";\r\n\r\nexport default function FunctionalAreaMaster() {\r\n const curr = useSelector(currentUser);\r\n const defaultArea = {\r\n FunctionalAreaSerNo: 0,\r\n Name: \"\",\r\n Mode: \"View\"\r\n }\r\n const validFunArea = {\r\n Name: \"\"\r\n }\r\n const [functionalAreaObj, setFunctionalAreaObj] = useState(defaultArea);\r\n const [functionalAreaMaster, setFunctionalAreaMaster] = useState([]);\r\n const [filterFunctionalArea, setFilterFunctionalArea] = useState([]);\r\n const [funAreaValidation, setFunAreaValidation] = useState(validFunArea);\r\n const [funAreaSelectedSerNo, setFunAreaSelectedSerNo] = useState(0);\r\n const [search, setSearch] = useState(\"\");\r\n const [isActive, setIsActive] = useState(false);\r\n\r\n const fillFunctionalArea = () => {\r\n setIsActive(true);\r\n GetAreaofAlertCombo(parseInt(curr.ClientSerNo)).then(d => {\r\n setFunctionalAreaMaster(d.data);\r\n setFilterFunctionalArea(d.data);\r\n if (functionalAreaObj.Mode == \"Add\" || functionalAreaObj.Mode == \"Edit\") {\r\n let obj = d.data.find(x => x.FunctionalAreaSerNo == functionalAreaObj.FunctionalAreaSerNo);\r\n obj.Mode = \"View\";\r\n setFunctionalAreaObj(obj);\r\n }\r\n else {\r\n d.data[0].Mode = \"View\";\r\n setFunctionalAreaObj(d.data[0]);\r\n }\r\n setIsActive(false);\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n fillFunctionalArea();\r\n }, []);\r\n\r\n const clearValidation = () => {\r\n setFunAreaValidation(validFunArea);\r\n }\r\n\r\n const handleOnSearch = (s) => {\r\n setSearch(s);\r\n setFunctionalAreaObj(defaultArea);\r\n let filterArea = functionalAreaMaster.filter(d => d.Name.toLowerCase().includes(s.toLowerCase()));\r\n setFilterFunctionalArea(filterArea);\r\n }\r\n\r\n const handleOnSearchEdit = () => {\r\n GetAreaofAlertCombo(parseInt(curr.ClientSerNo)).then(d => {\r\n let filterAreaEdit = d.data.filter(x => x.Name.toLowerCase().includes(search.toLowerCase()));\r\n setFilterFunctionalArea(filterAreaEdit);\r\n console.log(\"Edit >>\", filterAreaEdit);\r\n });\r\n }\r\n\r\n const handleOnFunAreaClick = (e) => {\r\n clearValidation();\r\n let obj = functionalAreaMaster.find(d => d.FunctionalAreaSerNo == e.target.id);\r\n obj.Mode = \"View\";\r\n setFunctionalAreaObj(obj);\r\n setFunAreaSelectedSerNo(e.target.id);\r\n }\r\n\r\n const handleOnAdd = () => {\r\n setFunAreaSelectedSerNo(functionalAreaObj.FunctionalAreaSerNo);\r\n handleOnSearch(\"\");\r\n setFunctionalAreaObj(prev => ({ ...prev, FunctionalAreaSerNo: 0, Name: \"\", Mode: \"Add\" }));\r\n }\r\n\r\n const handleOnEdit = () => {\r\n if (functionalAreaObj.Name == \"\" || functionalAreaObj.Name.trim().length == 0) {\r\n alert(\"Please Select Functional Area Type\");\r\n }\r\n else {\r\n setFunctionalAreaObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n setFunAreaSelectedSerNo(functionalAreaObj.FunctionalAreaSerNo);\r\n }\r\n }\r\n\r\n const handleOnCancel = () => {\r\n // setFunctionalAreaObj(prev => ({ ...prev, Mode: \"View\" }));\r\n clearValidation();\r\n let existingObj = functionalAreaMaster.find(x => x.FunctionalAreaSerNo == funAreaSelectedSerNo);\r\n console.log(\"Cancel >>\", funAreaSelectedSerNo);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setFunctionalAreaObj(existingObj);\r\n console.log(\"Cancel >>\", existingObj);\r\n }\r\n else {\r\n setFunctionalAreaObj(defaultArea);\r\n }\r\n }\r\n\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (functionalAreaObj.Name == \"\" || functionalAreaObj.Name.trim().length == 0) {\r\n isValid = false;\r\n setFunAreaValidation(prev => ({ ...prev, Name: \"Input Name\" }));\r\n }\r\n return isValid;\r\n }\r\n\r\n const handleOnSave = () => {\r\n let valid = isValidPage();\r\n if (valid) {\r\n AddEditFunctionalAreaMaster(functionalAreaObj).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alert(d.data.Message);\r\n fillFunctionalArea();\r\n if (functionalAreaObj.Mode == \"Add\" || functionalAreaObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n handleOnSearchEdit();\r\n }\r\n functionalAreaObj.FunctionalAreaSerNo = parseInt(d.data.ReturnValue);\r\n setFunAreaSelectedSerNo(d.data.ReturnValue);\r\n }\r\n }\r\n else {\r\n alert(\"Something Wents Wrong\");\r\n }\r\n });\r\n setFunctionalAreaObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alert(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n\r\n return (\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Functional Area Master

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      Functional Area Type
      \r\n
      \r\n
        \r\n {\r\n filterFunctionalArea.map(d =>\r\n
      • \r\n {d.Name}\r\n
      • \r\n )\r\n }\r\n
      \r\n
      \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
      \r\n
      \r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n {\r\n setFunctionalAreaObj(prev => ({ ...prev, Name: v }))\r\n setFunAreaValidation(prev => ({ ...prev, Name: \"\" }));\r\n }}\r\n >Functional Area Name\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n {\r\n functionalAreaObj.Mode == \"View\" ?\r\n <>\r\n Activate console.log(v)} id=\"1\">\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnMultiSelectDropdown\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport {GetHktypecombo, GetHKStatusMaster, AddEditHKStatusMaster } from \"../../../../services/housekeepingServiceMaster\";\r\n\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\n\r\nexport function HKStatusMaster(props) {\r\n const selectdata = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = { ClientSerNo: parseInt(currUser.ClientSerNo), PropertySerNo: parseInt(currUser.PropertySerNo), HKStatusSerNo: 0, HKStatusCode: \"\", Name: \"\", IsManageInventory: false, IsOutOfOrder: false, HKStatusType: \"SEL\" }\r\n const [selected, setSelected] = useState(defaultObj);\r\n const [hkStatusList, setHkStatusList] = useState([]);\r\n const [resultList, setResultList] = useState([])\r\n const [search, setSearch] = useState(\"\");\r\n const [old, setOld] = useState(0);\r\n const [validation, setValidation] = useState({});\r\n const [hkcomboList,setHkComboList]=useState([])\r\n const scrollRef = useRef();\r\n\r\n //#endregion \r\n\r\n\r\n\r\n //#region UseEffect\r\n useEffect(() => {\r\n GetAllData(0);\r\n GetHktypecombo().then(resp=>{\r\n console.log(\"combo data\",resp.data)\r\n let temp=[{key:\"SEL\",value:\"Select\"}]\r\n resp.data.forEach(element => {\r\n let x={key:element.HKStatusType,value:element.Name}\r\n temp.push(x);\r\n });\r\n console.log(\"temp\",temp)\r\n setHkComboList(temp);\r\n })\r\n }, []);\r\n //#endregion\r\n\r\n const GetAllData = (x) => {\r\n GetHKStatusMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n if (x == 0) {\r\n if (resp.data.length != 0) {\r\n setSelected(resp.data[0]);\r\n }\r\n }\r\n setHkStatusList(resp.data);\r\n setResultList(resp.data);\r\n }\r\n )\r\n }\r\n //#region Events\r\n const handleClickAdd = () => {\r\n setOld(selected.HKStatusSerNo)\r\n handleChangeSearch(\"\");\r\n setSelected((prev) => ({ ...prev, Name: \"\", HKStatusCode: \"\", HKStatusSerNo: 0, Mode: \"Add\" }))\r\n }\r\n const handleClickEdit = () => {\r\n if (selected.HKStatusSerNo == 0) {\r\n alert(\"Please select the Hk status first\")\r\n return\r\n }\r\n setSelected((prev) => ({ ...prev, Mode: \"Edit\" }))\r\n setOld(selected.HKStatusSerNo)\r\n }\r\n const searchEdit = () => {\r\n GetHKStatusMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n setHkStatusList(resp.data);\r\n setSelected(defaultObj)\r\n let temp = []\r\n resp.data.forEach(x => {\r\n if (x.Name.toLowerCase().includes(search.toLowerCase())) {\r\n temp.push(x);\r\n }\r\n });\r\n setResultList(temp);\r\n })\r\n }\r\n\r\n const AddEditAPI = (selected) => {\r\n console.log(\"SELECTED\",selected)\r\n AddEditHKStatusMaster(selected).then(resp => {\r\n if (resp.status == 200) {\r\n alert(resp.data.Message);\r\n setValidation((prev) => ({ ...prev, Name: \"\", HKStatusCode: \"\" }))\r\n setSelected((prev) => ({ ...prev, HKStatusSerNo: parseInt(resp.data.ReturnValue) }))\r\n if (selected.Mode == \"Add\" || selected.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit()\r\n return;\r\n }\r\n \r\n setTimeout(() => {\r\n if(scrollRef.current!=null){\r\n scrollRef.current.scrollIntoView({ behaviour: \"smooth\" });\r\n }\r\n }, 100)\r\n }\r\n GetAllData();\r\n }\r\n }\r\n )\r\n }\r\n const isValidpage = () => {\r\n let isValid = true;\r\n if (selected.Name.trim().length == 0 || (/[^A-Za-z0-9 ]/).test(selected.Name)) {\r\n setValidation((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n isValid = false;\r\n }\r\n console.log(\">>>\",selected.HKStatusCode.trim().split(\" \"));\r\n if (selected.HKStatusCode.trim().length == 0 ||(/[^A-Za-z0-9]/).test(selected.HKStatusCode.trim()) ||selected.HKStatusCode.trim().split(\" \").length>1){\r\n setValidation((prev) => ({ ...prev, HKStatusCode: \"Please enter valid HKStatusCode\" }))\r\n isValid = false;\r\n }\r\n if(selected.HKStatusType==\"SEL\"){\r\n setValidation((prev) => ({ ...prev, HKStatusType: \"Please Select valid HKStatusType\" }))\r\n isValid=false;\r\n }\r\n return isValid\r\n }\r\n\r\n const handleClickSave = () => {\r\n let isValid = isValidpage();\r\n if (isValid) {\r\n let temp = selected;\r\n temp.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n temp.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n AddEditAPI(temp);\r\n setSelected((prev) => ({ ...prev, Mode: \"Save\" }))\r\n }\r\n\r\n }\r\n\r\n const handleClickCancel = () => {\r\n setValidation((prev) => ({ ...prev, Name: \"\", HKStatusCode: \"\", HKStatusType: \"\"}))\r\n if (old == 0) {\r\n setSelected(defaultObj)\r\n }\r\n else {\r\n hkStatusList.forEach(element => {\r\n if (element.HKStatusSerNo == old) {\r\n setSelected(element);\r\n }\r\n });\r\n }\r\n }\r\n\r\n const handleChangeName = (e) => {\r\n setValidation((prev) => ({ ...prev, Name: \"\" }))\r\n setSelected((prev) => ({ ...prev, Name: e }));\r\n }\r\n const handleChangeCode = (e) => {\r\n setValidation((prev) => ({ ...prev, HKStatusCode: \"\" }))\r\n setSelected((prev) => ({ ...prev, HKStatusCode: e }));\r\n }\r\n const handleChangeManageInventory=(e)=>{\r\n setSelected((prev) => ({ ...prev, IsManageInventory: e }));\r\n }\r\n const handleChangeOutOfOrder=(e)=>{\r\n setSelected((prev) => ({ ...prev, IsOutOfOrder: e }));\r\n }\r\n const handleChangeHKstatustype=(e)=>{\r\n setSelected((prev) => ({ ...prev, HKStatusType: e.key }));\r\n\r\n }\r\n const handleChangeSearch = (e) => {\r\n setSearch(e);\r\n setValidation((prev) => ({ ...prev, Name: \"\", HKStatusCode: \"\",HKStatusType:\"\" }))\r\n setSelected(defaultObj)\r\n let temp = []\r\n hkStatusList.forEach(element => {\r\n if (element.Name.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(element);\r\n }\r\n });\r\n setResultList(temp);\r\n }\r\n const handleClickHkType = (hkStatus) => {\r\n console.log(hkStatus)\r\n setValidation((prev)=>({...prev, Name: \"\", HKStatusCode: \"\", HKStatusType: \"\"}))\r\n let flag=0;\r\n hkcomboList.forEach(e=>{\r\n if(e.key==hkStatus.HKStatusType){\r\n flag=1;\r\n }\r\n })\r\n if(flag==1){\r\n setSelected(hkStatus)\r\n }\r\n else{\r\n hkStatus.HKStatusType=\"SEL\"\r\n setSelected(hkStatus)\r\n }\r\n }\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      HK Status Master

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n { handleChangeSearch(e) }} value={search} OnCancelClick={() => handleChangeSearch(\"\")}>Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      HK Status
      \r\n
      \r\n
        \r\n {resultList.map((hkStatus, index) => {\r\n return (\r\n
      • handleClickHkType(hkStatus)}\r\n ref={(hkStatus.HKStatusSerNo == selected.HKStatusSerNo) ? scrollRef : null}\r\n className={(hkStatus.HKStatusSerNo == selected.HKStatusSerNo) ? \"active\" : \"\"}\r\n > {hkStatus.Name}
      • \r\n )\r\n })\r\n }\r\n
      \r\n
      \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
      \r\n
      \r\n\r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n HK Status Code\r\n Name\r\n
      \r\n { }}\r\n >\r\n
      \r\n\r\n
      \r\n
      \r\n { handleChangeManageInventory(ischecked) }} checked={selected.IsManageInventory} disabled={selected.Mode == \"Add\" || selected.Mode == \"Edit\" ? false : true}>Deduct Inventory\r\n { handleChangeOutOfOrder(ischecked) }} checked={selected.IsOutOfOrder} disabled={selected.Mode == \"Add\" || selected.Mode == \"Edit\" ? false : true}>Is Out Of Order\r\n
      \r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n\r\n {selected.Mode == \"Edit\" || selected.Mode == \"Add\" ?\r\n <>\r\n Cancel\r\n Save\r\n \r\n :\r\n <>\r\n Edit\r\n Add\r\n \r\n }\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n );\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnLoader,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetTransportationTypeMaster, AddEditTransportationTypeMaster } from \"../../../../services/frontMasterService\";\r\n\r\nexport default function TransportationTypeMaster(props) {\r\n\r\n //#region Local Variables\r\n const currUser = useSelector(currentUser);\r\n const {confirm} = useConfirm();\r\n const alertFunction = async (Message) =>{\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{value: \"y\", title: \"Ok\", type: \"\"}],\r\n });\r\n }\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n TransportationTypeSerNo: 0,\r\n Name: \"\",\r\n ShortName: \"\",\r\n Price: \"\",\r\n IsTaxinclusive: false,\r\n MaxAdult: 0,\r\n IsPickUp: false,\r\n IsDropOff: false,\r\n SeqNo: 0,\r\n Mode: \"View\"\r\n }\r\n const validation = {\r\n Name: \"\",\r\n ShortName: \"\",\r\n Price: \"\",\r\n IsTaxInclusive: false,\r\n MaxAdult: 0,\r\n IsPickUp: false,\r\n IsDropOff: false,\r\n SeqNo: 0,\r\n }\r\n //#endregion\r\n //#region State Variables\r\n const [transTypeObj, setTransTypeObj] = useState(defaultObj);\r\n const [transTypeList, setTransTypeList] = useState([]);\r\n const [transTypeFilter, setTransTypeFilter] = useState([]);\r\n const [transValidation, setTransValidation] = useState(validation);\r\n const [search, setSearch] = useState(\"\");\r\n const [selectedSerNo, setSelectedSerNo] = useState(0);\r\n const [isActive, setIsActive] = useState(false);\r\n //#endregion\r\n //#region Custom Function\r\n const fillTransportationType = () => {\r\n setIsActive(true);\r\n GetTransportationTypeMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n setIsActive(false);\r\n setTransTypeList(d.data);\r\n setTransTypeFilter(d.data);\r\n if (d.data.length > 0) {\r\n if (transTypeObj.Mode == \"Add\" || transTypeObj.Mode == \"Edit\") {\r\n let obj = d.data.find(x => x.TransportationTypeSerNo == transTypeObj.TransportationTypeSerNo);\r\n obj.Mode = \"View\";\r\n setTransTypeObj(obj);\r\n console.log(\"EditData>>>\", obj);\r\n }\r\n else {\r\n d.data[0].Mode = \"View\";\r\n setTransTypeObj(d.data[0]);\r\n console.log(\"TransportationTypeList>>>\", d.data[0]);\r\n }\r\n }\r\n console.log(d.data);\r\n })\r\n }\r\n const clearValidation = () => {\r\n setTransValidation(defaultObj);\r\n }\r\n const isValidOnlyNumber = (value) => {\r\n let Valid = /^[0-9]+$/.test(value);\r\n if (isNaN(value) || parseInt(value) < 0) {\r\n Valid = false;\r\n }\r\n return Valid;\r\n }\r\n const isValidOnlyDecimalNumber = (value) => {\r\n let isValid = !(/^\\d+$/).test(value);\r\n if (isNaN(value) || parseInt(value) < 0) {\r\n isValid = false;\r\n }\r\n return isValid;\r\n };\r\n const IsValidPage = () => {\r\n let isValid = true;\r\n if (transTypeObj.Name.trim() == \"\") {\r\n isValid = false;\r\n setTransValidation((prev) => ({ ...prev, Name: \"invalid name\" }));\r\n }\r\n else if (transTypeObj.ShortName.trim() == \"\") {\r\n isValid = false;\r\n setTransValidation((prev) => ({ ...prev, ShortName: \"invalid short name\" }));\r\n }\r\n else if (parseFloat(transTypeObj.Price) == 0 || !(/^\\d+$/).test(parseFloat(transTypeObj.Price))) {\r\n isValid = false;\r\n setTransValidation((prev) => ({ ...prev, Price: \"invalid price\" }));\r\n }\r\n // else if (transTypeObj.IsTaxinclusive == false) {\r\n // isValid = false;\r\n // setTransValidation((prev) => ({ ...prev, IsTaxinclusive: \"invalid tax inclusive\" }));\r\n // }\r\n else if (parseInt(transTypeObj.MaxAdult) == 0 || !(/^\\d+$/).test(parseInt(transTypeObj.MaxAdult))) {\r\n isValid = false;\r\n setTransValidation((prev) => ({ ...prev, MaxAdult: \"invalid max adult\" }));\r\n }\r\n else if (parseInt(transTypeObj.SeqNo) == 0 || !(/^\\d+$/).test(parseInt(transTypeObj.SeqNo))) {\r\n isValid = false;\r\n setTransValidation((prev) => ({ ...prev, SeqNo: \"invalid sequence number\" }));\r\n }\r\n else {\r\n isValid = true;\r\n clearValidation();\r\n }\r\n return isValid;\r\n }\r\n //#endregion\r\n //#region UseEffect\r\n useEffect(() => {\r\n fillTransportationType();\r\n }, []);\r\n //#endregion\r\n //#region Event handlers\r\n const handleClickOnSearch = (e) => {\r\n setSearch(e);\r\n setTransTypeObj(defaultObj);\r\n let obj = [];\r\n transTypeList.forEach((ele) => {\r\n if (ele.Name.toLowerCase().includes(e.toLowerCase())) {\r\n obj.push(ele);\r\n }\r\n });\r\n setTransTypeFilter(obj);\r\n }\r\n const handleOnTransTypeClick = (e) => {\r\n clearValidation();\r\n setIsActive(false);\r\n let obj = transTypeList.find(x => x.TransportationTypeSerNo == e.target.id);\r\n obj.Mode = \"View\";\r\n setTransTypeObj(obj);\r\n console.log(\"Data>>>\", obj);\r\n setSelectedSerNo(e.target.id);\r\n }\r\n const handleOnEditClick = () => {\r\n if (transTypeObj.Name == \"\") {\r\n alertFunction(\"Please select transportation type\");\r\n }\r\n else {\r\n setTransTypeObj((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n setSelectedSerNo(transTypeObj.TransportationTypeSerNo);\r\n }\r\n }\r\n const handleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setTransTypeObj(obj)\r\n }\r\n const handleOnCancelClick = () => {\r\n clearValidation();\r\n let existing = transTypeList.find(d => d.TransportationTypeSerNo == selectedSerNo);\r\n console.log(\"cancel>>>\", existing);\r\n if (existing != undefined) {\r\n existing.Mode = \"View\";\r\n setTransTypeObj(existing);\r\n }\r\n else {\r\n setTransTypeObj(defaultObj);\r\n }\r\n }\r\n const searchEdit = () => {\r\n GetTransportationTypeMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n let temp = d.data.filter(x => x.Name.toLowerCase().includes(search.toLowerCase()));\r\n setTransTypeFilter(temp);\r\n });\r\n }\r\n const handleOnSaveClick = () => {\r\n let Valid = IsValidPage();\r\n if (Valid) {\r\n setIsActive(true);\r\n AddEditTransportationTypeMaster(transTypeObj).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n fillTransportationType();\r\n if (transTypeObj.Mode == \"Add\" || transTypeObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit()\r\n return;\r\n }\r\n transTypeObj.TransportationTypeSerNo = parseInt(d.data.ReturnValue);\r\n }\r\n }\r\n else {\r\n alertFunction(\"Failed\");\r\n }\r\n });\r\n setTransTypeObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n //#endregion\r\n\r\n const selectData = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n return (\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Transportation Type Master

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      Transportation Type
      \r\n
      \r\n
        \r\n {\r\n transTypeFilter.map(d =>\r\n
      • \r\n {d.Name}\r\n
      • \r\n )\r\n }\r\n
      \r\n
      \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
      \r\n
      \r\n\r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n\r\n {\r\n setTransTypeObj((prev) => ({ ...prev, Name: v }));\r\n if (v == \"\") {\r\n setTransValidation((prev) => ({ ...prev, Name: \"invalid name\" }));\r\n }\r\n else {\r\n setTransValidation((prev) => ({ ...prev, Name: \"\" }))\r\n }\r\n }}>Name\r\n {\r\n setTransTypeObj((prev) => ({ ...prev, ShortName: v }));\r\n if (v == \"\") {\r\n setTransValidation((prev) => ({ ...prev, ShortName: \"invalid short name\" }));\r\n }\r\n else {\r\n setTransValidation((prev) => ({ ...prev, ShortName: \"\" }))\r\n }\r\n }}>Short Name\r\n {\r\n setTransTypeObj((prev) => ({ ...prev, Price: v }));\r\n if (parseFloat(v) == false) {\r\n setTransValidation((prev) => ({ ...prev, Price: \"invalid price\" }));\r\n }\r\n else {\r\n setTransValidation((prev) => ({ ...prev, Price: \"\" }))\r\n }\r\n }}>Price\r\n
      \r\n
      \r\n Tax Inclusive\r\n {\r\n setTransTypeObj((prev) => ({ ...prev, IsTaxinclusive: v }));\r\n console.log(\"IsTaxInclusive\", v);\r\n }}\r\n id=\"trans1\"\r\n disabled={transTypeObj.Mode == \"View\" ? true : false}\r\n value={transTypeObj.IsTaxinclusive}\r\n >\r\n
      \r\n
      \r\n {\r\n setTransTypeObj((prev) => ({ ...prev, MaxAdult: v }));\r\n if (parseInt(v) == false) {\r\n setTransValidation((prev) => ({ ...prev, MaxAdult: \"invalid max adult\" }));\r\n }\r\n else {\r\n setTransValidation((prev) => ({ ...prev, MaxAdult: \"\" }))\r\n }\r\n }}>Max Adult\r\n
      \r\n
      \r\n Pickup\r\n \r\n setTransTypeObj((prev) => ({ ...prev, IsPickUp: v }))\r\n }\r\n id=\"trans2\"\r\n disabled={transTypeObj.Mode == \"View\" ? true : false}\r\n value={transTypeObj.IsPickUp}>\r\n
      \r\n
      \r\n
      \r\n
      \r\n Drop Off\r\n setTransTypeObj((prev) => ({ ...prev, IsDropOff: v }))}\r\n id=\"trans3\"\r\n disabled={transTypeObj.Mode == \"View\" ? true : false}\r\n value={transTypeObj.IsDropOff}>\r\n
      \r\n
      \r\n {\r\n setTransTypeObj((prev) => ({ ...prev, SeqNo: v }));\r\n if (parseInt(v) == false) {\r\n setTransValidation((prev) => ({ ...prev, SeqNo: \"invalid sequence no.\" }));\r\n }\r\n else {\r\n setTransValidation((prev) => ({ ...prev, SeqNo: \"\" }))\r\n }\r\n }}>Seq No\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n Activate console.log(v)} id=\"1\">\r\n {/* setShowDepositTermTypeModal(!showDepositTermTypeModal)}>Add Deposit Term Type*/}\r\n {\r\n transTypeObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n );\r\n}\r\n\r\n","import React, { useEffect, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnSingleDateSelection,\r\n InnLoader,\r\n useConfirm\r\n} from \"../../../../component\"\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { AddEditRateTypeMaster, GetRateTypeMaster } from \"../../../../services/generalService\";\r\n\r\nexport default function RateTypeMaster() {\r\n\r\n //#region Local Variable\r\n const currUser = useSelector(currentUser);\r\n const {confirm} = useConfirm();\r\n const alertFunction = async (Message) =>{\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{value: \"y\", title: \"Ok\", type: \"\"}],\r\n });\r\n }\r\n\r\n const defaultObj = {\r\n RateTypeSerNo: \"\",\r\n Name: \"\",\r\n Mode: \"View\"\r\n }\r\n const validation = {\r\n RateTypeSerNo: \"\",\r\n Name: \"\"\r\n }\r\n //#endregion\r\n\r\n //#region State Variable\r\n const [selectedRateType, setSelectedRateType] = useState(defaultObj);\r\n const [rateTypeList, setRateTypeList] = useState([]);\r\n const [filterRateTypeList, setFilterRateTypeList] = useState([]);\r\n const [search, setSearch] = useState(\"\");\r\n const [old, setOld] = useState(0);\r\n const [rateTypeValidation, setRateTypeValidation] = useState(validation);\r\n const [isActive , setIsActive] = useState(false);\r\n //#endregion\r\n //#region Custom Function\r\n const fillRateTypeMaster = () => {\r\n setIsActive(true);\r\n GetRateTypeMaster().then(d => {\r\n setIsActive(false);\r\n setRateTypeList(d.data);\r\n setFilterRateTypeList(d.data);\r\n if (d.data.length > 0) {\r\n if (selectedRateType.Mode == \"Add\" || selectedRateType.Mode == \"Edit\") {\r\n let obj = d.data.find(x => x.RateTypeSerNo == selectedRateType.RateTypeSerNo);\r\n obj.Mode = \"View\";\r\n setSelectedRateType(obj);\r\n console.log(\"AddEdit>>\", obj);\r\n }\r\n else {\r\n d.data[0].Mode = \"View\";\r\n setSelectedRateType(d.data[0]);\r\n console.log(\"RateTypeData>>\", d.data[0]);\r\n }\r\n }\r\n console.log(d.data);\r\n })\r\n }\r\n const clearValidation = () => {\r\n setRateTypeValidation(defaultObj);\r\n }\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (selectedRateType.Name.trim() == \"\") {\r\n isValid = false;\r\n setRateTypeValidation((prev) => ({ ...prev, Name: \"please enter name\" }));\r\n }\r\n else {\r\n isValid = true;\r\n clearValidation();\r\n }\r\n return isValid;\r\n }\r\n //#endregion\r\n //#region useEffect\r\n useEffect(() => {\r\n fillRateTypeMaster();\r\n }, [])\r\n //#endregion\r\n //#region Event\r\n const handleRateTypeClick = (e) => {\r\n clearValidation();\r\n setIsActive(false);\r\n let obj = rateTypeList.find(x => x.RateTypeSerNo == e.target.id);\r\n obj.Mode = \"View\";\r\n setSelectedRateType(obj);\r\n console.log(\"DataClick>>\", obj);\r\n setOld(e.target.id);\r\n }\r\n const handleOnSearchClick = (e) => {\r\n setSearch(e);\r\n setSelectedRateType(defaultObj);\r\n let temp = []\r\n rateTypeList.forEach(element => {\r\n if (element.Name.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(element);\r\n }\r\n });\r\n setFilterRateTypeList(temp);\r\n }\r\n const handleChangeNameText = (e) => {\r\n setRateTypeValidation((prev) => ({ ...prev, Name: \"\" }));\r\n setSelectedRateType((prev) => ({ ...prev, Name: e }));\r\n }\r\n const searchEdit = () => {\r\n GetRateTypeMaster().then(d => {\r\n let temp = d.data.filter(x => x.Name.toLowerCase().includes(search.toLowerCase()));\r\n setFilterRateTypeList(temp);\r\n });\r\n }\r\n const handleOnSaveClick = () => {\r\n let valid = isValidPage();\r\n if (valid) {\r\n setIsActive(true);\r\n AddEditRateTypeMaster(selectedRateType).then(d => {\r\n setIsActive(false);\r\n if (d.status == 200) {\r\n alertFunction(d.data.Message);\r\n fillRateTypeMaster();\r\n if (selectedRateType.Mode == \"Add\" || selectedRateType.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit()\r\n return;\r\n }\r\n selectedRateType.RateTypeSerNo = d.data.ReturnValue;\r\n }\r\n }\r\n else {\r\n alertFunction(\"failed\");\r\n }\r\n });\r\n setSelectedRateType((prev) => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n const handleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setSelectedRateType(obj);\r\n\r\n }\r\n const handleOnEditClick = () => {\r\n if (selectedRateType.RateTypeSerNo == \"\") {\r\n alertFunction(\"Please select the RateType Name first\")\r\n return\r\n }\r\n setSelectedRateType(prev => ({ ...prev, Mode: \"Edit\" }))\r\n setOld(selectedRateType.RateTypeSerNo);\r\n }\r\n const handleOnCancelClick = () => {\r\n clearValidation();\r\n let existing = rateTypeList.find(x => x.RateTypeSerNo == old);\r\n console.log(\"Cancel Data>>>\", existing);\r\n if (existing != undefined) {\r\n existing.Mode = \"View\";\r\n setSelectedRateType(existing);\r\n }\r\n else {\r\n setSelectedRateType(defaultObj);\r\n }\r\n }\r\n //#endregion\r\n const daytypedata = [\r\n { key: \"Option 1\", value: \"City Wide conference\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n\r\n return (\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Rate Type Master

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      Rate Type Names
      \r\n
      \r\n {\r\n filterRateTypeList.map((d, index) => {\r\n return (\r\n
        \r\n
      • \r\n {d.Name}
      • \r\n
      \r\n )\r\n\r\n })\r\n }\r\n {/*
    • General (Hard coded by Innkey)
    • \r\n
    • Front Office Notes
    • \r\n
    • Cashiering Notes
    • \r\n
    • Housekeeping Notes
    • \r\n
    • f&b Notes
    • */}\r\n
      \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
      \r\n
      \r\n\r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n Name\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n Activate console.log(v)} id=\"0\">\r\n {/* setShowDepositTermTypeModal(!showDepositTermTypeModal)}>Add Deposit Term Type*/}\r\n {\r\n selectedRateType.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport ReactHTMLTableToExcel from 'react-html-table-to-excel';\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnFileUpload,\r\n InnFileUploadPreview,\r\n InnLoader,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnRadioButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnToastMessage,\r\n InnTabs,\r\n InnStatusLabel,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnButton3Darrow,\r\n InnButtonTypeWithDropdown,\r\n InnPlainTextbox,\r\n InnSingleDateSelection,\r\n InnTimeSelection,\r\n InnSingleRadioButton,\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport moment from \"moment\";\r\nimport SharerSecondry from \"../../../../assets/images/sharer-secondary-icon.svg\";\r\nimport SharerPrimary from \"../../../../assets/images/sharer-primary-icon.svg\";\r\nimport BlockIcon from \"../../../../assets/images/block-icon.svg\";\r\nimport linkIcon from \"../../../../assets/images/link-icon.svg\";\r\n\r\n\r\nexport function ReservationReportPreview(props) {\r\n const currUser = useSelector(currentUser);\r\n const history = useHistory();\r\n const reactToExcelRef = useRef();\r\n const selectdata = [\r\n { key: \"Excel\", value: \"Excel\" }\r\n ];\r\n\r\n const selectdata1 = [\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n\r\n\r\n const optBtnData = [\r\n { key: \"Edit\", value: \"edt\" },\r\n { key: \"Delete\", value: \"del\" },\r\n ];\r\n\r\n\r\n\r\n /* Grid Starts */\r\n\r\n const [gridSelectedItem, SetgridSelectedItem] = useState([]);\r\n const [temp, settemp] = useState(false);\r\n\r\n useEffect(() => {\r\n const timeId = setTimeout(() => {\r\n setActive(isActive);\r\n }, 3000);\r\n }, []);\r\n\r\n useEffect(() => {\r\n console.log(\"user\", currUser);\r\n }, []);\r\n\r\n //grid header\r\n const [isActive, setActive] = useState(false);\r\n\r\n const columHeaderReport = [\r\n { key: \"Room No\", value: \"RoomNo\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Room Type\", value: \"RoomTypeCode\", type: \"txt\", sorting: \"N\" },\r\n { key: \"ReservationStatus\", value: \"ReservationStatus\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Guest Name\", value: \"GuestName\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Company\", value: \"CompanyName\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Travel Agent\", value: \"AgentName\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Arrival Date\", value: \"ArrivalDate\", type: \"txt\", sorting: \"Y\", },\r\n { key: \"ETA\", value: \"ArrivalTime\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Departure Date\", value: \"DepartureDate\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"ETD\", value: \"DepartureTime\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Adult\", value: \"Adult\", type: \"txt\", sorting: \"Y\", align: \"center\" },\r\n { key: \"Child\", value: \"Child\", type: \"txt\", sorting: \"Y\", align: \"center\" },\r\n { key: \"No of Rooms\", value: \"NoOfRoom\", type: \"txt\", sorting: \"Y\", align: \"center\" },\r\n { key: \"Market\", value: \"Market\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Source\", value: \"Source\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Confirmation No\", value: \"BookingNo\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Booking Reference\", value: \"BookingReferenceNo\", type: \"txt\", sorting: \"N\" },\r\n { key: \"VIP\", value: \"VIPStatus\", type: \"txt\", sorting: \"N\" },\r\n // { key: \"Room Category\", value: \"R_cate\", type: \"txt\", sorting: \"Y\" },\r\n // { key: \"HK Status\", value: \"HK_status\", type: \"txt\", sorting: \"Y\", },\r\n // { key: \"FO Status\", value: \"FO_status\", type: \"txt\", sorting: \"Y\", },\r\n // { key: \"Rate Plan\", value: \"Rate_Plan\", type: \"txt\", sorting: \"Y\", align: \"center\" },\r\n // { key: \"Guest Class\", value: \"Guest_class\", type: \"txt\", sorting: \"Y\" },\r\n ];\r\n \r\n const [colSpanVal, setColSpanVal] = useState(0);\r\n const [linkInfo, setlinkInfo] = useState({});\r\n const [list, setList] = useState([]);\r\n const [excelList,setExcelList] = useState([]);\r\n const [reportObj, setReportObj] = useState({});\r\n const [filterList, setFilterList] = useState(\"\");\r\n const [columnList, setColumnList] = useState([]);\r\n const [reportSerNo, setReportSerNo] = useState(0);\r\n const [reportName,setReportName] = useState(\"\");\r\n\r\n useEffect(() => {\r\n let o = props.location.state;\r\n if (o != undefined) {\r\n console.log(o)\r\n setList(o.list);\r\n setExcelList(JSON.parse(JSON.stringify(o.list)));\r\n setReportObj(o.obj);\r\n setColumnList(o.columnList)\r\n setReportSerNo(o.reportserno);\r\n setReportName(o.reportname);\r\n if (o.filterList != undefined) {\r\n setFilterList(o.filterList);\r\n }\r\n }\r\n // if (columHeaderReport?.length != 0) {\r\n // setColSpanVal(columHeaderReport.length);\r\n // }\r\n if (o.columnList?.length != 0) {\r\n setColSpanVal(o.columnList.length);\r\n }\r\n }, []);\r\n /* Grid Ends */\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Preview

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n {\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnData}\r\n optClick={(v, d) => {\r\n console.log(v, d);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}\r\n >\r\n {/*grid to make excel sheet. */}\r\n
      \r\n \r\n \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      {currUser.PropertyName}
      Filter List: {filterList}
      {reportName}
      \r\n \r\n \r\n \r\n \r\n \r\n {columnList.map((item, index) => {\r\n return ;\r\n })}\r\n \r\n \r\n \r\n {excelList.map((item, index) => {\r\n return \r\n {columnList.map((o, index) => {\r\n return ;\r\n })}\r\n ;\r\n })}\r\n \r\n
      {item.key}
      \r\n {\r\n item.IsSharer == SharerPrimary ? \r\n item.IsSharer = \"No\" : \r\n item.IsSharer == SharerSecondry ? \r\n item.IsSharer = \"Yes\" : \r\n item.BlockSerNo == BlockIcon ? \r\n item.BlockSerNo = \"Yes\" : \r\n // item.PartySerNo == linkIcon ? \r\n // item.PartySerNo = \"Yes\" : \r\n item[o.value]}
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      User: {currUser.UserID} , Time: {moment(new Date()).format(\"HH:mm\")}
      \r\n\r\n \r\n \r\n\r\n {/* \r\n \r\n \r\n {columHeaderReport.map((item, index) => {\r\n return ;\r\n })}\r\n \r\n \r\n \r\n {list.map((item, index) => {\r\n return \r\n {columHeaderReport.map((o, index) => {\r\n return ;\r\n })}\r\n ;\r\n })}\r\n \r\n
      {item.key}
      {item[o.value]}
      */}\r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n {\r\n history.push({\r\n pathname: \"/ReservationReport\",\r\n state: {\r\n filterObj: reportObj,\r\n reportserno: reportSerNo,\r\n reportname: reportName\r\n }\r\n });\r\n }}>Back\r\n console.log(item, name)}\r\n >\r\n {\r\n if (item.key === 'Excel') {\r\n console.log(reactToExcelRef.current);\r\n reactToExcelRef.current.handleDownload();\r\n }\r\n }}\r\n >\r\n console.log(item, name)}\r\n >\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n );\r\n}\r\n\r\n//export default ReportPreview;","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnSingleDateSelection,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport { GetLaundryItemMaster, AddEditLaundryItemMaster, GetLaundryCategoryMaster } from \"../../../../services/housekeepingServiceMaster\";\r\nimport { GetTransactionMaster } from \"../../../../services/reservationService\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nexport function LaundryItemMaster() {\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n Mode: \"\",\r\n LaundryItemName: \"\",\r\n LaundryItemSerNo: 0,\r\n LaundryItemCategorySerNo: 0,\r\n TransactionSerNo: 0\r\n }\r\n const [selected, setSelected] = useState(defaultObj);\r\n const [laundryItemList, setLaundryItemList] = useState([]);\r\n const [resultList, setResultList] = useState([])\r\n const [search, setSearch] = useState(\"\");\r\n const [old, setOld] = useState(0);\r\n const [validation, setValidation] = useState({});\r\n const [laundryCategoryList, setLaundryCategoryList] = useState([]);\r\n const [transactonCodeList, setTransactionCodeList] = useState([]);\r\n const [isActive, setIsActive] = useState(false);\r\n\r\n const scrollRef = useRef();\r\n\r\n //#endregion \r\n\r\n\r\n\r\n //#region UseEffect\r\n useEffect(() => {\r\n GetAllData(0);\r\n\r\n }, []);\r\n //#endregion\r\n //#Region UseEffect for transaction\r\n useEffect(() => {\r\n GetAllData();\r\n GetTransactionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"C\", \"F\").then(resp => {\r\n let temp = [{ key: 0, value: \"Select\" }]\r\n resp.data.forEach(element => {\r\n temp.push({ key: element.TransactionSerNo, value: element.Name })\r\n })\r\n setTransactionCodeList(temp);\r\n })\r\n }, []);\r\n //#endregion\r\n const GetAllData = (x) => {\r\n setIsActive(true);\r\n GetLaundryItemMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n setIsActive(false);\r\n if (x == 0) {\r\n if (resp.data.length != 0) {\r\n setSelected(resp.data[0]);\r\n }\r\n }\r\n setLaundryItemList(resp.data);\r\n setResultList(resp.data);\r\n })\r\n GetLaundryCategoryMaster(parseInt(currUser.ClientSerNo)).then(resp => {\r\n let temp = [{ key: 0, value: \"Select\" }]\r\n resp.data.forEach(element => {\r\n temp.push({ key: element.LaundryItemCategorySerNo, value: element.LaundryItemCategoryName })\r\n });\r\n setLaundryCategoryList(temp);\r\n })\r\n }\r\n //#region Events\r\n const handleClickAdd = () => {\r\n setOld(selected.LaundryItemSerNo)\r\n handleChangeSearch(\"\");\r\n setSelected((prev) => ({ ...prev, LaundryItemName: \"\", LaundryItemSerNo: 0, LaundryItemCategorySerNo: 0, TransactionSerNo: 0, Mode: \"Add\" }))\r\n }\r\n const handleClickEdit = () => {\r\n if (selected.LaundryItemSerNo == 0) {\r\n alert(\"Please select the laundry item first\")\r\n return\r\n }\r\n setSelected((prev) => ({ ...prev, Mode: \"Edit\" }))\r\n setOld(selected.LaundryItemSerNo)\r\n }\r\n const searchEdit = () => {\r\n GetLaundryItemMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n setLaundryItemList(resp.data);\r\n setSelected(defaultObj)\r\n let temp = []\r\n resp.data.forEach(x => {\r\n if (x.LaundryItemName.toLowerCase().includes(search.toLowerCase())) {\r\n temp.push(x);\r\n }\r\n });\r\n setResultList(temp);\r\n })\r\n }\r\n\r\n const AddEditAPI = (selected) => {\r\n AddEditLaundryItemMaster(selected).then(resp => {\r\n setIsActive(false);\r\n if (resp.status == 200) {\r\n alert(\"Successful\");\r\n setValidation((prev) => ({ ...prev, LaundryItemName: \"\", LaundryItemCategoryName: \"\" }))\r\n setSelected((prev) => ({ ...prev, LaundryItemSerNo: parseInt(resp.data.ReturnValue) }))\r\n if (selected.Mode == \"Add\" || selected.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit()\r\n return;\r\n }\r\n setTimeout(() => {\r\n if (scrollRef.current != null) {\r\n scrollRef.current.scrollIntoView({ behaviour: \"smooth\" });\r\n }\r\n }, 100)\r\n }\r\n GetAllData();\r\n }\r\n }\r\n )\r\n }\r\n const isValidpage = () => {\r\n let isValid = true;\r\n if (selected.LaundryItemName.trim().length == 0 || /[-’/`~!#*$@_%+=.,^&(){}[\\]|;:”<>?\\\\]/g.test(selected.LaundryItemName)== true) {\r\n setValidation((prev) => ({ ...prev, LaundryItemName: \"Please enter valid name\" }))\r\n isValid = false;\r\n }\r\n if (selected.LaundryItemCategorySerNo == 0) {\r\n setValidation((prev) => ({ ...prev, LaundryItemCategoryName: \"Please Select the category\" }))\r\n isValid = false;\r\n }\r\n if (selected.TransactionSerNo == 0) {\r\n setValidation((prev) => ({ ...prev, TransactionSerNo: \"Please Select the transaction\" }))\r\n isValid = false;\r\n }\r\n return isValid\r\n }\r\n\r\n const handleClickSave = () => {\r\n let isValid = isValidpage();\r\n if (isValid) {\r\n setIsActive(true);\r\n let temp = selected;\r\n temp.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n AddEditAPI(temp);\r\n setSelected((prev) => ({ ...prev, Mode: \"Save\" }))\r\n }\r\n\r\n }\r\n\r\n const handleClickCancel = () => {\r\n setValidation((prev) => ({ ...prev, LaundryItemName: \"\", LaundryItemCategoryName: \"\",TransactionSerNo:\"\" }))\r\n if (old == 0) {\r\n setSelected(defaultObj)\r\n }\r\n else {\r\n laundryItemList.forEach(element => {\r\n if (element.LaundryItemSerNo == old) {\r\n setSelected(element);\r\n }\r\n });\r\n }\r\n }\r\n\r\n const handleChangeName = (e) => {\r\n setValidation((prev) => ({ ...prev, LaundryItemName: \"\" }))\r\n setSelected((prev) => ({ ...prev, LaundryItemName: e }));\r\n }\r\n const handleChangeCategoryItemSerNo = (e) => {\r\n setSelected((prev) => ({ ...prev, LaundryItemCategorySerNo: e.key }));\r\n }\r\n\r\n const handleChangeSearch = (e) => {\r\n setSearch(e);\r\n setValidation((prev) => ({ ...prev, LaundryItemName: \"\", LaundryItemCategoryName: \"\" }))\r\n setSelected((prev) => ({ ...prev, LaundryItemName: \"\", LaundryItemSerNo: 0, LaundryItemCategorySerNo: 0, TransactionSerNo: 0, Mode: \"\" }))\r\n let temp = []\r\n laundryItemList.forEach(element => {\r\n if (element.LaundryItemName.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(element);\r\n }\r\n });\r\n setResultList(temp);\r\n }\r\n const handleClickLaundryType = (laundry) => {\r\n setValidation((prev) => ({ ...prev, LaundryItemName: \"\", LaundryItemCategoryName: \"\",TransactionSerNo:\"\" }))\r\n setSelected(laundry)\r\n }\r\n const handleChangeTransactionSerNo = (e) => {\r\n setValidation((prev) => ({ ...prev, TransactionSerNo: \"\" }));\r\n setSelected((prev) => ({ ...prev, TransactionSerNo: e.key }));\r\n }\r\n return (\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Laundry Item Master

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n { handleChangeSearch(e) }} value={search} OnCancelClick={() => handleChangeSearch(\"\")}>Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      Laundry Item List
      \r\n
      \r\n
        \r\n {resultList.map((laundry, index) => {\r\n return (\r\n
      • handleClickLaundryType(laundry)}\r\n ref={(laundry.LaundryItemSerNo == selected.LaundryItemSerNo) ? scrollRef : null}\r\n className={(laundry.LaundryItemSerNo == selected.LaundryItemSerNo) ? \"active\" : \"\"}\r\n > {laundry.LaundryItemName}
      • \r\n )\r\n })\r\n }\r\n
      \r\n
      \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
      \r\n
      \r\n\r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n Name\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n\r\n {selected.Mode == \"Edit\" || selected.Mode == \"Add\" ?\r\n <>\r\n Cancel\r\n Save\r\n \r\n :\r\n <>\r\n Edit\r\n Add\r\n \r\n }\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnSingleDateSelection,\r\n InnRadioButton\r\n\r\n} from \"../../../../component\";\r\n\r\nimport { GetLaundryCategoryMaster,AddEditLaundryCategoryMaster } from \"../../../../services/housekeepingServiceMaster\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nexport function LaundryItemCategoryMaster() {\r\n const rbDataMessage = [\r\n { key: \"G\", value: \"Guest\" },\r\n { key: \"H\", value: \"House\" },\r\n ];\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = { ClientSerNo: parseInt(currUser.ClientSerNo), Mode: \"\", LaundryItemCategoryName: \"\",LaundryType:\"G\", LaundryItemCategorySerNo: 0 }\r\n const [selected, setSelected] = useState(defaultObj);\r\n const [laundryItemCategoryList, setLaundryItemCategoryList] = useState([]);\r\n const [resultList, setResultList] = useState([])\r\n const [search, setSearch] = useState(\"\");\r\n const [old, setOld] = useState(0);\r\n const [validation, setValidation] = useState({});\r\n const scrollRef = useRef();\r\n\r\n //#endregion \r\n\r\n\r\n\r\n //#region UseEffect\r\n useEffect(() => {\r\n GetAllData(0);\r\n }, []);\r\n //#endregion\r\n\r\n const GetAllData = (x) => {\r\n GetLaundryCategoryMaster(parseInt(currUser.ClientSerNo)).then(resp => {\r\n if (x == 0) {\r\n if (resp.data.length != 0) {\r\n setSelected(resp.data[0]);\r\n }\r\n }\r\n setLaundryItemCategoryList(resp.data);\r\n setResultList(resp.data);\r\n })\r\n }\r\n //#region Events\r\n const handleClickAdd = () => {\r\n setOld(selected.LaundryItemCategorySerNo)\r\n handleChangeSearch(\"\");\r\n setSelected((prev) => ({ ...prev, LaundryItemCategoryName: \"\", LaundryItemCategorySerNo: 0,LaundryType:\"G\", Mode: \"Add\" }))\r\n }\r\n const handleClickEdit = () => {\r\n if (selected.LaundryItemCategorySerNo == 0) {\r\n alert(\"Please select the laundry item first\")\r\n return\r\n }\r\n setSelected((prev) => ({ ...prev, Mode: \"Edit\" }))\r\n setOld(selected.LaundryItemCategorySerNo)\r\n }\r\n const searchEdit = () => {\r\n GetLaundryCategoryMaster(parseInt(currUser.ClientSerNo)).then(resp => {\r\n setLaundryItemCategoryList(resp.data);\r\n setSelected(defaultObj)\r\n let temp = []\r\n resp.data.forEach(x => {\r\n if (x.LaundryItemCategoryName.toLowerCase().includes(search.toLowerCase())) {\r\n temp.push(x);\r\n }\r\n });\r\n setResultList(temp);\r\n })\r\n }\r\n\r\n const AddEditAPI = (selected) => {\r\n console.log(\"this is selected\",selected);\r\n AddEditLaundryCategoryMaster(selected).then(resp => {\r\n if (resp.status == 200) {\r\n alert(\"Successful\");\r\n setValidation((prev) => ({ ...prev, LaundryItemCategoryName: \"\" }))\r\n setSelected((prev) => ({ ...prev, LaundryItemCategorySerNo: parseInt(resp.data.ReturnValue) }))\r\n if (selected.Mode == \"Add\" || selected.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit()\r\n return;\r\n }\r\n setTimeout(() => {\r\n if (scrollRef.current != null) {\r\n scrollRef.current.scrollIntoView({ behaviour: \"smooth\" });\r\n }\r\n }, 100)\r\n }\r\n GetAllData();\r\n }\r\n }\r\n )\r\n }\r\n const isValidpage = () => {\r\n let isValid = true;\r\n if (selected.LaundryItemCategoryName.trim().length == 0) {\r\n setValidation((prev) => ({ ...prev,LaundryItemCategoryName: \"Please enter valid name\" }))\r\n isValid = false;\r\n }\r\n return isValid\r\n }\r\n\r\n const handleClickSave = () => {\r\n console.log(selected);\r\n let isValid = isValidpage();\r\n if (isValid) {\r\n let temp = selected;\r\n temp.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n AddEditAPI(temp);\r\n setSelected((prev) => ({ ...prev, Mode: \"Save\" }))\r\n }\r\n\r\n }\r\n\r\n const handleClickCancel = () => {\r\n setValidation((prev) => ({ ...prev,LaundryItemCategoryName: \"\" }))\r\n if (old == 0) {\r\n setSelected(defaultObj)\r\n }\r\n else {\r\n laundryItemCategoryList.forEach(element => {\r\n if (element.LaundryItemCategorySerNo == old) {\r\n setSelected(element);\r\n }\r\n });\r\n }\r\n }\r\n\r\n const handleChangeName = (e) => {\r\n setValidation((prev) => ({ ...prev, LaundryItemCategoryName: \"\" }))\r\n setSelected((prev) => ({ ...prev, LaundryItemCategoryName: e }));\r\n }\r\n const handleChangeLaundryType = (e) => {\r\n if(e==\"Guest\"){\r\n setSelected((prev) => ({ ...prev, LaundryType: \"G\" }));\r\n }\r\n else{\r\n setSelected((prev) => ({ ...prev, LaundryType: \"H\" }));\r\n }\r\n }\r\n\r\n const handleChangeSearch = (e) => {\r\n setSearch(e);\r\n setValidation((prev) => ({ ...prev,LaundryItemCategoryName: \"\"}))\r\n setSelected((prev) => ({ ...prev, LaundryItemCategoryName: \"\", LaundryItemCategorySerNo: 0 ,Mode: \"\" }))\r\n let temp = []\r\n laundryItemCategoryList.forEach(element => {\r\n if (element.LaundryItemCategoryName.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(element);\r\n }\r\n });\r\n setResultList(temp);\r\n }\r\n const handleClickLaundryCategory = (laundryCategory) => {\r\n setValidation((prev) => ({ ...prev, LaundryItemCategoryName: \"\" }))\r\n setSelected(laundryCategory)\r\n }\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Laundry Item Category Master

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n { handleChangeSearch(e) }} value={search} OnCancelClick={() => handleChangeSearch(\"\")}>Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      Laundry Item Category List
      \r\n
      \r\n
        \r\n {resultList.map((laundryCategory, index) => {\r\n return (\r\n
      • handleClickLaundryCategory(laundryCategory)}\r\n ref={(laundryCategory.LaundryItemCategorySerNo == selected.LaundryItemCategorySerNo) ? scrollRef : null}\r\n className={(laundryCategory.LaundryItemCategorySerNo == selected.LaundryItemCategorySerNo) ? \"active\" : \"\"}\r\n > {laundryCategory.LaundryItemCategoryName}
      • \r\n )\r\n })\r\n }\r\n
      \r\n
      \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
      \r\n
      \r\n\r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n Name \r\n
      Laundry Type
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n\r\n {selected.Mode == \"Edit\" || selected.Mode == \"Add\" ?\r\n <>\r\n Cancel\r\n Save\r\n \r\n :\r\n <>\r\n Edit\r\n Add\r\n \r\n }\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnSingleDateSelection,\r\n InnLoader,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport { GetLaundryReturnInMaster, AddEditLaundryReturnInMaster } from \"../../../../services/housekeepingServiceMaster\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport function LaundryReturnInMaster() {\r\n\r\n //#region local variables\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n LaundryReturnInSerNo: 0,\r\n ReturnInName: \"\",\r\n Mode: \"View\"\r\n }\r\n const validation = {\r\n ReturnInName: \"\"\r\n }\r\n //#endregion\r\n //#region State Variable\r\n const [laundryObj, setLaundryObj] = useState(defaultObj);\r\n const [laundryValidation, setLaundryValidation] = useState(validation);\r\n const [laundryList, setLaundryList] = useState([]);\r\n const [laundryFilter, setLaundryFilter] = useState([]);\r\n const [selectedSerNo, setSelectedSerNo] = useState(0);\r\n const [search, setSearch] = useState(\"\");\r\n const [isActive, setIsActive] = useState(false);\r\n //#endregion \r\n //#region useEffect \r\n useEffect(() => {\r\n fillLaundryData();\r\n }, []);\r\n //#endregion\r\n //#region Custom Function\r\n const fillLaundryData = () => {\r\n setIsActive(true)\r\n GetLaundryReturnInMaster(parseInt(currUser.ClientSerNo)).then((d) => {\r\n setIsActive(false)\r\n setLaundryList(d.data);\r\n setLaundryFilter(d.data);\r\n if (d.data && d.data.length > 0) {\r\n if (laundryObj.Mode == \"Add\" || laundryObj.Mode == \"Edit\") {\r\n let obj = d.data.find(x => x.LaundryReturnInSerNo == laundryObj.LaundryReturnInSerNo);\r\n obj.Mode = \"View\";\r\n setLaundryObj(obj)\r\n console.log(\"AddEditData\", obj);\r\n }\r\n else {\r\n d.data[0].Mode = \"View\";\r\n setLaundryObj(d.data[0]);\r\n console.log(\"DefaultData\", d.data[0]);\r\n }\r\n }\r\n });\r\n }\r\n const clearValidationData = () => {\r\n setLaundryValidation(validation);\r\n }\r\n const isValidPage = () => {\r\n let valid = true;\r\n if (laundryObj.ReturnInName.trim().length == 0 || /[-’/`~!#*$@_%+=.,^&(){}[\\]|;:”<>?\\\\]/g.test(laundryObj.ReturnInName) == true) {\r\n valid = false;\r\n setLaundryValidation((prev) => ({ ...prev, ReturnInName: \"invalid return in name\" }));\r\n }\r\n return valid;\r\n }\r\n //#endregion\r\n //#region Event handler\r\n const handleOnSearchClick = (e) => {\r\n setSearch(e);\r\n setLaundryObj(defaultObj);\r\n let temp = [];\r\n laundryList.forEach((ele) => {\r\n if (ele.ReturnInName.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(ele);\r\n }\r\n });\r\n setLaundryFilter(temp);\r\n }\r\n const handleOnClickLaundry = (e) => {\r\n clearValidationData();\r\n let obj = laundryList.find(x => x.LaundryReturnInSerNo == e.target.id);\r\n obj.Mode = \"View\";\r\n setLaundryObj(obj);\r\n console.log(\"ClickOnLaundryReturnIn\", obj);\r\n setSelectedSerNo(e.target.id);\r\n }\r\n const handleOnAddClick = () => {\r\n let Obj = JSON.parse(JSON.stringify(defaultObj));\r\n Obj.Mode = \"Add\";\r\n setLaundryObj(Obj);\r\n }\r\n const handleOnClickEdit = () => {\r\n if (laundryObj.ReturnInName == \"\") {\r\n alertFunction(\"Please select laundry return in list\");\r\n }\r\n else {\r\n setLaundryObj((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n setSelectedSerNo(laundryObj.LaundryReturnInSerNo);\r\n }\r\n }\r\n const handleOnClickCancel = () => {\r\n clearValidationData();\r\n let existingObj = laundryList.find(x => x.LaundryReturnInSerNo == selectedSerNo);\r\n console.log(\"CancelClick\", existingObj);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setLaundryObj(existingObj);\r\n }\r\n else {\r\n setLaundryObj(defaultObj);\r\n }\r\n }\r\n const searchEdit = () => {\r\n GetLaundryReturnInMaster(parseInt(currUser.ClientSerNo)).then(d => {\r\n let temp = d.data.filter(x => x.ReturnInName.toLowerCase().includes(search.toLowerCase()));\r\n setLaundryFilter(temp);\r\n })\r\n }\r\n const hanldeOnClickSave = () => {\r\n let isValid = isValidPage();\r\n if (isValid) {\r\n setIsActive(true)\r\n AddEditLaundryReturnInMaster(laundryObj).then(d => {\r\n setIsActive(false)\r\n if (d.data.Code = \"200\") {\r\n alertFunction(d.data.Message);\r\n fillLaundryData();\r\n if (laundryObj.Mode == \"Add\" || laundryObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit();\r\n return;\r\n }\r\n laundryObj.LaundryReturnInSerNo = parseInt(d.data.ReturnValue);\r\n }\r\n }\r\n else {\r\n alertFunction(\"failed\")\r\n }\r\n });\r\n setLaundryObj((prev) => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n //#endregion\r\n\r\n return (\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Laundry Return In Master

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      Laundry Return In List
      \r\n
      \r\n
        \r\n {\r\n laundryFilter.map(d =>\r\n
      • \r\n \r\n {d.ReturnInName}\r\n
      • \r\n //
      • List 2
      • \r\n )\r\n }\r\n
      \r\n
      \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
      \r\n
      \r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n {\r\n setLaundryObj((prev) => ({ ...prev, ReturnInName: v }));\r\n setLaundryValidation((prev) => ({ ...prev, ReturnInName: \"\" }));\r\n console.log(v)\r\n }}>Return In Name\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n Activate console.log(v)} id=\"1\">\r\n {/* setShowDepositTermTypeModal(!showDepositTermTypeModal)}>Add Deposit Term Type*/}\r\n\r\n {\r\n laundryObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnSingleDateSelection,\r\n InnLoader,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport { GetLaundryHotelServiceMaster, AddEditLaundryHotelServiceMaster } from \"../../../../services/housekeepingServiceMaster\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport function LaundryHotelServiceMaster() {\r\n\r\n //#region local variables\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n LaundryHotelServiceSerNo: 0,\r\n HotelServiceName: \"\",\r\n Mode: \"View\"\r\n }\r\n const validation = {\r\n HotelServiceName: \"\"\r\n }\r\n //#endregion\r\n //#region State Variable\r\n const [laundryObj, setLaundryObj] = useState(defaultObj);\r\n const [laundryValidation, setLaundryValidation] = useState(validation);\r\n const [laundryList, setLaundryList] = useState([]);\r\n const [laundryFilter, setLaundryFilter] = useState([]);\r\n const [selectedSerNo, setSelectedSerNo] = useState(0);\r\n const [search, setSearch] = useState(\"\");\r\n const [isActive, setIsActive] = useState(false);\r\n //#endregion \r\n //#region Custom Function\r\n const fillLaundryData = () => {\r\n setIsActive(true);\r\n GetLaundryHotelServiceMaster(parseInt(currUser.ClientSerNo)).then((d) => {\r\n setIsActive(false);\r\n setLaundryList(d.data);\r\n setLaundryFilter(d.data);\r\n if (d.data && d.data.length > 0) {\r\n if (laundryObj.Mode == \"Add\" || laundryObj.Mode == \"Edit\") {\r\n let obj = d.data.find(x => x.LaundryHotelServiceSerNo == laundryObj.LaundryHotelServiceSerNo);\r\n obj.Mode = \"View\";\r\n setLaundryObj(obj);\r\n console.log(\"AddEditData\", obj);\r\n }\r\n else {\r\n d.data[0].Mode = \"View\";\r\n setLaundryObj(d.data[0]);\r\n console.log(\"DefaultData\", d.data[0]);\r\n }\r\n }\r\n });\r\n }\r\n const clearValidationData = () => {\r\n setLaundryValidation(validation);\r\n }\r\n const isValidPage = () => {\r\n let valid = true;\r\n if (laundryObj.HotelServiceName.trim().length == 0 || /[-’/`~!#*$@_%+=.,^&(){}[\\]|;:”<>?\\\\]/g.test(laundryObj.HotelServiceName)== true) {\r\n valid = false;\r\n setLaundryValidation((prev) => ({ ...prev, HotelServiceName: \"invalid hotel service name\" }));\r\n }\r\n return valid;\r\n }\r\n //#endregion\r\n //#region useEffect \r\n useEffect(() => {\r\n fillLaundryData();\r\n }, []);\r\n //#endregion\r\n //#region Event handler\r\n const handleOnSearchClick = (e) => {\r\n setSearch(e);\r\n setLaundryObj(defaultObj);\r\n let temp = [];\r\n laundryList.forEach((ele) => {\r\n if (ele.HotelServiceName.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(ele);\r\n }\r\n });\r\n setLaundryFilter(temp);\r\n }\r\n const handleOnClickLaundry = (e) => {\r\n clearValidationData();\r\n let obj = laundryList.find(x => x.LaundryHotelServiceSerNo == e.target.id);\r\n obj.Mode = \"View\";\r\n setLaundryObj(obj);\r\n console.log(\"ClickOnLaundryService\", obj);\r\n setSelectedSerNo(e.target.id);\r\n }\r\n const handleOnAddClick = () => {\r\n let Obj = JSON.parse(JSON.stringify(defaultObj));\r\n Obj.Mode = \"Add\";\r\n setLaundryObj(Obj);\r\n }\r\n const handleOnClickEdit = () => {\r\n if (laundryObj.HotelServiceName == \"\" ) {\r\n alertFunction(\"Please select laundry hotel service\");\r\n }\r\n else {\r\n setLaundryObj((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n setSelectedSerNo(laundryObj.LaundryHotelServiceSerNo);\r\n }\r\n }\r\n const handleOnClickCancel = () => {\r\n clearValidationData();\r\n let existingObj = laundryList.find(x => x.LaundryHotelServiceSerNo == selectedSerNo);\r\n console.log(\"CancelClick\", existingObj);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setLaundryObj(existingObj);\r\n }\r\n else {\r\n setLaundryObj(defaultObj);\r\n }\r\n }\r\n const searchEdit = () => {\r\n GetLaundryHotelServiceMaster(parseInt(currUser.ClientSerNo)).then(d => {\r\n let temp = d.data.filter(x => x.HotelServiceName.toLowerCase().includes(search.toLowerCase()));\r\n setLaundryFilter(temp);\r\n })\r\n }\r\n const hanldeOnClickSave = () => {\r\n let isValid = isValidPage();\r\n if (isValid) {\r\n setIsActive(true);\r\n AddEditLaundryHotelServiceMaster(laundryObj).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code = \"200\") {\r\n alertFunction(d.data.Message);\r\n fillLaundryData();\r\n if (laundryObj.Mode == \"Add\" || laundryObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit();\r\n return;\r\n }\r\n laundryObj.LaundryHotelServiceSerNo = parseInt(d.data.ReturnValue);\r\n }\r\n }\r\n else {\r\n alertFunction(\"failed\")\r\n }\r\n });\r\n setLaundryObj((prev) => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n //#endregion\r\n\r\n return (\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Laundry Hotel Service Master

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      Laundry Hotel Service List
      \r\n
      \r\n
        \r\n {\r\n laundryFilter.map(d =>\r\n
      • \r\n \r\n {d.HotelServiceName}\r\n
      • \r\n //
      • List 2
      • \r\n )\r\n }\r\n
      \r\n
      \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
      \r\n
      \r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n {\r\n setLaundryObj((prev) => ({ ...prev, HotelServiceName: v }));\r\n setLaundryValidation((prev) => ({ ...prev, HotelServiceName: \"\" }));\r\n console.log(v)\r\n }}>Hotel Service Name\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n Activate console.log(v)} id=\"1\">\r\n {/* setShowDepositTermTypeModal(!showDepositTermTypeModal)}>Add Deposit Term Type*/}\r\n\r\n {\r\n laundryObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnSingleDateSelection,\r\n InnLoader,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport { GetLaundryVenderMaster, AddEditLaundryVenderMaster } from \"../../../../services/housekeepingServiceMaster\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport function LaundryVenderMaster() {\r\n\r\n //#region local variables\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n VenderSerNo: 0,\r\n VenderName: \"\",\r\n Mode: \"View\"\r\n }\r\n const validation = {\r\n VenderName: \"\",\r\n }\r\n //#endregion\r\n //#region State Variable\r\n const [venderObj, setVenderObj] = useState(defaultObj);\r\n const [venderList, setVenderList] = useState([]);\r\n const [venderFilter, setVenderFilter] = useState([]);\r\n const [venderValidation, setVenderValidation] = useState(validation);\r\n const [search, setSearch] = useState(\"\");\r\n const [selectedSerNo, setSelectedSerNo] = useState(0);\r\n const [isActive, setIsActive] = useState(false);\r\n //#endregion\r\n //#region UseEffect\r\n useEffect(() => {\r\n fillVenderData();\r\n }, []);\r\n //#endregion\r\n //#region Custom Function\r\n const fillVenderData = () => {\r\n setIsActive(true);\r\n GetLaundryVenderMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setIsActive(false);\r\n setVenderList(d.data);\r\n setVenderFilter(d.data);\r\n console.log(\"VenderData\", d.data);\r\n if (d.data && d.data.length > 0) {\r\n if (venderObj.Mode == \"Add\" || venderObj.Mode == \"Edit\") {\r\n let obj = d.data.find(x => x.VenderSerNo == venderObj.VenderSerNo);\r\n obj.Mode = \"View\";\r\n setVenderObj(obj);\r\n console.log(\"AddEditData\", obj);\r\n }\r\n else {\r\n d.data[0].Mode = \"View\";\r\n setVenderObj(d.data[0]);\r\n console.log(\"Default Data\", d.data[0]);\r\n }\r\n }\r\n })\r\n }\r\n const clearValidation = () => {\r\n setVenderValidation(validation);\r\n }\r\n const isValidPage = () => {\r\n let valid = true;\r\n if (venderObj.VenderName.trim().length == 0 || /[-’/`~!#*$@_%+=.,^&(){}[\\]|;:”<>?\\\\]/g.test(venderObj.VenderName) == true) {\r\n valid = false;\r\n setVenderValidation((prev) => ({ ...prev, VenderName: \"invalid vender name\" }))\r\n }\r\n return valid;\r\n }\r\n //#endregion\r\n //#region Event Handler\r\n const handleClickOnSearch = (e) => {\r\n setSearch(e);\r\n setVenderObj(defaultObj);\r\n let temp = [];\r\n venderList.forEach((ele) => {\r\n if (ele.VenderName.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(ele);\r\n }\r\n });\r\n setVenderFilter(temp)\r\n }\r\n const handleClickOnVender = (e) => {\r\n clearValidation();\r\n let obj = venderList.find(v => v.VenderSerNo == e.target.id);\r\n obj.Mode = \"View\";\r\n setVenderObj(obj);\r\n console.log(\"Vender Clicked\", obj);\r\n setSelectedSerNo(e.target.id);\r\n }\r\n const handleClickOnAdd = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setVenderObj(obj);\r\n }\r\n const handleClickOnEdit = () => {\r\n if (venderObj.VenderName == \"\") {\r\n alertFunction(\"Please select vender from list\");\r\n }\r\n else {\r\n setVenderObj((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n setSelectedSerNo(venderObj.VenderSerNo);\r\n }\r\n }\r\n const handleClickOnCancel = () => {\r\n let existingObj = venderList.find(x => x.VenderSerNo == selectedSerNo);\r\n console.log(\"CancelClick\", existingObj);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setVenderObj(existingObj);\r\n }\r\n else {\r\n setVenderObj(defaultObj);\r\n }\r\n }\r\n const SearchEdit = () => {\r\n GetLaundryVenderMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n let temp = d.data.filter(x => x.VenderName.toLowerCase().includes(search.toLowerCase()));\r\n setVenderFilter(temp);\r\n });\r\n }\r\n const handleClickOnSave = () => {\r\n let valid = isValidPage();\r\n if (valid) {\r\n setIsActive(true);\r\n AddEditLaundryVenderMaster(venderObj).then(d => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n fillVenderData();\r\n if (venderObj.Mode == \"Add\" || venderObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n SearchEdit();\r\n return;\r\n }\r\n venderObj.VenderSerNo = parseInt(d.data.ReturnValue);\r\n }\r\n }\r\n else {\r\n alertFunction(\"failed\");\r\n }\r\n });\r\n setVenderObj((prev) => ({ ...prev, Mode: \"View\" }))\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n //#endregion\r\n\r\n return (\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Laundry Vender Master

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      Laundry Vender List
      \r\n
      \r\n
        \r\n {\r\n venderFilter.map(d =>\r\n
      • \r\n \r\n {d.VenderName}\r\n
      • \r\n )\r\n }\r\n {/*
      • List 2
      • */}\r\n
      \r\n
      \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
      \r\n
      \r\n\r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n {\r\n\r\n setVenderObj((prev) => ({ ...prev, VenderName: v }));\r\n setVenderValidation((prev) => ({ ...prev, VenderName: \"\" }));\r\n console.log(v)\r\n\r\n }}\r\n >Vender Name\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n Activate console.log(v)} id=\"1\">\r\n {\r\n venderObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n\r\n {/* setShowDepositTermTypeModal(!showDepositTermTypeModal)}>Add Deposit Term Type*/}\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnSingleDateSelection\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { GetLaundryServiceMaster, AddEditLaundryServiceMaster } from \"../../../../services/housekeepingServiceMaster\";\r\nimport { GetTransactionMaster } from \"../../../../services/reservationService\";\r\nexport function LaundryServiceMaster() {\r\n //#region Local variableso \r\n const currUser = useSelector(currentUser);\r\n const defaultObj = { ClientSerNo: parseInt(currUser.ClientSerNo), Mode: \"\", LaundryServiceName: \"\", LaundryServiceSerNo: 0, TransactionSerNo: 0 }\r\n const [selected, setSelected] = useState(defaultObj);\r\n const [laundryServiceList, setLaundryServiceList] = useState([]);\r\n const [resultList, setResultList] = useState([])\r\n const [search, setSearch] = useState(\"\");\r\n const [old, setOld] = useState(0);\r\n const [validation, setValidation] = useState({});\r\n const [loadTransactions, setLoadTransactions] = useState([]);\r\n\r\n const scrollRef = useRef();\r\n\r\n //#endregion \r\n\r\n\r\n\r\n //#region UseEffect\r\n useEffect(() => {\r\n GetAllData(0);\r\n fillTransactionDropDown();\r\n\r\n }, []);\r\n //#endregion\r\n\r\n const GetAllData = (x) => {\r\n GetLaundryServiceMaster(parseInt(currUser.ClientSerNo)).then(resp => {\r\n if (x == 0) {\r\n if (resp.data.length != 0) {\r\n setSelected(resp.data[0]);\r\n }\r\n }\r\n setLaundryServiceList(resp.data);\r\n setResultList(resp.data);\r\n })\r\n }\r\n //#region Transaction Dropdown Load\r\n const fillTransactionDropDown = () => {\r\n GetTransactionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"C\", \"ALL\").then(resp => {\r\n let temp = [{ key: 0, value: \"Select\" }]\r\n resp.data.forEach(element => {\r\n temp.push({ key: element.TransactionSerNo, value: element.Name })\r\n })\r\n setLoadTransactions(temp);\r\n })\r\n }\r\n //#endregion\r\n //#region Events\r\n const handleClickAdd = () => {\r\n setOld(selected.LaundryServiceSerNo)\r\n handleChangeSearch(\"\");\r\n setSelected((prev) => ({ ...prev, LaundryServiceName: \"\", LaundryServiceSerNo: 0, Mode: \"Add\" }))\r\n }\r\n const handleClickEdit = () => {\r\n if (selected.LaundryServiceSerNo == 0) {\r\n alert(\"Please select the laundry service first\")\r\n return\r\n }\r\n setSelected((prev) => ({ ...prev, Mode: \"Edit\" }))\r\n setOld(selected.LaundryServiceSerNo)\r\n }\r\n const searchEdit = () => {\r\n GetLaundryServiceMaster(parseInt(currUser.ClientSerNo)).then(resp => {\r\n setLaundryServiceList(resp.data);\r\n setSelected(defaultObj)\r\n let temp = []\r\n resp.data.forEach(x => {\r\n if (x.LaundryServiceName.toLowerCase().includes(search.toLowerCase())) {\r\n temp.push(x);\r\n }\r\n });\r\n setResultList(temp);\r\n })\r\n }\r\n\r\n const AddEditAPI = (selected) => {\r\n AddEditLaundryServiceMaster(selected).then(resp => {\r\n if (resp.status == 200) {\r\n alert(\"Successful\");\r\n setValidation((prev) => ({ ...prev, LaundryServiceName: \"\" }))\r\n setSelected((prev) => ({ ...prev, LaundryServiceSerNo: parseInt(resp.data.ReturnValue) }))\r\n if (selected.Mode == \"Add\" || selected.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit()\r\n return;\r\n }\r\n setTimeout(() => {\r\n if (scrollRef.current != null) {\r\n scrollRef.current.scrollIntoView({ behaviour: \"smooth\" });\r\n }\r\n }, 100)\r\n }\r\n GetAllData();\r\n }\r\n }\r\n )\r\n }\r\n const isValidpage = () => {\r\n let isValid = true;\r\n function containsSpecialChars(str) { const specialChars = /[`!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?~]/; return specialChars.test(str); }\r\n if (selected.LaundryServiceName.trim().length == 0 || containsSpecialChars(selected.LaundryServiceName.trim())) {\r\n setValidation((prev) => ({ ...prev, LaundryServiceName: \"Please enter valid name\" }))\r\n isValid = false;\r\n }\r\n return isValid\r\n }\r\n\r\n const handleClickSave = () => {\r\n let isValid = isValidpage();\r\n if (isValid) {\r\n let temp = selected;\r\n temp.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n AddEditAPI(temp);\r\n setSelected((prev) => ({ ...prev, Mode: \"Save\" }))\r\n }\r\n\r\n }\r\n\r\n const handleClickCancel = () => {\r\n setValidation((prev) => ({ ...prev, LaundryServiceName: \"\" }))\r\n if (old == 0) {\r\n setSelected(defaultObj)\r\n }\r\n else {\r\n laundryServiceList.forEach(element => {\r\n if (element.LaundryServiceSerNo == old) {\r\n setSelected(element);\r\n }\r\n });\r\n }\r\n }\r\n\r\n const handleChangeName = (e) => {\r\n setValidation((prev) => ({ ...prev, LaundryServiceName: \"\" }))\r\n setSelected((prev) => ({ ...prev, LaundryServiceName: e }));\r\n }\r\n\r\n const handleChangeSearch = (e) => {\r\n setSearch(e);\r\n setValidation((prev) => ({ ...prev, LaundryServiceName: \"\" }))\r\n setSelected((prev) => ({ ...prev, LaundryServiceName: \"\", LaundryServiceSerNo: 0, Mode: \"\" }))\r\n let temp = []\r\n laundryServiceList.forEach(element => {\r\n if (element.LaundryServiceName.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(element);\r\n }\r\n });\r\n setResultList(temp);\r\n }\r\n const handleClickLaundryServiceType = (service) => {\r\n setValidation((prev) => ({ ...prev, LaundryServiceName: \"\" }))\r\n setSelected(service)\r\n }\r\n\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Laundry Service Master

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n { handleChangeSearch(e) }} value={search} OnCancelClick={() => handleChangeSearch(\"\")}>Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      Laundry Service List
      \r\n
      \r\n
        \r\n {resultList.map((service, index) => {\r\n return (\r\n
      • handleClickLaundryServiceType(service)}\r\n ref={(service.LaundryServiceSerNo == selected.LaundryServiceSerNo) ? scrollRef : null}\r\n className={(service.LaundryServiceSerNo == selected.LaundryServiceSerNo) ? \"active\" : \"\"}\r\n > {service.LaundryServiceName}
      • \r\n )\r\n })\r\n }\r\n
      \r\n\r\n
      \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
      \r\n
      \r\n\r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n Laundry Service Name\r\n
      \r\n {\r\n setValidation((prev) => ({ ...prev, TransactionSerNo: \"\" }))\r\n setSelected((prev) => ({ ...prev, TransactionSerNo: v.key }));\r\n console.log(v)\r\n }}\r\n selectedSerNo={selected.TransactionSerNo}\r\n customError={validation.TransactionSerNo}\r\n disabled={selected.Mode == \"Add\" || selected.Mode == \"Edit\" ? false : true}\r\n label=\"Transaction\"\r\n searchable={[\"Search\", \"No matching Transaction\"]}\r\n >\r\n
      \r\n
      \r\n \r\n
      \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n {selected.Mode == \"Edit\" || selected.Mode == \"Add\" ?\r\n <>\r\n Cancel\r\n Save\r\n \r\n :\r\n <>\r\n Edit\r\n Add\r\n \r\n }\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnSingleDateSelection\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { GetLaundryMaster, AddEditLaundryMaster } from \"../../../../services/housekeepingServiceMaster\";\r\nimport { GetTransactionMaster } from \"../../../../services/reservationService\";\r\nexport function LaundryMaster() {\r\n\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = { ClientSerNo: parseInt(currUser.ClientSerNo), PropertySerNo: parseInt(currUser.PropertySerNo), LaundrySerNo: 0, Name: \"\", TransactionSerNo: 0, InvoicePrinter: \"\", Prefix: \"\", InvoiceCopyNo: \"\", Mode: \"\" }\r\n const [selected, setSelected] = useState(defaultObj);\r\n const [old, setOld] = useState({});\r\n const [validation, setValidation] = useState({ Name: \"\", TransactionSerNo: \"\", InvoicePrinter: \"\", Prefix: \"\", InvoiceCopyNo: \"\" });\r\n const [transactonCodeList, setTransactionCodeList] = useState([]);\r\n const [isDataAvailable,setIsDataAvailable]=useState(false);\r\n //#region \r\n useEffect(() => {\r\n GetAllData();\r\n GetTransactionMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), \"C\", \"F\").then(resp => {\r\n\r\n let temp = [{ key: \"SEL\", value: \"Select\" }]\r\n\r\n resp.data.forEach(element => {\r\n\r\n temp.push({ key: element.TransactionSerNo, value: element.Name })\r\n\r\n })\r\n\r\n setTransactionCodeList(temp);\r\n\r\n })\r\n }, []);\r\n //#endregion\r\n\r\n const GetAllData = () => {\r\n\r\n GetLaundryMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n if (resp.data.length != 0) {\r\n setSelected(resp.data[0]);\r\n setIsDataAvailable(true);\r\n }else{\r\n setIsDataAvailable(false);\r\n }\r\n })\r\n }\r\n //#region Events\r\n const handleClickAdd = () => {\r\n if (isDataAvailable) {\r\n console.log(selected);\r\n alert(\"No more item can be inserted\");\r\n return;\r\n }\r\n setOld(selected)\r\n setSelected((prev) => ({ ...prev, Name: \"\", LaundrySerNo: 0, TransactionSerNo: \"SEL\", Prefix: \"\", InvoiceCopyNo: 0, InvoicePrinter: \"\", Mode: \"Add\" }))\r\n }\r\n const handleClickEdit = () => {\r\n if (selected.LaundrySerNo == 0) {\r\n alert(\"Please add the laundry service first\")\r\n return\r\n }\r\n setSelected((prev) => ({ ...prev, Mode: \"Edit\" }))\r\n setOld(selected)\r\n }\r\n\r\n const AddEditAPI = (selected) => {\r\n AddEditLaundryMaster(selected).then(resp => {\r\n if (resp.status == 200) {\r\n alert(\"Successful\");\r\n setValidation((prev) => ({ ...prev, Name: \"\" }))\r\n setSelected((prev) => ({ ...prev, LaundrySerNo: parseInt(resp.data.ReturnValue) }))\r\n GetAllData();\r\n }\r\n }\r\n )\r\n }\r\n\r\n const isValidpage = () => {\r\n let isValid = true;\r\n function containsSpecialChars(str) { const specialChars = /[`!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?~]/; return specialChars.test(str); }\r\n if (selected.Name.trim().length == 0 || containsSpecialChars(selected.Name.trim())) {\r\n setValidation((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n isValid = false\r\n }\r\n if (selected.InvoiceCopyNo != 0 && isNaN(selected.InvoiceCopyNo)) {\r\n setValidation((prev) => ({ ...prev, InvoiceCopyNo: \"Please enter valid invoice copy number\" }))\r\n isValid = false\r\n }\r\n if (selected.TransactionSerNo == \"SEL\") {\r\n setValidation((prev) => ({ ...prev, TransactionSerNo: \"Please select transaction\" }));\r\n isValid = false\r\n }\r\n return isValid\r\n }\r\n\r\n const handleClickSave = () => {\r\n let isValid = isValidpage();\r\n if (isValid) {\r\n let temp = selected;\r\n temp.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n temp.InvoiceCopyNo = parseInt(temp.InvoiceCopyNo)\r\n AddEditAPI(temp);\r\n setSelected((prev) => ({ ...prev, Mode: \"Save\" }))\r\n }\r\n\r\n }\r\n\r\n const handleClickCancel = () => {\r\n setValidation((prev) => ({ ...prev, Name: \"\", TransactionSerNo: \"\", InvoicePrinter: \"\", Prefix: \"\", InvoiceCopyNo: \"\" }))\r\n if (old == 0) {\r\n setSelected(defaultObj)\r\n }\r\n else {\r\n setSelected(old);\r\n }\r\n }\r\n\r\n const handleChangeName = (e) => {\r\n setValidation((prev) => ({ ...prev, Name: \"\" }))\r\n setSelected((prev) => ({ ...prev, Name: e }));\r\n }\r\n\r\n const handleChangePrefix = (e) => {\r\n setValidation((prev) => ({ ...prev, Prefix: \"\" }))\r\n setSelected((prev) => ({ ...prev, Prefix: e }));\r\n }\r\n const handleChangeTransactionSerNo = (e) => {\r\n setValidation((prev) => ({ ...prev, TransactionSerNo: \"\" }))\r\n console.log(\"hi this is rishi \", e)\r\n setSelected((prev) => ({ ...prev, TransactionSerNo: e.key }));\r\n }\r\n const handleChangeInvoice = (e) => {\r\n setValidation((prev) => ({ ...prev, InvoicePrinter: \"\" }))\r\n setSelected((prev) => ({ ...prev, InvoicePrinter: e }));\r\n }\r\n const handleChangeInvoiceCopy = (e) => {\r\n setValidation((prev) => ({ ...prev, InvoiceCopyNo: \"\" }))\r\n setSelected((prev) => ({ ...prev, InvoiceCopyNo: e }));\r\n }\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Laundry Master

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Name\r\n
      \r\n \r\n
      \r\n\r\n Invoice Printer\r\n Prefix\r\n Invoice Copy No.\r\n
      \r\n
      \r\n\r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n {selected.Mode == \"Edit\" || selected.Mode == \"Add\" ?\r\n <>\r\n Cancel\r\n Save\r\n \r\n :\r\n <>\r\n Edit\r\n Add\r\n \r\n }\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { GetLaundryCategoryMaster, GetLaundryVenderMaster, GetLaundryItemMaster, GetLaundryItemRateMaster, AddEditItemRateMaster } from \"../../../../services/housekeepingServiceMaster\";\r\nexport function LaundryItemRateMaster() {\r\n const currUser = useSelector(currentUser)\r\n const [venderList, setVenderList] = useState([])\r\n const [categoryList, setCetegoryList] = useState([])\r\n const defaultObj = { ClientSerNo: parseInt(currUser.ClientSerNo), PropertySerNo: parseInt(currUser.PropertySerNo), VenderSerNo: 0, LaundryItemSerNo: 0, LaundryItemCategorySerNo: 0 ,isDelete:false}\r\n const [obj, setObj] = useState(defaultObj)\r\n const [resultList, setResultList] = useState([]);\r\n const [itemList, setItemList] = useState([])\r\n const [selectedList, setSelectedList] = useState([]);\r\n const [isEdit, setIsEdit] = useState(false);\r\n const [search, setSearch] = useState(\"\");\r\n const validationObj={ValVenderSerNo:\"\",ValSalesRate:\"\",ValCostRate:\"\"}\r\n const [defaultList,setDefaultList]=useState([])\r\n const [validation,setValidation]=useState(validationObj);\r\n useEffect(() => {\r\n GetLaundryCategoryMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n console.log(resp.data);\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n resp.data.forEach(element => {\r\n temp.push({ key: element.LaundryItemCategorySerNo, value: element.LaundryItemCategoryName })\r\n });\r\n setCetegoryList(temp)\r\n })\r\n GetLaundryItemMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n console.log(\">>>>>>>\", resp.data);\r\n setItemList(resp.data);\r\n })\r\n GetLaundryVenderMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(resp => {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n resp.data.forEach(element => {\r\n temp.push({ key: element.VenderSerNo, value: element.VenderName })\r\n });\r\n setVenderList(temp);\r\n })\r\n }, [])\r\n\r\n const handleChangeVender = (e) => {\r\n setIsEdit(false)\r\n setObj(prev => ({ ...prev, VenderSerNo: e.key }))\r\n setValidation(prev => ({ ...prev, VenderSerNo:\"\" }))\r\n setObj(prev => ({ ...prev, LaundryItemSerNo: 0 }))\r\n setSelectedList([]);\r\n }\r\n const handleChangeCategory = (e) => {\r\n setIsEdit(false)\r\n setObj(prev => ({ ...prev, LaundryItemSerNo: 0, LaundryItemCategorySerNo: e.key }))\r\n let temp = [];\r\n console.log(e);\r\n itemList.forEach(element => {\r\n if (element.LaundryItemCategorySerNo == e.key) {\r\n temp.push(element);\r\n }\r\n });\r\n setSelectedList([])\r\n setResultList(temp);\r\n }\r\n\r\n const GetApi=(x)=>{\r\n GetLaundryItemRateMaster(obj.ClientSerNo, obj.PropertySerNo, x.LaundryItemSerNo, obj.VenderSerNo).then(resp => {\r\n console.log(resp.data);\r\n resp.data.forEach((element, index) => {\r\n element[\"key\"] = index + 1;\r\n element[\"VenderSerNo\"] = obj.VenderSerNo;\r\n if (element.IsDiscountable == 0) {\r\n element.IsDiscountable = false;\r\n }\r\n else {\r\n element.IsDiscountable = true\r\n }\r\n });\r\n setDefaultList(JSON.parse(JSON.stringify(resp.data)));\r\n setSelectedList(JSON.parse(JSON.stringify(resp.data)));\r\n })\r\n }\r\n const handleChangeObj = (laundryItem) => {\r\n if (obj.VenderSerNo == 0) {\r\n setValidation((prev)=>({...prev,VenderSerNo:\"Please select the Vender first\"}))\r\n return\r\n }\r\n setValidation(validationObj)\r\n setIsEdit(false)\r\n setObj(prev => ({ ...prev, LaundryItemSerNo: laundryItem.LaundryItemSerNo }))\r\n GetApi(laundryItem)\r\n }\r\n\r\n const handleChangeSalesRate = (index, e) => {\r\n let temp = selectedList;\r\n selectedList.forEach(element => {\r\n if (element.key == index + 1) {\r\n temp[index].SalesRate = (e);\r\n if(temp[index].ValSalesRate!=undefined||temp[index].ValSalesRate!=null){\r\n temp[index].ValSalesRate=\"\"\r\n }\r\n }\r\n });\r\n console.log(temp);\r\n setSelectedList(JSON.parse(JSON.stringify(temp)));\r\n }\r\n\r\n const handleChangeCostRate = (index, e) => {\r\n let temp = selectedList;\r\n selectedList.forEach(element => {\r\n if (element.key == index + 1) {\r\n temp[index].CostRate = (e);\r\n if(temp[index].ValCostRate!=undefined||temp[index].ValCostRate!=null){\r\n temp[index].ValCostRate=\"\"\r\n }\r\n }\r\n });\r\n setSelectedList(JSON.parse(JSON.stringify(temp)));\r\n }\r\n\r\n const handleChangeDiscountable = (index, e) => {\r\n let temp = JSON.parse(JSON.stringify(selectedList));\r\n temp.forEach(element => {\r\n if (element.key === index + 1) {\r\n element.IsDiscountable = e;\r\n if(temp[index].ValIsDiscountable!=undefined||temp[index].ValIsDiscountable!=null){\r\n temp[index].ValIsDiscountable=\"\"\r\n }\r\n }\r\n });\r\n setSelectedList(JSON.parse(JSON.stringify(temp)));//(temp);\r\n }\r\n const handleClickEdit = () => {\r\n if (obj.LaundryItemSerNo == 0) {\r\n alert(\"Please select the item first\")\r\n return;\r\n }\r\n setIsEdit(true)\r\n }\r\n const handleIsValid = () => {\r\n let validity = true;\r\n let temp=selectedList;\r\n selectedList.forEach((element,index) => {\r\n if(element.SalesRate==null || element.SalesRate===\"\" ){\r\n element[\"ValSalesRate\"]=\"This entry can not be null\"\r\n temp[index].ValSalesRate=element.ValSalesRate;\r\n validity=false;\r\n }\r\n if(element.CostRate==null || element.CostRate===\"\"){\r\n element[\"ValCostRate\"]=\"This entry can not be null\"\r\n temp[index].ValCostRate=element.ValCostRate;\r\n validity=false;\r\n }\r\n if(isNaN(element.SalesRate)){\r\n element[\"ValSalesRate\"]=\"Please enter a number\"\r\n temp[index].ValSalesRate=element.ValSalesRate;\r\n validity=false;\r\n }\r\n if(isNaN(element.CostRate)){\r\n element[\"ValCostRate\"]=\"Please enter a number\"\r\n temp[index].ValCostRate=element.ValCostRate;\r\n validity=false;\r\n }\r\n if(element.SalesRate<0){\r\n element[\"ValSalesRate\"]=\"This value can not be negative\"\r\n temp[index].ValSalesRate=element.ValSalesRate;\r\n validity=false;\r\n }\r\n if(element.CostRate<0){\r\n element[\"ValCostRate\"]=\"This value can not be negative\"\r\n temp[index].ValCostRate=element.ValCostRate;\r\n validity=false;\r\n }\r\n if(element.SalesRate!=0 && element.SalesRate!=null && element.SalesRate!=\"\"){\r\n if(element.CostRate==0||element.CostRate==null || element.CostRate===\"\"){\r\n element[\"ValCostRate\"]=\"This field can not be null or 0\";\r\n temp[index].ValCostRate=element.ValCostRate;\r\n validity=false; \r\n }\r\n }\r\n if(element.CostRate!=0 && element.CostRate!=null && element.CostRate!=\"\"){\r\n if(element.SalesRate==0||element.SalesRate==null || element.SalesRate===\"\"){\r\n element[\"ValSalesRate\"]=\"This field can not be null or 0\";\r\n temp[index].ValSalesRate=element.ValSalesRate;\r\n validity=false; \r\n }\r\n }\r\n });\r\n console.log(temp);\r\n setSelectedList(JSON.parse(JSON.stringify(temp)));\r\n return validity;\r\n }\r\n const handleClickSave = () => {\r\n let valid = handleIsValid();\r\n console.log('hey', selectedList);\r\n if (valid) {\r\n let temp = [];\r\n selectedList.forEach((x) => {\r\n if (x.SalesRate != null && x.CostRate != null\r\n && x.SalesRate != 0 && x.SalesRate != undefined && x.CostRate != 0 && x.CostRate != undefined) {\r\n x.SalesRate = parseInt(x.SalesRate)\r\n x.CostRate = parseInt(x.CostRate)\r\n temp.push(x)\r\n }\r\n })\r\n if(temp.length==0){\r\n obj.isDelete=true;\r\n temp.push(obj)\r\n }\r\n AddEditItemRateMaster(temp).then(resp => {\r\n alert(resp.data.Message);\r\n setValidation(validationObj)\r\n setIsEdit(false)\r\n GetApi(obj)\r\n })\r\n }\r\n }\r\n const handleChangeSearch = (e) => {\r\n setValidation(validationObj)\r\n setSearch(e);\r\n setSelectedList([])\r\n setObj((prev) => ({ ...prev, LaundryItemSerNo: 0 }))\r\n let temp = []\r\n itemList.forEach(element => {\r\n console.log(obj)\r\n if (element.LaundryItemName.toLowerCase().includes(e.toLowerCase()) && element.LaundryItemCategorySerNo == obj.LaundryItemCategorySerNo) {\r\n temp.push(element);\r\n }\r\n });\r\n setResultList(temp);\r\n }\r\n const handleClickCancel=()=>{\r\n console.log(defaultList);\r\n setSelectedList(JSON.parse(JSON.stringify(defaultList)));\r\n setIsEdit(!isEdit);\r\n setValidation(validationObj)\r\n }\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Laundry Item Rate Master

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n { handleChangeSearch(e) }} value={search} OnCancelClick={() => handleChangeSearch(\"\")}>Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Item Category List\r\n
      \r\n
        \r\n {resultList.map((laundryItem, index) => {\r\n return (\r\n handleChangeObj(laundryItem)}\r\n className={(laundryItem.LaundryItemSerNo == obj.LaundryItemSerNo) ? \"active\" : \"\"}\r\n > {laundryItem.LaundryItemName} \r\n )\r\n })\r\n }\r\n
      \r\n
      \r\n
      \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {selectedList.map((item, index) => {\r\n return \r\n \r\n \r\n \r\n \r\n \r\n \r\n })}\r\n \r\n
      Laundry ServiceHotel ServiceCost RateSales RateDiscount
      {item.LaundryServiceName}{item.HotelServiceName} { handleChangeCostRate(index, e) }}\r\n >\r\n { handleChangeSalesRate(index, e) }}\r\n >\r\n \r\n \r\n { handleChangeDiscountable(index, e) }}\r\n disabled={!isEdit} \r\n customError={item.ValIsDiscountable} \r\n >\r\n
      \r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n {isEdit == true ?\r\n <>\r\n Cancel\r\n Save\r\n \r\n :\r\n <>\r\n Edit\r\n \r\n }\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnSingleDateSelection\r\n} from \"../../../../component\";\r\nimport { GetHKServiceMaster,AddEditHKServiceMaster} from \"../../../../services/housekeepingServiceMaster\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport function HKServiceMaster() {\r\n //#region StateVariables\r\n const currUser = useSelector(currentUser);\r\n const defaultObj={ClientSerNo:parseInt(currUser.ClientSerNo),PropertySerNo:parseInt(currUser.PropertySerNo),Mode:\"\",HKServiceName:\"\",HKServiceSerNo:0}\r\n const [selected,setSelected]=useState(defaultObj);\r\n const [hkServiceList,setHKServiceList]=useState([]);\r\n const [resultList,setResultList]=useState([])\r\n const [search,setSearch]=useState(\"\");\r\n const [old,setOld]=useState(0);\r\n const [validation,setValidation]=useState({});\r\n const scrollRef=useRef();\r\n\r\n //#endregion \r\n\r\n //#region UseEffect\r\n useEffect(() => {\r\n GetAllData(0);\r\n }, []);\r\n //#endregion\r\n\r\n //#region LocalFunction\r\n\r\n //#endregion\r\n\r\n const GetAllData=(x)=>{\r\n GetHKServiceMaster(parseInt(currUser.ClientSerNo),parseInt(currUser.PropertySerNo)).then(resp=>{\r\n if (x == 0) {\r\n if (resp.data.length != 0) {\r\n setSelected(resp.data[0]); }\r\n }\r\n setHKServiceList(resp.data);\r\n setResultList(resp.data);\r\n })\r\n }\r\n //#region Events\r\n const handleClickAdd=()=>{\r\n setOld(selected.HKServiceSerNo)\r\n handleChangeSearch(\"\")\r\n setSelected((prev)=>({...prev,HKServiceName:\"\",HKServiceSerNo:0,Mode:\"Add\"}))\r\n }\r\n const handleClickEdit=()=>{\r\n if(selected.HKServiceSerNo==0){\r\n alert(\"Please select the Service name first\")\r\n return\r\n }\r\n setSelected((prev)=>({...prev,Mode:\"Edit\"}))\r\n setOld(selected.HKServiceSerNo)\r\n }\r\n const searchEdit = () => {\r\n GetHKServiceMaster(parseInt(currUser.ClientSerNo),parseInt(currUser.PropertySerNo)).then(resp=>{\r\n setHKServiceList(resp.data);\r\n setSelected(defaultObj)\r\n let temp = []\r\n resp.data.forEach(x => {\r\n if (x.HKServiceName.toLowerCase().includes(search.toLowerCase())) {\r\n temp.push(x);\r\n }\r\n });\r\n setResultList(temp);\r\n })\r\n }\r\n\r\n\r\n const AddEditAPI=(selected)=>{\r\n AddEditHKServiceMaster(selected).then(resp=>{\r\n if(resp.status==200){\r\n alert(\"Successful\");\r\n setValidation((prev)=>({...prev,Name:\"\"}))\r\n setSelected((prev)=>({...prev,HKServiceSerNo:parseInt(resp.data.ReturnValue)}))\r\n if (selected.Mode == \"Add\" || selected.Mode==\"Edit\") {\r\n if (search != \"\") {\r\n searchEdit()\r\n return;\r\n }\r\n setTimeout(() => {\r\n if(scrollRef.current!=null){\r\n scrollRef.current.scrollIntoView({ behaviour: \"smooth\" });\r\n }\r\n }, 100)\r\n }\r\n \r\n GetAllData();\r\n } \r\n }\r\n )\r\n }\r\n\r\n const handleClickSave=()=>{\r\n if(selected.HKServiceName.trim().length==0)\r\n {\r\n setValidation((prev)=>({...prev,Name:\"Please enter valid name\"}))\r\n return;\r\n }\r\n AddEditAPI(selected)\r\n setSelected((prev)=>({...prev,Mode:\"Save\"}))\r\n }\r\n\r\n const handleClickCancel=()=>{\r\n setValidation((prev)=>({...prev,Name:\"\"}))\r\n if(old==0){\r\n setSelected(defaultObj)\r\n }\r\n else{\r\n hkServiceList.forEach(element => {\r\n if(element.HKServiceSerNo==old ){\r\n setSelected(element);\r\n }\r\n });\r\n }\r\n \r\n }\r\n\r\n const handleChangeName=(e)=>{\r\n setSelected((prev)=>({...prev,HKServiceName:e}));\r\n }\r\n\r\n const handleChangeSearch=(e)=>{\r\n setSearch(e);\r\n setSelected((prev)=>({...prev,HKServiceName:\"\",HKServiceSerNo:0,Mode:\"\"}))\r\n let temp=[] \r\n hkServiceList.forEach(element => {\r\n if (element.HKServiceName.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(element);\r\n }\r\n });\r\n setResultList(temp);\r\n }\r\n const handleClickHKService=(HKService)=>{\r\n setValidation((prev)=>({...prev,Name:\"\"}))\r\n setSelected(HKService)\r\n } \r\n return (\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      HK Service Master

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n {handleChangeSearch(e)}} value={search} OnCancelClick={()=>handleChangeSearch(\"\")}>Search \r\n
      \r\n \r\n
      \r\n
      \r\n
      HK Service List
      \r\n
      \r\n
        \r\n {\r\n resultList.map((HKService, index) => {\r\n return (\r\n
      • handleClickHKService(HKService)} \r\n ref={(HKService.HKServiceSerNo == selected.HKServiceSerNo) ? scrollRef : null}\r\n id={HKService.HKServiceSerNo} \r\n className={(HKService.HKServiceSerNo == selected.HKServiceSerNo) ? \"active\" : \"\"} \r\n > {HKService.HKServiceName}
      • \r\n )\r\n })\r\n }\r\n
      \r\n
      \r\n {\r\n setPage(v);\r\n }} */\r\n />\r\n
      \r\n
      \r\n\r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n HK Service Name\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n {selected.Mode == \"Edit\" || selected.Mode == \"Add\" ?\r\n <>\r\n Cancel\r\n Save\r\n \r\n :\r\n <>\r\n Edit\r\n Add\r\n \r\n }\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnButtonTypeWithDropdown,\r\n InnPrimaryButton,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnSingleDateSelection,\r\n InnTableGrid,\r\n useConfirm,\r\n InnDataGrid\r\n} from \"../../../component\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../reducer/authSlice\";\r\nimport LeftMenuArrow from \"../../../assets/images/inside-left-menu-arrow.svg\";\r\nimport { GetLaundryTransaction } from \"../../../services/housekeepingServiceMaster\";\r\nimport { GetPropertyParameterByKeys, GetUsersList } from \"../../../services/reservationService\";\r\nimport moment, { isDate } from \"moment\";\r\nimport { GetLaundryVenderMaster } from \"../../../services/housekeepingServiceMaster\";\r\nimport PostLaundryTransactionModalPopup from \"./modalPopup/postLaundryTransactionModalPopup\";\r\n\r\nexport function LaundryList() {\r\n\r\n //#region local variables\r\n\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n const currUser = useSelector(currentUser);\r\n const propertyParameters = ['BusinessDate'];\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n FromDate: \"\",\r\n ToDate: \"\",\r\n InvoiceNo: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n UserID: \"\",\r\n VenderSerNo: null,\r\n RoomNo: \"\",\r\n SortCol: \"\",\r\n SortType: \"\",\r\n PageNo: 1\r\n };\r\n const defaultLaundryValidation = {\r\n InvoiceNo: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n RoomNo: \"\"\r\n };\r\n //#endregion\r\n\r\n //#region state\r\n const [laundryObj, setLaundryObj] = useState(defaultObj);\r\n const [laundryValidation, setLaundryValidation] = useState(defaultLaundryValidation);\r\n const [displayList, setDisplayList] = useState([]);\r\n const [list, setList] = useState([]);\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n const [IsLoaded, setIsLoaded] = useState(false);\r\n const [venderList, setVenderList] = useState([]);\r\n const [userList, setUserList] = useState([]);\r\n const [selectedRow, setSelectedRow] = useState({});\r\n const [pageNo, setPageNo] = useState(1);\r\n const [pageCount, setPageCount] = useState(1);\r\n //#endregion\r\n\r\n //#region services\r\n const fillList = () => {\r\n console.log(\"obj before.\", laundryObj);\r\n GetLaundryTransaction(laundryObj).then(d => {\r\n setList(d.data);\r\n d.data.forEach(x => {\r\n x.Tax = Math.abs(x.Tax).toFixed(2);\r\n x.Gross = parseInt(x.Gross).toFixed(2);\r\n x.NetAmount = parseInt(x.NetAmount).toFixed(2);\r\n if (x.LaundryDatetime !== null) {\r\n if (isDate(new Date(x.LaundryDatetime))) {\r\n x.LaundryDatetime = moment(new Date(x.LaundryDatetime)).format('ddd, Do MMM');\r\n } else {\r\n x.LaundryDatetime = \"\";\r\n }\r\n console.log(\"fsyr\", x.LaundryDatetime);\r\n }\r\n });\r\n let size = d.data.length;\r\n if (size === 0) {\r\n setPageCount(1);\r\n } else {\r\n setPageCount(Math.ceil(d.data[0].TotalRows / d.data[0].RowPerPage));\r\n }\r\n setDisplayList(d.data);\r\n });\r\n };\r\n const fillPropertyParameters = () => {\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), propertyParameters).then(d => {\r\n let busiDate = d.data.find(x => x.key === \"BusinessDate\");\r\n if (busiDate !== undefined) {\r\n setBusinessDate(busiDate.value);\r\n let date = moment(new Date(busiDate.value)).format('DD-MMM-YYYY');\r\n setLaundryObj(prev => ({ ...prev, FromDate: date, ToDate: date }));\r\n setIsLoaded(true);\r\n }\r\n });\r\n };\r\n const fillVenderList = () => {\r\n GetLaundryVenderMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n console.log(d.data);\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach(x => {\r\n temp.push({ key: x.VenderSerNo, value: x.VenderName });\r\n });\r\n setVenderList(temp);\r\n });\r\n };\r\n const fillUserList = () => {\r\n GetUsersList(parseInt(currUser.ClientSerNo)).then(d => {\r\n let temp = [{ key: \"\", value: \"Select\" }];\r\n d.data.forEach((x) => {\r\n temp.push({ key: x.UserID, value: x.UserID });\r\n });\r\n setUserList(temp);\r\n });\r\n };\r\n //#endregion\r\n\r\n //#region events\r\n const onlyAlpha = (str) => {\r\n return (/^[A-Za-z]+$/).test(str);\r\n };\r\n const onlyNum = (str) => {\r\n if (isNaN(str)) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n const withoutSpecialChar = (str) => {\r\n return (/^[A-Za-z0-9]+$/).test(str);\r\n };\r\n const IncreaseDateByNumber = (date, num) => {\r\n if (date !== undefined && num !== undefined) {\r\n let currDate = new Date(date);\r\n let temp = currDate.setDate(currDate.getDate() + parseInt(num));\r\n return moment(temp).format('DD-MMM-YYYY');\r\n } else {\r\n console.log(`none ${date}, ${num}`);\r\n }\r\n };\r\n const onResetClick = () => {\r\n let temp = defaultObj;\r\n temp.FromDate = businessDate;\r\n temp.ToDate = businessDate;\r\n setLaundryObj(temp);\r\n setLaundryValidation(defaultLaundryValidation);\r\n };\r\n const onApplyClick = () => {\r\n let IsPageValid = true;\r\n Object.keys(laundryValidation).forEach(x => {\r\n console.log(laundryValidation[x]);\r\n if (laundryValidation[x] !== \"\") {\r\n IsPageValid = false;\r\n }\r\n });\r\n if (IsPageValid) {\r\n if (pageNo === 1) {\r\n fillList();\r\n } else {\r\n setPageNo(1);\r\n }\r\n setShowAdvancedSearchModal(false);\r\n } else {\r\n alertFunction(\"One or more validation error occured please verify accordingly.\");\r\n }\r\n };\r\n const BillingActionPopup = (e) => {\r\n console.log(e);\r\n if (e.key === \"Post Laundry \") {\r\n setSelectedRow(prev => ({\r\n ...prev, SerNo\r\n : 0\r\n }));\r\n setShowPostLaundryModal(true);\r\n }\r\n };\r\n //#endregion\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n if (IsLoaded) {\r\n fillList();\r\n }\r\n }, [pageNo, IsLoaded, laundryObj.SortCol, laundryObj.SortType]);\r\n useEffect(() => {\r\n fillPropertyParameters();\r\n fillVenderList();\r\n fillUserList();\r\n }, []);\r\n //#endregion\r\n\r\n\r\n const columHeader = [\r\n { key: \"Bill No.\", value: \"InvoiceNo\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Bill Date\", value: \"LaundryDatetime\", type: \"txt\", sorting: \"Y\", align: 'center' },\r\n { key: \"Guest Name\", value: \"GuestName\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Room No.\", value: \"RoomNo\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Bill Amount\", value: \"Gross\", type: \"txt\", sorting: \"N\", align: 'right' },\r\n { key: \"Tax\", value: \"Tax\", type: \"txt\", sorting: \"N\", align: 'right' },\r\n { key: \"Net Amount\", value: \"NetAmount\", type: \"txt\", sorting: \"N\", align: 'right' },\r\n { key: \"Discount %\", value: \"Discount\", type: \"txt\", sorting: \"Y\", align: 'center' },\r\n { key: \"Post to Room\", value: \"IsPosted\", type: \"txt\", sorting: \"Y\", align: 'center' },\r\n { key: \"User Id\", value: \"UserID\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Complimentary (Y/N)\", value: \"IsComplimentary\", type: \"txt\", sorting: \"Y\", align: 'center' },\r\n { key: \"Service Vender\", value: \"VenderName\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Company on Folio\", value: \"CompanyonFolio\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n\r\n /* Page content height set start */\r\n\r\n /* Page content height set end */\r\n\r\n // Variable to show hide modal popup start\r\n const [showAdvancedSearchModal, setShowAdvancedSearchModal] = useState(false);\r\n\r\n const actionPopup = (item) => {\r\n if (item.key === \"Post Laundry\") {\r\n console.log('selectedrow', selectedRow);\r\n if (selectedRow.IsClose) {\r\n alertFunction(\"This bill is already settled and hence this action cannot be performed.\");\r\n } else {\r\n setShowPostLaundryModal(true);\r\n }\r\n }\r\n };\r\n\r\n /* Reservation Blue Popup outside click close start */\r\n const ReservationPopup = useRef(null);\r\n const handleClickOutside = (event) => {\r\n if (\r\n ReservationPopup.current &&\r\n !ReservationPopup.current.contains(event.target)\r\n ) {\r\n setShowPostLaundryModal(false);\r\n }\r\n };\r\n useEffect(() => {\r\n // Bind the event listener\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n // Unbind the event listener on clean up\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [ReservationPopup]);\r\n /* Reservation Blue Popup outside click clos eend */\r\n\r\n const [showPostLaundryModal, setShowPostLaundryModal] = useState(false);\r\n //#endregion Data Grid End\r\n const ActionOption = [\r\n { key: \"Post Laundry \", value: \"Post Laundry \" },\r\n { key: \"Preview Check\", value: \"Preview Check\" },\r\n { key: \"Void Check\", value: \"Void Check\" },\r\n { key: \"Reprint Bill\", value: \"Reprint Bill\" },\r\n { key: \"E mail Bill\", value: \"E mail Bill\" },\r\n { key: \"Reopen Bill\", value: \"Reopen Bill\" },\r\n ];\r\n const optBtnData = [\r\n { key: \"Post Laundry\", value: \"Manage Post Laundry\" },\r\n { key: \"Preview Check\", value: \"Preview Check\" },\r\n { key: \"Void Check\", value: \"Void Check\" },\r\n { key: \"Reprint Bill\", value: \"Reprint Bill\" },\r\n { key: \"E mail Bill\", value: \"E mail Bill\" },\r\n { key: \"Reopen Bill\", value: \"Reopen Bill\" },\r\n ];\r\n const [showLeftBlueBar, setshowLeftBlueBar] = useState(false);\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n //#endregion\r\n\r\n\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Laundry

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n {/* {\r\n setshowLeftBlueBar(true);\r\n }}\r\n >\r\n */}\r\n
      \r\n
      \r\n \r\n Export\r\n \r\n\r\n {\r\n console.log('item');\r\n BillingActionPopup(e);\r\n }}\r\n >\r\n \r\n \r\n setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }\r\n >\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n {\r\n console.log(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n }}\r\n fixedHeaderNo={2}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n actionPopup(item);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n setSelectedRow(rowdata);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n setLaundryObj(prev => ({ ...prev, SortCol: sn, SortType: st }));\r\n }}\r\n />\r\n\r\n {\r\n setPageNo(parseInt(v));\r\n setLaundryObj(prev => ({ ...prev, PageNo: parseInt(v) }));\r\n }}\r\n style={{ float: \"right\" }}\r\n />\r\n
      \r\n\r\n {/* blue bg inside menu Start */}\r\n {showLeftBlueBar === true && (\r\n // { setshowLeftBlueBar(!showLeftBlueBar) }}>\r\n\r\n
      \r\n
      \r\n
      \r\n

      system views

      \r\n
      \r\n\r\n {\r\n setshowLeftBlueBar(false);\r\n }}\r\n >\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
        \r\n
      • \r\n
        Reservation on Hold & Tentative
        \r\n
      • \r\n
      • \r\n
        Reservations booked today
        \r\n
      • \r\n
      \r\n
      \r\n
      \r\n \r\n )}\r\n {/* blue bg inside menu End */}\r\n\r\n {/* Advanced Filter Popup Start */}\r\n {showAdvancedSearchModal ? (\r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Filters

      \r\n
      \r\n
      \r\n {\r\n onResetClick();\r\n }}\r\n >\r\n Reset\r\n \r\n {\r\n onApplyClick();\r\n }}\r\n >\r\n Apply\r\n \r\n \r\n setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }\r\n >\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n {\r\n if (new Date(e).getTime() > new Date(laundryObj.ToDate).getTime()) {\r\n setLaundryObj(prev => ({ ...prev, FromDate: e, ToDate: e }));\r\n } else {\r\n setLaundryObj(prev => ({ ...prev, FromDate: e }));\r\n }\r\n }}\r\n placeholder=\"Date From\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"From Date\"\r\n >\r\n
      \r\n
      \r\n {\r\n setLaundryObj(prev => ({ ...prev, ToDate: e }));\r\n if (new Date(e).getTime() < new Date(laundryObj.FromDate).getTime()) {\r\n let prevDate = laundryObj.ToDate;\r\n alertFunction('Please enter date les than from date.');\r\n setTimeout(() => {\r\n setLaundryObj(prev => ({ ...prev, ToDate: prevDate }));\r\n }, 50);\r\n }\r\n }}\r\n placeholder=\"Date To\"\r\n //disabled=\"disabled\"\r\n calendarStartDay={1}\r\n label=\"To Date\"\r\n >\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n {\r\n setLaundryObj(prev => ({ ...prev, InvoiceNo: e }));\r\n if (onlyNum(e) || e.trim() === \"\") {\r\n setLaundryValidation(prev => ({ ...prev, InvoiceNo: \"\" }));\r\n } else {\r\n setLaundryValidation(prev => ({ ...prev, InvoiceNo: \"Invalid Input.\" }));\r\n }\r\n }}\r\n >\r\n Bill No.\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n {\r\n setLaundryObj(prev => ({ ...prev, FirstName: e }));\r\n if (onlyAlpha(e) || e.trim() === \"\") {\r\n setLaundryValidation(prev => ({ ...prev, FirstName: \"\" }));\r\n } else {\r\n setLaundryValidation(prev => ({ ...prev, FirstName: \"Invalid Input.\" }));\r\n }\r\n }}\r\n >\r\n First Name\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n {\r\n setLaundryObj(prev => ({ ...prev, LastName: e }));\r\n if (onlyAlpha(e) || e.trim() === \"\") {\r\n setLaundryValidation(prev => ({ ...prev, LastName: \"\" }));\r\n } else {\r\n setLaundryValidation(prev => ({ ...prev, LastName: \"Invalid Input.\" }));\r\n }\r\n }}\r\n >\r\n Last Name\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n {\r\n setLaundryObj(prev => ({ ...prev, UserID: item.value }));\r\n }}\r\n >\r\n
      \r\n
      \r\n
      \r\n
      \r\n {\r\n if (item.key !== 0) {\r\n setLaundryObj(prev => ({ ...prev, VenderSerNo: item.key }));\r\n } else {\r\n setLaundryObj(prev => ({ ...prev, VenderSerNo: null }));\r\n }\r\n }}\r\n >\r\n
      \r\n
      \r\n
      \r\n
      \r\n {\r\n setLaundryObj(prev => ({ ...prev, RoomNo: e }));\r\n if (withoutSpecialChar(e) || e.trim() === \"\") {\r\n setLaundryValidation(prev => ({ ...prev, RoomNo: \"\" }));\r\n } else {\r\n setLaundryValidation(prev => ({ ...prev, RoomNo: \"Invalid Input.\" }));\r\n }\r\n }}\r\n >\r\n Room No.\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n ) : null}\r\n {showPostLaundryModal ? (\r\n {\r\n setShowPostLaundryModal(false);\r\n setTimeout(()=>{\r\n fillList();\r\n },[50])\r\n }}\r\n />\r\n ) : null}\r\n \r\n );\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnButtonTypeWithDropdown,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnSingleDateSelection,\r\n InnSwitch,\r\n InnTableGrid, InnModalPopup, InnTextarea, InnFileUpload, InnLoader\r\n} from \"../../../../component\";\r\nimport smsIcon from \"../../../../assets/images/sms-tooltip-icon.svg\";\r\nimport EmailTooltipIcon from \"../../../../assets/images/email-tooltip-icon.svg\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport {\r\n cmbGetReservationStatus,\r\n GetPropertyParameterByKeys,\r\n GetRoomFeature\r\n} from \"../../../../services/reservationService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport LeftMenuArrow from \"../../../../assets/images/inside-left-menu-arrow.svg\";\r\nimport { GetHKManagementList, GetHKStatusMaster } from \"../../../../services/housekeepingServiceMaster\";\r\nimport { GetFloorMaster, GetRoomTypeMaster } from \"../../../../services/frontMasterService\";\r\nimport { RoomFeatureModalPopup } from \"../../reservation/modalPopup/roomFeatureModalPopup\";\r\nimport moment from \"moment\";\r\nimport { ChangeHKStatusModalPopup } from \"../modalPopup/changeHKStatusModalPopup\";\r\nimport { TipArrived, TipDueIn, TipDueOut, TipInHouse } from \"../../reservation\";\r\n\r\nexport function HKManagement(props) {\r\n\r\n //#region local variables\r\n /* Page content height set end */\r\n const history = useHistory();\r\n const currUser = useSelector(currentUser);\r\n const propertyParameters = ['BusinessDate'];\r\n const ReservationPopup = useRef(null);\r\n\r\n var Pageheight = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);\r\n var GridHeight = Pageheight - 153;\r\n var Pageheight = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);\r\n var columnHeight = Pageheight - 120;\r\n\r\n const columHeader = [\r\n { key: \"Room No.\", value: \"RoomNo\", type: \"txt\", sorting: \"N\", align: 'center' },\r\n { key: \"Room Type\", value: \"RoomTypeName\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"HK Status\", value: \"HKStatus\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Service Status\", value: \"ServiceStatus\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Floor No.\", value: \"FloorNo\", type: \"txt\", sorting: \"N\" },\r\n { key: \"Section Name\", value: \"SectionName\", type: \"txt\", sorting: \"N\" },\r\n { key: \"HK-FO Status\", value: \"HKFOStatus\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"FO Status\", value: \"FOStatus\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"HK Persons\", value: \"HKPersons\", type: \"txt\", sorting: \"N\" },\r\n // { key: \"ETA\", value: \"ArrivalTime\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"FO Persons\", value: \"FOPersons\", type: \"txt\", sorting: \"N\" },\r\n {\r\n key: \"Res. Status\",\r\n value: \"ReservationStatus\",\r\n //type: \"lnk\",\r\n type: \"lnk\",\r\n },\r\n { key: \"Assigned To\", value: \"GuestName\", type: \"lnk\", sorting: \"N\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n const resStatusData = [\r\n { key: 1, value: \"Due In\", code: \"DIN\" },\r\n { key: 2, value: \"In-House\", code: \"INH\" },\r\n { key: 3, value: \"Hold\", code: \"HLD\" },\r\n { key: 4, value: \"Tentative\", code: \"TEN\" },\r\n { key: 5, value: \"Arrived\", code: \"ARD\" },\r\n { key: 6, value: \"Due Out\", code: \"DOT\" },\r\n ]\r\n const frontStatusData = [\r\n { key: 1, value: \"All\", code: \"All\" },\r\n { key: 2, value: \"Vacant\", code: \"Vac\" },\r\n { key: 3, value: \"Occupied\", code: \"Occ\" },\r\n ]\r\n\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"Print\", value: \"print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n const optBtnData = [\r\n { key: \"Change Status\", value: \"Change Status\" },\r\n ];\r\n const ActionOption = [\r\n { key: \"Change Status\", value: \"Change Status\" },\r\n ];\r\n //#endregion\r\n\r\n //#region Dummy Date\r\n const selectData = [\r\n { key: \"Option 1\", value: \"Option 1\" },\r\n { key: \"Option 2\", value: \"Option 2\" },\r\n { key: \"Option 3\", value: \"Option 3\" },\r\n { key: \"Option 4\", value: \"Option 4\" },\r\n { key: \"Option 5\", value: \"Option 5\" },\r\n { key: \"Option 6\", value: \"Option 6\" },\r\n ];\r\n //#endregion\r\n\r\n //#region State Variables\r\n const [page, setPage] = useState(1);\r\n const [pageCount, setPageCount] = useState(1);\r\n const [gridSelectedItem, setGridSelectedItem] = useState([]);\r\n const [temp, settemp] = useState(false);\r\n //#region Data Grid End\r\n const [showGuestPopup, setShowGuestPopup] = useState(false);\r\n //#endregion Data Grid End\r\n\r\n const [showAdvancedSearchModal, setShowAdvancedSearchModal] = useState(false);\r\n const [showRelationshipModal, setShowRelationshipModal] = useState(false);\r\n const [showAccountReceivableModal, setShowAccountReceivableModal] = useState(false);\r\n const [showInternalCommentModal, setShowInternalCommentModal] = useState(false);\r\n const [showCorrespondenceModal, setShowCorrespondenceModal] = useState(false);\r\n const [showRoomFeaturesModal, setShowRoomFeaturesModal] = useState(false);\r\n const [showRoomSpecialsModal, setShowRoomSpecialsModal] = useState(false);\r\n const [showHKchangestatusModal, setShowHKchangestatusModal] = useState(false);\r\n const [reservationDetail, setReservationDetail] = useState({});\r\n const [reservationInfoData, setReservationInfoData] = useState({});\r\n const [showReservationDueInPopup, setShowReservationDueInPopup] = useState(false);\r\n const [showTooltip, setShowTooltip] = useState(false);\r\n\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n const [filterDataTemp, setfilterDataTemp] = useState([]);\r\n const [gridData, setGridData] = useState([]);\r\n const [searchStr, setSearchStr] = useState(\"\");\r\n\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n PageNumber: 1,\r\n SortCol: \"\",\r\n SortType: \"\",\r\n Date: '',\r\n strFloorSerNo: null,\r\n strHKStatus: null,\r\n FOStatus: null,\r\n strReservationStatus: null,\r\n strRoomType: null,\r\n RoomFeatureFilter: null,\r\n }\r\n const [listObj, setListObj] = useState(defaultObj);\r\n const [isActive, setActive] = useState(false);\r\n const [showLeftBlueBar, setshowLeftBlueBar] = useState(false);\r\n const [selectedRoomNoData, setSelectedRoomNoData] = useState({});\r\n\r\n //filter state variables\r\n const [selectedRmType, setSelectedRmType] = useState([]);\r\n const [selectedRes, setSelectedRes] = useState([]);\r\n const [filResStatusData, setFilResStatusData] = useState([]);\r\n const [fillRoomTypeData, setFillRoomTypeData] = useState([]);\r\n const [fillFloorData, setFillFloorData] = useState([]);\r\n const [selectedFloor, setSelectedFloor] = useState([]);\r\n const [selectedHKStatus, setSelectedHKStatus] = useState([]);\r\n const [fillHKStatusData, setFillHKStatusData] = useState([]);\r\n const [selectedRmFeatureData, setSelectedRmFeatureData] = useState([]);\r\n const [selectedRmFeature, setSelectedRmFeature] = useState([]);\r\n const [roomFeatureData, setroomFeatureData] = useState([]);\r\n const [finalResponse, setFinalResponse] = useState([]);\r\n const [fillSmokingData, setFillSmokingData] = useState([]);\r\n const [fillBedTypeData, setFillBedTypeData] = useState([]);\r\n const [selectedBedType, setSelectedBedType] = useState({\r\n key: 0,\r\n value: \"Select\",\r\n });\r\n const [selectedSmokingType, setSelectedSmokingType] = useState({\r\n key: 0,\r\n value: \"Select\",\r\n });\r\n const [selectedFOStatus, setSelectedFOStatus] = useState([]);\r\n //#endregion\r\n\r\n\r\n //#region UseEffect\r\n useEffect(() => {\r\n let tempArr = [];\r\n let displayName = [];\r\n if (finalResponse.length > 0) {\r\n for (let i = 0; i < finalResponse.length; i++) {\r\n tempArr = tempArr + finalResponse[i].RoomFeatureValueSerNo + \",\";\r\n if (finalResponse[i].RoomFeatureTypeSerNo == \"BDT\") {\r\n setSelectedBedType({ key: finalResponse[i].key, value: finalResponse[i].Value });\r\n }\r\n if (finalResponse[i].RoomFeatureTypeSerNo == \"SMK\") {\r\n setSelectedSmokingType({ key: finalResponse[i].key, value: finalResponse[i].Value });\r\n }\r\n setListObj((prev) => ({ ...prev, RoomFeatureFilter: tempArr, }));\r\n if (finalResponse.length <= 2) {\r\n displayName.push(finalResponse[i].DisplayName);\r\n }\r\n }\r\n if (finalResponse.length > 2) {\r\n displayName.push(finalResponse[0].DisplayName, finalResponse[1].DisplayName + \"...\");\r\n }\r\n setSelectedRmFeature(displayName);\r\n }\r\n else {\r\n setSelectedRmFeature([]);\r\n setListObj((prev) => ({ ...prev, RoomFeatureFilter: \"\", }));\r\n setSelectedBedType({ key: 0, value: \"Select\" });\r\n setSelectedSmokingType({ key: 0, value: \"Select\" });\r\n }\r\n setSelectedRmFeatureData(finalResponse);\r\n }, [finalResponse]);\r\n\r\n useEffect(() => {\r\n setSelectedFOStatus({ key: 1, value: \"All\", code: \"All\" })\r\n cmbGetReservationStatus().then((d) => {\r\n setFilResStatusData(d.data);\r\n });\r\n GetRoomTypeMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n let temp = [];\r\n if (d.data) {\r\n d.data.forEach((x) => {\r\n if (x.IsPseudo == false) {\r\n temp = [...temp, { key: x.RoomTypeSerNo, value: x.Name }]\r\n }\r\n })\r\n }\r\n setFillRoomTypeData(temp);\r\n });\r\n GetFloorMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n let defaultFloorData = [];\r\n if (d.data != undefined) {\r\n d.data.map((e) => {\r\n defaultFloorData = [\r\n ...defaultFloorData,\r\n {\r\n key: e.FloorSerNo,\r\n value: e.Name,\r\n },\r\n ];\r\n });\r\n }\r\n setFillFloorData(defaultFloorData);\r\n });\r\n GetPropertyParameterByKeys(currUser.ClientSerNo, currUser.PropertySerNo, propertyParameters).then(d => {\r\n let obj = d.data.find(x => x.key == \"BusinessDate\");\r\n if (obj != undefined) {\r\n setBusinessDate(obj.value);\r\n setTimeout(() => {\r\n setListObj((prev) => ({ ...prev, Date: moment(obj.value).format(\"DD-MMM-YYYY\") }))\r\n fillGrid(moment(obj.value).format(\"DD-MMM-YYYY\"));\r\n }, 10);\r\n }\r\n else {\r\n setTimeout(() => {\r\n setListObj((prev) => ({ ...prev, Date: moment(new Date()).format(\"DD-MMM-YYYY\") }))\r\n }, 10);\r\n }\r\n });\r\n GetHKStatusMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n let defaultHKStatusData = [];\r\n if (d.data != undefined) {\r\n d.data.map((e) => {\r\n defaultHKStatusData = [\r\n ...defaultHKStatusData,\r\n {\r\n key: e.HKStatusSerNo,\r\n value: e.Name,\r\n type: e.HKStatusType,\r\n },\r\n ];\r\n });\r\n }\r\n setFillHKStatusData(defaultHKStatusData);\r\n })\r\n GetRoomFeature(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n if (d.data != undefined) {\r\n d.data.RoomFeatures.map((o) => {\r\n o.checked = false;\r\n if (o.RoomFeatureTypeSerNo == \"BDT\") {\r\n let obj = [{ key: 0, value: \"Select\" }];\r\n d.data.RoomFeatureValues.map((b) => {\r\n if (o.RoomFeatureSerNo == b.RoomFeatureSerNo) {\r\n obj.push({ key: b.key, value: b.Value });\r\n }\r\n });\r\n setFillBedTypeData(obj);\r\n }\r\n if (o.RoomFeatureTypeSerNo == \"SMK\") {\r\n let obj = [{ key: 0, value: \"Select\" }];\r\n d.data.RoomFeatureValues.map((s) => {\r\n if (o.RoomFeatureSerNo == s.RoomFeatureSerNo) {\r\n obj.push({ key: s.key, value: s.Value });\r\n }\r\n setFillSmokingData(obj);\r\n });\r\n }\r\n });\r\n }\r\n setroomFeatureData(d.data);\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (listObj.Date != \"\" || businessDate != \"\") {\r\n fillGrid(listObj.Date);\r\n }\r\n }, [page, listObj.SortCol, listObj.SortType]);\r\n\r\n useEffect(() => {\r\n // Bind the event listener\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n // Unbind the event listener on clean up\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [ReservationPopup]);\r\n //#endregion\r\n\r\n //#region Events\r\n const actionPopup = (item) => {\r\n if (item.key == \"Change Status\") {\r\n setShowHKchangestatusModal(true);\r\n }\r\n }\r\n const setSelectedItem = (items) => {\r\n setGridSelectedItem(items);\r\n settemp(!temp);\r\n };\r\n const fillGrid = (currDate) => {\r\n let obj = listObj\r\n obj.Date = currDate\r\n obj.PageNumber = page;\r\n setSearchStr(\"\")\r\n setActive(true)\r\n GetHKManagementList(obj).then((d) => {\r\n if (d.data) {\r\n setGridData(d.data)\r\n setfilterDataTemp(d.data)\r\n let pCount = 0;\r\n if (d.data.length > 0) {\r\n let temp = parseInt(d.data[0].TotalRows) / 50;\r\n setPageCount(Math.ceil(temp));\r\n } else {\r\n setPageCount(1);\r\n }\r\n setActive(false);\r\n }\r\n })\r\n }\r\n const handleClickOutside = (event) => {\r\n if (\r\n ReservationPopup.current &&\r\n !ReservationPopup.current.contains(event.target)\r\n ) {\r\n setShowGuestPopup(false);\r\n }\r\n };\r\n const ResetFilter = () => {\r\n setListObj(defaultObj);\r\n setListObj((prev) => ({ ...prev, Date: businessDate }));\r\n setSelectedFOStatus({ key: 1, value: \"All\", code: \"All\" })\r\n setSelectedFloor([]);\r\n setSelectedRes([]);\r\n setSelectedRmType([]);\r\n setSelectedHKStatus([]);\r\n setSelectedBedType({ key: 0, value: \"Select\" });\r\n setSelectedSmokingType({ key: 0, value: \"Select\" });\r\n setSelectedRmFeature([]);\r\n setSelectedRmFeatureData([]);\r\n setFinalResponse([]);\r\n };\r\n\r\n const handleBedTypeChange = (item) => {\r\n setSelectedBedType(item);\r\n let obj = roomFeatureData.RoomFeatureValues.find((f) => f.key == item.key);\r\n if (obj) {\r\n obj.DisplayName = item.value;\r\n obj.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n obj.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n let fr = [...finalResponse];\r\n let exObj = fr.find((x) => x.RoomFeatureSerNo == obj.RoomFeatureSerNo);\r\n if (exObj) {\r\n let index = fr.indexOf(exObj);\r\n fr.splice(index, 1);\r\n }\r\n fr.push(obj);\r\n setFinalResponse(fr);\r\n } else {\r\n let fr = [...finalResponse];\r\n let filterRes = fr.filter((x) => x.RoomFeatureTypeSerNo != \"BDT\");\r\n setFinalResponse(filterRes);\r\n }\r\n };\r\n\r\n const handleSmokingTypeChange = (item) => {\r\n setSelectedSmokingType(item);\r\n let obj = roomFeatureData.RoomFeatureValues.find((f) => f.key == item.key);\r\n if (obj) {\r\n obj.DisplayName = item.value;\r\n obj.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n obj.PropertySerNo = parseInt(currUser.PropertySerNo);\r\n let fr = [...finalResponse];\r\n\r\n let exObj = fr.find((x) => x.RoomFeatureSerNo == obj.RoomFeatureSerNo);\r\n if (exObj) {\r\n let index = fr.indexOf(exObj);\r\n fr.splice(index, 1);\r\n }\r\n fr.push(obj);\r\n setFinalResponse(fr);\r\n } else {\r\n let fr = [...finalResponse];\r\n let filterRes = fr.filter((x) => x.RoomFeatureTypeSerNo != \"SMK\");\r\n setFinalResponse(filterRes);\r\n }\r\n };\r\n\r\n const handleSearchOnChange = (e) => {\r\n setSearchStr(e)\r\n let filterData = gridData.filter((obj) => {\r\n return obj.RoomNo.toLowerCase().includes(e.toLowerCase());\r\n });\r\n setfilterDataTemp(filterData);\r\n }\r\n //#endregion\r\n\r\n //#region Tooltip \r\n const CompanyTooltip = () => {\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      Arvind Ltd.
      \r\n
      \r\n 9842342434\r\n \r\n SMS\r\n \r\n
      \r\n
      \r\n preetiiyengar@innkeypms.net\r\n \r\n Email\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n Edit\r\n {/* \r\n Action\r\n */}\r\n
      \r\n
      \r\n );\r\n };\r\n const ProfileGuestTooltip = () => {\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      Ms Mansi Sharma
      \r\n
      \r\n 9842342434\r\n \r\n SMS\r\n \r\n
      \r\n
      \r\n preetiiyengar@innkeypms.net\r\n \r\n Email\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n Edit\r\n {/* \r\n Action\r\n */}\r\n
      \r\n
      \r\n );\r\n };\r\n const Profile2Tooltip = () => {\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      Membership No.
      \r\n
      \r\n 32452342\r\n  (Gold Member)\r\n
      \r\n
      \r\n
      Base Points : 10000
      \r\n
      Bonus Points : 4000
      \r\n
      \r\n Total Points :\r\n  14000\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Edit\r\n {/* \r\n Action\r\n */}\r\n
      \r\n
      \r\n );\r\n };\r\n const ArrivalStatusTooltip = () => {\r\n return (\r\n
      \r\n
      \r\n
      \r\n Expected arrival for next 180 days with reservation status as\r\n confirm, order by arrival date\r\n
      \r\n
      \r\n
      \r\n );\r\n };\r\n const MembershipToolTip = () => {\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      Gold Member (455851421)
      \r\n
      \r\n
      \r\n
      Mr. Rohit Sharma
      \r\n
      Enrollment Type : Online
      \r\n
      Expiration : 31 Dec, 2025
      \r\n
      \r\n
      \r\n
      \r\n Edit\r\n \r\n Actions\r\n \r\n
      \r\n
      \r\n );\r\n };\r\n const IdentificationTooltip = () => {\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      Passport
      \r\n
      \r\n
      \r\n
      Issue Date : 01 Jan, 2005
      \r\n
      Expiry Date : 31 Dec, 2025
      \r\n
      \r\n
      \r\n
      \r\n Edit\r\n \r\n Actions\r\n \r\n
      \r\n
      \r\n );\r\n };\r\n const RelationshipTooltip = () => {\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      Brother
      \r\n
      \r\n
      \r\n
      Mr. Rishi Kochhar
      \r\n
      \r\n
      \r\n
      \r\n setShowRelationshipModal(!showRelationshipModal)}>Edit\r\n \r\n Actions\r\n \r\n
      \r\n
      \r\n );\r\n };\r\n const AccountReceivableTooltip = () => {\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      Cadila Finance
      \r\n
      \r\n
      \r\n
      Credit Days : 30
      \r\n
      Credit Limit : 1,00,000.00
      \r\n
      Contact Profile : Mr. Rohit Goyal
      \r\n
      \r\n
      \r\n
      \r\n setShowAccountReceivableModal(!showAccountReceivableModal)}>Edit\r\n \r\n Actions\r\n \r\n
      \r\n
      \r\n );\r\n };\r\n\r\n const InternalCommentTooltip = () => {\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      General
      \r\n
      \r\n
      \r\n
      Available to All properties :\r\n \r\n console.log(v)} id=\"InternalComment\" value={false}>\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n setShowInternalCommentModal(!showInternalCommentModal)}>Edit\r\n \r\n Actions\r\n \r\n
      \r\n
      \r\n );\r\n };\r\n const RoomFeaturesTooltip = () => {\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      Room Features (16)
      \r\n
        \r\n
      • Pool size view
      • \r\n
      • King Size Bed
      • \r\n
      • 72 inch LCD TV
      • \r\n
      • Some Text
      • \r\n
      • Inter-Connected
      • \r\n
      • Some more text
      • \r\n
      • Some more text
      • \r\n
      • Coffee shop
      • \r\n
      • King Size Bed
      • \r\n
      • 72 inch LCD TV
      • \r\n
      • Some Text
      • \r\n
      • Inter-Connected
      • \r\n
      • Some more text
      • \r\n
      • Some more text
      • \r\n
      • Coffee shop
      • \r\n
      \r\n
      \r\n
      \r\n
      \r\n setShowRoomFeaturesModal(!showRoomFeaturesModal)}>\r\n Edit\r\n \r\n
      \r\n
      \r\n );\r\n };\r\n const SpecialsTooltip = () => {\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      specials (5)
      \r\n
        \r\n
      • Economic Times
      • \r\n
      • Feather Pillow
      • \r\n
      • HDMI Cable
      • \r\n
      • Some Text
      • \r\n
      • Some Text
      • \r\n
      • Some Text
      • \r\n
      \r\n
      \r\n
      \r\n
      \r\n setShowRoomSpecialsModal(!showRoomSpecialsModal)}>\r\n Edit\r\n \r\n
      \r\n
      \r\n );\r\n };\r\n const CorrespondenceTooltip = () => {\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      Indian
      \r\n
      \r\n
      \r\n
      Birth Date : 31 Mar, 1996
      \r\n
      Blood Group : A+
      \r\n
      Include in Promotional Mailings :\r\n \r\n console.log(v)} id=\"Mailings\" value={false}>\r\n \r\n
      \r\n\r\n
      Allow contact via phone :\r\n \r\n console.log(v)} id=\"Phone\" value={false}>\r\n \r\n
      \r\n
      Allow contact via Text Message :\r\n \r\n console.log(v)} id=\"Message\" value={false}>\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n setShowCorrespondenceModal(!showCorrespondenceModal)}>Edit\r\n \r\n Actions\r\n \r\n
      \r\n
      \r\n );\r\n };\r\n\r\n const GuestTooltip = () => {\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      Ms. Preeti Iyengar
      \r\n
      \r\n 9842342434\r\n \r\n SMS\r\n \r\n
      \r\n
      \r\n preetiiyengar@innkeypms.net\r\n \r\n Email\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n Edit\r\n {/* \r\n Action\r\n */}\r\n
      \r\n
      \r\n );\r\n };\r\n const AgentTooltip = () => {\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      Make My Trip
      \r\n
      \r\n 9842342434\r\n \r\n SMS\r\n \r\n
      \r\n
      \r\n preetiiyengar@innkeypms.net\r\n \r\n Email\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n Edit\r\n {/* \r\n Action\r\n */}\r\n
      \r\n
      \r\n );\r\n };\r\n const DueInStatusTooltip = () => {\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      \r\n Checked In By\r\n Mr. Hemang\r\n
      \r\n
      Date: 25th Sept.
      \r\n
      Time: 15:45
      \r\n
      PC: 192.168.600.789
      \r\n
      \r\n
      \r\n
      \r\n );\r\n };\r\n //#endregion\r\n\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      HK Management

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n {/* {\r\n setshowLeftBlueBar(true);\r\n }}\r\n >\r\n */}\r\n
      \r\n {\r\n let oldDate = listObj.Date\r\n let isValid = true\r\n if (new Date(moment(businessDate).format(\"DD-MMM-YYYY\")).getTime() <= new Date(moment(value).format(\"DD-MMM-YYYY\")).getTime()) {\r\n setListObj((prev) => ({ ...prev, Date: value }));\r\n }\r\n else {\r\n isValid = false\r\n setListObj((prev) => ({ ...prev, Date: value }))\r\n setTimeout(() => {\r\n setListObj((prev) => ({ ...prev, Date: oldDate }))\r\n }, 50);\r\n alert(\"Invalid Date\");\r\n }\r\n if (isValid) {\r\n fillGrid(value);\r\n }\r\n }}\r\n calendarStartDay={1}\r\n // label=\"Date\"\r\n >\r\n
      \r\n
      \r\n \r\n Search\r\n \r\n
      \r\n
      \r\n {\r\n if (ischecked) {\r\n let temp = []\r\n gridData.forEach((x) => {\r\n gridSelectedItem.forEach((y) => {\r\n if (x.RoomSerNo == y.RoomSerNo) {\r\n temp.push(x)\r\n }\r\n })\r\n })\r\n setfilterDataTemp(temp)\r\n }\r\n if (ischecked == false) {\r\n setfilterDataTemp(gridData)\r\n }\r\n }}\r\n >\r\n Show selected room only\r\n \r\n
      \r\n
      \r\n
      \r\n \r\n Export\r\n \r\n\r\n \r\n Actions (50)\r\n \r\n \r\n setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }\r\n >\r\n \r\n
      \r\n\r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n {\r\n setSelectedItem(items);\r\n console.log(items);\r\n //setGridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(v);\r\n setReservationDetail(v);\r\n setShowTooltip(true)\r\n // setShowGuestPopup(true);\r\n }}\r\n fixedHeaderNo={2}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"RoomSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n actionPopup(item)\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n if (rowdata.ReservationSerNo != undefined) {\r\n setReservationInfoData(rowdata)\r\n }\r\n setSelectedRoomNoData(rowdata);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n {\r\n setPage(v);\r\n setListObj((prev) => ({ ...prev, PageNumber: v }))\r\n }}\r\n style={{ float: \"right\" }}\r\n />\r\n
      \r\n\r\n {/* blue bg inside menu Start */}\r\n {showLeftBlueBar == true && (\r\n // { setshowLeftBlueBar(!showLeftBlueBar) }}>\r\n\r\n
      \r\n
      \r\n
      \r\n

      system views

      \r\n
      \r\n\r\n {\r\n setshowLeftBlueBar(false);\r\n }}\r\n >\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
        \r\n
      • \r\n
        Reservation on Hold & Tentative
        \r\n
      • \r\n
      • \r\n
        Reservations booked today
        \r\n
      • \r\n
      \r\n
      \r\n
      \r\n \r\n )}\r\n {/* blue bg inside menu End */}\r\n\r\n {/* Advanced Filter Popup Start */}\r\n {showAdvancedSearchModal ? (\r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Filters

      \r\n
      \r\n
      \r\n {/*
      \r\n {\r\n setColList(items);\r\n setColListKeys(item);\r\n if (item.length > 0) {\r\n setShowFilter(true);\r\n } else {\r\n setShowFilter(false);\r\n }\r\n }}\r\n label=\"More Filters\"\r\n searchable={[\"Search\", \"No matching property\"]}\r\n className=\"button-layout-dd gray-btn\"\r\n buttonLayout={true}\r\n >\r\n
      */}\r\n ResetFilter()\r\n // setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }\r\n >\r\n Reset\r\n \r\n {\r\n if (page === 1) fillGrid(listObj.Date);\r\n else setPage(1);\r\n setShowAdvancedSearchModal(!showAdvancedSearchModal);\r\n }}\r\n >\r\n Apply\r\n \r\n \r\n setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }\r\n >\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n {\r\n let temp = \"\";\r\n if (item.length > 0) {\r\n setSelectedRmType(index)\r\n item.map((d) => {\r\n temp = temp + d.key + \",\";\r\n });\r\n setListObj((prev) => ({ ...prev, strRoomType: temp }));\r\n }\r\n else {\r\n setSelectedRmType(index);\r\n setListObj(prev => ({ ...prev, strRoomType: null }));\r\n }\r\n }}\r\n //ref={refMembershipLvl}\r\n >\r\n
      \r\n {/* {\r\n ReservationListFilterModel.Data.ReservationStatus = \"\";\r\n setSelectedResStatus([]);\r\n // let c = [];\r\n // c = colList.filter((d) => d.key !== \"filMemLvl\");\r\n // setColList(c);\r\n }}\r\n > */}\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n {\r\n let temp = \"\";\r\n setSelectedHKStatus(index);\r\n if (item.length > 0) {\r\n item.map((d) => {\r\n temp = temp + d.key + \",\";\r\n });\r\n setListObj((prev) => ({ ...prev, strHKStatus: temp, }));\r\n }\r\n else {\r\n setSelectedHKStatus(index);\r\n setListObj(prev => ({ ...prev, strHKStatus: null }));\r\n }\r\n }}\r\n >\r\n
      \r\n {/* {\r\n ReservationListFilterModel.Data.ReservationStatus = \"\";\r\n setSelectedResStatus([]);\r\n // let c = [];\r\n // c = colList.filter((d) => d.key !== \"filMemLvl\");\r\n // setColList(c);\r\n }}\r\n > */}\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n {\r\n setSelectedFOStatus(item)\r\n if (item.code != 'All') {\r\n setListObj((prev) => ({ ...prev, FOStatus: item.code }));\r\n }\r\n else {\r\n setListObj((prev) => ({ ...prev, FOStatus: null }));\r\n }\r\n }}\r\n >\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n {\r\n let temp = \"\";\r\n if (item.length > 0) {\r\n setSelectedRes(index);\r\n item.map((d) => {\r\n temp = temp + d.code + \",\";\r\n });\r\n setListObj((prev) => ({ ...prev, strReservationStatus: temp }));\r\n }\r\n else {\r\n setSelectedRes(index);\r\n setListObj(prev => ({\r\n ...prev, strReservationStatus: null\r\n }));\r\n }\r\n }}\r\n >\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n {\r\n let temp = \"\";\r\n setSelectedFloor(item);\r\n if (item.length > 0) {\r\n item.map((d) => {\r\n temp = temp + d + \",\";\r\n });\r\n setListObj((prev) => ({ ...prev, strFloorSerNo: temp }));\r\n }\r\n else {\r\n setSelectedFloor(item);\r\n setListObj(prev => ({ ...prev, strFloorSerNo: null }));\r\n }\r\n }}\r\n >\r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n setShowRoomFeaturesModal(!showRoomFeaturesModal)}\r\n >\r\n Room Features\r\n \r\n \r\n setShowRoomFeaturesModal(!showRoomFeaturesModal)}\r\n >\r\n \r\n \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n {\r\n handleBedTypeChange(item);\r\n }}\r\n >\r\n
      \r\n
      \r\n
      \r\n
      \r\n {\r\n handleSmokingTypeChange(item);\r\n }}\r\n >\r\n
      \r\n
      \r\n
      \r\n
      \r\n ) : null}\r\n {/* {showRoomFeaturesModal ? (\r\n setShowRoomFeaturesModal(false)}>\r\n
      \r\n
      \r\n
      \r\n

      Room Features

      \r\n
      \r\n
      \r\n Reset\r\n Apply\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      In Room
      \r\n
      \r\n console.log(item, name)}\r\n >\r\n
      \r\n
      \r\n console.log(item, name)}\r\n >\r\n
      \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n {\" \"}\r\n Adjoining Room{\" \"}\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n {\" \"}\r\n Inter-Connected Room{\" \"}\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n {\" \"}\r\n Accessible Room{\" \"}\r\n \r\n\r\n
      \r\n
      Other Preferences
      \r\n
      \r\n Room Location (2)\r\n \r\n \r\n \r\n
      \r\n
      \r\n Bathroom Amenities\r\n (2)\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Show Selected (6){\" \"}\r\n \r\n
      \r\n\r\n
      \r\n
      Room location
      \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n High Floor\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Low Floor\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Pool Side\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Corner\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Near to Elevator\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Away form Elevator\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Sea Facing\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Partial sea facing view\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Garden View\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n With Balcony\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Quiet\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n disabled=\"disabled\">\r\n Disable Checkbox\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n disabled=\"disabled\">\r\n Disable Checkbox\r\n \r\n
      Bathroom Amenities
      \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Some Text\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Some Text\r\n \r\n
      Others
      \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Some Text\r\n \r\n {console.log(\"checkbox is \" + ischecked);}}\r\n >\r\n Some Text\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n ) : null} */}\r\n {showRoomFeaturesModal ? (\r\n setShowRoomFeaturesModal(false)}\r\n handleOnSelect={(v) => {\r\n setSelectedRmFeatureData(v);\r\n setFinalResponse(v);\r\n let tempValueSerNo = [];\r\n let displayName = [];\r\n for (let i = 0; i < v.length; i++) {\r\n tempValueSerNo =\r\n tempValueSerNo + v[i].RoomFeatureValueSerNo + \",\";\r\n if (v.length <= 2) {\r\n displayName.push(v[i].DisplayName);\r\n }\r\n }\r\n\r\n if (v.length > 2) {\r\n displayName.push(v[0].DisplayName, v[1].DisplayName + \"...\");\r\n }\r\n setSelectedRmFeature(displayName);\r\n setShowRoomFeaturesModal(false);\r\n }}\r\n >\r\n ) : (\r\n <>\r\n )}\r\n {showGuestPopup == true && (\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Mr Rohit Sharma\r\n \r\n \r\n \r\n Booking No: 3456234\r\n
      \r\n
      \r\n
      \r\n {/* Res. No. 12345678910     Ref. No. 54238521{\" \"} */}\r\n \r\n\r\n \r\n {/* This will replace with updated component\r\n \r\n Action\r\n */}\r\n {\r\n setShowGuestPopup(false);\r\n }}\r\n >\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Arvind Limited\r\n \r\n \r\n \r\n
      \r\n
      \r\n Designation\r\n Manager\r\n
      \r\n
      \r\n Department\r\n IT\r\n
      \r\n
      \r\n Incognito\r\n console.log(v)} id=\"Guest1\" value={false}>\r\n
      \r\n
      \r\n VIP Status\r\n VIP 1\r\n
      \r\n
      \r\n Nationality\r\n Indian\r\n
      \r\n
      \r\n View\r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n Membership\r\n (2)\r\n
      \r\n \r\n \r\n
      \r\n Identification\r\n (14)\r\n
      \r\n \r\n \r\n
      \r\n Relationship\r\n (14)\r\n
      \r\n \r\n \r\n
      \r\n Account Receivable\r\n (14)\r\n
      \r\n \r\n \r\n
      \r\n Internal Comment\r\n (14)\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n Past Future Stays\r\n (2)\r\n
      \r\n \r\n \r\n
      \r\n Room Features\r\n (2)\r\n
      \r\n \r\n \r\n
      \r\n Specials\r\n (2)\r\n
      \r\n \r\n \r\n
      \r\n Correspondence and Privacy\r\n (2)\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n )}\r\n {showHKchangestatusModal ? (\r\n {\r\n setShowHKchangestatusModal(false);\r\n setTimeout(() => {\r\n fillGrid(listObj.Date)\r\n }, 20);\r\n }}\r\n Date={listObj.Date}\r\n para={selectedRoomNoData}\r\n >\r\n \r\n ) : null}\r\n {\r\n showTooltip ?\r\n reservationDetail.ReservationStatus == \"DIN\" ?\r\n {\r\n setShowTooltip(false);\r\n }}\r\n >\r\n :\r\n reservationDetail.ReservationStatus == \"ARD\" ?\r\n {\r\n setShowTooltip(false);\r\n }}\r\n >\r\n :\r\n reservationDetail.ReservationStatus == \"INH\" ?\r\n {\r\n setShowTooltip(false);\r\n }}\r\n >\r\n :\r\n reservationDetail.ReservationStatus == \"DOT\" ?\r\n {\r\n setShowTooltip(false);\r\n }}\r\n >\r\n :\r\n null\r\n : null\r\n }\r\n\r\n {showReservationDueInPopup == true && (\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Mr. Rohit Sharma\r\n \r\n \r\n \r\n Booking No: 3456234\r\n
      \r\n
      \r\n
      \r\n {/* Res. No. 12345678910     Ref. No. 54238521{\" \"} */}\r\n \r\n Due In\r\n \r\n {/* This will replace with updated component\r\n \r\n Action\r\n */}\r\n {\r\n setShowReservationDueInPopup(false);\r\n }}\r\n >\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Arrival\r\n \r\n Sat, 12th Mar, 15:20 (4 Ngt.)\r\n Next Day\r\n \r\n
      \r\n
      \r\n \r\n {\" \"}\r\n Executive Suite \r\n \r\n \r\n 324 Inspected\r\n \r\n
      \r\n
      \r\n 2 Adult\r\n 1 Child\r\n
      \r\n
      \r\n Make My Trip\r\n \r\n \r\n \r\n
      \r\n
      \r\n Arvind Ltd.\r\n \r\n \r\n \r\n
      \r\n
      Guaranteed by Credit Card
      \r\n
      Bar Rate with Breakfast
      \r\n
      \r\n \r\n {\" \"}\r\n Room Rate \r\n \r\n \r\n 3500 +\r\n \r\n  Taxes\r\n \r\n \r\n
      \r\n
      \r\n (Fixed Rate)\r\n \r\n
      \r\n
      \r\n Inclusions\r\n (4)\r\n
      \r\n
      \r\n Packages\r\n (7)\r\n
      \r\n
      \r\n
      \r\n 4 Nights  Inclusive of all taxes\r\n
      \r\n
      \r\n 4480\r\n
      \r\n View\r\n
      \r\n
      \r\n
      \r\n
      Reservation
      \r\n
      \r\n Reservation Contact\r\n Mr. Hemang\r\n
      \r\n
      \r\n Booked on\r\n 25th Sept (15 Days)\r\n
      \r\n
      \r\n Accompany Guest\r\n (2)\r\n
      \r\n
      \r\n Sharer\r\n (2)\r\n
      \r\n
      \r\n Transportation\r\n Pickup, Drop\r\n
      \r\n
      \r\n BILLING\r\n
      \r\n
      \r\n Billing Instructions\r\n \r\n
      \r\n
      \r\n Routing Instructions\r\n (2)\r\n
      \r\n
      \r\n Deposit Rule\r\n (1)\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n {/* \r\n \r\n Ms Mansi Sharma\r\n \r\n \r\n */}\r\n \r\n \r\n \r\n
      \r\n
      Sharing
      \r\n \r\n \r\n Member: 45234 (Gold)\r\n \r\n \r\n
      \r\n
      \r\n VIP Status\r\n VIP 1 - Politician\r\n
      \r\n
      \r\n Room Features\r\n (2)\r\n
      \r\n
      \r\n Specials\r\n (2)\r\n
      \r\n
      \r\n Stay History\r\n (2)\r\n
      \r\n
      \r\n notification\r\n
      \r\n
      \r\n Alerts\r\n (2)\r\n
      \r\n
      \r\n Alerts & Trace\r\n (2)\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n )}\r\n\r\n \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport ReactHTMLTableToExcel from 'react-html-table-to-excel';\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnFileUpload,\r\n InnFileUploadPreview,\r\n InnLoader,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnRadioButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnToastMessage,\r\n InnTabs,\r\n InnStatusLabel,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnButton3Darrow,\r\n InnButtonTypeWithDropdown,\r\n InnPlainTextbox,\r\n InnSingleDateSelection,\r\n InnTimeSelection,\r\n InnSingleRadioButton,\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport moment, { min } from \"moment\";\r\n\r\nexport function HouseKeepingReportPreview(props) {\r\n\r\n const history = useHistory();\r\n const currUser = useSelector(currentUser);\r\n const reactToExcelRef = useRef();\r\n const selectdata = [\r\n { key: \"Excel\", value: \"Excel\" },\r\n ];\r\n\r\n\r\n const optBtnData = [\r\n { key: \"Edit\", value: \"edt\" },\r\n { key: \"Delete\", value: \"del\" },\r\n ];\r\n\r\n\r\n\r\n /* Grid Starts */\r\n\r\n const [gridSelectedItem, SetgridSelectedItem] = useState([]);\r\n const [temp, settemp] = useState(false);\r\n\r\n useEffect(() => {\r\n const timeId = setTimeout(() => {\r\n setActive(isActive);\r\n }, 3000);\r\n }, []);\r\n\r\n useEffect(() => {\r\n console.log(\"selected data\", gridSelectedItem);\r\n console.log(\"selected length\", gridSelectedItem.length);\r\n }, [gridSelectedItem, temp]);\r\n\r\n const setSelectedItem = (items) => {\r\n SetgridSelectedItem(items);\r\n settemp(!temp);\r\n };\r\n\r\n //grid header\r\n const [isActive, setActive] = useState(false);\r\n const [colSpanVal, setColSpanVal] = useState(0);\r\n const [linkInfo, setlinkInfo] = useState({});\r\n const [list, setList] = useState([]);\r\n const [excelList, setExcelList] = useState([]);\r\n const [reportObj, setReportObj] = useState({});\r\n const [filterList, setFilterList] = useState(\"\");\r\n const [columnList, setColumnList] = useState([]);\r\n const [reportSerNo, setReportSerNo] = useState(0);\r\n const [reportName, setReportName] = useState(\"\");\r\n useEffect(() => {\r\n let o = props.location.state;\r\n if (o != undefined) {\r\n console.log(o)\r\n setList(o.list);\r\n setExcelList(JSON.parse(JSON.stringify(o.list)));\r\n console.log(\"ExcellData>>>>>\", o.list)\r\n setReportObj(o.obj);\r\n setColumnList(o.columnList);\r\n setReportSerNo(o.reportserno);\r\n setReportName(o.reportname);\r\n console.log(\"ColunmnList>>>\", columnList);\r\n }\r\n if (o.columnList?.length != 0) {\r\n setColSpanVal(o.columnList.length)\r\n }\r\n }, []);\r\n\r\n /* Grid Ends */\r\n\r\n\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Preview

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnData}\r\n optClick={(v, d) => {\r\n console.log(v, d);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}\r\n >\r\n
      \r\n \r\n \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      {currUser.PropertyName}
      Filter List: {\"\"}
      {reportName}
      \r\n \r\n \r\n \r\n \r\n \r\n {columnList.map((item, index) => {\r\n return ;\r\n })}\r\n \r\n \r\n \r\n {list.map((item, index) => {\r\n return \r\n {columnList.map((o, index) => {\r\n return ;\r\n })}\r\n ;\r\n })}\r\n \r\n
      {item.key}
      \r\n {item[o.value]}\r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      User: {currUser.UserID} , Time: {moment(new Date()).format(\"HH:mm\")}
      \r\n\r\n \r\n \r\n\r\n {/* \r\n \r\n \r\n {columHeaderReport.map((item, index) => {\r\n return ;\r\n })}\r\n \r\n \r\n \r\n {list.map((item, index) => {\r\n return \r\n {columHeaderReport.map((o, index) => {\r\n return ;\r\n })}\r\n ;\r\n })}\r\n \r\n
      {item.key}
      {item[o.value]}
      */}\r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n {\r\n history.push({\r\n pathname: \"/InventoryReport\",\r\n state: {\r\n filterObj: reportObj,\r\n reportserno: reportSerNo,\r\n reportname: reportName\r\n }\r\n });\r\n }}>Back\r\n\r\n console.log(item, name)}\r\n >\r\n {\r\n if (item.key === 'Excel') {\r\n console.log(reactToExcelRef.current)\r\n reactToExcelRef.current.handleDownload();\r\n }\r\n console.log(item, name)\r\n }}\r\n >\r\n console.log(item, name)}\r\n >\r\n
      \r\n \r\n
      \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n\r\n\r\n\r\n\r\n
      \r\n );\r\n}\r\n\r\n//export default ReportPreview;","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTextarea,\r\n InnModalPopup,\r\n InnLoader,\r\n useConfirm,\r\n InnSingleDateSelection\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { GetInvDepartmentMaster, AddEditInvDepartmentMaster } from \"../../../../services/inventoryMasterService\";\r\n\r\nexport function InvDepartmentMaster() {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"y\", title: \"Ok\", type: \"\" }],\r\n });\r\n }\r\n //#region default object\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n DepartmentSerNo: 0,\r\n Name: \"\",\r\n IsAllowDirectPurchase: false,\r\n ShortName: \"\",\r\n OpeningDate: \"\",\r\n IsLogicalDepartment: false,\r\n Mode: \"View\"\r\n }\r\n //#endregion\r\n //#region validation object\r\n const validation = {\r\n Name: \"\",\r\n IsAllowDirectPurchase: false,\r\n ShortName: \"\",\r\n OpeningDate: \"\",\r\n IsLogicalDepartment: false,\r\n }\r\n //#endregion\r\n //#region state variable\r\n const [departmentObj, setDepartmentObj] = useState(defaultObj);\r\n const [departmentList, setDepartmentList] = useState([]);\r\n const [departmentFilter, setDepartmentFilter] = useState([]);\r\n const [departmentValid, setDepartmentValid] = useState(validation);\r\n const [search, setSearch] = useState(\"\");\r\n const [selectedSerNo, setSelectedSerNo] = useState(0);\r\n const [isActive, setIsActive] = useState(false);\r\n //#endregion\r\n //#region fill department list\r\n const fillDepartmentList = () => {\r\n setIsActive(true);\r\n GetInvDepartmentMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setIsActive(false);\r\n console.log(\"DepartmentData>>\", d.data);\r\n setDepartmentList(d.data)\r\n setDepartmentFilter(d.data)\r\n if (d.data && d.data.length > 0) {\r\n if (departmentObj.Mode == \"Add\" || departmentObj.Mode == \"Edit\") {\r\n let temp = d.data.find(x => x.DepartmentSerNo == departmentObj.DepartmentSerNo);\r\n if (temp) {\r\n temp.Mode = \"View\";\r\n setDepartmentObj(temp);\r\n console.log(\"addeditData>>>\", temp)\r\n }\r\n }\r\n else {\r\n d.data[0].Mode = \"View\";\r\n setDepartmentObj(d.data[0]);\r\n console.log(\"defaultData\", d.data[0]);\r\n }\r\n }\r\n });\r\n }\r\n //#endregion\r\n //#region\r\n useEffect(() => {\r\n fillDepartmentList();\r\n }, [])\r\n //#endregion\r\n //#region validation for page\r\n const clearValidation = () => {\r\n setDepartmentValid(validation)\r\n }\r\n const isValidPage = () => {\r\n let valid = true;\r\n if (departmentValid.Name != \"\") {\r\n setDepartmentValid((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n valid = false;\r\n }\r\n if (departmentObj.Name == \"\" || departmentObj.Name.trim().length == 0 || /[0-9’/`~!#*$@_+=^{}[\\]|;:<>?\\\\]/g.test(departmentObj.Name) == true) {\r\n valid = false;\r\n setDepartmentValid((prev) => ({ ...prev, Name: \"Invalid name\" }));\r\n }\r\n if (departmentObj.ShortName == \"\" || departmentObj.ShortName.trim().length == 0 || /[0-9’/`~!#*$@_+=^{}[\\]|;:<>?\\\\]/g.test(departmentObj.ShortName) == true) {\r\n valid = false;\r\n setDepartmentValid((prev) => ({ ...prev, ShortName: \"Invalid short name\" }));\r\n }\r\n if (departmentObj.OpeningDate == 0) {\r\n valid = false;\r\n setDepartmentValid((prev) => ({ ...prev, OpeningDate: \"Please select date\" }));\r\n }\r\n return valid;\r\n }\r\n //#endregion\r\n //#region click event\r\n const handleOnSearchClick = (e) => {\r\n clearValidation();\r\n setSearch(e);\r\n setDepartmentObj(defaultObj);\r\n let obj = [];\r\n departmentList.forEach((ele) => {\r\n if (ele.Name.toLowerCase().includes(e.toLowerCase())) {\r\n obj.push(ele);\r\n }\r\n });\r\n setDepartmentFilter(obj);\r\n }\r\n const handleOnNameClick = (e) => {\r\n clearValidation();\r\n setIsActive(false)\r\n let temp = departmentList.find(v => v.DepartmentSerNo == e.target.id);\r\n temp.Mode = \"View\";\r\n setDepartmentObj(temp);\r\n setSelectedSerNo(e.target.id);\r\n console.log(\"OnClickName>>\", temp);\r\n }\r\n const handleOnEditClick = () => {\r\n if (departmentObj.Name == \"\") {\r\n alertFunction(\"Please select department.\")\r\n }\r\n else {\r\n setDepartmentObj((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n setSelectedSerNo(departmentObj.DepartmentSerNo)\r\n }\r\n }\r\n const handleOnAddClick = () => {\r\n clearValidation();\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setDepartmentObj(obj);\r\n }\r\n const handleOnCancelClick = () => {\r\n let existingObj = departmentList.find(x => x.DepartmentSerNo == selectedSerNo);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setDepartmentObj(existingObj);\r\n }\r\n else {\r\n setDepartmentObj(defaultObj);\r\n }\r\n }\r\n const searchEdit = () => {\r\n GetInvDepartmentMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n let temp = d.data.filter(x => x.Name.toLowerCase().includes(search.toLowerCase()));\r\n setDepartmentFilter(temp);\r\n })\r\n }\r\n const handleOnSaveClick = () => {\r\n let valid = isValidPage();\r\n if (valid) {\r\n setIsActive(true);\r\n AddEditInvDepartmentMaster(departmentObj).then((d) => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n fillDepartmentList();\r\n if (departmentObj.Mode == \"Add\" || departmentObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit();\r\n return;\r\n }\r\n departmentObj.DepartmentSerNo = parseInt(d.data.ReturnValue);\r\n }\r\n }\r\n else {\r\n alertFunction(\"something went wrong.\")\r\n }\r\n });\r\n setDepartmentObj((prev) => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n //#endregion\r\n return (\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Department Master

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      Department Names
      \r\n
      \r\n
        \r\n {\r\n departmentFilter.map(d =>\r\n
      • \r\n {d.Name}\r\n
      • \r\n )\r\n }\r\n {/*
      • House Keeping
      • \r\n
      • Reservations
      • \r\n
      • Human Resources
      • \r\n
      • Finance
      • \r\n
      • Revenue
      • \r\n
      • Information Technology
      • \r\n
      • General Admin
      • \r\n
      • Sales
      • \r\n
      • Engineering
      • \r\n
      • Security
      • */}\r\n
      \r\n
      \r\n
      \r\n
      \r\n\r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n {\r\n if (departmentList.find((x) => x.Name == v)) {\r\n setDepartmentValid((prev) => ({ ...prev, Name: \"Invalid name\" }))\r\n }\r\n else {\r\n setDepartmentValid((prev) => ({ ...prev, Name: \"\" }))\r\n setDepartmentObj((prev) => ({ ...prev, Name: v }))\r\n }\r\n }}>Name\r\n {\r\n if (departmentList.find((x) => x.ShortName == v)) {\r\n setDepartmentValid((prev) => ({ ...prev, Name: \"Invalid name\" }))\r\n }\r\n else {\r\n setDepartmentValid((prev) => ({ ...prev, ShortName: \"\" }))\r\n setDepartmentObj((prev) => ({ ...prev, ShortName: v }))\r\n }\r\n }}>Short Name\r\n {\r\n setDepartmentObj((prev) => ({ ...prev, OpeningDate: v }))\r\n //setDepartmentValid((prev) => ({...prev, OpeningDate: \"\"}))\r\n }}\r\n placeholder=\"Opening Date\"\r\n calendarStartDay={1}\r\n label=\"Opening Date\"\r\n disabled={departmentObj.Mode == \"View\" ? true : false}\r\n >\r\n
      \r\n Is Allow Direct Purchase\r\n {\r\n setDepartmentObj((prev) => ({ ...prev, IsAllowDirectPurchase: v }))\r\n }}>\r\n
      \r\n
      \r\n Is Logical Department\r\n {\r\n setDepartmentObj((prev) => ({ ...prev, IsLogicalDepartment: v }))\r\n }}>\r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n Activate console.log(v)} id=\"DM\">\r\n {\r\n departmentObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n {/* setShowDepositTermTypeModal(!showDepositTermTypeModal)}>Add Deposit Term Type*/}\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleDateSelection,\r\n InnPlainButton,\r\n InnTooltip,\r\n InnModalPopup,\r\n InnCheckbox,\r\n InnTextarea,\r\n InnLoader,\r\n useConfirm,\r\n} from \"../../../../component\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { GetInvStoreMaster, AddEditInvStoreMaster } from \"../../../../services/inventoryMasterService\";\r\nimport { StoreUserModelPopup } from \"./StoreUserModelPopup\";\r\n\r\nexport function StoreMaster() {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"y\", title: \"Ok\", type: \"\" }],\r\n });\r\n }\r\n //#region default object \r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n StoreSerNo: 0,\r\n Name: \"\",\r\n OpeningDate: \"\",\r\n Mode: \"View\"\r\n }\r\n //#endregion\r\n //#region validation object\r\n const validation = {\r\n Name: \"\",\r\n OpeningDate : \"\"\r\n }\r\n //#endregion\r\n //#region state variable\r\n const [storeObj, setStoreObj] = useState(defaultObj);\r\n const [storeList, setStoreList] = useState([]);\r\n const [storeFilter, setStoreFilter] = useState([]);\r\n const [storeValid, setStoreValid] = useState(validation);\r\n const [search, setSearch] = useState(\"\");\r\n const [selectedSerNo, setSelectedSerNo] = useState(0);\r\n const [isActive, setIsActive] = useState(false);\r\n //#endregion\r\n //#region load store list \r\n const fillStore = () => {\r\n setIsActive(true);\r\n GetInvStoreMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setIsActive(false);\r\n setStoreList(d.data);\r\n setStoreFilter(d.data);\r\n if (d.data && d.data.length > 0) {\r\n if (storeObj.Mode == \"Add\" || storeObj.Mode == \"Edit\") {\r\n let temp = d.data.find(x => x.StoreSerNo == storeObj.StoreSerNo);\r\n if (temp) {\r\n temp.Mode = \"View\";\r\n setStoreObj(temp);\r\n console.log(\"AddEditData>>\", temp)\r\n }\r\n }\r\n else {\r\n d.data[0].Mode = \"View\";\r\n setStoreObj(d.data[0]);\r\n console.log(\"DefaultData>>\", d.data[0]);\r\n }\r\n }\r\n });\r\n }\r\n //#endregion\r\n //region useEffect\r\n useEffect(() => {\r\n fillStore();\r\n }, [])\r\n //#endregion\r\n //#region validation\r\n const clearValidation = () => {\r\n setStoreValid(validation);\r\n }\r\n const isValidPage = () => {\r\n let valid = true;\r\n if (storeValid.Name != \"\") {\r\n setStoreValid((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n valid = false;\r\n }\r\n if (storeObj.Name == \"\" || storeObj.Name.trim().length == 0 || /[0-9’/`~!#*$@_+=^{}[\\]|;:<>?\\\\]/g.test(storeObj.Name) == true) {\r\n valid = false;\r\n setStoreValid((prev) => ({ ...prev, Name: \"Invalid name\" }));\r\n }\r\n return valid;\r\n }\r\n //#endregion\r\n //#region event handler\r\n const handleOnSearchClick = (e) => {\r\n clearValidation();\r\n setSearch(e);\r\n setStoreObj(defaultObj);\r\n let obj = [];\r\n storeList.forEach((ele) => {\r\n if (ele.Name.toLowerCase().includes(e.toLowerCase())) {\r\n obj.push(ele);\r\n }\r\n });\r\n setStoreFilter(obj);\r\n }\r\n const handleOnNameClick = (e) => {\r\n clearValidation();\r\n setIsActive(false);\r\n let temp = storeList.find(x => x.StoreSerNo == e.target.id);\r\n temp.Mode = \"View\";\r\n setStoreObj(temp);\r\n setSelectedSerNo(e.target.id);\r\n console.log(\"NameClickData\", temp);\r\n }\r\n const handleOnEditClick = () => {\r\n if(storeObj.Name == \"\"){\r\n alertFunction(\"Please select store.\");\r\n }\r\n else{\r\n setStoreObj((prev) => ({...prev, Mode: \"Edit\"}));\r\n setSelectedSerNo(storeObj.StoreSerNo);\r\n }\r\n }\r\n const handleOnAddClick = () => {\r\n clearValidation();\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setStoreObj(obj);\r\n }\r\n const handleOnCancelClick = () => {\r\n let existingObj = storeList.find(x => x.StoreSerNo == selectedSerNo);\r\n if(existingObj != undefined){\r\n existingObj.Mode = \"View\";\r\n setStoreObj(existingObj)\r\n }\r\n else{\r\n setStoreObj(defaultObj);\r\n }\r\n }\r\n const searchEdit = () => {\r\n GetInvStoreMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n let temp = d.data.filter(x => x.Name.toLowerCase().includes(search.toLowerCase()));\r\n setStoreFilter(temp);\r\n })\r\n }\r\n const handleOnSaveClick = () => {\r\n let isValid = isValidPage();\r\n if(isValid){\r\n setIsActive(true);\r\n AddEditInvStoreMaster(storeObj).then((d) => {\r\n setIsActive(false);\r\n if(d.data.Code == \"200\"){\r\n alertFunction(d.data.Message)\r\n fillStore();\r\n if(storeObj.Mode == \"Add\" || storeObj.Mode == \"Edit\"){\r\n if(search != \"\"){\r\n searchEdit();\r\n return;\r\n }\r\n storeObj.StoreSerNo = parseInt(d.data.ReturnValue);\r\n }\r\n }\r\n else{\r\n alertFunction(\"Something went wrong\")\r\n }\r\n });\r\n setStoreObj((prev) => ({...prev, Mode: \"View\"}))\r\n }\r\n else{\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n //#endregion\r\n const LastUpdateTooltip = () => {\r\n return (\r\n
      \r\n
      \r\n
        \r\n
      • By Rohan Shah
      • \r\n
      • Date: 25th Sept.
      • \r\n
      • Time: 15:45
      • \r\n
      • PC: 192.168.600.789
      • \r\n
      \r\n
      \r\n\r\n
      \r\n );\r\n };\r\n const [showStoreModal, setShowStoreModal] = useState(false);\r\n return (\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Store Master

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      List of Store
      \r\n
      \r\n
        \r\n {\r\n storeFilter.map((d) =>\r\n
      • \r\n {d.Name}\r\n
      • \r\n )\r\n }\r\n
      \r\n
      \r\n
      \r\n
      \r\n\r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n {\r\n if (storeList.find((x) => x.Name == m)) {\r\n setStoreValid(prev => ({ ...prev, Name: \"Invalid name\" }))\r\n }\r\n else {\r\n setStoreValid((prev) => ({ ...prev, Name: \"\" }))\r\n setStoreObj(prev => ({ ...prev, Name: m }));\r\n }\r\n }}\r\n >Name\r\n
      \r\n {\r\n setStoreObj((prev) => ({ ...prev, OpeningDate: v }))\r\n //setStoreValid((prev) => ({...prev, OpeningDate: \"\"}))\r\n console.log(v)\r\n }}\r\n >
      \r\n
      \r\n {/*
      \r\n Direct Purchase Allowed?\r\n console.log(v)} id=\"department2\" value={false}>\r\n
      */}\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      {\r\n if (storeObj.StoreSerNo != 0) {\r\n setShowStoreModal(!showStoreModal)\r\n } else {\r\n alertFunction(\"Please select Store to continue.\")\r\n }\r\n }}>Store User
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n {/* setShowDepositTermTypeModal(!showDepositTermTypeModal)}>Add Deposit Term Type*/}\r\n Activate console.log(v)} id=\"SM\">\r\n {\r\n storeObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n {showStoreModal ? (\r\n { setShowStoreModal(false)}} \r\n >\r\n ) : null}\r\n
      \r\n )\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTooltip,\r\n InnLoader,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetUnitMaster, AddEditUnitMaster, GetGSTUnitMaster } from \"../../../../services/inventoryMasterService\";\r\n\r\nexport default function UnitofMeasureMaster() {\r\n\r\n const curr = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const defaultUnit = {\r\n ClientSerNo: parseInt(curr.ClientSerNo),\r\n UnitID: \"\",\r\n Name: \"\",\r\n Conversion: 0,\r\n BaseUnitID: \"\",\r\n GSTUnitID: \"\",\r\n Mode: \"View\"\r\n }\r\n const validUnit = {\r\n UnitID: \"\",\r\n Name: \"\",\r\n Conversion: 0,\r\n }\r\n const [unitObj, setUnitObj] = useState(defaultUnit);\r\n const [unitMaster, setUnitMaster] = useState([]);\r\n const [filterUnitMaster, setFilterUnitMaster] = useState([]);\r\n const [isActive, setIsActive] = useState(false);\r\n const [unitValidation, setUnitValidation] = useState(validUnit);\r\n const [loadBaseUnit, setLoadBaseUnit] = useState([]);\r\n const [selectedUnitSerNo, setSelectedUnitSerNo] = useState(0);\r\n const [searchstr, setSearchstr] = useState(\"\");\r\n const [loadGSTUnit, setLoadGSTUnit] = useState([]);\r\n\r\n const fillUnit = () => {\r\n setIsActive(true);\r\n GetUnitMaster(parseInt(curr.ClientSerNo)).then(d => {\r\n setIsActive(false);\r\n let sortData = [...d.data].sort((a, b) => {\r\n return a.Name.toLowerCase() > b.Name.toLowerCase() ? 1 : -1\r\n });\r\n setUnitMaster(sortData);\r\n setFilterUnitMaster(sortData);\r\n if (sortData.length > 0) {\r\n if (unitObj.Mode == \"Add\" || unitObj.Mode == \"Edit\") {\r\n let obj = sortData.find(x => x.UnitID == unitObj.UnitID);\r\n if (obj) {\r\n obj.Mode = \"View\";\r\n setUnitObj(obj);\r\n }\r\n }\r\n else {\r\n sortData[0].Mode = \"View\";\r\n setUnitObj(sortData[0]);\r\n }\r\n }\r\n let newArr = [];\r\n newArr = sortData.filter((o) => o.UnitID == o.BaseUnitID);\r\n if (newArr != undefined) {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n newArr.forEach((x) => {\r\n temp = [...temp, { key: x.UnitID, value: x.BaseUnitID }]\r\n });\r\n setLoadBaseUnit(temp);\r\n }\r\n });\r\n\r\n }\r\n\r\n const fillGSTUnit = () => {\r\n setIsActive(true);\r\n GetGSTUnitMaster().then(d => {\r\n if (d.data != undefined) {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach((x) => {\r\n temp = [...temp, { key: x.GSTUnitID, value: x.Name }]\r\n });\r\n setLoadGSTUnit(temp);\r\n }\r\n setIsActive(false);\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n fillUnit();\r\n }, []);\r\n\r\n useEffect(() => {\r\n fillGSTUnit();\r\n }, []);\r\n const handleOnSearch = (s) => {\r\n setSearchstr(s);\r\n let Filter = unitMaster.filter(x => x.Name.toLowerCase().includes(s.toLowerCase()));\r\n setFilterUnitMaster(Filter);\r\n }\r\n const handleOnSearchEdit = () => {\r\n GetUnitMaster(parseInt(curr.ClientSerNo)).then(d => {\r\n let tmp = d.data.filter(x => x.Name.toLowerCase().includes(searchstr.toLowerCase()));\r\n setFilterUnitMaster(tmp);\r\n });\r\n }\r\n\r\n const handleOnUnitClick = (e) => {\r\n clearValidation()\r\n let obj = unitMaster.find(x => x.UnitID == e.target.id)\r\n obj.Mode = \"View\";\r\n setUnitObj(obj);\r\n setSelectedUnitSerNo(e.target.id);\r\n console.log(obj);\r\n }\r\n\r\n const handleOnAdd = () => {\r\n let Add = JSON.parse(JSON.stringify(defaultUnit));\r\n Add.Mode = \"Add\";\r\n setUnitObj(Add);\r\n }\r\n\r\n const handleOnEdit = () => {\r\n if (unitObj.Name == \"\") {\r\n alertFunction(\"Please Select unit Name\");\r\n }\r\n else {\r\n setUnitObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n }\r\n }\r\n\r\n const handleOnCancel = () => {\r\n clearValidation()\r\n let temp = unitMaster.find(x => x.UnitID == selectedUnitSerNo);\r\n console.log(temp);\r\n if (temp != undefined) {\r\n temp.Mode = \"View\";\r\n setUnitObj(temp);\r\n }\r\n else {\r\n setUnitObj(defaultUnit);\r\n }\r\n }\r\n const clearValidation = () => {\r\n setUnitValidation(validUnit);\r\n }\r\n const validation = () => {\r\n let isValid = true;\r\n if (unitValidation.Name != \"\") {\r\n setUnitValidation((prev) => ({ ...prev, Name: \"This Name Already Existes\" }))\r\n isValid = false;\r\n }\r\n if (unitValidation.UnitID != \"\") {\r\n setUnitValidation((prev) => ({ ...prev, UnitID: \"This Unit Already Existes\" }))\r\n isValid = false;\r\n }\r\n if (unitObj.UnitID.trim() == \"\") {\r\n isValid = false;\r\n setUnitValidation(prev => ({ ...prev, UnitID: \"Please Enter UnitID.\" }));\r\n }\r\n if (unitObj.Name == \"\" || /[’/`~!#*$@_+=^{}[\\]|;:<>?\\\\]/g.test(unitObj.Name) == true) {\r\n isValid = false;\r\n setUnitValidation(prev => ({ ...prev, Name: \"Please Enter Name.\" }));\r\n }\r\n if (!(/^[0-9\\b]+$/g.test(unitObj.Conversion) == true)) {\r\n isValid = false;\r\n setUnitValidation((prev) => ({ ...prev, Conversion: \"Please Enter Only Number.\" }))\r\n }\r\n return isValid;\r\n }\r\n const handleOnSave = () => {\r\n let validPage = validation();\r\n if (validPage) {\r\n unitObj.ClientSerNo = parseInt(curr.ClientSerNo);\r\n unitObj.Conversion = parseInt(unitObj.Conversion);\r\n AddEditUnitMaster(unitObj).then(d => {\r\n console.log(unitObj);\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n fillUnit();\r\n if (unitObj.Mode == \"Add\" || unitObj.Mode == \"Edit\") {\r\n if (searchstr != \"\") {\r\n handleOnSearchEdit();\r\n }\r\n unitObj.UnitID = d.data.ReturnValue;\r\n setSelectedUnitSerNo(d.data.ReturnValue);\r\n }\r\n }\r\n else {\r\n // setUnitObj(defaultUnit)\r\n setUnitObj(prev => ({ ...prev, Mode: \"Add\" }));\r\n alertFunction(\"Somthing Went Wrong, Please verify accordingly.\");\r\n }\r\n });\r\n setUnitObj(prev => ({ ...prev, Mode: \"View\" }));\r\n }\r\n else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n\r\n const LastUpdateTooltip = () => {\r\n return (\r\n
      \r\n
      \r\n
        \r\n
      • By Rohan Shah
      • \r\n
      • Date: 25th Sept.
      • \r\n
      • Time: 15:45
      • \r\n
      • PC: 192.168.600.789
      • \r\n
      \r\n
      \r\n\r\n
      \r\n );\r\n };\r\n return (\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Unit of Measure

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      List of Unit
      \r\n
      \r\n
        \r\n {\r\n filterUnitMaster.map(d =>\r\n
      • \r\n {d.Name}\r\n
      • \r\n )\r\n }\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n {\r\n if (unitMaster.find((o) => o.UnitID == v)) {\r\n setUnitValidation(prev => ({ ...prev, UnitID: \"This Unit Already Existes\" }));\r\n }\r\n else {\r\n setUnitObj(prev => ({ ...prev, UnitID: v }));\r\n setUnitValidation(prev => ({ ...prev, UnitID: \"\" }));\r\n }\r\n }}\r\n >Unit\r\n {\r\n if (unitMaster.find((o) => o.Name == v)) {\r\n setUnitValidation((prev) => ({ ...prev, Name: \"This Name Already Existes\" }))\r\n } else {\r\n setUnitObj(prev => ({ ...prev, Name: v }));\r\n setUnitValidation(prev => ({ ...prev, Name: \"\" }))\r\n }\r\n }}\r\n >Name\r\n {\r\n setUnitObj(prev => ({ ...prev, Conversion: v }))\r\n setUnitValidation((prev) => ({ ...prev, Conversion: \"\" }));\r\n }}\r\n >Conversion\r\n
      \r\n {\r\n setUnitObj(prev => ({ ...prev, BaseUnitID: item.value }));\r\n }}\r\n >\r\n
      \r\n
      \r\n {\r\n setUnitObj(prev => ({ ...prev, GSTUnitID: item.key }))\r\n console.log(item);\r\n }}\r\n >\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n {\r\n unitObj.Mode == \"View\" ?\r\n <>\r\n Activate console.log(v)} id=\"UM\">\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnLoader,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton,\r\n InnTooltip,\r\n InnTextarea,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport { GetInvVenderMaster, AddEditInvVenderMaster, GetInvVenderMasterDetail } from '../../../../services/inventoryMasterService';\r\nimport { GetCityMaster, GetCoutryMaster, GetStateMaster } from \"../../../../services/reservationService\";\r\nimport { useSelector } from 'react-redux';\r\nimport { currentUser } from '../../../../reducer/authSlice';\r\n\r\nexport function VenderMaster() {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n //#region Local Variable\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n VenderSerNo: 0,\r\n Name: \"\",\r\n }\r\n const defaultVenderObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n PropertySerNo: parseInt(currUser.PropertySerNo),\r\n VenderSerNo: 0,\r\n Name: \"\",\r\n ShortName: \"\",\r\n Street: \"\",\r\n CitySerNo: 0,\r\n StateSerNo: 0,\r\n CountrySerNo: 0,\r\n Postcode: \"\",\r\n Phone: \"\",\r\n Fax: \"\",\r\n Mobile: \"\",\r\n Email: \"\",\r\n CreditDays: 0,\r\n CreditLimit: 0,\r\n ContactPerson: \"\",\r\n ContactDesignation: \"\",\r\n TinNo: \"\",\r\n AccountName: \"\",\r\n IFSCCode: \"\",\r\n BankName: \"\",\r\n BranchName: \"\",\r\n SwiftCode: \"\",\r\n AccountNo: \"\",\r\n GSTIN: \"\",\r\n RegisterType: \"R\",\r\n PANNo: \"\",\r\n IsImplementIGST: false,\r\n IsTDSapplicable: false,\r\n MSMENO: \"\",\r\n Mode: \"View\"\r\n\r\n }\r\n const validationObj = {\r\n Name: \"\",\r\n Mobile: \"\",\r\n RegisterType: \"\"\r\n }\r\n //#endregion\r\n //#region State Variable\r\n const [venderObj, setVenderObj] = useState(defaultObj);\r\n const [venderSelectObj, setVenderSelectObj] = useState(defaultVenderObj);\r\n const [venderMaster, setVenderMaster] = useState([]);\r\n const [filterVender, setFilterVender] = useState([]);\r\n const [selectedVenderSerNo, setSelectedVenderSerNo] = useState(0);\r\n const [venderValidation, setVenderValidation] = useState(validationObj);\r\n const [isActive, setIsActive] = useState(false);\r\n const [searchString, setsearchString] = useState(\"\");\r\n const [orgObj, setOrgObj] = useState();\r\n\r\n //Dropdowns\r\n const [countryData, setCountryData] = useState([]);\r\n const [stateData, setStateData] = useState([]);\r\n const [cityData, setCityData] = useState([]);\r\n const registerTypeData = [\r\n { key: \"R\", value: \"Select\" },\r\n { key: \"RR\", value: \"Registered - regular\" },\r\n { key: \"RC\", value: \"Registered - Composition\" },\r\n { key: \"UR\", value: \"Unregistered\" },\r\n ]\r\n //#endregion\r\n\r\n //#StartRegion UseEffect\r\n useEffect(() => {\r\n fillVenderMaster();\r\n }, []);\r\n\r\n useEffect(() => {\r\n GetCoutryMaster(currUser.ClientSerNo).then((d) => {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach((x) => {\r\n temp = [...temp, { key: x.CountrySerNo, value: x.Name }]\r\n })\r\n setCountryData(temp);\r\n })\r\n }, [selectedVenderSerNo]);\r\n\r\n useEffect(() => {\r\n if (venderSelectObj.CountrySerNo != 0 && venderSelectObj.CountrySerNo != undefined) {\r\n GetStateMaster(currUser.ClientSerNo, venderSelectObj.CountrySerNo).then((d) => {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach((x) => {\r\n temp = [...temp, { key: x.StateSerNo, value: x.Name }]\r\n })\r\n setStateData(temp)\r\n })\r\n }\r\n }, [venderSelectObj.CountrySerNo])\r\n useEffect(() => {\r\n if (venderSelectObj.CountrySerNo != 0 && venderSelectObj.CountrySerNo != undefined && venderSelectObj.StateSerNo != 0 && venderSelectObj.StateSerNo != undefined) {\r\n GetCityMaster(currUser.ClientSerNo, venderSelectObj.CountrySerNo, venderSelectObj.StateSerNo).then((d) => {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach((x) => {\r\n temp = [...temp, { key: x.CitySerNo, value: x.Name }]\r\n })\r\n setCityData(temp);\r\n })\r\n }\r\n }, [venderSelectObj.StateSerNo])\r\n //#End Region \r\n\r\n //#region Custom Functions\r\n const fillVenderMaster = () => {\r\n setIsActive(true);\r\n GetInvVenderMaster(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then(d => {\r\n setIsActive(false);\r\n let sortData = [...d.data].sort((a,b) => {\r\n return a.Name.toLowerCase() > b.Name.toLowerCase() ? 1 : -1\r\n });\r\n if (sortData && sortData.length > 0 && (venderObj.VenderSerNo == 0 || venderObj.VenderSerNo == undefined)) {\r\n let obj = sortData[0];\r\n //obj.Mode = \"View\";\r\n setVenderObj(obj); \r\n setSelectedVenderSerNo(obj.VenderSerNo);\r\n }\r\n if (sortData.length != 0) {\r\n setVenderObj(sortData[0]); \r\n setVenderMaster(sortData);\r\n setFilterVender(sortData);\r\n }\r\n if (venderSelectObj.Mode == \"Add\" || venderSelectObj.Mode == \"Edit\") {\r\n fillVenderMasterDetail(venderSelectObj.VenderSerNo);\r\n }\r\n else if(d.data.length > 0 || venderSelectObj.Mode == \"View\") {\r\n fillVenderMasterDetail(sortData[0].VenderSerNo);\r\n }\r\n });\r\n }\r\n\r\n\r\n const fillVenderMasterDetail = (serno) => {\r\n if((serno != 0 && serno != undefined))\r\n {\r\n setIsActive(true);\r\n GetInvVenderMasterDetail(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), serno).then(d => {\r\n setIsActive(false);\r\n if (d.data != undefined) {\r\n if (venderSelectObj.Mode == \"Add\" || venderSelectObj.Mode == \"Edit\") {\r\n setVenderSelectObj(d.data);\r\n }\r\n let temp = d.data;\r\n temp.VenderSerNo = serno;\r\n if (temp != undefined) {\r\n temp.Mode = \"View\";\r\n setVenderSelectObj(temp);\r\n setOrgObj(temp);\r\n setSelectedVenderSerNo(temp.VenderSerNo);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n const handleOnSearchChange = (b) => {\r\n let filterdata = venderMaster.filter(obj => obj.Name.toLowerCase().includes(b.toLowerCase()));\r\n setFilterVender(filterdata);\r\n setsearchString(b);\r\n setIsActive(false);\r\n setVenderObj(defaultObj);\r\n }\r\n //#endregion\r\n\r\n //#region Validation\r\n const clearValidation = () => {\r\n setVenderValidation(validationObj);\r\n }\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (venderValidation.Name != \"\") {\r\n setVenderValidation((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n isValid = false;\r\n }\r\n if (venderSelectObj.Name == \"\" ) {\r\n isValid = false;\r\n setVenderValidation(prev => ({ ...prev, Name: \"Please enter valid Name\" }));\r\n }\r\n if (venderSelectObj.Mobile == \"\" || !(/^\\d{10}$/g.test(venderSelectObj.Mobile) == true)) {\r\n isValid = false;\r\n setVenderValidation((prev) => ({ ...prev, Mobile: \"Please enter valid Mobile No.\" }))\r\n }\r\n if (venderSelectObj.RegisterType == \"R\") {\r\n isValid = false;\r\n setVenderValidation((prev) => ({ ...prev, RegisterType: \"Invalid Input\" }))\r\n }\r\n if (venderSelectObj.RegisterType == \"RR\" && venderSelectObj.RegisterType == \"RC\" && venderSelectObj.GSTIN == \"\") {\r\n isValid = false;\r\n setVenderValidation((prev) => ({ ...prev, GSTIN: \"Invalid Input\" }))\r\n }\r\n return isValid;\r\n }\r\n //#endregion\r\n\r\n //#region Vender Name Click\r\n const handleVenderClick = (e) => {\r\n clearValidation();\r\n setSelectedVenderSerNo(e.target.id);\r\n setVenderSelectObj(prev => ({ ...prev, VenderSerNo: e.target.id }))\r\n }\r\n //#endregion\r\n\r\n //#region Add \r\n const handleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultVenderObj));\r\n obj.Mode = \"Add\";\r\n setVenderSelectObj(obj);\r\n }\r\n //#endregion\r\n\r\n //#region Edit\r\n const handleOnEditClick = () => {\r\n if (venderSelectObj.Name == \"\") {\r\n alertFunction(\"Please Select Vender Name\");\r\n }\r\n else {\r\n setVenderSelectObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n setSelectedVenderSerNo(venderSelectObj.VenderSerNo)\r\n }\r\n setIsActive(false);\r\n }\r\n //#endregion\r\n\r\n //#region Cancel\r\n const handleOnCancelClick = () => {\r\n clearValidation();\r\n setVenderSelectObj(orgObj);\r\n setsearchString(\"\");\r\n }\r\n //#endregion\r\n\r\n //#region Save\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n setIsActive(true);\r\n AddEditInvVenderMaster(venderSelectObj).then((d) => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") { \r\n alertFunction(d.data.Message);\r\n fillVenderMaster();\r\n if (venderSelectObj.Mode == \"Add\" || venderSelectObj.Mode == \"Edit\") { \r\n venderSelectObj.VenderSerNo = parseInt(d.data.ReturnValue);\r\n \r\n }\r\n setsearchString(\"\");\r\n } else {\r\n alertFunction(\"Something Went Wrong\");\r\n }\r\n })\r\n setVenderSelectObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alertFunction(\"Field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n\r\n useEffect(()=>{\r\n fillVenderMasterDetail(venderSelectObj.VenderSerNo);\r\n },[venderSelectObj.VenderSerNo])\r\n //#endregion\r\n const LastUpdateTooltip = () => {\r\n return (\r\n
      \r\n
      \r\n
        \r\n
      • By Rohan Shah
      • \r\n
      • Date: 25th Sept.
      • \r\n
      • Time: 15:45
      • \r\n
      • PC: 192.168.600.789
      • \r\n
      \r\n
      \r\n\r\n
      \r\n );\r\n };\r\n return (\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Vender Master

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      List of Vender
      \r\n
      \r\n
        \r\n {\r\n filterVender.map(d => {\r\n return (\r\n
      • \r\n {d.Name}\r\n
      • \r\n )\r\n })\r\n }\r\n
      \r\n
      \r\n
      \r\n
      \r\n\r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n {\r\n if (venderMaster.find((x) => x.Name == v)) {\r\n setVenderValidation(prev => ({ ...prev, Name: \"Invalid Vender Name\" }))\r\n }\r\n else {\r\n setVenderValidation(prev => ({ ...prev, Name: \"\" }));\r\n setVenderSelectObj(prev => ({ ...prev, Name: v }));\r\n }\r\n }}\r\n >Name\r\n\r\n {\r\n setVenderValidation(prev => ({ ...prev, ShortName: \"\" }))\r\n setVenderSelectObj(prev => ({ ...prev, ShortName: m }))\r\n if (m == \"\") {\r\n setVenderValidation(prev => ({ ...prev, ShortName: \"Invalid ShortName\" }))\r\n }\r\n }}\r\n >Short Name\r\n {\r\n setVenderValidation(prev => ({ ...prev, Street: \"\" }))\r\n setVenderSelectObj(prev => ({ ...prev, Street: m }))\r\n if (m == \"\") {\r\n setVenderValidation(prev => ({ ...prev, Street: \"Invalid Street\" }))\r\n }\r\n }}\r\n >Street\r\n\r\n
      \r\n {\r\n setVenderSelectObj((prev) => ({ ...prev, CountrySerNo: item.key }))\r\n }}\r\n >\r\n
      \r\n
      \r\n {\r\n setVenderSelectObj((prev) => ({ ...prev, StateSerNo: item.key }))\r\n }}\r\n selectedSerNo={venderSelectObj.StateSerNo}\r\n >\r\n
      \r\n
      \r\n {\r\n setVenderSelectObj((prev) => ({ ...prev, CitySerNo: item.key }))\r\n }}\r\n >\r\n
      \r\n {\r\n setVenderValidation(prev => ({ ...prev, Postcode: \"\" }))\r\n setVenderSelectObj(prev => ({ ...prev, Postcode: m }))\r\n if (m == \"\") {\r\n setVenderValidation(prev => ({ ...prev, Postcode: \"Invalid Postcode\" }))\r\n }\r\n }}>Post code\r\n {\r\n setVenderSelectObj(prev => ({ ...prev, Phone: m }))\r\n if (/^[0-9]+$/.test(m)) {\r\n setVenderValidation((prev) => ({ ...prev, Phone: \"\" }))\r\n }\r\n else {\r\n setVenderValidation((prev) => ({ ...prev, Phone: \"Invalid Phone\" }))\r\n }\r\n }}>Phone\r\n {\r\n setVenderValidation(prev => ({ ...prev, Fax: \"\" }))\r\n setVenderSelectObj(prev => ({ ...prev, Fax: m }))\r\n if (m == \"\") {\r\n setVenderValidation(prev => ({ ...prev, Fax: \"Invalid Fax\" }))\r\n }\r\n }}>Fax\r\n {\r\n setVenderSelectObj(prev => ({ ...prev, Mobile: m }))\r\n if (/^[0-9]+$/i.test(m)) {\r\n setVenderValidation((prev) => ({ ...prev, Mobile: \"\" }))\r\n }\r\n else {\r\n setVenderValidation(prev => ({ ...prev, Mobile: \"Invalid Mobile\" }))\r\n }\r\n }}>Mobile\r\n {\r\n setVenderValidation(prev => ({ ...prev, Email: \"\" }))\r\n setVenderSelectObj(prev => ({ ...prev, Email: m }))\r\n if (m == \"\") {\r\n setVenderValidation(prev => ({ ...prev, Email: \"Invalid Email\" }))\r\n }\r\n }}>Email\r\n\r\n
      \r\n
      \r\n {\r\n setVenderValidation(prev => ({ ...prev, CreditDays: \"\" }))\r\n setVenderSelectObj(prev => ({ ...prev, CreditDays: m }))\r\n if (m == \"\") {\r\n setVenderValidation(prev => ({ ...prev, CreditDays: \"Invalid CreditDays\" }))\r\n }\r\n }}\r\n >Credit Days\r\n {\r\n setVenderValidation(prev => ({ ...prev, CreditLimit: \"\" }))\r\n setVenderSelectObj(prev => ({ ...prev, CreditLimit: m }))\r\n if (m == \"\") {\r\n setVenderValidation(prev => ({ ...prev, CreditLimit: \"Invalid CreditLimit\" }))\r\n }\r\n }}\r\n >Credit Limit\r\n {\r\n setVenderValidation(prev => ({ ...prev, ContactPerson: \"\" }))\r\n setVenderSelectObj(prev => ({ ...prev, ContactPerson: m }))\r\n if (m == \"\") {\r\n setVenderValidation(prev => ({ ...prev, ContactPerson: \"Invalid ContactPerson\" }))\r\n }\r\n }}\r\n >Contact Person\r\n {\r\n setVenderValidation(prev => ({ ...prev, ContactDesignation: \"\" }))\r\n setVenderSelectObj(prev => ({ ...prev, ContactDesignation: m }))\r\n if (m == \"\") {\r\n setVenderValidation(prev => ({ ...prev, ContactDesignation: \"Invalid ContactDesignation\" }))\r\n }\r\n }}\r\n >Contact Designation\r\n {\r\n setVenderValidation(prev => ({ ...prev, TinNo: \"\" }))\r\n setVenderSelectObj(prev => ({ ...prev, TinNo: m }))\r\n if (m == \"\") {\r\n setVenderValidation(prev => ({ ...prev, TinNo: \"Invalid TinNo\" }))\r\n }\r\n }}\r\n >Tin No\r\n {\r\n setVenderValidation(prev => ({ ...prev, AccountName: \"\" }))\r\n setVenderSelectObj(prev => ({ ...prev, AccountName: m }))\r\n if (m == \"\") {\r\n setVenderValidation(prev => ({ ...prev, AccountName: \"Invalid AccountName\" }))\r\n }\r\n }}\r\n >Account Name\r\n {\r\n setVenderValidation(prev => ({ ...prev, IFSCCode: \"\" }))\r\n setVenderSelectObj(prev => ({ ...prev, IFSCCode: m }))\r\n if (m == \"\") {\r\n setVenderValidation(prev => ({ ...prev, IFSCCode: \"Invalid IFSCCode\" }))\r\n }\r\n }}\r\n >IFSC Code\r\n {\r\n setVenderValidation(prev => ({ ...prev, BankName: \"\" }))\r\n setVenderSelectObj(prev => ({ ...prev, BankName: m }))\r\n if (m == \"\") {\r\n setVenderValidation(prev => ({ ...prev, BankName: \"Invalid BankName\" }))\r\n }\r\n }}\r\n >Bank Name\r\n {\r\n setVenderValidation(prev => ({ ...prev, BranchName: \"\" }))\r\n setVenderSelectObj(prev => ({ ...prev, BranchName: m }))\r\n if (m == \"\") {\r\n setVenderValidation(prev => ({ ...prev, BranchName: \"Invalid BranchName\" }))\r\n }\r\n }}\r\n >Branch Name\r\n {\r\n setVenderValidation(prev => ({ ...prev, SwiftCode: \"\" }))\r\n setVenderSelectObj(prev => ({ ...prev, SwiftCode: m }))\r\n if (m == \"\") {\r\n setVenderValidation(prev => ({ ...prev, SwiftCode: \"Invalid SwiftCode\" }))\r\n }\r\n }}\r\n >Swift Code\r\n {\r\n setVenderValidation(prev => ({ ...prev, AccountNo: \"\" }))\r\n setVenderSelectObj(prev => ({ ...prev, AccountNo: m }))\r\n if (m == \"\") {\r\n setVenderValidation(prev => ({ ...prev, AccountNo: \"Invalid AccountNo\" }))\r\n }\r\n }}\r\n >Account No\r\n\r\n
      \r\n
      \r\n
      \r\n {\r\n setVenderSelectObj((prev) => ({\r\n ...prev,\r\n RegisterType: m.key,\r\n }));\r\n }}\r\n >\r\n
      \r\n {venderSelectObj.RegisterType == \"RR\" || venderSelectObj.RegisterType == \"RC\" ?\r\n {\r\n setVenderValidation(prev => ({ ...prev, GSTIN: \"\" }))\r\n setVenderSelectObj(prev => ({ ...prev, GSTIN: m }))\r\n if (m == \"\") {\r\n setVenderValidation(prev => ({ ...prev, GSTIN: \"Invalid GSTIN\" }))\r\n }\r\n }}\r\n >GSTIN\r\n :\r\n <>\r\n }\r\n {\r\n setVenderValidation(prev => ({ ...prev, PANNo: \"\" }))\r\n setVenderSelectObj(prev => ({ ...prev, PANNo: m }))\r\n if (m == \"\") {\r\n setVenderValidation(prev => ({ ...prev, PANNo: \"Invalid PANNo\" }))\r\n }\r\n }}\r\n >PAN No\r\n
      \r\n
      \r\n Is Implement IGST?\r\n \r\n setVenderSelectObj(prev => ({ ...prev, IsImplementIGST: v }))\r\n }\r\n id=\"vender1\"\r\n >\r\n
      \r\n
      \r\n
      \r\n
      \r\n Is TDS applicable?\r\n \r\n setVenderSelectObj(prev => ({ ...prev, IsTDSapplicable: v }))\r\n }\r\n id=\"vender2\"\r\n >\r\n
      \r\n
      \r\n {\r\n setVenderValidation(prev => ({ ...prev, MSMENO: \"\" }))\r\n setVenderSelectObj(prev => ({ ...prev, MSMENO: m }))\r\n if (m == \"\") {\r\n setVenderValidation(prev => ({ ...prev, MSMENO: \"Invalid MSMENO\" }))\r\n }\r\n }}\r\n >MSME NO
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n Activate console.log(v)} id=\"VM\">\r\n {/* setShowDepositTermTypeModal(!showDepositTermTypeModal)}>Add Deposit Term Type*/}\r\n {\r\n venderSelectObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n )\r\n}\r\n\r\n\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport {\r\n InnActionButton,\r\n InnButtonTypeWithDropdown,\r\n InnCheckbox,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnSingleDateSelection,\r\n InnSwitch,\r\n InnTableGrid, InnModalPopup, InnTextarea, InnTimeSelection, InnDataGrid, useConfirm\r\n} from \"../../../../component\";\r\nimport { PurchaseRequest } from \"./modalPopup/purchaseRequestModalPopup\";\r\nimport { DepartmentPurchaseRequestModalPopup } from \"./modalPopup/departmentPurchaseRequestModalPopup\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { DeleteInventoryTransaction, GetInvDepartmentMaster, GetInvStoreMaster, GetInvVenderMaster, GetMaterialTransactionList, GetMovementForBasicInventoryTransaction, UnApproveRequest } from \"../../../../services/inventoryMasterService\";\r\nimport { GetPropertyParameterByKeys } from \"../../../../services/reservationService\";\r\nimport { ApproveStoreRequisitionModalPopup } from \"./modalPopup/approveStoreRequisitionModalPopup\";\r\nimport { ApprovePurchaseRequisitionModalPopup } from \"./modalPopup/approvePurchaseRequisitionModalPopup\";\r\nimport { ManageRights } from \"../../../../services/generalService\";\r\nimport moment from \"moment\";\r\nimport INVTransactionSlip from \"../../general/printDocs/inv-transaction-slip\";\r\n\r\nexport function MaterialManagementSystem(props) {\r\n\r\n const [invBusinessDate, setInvBusinessDate] = useState(\"\");\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const currUser = useSelector(currentUser);\r\n const defaultObj = {\r\n \"ClientSerNo\": parseInt(currUser.ClientSerNo),\r\n \"PropertySerNo\": parseInt(currUser.PropertySerNo),\r\n \"FromDate\": invBusinessDate,\r\n \"ToDate\": invBusinessDate,\r\n \"MovementID\": \"Sel\",\r\n \"SourceType\": \"\",\r\n \"DestType\": \"\",\r\n \"SourceSerNo\": 0,\r\n \"DestSerNo\": 0,\r\n \"PageNumber\": 1,\r\n \"SortCol\": \"TransNo\",\r\n \"SortType\": \"ASC\"\r\n };\r\n const [inventoryFilterObj, setInventoryFilterObj] = useState(defaultObj);\r\n const [tempInvObj, setTempInvObj] = useState({});\r\n const [movementData, setMovementData] = useState([]);\r\n const [departmentData, setDepartmentData] = useState([]);\r\n const [vendorData, setVendorData] = useState([]);\r\n const [storeData, setStoreData] = useState([]);\r\n const [inventoryList, setInventoryList] = useState([]);\r\n const [tempInvData, setTempInvData] = useState([]);\r\n const [movementList, setMovementList] = useState([]);\r\n const [restrictBackDateEdit, setRestrictBackDateEdit] = useState();\r\n const propertyParameters = [\"InvBusinessDate\", \"RestrictBackDateEdit\"];\r\n const [inventoryObj, setInventoryObj] = useState({});\r\n const [conditionalHeader, setConditionalHeader] = useState({ MovementID: \"\", SourceType: \"\", DestType: \"\" });\r\n const [userRightsData, setUserRightsData] = useState([]);\r\n const [IsPrint, setIsPrint] = useState(false);\r\n const [printPara, setPrintPara] = useState({});\r\n const columHeader = [\r\n //{ key: \"Status\", value: \"Status\", type: \"status\", align: \"center\" },\r\n { key: \"Trans. No.\", value: \"TransNo\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Date\", value: \"TransDateTime\", type: \"txt\", sorting: \"Y\" },\r\n {\r\n key: conditionalHeader.SourceType == \"S\" ? \"Store Name\" :\r\n conditionalHeader.SourceType == \"D\" ? \"Department Name\" :\r\n conditionalHeader.SourceType == \"V\" ? \"Vender Name\" : \"Store Name\"\r\n , value: \"SourceName\", type: \"txt\", sorting: \"Y\"\r\n },\r\n {\r\n key: conditionalHeader.DestType == \"S\" ? \"Store Name \" :\r\n conditionalHeader.DestType == \"D\" ? \"Department Name \" :\r\n conditionalHeader.DestType == \"V\" ? \"Vender Name \" : \"Department Name \", value: \"DestName\", type: \"txt\", sorting: \"Y\"\r\n },\r\n { key: \"Value\", value: \"Value\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n { key: \"Invoice No.\", value: \"InvoiceNo\", type: \"txt\", sorting: \"Y\", align: \"right\" },\r\n { key: \"Document Ref.\", value: \"DocRefNo\", type: \"txt\", sorting: \"Y\", align: \"left\" },\r\n { key: \"Status\", value: \"Status\", type: \"txt\", sorting: \"N\", align: \"left\" },\r\n { key: \"Requested By\", value: \"RequestedBy\", type: \"txt\", sorting: \"Y\" },\r\n { key: \"Action\", value: \"Action\", type: \"opt\", sorting: \"N\" },\r\n ];\r\n const ActionOption = [\r\n { key: \"Edit\", value: \"Edit\" },\r\n { key: \"Remove\", value: \"Remove\" },\r\n { key: \"Approve\", value: \"Approve\" },\r\n { key: \"Issue\", value: \"Issue\" },\r\n { key: \"UnApprove\", value: \"Un-Approve\" },\r\n { key: \"PrintRequest\", value: \"Print Request\" },\r\n { key: \"ShowLog\", value: \"Show Log\" },\r\n\r\n ];\r\n\r\n // const optBtnData = [\r\n // { key: \"Edit\", value: \"Edit\" },\r\n // { key: \"Remove\", value: \"Remove\" },\r\n // { key: \"Approve\", value: \"Approve\" },\r\n // { key: \"Issue\", value: \"Issue\" },\r\n // { key: \"Purchase\", value: \"Purchase\" },\r\n // { key: \"Edit item\", value: \"Edit item\" },\r\n // { key: \"UnApprove\", value: \"Un-Approve\" },\r\n // { key: \"print\", value: \"Print\" },\r\n // { key: \"ShowLog\", value: \"Show Log\" },\r\n // ];\r\n\r\n const optBtnData1 = [\r\n { key: \"Edit\", value: \"Edit\" },\r\n { key: \"Remove\", value: \"Remove\" },\r\n { key: \"print\", value: \"Print\" },\r\n { key: \"ShowLog\", value: \"Show Log\" },\r\n ];\r\n\r\n // for store req\r\n const optBtnData2 = [\r\n { key: \"Edit\", value: \"Edit\" },\r\n { key: \"Remove\", value: \"Remove\" },\r\n { key: \"Approve\", value: \"Approve\" },\r\n { key: \"Issue\", value: \"Issue\" },\r\n { key: \"UnApprove\", value: \"Un-Approve\" },\r\n { key: \"print\", value: \"Print\" },\r\n { key: \"ShowLog\", value: \"Show Log\" },\r\n ];\r\n\r\n //for PO , DPURCREQ\r\n const optBtnData3 = [\r\n { key: \"Edit\", value: \"Edit\" },\r\n { key: \"Remove\", value: \"Remove\" },\r\n { key: \"Approve\", value: \"Approve\" },\r\n { key: \"Purchase\", value: \"Purchase\" },\r\n { key: \"UnApprove\", value: \"Un-Approve\" },\r\n { key: \"print\", value: \"Print\" },\r\n { key: \"ShowLog\", value: \"Show Log\" },\r\n ];\r\n\r\n //for DP\r\n const optBtnData4 = [\r\n { key: \"Edit\", value: \"Edit\" },\r\n { key: \"Remove\", value: \"Remove\" },\r\n { key: \"Edit item\", value: \"Edit item\" },\r\n { key: \"print\", value: \"Print\" },\r\n { key: \"ShowLog\", value: \"Show Log\" },\r\n ];\r\n\r\n\r\n const ExportOption = [\r\n { key: \"Export (PDF)\", value: \"pdf\" },\r\n { key: \"Export (Excel)\", value: \"excel\" },\r\n { key: \"print\", value: \"Print\" },\r\n { key: \"Group\", value: \"group\" },\r\n { key: \"UnGroup\", value: \"ungroup\" },\r\n ];\r\n const MoreFilterOption = [\r\n { key: \"OPN1\", value: \"Option 1\" },\r\n { key: \"OPN2\", value: \"Option 2\" },\r\n { key: \"OPN13\", value: \"Option 3\" },\r\n { key: \"OPN4\", value: \"Option 4\" },\r\n ];\r\n const dept = [\r\n \"ADJDPTD\",\r\n \"ADJDPTI\",\r\n \"SALVD\",\r\n \"TRAND\",\r\n ];\r\n\r\n const store = [\"TRANS\"];\r\n\r\n const [mode, setMode] = useState({ mode: \"\", SerNo: 0 });\r\n const actionPopup = (item) => {\r\n if (item.key == \"Approve\") {\r\n if (inventoryObj.MovementID === 'STRREQ' || inventoryObj.MovementID === 'PURCREQ' || inventoryObj.MovementID === 'DPURCREQ') {\r\n if (inventoryObj.IsCompleted !== true) {\r\n let tempRightsSerNo = 0;\r\n if (inventoryObj.MovementID === \"STRREQ\") {\r\n tempRightsSerNo = 73;\r\n }\r\n else if (inventoryObj.MovementID === \"PURCREQ\") {\r\n tempRightsSerNo = 75;\r\n }\r\n else if (inventoryObj.MovementID === \"DPURCREQ\") {\r\n tempRightsSerNo = 74;\r\n }\r\n let temp = userRightsData.find(x => x.RightsSerNo === tempRightsSerNo);\r\n console.warn(\"user right found\", temp, userRightsData, inventoryObj.MovementID);\r\n if (temp !== undefined) {\r\n if (temp.IsApply === true) {\r\n setShowMMSPurchApproveItemsModal(true);\r\n } else {\r\n alertFunction(temp.PromptMessage);\r\n }\r\n } else {\r\n setShowMMSPurchApproveItemsModal(true);\r\n }\r\n } else {\r\n alertFunction(\"Can not approve completed transaction.\");\r\n }\r\n }\r\n else {\r\n alertFunction(\"This functionality is only available for requests which are not issued or purchased.\");\r\n }\r\n }\r\n if (item.key == \"Edit\") {\r\n setMode((prev) => ({ ...prev, mode: \"View\", SerNo: inventoryObj.SerNo, MovementID: inventoryObj.MovementID }));\r\n setShowMMSPurchaseRequestModal(true);\r\n }\r\n if (item.key === \"Issue\") {\r\n if (inventoryObj.MovementID === 'STRREQ') {\r\n if (inventoryObj.Status === 'Approved') {\r\n if (inventoryObj.IsCompleted !== true) {\r\n let temp = userRightsData.find(x => x.RightsSerNo === 76);\r\n if (temp !== undefined) {\r\n if (temp.IsApply === true) {\r\n setIsIssue(true);\r\n setShowMMSPurchApproveItemsModal(true);\r\n } else {\r\n alertFunction(temp.PromptMessage);\r\n }\r\n }\r\n else {\r\n setIsIssue(true);\r\n setShowMMSPurchApproveItemsModal(true);\r\n }\r\n } else {\r\n alertFunction(\"This transaction is issued already.\");\r\n }\r\n } else {\r\n alertFunction(\"Please approve this request to continue.\");\r\n }\r\n }\r\n else {\r\n alertFunction(\"This functionality is only available for store requests.\");\r\n }\r\n }\r\n if (item.key === 'Purchase') {\r\n if ((inventoryObj.MovementID === 'DPURCREQ' || inventoryObj.MovementID === 'PURCREQ')) {\r\n if (inventoryObj.Status === 'Approved') {\r\n if (inventoryObj.IsCompleted !== true) {\r\n let tempRightsSerNo = 0;\r\n if (inventoryObj.MovementID === \"PURCREQ\") {\r\n tempRightsSerNo = 77;\r\n }\r\n else if (inventoryObj.MovementID === \"DPURCREQ\") {\r\n tempRightsSerNo = 78;\r\n }\r\n\r\n let temp = userRightsData.find(x => (x.RightsSerNo === tempRightsSerNo));\r\n if (temp !== undefined) {\r\n if (temp.IsApply === true) {\r\n setShowMMSPurchApproveItemsModal(true);\r\n setIsIssue(true);\r\n }\r\n else {\r\n alertFunction(temp.PromptMessage);\r\n }\r\n }\r\n else {\r\n setShowMMSPurchApproveItemsModal(true);\r\n setIsIssue(true);\r\n }\r\n } else {\r\n alertFunction('This transaction is completed already.');\r\n }\r\n } else {\r\n alertFunction(\"Please approve this request to continue.\");\r\n }\r\n } else {\r\n alertFunction('This functionality is only available for purchase requests.');\r\n }\r\n }\r\n if (item.key === 'Edit item') {\r\n if (inventoryObj.MovementID === 'ISSUE' || inventoryObj.MovementID === 'PURCHASE' || inventoryObj.MovementID === 'DP') {\r\n let tempRightsSerNo = 0;\r\n if (inventoryObj.MovementID === \"ISSUE\") {\r\n tempRightsSerNo = 76;\r\n }\r\n else if (inventoryObj.MovementID === \"PURCHASE\") {\r\n tempRightsSerNo = 77;\r\n }\r\n else if (inventoryObj.MovementID === \"DP\") {\r\n tempRightsSerNo = 78;\r\n }\r\n\r\n\r\n let temp = userRightsData.find(x => (x.RightsSerNo === tempRightsSerNo));\r\n if (temp !== undefined) {\r\n if (temp.IsApply === true) {\r\n setIsIssue(true);\r\n setShowMMSPurchApproveItemsModal(true);\r\n }\r\n else {\r\n alertFunction(temp.PromptMessage);\r\n }\r\n }\r\n else {\r\n setIsIssue(true);\r\n setShowMMSPurchApproveItemsModal(true);\r\n }\r\n }\r\n else {\r\n alertFunction('This functionality is only available for issue or purchase transactions.');\r\n }\r\n }\r\n if (item.key === \"UnApprove\") {\r\n if (inventoryObj.MovementID === 'STRREQ' || inventoryObj.MovementID === 'DPURCREQ' || inventoryObj.MovementID === 'PURCREQ') {\r\n if (inventoryObj.Status === 'Approved') {\r\n UnApproveRequest(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), inventoryObj.SerNo).then(d => {\r\n if (d.data.Code === \"200\") {\r\n alertFunction(d.data.Message);\r\n fillGrid();\r\n }\r\n });\r\n } else {\r\n alertFunction(\"This Request is not approved\");\r\n }\r\n } else {\r\n alertFunction(\"This functionality is not available for issue or purchase transactions.\");\r\n }\r\n }\r\n if (item.key === \"Remove\") {\r\n if ((inventoryObj.MovementID === 'STRREQ' || inventoryObj.MovementID === 'DPURCREQ' || inventoryObj.MovementID === 'PURCREQ') && tempInvObj.IsCompleted == false) {\r\n if (new Date(moment(tempInvObj.TransDateTime).format(\"DD-MMM-YYYY\")).getTime() >= new Date(moment(invBusinessDate).format(\"DD-MMM-YYYY\")).getTime()) {\r\n let temp = userRightsData.find((x) => x.RightsSerNo == 85);\r\n if (temp !== undefined) {\r\n if (temp.IsApply) {\r\n DeleteInventoryTransaction(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), tempInvObj.SerNo).then(d => {\r\n if (d.data.Code === \"200\") {\r\n alertFunction(d.data.Message);\r\n fillGrid();\r\n }\r\n });\r\n }\r\n else {\r\n alertFunction(temp.PromptMessage);\r\n }\r\n }\r\n }\r\n if (new Date(moment(tempInvObj.TransDateTime).format(\"DD-MMM-YYYY\")).getTime() < new Date(moment(invBusinessDate).format(\"DD-MMM-YYYY\")).getTime()) {\r\n if (restrictBackDateEdit == \"Y\") {\r\n alertFunction(\"You are not authorize to delete this back dated transaction.\");\r\n }\r\n else {\r\n let temp1 = userRightsData.find((x) => x.RightsSerNo == 84);\r\n let temp2 = userRightsData.find(x => x.RightsSerNo == 85);\r\n if (temp1 !== undefined) {\r\n if (temp1.IsApply) {\r\n if (temp2 !== undefined) {\r\n if (temp2.IsApply) {\r\n DeleteInventoryTransaction(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), tempInvObj.SerNo).then(d => {\r\n if (d.data.Code === \"200\") {\r\n alertFunction(d.data.Message);\r\n fillGrid();\r\n }\r\n });\r\n }\r\n else {\r\n alertFunction(temp2.PromptMessage);\r\n }\r\n }\r\n }\r\n else {\r\n alertFunction(temp1.PromptMessage);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n alertFunction(\"This transaction is completed, so cannot delete it.\");\r\n }\r\n }\r\n if (item.key === \"print\") {\r\n let IsValid = true;\r\n\r\n if (inventoryObj.MovementID === 'STRREQ' || inventoryObj.MovementID === 'PURCREQ' || inventoryObj.MovementID === 'DPURCREQ') {\r\n if (inventoryObj.IsApproved === true) {\r\n IsValid = true;\r\n }\r\n else {\r\n IsValid = false;\r\n }\r\n } else {\r\n IsValid = true;\r\n }\r\n if (IsValid) {\r\n setIsPrint(true);\r\n let temp = '';\r\n setPrintPara({ ...inventoryObj, flag: temp });\r\n } else {\r\n alertFunction('Please approve this request to continue');\r\n }\r\n }\r\n };\r\n\r\n const [showAdvancedSearchModal, setShowAdvancedSearchModal] = useState(false);\r\n const [showMMSPurchaseRequestModal, setShowMMSPurchaseRequestModal] = useState(false);\r\n const [showMMSPurchReqItemsModal, setShowMMSPurchReqItemsModal] = useState(false);\r\n const [showMMSPurchApproveItemsModal, setShowMMSPurchApproveItemsModal] = useState(false);\r\n\r\n\r\n const [page, setPage] = useState(1);\r\n const [pageCount, setPageCount] = useState(1);\r\n const [colListKeys, setColListKeys] = useState([]);\r\n const [IsIssue, setIsIssue] = useState(false);\r\n\r\n const departmentCombo = (num, flag) => {\r\n return (\r\n <>\r\n
      \r\n
      \r\n
      \r\n {\r\n // if (dept.some((x) => x == inventoryFilterObj.MovementID)) {\r\n // setInventoryFilterObj((prev) => ({ ...prev, SourceSerNo: item.key, DestSerNo: item.key }));\r\n // }\r\n // else {\r\n if (flag == \"Src\") {\r\n setInventoryFilterObj((prev) => ({ ...prev, SourceSerNo: item.key }));\r\n }\r\n if (flag == \"Dst\") {\r\n setInventoryFilterObj((prev) => ({ ...prev, DestSerNo: item.key }));\r\n }\r\n // }\r\n }}\r\n //selectedSerNo={inventoryFilterObj.SourceType == \"D\" ? inventoryFilterObj.SourceSerNo : inventoryFilterObj.DestType == \"D\" ? inventoryFilterObj.DestSerNo : inventoryFilterObj.SourceSerNo}\r\n selectedSerNo={num}\r\n >\r\n
      \r\n
      \r\n
      \r\n \r\n );\r\n };\r\n const StoreCombo = (num, flag) => {\r\n return (\r\n <>\r\n
      \r\n
      \r\n
      \r\n {\r\n // if (store.some((x) => x == inventoryFilterObj.MovementID)) {\r\n // setInventoryFilterObj((prev) => ({ ...prev, SourceSerNo: item.key, DestSerNo: item.key }));\r\n // }\r\n // else {\r\n if (flag == \"Src\") {\r\n setInventoryFilterObj((prev) => ({ ...prev, SourceSerNo: item.key }));\r\n }\r\n if (flag == \"Dst\") {\r\n setInventoryFilterObj((prev) => ({ ...prev, DestSerNo: item.key }));\r\n }\r\n // }\r\n }}\r\n // selectedSerNo={inventoryFilterObj.SourceType == \"S\" ? inventoryFilterObj.SourceSerNo : inventoryFilterObj.DestType == \"S\" ? inventoryFilterObj.DestSerNo : inventoryFilterObj.SourceSerNo} \r\n selectedSerNo={num}\r\n >\r\n
      \r\n
      \r\n
      \r\n \r\n );\r\n };\r\n const vendorCombo = (num, flag) => {\r\n return (\r\n <>\r\n
      \r\n
      \r\n
      \r\n {\r\n if (flag == \"Src\") {\r\n setInventoryFilterObj((prev) => ({ ...prev, SourceSerNo: item.key }));\r\n }\r\n if (flag == \"Dst\") {\r\n setInventoryFilterObj((prev) => ({ ...prev, DestSerNo: item.key }));\r\n }\r\n }}\r\n //selectedSerNo={inventoryFilterObj.SourceType == \"V\" ? inventoryFilterObj.SourceSerNo : inventoryFilterObj.DestType == \"V\" ? inventoryFilterObj.DestSerNo : inventoryFilterObj.SourceSerNo}\r\n selectedSerNo={num}\r\n >\r\n
      \r\n
      \r\n
      \r\n \r\n );\r\n };\r\n const fillMovementData = () => {\r\n GetMovementForBasicInventoryTransaction(currUser.ClientSerNo).then((d) => {\r\n setMovementList(d.data);\r\n let temp = [{ key: \"Sel\", value: \"Select\" }];\r\n d.data.forEach((x) => {\r\n temp.push({ key: x.MovementID, value: x.Name });\r\n });\r\n setMovementData(temp);\r\n });\r\n };\r\n const fillDepartmentData = () => {\r\n GetInvDepartmentMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach((x) => {\r\n if (x.IsLogicalDepartment == false) {\r\n temp.push({ key: x.DepartmentSerNo, value: x.Name });\r\n }\r\n });\r\n setDepartmentData(temp);\r\n });\r\n };\r\n const fillVendorData = () => {\r\n GetInvVenderMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach((x) => {\r\n temp.push({ key: x.VenderSerNo, value: x.Name });\r\n });\r\n setVendorData(temp);\r\n });\r\n };\r\n const fillStoreData = () => {\r\n GetInvStoreMaster(currUser.ClientSerNo, currUser.PropertySerNo).then((d) => {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach((x) => {\r\n temp.push({ key: x.StoreSerNo, value: x.Name });\r\n });\r\n setStoreData(temp);\r\n });\r\n };\r\n const fillGrid = () => {\r\n // let obj = inventoryFilterObj;\r\n // obj.PageNumber = page;\r\n GetMaterialTransactionList(inventoryFilterObj).then((d) => {\r\n setTempInvData(JSON.parse(JSON.stringify(d.data)));\r\n let temp = d.data;\r\n temp.forEach((x, index) => {\r\n x[\"Action\"] = \"...\";\r\n x.Value = x.Value.toFixed(4);\r\n x.TransDateTime = moment(x.TransDateTime).format(\"ddd, DD MMM\");\r\n //x[\"uniqueId\"] = index + 1;\r\n });\r\n setInventoryList(d.data);\r\n if (d.data.length > 0) {\r\n let temp = parseInt(d.data[0].TotalRows) / 50;\r\n setPageCount(Math.ceil(temp));\r\n } else {\r\n setPageCount(1);\r\n }\r\n\r\n });\r\n };\r\n const fillUserRights = () => {\r\n ManageRights(parseInt(currUser.ClientSerNo), currUser.UserID, '73,74,75,76,77,78,84,85').then(d => {\r\n console.log('user rights', d.data);\r\n setUserRightsData(d.data);\r\n });\r\n };\r\n const handleFilterApply = () => {\r\n setConditionalHeader({ MovementID: inventoryFilterObj.MovementID, SourceType: inventoryFilterObj.SourceType, DestType: inventoryFilterObj.DestType });\r\n if (inventoryFilterObj.MovementID != \"Sel\") {\r\n if (page === 1) {\r\n fillGrid();\r\n } else {\r\n setPage(1);\r\n }\r\n setShowAdvancedSearchModal(!showAdvancedSearchModal);\r\n }\r\n else {\r\n alertFunction(\"Please Select MovementID.\");\r\n }\r\n };\r\n const handleReset = () => {\r\n setInventoryFilterObj(defaultObj);\r\n };\r\n useEffect(() => {\r\n fillMovementData();\r\n fillDepartmentData();\r\n fillStoreData();\r\n fillVendorData();\r\n GetPropertyParameterByKeys(currUser.ClientSerNo, currUser.PropertySerNo, propertyParameters).then((d) => {\r\n d.data.forEach((x) => {\r\n if (x.key == \"InvBusinessDate\") {\r\n setInvBusinessDate(x.value);\r\n setInventoryFilterObj((prev) => ({ ...prev, FromDate: x.value, ToDate: x.value }));\r\n }\r\n if (x.key == \"RestrictBackDateEdit\") {\r\n setRestrictBackDateEdit(x.value);\r\n }\r\n });\r\n });\r\n fillUserRights();\r\n }, []);\r\n useEffect(() => {\r\n fillGrid();\r\n }, [inventoryFilterObj.PageNumber, inventoryFilterObj.SortCol, inventoryFilterObj.SortType]);//page\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      MMS

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n {/* {\r\n setshowLeftBlueBar(true);\r\n }}\r\n >\r\n */}\r\n
      \r\n
      \r\n {\r\n setShowMMSPurchaseRequestModal(!showMMSPurchaseRequestModal);\r\n setMode((prev) => ({ ...prev, mode: \"Add\", SerNo: 0 }));\r\n }\r\n }>Add\r\n \r\n Export\r\n \r\n\r\n \r\n Actions (50)\r\n \r\n \r\n setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }\r\n >\r\n \r\n
      \r\n \r\n \r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n {/* */}\r\n {\r\n //setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n //setReservationStatus(v);\r\n //setShowGuestPopup(true);\r\n }}\r\n fixedHeaderNo={2}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"SerNo\"\r\n optData={(inventoryFilterObj.MovementID == \"DP\" || inventoryFilterObj.MovementID === 'PURCHASE' || inventoryFilterObj.MovementID === 'ISSUE') ? optBtnData4 :\r\n (inventoryFilterObj.MovementID == \"PURCREQ\" || inventoryFilterObj.MovementID == \"DPURCREQ\") ? optBtnData3 :\r\n inventoryFilterObj.MovementID == \"STRREQ\" ? optBtnData2 : optBtnData1}\r\n optClick={(item, d) => {\r\n console.log(item);\r\n actionPopup(item);\r\n //history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n setInventoryObj(rowdata);\r\n tempInvData.forEach(x => {\r\n if (x.SerNo == rowdata.SerNo) {\r\n setTempInvObj(x);\r\n }\r\n });\r\n }}\r\n handleSortClick={(sn, st) => {\r\n setInventoryFilterObj((prev) => ({ ...prev, SortCol: sn, SortType: st }));\r\n }}\r\n >\r\n {\r\n setPage(v);\r\n setInventoryFilterObj((prev) => ({ ...prev, PageNumber: v }));\r\n }}\r\n style={{ float: \"right\" }}\r\n />\r\n
      \r\n {/* Advanced Filter Popup Start */}\r\n {showAdvancedSearchModal ? (\r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Filters

      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n \r\n Reset\r\n \r\n \r\n Apply\r\n \r\n \r\n setShowAdvancedSearchModal(!showAdvancedSearchModal)\r\n }\r\n >\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n {\r\n let oldDate = inventoryFilterObj.FromDate;\r\n if (new Date(moment(inventoryFilterObj.ToDate).format(\"DD-MMM-YYYY\")).getTime() >= new Date(moment(e).format(\"DD-MMM-YYYY\")).getTime()) {\r\n setInventoryFilterObj((prev) => ({ ...prev, FromDate: e }));\r\n }\r\n else {\r\n setInventoryFilterObj((prev) => ({ ...prev, FromDate: e }));\r\n setTimeout(() => {\r\n setInventoryFilterObj((prev) => ({ ...prev, FromDate: oldDate }));\r\n }, 10);\r\n alertFunction(\"Cannot select date greater than 'To Date'.\");\r\n }\r\n }}\r\n >\r\n
      \r\n
      \r\n
      \r\n
      \r\n {\r\n let oldDate = inventoryFilterObj.ToDate;\r\n if (new Date(moment(inventoryFilterObj.FromDate).format(\"DD-MMM-YYYY\")).getTime() <= new Date(moment(e).format(\"DD-MMM-YYYY\")).getTime()) {\r\n setInventoryFilterObj((prev) => ({ ...prev, ToDate: e }));\r\n }\r\n else {\r\n setInventoryFilterObj((prev) => ({ ...prev, ToDate: e }));\r\n setTimeout(() => {\r\n setInventoryFilterObj((prev) => ({ ...prev, ToDate: oldDate }));\r\n }, 10);\r\n alertFunction(\"Cannot select date less than 'From Date'.\");\r\n }\r\n }}\r\n >\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n {\r\n setInventoryFilterObj((prev) => ({ ...prev, MovementID: item.key }));\r\n movementList.forEach((s) => {\r\n if (s.MovementID == item.key) {\r\n setInventoryFilterObj((prev) => ({ ...prev, SourceType: s.SourceType, DestType: s.DestType, SourceSerNo: 0, DestSerNo: 0 }));\r\n }\r\n });\r\n }}\r\n selectedSerNo={inventoryFilterObj.MovementID}\r\n >\r\n
      \r\n
      \r\n
      \r\n {\r\n inventoryFilterObj.SourceType == \"D\" ?\r\n departmentCombo(inventoryFilterObj.SourceSerNo, \"Src\")\r\n :\r\n inventoryFilterObj.SourceType == \"V\" ?\r\n vendorCombo(inventoryFilterObj.SourceSerNo, \"Src\")\r\n :\r\n inventoryFilterObj.SourceType == \"S\" ?\r\n StoreCombo(inventoryFilterObj.SourceSerNo, \"Src\")\r\n :\r\n null\r\n\r\n }\r\n {\r\n\r\n inventoryFilterObj.DestType == \"D\"\r\n // && (!dept.some((x) => x == inventoryFilterObj.MovementID)) \r\n ?\r\n departmentCombo(inventoryFilterObj.DestSerNo, \"Dst\")\r\n :\r\n inventoryFilterObj.DestType == \"V\" ?\r\n vendorCombo(inventoryFilterObj.DestSerNo, \"Dst\")\r\n :\r\n inventoryFilterObj.DestType == \"S\"\r\n // && (!store.some((x) => x == inventoryFilterObj.MovementID)) \r\n ?\r\n StoreCombo(inventoryFilterObj.DestSerNo, \"Dst\")\r\n :\r\n null\r\n }\r\n {/*
      \r\n
      \r\n
      \r\n console.log(item, name)}\r\n >\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n console.log(item, name)}\r\n >\r\n
      \r\n
      \r\n
      */}\r\n\r\n {/*
      \r\n
      \r\n
      \r\n console.log(item, name)}\r\n >\r\n
      \r\n
      \r\n
      */}\r\n {/*
      \r\n
      \r\n
      \r\n console.log(item, name)}\r\n >\r\n
      \r\n
      \r\n
      */}\r\n
      \r\n
      \r\n ) : null\r\n }\r\n {/* {showMMSPurchaseRequestModal ? (\r\n setShowMMSPurchaseRequestModal(false)}\r\n >\r\n
      \r\n
      \r\n
      \r\n

      Purchase Request

      \r\n
      \r\n
      \r\n setShowMMSPurchReqItemsModal(!showMMSPurchReqItemsModal)}>Add\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n console.log(item, name)}\r\n >\r\n
      \r\n
      \r\n console.log(item, name)}\r\n >\r\n
      \r\n Document Reference No.\r\n
      \r\n
      \r\n Discount\r\n\r\n
      \r\n
      \r\n
      \r\n In %\r\n
      \r\n
      \r\n
      \r\n
      \r\n All price are inclusive of taxes\r\n
      \r\n Requested By\r\n\r\n \r\n
      \r\n\r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n console.log(item, name)}\r\n >\r\n
      \r\n
      \r\n
      \r\n Challan No.\r\n\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n Invoice No.\r\n\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n console.log(v)}>Note\r\n\r\n\r\n\r\n
      \r\n
      \r\n Cancel\r\n Save\r\n Edit\r\n Add\r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n\r\n {\r\n console.log(items);\r\n //setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n //setReservationStatus(v);\r\n //setShowGuestPopup(true);\r\n }}\r\n //fixedHeaderNo={0}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n actionPopup(item)\r\n //history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n //setSelectedReservation(rowdata);\r\n // handleRmAssignmentData([rowdata]);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      Sub Total : 2500.00
      \r\n
      \r\n
      \r\n
      Less : Discount
      \r\n
      255.00
      \r\n
      \r\n
      \r\n
      Add : Other Charges
      \r\n
      80.00
      \r\n
      \r\n
      \r\n
      Sub-Total
      \r\n
      3845.00
      \r\n
      \r\n
      \r\n
      Add : Taxes
      \r\n
      692.00
      \r\n
      \r\n
      \r\n
      \r\n
      Transaction Total : 4537.00
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n\r\n \r\n ) : null} */}\r\n\r\n {\r\n showMMSPurchaseRequestModal ? (\r\n // \r\n { setShowMMSPurchaseRequestModal(false); setMode({ mode: \"Add\", SerNo: 0 }); fillGrid(); }}>\r\n ) : null\r\n }\r\n\r\n {/* {showMMSPurchReqItemsModal ? (\r\n setShowMMSPurchReqItemsModal(false)}\r\n >\r\n
      \r\n
      \r\n
      \r\n

      Purchase Request Items

      \r\n
      \r\n
      \r\n Save\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n console.log(item, name)}\r\n >\r\n\r\n
      \r\n
      \r\n console.log(item, name)}\r\n >\r\n
      \r\n
      \r\n Apply\r\n Add Items\r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n {\r\n console.log(items);\r\n //setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n //setReservationStatus(v);\r\n //setShowGuestPopup(true);\r\n }}\r\n //fixedHeaderNo={0}\r\n //handleIconClick={(d) => {console.log(d);}}\r\n uniqueColumn=\"ReservationSerNo\"\r\n optData={optBtnData}\r\n optClick={(item, d) => {\r\n actionPopup(item)\r\n //history.push({ pathname: \"/ReservationView\", state: { propertySerNo: 1, reservationSerNo: selectedReservation.ReservationSerNo } });\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n //setSelectedReservation(rowdata);\r\n // handleRmAssignmentData([rowdata]);\r\n }}\r\n handleSortClick={(sn, st) => {\r\n }}\r\n >\r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      Item NameUnit of Measure Current StockReq. QtyLPPValueRemarksAction
      Sprite 3LNos.350.00 15.001500.00-\r\n \r\n
      Sprite 3LNos.350.00 15.001500.00-\r\n \r\n
      Sprite 3LNos.350.00 15.001500.00-\r\n \r\n
      Sprite 3LNos.350.00 15.001500.00-\r\n \r\n
      Sprite 3LNos.350.00 15.001500.00-\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Refresh Current Stock\r\n
      \r\n
      Total Amount: 2695.00
      \r\n
      \r\n
      \r\n
      \r\n\r\n\r\n\r\n
      \r\n\r\n \r\n ) : null} */}\r\n\r\n {/* {showMMSPurchReqItemsModal ? (\r\n \r\n ) : null} */}\r\n\r\n {\r\n showMMSPurchApproveItemsModal ? (\r\n <>\r\n {(inventoryObj.MovementID === 'STRREQ' || inventoryObj.MovementID === 'ISSUE') ?\r\n {\r\n setShowMMSPurchApproveItemsModal(false);\r\n fillGrid();\r\n setIsIssue(false);\r\n }}\r\n />\r\n :\r\n {\r\n setShowMMSPurchApproveItemsModal(false);\r\n fillGrid();\r\n setIsIssue(false);\r\n }}\r\n />\r\n }\r\n \r\n ) : null\r\n }\r\n
      \r\n {\r\n setIsPrint(false);\r\n setPrintPara({});\r\n }}\r\n IsPrint={IsPrint}\r\n para={inventoryObj}\r\n />\r\n
      \r\n \r\n );\r\n}\r\n\r\n// export default MaterialManagementSystem;","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleDateSelection,\r\n InnPlainButton,\r\n InnTooltip,\r\n InnModalPopup,\r\n InnCheckbox,\r\n InnTextarea,\r\n useConfirm,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport { AddEditInvCategoryMaster, AddEditInvSubCategoryMaster, GetInvCategoryMaster, GetInvSubCategoryMaster } from \"../../../../services/inventoryMasterService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport function InvCategoryMaster(props) {\r\n const currUser = useSelector(currentUser);\r\n const scrollRefCategory = useRef();\r\n const scrollRefSubCategory = useRef();\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n\r\n //#region default/validation object \r\n const categoryDefaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n CategorySerNo: 0,\r\n Name: \"\",\r\n ShortName: \"\",\r\n IsService: false,\r\n Mode: \"View\"\r\n }\r\n\r\n const categoryDefaultValidation = {\r\n Name: \"\",\r\n ShortName: \"\",\r\n }\r\n\r\n const subCategoryDefaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n CategorySerNo: 0,\r\n SubCategorySerNo: 0,\r\n Name: \"\",\r\n Mode: \"View\"\r\n }\r\n\r\n const subCategoryDefaultValidation = {\r\n Name: \"\",\r\n }\r\n //#endregion\r\n\r\n //#region category state variable\r\n const [isActive, setIsActive] = useState(true);\r\n const [categoryData, setCategoryData] = useState([]);\r\n const [categoryList, setCategoryList] = useState([]);\r\n const [categorySelected, setCategorySelected] = useState(categoryDefaultObj);\r\n\r\n const [oldCategory, setOldCategory] = useState(0);\r\n const [categoryValidation, setCategoryValidation] = useState(categoryDefaultValidation);\r\n const [searchCategory, setSearchCategory] = useState(\"\");\r\n //#endregion\r\n\r\n //#region sub-category state variable \r\n const [subCategoryData, setSubCategoryData] = useState([]);\r\n const [subCategoryList, setSubCategoryList] = useState([]);\r\n const [subCategorySelected, setSubCategorySelected] = useState(subCategoryDefaultObj);\r\n\r\n const [oldSubCategory, setOldSubCategory] = useState(0);\r\n const [subCategoryValidation, setSubCategoryValidation] = useState(subCategoryDefaultValidation);\r\n const [searchSubCategory, setSearchSubCategory] = useState(\"\");\r\n //#endregion\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n fillInvCategoryMaster();\r\n // fillInvSubCategoryMaster()\r\n }, []);\r\n\r\n useEffect(() => {\r\n fillInvSubCategoryMaster()\r\n }, [oldCategory])\r\n //#endregion\r\n\r\n //#region Category Functions\r\n const fillInvCategoryMaster = () => {\r\n setIsActive(true);\r\n GetInvCategoryMaster(parseInt(currUser.ClientSerNo)).then(d => {\r\n setIsActive(false)\r\n let sortData = [...d.data].sort((a, b) => {\r\n return a.Name.toLowerCase() > b.Name.toLowerCase() ? 1 : -1\r\n })\r\n setCategoryData(sortData);\r\n setCategoryList(sortData);\r\n fillInvSubCategoryMaster();\r\n if (sortData && sortData.length != 0) {\r\n if (categorySelected.Mode == \"Add\" || categorySelected.Mode == \"Edit\") {\r\n let temp = sortData.find((x) => x.CategorySerNo == categorySelected.CategorySerNo);\r\n if (temp) {\r\n temp.Mode = \"View\";\r\n setCategorySelected(temp);\r\n }\r\n }\r\n else {\r\n sortData[0].Mode = \"View\";\r\n setCategorySelected(sortData[0]);\r\n }\r\n }\r\n });\r\n }\r\n\r\n const fillInvSubCategoryMaster = () => {\r\n GetInvSubCategoryMaster(parseInt(currUser.ClientSerNo), oldCategory).then(resp => {\r\n let sortData2 = [...resp.data].sort((a, b) => {\r\n return a.Name.toLowerCase() > b.Name.toLowerCase() ? 1 : -1\r\n })\r\n setSubCategoryData(sortData2);\r\n setSubCategoryList(sortData2);\r\n if (sortData2 && sortData2.length != 0) {\r\n if (subCategorySelected.Mode == \"Add\" || subCategorySelected.Mode == \"Edit\") {\r\n let temp = sortData2.find((x) => x.SubCategorySerNo == subCategorySelected.SubCategorySerNo);\r\n if (temp) {\r\n temp.Mode = \"View\";\r\n setSubCategorySelected(temp);\r\n }\r\n }\r\n else {\r\n sortData2[0].Mode = \"View\";\r\n setSubCategorySelected(sortData2[0]);\r\n }\r\n }\r\n });\r\n }\r\n\r\n const clearValidation = () => {\r\n setCategoryValidation(categoryDefaultValidation);\r\n }\r\n\r\n const clearSubCatValidation = () => {\r\n setSubCategoryValidation(subCategoryDefaultValidation);\r\n }\r\n const handleCategoryAddClick = () => {\r\n clearValidation();\r\n let temp = JSON.parse(JSON.stringify(categoryDefaultObj));\r\n temp.Mode = \"Add\";\r\n setCategorySelected(temp);\r\n }\r\n\r\n const handleCategoryEditClick = () => {\r\n if (categorySelected.Name == \"\") {\r\n alertFunction(\"Please select the category name\");\r\n } else {\r\n setCategorySelected(prev => ({ ...prev, Mode: \"Edit\" }));\r\n setOldCategory(categorySelected.CategorySerNo);\r\n }\r\n }\r\n\r\n const searchCategoryEdit = () => {\r\n GetInvCategoryMaster(parseInt(currUser.ClientSerNo)).then(d => {\r\n let sortData = [...d.data].sort((a, b) => {\r\n return a.Name > b.Name ? 1 : -1\r\n });\r\n let temp = sortData.filter(x => x.Name.toLowerCase().includes(searchCategory.toLowerCase()));\r\n setCategoryList(temp);\r\n })\r\n }\r\n\r\n const AddEditCategoryAPI = (selected) => {\r\n AddEditInvCategoryMaster(selected).then(d => {\r\n setIsActive(false)\r\n if (d.data.Code == '200') {\r\n alertFunction(d.data.Message);\r\n setCategoryValidation(prev => ({ ...prev, Name: \"\", ShortName: \"\" }));\r\n setCategorySelected(prev => ({ ...prev, CategorySerNo: parseInt(d.data.ReturnValue) }))\r\n if (categorySelected.Mode == \"Add\" || categorySelected.Mode == \"Edit\") {\r\n if (searchCategory != \"\") {\r\n searchCategoryEdit();\r\n return;\r\n }\r\n setTimeout(() => {\r\n if (scrollRefCategory.current != null) {\r\n scrollRefCategory.current.scrollIntoView({ behaviour: \"smooth\" });\r\n }\r\n }, 100)\r\n }\r\n fillInvCategoryMaster(categorySelected.CategorySerNo);\r\n }\r\n });\r\n setCategorySelected(prev => ({ ...prev, CategorySerNo: categorySelected.CategorySerNo }));\r\n }\r\n\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (categoryValidation.Name != \"\") {\r\n setCategoryValidation(prev => ({ ...prev, Name: \"Please enter valid name\" }));\r\n isValid = false;\r\n }\r\n if (categorySelected.Name.trim().length == 0 || /[0-9’/`~!#*$@_+=^{}[\\]|;:<>?\\\\]/g.test(categorySelected.Name) == true) {\r\n setCategoryValidation((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n isValid = false;\r\n }\r\n if (categorySelected.ShortName == \"\" || categorySelected.ShortName.trim().length == 0 || /[0-9’/`~!#*$@_+=^{}[\\]|;:<>?\\\\]/g.test(categorySelected.ShortName) == true) {\r\n setCategoryValidation((prev) => ({ ...prev, ShortName: \"Please enter valid short name\" }))\r\n isValid = false;\r\n }\r\n return isValid;\r\n }\r\n\r\n const handleCategorySaveClick = () => {\r\n let isValid = isValidPage();\r\n if (isValid) {\r\n let temp = categorySelected;\r\n temp.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n temp.CategorySerNo = temp.CategorySerNo;\r\n temp.Name = temp.Name;\r\n temp.ShortName = temp.ShortName;\r\n AddEditCategoryAPI(JSON.parse(JSON.stringify(temp)));\r\n setCategorySelected(prev => ({ ...prev, Mode: \"Save\" }))\r\n } else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n\r\n const handleCategoryCancelClick = () => {\r\n setCategoryValidation((prev) => ({ ...prev, Name: \"\", ShortName: \"\" }));\r\n let existingObj = categoryData.find((d) => d.CategorySerNo == oldCategory);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setCategorySelected(existingObj)\r\n }\r\n else {\r\n setCategorySelected(categoryDefaultObj)\r\n }\r\n }\r\n\r\n const handleCategoryChangeName = (e) => {\r\n if (categoryData.find((x) => x.Name == e)) {\r\n setCategoryValidation(prev => ({ ...prev, Name: \"Invalid category name\" }));\r\n } else {\r\n setCategoryValidation(prev => ({ ...prev, Name: \"\" }));\r\n setCategorySelected(prev => ({ ...prev, Name: e }));\r\n }\r\n }\r\n\r\n const handleCategoryChangeShortName = (e) => {\r\n if (categoryData.find((x) => x.ShortName == e)) {\r\n setCategoryValidation(prev => ({ ...prev, ShortName: \"Invalid category short name\" }))\r\n } else {\r\n setCategoryValidation(prev => ({ ...prev, ShortName: \"\" }));\r\n setCategorySelected(prev => ({ ...prev, ShortName: e }));\r\n }\r\n }\r\n\r\n const handleCategoryChangeSearch = (e) => {\r\n clearValidation();\r\n setSearchCategory(e);\r\n setCategorySelected(categoryDefaultObj);\r\n let temp = categoryData.filter(x => x.Name.toLowerCase().includes(e.toLowerCase()));\r\n setCategoryList(temp);\r\n }\r\n //#endregion\r\n\r\n //#region sub-category function\r\n const handleChangeSubCategoryName = (e) => {\r\n if (subCategoryData.find(x => x.Name == e)) {\r\n setSubCategoryValidation(prev => ({ ...prev, Name: \"Invalid item sub-category name\" }))\r\n } else {\r\n setSubCategoryValidation(prev => ({ ...prev, Name: \"\" }));\r\n setSubCategorySelected(prev => ({ ...prev, Name: e }));\r\n }\r\n }\r\n\r\n const handleChangeSearchSubCategory = (e) => {\r\n clearSubCatValidation();\r\n setSearchSubCategory(e);\r\n setSubCategoryValidation(prev => ({ ...prev, Name: \"\" }));\r\n setSubCategorySelected(subCategoryDefaultObj);\r\n let temp = subCategoryData.filter(x => x.Name.toLowerCase().includes(e.toLowerCase()));\r\n setSubCategoryList(temp);\r\n }\r\n\r\n const handleClickAddSubCategory = () => {\r\n clearSubCatValidation();\r\n let temp = JSON.parse(JSON.stringify(subCategoryDefaultObj));\r\n temp.Mode = \"Add\";\r\n setSubCategorySelected(temp);\r\n }\r\n\r\n const handleClickEditSubCategory = () => {\r\n if (subCategorySelected.SubCategorySerNo == 0) {\r\n alertFunction(\"Please select the sub-category name\");\r\n return\r\n }\r\n setSubCategorySelected(prev => ({ ...prev, Mode: \"Edit\" }));\r\n setOldSubCategory(subCategorySelected.SubCategorySerNo);\r\n }\r\n\r\n const handleClickCancelSubCategory = () => {\r\n setSubCategoryValidation(prev => ({ ...prev, Name: \"\" }))\r\n if (oldSubCategory == 0) {\r\n setSubCategorySelected(subCategoryDefaultObj)\r\n } else {\r\n subCategoryData.forEach(ele => {\r\n if (ele.SubCategorySerNo == oldSubCategory) {\r\n setSubCategorySelected(ele);\r\n }\r\n });\r\n }\r\n }\r\n\r\n const searchEditSubCategory = () => {\r\n GetInvSubCategoryMaster(parseInt(currUser.ClientSerNo), oldCategory).then(d => {\r\n let sortData = [...d.data].sort((a, b) => {\r\n return a.Name > b.Name ? 1 : -1\r\n });\r\n let temp = sortData.filter(x => x.Name.toLowerCase().includes(searchSubCategory.toLowerCase()));\r\n setSubCategoryList(temp);\r\n })\r\n }\r\n\r\n const AddEditAPISubCategory = (subSelected) => {\r\n AddEditInvSubCategoryMaster(subSelected).then(d => {\r\n if (d.data.Code == '200') {\r\n alertFunction(d.data.Message);\r\n fillInvSubCategoryMaster();\r\n setSubCategoryValidation(prev => ({ ...prev, Name: \"\" }))\r\n setSubCategorySelected(prev => ({ ...prev, SubCategorySerNo: parseInt(d.data.ReturnValue) }))\r\n if (subCategorySelected.Mode == \"Add\" || subCategorySelected.Mode == \"Edit\") {\r\n if (searchSubCategory != \"\") {\r\n searchEditSubCategory();\r\n return;\r\n }\r\n setTimeout(() => {\r\n if (scrollRefSubCategory.current != null) {\r\n scrollRefSubCategory.current.scrollIntoView({ behaviour: \"smooth\" })\r\n }\r\n }, 100);\r\n }\r\n }\r\n })\r\n }\r\n\r\n const isValidPageSubCategory = () => {\r\n let isValid = true;\r\n if (subCategoryValidation.Name != \"\") {\r\n setSubCategoryValidation((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n isValid = false;\r\n }\r\n if (subCategorySelected.Name.trim().length == 0 || /[’`~!#*$@_+=^{}[\\]|;:<>?\\\\]/g.test(subCategorySelected.Name) == true) {\r\n setSubCategoryValidation((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n isValid = false;\r\n }\r\n return isValid;\r\n }\r\n\r\n const handleClickSaveSubCategory = () => {\r\n let isValid = isValidPageSubCategory();\r\n if (isValid) {\r\n let temp = subCategorySelected;\r\n temp.ClientSerNo = parseInt(currUser.ClientSerNo);\r\n temp.CategorySerNo = categorySelected.CategorySerNo;\r\n AddEditAPISubCategory(temp);\r\n setSubCategorySelected((prev) => ({ ...prev, Mode: \"Save\" }));\r\n } else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n\r\n const handleClickSubCategory = (e) => {\r\n clearSubCatValidation();\r\n setSubCategorySelected(subCategoryDefaultObj);\r\n let temp = subCategoryData.find((d) => d.SubCategorySerNo == e.target.id);\r\n temp.Mode = \"View\";\r\n setSubCategorySelected(temp);\r\n setOldSubCategory(e.target.id);\r\n }\r\n\r\n const handleClickCategoryType = (item) => {\r\n clearValidation();\r\n clearSubCatValidation();\r\n setSubCategorySelected(subCategoryDefaultObj);\r\n let temp = categoryData.find((d) => d.CategorySerNo == item.target.id);\r\n temp.Mode = \"View\";\r\n setCategorySelected(temp)\r\n setOldCategory(item.target.id);\r\n }\r\n\r\n const clearSubCategory = () => {\r\n setShowCategoryModal(false);\r\n setSubCategoryValidation(prev => ({ ...prev, Name: \"\" }));\r\n }\r\n //#endregion \r\n\r\n const LastUpdateTooltip = () => {\r\n return (\r\n
      \r\n
      \r\n
        \r\n
      • By Rohan Shah
      • \r\n
      • Date: 25th Sept.
      • \r\n
      • Time: 15:45
      • \r\n
      • PC: 192.168.600.789
      • \r\n
      \r\n
      \r\n\r\n
      \r\n );\r\n };\r\n const [showCategoryModal, setShowCategoryModal] = useState(false);\r\n return (\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Category Master

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      List of Category
      \r\n
      \r\n
        \r\n {\r\n categoryList.map((item) => {\r\n return (\r\n
      • \r\n {item.Name}\r\n
      • \r\n )\r\n })\r\n }\r\n
      \r\n
      \r\n
      \r\n
      \r\n\r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n Name\r\n Short Name\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      categorySelected.Name != \"\" ? setShowCategoryModal(!showCategoryModal) : alertFunction(\"Please select category name\")}>Sub Category
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n Activate console.log(v)} id=\"CM\">\r\n {\r\n categorySelected.Mode == \"Edit\" || categorySelected.Mode == \"Add\" ?\r\n <>\r\n Cancel\r\n Save\r\n \r\n :\r\n <>\r\n Edit\r\n Add\r\n\r\n \r\n }\r\n {/* setShowDepositTermTypeModal(!showDepositTermTypeModal)}>Add Deposit Term Type*/}\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n {\r\n showCategoryModal ? (\r\n clearSubCategory()}\r\n >\r\n
      \r\n
      \r\n
      \r\n

      Sub Category

      \r\n
      \r\n
      \r\n {\r\n subCategorySelected.Mode == \"Edit\" || subCategorySelected.Mode == \"Add\" ?\r\n <>\r\n Cancel\r\n Save\r\n \r\n :\r\n <>\r\n Edit\r\n Add\r\n \r\n }\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n { handleChangeSearchSubCategory(e) }} value={searchSubCategory} OnCancelClick={() => { handleChangeSearchSubCategory(\"\") }}>Search\r\n
      List of Sub Category
      \r\n
      \r\n
        \r\n {\r\n subCategoryList.map((item) => {\r\n return (\r\n
      • \r\n {item.Name}\r\n
      • \r\n\r\n )\r\n })\r\n }\r\n
      \r\n
      \r\n
      \r\n
      \r\n Name\r\n
      \r\n
      \r\n
      \r\n \r\n ) : null\r\n }\r\n
      \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n InnActionButton, InnPrimaryButton, InnSearchTextbox,\r\n InnSwitch, InnTextbox, InnSingleDateSelection, InnPlainButton,\r\n InnTooltip, InnModalPopup, InnCheckbox, InnTextarea, useConfirm\r\n} from \"../../../../component\";\r\nimport { GetInvItemClassMaster, AddEditInvItemClassMaster } from \"../../../../services/inventoryMasterService\";\r\nimport { GetInvItemClassCategoryMapping, AddDeleteInvItemClassCategoryMapping } from \"../../../../services/inventoryMasterService\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\n\r\nexport function InvItemClassMaster(props) {\r\n let currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: 'Y', title: 'OK', type: \"\" }],\r\n });\r\n }\r\n\r\n //#region default/validation obj\r\n const defaultItemClassObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n ItemClassSerNo: 0,\r\n Name: \"\",\r\n ShortName: \"\",\r\n Mode: \"View\"\r\n }\r\n\r\n const defaultItemClassValidation = {\r\n Name: \"\",\r\n ShortName: \"\",\r\n }\r\n //#endregion\r\n\r\n //#region state variable\r\n // const [isActive, setIsActive] = useState(false);\r\n const [itemClassObj, setItemClassObj] = useState(defaultItemClassObj);\r\n const [itemClassList, setItemClassList] = useState([]);\r\n const [itemClassFilter, setItemClassFilter] = useState([]);\r\n const [itemClassValidation, setItemClassValidation] = useState(defaultItemClassValidation);\r\n const [search, setSearch] = useState(\"\");\r\n const [selectedSerNo, setSelectedSerNo] = useState(0);\r\n //#endregion\r\n\r\n //#region Class Category state variable\r\n const [ClassCategoryList, setClassCategoryList] = useState([]);\r\n const [ClassCategoryFilter, setClassCategoryFilter] = useState([]);\r\n const [searchClass, setSearchClass] = useState(\"\");\r\n //#endregion\r\n\r\n //#region useEffect\r\n useEffect(() => {\r\n FillInvItemClass();\r\n }, []);\r\n //#endregion\r\n\r\n //#region Class Category useEffect\r\n useEffect(() => {\r\n fillClassCategoryMapping();\r\n }, [itemClassObj.ItemClassSerNo])\r\n //#endregion\r\n\r\n //#region functions\r\n const FillInvItemClass = () => {\r\n GetInvItemClassMaster(parseInt(currUser.ClientSerNo)).then(d => {\r\n let sortDataa = [...d.data].sort((a, b) => {\r\n return a.Name.toLowerCase() > b.Name.toLowerCase() ? 1 : -1\r\n })\r\n if (d.data && d.data.length > 0 && (itemClassObj.ItemClassSerNo == 0 || itemClassObj.ItemClassSerNo == undefined)) {\r\n let obj = sortDataa[0];\r\n obj.Mode = \"View\"\r\n setItemClassObj(obj);\r\n setSelectedSerNo(obj.ItemClassSerNo);\r\n }\r\n setItemClassList(sortDataa)\r\n setItemClassFilter(sortDataa);\r\n });\r\n }\r\n\r\n const clearValidation = () => {\r\n setItemClassValidation(defaultItemClassValidation);\r\n }\r\n\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (itemClassValidation.Name != \"\") {\r\n setItemClassValidation(prev => ({ ...prev, Name: \"Please enter valid name\" }));\r\n isValid = false;\r\n }\r\n if (itemClassObj.Name == \"\" || itemClassObj.Name.trim().length == 0 || /[0-9’/`~!#*$@_+=^{}[\\]|;:<>?\\\\]/g.test(itemClassObj.Name) == true) {\r\n isValid = false;\r\n setItemClassValidation(prev => ({ ...prev, Name: \"Please enter valid name\" }));\r\n }\r\n if (itemClassObj.ShortName == \"\") {\r\n isValid = false;\r\n setItemClassValidation(prev => ({ ...prev, ShortName: \"Please enter valid short name\" }));\r\n }\r\n return isValid;\r\n }\r\n\r\n const handleOnSearch = (e) => {\r\n setSearch(e);\r\n clearValidation();\r\n setItemClassObj(defaultItemClassObj);\r\n let temp = itemClassList.filter(x => x.Name.toLowerCase().includes(e.toLowerCase()));\r\n setItemClassFilter(temp);\r\n }\r\n\r\n const handleOnEditClick = () => {\r\n if (itemClassObj.Name == \"\") {\r\n alertFunction(\"Please select item class\");\r\n } else {\r\n setItemClassObj((prev) => ({ ...prev, Mode: \"Edit\" }));\r\n setSelectedSerNo(itemClassObj.ItemClassSerNo);\r\n }\r\n }\r\n\r\n const handleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultItemClassObj));\r\n obj.Mode = \"Add\";\r\n setItemClassObj(obj);\r\n }\r\n\r\n const handleOnCancelClick = () => {\r\n clearValidation();\r\n let existingObj = itemClassList.find(x => x.ItemClassSerNo == selectedSerNo);\r\n if (existingObj != undefined) {\r\n existingObj.Mode = \"View\";\r\n setItemClassObj(existingObj);\r\n } else {\r\n setItemClassObj(defaultItemClassObj);\r\n }\r\n }\r\n\r\n const searchEdit = () => {\r\n GetInvItemClassMaster(parseInt(currUser.ClientSerNo)).then(d => {\r\n let temp = d.data.filter(x => x.Name.toLowerCase().includes(search.toLowerCase()));\r\n setItemClassFilter(temp);\r\n })\r\n }\r\n\r\n const handleOnSaveClick = () => {\r\n let isValidData = isValidPage();\r\n if (isValidData) {\r\n AddEditInvItemClassMaster(itemClassObj).then(d => {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n FillInvItemClass();\r\n if (itemClassObj.Mode == \"Add\" || itemClassObj.Mode == \"Edit\") {\r\n if (search != \"\") {\r\n searchEdit();\r\n return;\r\n }\r\n itemClassObj.ItemClassSerNo = parseInt(d.data.ReturnValue);\r\n }\r\n } else {\r\n alertFunction(\"Something went wrong\");\r\n }\r\n });\r\n setItemClassObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alertFunction(\"One or more field has an invalid entry. Please verify accordingly.\");\r\n }\r\n }\r\n\r\n const handleOnNameClick = (e) => {\r\n clearValidation();\r\n let temp = itemClassList.find(x => x.ItemClassSerNo == e.target.id);\r\n temp.Mode = \"View\";\r\n setItemClassObj(temp);\r\n setSelectedSerNo(e.target.id);\r\n }\r\n //#endregion\r\n\r\n //#region Class Category functions\r\n const fillClassCategoryMapping = () => {\r\n if (itemClassObj.ItemClassSerNo > 0) {\r\n GetInvItemClassCategoryMapping(parseInt(currUser.ClientSerNo), parseInt(itemClassObj.ItemClassSerNo)).then(d => {\r\n let temp = [];\r\n if (d.data && d.data.length > 0) {\r\n d.data.forEach(ele => {\r\n if (ele.IsApply == 1) {\r\n ele[\"isChecked\"] = true\r\n } else {\r\n ele[\"isChecked\"] = false\r\n }\r\n temp.push(ele);\r\n });\r\n setClassCategoryList(temp);\r\n setClassCategoryFilter(temp);\r\n }\r\n }).catch(err => {\r\n alertFunction(err.Message);\r\n })\r\n }\r\n }\r\n\r\n const handleOnSearchClassCategory = (e) => {\r\n setSearchClass(e);\r\n let temp = [];\r\n ClassCategoryList.forEach(ele => {\r\n if (ele.Name.toLowerCase().includes(e.toLowerCase())) {\r\n temp.push(ele);\r\n }\r\n });\r\n setClassCategoryFilter(temp);\r\n }\r\n\r\n const handleOnSaveClassCategory = () => {\r\n let tempArr = [];\r\n\r\n let temp = ClassCategoryList.filter(x => x.isChecked == true && x.IsApply == 0);\r\n temp.forEach(ele => {\r\n let obj = ele;\r\n obj[\"ClientSerNo\"] = parseInt(currUser.ClientSerNo);\r\n obj[\"ItemClassSerNo\"] = parseInt(itemClassObj.ItemClassSerNo);\r\n obj[\"flag\"] = 'Insert';\r\n tempArr.push(obj);\r\n })\r\n let tempData = ClassCategoryList.filter(x => x.isChecked == false && x.IsApply == 1);\r\n tempData.forEach(ele1 => {\r\n let obj1 = ele1;\r\n obj1[\"ClientSerNo\"] = parseInt(currUser.ClientSerNo);\r\n obj1[\"ItemClassSerNo\"] = parseInt(itemClassObj.ItemClassSerNo);\r\n obj1[\"flag\"] = 'Delete';\r\n tempArr.push(obj1);\r\n })\r\n\r\n if (tempArr.length > 0) {\r\n AddDeleteInvItemClassCategoryMapping(tempArr).then(d => {\r\n if (d.data) {\r\n if (d.data.Code == \"200\") {\r\n alertFunction(d.data.Message);\r\n fillClassCategoryMapping();\r\n setShowItemclassModal(false);\r\n }\r\n }\r\n })\r\n } else {\r\n alertFunction(\"No changes done\")\r\n }\r\n }\r\n //#endregion\r\n const LastUpdateTooltip = () => {\r\n return (\r\n
      \r\n
      \r\n
        \r\n
      • By Rohan Shah
      • \r\n
      • Date: 25th Sept.
      • \r\n
      • Time: 15:45
      • \r\n
      • PC: 192.168.600.789
      • \r\n
      \r\n
      \r\n\r\n
      \r\n );\r\n };\r\n const [showItemclassModal, setShowItemclassModal] = useState(false);\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Item Class Master

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      List of Item Class
      \r\n
      \r\n
        \r\n {\r\n itemClassFilter.map((d) => {\r\n return (\r\n
      • \r\n {d.Name}\r\n
      • \r\n )\r\n })\r\n }\r\n
      \r\n
      \r\n
      \r\n
      \r\n\r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n {\r\n if ((itemClassList.every((x) => x.Name.toLowerCase() != e.toLowerCase()))) {\r\n setItemClassValidation((prev) => ({ ...prev, Name: \"\" }))\r\n setItemClassObj(prev => ({ ...prev, Name: e }));\r\n } else {\r\n setItemClassValidation(prev => ({ ...prev, Name: \"Item Class already exist.\" }))\r\n }\r\n }}>Name\r\n {\r\n if (itemClassList.find(x => x.ShortName == v)) {\r\n setItemClassValidation(prev => ({ ...prev, ShortName: \"Invalid short name\" }));\r\n } else {\r\n setItemClassValidation(prev => ({ ...prev, ShortName: \"\" }));\r\n setItemClassObj(prev => ({ ...prev, ShortName: v }));\r\n }\r\n }}>Short Name\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      itemClassObj.Name == \"\" ? alertFunction(\"Select the item name\") : setShowItemclassModal(!showItemclassModal)}>Class category mapping
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n {/* setShowDepositTermTypeModal(!showDepositTermTypeModal)}>Add Deposit Term Type*/}\r\n Activate console.log(v)} id=\"CM\">\r\n {\r\n itemClassObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n {showItemclassModal ? (\r\n setShowItemclassModal(false)}\r\n >\r\n
      \r\n
      \r\n
      \r\n

      Class Category Mapping

      \r\n
      \r\n
      \r\n Save\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Search\r\n
      \r\n {\r\n ClassCategoryFilter.map(d => {\r\n return (\r\n {\r\n let temp = ClassCategoryList;\r\n temp.forEach(ele => {\r\n if (ele.CategorySerNo == d.CategorySerNo) {\r\n if (ischecked) {\r\n ele.isChecked = true\r\n } else {\r\n ele.isChecked = false\r\n }\r\n }\r\n })\r\n setClassCategoryFilter(JSON.parse(JSON.stringify(temp)));\r\n }}\r\n >{d.Name}\r\n )\r\n })\r\n }\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n ) : null}\r\n
      \r\n )\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport Pagination from \"@mui/material/Pagination\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport ReactHTMLTableToExcel from 'react-html-table-to-excel';\r\nimport {\r\n InnActionButton,\r\n InnCheckbox,\r\n InnFileUpload,\r\n InnFileUploadPreview,\r\n InnLoader,\r\n InnModalPopup,\r\n InnPrimaryButton,\r\n InnRadioButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTableGrid,\r\n InnTextarea,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnMultiSelectDropdown,\r\n InnToastMessage,\r\n InnTabs,\r\n InnStatusLabel,\r\n InnTooltip,\r\n InnPlainButton,\r\n InnButton3Darrow,\r\n InnButtonTypeWithDropdown,\r\n InnPlainTextbox,\r\n InnSingleDateSelection,\r\n InnTimeSelection,\r\n InnSingleRadioButton,\r\n} from \"../../../../component\";\r\nimport infoicon from \"../../../../assets/images/info-icon-2.svg\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport moment, { min } from \"moment\";\r\n\r\nexport function InventoryReportPreview(props) {\r\n\r\n const history = useHistory();\r\n const currUser = useSelector(currentUser);\r\n const reactToExcelRef = useRef();\r\n const selectdata = [\r\n { key: \"Excel\", value: \"Excel\" },\r\n ];\r\n\r\n\r\n const optBtnData = [\r\n { key: \"Edit\", value: \"edt\" },\r\n { key: \"Delete\", value: \"del\" },\r\n ];\r\n\r\n\r\n\r\n /* Grid Starts */\r\n\r\n const [gridSelectedItem, SetgridSelectedItem] = useState([]);\r\n const [temp, settemp] = useState(false);\r\n\r\n useEffect(() => {\r\n const timeId = setTimeout(() => {\r\n setActive(isActive);\r\n }, 3000);\r\n }, []);\r\n\r\n useEffect(() => {\r\n console.log(\"selected data\", gridSelectedItem);\r\n console.log(\"selected length\", gridSelectedItem.length);\r\n }, [gridSelectedItem, temp]);\r\n\r\n const setSelectedItem = (items) => {\r\n SetgridSelectedItem(items);\r\n settemp(!temp);\r\n };\r\n\r\n //grid header\r\n const [isActive, setActive] = useState(false);\r\n const [colSpanVal, setColSpanVal] = useState(0);\r\n const [linkInfo, setlinkInfo] = useState({});\r\n const [list, setList] = useState([]);\r\n const [excelList, setExcelList] = useState([]);\r\n const [reportObj, setReportObj] = useState({});\r\n const [filterList, setFilterList] = useState(\"\");\r\n const [columnList, setColumnList] = useState([]);\r\n const [reportSerNo, setReportSerNo] = useState(0);\r\n const [reportName, setReportName] = useState(\"\");\r\n const [propertyName, setPropertyName] = useState(\"\");\r\n const [groupingColumn, setGroupingColumn] = useState([]);\r\n const [groupingLevel, setGroupingLevel] = useState();\r\n const [groupingOneTotal, setGroupingOneTotal] = useState(false);\r\n const [groupingTwoTotal, setGroupingTwoTotal] = useState(false);\r\n const [groupingThreeTotal, setGroupingThreeTotal] = useState(false);\r\n\r\n const [maxLevel, setMaxLevel] = useState([]);\r\n const [minLevel, setMinLevel] = useState([]);\r\n useEffect(() => {\r\n let o = props.location.state;\r\n if (o != undefined) {\r\n console.log(o)\r\n setList(o.list);\r\n setExcelList(JSON.parse(JSON.stringify(o.list)));\r\n console.log(\"ExcellData>>>>>\", o.list)\r\n setReportObj(o.obj);\r\n setColumnList(o.columnList);\r\n setReportSerNo(o.reportserno);\r\n setReportName(o.reportname);\r\n setPropertyName(o.propertyName);\r\n console.log(\"ColunmnList>>>\", columnList);\r\n if (o.groupingLevel == 2) {\r\n setGroupingColumn(o.groupingColumn);\r\n setGroupingLevel(o.groupingLevel);\r\n setGroupingOneTotal(o.IsGroupingOneTotal);\r\n setGroupingTwoTotal(o.IsGroupingTwoTotal)\r\n setPropertyName(o.propertyName);\r\n }\r\n }\r\n if (o.columnList?.length != 0) {\r\n setColSpanVal(o.columnList.length)\r\n }\r\n }, []);\r\n\r\n /* Grid Ends */\r\n\r\n\r\n return (\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Preview

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n {\r\n groupingLevel == 2 ?\r\n <>\r\n
      \r\n { console.log(reactToExcelRef.current); reactToExcelRef.current.handleDownload() }}>Print\r\n {\r\n history.push({\r\n pathname: \"/InventoryReport\",\r\n state: {\r\n filterObj: reportObj,\r\n reportserno: reportSerNo,\r\n reportname: reportName\r\n }\r\n });\r\n }}>Back\r\n \r\n \r\n {/*
      \r\n CountrySide Grand Mumbai\r\n Material Movement Report\r\n From Date : 09-Jan-2021 To 09-Jan-2021\r\n
      */}\r\n \r\n \r\n
      \r\n \r\n \r\n \r\n {\r\n columnList && columnList.map(d => {\r\n return (\r\n\r\n \r\n\r\n )\r\n })\r\n }\r\n \r\n \r\n \r\n {\r\n groupingColumn && groupingColumn.map((x) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n\r\n {\r\n x.Grouping1 && x.Grouping1.map((y) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n {\r\n list[x.Grouping2][y] && list[x.Grouping2][y].map((d, index, arr) => {\r\n return (\r\n <>\r\n {\r\n // index != arr.length - 1 ?\r\n \r\n {\r\n columnList && columnList.map((z) => {\r\n return (\r\n groupingOneTotal && index == list[x.Grouping2][y].length - 1 ?\r\n \r\n :\r\n \r\n // index != arr.length - 1 ?\r\n // \r\n // :\r\n // \r\n\r\n\r\n )\r\n })\r\n }\r\n \r\n // : null\r\n }\r\n {/* {\r\n groupingOneTotal && index == arr.length - 1 ?\r\n \r\n \r\n \r\n\r\n :\r\n null\r\n } */}\r\n \r\n )\r\n })\r\n }\r\n\r\n \r\n\r\n )\r\n })\r\n\r\n }\r\n {\r\n groupingTwoTotal ?\r\n \r\n {\r\n columnList && columnList.map((d) => {\r\n return \r\n // return \r\n })\r\n }\r\n\r\n \r\n\r\n :\r\n null\r\n }\r\n \r\n\r\n )\r\n })\r\n\r\n }\r\n \r\n\r\n \r\n \r\n {\r\n columnList && columnList.map((s)=>{\r\n return \r\n })\r\n }\r\n {/* \r\n */}\r\n \r\n \r\n
      {d.key}
      {x.Grouping2 == \"\" ? \"Min Level\" : x.Grouping2}
      {y}
      {d[z.value]}
      {d[z.value]}{d[z.value]}
      Sub Total :{d[z.value]}
      Sub Total :{d?.toFixed(2)}
      {list[x.Grouping2][\"Total\"][d.value]}
      Total : {list[x.Grouping2][\"Total\"][d.value]}
      {list[\"GrandTotal\"][s.value]}
      GrandTotal:
      10,667.57
      \r\n
      \r\n \r\n \r\n Date :05/07/2023\r\n Time :11:42\r\n User :DEMO\r\n
      \r\n {reportSerNo == 15 ? (\r\n \r\n ):\r\n \r\n }\r\n
      \r\n
      \r\n \r\n :\r\n groupingLevel == 3 ?\r\n <>\r\n
      \r\n { console.log(reactToExcelRef.current); reactToExcelRef.current.handleDownload() }}>Print\r\n {\r\n history.push({\r\n pathname: \"/InventoryReport\",\r\n state: {\r\n filterObj: reportObj,\r\n reportserno: reportSerNo,\r\n reportname: reportName\r\n }\r\n });\r\n }}>Back\r\n \r\n \r\n {/*
      \r\n CountrySide Grand Mumbai\r\n Material Movement Report\r\n From Date : 09-Jan-2021 To 09-Jan-2021\r\n
      */}\r\n \r\n \r\n
      \r\n \r\n \r\n \r\n {\r\n columnList && columnList.map(d => {\r\n return (\r\n\r\n \r\n\r\n )\r\n })\r\n }\r\n \r\n \r\n \r\n {\r\n groupingColumn && groupingColumn.map((x) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n\r\n {\r\n x.Grouping2 && x.Grouping2.map((z) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n {\r\n x.Grouping1 && x.Grouping1.map((y) => {\r\n return (\r\n\r\n list[x.Grouping1][z] && list[x.Grouping1][z].map((d, index, arr) => {\r\n return (\r\n <>\r\n {\r\n index != arr.length - 1 ?\r\n \r\n {\r\n columnList && columnList.map((z) => {\r\n return (\r\n \r\n )\r\n })\r\n }\r\n \r\n : null\r\n }\r\n {\r\n groupingOneTotal && index == arr.length - 1 ?\r\n \r\n \r\n \r\n :\r\n null\r\n }\r\n \r\n )\r\n })\r\n\r\n )\r\n })\r\n }\r\n \r\n )\r\n })\r\n }\r\n {\r\n groupingTwoTotal ?\r\n \r\n \r\n \r\n\r\n :\r\n null\r\n }\r\n \r\n\r\n )\r\n })\r\n\r\n }\r\n \r\n\r\n {/* \r\n \r\n \r\n \r\n \r\n */}\r\n
      {d.value}
      {x.Grouping3 == \"\" ? \"Min Level\" : x.Grouping3}
      {z}
      {d[z.value]}
      Sub Total :{d.toFixed(2)}
      Total : {list[x.Grouping2][\"Total\"].toFixed(2)}
      Total:
      10,667.57
      \r\n
      \r\n \r\n \r\n Date :05/07/2023\r\n Time :11:42\r\n User :DEMO\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n :\r\n groupingLevel == 1 ?\r\n <>\r\n
      \r\n { console.log(reactToExcelRef.current); reactToExcelRef.current.handleDownload() }}>Print\r\n {\r\n history.push({\r\n pathname: \"/InventoryReport\",\r\n state: {\r\n filterObj: reportObj,\r\n reportserno: reportSerNo,\r\n reportname: reportName\r\n }\r\n });\r\n }}>Back\r\n \r\n \r\n {/*
      \r\n CountrySide Grand Mumbai\r\n Material Movement Report\r\n From Date : 09-Jan-2021 To 09-Jan-2021\r\n
      */}\r\n \r\n \r\n
      \r\n \r\n \r\n \r\n {\r\n columnList && columnList.map(d => {\r\n return (\r\n\r\n \r\n\r\n )\r\n })\r\n }\r\n \r\n \r\n \r\n {\r\n groupingColumn && groupingColumn.map((x) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n {\r\n list && list[x].map((d, index, arr) => {\r\n return (\r\n <>\r\n {\r\n index != arr.length - 1 ?\r\n \r\n {\r\n columnList && columnList.map((z) => {\r\n return (\r\n \r\n )\r\n })\r\n }\r\n \r\n : null\r\n }\r\n {\r\n groupingOneTotal && index == arr.length - 1 ?\r\n \r\n \r\n \r\n :\r\n null\r\n }\r\n \r\n\r\n )\r\n })\r\n }\r\n \r\n )\r\n })\r\n }\r\n \r\n\r\n {/* \r\n \r\n \r\n \r\n \r\n */}\r\n
      {d.value}
      {x == \"\" ? \"Min Level\" : x}
      {d[z.value]}
      Sub Total :{d.toFixed(2)}
      Total:
      10,667.57
      \r\n
      \r\n \r\n \r\n Date :05/07/2023\r\n Time :11:42\r\n User :DEMO\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n :\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n {\r\n setSelectedItem(items);\r\n //SetgridSelectedItem(items);\r\n }}\r\n handleLinkClick={(v) => {\r\n console.log(\"Link Click Row Data\", v);\r\n }}\r\n pagination={false}\r\n uniqueColumn=\"srno\"\r\n optData={optBtnData}\r\n optClick={(v, d) => {\r\n console.log(v, d);\r\n }}\r\n handleRowSelect={(rowdata) => {\r\n console.log(rowdata);\r\n }}\r\n >\r\n
      \r\n \r\n \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      {currUser.PropertyName}
      Filter List: {\"\"}
      {reportName}
      \r\n \r\n \r\n \r\n \r\n \r\n {columnList.map((item, index) => {\r\n return ;\r\n })}\r\n \r\n \r\n \r\n {list.map((item, index) => {\r\n return \r\n {columnList.map((o, index) => {\r\n return ;\r\n })}\r\n ;\r\n })}\r\n \r\n
      {item.key}
      \r\n {item[o.value]}\r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      User: {currUser.UserID} , Time: {moment(new Date()).format(\"HH:mm\")}
      \r\n\r\n \r\n \r\n\r\n {/* \r\n \r\n \r\n {columHeaderReport.map((item, index) => {\r\n return ;\r\n })}\r\n \r\n \r\n \r\n {list.map((item, index) => {\r\n return \r\n {columHeaderReport.map((o, index) => {\r\n return ;\r\n })}\r\n ;\r\n })}\r\n \r\n
      {item.key}
      {item[o.value]}
      */}\r\n
      \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n {\r\n history.push({\r\n pathname: \"/InventoryReport\",\r\n state: {\r\n filterObj: reportObj,\r\n reportserno: reportSerNo,\r\n reportname: reportName\r\n }\r\n });\r\n }}>Back\r\n\r\n console.log(item, name)}\r\n >\r\n {\r\n if (item.key === 'Excel') {\r\n console.log(reactToExcelRef.current)\r\n reactToExcelRef.current.handleDownload();\r\n }\r\n console.log(item, name)\r\n }}\r\n >\r\n console.log(item, name)}\r\n >\r\n
      \r\n \r\n
      \r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n }\r\n\r\n\r\n\r\n\r\n
      \r\n );\r\n}\r\n\r\n//export default ReportPreview;","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetStockLevelReport } from \"../../../../services/inventoryMasterService\";\r\nimport { grouping, groupingTwoTotalFunc } from \"../../../../services/generalService\";\r\nimport { ReportPreviewLevelTwo } from \"../../../client/general/report/report-preview-level-two\";\r\nexport function StockLevelReport(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const reactToExcelRef = useRef();\r\n const selectdata = [\r\n { key: \"Excel\", value: \"Excel\" },\r\n ];\r\n const optBtnData = [\r\n { key: \"Edit\", value: \"edt\" },\r\n { key: \"Delete\", value: \"del\" },\r\n ];\r\n const [isActive, setActive] = useState(false);\r\n const [colSpanVal, setColSpanVal] = useState(0);\r\n const [list, setList] = useState([]);\r\n const [groupingColumn, setGroupingColumn] = useState([]);\r\n const [propObj, setPropObj] = useState({});\r\n useEffect(() => {\r\n let o = props.location.state;\r\n if (o != undefined) {\r\n console.log(o)\r\n setPropObj(o);\r\n GetStockLevelReport(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), o.obj.StoreSerNo).then((d) => {\r\n let Output = d.data;\r\n console.log(\"stocklevelreport>>\", d.data);\r\n let group = grouping(Output, 'Description');\r\n Object.keys(group).forEach((x) => {\r\n group[x] = grouping(group[x], 'StoreName');\r\n })\r\n let groupingData = [];\r\n Object.keys(group).forEach(x => {\r\n let obj = { Grouping2: \"\", Grouping1: [] };\r\n obj.Grouping2 = x;\r\n obj.Grouping1 = Object.keys(group[x]);\r\n groupingData.push(obj)\r\n })\r\n setGroupingColumn(groupingData);\r\n // console.log(group);\r\n console.log(groupingData);\r\n Output = groupingTwoTotalFunc(groupingData, group, [\"CurrentStock\"], \"StoreName\", true, true, true);\r\n console.log(Output);\r\n setPropObj((prev) => ({ ...prev, list: Output, groupingColumn: groupingData, IsGroupingOneTotal: true, IsGroupingTwoTotal: true, IsGrandTotal: true}))\r\n setList(Output);\r\n }).catch(e => console.error(e))\r\n }\r\n if (o.columnList?.length != 0) {\r\n setColSpanVal(o.columnList.length)\r\n }\r\n setPropObj((prev)=>({...prev,goBackPath:\"/InventoryReport\" }))\r\n }, []);\r\n\r\n return (\r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n InnActionButton,\r\n InnPrimaryButton,\r\n InnSearchTextbox,\r\n InnSwitch,\r\n InnTextbox,\r\n InnSingleSelectDropdown,\r\n InnPlainButton, InnTooltip,\r\n useConfirm,\r\n InnLoader\r\n} from \"../../../../component\";\r\nimport { ItemDepartmentMaster } from \"./item-department-master\";\r\nimport { RawMaterialChargeMaster } from \"./raw-material-charge-master\";\r\nimport { ItemVenderMaster } from \"./item-vender-master\";\r\nimport { ItemStoreMaster } from \"./item-store-master\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetRawMaterialMaster, GetRawMaterialMasterDetail, GetUnitMaster, GetInvCategoryMaster, GetInvSubCategoryMaster, AddEditRawMaterialMaster } from \"../../../../services/inventoryMasterService\";\r\nexport function RawMaterialMaster(props) {\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"OK\", type: \"\" }],\r\n });\r\n };\r\n const defaultListObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n RmitSerNo: 0,\r\n Name: \"\",\r\n }\r\n const defaultObj = {\r\n ClientSerNo: parseInt(currUser.ClientSerNo),\r\n RmitSerNo: 0,\r\n Name: \"\",\r\n BaseUnitID: \"\",\r\n StockUnitID: \"\",\r\n CategorySerNo: 0,\r\n SubCategorySerNo: 0,\r\n IsApplyVenderRate: false,\r\n Barcode: \"\",\r\n ItemCode: \"\",\r\n IsService: false,\r\n Mode: \"View\"\r\n }\r\n const validationObj = {\r\n Name: \"\",\r\n BaseUnitID: \"\",\r\n StockUnitID: \"\",\r\n CategorySerNo: 0,\r\n SubCategorySerNo: 0\r\n }\r\n const [rawMaterialListObj, setRawMaterialListObj] = useState(defaultListObj);\r\n const [rawMaterialObj, setRawMaterialObj] = useState(defaultObj);\r\n const [rawMaterialMaster, setRawMaterialMaster] = useState([]);\r\n const [filterRawMaterial, setFilterrawMaterial] = useState([]);\r\n\r\n const [rawMaterialMasterDetail, setRawMaterialMasterDetail] = useState([]);\r\n const [selectedMaterialSerNo, setSelectedMaterialSerNo] = useState(0);\r\n const [validation, setValidation] = useState(validationObj);\r\n const [isActive, setIsActive] = useState(false);\r\n const [searchString, setsearchString] = useState(\"\");\r\n\r\n const [baseUnit, setBaseUnit] = useState([]);\r\n const [stockUnit, setStockUnit] = useState([]);\r\n const [category, setCategory] = useState([]);\r\n const [subCategory, setSubCategory] = useState([]);\r\n\r\n const fillInvRawMaterialMaster = () => {\r\n setIsActive(true)\r\n GetRawMaterialMaster(parseInt(currUser.ClientSerNo)).then(d => {\r\n setIsActive(false)\r\n let sortData = [...d.data].sort((a, b) => {\r\n return a.Name > b.Name ? 1 : -1\r\n });\r\n console.log(sortData);\r\n if (sortData && sortData.length > 0 && (rawMaterialListObj.RmitSerNo == 0 || rawMaterialListObj.RmitSerNo == undefined)) {\r\n let Obj = sortData[0]\r\n setRawMaterialListObj(Obj);\r\n setSelectedMaterialSerNo(Obj.RmitSerNo)\r\n }\r\n if (sortData.length != 0) {\r\n setRawMaterialListObj(sortData[0]);\r\n setFilterrawMaterial(sortData);\r\n setRawMaterialMaster(sortData);\r\n }\r\n if (rawMaterialObj.Mode == \"Add\" || rawMaterialObj.Mode == \"Edit\") {\r\n fillRawMaterialMasterDetail(rawMaterialObj.RmitSerNo);\r\n }\r\n else if (sortData.length > 0 || rawMaterialObj.Mode == \"View\") {\r\n fillRawMaterialMasterDetail(sortData[0].RmitSerNo);\r\n }\r\n });\r\n setIsActive(false)\r\n }\r\n\r\n const fillRawMaterialMasterDetail = (SelectedSerNo) => {\r\n if (SelectedSerNo != 0 && SelectedSerNo !== undefined) {\r\n setIsActive(true)\r\n GetRawMaterialMasterDetail(parseInt(currUser.ClientSerNo), parseInt(SelectedSerNo)).then(x => { //\r\n setIsActive(false)\r\n if (x.data != undefined) {\r\n if (rawMaterialObj.Mode == \"Add\" || rawMaterialObj.Mode == \"Edit\") {\r\n setRawMaterialObj(x.data)\r\n }\r\n let temp = x.data;\r\n temp.RmitSerNo = SelectedSerNo;\r\n if (temp != undefined) {\r\n temp.Mode = \"View\";\r\n setRawMaterialObj(temp);\r\n setRawMaterialMasterDetail(temp)\r\n setSelectedMaterialSerNo(temp.RmitSerNo);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n const handleRawMaterialClick = (e) => {\r\n clearValidation();\r\n setSelectedMaterialSerNo(e.target.id);\r\n setRawMaterialObj(prev => ({ ...prev, RmitSerNo: e.target.id }))\r\n }\r\n\r\n const handleOnSearchChange = (b) => {\r\n let filterdata = rawMaterialMaster.filter(obj => obj.Name.toLowerCase().includes(b.toLowerCase()));\r\n setFilterrawMaterial(filterdata);\r\n setsearchString(b);\r\n setIsActive(false);\r\n setRawMaterialObj(defaultObj);\r\n }\r\n //#region Add \r\n const handleOnAddClick = () => {\r\n let obj = JSON.parse(JSON.stringify(defaultObj));\r\n obj.Mode = \"Add\";\r\n setRawMaterialObj(obj);\r\n }\r\n //#endregion\r\n\r\n //#region Edit\r\n const handleOnEditClick = () => {\r\n if (rawMaterialObj.Name == \"\") {\r\n alertFunction(\"Please Select Item Name\");\r\n }\r\n else {\r\n setRawMaterialObj(prev => ({ ...prev, Mode: \"Edit\" }));\r\n setSelectedMaterialSerNo(rawMaterialObj.RmitSerNo)\r\n }\r\n setIsActive(false);\r\n }\r\n //#endregion\r\n\r\n //#region Cancel\r\n const handleOnCancelClick = () => {\r\n clearValidation();\r\n setIsActive(false);\r\n let existingObj = rawMaterialMaster.find(x => x.RmitSerNo == rawMaterialObj.RmitSerNo);\r\n if (existingObj != undefined) {\r\n rawMaterialObj.Mode = \"View\";\r\n setRawMaterialObj(rawMaterialMasterDetail);\r\n } else {\r\n setRawMaterialObj(rawMaterialMasterDetail);\r\n }\r\n setsearchString(\"\");\r\n }\r\n //#endregion\r\n\r\n const clearValidation = () => {\r\n setValidation(validationObj);\r\n }\r\n\r\n\r\n const isValidPage = () => {\r\n let isValid = true;\r\n if (validation.Name != \"\") {\r\n setValidation((prev) => ({ ...prev, Name: \"Please enter valid name\" }))\r\n isValid = false;\r\n }\r\n if (rawMaterialObj.Name == \"\" || /[’/`~!#*$@_+=^{}[\\]|;:<>?\\\\]/g.test(rawMaterialObj.Name) == true || rawMaterialObj.Name.trim().length == 0) {\r\n isValid = false;\r\n setValidation(prev => ({ ...prev, Name: \"Please enter valid Name\" }));\r\n }\r\n if (rawMaterialObj.BaseUnitID == \"\") {\r\n isValid = false;\r\n setValidation(prev => ({ ...prev, BaseUnitID: \"Please Select BaseUnit\" }))\r\n }\r\n if (rawMaterialObj.StockUnitID == \"\") {\r\n isValid = false;\r\n setValidation(prev => ({ ...prev, StockUnitID: \"Please Select StockUnit\" }))\r\n }\r\n if (rawMaterialObj.CategorySerNo == 0) {\r\n isValid = false;\r\n setValidation(prev => ({ ...prev, CategorySerNo: \"Please Select Category\" }))\r\n }\r\n if (rawMaterialObj.SubCategorySerNo == 0) {\r\n isValid = false;\r\n setValidation(prev => ({ ...prev, SubCategorySerNo: \"Please Select SubCategory\" }))\r\n }\r\n return isValid;\r\n }\r\n //#endregion\r\n\r\n //#region Save\r\n const handleOnSaveClick = () => {\r\n let IsPageValid = isValidPage();\r\n if (IsPageValid) {\r\n setIsActive(true);\r\n let apiObj = rawMaterialObj;\r\n apiObj.RmitSerNo = parseInt(rawMaterialObj.RmitSerNo);\r\n AddEditRawMaterialMaster(apiObj).then((d) => {\r\n setIsActive(false);\r\n if (d.data.Code == \"200\") {\r\n setIsActive(true);\r\n alertFunction(d.data.Message);\r\n fillInvRawMaterialMaster();\r\n if (rawMaterialObj.Mode == \"Add\" || rawMaterialObj.Mode == \"Edit\") {\r\n rawMaterialObj.RmitSerNo = parseInt(d.data.ReturnValue);\r\n\r\n }\r\n setsearchString(\"\");\r\n } else {\r\n if (rawMaterialObj.Mode == \"Add\") {\r\n alertFunction(\"Failed To Add Item\");\r\n } else {\r\n alertFunction(\"Failed To Update Item\");\r\n }\r\n }\r\n })\r\n setRawMaterialObj(prev => ({ ...prev, Mode: \"View\" }));\r\n } else {\r\n alertFunction(\"Field has an invalid entry. Please verify accordingly.\")\r\n }\r\n }\r\n //#endregion\r\n\r\n useEffect(() => {\r\n fillInvRawMaterialMaster();\r\n }, []);\r\n\r\n useEffect(() => {\r\n GetUnitMaster(parseInt(currUser.ClientSerNo)).then(d => {\r\n if (d.data != undefined) {\r\n let temp = [];\r\n d.data.forEach((x) => {\r\n //Base Unit\r\n if (x.UnitID == x.BaseUnitID && x.Conversion == 1) {\r\n temp.push({ key: x.UnitID, value: x.Name });\r\n }\r\n });\r\n temp.splice(0, 0, { \"key\": 0, \"value\": \"Select\" });\r\n setBaseUnit(temp);\r\n }\r\n });\r\n\r\n\r\n GetInvCategoryMaster(parseInt(currUser.ClientSerNo)).then(d => {\r\n if (d.data != undefined) {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n d.data.forEach((x) => {\r\n temp = [...temp, { key: x.CategorySerNo, value: x.Name }]\r\n });\r\n setCategory(temp);\r\n }\r\n });\r\n }, [selectedMaterialSerNo]);\r\n\r\n useEffect(() => {\r\n GetUnitMaster(parseInt(currUser.ClientSerNo)).then(d => {\r\n if (d.data != undefined) {\r\n let tempData = [];\r\n d.data.forEach((x) => {\r\n //Stock Unit\r\n if (x.BaseUnitID == rawMaterialObj.BaseUnitID) {\r\n tempData.push({ key: x.UnitID, value: x.Name });\r\n }\r\n });\r\n tempData.splice(0, 0, { \"key\": 0, \"value\": \"Select\" });\r\n setStockUnit(tempData)\r\n }\r\n });\r\n }, [rawMaterialObj.BaseUnitID])\r\n\r\n useEffect(() => {\r\n GetInvSubCategoryMaster(parseInt(currUser.ClientSerNo), parseInt(rawMaterialObj.CategorySerNo)).then(e => {\r\n if (e.data != undefined) {\r\n let temp = [{ key: 0, value: \"Select\" }];\r\n e.data.forEach((x) => {\r\n if (x.CategorySerNo == rawMaterialObj.CategorySerNo) {\r\n temp = [...temp, { key: x.SubCategorySerNo, value: x.Name }]\r\n }\r\n });\r\n setSubCategory(temp);\r\n console.log(temp);\r\n }\r\n });\r\n }, [rawMaterialObj.CategorySerNo]);\r\n\r\n useEffect(() => {\r\n fillRawMaterialMasterDetail(rawMaterialObj.RmitSerNo);\r\n }, [rawMaterialObj.RmitSerNo])\r\n\r\n const LastUpdateTooltip = () => {\r\n return (\r\n
      \r\n
      \r\n
        \r\n
      • By Rohan Shah
      • \r\n
      • Date: 25th Sept.
      • \r\n
      • Time: 15:45
      • \r\n
      • PC: 192.168.600.789
      • \r\n
      \r\n
      \r\n\r\n
      \r\n );\r\n };\r\n const [showItemchargeModal, setShowItemchargeModal] = useState(false);\r\n const [showItemvendorModal, setShowItemvendorModal] = useState(false);\r\n const [showItemstoreModal, setShowItemstoreModal] = useState(false);\r\n const [showItemdepartmentModal, setShowItemdepartmentModal] = useState(false);\r\n return (\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Item Master

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Search\r\n
      \r\n \r\n
      \r\n
      \r\n
      List of Item
      \r\n
      \r\n
        \r\n {\r\n filterRawMaterial.map(d => {\r\n return (\r\n
      • \r\n {d.Name}\r\n
      • \r\n )\r\n })\r\n }\r\n
      \r\n
      \r\n
      \r\n
      \r\n\r\n
      {/* disabled-section */}\r\n
      \r\n
      \r\n {\r\n if (filterRawMaterial.find((x) => x.Name == v)) {\r\n setValidation(prev => ({ ...prev, Name: \"Invalid Name\" }));\r\n }\r\n else {\r\n setValidation(prev => ({ ...prev, Name: \"\" }));\r\n setRawMaterialObj(prev => ({ ...prev, Name: v }))\r\n }\r\n }}\r\n >Name\r\n
      \r\n {\r\n setRawMaterialObj((prev) => ({ ...prev, BaseUnitID: item.key, StockUnitID: \"\" }))\r\n }}\r\n >\r\n
      \r\n
      \r\n {\r\n setRawMaterialObj((prev) => ({ ...prev, StockUnitID: item.key }))\r\n }}\r\n >\r\n
      \r\n
      \r\n {\r\n setRawMaterialObj((prev) => ({ ...prev, CategorySerNo: item.key }))\r\n }}\r\n >\r\n
      \r\n
      \r\n {\r\n //console.log( \"Itemkey \",item)\r\n setRawMaterialObj((prev) => ({ ...prev, SubCategorySerNo: item.key }))\r\n }}\r\n >\r\n
      \r\n
      \r\n
      \r\n Is Apply Vender Rate ?\r\n {\r\n //console.log(v);\r\n setRawMaterialObj((prev) => ({ ...prev, IsApplyVenderRate: v }));\r\n }}\r\n >\r\n
      \r\n
      \r\n {\r\n setRawMaterialObj(prev => ({ ...prev, Barcode: e }));\r\n }}\r\n >Bar code\r\n {\r\n setRawMaterialObj(prev => ({ ...prev, ItemCode: e }));\r\n }}\r\n >Item Code\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      { rawMaterialObj.RmitSerNo == 0 ? alertFunction(\"Please select Item to Continue.\") : setShowItemchargeModal(!showItemchargeModal) }}>Charge
      \r\n
      { rawMaterialObj.RmitSerNo == 0 ? alertFunction(\"Please select Item to Continue.\") : setShowItemvendorModal(!showItemvendorModal) }}>Vender
      \r\n
      { rawMaterialObj.RmitSerNo == 0 ? alertFunction(\"Please select Item to Continue.\") : setShowItemstoreModal(!showItemstoreModal) }}>Store
      \r\n
      { rawMaterialObj.RmitSerNo == 0 ? alertFunction(\"Please select Item to Continue.\") : setShowItemdepartmentModal(!showItemdepartmentModal) }}>Department
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n Activate console.log(v)} id=\"RM\">\r\n {\r\n rawMaterialObj.Mode == \"View\" ?\r\n <>\r\n Edit\r\n Add\r\n \r\n :\r\n <>\r\n Cancel\r\n Save\r\n \r\n }\r\n
      \r\n
      \r\n {\r\n showItemchargeModal ?\r\n {\r\n setShowItemchargeModal(false);\r\n }}\r\n >\r\n \r\n :\r\n null\r\n }\r\n {\r\n showItemvendorModal ?\r\n {\r\n setShowItemvendorModal(false);\r\n }}\r\n >\r\n :\r\n null\r\n }\r\n {\r\n showItemstoreModal ?\r\n {\r\n setShowItemstoreModal(false);\r\n }}\r\n >\r\n \r\n :\r\n null\r\n }\r\n {\r\n showItemdepartmentModal ?\r\n {\r\n setShowItemdepartmentModal(false);\r\n }}\r\n >\r\n :\r\n null\r\n }\r\n
      \r\n
      \r\n
      \r\n
      \r\n )\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\n\r\nimport {\r\n InnCheckbox,\r\n InnLoader,\r\n InnPrimaryButton,\r\n useConfirm\r\n} from \"../../../../component\";\r\nimport { ProcessInvNightAudit, ValidateInvNightAuditAtMonthLastDate } from \"../../../../services/inventoryMasterService\";\r\nimport { GetPropertyParameterByKeys } from \"../../../../services/reservationService\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { useSelector } from \"react-redux\";\r\nimport moment from \"moment\";\r\n\r\nexport function MMSDayClosing(props) {\r\n\r\n //#region Local Variable\r\n const currUser = useSelector(currentUser);\r\n const { confirm } = useConfirm();\r\n const alertFunction = async (Message) => {\r\n await confirm({\r\n Message: Message,\r\n Buttons: [{ value: \"Y\", title: \"Ok\", type: \"\" }],\r\n });\r\n }\r\n //#endregion\r\n //#region State Variable\r\n const [isActive, setIsActive] = useState(false);\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n //#endregion \r\n //#region UseEffect\r\n useEffect(() => {\r\n //InvNightAudit();\r\n businessDateAPI();\r\n }, [])\r\n //#endregion\r\n //#region API for businessDate \r\n const businessDateAPI = () => {\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), [\"InvBusinessDate\"]).then((d) => {\r\n setBusinessDate(moment(new Date(d.data[0].value)).format(\"DD-MMM-YYYY\"));\r\n });\r\n }\r\n //#endregion\r\n //#region API for process night audit\r\n const InvNightAuditProcess = () => {\r\n setIsActive(true);\r\n ProcessInvNightAudit(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), businessDate, currUser.UserID, null, null).then((d) => {\r\n setIsActive(false)\r\n if (d.data.Code == \"200\") {\r\n setBusinessDate(moment(new Date(d.data.ReturnValue)).format(\"DD-MMM-YYYY\"))\r\n }\r\n alertFunction(d.data.Message);\r\n });\r\n }\r\n //#endregion\r\n //#region API for validate inv night audit at month last date\r\n const InvValidateNightAudit = () => {\r\n setIsActive(true)\r\n ValidateInvNightAuditAtMonthLastDate(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo)).then((d) => {\r\n setIsActive(false)\r\n if (d.data[0].Message == \"Closed\") {\r\n InvNightAuditProcess();\r\n }\r\n else {\r\n alertFunction(\"Please close previous month\")\r\n }\r\n });\r\n }\r\n //#endregion\r\n //#region Click Event\r\n const handleClickOnProcess = (e) => {\r\n let oldDate = new Date(businessDate);\r\n let lastDateOfMonth = new Date(oldDate.getFullYear(), oldDate.getMonth() + 1, 0);\r\n e.target.disabled = true;\r\n if (oldDate.getDate() == lastDateOfMonth.getDate()) {\r\n InvValidateNightAudit()\r\n }\r\n else {\r\n InvNightAuditProcess();\r\n }\r\n }\r\n //#endregion\r\n\r\n return (\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      Inventory Night Audit

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      Current Inventory BussinessDate: {businessDate}
      \r\n
      \r\n {/*
      \r\n Update the Value For All Transaction of Previous Days\r\n
      */}\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Last Update: 10 Dec. 2019, 10:20:25   \r\n \r\n
      \r\n
      \r\n Process\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n );\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetInvStockValuationReport } from \"../../../../services/inventoryMasterService\";\r\nimport { grouping, groupingTwoTotalFunc } from \"../../../../services/generalService\";\r\nimport { ReportPreviewLevelTwo } from \"../../../client/general/report/report-preview-level-two\";\r\nimport {InnLoader} from \"../../../../component\";\r\nexport function StockValuationReport(props) {\r\n const currUser = useSelector(currentUser);\r\n const [isActive, setActive] = useState(false);\r\n const [colSpanVal, setColSpanVal] = useState(0);\r\n const [list, setList] = useState([]);\r\n const [groupingColumn, setGroupingColumn] = useState([]);\r\n const [propObj, setPropObj] = useState({});\r\n \r\n useEffect(() => {\r\n let o = props.location.state;\r\n if (o != undefined) {\r\n setPropObj(o);\r\n setActive(true)\r\n GetInvStockValuationReport(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), o.obj.StoreSerNo, currUser.UserID, o.obj.StockValationDate).then(d => {\r\n setActive(false)\r\n let Output = d.data;\r\n console.log(d.data)\r\n \r\n let group = grouping(Output, 'CategoryName');\r\n Object.keys(group).forEach((x) => {\r\n group[x] = grouping(group[x], 'SubCategoryName');\r\n })\r\n let groupingData = [];\r\n Object.keys(group).forEach(x => {\r\n let obj = { Grouping2: \"\", Grouping1: [] };\r\n obj.Grouping2 = x;\r\n obj.Grouping1 = Object.keys(group[x]);\r\n groupingData.push(obj)\r\n })\r\n setGroupingColumn(groupingData);\r\n Output = groupingTwoTotalFunc(groupingData, group, [\"GrossValue\"], \"ItemName\", false, true, true);\r\n setPropObj((prev) => ({ ...prev, list: Output, groupingColumn: groupingData, IsGroupingOneTotal: false, IsGroupingTwoTotal: true, IsGrandTotal: true, goBackPath: \"/InventoryReport\" }))\r\n setList(Output);\r\n }).catch(e => console.error(e))\r\n }\r\n if (o.columnList?.length != 0) {\r\n setColSpanVal(o.columnList.length)\r\n }\r\n }, []);\r\n\r\n return (\r\n
      \r\n \r\n \r\n
      \r\n )\r\n\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { grouping, groupingThreeTotalFunc, groupingTwoTotalFunc } from \"../../../../services/generalService\";\r\nimport { ReportPreviewLevelThree } from \"../../../client/general/report/report-preview-level-three\";\r\nimport { GetInvMaterialMovementReport } from \"../../../../services/inventoryMasterService\";\r\nimport moment from \"moment\";\r\nexport function MaterialMovementReport(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const [isActive, setActive] = useState(false);\r\n const [colSpanVal, setColSpanVal] = useState(0);\r\n const [propObj, setPropObj] = useState({});\r\n useEffect(() => {\r\n let o = props.location.state;\r\n let Output = [];\r\n if (o != undefined) {\r\n console.log(o)\r\n setPropObj(o);\r\n GetInvMaterialMovementReport(currUser.ClientSerNo, currUser.PropertySerNo, o.obj?.MovementID, o.obj?.FromDate, o.obj?.ToDate, o.obj?.SourceSerNo, o.obj?.DestinationSerNo, o.obj?.ItemCategorySerNo, o.obj?.ItemSubCategorySerNo).then((d) => {\r\n d.data.forEach(x => {\r\n x.TransDateTime = moment(x.TransDateTime).format(\"DD-MMM-YYYY\")\r\n })\r\n console.log(d.data)\r\n Output = d.data;\r\n // Output.push(a1,a2);\r\n let group = grouping(Output, 'TransDateTime');\r\n Object.keys(group).forEach((x) => {\r\n group[x] = grouping(group[x], 'MovementName');\r\n Object.keys(group[x]).forEach((y) => {\r\n group[x][y] = grouping(group[x][y], 'SourceName');\r\n })\r\n })\r\n console.log(group)\r\n let groupingData = [];\r\n Object.keys(group).forEach(x => {\r\n let obj = { Grouping3: \"\", Grouping2: [] };\r\n obj.Grouping3 = x;\r\n Object.keys(group[x]).forEach(o => {\r\n let arr = { G2: '', G1: [] };\r\n arr.G2 = o;\r\n arr.G1 = Object.keys(group[x][o]);\r\n obj.Grouping2.push(arr);\r\n })\r\n groupingData.push(obj)\r\n })\r\n console.log(groupingData)\r\n\r\n Output = groupingThreeTotalFunc(groupingData, group, [\"GrossValue\", \"TransQty\"], \"TransNo\", true, true, true, true);\r\n setPropObj((prev) => ({ ...prev, list: Output, groupingColumn: groupingData, IsGroupingOneTotal: true, IsGroupingTwoTotal: true, IsGroupingThreeTotal: true, IsGrandTotal: true }))\r\n }).catch(e => console.log(e))\r\n }\r\n setPropObj((prev) => ({ ...prev, goBackPath: \"/InventoryReport\" }))\r\n }, []);\r\n\r\n return (\r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetVenderDetailReport } from \"../../../../services/inventoryMasterService\";\r\nimport { ReportPreviewLevelZero } from \"../../general/report/report-preview-level-0\";\r\n\r\nexport function VenderDetailReport(props) {\r\n const currUser = useSelector(currentUser);\r\n const [propsObj, setPropsObj] = useState({});\r\n useEffect(() => {\r\n let o = props.location.state;\r\n console.log(o);\r\n setPropsObj(o);\r\n if (o != undefined) {\r\n GetVenderDetailReport(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), o.obj.VenderSerNo).then((d) => {\r\n console.log(d.data);\r\n setPropsObj((prev) => ({ ...prev, list: d.data, goBackPath: \"/InventoryReport\" }))\r\n })\r\n }\r\n }, [])\r\n return (\r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetItemListReport } from \"../../../../services/inventoryMasterService\";\r\nimport { ReportPreviewLevelZero } from \"../../general/report/report-preview-level-0\";\r\n\r\nexport function ItemListReport(props) {\r\n const currUser = useSelector(currentUser);\r\n const [propsObj, setPropsObj] = useState({});\r\n\r\n useEffect(() => {\r\n let o = props.location.state;\r\n if (o != undefined) {\r\n console.log(o);\r\n setPropsObj(o);\r\n GetItemListReport(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), o.obj.SourceSerNo, o.obj.Stockable, o.obj.SourceType).then((d) => {\r\n console.log(d.data);\r\n let sortData = [...d.data].sort((a,b) => {\r\n return a.StoreName > b.StoreName || a.VenderName > b.VenderName || a.DepartmentName > b.DepartmentName ? 1 : -1\r\n });\r\n sortData.forEach(ele => {\r\n console.log(ele.VenderName);\r\n if(ele.VenderName){\r\n o.columnList[1].key = \"Vender Name\"\r\n o.columnList[1].value = \"VenderName\"\r\n }\r\n if(ele.DepartmentName){\r\n o.columnList[1].key = \"Department Name\"\r\n o.columnList[1].value = \"DepartmentName\"\r\n }\r\n if (ele.IsStockable == true) {\r\n ele.IsStockable = \"Yes\"\r\n }\r\n else {\r\n ele.IsStockable = \"No\"\r\n }\r\n });\r\n setPropsObj((prev) => ({ ...prev, list: sortData, goBackPath: \"/InventoryReport\" }))\r\n })\r\n }\r\n }, [])\r\n return (\r\n \r\n )\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport {InnLoader} from \"../../../../component\";\r\nimport { GetDayCloseLogReport } from \"../../../../services/inventoryMasterService\";\r\nimport { ReportPreviewLevelZero } from \"../../../client/general/report/report-preview-level-0\";\r\nexport function DayCloseLogReport(props) {\r\n const currUser = useSelector(currentUser);\r\n\r\n const [isActive, setActive] = useState(false);\r\n const [colSpanVal, setColSpanVal] = useState(0);\r\n const [list, setList] = useState([]);\r\n const [groupingColumn, setGroupingColumn] = useState([]);\r\n const [propObj, setPropObj] = useState({});\r\n useEffect(() => {\r\n let o = props.location.state;\r\n if (o != undefined) {\r\n console.log(\"all O\",o)\r\n setPropObj(o);\r\n setActive(true)\r\n GetDayCloseLogReport(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo),o.obj.FromDate,o.obj.ToDate).then(d => {\r\n setActive(false)\r\n let Output = d.data;\r\n console.log(\"all Data\",d.data )\r\n setPropObj((prev) => ({ ...prev, list: Output,goBackPath:\"/InventoryReport\" }))\r\n setList(Output);\r\n }).catch(e => console.error(e))\r\n }\r\n if (o.columnList?.length != 0) {\r\n setColSpanVal(o.columnList.length)\r\n }\r\n }, []);\r\n return (\r\n
      \r\n \r\n \r\n
      \r\n )\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { currentUser } from \"../../../../reducer/authSlice\";\r\nimport { GetNonMovingItemReport } from \"../../../../services/inventoryMasterService\";\r\nimport { grouping, groupingTwoTotalFunc } from \"../../../../services/generalService\";\r\nimport { ReportPreviewLevelTwo } from \"../../../client/general/report/report-preview-level-two\";\r\nexport function NonMovingItemReport(props) {\r\n\r\n const currUser = useSelector(currentUser);\r\n const reactToExcelRef = useRef();\r\n const selectdata = [\r\n { key: \"Excel\", value: \"Excel\" },\r\n ];\r\n const optBtnData = [\r\n { key: \"Edit\", value: \"edt\" },\r\n { key: \"Delete\", value: \"del\" },\r\n ];\r\n const [isActive, setActive] = useState(false);\r\n const [colSpanVal, setColSpanVal] = useState(0);\r\n const [list, setList] = useState([]);\r\n const [groupingColumn, setGroupingColumn] = useState([]);\r\n const [propObj, setPropObj] = useState({});\r\n useEffect(() => {\r\n let o = props.location.state;\r\n if (o != undefined) {\r\n console.log(o)\r\n setPropObj(o);\r\n GetNonMovingItemReport(parseInt(currUser.ClientSerNo), parseInt(currUser.PropertySerNo), o.obj?.StoreSerNo, currUser.UserID, o.obj?.Date, o.obj?.IsMonthYear, o.obj?.NOfMonthDays, o.obj?.ItemCategorySerNo == undefined ? 0 : o.obj?.ItemCategorySerNo, o.obj?.ItemSubCategorySerNo == undefined ? 0 : o.obj?.ItemSubCategorySerNo).then(d => {\r\n let Output = d.data\r\n let group = grouping(Output, 'CategoryName');\r\n Object.keys(group).forEach((x) => {\r\n group[x] = grouping(group[x], 'SubCategoryName');\r\n })\r\n let groupingData = [];\r\n Object.keys(group).forEach(x => {\r\n let obj = { Grouping2: \"\", Grouping1: [] };\r\n obj.Grouping2 = x;\r\n obj.Grouping1 = Object.keys(group[x]);\r\n groupingData.push(obj)\r\n })\r\n setGroupingColumn(groupingData);\r\n console.log(group);\r\n console.log(groupingData);\r\n Output = groupingTwoTotalFunc(groupingData, group, [\"Value\", \"NonMovingValue\"], \"StoreName\", true, true,true);\r\n setPropObj((prev) => ({ ...prev, list: Output, groupingColumn: groupingData, IsGroupingOneTotal: true, IsGroupingTwoTotal: true, IsGrandTotal: true}))\r\n console.log(Output);\r\n }).catch(e => console.log(e))\r\n }\r\n if (o.columnList?.length != 0) {\r\n setColSpanVal(o.columnList.length)\r\n }\r\n setPropObj((prev)=>({...prev,goBackPath:\"/InventoryReport\" }))\r\n }, []);\r\n\r\n return (\r\n \r\n )\r\n}","export default __webpack_public_path__ + \"static/media/settings.6d485149.svg\";","export default __webpack_public_path__ + \"static/media/menu-icon.1ed53598.svg\";","export default __webpack_public_path__ + \"static/media/chat-support-icon.02f684b1.svg\";","import React, { useEffect, useRef, useState, lazy, Suspense } from \"react\";\r\n//import LeftNavigation from '../../component/LeftNavigation';\r\nimport {\r\n innActionbutton,\r\n innPrimaybutton,\r\n InnConfirmAlert,\r\n InnAlert\r\n} from \"../../component\";\r\nimport { ModuleMenu, NotificationDropdown, SettingPageMenu, LeftNavigation, UserProfileMenu } from \"../navigation\";\r\nimport { menuMaster } from \"../../utils/helpers/sharedModule\";\r\nimport logo from \"../../assets/images/innkeypmslogo.png\";\r\nimport menuicon from \"../../assets/images/menu-icon.svg\";\r\nimport chatsupporticon from \"../../assets/images/chat-support-icon.svg\";\r\nimport settingsicon from \"../../assets/images/settings.svg\";\r\nimport \"../../assets/css/innkeyPMS.css\";\r\nimport \"../../assets/css/bootstrap-grid.css\";\r\nimport { cGlobal } from \"../../reducer/commonSlice\";\r\nimport { toggleMenu } from \"../../reducer/commonSlice\";\r\nimport { currentUser, setPropertySerNo } from \"../../reducer/authSlice\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { InnSingleSelectDropdown } from \"../../component\";\r\n//import NotificationDropdown from \"../../component/NotificationDropdown\";\r\n//import ReservationGridView from \"../../component/ReservationGridView\";\r\n//import ReservationView from \"../../component/ReservationView\";\r\nimport { Route, Switch } from \"react-router-dom\";\r\nimport { BrowserRouter as Router } from \"react-router-dom\";\r\n//import { PersonalIdentificationTypeMaster, RateMaster, Report, ReportPreview } from \"../../temp\";\r\nimport { useTranslation } from 'react-i18next';\r\n//import TempMenu from \"../../temp/temp-menu\";\r\nimport { ReservationArrivalList } from \"./reservation\";\r\nimport ReservationDepartureList from \"./reservation/reservation-departure-list\";\r\n//import CreateBlockReservation from \"../../temp/TempCreateBlockReservation\";\r\n//import statusPopups from \"../../temp/statusPopups\";\r\nimport { GetPropertyMaster, GetPropertyParameterByKeys } from \"../../services/reservationService\";\r\nimport moment from \"moment\";\r\nconst SharedModulePOS = lazy(() => import('../../utils/helpers/sharedModulePOS'));\r\nconst TempMenu = lazy(() => import('../../temp/temp-menu'));\r\n\r\nfunction HomePage() {\r\n const currUser = useSelector(currentUser);\r\n const { i18n } = useTranslation();\r\n const [selectedLang, setSelectedLang] = useState('en');\r\n const cglobal = useSelector(cGlobal);\r\n const dispatch = useDispatch();\r\n const [showmodule, setShowmodule] = useState(false);\r\n const [showprofile, setShowprofile] = useState(false);\r\n const [showpagesettings, setShowpagesettings] = useState(false);\r\n const [showNotification, setShowNotification] = useState(false);\r\n const modmenuRef = useRef(null);\r\n const refProfile = useRef(null);\r\n const refNotification = useRef(null);\r\n const refModule = useRef(null);\r\n const [propertyList, setPropertyList] = useState([]);\r\n const [moduleValue, setModuleValue] = useState();\r\n const refModmenu = useRef(null);\r\n const [showLeftNav, setShowleftNav] = useState(false);\r\n const [selectedPropertySerNo, setSelectedPropertySerNo] = useState(0);\r\n const [businessDate, setBusinessDate] = useState(\"\");\r\n const [loadTemp,setLoadTemp] = useState(true);\r\n\r\n \r\n const handleClickOutside = (event) => {\r\n if (modmenuRef.current && !modmenuRef.current.contains(event.target)) {\r\n dispatch(toggleMenu(false));\r\n // setShowleftNav(false);\r\n }\r\n\r\n if (refProfile.current && !refProfile.current.contains(event.target)) {\r\n setShowprofile(false);\r\n }\r\n\r\n if (\r\n refNotification.current &&\r\n !refNotification.current.contains(event.target)\r\n ) {\r\n setShowNotification(false);\r\n }\r\n\r\n if (refModule.current && !refModule.current.contains(event.target) && !refModmenu.current.contains(event.target)) {\r\n setShowmodule(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n console.log(\"home page load \");\r\n GetPropertyMaster(currUser.ClientSerNo).then(d => {\r\n if (d.data && d.data.length > 0) {\r\n setPropertyList(d.data);\r\n setSelectedPropertySerNo(d.data[0].key)\r\n dispatch(setPropertySerNo(d.data[0].key))\r\n GetBusinessDate(d.data[0].key);\r\n }\r\n })\r\n }, []);\r\n \r\n const GetBusinessDate = (PropertySerNo) => {\r\n GetPropertyParameterByKeys(parseInt(currUser.ClientSerNo), parseInt(PropertySerNo), [\"BusinessDate\"]).then((d) => {\r\n console.log(\"BusinessDate\", d.data[0]);\r\n setBusinessDate(moment(new Date(d.data[0].value)).format(\"DD MMM, YYYY, dddd\"));\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n // Bind the event listener\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n // Unbind the event listener on clean up\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [modmenuRef]);\r\n\r\n const changeLanguage = (value) => {\r\n setSelectedLang(value);\r\n i18n.changeLanguage(value);\r\n }\r\n\r\n /* const [showprofile, setShowprofile] = useState(false); */\r\n return (\r\n \r\n
      \r\n
      \r\n {/* {\r\n showLeftNav ? \r\n :\r\n null\r\n } */}\r\n \r\n
      \r\n {/* {showmodule ? setModuleValue(x)}> : null} */}\r\n
      \r\n {showmodule ? {\r\n setModuleValue(x);\r\n setShowmodule(false);\r\n dispatch(toggleMenu(true));\r\n }}> : null}\r\n
      \r\n
      \r\n
      \r\n
      \r\n {\r\n dispatch(toggleMenu(true));\r\n //setShowleftNav(!showLeftNav);\r\n }}\r\n >\r\n {/* */}\r\n \r\n \r\n \r\n \r\n\r\n \r\n {\r\n dispatch(setPropertySerNo(item.key))\r\n setSelectedPropertySerNo(item.key)\r\n GetBusinessDate(item.key);\r\n }}\r\n searchable={[\"Looking for\", \"No matching property\"]}\r\n >\r\n
      {businessDate}
      \r\n
      \r\n \r\n \r\n
      \r\n {/* header-left */}\r\n\r\n
      \r\n {\" \"}\r\n {/* header-alert header-right */}\r\n
      \r\n
        \r\n {/*
      • \r\n \r\n \r\n \r\n
      • */}\r\n
      • \r\n \r\n \r\n
      • \r\n
      • \r\n setShowNotification(!showNotification)}\r\n >\r\n \r\n \r\n {showNotification == true ? (\r\n \r\n ) : (\r\n <>\r\n )}\r\n
      • \r\n {/*
      • \r\n \r\n \r\n \r\n
      • */}\r\n
      \r\n {/*
      \r\n \r\n
      \r\n \r\n
      \r\n \r\n
      */}\r\n\r\n {/*
      \r\n \r\n
      */}\r\n\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n David\r\n \r\n
      \r\n \r\n Manager house keeping
      \r\n Live 30 min ago\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n

      TODAY'S

      \r\n
      \r\n
      \r\n
      Please check my mail.
      \r\n

      30 min ago

      \r\n
      \r\n
      \r\n
      \r\n Hello David\r\n
      \r\n Ok sure\r\n
      \r\n Also send me your requrement by mail.\r\n
      \r\n
      \r\n

      5 min ago

      \r\n
      \r\n
      \r\n
      Please check my mail.
      \r\n

      30 min ago

      \r\n
      \r\n
      \r\n
      \r\n Hello David\r\n
      \r\n Ok sure\r\n
      \r\n Also send me your requrement by mail.\r\n
      \r\n
      \r\n

      5 min ago

      \r\n
      \r\n
      \r\n

      YESTERDAY

      \r\n
      \r\n
      \r\n
      Need to some food stock.
      \r\n

      30 min ago

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n Hello David\r\n
      \r\n Ok sure\r\n
      \r\n Also send me your requrement by mail.\r\n
      \r\n
      \r\n

      5 min ago

      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n {\" \"}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n { changeLanguage(item.key) }}\r\n >\r\n
      \r\n
      \r\n {\r\n setShowprofile(!showprofile);\r\n }}\r\n >\r\n
      SU
      \r\n {showprofile ? : <>}\r\n \r\n {\r\n setShowmodule(!showmodule)\r\n }}\r\n >\r\n \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n {\r\n menuMaster.map(d =>\r\n \r\n )\r\n } \r\n Still Loading…}>\r\n {currUser.CurrentModule == \"P\" ? : <>} \r\n {loadTemp == true ? : <>} \r\n \r\n \r\n \r\n \r\n
      \r\n
      \r\n setShowpagesettings(!showpagesettings)}\r\n >\r\n \r\n
      \r\n {showpagesettings ? : null}\r\n
      \r\n
      \r\n {/*
      \r\n \r\n
      */}\r\n \r\n \r\n \r\n
      \r\n );\r\n}\r\n\r\nexport { HomePage };\r\n","//import logo from './logo.svg';\nimport './App.css';\nimport { history } from \"./app/utils/helpers\";\nimport { currentUser, setClientSerNo,logout } from \"./app/reducer/authSlice\";\nimport { useDispatch,useSelector } from \"react-redux\";\nimport { PrivateRoute } from \"./app/modules/navigation\";\nimport {LoginPage } from \"./app/modules/auth/login-page\";\nimport { HomePage } from \"./app/modules/client/home-page\";\nimport { Router,Link,Route } from \"react-router-dom\";\nimport React,{useState, useEffect} from 'react';\nimport { GetClientIDbyDomain } from './app/services/authService';\nimport LangSelector from './app/utils/helpers/LangSelector';\n//import AWS from 'aws-sdk';\n\nfunction App() { \n\n // const sns = new AWS.SNS({\n // region: 'Amazon.RegionEndpoint.APSouth1',\n // accessKeyId: 'AKIAUVGD44SFDGQT7ZC4',\n // secretAccessKey: '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',\n // });\n\n // const sns = new AWS.SNS();\n\n // const params = {\n // Name: 'my-topic'\n // };\n\n // const sendConfirmationMessage = async (subscriptionArn, token) => {\n // try {\n // const params = {\n // Protocol: 'https',\n // TopicArn: 'arn:aws:sns:ap-south-1:320385901706:MyFirstTopic',\n // Endpoint: `http://cluster2.innkeylive.com?token=${encodeURIComponent(token)}`,\n // };\n \n // const result = await sns.subscribe(params).promise();\n \n // console.log(result);\n // } catch (error) {\n // console.error(error);\n // }\n // };\n\n //const queryParams = new URLSearchParams(window.location.search);\n // console.log(\"Query Parameter :- \",queryParams);\n // const subscriptionArn = queryParams.get('SubscriptionArn');\n // const token = queryParams.get('Token');\n // const queryParams = new URLSearchParams(location.search);\n // const subscriptionArn = queryParams.get('SubscriptionArn');\n // const token = queryParams.get('Token');\n \n const [subDomain,setsubDomain] = useState(null); \n const dispatch = useDispatch(); \n const currUser = useSelector(currentUser);\n\n useEffect(()=>{\n\n // sns.createTopic(params, (err, data) => {\n // if (err) console.log(err);\n // else console.log(data);\n // });\n\n // const params1 = {\n // Protocol: 'http',\n // TopicArn: 'arn:aws:sns:ap-south-1:320385901706:MyFirstTopic',\n // Endpoint: 'http://cluster2.innkeylive.com'\n // };\n\n // sns.subscribe(params1, (err, data) => {\n // if (err) console.log(err);\n // else console.log(data);\n // });\n\n //sendConfirmationMessage(subscriptionArn, token);\n //sendConfirmationMessage(subscriptionArn, token);\n \n const host = window.location.host; \n const arr = host.split(\".\")\n .slice(0,1);\n \n console.log(\"domain \",arr); \n if(arr.length > 0){\n setsubDomain(arr[0]) \n console.log(\"domain \",arr[0]); \n GetClientIDbyDomain(arr[0]).then((res)=>{\n if(res.status == 200){\n dispatch(setClientSerNo(res.data.ClientID));\n }\n });\n \n };\n\n },[]);\n\n return (\n
      \n {\n subDomain !== null ? (\n \n
      \n {/* */}\n {/* test your component here */} \n
      \n
      \n \n \n
      \n
      \n {/* test your component here end*/}\n {/*

      Our client is {subDomain}

      */}\n {/* {currUser.IsSignIn &&\n \n } */} \n
      \n
      \n ):(

      not found

      )\n } \n
      \n );\n}\n\nexport default App;\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import { configureStore } from '@reduxjs/toolkit';\r\n//import authReducer from '../reducer/authSlice';\r\nimport authSlice from '../reducer/authSlice';\r\nimport commonSlice from '../reducer/commonSlice';\r\nimport frontSlice from '../reducer/frontSlice';\r\nimport posSlice from '../reducer/posSlice';\r\n\r\nexport const store = configureStore({\r\n reducer: { \r\n //auth: authReducer,\r\n auth:authSlice,\r\n common:commonSlice,\r\n front:frontSlice,\r\n pos:posSlice\r\n },\r\n});\r\n","import i18n from 'i18next';\r\nimport { initReactI18next } from 'react-i18next';\r\n\r\nimport Backend from 'i18next-http-backend';\r\nimport LanguageDetector from 'i18next-browser-languagedetector';\r\n\r\ni18n\r\n // load translation using http -> see /public/locales (i.e. https://github.com/i18next/react-i18next/tree/master/example/react/public/locales)\r\n // learn more: https://github.com/i18next/i18next-http-backend\r\n .use(Backend)\r\n // detect user language\r\n // learn more: https://github.com/i18next/i18next-browser-languageDetector\r\n .use(LanguageDetector)\r\n // pass the i18n instance to react-i18next.\r\n .use(initReactI18next)\r\n // init i18next\r\n // for all options read: https://www.i18next.com/overview/configuration-options\r\n .init({\r\n lng: 'en',\r\n backend: {\r\n /* translation file path */\r\n loadPath: '/assets/i18n/{{ns}}/{{lng}}.json'\r\n },\r\n fallbackLng: 'en',\r\n debug: true,\r\n /* can have multiple namespace, in case you want to divide a huge translation into smaller pieces and load them on demand */\r\n ns: ['translations'],\r\n defaultNS: 'translations',\r\n keySeparator: false,\r\n interpolation: {\r\n escapeValue: false,\r\n formatSeparator: ','\r\n },\r\n react: {\r\n wait: true\r\n }\r\n });\r\n\r\nexport default i18n;","import React,{Suspense} from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\nimport { store } from './app/store/store';\nimport { Provider } from 'react-redux';\nimport axios from 'axios';\nimport './i18n';\nimport TokenService from './app/services/tokenService';\n// import { useDispatch,useSelector } from \"react-redux\";\n// import { logout } from \"./app/reducer/authSlice\";\n// const dispatch = useDispatch(); \n\n\naxios.interceptors.request.use( \n (req) => { \n \n // It is used to ignore multiple time API URL which is append before request when retry api\n if(req._retry == undefined){\n req.url = process.env.REACT_APP_API_URL + req.url; \n \n } \n req.headers[\"X-ClientId\"] = 'dev-id-1'; \n const token = TokenService.getLocalAccessToken();\n if(token){\n req.headers[\"Authorization\"] = 'Bearer ' + token; \n }\n\n return req; \n },\n (err) => {\n return Promise.reject(err);\n }\n);\n\naxios.interceptors.response.use(\n (res) => {\n return res;\n },\n async(err)=>{\n \n const originalConfig = err.config;\n if(originalConfig.url != \"/Authentication/Authenticate\" && err.response){\n if(err.response.status == 401 && (originalConfig._retry == undefined || originalConfig._retry < 5)){\n\n if(originalConfig._retry == undefined)\n originalConfig._retry = 1;\n else\n originalConfig._retry = originalConfig._retry + 1;\n\n try{\n\n const rs = await axios.post(\"/Authentication/manage-refreshtoken\",TokenService.getRefreshTokenModel());\n if(rs.status == 200){\n if(rs?.data != undefined){\n const { token,refresh_token,SessionId } = rs?.data.authToken;\n TokenService.updateLocalAccessToken(token,refresh_token); \n } \n return axios(originalConfig); \n }\n if(rs.status == 403){ \n return axios(originalConfig); \n } \n }catch(_error){ \n return axios(originalConfig);\n //return Promise.reject(_error);\n } \n\n }\n } \n return Promise.reject(err);\n }\n);\n\nReactDOM.render(\n \n Loading ...}>\n \n \n \n \n ,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n","export default __webpack_public_path__ + \"static/media/the_orchid_logo.af6fcd1e.svg\";"],"sourceRoot":""}