{"version":3,"sources":["assets/images/dashboard.png","assets/images/garden-loader.gif","assets/images/avatar.jpg","assets/images/loading.gif","assets/images/success.png","assets/images/logo2.png","assets/images/product-pic.png","services/LoginService.js","template/Message.jsx","views/Login.jsx","services/DefaultApi.js","views/Tnc.jsx","views/PrivacyPolicy.jsx","services/UserService.js","template/Sidebar.jsx","template/Footer.jsx","services/DashboardService.js","services/WareHouseMaterService.js","services/apiService.js","template/Loaders.js","views/Dashboard.jsx","services/AccessRightService.js","views/master/AccessRight.jsx","template/ConfirmationModal.jsx","services/ProductService.js","models/tableRequest.js","services/CategoryService.js","services/CompanyMasterService.js","views/master/ProductMaster.jsx","views/master/UserMaster.jsx","services/CartonMasterService.js","views/master/CartonMaster.jsx","views/master/CompanyMaster.jsx","services/CountryService.js","views/master/DealerMaster.jsx","views/master/ListMaster.jsx","services/PriceMasterService.js","views/master/PriceMaster.jsx","views/master/DistributorMaster.jsx","services/MappingService.js","services/DeMappingService.js","views/transaction/DeMapping.jsx","services/UploaderFileService.js","views/transaction/Mapping.jsx","services/DispatchService.js","services/PrintDispatchService.js","views/transaction/Dispatch.jsx","services/SecondaryPackingService.js","services/PrintSecondaryPackagingService.js","views/transaction/SecondaryPacking.jsx","services/TertiaryPackingService.js","views/transaction/TertiaryPacking.jsx","services/NumberIssuedService.js","views/transaction/NumberIssued.jsx","services/StockManagementService.js","views/transaction/StockManagement.jsx","services/ProductDamageService.js","views/transaction/ProductDamage.jsx","views/transaction/StaticMapping.jsx","models/qrData.js","views/transaction/CartonSlip.jsx","services/RedemptionReportService.js","views/transaction/LoyaltyRedeemRequests.jsx","services/ProductConfigurationService.js","views/master/ProductConfiguration.jsx","services/MappingReportService.js","views/reports/MappingReport.jsx","services/VerificationReportService.js","views/reports/VerificationReport.jsx","services/FeedbackReportService.js","views/reports/FeedbackReport.jsx","services/SAPDataReportService.js","views/reports/SAPDataReport.jsx","services/DispatchReportService.js","views/reports/DispatchReport.jsx","views/reports/PrimaryPackingReport.jsx","services/SecondaryReportService.js","views/reports/SecondaryPackingReport.jsx","services/TertiaryReportService.js","views/reports/TertiaryPackingReport.jsx","services/ItemLedgerReportService.js","views/reports/ItemLedger.jsx","services/SchemeReportService.js","views/reports/SchemeReport.jsx","views/reports/RedemptionReport.jsx","services/MissingCartonRptService.js","views/reports/MissingCartonReport.jsx","views/reports/DispatchReceiveRpt.jsx","views/reports/PickLuckyUsers.jsx","views/reports/FractionalCartonsRpt.jsx","views/reports/ReturnReport.jsx","views/Profile.jsx","services/SchemeService.js","views/master/SchemeMaster.jsx","views/transaction/SchemeConfiguration.jsx","views/master/Category.jsx","services/NumberGenerationService.js","views/transaction/NumberGeneration.jsx","views/transaction/DispatchReceive.jsx","views/master/WareHouseMaster.jsx","views/reports/ItemWiseStockDetail.jsx","views/reports/DamageRpt.jsx","services/DeMappingReportService.js","views/reports/DeMappingReport.jsx","views/transaction/damageCarton.jsx","views/reports/QrCodeReport.jsx","views/ChangePassword.jsx","views/master/FactoryMaster.jsx","views/transaction/AdminNumberGenerated.jsx","views/transaction/ReturnCarton.jsx","services/ReplaceService.js","views/transaction/Replace.jsx","services/DealerLoyaltyReportService.js","views/reports/DealerLoyaltyReport.jsx","views/reports/ItemStockDetail.jsx","views/master/SalePersonMaster.jsx","template/Layout.jsx","services/PASevice.js","services/UserPointTransactionService.js","views/ProductAuthentication.jsx","views/HomePage.jsx","App.js","serviceWorker.js","index.js","assets/images/logo.png"],"names":["module","exports","LoginService","ControllerName","logindata","axios","post","process","this","then","res","MessageComponent","showSuccess","bind","showInfo","showWarn","showError","clear","msg","toast","show","severity","summary","detail","life","className","ref","el","Component","Login","props","state","userName","password","loggedIn","formError","visible","formForgotHeading","buttonLabel","Email","forgotFormError","formHandle","submitForm","hideFunc","handleForgotChange","openDialog","submitForgotForm","console","log","sessionStorage","getItem","event","target","name","value","errors","length","match","setState","preventDefault","formdata","Password","CheckUser","data","resdata","ResponseData","setItem","JSON","stringify","login","RefreshToken","Token","UserType","WareHouseId","UserId","CompanyId","Prefix","window","location","refs","Messchild","ResponseMessage","Object","entries","map","key","formForgotReset","isfrmvalid","checkerror","val","validateForgotForm","formData","setTimeout","ForgotPassword","ResponseCode","loading","IsValid","Message","header","modal","onHide","onSubmit","type","onChange","placeholder","noValidate","autoComplete","onClick","instance","require","create","token","Curenturl","pathname","nNumber","lastIndexOf","pageName","substring","defaults","headers","common","curl","includes","interceptors","response","use","err","config","undefined","status","statusText","removeItem","UserService","tableRequest","Payload","referenceID","get","Sidebar","handleSidebarToggle","isOpen","isPersist","menuItems","demoMenu","label","icon","url","items","getMenu","getUserMenu","childcheck","arraydata","arryFinal","forEach","element","contents","obj","content","econ","to","children","chlddata","econchld","ob","push","find","x","arr","reduce","result","item","Array","isArray","stripUndefined","style","justifyContent","model","Footer","height","DashboardService","WareHouseMaterService","CompId","ApiService","endPoint","lat","long","Loaders","loader","classType","src","loaderPic","Dashboard","Dashdata","TotalMapping","TotalDeMapping","TotalDamage","TotalGenerate","TotalPacked","TotalDispatched","TotalCartonsPacked","TotalCartonsDispatched","TotalReceived","TotalCartonsReceived","updateLoader","TotalGenerated","Months","selval","DeMappings","Mappings","dropDownValue","NumberIssue","Damage","largestNumber","factoryDDL","isAdmin","isPreprintedValue","isPreprinted","options","pieSliceText","plugins","labels","render","setPreprintedValue","GetAllFactory","GetDashboardData","ID","FirmName","e","Id","filter","IsFactory","DashboardCount","MonthName","DeMappingList","MappingList","NumberList","DamageNumberList","DamageList","largest","array","TotalIssue","i","compId","GetWareHouseDDL","factory","warehouse","mergedArr","datasets","fill","borderColor","margin","handleChange","width","display","marginLeft","borderRadius","dashboradimg","alt","hidden","chartType","id","data-ride","role","href","data-slide","aria-hidden","AccessRightService","userId","accessdata","AccessRight","nodes","nodeToggle","globalFilter","masters","trans","report","Divs","code","userddlList","checkBox","SubmitData","GetAccessRight","GetUserList","GetUsersDDL","rowData","disabled","checked","Status","node","IsChecked","checkbox","document","getElementById","checkboxlist","getElementsByClassName","currentTarget","selectAllClassName","replace","formIsValid","parseInt","editcheckbox","checkboxes","getElementsByName","checkedValuelst","parent","parentId","child","indexOf","PageList","CreateUpdateAccessRight","reload","listdata","ischeck","childNode","k","TreeStruture","Accordion","AccordionSummary","expandIcon","aria-controls","Typography","fontSize","pages","AccordionDetails","onCheckAll","defaultChecked","complete","childUncheck","roleName","textAlign","onInput","size","home","onUserChange","ConfirmationModal","showModal","confirm","confirmModal","handleConfirm","onClose","aria-labelledby","data-dismiss","aria-label","ProductService","prefix","productData","productId","uom","pid","d","req","IsActive","PageNo","First","SearchValue","PageSize","SortColumn","SortOrder","ProductId","FromDate","ToDate","IsAccepted","IsWareHouse","Qty","CategoryService","MG1","MG2","categoryId","subCategryData","subCategoryId","CompanyMasterService","CartonData","allData","ProductMaster","callbackFunction","childData","message","tblResponse","tblResponseExport","today","Date","invalidDates","heads","exportData","mrp","prodDes","ProductName","ProductCd","ProductDsrcptn","ProductImg","GenuineAudio","ProductUOM","NameMG2","NameMG3","activeIndex","ProductValue","CategoryId","MG2Id","MG3Id","ontime","sortOrder","Product","ManufactureName","RegistrationNo","CautionarySymbol","AntidoteStatement","MarketedBy","ExpDate","GTIN","CustomerCareDetails","WarrantyPeriodInMonth","uploadImageLabel","uploadImagePamphlet","TechnicalName","SapProductCd","uploadImagPath","uploadImagDescPath","uploadImagDescAntiPath","uploadAudioPath","formHeading","sales","companyDDL","first","rows","totalRecords","emptyMessage","CategoryDDL","MG2DDL","MG3DDL","compDisabled","command","brandTemplate","brandDescTemplate","brandDescAntiTemplate","GetProductExport","actionTemplate","handleChange1","submitDescForm","deleteFunc","setImagePath","setImageDescPath","setImageDescAntiPath","setLabel","setPamphlet","setAudioPath","onPage","searchFilter","onSort","validateForm1","isValid","validateForm","dt","dd","getDate","mm","getMonth","yyyy","getFullYear","column","xhr","parse","Source","GetCompany","GetCategoryDDL","GetProducts","$","on","next","removeClass","toggleClass","addClass","getLazyLoadingValues","GetCategoryDDLMG1","GetCategoryDDLMG2","GetCategoryDDLMG3","GetCompanyDDL","getIsAdmin","CompanyObj","getCompanyId","datasource","TotalRows","slice","trim","GetWareHouse","formReset","isValidForm","saveProuduct","Pamphlet","CreateUpdateProduct","gtin","ProductDscrptn","DeleteProduct","totlrecord","row","_curntCursor","Math","round","filterCatDDL","filterCatDDLMG2","CategoryIdMG2","filterCatDDLMG3","CategoryIdMG3","toString","Label","marginRight","sortField","parentCallback","marginBottom","filename","responsive","sortMode","paginator","currentPageReportTemplate","paginatorTemplate","rowsPerPageOptions","lazy","field","body","sortable","blockScroll","onTabChange","index","overflow","optionLabel","auto","onUpload","onError","onErrorImage","accept","color","UserMaster","emailTemplate","emails","ReferenceID","sortIcon","UserName","FirstName","LastName","MobileNo","ConfirmPassword","wareHouseDDL","wareHouseFactoryDDL","onValueChange","GetUserExport","GetUsers","CreateUpdateUser","DeleteUser","wareHouse","Factory","Username","wareHouseObj","scrollable","headerStyle","activeTemplate","maxLength","appendTo","CartonMasterService","CartonMaster","CartonId","CartonName","CartonSize","Description","GetCartonExport","GetCarton","CreateCarton","CompanyMaster","CCode","CompanyName","CompanyDisplayName","Address","Mobile","City","Pincode","CompanyLogo","CreateCompany","selection","selectedProducts","onSelectionChange","minlength","maxlength","CountryService","cCode","sCode","DealerMaster","ship_City","ship_State","ship_Country","ship_Address1","ship_Address2","ship_Pincode","chkbx","bill_City","bill_State","bill_Country","bill_Address1","bill_Address2","bill_Pincode","GST","TIN","ship_citySelectItems","ship_stateSelectItems","ship_countrySelectItems","bill_citySelectItems","bill_stateSelectItems","bill_countrySelectItems","SameAsBilling","GetStates","GetCities","GetCountry","GetCountries","fieldName","allstate","CountryId","allcity","StateId","tbl","SetState","SetCity","test","CityId","ship_CityObj","bill_CityObj","ship_CountryObj","bill_CountryObj","ship_StateObj","bill_StateObj","overflowY","overflowX","fontWeight","paddingTop","ListMaster","confirmAlert","title","buttons","deleteUser","spellCheck","PriceMasterService","PriceData","PriceMaster","PriceId","Price","ProductDDL","GetPrice","GetProductDDL","GetProductsDDL","CreatePrice","Price3","DistributorMaster","SAPCustomerCode","MappingService","mappingData","mappingId","qr","DeMappingService","demap","DeMapping","refrenceFromNo","refrenceToNo","MappingId","FromNo","ToNo","editMapping","dummy","CreatedDt","MFGDate","BatchNo","Remark","GetMappings","CreateDemapping","ProductPic","deMapdata","fromNumber","toNumber","qty","ProductID","readOnly","UploaderFileService","Mapping","fileInput","React","createRef","edit","DaysLife","DDLMG1","DDLMG2","DDLMG3","DDLUOM","DDLPsize","oldEXPDate","errorHeading","MGId1","MGId2","MGId3","PUOM","Psize","Mrp","EXPDate","Products","errorAll","onSortFunction","myUploader","hideError","GetFromNo","errorDialog","t","fileExt","files","split","pop","FormData","fileToUpload","append","UploadMappingExcel","current","ErrorList","GetProductLife","CategoryIdMG1","PSize","exdate","setDate","isNaN","toLocaleDateString","a","CreateMapping","GetFromNumberMap","frmNumber","FrmNo","GetProductUOM","showIcon","DispatchService","checkItemDate","scanlist","cartonID","isTransit","wareHouseId","pdfMake","vfs","pdfFonts","PrintDispatchService","text","QRCode","toDataURL","dispatchData","date","genQR","company","doc","pageMargins","layout","pageSize","footer","currentPage","pageCount","stack","columns","alignment","bold","table","widths","image","italics","fit","colSpan","userDetail","bill_CityName","bill_StateName","bill_CountryName","TransportMode","LR","marginTop","getDispatchedData","getInfoBody","heights","styles","filledHeader","fillColor","createPdf","download","counts","cartonList","r","TotalQty","Count","Items","timeTable","values","childObj","Dispatch","TransportModeId","Mode","scanTxt","warehouseVisible","radio","isold","cartoonLoader","scanItemLoader","remarkVisible","olderstockVisible","eventBlock","UserDDL","SelectedDDL","WareHouseFactoryDDL","SendTo","scanItems","scanDisp","olderdata","IsOldProduct","submitRemark","ScanItem","GetDispatch","GetModeDDL","GetActiveUsers","getUserType","ModeDDL","ship_CountryName","ship_StateName","ship_CityName","scanned","needtoSaveDispatch","SaveDispatch","formD","Save","Printpdf","weekday","year","month","day","GetAllActiveUsers","dataRes","Dealer","setCartonDetails","GetTertiaryPackingScan","dateStyle","toLocaleString","y","checkseqNo","chk","olddata","e1","e2","TertiaryCartonId","arrayfilter","filteredWareHouse","getWareHouseId","fact","deleteScanned","header2","pointerEvents","onKeyDown","SecondaryPackingService","PrintSecondaryPackagingService","resp","jsPDF","orientation","unit","format","compressPdf","printLblPrntContent1","save","j","setFontType","setFont","setFontSize","qrdata","addImage","addPage","from","pre","bulkPrint","internal","getWidth","getHeight","initial","fileCount","floor","_tonumber","rowCount","padStart","CartonID","getNumberOfPages","deletePage","SecondaryPacking","autoref","reason","Tvisible","rvisible","productLoading","cartoonLoading","CartonDDL","submitFormFinal","GetSecondaryPacking","GetActiveCartonDDL","IsDisabledCartonDDL","cartonMasterId","focus","splitQr","fObj","UID","GetProductByQrScan","SeqNo","lists","TabView","autoFocus","TertiaryPackingService","flag","TertiaryPacking","remark","older","Loader1","Loader2","isSelected","preVal","GetTertiaryPacking","NumberIssuedService","issueData","issueId","NumberIssued","IssuedService","IssueQty","SalesOrderNo","handleChnage","GetIssueNumbers","CreateIssueNumber","GetFromNumbers","StockManagementService","stockData","StockManagement","StockId","sale","frst","totalRecord","GetStock","CreateStockManagement","issuedata","ProductDamageService","damageData","damageId","ProductDamage","tblResponseDamaged","damageProductLoader","productDamageLoader","Reason","sortOrderDamaged","loadingDamaged","firstDamaged","rowsDamaged","totalRecordsDamaged","globalFilterDamaged","emptyMessageDamaged","damaged","onPageDamaged","GetDamageExport","GetProductDamages","getLazyLoadingValues1","CreateDamage","Remarks","headerDamaged","searchFilter1","onSort1","StaticMapping","textInput0","textInput","scanPrePrinted","staticQr","prePrintedQr","GetStaticQrMapping","SaveStaticQrMapping","StaticEncryptedQr","PreprintedEncryptedQr","SaveMapping","ScanStaticItem","ScanAndSave","qrData","SrNo","Qrdata","CartonSlip","csv","Sgen","Tgen","fileType","createCSV","GetLastIds","GetIds","BulkData","UpdateIds","max","list","fileName","link","click","QrData","enclosingCharacter","RedemptionReportService","LoyaltyRedeemRequests","rowD","downloadLink","requestsData","acceptedData","getFactoryPrefix","GetLoyaltyRequests","GetAcceptedRequests","AcceptPointsRequest","acceptRequest","ProductConfigurationService","ProductConfiguration","Configuration","Value","ProductConfService","getConfigrationData","allcheck","singleCheck","IsParentCheck","objdata","ProdConfiguration","hasOwnProperty","parentCheckboxe","BtnType","UpdateProductConfigration","ProductsDDL","filterPlaceholder","filterBy","showClear","checkboxCol","MappingReportService","MappingReport","surveyLink","success","FilterData","GetMappingExport","GetMapping","startDate","endDate","GetMappingReport","exportFilename","VerificationReportService","VerificationReport","GetReportExport","GetVerification","GetVerificationExport","GetVerificationReport","FeedbackReportService","FeedbackReport","GetFeedbackExport","GetFeedback","GetFeedbackReport","SAPDataReportService","SAPDataReport","GetSAPDataExport","GetSAPDataReport","DispatchReportService","DispatchReport","GetReportExportDispatch","GetDispatchReport","GetDispatchToPrint","PrimaryPackingReport","SecondaryReportService","SecondaryPackingReport","GetSecondary","isExport","GetSecondaryReport","formPreview1","TertiaryReportService","TertiaryPackingReport","GetTertiary","GetTertiaryReport","ItemLedgerReportService","ItemLedger","ddid","GetReport","GetExport","SchemeReportService","SchemeReport","GetSchemeExport","GetScheme","GetSchemeReport","RedemptionReport","GetRedemptionExport","GetRedemption","GetRedemptionReport","MissingCartonRptService","MissingCartonReport","GetMissingCartonExport","GetMissingCartonReport","GetDispatchRecReport","PickLuckyUsers","stateDDL","stateID","GetstateDDL","GetMappedProductsDDLByType","GetReportFrac","ReturnReport","GetReturnReport","Profile","getUser","usr","UpdateProfile","SchemeService","SchemeData","minDate","SchemeMaster","SchemeId","SchemeName","Schemedescription","StartDate","EndDate","LoyaltyPoints","Utype","TypeName","GetSchemes","GetuserDDL","userDDL","getCurrentDate","parseFloat","CreateScheme","filterFunction","filterDate","SchemeConfiguration","myRef","LocRef","isEdit","DynamicDDL","SchemeType","DynamicId","SelectedDynamicId","viewmapping","selectedMapping","select","SchemeBeneficiary","ValidFrm","ValidTo","points","SchemeDDL","SchemeBeneficiaryDDL","LocationSelectAll","onSelect","onRemove","onSelectState","onRemoveState","getAllMappings","GetSchemesConfiguration","resetSelectedValues","DynamicIds","locationCodes","schemtyp","GetDynamicDDL","GetSchemeDataById","selectedValues","SchemeMapingId","tmp","selectedList","selectedItem","removedItem","note","updatednote","MappingSelector","maximizable","dataKey","responsiveLayout","selectionMode","hidePlaceholder","disable","displayValue","for","appendto","rowSpan","rowdata","ele","parentNode","textContent","Points","Category","headsMG1","headsMG2","headsMG3","exportDataMG1","exportDataMG2","exportDataMG3","MG3","NameMG1","MG1Id","IsActiveMG1","IsActiveMG2","IsActiveMG3","formErrorMG1","formErrorMG2","formErrorMG3","formHeadingMG1","buttonLabelMG1","buttonLabelMG2","buttonLabelMG3","salesMG1","salesMG2","salesMG3","firstMG1","firstMG2","firstMG3","rowsMG1","rowsMG2","rowsMG3","totalRecordsMG1","totalRecordsMG2","totalRecordsMG3","globalFilterMG1","globalFilterMG2","globalFilterMG3","actionTemplateMG2","actionTemplateMG3","submitFormMG1","submitFormMG2","submitFormMG3","hideFuncMG1","onPageMG2","searchFilterMG2","onPageMG3","searchFilterMG3","subgroup","subdivgroup","onSortMG2","onSortMG3","GetMG1Export","GetMG2Export","GetMG3Export","GetCategoriesMG1","GetCategoriesMG2","GetCategoriesMG3","getLazyLoadingValuesMG2","getLazyLoadingValuesMG3","error","CreateUpdateCategoryMG3","CreateUpdateCategoryMG2","CreateUpdateCategoryMG1","formHeadingMG2","formHeadingMG3","hideFuncMG2","hideFuncMG3","NumberGenerationService","f","NumberGeneration","GetGeneratedNumbers","CreateGeneratedNumber","downloadLinK","createElement","appendChild","removeChild","DispatchReceive","handleCheckboxChange","newArray","receive","DispatchId","dispatchLoader","scanLoader","selectedStatus","getrow","newrow","stateover","SubmitReceive","GetDispatchReceive","GetDispatchReceiveCarton","carton","getid","DispatchCartonReceive","subheader","getDispatchCarton","WareHouseMaster","Wcode","GetWareHouseExport","Get","WCode","padding","minLength","ItemWiseStockDetail","GetReportData","GetStockExport","wid","GetStockReport","GetMapProductsDDLBySelectionWU","maxDate","DamageRpt","GetDamageReport","DeMappingReportService","DeMappingReport","GetDemappingReport","damageCarton","DamageCid","CartonDamage","QrCodeReport","isDetail","journeyList","did","tid","qrs","sid","TIDproducts","iddata","expandedRows","iddata2","expandedRows2","rowExpansionTemplate","rowExpansionTemplate2","toggle","toggle2","uid","GetScanInfo","GetJourney","onRowToggle","expander","activity","itemLength","mystyle","ChangePassword","OldPassword","NewPassword","FactoryMaster","readOnlyPrefix","AdminNumberGenerated","Downlaod","DownloadNumber","sort","ReturnCarton","GetReturnInfo","ReplaceService","Replace","FistQrCode","Boolean","firstqr","brekQrCode","secondqr","Type","SecondQrCode","ReplaceQrCode","GetQrCodeDetails","DealerLoyaltyReportService","DealerLoyaltyReport","GetDealerLoyaltyExport","GetDealerLoyalty","GetDealerLoyaltyReport","ItemStockDetail","GetNewStockReport","visibility","SalePersonMaster","EmpId","Layout","CheckIsResetPassword","IsResetPassword","Logo","Avtar","exact","path","component","DispatchReceiveRpt","FractionalCartonRpt","DispatchLoyaltyReport","PAService","prductData","feedbackdata","userPoint","ProductAuthentication","UserPointTransactionService","formRedeemIsValid","Isloyalty","verifyProduct","verificationMode","verificationType","RedeemNumber","isLoading","Name","UsrId","Totalpoints","PaytmPoint","Location","email","MobNo","feedbackId","redeemError","ProductImage","redeemLoyalty","redeemhandleChange","parmUid","URLSearchParams","search","navigator","geolocation","getCurrentPosition","position","reverseGeoCode","coords","latitude","longitude","productAuthRequests","UsrCity","address","city","UsrState","UsrCntry","country","UsrAdrs","display_name","UsrZip","postcode","GetVerifyProduct","catch","productAuthReq","VerifyProduct","FeedbackId","play","showDialog","isFormFilled","CreateUserPointTransaction","request","erlist","toLowerCase","ExpireDate","DOM","alignItems","autoPlay","loadingPic","IsProductImage","sucessIcon","maxWidth","maxHeight","paddingLeft","CustomerCareTollfreeNo","CustomerCareNo","HomePage","data-toggle","data-target","data-holder-rendered","data-wow-offset","rel","data-wow-delay","App","authPage","urlParams","storeCollector","hostname","ReactDOM","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.4d47bbd7.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/dashboard.24527e82.png\";","module.exports = __webpack_public_path__ + \"static/media/garden-loader.d0a4e395.gif\";","module.exports = __webpack_public_path__ + \"static/media/avatar.81770f8e.jpg\";","module.exports = __webpack_public_path__ + \"static/media/loading.d0a4e395.gif\";","module.exports = __webpack_public_path__ + \"static/media/success.4915d3a3.png\";","module.exports = __webpack_public_path__ + \"static/media/logo2.4009049b.png\";","module.exports = __webpack_public_path__ + \"static/media/product-pic.84e237ad.png\";","import axios from 'axios';\r\n\r\nexport default class LoginService {\r\n ControllerName = 'Login';\r\n\r\n // create new user \r\n CheckUser(logindata) {\r\n return axios.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/CheckUser`, logindata).then(res => res)\r\n }\r\n\r\n // forgot password\r\n ForgotPassword(logindata) {\r\n return axios.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/ForgotPassword`, logindata).then(res => res)\r\n } \r\n}\r\n\r\n\r\n\r\n","import React, { Component } from 'react';\r\n// import { Growl } from 'primereact/growl';\r\nimport { Toast } from 'primereact/toast';\r\n\r\n// To show Message when call api\r\nexport class MessageComponent extends Component {\r\n constructor() {\r\n super();\r\n\r\n this.showSuccess = this.showSuccess.bind(this);\r\n this.showInfo = this.showInfo.bind(this);\r\n this.showWarn = this.showWarn.bind(this);\r\n this.showError = this.showError.bind(this);\r\n this.clear = this.clear.bind(this);\r\n }\r\n\r\n // Show Success\r\n showSuccess(msg) {\r\n // this.growl.show({ severity: 'success', detail: msg });\r\n this.toast.show({severity:'success', summary: 'Success Message', detail:msg, life: 3000});\r\n return true;\r\n }\r\n\r\n // Show Info\r\n showInfo(msg) {\r\n this.toast.show({severity:'info', summary: 'Info Message', detail:msg, life: 3000});\r\n // this.growl.show({ severity: 'info', detail: msg });\r\n }\r\n\r\n // Show Warn\r\n showWarn(msg) {\r\n this.toast.show({severity:'warn', summary: 'Warn Message', detail:msg, life: 3000});\r\n // this.growl.show({ severity: 'warn', detail: msg});\r\n }\r\n\r\n // Show Error\r\n showError(msg) {\r\n this.toast.show({severity:'error', summary: 'Error Message', detail:msg, life: 3000});\r\n // this.growl.show({ severity: 'error', detail: msg});\r\n }\r\n\r\n // Show Clear\r\n clear() {\r\n this.toast.clear();\r\n // this.growl.clear();\r\n }\r\n\r\n// html message\r\n render() {\r\n return (\r\n
\r\n
\r\n {/* this.growl = el} /> */}\r\n this.toast = el} />\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default MessageComponent","import React, { Component } from \"react\";\r\nimport logo from \"./../assets/images/logo.png\";\r\nimport \"bootstrap/dist/css/bootstrap.min.css\";\r\n//import { Growl } from 'primereact/growl';\r\nimport { Toast } from \"primereact/toast\";\r\n// import { ToastContainer, toast } from 'react-toastify';\r\n// import 'react-toastify/dist/ReactToastify.css';\r\n// import Toast from 'react-bootstrap/Toast';\r\nimport \"./../App.css\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport LoginService from \"../../src/services/LoginService\";\r\nimport MessageComponent from \"../template/Message\";\r\n\r\nexport default class Login extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.LoginService = new LoginService();\r\n this.state = {\r\n userName: null,\r\n password: null,\r\n loggedIn: false,\r\n formError: {\r\n userName: null,\r\n password: null,\r\n },\r\n visible: false,\r\n formForgotHeading: \"Forgot Password\",\r\n buttonLabel: \"Submit\",\r\n Email: \"\",\r\n forgotFormError: {\r\n Email: null,\r\n },\r\n };\r\n this.formHandle = this.formHandle.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n this.hideFunc = this.hideFunc.bind(this);\r\n this.handleForgotChange = this.handleForgotChange.bind(this);\r\n this.openDialog = this.openDialog.bind(this);\r\n this.submitForgotForm = this.submitForgotForm.bind(this);\r\n }\r\n //\r\n componentDidMount() {\r\n console.log(`${sessionStorage.getItem(\"userType\")} value of getitem`);\r\n // sessionStorage.getItem(\"refreshToken\")\r\n // sessionStorage.getItem(\"token\")\r\n // sessionStorage.getItem(\"userType\")\r\n // sessionStorage.getItem(\"wareHouseId\")\r\n // sessionStorage.getItem(\"isAdmin\")\r\n // sessionStorage.getItem(\"CompanyId\")\r\n // sessionStorage.getItem(\"Prefix\")\r\n // window.location = '/dashboard'\r\n }\r\n // handle form input\r\n formHandle(event) {\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"userName\":\r\n if (value == null || value.length < 1) {\r\n errors.userName = \"Please enter your email-id.\";\r\n } else if (value.length >= 1) {\r\n if (!value.match(/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/)) {\r\n errors.userName = \"Please enter valid email-id.\";\r\n } else errors.userName = null;\r\n } else errors.userName = null;\r\n break;\r\n case \"password\":\r\n errors.password = value.length < 1 ? \"Please enter password\" : null;\r\n break;\r\n default:\r\n break;\r\n }\r\n this.setState({ errors, [name]: value });\r\n }\r\n\r\n // submit form\r\n submitForm(event) {\r\n event.preventDefault();\r\n const formdata = {\r\n Email: this.state.userName,\r\n Password: this.state.password,\r\n };\r\n this.LoginService.CheckUser(formdata).then((data) => {\r\n const resdata = data.data;\r\n //if ResponseData not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n sessionStorage.setItem(\"LoggedInUser\", JSON.stringify({ login: true }));\r\n sessionStorage.setItem(\r\n \"refreshToken\",\r\n resdata.ResponseData[0].RefreshToken\r\n );\r\n sessionStorage.setItem(\"token\", resdata.ResponseData[0].Token);\r\n sessionStorage.setItem(\"userType\", resdata.ResponseData[0].UserType);\r\n sessionStorage.setItem(\r\n \"wareHouseId\",\r\n resdata.ResponseData[0].WareHouseId\r\n );\r\n sessionStorage.setItem(\r\n \"isAdmin\",\r\n (resdata.ResponseData[0].UserId == 1) |\r\n (resdata.ResponseData[0].UserId == 2)\r\n ? true\r\n : false\r\n );\r\n sessionStorage.setItem(\"CompanyId\", resdata.ResponseData[0].CompanyId);\r\n sessionStorage.setItem(\"Prefix\", resdata.ResponseData[0].Prefix);\r\n window.location = \"/dashboard\";\r\n } else {\r\n this.setState({\r\n loggedIn: false,\r\n });\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }\r\n\r\n // reset form\r\n formForgotReset() {\r\n this.setState({ Email: null });\r\n let errors = this.state.forgotFormError;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = \"\";\r\n });\r\n }\r\n\r\n //open dialog\r\n openDialog() {\r\n this.setState({ visible: true });\r\n this.formForgotReset();\r\n }\r\n\r\n hideFunc() {\r\n this.setState({\r\n visible: false,\r\n buttonLabel: \"Submit\",\r\n });\r\n this.formForgotReset();\r\n }\r\n\r\n // submit forgot\r\n submitForgotForm(event) {\r\n event.preventDefault();\r\n\r\n let isfrmvalid = true;\r\n let checkerror = this.state.forgotFormError;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key];\r\n let valid = this.validateForgotForm(val, key);\r\n //form not valid\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n //form valid\r\n if (isfrmvalid) {\r\n const formData = {\r\n Email: this.state.Email,\r\n };\r\n\r\n setTimeout(() => {\r\n this.LoginService.ForgotPassword(formData).then((data) => {\r\n const resdata = data.data;\r\n //if ResponseCode is 200 success else error or warning message\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n this.setState({\r\n loading: true,\r\n visible: false,\r\n });\r\n this.formForgotReset();\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }, 3000);\r\n }\r\n }\r\n\r\n handleForgotChange(event) {\r\n const { name, value } = event.target;\r\n let errors = this.state.forgotFormError;\r\n\r\n const isValid = this.validateForgotForm(value, name);\r\n this.setState({ errors, [name]: value });\r\n }\r\n\r\n // validate forgot form data\r\n validateForgotForm(value, name) {\r\n let errors = this.state.forgotFormError;\r\n let IsValid = true;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"Email\":\r\n if (value == null || value.length < 1) {\r\n IsValid = false;\r\n errors.Email = \"Please enter your email-id.\";\r\n } else if (value.length >= 1) {\r\n if (!value.match(/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/)) {\r\n IsValid = false;\r\n errors.Email = \"Please enter valid email-id.\";\r\n } else errors.Email = \"\";\r\n } else errors.Email = \"\";\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return IsValid;\r\n }\r\n\r\n // render HTML\r\n render() {\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 {this.state.forgotFormError.Email !== null ? (\r\n
\r\n {this.state.forgotFormError.Email}\r\n
\r\n ) : null}\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {/* this.toast = el} /> */}\r\n {/* this.growl = el} /> */}\r\n
\r\n
\r\n
\r\n
\r\n Welcome Back !\r\n

Sign in to continue to MSRM Organics Private Limited.

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {this.state.formError.userName != null ? (\r\n
{this.state.formError.userName}
\r\n ) : null}\r\n
\r\n
\r\n \r\n \r\n {this.state.formError.password != null ? (\r\n
{this.state.formError.password}
\r\n ) : null}\r\n
\r\n
\r\n
\r\n Remember me\r\n
\r\n this.setState({ visible: true })}\r\n >\r\n Forgot your password?\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n {/* */}\r\n {/* Term and Condition */}\r\n \r\n
\r\n
\r\n \r\n \r\n );\r\n }\r\n}\r\n","const axios = require(\"axios\");\r\n\r\n// Create an instance using the config defaults provided by the library\r\n// At this point the timeout config value is `0` as is the default for the library\r\nconst instance = axios.create();\r\n// Override timeout default for the library\r\n// Now all requests using this instance will wait 2.5 seconds before timing out\r\n//instance.defaults.timeout = 2500;\r\n\r\n// Alter defaults after instance has been created\r\nconst token = sessionStorage.getItem(\"token\");\r\nconst Curenturl = window.location.pathname;\r\nconst nNumber = Curenturl.lastIndexOf(\"/\");\r\nconst pageName = Curenturl.substring(nNumber + 1);\r\ninstance.defaults.headers.common[\"page\"] = pageName;\r\nif (token) {\r\n instance.defaults.headers.common[\"Authorization\"] = `bearer ${token}`;\r\n} else {\r\n \r\n const curl = window.location.pathname;\r\n if (\r\n !curl.includes(\"/\") &&\r\n !curl.includes(\"/login\") &&\r\n !curl.includes(\"/P\") &&\r\n !curl.includes(\"/privacy-policy\")\r\n ) {\r\n window.location = \"/login\";\r\n }\r\n}\r\n\r\ninstance.interceptors.response.use(\r\n (res) => {\r\n return res;\r\n },\r\n (err) => {\r\n const originalReq = err.config;\r\n const curl = window.location.pathname;\r\n if (\r\n err.response !== undefined &&\r\n err.response.status === 418 &&\r\n !curl.includes(\"/\") &&\r\n !curl.includes(\"/login\") &&\r\n !curl.includes(\"/P\") &&\r\n !curl.includes(\"/privacy-policy\")\r\n ) {\r\n // sessionStorage.removeItem(\"LoggedInUser\");\r\n // sessionStorage.removeItem(\"refreshToken\");\r\n // sessionStorage.removeItem(\"token\");\r\n //window.location = '/login'\r\n\r\n const obj = {\r\n ResponseMessage:\r\n \"User unauthorized, Please Login again or contact admin.\",\r\n ResponseCode: err.response.status,\r\n };\r\n const retudata = {\r\n data: obj,\r\n };\r\n return retudata;\r\n } else if (\r\n err.response !== undefined &&\r\n err.response.status === 401 &&\r\n !curl.includes(\"/\") &&\r\n !curl.includes(\"/login\") &&\r\n !curl.includes(\"/P\") &&\r\n !curl.includes(\"/privacy-policy\")\r\n ) {\r\n if (err.response.status === 401) {\r\n const token = sessionStorage.getItem(\"token\");\r\n const refreshToken = sessionStorage.getItem(\"refreshToken\");\r\n\r\n const data = {\r\n Token: sessionStorage.getItem(\"token\"),\r\n Refresh_Token: sessionStorage.getItem(\"refreshToken\"),\r\n };\r\n\r\n sessionStorage.removeItem(\"LoggedInUser\");\r\n sessionStorage.removeItem(\"refreshToken\");\r\n sessionStorage.removeItem(\"token\");\r\n sessionStorage.removeItem(\"assignedPermissionsForUser\");\r\n sessionStorage.removeItem(\"UserData\");\r\n window.location = '/login'\r\n\r\n // axios.post(`${process.env.REACT_APP_API_URL}Login/Refresh`, data).then(\r\n // (response) => {\r\n // const resdata = response.data;\r\n // if (\r\n // resdata !== null &&\r\n // resdata.ResponseCode === \"200\" &&\r\n // resdata.ResponseData !== null &&\r\n // resdata.ResponseData.RefreshToken\r\n // ) {\r\n // sessionStorage.setItem(\r\n // \"refreshToken\",\r\n // resdata.ResponseData.RefreshToken\r\n // );\r\n // sessionStorage.setItem(\"token\", resdata.ResponseData.Token);\r\n\r\n // instance.defaults.headers.common[\r\n // \"Authorization\"\r\n // ] = `bearer ${sessionStorage.getItem(\"token\")}`;\r\n // return axios(originalReq);\r\n // } else {\r\n // // sessionStorage.removeItem(\"LoggedInUser\");\r\n // // sessionStorage.removeItem(\"refreshToken\");\r\n // // sessionStorage.removeItem(\"token\");\r\n // // sessionStorage.removeItem(\"assignedPermissionsForUser\");\r\n // // sessionStorage.removeItem(\"UserData\");\r\n // // window.location = '/login'\r\n // }\r\n // },\r\n // (error) => {\r\n // ////console.log(error);\r\n // }\r\n // );\r\n }\r\n\r\n // const obj = {\r\n // ResponseCode: err.response.status\r\n // }\r\n // const retudata = {\r\n // data: obj\r\n // }\r\n // return retudata;\r\n } else if (err.name === \"Error\") {\r\n // sessionStorage.removeItem(\"LoggedInUser\");\r\n // sessionStorage.removeItem(\"refreshToken\");\r\n // sessionStorage.removeItem(\"token\");\r\n\r\n const obj = {\r\n ResponseMessage: err.response.statusText,\r\n ResponseCode: err.response.status,\r\n };\r\n const retudata = {\r\n data: obj,\r\n };\r\n return retudata;\r\n }\r\n return err;\r\n }\r\n);\r\n// Override timeout for this request as it's known to take a long time\r\n// instance.get('/longRequest', {\r\n// timeout: 5000\r\n// });\r\n\r\nexport default instance;\r\n","import React, { Component } from 'react';\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\n \r\n\r\nexport default class TnC extends Component {\r\n constructor(props) {\r\n super(props);\r\n \r\n this.state = {\r\n \r\n formError: {\r\n \r\n },\r\n \r\n }\r\n \r\n }\r\n \r\n// render HTML\r\n render() {\r\n \r\n \r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Terms and Conditions\r\n \r\n \r\n \r\n\r\n

Mobile App Terms and Conditions

\r\n

1. GENERAL

\r\n
    \r\n
  1. \r\n By installing the Application (as defined below), you agree to be bound by these terms of use. Please review them carefully before installation and/or acceptance. \r\n
  2. \r\n
\r\n \r\n

2. DEFINITIONS

\r\n \r\n

\r\n The “Application” shall mean the software provided by krishi Rasayan Exports Pvt Ltd to offer services on Apple iOS and Android OS devices and any upgrades from time to time and any other software or documentation which enables the use of the Application.\r\n

\r\n

3. DATA PROTECTION

\r\n \r\n

\r\n Any personal information you supply to krishi Rasayan Exports Pvt Ltd when using the Application will be used by krishi Rasayan Exports Pvt Ltd in accordance with its Privacy Policy.\r\n

\r\n \r\n

4. krepl.in

\r\n \r\n

\r\n The Application allows you to access certain functionality available on the krepl.in website. Such access will be governed by the krishi Rasayan Exports Pvt Ltd Standard Website Terms & Conditions.\r\n

\r\n \r\n

5. PROPRIETARY RIGHTS AND LICENCE

\r\n
    \r\n
  1. \r\n All trade marks, copyright, database rights and other intellectual property rights of any nature in the Application together with the underlying software code are owned either directly by krishi Rasayan Exports Pvt Ltd or by krishi Rasayan Exports Pvt Ltd's licensors.\r\n
  2. \r\n
  3. \r\n . krishi Rasayan Exports Pvt Ltd hereby grants you a worldwide, non-exclusive, royalty-free revocable licence to use the Application for your personal use in accordance with these appterms.\r\n
  4. \r\n
\r\n \r\n \r\n

6. CONDITIONS OF USE

\r\n
    \r\n
  1. \r\n You will not, nor allow third parties on your behalf to \r\n
      \r\n
    1. \r\n make and distribute copies of the Application\r\n
    2. \r\n
    3. \r\n attempt to copy, reproduce, alter, modify, reverse engineer, disassemble, decompile, transfer, exchange or translate the Application; or\r\n
    4. \r\n
    5. \r\n create derivative works of the Application of any kind whatsoever.\r\n
    6. \r\n
    \r\n \r\n \r\n \r\n
  2. \r\n
  3. \r\n The Application is currently made available to you free of charge for your personal, non-commercial use. krishi Rasayan Exports Pvt Ltd reserves the right to amend or withdraw the Application,in accordance with these appterms, at any time and for any reason.\r\n
  4. \r\n
  5. \r\n You acknowledge that the terms of agreement with your respective mobile network provider (‘Mobile Provider’) will continue to apply when using the Application. As a result, you may be charged by the Mobile Provider for access to network connection services for the duration of the connection while accessing the Application or any such third party charges as may arise. You accept responsibility for any such charges that arise.\r\n
  6. \r\n
  7. \r\n If you are not the bill payer for the mobile telephone or handheld device being used to access the Application, you will be assumed to have received permission from the bill payer for using the Application.\r\n
  8. \r\n
\r\n \r\n \r\n

7. AVAILABILITY

\r\n
    \r\n
  1. \r\n This Application is available to handheld mobile devices running Apple iOS and Android OS Operating Systems. krishi Rasayan Exports Pvt Ltd will use reasonable efforts to make the Application available at all times. However you acknowledge the Application is provided over the internet and mobile networks and so the quality and availability of the Application may be affected by factors outside krishi Rasayan Exports Pvt Ltd's reasonable control.\r\n
  2. \r\n
  3. \r\n krishi Rasayan Exports Pvt Ltd, its group of companies and sub-contractors do not accept any responsibility whatsoever for unavailability of the Application, or any difficulty or inability to download or access content or any other communication system failure which may result in the Application being unavailable.\r\n
  4. \r\n
  5. \r\n krishi Rasayan Exports Pvt Ltd will not be responsible for any support or maintenance for the Application.\r\n
  6. \r\n \r\n
\r\n \r\n

8. SYSTEM REQUIREMENTS

\r\n
    \r\n
  1. \r\n In order to use the Application, you are required to have a compatible mobile telephone or handheld device, internet access, and the necessary minimum specifications ('Software Requirements').\r\n
  2. \r\n
  3. \r\n The Software Requirements are as follows: Apple iOS devices running iOS 4 or iOS 5, and Android OS devices running Android OS 2.1 up to OS 2.3; Language: English, Italian, German, Spanish, French.\r\n
  4. \r\n
  5. \r\n The version of the Application software may be upgraded from time to time to add support for new functions and services.\r\n
  6. \r\n \r\n
\r\n

9. TERMINATION

\r\n
    \r\n
  1. \r\n krishi Rasayan Exports Pvt Ltd may terminate use of the Application at any time by giving notice of termination to you.\r\n
  2. \r\n
  3. \r\n Upon any termination,\r\n
      \r\n
    1. \r\n the rights and licenses granted to you herein shall terminate;\r\n
    2. \r\n
    3. \r\n you must cease all use of the Software; \r\n
    4. \r\n \r\n
    \r\n \r\n \r\n \r\n
  4. \r\n \r\n \r\n
\r\n

10. LIMITATION OF LIABILITY

\r\n
    \r\n
  1. \r\n In no event will krishi Rasayan Exports Pvt Ltd be liable for any direct, indirect, special, punitive, exemplary or consequential losses or damages of whatsoever kind arising out of your use or access to the Application, including loss of profit or the like whether or not in the contemplation of the parties, whether based on breach of contract, tort (including negligence), product liability or otherwise.\r\n
  2. \r\n
  3. \r\n krishi Rasayan Exports Pvt Ltd is not liable to you for any damage or alteration to your equipment including but not limited to computer equipment, handheld device or mobile telephones as a result of the installation or use of the Application.\r\n
  4. \r\n
  5. \r\n Nothing in these Appterms shall exclude or limit krishi Rasayan Exports Pvt Ltd's liability for death or personal injury caused by negligence or for fraud or fraudulent misrepresentation or any other liability which cannot be excluded or limited under applicable law.\r\n
  6. \r\n \r\n
\r\n

11. DISCLAIMER OF WARRANTIES

\r\n \r\n

\r\n To the maximum extent permitted by law, and for the avoidance of doubt, save for section 2 of the Supply of Goods and Services Act 1982, krishi Rasayan Exports Pvt Ltd hereby disclaims all implied warranties with regard to the Application. The Application and software are provided \"as is\" and \"as available\" without warranty of any kind.\r\n

\r\n \r\n \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 'bootstrap/dist/css/bootstrap.min.css';\r\n\r\n\r\nexport default class PrivacyPolicy extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n formError: {\r\n\r\n },\r\n\r\n }\r\n\r\n }\r\n\r\n // render HTML\r\n render() {\r\n\r\n\r\n return (\r\n\r\n \r\n \r\n \r\n\r\n Privacy Policy\r\n \r\n\r\n \r\n\r\n

Privacy Policy

\r\n \r\n \r\n\r\n\r\n )\r\n }\r\n}\r\n","import instance from './DefaultApi';\r\n\r\nexport default class UserService {\r\n ControllerName = 'User';\r\n\r\n // get all user data\r\n GetUsers(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetUsers`, tableRequest).then(res => res);\r\n }\r\n // create new user \r\n CreateUpdateUser(Payload) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/CreateUpdateUser`, Payload).then(res => res);\r\n }\r\n // updat user password\r\n ChangePassword(Payload) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/ChangePassword`, Payload).then(res => res);\r\n }\r\n // delete user data\r\n DeleteUser(referenceID) {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/DeleteUser/${referenceID}`).then(res => res);\r\n }\r\n // get menu according user\r\n getUserMenu() {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetUserMenu`).then(res => res);\r\n }\r\n // user list for ddl\r\n GetUsersDDL() {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetUsersDDL`).then(res => res);\r\n }\r\n\r\n // user list for ddl\r\n GetAllActiveUsers() {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetAllActiveUsers`).then(res => res);\r\n }\r\n\r\n // get user data by id\r\n getUser() {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/getUser`).then(res => res);\r\n }\r\n // updat profile\r\n UpdateProfile(Payload) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/UpdateProfile`, Payload).then(res => res);\r\n }\r\n\r\n}","import React, { Component } from \"react\";\r\nimport { PanelMenu } from \"primereact/panelmenu\";\r\nimport UserService from \"../services/UserService\";\r\nimport MultilevelSidebar from \"react-multilevel-sidebar\";\r\nimport { Menubar } from \"primereact/menubar\";\r\n\r\nimport \"react-multilevel-sidebar/src/Sidebar.css\";\r\n\r\nlet options = [];\r\n\r\n// Side bar creation\r\nexport class Sidebar extends Component {\r\n constructor() {\r\n super();\r\n\r\n this.UserService = new UserService();\r\n this.state = {\r\n isOpen: true,\r\n isPersist: false,\r\n menuItems: [],\r\n demoMenu: [\r\n {\r\n label: \"Dashboard\",\r\n icon: \"pi pi-fw pi-home\",\r\n url: \"/Dashboard\",\r\n },\r\n {\r\n label: \"Masters\",\r\n icon: \"pi pi-fw pi-user\",\r\n items: [\r\n {\r\n label: \"User Master\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/masters/user-master\",\r\n },\r\n {\r\n label: \"Factory Master\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/masters/factory-master\",\r\n },\r\n {\r\n label: \"Category Master\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/masters/category\",\r\n },\r\n {\r\n label: \"company Master\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/masters/company-master\",\r\n },\r\n {\r\n label: \"Product Master\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/masters/product-master/\",\r\n },\r\n {\r\n label: \"Scheme Master\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/masters/scheme-master/\",\r\n },\r\n {\r\n label: \"Retailer Master\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/masters/dealer-master/\",\r\n },\r\n {\r\n label: \"Dealer Master\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/masters/distributor-master/\",\r\n },\r\n {\r\n label: \"List Master\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/masters/list-master/\",\r\n },\r\n {\r\n label: \"Carton Master\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/masters/carton-master/\",\r\n },\r\n {\r\n label: \"Warehouse Master\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/masters/warehouse-master/\",\r\n },\r\n {\r\n label: \"Role Management\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/masters/access-right/\",\r\n },\r\n ],\r\n },\r\n {\r\n label: \"Transactions\",\r\n icon: \"pi pi-fw pi-pencil\",\r\n items: [\r\n {\r\n label: \"Mapping\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/transaction/mapping/\",\r\n },\r\n {\r\n label: \"Number Generation \",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/transaction/number-generation/\",\r\n },\r\n {\r\n label: \"Number Issued\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/transaction/number-issued/\",\r\n },\r\n {\r\n label: \"De Mapping\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/transaction/de-mapping/\",\r\n },\r\n {\r\n label: \"Static Number Mapping\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/transaction/map-static-number/\",\r\n },\r\n {\r\n label: \"Secondary Packing\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/transaction/secondary-packing/\",\r\n },\r\n {\r\n label: \"Scheme Configuration \",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/transaction/scheme-configuration/\",\r\n },\r\n {\r\n label: \"Stock Management\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/transaction/stock-management/\",\r\n },\r\n {\r\n label: \"Number Download\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/transaction/admin-number-download/\",\r\n },\r\n {\r\n label: \"Dispatch\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/transaction/dispatch/\",\r\n },\r\n {\r\n label: \"Dispatch Receive\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/transaction/dispatch-receive/\",\r\n },\r\n {\r\n label: \"Product Damage\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/transaction/product-damage/\",\r\n },\r\n {\r\n label: \"Tertiary Packing\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/transaction/tertiary-packing/\",\r\n },\r\n ],\r\n },\r\n {\r\n label: \"Reports\",\r\n icon: \"pi pi-fw pi-file\",\r\n items: [\r\n {\r\n label: \"Dispatch Report\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/reports/dispatch-report/\",\r\n },\r\n {\r\n label: \"QR Tracking Report\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/reports/qr-code-tracking-report/\",\r\n },\r\n {\r\n label: \"Secondary Packing Report\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/reports/secondary-packing-report/\",\r\n },\r\n {\r\n label: \"Feedback Report\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/reports/feedback-report/\",\r\n },\r\n {\r\n label: \"Mapping Report\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/reports/mapping-report/\",\r\n },\r\n {\r\n label: \"Missing Carton Report\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/reports/missing-carton-report/\",\r\n },\r\n {\r\n label: \"Stock Report\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/reports/stock-report/\",\r\n },\r\n {\r\n label: \"New Stock Report\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/reports/new-Stock/\",\r\n },\r\n {\r\n label: \"Loyalty Points Report\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/reports/redemption-report/\",\r\n },\r\n {\r\n label: \"Item Ledger\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/reports/item-ledger/\",\r\n },\r\n {\r\n label: \"Scheme Report\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/reports/scheme-report/\",\r\n },\r\n {\r\n label: \"Tertiary Packing Report\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/reports/tertiary-packing-report/\",\r\n },\r\n {\r\n label: \"Secondary Packing Report\",\r\n icon: \"pi pi-fw pi-angle-right\",\r\n url: \"/reports/secondary-packing-report/\",\r\n },\r\n ],\r\n },\r\n ],\r\n };\r\n }\r\n //to handle sidebar toggle\r\n handleSidebarToggle = (isOpen) => {\r\n this.setState({ isOpen });\r\n };\r\n //trigger api function on page call\r\n componentDidMount() {\r\n this.getMenu();\r\n }\r\n\r\n // get Menu by User\r\n getMenu() {\r\n this.UserService.getUserMenu().then((data) => {\r\n let childcheck = [];\r\n //if ResponseCode is 200\r\n if (data.data.ResponseCode === \"200\") {\r\n const arraydata = data.data.ResponseData;\r\n let arryFinal = [];\r\n //if arraydata not null\r\n if (arraydata != null)\r\n // console.log(\"Server Res\");\r\n // console.log(arraydata);\r\n arraydata.forEach((element) => {\r\n let contents = {};\r\n let obj = {};\r\n element.content.forEach((econ) => {\r\n obj.label = econ.name;\r\n obj.icon = econ.icon;\r\n obj.url = econ.to;\r\n\r\n if (econ.children != null && econ.children.length > 0) {\r\n let chlddata = [];\r\n\r\n econ.children.forEach((econchld) => {\r\n let ob = {};\r\n\r\n econchld.content.forEach((element) => {\r\n ob.label = element.name;\r\n ob.url = element.to;\r\n childcheck.push(element.to);\r\n });\r\n\r\n chlddata.push(ob);\r\n });\r\n\r\n obj.items = chlddata;\r\n }\r\n contents = obj;\r\n });\r\n\r\n arryFinal.push(contents);\r\n\r\n // console.log(element.content)\r\n });\r\n console.log(arryFinal);\r\n this.setState({\r\n menuItems: arryFinal,\r\n });\r\n ;\r\n //if window.location.pathname not valid\r\n if (\r\n childcheck.find((x) => x === window.location.pathname) ===\r\n undefined &&\r\n window.location.pathname != \"/dashboard\" &&\r\n window.location.pathname != \"/profile\" &&\r\n window.location.pathname != \"/change-password\"\r\n ) {\r\n sessionStorage.removeItem(\"LoggedInUser\");\r\n sessionStorage.removeItem(\"refreshToken\");\r\n sessionStorage.removeItem(\"token\");\r\n sessionStorage.removeItem(\"userType\");\r\n sessionStorage.removeItem(\"wareHouseId\");\r\n window.location = \"/login\";\r\n }\r\n } else {\r\n sessionStorage.removeItem(\"LoggedInUser\");\r\n sessionStorage.removeItem(\"refreshToken\");\r\n sessionStorage.removeItem(\"token\");\r\n sessionStorage.removeItem(\"userType\");\r\n sessionStorage.removeItem(\"wareHouseId\");\r\n\r\n window.location = \"/login\";\r\n }\r\n });\r\n }\r\n\r\n stripUndefined(arr) {\r\n return arr.reduce(function (result, item) {\r\n result.push(\r\n Array.isArray(item) && !item.length ? this.stripUndefined(item) : item\r\n );\r\n return result;\r\n }, []);\r\n }\r\n\r\n // Return HTML of Side bar\r\n\r\n render() {\r\n const menuItems = this.state.menuItems;\r\n //console.log(this.state.demoMenu);\r\n\r\n // const sidebarMenu = menuItems.map((items, key) => {\r\n // const subMenu = items.items;\r\n //
  • {items.label}\r\n // {/* {subMenu.map((subItem, key) =>
  • \r\n // {subMenu.label}\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 }\r\n}\r\n\r\nexport default Sidebar;\r\n","import React from \"react\";\r\nimport \"./../App.css\";\r\n\r\n//Return Footer HTML\r\nconst Footer = () => {\r\n return (\r\n
    \r\n
    \r\n Copyright © 2023 MSRM Organics Private Limited - All Rights Reserved.\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Footer;\r\n","import instance from './DefaultApi';\r\n\r\nexport default class DashboardService {\r\n ControllerName = 'Dashboard';\r\n\r\n // get dashboard data\r\n GetDashboardData(data) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetDashboardData`, data).then(res => res)\r\n }\r\n}","import instance from './DefaultApi';\r\n\r\nexport default class WareHouseMaterService {\r\n ControllerName = 'WareHouser';\r\n\r\n // get all user data\r\n Get(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/Get`, tableRequest).then(res => res);\r\n }\r\n // create new user \r\n Save(Payload) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/Save`, Payload).then(res => res);\r\n }\r\n \r\n //get all warehouse for ddl\r\n GetWareHouseDDL(CompId) {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetWareHouseDDL?CompId=` + CompId).then(res => res);\r\n }\r\n}","import axios from 'axios';\r\n\r\nexport default class ApiService {\r\n\r\n //Get Api call\r\n getApi(endPoint) {\r\n return axios.get(`${process.env.REACT_APP_API_URL}${endPoint}`).then(res => res)\r\n }\r\n\r\n //post api call\r\n postApi(endPoint, Payload) {\r\n return axios.post(`${process.env.REACT_APP_API_URL}${endPoint}`, Payload).then(res => res)\r\n }\r\n\r\n // get Geo Location\r\n reverseGeoCode(lat, long) {\r\n // tslint:disable-next-line:max-line-length\r\n return axios.get(`https://nominatim.openstreetmap.org/reverse?format=json&lat=${lat}&lon=${long}&zoom=18&addressdetails=1`).then(res => res)\r\n }\r\n\r\n //get user type\r\n getUserType() {\r\n return sessionStorage.getItem(\"userType\")\r\n }\r\n\r\n //get wareHouseId\r\n getWareHouseId() {\r\n return sessionStorage.getItem(\"wareHouseId\")\r\n }\r\n\r\n //get CompanyId\r\n getCompanyId() {\r\n return sessionStorage.getItem(\"CompanyId\")\r\n }\r\n\r\n //get isAdmin\r\n getIsAdmin() {\r\n return sessionStorage.getItem(\"isAdmin\")\r\n }\r\n\r\n //get wareHouseId\r\n getFactoryPrefix() {\r\n return sessionStorage.getItem(\"Prefix\")\r\n }\r\n\r\n}","import React, { Component } from 'react'\r\nimport Loader from \"react-loader\";\r\n// import Loader from \"react-loader-spinner\";\r\nimport loaderPic from './../assets/images/garden-loader.gif';\r\nexport default class Loaders extends Component {\r\n \r\n render() {\r\n return (\r\n <>\r\n {this.props.loader? null :
    }\r\n {/* */}\r\n \r\n )\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { Chart } from \"primereact/chart\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport DashboardService from \"../services/DashboardService\";\r\nimport WareHouseMaterService from \"../services/WareHouseMaterService\";\r\nimport ApiService from \"../services/apiService\";\r\nimport dashboradimg from \"./../assets/images/dashboard.png\";\r\nimport Loaders from \"./../template/Loaders\";\r\nimport { Chart as GoogleChart } from \"react-google-charts\";\r\nimport \"./Dashboard.css\";\r\n\r\nexport default class Dashboard extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n Dashdata: false,\r\n TotalMapping: 0,\r\n TotalDeMapping: 0,\r\n TotalDamage: 0,\r\n TotalGenerate: 0,\r\n TotalPacked: 0,\r\n TotalDispatched: 0,\r\n TotalCartonsPacked: 0,\r\n TotalCartonsDispatched: 0,\r\n TotalReceived: 0,\r\n TotalCartonsReceived: 0,\r\n updateLoader: false,\r\n TotalGenerated: 0,\r\n Months: [],\r\n selval: \"Loading\",\r\n DeMappings: [],\r\n Mappings: [],\r\n dropDownValue: \"\",\r\n NumberIssue: [],\r\n Damage: [],\r\n largestNumber: 0,\r\n factoryDDL: [],\r\n isAdmin: false,\r\n isPreprintedValue: \"Static Qr Mapping\",\r\n isPreprinted: false,\r\n options: {\r\n pieSliceText: \"none\",\r\n plugins: {\r\n labels: {\r\n render: () => {},\r\n },\r\n },\r\n },\r\n };\r\n this.WareHouseMaterService = new WareHouseMaterService();\r\n this.DashboardService = new DashboardService();\r\n this.ApiService = new ApiService();\r\n this.setPreprintedValue = this.setPreprintedValue.bind(this);\r\n }\r\n //trigger api function on page call\r\n\r\n componentDidMount() {\r\n const val = sessionStorage.getItem(\"userType\");\r\n this.setState({\r\n UserType: val,\r\n });\r\n if (val == 2 || val == 1) {\r\n this.setState({\r\n Dashdata: true,\r\n });\r\n } else {\r\n setTimeout(() => {\r\n if (sessionStorage.getItem(\"userType\") == 0) {\r\n this.setState({\r\n isAdmin: true,\r\n });\r\n }\r\n this.GetAllFactory(0);\r\n this.GetDashboardData(\"\", false);\r\n }, 200);\r\n setTimeout(() => {\r\n if (this.state.isAdmin) {\r\n this.GetDashboardData(this.state.factoryDDL[0]?.ID, false);\r\n\r\n this.setState({\r\n selval: this.state.factoryDDL[0]?.FirmName,\r\n });\r\n }\r\n }, 2000);\r\n }\r\n }\r\n\r\n handleChange(e) {\r\n const Id = e.target.value;\r\n this.setState({\r\n dropDownValue: e.target.value,\r\n });\r\n debugger;\r\n let IsFactory = this.state.factoryDDL.filter((x) => x.ID == Id)[0]\r\n .IsFactory;\r\n if (IsFactory) {\r\n this.setState({ UserType: 4 });\r\n } else {\r\n this.setState({ UserType: 5 });\r\n }\r\n this.GetDashboardData(Id, false);\r\n }\r\n // Get Dashboard Data\r\n GetDashboardData(Id, isPreprinted) {\r\n const formdata = { Id: Id, isPreprinted: isPreprinted };\r\n this.DashboardService.GetDashboardData(formdata).then((data) => {\r\n const resdata = data.data;\r\n //if ResponseCode is 200\r\n if (resdata.ResponseCode === \"200\") {\r\n this.setState({ updateLoader: true });\r\n const res = resdata.ResponseData;\r\n const DashboardCount = res.DashboardCount;\r\n const MonthName = res.MonthName;\r\n const DeMappingList = res.DeMappingList;\r\n const MappingList = res.MappingList;\r\n const NumberList = res.NumberList;\r\n const DamageNumberList = res.DamageList;\r\n //DashboardCount not null\r\n if (DashboardCount != null) {\r\n this.setState({\r\n TotalMapping: DashboardCount.TotalMapping,\r\n TotalDeMapping: DashboardCount.TotalDeMapping,\r\n TotalDamage: DashboardCount.TotalDamage,\r\n TotalGenerated: DashboardCount.TotalGenerate,\r\n TotalPacked: DashboardCount.TotalPacked,\r\n TotalDispatched: DashboardCount.TotalDispatched,\r\n TotalCartonsPacked: DashboardCount.TotalCartonsPacked,\r\n TotalCartonsDispatched: DashboardCount.TotalCartonsDispatched,\r\n TotalReceived: DashboardCount.TotalReceived,\r\n TotalCartonsReceived: DashboardCount.TotalCartonsReceived,\r\n });\r\n\r\n var largest = 0;\r\n const array = [\r\n DashboardCount.TotalMapping,\r\n DashboardCount.TotalDeMapping,\r\n DashboardCount.TotalDamage,\r\n DashboardCount.TotalIssue,\r\n ];\r\n for (let i = 0; i <= largest; i++) {\r\n if (array[i] > largest) {\r\n var largest = array[i];\r\n }\r\n }\r\n\r\n this.setState({\r\n largestNumber: largest,\r\n });\r\n }\r\n //MonthName not null\r\n if (MonthName != null && MonthName.length > 0) {\r\n this.setState({\r\n Months: MonthName,\r\n });\r\n }\r\n //DeMappingList not null\r\n if (DeMappingList != null && DeMappingList.length > 0) {\r\n this.setState({\r\n DeMappings: DeMappingList,\r\n });\r\n }\r\n //MappingList not null\r\n if (MappingList != null && MappingList.length > 0) {\r\n this.setState({\r\n Mappings: MappingList,\r\n });\r\n }\r\n //NumberList not null\r\n if (NumberList != null && NumberList.length > 0) {\r\n this.setState({\r\n NumberIssue: NumberList,\r\n });\r\n }\r\n //DamageNumberList not null\r\n if (DamageNumberList != null && DamageNumberList.length > 0) {\r\n this.setState({\r\n Damage: DamageNumberList,\r\n });\r\n }\r\n }\r\n });\r\n }\r\n GetAllFactory(compId) {\r\n this.WareHouseMaterService.GetWareHouseDDL(compId).then((data) => {\r\n const resdata = data.data;\r\n //if resdata is not null state of wareHouseDDL will be set with ResponseData\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n debugger;\r\n var factory = resdata.ResponseData.filter((x) => x.IsFactory == true);\r\n const warehouse = resdata.ResponseData.filter(\r\n (x) => x.IsFactory == false\r\n );\r\n const mergedArr = [...factory, ...warehouse];\r\n this.setState({\r\n factoryDDL: mergedArr,\r\n });\r\n }\r\n });\r\n }\r\n /// to set isPreprinted\r\n setPreprintedValue(e) {\r\n this.setState(\r\n {\r\n isPreprintedValue: e.value,\r\n isPreprinted: e.value == \"Static Qr Mapping\" ? false : true,\r\n },\r\n () => {\r\n this.GetDashboardData(\"\", this.state.isPreprinted);\r\n }\r\n );\r\n }\r\n // return HTML\r\n render() {\r\n const data = {\r\n labels: this.state.Months,\r\n datasets: [\r\n {\r\n label: \"Number Issued\",\r\n data: this.state.NumberIssue,\r\n fill: false,\r\n borderColor: \"#4bc0c0\",\r\n },\r\n\r\n {\r\n label: \"Damage\",\r\n data: this.state.Damage,\r\n fill: false,\r\n borderColor: \"#c74e1a\",\r\n },\r\n\r\n {\r\n label: \"Product Mapping\",\r\n data: this.state.Mappings,\r\n fill: false,\r\n borderColor: \"#97A5A5\",\r\n },\r\n // {\r\n // label: 'Product De-Mapping',\r\n // data: this.state.DeMappings,\r\n // fill: false,\r\n // borderColor: '#150e0b'\r\n // },\r\n ],\r\n };\r\n\r\n return (\r\n <>\r\n {/* */}\r\n {this.state.isAdmin ? (\r\n
    \r\n
    \r\n \r\n Select Entity\r\n {/* {\r\n this.handleChange(e);\r\n }}\r\n className=\"form-control\"\r\n placeholder={this.state.selval}\r\n name=\"WareHouseId\"\r\n options={this.state.factoryDDL}\r\n /> */}\r\n\r\n {\r\n this.handleChange(e);\r\n }}\r\n placeholder={this.state.selval}\r\n style={{\r\n width: \"300px\",\r\n display: \"inline-block\",\r\n marginLeft: \"10px\",\r\n }}\r\n >\r\n {this.state.factoryDDL.map((e, key) => {\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 {this.state.Dashdata ? (\r\n
    \r\n \r\n
    \r\n ) : (\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 instance from './DefaultApi';\r\n\r\nexport default class AccessRightService {\r\n ControllerName = 'AccessRight';\r\n \r\n // get menu according user\r\n GetAccessRight(userId) {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetAccessRight/${userId}`).then(res => res)\r\n }\r\n // get create and update access right\r\n CreateUpdateAccessRight(accessdata) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/CreateUpdateAccessRight`,accessdata).then(res => res)\r\n } \r\n} ","import React, { Component } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport AccessRightService from \"../../services/AccessRightService\";\r\nimport UserService from \"../../services/UserService\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport { Card } from \"primereact/card\";\r\n// Manage Access Right for User\r\nexport default class AccessRight extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.AccessRightService = new AccessRightService();\r\n this.UserService = new UserService();\r\n this.state = {\r\n visible: false,\r\n nodes: [],\r\n nodeToggle: false,\r\n globalFilter: null,\r\n UserId: 0,\r\n masters: null,\r\n trans: null,\r\n report: null,\r\n Divs: [\r\n { name: \"New York\", code: \"NY\" },\r\n { name: \"Rome\", code: \"RM\" },\r\n { name: \"London\", code: \"LDN\" },\r\n { name: \"Istanbul\", code: \"IST\" },\r\n { name: \"Paris\", code: \"PRS\" },\r\n ],\r\n formError: {\r\n UserId: null,\r\n },\r\n userddlList: [],\r\n };\r\n\r\n // this.pagesTemplate = this.pagesTemplate.bind(this);\r\n // this.treeTemplate = this.treeTemplate.bind(this);\r\n // this.actionTemplate = this.actionTemplate.bind(this);\r\n this.checkBox = this.checkBox.bind(this);\r\n this.SubmitData = this.SubmitData.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n //this.checkCheckbox = this.checkCheckbox.bind(this);\r\n //this.checkboxHandler = this.checkboxHandler(this);\r\n }\r\n\r\n //trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.GetAccessRight();\r\n this.GetUserList();\r\n }, 100);\r\n }\r\n\r\n // get User List\r\n GetUserList() {\r\n ;\r\n this.UserService.GetUsersDDL().then((data) => {\r\n const resdata = data.data;\r\n //if resdata not null\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n ;\r\n this.setState({\r\n userddlList: resdata.ResponseData,\r\n });\r\n }\r\n });\r\n }\r\n\r\n // get Access Right\r\n GetAccessRight() {\r\n this.AccessRightService.GetAccessRight(0).then((data) => {\r\n ;\r\n this.setState({\r\n nodes: data.data.ResponseData,\r\n });\r\n });\r\n }\r\n\r\n // treeTemplate(node, column) {\r\n // return
    \r\n // {node.status == true ? : }\r\n //
    ;\r\n // }\r\n\r\n // pagesTemplate(rowData, column) {\r\n // var src = rowData.ProductPic;\r\n // return {rowData.ProductPic};\r\n // }\r\n // actionTemplate(rowData, column) {\r\n // return
    \r\n // \r\n //
    ;\r\n // }\r\n\r\n // disable checkbox\r\n\r\n checkBox(rowData) {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n Expand(e) {\r\n const key = e.node.key;\r\n var checkbox = document.getElementById(key);\r\n var IsChecked = checkbox.checked;\r\n var checkboxlist = document.getElementsByClassName(key);\r\n for (var checkbox of checkboxlist) {\r\n if (IsChecked) {\r\n //checkbox.checked = true;\r\n } else {\r\n checkbox.checked = false;\r\n }\r\n }\r\n }\r\n\r\n Collapse(e) {\r\n const key = e.node.key;\r\n var checkbox = document.getElementById(key);\r\n var IsChecked = checkbox.checked;\r\n var checkboxlist = document.getElementsByClassName(key);\r\n for (var checkbox of checkboxlist) {\r\n if (IsChecked) {\r\n checkbox.checked = true;\r\n } else {\r\n checkbox.checked = false;\r\n }\r\n }\r\n }\r\n\r\n // checkboxHandler(rowData) {\r\n //\r\n // // var chkValue = rowData.currentTarget.value;\r\n // // var className = rowData.currentTarget.className;\r\n // // var IsChecked = rowData.currentTarget.checked;\r\n // // if (className === \"0\") {\r\n // // var checkboxlist = document.getElementsByClassName(chkValue);\r\n // // for (var checkbox of checkboxlist) {\r\n // // checkbox.checked = IsChecked;\r\n // // }\r\n // // }\r\n // }\r\n\r\n //to check all\r\n\r\n onCheckAll(e) {\r\n console.log(e);\r\n var chkValue = e.currentTarget.value;\r\n var className = e.currentTarget.className;\r\n var IsChecked = e.currentTarget.checked;\r\n //if className is not \"\"\r\n if (className !== \"\") {\r\n var checkboxlist = document.getElementsByClassName(\"child\" + className);\r\n for (var checkbox of checkboxlist) {\r\n checkbox.checked = IsChecked;\r\n }\r\n }\r\n }\r\n\r\n childUncheck(e) {\r\n ;\r\n console.log(e);\r\n var chkValue = e.currentTarget.value;\r\n var className = e.currentTarget.className;\r\n var IsChecked = e.currentTarget.checked;\r\n let selectAllClassName = className.replace(\"child\", \"\");\r\n //if className is not \"\"\r\n if (className !== \"\" && !IsChecked) {\r\n var selectAllCheck = document.getElementsByClassName(selectAllClassName);\r\n selectAllCheck[0].checked = false;\r\n }\r\n }\r\n\r\n // call every change of form and validation part also\r\n\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n this.formIsValid = true;\r\n\r\n //to validate each form field with required conditions\r\n\r\n switch (name) {\r\n case \"UserId\":\r\n if (value == \"\") {\r\n this.formIsValid = false;\r\n errors.UserId = \"Please select user.\";\r\n } else errors.UserId = \"\";\r\n break;\r\n }\r\n\r\n this.setState({ errors, [name]: value });\r\n }\r\n onUserChange(e) {\r\n const userId = parseInt(e.target.value);\r\n //const userId = parseInt(e.currentTarget.value);\r\n this.AccessRightService.GetAccessRight(userId).then((data) => {\r\n this.setState({\r\n nodes: data.data.ResponseData,\r\n });\r\n this.editcheckbox();\r\n });\r\n\r\n this.handleChange(e);\r\n }\r\n\r\n // to submit data\r\n SubmitData() {\r\n ;\r\n const checkboxes = document.getElementsByName(\"childCheck\");\r\n let checkedValuelst = [];\r\n checkedValuelst.push(\"1\");\r\n for (var checkbox of checkboxes) {\r\n if (checkbox.checked) {\r\n checkedValuelst.push(checkbox.value);\r\n }\r\n }\r\n\r\n const parentlist = this.state.nodes;\r\n parentlist.map((parent) => {\r\n let parentId = \"\";\r\n const childlst = parent.children;\r\n childlst.map((child) => {\r\n const key = child.key;\r\n if (checkedValuelst.indexOf(key) >= 0) {\r\n parentId = parent.key;\r\n }\r\n });\r\n if (parentId != \"\") {\r\n checkedValuelst.push(parentId);\r\n }\r\n });\r\n\r\n const formData = {\r\n UserId: this.state.UserId,\r\n PageList: checkedValuelst,\r\n };\r\n\r\n if (formData.UserId > 0) {\r\n ;\r\n this.AccessRightService.CreateUpdateAccessRight(formData).then((data) => {\r\n const resdata = data.data;\r\n //if ResponseCode is 200 success else error or warning message\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n } else {\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n } else {\r\n let errors = this.state.formError;\r\n errors.UserId = \"Please select user\";\r\n // this.setState({ formError: erlist });\r\n this.setState({ errors: \"\" });\r\n }\r\n setTimeout(() => {\r\n window.location.reload();\r\n }, 1000);\r\n }\r\n //to edit data\r\n editcheckbox() {\r\n const listdata = this.state.nodes;\r\n const checkboxes = document.getElementsByName(\"childCheck\");\r\n for (var checkbox of checkboxes) {\r\n let ischeck = false;\r\n listdata.map((node, i) => {\r\n node.children.map((childNode, k) => {\r\n if (checkbox.value == childNode.key && childNode.Status == true) {\r\n ischeck = true;\r\n }\r\n });\r\n });\r\n\r\n if (ischeck) {\r\n checkbox.checked = true;\r\n } else {\r\n checkbox.checked = false;\r\n }\r\n }\r\n }\r\n\r\n //to render html data\r\n render() {\r\n const items = [{ label: \"Masters\" }, { label: \"Access Right\" }];\r\n\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n const TreeNode = this.state.nodes;\r\n\r\n const TreeStruture = TreeNode.map((node, i) => (\r\n
    \r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\"\r\n >\r\n \r\n {node.data.pages}\r\n \r\n \r\n \r\n
      \r\n
        \r\n
      • \r\n {\" \"}\r\n Select all\r\n
      • \r\n {node.children.map((childNode, k) =>\r\n childNode.data.pages == \"Issue Number\" ? (\r\n \"\"\r\n ) : (\r\n
      • \r\n \r\n {childNode.data.pages}\r\n
      • \r\n )\r\n )}\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n ));\r\n\r\n const RoleName = this.state.userddlList;\r\n const userOption = RoleName.map((roleName) => (\r\n \r\n ));\r\n\r\n let header = (\r\n
      \r\n \r\n this.setState({ globalFilter: e.target.value })}\r\n placeholder=\"Global Search\"\r\n size=\"30\"\r\n />\r\n
      \r\n );\r\n\r\n return (\r\n <>\r\n \r\n \r\n
      \r\n
      \r\n

      Access Right

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

      Select User

      \r\n
      \r\n \r\n\r\n {/* */}\r\n {this.state.formError.UserId !== \"\" ? (\r\n
      {this.state.formError.UserId}
      \r\n ) : (\r\n \"\"\r\n )}\r\n \r\n
      \r\n
      \r\n
      \r\n

      Select Pages

      \r\n\r\n {TreeStruture}\r\n
      \r\n
      \r\n \r\n Submit\r\n \r\n
      \r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\n\r\nexport class ConfirmationModal extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n showModal: false,\r\n confirm: false\r\n }\r\n this.confirmModal = this.confirmModal.bind(this);\r\n this.handleConfirm = this.handleConfirm.bind(this);\r\n this.onClose = this.onClose.bind(this);\r\n }\r\n\r\n // confirm Modal Show\r\n confirmModal() {\r\n this.setState({\r\n showModal: true\r\n })\r\n }\r\n\r\n // handle Confirm\r\n handleConfirm() {\r\n this.setState({\r\n confirm: true,\r\n showModal: false\r\n })\r\n }\r\n\r\n //on Close\r\n onClose() {\r\n this.setState({\r\n confirm: false,\r\n showModal: false\r\n })\r\n }\r\n\r\n // return HTML Modal\r\n render() {\r\n return (\r\n <>\r\n {this.state.showModal ?\r\n\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      Are you sure?
      \r\n \r\n
      \r\n
      \r\n You want to delete this file?\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\nexport default ConfirmationModal","import instance from './DefaultApi';\r\n\r\nexport default class ProductService {\r\n ControllerName = 'Product';\r\n\r\n // get all products\r\n GetProducts(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetProducts`, tableRequest).then(res => res)\r\n }\r\n GetIds(prefix){\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetIds/${prefix}`).then(res => res)\r\n \r\n } \r\n UpdateIds(prefix,type,value){\r\n ;\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/UpdateIds/${prefix},${type},${value}`).then(res => res)\r\n }\r\n // create new product and update existing product \r\n CreateUpdateProduct(productData) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/CreateUpdateProduct`, productData).then(res => res)\r\n }\r\n // delete product\r\n DeleteProduct(productId) {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/DeleteProduct/${productId}`).then(res => res)\r\n }\r\n // get all products for ddl\r\n GetProductsDDL() {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetProductsDDL`).then(res => res)\r\n }\r\n GetProductUOM() {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetProductUOM`).then(res => res)\r\n }\r\n GetProductSize(uom) {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetProductsSize/${uom}`).then(res => res)\r\n }\r\n GetProductLife(pid) {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetProductsLife/${pid}`).then(res => res)\r\n }\r\n\r\n //Get Mapped Products Drop Down\r\n GetMappedProductsDDL(type) {\r\n\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetMappedProductsDDL/${type}`).then(res => res)\r\n } \r\n GetMapping(id ,type) {\r\n \r\n\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetMapping/${id},${type}`).then(res => res)\r\n }\r\n\r\n GetMappings(d ,type) {\r\n \r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetMappings?type=${type}`, d).then(res => res)\r\n }\r\n\r\n GetMappedProductsDDLByType(type) {\r\n\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetMappedProductsDDLByType?type=${type}`).then(res => res)\r\n }\r\n\r\n // GetMapProductsDDLBySelection WareHouse or User\r\n GetMapProductsDDLBySelectionWU(req) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetMapProductsDDLBySelectionWU`, req).then(res => res)\r\n }\r\n\r\n GetMapping(id,type){\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetMapping/${id},${type}`).then(res => res)\r\n }\r\n\r\n}","// request for lazy loading for all pages\r\n\r\nexport default class tableRequest {\r\n IsActive = '1';\r\n PageNo = 1;\r\n First = 1;\r\n SearchValue = \"\";\r\n PageSize = 10;\r\n SortColumn = \"CreatedDt\";\r\n SortOrder = \"DESC\";\r\n ProductId = 0;\r\n WareHouseId = 0;\r\n UserId = 0;\r\n FromDate = \"\";\r\n ToDate = \"\";\r\n UserType = 0;\r\n IsAccepted = false; //for stock use\r\n IsWareHouse = true;\r\n isAdmin = false;\r\n Prefix = \"\";\r\n isPreprinted = false;\r\n Qty = 0;\r\n}","import instance from './DefaultApi';\r\n\r\nexport default class CategoryService {\r\n ControllerName = 'Category';\r\n\r\n // get all category for ddl\r\n GetCategoryDDLMG1() {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetCategoryDDLMG1`).then(res => res)\r\n }\r\n GetCategoryDDLMG2(MG1) {\r\n ;\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetCategoryDDLMG2/${MG1}`).then(res => res)\r\n }\r\n GetCategoryDDLMG3(MG2) {\r\n ;\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetCategoryDDLMG3/${MG2}`).then(res => res)\r\n }\r\n // get all sub category for ddl\r\n GetSubCategoryDDL(categoryId) {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetSubCategoryDDL/${categoryId}`).then(res => res)\r\n }\r\n // get all subcategories\r\n GetSubCategories(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetSubCategories`, tableRequest).then(res => res)\r\n }\r\n // create new sub categgory \r\n CreateUpdateSubCategory(subCategryData) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/CreateUpdateSubCategory`, subCategryData).then(res => res);\r\n }\r\n // delete sub category\r\n DeleteSubCategory(subCategoryId) {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/DeleteSubCategory/${subCategoryId}`).then(res => res);\r\n }\r\n\r\n // get all categories\r\n GetCategoriesMG1(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetCategoriesMG1`, tableRequest).then(res => res)\r\n }\r\n GetCategoriesMG2(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetCategoriesMG2`, tableRequest).then(res => res)\r\n }\r\n GetCategoriesMG3(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetCategoriesMG3`, tableRequest).then(res => res)\r\n }\r\n // create new categgory \r\n CreateUpdateCategoryMG1(subCategryData) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/CreateUpdateCategoryMG1`, subCategryData).then(res => res);\r\n }\r\n CreateUpdateCategoryMG2(subCategryData) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/CreateUpdateCategoryMG2`, subCategryData).then(res => res);\r\n }\r\n CreateUpdateCategoryMG3(subCategryData) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/CreateUpdateCategoryMG3`, subCategryData).then(res => res);\r\n }\r\n // get subgroup for binding level MG1 \r\n Getmaingrp() {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetMaingrp`).then(res => res);\r\n } // get subgroup for binding level MG2 \r\n Getsubgrp(MG1) {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetSubgrp`, MG1).then(res => res);\r\n }\r\n\r\n\r\n}","import instance from './DefaultApi';\r\n\r\nexport default class CompanyMasterService {\r\n ControllerName = 'CompanyMaster';\r\n\r\n //Get Company List\r\n GetCompany(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetCompany`, tableRequest).then(res => res)\r\n }\r\n\r\n // Save Company Master Data\r\n CreateCompany(CartonData) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/CreateCompany`, CartonData).then(res => res)\r\n }\r\n\r\n //Get all company for ddl\r\n GetCompanyDDL() {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetCompanyDDL`).then(res => res);\r\n }\r\n\r\n\r\n\r\n\r\n}","import React, { Component } from \"react\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Column } from \"primereact/column\";\r\nimport { Dialog } from \"primereact/dialog\";\r\n\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport { Button } from \"primereact/button\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { FileUpload } from \"primereact/fileupload\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport { ConfirmationModal } from \"../../template/ConfirmationModal\";\r\nimport ProductService from \"../../services/ProductService\";\r\nimport tableRequest from \"../../models/tableRequest\";\r\nimport CategoryService from \"../../services/CategoryService\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport { confirmAlert } from \"react-confirm-alert\"; // Import\r\nimport \"react-confirm-alert/src/react-confirm-alert.css\"; // Import css\r\nimport $ from \"jquery\";\r\nimport CompanyMasterService from \"../../services/CompanyMasterService\";\r\n// import {Steps} from 'primereact/steps';\r\n// import { Tab, Tabs, TabList, TabPanel } from \"react-tabs\";\r\n// import \"react-tabs/style/react-tabs.css\";\r\nimport { TabView, TabPanel } from \"primereact/tabview\";\r\nimport ApiService from \"../../services/apiService\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport { CSVLink } from \"react-csv\";\r\n// export default () => (\r\n// \r\n// \r\n// Title 1\r\n// Title 2\r\n// \r\n\r\n// \r\n//

      Any content 1

      \r\n//
      \r\n// \r\n//

      Any content 2

      \r\n//
      \r\n//
      \r\n// );\r\n\r\n// Product Master\r\nvar allData = [];\r\nexport default class ProductMaster extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.ApiService = new ApiService();\r\n this.CompanyMasterService = new CompanyMasterService();\r\n this.ProductService = new ProductService();\r\n this.CategoryService = new CategoryService();\r\n this.tblResponse = new tableRequest();\r\n this.tblResponseExport = new tableRequest();\r\n let today = new Date();\r\n\r\n this.invalidDates = [today];\r\n this.state = {\r\n heads: [\r\n \"ProductName\",\r\n \"ProductCd\",\r\n \"TechnicalName\",\r\n \"ProductDscrptn\",\r\n \"ProductUOM\",\r\n \"ProductValue\",\r\n //\"cartonSize\",\r\n \"CategoryName\",\r\n // \"NameMG2\",\r\n // \"NameMG3\",\r\n \"CreatedDt\",\r\n ],\r\n exportData: [],\r\n visible: false,\r\n mrp: 0,\r\n prodDes: true,\r\n updateLoader: false,\r\n formIsValid: true,\r\n CompId: \"\",\r\n ProductId: \"\",\r\n ProductName: \"\",\r\n ProductCd: \"\",\r\n ProductDsrcptn: \"\",\r\n ProductImg: \"\",\r\n GenuineAudio: \"\",\r\n ProductUOM: \"\",\r\n NameMG2: \"\",\r\n NameMG3: \"\",\r\n activeIndex: 0,\r\n ProductValue: \"\",\r\n CategoryId: null,\r\n MG2Id: null,\r\n MG3Id: null,\r\n IsActive: false,\r\n ontime: false,\r\n sortOrder: \"\",\r\n items: \"\",\r\n Product: \"\",\r\n ManufactureName: \"\",\r\n RegistrationNo: \"\",\r\n CautionarySymbol: \"\",\r\n AntidoteStatement: \"\",\r\n MarketedBy: \"\",\r\n ExpDate: \"\",\r\n GTIN: null,\r\n // CartonSize:null,\r\n CustomerCareDetails: \"\",\r\n WarrantyPeriodInMonth: 0,\r\n formError: {\r\n ProductName: null,\r\n Product: null,\r\n mrp: null,\r\n GTIN: null,\r\n //CartonSize:null,\r\n NameMG2: \"\",\r\n NameMG3: \"\",\r\n ProductCd: null,\r\n ProductDsrcptn: null,\r\n CategoryId: null,\r\n MG2Id: null,\r\n MG3Id: null,\r\n ExpDate: null,\r\n // SubCategoryId: null,\r\n ProductImg: null,\r\n GenuineAudio: null,\r\n ProductUOM: null,\r\n ProductValue: null,\r\n WarrantyPeriodInMonth: null,\r\n uploadImageLabel: null,\r\n uploadImagePamphlet: null,\r\n TechnicalName: null,\r\n SapProductCd: null,\r\n },\r\n uploadImagPath: \"\",\r\n uploadImagDescPath: \"\",\r\n uploadImagDescAntiPath: \"\",\r\n uploadAudioPath: \"\",\r\n uploadImageLabel: \"\",\r\n uploadImagePamphlet: \"\",\r\n SapProductCd: \"\",\r\n TechnicalName: \"\",\r\n confirm: false,\r\n formHeading: \"Add Product\",\r\n buttonLabel: \"Submit\",\r\n\r\n sales: [],\r\n companyDDL: [],\r\n loading: true,\r\n first: 0,\r\n rows: 5,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n CategoryDDL: [],\r\n MG2DDL: [],\r\n MG3DDL: [],\r\n compDisabled: false,\r\n checkerror: true,\r\n // SubCategoryDDL: []\r\n };\r\n\r\n this.items = [\r\n {\r\n label: \"Step 1\",\r\n command: (event) => {\r\n this.activeIndex = 0;\r\n },\r\n },\r\n {\r\n label: \"Step 2\",\r\n command: (event) => {\r\n this.activeIndex = 1;\r\n },\r\n },\r\n {\r\n label: \"Step 3\",\r\n command: (event) => {\r\n this.activeIndex = 2;\r\n },\r\n },\r\n ];\r\n\r\n this.brandTemplate = this.brandTemplate.bind(this);\r\n\r\n this.brandDescTemplate = this.brandDescTemplate.bind(this);\r\n this.brandDescAntiTemplate = this.brandDescAntiTemplate.bind(this);\r\n this.GetProductExport = this.GetProductExport.bind(this);\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleChange1 = this.handleChange1.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n this.submitDescForm = this.submitDescForm.bind(this);\r\n this.deleteFunc = this.deleteFunc.bind(this);\r\n this.setImagePath = this.setImagePath.bind(this);\r\n this.setImageDescPath = this.setImageDescPath.bind(this);\r\n this.setImageDescAntiPath = this.setImageDescAntiPath.bind(this);\r\n this.setLabel = this.setLabel.bind(this);\r\n this.setPamphlet = this.setPamphlet.bind(this);\r\n this.hideFunc = this.hideFunc.bind(this);\r\n this.setAudioPath = this.setAudioPath.bind(this);\r\n\r\n this.onPage = this.onPage.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.openDialog = this.openDialog.bind(this);\r\n\r\n this.onSort = this.onSort.bind(this);\r\n }\r\n handleChange1(event) {\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n this.validateForm1(value, name);\r\n this.setState({ errors, [name]: value });\r\n\r\n if (name === \"IsActive\")\r\n this.setState({\r\n IsActive: event.target.checked,\r\n });\r\n }\r\n // call when handle\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n\r\n let errors = this.state.formError;\r\n\r\n const isValid = this.validateForm(value, name);\r\n this.setState({ errors, [name]: value });\r\n\r\n if (!isValid) {\r\n this.setState({ activeIndex: 0 });\r\n this.setState({ prodDes: true });\r\n }\r\n if (name == \"IsActive\")\r\n this.setState({\r\n IsActive: event.target.checked,\r\n });\r\n }\r\n\r\n // get current date\r\n getCurrentDate(dt) {\r\n var today = new Date(dt);\r\n var dd = today.getDate();\r\n\r\n var mm = today.getMonth() + 1;\r\n var yyyy = today.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n // today = mm + '-' + dd + '-' + yyyy;\r\n // today = mm + '/' + dd + '/' + yyyy;\r\n // today = dd + '-' + mm + '-' + yyyy;\r\n today = mm + \"/\" + dd + \"/\" + yyyy;\r\n return today;\r\n }\r\n\r\n // use for image\r\n brandTemplate(rowData, column) {\r\n var src = rowData.ProductImg;\r\n return {rowData.ProductImg};\r\n }\r\n // use for image\r\n brandDescTemplate(rowData, column) {\r\n var src = rowData.CautionarySymbol;\r\n return {rowData.CautionarySymbol};\r\n }\r\n // use for image\r\n brandDescAntiTemplate(rowData, column) {\r\n var src = rowData.AntidoteStatement;\r\n return {rowData.AntidoteStatement};\r\n }\r\n\r\n // set Image Path\r\n setImagePath(event) { \r\n let errors = this.state.formError;\r\n errors.ProductImg = \"\";\r\n if (event.xhr) {\r\n if (event.xhr.response) {\r\n const response = JSON.parse(event.xhr.response);\r\n if (response) {\r\n if (response.ResponseCode === \"200\") {\r\n this.setState({\r\n uploadImagPath: response.Source,\r\n });\r\n } else if (response.ResponseCode === \"400\") {\r\n errors.ProductImg = \"Only image format is accepted.\";\r\n this.setState({\r\n uploadImagPath: \"\",\r\n });\r\n } else {\r\n // this.messageService.add({ severity: 'error', summary: 'Oops', detail: response.ResponseMessage });\r\n }\r\n } else {\r\n //this.messageService.add({ severity: 'error', summary: 'Oops', detail: 'Something went wrong' });\r\n }\r\n } else {\r\n //this.messageService.add({ severity: 'error', summary: 'Oops', detail: 'Something went wrong' });\r\n }\r\n } else {\r\n //this.messageService.add({ severity: 'error', summary: 'Oops', detail: 'Something went wrong' });\r\n }\r\n }\r\n\r\n setImageDescPath(event) {\r\n let errors = this.state.formError;\r\n errors.CautionarySymbol = \"\";\r\n if (event.xhr) {\r\n if (event.xhr.response) {\r\n const response = JSON.parse(event.xhr.response);\r\n if (response) {\r\n if (response.ResponseCode === \"200\") {\r\n this.setState({\r\n uploadImagDescPath: response.Source,\r\n });\r\n } else if (response.ResponseCode === \"400\") {\r\n errors.CautionarySymbol = \"Only image format is accepted.\";\r\n this.setState({\r\n uploadImagDescPath: \"\",\r\n });\r\n } else {\r\n // this.messageService.add({ severity: 'error', summary: 'Oops', detail: response.ResponseMessage });\r\n }\r\n } else {\r\n //this.messageService.add({ severity: 'error', summary: 'Oops', detail: 'Something went wrong' });\r\n }\r\n } else {\r\n //this.messageService.add({ severity: 'error', summary: 'Oops', detail: 'Something went wrong' });\r\n }\r\n } else {\r\n //this.messageService.add({ severity: 'error', summary: 'Oops', detail: 'Something went wrong' });\r\n }\r\n }\r\n\r\n setImageDescAntiPath(event) {\r\n let errors = this.state.formError;\r\n errors.AntidoteStatement = \"\";\r\n if (event.xhr) {\r\n if (event.xhr.response) {\r\n const response = JSON.parse(event.xhr.response);\r\n if (response) {\r\n if (response.ResponseCode === \"200\") {\r\n this.setState({\r\n uploadImagDescAntiPath: response.Source,\r\n });\r\n } else if (response.ResponseCode === \"400\") {\r\n errors.AntidoteStatement = \"Only image format is accepted.\";\r\n this.setState({\r\n uploadImagDescAntiPath: \"\",\r\n });\r\n } else {\r\n // this.messageService.add({ severity: 'error', summary: 'Oops', detail: response.ResponseMessage });\r\n }\r\n } else {\r\n //this.messageService.add({ severity: 'error', summary: 'Oops', detail: 'Something went wrong' });\r\n }\r\n } else {\r\n //this.messageService.add({ severity: 'error', summary: 'Oops', detail: 'Something went wrong' });\r\n }\r\n } else {\r\n //this.messageService.add({ severity: 'error', summary: 'Oops', detail: 'Something went wrong' });\r\n }\r\n }\r\n // set Audio path\r\n setAudioPath(event) {\r\n let errors = this.state.formError;\r\n errors.GenuineAudio = \"\";\r\n if (event.xhr) {\r\n if (event.xhr.response) {\r\n const response = JSON.parse(event.xhr.response);\r\n if (response) {\r\n if (response.ResponseCode === \"200\") {\r\n this.setState({\r\n uploadAudioPath: response.Source,\r\n });\r\n } else if (response.ResponseCode === \"400\") {\r\n errors.GenuineAudio = \"Only audio files are accepted.\";\r\n this.setState({\r\n uploadAudioPath: \"\",\r\n });\r\n } else {\r\n // this.messageService.add({ severity: 'error', summary: 'Oops', detail: response.ResponseMessage });\r\n }\r\n } else {\r\n //this.messageService.add({ severity: 'error', summary: 'Oops', detail: 'Something went wrong' });\r\n }\r\n } else {\r\n //this.messageService.add({ severity: 'error', summary: 'Oops', detail: 'Something went wrong' });\r\n }\r\n } else {\r\n //this.messageService.add({ severity: 'error', summary: 'Oops', detail: 'Something went wrong' });\r\n }\r\n }\r\n\r\n // set lable path\r\n setLabel(event) {\r\n let errors = this.state.formError;\r\n errors.uploadImageLabel = \"\";\r\n if (event.xhr) {\r\n if (event.xhr.response) {\r\n const response = JSON.parse(event.xhr.response);\r\n if (response) {\r\n if (response.ResponseCode === \"200\") {\r\n this.setState({\r\n uploadImageLabel: response.Source,\r\n });\r\n } else if (response.ResponseCode === \"400\") {\r\n errors.uploadImageLabel = \"Only image format is accepted.\";\r\n this.setState({\r\n uploadImageLabel: \"\",\r\n });\r\n } else {\r\n // this.messageService.add({ severity: 'error', summary: 'Oops', detail: response.ResponseMessage });\r\n }\r\n } else {\r\n //this.messageService.add({ severity: 'error', summary: 'Oops', detail: 'Something went wrong' });\r\n }\r\n } else {\r\n //this.messageService.add({ severity: 'error', summary: 'Oops', detail: 'Something went wrong' });\r\n }\r\n } else {\r\n //this.messageService.add({ severity: 'error', summary: 'Oops', detail: 'Something went wrong' });\r\n }\r\n }\r\n\r\n // set pamphlet path\r\n setPamphlet(event) {\r\n let errors = this.state.formError;\r\n errors.uploadImagePamphlet = \"\";\r\n if (event.xhr) {\r\n if (event.xhr.response) {\r\n const response = JSON.parse(event.xhr.response);\r\n if (response) {\r\n if (response.ResponseCode === \"200\") {\r\n this.setState({\r\n uploadImagePamphlet: response.Source,\r\n });\r\n } else if (response.ResponseCode === \"400\") {\r\n errors.uploadImagePamphlet = \"Only image format is accepted.\";\r\n this.setState({\r\n uploadImagePamphlet: \"\",\r\n });\r\n } else {\r\n // this.messageService.add({ severity: 'error', summary: 'Oops', detail: response.ResponseMessage });\r\n }\r\n } else {\r\n //this.messageService.add({ severity: 'error', summary: 'Oops', detail: 'Something went wrong' });\r\n }\r\n } else {\r\n //this.messageService.add({ severity: 'error', summary: 'Oops', detail: 'Something went wrong' });\r\n }\r\n } else {\r\n //this.messageService.add({ severity: 'error', summary: 'Oops', detail: 'Something went wrong' });\r\n }\r\n }\r\n\r\n // delete\r\n deleteFunc() {\r\n this.refs.child.confirmModal();\r\n }\r\n\r\n onErrorImage() {}\r\n\r\n onErrorAudio() {}\r\n\r\n // call back Function\r\n callbackFunction = (childData) => {\r\n this.setState({ message: childData });\r\n };\r\n\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.GetCompany();\r\n this.GetCategoryDDL();\r\n this.GetProducts();\r\n }, 1000);\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n\r\n this.tblResponseExport.PageSize = -1;\r\n this.tblResponseExport.First = 1;\r\n this.tblResponseExport.IsActive = true;\r\n this.tblResponseExport.SearchValue = \"\";\r\n this.tblResponseExport.SortOrder = \"ASC\";\r\n this.GetProductExport();\r\n }\r\n\r\n // get product data list from api\r\n GetProductExport() {\r\n this.tblResponseExport.SortColumn = \"CreatedDate\";\r\n this.ProductService.GetProducts(this.tblResponseExport).then((data) => {\r\n const resdata = data.data;\r\n //when response data is not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n exportData: resdata.ResponseData,\r\n });\r\n }\r\n });\r\n }\r\n\r\n // initialize page\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetProducts();\r\n }, 100);\r\n }\r\n\r\n // get list of data\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = true;\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n }\r\n\r\n // Get Category Drop Down list\r\n GetCategoryDDL() {\r\n this.CategoryService.GetCategoryDDLMG1().then((data) => {\r\n const resdata = data.data;\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.setState({\r\n CategoryDDL: resdata.ResponseData == null ? [] : resdata.ResponseData,\r\n });\r\n }\r\n });\r\n this.CategoryService.GetCategoryDDLMG2(1).then((data) => {\r\n const resdata = data.data;\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.setState({\r\n MG2DDL: resdata.ResponseData == null ? [] : resdata.ResponseData,\r\n });\r\n }\r\n });\r\n\r\n this.CategoryService.GetCategoryDDLMG3(1).then((data) => {\r\n const resdata = data.data;\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.setState({\r\n MG3DDL: resdata.ResponseData == null ? [] : resdata.ResponseData,\r\n });\r\n }\r\n });\r\n }\r\n\r\n // Get Sub Category Drop Down List\r\n // GetSubCategoryDDL(categoryId) {\r\n // this.CategoryService.GetSubCategoryDDLMG1(categoryId).then((data) => {\r\n // const resdata = data.data;\r\n // if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n // this.setState({\r\n // SubCategoryDDL: resdata.ResponseData,\r\n // });\r\n // }\r\n // });\r\n // }\r\n\r\n GetCompany() {\r\n this.CompanyMasterService.GetCompanyDDL().then((data) => {\r\n const resdata = data.data;\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n companyDDL: resdata.ResponseData,\r\n });\r\n\r\n if (this.ApiService.getIsAdmin() == \"false\") {\r\n const CompanyObj = this.state.companyDDL.filter(\r\n (x) => x.CompId == this.ApiService.getCompanyId()\r\n );\r\n\r\n this.setState({\r\n CompId: CompanyObj[0],\r\n compDisabled: true,\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n // Get Products list\r\n GetProducts() {\r\n this.tblResponse.SortColumn = \"CreatedDt\";\r\n\r\n this.ProductService.GetProducts(this.tblResponse).then((data) => {\r\n const resdata = data.data;\r\n this.setState({ updateLoader: true });\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n });\r\n } else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n });\r\n }\r\n validateForm1(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n switch (name) {\r\n // case \"ManufactureName\":\r\n // if (value.trim().length < 1) {\r\n // IsValid = false;\r\n // errors.ManufactureName = \"Please enter Manufacture name.\";\r\n // } else errors.Product = \"\";\r\n // break;\r\n\r\n // case \"MarketedBy\":\r\n // if (value.trim().length < 1) {\r\n // IsValid = false;\r\n // errors.MarketedBy = \"Please enter MarketedBy .\";\r\n // } else errors.MarketedBy = \"\";\r\n // break;\r\n\r\n // case \"RegistrationNo\":\r\n // if (value.trim().length < 1) {\r\n // IsValid = false;\r\n // errors.RegistrationNo = \"Please enter RegistrationNo .\";\r\n // } else errors.RegistrationNo = \"\";\r\n // break;\r\n\r\n // case \"CustomerCareDetails\":\r\n // if (value.trim().length < 1) {\r\n // IsValid = false;\r\n // errors.CustomerCareDetails = \"Please enter CustomerCareDetails .\";\r\n // } else errors.CustomerCareDetails = \"\";\r\n // break;\r\n // case 'ExpDate':\r\n // if (value == null || !(value instanceof Date)) {\r\n // IsValid = false;\r\n // errors.ExpDate = \"Please select Expiry date\";\r\n // }\r\n // else if (!(value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/))) {\r\n // IsValid = false;\r\n // errors.ExpDate = \"Please enter only date.\";\r\n // } else if ((Date.parse(value) < Date.parse(new Date(this.getCurrentDate())))) {\r\n // IsValid = false;\r\n // errors.ExpDate = \"Expiry date must be greater than or equal to today date.\";\r\n // }\r\n\r\n // else errors.ExpDate = null;\r\n\r\n // break;\r\n\r\n case \"WarrantyPeriodInMonth\":\r\n if (value == null || value < 1) {\r\n IsValid = false;\r\n errors.WarrantyPeriodInMonth =\r\n \"Please enter Best Before Days, Should be above 1\";\r\n }\r\n\r\n break;\r\n // case \"mrp\":\r\n // if (value == null || value < 1) {\r\n // IsValid = false;\r\n // errors.mrp = \"Please enter MRP, Should be above 1\";\r\n // }\r\n // break;\r\n default:\r\n break;\r\n }\r\n return IsValid;\r\n }\r\n // validate form\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n switch (name) {\r\n case \"ProductName\":\r\n if (value.trim().length < 1) {\r\n IsValid = false;\r\n errors.ProductName = \"Please enter product name.\";\r\n } else errors.ProductName = \"\";\r\n break;\r\n case \"ProductCd\":\r\n if (value.trim().length < 1) {\r\n IsValid = false;\r\n errors.ProductCd = \"Please enter product code.\";\r\n } else if (!value.match(/^[0-9a-zA-Z]+$/)) {\r\n IsValid = false;\r\n errors.ProductCd = \"Please enter only alphanumeric.\";\r\n } else errors.ProductCd = \"\";\r\n break;\r\n\r\n // case \"SapProductCd\":\r\n // if (value == null || value.trim().length < 1) {\r\n // IsValid = false;\r\n // errors.SapProductCd = \"Please enter Sap Product code.\";\r\n // } else if (!value.match(/^[0-9a-zA-Z]+$/)) {\r\n // IsValid = false;\r\n // errors.SapProductCd = \"Please enter only alphanumeric.\";\r\n // } else errors.SapProductCd = \"\";\r\n // break;\r\n // case \"GTIN\":\r\n // if (value == null || value.trim().length < 12) {\r\n // IsValid = false;\r\n // errors.GTIN = \"Please enter 12 Digit GTIN Number.\";\r\n // }\r\n // else if (!value.match(/^[0-9]+$/)) {\r\n // IsValid = false;\r\n // errors.GTIN = \"Please enter only numeric.\";\r\n // }\r\n // else errors.GTIN = \"\";\r\n // break;\r\n // case \"CartonSize\":\r\n // if (value == null || value.trim().length < 1) {\r\n // IsValid = false;\r\n // errors.CartonSize = \"Please enter carton size.\";\r\n // }\r\n // else if (!value.match(/^[0-9]+$/)) {\r\n // IsValid = false;\r\n // errors.CartonSize = \"Please enter only numeric.\";\r\n // }\r\n // else errors.CartonSize = \"\";\r\n // break;\r\n case \"ProductDsrcptn\":\r\n if (value == null || value.trim().length < 1) {\r\n IsValid = false;\r\n errors.ProductDsrcptn = \"Please enter product description.\";\r\n } else errors.ProductDsrcptn = \"\";\r\n break;\r\n\r\n // case \"TechnicalName\":\r\n // if (value.trim().length < 1) {\r\n // IsValid = false;\r\n // errors.TechnicalName = \"Please enter product TechnicalName.\";\r\n // } else errors.TechnicalName = \"\";\r\n // break;\r\n\r\n // case \"CategoryId\":\r\n // if (value == undefined || value == \"\") {\r\n // IsValid = false;\r\n // errors.CategoryId = \"Please select category.\";\r\n // } else errors.CategoryId = null;\r\n // break;\r\n // case \"MG2Id\":\r\n // if (value == undefined || value == \"\") {\r\n // IsValid = false;\r\n // errors.MG2Id = \"Please select category.\";\r\n // } else errors.MG2Id = null;\r\n // break;\r\n // case \"MG3Id\":\r\n // if (value == undefined || value == \"\") {\r\n // IsValid = false;\r\n // errors.MG3Id = \"Please select category.\";\r\n // } else errors.MG3Id = null;\r\n // break;\r\n // case \"SubCategoryId\":\r\n // if (value == null) {\r\n // IsValid = false;\r\n // errors.SubCategoryId = \"Please select sub category.\";\r\n // } else errors.SubCategoryId = null;\r\n // break;\r\n case \"ProductUOM\":\r\n if (value.trim().length < 1) {\r\n IsValid = false;\r\n errors.ProductUOM = \"Please enter product UOM.\";\r\n } else errors.ProductUOM = \"\";\r\n break;\r\n case \"ProductValue\":\r\n if (value.trim().length < 1) {\r\n IsValid = false;\r\n errors.ProductValue = \"Please enter product pack.\";\r\n } else if (!value.match(/^[0-9]+$/)) {\r\n IsValid = false;\r\n errors.ProductValue = \"Please enter only number.\";\r\n this.setState({ Qty: 0 });\r\n } else {\r\n errors.ProductValue = \"\";\r\n const ProductValue = value.trim() === \"\" ? 0 : parseInt(value.trim());\r\n if (ProductValue > 0) {\r\n errors.ProductValue = \"\";\r\n } else {\r\n IsValid = false;\r\n errors.ProductValue = \"Product pack should be greater than 0.\";\r\n this.setState({ Qty: 0 });\r\n }\r\n }\r\n break;\r\n\r\n case \"CompanyId\":\r\n if (value == undefined || value == \"\") {\r\n IsValid = false;\r\n errors.CompanyId = \"Please select Company\";\r\n } else {\r\n errors.CompanyId = \"\";\r\n this.GetWareHouse(value.CompId);\r\n }\r\n break;\r\n // case 'IsActive':\r\n // this.setState({\r\n // IsActive: value\r\n\r\n // });\r\n // break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return IsValid;\r\n }\r\n\r\n // open Dialog\r\n openDialog() {\r\n this.setState({\r\n visible: true,\r\n uploadImagPath: \"\",\r\n uploadAudioPath: \"\",\r\n uploadImagDescPath: \"\",\r\n uploadImagDescAntiPath: \"\",\r\n WarrantyPeriodInMonth: \"\",\r\n });\r\n this.formReset();\r\n }\r\n\r\n // Reset form\r\n formReset() {\r\n this.setState({\r\n ProductName: \"\",\r\n ProductCd: \"\",\r\n GTIN: \"\",\r\n WarrantyPeriodInMonth: 730,\r\n //CartonSize:'',\r\n ProductDsrcptn: \"\",\r\n ProductImg: \"\",\r\n CautionarySymbol: \"\",\r\n AntidoteStatement: \"\",\r\n RegistrationNo: \"\",\r\n MarketedBy: \"\",\r\n ExpDate: \"\",\r\n ManufactureName: \"\",\r\n CustomerCareDetails: \"\",\r\n uploadImagDescPath: \"\",\r\n uploadImagDescAntiPath: \"\",\r\n GenuineAudio: \"\",\r\n ProductUOM: \"\",\r\n ProductValue: \"\",\r\n CategoryId: \"\",\r\n MG2Id: \"\",\r\n MG3Id: \"\",\r\n SapProductCd: \"\",\r\n uploadImageLabel: \"\",\r\n uploadImagePamphlet: \"\",\r\n // CompId: \"\",\r\n // SubCategoryId: '',\r\n ProductId: \"\",\r\n IsActive: true,\r\n TechnicalName: \"\",\r\n });\r\n\r\n let errors = this.state.formError;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = \"\";\r\n });\r\n }\r\n\r\n hideFunc() {\r\n this.setState({\r\n visible: false,\r\n buttonLabel: \"Submit\",\r\n formHeading: \"Add Product\",\r\n });\r\n this.setState({ activeIndex: 0 });\r\n this.setState({ prodDes: true });\r\n this.formReset();\r\n }\r\n\r\n // submit form\r\n\r\n submitDescForm(event) {\r\n event.preventDefault();\r\n let isfrmvalid = true;\r\n let isValidForm = true;\r\n let checkerror = this.state.formError;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key];\r\n isfrmvalid = this.validateForm(val, key);\r\n if (!isfrmvalid) {\r\n this.setState(\r\n {\r\n checkerror: isfrmvalid,\r\n },\r\n () => {\r\n isfrmvalid = this.state.checkerror;\r\n }\r\n );\r\n isfrmvalid = false;\r\n }\r\n });\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key];\r\n isfrmvalid = this.validateForm1(val, key);\r\n console.log(isfrmvalid);\r\n if (!isfrmvalid) {\r\n this.setState(\r\n {\r\n checkerror: isfrmvalid,\r\n },\r\n () => {\r\n isfrmvalid = this.state.checkerror;\r\n // if(this.state.checkerror)\r\n // this.saveProuduct(this.state.checkerror);\r\n }\r\n );\r\n isfrmvalid = false;\r\n isValidForm = false;\r\n }\r\n });\r\n\r\n this.saveProuduct(isValidForm);\r\n }\r\n\r\n saveProuduct(isfrmvalid) {\r\n if (isfrmvalid) {\r\n allData = {\r\n ...allData,\r\n ManufactureName: this.state.ManufactureName,\r\n RegistrationNo: this.state.RegistrationNo,\r\n MarketedBy: this.state.MarketedBy,\r\n //CustomerCareDetails:this.state.CustomerCareDetails,\r\n // ExpDate: this.state.ExpDate.toLocaleDateString(),\r\n //CustomerCareDetails:this.state.CustomerCareDetails,\r\n CautionarySymbol: this.state.uploadImagDescPath,\r\n AntidoteStatement: this.state.uploadImagDescAntiPath,\r\n WarrantyPeriodInMonth: this.state.WarrantyPeriodInMonth,\r\n mrp: this.state.mrp,\r\n label: this.state.uploadImageLabel,\r\n Pamphlet: this.state.uploadImagePamphlet,\r\n // CategoryIdMG2: this.state.MG2Id,\r\n // CategoryIdMG3: this.state.MG3Id,\r\n //CompId: this.state.CompId.CompId,\r\n };\r\n this.setState({ updateLoader: false });\r\n setTimeout(() => {\r\n this.ProductService.CreateUpdateProduct(allData).then((data) => {\r\n ;\r\n const resdata = data.data;\r\n this.setState({ updateLoader: true });\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n this.setState({\r\n loading: true,\r\n visible: false,\r\n });\r\n this.formReset();\r\n this.GetProducts();\r\n this.setState({ activeIndex: 0 });\r\n this.setState({ prodDes: true });\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }, 100);\r\n }\r\n }\r\n\r\n submitForm(event) {\r\n event.preventDefault();\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formError;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key];\r\n let valid = this.validateForm(val, key);\r\n if (!valid) {\r\n this.setState({\r\n checkerror: isfrmvalid,\r\n loader: false,\r\n });\r\n isfrmvalid = false;\r\n }\r\n });\r\n\r\n if (isfrmvalid) {\r\n // this.setState({ updateLoader: false });\r\n var formData = {\r\n ProductId:\r\n this.state.ProductId == \"\" ? 0 : parseInt(this.state.ProductId),\r\n ProductName: this.state.ProductName,\r\n ProductCd: this.state.ProductCd,\r\n gtin: this.state.GTIN,\r\n // cartonSize:this.state.CartonSize,\r\n SapProductCd: this.state.SapProductCd,\r\n TechnicalName: this.state.TechnicalName,\r\n ProductDscrptn: this.state.ProductDsrcptn,\r\n ProductImg: this.state.uploadImagPath,\r\n GenuineAudio: this.state.uploadAudioPath,\r\n ProductUOM: this.state.ProductUOM,\r\n ProductValue: parseInt(this.state.ProductValue),\r\n CategoryId: parseInt(this.state.CategoryId),\r\n MG2Id: parseInt(this.state.MG2Id),\r\n MG3Id: parseInt(this.state.MG3Id),\r\n // SubCategoryId: parseInt(this.state.SubCategoryId),\r\n IsActive: this.state.IsActive,\r\n CompId: this.state.CompId.CompId,\r\n };\r\n\r\n allData = formData;\r\n\r\n this.setState({ activeIndex: this.state.activeIndex + 1 });\r\n\r\n this.setState({ prodDes: false });\r\n // setTimeout(() => {\r\n // this.ProductService.CreateUpdateProduct(formData).then((data) => {\r\n // const resdata = data.data;\r\n // if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n // this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n // this.setState({\r\n // loading: true,\r\n // visible: false,\r\n // });\r\n // this.formReset();\r\n // this.GetProducts();\r\n // } else if (resdata.ResponseCode === \"400\") {\r\n // this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n // } else {\r\n // this.refs.Messchild.showError(resdata.ResponseMessage);\r\n // }\r\n // });\r\n // }, 1000);\r\n }\r\n }\r\n\r\n // search filter\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n\r\n this.GetProducts();\r\n }\r\n\r\n //delete Product\r\n deleteProduct(productId) {\r\n let isValid = false;\r\n this.ProductService.DeleteProduct(productId).then((data) => {\r\n const resdata = data.data;\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n const totlrecord = this.state.totalRecords - 1;\r\n const row = this.state.rows;\r\n if (this.tblResponse.First >= totlrecord) {\r\n const _curntCursor = Math.round(totlrecord / row);\r\n this.tblResponse.First = _curntCursor + 1;\r\n }\r\n this.GetProducts();\r\n isValid = true;\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n\r\n return isValid;\r\n }\r\n\r\n // disabled Template\r\n activeTemplate(rowData, column) {\r\n return ;\r\n }\r\n\r\n // edit data\r\n actionTemplate(rowData, column) {\r\n const filterCatDDL = this.state.CategoryDDL.filter(\r\n (x) => x.value == rowData.CategoryId\r\n );\r\n const filterCatDDLMG2 = this.state.MG2DDL.filter(\r\n (x) => x.value == rowData.CategoryIdMG2\r\n );\r\n const filterCatDDLMG3 = this.state.MG3DDL.filter(\r\n (x) => x.value == rowData.CategoryIdMG3\r\n );\r\n\r\n const editMode = () => {\r\n this.setState({\r\n visible: true,\r\n formHeading: \"Update Product\",\r\n buttonLabel: \"Update\",\r\n ontime: true,\r\n ProductId: rowData.ProductId,\r\n ProductName: rowData.ProductName,\r\n ProductCd: rowData.ProductCd,\r\n GTIN: rowData.gtin,\r\n // CartonSize:rowData.cartonSize,\r\n SapProductCd: rowData.SapProductCd,\r\n ProductDsrcptn: rowData.ProductDscrptn,\r\n uploadImagPath: rowData.ProductImg,\r\n uploadAudioPath: rowData.GenuineAudio,\r\n ProductUOM: rowData.ProductUOM,\r\n ProductValue: \"\" + rowData.ProductValue,\r\n CategoryId:\r\n filterCatDDL.length != 0 ? rowData.CategoryId.toString() : \"\",\r\n MG2Id:\r\n filterCatDDLMG2.length != 0 ? rowData.CategoryIdMG2.toString() : \"\",\r\n MG3Id:\r\n filterCatDDLMG3.length != 0 ? rowData.CategoryIdMG3.toString() : \"\",\r\n IsActive: rowData.IsActive,\r\n uploadImagDescPath: rowData.CautionarySymbol,\r\n uploadImagDescAntiPath: rowData.AntidoteStatement,\r\n uploadImageLabel: rowData.Label,\r\n uploadImagePamphlet: rowData.Pamphlet,\r\n RegistrationNo: rowData.RegistrationNo,\r\n ManufactureName: rowData.ManufactureName,\r\n // ExpDate: new Date(rowData.ExpireDate),\r\n // CustomerCareDetails: rowData.CustomerCareDetails,\r\n MarketedBy: rowData.MarketedBy,\r\n WarrantyPeriodInMonth: rowData.WarrantyPeriodInMonth,\r\n mrp: rowData.mrp,\r\n TechnicalName: rowData.TechnicalName,\r\n });\r\n\r\n // const MG2Id = rowData.MG2Id === (undefined || null) ? 0 : parseInt(rowData.MG2Id);\r\n // if (MG2Id > 0) {\r\n // this.GetMG2(MG2Id);\r\n // this.setState({\r\n // MG2Id: rowData.MG2Id.toString()\r\n // });\r\n // } const MG3Id = rowData.MG3Id === (undefined || null) ? 0 : parseInt(rowData.MG3Id);\r\n // if (MG3Id > 0) {\r\n // this.GetMG3(MG3Id);\r\n // this.setState({\r\n // MG3Id: rowData.MG3Id.toString()\r\n // });\r\n // }\r\n // let checkbox = document.getElementsByName('IsActive');\r\n // checkbox[0].checked = rowData.IsActive;\r\n\r\n const CompanyObj = this.state.companyDDL.filter(\r\n (x) => x.CompId == rowData.CompId\r\n );\r\n\r\n this.setState({\r\n CompId: CompanyObj[0],\r\n });\r\n };\r\n const deleteMode = (e) => {\r\n e.preventDefault();\r\n // var element = document.getElementById(\"myDIV\");\r\n // element.classList.remove(\"mystyle\");\r\n e.target.className =\r\n e.target.className == \"fa fa-toggle-off fa-2x\"\r\n ? \"fa fa-toggle-on fa-2x\"\r\n : \"fa fa-toggle-off fa-2x\";\r\n let evnId = e.target.id;\r\n confirmAlert({\r\n title: \"Confirm to inactive\",\r\n message: \"Are you sure to do this.\",\r\n buttons: [\r\n {\r\n label: \"Yes\",\r\n onClick: () => {\r\n const isValid = this.deleteProduct(rowData.ProductId);\r\n if (!isValid) {\r\n var element = document.getElementById(evnId);\r\n element.className =\r\n element.className == \"fa fa-toggle-off fa-2x\"\r\n ? \"fa fa-toggle-on fa-2x\"\r\n : \"fa fa-toggle-off fa-2x\";\r\n }\r\n },\r\n },\r\n {\r\n label: \"No\",\r\n onClick: () => null,\r\n },\r\n ],\r\n });\r\n };\r\n return (\r\n \r\n \r\n {/* */}\r\n {/* {rowData.IsActive == 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 // on sort table\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField = event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetProducts();\r\n }\r\n\r\n // return HTML\r\n //resolved KREP-129,KREP-111\r\n render() {\r\n const items = [{ label: \"Masters\" }, { label: \"Product Master\" }];\r\n\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n let header = (\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

      Product Master

      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n Export\r\n \r\n \r\n
      \r\n\r\n \r\n {/* */}\r\n \r\n \r\n\r\n \r\n\r\n {/* \r\n */}\r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n\r\n \r\n this.setState({ activeIndex: e.index })}\r\n >\r\n \r\n {this.state.buttonLabel == \"Update\" ? (\r\n
      \r\n * Update in Categories May cause Unexpected error for Inline\r\n Production\r\n
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n {\r\n this.handleChange(e);\r\n }}\r\n value={this.state.CompId}\r\n className=\"form-control\"\r\n placeholder=\"Select Company\"\r\n name=\"CompId\"\r\n options={this.state.companyDDL}\r\n />\r\n {this.state.formError.CompId !== null ? (\r\n
      {this.state.formError.CompId}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.ProductName !== null ? (\r\n
      \r\n {this.state.formError.ProductName}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.ProductCd !== null ? (\r\n
      \r\n {this.state.formError.ProductCd}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.SapProductCd !== null ? (\r\n
      \r\n {this.state.formError.SapProductCd}\r\n
      \r\n ) : null}\r\n
      \r\n {/*
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.GTIN !== null ? (\r\n
      \r\n {this.state.formError.GTIN}\r\n
      \r\n ) : null}\r\n
      */}\r\n {/*
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.CartonSize !== null ? (\r\n
      \r\n {this.state.formError.CartonSize}\r\n
      \r\n ) : null}\r\n
      */}\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.ProductDsrcptn !== null ? (\r\n
      \r\n {this.state.formError.ProductDsrcptn}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.TechnicalName !== null ? (\r\n
      \r\n {this.state.formError.TechnicalName}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n {/* onChange={e => { this.CategoryDDLEvent(e); this.handleChange(e) }} */}\r\n {\r\n this.handleChange(e);\r\n }}\r\n value={this.state.CategoryId}\r\n className=\"form-control\"\r\n placeholder=\"Select Category\"\r\n name=\"CategoryId\"\r\n options={this.state.CategoryDDL}\r\n />\r\n {this.state.formError.CategoryId !== null ? (\r\n
      \r\n {this.state.formError.CategoryId}\r\n
      \r\n ) : null}\r\n
      \r\n {/*
      \r\n \r\n
      \r\n
      \r\n {\r\n this.handleChange(e);\r\n }}\r\n value={this.state.MG2Id}\r\n className=\"form-control\"\r\n placeholder=\"Sub Category\"\r\n name=\"MG2Id\"\r\n options={this.state.MG2DDL}\r\n />\r\n {this.state.formError.MG2Id !== null ? (\r\n
      {this.state.formError.MG2Id}
      \r\n ) : null}\r\n
      {\" \"}\r\n
      \r\n \r\n
      \r\n
      \r\n {\r\n this.handleChange(e);\r\n }}\r\n value={this.state.MG3Id}\r\n className=\"form-control\"\r\n placeholder=\"Sub Divison Category\"\r\n name=\"MG3Id\"\r\n options={this.state.MG3DDL}\r\n />\r\n {this.state.formError.MG3Id !== null ? (\r\n
      {this.state.formError.MG3Id}
      \r\n ) : null}\r\n
      */}\r\n {/*
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.SubCategoryId !== null ?\r\n
      {this.state.formError.SubCategoryId}
      : null}\r\n
      */}\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.ProductValue !== null ? (\r\n
      \r\n {this.state.formError.ProductValue}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.ProductUOM !== null ? (\r\n
      \r\n {this.state.formError.ProductUOM}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n\r\n {this.state.uploadImagPath ? (\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n ) : null}\r\n\r\n {this.state.formError.ProductImg !== null ? (\r\n
      \r\n {this.state.formError.ProductImg}\r\n
      \r\n ) : null}\r\n
      \r\n {/*
      \r\n \r\n
      \r\n
      \r\n \r\n\r\n {this.state.uploadAudioPath ? (\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n ) : null}\r\n {this.state.formError.GenuineAudio !== null ? (\r\n
      \r\n {this.state.formError.GenuineAudio}\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 {this.state.formError.ManufactureName !== null ? (\r\n
      \r\n {this.state.formError.ManufactureName}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.RegistrationNo !== null ? (\r\n
      \r\n {this.state.formError.RegistrationNo}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.MarketedBy !== null ? (\r\n
      \r\n {this.state.formError.MarketedBy}\r\n
      \r\n ) : null}\r\n
      */}\r\n {/*
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.CustomerCareDetails !== null ? (\r\n
      \r\n {this.state.formError.CustomerCareDetails}\r\n
      \r\n ) : null}\r\n
      */}\r\n
      \r\n \r\n
      \r\n
      \r\n {/* */}\r\n \r\n {this.state.formError.WarrantyPeriodInMonth !== null ? (\r\n
      \r\n {this.state.formError.WarrantyPeriodInMonth}\r\n
      \r\n ) : null}\r\n
      \r\n {/*
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.mrp !== null ?\r\n
      {this.state.formError.mrp}
      : null}\r\n
      */}\r\n\r\n {/*
      \r\n \r\n
      \r\n
      \r\n \r\n\r\n {this.state.uploadImagDescPath ? (\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n ) : null}\r\n\r\n {this.state.formError.CautionarySymbol !== null ? (\r\n
      \r\n {this.state.formError.CautionarySymbol}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n\r\n {this.state.uploadImagDescAntiPath ? (\r\n
      \r\n
      \r\n Download\r\n
      \r\n
      \r\n ) : null}\r\n\r\n\r\n {this.state.formError.AntidoteStatement !== null ? (\r\n
      \r\n {this.state.formError.AntidoteStatement}\r\n
      \r\n ) : null}\r\n
      */}\r\n\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n\r\n {this.state.uploadImageLabel ? (\r\n
      \r\n \r\n
      \r\n ) : null}\r\n\r\n {this.state.formError.uploadImageLabel !== null ? (\r\n
      \r\n {this.state.formError.uploadImageLabel}\r\n
      \r\n ) : null}\r\n
      \r\n\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n\r\n {this.state.uploadImagePamphlet ? (\r\n
      \r\n
      \r\n \r\n Download{\" \"}\r\n \r\n
      \r\n
      \r\n ) : null}\r\n\r\n {this.state.formError.uploadImagePamphlet !== null ? (\r\n
      \r\n {this.state.formError.uploadImagePamphlet}\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","import React, { Component } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Column } from \"primereact/column\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport UserService from \"../../services/UserService\";\r\nimport CompanyMasterService from \"../../services/CompanyMasterService\";\r\nimport WareHouseMaterService from \"../../services/WareHouseMaterService\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport { Button } from \"primereact/button\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport { confirmAlert } from \"react-confirm-alert\"; // Import\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport { Card } from \"primereact/card\";\r\nimport { ConfirmationModal } from \"../../template/ConfirmationModal\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport $ from \"jquery\";\r\nimport ApiService from \"../../services/apiService\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport { CSVLink } from \"react-csv\";\r\n\r\nexport default class UserMaster extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.ApiService = new ApiService();\r\n this.UserService = new UserService();\r\n this.CompanyMasterService = new CompanyMasterService();\r\n this.WareHouseMaterService = new WareHouseMaterService();\r\n this.tblResponseExport = new tableRequest();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n heads: [\r\n \"CompanyName\",\r\n \"FirmName\",\r\n \"Username\",\r\n \"FirstName\",\r\n \"LastName\",\r\n \"Email\",\r\n \"MobileNo\",\r\n \"CreatedDt\",\r\n ],\r\n exportData: [],\r\n compDisabled: false,\r\n visible: false,\r\n ReferenceID: \"\",\r\n updateLoader: false,\r\n sortIcon: false,\r\n UserName: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Email: \"\",\r\n MobileNo: \"\",\r\n Password: \"\",\r\n ConfirmPassword: \"\",\r\n IsActive: false,\r\n sortOrder: \"\",\r\n CompanyId: \"\",\r\n WareHouseId: \"\",\r\n IsFactory: \"\",\r\n formError: {\r\n UserName: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Password: \"\",\r\n Email: \"\",\r\n ConfirmPassword: \"\",\r\n MobileNo: \"\",\r\n CompanyId: \"\",\r\n WareHouseId: \"\",\r\n },\r\n\r\n formHeading: \"Add User\",\r\n buttonLabel: \"Submit\",\r\n sales: [],\r\n companyDDL: [],\r\n wareHouseDDL: [],\r\n wareHouseFactoryDDL: [],\r\n loading: true,\r\n first: 0,\r\n rows: 5,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n UserType: 0,\r\n };\r\n\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.emailTemplate = this.emailTemplate.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n this.hideFunc = this.hideFunc.bind(this);\r\n this.onPage = this.onPage.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.openDialog = this.openDialog.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n this.onValueChange = this.onValueChange.bind(this);\r\n this.GetUserExport = this.GetUserExport.bind(this);\r\n }\r\n //trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.GetUsers();\r\n this.GetCompany();\r\n this.GetWareHouse(0);\r\n }, 1000);\r\n\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n\r\n this.tblResponseExport.PageSize = -1;\r\n this.tblResponseExport.First = 1;\r\n this.tblResponseExport.IsActive = true;\r\n this.tblResponseExport.SearchValue = \"\";\r\n this.tblResponseExport.SortOrder = \"ASC\";\r\n this.GetUserExport();\r\n }\r\n\r\n // get user data list from api\r\n GetUserExport() {\r\n this.tblResponseExport.SortColumn = \"CreatedDt\";\r\n this.UserService.GetUsers(this.tblResponseExport).then((data) => {\r\n const resdata = data.data;\r\n //when response data is not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n exportData: resdata.ResponseData,\r\n });\r\n }\r\n });\r\n }\r\n\r\n //on page loading\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetUsers();\r\n }, 250);\r\n }\r\n\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = true;\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n this.tblResponse.UserType = 0;\r\n }\r\n\r\n // get users data list from api\r\n GetUsers() {\r\n this.tblResponse.SortColumn = \"CreatedDt\";\r\n this.UserService.GetUsers(this.tblResponse).then((data) => {\r\n const resdata = data.data;\r\n //if response data is not null sales state will be set with ResponseData\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n updateLoader: true,\r\n });\r\n }\r\n //if response data is null sales state will be set null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n updateLoader: true,\r\n });\r\n }\r\n });\r\n }\r\n\r\n // call every change of form and validation part also\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n\r\n this.validateForm(value, name);\r\n this.setState({ errors, [name]: value });\r\n\r\n //to set state of IsActive\r\n if (name == \"IsActive\")\r\n this.setState({\r\n IsActive: event.target.checked,\r\n });\r\n }\r\n\r\n //to validate form\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"UserName\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.UserName = \"Please enter your username.\";\r\n } else errors.UserName = \"\";\r\n break;\r\n case \"FirstName\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.FirstName = \"Please enter your first name.\";\r\n } else if (value.length >= 1) {\r\n if (!value.match(/^[A-Za-z]+$/)) {\r\n IsValid = false;\r\n errors.FirstName = \"FirstName should be alpha only.\";\r\n } else errors.FirstName = \"\";\r\n } else errors.FirstName = \"\";\r\n break;\r\n case \"LastName\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.LastName = \"Please enter your last name.\";\r\n } else if (value.length >= 1) {\r\n if (!value.match(/^[A-Za-z]+$/)) {\r\n IsValid = false;\r\n errors.LastName = \"LastName should be alpha only.\";\r\n } else errors.LastName = \"\";\r\n } else errors.LastName = \"\";\r\n break;\r\n case \"Email\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.Email = \"Please enter your email-id.\";\r\n } else if (value.length >= 1) {\r\n if (!value.match(/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/)) {\r\n IsValid = false;\r\n errors.Email = \"Please enter valid email-id.\";\r\n } else errors.Email = \"\";\r\n } else errors.Email = \"\";\r\n break;\r\n case \"MobileNo\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.MobileNo = \"Please enter your mobile no.\";\r\n } else if (value.length >= 1) {\r\n if (!value.match(/^[6-9]\\d{9}$/)) {\r\n IsValid = false;\r\n errors.MobileNo = \"Please enter valid mobile no.\";\r\n } else errors.MobileNo = \"\";\r\n } else errors.MobileNo = \"\";\r\n break;\r\n case \"Password\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.Password = \"Please enter password.\";\r\n }\r\n //^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d).{4,10}$\r\n else if (!value.match(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d).{4,10}$/)) {\r\n IsValid = false;\r\n errors.Password =\r\n \"Password should be minimum 4 characters long, 1 uppercase & 1 lowercase character with 1 number.\";\r\n } else if (\r\n value.length >= 1 &&\r\n this.state.ConfirmPassword.length >= 1\r\n ) {\r\n errors.Password = \"\";\r\n errors.ConfirmPassword = \"\";\r\n if (!(value === this.state.ConfirmPassword)) {\r\n IsValid = false;\r\n errors.Password = \"password does not match\";\r\n } else errors.Password = \"\";\r\n } else errors.Password = \"\";\r\n break;\r\n\r\n case \"ConfirmPassword\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.ConfirmPassword = \"Please enter confirm password.\";\r\n } else if (!value.match(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d).{4,10}$/)) {\r\n IsValid = false;\r\n errors.ConfirmPassword =\r\n \"Password should be minimum 4 characters long, 1 uppercase & 1 lowercase character with 1 number.\";\r\n } else if (value.length >= 1 && this.state.Password.length >= 1) {\r\n errors.Password = \"\";\r\n errors.ConfirmPassword = \"\";\r\n if (!(value === this.state.Password)) {\r\n IsValid = false;\r\n errors.ConfirmPassword = \"Confirm password does not match\";\r\n } else errors.ConfirmPassword = \"\";\r\n } else errors.ConfirmPassword = \"\";\r\n break;\r\n\r\n case \"CompanyId\":\r\n if (value == undefined || value == \"\") {\r\n IsValid = false;\r\n errors.CompanyId = \"Please select Company\";\r\n } else {\r\n errors.CompanyId = \"\";\r\n //this.GetWareHouse(value.CompId)\r\n }\r\n break;\r\n case \"WareHouseId\":\r\n if (value.ID == undefined || value.ID == \"\") {\r\n IsValid = false;\r\n errors.WareHouseId = \"Please select WareHouse / Factory\";\r\n } else {\r\n errors.WareHouseId = \"\";\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return IsValid;\r\n }\r\n\r\n // reset form text value\r\n formReset() {\r\n this.setState({\r\n ReferenceID: \"\",\r\n UserName: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Email: \"\",\r\n MobileNo: \"\",\r\n Password: \"\",\r\n ConfirmPassword: \"\",\r\n IsActive: true,\r\n //CompanyId :'',\r\n WareHouseId: \"\",\r\n });\r\n let errors = this.state.formError;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = \"\";\r\n });\r\n }\r\n\r\n hideFunc() {\r\n this.setState({\r\n visible: false,\r\n buttonLabel: \"Submit\",\r\n formHeading: \"Add User\",\r\n });\r\n this.formReset();\r\n }\r\n openDialog() {\r\n this.setState({ visible: true });\r\n this.formReset();\r\n }\r\n // submit form and create or update user\r\n submitForm(event) {\r\n event.preventDefault();\r\n\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formError;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key];\r\n let valid = this.validateForm(val, key);\r\n //form is not valid\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n //form is valid\r\n if (isfrmvalid) {\r\n this.setState({ updateLoader: false });\r\n const formData = {\r\n UserName: this.state.UserName,\r\n FirstName: this.state.FirstName,\r\n LastName: this.state.LastName,\r\n Email: this.state.Email,\r\n MobileNo: this.state.MobileNo,\r\n Password: this.state.Password,\r\n ReferenceID: this.state.ReferenceID,\r\n IsActive: this.state.IsActive,\r\n CompanyId: this.state.CompanyId.CompId,\r\n WareHouseId: this.state.WareHouseId.ID,\r\n UserType: this.state.UserType,\r\n };\r\n\r\n setTimeout(() => {\r\n this.UserService.CreateUpdateUser(formData).then((data) => {\r\n const resdata = data.data;\r\n //if responsecode is 200 success message willl be shown else it will move to 'else statement'\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n this.setState({\r\n loading: true,\r\n visible: false,\r\n updateLoader: true,\r\n });\r\n this.formReset();\r\n this.GetUsers();\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }, 100);\r\n }\r\n }\r\n\r\n // delete user data\r\n deleteUser(referenceID) {\r\n this.UserService.DeleteUser(referenceID).then((data) => {\r\n const resdata = data.data;\r\n //if responsecode is 200 success message willl be shown else it will move to 'else statement'\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n this.GetUsers();\r\n const totlrecord = this.state.totalRecords - 1;\r\n const row = this.state.rows;\r\n\r\n if (this.tblResponse.First >= totlrecord) {\r\n const _curntCursor = Math.round(totlrecord / row);\r\n this.tblResponse.First = _curntCursor + 1;\r\n }\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }\r\n //to get company data for ddl\r\n GetCompany() {\r\n this.CompanyMasterService.GetCompanyDDL().then((data) => {\r\n const resdata = data.data;\r\n //if resdata is not null state of companyDDL will be set with ResponseData\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n companyDDL: resdata.ResponseData,\r\n });\r\n }\r\n\r\n if (this.ApiService.getIsAdmin() == \"false\") {\r\n const CompanyObj = this.state.companyDDL.filter(\r\n (x) => x.CompId == this.ApiService.getCompanyId()\r\n );\r\n this.setState({\r\n CompanyId: CompanyObj[0],\r\n compDisabled: true,\r\n });\r\n this.GetWareHouse(this.state.CompanyId.CompId);\r\n }\r\n });\r\n }\r\n\r\n //to get warehouse data for ddl\r\n GetWareHouse(compId) {\r\n this.WareHouseMaterService.GetWareHouseDDL(compId).then((data) => {\r\n const resdata = data.data;\r\n //if resdata is not null state of wareHouseDDL will be set with ResponseData\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n wareHouseFactoryDDL: resdata.ResponseData,\r\n wareHouseDDL: [],\r\n });\r\n }\r\n });\r\n }\r\n\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetUsers();\r\n }\r\n\r\n callbackFunction = (childData) => {\r\n this.setState({ message: childData });\r\n };\r\n\r\n onValueChange(event) {\r\n const val = event.target.value;\r\n\r\n if (val == \"0\") {\r\n const wareHouse = this.state.wareHouseFactoryDDL.filter(\r\n (x) => x.IsFactory == 0\r\n );\r\n this.setState({\r\n IsFactory: false,\r\n wareHouseDDL: wareHouse,\r\n WareHouseId: \"\",\r\n UserType: 5,\r\n // warehouseVisible: true,\r\n });\r\n }\r\n if (val == \"1\") {\r\n const Factory = this.state.wareHouseFactoryDDL.filter(\r\n (x) => x.IsFactory == 1\r\n );\r\n\r\n this.setState({\r\n IsFactory: true,\r\n WareHouseId: \"\",\r\n wareHouseDDL: Factory,\r\n UserType: 4,\r\n // warehouseVisible: true,\r\n });\r\n }\r\n }\r\n\r\n // disabled checkbox\r\n activeTemplate(rowData, column) {\r\n return ;\r\n }\r\n\r\n // sort data\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField =\r\n event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetUsers();\r\n const clickData = document.getElementsByClassName(\r\n \"p-sortable-column-icon pi pi-fw pi-sort\"\r\n );\r\n console.log(event);\r\n }\r\n emailTemplate = (rowData) => {\r\n let emails = rowData.Email;\r\n return
      {emails}
      ;\r\n };\r\n // edit form\r\n actionTemplate(rowData, column) {\r\n const editMode = (e) => {\r\n this.setState({\r\n buttonLabel: \"Update\",\r\n formHeading: \"Update User\",\r\n visible: true,\r\n ReferenceID: rowData.ReferenceID,\r\n UserName: rowData.Username,\r\n FirstName: rowData.FirstName,\r\n LastName: rowData.LastName,\r\n Email: rowData.Email,\r\n UserType: rowData.UserType,\r\n MobileNo: rowData.MobileNo,\r\n Password: rowData.Password,\r\n ConfirmPassword: rowData.Password,\r\n IsActive: rowData.IsActive,\r\n });\r\n\r\n const CompanyObj = this.state.companyDDL.filter(\r\n (x) => x.CompId == rowData.CompanyId\r\n );\r\n const wareHouse = this.state.wareHouseFactoryDDL.filter(\r\n (x) => x.IsFactory == 0\r\n );\r\n const Factory = this.state.wareHouseFactoryDDL.filter(\r\n (x) => x.IsFactory == 1\r\n );\r\n const wareHouseObj = this.state.wareHouseFactoryDDL.filter(\r\n (x) => x.ID == rowData.WareHouseId\r\n );\r\n if (wareHouseObj[0]?.IsFactory) {\r\n this.setState({\r\n IsFactory: true,\r\n wareHouseDDL: Factory,\r\n });\r\n } else if (!wareHouseObj[0]?.IsFactory) {\r\n this.setState({\r\n IsFactory: false,\r\n wareHouseDDL: wareHouse,\r\n });\r\n }\r\n\r\n this.setState({\r\n CompanyId: CompanyObj[0],\r\n WareHouseId: wareHouseObj[0],\r\n //wareHouseDDL: wareHouse ?? Factory | wareHouse\r\n });\r\n };\r\n\r\n const deleteFunc = () => {\r\n confirmAlert({\r\n title: \"Confirm to delete\",\r\n message: \"Are you sure to do this.\",\r\n buttons: [\r\n {\r\n label: \"Yes\",\r\n onClick: () => this.deleteUser(rowData.ReferenceID),\r\n },\r\n {\r\n label: \"No\",\r\n onClick: () => null,\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\r\n // create html part\r\n //resolved KREP-85\r\n render() {\r\n const items = [{ label: \"Master\" }, { label: \"User Master\" }];\r\n\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n let header = (\r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n Export\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
      \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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {/* */}\r\n {this.state.formError.UserName !== \"\" ? (\r\n
      {this.state.formError.UserName}
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      {this.state.formError.FirstName}
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.LastName !== \"\" ? (\r\n
      {this.state.formError.LastName}
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.Email !== null ? (\r\n
      {this.state.formError.Email}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.MobileNo !== null ? (\r\n
      {this.state.formError.MobileNo}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.Password !== null ? (\r\n
      {this.state.formError.Password}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.ConfirmPassword !== null ? (\r\n
      \r\n {this.state.formError.ConfirmPassword}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n {\r\n this.handleChange(e);\r\n }}\r\n value={this.state.CompanyId}\r\n className=\"form-control\"\r\n placeholder=\"Select Company\"\r\n name=\"CompanyId\"\r\n options={this.state.companyDDL}\r\n />\r\n {this.state.formError.CompanyId !== null ? (\r\n
      {this.state.formError.CompanyId}
      \r\n ) : null}\r\n
      \r\n\r\n {/*
      \r\n \r\n
      */}\r\n\r\n
      \r\n {\" \"}\r\n Factory\r\n \r\n WareHouse\r\n
      \r\n\r\n
      \r\n {\r\n this.handleChange(e);\r\n }}\r\n value={this.state.WareHouseId}\r\n className=\"form-control\"\r\n placeholder=\"-Select-\"\r\n name=\"WareHouseId\"\r\n options={this.state.wareHouseDDL}\r\n />\r\n {this.state.formError.WareHouseId !== null ? (\r\n
      \r\n {this.state.formError.WareHouseId}\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","import instance from './DefaultApi';\r\n\r\nexport default class CartonMasterService {\r\n ControllerName = 'CartonMaster';\r\n\r\n //Get Carton List\r\n GetCarton(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetCarton`, tableRequest).then(res => res)\r\n }\r\n\r\n // Save Carton Master Data\r\n CreateCarton(CartonData) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/CreateCarton`, CartonData).then(res => res)\r\n }\r\n\r\n // Get Active Carton of Drop Down List\r\n GetActiveCartonDDL() {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetActiveCartonDDL`).then(res => res)\r\n }\r\n\r\n\r\n\r\n\r\n}","import React, { Component } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Column } from \"primereact/column\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Button } from \"primereact/button\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport { confirmAlert } from \"react-confirm-alert\"; // Import\r\nimport { ConfirmationModal } from \"../../template/ConfirmationModal\";\r\nimport CartonMasterService from \"../../services/CartonMasterService\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport { Card } from \"primereact/card\";\r\nimport $ from \"jquery\";\r\nimport { CSVLink } from \"react-csv\";\r\n\r\n// Carton Size Master\r\nexport default class CartonMaster extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.CartonMasterService = new CartonMasterService();\r\n this.tblResponseExport = new tableRequest();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n visible: false,\r\n CartonId: \"\",\r\n heads: [\"CartonName\", \"CartonSize\", \"Description\"],\r\n exportData: [],\r\n updateLoader: false,\r\n sortIcon: false,\r\n CartonName: \"\",\r\n CartonSize: \"\",\r\n Description: \"\",\r\n IsActive: false,\r\n sortOrder: \"\",\r\n formError: {\r\n CartonName: \"\",\r\n CartonSize: \"\",\r\n Description: \"\",\r\n },\r\n formHeading: \"Add Carton\",\r\n buttonLabel: \"Submit\",\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 5,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n };\r\n\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n this.hideFunc = this.hideFunc.bind(this);\r\n this.onPage = this.onPage.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.openDialog = this.openDialog.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n this.GetCartonExport = this.GetCartonExport.bind(this);\r\n }\r\n\r\n //trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.GetCarton();\r\n }, 1000);\r\n\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n\r\n this.tblResponseExport.PageSize = -1;\r\n this.tblResponseExport.First = 1;\r\n this.tblResponseExport.IsActive = true;\r\n this.tblResponseExport.SearchValue = \"\";\r\n this.tblResponseExport.SortOrder = \"ASC\";\r\n this.GetCartonExport();\r\n }\r\n\r\n //loading page\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetCarton();\r\n }, 250);\r\n }\r\n\r\n // Get list of data\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = true;\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n }\r\n\r\n // get carton data list from api\r\n GetCartonExport() {\r\n this.tblResponseExport.SortColumn = \"CreatedDate\";\r\n this.CartonMasterService.GetCarton(this.tblResponseExport).then((data) => {\r\n const resdata = data.data;\r\n //when response data is not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n exportData: resdata.ResponseData,\r\n });\r\n }\r\n });\r\n }\r\n\r\n // get carton data list from api\r\n GetCarton() {\r\n this.tblResponse.SortColumn = \"CreatedDate\";\r\n this.CartonMasterService.GetCarton(this.tblResponse).then((data) => {\r\n const resdata = data.data;\r\n //when response data is not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n updateLoader: true,\r\n });\r\n }\r\n // when responsedata is null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n updateLoader: true,\r\n });\r\n }\r\n });\r\n }\r\n\r\n // call every change of form and validation part also\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n\r\n const isValid = this.validateForm(value, name);\r\n this.setState({ errors, [name]: value });\r\n\r\n //this statement will set state value for IsActive\r\n if (name == \"IsActive\")\r\n this.setState({\r\n IsActive: event.target.checked,\r\n });\r\n }\r\n\r\n // Open Dialog\r\n openDialog() {\r\n this.setState({ visible: true });\r\n this.formReset();\r\n }\r\n\r\n // validate form\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n //this switch case is used for each form field to validate\r\n switch (name) {\r\n case \"CartonName\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.CartonName = \"Please enter your carton name.\";\r\n } else errors.CartonName = \"\";\r\n break;\r\n case \"CartonSize\":\r\n if (value < 1) {\r\n IsValid = false;\r\n errors.CartonSize = \"Please enter your carton size quantity.\";\r\n } else errors.CartonSize = \"\";\r\n break;\r\n case \"Description\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.Description = \"Please enter your Description.\";\r\n } else errors.Description = \"\";\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return IsValid;\r\n }\r\n\r\n // reset form text value\r\n formReset() {\r\n this.setState({\r\n CartonId: 0,\r\n CartonName: \"\",\r\n CartonSize: \"\",\r\n Description: \"\",\r\n IsActive: true,\r\n });\r\n let errors = this.state.formError;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = \"\";\r\n });\r\n }\r\n\r\n // add text\r\n hideFunc() {\r\n this.setState({\r\n visible: false,\r\n buttonLabel: \"Submit\",\r\n formHeading: \"Add Carton\",\r\n });\r\n this.formReset();\r\n }\r\n\r\n // Open Dialog\r\n openDialog() {\r\n this.setState({ visible: true });\r\n this.formReset();\r\n }\r\n // submit form\r\n submitForm(event) {\r\n event.preventDefault();\r\n\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formError;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key];\r\n let valid = this.validateForm(val, key);\r\n\r\n //when form validation is not valid\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n let checkbox = document.getElementsByName(\"IsActive\");\r\n //when isfrmvalid is true\r\n if (isfrmvalid) {\r\n this.setState({ updateLoader: false });\r\n const formData = {\r\n CartonId: this.state.CartonId,\r\n CartonName: this.state.CartonName,\r\n CartonSize: this.state.CartonSize,\r\n Description: this.state.Description,\r\n IsActive: this.state.IsActive,\r\n };\r\n\r\n setTimeout(() => {\r\n this.CartonMasterService.CreateCarton(formData).then((data) => {\r\n ;\r\n const resdata = data.data;\r\n //when data is not null it will give success message else will move to 'else statement'\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n this.setState({\r\n loading: true,\r\n visible: false,\r\n updateLoader: true,\r\n });\r\n this.formReset();\r\n this.GetCarton();\r\n this.GetCartonExport();\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }, 100);\r\n }\r\n }\r\n\r\n // delete user data\r\n // deleteUser(referenceID) {\r\n // this.UserService.DeleteUser(referenceID).then(data => {\r\n // const resdata = data.data;\r\n // if (resdata !== null && resdata.ResponseCode === '200') {\r\n // this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n // const totlrecord = this.state.totalRecords - 1;\r\n // const row = this.state.rows;\r\n\r\n // if (this.tblResponse.First >= totlrecord) {\r\n // const _curntCursor = Math.round(totlrecord / row);\r\n // this.tblResponse.First = _curntCursor + 1;\r\n // }\r\n // this.GetUsers();\r\n // } else if (resdata.ResponseCode === '400') {\r\n // this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n // } else {\r\n // this.refs.Messchild.showError(resdata.ResponseMessage);\r\n // }\r\n // });\r\n // }\r\n\r\n // Search Filter data\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetCarton();\r\n }\r\n\r\n // callbackFunction = (childData) => {\r\n // this.setState({ message: childData })\r\n // }\r\n\r\n //return checkbox disabled\r\n activeTemplate(rowData, column) {\r\n return ;\r\n }\r\n\r\n // Sorting Data\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField =\r\n event.sortField == \"CreatedDate\" ? \"CreatedDate\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetCarton();\r\n // const clickData = document.getElementsByClassName(\"p-sortable-column-icon pi pi-fw pi-sort\");\r\n // console.log(event);\r\n }\r\n\r\n // edit form\r\n actionTemplate(rowData, column) {\r\n const editMode = (e) => {\r\n this.setState({\r\n buttonLabel: \"Update\",\r\n formHeading: \"Update Carton\",\r\n visible: true,\r\n CartonId: rowData.CartonId,\r\n CartonName: rowData.CartonName,\r\n CartonSize: rowData.CartonSize,\r\n Description: rowData.Description,\r\n IsActive: rowData.IsActive,\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n {/* */}\r\n \r\n );\r\n }\r\n\r\n // create html part\r\n render() {\r\n const items = [{ label: \"Masters\" }, { label: \"Carton Size Master\" }];\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n let header = (\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 {/* */}\r\n\r\n \r\n
      \r\n
      \r\n

      Carton Size 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 \r\n \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.CartonName !== \"\" ? (\r\n
      \r\n {this.state.formError.CartonName}\r\n
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.CartonSize !== \"\" ? (\r\n
      \r\n {this.state.formError.CartonSize}\r\n
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.Description !== \"\" ? (\r\n
      \r\n {this.state.formError.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
      \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 \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Column } from \"primereact/column\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Button } from \"primereact/button\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { FileUpload } from \"primereact/fileupload\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport { confirmAlert } from \"react-confirm-alert\"; // Import\r\nimport { ConfirmationModal } from \"../../template/ConfirmationModal\";\r\nimport CompanyMasterService from \"../../services/CompanyMasterService\";\r\nimport \"react-confirm-alert/src/react-confirm-alert.css\"; // Import css\r\nimport MessageComponent from \"../../template/Message\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport $ from \"jquery\";\r\n\r\n// Company Master\r\nexport default class CompanyMaster extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.CompanyMasterService = new CompanyMasterService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n CCode: \"\",\r\n visible: false,\r\n CompId: 0,\r\n sortIcon: false,\r\n CompanyName: \"\",\r\n CompanyDisplayName: \"\",\r\n updateLoader: false,\r\n Email: \"\",\r\n Address: \"\",\r\n Mobile: \"\",\r\n GTIN:\"\",\r\n City: \"\",\r\n Pincode: \"\",\r\n IsActive: false,\r\n CompanyLogo: \"\",\r\n sortOrder: \"1\",\r\n formError: {\r\n CCode: \"\",\r\n CompanyName: \"\",\r\n CompanyDisplayName: \"\",\r\n Email: \"\",\r\n CompanyLogo: \"\",\r\n Address: \"\",\r\n Mobile: \"\",\r\n GTIN:\"\",\r\n City: \"\",\r\n Pincode: \"\",\r\n },\r\n uploadImagPath: \"\",\r\n formHeading: \"Add Company\",\r\n buttonLabel: \"Submit\",\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 5,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n };\r\n this.brandTemplate = this.brandTemplate.bind(this);\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.setImagePath = this.setImagePath.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n this.hideFunc = this.hideFunc.bind(this);\r\n this.onPage = this.onPage.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.openDialog = this.openDialog.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n }\r\n\r\n //trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.GetCompany();\r\n }, 100);\r\n\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n //loading page\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetCompany();\r\n }, 250);\r\n }\r\n // use for image\r\n brandTemplate(rowData, column) {\r\n var src = rowData.CompanyLogo;\r\n return src.length > 0 ? (\r\n \"compang\r\n ) : (\r\n \"\"\r\n );\r\n }\r\n\r\n // set Image Path\r\n setImagePath(event) {\r\n let errors = this.state.formError;\r\n errors.CompanyLogo = \"\";\r\n if (event.xhr) {\r\n if (event.xhr.response) {\r\n const response = JSON.parse(event.xhr.response);\r\n //if event response is 200 then image path will be added to state else it will move to 'else statement'\r\n if (response) {\r\n if (response.ResponseCode === \"200\") {\r\n this.setState({\r\n uploadImagPath: response.Source,\r\n });\r\n } else if (response.ResponseCode === \"400\") {\r\n errors.CompanyLogo = \"Only image format is accepted.\";\r\n this.setState({\r\n uploadImagPath: \"\",\r\n });\r\n } else {\r\n // this.messageService.add({ severity: 'error', summary: 'Oops', detail: response.ResponseMessage });\r\n }\r\n } else {\r\n //this.messageService.add({ severity: 'error', summary: 'Oops', detail: 'Something went wrong' });\r\n }\r\n } else {\r\n //this.messageService.add({ severity: 'error', summary: 'Oops', detail: 'Something went wrong' });\r\n }\r\n } else {\r\n //this.messageService.add({ severity: 'error', summary: 'Oops', detail: 'Something went wrong' });\r\n }\r\n }\r\n\r\n deleteFunc() {\r\n this.refs.child.confirmModal();\r\n }\r\n\r\n onErrorImage() {}\r\n\r\n // call back Function\r\n callbackFunction = (childData) => {\r\n this.setState({ message: childData });\r\n };\r\n\r\n // Get list of data\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = true;\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n }\r\n\r\n // get company data list from api\r\n GetCompany() {\r\n this.tblResponse.SortColumn = \"CreatedDt\";\r\n this.CompanyMasterService.GetCompany(this.tblResponse).then((data) => {\r\n ;\r\n const resdata = data.data;\r\n //when response data is not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n updateLoader: true,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n });\r\n }\r\n //when response data is null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n updateLoader: true,\r\n });\r\n }\r\n });\r\n }\r\n\r\n // call every change of form and validation part also\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n\r\n const isValid = this.validateForm(value, name);\r\n this.setState({ errors, [name]: value });\r\n\r\n //this statement will set state value for IsActive\r\n if (name == \"IsActive\")\r\n this.setState({\r\n IsActive: event.target.checked,\r\n });\r\n }\r\n\r\n // Open Dialog\r\n openDialog() {\r\n this.setState({ visible: true });\r\n this.formReset();\r\n }\r\n\r\n // validate form\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n //this switch case is used for each form field to validate\r\n switch (name) {\r\n case \"CCode\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.CCode = \"Please enter Company Code.\";\r\n } else errors.CCode = \"\";\r\n break;\r\n case \"City\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.City = \"Please enter City.\";\r\n } else errors.City = \"\";\r\n break;\r\n\r\n case \"Pincode\":\r\n if (value.length < 6 || value.match(/^[A-Za-z]+$/)) {\r\n IsValid = false;\r\n errors.Pincode = \"Please enter Valid Pincode.\";\r\n } else if (!value.match(/^[0-9]+$/)) {\r\n IsValid = false;\r\n errors.Pincode = \"Please enter valid pincode.\";\r\n } else if (value.length != 6) {\r\n IsValid = false;\r\n errors.Pincode = \"Please enter valid pincode.\";\r\n } else errors.Pincode = \"\";\r\n break;\r\n case \"CompanyName\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.CompanyName = \"Please enter Company name.\";\r\n } else errors.CompanyName = \"\";\r\n break;\r\n case \"CompanyDisplayName\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.CompanyDisplayName = \"Please enter Company display name.\";\r\n }\r\n // else if (value.length >= 1) {\r\n // if (!value.match(/^[A-Za-z]+$/)) {\r\n // IsValid = false;\r\n // errors.CartonSize = \"FirstName should be alpha only.\"\r\n // } else errors.CartonSize = ''\r\n // }\r\n else errors.CompanyDisplayName = \"\";\r\n break;\r\n case \"Mobile\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.Mobile = \"Please enter Mobile.\";\r\n } else if (value.length >= 1) {\r\n if (!value.match(/^[6-9]\\d{9}$/)) {\r\n IsValid = false;\r\n errors.Mobile = \"Please enter valid mobile no.\";\r\n } else errors.Mobile = \"\";\r\n } else errors.Mobile = \"\";\r\n break;\r\n\r\n case \"Address\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.Address = \"Please enter Address.\";\r\n } else errors.Address = \"\";\r\n break;\r\n\r\n case \"Email\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.Email = \"Please enter Email.\";\r\n } else if (value.length >= 1) {\r\n if (!value.match(/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/)) {\r\n IsValid = false;\r\n errors.Email = \"Please enter valid email-id.\";\r\n } else errors.Email = \"\";\r\n } else errors.Email = \"\";\r\n break;\r\n // case 'IsActive':\r\n // this.setState({\r\n // IsActive: value\r\n // });\r\n // break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return IsValid;\r\n }\r\n\r\n // reset form text value\r\n formReset() {\r\n this.setState({\r\n CompId: 0,\r\n sortIcon: false,\r\n CompanyName: \"\",\r\n CompanyDisplayName: \"\",\r\n Email: \"\",\r\n Address: \"\",\r\n Mobile: \"\",\r\n GTIN:\"\",\r\n City: \"\",\r\n Pincode: \"\",\r\n IsActive: false,\r\n Mobile: \"\",\r\n Email: \"\",\r\n GTIN:\"\",\r\n CompanyLogo: \"\",\r\n IsActive: true,\r\n CreatedBy: \"\",\r\n uploadImagPath: \"\",\r\n CCode: \"\",\r\n });\r\n let errors = this.state.formError;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = \"\";\r\n });\r\n }\r\n\r\n // add text\r\n hideFunc() {\r\n this.setState({\r\n visible: false,\r\n buttonLabel: \"Submit\",\r\n formHeading: \"Add Company\",\r\n });\r\n this.formReset();\r\n }\r\n\r\n // submit form and create or x\r\n submitForm(event) {\r\n event.preventDefault();\r\n\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formError;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key];\r\n let valid = this.validateForm(val, key);\r\n //when form validation is not valid\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n let checkbox = document.getElementsByName(\"IsActive\");\r\n //when isfrmvalid is true\r\n if (isfrmvalid) {\r\n const formData = {\r\n CCode: this.state.CCode,\r\n CompId: this.state.CompId,\r\n CompanyName: this.state.CompanyName,\r\n CompanyDisplayName: this.state.CompanyDisplayName,\r\n Mobile: this.state.Mobile,\r\n GTIN:this.state.GTIN,\r\n Email: this.state.Email,\r\n Address: this.state.Address,\r\n CompanyLogo: this.state.uploadImagPath,\r\n IsActive: this.state.IsActive,\r\n City: this.state.City,\r\n Pincode: this.state.Pincode,\r\n };\r\n this.setState({ updateLoader: false });\r\n setTimeout(() => {\r\n this.CompanyMasterService.CreateCompany(formData).then((data) => {\r\n ;\r\n const resdata = data.data;\r\n //when data is not null it will give success message else will move to 'else statement'\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n this.setState({\r\n loading: true,\r\n visible: false,\r\n updateLoader: true,\r\n });\r\n this.formReset();\r\n this.GetCompany();\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }, 100);\r\n }\r\n }\r\n\r\n // delete user data\r\n // deleteUser(referenceID) {\r\n // this.UserService.DeleteUser(referenceID).then(data => {\r\n // const resdata = data.data;\r\n // if (resdata !== null && resdata.ResponseCode === '200') {\r\n // this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n // const totlrecord = this.state.totalRecords - 1;\r\n // const row = this.state.rows;\r\n\r\n // if (this.tblResponse.First >= totlrecord) {\r\n // const _curntCursor = Math.round(totlrecord / row);\r\n // this.tblResponse.First = _curntCursor + 1;\r\n // }\r\n // this.GetUsers();\r\n // } else if (resdata.ResponseCode === '400') {\r\n // this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n // } else {\r\n // this.refs.Messchild.showError(resdata.ResponseMessage);\r\n // }\r\n // });\r\n // }\r\n\r\n // Search Filter data\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetCompany();\r\n }\r\n\r\n // callbackFunction = (childData) => {\r\n // this.setState({ message: childData })\r\n // }\r\n\r\n //return checkbox disabled\r\n activeTemplate(rowData, column) {\r\n return ;\r\n }\r\n\r\n // Sorting Data\r\n onSort(event) {\r\n this.setState({\r\n sortOrder: this.state.sortOrder === 1 ? 2 : 1,\r\n sortIcon: !this.state.sortIcon,\r\n });\r\n const sortField =\r\n event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetCompany();\r\n const clickData = document.getElementsByClassName(\r\n \"p-sortable-column-icon pi pi-fw pi-sort\"\r\n );\r\n console.log(event);\r\n }\r\n\r\n // edit form\r\n actionTemplate(rowData, column) {\r\n const editMode = (e) => {\r\n this.setState({\r\n buttonLabel: \"Update\",\r\n formHeading: \"Update Company\",\r\n visible: true,\r\n CompId: rowData.CompId,\r\n CompanyName: rowData.CompanyName,\r\n CompanyDisplayName: rowData.CompanyDisplayName,\r\n uploadImagPath: rowData.CompanyLogo,\r\n Email: rowData.Email,\r\n Address: rowData.Address,\r\n Mobile: rowData.Mobile,\r\n GTIN: rowData.GTIN,\r\n IsActive: rowData.IsActive,\r\n CCode: rowData.CCode,\r\n City: rowData.City,\r\n Pincode: rowData.Pincode,\r\n });\r\n // let checkbox = document.getElementsByName('IsActive');\r\n // checkbox[0].checked = rowData.IsActive;\r\n };\r\n\r\n return (\r\n \r\n \r\n {/* */}\r\n \r\n );\r\n }\r\n\r\n // create html part\r\n //resolved-84\r\n render() {\r\n const items = [{ label: \"Masters\" }, { label: \"Company Master\" }];\r\n\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n let header = (\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

      Company Master

      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n\r\n \r\n this.setState({ selectedProducts: e.value })\r\n }\r\n responsive={true}\r\n header={header}\r\n globalFilter={this.state.globalFilter}\r\n emptyMessage={this.state.emptyMessage}\r\n value={this.state.sales}\r\n sortMode=\"multiple\"\r\n paginator={true}\r\n rows={this.state.rows}\r\n rowsPerPageOptions={[5, 10, 20]}\r\n currentPageReportTemplate=\"Showing {first} to {last} of {totalRecords}\"\r\n paginatorTemplate=\"CurrentPageReport FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown\"\r\n totalRecords={this.state.totalRecords}\r\n lazy={true}\r\n first={this.state.first}\r\n onPage={this.onPage}\r\n onSort={this.onSort}\r\n className=\"tblAuto\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.CCode !== \"\" ? (\r\n
      {this.state.formError.CCode}
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.CompanyName !== \"\" ? (\r\n
      \r\n {this.state.formError.CompanyName}\r\n
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.CompanyDisplayName !== \"\" ? (\r\n
      \r\n {this.state.formError.CompanyDisplayName}\r\n
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.GTIN !== \"\" ? (\r\n
      {this.state.formError.GTIN}
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.Email !== \"\" ? (\r\n
      {this.state.formError.Email}
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.City !== \"\" ? (\r\n
      {this.state.formError.City}
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.Pincode !== \"\" ? (\r\n
      {this.state.formError.Pincode}
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.Address !== \"\" ? (\r\n
      {this.state.formError.Address}
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.Mobile !== \"\" ? (\r\n
      {this.state.formError.Mobile}
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n\r\n {this.state.uploadImagPath ? (\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n ) : null}\r\n\r\n {this.state.formError.CompanyLogo !== null ? (\r\n
      \r\n {this.state.formError.CompanyLogo}\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","import instance from './DefaultApi';\r\n\r\nexport default class CountryService {\r\n ControllerName = 'Country';\r\n\r\n\r\n // Save Countries \r\n GetCountries(cCode) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetCountries?cCode=` + cCode).then(res => res)\r\n }\r\n\r\n\r\n // Get States \r\n GetStates(cCode) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetStates?cCode=` + cCode, null).then(res => res)\r\n }\r\n\r\n // Get Cities \r\n GetCities(sCode) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetCities?sCode=` + sCode, null).then(res => res)\r\n }\r\n\r\n\r\n}","import React, { Component } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Column } from \"primereact/column\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport UserService from \"../../services/UserService\";\r\nimport CountryService from \"../../services/CountryService\";\r\nimport CompanyMasterService from \"../../services/CompanyMasterService\";\r\nimport { Button } from \"primereact/button\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport { confirmAlert } from \"react-confirm-alert\"; // Import\r\nimport { ConfirmationModal } from \"../../template/ConfirmationModal\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport $, { contains } from \"jquery\";\r\nimport ApiService from \"../../services/apiService\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport { Card } from \"primereact/card\";\r\nimport { CSVLink } from \"react-csv\";\r\n// Manage Dealer data\r\nexport default class DealerMaster extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.ApiService = new ApiService();\r\n this.UserService = new UserService();\r\n this.CompanyMasterService = new CompanyMasterService();\r\n this.CountryService = new CountryService();\r\n this.tblResponse = new tableRequest();\r\n this.tblResponseExport = new tableRequest();\r\n this.state = {\r\n heads: [\r\n \"CompanyName\",\r\n \"FirstName\",\r\n \"Email\",\r\n \"MobileNo\",\r\n \"bill_Address1\",\r\n \"City\",\r\n \"State\",\r\n \"CreatedDt\",\r\n ],\r\n exportData: [],\r\n visible: false,\r\n ReferenceID: \"\",\r\n updateLoader: false,\r\n sortIcon: false,\r\n UserName: \"\",\r\n ship_City: \"\",\r\n ship_State: \"\",\r\n ship_Country: \"\",\r\n ship_Address1: \"\",\r\n ship_Address2: \"\",\r\n ship_Pincode: \"\",\r\n chkbx: true,\r\n bill_City: \"\",\r\n bill_State: \"\",\r\n bill_Country: \"\",\r\n bill_Address1: \"\",\r\n bill_Address2: \"\",\r\n bill_Pincode: \"\",\r\n\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Email: \"\",\r\n MobileNo: \"\",\r\n Password: \"\",\r\n ConfirmPassword: \"\",\r\n GST: \"\",\r\n TIN: \"\",\r\n IsActive: false,\r\n sortOrder: \"1\",\r\n UserType: 1, //dealer\r\n CompanyId: \"\",\r\n companyDDL: [],\r\n formError: {\r\n ship_Country: \"\",\r\n UserName: \"\",\r\n ship_City: \"\",\r\n ship_State: \"\",\r\n bill_City: \"\",\r\n bill_State: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Password: \"\",\r\n bill_Country: \"\",\r\n Email: \"\",\r\n ConfirmPassword: \"\",\r\n GST: \"\",\r\n TIN: \"\",\r\n MobileNo: \"\",\r\n bill_Pincode: \"\",\r\n bill_Address1: \"\",\r\n bill_Address2: \"\",\r\n ship_Pincode: \"\",\r\n ship_Address1: \"\",\r\n ship_Address2: \"\",\r\n CompanyId: \"\",\r\n },\r\n\r\n formHeading: \"Add Dealer\",\r\n buttonLabel: \"Submit\",\r\n sales: [],\r\n ship_citySelectItems: [],\r\n ship_stateSelectItems: [],\r\n ship_countrySelectItems: [],\r\n bill_citySelectItems: [],\r\n bill_stateSelectItems: [],\r\n bill_countrySelectItems: [],\r\n loading: true,\r\n first: 0,\r\n rows: 5,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n compDisabled: false,\r\n };\r\n\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.SameAsBilling = this.SameAsBilling.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n this.hideFunc = this.hideFunc.bind(this);\r\n this.onPage = this.onPage.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.openDialog = this.openDialog.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n this.GetUserExport = this.GetUserExport.bind(this);\r\n }\r\n //trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.tblResponse.UserType = 1;\r\n this.GetUsers(this.tblResponse);\r\n this.GetStates(0);\r\n this.GetCities(0);\r\n\r\n this.GetCompany();\r\n }, 1000);\r\n\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n\r\n this.GetCountry();\r\n\r\n this.tblResponseExport.PageSize = -1;\r\n this.tblResponseExport.First = 1;\r\n this.tblResponseExport.UserType = 1;\r\n this.tblResponseExport.IsActive = true;\r\n this.tblResponseExport.SearchValue = \"\";\r\n this.tblResponseExport.SortOrder = \"ASC\";\r\n this.GetUserExport();\r\n }\r\n\r\n // get user data list from api\r\n GetUserExport() {\r\n this.tblResponseExport.SortColumn = \"CreatedDt\";\r\n this.UserService.GetUsers(this.tblResponseExport).then((data) => {\r\n const resdata = data.data;\r\n //when response data is not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n exportData: resdata.ResponseData,\r\n });\r\n }\r\n });\r\n }\r\n\r\n //loading page\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n }, 250);\r\n }\r\n\r\n // get list data\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = true;\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n this.tblResponse.UserType = 1;\r\n\r\n this.GetUsers(this.tblResponse);\r\n }\r\n\r\n //to get country data\r\n GetCountry() {\r\n this.CountryService.GetCountries(\"101\").then((data) => {\r\n const resdata = data.data;\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.state.ship_countrySelectItems = resdata.ResponseData;\r\n this.state.bill_countrySelectItems = resdata.ResponseData;\r\n }\r\n });\r\n }\r\n\r\n SetState(cCode, fieldName) {\r\n if (fieldName == \"bill_Country\") {\r\n const resdata = this.state.allstate.filter((x) => x.CountryId == cCode);\r\n this.setState({\r\n bill_stateSelectItems: resdata,\r\n });\r\n }\r\n if (fieldName == \"ship_Country\") {\r\n const resdata = this.state.allstate.filter((x) => x.CountryId == cCode);\r\n this.setState({\r\n ship_stateSelectItems: resdata,\r\n });\r\n }\r\n }\r\n SetCity(sCode, fieldName) {\r\n if (fieldName == \"bill_State\") {\r\n const resdata = this.state.allcity.filter((x) => x.StateId == sCode);\r\n this.setState({\r\n bill_citySelectItems: resdata,\r\n });\r\n }\r\n if (fieldName == \"ship_State\") {\r\n const resdata = this.state.allcity.filter((x) => x.StateId == sCode);\r\n this.setState({\r\n ship_citySelectItems: resdata,\r\n });\r\n }\r\n }\r\n\r\n GetStates(cCode) {\r\n this.CountryService.GetStates(cCode).then((data) => {\r\n const resdata = data.data;\r\n\r\n this.setState({\r\n allstate: resdata.ResponseData,\r\n bill_stateSelectItems: resdata.ResponseData,\r\n ship_stateSelectItems: resdata.ResponseData,\r\n });\r\n\r\n // if(fieldName == 'bill_Country')\r\n // this.setState({\r\n // \"bill_stateSelectItems\" : resdata.ResponseData,\r\n // \"ship_stateSelectItems\" : resdata.ResponseData\r\n // });\r\n\r\n // if(fieldName == 'ship_Country')\r\n // this.setState({\r\n // \"ship_stateSelectItems\" : resdata.ResponseData\r\n // });\r\n });\r\n }\r\n\r\n GetCities(sCode) {\r\n this.CountryService.GetCities(sCode).then((data) => {\r\n const resdata = data.data;\r\n this.setState({\r\n allcity: resdata.ResponseData,\r\n bill_citySelectItems: resdata.ResponseData,\r\n ship_citySelectItems: resdata.ResponseData,\r\n });\r\n // if(fieldName == 'bill_State')\r\n // this.setState({\r\n // \"bill_citySelectItems\" : resdata.ResponseData,\r\n // \"ship_citySelectItems\" : resdata.ResponseData\r\n // });\r\n\r\n // if(fieldName == 'ship_State')\r\n // this.setState({\r\n // \"ship_citySelectItems\" : resdata.ResponseData\r\n // });\r\n });\r\n }\r\n\r\n // get users data list from api\r\n GetUsers(tbl) {\r\n this.tblResponse.SortColumn = \"CreatedDt\";\r\n this.UserService.GetUsers(tbl).then((data) => {\r\n const resdata = data.data;\r\n //when response data is not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n updateLoader: true,\r\n });\r\n }\r\n //when response data is null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n updateLoader: true,\r\n });\r\n }\r\n });\r\n }\r\n\r\n // call every change of form and validation part also\r\n handleChange(event) {\r\n if (\r\n this.state.bill_Pincode != (null || undefined || \"\") &&\r\n this.state.bill_Address1 != (null || undefined || \"\") &&\r\n this.state.bill_Address2 != (null || undefined || \"\") &&\r\n this.state.ship_Pincode != (null || undefined || \"\") &&\r\n this.state.ship_Address1 != (null || undefined || \"\") &&\r\n this.state.ship_Address2 != (null || undefined || \"\")\r\n ) {\r\n this.setState({\r\n chkbx: false,\r\n });\r\n }\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n\r\n const isValid = this.validateForm(value, name);\r\n this.setState({ errors, [name]: value });\r\n //this statement will set state value for IsActive\r\n if (name == \"IsActive\")\r\n this.setState({\r\n IsActive: event.target.checked,\r\n });\r\n }\r\n\r\n // call to update billing to shipping\r\n SameAsBilling(event) {\r\n if (event.target.checked) {\r\n this.setState({\r\n ship_countrySelectItems: this.state.bill_countrySelectItems,\r\n ship_stateSelectItems: this.state.bill_stateSelectItems,\r\n ship_citySelectItems: this.state.bill_citySelectItems,\r\n ship_Country: this.state.bill_Country,\r\n ship_State: this.state.bill_State,\r\n ship_City: this.state.bill_City,\r\n ship_Address1: this.state.bill_Address1,\r\n ship_Address2: this.state.bill_Address2,\r\n ship_Pincode: this.state.bill_Pincode,\r\n });\r\n }\r\n }\r\n\r\n // Validate form\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n\r\n //this switch case is used for each form field to validate\r\n switch (name) {\r\n // case 'UserName':\r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.UserName = \"Please enter your username.\";\r\n // } else errors.UserName = ''\r\n // break;\r\n // case 'ship_Country':\r\n // if (value == undefined || value == \"\") {\r\n // IsValid = false;\r\n // errors.ship_Country = \"Please select country.\";\r\n // } else {\r\n // errors.ship_Country = '';\r\n // this.SetState(value.CountryId, name);\r\n // }\r\n\r\n // break;\r\n case \"bill_Country\":\r\n if (value == undefined || value == \"\") {\r\n IsValid = false;\r\n errors.bill_Country = \"Please Select Country.\";\r\n } else {\r\n errors.bill_Country = \"\";\r\n this.SetState(value.CountryId, name);\r\n }\r\n break;\r\n case \"FirstName\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.FirstName = \"Please Enter Your First Name.\";\r\n } else errors.FirstName = \"\";\r\n break;\r\n // case \"GST\": \r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.GST = \"Please enter your GST No.\";\r\n // } else errors.GST = \"\";\r\n // break;\r\n // case \"TIN\":\r\n // if (value == undefined || value == \"\" || value.length < 1) {\r\n // IsValid = false;\r\n // errors.TIN = \"Please enter TIN\";\r\n // }\r\n\r\n // break;\r\n // case 'LastName':\r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.LastName = \"Please enter your last name.\";\r\n // }\r\n // else if (value.length >= 1) {\r\n // if (!value.match(/^[A-Za-z]+$/)) {\r\n // IsValid = false;\r\n // errors.LastName = \"LastName should be alpha only.\"\r\n // } else errors.LastName = ''\r\n // }\r\n // else errors.LastName = ''\r\n // break;\r\n // case 'Email':\r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.Email = \"Please enter your email-id.\";\r\n // }\r\n // else if (value.length >= 1) {\r\n // if (!value.match(/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/)) {\r\n // IsValid = false;\r\n // errors.Email = \"Please enter valid email-id.\";\r\n // } else errors.Email = ''\r\n // } else errors.Email = ''\r\n // break;\r\n case \"MobileNo\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.MobileNo = \"Please Enter Your Mobile No.\";\r\n } else if (value.length >= 1) {\r\n if (!value.match(/^[6-9]\\d{9}$/)) {\r\n IsValid = false;\r\n errors.MobileNo = \"Please enter valid mobile no.\";\r\n } else errors.MobileNo = \"\";\r\n } else errors.MobileNo = \"\";\r\n break;\r\n case \"Password\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.Password = \"Please Enter Password.\";\r\n } else if (!value.match(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d).{4,10}$/)) {\r\n IsValid = false;\r\n errors.Password =\r\n \"Password should be minimum 4 characters long, 1 uppercase & 1 lowercase character with 1 number.\";\r\n } else if (\r\n value.length >= 1 &&\r\n this.state.ConfirmPassword.length >= 1\r\n ) {\r\n errors.Password = \"\";\r\n errors.ConfirmPassword = \"\";\r\n if (!(value === this.state.ConfirmPassword)) {\r\n IsValid = false;\r\n errors.Password = \"Password Does Not Match\";\r\n } else errors.Password = \"\";\r\n } else errors.Password = \"\";\r\n break;\r\n\r\n case \"ConfirmPassword\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.ConfirmPassword = \"Please Enter Confirm Password.\";\r\n } else if (value.length >= 1 && this.state.Password.length >= 1) {\r\n errors.Password = \"\";\r\n errors.ConfirmPassword = \"\";\r\n if (!(value === this.state.Password)) {\r\n IsValid = false;\r\n errors.ConfirmPassword = \"Confirm Password Does Not Match\";\r\n } else errors.ConfirmPassword = \"\";\r\n } else errors.ConfirmPassword = \"\";\r\n break;\r\n\r\n case \"IsActive\":\r\n this.setState({\r\n IsActive: value,\r\n });\r\n break;\r\n case 'ship_City':\r\n if (value == undefined || value == \"\") {\r\n IsValid = false;\r\n errors.ship_City = \"Please Select City\";\r\n } else\r\n errors.ship_City = '';\r\n break;\r\n case \"bill_City\":\r\n if (value == undefined || value == \"\") {\r\n IsValid = false;\r\n errors.bill_City = \"Please Select City\";\r\n } else errors.bill_City = \"\";\r\n break;\r\n case \"bill_State\":\r\n if (value == undefined || value == \"\") {\r\n IsValid = false;\r\n errors.bill_State = \"Please Select State\";\r\n } else {\r\n errors.bill_State = \"\";\r\n this.SetCity(value.StateId, name);\r\n }\r\n break;\r\n case 'ship_State':\r\n if (value == undefined || value == \"\") {\r\n IsValid = false;\r\n errors.ship_State = \"Please Select State\";\r\n } else {\r\n errors.ship_State = '';\r\n this.SetCity(value.StateId, name);\r\n }\r\n break;\r\n case \"bill_Address1\":\r\n if (value == undefined || value == \"\" || value.length < 1) {\r\n IsValid = false;\r\n errors.bill_Address1 = \"Please Enter Bill Address\";\r\n }\r\n break;\r\n // case 'bill_Address2':\r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.bill_Address2 = \"Please enter address2\";\r\n // }\r\n // break;\r\n case 'bill_Pincode':\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.bill_Pincode = \"Please enter pincode\";\r\n }\r\n // break;\r\n case \"ship_Address1\":\r\n if (value == undefined || value == \"\" || value.length < 1) {\r\n IsValid = false;\r\n errors.ship_Address1 = \"Please Enter Ship Address\";\r\n }\r\n break;\r\n \r\n // case 'ship_Address2':\r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.ship_Address2 = \"Please enter address2\";\r\n // }\r\n // break;\r\n case 'bill_Pincode':\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.bill_Pincode = \"Please enter pincode\";\r\n } else if (!/^\\d{6}$/.test(value)) {\r\n IsValid = false;\r\n errors.bill_Pincode = \"Please enter a valid 6-digit pincode\";\r\n } else {\r\n errors.bill_Pincode = '';\r\n }\r\n break;\r\n case 'ship_Pincode':\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.ship_Pincode = \"Please enter pincode\";\r\n } else if (!/^\\d{6}$/.test(value)) {\r\n IsValid = false;\r\n errors.ship_Pincode = \"Please enter a valid 6-digit pincode\";\r\n } else {\r\n errors.ship_Pincode = '';\r\n }\r\n break;\r\n case \"CompanyId\":\r\n if (value == undefined || value == \"\") {\r\n IsValid = false;\r\n errors.CompanyId = \"Please select Company\";\r\n } else {\r\n errors.CompanyId = \"\";\r\n }\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return IsValid;\r\n }\r\n\r\n // reset form text value\r\n formReset() {\r\n this.setState({\r\n ReferenceID: \"\",\r\n UserName: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n chkbx: true,\r\n Email: \"\",\r\n MobileNo: \"\",\r\n Password: \"\",\r\n ConfirmPassword: \"\",\r\n GST: \"\",\r\n TIN: \"\",\r\n IsActive: true,\r\n ship_City: \"\",\r\n ship_State: \"\",\r\n ship_Country: \"\",\r\n ship_Address1: \"\",\r\n ship_Address2: \"\",\r\n ship_Pincode: \"\",\r\n bill_City: \"\",\r\n bill_State: \"\",\r\n bill_Country: \"\",\r\n bill_Address1: \"\",\r\n bill_Address2: \"\",\r\n bill_Pincode: \"\",\r\n });\r\n let errors = this.state.formError;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = \"\";\r\n });\r\n }\r\n\r\n hideFunc() {\r\n this.setState({\r\n visible: false,\r\n buttonLabel: \"Submit\",\r\n formHeading: \"Add Dealer\",\r\n });\r\n this.formReset();\r\n }\r\n // open Dialog\r\n openDialog() {\r\n this.setState({ visible: true });\r\n this.formReset();\r\n }\r\n // submit form and create or update user\r\n submitForm(event) {\r\n event.preventDefault();\r\n\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formError;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key];\r\n let valid = this.validateForm(val, key);\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n\r\n if (isfrmvalid) {\r\n \r\n this.setState({ updateLoader: false });\r\n console.log(this.ship_City);\r\n const formData = {\r\n // UserName: this.state.,\r\n FirstName: this.state.FirstName,\r\n GST: this.state.GST,\r\n TIN: this.state.TIN,\r\n LastName: this.state.LastName,\r\n Email: this.state.Email,\r\n MobileNo: this.state.MobileNo,\r\n Password: this.state.Password,\r\n ReferenceID: this.state.ReferenceID,\r\n userId: this.state.userId,\r\n IsActive: this.state.IsActive,\r\n UserType: this.state.UserType,\r\n bill_City: this.state.bill_City.CityId,\r\n bill_State: this.state.bill_State.StateId,\r\n bill_Country: this.state.bill_Country.CountryId,\r\n bill_Pincode: this.state.bill_Pincode,\r\n bill_Address1: this.state.bill_Address1,\r\n bill_Address2: this.state.bill_Address2,\r\n ship_City: this.state.ship_City.CityId,\r\n ship_State: this.state.ship_State.StateId,\r\n ship_Country: this.state.ship_Country.CountryId,\r\n ship_Pincode: this.state.ship_Pincode,\r\n ship_Address1: this.state.ship_Address1,\r\n ship_Address2: this.state.ship_Address2,\r\n CompanyId: this.state.CompanyId.CompId,\r\n };\r\n\r\n setTimeout(() => {\r\n this.UserService.CreateUpdateUser(formData).then((data) => {\r\n const resdata = data.data;\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n this.setState({\r\n loading: true,\r\n visible: false,\r\n updateLoader: true,\r\n });\r\n this.formReset();\r\n this.GetUsers(this.tblResponse);\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }, 100);\r\n }\r\n }\r\n\r\n // delete user data\r\n // deleteUser(referenceID) {\r\n // this.UserService.DeleteUser(referenceID).then((data) => {\r\n // const resdata = data.data;\r\n // if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n // this.GetUsers(this.tblResponse);\r\n // this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n // const totlrecord = this.state.totalRecords - 1;\r\n // const row = this.state.rows;\r\n\r\n // if (this.tblResponse.First >= totlrecord) {\r\n // const _curntCursor = Math.round(totlrecord / row);\r\n // this.tblResponse.First = _curntCursor + 1;\r\n // }\r\n // } else if (resdata.ResponseCode === \"400\") {\r\n // this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n // } else {\r\n // this.refs.Messchild.showError(resdata.ResponseMessage);\r\n // }\r\n // });\r\n // }\r\n GetCompany() {\r\n this.CompanyMasterService.GetCompanyDDL().then((data) => {\r\n const resdata = data.data;\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n companyDDL: resdata.ResponseData,\r\n });\r\n\r\n if (this.ApiService.getIsAdmin() == \"false\") {\r\n const CompanyObj = this.state.companyDDL.filter(\r\n (x) => x.CompId == this.ApiService.getCompanyId()\r\n );\r\n this.setState({\r\n CompanyId: CompanyObj[0],\r\n compDisabled: true,\r\n });\r\n }\r\n }\r\n });\r\n }\r\n setOnEditDDL(rowData) {\r\n this.SetState(rowData.ship_Country, \"ship_Country\");\r\n this.SetState(rowData.bill_Country, \"bill_Country\");\r\n this.SetCity(rowData.ship_State, \"ship_State\");\r\n this.SetCity(rowData.bill_State, \"bill_State\");\r\n }\r\n\r\n // Search Filter\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetUsers(this.tblResponse);\r\n }\r\n\r\n callbackFunction = (childData) => {\r\n this.setState({ message: childData });\r\n };\r\n\r\n // disabled check box\r\n activeTemplate(rowData, column) {\r\n return ;\r\n }\r\n\r\n // sort page\r\n onSort(event) {\r\n this.setState({\r\n sortOrder: this.state.sortOrder === 1 ? 2 : 1,\r\n sortIcon: !this.state.sortIcon,\r\n });\r\n const sortField =\r\n event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetUsers(this.tblResponse);\r\n const clickData = document.getElementsByClassName(\r\n \"p-sortable-column-icon pi pi-fw pi-sort\"\r\n );\r\n console.log(event);\r\n }\r\n\r\n // edit form\r\n actionTemplate(rowData, column) {\r\n const editMode = (e) => {\r\n \r\n this.setState({\r\n buttonLabel: \"Update\",\r\n formHeading: \"Update Dealer\",\r\n visible: true,\r\n ReferenceID: rowData.ReferenceID,\r\n userId: rowData.userId,\r\n UserName: rowData.Username,\r\n FirstName: rowData.FirstName,\r\n LastName: rowData.LastName,\r\n Email: rowData.Email,\r\n MobileNo: rowData.MobileNo,\r\n Password: rowData.Password,\r\n ConfirmPassword: rowData.Password,\r\n GST: rowData.GST,\r\n TIN: rowData.TIN,\r\n IsActive: rowData.IsActive,\r\n ship_Address1: rowData.ship_Address1,\r\n // ship_Address2: rowData.ship_Address2,\r\n ship_Pincode: rowData.ship_Pincode,\r\n bill_Address1: rowData.bill_Address1,\r\n bill_Address2: rowData.bill_Address2,\r\n bill_Pincode: rowData.bill_Pincode,\r\n });\r\n\r\n const CompanyObj = this.state.companyDDL.filter(\r\n (x) => x.CompId == rowData.CompanyId\r\n );\r\n\r\n const ship_CityObj = this.state.ship_citySelectItems.filter(x => x.CityId == rowData.ship_City)\r\n const bill_CityObj = this.state.bill_citySelectItems.filter(\r\n (x) => x.CityId == rowData.bill_City\r\n );\r\n\r\n const ship_CountryObj = this.state.ship_countrySelectItems.filter(x => x.CountryId == rowData.ship_Country)\r\n const bill_CountryObj = this.state.bill_countrySelectItems.filter(\r\n (x) => x.CountryId == rowData.bill_Country\r\n );\r\n\r\n const ship_StateObj = this.state.ship_stateSelectItems.filter(x => x.StateId == rowData.ship_State)\r\n const bill_StateObj = this.state.bill_stateSelectItems.filter(\r\n (x) => x.StateId == rowData.bill_State\r\n );\r\n\r\n this.setState({\r\n ship_Country: ship_CountryObj[0],\r\n bill_Country: bill_CountryObj[0],\r\n ship_State: ship_StateObj[0],\r\n bill_State: bill_StateObj[0],\r\n ship_City: ship_CityObj[0],\r\n bill_City: bill_CityObj[0],\r\n CompanyId: CompanyObj[0],\r\n });\r\n };\r\n\r\n // const deleteFunc = () => {\r\n // confirmAlert({\r\n // title: \"Confirm to delete\",\r\n // message: \"Are you sure to do this.\",\r\n // buttons: [\r\n // {\r\n // label: \"Yes\",\r\n // onClick: () => this.deleteUser(rowData.ReferenceID),\r\n // },\r\n // {\r\n // label: \"No\",\r\n // onClick: () => null,\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\r\n // create html part\r\n //resolved KREP-36\r\n render() {\r\n const items = [{ label: \"Masters\" }, { label: \"Dealer Master\" }];\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n let header = (\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
      \r\n

      Dealer 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 Export\r\n \r\n \r\n
      \r\n\r\n \r\n \r\n {/* */}\r\n \r\n {/* */}\r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n
      \r\n\r\n \r\n \r\n
      \r\n
      \r\n \r\n {\r\n this.handleChange(e);\r\n }}\r\n value={this.state.CompanyId}\r\n className=\"form-control\"\r\n placeholder=\"Select Company\"\r\n name=\"CompanyId\"\r\n options={this.state.companyDDL}\r\n />\r\n {this.state.formError.CompanyId !== null ? (\r\n
      {this.state.formError.CompanyId}
      \r\n ) : null}\r\n
      \r\n
      \r\n\r\n
      \r\n {/*
      \r\n \r\n \r\n {this.state.formError.UserName !== '' ?\r\n
      {this.state.formError.UserName}
      : ''}\r\n
      */}\r\n
      \r\n \r\n \r\n {this.state.formError.FirstName !== \"\" ? (\r\n
      {this.state.formError.FirstName}
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n {/*
      \r\n \r\n \r\n {this.state.formError.LastName !== '' ?\r\n
      {this.state.formError.LastName}
      : ''}\r\n
      */}\r\n
      \r\n \r\n \r\n {this.state.formError.Email !== null ?\r\n
      {this.state.formError.Email}
      : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.MobileNo !== null ? (\r\n
      {this.state.formError.MobileNo}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.Password !== null ? (\r\n
      {this.state.formError.Password}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.ConfirmPassword !== null ? (\r\n
      \r\n {this.state.formError.ConfirmPassword}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.GST !== null ? (\r\n
      \r\n {this.state.formError.GST}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.TIN !== null ? (\r\n
      \r\n {this.state.formError.TIN}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n

      \r\n Billing Address\r\n

      \r\n\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.bill_Country !== null ? (\r\n
      \r\n {this.state.formError.bill_Country}\r\n
      \r\n ) : null}\r\n
      \r\n \r\n \r\n {this.state.formError.bill_State !== null ? (\r\n
      \r\n {this.state.formError.bill_State}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.bill_City !== null ? (\r\n
      \r\n {this.state.formError.bill_City}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.bill_Address1 !== null ? (\r\n
      \r\n {this.state.formError.bill_Address1}\r\n
      \r\n ) : null}\r\n
      \r\n {/*
      \r\n \r\n \r\n {this.state.formError.bill_Address2 !== null ?\r\n
      {this.state.formError.bill_Address2}
      : null}\r\n
      */}\r\n
      \r\n \r\n \r\n {this.state.formError.bill_Pincode !== null ?\r\n
      {this.state.formError.bill_Pincode}
      : null}\r\n
      \r\n
      \r\n
      \r\n

      Shipping Address

      \r\n
      \r\n\r\n\r\n
      \r\n \r\n \r\n {this.state.formError.ship_Country !== null ?\r\n
      {this.state.formError.ship_Country}
      : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.ship_State !== null ?\r\n
      {this.state.formError.ship_State}
      : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.ship_City !== null ?\r\n
      {this.state.formError.ship_City}
      : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.ship_Address1 !== null ?\r\n
      {this.state.formError.ship_Address1}
      : null}\r\n
      \r\n {/*
      \r\n \r\n \r\n {this.state.formError.ship_Address2 !== null ?\r\n
      {this.state.formError.ship_Address2}
      : null}\r\n
      */}\r\n
      \r\n \r\n \r\n {this.state.formError.ship_Pincode !== null ?\r\n
      {this.state.formError.ship_Pincode}
      : 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","import React, { Component } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Column } from \"primereact/column\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport UserService from \"../../services/UserService\";\r\nimport { Button } from \"primereact/button\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport { confirmAlert } from \"react-confirm-alert\"; // Import\r\nimport { ConfirmationModal } from \"../../template/ConfirmationModal\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport { Card } from \"primereact/card\";\r\nimport $ from \"jquery\";\r\nexport default class ListMaster extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.UserService = new UserService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n visible: false,\r\n ReferenceID: \"\",\r\n sortIcon: false,\r\n UserName: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Email: \"\",\r\n MobileNo: \"\",\r\n Password: \"\",\r\n ConfirmPassword: \"\",\r\n IsActive: null,\r\n sortOrder: \"1\",\r\n formError: {\r\n UserName: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Password: \"\",\r\n Email: \"\",\r\n ConfirmPassword: \"\",\r\n MobileNo: \"\",\r\n },\r\n\r\n formHeading: \"Add User\",\r\n buttonLabel: \"Submit\",\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 5,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n };\r\n\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n this.hideFunc = this.hideFunc.bind(this);\r\n this.onPage = this.onPage.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.openDialog = this.openDialog.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n }\r\n\r\n //to trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.GetUsers();\r\n }, 1000);\r\n\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n //loading page\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetUsers();\r\n }, 250);\r\n }\r\n\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = true;\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n }\r\n\r\n // get users data list from api\r\n GetUsers() {\r\n this.UserService.GetUsers(this.tblResponse).then((data) => {\r\n const resdata = data.data;\r\n //response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n });\r\n }\r\n //response data is null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n });\r\n }\r\n\r\n // call every change of form and validation part also\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n\r\n // const isValid = this.validateForm(value, name);\r\n this.setState({ errors, [name]: value });\r\n }\r\n\r\n //to validate form\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n\r\n //to validate each form field\r\n switch (name) {\r\n case \"UserName\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.UserName = \"Please enter your username.\";\r\n } else errors.UserName = \"\";\r\n break;\r\n case \"FirstName\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.FirstName = \"Please enter your first name.\";\r\n } else if (value.length >= 1) {\r\n if (!value.match(/^[A-Za-z]+$/)) {\r\n IsValid = false;\r\n errors.FirstName = \"FirstName should be alpha only.\";\r\n } else errors.FirstName = \"\";\r\n } else errors.FirstName = \"\";\r\n break;\r\n case \"LastName\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.LastName = \"Please enter your last name.\";\r\n } else if (value.length >= 1) {\r\n if (!value.match(/^[A-Za-z]+$/)) {\r\n IsValid = false;\r\n errors.LastName = \"LastName should be alpha only.\";\r\n } else errors.LastName = \"\";\r\n } else errors.LastName = \"\";\r\n break;\r\n case \"Email\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.Email = \"Please enter your email-id.\";\r\n } else if (value.length >= 1) {\r\n if (!value.match(/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/)) {\r\n IsValid = false;\r\n errors.Email = \"Please enter valid email-id.\";\r\n } else errors.Email = \"\";\r\n } else errors.Email = \"\";\r\n break;\r\n case \"MobileNo\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.MobileNo = \"Please enter your mobile no.\";\r\n } else if (value.length >= 1) {\r\n if (!value.match(/^[6-9]\\d{9}$/)) {\r\n IsValid = false;\r\n errors.MobileNo = \"Please enter valid mobile no.\";\r\n } else errors.MobileNo = \"\";\r\n } else errors.MobileNo = \"\";\r\n break;\r\n case \"Password\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.Password = \"Please enter password.\";\r\n } else if (\r\n value.length >= 1 &&\r\n this.state.ConfirmPassword.length >= 1\r\n ) {\r\n errors.Password = \"\";\r\n errors.ConfirmPassword = \"\";\r\n if (!(value === this.state.ConfirmPassword)) {\r\n IsValid = false;\r\n errors.Password = \"password does not match\";\r\n } else errors.Password = \"\";\r\n } else errors.Password = \"\";\r\n break;\r\n\r\n case \"ConfirmPassword\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.ConfirmPassword = \"Please enter confirm password.\";\r\n } else if (value.length >= 1 && this.state.Password.length >= 1) {\r\n errors.Password = \"\";\r\n errors.ConfirmPassword = \"\";\r\n if (!(value === this.state.Password)) {\r\n IsValid = false;\r\n errors.ConfirmPassword = \"Confirm password does not match\";\r\n } else errors.ConfirmPassword = \"\";\r\n } else errors.ConfirmPassword = \"\";\r\n break;\r\n\r\n case \"IsActive\":\r\n this.setState({\r\n IsActive: value,\r\n });\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return IsValid;\r\n }\r\n\r\n // reset form text value\r\n formReset() {\r\n this.setState({\r\n ReferenceID: \"\",\r\n UserName: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Email: \"\",\r\n MobileNo: \"\",\r\n Password: \"\",\r\n ConfirmPassword: \"\",\r\n IsActive: true,\r\n });\r\n let errors = this.state.formError;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = \"\";\r\n });\r\n }\r\n\r\n hideFunc() {\r\n this.setState({\r\n visible: false,\r\n buttonLabel: \"Submit\",\r\n formHeading: \"Add User\",\r\n });\r\n this.formReset();\r\n }\r\n openDialog() {\r\n this.setState({ visible: true });\r\n this.formReset();\r\n }\r\n // submit form and create or update user\r\n submitForm(event) {\r\n event.preventDefault();\r\n\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formError;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key];\r\n let valid = this.validateForm(val, key);\r\n //to form is valid or not\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n\r\n // when form is valid\r\n if (isfrmvalid) {\r\n const formData = {\r\n UserName: this.state.UserName,\r\n FirstName: this.state.FirstName,\r\n LastName: this.state.LastName,\r\n Email: this.state.Email,\r\n MobileNo: this.state.MobileNo,\r\n Password: this.state.Password,\r\n ReferenceID: this.state.ReferenceID,\r\n IsActive: true,\r\n };\r\n\r\n setTimeout(() => {\r\n this.UserService.CreateUpdateUser(formData).then((data) => {\r\n const resdata = data.data;\r\n //when data is not null it will give success message else will move to 'else statement'\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n this.setState({\r\n loading: true,\r\n visible: false,\r\n });\r\n this.formReset();\r\n this.GetUsers();\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }, 100);\r\n }\r\n }\r\n\r\n // delete user data\r\n deleteUser(referenceID) {\r\n this.UserService.DeleteUser(referenceID).then((data) => {\r\n const resdata = data.data;\r\n //when data is not null it will give success message else will move to 'else statement'\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n const totlrecord = this.state.totalRecords - 1;\r\n const row = this.state.rows;\r\n\r\n if (this.tblResponse.First >= totlrecord) {\r\n const _curntCursor = Math.round(totlrecord / row);\r\n this.tblResponse.First = _curntCursor + 1;\r\n }\r\n this.GetUsers();\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }\r\n\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetUsers();\r\n }\r\n\r\n callbackFunction = (childData) => {\r\n this.setState({ message: childData });\r\n };\r\n\r\n activeTemplate(rowData, column) {\r\n return ;\r\n }\r\n\r\n onSort(event) {\r\n this.setState({\r\n sortOrder: this.state.sortOrder === 1 ? 2 : 1,\r\n sortIcon: !this.state.sortIcon,\r\n });\r\n const sortField =\r\n event.sortField == \"CreatedDate\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetUsers();\r\n const clickData = document.getElementsByClassName(\r\n \"p-sortable-column-icon pi pi-fw pi-sort\"\r\n );\r\n console.log(event);\r\n }\r\n\r\n // edit form\r\n actionTemplate(rowData, column) {\r\n const editMode = (e) => {\r\n this.setState({\r\n buttonLabel: \"Update\",\r\n formHeading: \"Update User\",\r\n visible: true,\r\n ReferenceID: rowData.ReferenceID,\r\n UserName: rowData.Username,\r\n FirstName: rowData.FirstName,\r\n LastName: rowData.LastName,\r\n Email: rowData.Email,\r\n MobileNo: rowData.MobileNo,\r\n Password: rowData.Password,\r\n ConfirmPassword: rowData.Password,\r\n IsActive: rowData.IsActive,\r\n });\r\n };\r\n\r\n const deleteFunc = () => {\r\n confirmAlert({\r\n title: \"Confirm to delete\",\r\n message: \"Are you sure to do this.\",\r\n buttons: [\r\n {\r\n label: \"Yes\",\r\n onClick: () => this.deleteUser(rowData.ReferenceID),\r\n },\r\n {\r\n label: \"No\",\r\n onClick: () => null,\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\r\n // create html part\r\n render() {\r\n const items = [{ label: \"Masters\" }, { label: \"List Master\" }];\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n let header = (\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
      \r\n
      \r\n

      List 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 \r\n \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.UserName !== \"\" ? (\r\n
      {this.state.formError.UserName}
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.FirstName !== \"\" ? (\r\n
      {this.state.formError.FirstName}
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.LastName !== \"\" ? (\r\n
      {this.state.formError.LastName}
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.Email !== null ? (\r\n
      {this.state.formError.Email}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.MobileNo !== null ? (\r\n
      {this.state.formError.MobileNo}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.Password !== null ? (\r\n
      {this.state.formError.Password}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.ConfirmPassword !== null ? (\r\n
      \r\n {this.state.formError.ConfirmPassword}\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","import instance from './DefaultApi';\r\n\r\nexport default class PriceMasterService {\r\n ControllerName = 'PriceMaster';\r\n\r\n //Get Price list\r\n GetPrice(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetPrice`, tableRequest).then(res => res)\r\n }\r\n\r\n //save Price List\r\n CreatePrice(PriceData) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/CreatePrice`, PriceData).then(res => res)\r\n }\r\n\r\n // get Product Drop Down List\r\n GetProductDDL() {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetProductDDL`).then(res => res)\r\n }\r\n\r\n\r\n}","import React, { Component } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Column } from \"primereact/column\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport PriceMasterService from \"../../services/PriceMasterService\";\r\nimport ProductService from \"../../services/ProductService\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport { Button } from \"primereact/button\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport { confirmAlert } from \"react-confirm-alert\"; // Import\r\nimport { ConfirmationModal } from \"../../template/ConfirmationModal\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport $ from \"jquery\";\r\n\r\n// Manage Price Master\r\nexport default class PriceMaster extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.PriceMasterService = new PriceMasterService();\r\n this.ProductService = new ProductService();\r\n\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n visible: false,\r\n sortIcon: false,\r\n updateLoader: false,\r\n PriceId: \"\",\r\n ProductId: \"\",\r\n Price: \"\",\r\n ProductDDL: [],\r\n sortOrder: \"1\",\r\n formError: {\r\n PriceId: \"\",\r\n ProductId: \"\",\r\n Price: \"\",\r\n },\r\n\r\n formHeading: \"Add Price\",\r\n buttonLabel: \"Submit\",\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 5,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n };\r\n\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n this.hideFunc = this.hideFunc.bind(this);\r\n this.onPage = this.onPage.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.openDialog = this.openDialog.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n }\r\n //trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.GetPrice();\r\n this.GetProductDDL();\r\n }, 1000);\r\n\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n\r\n //loading page\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetPrice();\r\n }, 250);\r\n }\r\n\r\n // get list data\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = true;\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n }\r\n\r\n // get price data list from api\r\n GetPrice() {\r\n this.tblResponse.SortColumn = \"CreatedDate\";\r\n this.PriceMasterService.GetPrice(this.tblResponse).then((data) => {\r\n const resdata = data.data;\r\n // when response data is not null\r\n if (resdata.ResponseCode === \"200\") {\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n });\r\n }\r\n // when response data is null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n this.setState({ updateLoader: true });\r\n }\r\n });\r\n }\r\n\r\n // Get Product for drop down list\r\n GetProductDDL() {\r\n this.ProductService.GetProductsDDL().then((data) => {\r\n const resdata = data.data;\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.setState({\r\n ProductDDL: resdata.ResponseData,\r\n });\r\n }\r\n });\r\n }\r\n\r\n // call every change of form and validation part also\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n\r\n const isValid = this.validateForm(value, name);\r\n this.setState({ errors, [name]: value });\r\n }\r\n\r\n //Validate form\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n //to validate each form field\r\n switch (name) {\r\n case \"ProductId\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.ProductId = \"Please select Product.\";\r\n } else errors.ProductId = \"\";\r\n break;\r\n case \"Price\":\r\n if (value < 1) {\r\n IsValid = false;\r\n errors.Price = \"Please enter +ve Price.\";\r\n }\r\n // else if (value.length >= 1) {\r\n // if (!value.match(/^[A-Za-z]+$/)) {\r\n // IsValid = false;\r\n // errors.Price = \"Price should be alpha only.\"\r\n // } else errors.Price = ''\r\n // }\r\n else errors.Price = \"\";\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return IsValid;\r\n }\r\n\r\n // reset form text value\r\n formReset() {\r\n this.setState({\r\n PriceId: 0,\r\n ProductId: \"\",\r\n Price: \"\",\r\n });\r\n let errors = this.state.formError;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = \"\";\r\n });\r\n }\r\n\r\n hideFunc() {\r\n this.setState({\r\n visible: false,\r\n buttonLabel: \"Submit\",\r\n formHeading: \"Add Price\",\r\n });\r\n this.formReset();\r\n }\r\n\r\n // open Dialog\r\n openDialog() {\r\n this.setState({ visible: true });\r\n this.formReset();\r\n }\r\n // submit form and create or update user\r\n submitForm(event) {\r\n event.preventDefault();\r\n\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formError;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key];\r\n let valid = this.validateForm(val, key);\r\n //form is not valid\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n //form is valid\r\n if (isfrmvalid) {\r\n this.setState({ updateLoader: false });\r\n const formData = {\r\n PriceId: this.state.PriceId,\r\n ProductId: this.state.ProductId,\r\n Price: this.state.Price,\r\n };\r\n\r\n setTimeout(() => {\r\n this.PriceMasterService.CreatePrice(formData).then((data) => {\r\n const resdata = data.data;\r\n //response data not null then success else warning or error\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n this.setState({\r\n loading: true,\r\n visible: false,\r\n updateLoader: true,\r\n });\r\n this.formReset();\r\n this.GetPrice();\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }, 100);\r\n }\r\n }\r\n\r\n // delete user data\r\n // deleteUser(referenceID) {\r\n // this.UserService.DeleteUser(referenceID).then(data => {\r\n // const resdata = data.data;\r\n // if (resdata !== null && resdata.ResponseCode === '200') {\r\n // this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n // const totlrecord = this.state.totalRecords - 1;\r\n // const row = this.state.rows;\r\n\r\n // if (this.tblResponse.First >= totlrecord) {\r\n // const _curntCursor = Math.round(totlrecord / row);\r\n // this.tblResponse.First = _curntCursor + 1;\r\n // }\r\n // this.GetUsers();\r\n // } else if (resdata.ResponseCode === '400') {\r\n // this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n // } else {\r\n // this.refs.Messchild.showError(resdata.ResponseMessage);\r\n // }\r\n // });\r\n // }\r\n\r\n // Search Filter\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetPrice();\r\n }\r\n\r\n // activeTemplate(rowData, column) {\r\n // return (\r\n // \r\n // )\r\n // }\r\n\r\n // Sort list\r\n onSort(event) {\r\n this.setState({\r\n sortOrder: this.state.sortOrder === 1 ? 2 : 1,\r\n sortIcon: !this.state.sortIcon,\r\n });\r\n const sortField =\r\n event.sortField == \"CreatedDate\" ? \"CreatedDate\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetPrice();\r\n const clickData = document.getElementsByClassName(\r\n \"p-sortable-column-icon pi pi-fw pi-sort\"\r\n );\r\n console.log(event);\r\n }\r\n\r\n // edit form\r\n actionTemplate(rowData, column) {\r\n const editMode = (e) => {\r\n this.setState({\r\n buttonLabel: \"Update\",\r\n formHeading: \"Update User\",\r\n visible: true,\r\n PriceId: rowData.PriceId,\r\n ProductId: rowData.ProductId,\r\n Price: rowData.Price3,\r\n });\r\n };\r\n\r\n // const deleteFunc = () => {\r\n\r\n // confirmAlert({\r\n // title: 'Confirm to delete',\r\n // message: 'Are you sure to do this.',\r\n // buttons: [\r\n // {\r\n // label: 'Yes',\r\n // onClick: () => this.deleteUser(rowData.ReferenceID)\r\n\r\n // },\r\n // {\r\n // label: 'No',\r\n // onClick: () => null\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\r\n // create html part\r\n render() {\r\n const items = [{ label: \"Masters\" }, { label: \"Price Master\" }];\r\n\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n let header = (\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

      Price 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 \r\n \r\n {/* */}\r\n \r\n\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.ProductId !== null ? (\r\n
      \r\n {this.state.formError.ProductId}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.Price !== \"\" ? (\r\n
      {this.state.formError.Price}
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n\r\n
      \r\n \r\n
      \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 \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Column } from \"primereact/column\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport UserService from \"../../services/UserService\";\r\nimport CompanyMasterService from \"../../services/CompanyMasterService\";\r\nimport { Button } from \"primereact/button\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport { confirmAlert } from \"react-confirm-alert\"; // Import\r\nimport { ConfirmationModal } from \"../../template/ConfirmationModal\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport $ from \"jquery\";\r\nimport CountryService from \"../../services/CountryService\";\r\nimport ApiService from \"../../services/apiService\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport { CSVLink } from \"react-csv\";\r\nimport { Breadcrumb } from \"react-bootstrap\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\n// Distributor Master\r\nexport default class DistributorMaster extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.ApiService = new ApiService();\r\n this.UserService = new UserService();\r\n this.CompanyMasterService = new CompanyMasterService();\r\n this.CountryService = new CountryService();\r\n this.tblResponse = new tableRequest();\r\n this.tblResponseExport = new tableRequest();\r\n this.state = {\r\n heads: [\r\n \"CompanyName\",\r\n \"SAPCustomerCode\",\r\n \"FirstName\",\r\n \"Email\",\r\n \"MobileNo\",\r\n \"bill_Address1\",\r\n \"bill_Address2\",\r\n \"City\",\r\n \"State\",\r\n \"bill_Pincode\",\r\n \"CreatedDt\"\r\n ],\r\n exportData: [],\r\n visible: false,\r\n ReferenceID: \"\",\r\n sortIcon: false,\r\n updateLoader: false,\r\n SAPCustomerCode: \"\",\r\n ship_City: \"\",\r\n ship_State: \"\",\r\n ship_Country: \"\",\r\n ship_Address1: \"\",\r\n ship_Address2: \"\",\r\n ship_Pincode: \"\",\r\n\r\n bill_City: \"\",\r\n bill_State: \"\",\r\n bill_Country: \"\",\r\n bill_Address1: \"\",\r\n bill_Address2: \"\",\r\n bill_Pincode: \"\",\r\n\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Email: \"\",\r\n MobileNo: \"\",\r\n Password: \"\",\r\n ConfirmPassword: \"\",\r\n IsActive: false,\r\n sortOrder: \"1\",\r\n UserType: 2,\r\n CompanyId: \"\",\r\n companyDDL: [],\r\n formError: {\r\n CompanyId: \"\",\r\n ship_Country: \"\",\r\n SAPCustomerCode: \"\",\r\n ship_City: \"\",\r\n ship_State: \"\",\r\n bill_City: \"\",\r\n bill_State: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Password: \"\",\r\n bill_Country: \"\",\r\n Email: \"\",\r\n ConfirmPassword: \"\",\r\n MobileNo: \"\",\r\n bill_Pincode: \"\",\r\n bill_Address1: \"\",\r\n bill_Address2: \"\",\r\n ship_Pincode: \"\",\r\n ship_Address1: \"\",\r\n ship_Address2: \"\",\r\n },\r\n\r\n formHeading: \"Add Distributor\",\r\n buttonLabel: \"Submit\",\r\n sales: [],\r\n ship_citySelectItems: [],\r\n ship_stateSelectItems: [],\r\n ship_countrySelectItems: [],\r\n bill_citySelectItems: [],\r\n bill_stateSelectItems: [],\r\n bill_countrySelectItems: [],\r\n loading: true,\r\n first: 0,\r\n rows: 5,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n compDisabled: false,\r\n };\r\n\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.SameAsBilling = this.SameAsBilling.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n this.hideFunc = this.hideFunc.bind(this);\r\n this.onPage = this.onPage.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.openDialog = this.openDialog.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n this.GetUserExport = this.GetUserExport.bind(this);\r\n }\r\n\r\n //trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.tblResponse.UserType = 2;\r\n this.GetUsers(this.tblResponse);\r\n this.GetStates(0);\r\n this.GetCities(0);\r\n this.GetCompany();\r\n }, 1000);\r\n\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n\r\n this.GetCountry();\r\n\r\n this.tblResponseExport.PageSize = -1;\r\n this.tblResponseExport.First = 1;\r\n this.tblResponseExport.IsActive = true;\r\n this.tblResponseExport.SearchValue = \"\";\r\n this.tblResponseExport.UserType = 2;\r\n this.tblResponseExport.SortOrder = \"ASC\";\r\n this.GetUserExport();\r\n }\r\n\r\n // get user data list from api\r\n GetUserExport() {\r\n this.tblResponseExport.SortColumn = \"CreatedDt\";\r\n this.UserService.GetUsers(this.tblResponseExport).then((data) => {\r\n const resdata = data.data;\r\n //when response data is not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n exportData: resdata.ResponseData,\r\n });\r\n }\r\n });\r\n }\r\n\r\n //loading page\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n }, 250);\r\n }\r\n\r\n // get list data\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = true;\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n this.tblResponse.UserType = 2;\r\n\r\n this.GetUsers(this.tblResponse);\r\n }\r\n\r\n //to get country data\r\n GetCountry() {\r\n this.CountryService.GetCountries(\"101\").then((data) => {\r\n const resdata = data.data;\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.state.ship_countrySelectItems = resdata.ResponseData;\r\n this.state.bill_countrySelectItems = resdata.ResponseData;\r\n }\r\n });\r\n }\r\n\r\n SetState(cCode, fieldName) {\r\n ;\r\n\r\n if (fieldName == \"bill_Country\") {\r\n const resdata = this.state.allstate.filter((x) => x.CountryId == cCode);\r\n this.setState({\r\n bill_stateSelectItems: resdata,\r\n });\r\n }\r\n if (fieldName == \"ship_Country\") {\r\n const resdata = this.state.allstate.filter((x) => x.CountryId == cCode);\r\n this.setState({\r\n ship_stateSelectItems: resdata,\r\n });\r\n }\r\n }\r\n SetCity(sCode, fieldName) {\r\n ;\r\n\r\n if (fieldName == \"bill_State\") {\r\n const resdata = this.state.allcity.filter((x) => x.StateId == sCode);\r\n this.setState({\r\n bill_citySelectItems: resdata,\r\n });\r\n }\r\n if (fieldName == \"ship_State\") {\r\n const resdata = this.state.allcity.filter((x) => x.StateId == sCode);\r\n this.setState({\r\n ship_citySelectItems: resdata,\r\n });\r\n }\r\n }\r\n\r\n GetStates(cCode) {\r\n this.CountryService.GetStates(cCode).then((data) => {\r\n const resdata = data.data;\r\n\r\n this.setState({\r\n allstate: resdata.ResponseData,\r\n bill_stateSelectItems: resdata.ResponseData,\r\n ship_stateSelectItems: resdata.ResponseData,\r\n });\r\n\r\n // if(fieldName == 'bill_Country')\r\n // this.setState({\r\n // \"bill_stateSelectItems\" : resdata.ResponseData,\r\n // \"ship_stateSelectItems\" : resdata.ResponseData\r\n // });\r\n\r\n // if(fieldName == 'ship_Country')\r\n // this.setState({\r\n // \"ship_stateSelectItems\" : resdata.ResponseData\r\n // });\r\n });\r\n }\r\n\r\n GetCities(sCode) {\r\n this.CountryService.GetCities(sCode).then((data) => {\r\n const resdata = data.data;\r\n this.setState({\r\n allcity: resdata.ResponseData,\r\n bill_citySelectItems: resdata.ResponseData,\r\n ship_citySelectItems: resdata.ResponseData,\r\n });\r\n //if(fieldName == 'bill_State')\r\n // this.setState({\r\n // \"bill_citySelectItems\" : resdata.ResponseData,\r\n // \"ship_citySelectItems\" : resdata.ResponseData\r\n // });\r\n\r\n // if(fieldName == 'ship_State')\r\n // this.setState({\r\n // \"ship_citySelectItems\" : resdata.ResponseData\r\n // });\r\n });\r\n }\r\n\r\n // get users data list from api\r\n GetUsers(tbl) {\r\n ;\r\n this.tblResponse.SortColumn = \"CreatedDt\";\r\n this.UserService.GetUsers(tbl).then((data) => {\r\n const resdata = data.data;\r\n ;\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n updateLoader: true,\r\n });\r\n } else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n updateLoader: true,\r\n });\r\n }\r\n });\r\n }\r\n\r\n // call every change of form and validation part also\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n\r\n const isValid = this.validateForm(value, name);\r\n this.setState({ errors, [name]: value });\r\n //when form validation is not valid\r\n if (name == \"IsActive\")\r\n this.setState({\r\n IsActive: event.target.checked,\r\n });\r\n }\r\n\r\n // call to update billing to shipping\r\n SameAsBilling(event) {\r\n if (event.target.checked) {\r\n this.setState({\r\n ship_countrySelectItems: this.state.bill_countrySelectItems,\r\n ship_stateSelectItems: this.state.bill_stateSelectItems,\r\n ship_citySelectItems: this.state.bill_citySelectItems,\r\n ship_Country: this.state.bill_Country,\r\n ship_State: this.state.bill_State,\r\n ship_City: this.state.bill_City,\r\n ship_Address1: this.state.bill_Address1,\r\n ship_Address2: this.state.bill_Address2,\r\n ship_Pincode: this.state.bill_Pincode,\r\n });\r\n }\r\n }\r\n\r\n // Validate form\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n ;\r\n //this switch case is used for each form field to validate\r\n switch (name) {\r\n case \"SAPCustomerCode\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.SAPCustomerCode = \"Please enter your SAP Customer Code.\";\r\n } else errors.SAPCustomerCode = \"\";\r\n break;\r\n // case 'ship_Country':\r\n // if (value == undefined || value == \"\") {\r\n // IsValid = false;\r\n // errors.ship_Country = \"Please select country.\";\r\n // } else {\r\n // errors.ship_Country = '';\r\n // this.SetState(value.CountryId, name);\r\n // }\r\n\r\n // break;\r\n case \"bill_Country\":\r\n if (value == undefined || value == \"\") {\r\n IsValid = false;\r\n errors.bill_Country = \"Please select country.\";\r\n } else {\r\n errors.bill_Country = \"\";\r\n this.SetState(value.CountryId, name);\r\n }\r\n break;\r\n case \"FirstName\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.FirstName = \"Please enter your first name.\";\r\n } else errors.FirstName = \"\";\r\n break;\r\n // case 'LastName':\r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.LastName = \"Please enter your last name.\";\r\n // }\r\n // else if (value.length >= 1) {\r\n // if (!value.match(/^[A-Za-z]+$/)) {\r\n // IsValid = false;\r\n // errors.LastName = \"LastName should be alpha only.\"\r\n // } else errors.LastName = ''\r\n // }\r\n // else errors.LastName = ''\r\n // break;\r\n case \"Email\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.Email = \"Please enter your email-id.\";\r\n } else if (value.length >= 1) {\r\n if (!value.match(/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/)) {\r\n IsValid = false;\r\n errors.Email = \"Please enter valid email-id.\";\r\n } else errors.Email = \"\";\r\n } else errors.Email = \"\";\r\n break;\r\n case \"MobileNo\":\r\n if (value == undefined || value == \"\" || value.length < 1) {\r\n IsValid = false;\r\n errors.MobileNo = \"Please enter your mobile no.\";\r\n } else if (value.length >= 1) {\r\n if (!value.match(/^[6-9]\\d{9}$/)) {\r\n IsValid = false;\r\n errors.MobileNo = \"Please enter valid mobile no.\";\r\n } else errors.MobileNo = \"\";\r\n } else errors.MobileNo = \"\";\r\n break;\r\n case \"Password\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.Password = \"Please enter password.\";\r\n } else if (!value.match(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d).{4,10}$/)) {\r\n IsValid = false;\r\n errors.Password =\r\n \"Password should be minimum 4 characters long, 1 uppercase & 1 lowercase character with 1 number.\";\r\n } else if (\r\n value.length >= 1 &&\r\n this.state.ConfirmPassword.length >= 1\r\n ) {\r\n errors.Password = \"\";\r\n errors.ConfirmPassword = \"\";\r\n if (!(value === this.state.ConfirmPassword)) {\r\n IsValid = false;\r\n errors.Password = \"Password does not match\";\r\n } else errors.Password = \"\";\r\n } else errors.Password = \"\";\r\n break;\r\n\r\n case \"ConfirmPassword\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.ConfirmPassword = \"Please enter confirm password.\";\r\n } else if (value.length >= 1 && this.state.Password.length >= 1) {\r\n errors.Password = \"\";\r\n errors.ConfirmPassword = \"\";\r\n if (!(value === this.state.Password)) {\r\n IsValid = false;\r\n errors.ConfirmPassword = \"Confirm password does not match\";\r\n } else errors.ConfirmPassword = \"\";\r\n } else errors.ConfirmPassword = \"\";\r\n break;\r\n\r\n case \"IsActive\":\r\n this.setState({\r\n IsActive: value,\r\n });\r\n break;\r\n // case 'ship_City':\r\n // if (value == undefined || value == \"\") {\r\n // IsValid = false;\r\n // errors.ship_City = \"Please select city\";\r\n // } else\r\n // errors.ship_City = '';\r\n break;\r\n case \"bill_City\":\r\n if (value == undefined || value == \"\") {\r\n IsValid = false;\r\n errors.bill_City = \"Please select city\";\r\n } else errors.bill_City = \"\";\r\n break;\r\n case \"bill_State\":\r\n if (value == undefined || value == \"\") {\r\n IsValid = false;\r\n errors.bill_State = \"Please select state\";\r\n } else {\r\n errors.bill_State = \"\";\r\n this.SetCity(value.StateId, name);\r\n }\r\n break;\r\n // case 'ship_State':\r\n // if (value == undefined || value == \"\") {\r\n // IsValid = false;\r\n // errors.ship_State = \"Please select state\";\r\n // } else {\r\n // errors.ship_State = '';\r\n // this.SetCity(value.StateId, name);\r\n // }\r\n // break;\r\n // case 'bill_Address1':\r\n // if (value == undefined || value == \"\" || value.length < 1) {\r\n // IsValid = false;\r\n // errors.bill_Address1 = \"Please enter address1\";\r\n // }\r\n // break;\r\n // case 'bill_Address2':\r\n // if (value == undefined || value == \"\" || value.length < 1) {\r\n // IsValid = false;\r\n // errors.bill_Address2 = \"Please enter address2\";\r\n // }\r\n // break;\r\n case \"bill_Pincode\":\r\n if (value == undefined || value == \"\" || value.length < 1) {\r\n IsValid = false;\r\n errors.bill_Pincode = \"Please enter pincode\";\r\n }\r\n break;\r\n // case 'ship_Address1':\r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.ship_Address1 = \"Please enter address1\";\r\n // }\r\n // break;\r\n // case 'ship_Address2':\r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.ship_Address2 = \"Please enter address2\";\r\n // }\r\n // break;\r\n // case 'ship_Pincode':\r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.ship_Pincode = \"Please enter pincode\";\r\n // }\r\n // break;\r\n case \"CompanyId\":\r\n ;\r\n if (value == undefined || value == \"\") {\r\n IsValid = false;\r\n errors.CompanyId = \"Please select Company\";\r\n } else {\r\n errors.CompanyId = \"\";\r\n }\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return IsValid;\r\n }\r\n\r\n // reset form text value\r\n formReset() {\r\n this.setState({\r\n ReferenceID: \"\",\r\n SAPCustomerCode: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Email: \"\",\r\n MobileNo: \"\",\r\n Password: \"\",\r\n ConfirmPassword: \"\",\r\n IsActive: true,\r\n ship_City: \"\",\r\n ship_State: \"\",\r\n ship_Country: \"\",\r\n ship_Address1: \"\",\r\n ship_Address2: \"\",\r\n ship_Pincode: \"\",\r\n bill_City: \"\",\r\n bill_State: \"\",\r\n bill_Country: \"\",\r\n bill_Address1: \"\",\r\n bill_Address2: \"\",\r\n bill_Pincode: \"\",\r\n });\r\n\r\n let errors = this.state.formError;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = \"\";\r\n });\r\n }\r\n\r\n hideFunc() {\r\n this.setState({\r\n visible: false,\r\n buttonLabel: \"Submit\",\r\n formHeading: \"Add Distributor\",\r\n });\r\n this.formReset();\r\n }\r\n // open Dialog\r\n openDialog() {\r\n this.setState({ visible: true });\r\n this.formReset();\r\n }\r\n // submit form and create or update user\r\n submitForm(event) {\r\n event.preventDefault();\r\n\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formError;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key];\r\n let valid = this.validateForm(val, key);\r\n //when form validation is not valid\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n //when isfrmvalid is true\r\n if (isfrmvalid) {\r\n this.setState({ updateLoader: false });\r\n const formData = {\r\n SAPCustomerCode: this.state.SAPCustomerCode,\r\n FirstName: this.state.FirstName,\r\n LastName: this.state.LastName,\r\n Email: this.state.Email,\r\n MobileNo: this.state.MobileNo,\r\n Password: this.state.Password,\r\n ReferenceID: this.state.ReferenceID,\r\n IsActive: this.state.IsActive,\r\n UserType: this.state.UserType,\r\n // ship_City: this.state.ship_City.CityId,\r\n // ship_State: this.state.ship_State.StateId,\r\n // ship_Country: this.state.ship_Country.CountryId,\r\n // ship_Pincode: this.state.ship_Pincode,\r\n // ship_Address1: this.state.ship_Address1,\r\n // ship_Address2: this.state.ship_Address2,\r\n bill_City: this.state.bill_City.CityId,\r\n bill_State: this.state.bill_State.StateId,\r\n bill_Country: this.state.bill_Country.CountryId,\r\n bill_Pincode: this.state.bill_Pincode,\r\n bill_Address1: this.state.bill_Address1,\r\n bill_Address2: this.state.bill_Address2,\r\n CompanyId: this.state.CompanyId.CompId,\r\n };\r\n\r\n setTimeout(() => {\r\n this.UserService.CreateUpdateUser(formData).then((data) => {\r\n const resdata = data.data;\r\n //when data is not null it will give success message else will move to 'else statement'\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n this.setState({\r\n loading: true,\r\n visible: false,\r\n updateLoader: true,\r\n });\r\n this.formReset();\r\n this.GetUsers(this.tblResponse);\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }, 100);\r\n }\r\n }\r\n\r\n // delete user data\r\n deleteUser(referenceID) {\r\n this.UserService.DeleteUser(referenceID).then((data) => {\r\n const resdata = data.data;\r\n //when data is not null it will give success message else will move to 'else statement'\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.GetUsers(this.tblResponse);\r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n const totlrecord = this.state.totalRecords - 1;\r\n const row = this.state.rows;\r\n\r\n if (this.tblResponse.First >= totlrecord) {\r\n const _curntCursor = Math.round(totlrecord / row);\r\n this.tblResponse.First = _curntCursor + 1;\r\n }\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }\r\n\r\n //to get company ddl\r\n GetCompany() {\r\n this.CompanyMasterService.GetCompanyDDL().then((data) => {\r\n const resdata = data.data;\r\n //response data is not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n companyDDL: resdata.ResponseData,\r\n });\r\n\r\n if (this.ApiService.getIsAdmin() == \"false\") {\r\n const CompanyObj = this.state.companyDDL.filter(\r\n (x) => x.CompId == this.ApiService.getCompanyId()\r\n );\r\n this.setState({\r\n CompanyId: CompanyObj[0],\r\n compDisabled: true,\r\n });\r\n }\r\n }\r\n });\r\n }\r\n setOnEditDDL(rowData) {\r\n // this.SetState(rowData.ship_Country, \"ship_Country\");\r\n this.SetState(rowData.bill_Country, \"bill_Country\");\r\n //this.SetCity(rowData.ship_State, \"ship_State\");\r\n this.SetCity(rowData.bill_State, \"bill_State\");\r\n\r\n ;\r\n }\r\n\r\n // Search Filter\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetUsers(this.tblResponse);\r\n }\r\n\r\n callbackFunction = (childData) => {\r\n this.setState({ message: childData });\r\n };\r\n\r\n // disabled check box\r\n activeTemplate(rowData, column) {\r\n return ;\r\n }\r\n\r\n // sort page\r\n onSort(event) {\r\n this.setState({\r\n sortOrder: this.state.sortOrder === 1 ? 2 : 1,\r\n sortIcon: !this.state.sortIcon,\r\n });\r\n const sortField =\r\n event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetUsers(this.tblResponse);\r\n const clickData = document.getElementsByClassName(\r\n \"p-sortable-column-icon pi pi-fw pi-sort\"\r\n );\r\n console.log(event);\r\n }\r\n\r\n // edit form\r\n actionTemplate(rowData, column) {\r\n ;\r\n const editMode = (e) => {\r\n this.setState({\r\n buttonLabel: \"Update\",\r\n formHeading: \"Update Distributor\",\r\n visible: true,\r\n ReferenceID: rowData.ReferenceID,\r\n SAPCustomerCode: rowData.SAPCustomerCode,\r\n FirstName: rowData.FirstName,\r\n LastName: rowData.LastName,\r\n Email: rowData.Email,\r\n MobileNo: rowData.MobileNo,\r\n Password: rowData.Password,\r\n ConfirmPassword: rowData.Password,\r\n IsActive: rowData.IsActive,\r\n // ship_Address1: rowData.ship_Address1,\r\n // ship_Address2: rowData.ship_Address2,\r\n // ship_Pincode: rowData.ship_Pincode,\r\n bill_Address1: rowData.bill_Address1,\r\n bill_Address2: rowData.bill_Address2,\r\n bill_Pincode: rowData.bill_Pincode,\r\n });\r\n\r\n const CompanyObj = this.state.companyDDL.filter(\r\n (x) => x.CompId == rowData.CompanyId\r\n );\r\n // const ship_CountryObj = this.state.ship_countrySelectItems.filter(x => x.CountryId == rowData.ship_Country)\r\n const bill_CountryObj = this.state.bill_countrySelectItems.filter(\r\n (x) => x.CountryId == rowData.bill_Country\r\n );\r\n // const ship_StateObj = this.state.ship_stateSelectItems.filter(x => x.StateId == rowData.ship_State)\r\n const bill_StateObj = this.state.bill_stateSelectItems.filter(\r\n (x) => x.StateId == rowData.bill_State\r\n );\r\n // const ship_CityObj = this.state.ship_citySelectItems.filter(x => x.CityId == rowData.ship_City)\r\n const bill_CityObj = this.state.bill_citySelectItems.filter(\r\n (x) => x.CityId == rowData.bill_City\r\n );\r\n this.setState({\r\n //ship_Country: ship_CountryObj[0],\r\n bill_Country: bill_CountryObj[0],\r\n // ship_State: ship_StateObj[0],\r\n bill_State: bill_StateObj[0],\r\n //ship_City: ship_CityObj[0],\r\n bill_City: bill_CityObj[0],\r\n CompanyId: CompanyObj[0],\r\n });\r\n };\r\n\r\n const deleteFunc = () => {\r\n confirmAlert({\r\n title: \"Confirm to delete\",\r\n message: \"Are you sure to do this.\",\r\n buttons: [\r\n {\r\n label: \"Yes\",\r\n onClick: () => this.deleteUser(rowData.ReferenceID),\r\n },\r\n {\r\n label: \"No\",\r\n onClick: () => null,\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\r\n // create html part\r\n //resolved KREP-36\r\n render() {\r\n const items = [{ label: \"Masters\" }, { label: \"Distributor Master\" }];\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n let header = (\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

      Distributor Master

      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n Export\r\n \r\n \r\n
      \r\n\r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
      \r\n
      \r\n \r\n {\r\n this.handleChange(e);\r\n }}\r\n value={this.state.CompanyId}\r\n className=\"form-control\"\r\n placeholder=\"Select Company\"\r\n name=\"CompanyId\"\r\n options={this.state.companyDDL}\r\n />\r\n {this.state.formError.CompanyId !== null ? (\r\n
      {this.state.formError.CompanyId}
      \r\n ) : null}\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.SAPCustomerCode !== \"\" ? (\r\n
      \r\n {this.state.formError.SAPCustomerCode}\r\n
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.FirstName !== \"\" ? (\r\n
      {this.state.formError.FirstName}
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n {/*
      \r\n \r\n \r\n {this.state.formError.LastName !== '' ?\r\n
      {this.state.formError.LastName}
      : ''}\r\n
      */}\r\n
      \r\n \r\n \r\n {this.state.formError.Email !== null ? (\r\n
      {this.state.formError.Email}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.MobileNo !== null ? (\r\n
      {this.state.formError.MobileNo}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.Password !== null ? (\r\n
      {this.state.formError.Password}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.ConfirmPassword !== null ? (\r\n
      \r\n {this.state.formError.ConfirmPassword}\r\n
      \r\n ) : null}\r\n
      \r\n {/*
      \r\n \r\n
      */}\r\n
      \r\n

      \r\n Billing Address\r\n

      \r\n\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.bill_Country !== null ? (\r\n
      \r\n {this.state.formError.bill_Country}\r\n
      \r\n ) : null}\r\n
      \r\n \r\n \r\n {this.state.formError.bill_State !== null ? (\r\n
      \r\n {this.state.formError.bill_State}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.bill_City !== null ? (\r\n
      \r\n {this.state.formError.bill_City}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.bill_Address1 !== null ? (\r\n
      \r\n {this.state.formError.bill_Address1}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.bill_Address2 !== null ? (\r\n
      \r\n {this.state.formError.bill_Address2}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.bill_Pincode !== null ? (\r\n
      \r\n {this.state.formError.bill_Pincode}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n {/*
      \r\n

      Shipping Address

      \r\n
      \r\n\r\n
      \r\n\r\n\r\n\r\n\r\n
      \r\n \r\n \r\n {this.state.formError.ship_Country !== null ?\r\n
      {this.state.formError.ship_Country}
      : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.ship_State !== null ?\r\n
      {this.state.formError.ship_State}
      : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.ship_City !== null ?\r\n
      {this.state.formError.ship_City}
      : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.ship_Address1 !== null ?\r\n
      {this.state.formError.ship_Address1}
      : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.ship_Address2 !== null ?\r\n
      {this.state.formError.ship_Address2}
      : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.ship_Pincode !== null ?\r\n
      {this.state.formError.ship_Pincode}
      : 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","import instance from './DefaultApi';\r\n\r\nexport default class MappingService {\r\n ControllerName = 'Mapping';\r\n\r\n // get all product mapping data\r\n GetMappings(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetMappings`, tableRequest).then(res => res)\r\n }\r\n // create new product mapping \r\n CreateMapping(mappingData) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/CreateMapping`, mappingData).then(res => res)\r\n }\r\n\r\n // get Next From Number\r\n GetFromNumberMap(isPreprinted) {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetFromNumberMap/${isPreprinted}`).then(res => res)\r\n }\r\n\r\n // get Next From Number\r\n GetMappingTemplate() {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetMappingTemplate`).then(res => res)\r\n }\r\n\r\n // delete product mapping data\r\n DeleteMapping(mappingId) {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/DeleteMapping/${mappingId}`).then(res => res)\r\n }\r\n\r\n // Get Product Details by Qr code Scanning\r\n GetProductByQrScan(qr) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetProductByQrScan`, qr).then(res => res)\r\n }\r\n\r\n SaveStaticQrMapping(mappingData) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/CreateStaticQrMapping`, mappingData).then(res => res)\r\n }\r\n\r\n GetStaticQrMapping(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetStaticQrMappings`, tableRequest).then(res => res)\r\n }\r\n \r\n}","import instance from './DefaultApi';\r\n\r\nexport default class DeMappingService {\r\n ControllerName = 'DeMapping';\r\n\r\n // create de map data\r\n CreateDemapping(demap) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/CreateDemapping`, demap).then(res => res)\r\n } \r\n}","import React, { Component } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Column } from \"primereact/column\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Button } from \"primereact/button\";\r\nimport MappingService from \"../../services/MappingService\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport DeMappingService from \"../../services/DeMappingService\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport $ from \"jquery\";\r\nimport { Calendar } from \"primereact/calendar\";\r\nimport { SelectButton } from \"primereact/selectbutton\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport { Card } from \"primereact/card\";\r\nexport default class DeMapping extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.MappingService = new MappingService();\r\n this.DeMappingService = new DeMappingService();\r\n this.tblResponse = new tableRequest();\r\n\r\n this.state = {\r\n visible: false,\r\n formIsValid: true,\r\n updateLoader: false,\r\n sortOrder: \"\",\r\n refrenceFromNo: 0,\r\n refrenceToNo: 0,\r\n MappingId: 0,\r\n ProductId: null,\r\n ProductName: \"\",\r\n FromNo: \"\",\r\n ToNo: \"\",\r\n Qty: \"\",\r\n editMapping: \"\",\r\n formError: {\r\n ProductName: null,\r\n FromNo: null,\r\n ToNo: null,\r\n Qty: null,\r\n },\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n isPreprintedValue: \"Static Qr Mapping\",\r\n isPreprinted: false,\r\n dummy: [\r\n {\r\n FirmName: \"Holostik\",\r\n FromNo: \"1\",\r\n ProductName: \"Sample\",\r\n ToNo: \"100\",\r\n Qty: \"100\",\r\n CreatedDt: \"26-04-2021\",\r\n MFGDate: \"20-04-2021\",\r\n BatchNo: \"001\",\r\n Remark: \"sample\",\r\n },\r\n {\r\n FirmName: \"Holostik\",\r\n FromNo: \"101\",\r\n ProductName: \"Sample\",\r\n ToNo: \"200\",\r\n Qty: \"100\",\r\n CreatedDt: \"26-04-2021\",\r\n MFGDate: \"20-04-2021\",\r\n BatchNo: \"001\",\r\n Remark: \"sample\",\r\n },\r\n {\r\n FirmName: \"Holostik\",\r\n FromNo: \"201\",\r\n ProductName: \"Sample\",\r\n ToNo: \"300\",\r\n Qty: \"100\",\r\n CreatedDt: \"26-04-2021\",\r\n MFGDate: \"20-04-2021\",\r\n BatchNo: \"001\",\r\n Remark: \"sample\",\r\n },\r\n {\r\n FirmName: \"Holostik\",\r\n FromNo: \"301\",\r\n ProductName: \"Sample\",\r\n ToNo: \"400\",\r\n Qty: \"100\",\r\n CreatedDt: \"26-04-2021\",\r\n MFGDate: \"20-04-2021\",\r\n BatchNo: \"001\",\r\n Remark: \"sample\",\r\n },\r\n ],\r\n };\r\n\r\n this.brandTemplate = this.brandTemplate.bind(this);\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.hideFunc = this.hideFunc.bind(this);\r\n this.onPage = this.onPage.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n this.setPreprintedValue = this.setPreprintedValue.bind(this);\r\n }\r\n //trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.GetMappings();\r\n }, 1000);\r\n\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n\r\n // on page event call\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetMappings();\r\n }, 250);\r\n }\r\n\r\n // get product mapping list data\r\n GetMappings() {\r\n this.tblResponse.SortColumn = \"MFGDate\";\r\n this.MappingService.GetMappings(this.tblResponse).then((data) => {\r\n const resdata = data.data;\r\n //if response data is not null sales state wiill be set to response data\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n updateLoader: true,\r\n });\r\n }\r\n //if response data is null sales state will be set null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n });\r\n }\r\n hideFunc() {\r\n this.setState({\r\n visible: false,\r\n buttonLabel: \"Submit\",\r\n formHeading: \"Add Number Issue\",\r\n });\r\n this.formReset();\r\n }\r\n\r\n // submit form\r\n submitForm(event) {\r\n event.preventDefault();\r\n\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formError;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key];\r\n let valid = this.validateForm(val, key);\r\n //form is not valid\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n // form is valid\r\n if (isfrmvalid) {\r\n this.setState({ updateLoader: false });\r\n const formData = {\r\n MappingId: this.state.MappingId,\r\n ProductId:\r\n this.state.ProductId === \"\" ? 0 : parseInt(this.state.ProductId),\r\n FromNo: this.state.FromNo === \"\" ? 0 : parseInt(this.state.FromNo),\r\n ToNo: this.state.ToNo === \"\" ? 0 : parseInt(this.state.ToNo),\r\n Qty: this.state.Qty === \"\" ? 0 : parseInt(this.state.Qty),\r\n isPreprinted: this.state.isPreprinted,\r\n };\r\n\r\n setTimeout(() => {\r\n this.DeMappingService.CreateDemapping(formData).then((data) => {\r\n const resdata = data.data;\r\n this.setState({ updateLoader: true });\r\n //if ResponseCode is 200 success message will be shown else will move to 'else statement'\r\n if (resdata.ResponseCode === \"200\") {\r\n this.refs.child.showSuccess(resdata.ResponseMessage);\r\n this.setState({\r\n loading: true,\r\n visible: false,\r\n });\r\n this.formReset();\r\n this.GetMappings();\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.refs.child.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.refs.child.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }, 1000);\r\n }\r\n }\r\n\r\n // set product pic\r\n brandTemplate(rowData, column) {\r\n var src = rowData.ProductPic;\r\n return {rowData.ProductPic};\r\n }\r\n\r\n // Create Demapping\r\n DeMapData(deMapdata) {\r\n setTimeout(() => {\r\n this.DeMappingService.CreateDemapping(deMapdata).then((data) => {\r\n const resdata = data.data;\r\n //if ResponseCode is 200 success message will be shown else will move to 'else statement'\r\n if (resdata.ResponseCode === \"200\") {\r\n this.refs.child.showSuccess(resdata.ResponseMessage);\r\n this.GetMappings();\r\n } else {\r\n this.refs.child.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }, 1000);\r\n }\r\n\r\n // set lazy loading\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = \"1\";\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n }\r\n\r\n // search data filter\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetMappings();\r\n }\r\n\r\n // call when input\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n\r\n const isValid = this.validateForm(value, name);\r\n this.setState({ errors, [name]: value });\r\n }\r\n\r\n // validate form\r\n //resolved KREP-17,KREP-21\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"ProductName\":\r\n if (value == null) {\r\n IsValid = false;\r\n errors.ProductName = \"Please select product.\";\r\n } else errors.ProductName = null;\r\n break;\r\n case \"FromNo\":\r\n this.setState({ Qty: 0 });\r\n\r\n value = parseInt(value);\r\n if (value < 1) {\r\n IsValid = false;\r\n errors.FromNo = \"Please enter +ve from number.\";\r\n } else {\r\n if (value === this.state.editMapping.ToNo) {\r\n IsValid = false;\r\n errors.FromNo = \"From No. should be less than To no.\";\r\n this.setState({ Qty: 0 });\r\n } else if (\r\n value < this.state.editMapping.FromNo ||\r\n value > this.state.editMapping.ToNo\r\n ) {\r\n IsValid = false;\r\n errors.FromNo = \"Numbers must exist between mapped series\";\r\n this.setState({ Qty: 0 });\r\n } else {\r\n errors.FromNo = null;\r\n errors.ToNo = null;\r\n errors.Qty = null;\r\n const fromNumber = parseInt(value); //value.trim() === '' ? 0 : parseInt(value.trim());\r\n const toNumber =\r\n this.state.ToNo === \"\" ? 0 : parseInt(this.state.ToNo);\r\n if (\r\n fromNumber >= this.state.refrenceFromNo &&\r\n fromNumber <= this.state.refrenceToNo &&\r\n toNumber >= this.state.refrenceFromNo &&\r\n toNumber <= this.state.refrenceToNo\r\n ) {\r\n if (fromNumber <= toNumber) {\r\n const qty = toNumber - fromNumber + 1;\r\n if (qty >= 0) {\r\n this.setState({ Qty: qty });\r\n } else {\r\n IsValid = false;\r\n errors.FromNo = \"From No. should be less than to number.\";\r\n this.setState({ Qty: 0 });\r\n }\r\n }\r\n // else {\r\n // IsValid = false;\r\n // errors.FromNo = \"From No. should be less than to number.\";\r\n // this.setState({ Qty: 0 })\r\n // }\r\n } else {\r\n IsValid = false;\r\n errors.FromNo =\r\n \"From No. should be less than To no. and numbers must exist between mapped series\";\r\n this.setState({ Qty: 0 });\r\n }\r\n }\r\n }\r\n break;\r\n case \"ToNo\":\r\n if (value < 1) {\r\n IsValid = false;\r\n errors.ToNo = \"Please enter To Number.\";\r\n } else errors.ToNo = null;\r\n break;\r\n case \"Qty\":\r\n value = parseInt(value);\r\n\r\n if (value < 1) {\r\n IsValid = false;\r\n errors.Qty = \"Please enter +ve quantity.\";\r\n }\r\n // else\r\n // if(value.length>10){\r\n // IsValid=false;\r\n // errors.Qty=\"enter valid quantity.\";\r\n // }\r\n else {\r\n if (value > this.state.editMapping.Qty) {\r\n errors.Qty =\r\n \"Qty can not greater than \" + this.state.editMapping.Qty;\r\n this.setState({ Qty: 0 });\r\n } else {\r\n // if (value < this.state.editMapping.FromNo || value > this.state.editMapping.ToNo)\r\n // { IsValid = false;\r\n // errors.Qty = \"Numbers must exist between mapped series\";\r\n // this.setState({ Qty: 0 })\r\n // }\r\n // else if (this.state.FromNo > this.state.editMapping.FromNo)\r\n // {\r\n //\r\n // IsValid = false;\r\n // errors.Qty = \"From Number can not greater than \"+this.state.editMapping.ToNo;\r\n // this.setState({ Qty: 0 })\r\n // }\r\n if (value > this.state.editMapping.Qty) {\r\n IsValid = false;\r\n errors.Qty =\r\n \"Qty can not greater than \" + this.state.editMapping.Qty;\r\n this.setState({ Qty: 0 });\r\n } else {\r\n errors.ToNo = null;\r\n errors.Qty = null;\r\n errors.FromNo = null;\r\n const qty = parseInt(value); //value.toString().trim() === '' ? 0 : parseInt(value.toString().trim());\r\n const fromNumber =\r\n this.state.FromNo.toString().trim() === \"\"\r\n ? 0\r\n : parseInt(this.state.FromNo.toString().trim());\r\n if (fromNumber >= 1 && qty >= 1) {\r\n const toNumber = qty + fromNumber - 1;\r\n\r\n if (toNumber > this.state.editMapping.ToNo) {\r\n IsValid = false;\r\n errors.Qty =\r\n \"To number should not be greater than.\" +\r\n this.state.editMapping.ToNo;\r\n this.setState({ Qty: 0 });\r\n // this.setState({ ToNo: toNumber })\r\n } else if (toNumber >= 0) {\r\n this.setState({ ToNo: toNumber });\r\n } else {\r\n IsValid = false;\r\n errors.Qty =\r\n \"To number should be greater than or equal to from number.\";\r\n this.setState({ ToNo: 0 });\r\n }\r\n } else {\r\n // IsValid = false;\r\n // errors.ToNo = \"To number should be greater than from number.\";\r\n this.setState({ ToNo: 0 });\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return IsValid;\r\n }\r\n\r\n // form reset\r\n formReset() {\r\n this.setState({\r\n MappingId: 0,\r\n ProductId: null,\r\n ProductName: \"\",\r\n FromNo: \"\",\r\n ToNo: \"\",\r\n Qty: \"\",\r\n // Remarks: ''\r\n });\r\n\r\n let errors = this.state.formError;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = \"\";\r\n });\r\n }\r\n\r\n // call when edit\r\n actionTemplate(rowData, column) {\r\n const editMapping = { ...rowData };\r\n\r\n // const DeMapping = (e) => {\r\n // this.DeMapData(rowData);\r\n // }\r\n\r\n const editMode = (e) => {\r\n this.setState({\r\n buttonLabel: \"Demap\",\r\n formHeading: \"Demap Numbers\",\r\n visible: true,\r\n MappingId: rowData.MappingId,\r\n ProductId: rowData.ProductID,\r\n ProductName: \"\" + rowData.ProductName,\r\n FromNo: \"\" + rowData.FromNo,\r\n ToNo: \"\" + rowData.ToNo,\r\n Qty: rowData.Qty,\r\n refrenceFromNo: rowData.FromNo,\r\n refrenceToNo: rowData.ToNo,\r\n editMapping: rowData,\r\n // Remarks: rowData.Remarks\r\n });\r\n\r\n console.log(this.state.editMapping);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n // call when sort data\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField = event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetMappings();\r\n }\r\n\r\n /// set isPreprinted or not\r\n setPreprintedValue(e) {\r\n this.setState(\r\n {\r\n isPreprintedValue: e.value,\r\n isPreprinted: e.value == \"Static Qr Mapping\" ? false : true,\r\n },\r\n () => {\r\n this.tblResponse.isPreprinted = this.state.isPreprinted;\r\n this.GetMappings();\r\n }\r\n );\r\n }\r\n\r\n //return html data\r\n //resolved KREP-20,KREP-38\r\n render() {\r\n const items = [{ label: \"Transaction\" }, { label: \"De Mapping\" }];\r\n\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n const options = [\"Static Qr Mapping\"]; //, 'PrePrinted Qr Mapping'];\r\n let header = (\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 \r\n \r\n \r\n
      \r\n
      \r\n

      De Mapping

      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.ProductName !== null ? (\r\n
      \r\n {this.state.formError.ProductName}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.FromNo !== null ? (\r\n
      {this.state.formError.FromNo}
      \r\n ) : null}\r\n
      \r\n\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.Qty !== null ? (\r\n
      {this.state.formError.Qty}
      \r\n ) : null}\r\n
      \r\n\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.ToNo !== null ? (\r\n
      {this.state.formError.ToNo}
      \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","import instance from './DefaultApi';\r\n\r\nexport default class UploaderFileService {\r\n ControllerName = 'Upload';\r\n\r\n // create de map data\r\n UploadMappingExcel(data) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/CSVUpload`, data).then(res => res)\r\n } \r\n}","import React, { Component } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Column } from \"primereact/column\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport ProductService from \"../../services/ProductService\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport MappingService from \"../../services/MappingService\";\r\nimport UploaderFileService from \"../../services/UploaderFileService\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport MessageComponent from \"../../template/Message\";\r\n\r\nimport CategoryService from \"../../services/CategoryService\";\r\nimport $ from \"jquery\";\r\nimport { Calendar } from \"primereact/calendar\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport { Card } from \"primereact/card\";\r\n// Mapping\r\nexport default class Mapping extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.fileInput = React.createRef();\r\n this.ProductService = new ProductService();\r\n this.MappingService = new MappingService();\r\n this.tblResponse = new tableRequest();\r\n this.CategoryService = new CategoryService();\r\n this.UploaderFileService = new UploaderFileService();\r\n\r\n this.state = {\r\n visible: false,\r\n show: false,\r\n edit: false,\r\n DaysLife: \"\",\r\n DDLMG1: [],\r\n DDLMG2: [],\r\n DDLMG3: [],\r\n DDLUOM: [],\r\n DDLPsize: [],\r\n formIsValid: true,\r\n updateLoader: false,\r\n oldEXPDate: \"\",\r\n sortOrder: \"\",\r\n buttonLabel: \"Submit\",\r\n formHeading: \"Add Mapping\",\r\n errorHeading: \"Number series not valid\",\r\n uploadImagPath: \"\",\r\n ProductImg: \"\",\r\n MappingId: null,\r\n MGId1: null,\r\n MGId2: null,\r\n MGId3: null,\r\n PUOM: null,\r\n Psize: null,\r\n\r\n ProductId: null,\r\n ProductName: \"\",\r\n FromNo: \"\",\r\n ToNo: \"\",\r\n Qty: \"\",\r\n Remark: \"\",\r\n Mrp: \"\",\r\n BatchNo: \"\",\r\n MFGDate: \"\",\r\n EXPDate: \"\",\r\n formError: {\r\n ProductId: null,\r\n ProductName: \"\",\r\n\r\n MGId1: null,\r\n MGId2: null,\r\n MGId3: null,\r\n PUOM: null,\r\n Psize: null,\r\n Mrp: null,\r\n FromNo: null,\r\n ToNo: null,\r\n Qty: null,\r\n BatchNo: null,\r\n MFGDate: null,\r\n EXPDate: null,\r\n },\r\n allData: [],\r\n Products: [],\r\n sales: [],\r\n errorAll: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n isPreprinted: false,\r\n isPreprintedValue: \"Static Qr Mapping\",\r\n };\r\n\r\n this.brandTemplate = this.brandTemplate.bind(this);\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.onSortFunction = this.onSortFunction.bind(this);\r\n this.myUploader = this.myUploader.bind(this);\r\n this.hideFunc = this.hideFunc.bind(this);\r\n this.hideError = this.hideError.bind(this);\r\n this.GetFromNo = this.GetFromNo.bind(this);\r\n this.onPage = this.onPage.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.openDialog = this.openDialog.bind(this);\r\n this.errorDialog = this.errorDialog.bind(this);\r\n\r\n this.onSort = this.onSort.bind(this);\r\n this.setPreprintedValue = this.setPreprintedValue.bind(this);\r\n }\r\n //trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.GetProductDDL();\r\n this.GetMappings();\r\n\r\n //this.GetallDDL();\r\n // this.GetMappingTemplate();\r\n }, 1000);\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n\r\n // On page call event\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetMappings();\r\n }, 250);\r\n }\r\n\r\n // use for image\r\n brandTemplate(rowData, column) {\r\n var src = rowData.ProductImg;\r\n return {rowData.ProductImg};\r\n }\r\n\r\n // set Image Path\r\n myUploader(event, t) {\r\n const fileExt = event.files[0].name.split(\".\").pop();\r\n // let errors = this.state.formError;\r\n // errors.ProductImg = \"\";\r\n // if (event.xhr) {\r\n // if (event.xhr.response) {\r\n // const response = JSON.parse(event.xhr.response);\r\n // console.log(response.ResponseMessage);\r\n // if (response) {\r\n // if (response.ResponseCode === \"200\") {\r\n // this.refs.child.showSuccess(response.ResponseMessage);\r\n\r\n // this.setState({\r\n // uploadImagPath: response.Source,\r\n // });\r\n // } else if (response.ResponseCode !== \"200\") {\r\n // this.setState({\r\n // show: true,\r\n\r\n // errorAll: response.ResponseData.ErrorList\r\n // });\r\n\r\n // console.log(\"error:-\",this.state.errorAll);\r\n\r\n // errors.ProductImg = \"Only image format is accepted.\";\r\n // this.setState({\r\n // uploadImagPath: \"\",\r\n // });\r\n // } else {\r\n // }\r\n // } else {\r\n // //this.messageService.add({ severity: 'error', summary: 'Oops', detail: 'Something went wrong' });\r\n // }\r\n // } else {\r\n // //this.messageService.add({ severity: 'error', summary: 'Oops', detail: 'Something went wrong' });\r\n // }\r\n // } else {\r\n // //this.messageService.add({ severity: 'error', summary: 'Oops', detail: 'Something went wrong' });\r\n // }\r\n\r\n let formData = new FormData();\r\n let fileToUpload = event.files[0];\r\n formData.append(\"file\", fileToUpload);\r\n\r\n if (fileExt == \"xls\" || fileExt == \"xlsx\") {\r\n this.setState({ updateLoader: false });\r\n this.UploaderFileService.UploadMappingExcel(formData).then((data) => {\r\n const response = data.data;\r\n this.setState({ updateLoader: true });\r\n //if response code is 200 success message else warning message\r\n if (response.ResponseCode === \"200\") {\r\n this.refs.child.showSuccess(response.ResponseMessage);\r\n //event.files= null;\r\n // this.setState({\r\n // uploadImagPath: response.Source,\r\n // });\r\n\r\n this.GetMappings();\r\n this.fileInput.current.clear();\r\n } else if (response.ResponseCode !== \"200\") {\r\n this.setState({\r\n show: true,\r\n errorAll: response.ResponseData.ErrorList,\r\n updateLoader: true,\r\n });\r\n //this.refs.child.showError(response.ErrorMessage);\r\n\r\n this.fileInput.current.clear();\r\n }\r\n });\r\n } else {\r\n this.refs.child.showWarn(\"File extension are not acceptable.\");\r\n this.setState({ updateLoader: true });\r\n }\r\n }\r\n\r\n // get product ddl list data\r\n GetProductDDL() {\r\n this.ProductService.GetProductsDDL().then((data) => {\r\n const resdata = data.data;\r\n\r\n //if resdata is not null\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.setState({\r\n ProductDDL: resdata.ResponseData,\r\n });\r\n }\r\n });\r\n }\r\n GetProductLife(val) {\r\n this.ProductService.GetProductLife(val).then((data) => {\r\n const resdata = data.data;\r\n\r\n //if resdata is not null\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.setState({\r\n DaysLife: resdata.ResponseData.CategoryId,\r\n });\r\n }\r\n });\r\n }\r\n\r\n // // get data list from api\r\n // GetMappingTemplate() {\r\n // this.MappingService.GetMappingTemplate(this.tblResponse).then(data => {\r\n // const resdata = data.data;\r\n // if (resdata !== null && resdata.ResponseData !== null && resdata.ResponseData.length > 0) {\r\n // this.datasource = resdata.ResponseData;\r\n // this.setState({\r\n // allData: resdata.ResponseData\r\n // });\r\n // } else {\r\n // // this.setState({\r\n // // allData: null\r\n // // });\r\n // }\r\n // });\r\n // }\r\n // onErrorImage() {}\r\n\r\n // get product mapping list data\r\n GetMappings() {\r\n this.tblResponse.SortColumn = \"MFGDate\";\r\n this.MappingService.GetMappings(this.tblResponse).then((data) => {\r\n const resdata = data.data;\r\n //if response code is 200 success message else error or warning message\r\n \r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n updateLoader: true,\r\n });\r\n } else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n updateLoader: true,\r\n });\r\n }\r\n });\r\n }\r\n\r\n // set image\r\n brandTemplate(rowData, column) {\r\n var src = rowData.ProductPic;\r\n return {rowData.ProductPic};\r\n }\r\n\r\n // edit mapping\r\n actionTemplate(rowData, column) {\r\n const filterCatDDL = this.state.DDLMG1.filter(\r\n (x) => x.value == rowData.CategoryIdMG1\r\n );\r\n const filterCatDDLMG2 = this.state.DDLMG2.filter(\r\n (x) => x.value == rowData.CategoryIdMG2\r\n );\r\n const filterCatDDLMG3 = this.state.DDLMG3.filter(\r\n (x) => x.value == rowData.CategoryIdMG3\r\n );\r\n\r\n const editMode = (e) => {\r\n this.setState({\r\n buttonLabel: \"Update\",\r\n formHeading: \"Update Mapping\",\r\n visible: true,\r\n edit: true,\r\n MappingId: rowData.MappingId,\r\n MGId1: filterCatDDL.length != 0 ? rowData.CategoryIdMG1.toString() : \"\",\r\n MGId2:\r\n filterCatDDLMG2.length != 0 ? rowData.CategoryIdMG2.toString() : \"\",\r\n MGId3:\r\n filterCatDDLMG3.length != 0 ? rowData.CategoryIdMG3.toString() : \"\",\r\n PUOM: rowData.PUOM,\r\n Psize: rowData.PSize,\r\n ProductName: \"\" + rowData.ProductName,\r\n ProductId: \"\" + rowData.ProductId,\r\n FromNo: rowData.FromNo,\r\n ToNo: rowData.ToNo,\r\n Qty: \"\" + rowData.Qty,\r\n BatchNo: rowData.BatchNo,\r\n MFGDate: rowData.MFGDate,\r\n EXPDate: rowData.EXPDate,\r\n oldEXPDate: rowData.EXPDate,\r\n Remark: rowData.Remark,\r\n Mrp: rowData.Mrp,\r\n });\r\n };\r\n return (\r\n
      \r\n \r\n {/* */}\r\n
      \r\n );\r\n }\r\n\r\n setPreprintedValue(e) {\r\n this.setState(\r\n {\r\n isPreprintedValue: e.value,\r\n isPreprinted: e.value == \"Static Qr Mapping\" ? false : true,\r\n },\r\n () => {\r\n this.tblResponse.isPreprinted = this.state.isPreprinted;\r\n this.GetMappings();\r\n }\r\n );\r\n }\r\n // call when input\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n const isValid = this.validateForm(value, name);\r\n\r\n this.setState({ errors, [name]: value });\r\n\r\n // if (name == 'PUOM' || name == 'Psize' || name == 'MGId1' || name == 'MGId2' || name == 'MGId3') {\r\n // this.setState({\r\n\r\n // ProductDDL: '',\r\n // })\r\n // }\r\n // if (name == 'PUOM' && value.length > 0 && this.state.formError.MGId1 == null && this.state.formError.MGId2 == null && this.state.formError.MGId3 == null) {\r\n // this.ProductService.GetProductSize(value).then((data) => {\r\n // const resdata = data.data;\r\n // if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n // this.setState({\r\n // PUOM: value,\r\n\r\n // DDLPsize: resdata.ResponseData == null ? [] : resdata.ResponseData,\r\n // });\r\n // }\r\n // });\r\n // }\r\n // if (this.state.formError.PUOM == null && name == 'Psize') {\r\n\r\n // this.GetProductDDL(value)\r\n // }\r\n // if (this.state.formError.Psize == null && name == 'ProductId') {\r\n // this.GetProductLife(value)\r\n // }\r\n if (name == \"MFGDate\") {\r\n let exdate = new Date(value);\r\n\r\n exdate.setDate(exdate.getDate() + this.state.DaysLife);\r\n this.setState({\r\n EXPDate: exdate,\r\n });\r\n }\r\n }\r\n\r\n // validate form\r\n //resolved KREP-17\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"ProductId\":\r\n if (value == null) {\r\n IsValid = false;\r\n errors.ProductId = \"Please select product.\";\r\n } else {\r\n this.GetProductLife(value);\r\n errors.ProductId = null;\r\n }\r\n break;\r\n case \"Mrp\":\r\n if (value == null || isNaN(value)) {\r\n IsValid = false;\r\n errors.Mrp = \"Please Enter Valid product MRP.\";\r\n } else errors.Mrp = null;\r\n break;\r\n // case \"PUOM\":\r\n // if (value == null) {\r\n // IsValid = false;\r\n // errors.PUOM = \"Please select product's UOM.\";\r\n // } else errors.PUOM = null;\r\n // break;\r\n // case \"MGId1\":\r\n // if (value == null) {\r\n // IsValid = false;\r\n // errors.MGId1 = \"Please select Main Category\";\r\n // } else errors.MGId1 = null;\r\n // break;\r\n // case \"MGId2\":\r\n // if (value == null) {\r\n // IsValid = false;\r\n // errors.MGId2 = \"Please select Sub Category.\";\r\n // } else errors.MGId2 = null;\r\n // break;\r\n // case \"MGId3\":\r\n // if (value == null) {\r\n // IsValid = false;\r\n // errors.MGId3 = \"Please select Sub Division Category.\";\r\n // } else errors.MGId3 = null;\r\n // break;\r\n case \"FromNo\":\r\n if (value.trim().length < 1) {\r\n IsValid = false;\r\n errors.FromNo = \"Please enter your from number.\";\r\n } else if (!value.match(/^[0-9]+$/)) {\r\n IsValid = false;\r\n errors.FromNo = \"Please enter only number.\";\r\n this.setState({ Qty: 0 });\r\n } else {\r\n errors.FromNo = null;\r\n errors.ToNo = null;\r\n errors.Qty = null;\r\n const fromNumber = value.trim() === \"\" ? 0 : parseInt(value.trim());\r\n const toNumber =\r\n this.state.ToNo === \"\" ? 0 : parseInt(this.state.ToNo);\r\n if (fromNumber >= 1 && toNumber >= 1) {\r\n if (fromNumber <= toNumber) {\r\n const qty = toNumber - fromNumber + 1;\r\n if (qty >= 0) {\r\n this.setState({ Qty: qty });\r\n } else {\r\n IsValid = false;\r\n errors.FromNo = \"From number should be less than to number.\";\r\n this.setState({ Qty: 0 });\r\n }\r\n } else {\r\n IsValid = false;\r\n errors.FromNo = \"From number should be less than to number.\";\r\n this.setState({ Qty: 0 });\r\n }\r\n } else {\r\n // IsValid = false;\r\n // errors.FromNo = \"From number should be less than to number.\";\r\n this.setState({ Qty: 0 });\r\n }\r\n }\r\n break;\r\n case \"ToNo\":\r\n if (value < 1) {\r\n IsValid = false;\r\n errors.ToNo = \"Please enter To Number.\";\r\n } else errors.ToNo = null;\r\n break;\r\n case \"Qty\":\r\n if (value < 1) {\r\n IsValid = false;\r\n errors.Qty = \"Please enter +ve quantity.\";\r\n }\r\n //else\r\n // if(value.toString().trim().length>10){\r\n // IsValid=false;\r\n // errors.Qty=\"enter valid quantity.\";\r\n // }\r\n else {\r\n // if (!value.toString().match(/^[0-9]+$/)) {\r\n // IsValid = false;\r\n // errors.Qty = \"Please enter only number.\";\r\n // this.setState({ Qty: 0 });\r\n // } else {\r\n errors.ToNo = null;\r\n errors.Qty = null;\r\n errors.FromNo = null;\r\n const qty = parseInt(value); //.toString().trim() === \"\" ? 0 : parseInt(value.toString().trim());\r\n const fromNumber =\r\n this.state.FromNo.toString().trim() === \"\"\r\n ? 0\r\n : parseInt(this.state.FromNo.toString().trim());\r\n if (fromNumber >= 1 && qty >= 1) {\r\n const toNumber = qty + fromNumber - 1;\r\n if (toNumber >= 0) {\r\n this.setState({ ToNo: toNumber });\r\n } else {\r\n IsValid = false;\r\n errors.Qty =\r\n \"To number should be greater than or equal to from number.\";\r\n this.setState({ ToNo: 0 });\r\n }\r\n } else {\r\n // IsValid = false;\r\n // errors.ToNo = \"To number should be greater than from number.\";\r\n this.setState({ ToNo: 0 });\r\n }\r\n }\r\n //}\r\n break;\r\n case \"BatchNo\":\r\n if (value.trim().length < 1) {\r\n IsValid = false;\r\n errors.BatchNo = \"Please enter Batch No\";\r\n } else errors.BatchNo = null;\r\n break;\r\n case \"MFGDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n IsValid = false;\r\n errors.MFGDate = \"Please select MFG Date\";\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n IsValid = false;\r\n errors.MFGDate = \"Please enter only date.\";\r\n } else errors.MFGDate = null;\r\n break;\r\n case \"EXPDate\":\r\n let a = new Date(this.state.MFGDate);\r\n if (value == null || value < a) {\r\n IsValid = false;\r\n errors.EXPDate = \"Please select Date after MFG Date\";\r\n } else if (\r\n value != \"\" &&\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n IsValid = false;\r\n errors.EXPDate = \"Please enter only date.\";\r\n } else errors.EXPDate = null;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return IsValid;\r\n }\r\n\r\n // open dialog\r\n openDialog() {\r\n this.setState({ visible: true });\r\n this.formReset();\r\n }\r\n\r\n // open dialog\r\n errorDialog() {\r\n this.setState({ show: true });\r\n }\r\n\r\n hideFunc() {\r\n this.setState({\r\n visible: false,\r\n edit: false,\r\n buttonLabel: \"Submit\",\r\n formHeading: \"Add Mapping\",\r\n });\r\n this.formReset();\r\n }\r\n\r\n hideError() {\r\n this.setState({\r\n show: false,\r\n });\r\n }\r\n\r\n // form Reset\r\n formReset() {\r\n this.setState({\r\n MappingId: 0,\r\n oldEXPDate: \"\",\r\n\r\n DaysLife: \"\",\r\n edit: false,\r\n ProductId: null,\r\n MGId1: null,\r\n MGId2: null,\r\n MGId3: null,\r\n PUOM: null,\r\n Psize: null,\r\n FromNo: \"\",\r\n ToNo: \"\",\r\n Qty: \"\",\r\n BatchNo: \"\",\r\n Remark: \"\",\r\n Mrp: \"\",\r\n MFGDate: \"\",\r\n EXPDate: \"\",\r\n // Remarks: ''\r\n });\r\n let errors = this.state.formError;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = \"\";\r\n });\r\n }\r\n\r\n // submit form\r\n submitForm(event) {\r\n event.preventDefault();\r\n\r\n let isfrmvalid = true;\r\n if (this.state.buttonLabel != \"Update\") {\r\n let checkerror = this.state.formError;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key];\r\n let valid = this.validateForm(val, key);\r\n //form is not valid\r\n\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n }\r\n console.log(this.state.formError);\r\n //form is valid\r\n if (isfrmvalid) {\r\n this.setState({ updateLoader: false });\r\n let formData = null;\r\n if (\r\n this.state.buttonLabel == \"Update\" &&\r\n this.state.oldEXPDate != this.state.EXPDate\r\n ) {\r\n formData = {\r\n MappingId: this.state.MappingId,\r\n EXPDate: this.state.EXPDate.toLocaleDateString(),\r\n };\r\n } else if (this.state.buttonLabel == \"Submit\") {\r\n formData = {\r\n MappingId: this.state.MappingId,\r\n ProductId:\r\n this.state.ProductId === \"\" ? 0 : parseInt(this.state.ProductId),\r\n // CategoryIdMG1: this.state.MGId1 === \"\" ? 0 : parseInt(this.state.MGId1),\r\n // CategoryIdMG2: this.state.MGId2 === \"\" ? 0 : parseInt(this.state.MGId2),\r\n // CategoryIdMG3: this.state.MGId3 === \"\" ? 0 : parseInt(this.state.MGId3),\r\n FromNo: this.state.FromNo === \"\" ? 0 : parseInt(this.state.FromNo),\r\n ToNo: this.state.ToNo === \"\" ? 0 : parseInt(this.state.ToNo),\r\n Qty: this.state.Qty === \"\" ? 0 : parseInt(this.state.Qty),\r\n MFGDate: this.state.MFGDate.toLocaleDateString(),\r\n BatchNo: this.state.BatchNo,\r\n EXPDate: this.state.EXPDate.toLocaleDateString(),\r\n Remark: this.state.Remark,\r\n Mrp: this.state.Mrp,\r\n isPreprinted: this.state.isPreprinted,\r\n };\r\n }\r\n\r\n setTimeout(() => {\r\n if (formData != null) {\r\n this.MappingService.CreateMapping(formData).then((data) => {\r\n const resdata = data.data;\r\n //if ResponseCode is 200 then success message else error or warning message\r\n if (resdata.ResponseCode === \"200\") {\r\n this.refs.child.showSuccess(resdata.ResponseMessage);\r\n this.setState({\r\n loading: true,\r\n visible: false,\r\n updateLoader: true,\r\n });\r\n this.formReset();\r\n this.GetMappings();\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.refs.child.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.refs.child.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n } else {\r\n this.hideFunc();\r\n }\r\n }, 1000);\r\n }\r\n }\r\n\r\n // get next fromNO\r\n GetFromNo() {\r\n this.formReset();\r\n this.setState({ visible: true });\r\n\r\n this.MappingService.GetFromNumberMap(this.state.isPreprinted).then(\r\n (data) => {\r\n const resdata = data.data;\r\n //if ResponseCode is 200 FromNo state will be set\r\n if (resdata.ResponseCode === \"200\" && resdata.ResponseData != null) {\r\n let frmNumber = resdata.ResponseData.FrmNo;\r\n frmNumber = frmNumber ?? 0 + 1;\r\n this.setState({ FromNo: \"\" + frmNumber });\r\n }\r\n }\r\n );\r\n }\r\n // set lazy load values\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = \"1\";\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n }\r\n\r\n // serach table list\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetMappings();\r\n }\r\n onSortFunction(event) {\r\n console.log(event);\r\n }\r\n GetallDDL() {\r\n this.CategoryService.GetCategoryDDLMG1().then((data) => {\r\n const resdata = data.data;\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.setState({\r\n DDLMG1: resdata.ResponseData == null ? [] : resdata.ResponseData,\r\n });\r\n }\r\n });\r\n this.CategoryService.GetCategoryDDLMG2(1).then((data) => {\r\n const resdata = data.data;\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.setState({\r\n DDLMG2: resdata.ResponseData == null ? [] : resdata.ResponseData,\r\n });\r\n }\r\n });\r\n\r\n this.CategoryService.GetCategoryDDLMG3(1).then((data) => {\r\n const resdata = data.data;\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.setState({\r\n DDLMG3: resdata.ResponseData == null ? [] : resdata.ResponseData,\r\n });\r\n }\r\n });\r\n this.ProductService.GetProductUOM().then((data) => {\r\n const resdata = data.data;\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.setState({\r\n DDLUOM: resdata.ResponseData == null ? [] : resdata.ResponseData,\r\n });\r\n }\r\n });\r\n }\r\n\r\n // sort data\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField =\r\n event.sortField == \"MFGDate\" ? \"MFGDate\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetMappings();\r\n }\r\n\r\n // return html\r\n //resolved KREP-19,KREP-126,KREP-125,KREP-122,KREP-112(CR)\r\n render() {\r\n const items = [{ label: \"Transaction\" }, { label: \"Mapping\" }];\r\n\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n const options = [\"Static Qr Mapping\"]; //, 'PrePrinted Qr Mapping'];\r\n let header = (\r\n
      \r\n
      \r\n {/* */}\r\n
      \r\n
      \r\n \r\n \r\n \r\n {/* Download Template */}\r\n
      \r\n
      \r\n );\r\n return (\r\n <>\r\n \r\n \r\n \r\n
      \r\n
      \r\n

      Mapping

      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n
      \r\n {/* \r\n\r\n { this.myUploader(e, this) }}\r\n accept=\".xlsx\" /> */}\r\n {/* {this.state.uploadImagPath ? (\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n ) : null} \r\n Download Template \r\n */}\r\n
      \r\n\r\n {/*
      \r\n \r\n
      */}\r\n
      \r\n {/*
      \r\nresponse.ErrorMessage\r\n
      */}\r\n
      \r\n\r\n \r\n
      \r\n
      \r\n {/*
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.MGId1 !== null ?\r\n
      {this.state.formError.MGId1}
      : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.MGId2 !== null ?\r\n
      {this.state.formError.MGId2}
      : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.MGId3 !== null ?\r\n
      {this.state.formError.MGId3}
      : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.PUOM !== null ?\r\n
      {this.state.formError.PUOM}
      : null}\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.Psize !== null ?\r\n
      {this.state.formError.Psize}
      : null}\r\n
      */}\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.ProductId !== null ? (\r\n
      {this.state.formError.ProductId}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.FromNo !== null ? (\r\n
      {this.state.formError.FromNo}
      \r\n ) : null}\r\n
      \r\n\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.Qty !== null ? (\r\n
      {this.state.formError.Qty}
      \r\n ) : null}\r\n
      \r\n\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.ToNo !== null ? (\r\n
      {this.state.formError.ToNo}
      \r\n ) : null}\r\n
      \r\n\r\n
      \r\n \r\n
      \r\n
      \r\n {this.state.edit ? (\r\n this.state.MFGDate\r\n ) : (\r\n \r\n )}\r\n {/* */}\r\n {this.state.formError.MFGDate !== null ? (\r\n
      {this.state.formError.MFGDate}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n \r\n \r\n {/* */}\r\n {this.state.formError.EXPDate !== null ? (\r\n
      {this.state.formError.EXPDate}
      \r\n ) : null}\r\n
      \r\n\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.BatchNo !== null ? (\r\n
      {this.state.formError.BatchNo}
      \r\n ) : null}\r\n
      \r\n\r\n
      \r\n \r\n
      \r\n
      \r\n {\" \"}\r\n {this.state.formError.Mrp !== null ? (\r\n
      {this.state.formError.Mrp}
      \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","import instance from \"./DefaultApi\";\r\n\r\nexport default class DispatchService {\r\n ControllerName = \"Dispatch\";\r\n\r\n // Save Dispatch\r\n Save(formData) {\r\n return instance\r\n .post(\r\n `${process.env.REACT_APP_API_URL}${this.ControllerName}/save`,\r\n formData\r\n )\r\n .then((res) => res);\r\n }\r\n ReturnCarton(formData) {\r\n return instance\r\n .post(\r\n `${process.env.REACT_APP_API_URL}${this.ControllerName}/ReturnCarton`,\r\n formData\r\n )\r\n .then((res) => res);\r\n }\r\n\r\n // Save Dispatch Carton Receive\r\n DispatchCartonReceive(formData) {\r\n return instance\r\n .post(\r\n `${process.env.REACT_APP_API_URL}${this.ControllerName}/DispatchCartonReceive`,\r\n formData\r\n )\r\n .then((res) => res);\r\n }\r\n\r\n // Save Dispatch Receive\r\n SaveDispatchReceive(formData) {\r\n return instance\r\n .post(\r\n `${process.env.REACT_APP_API_URL}${this.ControllerName}/SaveDispatchReceive`,\r\n formData\r\n )\r\n .then((res) => res);\r\n }\r\n\r\n // Get Dispatch Receive Carton\r\n GetDispatchReceiveCarton(formData) {\r\n return instance\r\n .post(\r\n `${process.env.REACT_APP_API_URL}${this.ControllerName}/GetDispatchReceiveCarton`,\r\n formData\r\n )\r\n .then((res) => res);\r\n }\r\n GetReturnReport(tableRequest) {\r\n debugger\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetReturnReport`, tableRequest).then(res => res)\r\n}\r\n // get Dispatch Receive\r\n GetDispatchReceive(tbl) {\r\n return instance\r\n .post(\r\n `${process.env.REACT_APP_API_URL}${this.ControllerName}/GetDispatchReceive`,\r\n tbl\r\n )\r\n .then((res) => res);\r\n }\r\n\r\n // get Dispatch\r\n GetDispatch(tbl) {\r\n return instance\r\n .post(\r\n `${process.env.REACT_APP_API_URL}${this.ControllerName}/GetDispatch`,\r\n tbl\r\n )\r\n .then((res) => res);\r\n }\r\n\r\n // get Dispatch\r\n GetDispatch(tbl) {\r\n return instance\r\n .post(\r\n `${process.env.REACT_APP_API_URL}${this.ControllerName}/GetDispatch`,\r\n tbl\r\n )\r\n .then((res) => res);\r\n }\r\n // Transport mode ddl\r\n GetModeDDL() {\r\n ;\r\n return instance\r\n .get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetModeDDL`)\r\n .then((res) => res);\r\n }\r\n\r\n // scan get tertiary packing\r\n GetTertiaryPackingScan(d, checkItemDate, scanlist) {\r\n return instance\r\n .get(\r\n `${process.env.REACT_APP_API_URL}${this.ControllerName}/GetTertiaryPackingScan?sid=` +\r\n d +\r\n `&&checkItemDate=` +\r\n checkItemDate,\r\n scanlist\r\n )\r\n .then((res) => res);\r\n }\r\n GetReturnInfo(cartonID, isTransit, wareHouseId) {\r\n return instance.post(\r\n `${process.env.REACT_APP_API_URL}${this.ControllerName}/GetPackingForReturn`,\r\n {\r\n cartonID: cartonID,\r\n isTransit: isTransit,\r\n wareHouseId: wareHouseId\r\n }\r\n ).then((res) => res);\r\n }\r\n // get all data\r\n // scan get tertiary packing\r\n GetJourney(d) {\r\n return instance\r\n .get(\r\n `${process.env.REACT_APP_API_URL}${this.ControllerName}/GetJourney?qr=` +\r\n d,\r\n null\r\n )\r\n .then((res) => res);\r\n }\r\n GetScanInfo(d) {\r\n return instance\r\n .get(\r\n `${process.env.REACT_APP_API_URL}${this.ControllerName}/GetScanInfo?qr=` +\r\n d,\r\n null\r\n )\r\n .then((res) => res);\r\n }\r\n}\r\n","import QRCode from \"qrcode\";\r\nimport * as jsPDF from \"jspdf\";\r\nimport pdfMake from \"pdfmake/build/pdfmake\";\r\nimport pdfFonts from \"pdfmake/build/vfs_fonts\";\r\nimport Logo from \"./../assets/images/logo2.png\";\r\npdfMake.vfs = pdfFonts.pdfMake.vfs;\r\n\r\n/// TO print Dispatch Slip\r\nexport default class PrintDispatchService {\r\n genQR(text) {\r\n let qr = \"\";\r\n QRCode.toDataURL(text, function (err, url) {\r\n qr = url;\r\n });\r\n return qr;\r\n }\r\n\r\n Printpdf(dispatchData, date) {\r\n ;\r\n // const cmp = dispatchData.Cmp;\r\n let qrdata = this.genQR(dispatchData.CartonId);\r\n const company = dispatchData.company;\r\n //s company.CompanyLogo =this.Logo;\r\n\r\n var doc = {\r\n pageMargins: [30, 10, 30, 10],\r\n layout: \"\",\r\n pageSize: \"A4\",\r\n\r\n footer: function (currentPage, pageCount) {\r\n return {\r\n stack: [\r\n //{ text: '', margin: [40, 0, 0, 0] },\r\n {\r\n columns: [\r\n {\r\n text: currentPage.toString() + \" of \" + pageCount,\r\n alignment: \"center\",\r\n },\r\n //{ text: new Date(), alignment: 'right', margin: [0, 0, 10, 0] }\r\n ],\r\n },\r\n ],\r\n };\r\n },\r\n content: [\r\n {\r\n text: \"Dispatch Invoice\",\r\n alignment: \"center\",\r\n fontSize: 18,\r\n bold: true,\r\n margin: 5,\r\n },\r\n {\r\n table: {\r\n widths: [\"35%\", \"45%\", \"20%\"],\r\n body: [\r\n [\r\n {\r\n margin: [10, 10, 0, 0],\r\n width: 170,\r\n height: 60,\r\n //rowSpan: 2,\r\n image: \"data:image/jpeg;base64,\" + company.CompanyLogo + \"\",\r\n }, //fontSize: 16, bold: true,margin:[0,20,0,0]\r\n {\r\n //rowSpan: 2,\r\n text: [\r\n //this.selectedddl.value.Name\r\n // { text: 'Krishi Rasayan' + '\\n' + 'Address', fontSize: 12, bold: true, margin: [0, 100, 0, 0], alignment: 'center' },\r\n {\r\n text: company.CompanyName + \"\\n\" + company.Address,\r\n fontSize: 12,\r\n bold: true,\r\n margin: [0, 70, 0, 0],\r\n alignment: \"center\",\r\n },\r\n {\r\n text:\r\n \"\\n\" + company.City + \" - \" + company.Pincode + \"\\n\",\r\n fontSize: 10,\r\n alignment: \"center\",\r\n },\r\n {\r\n text: \"Tel :- \" + company.Mobile,\r\n italics: true,\r\n fontSize: 10,\r\n alignment: \"center\",\r\n },\r\n {\r\n text:\r\n \"\\nDispatch Date : \" +\r\n date +\r\n \"\\n\" +\r\n \"Dispatch No : \" +\r\n dispatchData.CartonId +\r\n \"\\n\",\r\n fontSize: 10,\r\n alignment: \"center\",\r\n },\r\n // { text: 'Krishi Rasayan Exports Pvt. Ltd.' + '\\n 1115, Hemkunt Modi Tower, 98, Nehru Place', fontSize: 12, bold: true, margin: [0, 100, 0, 0], alignment: 'center' },\r\n // { text: '\\n' + \"New Delhi 110019\" + '\\n', fontSize: 10, alignment: 'center' },\r\n // { text: 'Tel :- 011 3088 5555', italics: true, fontSize: 10, alignment: 'center' },\r\n ],\r\n },\r\n {\r\n margin: [20, 10, 5, 5],\r\n qr: dispatchData.CartonId,\r\n fit: \"80\",\r\n },\r\n ],\r\n\r\n [\r\n //fontSize: 16, bold: true,margin:[0,20,0,0]\r\n {\r\n colSpan: 3,\r\n text: [\r\n //this.selectedddl.value.Name\r\n {\r\n bold: true,\r\n text:\r\n \"Customer Details : \" +\r\n dispatchData.userDetail.FirmName +\r\n // ' \\nShipping Address : ' + dispatchData.userDetail.ship_Address1 + ' ' + dispatchData.userDetail.ship_Address2 + ' ' + dispatchData.userDetail.ship_CityName + ' ' + dispatchData.userDetail.ship_StateName + ' ' + dispatchData.userDetail.ship_Pincode + ' ' + dispatchData.userDetail.ship_CountryName +\r\n \"\\n Billing Address : \" +\r\n dispatchData.userDetail.bill_Address1 +\r\n \" \" +\r\n dispatchData.userDetail.bill_Address2 +\r\n \" \" +\r\n dispatchData.userDetail.bill_CityName +\r\n \" \" +\r\n dispatchData.userDetail.bill_StateName +\r\n \" \" +\r\n dispatchData.userDetail.bill_Pincode +\r\n \" \" +\r\n dispatchData.userDetail.bill_CountryName +\r\n \" \" +\r\n \"\\n Mode of Transport: \" +\r\n dispatchData.TransportMode +\r\n \" \" +\r\n \"\\n LR No.: \" +\r\n dispatchData.LR +\r\n \" \",\r\n fontSize: 10,\r\n },\r\n ],\r\n },\r\n \"\",\r\n \"\",\r\n ],\r\n ],\r\n },\r\n\r\n layout: \"\",\r\n },\r\n\r\n {\r\n //for dispatched data\r\n marginTop: -1,\r\n marginBottom: -1,\r\n fontSize: 9.5,\r\n table: {\r\n widths: [\"5%\", \"18%\", \"50%\", \"9%\", \"5%\", \"13%\"],\r\n body: this.getDispatchedData(dispatchData),\r\n },\r\n },\r\n {\r\n marginBottom: -1,\r\n fontSize: 10,\r\n table: {\r\n widths: [\"10%\", \"50%\", \"10%\", \"15%\", \"15%\"],\r\n body: this.getInfoBody(dispatchData),\r\n },\r\n },\r\n {\r\n //for special instruction\r\n table: {\r\n heights: [10, 90],\r\n margin: 5,\r\n widths: [\"*\"],\r\n body: [[\"Other Comments or Special Instructions\"], [\"\"]],\r\n },\r\n },\r\n ],\r\n styles: {\r\n filledHeader: {\r\n bold: true,\r\n fontSize: 14,\r\n color: \"white\",\r\n fillColor: \"black\",\r\n alignment: \"center\",\r\n },\r\n },\r\n };\r\n\r\n pdfMake.createPdf(doc).download(dispatchData.CartonId + \".pdf\");\r\n //this.addDispatch.reset();\r\n }\r\n\r\n //get special info body\r\n getInfoBody(dispatchData) {\r\n const counts = dispatchData.cartonList.reduce(\r\n (r, { ProductName, BatchNo, TotalQty }) => {\r\n const key = `${ProductName}-${BatchNo}`;\r\n r[key] = r[key] || {\r\n ProductName,\r\n BatchNo,\r\n Count: 0,\r\n Items: 0\r\n };\r\n r[key].Count += 1;\r\n r[key].Items += 1 * TotalQty;\r\n return r;\r\n },\r\n {}\r\n );\r\n const timeTable = Object.values(counts);\r\n let d = [];\r\n ;\r\n var i = 1;\r\n d.push([\"S.No.\", \"Product Specification\", \"Batch No.\", \"Carton Counts\", \"Item Counts\"]);\r\n timeTable.forEach((childObj) => {\r\n d.push([i, childObj.ProductName, childObj.BatchNo, childObj.Count, childObj.Items]);\r\n i++;\r\n });\r\n d.push([\r\n { alignment: \"right\", colSpan: 5, text: \"Total Quantity : \" + dispatchData.Qty },\r\n {},\r\n ]);\r\n return d;\r\n }\r\n\r\n //to get Dispatched data\r\n getDispatchedData(data) {\r\n let d = [];\r\n ;\r\n var i = 1;\r\n d.push([\r\n \"S.No.\",\r\n \"Carton No\",\r\n \"Product Specification\",\r\n \"Batch No.\",\r\n \"Units\",\r\n \"Total Quantity\",\r\n ]);\r\n data.cartonList.forEach((childObj) => {\r\n if (childObj.CartonId.length > 0) {\r\n d.push([\r\n i,\r\n childObj.CartonId,\r\n childObj.ProductName,\r\n childObj.BatchNo,\r\n childObj.TotalQty,\r\n childObj.ProductUOM,\r\n ]);\r\n i++;\r\n }\r\n // else if (childObj.CartonId.length > 0)\r\n // d.push([childObj.CartonId, childObj.TotalQty]);\r\n });\r\n return d;\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Column } from \"primereact/column\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport UserService from \"../../services/UserService\";\r\nimport DispatchService from \"../../services/DispatchService\";\r\nimport { Button } from \"primereact/button\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport { confirmAlert } from \"react-confirm-alert\"; // Import\r\nimport { ConfirmationModal } from \"../../template/ConfirmationModal\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport $ from \"jquery\";\r\nimport PrintDispatchService from \"../../services/PrintDispatchService\";\r\nimport ApiService from \"../../services/apiService\";\r\nimport WareHouseMaterService from \"../../services/WareHouseMaterService\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport { Card } from \"primereact/card\";\r\nimport { TextField } from \"@material-ui/core\";\r\nexport default class Dispatch extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.UserService = new UserService();\r\n this.DispatchService = new DispatchService();\r\n this.PrintDispatchService = new PrintDispatchService();\r\n this.ApiService = new ApiService();\r\n this.WareHouseMaterService = new WareHouseMaterService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n TransportModeId: null,\r\n Mode: \"\",\r\n scanTxt: \"\",\r\n warehouseVisible: false,\r\n visible: false,\r\n radio: false,\r\n isold: false,\r\n cartoonLoader: false,\r\n scanItemLoader: true,\r\n remarkVisible: false,\r\n olderstockVisible: false,\r\n eventBlock: false,\r\n sortIcon: false,\r\n sortOrder: \"1\",\r\n formError: {\r\n TransportModeId: \"\",\r\n LR: \"\",\r\n },\r\n UserDDL: [],\r\n SelectedDDL: [],\r\n wareHouseDDL: [],\r\n WareHouseFactoryDDL: [],\r\n SendTo: [],\r\n buttonLabel: \"Submit\",\r\n sales: [],\r\n scanItems: [],\r\n scanDisp: [],\r\n olderdata: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n bill_Address1: \"\",\r\n bill_Address2: \"\",\r\n bill_City: \"\",\r\n bill_Country: \"\",\r\n bill_Pincode: \"\",\r\n bill_State: \"\",\r\n ship_Address1: \"\",\r\n ship_Address2: \"\",\r\n ship_City: \"\",\r\n ship_Country: \"\",\r\n ship_Pincode: \"\",\r\n ship_State: \"\",\r\n IsOldProduct: false,\r\n Remark: \"\",\r\n globalFilter: null,\r\n needtoSaveDispatch: \"\",\r\n ModeDDL: [],\r\n LR: \"\",\r\n };\r\n this.hideFunc = this.hideFunc.bind(this);\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n // this.handleChange1 = this.handleChange1.bind(this);\r\n //this.sendToEvent = this.sendToEvent.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n this.submitRemark = this.submitRemark.bind(this);\r\n this.onPage = this.onPage.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n this.ScanItem = this.ScanItem.bind(this);\r\n this.onValueChange = this.onValueChange.bind(this);\r\n }\r\n //trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.GetWareHouse(0);\r\n this.GetDispatch();\r\n const objtoprint = {\r\n CartonId: \"DID-2020-21-00001\",\r\n CreatedDt: \"14/07/20\",\r\n Qty: \"2\",\r\n userDetail: {\r\n UserId: 30,\r\n Token: null,\r\n RefreshToken: null,\r\n ReferenceID: \"CE1215F5-44DE-46F0-B9B7-72E1D1B24172\",\r\n Username: \"ajaytestdealer\",\r\n Password: null,\r\n FirstName: \"new\",\r\n LastName: \"gupta\",\r\n Email: null,\r\n MobileNo: \"8181818181\",\r\n UserType: 2,\r\n ProfileImage: null,\r\n DeviceType: null,\r\n IsActive: true,\r\n InActiveReason: null,\r\n CreatedBy: null,\r\n CreatedDt: \"2020-07-10T13:57:11.46\",\r\n UpdatedBy: null,\r\n UpdatedDt: null,\r\n Salt: null,\r\n CreatedDate: null,\r\n IsResetPassword: false,\r\n TotalRows: 0,\r\n userId: 0,\r\n Id: 0,\r\n ship_Country: \"101\",\r\n ship_State: \"1\",\r\n ship_City: \"93\",\r\n ship_CountryName: \"India\",\r\n ship_StateName: \"Andaman & Nicobar Islands\",\r\n ship_CityName: \"Carnicobar\",\r\n ship_Address1: \"Add1\",\r\n ship_Address2: \"Add2\",\r\n ship_Pincode: \"1902929\",\r\n bill_Country: \"101\",\r\n bill_State: \"4\",\r\n bill_City: \"91\",\r\n bill_CountryName: \"India\",\r\n bill_StateName: \"Assam\",\r\n bill_CityName: \"Cachar\",\r\n bill_Address1: \"Add1\",\r\n bill_Address2: \"Add2\",\r\n bill_Pincode: \"1902929\",\r\n },\r\n cartonList: [\r\n {\r\n ProductName: \"KROSIN-AG\",\r\n TertiaryCartonId: \"TID-2020-21-00001\",\r\n TotalSecondaryCarton: null,\r\n CartonId: null,\r\n TotalQty: \"2\",\r\n ProductUOM: \"Pieces\",\r\n },\r\n {\r\n ProductName: \"Keetnashak\",\r\n TertiaryCartonId: \"TID-2020-21-00002\",\r\n TotalSecondaryCarton: null,\r\n CartonId: null,\r\n TotalQty: \"3\",\r\n ProductUOM: \"Pieces\",\r\n },\r\n ],\r\n };\r\n this.GetModeDDL();\r\n\r\n // const objtoprint = {\r\n // \"CartonId\":\"DID-2020-21-00002\",\r\n // \"CreatedDt\":\"10/07/20\",\r\n // \"Qty\":\"1\",\r\n // \"userDetail\":{\r\n // \"UserId\":30,\r\n // \"Token\":null,\r\n // \"RefreshToken\":null,\r\n // \"ReferenceID\":\"CE1215F5-44DE-46F0-B9B7-72E1D1B24172\",\r\n // \"Username\":\"ajaytestdealer\",\r\n // \"Password\":null,\r\n // \"FirstName\":\"new\",\r\n // \"LastName\":\"gupta\",\r\n // \"Email\":null,\r\n // \"MobileNo\":\"8181818181\",\r\n // \"UserType\":2,\r\n // \"ProfileImage\":null,\r\n // \"DeviceType\":null,\r\n // \"IsActive\":true,\r\n // \"InActiveReason\":null,\r\n // \"CreatedBy\":null,\r\n // \"CreatedDt\":\"2020-07-10T13:57:11.46\",\r\n // \"UpdatedBy\":null,\r\n // \"UpdatedDt\":null,\r\n // \"Salt\":null,\r\n // \"CreatedDate\":null,\r\n // \"IsResetPassword\":false,\r\n // \"TotalRows\":0,\r\n // \"userId\":0,\r\n // \"Id\":0,\r\n // \"ship_Country\":\"101\",\r\n // \"ship_State\":\"1\",\r\n // \"ship_City\":\"93\",\r\n // \"ship_CountryName\":\"India\",\r\n // \"ship_StateName\":\"Andaman & Nicobar Islands\",\r\n // \"ship_CityName\":\"Carnicobar\",\r\n // \"ship_Address1\":\"Add1\",\r\n // \"ship_Address2\":\"Add2\",\r\n // \"ship_Pincode\":\"1902929\",\r\n // \"bill_Country\":\"101\",\r\n // \"bill_State\":\"4\",\r\n // \"bill_City\":\"91\",\r\n // \"bill_CountryName\":\"India\",\r\n // \"bill_StateName\":\"Assam\",\r\n // \"bill_CityName\":\"Cachar\",\r\n // \"bill_Address1\":\"Add1\",\r\n // \"bill_Address2\":\"Add2\",\r\n // \"bill_Pincode\":\"1902929\"\r\n // },\r\n // \"cartonList\":[\r\n // {\r\n // \"TertiaryCartonId\":\"TID-2020-21-00002\",\r\n // \"TotalSecondaryCarton\":\"1\",\r\n // \"CartonId\":null,\r\n // \"TotalQty\":12,\r\n // \"ProductUOM\" : \"PCS\",\r\n // \"ProductName\":\"New Product\"\r\n\r\n // }\r\n // ]\r\n // };\r\n\r\n //this.PrintDispatchService.Printpdf(objtoprint);\r\n }, 1000);\r\n\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n\r\n this.GetActiveUsers();\r\n //if user type is 1 state of visible will be set to true\r\n if (this.ApiService.getUserType() == 1) {\r\n this.setState({\r\n visible: true,\r\n });\r\n }\r\n }\r\n\r\n // PAGE EVENT CALL\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetDispatch();\r\n }, 250);\r\n }\r\n hideFunc() {\r\n this.setState({\r\n remarkVisible: false,\r\n olderstockVisible: false,\r\n // formHeading: 'Add User'\r\n });\r\n }\r\n // set lazy loading values\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = true;\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n }\r\n\r\n // get users data list from api\r\n GetDispatch() {\r\n this.setState({ cartoonLoader: false });\r\n this.tblResponse.SortColumn = \"DispatchId\";\r\n this.DispatchService.GetDispatch(this.tblResponse).then((data) => {\r\n const resdata = data.data;\r\n this.setState({ cartoonLoader: true });\r\n //if ResponseData is not null sales state will be set with ResponseData\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n });\r\n }\r\n //if ResponseData is null sales state will be set null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n });\r\n }\r\n GetModeDDL() {\r\n ;\r\n this.DispatchService.GetModeDDL().then((data) => {\r\n const resdata = data.data;\r\n console.log(\"DATA of DDL-\", resdata);\r\n //if resdata is not null\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.setState({\r\n ModeDDL: resdata.ResponseData,\r\n });\r\n }\r\n });\r\n }\r\n // call every change of form and validation part also\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n if (name == \"SendTo\") {\r\n this.setState({ scanTxt: \"\" });\r\n }\r\n if (name == \"ID\") {\r\n this.setState({\r\n ID: event.target.checked,\r\n });\r\n }\r\n const isValid = this.validateForm(value, name);\r\n this.setState({ errors, [name]: value });\r\n }\r\n\r\n // handleChange1(event) {\r\n // const { name, value } = event.target;\r\n // let errors = this.state.formError;\r\n\r\n // const isValid = this.validateForm(value, name);\r\n // this.setState({ errors, [name]: value });\r\n // //to set state of IsActive\r\n // if (name == \"ID\")\r\n // this.setState({\r\n // ID: event.target.checked,\r\n // });\r\n // }\r\n // validate form\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"UserName\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.UserName = \"Please enter your username.\";\r\n } else errors.UserName = \"\";\r\n break;\r\n case \"LR\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.LR = \"Please enter LR Number.\";\r\n } else errors.LR = \"\";\r\n break;\r\n case \"SendTo\":\r\n console.log(value);\r\n this.state.bill_Address1 = value.bill_Address1;\r\n this.state.bill_Address2 = value.bill_Address2;\r\n this.state.bill_Pincode = value.bill_Pincode;\r\n this.state.bill_Country = value.bill_CountryName;\r\n this.state.bill_State = value.bill_StateName;\r\n this.state.bill_City = value.bill_CityName;\r\n this.state.ship_Address1 = value.ship_Address1;\r\n this.state.ship_Address2 = value.ship_Address2;\r\n this.state.ship_Pincode = value.ship_Pincode;\r\n this.state.ship_Country = value.ship_CountryName;\r\n this.state.ship_State = value.ship_StateName;\r\n this.state.ship_City = value.ship_CityName;\r\n this.setState({\r\n eventBlock: true,\r\n });\r\n break;\r\n case \"TransportModeId\":\r\n if (value == null) {\r\n IsValid = false;\r\n errors.TransportModeId = \"Please select Transport Mode.\";\r\n } else {\r\n errors.TransportModeId = null;\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n return IsValid;\r\n }\r\n\r\n // reset form text value\r\n formReset() {\r\n this.setState({\r\n ReferenceID: \"\",\r\n UserName: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Email: \"\",\r\n MobileNo: \"\",\r\n Password: \"\",\r\n ConfirmPassword: \"\",\r\n TransportModeId: null,\r\n LR: \"\",\r\n IsActive: true,\r\n });\r\n let errors = this.state.formError;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = \"\";\r\n });\r\n }\r\n\r\n // open Dialog\r\n openDialog() {\r\n this.setState({ visible: true });\r\n this.formReset();\r\n }\r\n\r\n // submit packing\r\n submitForm(event) {\r\n ;\r\n event.preventDefault();\r\n //if SendTo length is 0\r\n if (this.state.SendTo.length == 0) {\r\n this.refs.Messchild.showWarn(\"Select Send To\");\r\n return;\r\n }\r\n //if scanItems length is 0\r\n else if (this.state.scanItems.length == 0) {\r\n this.refs.Messchild.showWarn(\"Scan First\");\r\n return;\r\n }\r\n //if(this.state.CartonId.ca)\r\n else {\r\n let formData = {};\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formError;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key];\r\n let valid = this.validateForm(val, key);\r\n //form is not valid\r\n\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n if (isfrmvalid) {\r\n if (!this.state.warehouseVisible) {\r\n formData = {\r\n //createdBy\r\n WareHouseId: this.state.SendTo.ID,\r\n SendTo: this.state.SendTo.UserId,\r\n scanned: this.state.scanItems,\r\n TransportModeId: this.state.TransportModeId,\r\n LR: this.state.LR,\r\n };\r\n } else {\r\n formData = {\r\n SendTo: this.state.SendTo.UserId,\r\n scanned: this.state.scanItems,\r\n TransportModeId: this.state.TransportModeId,\r\n LR: this.state.LR,\r\n };\r\n }\r\n // if old stock is greater than 0\r\n if (this.state.isold) {\r\n //open Dialog to add remark\r\n this.setState({\r\n remarkVisible: true,\r\n needtoSaveDispatch: formData,\r\n });\r\n } else {\r\n this.SaveDispatch(formData);\r\n }\r\n }\r\n }\r\n }\r\n\r\n submitRemark(event) {\r\n event.preventDefault();\r\n let formD = { ...this.state.needtoSaveDispatch };\r\n formD.Remark = this.state.Remark;\r\n this.SaveDispatch(formD);\r\n }\r\n\r\n SaveDispatch(formData) {\r\n this.setState({ scanItemLoader: false });\r\n\r\n setTimeout(() => {\r\n ;\r\n this.DispatchService.Save(formData).then((data) => {\r\n this.setState({ scanItemLoader: true });\r\n const resdata = data.data;\r\n //if ResponseCode is 200 success message will be shown else will move to 'else statement'\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n var options = {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\",\r\n };\r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n this.PrintDispatchService.Printpdf(\r\n resdata.ResponseData,\r\n new Date().toLocaleDateString(\"en-US\", options)\r\n );\r\n this.state.scanItems = [];\r\n this.setState({\r\n scanItems: [],\r\n scanDisp: [],\r\n SendTo: [],\r\n //KREP-55\r\n remarkVisible: false,\r\n needtoSaveDispatch: \"\",\r\n radio: false,\r\n TransportModeId: null,\r\n LR: \"\",\r\n });\r\n this.GetDispatch();\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.refs.Messchild.showError(\r\n \"Seems Scanned Items already Dispatched\"\r\n );\r\n this.formReset();\r\n this.GetDispatch();\r\n this.GetWareHouse(0);\r\n }\r\n });\r\n }, 100);\r\n }\r\n\r\n // get active carton drop down list\r\n GetActiveUsers() {\r\n this.UserService.GetAllActiveUsers().then((data) => {\r\n const resdata = data.data;\r\n //if ResponseCode is 200 UserDDL state will be set to ResponseData\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n const dataRes = resdata.ResponseData.map((x) => ({\r\n UserId: x.UserId,\r\n SAPCustomerCode: x.SAPCustomerCode,\r\n Username: x.FirstName + \" \" + x.LastName + \" \" + x.SAPCustomerCode,\r\n FirstName: x.FirstName,\r\n LastName: x.LastName,\r\n UserType: x.UserType,\r\n IsFactory: x.IsFactory,\r\n bill_Address1: x.bill_Address1,\r\n bill_Address2: x.bill_Address2,\r\n bill_CountryName: x.bill_CountryName,\r\n bill_StateName: x.bill_StateName,\r\n bill_CityName: x.bill_CityName,\r\n }));\r\n\r\n const Dealer = dataRes.filter((x) => x.UserType == 2);\r\n this.setState({\r\n SelectedDDL: Dealer,\r\n //warehouseVisible: true,\r\n });\r\n this.setState({\r\n UserDDL: dataRes,\r\n });\r\n }\r\n });\r\n }\r\n\r\n // scan qr code\r\n ScanItem(e) {\r\n if (e.key === \"Enter\") {\r\n let qr = e.target.value;\r\n\r\n if (this.state.SendTo.length == 0) {\r\n this.refs.Messchild.showWarn(\"Select Send To\");\r\n return;\r\n } else if (qr.includes(\"TID\") || qr.includes(\"SID\")) {\r\n this.setCartonDetails(qr, true);\r\n } else {\r\n this.refs.Messchild.showWarn(\"Invalid Scanned\");\r\n }\r\n this.setState({\r\n scanTxt: \"\",\r\n });\r\n }\r\n }\r\n\r\n // set tertiary details in grid\r\n\r\n setCartonDetails(qr, checkItemDate) {\r\n let id = 1;\r\n const scanlist = this.state.scanItems;\r\n this.state.scanItems.forEach((element) => {\r\n if (element.CartonId == qr) {\r\n this.refs.Messchild.showWarn(\"Already Scanned..!\");\r\n id = 2;\r\n return;\r\n }\r\n });\r\n\r\n setTimeout(() => {\r\n if (id == 1) {\r\n this.DispatchService.GetTertiaryPackingScan(\r\n qr,\r\n checkItemDate,\r\n scanlist\r\n ).then((data) => {\r\n const resdata = data.data;\r\n //if ResponseCode is 200 else will move to 'else statement'\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n //disable\r\n\r\n const options = { dateStyle: \"short\" };\r\n resdata.ResponseData.forEach((element) => {\r\n element.MFGDate =\r\n element.MFGDate != null || undefined\r\n ? new Date(element.MFGDate).toLocaleString(\"en-GB\", options)\r\n : element.MFGDate;\r\n element.EXPDate =\r\n element.EXPDate != null || undefined\r\n ? new Date(element.EXPDate).toLocaleString(\"en-GB\", options)\r\n : element.EXPDate;\r\n\r\n if (this.state.scanItems.length > 0) {\r\n let check = this.state.scanItems.filter(\r\n (y) => y.Id == element.Id\r\n );\r\n\r\n if (check.length > 0) {\r\n // this.refs.Messchild.showWarn(\"already Scanned\");\r\n }\r\n }\r\n\r\n this.state.scanItems.push(element);\r\n\r\n if (this.state.scanDisp.length > 0) {\r\n let checkseqNo = this.state.scanDisp.filter(\r\n (y) => y.CartonId == element.CartonId\r\n );\r\n\r\n if (checkseqNo.length > 0) {\r\n return;\r\n }\r\n }\r\n this.state.scanDisp.push(element);\r\n\r\n this.setState({\r\n scanItems: this.state.scanItems,\r\n scanTxt: \"\",\r\n radio: true,\r\n });\r\n });\r\n } else if (resdata !== null && resdata.ResponseCode === \"500\") {\r\n let checkseqNo = [];\r\n resdata.ResponseData.forEach((element) => {\r\n if (this.state.scanItems.length > 0) {\r\n let chk = this.state.scanItems.filter(\r\n (y) => y.CartonId == element.CartonId\r\n );\r\n if (chk.length != 0) {\r\n checkseqNo.push(chk);\r\n }\r\n if (checkseqNo.length == resdata.ResponseData.length) {\r\n this.setCartonDetails(qr, true);\r\n return;\r\n }\r\n }\r\n });\r\n /// will show list and input yes or no\r\n ///this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n // if no\r\n //resolved KREP-132,KREP-121(CR)\r\n if (\r\n checkseqNo == undefined ||\r\n checkseqNo.length != resdata.ResponseData.length\r\n ) {\r\n confirmAlert({\r\n title: resdata.ResponseMessage,\r\n message:\r\n \"Are you sure you want to continue scanning the latest stock.\",\r\n buttons: [\r\n {\r\n label: \"Yes\",\r\n onClick: () => {\r\n this.setCartonDetails(qr, false);\r\n this.setState({ isold: true });\r\n },\r\n },\r\n {\r\n label: \"No\",\r\n onClick: () => {\r\n let olddata = [];\r\n resdata.ResponseData.forEach((e1) => {\r\n let scanned;\r\n this.state.scanItems.forEach((e2) => {\r\n if (e1.CartonId == e2.CartonId) {\r\n scanned = 1;\r\n }\r\n });\r\n if (scanned == undefined) {\r\n e1.EXPDate =\r\n e1.EXPDate != null || undefined\r\n ? e1.EXPDate.substring(0, 10)\r\n : e1.EXPDate;\r\n\r\n olddata.push(e1);\r\n }\r\n });\r\n this.setState({\r\n olderstockVisible: true,\r\n\r\n olderdata: olddata,\r\n });\r\n },\r\n },\r\n ],\r\n });\r\n }\r\n } else {\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n }\r\n });\r\n }\r\n }, 50);\r\n }\r\n // delete user data\r\n deleteScanned(TertiaryCartonId) {\r\n let arrayfilter = this.state.scanItems.filter(\r\n (x) => x.CartonId != TertiaryCartonId\r\n );\r\n\r\n this.setState({\r\n scanItems: arrayfilter,\r\n });\r\n let array = this.state.scanDisp.filter(\r\n (x) => x.CartonId != TertiaryCartonId\r\n );\r\n\r\n this.setState({\r\n scanDisp: array,\r\n });\r\n }\r\n\r\n GetWareHouse(compId) {\r\n this.WareHouseMaterService.GetWareHouseDDL(compId).then((data) => {\r\n const resdata = data.data;\r\n //if ResponseData is not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n const filteredWareHouse = resdata.ResponseData.filter(\r\n (x) => x.ID != this.ApiService.getWareHouseId()\r\n );\r\n\r\n this.setState({\r\n wareHouseDDL: filteredWareHouse,\r\n });\r\n }\r\n });\r\n }\r\n\r\n // seach table\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetDispatch();\r\n }\r\n\r\n callbackFunction = (childData) => {\r\n this.setState({ message: childData });\r\n };\r\n\r\n onValueChange(event) {\r\n const val = event.target.value;\r\n\r\n if (val == \"Dealer\") {\r\n const Dealer = this.state.UserDDL.filter((x) => x.UserType == 1);\r\n this.setState({\r\n SelectedDDL: Dealer,\r\n warehouseVisible: true,\r\n });\r\n }\r\n // if (val == \"Distributor\") {\r\n // const Distributor = this.state.UserDDL.filter((x) => x.UserType == 2);\r\n\r\n // this.setState({\r\n // SelectedDDL: Distributor,\r\n // warehouseVisible: true,\r\n // });\r\n // }\r\n if (val == \"WareHouse\") {\r\n const wareHouse = this.state.WareHouseFactoryDDL.filter(\r\n (x) => x.IsFactory == 0\r\n );\r\n this.setState({\r\n wareHouseDDL: wareHouse,\r\n });\r\n\r\n this.setState({\r\n warehouseVisible: false,\r\n });\r\n }\r\n\r\n if (val == \"Factory\") {\r\n const fact = this.state.WareHouseFactoryDDL.filter(\r\n (x) => x.IsFactory == 1\r\n );\r\n this.setState({\r\n wareHouseDDL: fact,\r\n warehouseVisible: false,\r\n });\r\n }\r\n }\r\n\r\n // disabled checkbox\r\n activeTemplate(rowData, column) {\r\n return ;\r\n }\r\n\r\n // Sort table\r\n onSort(event) {\r\n this.setState({\r\n sortOrder: this.state.sortOrder === 1 ? 2 : 1,\r\n sortIcon: !this.state.sortIcon,\r\n });\r\n const sortField =\r\n event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetDispatch();\r\n const clickData = document.getElementsByClassName(\r\n \"p-sortable-column-icon pi pi-fw pi-sort\"\r\n );\r\n console.log(event);\r\n }\r\n\r\n // edit form\r\n actionTemplate(rowData, column) {\r\n const deleteFunc = () => {\r\n confirmAlert({\r\n title: \"Confirm to delete\",\r\n message: \"Are you sure to do this.\",\r\n buttons: [\r\n {\r\n label: \"Yes\",\r\n onClick: () => this.deleteScanned(rowData.CartonId),\r\n },\r\n {\r\n label: \"No\",\r\n onClick: () => null,\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 // create html part\r\n render() {\r\n const items = [{ label: \"Transaction\" }, { label: \"Dispatch\" }];\r\n\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n let header = (\r\n
      \r\n
      \r\n
      \r\n \r\n this.setState({ globalFilter: e.target.value })}\r\n placeholder=\"Global Search\"\r\n size=\"30\"\r\n />\r\n
      \r\n
      \r\n );\r\n\r\n let header2 = (\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
      \r\n
      \r\n

      Dispatch

      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n {/* \r\n Factory */}\r\n \r\n WareHouse\r\n {/* \r\n Distributor */}\r\n \r\n Dealer\r\n
      \r\n
      \r\n \r\n
      \r\n\r\n
      \r\n \r\n
      \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \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 instance from './DefaultApi';\r\n\r\nexport default class SecondaryPackingService {\r\n ControllerName = 'SecondaryPacking';\r\n\r\n\r\n // Save Packing \r\n Save(formData) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/save`, formData).then(res => res)\r\n }\r\n\r\n // Save Packing \r\n GetSecondaryPacking(tbl) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetSecondaryPacking`, tbl).then(res => res)\r\n }\r\n\r\n\r\n\r\n\r\n}","import QRCode from 'qrcode'\r\nimport * as jsPDF from 'jspdf';\r\n\r\n\r\n/// TO print cartonslip on secondary packing service\r\nexport default class PrintSecondaryPackagingService {\r\n\r\n genQR(text) {\r\n let qr = \"\";\r\n QRCode.toDataURL(text, function (err, url) {\r\n qr = url;\r\n });\r\n return qr;\r\n }\r\n formPreview1(resp) {\r\n let doc = new jsPDF({\r\n orientation: 'landscape',\r\n unit: 'mm',\r\n format: [90, 70],\r\n compressPdf: true\r\n });\r\n\r\n doc = this.printLblPrntContent1(doc, resp);\r\n doc.save(resp[0].CartonId + '.pdf');\r\n // window.open(doc.output('bloburl'), '_blank');\r\n }\r\n printLblPrntContent1(doc, resp) {\r\n\r\n let i = 1;\r\n let j = 0;\r\n\r\n for (; i <= resp.length; i++) {\r\n // doc.setFontSize(7)\r\n doc.setFontType('bold');\r\n doc.setFont('Times');\r\n var loc = 0,\r\n inc = 3,\r\n docW = 2;\r\n //loc += inc;\r\n //doc.text(50, loc, resp.rateCd);\r\n //loc += inc + 4;\r\n //doc.text(docW, loc, 'Item ');\r\n //doc.text(9 + docW, loc, ': ' + resp[j].itemNm);\r\n //loc += inc + 2;\r\n //doc.text(docW, loc, 'M.R.P. ');\r\n //doc.text(9 + docW, loc, ': INR ' + resp.mrp);\r\n //loc += inc + 1;\r\n //doc.text(docW, loc, 'Lot No ');\r\n //doc.text(9 + docW, loc, ': ' + resp.lotNo);\r\n //loc += inc + 1;\r\n //doc.text(docW, loc, 'Pack ');\r\n //doc.text(9 + docW, loc, ': ' + resp.mfgDt.MyDtFrmt('M yyyy', '-'));\r\n //loc += inc + 1;\r\n //\r\n //doc.text(9 + docW, loc, ': ' + resp.pktWt + ' ' + resp.unitId.unitNm);\r\n doc.setFontSize(10);\r\n\r\n let qrdata = this.genQR(resp[j].CartonId);\r\n ;\r\n doc.addImage(qrdata, 'JPEG', 0, 4, 15, 15, resp[j].CartonId, false);\r\n doc.text(resp[j].ProductName, 1, 4);\r\n\r\n // if (resp[j].Brand.length > 0)\r\n // doc.text(\"Date : \" + resp[j].CreatedDt, 20, 10);\r\n doc.text(resp[j].CreatedDt, 15, 10);\r\n // if (resp[j].ModelNumber.length > 0)\r\n // doc.text(\"Model : \" + resp[j].ModelNumber, 20, 14);\r\n\r\n //doc.text(\"Qty : \" + resp[j].Qty, 20, 18);\r\n doc.text(resp[j].Qty, 15, 16);\r\n doc.setFontSize(10);\r\n doc.text(resp[j].CartonId, 1, 22);\r\n\r\n\r\n // qrdata = '';\r\n j++;\r\n if (resp.length > i)\r\n doc.addPage();\r\n }\r\n return doc;\r\n }\r\n BulkData(type, from, to, pre) {\r\n \r\n let doc = new jsPDF({\r\n orientation: 'portrait',\r\n unit: 'mm',\r\n format: 'a4',\r\n compressPdf: true\r\n });\r\n doc = this.bulkPrint(doc, type, from, to, pre);\r\n doc.save(`${pre}-${type}-${from}-${to} ${new Date().toLocaleString()}` + '.pdf')\r\n\r\n }\r\n bulkPrint(doc, type, from, to, pre) {\r\n \r\n const pdfWidth = doc.internal.pageSize.getWidth();\r\n const pdfHeight = doc.internal.pageSize.getHeight();\r\n let year = new Date().getFullYear()\r\n const numberInFile = 32;\r\n let initial = parseInt(from);\r\n let fileCount = Math.floor(((to - from) + 1) / numberInFile);\r\n var remainder = ((to - from) + 1) % numberInFile;\r\n fileCount = remainder > 0 ? (fileCount + 1) : fileCount;\r\n\r\n for (let i = 0; i < fileCount; i++) {\r\n let _tonumber = ((initial + numberInFile) - 1);\r\n _tonumber = _tonumber > to ? to : _tonumber;\r\n let rowCount = 1;\r\n for (let j = initial; j <= _tonumber; j++) {\r\n doc.setFontType('bold');\r\n doc.setFont('Times');\r\n doc.setFontSize(10);\r\n\r\n let val = j.toString().padStart(5, \"0\")\r\n let CartonID = `${type}-${year}-${pre}-${val}`;\r\n let qrdata = this.genQR(CartonID);\r\n\r\n if (rowCount == 1) {\r\n doc.addImage(qrdata, 'JPEG', 15, 15, 17, 17, CartonID, false);\r\n //doc.text(new Date().toDateString(), 3, 5);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 10, 34);\r\n } else if (rowCount == 2) {\r\n doc.addImage(qrdata, 'JPEG', 65, 15, 17, 17, CartonID, false);\r\n // doc.text(resp[j].ProductName, 1, 4);\r\n\r\n //doc.text(new Date().toDateString(), 38, 5);\r\n //doc.text(resp[j].Qty, 15, 16);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 60, 34);\r\n } else if (rowCount == 3) {\r\n doc.addImage(qrdata, 'JPEG', 125, 15, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 120, 34);\r\n } else if (rowCount == 4) {\r\n doc.addImage(qrdata, 'JPEG', 175, 15, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 170, 34);\r\n }\r\n else if (rowCount == 5) {\r\n doc.addImage(qrdata, 'JPEG', 15, 48, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 10, 67);\r\n }\r\n else if (rowCount == 6) {\r\n doc.addImage(qrdata, 'JPEG', 65, 48, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 60, 67);\r\n }\r\n else if (rowCount == 7) {\r\n doc.addImage(qrdata, 'JPEG', 125, 48, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 120, 67);\r\n }\r\n else if (rowCount == 8) {\r\n doc.addImage(qrdata, 'JPEG', 175, 48, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 170, 67);\r\n }\r\n else if (rowCount == 9) {\r\n doc.addImage(qrdata, 'JPEG', 15, 82, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 10, 101);\r\n }\r\n else if (rowCount == 10) {\r\n doc.addImage(qrdata, 'JPEG', 65, 82, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 60, 101);\r\n }\r\n else if (rowCount == 11) {\r\n doc.addImage(qrdata, 'JPEG', 125, 82, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 120, 101);\r\n }\r\n else if (rowCount == 12) {\r\n doc.addImage(qrdata, 'JPEG', 175, 82, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 170, 101);\r\n }\r\n else if (rowCount == 13) {\r\n doc.addImage(qrdata, 'JPEG', 15, 116, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 10, 135);\r\n }\r\n else if (rowCount == 14) {\r\n doc.addImage(qrdata, 'JPEG', 65, 116, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 60, 135);\r\n }\r\n else if (rowCount == 15) {\r\n doc.addImage(qrdata, 'JPEG', 125, 116, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 120, 135);\r\n }\r\n else if (rowCount == 16) {\r\n doc.addImage(qrdata, 'JPEG', 175, 116, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 170, 135); \r\n }\r\n else if (rowCount == 17) {\r\n doc.addImage(qrdata, 'JPEG', 15, 150, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 10, 169);\r\n } else if (rowCount == 18) {\r\n doc.addImage(qrdata, 'JPEG', 65, 150, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 60, 169);\r\n } else if (rowCount == 19) {\r\n doc.addImage(qrdata, 'JPEG', 125, 150, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 120, 169);\r\n } else if (rowCount == 20) {\r\n doc.addImage(qrdata, 'JPEG', 175, 150, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 170, 169);\r\n }\r\n else if (rowCount == 21) {\r\n doc.addImage(qrdata, 'JPEG', 15, 183, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 10, 202);\r\n }\r\n else if (rowCount == 22) {\r\n doc.addImage(qrdata, 'JPEG', 65, 183, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 60, 202);\r\n }\r\n else if (rowCount == 23) {\r\n doc.addImage(qrdata, 'JPEG', 125, 183, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 120, 202);\r\n }\r\n else if (rowCount == 24) {\r\n doc.addImage(qrdata, 'JPEG', 175, 183, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 170, 202);\r\n }\r\n else if (rowCount == 25) {\r\n doc.addImage(qrdata, 'JPEG', 15, 218, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 10, 237);\r\n }\r\n else if (rowCount == 26) {\r\n doc.addImage(qrdata, 'JPEG', 65, 218, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 60, 237);\r\n }\r\n else if (rowCount == 27) {\r\n doc.addImage(qrdata, 'JPEG', 125, 218, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 120, 237);\r\n }\r\n else if (rowCount == 28) {\r\n doc.addImage(qrdata, 'JPEG', 175, 218, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 170, 237);\r\n }\r\n else if (rowCount == 29) {\r\n doc.addImage(qrdata, 'JPEG', 15, 252, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 10, 271);\r\n }\r\n else if (rowCount == 30) {\r\n doc.addImage(qrdata, 'JPEG', 65, 252, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 60, 271);\r\n }\r\n else if (rowCount == 31) {\r\n doc.addImage(qrdata, 'JPEG', 125, 252, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 120, 271);\r\n }\r\n else if (rowCount == 32) {\r\n doc.addImage(qrdata, 'JPEG', 175, 252, 17, 17, CartonID, false);\r\n doc.setFontSize(10);\r\n doc.text(CartonID, 170, 271);\r\n rowCount=0;\r\n }\r\n rowCount++;\r\n }\r\n\r\n // qrdata = '';\r\n\r\n initial += numberInFile;\r\n doc.addPage();\r\n\r\n }\r\n\r\n var pageCount = doc.internal.getNumberOfPages();\r\n doc.deletePage(pageCount)\r\n return doc;\r\n }\r\n\r\n}","import React, { Component } from \"react\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Column } from \"primereact/column\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport UserService from \"../../services/UserService\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport CartonMasterService from \"../../services/CartonMasterService\";\r\nimport SecondaryPackingService from \"../../services/SecondaryPackingService\";\r\nimport PrintSecondaryPackagingService from \"../../services/PrintSecondaryPackagingService\";\r\nimport MappingService from \"../../services/MappingService\";\r\nimport { Button } from \"primereact/button\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport { confirmAlert } from \"react-confirm-alert\"; // Import\r\nimport { ConfirmationModal } from \"../../template/ConfirmationModal\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport $ from \"jquery\";\r\nimport Loaders from \"../../template/Loaders\";\r\n\r\nexport default class SecondaryPacking extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.autoref = React.createRef();\r\n // this.UserService = new UserService();\r\n this.CartonMasterService = new CartonMasterService();\r\n this.MappingService = new MappingService();\r\n this.SecondaryPackingService = new SecondaryPackingService();\r\n this.PrintSecondaryPackagingService = new PrintSecondaryPackagingService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n reason: \"\",\r\n CartonName: \"\",\r\n Tvisible: false,\r\n rvisible: false,\r\n globalFilter: null,\r\n visible: false,\r\n sortIcon: false,\r\n productLoading: true,\r\n cartoonLoading: false,\r\n sortOrder: \"1\",\r\n formError: {},\r\n CartonDDL: [],\r\n CartonId: [],\r\n buttonLabel: \"Submit\",\r\n sales: [],\r\n scanItems: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n IsDisabledCartonDDL: false,\r\n scanTxt: \"\",\r\n };\r\n\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n this.submitFormFinal = this.submitFormFinal.bind(this);\r\n this.onPage = this.onPage.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n\r\n this.ScanItem = this.ScanItem.bind(this);\r\n }\r\n //trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.GetSecondaryPacking();\r\n }, 100);\r\n\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n\r\n this.GetActiveCartonDDL();\r\n }\r\n\r\n // PAGE EVENT CALL\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetSecondaryPacking();\r\n }, 250);\r\n }\r\n\r\n // set lazy loading values\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = true;\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n }\r\n\r\n // get users data list from api\r\n GetSecondaryPacking() {\r\n this.tblResponse.SortColumn = \"CartonId\";\r\n this.SecondaryPackingService.GetSecondaryPacking(this.tblResponse).then(\r\n (data) => {\r\n //if ResponseData is not null\r\n const resdata = data.data;\r\n this.setState({ cartoonLoading: true });\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n });\r\n }\r\n //if ResponseData is null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n // call every change of form and validation part also\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n\r\n const isValid = this.validateForm(value, name);\r\n this.setState({ errors, [name]: value });\r\n }\r\n\r\n // validate form\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"UserName\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.UserName = \"Please enter your username.\";\r\n } else errors.UserName = \"\";\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return IsValid;\r\n }\r\n\r\n // reset form text value\r\n formReset() {\r\n this.setState({\r\n IsDisabledCartonDDL: false,\r\n Tvisible: false,\r\n ReferenceID: \"\",\r\n CartonName: \"\",\r\n reason: \"\",\r\n rvisible: false,\r\n reason: \"\",\r\n UserName: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Email: \"\",\r\n MobileNo: \"\",\r\n Password: \"\",\r\n ConfirmPassword: \"\",\r\n IsActive: true,\r\n });\r\n let errors = this.state.formError;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = \"\";\r\n });\r\n }\r\n\r\n // open Dialog\r\n openDialog() {\r\n this.setState({ visible: true });\r\n this.formReset();\r\n }\r\n submitForm(event) {\r\n if (this.state.scanItems.length == 0) {\r\n this.refs.Messchild.showWarn(\"Scan First\");\r\n return;\r\n } else if (\r\n this.state.CartonId.CartonSize != this.state.scanItems.length &&\r\n this.state.reason.trim().length < 4\r\n ) {\r\n // let reason = prompt(\"Carton is not fully Packed. \\n Please Specify the Reason in min 5 chars Max 500 Chars\", \"\");\r\n\r\n // reason = reason != null ? reason.trim() : \"\";\r\n\r\n this.setState({ rvisible: true });\r\n } else {\r\n this.setState({ Tvisible: true });\r\n }\r\n }\r\n // submit packing\r\n submitFormFinal(event) {\r\n event.preventDefault();\r\n\r\n if (this.state.scanItems.length == 0) {\r\n this.refs.Messchild.showWarn(\"Scan First\");\r\n return;\r\n }\r\n if (\r\n this.state.CartonId.CartonSize != this.state.scanItems.length &&\r\n this.state.reason.trim().length < 4\r\n ) {\r\n // let reason = prompt(\"Carton is not fully Packed. \\n Please Specify the Reason in min 5 chars Max 500 Chars\", \"\");\r\n // reason = reason != null ? reason.trim() : \"\";\r\n } else {\r\n this.setState({ productLoading: false });\r\n const formData = {\r\n //createdBy\r\n cartonMasterId: this.state.CartonId.CartonId,\r\n scanned: this.state.scanItems,\r\n reason: this.state.reason,\r\n CartonName: this.state.CartonName,\r\n };\r\n\r\n this.setState({ Tvisible: false });\r\n setTimeout(() => {\r\n this.SecondaryPackingService.Save(formData).then((data) => {\r\n const resdata = data.data;\r\n this.setState({ productLoading: true });\r\n //if ResponseCode is 200 success else error or warning message\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n // this.PrintSecondaryPackagingService.formPreview1([resdata.ResponseData]);\r\n\r\n this.formReset();\r\n // this.setState({\r\n // loading: true,\r\n // visible: false\r\n // });\r\n\r\n this.state.scanItems = [];\r\n this.setState({\r\n scanItems: [],\r\n });\r\n this.GetSecondaryPacking();\r\n this.autoref.current.focus();\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.setState({ CartonName: \"\" });\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n this.setState({ reason: \"\" });\r\n }, 100);\r\n }\r\n }\r\n\r\n // get active carton drop down list\r\n GetActiveCartonDDL() {\r\n this.CartonMasterService.GetActiveCartonDDL().then((data) => {\r\n const resdata = data.data;\r\n //if ResponseCode is 200\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.setState({\r\n CartonDDL: resdata.ResponseData,\r\n });\r\n }\r\n });\r\n }\r\n\r\n // scan qr code\r\n ScanItem(e) {\r\n if (e.key === \"Enter\") {\r\n let qr = e.target.value;\r\n\r\n if (\r\n qr.includes(\"msrmorganics\") ||\r\n qr.includes(\"localhost\") ||\r\n qr.includes(\"104\")\r\n ) {\r\n /////////for multiline qr code on KREPL//\r\n const splitQr = qr.split(\"=\");\r\n console.log(splitQr[1]);\r\n /////////for multiline qr code on KREPL//\r\n\r\n /////////for multiline qr code on KREPL// splitQr[splitQr.length-1].trim()\r\n qr = splitQr[1] === undefined ? qr : splitQr[1];\r\n /////////for multiline qr code on KREPL//\r\n }\r\n\r\n if (this.state.CartonId.length == 0) {\r\n this.refs.Messchild.showWarn(\"Select Carton Size\");\r\n this.setState({ scanTxt: \"\" });\r\n return;\r\n } else if (\r\n this.state.CartonId.CartonSize == this.state.scanItems.length\r\n ) {\r\n this.refs.Messchild.showWarn(\"Carton Full\");\r\n return;\r\n }\r\n\r\n const fObj = { UID: qr };\r\n this.MappingService.GetProductByQrScan(fObj).then((data) => {\r\n const resdata = data.data;\r\n //if ResponseCode is 200 success else error or warning message\r\n if (resdata !== null && resdata.ResponseCode === 200) {\r\n if (this.state.scanItems.length > 0) {\r\n let checkseqNo = this.state.scanItems.filter(\r\n (y) => y.SeqNo == resdata.SeqNo\r\n );\r\n if (checkseqNo.length > 0) {\r\n this.refs.Messchild.showWarn(\"already Scanned\");\r\n return;\r\n }\r\n let IscheckSameProduct = this.state.scanItems.filter(\r\n (y) => y.ProductID == resdata.ProductID\r\n );\r\n if (IscheckSameProduct.length == 0) {\r\n this.refs.Messchild.showWarn(\"You can pack only same product\");\r\n return;\r\n }\r\n }\r\n\r\n // const newArray = this.state.scanItems.slice(); // Create a copy\r\n // newArray.push(resdata); // Push the object\r\n // this.setState({ scanItems: newArray });\r\n\r\n let lists = this.state.scanItems;\r\n lists.push(resdata);\r\n\r\n this.setState({\r\n scanItems: lists,\r\n });\r\n\r\n // console.log(this.state.scanItems);\r\n this.setState({\r\n IsDisabledCartonDDL: true,\r\n scanTxt: \"\", //KREP-55 defect\r\n });\r\n if (this.state.CartonId.CartonSize == this.state.scanItems.length) {\r\n this.submitForm(e);\r\n }\r\n } else this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n });\r\n\r\n this.setState({\r\n scanTxt: \"\",\r\n });\r\n\r\n e.target.value = \"\";\r\n }\r\n }\r\n\r\n // delete user data\r\n deleteScanned(SeqNo) {\r\n console.log(this.state.scanItems);\r\n\r\n let arrayfilter = this.state.scanItems.filter((x) => x.SeqNo != SeqNo);\r\n\r\n this.setState({\r\n scanItems: arrayfilter,\r\n });\r\n\r\n console.log(this.state.scanItems);\r\n }\r\n\r\n // seach table\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetSecondaryPacking();\r\n }\r\n\r\n callbackFunction = (childData) => {\r\n this.setState({ message: childData });\r\n };\r\n\r\n // disabled checkbox\r\n activeTemplate(rowData, column) {\r\n return ;\r\n }\r\n\r\n // Sort table\r\n onSort(event) {\r\n this.setState({\r\n sortOrder: this.state.sortOrder === 1 ? 2 : 1,\r\n sortIcon: !this.state.sortIcon,\r\n });\r\n const sortField =\r\n event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetSecondaryPacking();\r\n const clickData = document.getElementsByClassName(\r\n \"p-sortable-column-icon pi pi-fw pi-sort\"\r\n );\r\n console.log(event);\r\n }\r\n\r\n // edit form\r\n actionTemplate(rowData, column) {\r\n const deleteFunc = () => {\r\n confirmAlert({\r\n title: \"Confirm to delete\",\r\n message: \"Are you sure to do this.\",\r\n buttons: [\r\n {\r\n label: \"Yes\",\r\n onClick: () => this.deleteScanned(rowData.SeqNo),\r\n },\r\n {\r\n label: \"No\",\r\n onClick: () => null,\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 // create html part\r\n render() {\r\n const items = [{ label: \"Master\" }, { label: \"Secondary Packing\" }];\r\n const TabView = (\r\n {\r\n this.setState({ Tvisible: false });\r\n }}\r\n >\r\n
      \r\n {\" \"}\r\n {\r\n this.setState({ CartonName: e.target.value });\r\n }}\r\n onKeyDown={(e) => {\r\n if (e.key == \"Enter\") {\r\n if (\r\n e.target.value.includes(sessionStorage.getItem(\"Prefix\")) &&\r\n e.target.value.includes(\"SID\") &&\r\n (e.target.value.match(/SID/g) || []).length == 1\r\n ) {\r\n this.submitFormFinal(e);\r\n } else {\r\n this.refs.Messchild.showWarn(\"Invalid Cartons\");\r\n this.setState({ CartonName: \"\" });\r\n }\r\n }\r\n }}\r\n autoFocus\r\n />\r\n
      \r\n \r\n );\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n let header = (\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n {\r\n this.handleChange(e);\r\n }}\r\n value={this.state.CartonId}\r\n className=\"w-60\"\r\n placeholder=\"Select Carton\"\r\n name=\"CartonId\"\r\n options={this.state.CartonDDL}\r\n />\r\n {this.state.formError.CartonId !== null ? (\r\n
      {this.state.formError.CartonId}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n {/* {this.ScanItem(e) }} /> */}\r\n {\r\n this.handleChange(e);\r\n }}\r\n id=\"scanTxt\"\r\n onKeyDown={(e) => {\r\n this.ScanItem(e);\r\n }}\r\n />\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n\r\n this.setState({ globalFilter: e.target.value })}\r\n placeholder=\"Global Search\"\r\n size=\"30\"\r\n />\r\n
      \r\n
      \r\n );\r\n\r\n let header2 = (\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
      \r\n

      Secondary Packing

      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n \r\n
      \r\n {\r\n this.setState({ rvisible: false });\r\n }}\r\n >\r\n
      \r\n
      \r\n
      Define in min 5 char
      \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n {\r\n this.setState({ rvisible: false });\r\n this.submitForm(e);\r\n }}\r\n className=\"btn btn-primary\"\r\n >\r\n Submit\r\n \r\n
      \r\n \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
      \r\n
      \r\n
      \r\n {TabView}\r\n
      \r\n );\r\n }\r\n}\r\n","import instance from './DefaultApi';\r\n\r\nexport default class TertiaryPackingService {\r\n ControllerName = 'TertiaryPacking';\r\n\r\n\r\n // Save Packing \r\n Save(formData) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/save`, formData).then(res => res)\r\n }\r\n\r\n // Save Packing \r\n GetTertiaryPacking(tbl) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetTertiaryPacking`, tbl).then(res => res)\r\n }\r\n\r\n\r\n // Save Packing \r\n GetScanSecondaryPacking(d,flag) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetScanSecondaryPacking?sid=` + d, flag).then(res => res)\r\n }\r\n\r\n\r\n}","import React, { Component } from \"react\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Column } from \"primereact/column\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport UserService from \"../../services/UserService\";\r\nimport CartonMasterService from \"../../services/CartonMasterService\";\r\nimport TertiaryPackingService from \"../../services/TertiaryPackingService\";\r\nimport DispatchService from \"../../services/DispatchService\";\r\nimport MappingService from \"../../services/MappingService\";\r\nimport { Button } from \"primereact/button\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport { confirmAlert } from \"react-confirm-alert\"; // Import\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport { ConfirmationModal } from \"../../template/ConfirmationModal\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport $ from \"jquery\";\r\nimport PrintSecondaryPackagingService from \"../../services/PrintSecondaryPackagingService\";\r\nimport Loaders from \"../../template/Loaders\";\r\nexport default class TertiaryPacking extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.autoref = React.createRef();\r\n // this.UserService = new UserService();\r\n this.handleChange.bind(this);\r\n this.CartonMasterService = new CartonMasterService();\r\n this.MappingService = new MappingService();\r\n this.TertiaryPackingService = new TertiaryPackingService();\r\n this.DispatchService = new DispatchService();\r\n this.PrintSecondaryPackagingService = new PrintSecondaryPackagingService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n CartonName: \"\",\r\n reason: \"\",\r\n Tvisible: false,\r\n remark: \"\",\r\n older: false,\r\n globalFilter: null,\r\n visible: false,\r\n isold: false,\r\n\r\n olderstockVisible: false,\r\n\r\n olderdata: [],\r\n sortIcon: false,\r\n Loader1: true,\r\n Loader2: false,\r\n isSelected: false,\r\n preVal: \"\",\r\n rvisible: false,\r\n sortOrder: \"1\",\r\n formError: {},\r\n CartonDDL: [],\r\n CartonId: [],\r\n buttonLabel: \"Submit\",\r\n sales: [],\r\n scanItems: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n IsDisabledCartonDDL: false,\r\n scanTxt: \"\", //KREP-55 defect\r\n };\r\n\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n this.submitFormFinal = this.submitFormFinal.bind(this);\r\n\r\n this.hideFunc = this.hideFunc.bind(this);\r\n this.onPage = this.onPage.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n // this.openDialog = this.openDialog.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n\r\n this.ScanItem = this.ScanItem.bind(this);\r\n }\r\n //trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.GetTertiaryPacking();\r\n }, 100);\r\n\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n\r\n this.GetActiveCartonDDL();\r\n }\r\n\r\n // PAGE EVENT CALL\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n ;\r\n\r\n this.getLazyLoadingValues(event);\r\n this.GetTertiaryPacking();\r\n }, 250);\r\n }\r\n\r\n // set lazy loading values\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = true;\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n }\r\n\r\n // get users data list from api\r\n GetTertiaryPacking() {\r\n this.tblResponse.SortColumn = \"TertiaryCartonId\";\r\n ;\r\n this.TertiaryPackingService.GetTertiaryPacking(this.tblResponse).then(\r\n (data) => {\r\n this.setState({ Loader2: true });\r\n const resdata = data.data;\r\n //if responsedata is not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n });\r\n }\r\n //if responsedata is null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n // call every change of form and validation part also\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n\r\n const isValid = this.validateForm(value, name);\r\n this.setState({ errors, [name]: value });\r\n }\r\n\r\n // validate form\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"UserName\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.UserName = \"Please enter your username.\";\r\n } else errors.UserName = \"\";\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return IsValid;\r\n }\r\n\r\n // reset form text value\r\n formReset() {\r\n this.setState({\r\n reason: \"\",\r\n CartonName: \"\",\r\n Tvisible: false,\r\n remark: \"\",\r\n older: false,\r\n globalFilter: null,\r\n visible: false,\r\n isold: false,\r\n\r\n olderstockVisible: false,\r\n\r\n olderdata: [],\r\n sortIcon: false,\r\n Loader1: true,\r\n Loader2: false,\r\n isSelected: false,\r\n preVal: \"\",\r\n rvisible: false,\r\n sortOrder: \"1\",\r\n formError: {},\r\n CartonDDL: [],\r\n CartonId: [],\r\n buttonLabel: \"Submit\",\r\n sales: [],\r\n scanItems: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n IsDisabledCartonDDL: false,\r\n scanTxt: \"\", //KREP-55 defect\r\n });\r\n let errors = this.state.formError;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = \"\";\r\n });\r\n }\r\n\r\n // open Dialog\r\n openDialog() {\r\n this.setState({ visible: true });\r\n this.formReset();\r\n }\r\n submitForm(event) {\r\n if (this.state.scanItems.length == 0) {\r\n this.refs.Messchild.showWarn(\"Scan First\");\r\n return;\r\n } else if (\r\n this.state.CartonId.CartonSize != this.state.scanItems.length &&\r\n this.state.reason.trim().length < 4\r\n ) {\r\n ; // let reason = prompt(\"Carton is not fully Packed. \\n Please Specify the Reason in min 5 chars Max 500 Chars\", \"\");\r\n\r\n // reason = reason != null ? reason.trim() : \"\";\r\n\r\n this.setState({ rvisible: true });\r\n } else {\r\n this.setState({ Tvisible: true, CartonName: \"\" });\r\n }\r\n }\r\n // submit packing\r\n submitFormFinal(event) {\r\n ;\r\n if (this.state.older && this.state.remark == \"\") {\r\n this.setState({ isold: true });\r\n return;\r\n }\r\n\r\n // if (event != undefined) { event.preventDefault(); }\r\n\r\n if (this.state.CartonId.length == 0) {\r\n this.refs.Messchild.showWarn(\"Select Carton Size\");\r\n this.setState({ scanTxt: \"\" });\r\n\r\n return;\r\n } else if (this.state.scanItems.length == 0) {\r\n this.refs.Messchild.showWarn(\"Scan First\");\r\n return;\r\n }\r\n\r\n if (\r\n this.state.CartonId.CartonSize != this.state.scanItems.length &&\r\n this.state.reason.trim().length < 4\r\n ) {\r\n this.setState({ rvisible: true });\r\n return;\r\n } else {\r\n this.setState({ Loader1: false });\r\n const formData = {\r\n //createdBy\r\n cartonMasterId: this.state.CartonId.CartonId,\r\n scanned: this.state.scanItems,\r\n remark: this.state.remark,\r\n CartonName: this.state.CartonName,\r\n\r\n reason: this.state.reason,\r\n };\r\n\r\n this.setState({ Tvisible: false });\r\n setTimeout(() => {\r\n this.TertiaryPackingService.Save(formData).then((data) => {\r\n this.setState({ Loader1: true });\r\n const resdata = data.data;\r\n //if ResponseCode is 200 success else error or warning message\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n ;\r\n if (\r\n resdata.ResponseData.CreatedDt == \"410\" &&\r\n resdata.ResponseData.ProductName == \"Items Already Packed\"\r\n ) {\r\n this.refs.Messchild.showError(\"Items Already Packed\");\r\n this.formReset();\r\n this.GetActiveCartonDDL();\r\n this.GetTertiaryPacking();\r\n } else {\r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n // this.PrintSecondaryPackagingService.formPreview1([resdata.ResponseData]);\r\n // this.setState({\r\n // loading: true,\r\n // visible: false\r\n // });\r\n // this.formReset();\r\n this.setState({\r\n CartonName: \"\",\r\n IsDisabledCartonDDL: false,\r\n Tvisible: false,\r\n });\r\n\r\n this.state.scanItems = [];\r\n this.setState({\r\n scanItems: [],\r\n });\r\n this.GetTertiaryPacking();\r\n\r\n this.autoref.current.focus();\r\n }\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.setState({ CartonName: \"\" });\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n this.setState({ reason: \"\" });\r\n }, 100);\r\n }\r\n }\r\n\r\n // get active carton drop down list\r\n GetActiveCartonDDL() {\r\n ;\r\n this.CartonMasterService.GetActiveCartonDDL().then((data) => {\r\n const resdata = data.data;\r\n //if ResponseData is not null\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.setState({\r\n CartonDDL: resdata.ResponseData,\r\n });\r\n }\r\n });\r\n }\r\n hideFunc() {\r\n this.setState({\r\n isold: false,\r\n olderstockVisible: false,\r\n // formHeading: 'Add User'\r\n });\r\n }\r\n // scan qr code\r\n ScanItem(e, flag) {\r\n let id = 1;\r\n if (e.key === \"Enter\" || !flag) {\r\n let qr = flag ? e.target.value : e;\r\n\r\n if (this.state.CartonId.length == 0) {\r\n this.refs.Messchild.showWarn(\"Select Carton Size\");\r\n this.setState({ scanTxt: \"\" });\r\n return;\r\n } else if (!qr.includes(\"SID\")) {\r\n this.refs.Messchild.showWarn(\"Invalid Carton\");\r\n this.setState({ scanTxt: \"\" });\r\n return;\r\n } else if (\r\n this.state.CartonId.CartonSize == this.state.scanItems.length\r\n ) {\r\n this.refs.Messchild.showWarn(\"Carton Full\");\r\n return;\r\n }\r\n\r\n if (qr.includes(\"SID\")) {\r\n this.state.scanItems.forEach((element) => {\r\n if (element.CartonId == qr) {\r\n this.refs.Messchild.showWarn(\"Already Scanned..!\");\r\n id = 2;\r\n return;\r\n }\r\n });\r\n }\r\n setTimeout(() => {\r\n if (id == 1) {\r\n //const fObj = {UID : qr}\r\n\r\n const scanlist = this.state.scanItems;\r\n this.DispatchService.GetTertiaryPackingScan(qr, flag, scanlist).then(\r\n (data) => {\r\n ;\r\n const resdata = data.data;\r\n //if ResponseCode is 200 success else error or warning message\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n let id = 1;\r\n if (this.state.scanItems.length > 0) {\r\n let pid = this.state.scanItems[0].ProductId;\r\n resdata.ResponseData.forEach((element) => {\r\n if (element.ProductId != pid) {\r\n id = 2;\r\n }\r\n });\r\n if (id == 2) {\r\n this.refs.Messchild.showWarn(\r\n \"only Similar Items Can be packed\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n //disable\r\n setTimeout(() => {\r\n if (id == 2) {\r\n return;\r\n } else {\r\n resdata.ResponseData.forEach((element) => {\r\n ;\r\n element.MFGDate =\r\n element.MFGDate != null || undefined\r\n ? element.MFGDate.substring(0, 10)\r\n : element.MFGDate;\r\n element.EXPDate =\r\n element.EXPDate != null || undefined\r\n ? element.EXPDate.substring(0, 10)\r\n : element.EXPDate;\r\n if (this.state.scanItems.length > 0) {\r\n ;\r\n let checkseqNo = this.state.scanItems.filter(\r\n (y) => y.Id == element.Id\r\n );\r\n\r\n if (checkseqNo.length > 0) {\r\n this.refs.Messchild.showWarn(\"already Scanned\");\r\n return;\r\n }\r\n }\r\n\r\n this.state.scanItems.push(element);\r\n\r\n ;\r\n this.setState({\r\n IsDisabledCartonDDL: true,\r\n scanItems: this.state.scanItems,\r\n\r\n scanTxt: \"\",\r\n radio: true,\r\n });\r\n });\r\n }\r\n if (\r\n this.state.CartonId.CartonSize ==\r\n this.state.scanItems.length\r\n ) {\r\n this.submitForm(e);\r\n }\r\n }, 50);\r\n } else if (resdata !== null && resdata.ResponseCode === \"500\") {\r\n ;\r\n if (resdata.ResponseData.length == 0) {\r\n this.ScanItem(qr, false);\r\n return;\r\n }\r\n let checkseqNo = [];\r\n resdata.ResponseData.forEach((element) => {\r\n if (this.state.scanItems.length > 0) {\r\n ;\r\n let chk = this.state.scanItems.filter(\r\n (y) => y.Id == element.Id\r\n );\r\n if (chk.length != 0) {\r\n checkseqNo.push(chk);\r\n }\r\n if (checkseqNo.length == resdata.ResponseData.length) {\r\n this.ScanItem(qr, false);\r\n }\r\n }\r\n });\r\n\r\n ;\r\n if (\r\n checkseqNo == undefined ||\r\n checkseqNo.length != resdata.ResponseData.length\r\n ) {\r\n let id = 1;\r\n if (this.state.scanItems.length > 0) {\r\n let pid = this.state.scanItems[0].ProductId;\r\n resdata.ResponseData.forEach((element) => {\r\n if (element.ProductId != pid) {\r\n id = 2;\r\n }\r\n });\r\n if (id == 2) {\r\n this.refs.Messchild.showWarn(\r\n \"only Similar Items Can be packed\"\r\n );\r\n return;\r\n }\r\n }\r\n setTimeout(() => {\r\n if (id == 2) {\r\n return;\r\n }\r\n\r\n confirmAlert({\r\n title: resdata.ResponseMessage,\r\n message:\r\n \"Are you sure you want to continue scanning the latest stock.\",\r\n buttons: [\r\n {\r\n label: \"Yes\",\r\n onClick: () => {\r\n if (this.state.remark == \"\") {\r\n this.setState({ older: true });\r\n }\r\n\r\n this.ScanItem(qr, false);\r\n },\r\n },\r\n {\r\n label: \"No\",\r\n onClick: () => {\r\n ;\r\n let olddata = [];\r\n resdata.ResponseData.forEach((e1) => {\r\n let scanned;\r\n this.state.scanItems.forEach((e2) => {\r\n if (e1.Id == e2.Id) {\r\n scanned = 1;\r\n }\r\n });\r\n if (scanned == undefined) {\r\n e1.EXPDate =\r\n e1.EXPDate != null || undefined\r\n ? e1.EXPDate.substring(0, 10)\r\n : e1.EXPDate;\r\n\r\n olddata.push(e1);\r\n }\r\n });\r\n this.setState({\r\n olderstockVisible: true,\r\n\r\n olderdata: olddata,\r\n });\r\n },\r\n },\r\n ],\r\n });\r\n }, 100);\r\n }\r\n } //// else of response code 5000 ends here\r\n else this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n }\r\n );\r\n } else if (id != 2) {\r\n this.refs.Messchild.showWarn(\"Invalid Scanned\");\r\n }\r\n }, 50);\r\n this.setState({\r\n scanTxt: \"\",\r\n });\r\n }\r\n }\r\n\r\n // delete user data\r\n deleteScanned(CartonId) {\r\n ;\r\n let arrayfilter = this.state.scanItems.filter(\r\n (x) => x.CartonId != CartonId\r\n );\r\n\r\n this.setState({\r\n scanItems: arrayfilter,\r\n });\r\n }\r\n\r\n // seach table\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetTertiaryPacking();\r\n }\r\n\r\n callbackFunction = (childData) => {\r\n this.setState({ message: childData });\r\n };\r\n\r\n // disabled checkbox\r\n activeTemplate(rowData, column) {\r\n return ;\r\n }\r\n\r\n // Sort table\r\n onSort(event) {\r\n this.setState({\r\n sortOrder: this.state.sortOrder === 1 ? 2 : 1,\r\n sortIcon: !this.state.sortIcon,\r\n });\r\n const sortField =\r\n event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetTertiaryPacking();\r\n const clickData = document.getElementsByClassName(\r\n \"p-sortable-column-icon pi pi-fw pi-sort\"\r\n );\r\n console.log(event);\r\n }\r\n\r\n // edit form\r\n actionTemplate(rowData, column) {\r\n const deleteFunc = () => {\r\n confirmAlert({\r\n title: \"Confirm to delete\",\r\n message: \"Are you sure to do this.\",\r\n buttons: [\r\n {\r\n label: \"Yes\",\r\n onClick: () => this.deleteScanned(rowData.CartonId),\r\n },\r\n {\r\n label: \"No\",\r\n onClick: () => null,\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 // create html part\r\n render() {\r\n const items = [{ label: \"Master\" }, { label: \"Tertiary Packing\" }];\r\n const TabView = (\r\n {\r\n this.setState({ Tvisible: false });\r\n }}\r\n >\r\n
      \r\n {\" \"}\r\n {\r\n this.setState({ CartonName: e.target.value });\r\n }}\r\n onKeyDown={(e) => {\r\n if (e.key == \"Enter\") {\r\n if (\r\n e.target.value.includes(sessionStorage.getItem(\"Prefix\")) &&\r\n e.target.value.includes(\"TID\") &&\r\n (e.target.value.match(/TID/g) || []).length == 1\r\n ) {\r\n this.submitFormFinal(e);\r\n } else {\r\n this.refs.Messchild.showWarn(\"Invalid Cartons\");\r\n this.setState({ CartonName: \"\" });\r\n }\r\n }\r\n }}\r\n autoFocus\r\n />\r\n
      \r\n \r\n );\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n let header = (\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n {\r\n this.handleChange(e);\r\n }}\r\n value={this.state.CartonId}\r\n className=\"w-60\"\r\n placeholder=\"Select Carton\"\r\n name=\"CartonId\"\r\n options={this.state.CartonDDL}\r\n />\r\n {this.state.formError.CartonId !== null ? (\r\n
      {this.state.formError.CartonId}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n {/* {this.ScanItem(e) }} /> */}\r\n {\r\n this.handleChange(e);\r\n }}\r\n name=\"scanTxt\"\r\n value={this.state.scanTxt}\r\n type=\"search\"\r\n className=\"form-control ml-2\"\r\n id=\"scan\"\r\n onKeyDown={(e) => {\r\n this.ScanItem(e, true);\r\n }}\r\n />\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n\r\n this.setState({ globalFilter: e.target.value })}\r\n placeholder=\"Global Search\"\r\n size=\"30\"\r\n />\r\n
      \r\n
      \r\n );\r\n\r\n let header2 = (\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
      \r\n

      Tertiary Packing

      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n {/*
      \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n
      \r\n \r\n
      \r\n\r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n {\r\n this.setState({ isold: false });\r\n this.submitForm();\r\n }}\r\n >\r\n Submit\r\n \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n this.setState({ rvisible: false });\r\n }}\r\n >\r\n
      \r\n
      \r\n
      Define in min 5 char
      \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n {\r\n this.setState({ rvisible: false });\r\n this.submitForm();\r\n }}\r\n className=\"btn btn-primary\"\r\n >\r\n Submit\r\n \r\n
      \r\n \r\n {TabView}\r\n \r\n );\r\n }\r\n}\r\n","import instance from './DefaultApi';\r\n\r\nexport default class NumberIssuedService {\r\n ControllerName = 'IssueNumber';\r\n\r\n // get all product Issue Number data\r\n GetIssueNumbers(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetIssueNumbers`, tableRequest).then(res => res)\r\n }\r\n\r\n // create new product Issue Number \r\n CreateIssueNumber(issueData) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/CreateIssueNumber`, issueData).then(res => res)\r\n }\r\n\r\n // delete product Issue Number data\r\n DeleteIssueNumber(issueId) {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/DeleteIssueNumber/${issueId}`).then(res => res)\r\n }\r\n\r\n //get max from number to set new number issue\r\n GetFromNumbers() {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetFromNumbers`).then(res => res)\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Column } from \"primereact/column\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport NumberIssuedService from \"../../services/NumberIssuedService\";\r\nimport CompanyMasterService from \"../../services/CompanyMasterService\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport tableRequest from \"../../models/tableRequest\";\r\nimport Loaders from \"../../template/Loaders\";\r\n// Number Issued\r\nexport default class NumberIssued extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.CompanyMasterService = new CompanyMasterService();\r\n this.IssuedService = new NumberIssuedService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n visible: false,\r\n buttonLabel: \"Submit\",\r\n formHeading: \"Add Number Issue\",\r\n sortOrder: \"\",\r\n updateLoader: false,\r\n FromNo: \"\",\r\n ToNo: \"\",\r\n IssueQty: \"\",\r\n SalesOrderNo: \"\",\r\n CompanyId: \"\",\r\n formError: {\r\n CompanyId: null,\r\n FromNo: null,\r\n ToNo: null,\r\n IssueQty: null,\r\n SalesOrderNo: null,\r\n },\r\n\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n };\r\n\r\n this.handleChnage = this.handleChnage.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n this.hideFunc = this.hideFunc.bind(this);\r\n this.onPage = this.onPage.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.GetFromNo = this.GetFromNo.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n }\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.GetIssueNumbers();\r\n this.GetCompany();\r\n }, 1000);\r\n }\r\n\r\n // call on Page Event\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetIssueNumbers();\r\n }, 250);\r\n }\r\n\r\n // get product issue number list data\r\n GetIssueNumbers() {\r\n this.tblResponse.SortColumn = \"CreatedDt\";\r\n this.IssuedService.GetIssueNumbers(this.tblResponse).then((data) => {\r\n const resdata = data.data;\r\n //if ResponseData is not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n updateLoader: true,\r\n });\r\n }\r\n //if ResponseData is null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n });\r\n }\r\n\r\n // validate form\r\n //resolved KREP-17\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"CompanyId\":\r\n if (value == undefined || value == \"\") {\r\n IsValid = false;\r\n errors.CompanyId = \"Please select Company\";\r\n } else {\r\n errors.CompanyId = \"\";\r\n }\r\n break;\r\n case \"FromNo\":\r\n if (value.trim().length < 1) {\r\n IsValid = false;\r\n errors.FromNo = \"Please enter your from number.\";\r\n } else {\r\n if (!value.match(/^[0-9]+$/)) {\r\n IsValid = false;\r\n errors.FromNo = \"Please enter only number.\";\r\n this.setState({ IssueQty: 0 });\r\n } else {\r\n errors.ToNo = null;\r\n errors.IssueQty = null;\r\n errors.FromNo = null;\r\n const fromNumber = value.trim() === \"\" ? 0 : parseInt(value.trim());\r\n const toNumber =\r\n this.state.ToNo.toString().trim() === \"\"\r\n ? 0\r\n : parseInt(this.state.ToNo.toString().trim());\r\n if (fromNumber >= 1 && toNumber >= 1) {\r\n if (fromNumber <= toNumber) {\r\n const qty = toNumber - fromNumber + 1;\r\n if (qty >= 0) {\r\n this.setState({ IssueQty: qty });\r\n } else {\r\n IsValid = false;\r\n errors.FromNo = \"From number should be less than to number.\";\r\n this.setState({ IssueQty: 0 });\r\n }\r\n } else {\r\n IsValid = false;\r\n errors.FromNo = \"From number should be less than to number.\";\r\n this.setState({ IssueQty: 0 });\r\n }\r\n } else {\r\n // IsValid = false;\r\n // errors.FromNo = \"From number should be less than to number.\";\r\n this.setState({ IssueQty: 0 });\r\n }\r\n }\r\n }\r\n break;\r\n case \"ToNo\":\r\n if (value < 1) {\r\n IsValid = false;\r\n errors.ToNo = \"Please enter To Number.\";\r\n } else errors.ToNo = null;\r\n break;\r\n case \"IssueQty\":\r\n if (value < 1) {\r\n IsValid = false;\r\n errors.IssueQty = \"Please enter your quantity.\";\r\n } else {\r\n // if (!value.match(/^[0-9]+$/)) {\r\n // IsValid = false;\r\n // errors.IssueQty = \"Please enter only number.\";\r\n // this.setState({ IssueQty: 0 })\r\n // } else {\r\n\r\n errors.ToNo = null;\r\n errors.IssueQty = null;\r\n errors.FromNo = null;\r\n const qty = parseInt(value);\r\n const fromNumber =\r\n this.state.FromNo.toString().trim() === \"\"\r\n ? 0\r\n : parseInt(this.state.FromNo.toString().trim());\r\n if (fromNumber >= 1 && qty >= 1) {\r\n const toNumber = qty + fromNumber - 1;\r\n if (toNumber >= 0) {\r\n this.setState({ ToNo: toNumber });\r\n } else {\r\n IsValid = false;\r\n errors.IssueQty =\r\n \"To number should be greater than or equal to from number.\";\r\n this.setState({ ToNo: 0 });\r\n }\r\n } else {\r\n // IsValid = false;\r\n // errors.ToNo = \"To number should be greater than from number.\";\r\n this.setState({ ToNo: 0 });\r\n }\r\n // }\r\n }\r\n break;\r\n case \"SalesOrderNo\":\r\n if (value < 1) {\r\n IsValid = false;\r\n errors.SalesOrderNo = \"Please enter Sales order No\";\r\n } else errors.SalesOrderNo = null;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return IsValid;\r\n }\r\n\r\n // handle input\r\n handleChnage(event) {\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n\r\n const isValid = this.validateForm(value, name);\r\n this.setState({ errors, [name]: value });\r\n }\r\n // hide Func\r\n hideFunc() {\r\n this.setState({\r\n visible: false,\r\n buttonLabel: \"Submit\",\r\n formHeading: \"Add Number Issue\",\r\n });\r\n this.formReset();\r\n }\r\n\r\n // Reset Form\r\n formReset() {\r\n this.setState({\r\n FromNo: \"\",\r\n ToNo: \"\",\r\n IssueQty: \"\",\r\n SalesOrderNo: \"\",\r\n });\r\n\r\n let errors = this.state.formError;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = \"\";\r\n });\r\n }\r\n\r\n // Submit Form\r\n submitForm(event) {\r\n event.preventDefault();\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formError;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key];\r\n let valid = this.validateForm(val, key);\r\n //form not valid\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n //form valid\r\n if (isfrmvalid) {\r\n const formData = {\r\n FrmNo: this.state.FromNo === \"\" ? 0 : parseInt(this.state.FromNo),\r\n ToNo: this.state.ToNo === \"\" ? 0 : parseInt(this.state.ToNo),\r\n IssueQty:\r\n this.state.IssueQty === \"\" ? 0 : parseInt(this.state.IssueQty),\r\n SalesOrderNo: this.state.SalesOrderNo,\r\n CompanyId: this.state.CompanyId.CompId,\r\n };\r\n this.setState({ updateLoader: false });\r\n setTimeout(() => {\r\n this.IssuedService.CreateIssueNumber(formData).then((data) => {\r\n const resdata = data.data;\r\n //if responsecode is 200 sucess else error or warning message\r\n if (resdata.ResponseCode === \"200\") {\r\n this.refs.child.showSuccess(resdata.ResponseMessage);\r\n this.setState({\r\n loading: true,\r\n visible: false,\r\n updateLoader: true,\r\n });\r\n this.formReset();\r\n this.GetIssueNumbers();\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.refs.child.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.refs.child.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }, 1000);\r\n }\r\n }\r\n //Get Company list\r\n GetCompany() {\r\n this.CompanyMasterService.GetCompanyDDL().then((data) => {\r\n const resdata = data.data;\r\n //if resdata is not null state of companyDDL will be set with ResponseData\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n companyDDL: resdata.ResponseData,\r\n });\r\n }\r\n });\r\n }\r\n // Get Next FromNo\r\n GetFromNo() {\r\n this.formReset();\r\n this.setState({ visible: true });\r\n this.IssuedService.GetFromNumbers().then((data) => {\r\n const resdata = data.data;\r\n //if ResponseData is not null\r\n if (resdata.ResponseCode === \"200\" && resdata.ResponseData != null) {\r\n let frmNumber = resdata.ResponseData.FrmNo;\r\n frmNumber = frmNumber ?? 0 + 1;\r\n this.setState({ FromNo: \"\" + frmNumber });\r\n }\r\n });\r\n }\r\n\r\n // set lazy loading value\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = \"1\";\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n }\r\n\r\n // search Filter Data\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetIssueNumbers();\r\n }\r\n\r\n // Sort Table\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField =\r\n event.sortField == \"CreatedDate\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetIssueNumbers();\r\n }\r\n\r\n // render HTML\r\n //resolved KREP-19\r\n //resolved KREP-37\r\n render() {\r\n let header = (\r\n
      \r\n \r\n \r\n
      \r\n );\r\n return (\r\n <>\r\n \r\n {}\r\n
      \r\n

      Number Issued

      \r\n \r\n
      \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.CompanyId !== null ? (\r\n
      {this.state.formError.CompanyId}
      \r\n ) : null}\r\n
      \r\n\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.FromNo !== null ? (\r\n
      {this.state.formError.FromNo}
      \r\n ) : null}\r\n
      \r\n\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.IssueQty !== null ? (\r\n
      {this.state.formError.IssueQty}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.ToNo !== null ? (\r\n
      {this.state.formError.ToNo}
      \r\n ) : null}\r\n
      \r\n\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.SalesOrderNo !== null ? (\r\n
      \r\n {this.state.formError.SalesOrderNo}\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","import instance from './DefaultApi';\r\n\r\nexport default class StockManagementService {\r\n ControllerName = 'StockManagement';\r\n\r\n // create new Stock Management \r\n CreateStockManagement(stockData) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/CreateStockManagement`, stockData).then(res => res)\r\n }\r\n\r\n // get all stock data\r\n GetStock(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetStock`, tableRequest).then(res => res)\r\n }\r\n}","import React, { Component } from 'react';\r\nimport 'primereact/resources/primereact.min.css';\r\nimport 'primeicons/primeicons.css';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { Column } from 'primereact/column';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport { Button } from 'primereact/button';\r\nimport NumberIssuedService from '../../services/NumberIssuedService';\r\nimport tableRequest from '../../models/tableRequest.js';\r\nimport StockManagementService from '../../services/StockManagementService';\r\nimport MessageComponent from '../../template/Message';\r\nimport $ from 'jquery';\r\n\r\nexport default class StockManagement extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.NumberIssuedService = new NumberIssuedService();\r\n this.StockManagementService = new StockManagementService();\r\n this.tblResponse = new tableRequest();\r\n\r\n this.state = {\r\n visible: false,\r\n formIsValid: true,\r\n sortOrder: '',\r\n refrenceFromNo: 0,\r\n refrenceToNo: 0,\r\n\r\n StockId: 0,\r\n FromNo: '',\r\n ToNo: '',\r\n IssueQty: '',\r\n FrmNo: '',\r\n Qty: '',\r\n\r\n formError: {\r\n FromNo: null,\r\n Qty: null,\r\n FrmNo: null,\r\n ToNo: null,\r\n IssueQty: null\r\n },\r\n\r\n sales: [],\r\n sale: [],\r\n loading: true,\r\n first: 0,\r\n frst: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n totalRecord: 0,\r\n\r\n emptyMessage: 'No Data found'\r\n }\r\n\r\n this.brandTemplate = this.brandTemplate.bind(this);\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.hideFunc = this.hideFunc.bind(this);\r\n this.onPage = this.onPage.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n }\r\n //trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.GetIssueNumbers();\r\n this.GetStock();\r\n }, 700);\r\n\r\n $('.p-column-title').on('click', function () {\r\n $(this).next().removeClass('pi-sort').toggleClass('pi-sort-up').addClass('pi-sort-down');\r\n });\r\n }\r\n\r\n onPage(event) {\r\n this.setState({\r\n loading: true\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetIssueNumbers();\r\n }, 250);\r\n }\r\n\r\n // get issued number data\r\n GetIssueNumbers() {\r\n this.tblResponse.SortColumn = 'CreatedDt';\r\n this.tblResponse.IsAccepted = 0; \r\n this.NumberIssuedService.GetIssueNumbers(this.tblResponse).then(data => {\r\n const resdata = data.data;\r\n //if ResponseData is not null\r\n if (resdata !== null && resdata.ResponseData !== null && resdata.ResponseData.length > 0) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: (this.tblResponse.First - 1),\r\n sales: this.datasource.slice(0, ((this.tblResponse.First - 1) + this.tblResponse.PageSize)),\r\n loading: false\r\n });\r\n }\r\n //if ResponseData is null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false\r\n });\r\n }\r\n });\r\n }\r\n // get data list from api\r\n\r\n GetStock() {\r\n\r\n \r\n this.tblResponse.SortColumn = 'CreatedDt';\r\n this.StockManagementService.GetStock(this.tblResponse).then(data => {\r\n const resdata = data.data;\r\n //if ResponseData is not null\r\n if (resdata !== null && resdata.ResponseData !== null && resdata.ResponseData.length > 0) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecord: resdata.ResponseData[0].TotalRows,\r\n frst: (this.tblResponse.First - 1),\r\n sale: this.datasource.slice(0, ((this.tblResponse.First - 1) + this.tblResponse.PageSize)),\r\n loading: false\r\n });\r\n }\r\n //if ResponseData is null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecord: 0,\r\n frst: 1,\r\n sale: null,\r\n loading: false\r\n });\r\n }\r\n });\r\n }\r\n\r\n hideFunc() {\r\n this.setState({\r\n visible: false, buttonLabel: 'Submit',\r\n formHeading: 'Add Number Issue'\r\n })\r\n this.formReset()\r\n }\r\n submitForm(event) {\r\n event.preventDefault();\r\n\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formError;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key]\r\n let valid = this.validateForm(val, key);\r\n //form not valid\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n //form valid\r\n if (isfrmvalid) {\r\n const formData = {\r\n FrmNo: this.state.FromNo === '' ? 0 : parseInt(this.state.FromNo),\r\n ToNo: this.state.ToNo === '' ? 0 : parseInt(this.state.ToNo),\r\n IssueQty: this.state.IssueQty === '' ? 0 : parseInt(this.state.IssueQty),\r\n StockId: this.state.StockId\r\n }\r\n\r\n setTimeout(() => {\r\n this.StockManagementService.CreateStockManagement(formData).then(data => {\r\n const resdata = data.data;\r\n //if ResponseCode is 200 success else error or warning message\r\n if (resdata.ResponseCode === '200') {\r\n this.refs.child.showSuccess(resdata.ResponseMessage);\r\n this.setState({\r\n loading: true,\r\n visible: false\r\n });\r\n this.formReset();\r\n this.GetIssueNumbers();\r\n this.GetStock(); ///KREP-44\r\n\r\n } else if (resdata.ResponseCode === '400') {\r\n this.refs.child.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.refs.child.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }, 1000);\r\n }\r\n }\r\n // set image\r\n brandTemplate(rowData, column) {\r\n var src = rowData.ProductPic;\r\n return {rowData.ProductPic};\r\n }\r\n\r\n // save stock\r\n StockManagement(issuedata) {\r\n setTimeout(() => {\r\n this.StockManagementService.CreateStockManagement(issuedata).then(data => {\r\n const resdata = data.data;\r\n //if ResponseCode is 200 success else error or warning message\r\n if (resdata.ResponseCode === '200') {\r\n this.refs.child.showSuccess(resdata.ResponseMessage);\r\n this.GetIssueNumbers();\r\n } else {\r\n this.refs.child.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }, 1000);\r\n }\r\n\r\n // set lazy loading values\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = '1';\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? 'ASC' : 'DESC';\r\n }\r\n\r\n // seach filter table\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetIssueNumbers();\r\n this.GetStock();\r\n\r\n }\r\n\r\n\r\n // handle form input\r\n handleChange(event) {\r\n\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n\r\n const isValid = this.validateForm(value, name);\r\n this.setState({ errors, [name]: value });\r\n }\r\n\r\n // validate form\r\n //resolved KREP-17\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n ;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n\r\n case 'FromNo':\r\n\r\n if (value.toString().trim().length < 1) {\r\n IsValid = false;\r\n errors.FromNo = \"Please enter your from number.\";\r\n } else {\r\n\r\n if (!value.toString().match(/^[0-9]+$/)) {\r\n IsValid = false;\r\n errors.FromNo = \"Please enter only number.\";\r\n this.setState({ IssueQty: 0 })\r\n } else {\r\n errors.ToNo = null;\r\n errors.IssueQty = null;\r\n errors.FromNo = null;\r\n const fromNumber = value.toString().trim() === '' ? 0 : parseInt(value.toString().trim());\r\n const toNumber = this.state.ToNo.toString().trim() === '' ? 0 : parseInt(this.state.ToNo.toString().trim());\r\n if (fromNumber >= 1 && toNumber >= 1) {\r\n if (fromNumber <= toNumber) {\r\n const qty = (toNumber - fromNumber) + 1;\r\n if (qty >= 0) {\r\n this.setState({ IssueQty: qty })\r\n } else {\r\n IsValid = false;\r\n errors.FromNo = \"From number should be less than to number.\";\r\n this.setState({ IssueQty: 0 })\r\n }\r\n } else {\r\n IsValid = false;\r\n errors.FromNo = \"From number should be less than to number.\";\r\n this.setState({ IssueQty: 0 })\r\n }\r\n } else {\r\n // IsValid = false;\r\n // errors.FromNo = \"From number should be less than to number.\";\r\n this.setState({ IssueQty: 0 })\r\n }\r\n }\r\n }\r\n break;\r\n case 'ToNo':\r\n if (value.toString().trim().length < 1) {\r\n IsValid = false;\r\n errors.ToNo = \"Please enter your to number.\";\r\n } else {\r\n if (!value.toString().match(/^[0-9]+$/)) {\r\n IsValid = false;\r\n errors.ToNo = \"Please enter only number.\";\r\n this.setState({ Qty: 0 })\r\n } else {\r\n\r\n errors.ToNo = null;\r\n errors.IssueQty = null;\r\n errors.FromNo = null;\r\n const toNumber = value.toString().trim() === '' ? 0 : parseInt(value.toString().trim());\r\n const fromNumber = this.state.FromNo.toString().trim() === '' ? 0 : parseInt(this.state.FromNo.toString().trim());\r\n if (fromNumber >= 1 && toNumber >= 1) {\r\n if (fromNumber <= toNumber) {\r\n const qty = (toNumber - fromNumber) + 1;\r\n if (qty >= 0) {\r\n this.setState({ IssueQty: qty })\r\n } else {\r\n IsValid = false;\r\n errors.ToNo = \"To number should be greater than from number.\";\r\n this.setState({ IssueQty: 0 })\r\n }\r\n } else {\r\n IsValid = false;\r\n errors.ToNo = \"To number should be greater than from number.\";\r\n this.setState({ IssueQty: 0 })\r\n }\r\n } else {\r\n // IsValid = false;\r\n // errors.ToNo = \"To number should be greater than from number.\";\r\n this.setState({ IssueQty: 0 })\r\n }\r\n }\r\n }\r\n break;\r\n case 'IssueQty':\r\n if (value < 1) {\r\n IsValid = false;\r\n errors.IssueQty = \"Please enter your quantity\";\r\n }\r\n else errors.IssueQty = null;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return IsValid;\r\n }\r\n\r\n\r\n // Reset form\r\n formReset() {\r\n this.setState({\r\n StockId: 0,\r\n FrmNo: '',\r\n ToNo: '',\r\n Qty: '',\r\n // Remarks: ''\r\n });\r\n\r\n let errors = this.state.formError;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = '';\r\n });\r\n }\r\n\r\n // edit form\r\n actionTemplate(rowData, column) {\r\n // const DeMapping = (e) => {\r\n // this.DeMapData(rowData);\r\n // }\r\n\r\n const editMode = (e) => {\r\n this.setState({\r\n buttonLabel: 'Accept', formHeading: 'Accept Stock',\r\n visible: true,\r\n FromNo: rowData.FrmNo,\r\n ToNo: rowData.ToNo,\r\n IssueQty: rowData.IssueQty,\r\n StockId: rowData.StockId\r\n });\r\n }\r\n\r\n return \r\n \r\n ;\r\n }\r\n\r\n // Sort table data\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField = event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? 'DESC' : 'ASC';\r\n this.GetIssueNumbers();\r\n this.GetStock();\r\n }\r\n\r\n // render HTML\r\n //resolved KREP-19\r\n render() {\r\n let header = (\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

      Stock Management

      \r\n
      \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n \r\n {this.state.formError.FromNo !== null ?\r\n
      {this.state.formError.FromNo}
      : null}\r\n
      \r\n
      \r\n
      \r\n \r\n {this.state.formError.ToNo !== null ?\r\n
      {this.state.formError.ToNo}
      : null}\r\n
      \r\n
      \r\n
      \r\n \r\n {this.state.formError.IssueQty !== null ?\r\n
      {this.state.formError.IssueQty}
      : 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

      Accepted Stock

      \r\n
      */}\r\n {/* \r\n \r\n \r\n \r\n */}\r\n \r\n )\r\n }\r\n}","import instance from './DefaultApi';\r\n\r\nexport default class ProductDamageService {\r\n ControllerName = 'ProductDamage';\r\n\r\n // get all product damag data\r\n GetProductDamages(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetDamages`, tableRequest).then(res => res)\r\n }\r\n // create new product damage \r\n CreateDamage(damageData) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/CreateDamage`, damageData).then(res => res)\r\n }\r\n CartonDamage(damageData) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/CartonDamage`, damageData).then(res => res)\r\n }\r\n\r\n // delete product damage data\r\n DeleteProductDamage(damageId) {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/DeleteDamage/${damageId}`).then(res => res)\r\n }\r\n}\r\n\r\n\r\n\r\n","import React, { Component } from \"react\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Column } from \"primereact/column\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Button } from \"primereact/button\";\r\nimport MappingService from \"../../services/MappingService\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport ProductDamageService from \"../../services/ProductDamageService\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport $ from \"jquery\";\r\nimport { Calendar } from \"primereact/calendar\";\r\nimport { SelectButton } from \"primereact/selectbutton\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport { CSVLink } from \"react-csv\";\r\n\r\nexport default class ProductDamage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.MappingService = new MappingService();\r\n this.ProductDamageService = new ProductDamageService();\r\n this.tblResponse = new tableRequest();\r\n this.tblResponseDamaged = new tableRequest();\r\n this.tblResponseExport = new tableRequest();\r\n\r\n this.state = {\r\n heads: [\"FromNo\", \"ToNo\", \"Qty\", \"Reason\", \"CreatedDate\"],\r\n exportData: [],\r\n visible: false,\r\n formIsValid: true,\r\n sortOrder: \"\",\r\n refrenceFromNo: 0,\r\n damageProductLoader: false,\r\n productDamageLoader: false,\r\n updateLoader: true,\r\n refrenceToNo: 0,\r\n MappingId: 0,\r\n ProductId: null,\r\n ProductName: \"\",\r\n FromNo: 0,\r\n ToNo: 0,\r\n Qty: 0,\r\n Reason: \"\",\r\n editMapping: \"\",\r\n formError: {\r\n ProductName: null,\r\n FromNo: null,\r\n ToNo: null,\r\n Qty: null,\r\n Reason: null,\r\n },\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n sortOrderDamaged: \"\",\r\n loadingDamaged: true,\r\n firstDamaged: 0,\r\n rowsDamaged: 5,\r\n totalRecordsDamaged: 0,\r\n globalFilterDamaged: null,\r\n emptyMessageDamaged: \"No Data found\",\r\n damaged: [],\r\n isPreprintedValue: \"Static Qr Mapping\",\r\n isPreprinted: false,\r\n };\r\n\r\n this.brandTemplate = this.brandTemplate.bind(this);\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.hideFunc = this.hideFunc.bind(this);\r\n this.onPage = this.onPage.bind(this);\r\n this.onPageDamaged=this.onPageDamaged.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n this.setPreprintedValue = this.setPreprintedValue.bind(this);\r\n this.GetDamageExport = this.GetDamageExport.bind(this);\r\n }\r\n //trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.GetMappings();\r\n this.GetProductDamages();\r\n this.GetDamageExport();\r\n }, 1000);\r\n\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n\r\n // on page event call\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetMappings();\r\n }, 250);\r\n }\r\n\r\n onPageDamaged(event) {\r\n this.setState({\r\n loadingDamaged: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues1(event);\r\n this.GetProductDamages();\r\n this.GetDamageExport();\r\n }, 250);\r\n }\r\n // get product mapping list data\r\n GetMappings() {\r\n this.tblResponse.SortColumn = \"MFGDate\";\r\n this.MappingService.GetMappings(this.tblResponse).then((data) => {\r\n const resdata = data.data;\r\n this.setState({ productDamageLoader: true });\r\n //if response data is not null sales state wiill be set to response data\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n });\r\n }\r\n //if response data is null sales state will be set null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n });\r\n }\r\n hideFunc() {\r\n this.setState({\r\n visible: false,\r\n buttonLabel: \"Submit\",\r\n formHeading: \"Add Number Issue\",\r\n });\r\n this.formReset();\r\n }\r\n\r\n // submit form\r\n submitForm(event) {\r\n event.preventDefault();\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formError;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key];\r\n let valid = this.validateForm(val, key);\r\n //form is not valid\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n // form is valid\r\n if (isfrmvalid) {\r\n this.setState({ updateLoader: false });\r\n const formData = {\r\n MappingId: this.state.MappingId,\r\n // ProductId: this.state.ProductId === '' ? 0 : parseInt(this.state.ProductId),\r\n FromNo: this.state.FromNo === \"\" ? 0 : parseInt(this.state.FromNo),\r\n ToNo: this.state.ToNo === \"\" ? 0 : parseInt(this.state.ToNo),\r\n Qty: this.state.Qty === \"\" ? 0 : parseInt(this.state.Qty),\r\n Reason: this.state.Reason,\r\n isPreprinted: this.state.isPreprinted,\r\n };\r\n\r\n setTimeout(() => {\r\n this.ProductDamageService.CreateDamage(formData).then((data) => {\r\n this.setState({ updateLoader: true });\r\n const resdata = data.data;\r\n //if ResponseCode is 200 success message will be shown else will move to 'else statement'\r\n if (resdata.ResponseCode === \"200\") {\r\n this.refs.child.showSuccess(resdata.ResponseMessage);\r\n this.setState({\r\n loading: true,\r\n visible: false,\r\n loadingDamaged: true,\r\n });\r\n this.formReset();\r\n this.GetMappings();\r\n this.GetProductDamages();\r\n this.GetDamageExport();\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.refs.child.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.refs.child.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }, 1000);\r\n }\r\n }\r\n\r\n // set product pic\r\n brandTemplate(rowData, column) {\r\n var src = rowData.ProductPic;\r\n return {rowData.ProductPic};\r\n }\r\n\r\n // set lazy loading\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = \"1\";\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n }\r\n\r\n // search data filter\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetMappings();\r\n }\r\n\r\n // call when input\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n\r\n const isValid = this.validateForm(value, name);\r\n this.setState({ errors, [name]: value });\r\n }\r\n\r\n // validate form\r\n //resolved KREP-17,KREP-21\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"ProductName\":\r\n if (value == null) {\r\n IsValid = false;\r\n errors.ProductName = \"Please select product.\";\r\n } else errors.ProductName = null;\r\n break;\r\n case \"FromNo\":\r\n this.setState({ Qty: 0 });\r\n\r\n value = parseInt(value);\r\n if (value < 1) {\r\n IsValid = false;\r\n errors.FromNo = \"Please enter +ve from number.\";\r\n } else {\r\n if (value === this.state.editMapping.ToNo) {\r\n IsValid = true;\r\n errors.FromNo = \"From No. should be less than To no.\";\r\n this.setState({ Qty: 1 });\r\n } else if (\r\n value < this.state.editMapping.FromNo ||\r\n value > this.state.editMapping.ToNo\r\n ) {\r\n IsValid = false;\r\n errors.FromNo = \"Numbers must exist between mapped series\";\r\n this.setState({ Qty: 0 });\r\n } else {\r\n errors.FromNo = null;\r\n errors.ToNo = null;\r\n errors.Qty = null;\r\n const fromNumber = parseInt(value); //value.trim() === '' ? 0 : parseInt(value.trim());\r\n const toNumber =\r\n this.state.ToNo === \"\" ? 0 : parseInt(this.state.ToNo);\r\n if (\r\n fromNumber >= this.state.refrenceFromNo &&\r\n fromNumber <= this.state.refrenceToNo &&\r\n toNumber >= this.state.refrenceFromNo &&\r\n toNumber <= this.state.refrenceToNo\r\n ) {\r\n if (fromNumber <= toNumber) {\r\n const qty = toNumber - fromNumber + 1;\r\n if (qty >= 0) {\r\n this.setState({ Qty: qty });\r\n } else {\r\n IsValid = false;\r\n errors.FromNo = \"From No. should be less than to number.\";\r\n this.setState({ Qty: 0 });\r\n }\r\n }\r\n // else {\r\n // IsValid = false;\r\n // errors.FromNo = \"From No. should be less than to number.\";\r\n // this.setState({ Qty: 0 })\r\n // }\r\n } else {\r\n IsValid = false;\r\n errors.FromNo =\r\n \"From No. should be less than To no. and numbers must exist between mapped series\";\r\n this.setState({ Qty: 0 });\r\n }\r\n }\r\n }\r\n break;\r\n case \"ToNo\":\r\n if (value < 1) {\r\n IsValid = false;\r\n errors.ToNo = \"Please enter To Number.\";\r\n } else errors.ToNo = null;\r\n break;\r\n case \"Qty\":\r\n value = parseInt(value);\r\n\r\n if (value < 1) {\r\n IsValid = false;\r\n errors.Qty = \"Please enter +ve quantity.\";\r\n }\r\n // else\r\n // if(value.length>10){\r\n // IsValid=false;\r\n // errors.Qty=\"enter valid quantity.\";\r\n // }\r\n else {\r\n if (value > this.state.editMapping.Qty) {\r\n errors.Qty =\r\n \"Qty can not greater than \" + this.state.editMapping.Qty;\r\n this.setState({ Qty: 0 });\r\n } else {\r\n // if (value < this.state.editMapping.FromNo || value > this.state.editMapping.ToNo)\r\n // { IsValid = false;\r\n // errors.Qty = \"Numbers must exist between mapped series\";\r\n // this.setState({ Qty: 0 })\r\n // }\r\n // else if (this.state.FromNo > this.state.editMapping.FromNo)\r\n // {\r\n //\r\n // IsValid = false;\r\n // errors.Qty = \"From Number can not greater than \"+this.state.editMapping.ToNo;\r\n // this.setState({ Qty: 0 })\r\n // }\r\n if (value > this.state.editMapping.Qty) {\r\n IsValid = false;\r\n errors.Qty =\r\n \"Qty can not greater than \" + this.state.editMapping.Qty;\r\n this.setState({ Qty: 0 });\r\n } else {\r\n errors.ToNo = null;\r\n errors.Qty = null;\r\n errors.FromNo = null;\r\n const qty = parseInt(value); //value.toString().trim() === '' ? 0 : parseInt(value.toString().trim());\r\n const fromNumber =\r\n this.state.FromNo.toString().trim() === \"\"\r\n ? 0\r\n : parseInt(this.state.FromNo.toString().trim());\r\n if (fromNumber >= 1 && qty >= 1) {\r\n const toNumber = qty + fromNumber - 1;\r\n\r\n if (toNumber > this.state.editMapping.ToNo) {\r\n IsValid = false;\r\n errors.Qty =\r\n \"To number should not be greater than.\" +\r\n this.state.editMapping.ToNo;\r\n this.setState({ Qty: 0 });\r\n // this.setState({ ToNo: toNumber })\r\n } else if (toNumber >= 0) {\r\n this.setState({ ToNo: toNumber });\r\n } else {\r\n IsValid = false;\r\n errors.Qty =\r\n \"To number should be greater than or equal to from number.\";\r\n this.setState({ ToNo: 0 });\r\n }\r\n } else {\r\n // IsValid = false;\r\n // errors.ToNo = \"To number should be greater than from number.\";\r\n this.setState({ ToNo: 0 });\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case \"Reason\":\r\n if (value.trim().length < 1) {\r\n IsValid = false;\r\n errors.Reason = \"Please enter reason.\";\r\n } else errors.Reason = null;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return IsValid;\r\n }\r\n\r\n // form reset\r\n formReset() {\r\n this.setState({\r\n MappingId: 0,\r\n ProductId: null,\r\n ProductName: \"\",\r\n FromNo: \"\",\r\n ToNo: \"\",\r\n Qty: \"\",\r\n Remarks: \"\",\r\n Reason: \"\",\r\n });\r\n\r\n let errors = this.state.formError;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = \"\";\r\n });\r\n }\r\n\r\n // call when edit\r\n actionTemplate(rowData, column) {\r\n const editMapping = { ...rowData };\r\n const editMode = (e) => {\r\n this.setState({\r\n buttonLabel: \"Damage\",\r\n formHeading: \"Add Product Damage\",\r\n visible: true,\r\n MappingId: rowData.MappingId,\r\n ProductId: rowData.ProductID,\r\n ProductName: \"\" + rowData.ProductName,\r\n FromNo: \"\" + rowData.FromNo,\r\n ToNo: \"\" + rowData.FromNo,\r\n Qty: 0,\r\n refrenceFromNo: rowData.FromNo,\r\n refrenceToNo: rowData.ToNo,\r\n editMapping: rowData,\r\n Reason: \"\",\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n // call when sort data\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField = event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetMappings();\r\n }\r\n\r\n // bottom GRID\r\n\r\n getLazyLoadingValues1(event) {\r\n this.setState({ rowsDamaged: event.rows });\r\n this.tblResponseDamaged.PageSize = event.rows;\r\n this.tblResponseDamaged.First = event.first + 1;\r\n this.tblResponseDamaged.IsActive = \"1\";\r\n this.tblResponseDamaged.SearchValue = event.globalFilter\r\n ? event.globalFilter\r\n : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponseDamaged.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n }\r\n\r\n searchFilter1(e) {\r\n this.setState({\r\n loadingDamaged: true,\r\n });\r\n this.tblResponseDamaged.SearchValue = e.target.value;\r\n this.GetProductDamages();\r\n this.GetDamageExport();\r\n }\r\n\r\n onSort1(event) {\r\n this.setState({\r\n sortOrderDamaged: this.state.sortOrderDamaged === 1 ? 2 : 1,\r\n });\r\n const sortField =\r\n event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponseDamaged.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponseDamaged.SortOrder =\r\n this.state.sortOrderDamaged === 1 ? \"DESC\" : \"ASC\";\r\n this.GetProductDamages();\r\n this.GetDamageExport();\r\n }\r\n\r\n GetProductDamages() {\r\n this.tblResponseDamaged.SortColumn = \"CreatedDt\";\r\n this.ProductDamageService.GetProductDamages(this.tblResponseDamaged).then(\r\n (data) => {\r\n const resdata = data.data;\r\n this.setState({ damageProductLoader: true });\r\n //if ResponseData is not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n // this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecordsDamaged: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n damaged: resdata.ResponseData.slice(\r\n 0,\r\n this.tblResponseDamaged.First -\r\n 1 +\r\n this.tblResponseDamaged.PageSize\r\n ),\r\n loadingDamaged: false,\r\n });\r\n }\r\n //if ResponseData is null\r\n else {\r\n // this.datasource = null;\r\n this.setState({\r\n totalRecordsDamaged: 0,\r\n firstDamaged: 1,\r\n damaged: null,\r\n loadingDamaged: false,\r\n });\r\n }\r\n }\r\n );\r\n }\r\n /// to set isPreprinted\r\n setPreprintedValue(e) {\r\n this.setState(\r\n {\r\n isPreprintedValue: e.value,\r\n isPreprinted: e.value == \"Static Qr Mapping\" ? false : true,\r\n },\r\n () => {\r\n this.tblResponse.isPreprinted = this.state.isPreprinted;\r\n this.tblResponseDamaged.isPreprinted = this.state.isPreprinted;\r\n this.GetMappings();\r\n this.GetProductDamages();\r\n this.GetDamageExport();\r\n }\r\n );\r\n }\r\n\r\n GetDamageExport() {\r\n this.tblResponseExport.SortColumn = \"CreatedDate\";\r\n this.ProductDamageService.GetProductDamages(this.tblResponseExport).then(\r\n (data) => {\r\n const resdata = data.data;\r\n //when response data is not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n exportData: resdata.ResponseData,\r\n });\r\n }\r\n }\r\n );\r\n }\r\n //return html data\r\n //resolved KREP-20,KREP-38\r\n render() {\r\n const items = [{ label: \"Master\" }, { label: \"Product Damage\" }];\r\n\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n const options = [\"Static Qr Mapping\"]; //, 'PrePrinted Qr Mapping'];\r\n let header = (\r\n
      \r\n
      \r\n {/* */}\r\n
      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n );\r\n let headerDamaged = (\r\n
      \r\n \r\n \r\n \r\n \r\n \r\n Export\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

      Product Damage

      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n\r\n
      \r\n

      Damaged Product

      \r\n
      \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.ProductName !== null ? (\r\n
      \r\n {this.state.formError.ProductName}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.FromNo !== null ? (\r\n
      {this.state.formError.FromNo}
      \r\n ) : null}\r\n
      \r\n\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.Qty !== null ? (\r\n
      {this.state.formError.Qty}
      \r\n ) : null}\r\n
      \r\n\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.ToNo !== null ? (\r\n
      {this.state.formError.ToNo}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.Reason !== null ? (\r\n
      {this.state.formError.Reason}
      \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// import React, { Component } from 'react';\r\n// import 'primereact/resources/themes/nova-light/theme.css';\r\n// import 'primereact/resources/primereact.min.css';\r\n// import 'primeicons/primeicons.css';\r\n// import { DataTable } from 'primereact/datatable';\r\n// import { InputText } from 'primereact/inputtext';\r\n// import { Column } from 'primereact/column';\r\n// import { Dialog } from 'primereact/dialog';\r\n// import { Button } from 'primereact/button';\r\n// import ProductDamageService from '../../services/ProductDamageService';\r\n// import tableRequest from '../../models/tableRequest.js';\r\n// import MessageComponent from './../../template/Message';\r\n// import $ from 'jquery';\r\n\r\n// // Product Damage\r\n// export default class ProductDamage extends Component {\r\n// constructor(props) {\r\n// super(props);\r\n// this.ProductDamageService = new ProductDamageService();\r\n// this.tblResponse = new tableRequest();\r\n// this.state = {\r\n// visible: false,\r\n// formIsValid: true,\r\n// FromNo: '',\r\n// ToNo: '',\r\n// Qty: '',\r\n// Reason: '',\r\n// sortOrder:'',\r\n\r\n// formError: {\r\n// FromNo: null,\r\n// ToNo: null,\r\n// Qty: null,\r\n// Reason: null\r\n// },\r\n\r\n// buttonLabel: 'Submit',\r\n// formHeading: 'Add Product Damage',\r\n\r\n// sales: [],\r\n// loading: true,\r\n// first: 0,\r\n// rows: 5,\r\n// totalRecords: 0,\r\n// globalFilter: null,\r\n// emptyMessage: 'No Data found'\r\n// }\r\n\r\n// this.SubmitForm = this.SubmitForm.bind(this);\r\n// this.handleChange = this.handleChange.bind(this);\r\n// this.hideFunc = this.hideFunc.bind(this);\r\n// this.onPage = this.onPage.bind(this);\r\n// this.searchFilter = this.searchFilter.bind(this);\r\n// this.openDialog = this.openDialog.bind(this);\r\n// this.onSort = this.onSort.bind(this);\r\n// }\r\n// //trigger api function on page call\r\n// componentDidMount() {\r\n// setTimeout(() => {\r\n// this.GetProductDamages();\r\n// }, 1000);\r\n// $('.p-column-title').on('click', function(){\r\n// $(this).next().removeClass('pi-sort').toggleClass('pi-sort-up').addClass('pi-sort-down');\r\n// });\r\n// }\r\n\r\n// // call on Page event\r\n// onPage(event) {\r\n// this.setState({\r\n// loading: true\r\n// });\r\n\r\n// //imitate delay of a backend call\r\n// setTimeout(() => {\r\n// this.getLazyLoadingValues(event);\r\n// this.GetProductDamages();\r\n// }, 250);\r\n// }\r\n\r\n// // show when add new record\r\n// hideFunc() {\r\n// this.setState({\r\n// visible: false, buttonLabel: 'Submit',\r\n// formHeading: 'Add Number Issue'\r\n// })\r\n// this.formReset()\r\n// }\r\n\r\n// // form Reset\r\n// formReset() {\r\n// this.setState({\r\n// FromNo: '', ToNo: '', Qty: '', Reason: ''\r\n// });\r\n// let errors = this.state.formError;\r\n// Object.entries(errors).map(([key, value]) => {\r\n// errors[key] = '';\r\n// });\r\n// }\r\n\r\n// // submit form\r\n// SubmitForm(event) {\r\n// event.preventDefault();\r\n\r\n// let isfrmvalid = true;\r\n// let checkerror = this.state.formError;\r\n\r\n// Object.entries(checkerror).map(([key, value]) => {\r\n// const val = this.state[key]\r\n// let valid = this.validateForm(val, key);\r\n// //form not valid\r\n// if (!valid) {\r\n// this.setState({ checkerror: isfrmvalid });\r\n// isfrmvalid = false;\r\n// }\r\n// });\r\n// //form valid\r\n// if (isfrmvalid) {\r\n// const formData = {\r\n// FromNo: this.state.FromNo == '' ? 0 : parseInt(this.state.FromNo),\r\n// ToNo: this.state.ToNo == '' ? 0 : parseInt(this.state.ToNo),\r\n// Qty: this.state.Qty == '' ? 0 : parseInt(this.state.Qty),\r\n// Reason: this.state.Reason\r\n// }\r\n// setTimeout(() => {\r\n// this.ProductDamageService.CreateDamage(formData).then(data => {\r\n// const resdata = data.data;\r\n// //if ResponseCode is 200 sucess else error or warning message\r\n// if (resdata.ResponseCode === '200') {\r\n// this.refs.child.showSuccess(resdata.ResponseMessage);\r\n// this.setState({\r\n// loading: true,\r\n// visible: false\r\n// });\r\n// this.formReset();\r\n// this.GetProductDamages();\r\n// } else if (resdata.ResponseCode === '400') {\r\n// this.refs.child.showWarn(resdata.ResponseMessage);\r\n// } else {\r\n// this.refs.child.showError(resdata.ResponseMessage);\r\n// }\r\n// });\r\n// }, 1000);\r\n// }\r\n// }\r\n\r\n// // set formData\r\n// getLazyLoadingValues(event) {\r\n// this.setState({ rows: event.rows });\r\n// this.tblResponse.PageSize = event.rows;\r\n// this.tblResponse.First = event.first + 1;\r\n// this.tblResponse.IsActive = '1';\r\n// this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n// //this.tblResponse.SortColumn = event.sortField;\r\n// this.tblResponse.SortOrder = event.sortOrder === 1 ? 'ASC' : 'DESC';\r\n// }\r\n\r\n// // delete product damage data\r\n// DeleteProductDamage(referenceID) {\r\n// setTimeout(() => {\r\n// this.ProductDamageService.DeleteProductDamage(referenceID).then(data => {\r\n// const resdata = data.data;\r\n// //if ResponseCode is 200 success else error or warning message\r\n// if (resdata !== null && resdata.ResponseCode === '200') {\r\n// this.refs.child.showSuccess(resdata.ResponseMessage);\r\n// const totlrecord = this.state.totalRecords - 1;\r\n// const row = this.state.rows;\r\n\r\n// if (this.tblResponse.First >= totlrecord) {\r\n// const _curntCursor = Math.round(totlrecord / row);\r\n// this.tblResponse.First = _curntCursor + 1;\r\n// }\r\n// this.GetProductDamages();\r\n// } else {\r\n// this.refs.child.showError(resdata.ResponseMessage);\r\n// }\r\n// });\r\n// }, 1000);\r\n// }\r\n\r\n// // get product damages list data\r\n// GetProductDamages() {\r\n// this.tblResponse.SortColumn='CreatedDt';\r\n// this.ProductDamageService.GetProductDamages(this.tblResponse).then(data => {\r\n// const resdata = data.data;\r\n// //if ResponseData is not null\r\n// if (resdata !== null && resdata.ResponseData !== null && resdata.ResponseData.length > 0) {\r\n// this.datasource = resdata.ResponseData;\r\n// this.setState({\r\n// totalRecords: resdata.ResponseData[0].TotalRows,\r\n// first: (this.tblResponse.First - 1),\r\n// sales: this.datasource.slice(0, ((this.tblResponse.First - 1) + this.tblResponse.PageSize)),\r\n// loading: false\r\n// });\r\n// }\r\n// //if ResponseData is null\r\n// else {\r\n// this.datasource = null;\r\n// this.setState({\r\n// totalRecords: 0,\r\n// first: 1,\r\n// sales: null,\r\n// loading: false\r\n// });\r\n// }\r\n// });\r\n// }\r\n\r\n// // search filter data\r\n// searchFilter(e) {\r\n// this.setState({\r\n// loading: true\r\n// });\r\n// this.tblResponse.SearchValue = e.target.value;\r\n// this.GetProductDamages();\r\n// }\r\n\r\n// //open Dialog\r\n// openDialog() {\r\n// this.setState({ visible: true });\r\n// this.formReset();\r\n// }\r\n\r\n// // validate form\r\n// //resolved KREP-17\r\n// validateForm(value, name) {\r\n// let errors = this.state.formError;\r\n// let IsValid = true;\r\n// //to validate each form field with required conditions\r\n// switch (name) {\r\n// case 'FromNo':\r\n// if (value < 1) {\r\n// IsValid = false;\r\n// errors.FromNo = \"Please enter +ve from number.\";\r\n// } else\r\n// // if (!value.match(/^[0-9]+$/)) {\r\n// // IsValid = false;\r\n// // errors.FromNo = \"Please enter only number.\";\r\n// // this.setState({ Qty: 0 })\r\n// // } else\r\n// {\r\n\r\n// errors.ToNo = null;\r\n// errors.Qty = null;\r\n// errors.FromNo = null;\r\n// const fromNumber = value == '' ? 0 : parseInt(value);\r\n// const toNumber = this.state.ToNo == '' ? 0 : parseInt(this.state.ToNo);\r\n// if (fromNumber >= 1 && toNumber >= 1) {\r\n// if (fromNumber <= toNumber) {\r\n// const qty = (toNumber - fromNumber) + 1;\r\n// if (qty >= 0) {\r\n// this.setState({ Qty: qty })\r\n// } else {\r\n// IsValid = false\r\n// errors.FromNo = \"From number should be less than to number.\";\r\n// this.setState({ Qty: 0 })\r\n// }\r\n// } else {\r\n// IsValid = false;\r\n// errors.FromNo = \"From number should be less than to number.\";\r\n// this.setState({ Qty: 0 })\r\n// }\r\n// } else {\r\n// // IsValid = false;\r\n// // errors.FromNo = \"From number should be less than to number.\";\r\n// this.setState({ Qty: 0 })\r\n// }\r\n// }\r\n// break;\r\n// case 'ToNo':\r\n// if (value< 1) {\r\n// IsValid = false;\r\n// errors.ToNo = \"Please enter +ve to number.\";\r\n// } else {\r\n// // if (!value.match(/^[0-9]+$/)) {\r\n// // IsValid = false;\r\n// // errors.ToNo = \"Please enter only number.\";\r\n// // this.setState({ Qty: 0 })\r\n// // } else\r\n\r\n// {\r\n// errors.ToNo = null;\r\n// errors.Qty = null;\r\n// errors.FromNo = null;\r\n// const toNumber = value == '' ? 0 : parseInt(value.trim());\r\n// const fromNumber = this.state.FromNo == '' ? 0 : parseInt(this.state.FromNo);\r\n// if (fromNumber >= 1 && toNumber >= 1) {\r\n// if (fromNumber <= toNumber) {\r\n// const qty = (toNumber - fromNumber) + 1;\r\n// if (qty >= 0) {\r\n// this.setState({ Qty: qty })\r\n// } else {\r\n// IsValid = false;\r\n// errors.ToNo = \"To number should be greater than from number.\";\r\n// this.setState({ Qty: 0 })\r\n// }\r\n// } else {\r\n// IsValid = false;\r\n// errors.ToNo = \"To number should be greater than from number.\";\r\n// this.setState({ Qty: 0 })\r\n// }\r\n// } else {\r\n// // IsValid = false;\r\n// // errors.ToNo = \"To number should be greater than from number.\";\r\n// this.setState({ Qty: 0 })\r\n// }\r\n// }\r\n// }\r\n// break;\r\n// case 'Qty':\r\n// if (value < 1) {\r\n// IsValid = false;\r\n// errors.Qty = \"Please enter your quantity\";\r\n// }\r\n// else errors.Qty = null\r\n// break;\r\n// case 'Reason':\r\n// if (value.trim().length < 1) {\r\n// IsValid = false;\r\n// errors.Reason = \"Please enter reason.\";\r\n// }\r\n// else errors.Reason = null\r\n// break;\r\n// default:\r\n// break;\r\n// }\r\n\r\n// return IsValid;\r\n// }\r\n\r\n// // call every change of form and validation part also\r\n// handleChange(event) {\r\n\r\n// const { name, value } = event.target;\r\n// let errors = this.state.formError;\r\n\r\n// const isValid = this.validateForm(value, name);\r\n// this.setState({ errors, [name]: value });\r\n// }\r\n\r\n// // sort page event\r\n// onSort(event) {\r\n// this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n// const sortField = event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n// this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n// this.tblResponse.SortOrder = this.state.sortOrder === 1 ? 'DESC' : 'ASC';\r\n// this.GetProductDamages();\r\n// }\r\n\r\n// // render HTMl\r\n// //resolved KREP-19\r\n// render() {\r\n\r\n// let header = (\r\n//
      \r\n// \r\n// \r\n//
      \r\n// );\r\n// return (\r\n// <>\r\n// \r\n//
      \r\n//

      Product Damage

      \r\n//
      \r\n\r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n// \r\n\r\n// \r\n//
      \r\n//
      \r\n//
      \r\n//
      \r\n// {this.state.formError.FromNo !== null ?\r\n//
      {this.state.formError.FromNo}
      : null}
      \r\n//
      \r\n//
      \r\n// {this.state.formError.ToNo !== null ?\r\n//
      {this.state.formError.ToNo}
      : null}
      \r\n//
      \r\n//
      \r\n// \r\n// {this.state.formError.Qty !== null ?\r\n//
      {this.state.formError.Qty}
      : null}\r\n//
      \r\n//
      \r\n//
      \r\n// \r\n// {this.state.formError.Reason !== null ?\r\n//
      {this.state.formError.Reason}
      : 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","import React, { Component } from \"react\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Column } from \"primereact/column\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Button } from \"primereact/button\";\r\nimport MappingService from \"../../services/MappingService\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport DeMappingService from \"../../services/DeMappingService\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport $ from \"jquery\";\r\nimport { Calendar } from \"primereact/calendar\";\r\n\r\nexport default class StaticMapping extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.textInput0 = React.createRef();\r\n this.textInput = React.createRef();\r\n this.MappingService = new MappingService();\r\n this.tblResponse = new tableRequest();\r\n\r\n this.state = {\r\n visible: false,\r\n scanPrePrinted: true,\r\n formIsValid: true,\r\n updateLoader: false,\r\n sortOrder: \"\",\r\n refrenceFromNo: 0,\r\n refrenceToNo: 0,\r\n staticQr: \"\",\r\n prePrintedQr: \"\",\r\n formError: {\r\n ProductName: null,\r\n FromNo: null,\r\n ToNo: null,\r\n Qty: null,\r\n },\r\n\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n };\r\n\r\n //this.brandTemplate = this.brandTemplate.bind(this);\r\n // this.actionTemplate = this.actionTemplate.bind(this);\r\n // this.submitForm = this.submitForm.bind(this);\r\n // this.handleChange = this.handleChange.bind(this);\r\n // this.hideFunc = this.hideFunc.bind(this);\r\n this.onPage = this.onPage.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n }\r\n //trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.GetMappings();\r\n }, 1000);\r\n\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n\r\n // on page event call\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetMappings();\r\n }, 250);\r\n }\r\n\r\n // get product mapping list data\r\n GetMappings() {\r\n this.MappingService.GetStaticQrMapping(this.tblResponse).then((data) => {\r\n const resdata = data.data;\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n //if response data is not null sales state wiill be set to response data\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n updateLoader: true,\r\n });\r\n }\r\n //if response data is null sales state will be set null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n });\r\n }\r\n\r\n // Create Demapping\r\n SaveMapping(data) {\r\n setTimeout(() => {\r\n this.MappingService.SaveStaticQrMapping(data).then((data) => {\r\n const resdata = data.data;\r\n //if ResponseCode is 200 success message will be shown else will move to 'else statement'\r\n if (resdata.ResponseCode === \"200\") {\r\n this.textInput0.current.focus();\r\n this.textInput0.current.value = \"\";\r\n this.textInput.current.value = \"\";\r\n\r\n this.refs.child.showSuccess(resdata.ResponseMessage);\r\n this.GetMappings();\r\n } else {\r\n this.refs.child.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }, 1000);\r\n }\r\n\r\n ScanStaticItem(e) {\r\n if (e.key === \"Enter\") {\r\n let qr = e.target.value;\r\n /////////for multiline qr code on KREPL//\r\n const splitQr = qr.split(\"QRLink:\");\r\n console.log(splitQr[1]);\r\n /////////for multiline qr code on KREPL//\r\n\r\n /////////for multiline qr code on KREPL//\r\n qr = splitQr[1] === undefined ? qr : splitQr[1];\r\n /////////for multiline qr code on KREPL//\r\n\r\n if (qr.includes(\"uid\")) {\r\n this.setState({ staticQr: qr, scanPrePrinted: false });\r\n // document.getElementsByName('scanPrePrinted').focus();\r\n this.textInput.current.focus();\r\n } else {\r\n e.target.value = \"\";\r\n this.refs.child.showWarn(\"Invalid scanned Qr\");\r\n }\r\n }\r\n }\r\n ScanAndSave(e) {\r\n if (e.key === \"Enter\") {\r\n let qr = e.target.value;\r\n\r\n if (qr.includes(\"uid\")) {\r\n const formData = {\r\n StaticEncryptedQr: this.state.staticQr,\r\n PreprintedEncryptedQr: qr,\r\n };\r\n this.SaveMapping(formData);\r\n e.target.value = \"\";\r\n } else this.refs.child.showWarn(\"Invalid scanned Qr\");\r\n e.target.value = \"\";\r\n }\r\n }\r\n // set lazy loading\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = \"1\";\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n }\r\n\r\n // search data filter\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetMappings();\r\n }\r\n\r\n // form reset\r\n formReset() {\r\n this.setState({\r\n Id: 0,\r\n ProductId: null,\r\n ProductName: \"\",\r\n FromNo: \"\",\r\n ToNo: \"\",\r\n Qty: \"\",\r\n // Remarks: ''\r\n });\r\n let errors = this.state.formError;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = \"\";\r\n });\r\n }\r\n // call when sort data\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField = event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetMappings();\r\n }\r\n\r\n //return html data\r\n //resolved KREP-20,KREP-38\r\n render() {\r\n let header = (\r\n
      \r\n
      \r\n
      \r\n
      \r\n {\r\n this.ScanStaticItem(e);\r\n }}\r\n />\r\n
      \r\n
      \r\n {\r\n this.ScanAndSave(e);\r\n }}\r\n />\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n this.setState({ globalFilter: e.target.value })}\r\n placeholder=\"Global Search\"\r\n className=\"search-space\"\r\n size=\"30\"\r\n />\r\n
      \r\n
      \r\n );\r\n return (\r\n <>\r\n \r\n \r\n
      \r\n

      Static Qr Mapping

      \r\n
      \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","// request for lazy loading for all pages\r\n\r\nexport default class qrData {\r\n SrNo = '';\r\n Qrdata = '';\r\n}","import React, { Component, useRef } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport qrData from \"../../models/qrData.js\";\r\nimport ProductService from \"../../services/ProductService\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport PrintSecondaryPackagingService from \"../../services/PrintSecondaryPackagingService\";\r\nimport { Button } from \"primereact/button\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport { Card } from \"primereact/card\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Column } from \"primereact/column\";\r\nimport { CSVLink } from \"react-csv\";\r\nimport Loaders from \"../../template/Loaders\";\r\nexport default class CartonSlip extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.ProductService = new ProductService();\r\n this.csv = React.createRef();\r\n this.PrintSecondaryPackagingService = new PrintSecondaryPackagingService();\r\n this.tblResponse = new tableRequest();\r\n this.qrData = new qrData();\r\n this.state = {\r\n FromNo: 1,\r\n Qty: null,\r\n type: \"\",\r\n ToNo: null,\r\n Prefix: \"\",\r\n Sgen: \"\",\r\n Tgen: \"\",\r\n qrData: [],\r\n fileType: 1,\r\n };\r\n this.createCSV = this.createCSV.bind(this);\r\n this.onValueChange = this.onValueChange.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n }\r\n //to trigger api function o page call\r\n componentDidMount() {\r\n this.GetLastIds(sessionStorage.getItem(\"Prefix\"));\r\n }\r\n\r\n GetLastIds(prefix) {\r\n this.ProductService.GetIds(prefix).then((res) => {\r\n if (res.data.ResponseCode == \"200\") {\r\n const data = res.data.ResponseMessage.split(\"VAL\");\r\n this.setState({\r\n Sgen: parseInt(data[0]) + 1,\r\n Tgen: parseInt(data[1]) + 1,\r\n });\r\n } else {\r\n this.refs.Messchild.showWarn(res.data.ResponseMessage);\r\n }\r\n });\r\n }\r\n submitForm() {\r\n if (\r\n this.state.FromNo == \"\" ||\r\n this.state.ToNo == \"\" ||\r\n this.state.Qty == \"\" ||\r\n this.state.FromNo == undefined ||\r\n this.state.ToNo == undefined ||\r\n this.state.Qty == undefined ||\r\n this.state.type == undefined ||\r\n this.state.type == null\r\n ) {\r\n this.refs.Messchild.showWarn(\"Invalid Arguments\");\r\n } else {\r\n this.setState({\r\n FromNo: this.state.ToNo,\r\n Qty: \"\",\r\n ToNo: \"\",\r\n });\r\n if (this.state.fileType == 1)\r\n this.PrintSecondaryPackagingService.BulkData(\r\n this.state.type,\r\n this.state.FromNo,\r\n this.state.ToNo,\r\n this.state.Prefix\r\n );\r\n else if (this.state.fileType == 2)\r\n this.createCSV(\r\n this.state.type,\r\n this.state.FromNo,\r\n this.state.ToNo,\r\n this.state.Prefix\r\n );\r\n if (\r\n parseInt(this.state.Sgen) < parseInt(this.state.ToNo) ||\r\n this.state.Tgen < parseInt(this.state.ToNo)\r\n ) {\r\n this.ProductService.UpdateIds(\r\n this.state.Prefix,\r\n this.state.type,\r\n this.state.ToNo\r\n ).then((res) => {\r\n if (res.data.ResponseCode == \"200\") {\r\n this.refs.Messchild.showSuccess(res.data.ResponseMessage);\r\n this.GetLastIds(sessionStorage.getItem(\"Prefix\"));\r\n } else {\r\n this.GetLastIds(sessionStorage.getItem(\"Prefix\"));\r\n this.refs.Messchild.showWarn(res.data.ResponseMessage);\r\n }\r\n });\r\n } else {\r\n this.refs.Messchild.showSuccess(\"Download Succcess\");\r\n }\r\n }\r\n }\r\n\r\n createCSV(type, from, to, prefix) {\r\n let year = new Date().getFullYear();\r\n let max = to + 1;\r\n let list = [];\r\n for (let i = from; i < max; i++) {\r\n var qr = new qrData();\r\n let val = i.toString().padStart(5, \"0\");\r\n qr.SrNo = i.toString().padStart(5, \"0\");\r\n qr.Qrdata = `${type}-${year}-${prefix}-${val}`;\r\n list.push(qr);\r\n }\r\n let date = new Date();\r\n this.setState({\r\n qrData: list,\r\n fileName:\r\n `${prefix}-${type}-${from}-${to} ${new Date().toLocaleString()}` +\r\n \".csv\",\r\n });\r\n\r\n setTimeout(() => {\r\n this.csv.current.link.click();\r\n }, 500);\r\n }\r\n handleChange(e) {\r\n //const { name, value } = e.target;\r\n // this.setState({name: value });\r\n // this.setState({FromNo:e})\r\n }\r\n onValueChange(e) {\r\n if (e.target.value == \"TID\") {\r\n this.setState({\r\n type: e.target.value,\r\n FromNo: this.state.Tgen,\r\n Qty: \"\",\r\n ToNo: \"\",\r\n Prefix: sessionStorage.getItem(\"Prefix\"),\r\n });\r\n } else if (e.target.value == \"SID\") {\r\n this.setState({\r\n type: e.target.value,\r\n FromNo: this.state.Sgen,\r\n Qty: \"\",\r\n ToNo: \"\",\r\n Prefix: sessionStorage.getItem(\"Prefix\"),\r\n });\r\n }\r\n }\r\n //sessionStorage.getItem(\"Prefix\")\r\n render() {\r\n const items = [{ label: \"Transactions\" }, { label: \">Carton Slip\" }];\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n\r\n return (\r\n <>\r\n \r\n {}\r\n \r\n \r\n
      \r\n
      \r\n

      Carton Slip

      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n Secondary Carton Slips{\" \"}\r\n {/* {\" \"}\r\n Tertiary Carton Slip */}\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n this.setState({ FromNo: e.target.value, Qty: \"\", ToNo: \"\" })\r\n }\r\n className=\"form-control\"\r\n name=\"FromNo\"\r\n />\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n this.setState({\r\n ToNo:\r\n parseInt(e.target.value) +\r\n parseInt(this.state.FromNo) -\r\n 1,\r\n Qty: parseInt(e.target.value),\r\n })\r\n }\r\n className=\"form-control\"\r\n name=\"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 this.setState({ fileType: e.target.value });\r\n }}\r\n style={{ width: \"200px\" }}\r\n >\r\n \r\n \r\n \r\n
      \r\n
      \r\n \r\n Submit\r\n \r\n
      \r\n
      \r\n
      \r\n \r\n );\r\n }\r\n}\r\n","import instance from './DefaultApi';\r\n\r\nexport default class RedemptionReportService {\r\n ControllerName = 'RedemptionReport';\r\n\r\n // get all list data Redemption\r\n GetRedemptionReport(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetRedemptionReport`, tableRequest).then(res => res)\r\n }\r\n\r\n /// Get Excel Export Redemption\r\n GetRedemptionExport(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetRedemptionExport`,tableRequest).then(res => res)\r\n }\r\n\r\n /// Get Loyalty Points Redemption Requests\r\n GetLoyaltyRequests(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetLoyaltyRequests`,tableRequest).then(res => res)\r\n }\r\n\r\n /// Set loyalty status to accepted\r\n AcceptPointsRequest(Id,Remark) {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/AcceptPointsRequest/${Id}/${Remark}`).then(res => res)\r\n }\r\n\r\n\r\n}","import React, { Component } from 'react';\r\nimport 'primereact/resources/themes/saga-blue/theme.css';\r\nimport 'primereact/resources/primereact.min.css';\r\nimport 'primeicons/primeicons.css';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { Column } from 'primereact/column';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport { Button } from 'primereact/button';\r\nimport { BreadCrumb } from 'primereact/breadcrumb';\r\nimport $ from \"jquery\";\r\nimport RedemptionReportService from '../../services/RedemptionReportService';\r\nimport MessageComponent from '../../template/Message';\r\nimport tableRequest from '../../models/tableRequest';\r\nimport ApiService from '../../services/apiService';\r\nimport Loaders from '../../template/Loaders';\r\n// TO Generate NUmber\r\nexport default class LoyaltyRedeemRequests extends Component {\r\n constructor(props) {\r\n \r\n super(props);\r\n this.RedemptionReportService = new RedemptionReportService();\r\n this.ApiService = new ApiService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n visible: false,\r\n Tvisible: false,\r\n rowD:[],\r\n Remark:'',\r\n updateLoader: false,\r\n sortOrder: '',\r\n FromNo: '',\r\n ToNo: '',\r\n Qty: '',\r\n formError: {\r\n FromNo: null,\r\n ToNo: null,\r\n Qty: null,\r\n\r\n },\r\n prefix: '',\r\n downloadLink: '',\r\n requestsData: [],\r\n acceptedData: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: 'No Data found'\r\n }\r\n\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.handleChnage = this.handleChnage.bind(this);\r\n this.onPage = this.onPage.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n }\r\n //trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.setState({\r\n prefix: this.ApiService.getFactoryPrefix()\r\n });\r\n this.GetLoyaltyRequests();\r\n setTimeout(() => {\r\n this.GetAcceptedRequests();\r\n }, 2000);\r\n }, 1000);\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n\r\n // call page event\r\n onPage(event) {\r\n this.setState({\r\n loading: true\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n\r\n this.getLazyLoadingValues(event);\r\n this.GetLoyaltyRequests();\r\n setTimeout(() => {\r\n this.GetAcceptedRequests();\r\n }, 2000);\r\n }, 250);\r\n }\r\n\r\n // get product issue number list data\r\n GetLoyaltyRequests() {\r\n \r\n this.tblResponse.SortColumn = 'RequestDate';\r\n this.tblResponse.IsAccepted = 0;\r\n this.RedemptionReportService.GetLoyaltyRequests(this.tblResponse).then(data => {\r\n const resdata = data.data;\r\n \r\n //if response data is not null\r\n if (resdata !== null && resdata.ResponseData !== null && resdata.ResponseData.length > 0) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: (this.tblResponse.First - 1),\r\n requestsData: this.datasource.slice(0, ((this.tblResponse.First - 1) + this.tblResponse.PageSize)),\r\n loading: false,\r\n updateLoader: true\r\n\r\n });\r\n }\r\n ///if response data is null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n requestsData: null,\r\n loading: false, updateLoader: true\r\n });\r\n }\r\n });\r\n }\r\n\r\n // To get accepted loyalty requests\r\n GetAcceptedRequests() {\r\n\r\n this.tblResponse.SortColumn = 'RequestDate';\r\n this.tblResponse.IsAccepted = 1;\r\n this.RedemptionReportService.GetLoyaltyRequests(this.tblResponse).then(data => {\r\n const resdata = data.data;\r\n \r\n //if response data is not null\r\n if (resdata !== null && resdata.ResponseData !== null && resdata.ResponseData.length > 0) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: (this.tblResponse.First - 1),\r\n acceptedData: this.datasource.slice(0, ((this.tblResponse.First - 1) + this.tblResponse.PageSize)),\r\n loading: false,\r\n updateLoader: true\r\n });\r\n }\r\n ///if response data is null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n acceptedData: null,\r\n loading: false, updateLoader: true\r\n });\r\n }\r\n });\r\n }\r\n \r\n acceptRequest(){\r\n \r\n this.RedemptionReportService.AcceptPointsRequest(this.state.rowD.Id, this.state.Remark).then(data => {\r\n \r\n const resdata = data.data\r\n if (resdata.ResponseCode === '200'){\r\n \r\n this.refs.child.showSuccess(resdata.ResponseMessage);\r\n this.setState({\r\n loading: true,\r\n visible: false,\r\n Tvisible: false,\r\n Remark:''\r\n });\r\n this.GetLoyaltyRequests();\r\n setTimeout(() => {\r\n this.GetAcceptedRequests();\r\n }, 2000);\r\n } else if (resdata.ResponseCode === '400') {\r\n this.refs.child.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.refs.child.showError(resdata.ResponseMessage);\r\n }\r\n\r\n });\r\n }\r\n\r\n actionTemplate(rowData, column) {\r\n return \r\n \r\n ;\r\n }\r\n\r\n\r\n //validate form\r\n //resolved KREP-17\r\n\r\n // call when input data on form\r\n handleChnage(event) {\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n\r\n this.setState({ errors, [name]: value });\r\n }\r\n\r\n\r\n\r\n // submit form to api\r\n\r\n ś \r\n // Get Next fromNO\r\n\r\n\r\n // set Lazy Loading Values\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = '1';\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? 'ASC' : 'DESC';\r\n }\r\n\r\n // search Filter table \r\n searchFilter(e) {\r\n this.setState({\r\n loading: true\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetLoyaltyRequests();\r\n }\r\n\r\n // Sort table\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField = event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? 'DESC' : 'ASC';\r\n this.GetLoyaltyRequests();\r\n }\r\n\r\n // Render html\r\n //resolved KREP-19\r\n render() {\r\n \r\n const TabView=(\r\n \r\n {this.setState({Tvisible:false}); \r\n // this.acceptRequest();\r\n }}>\r\n
      \r\n {this.setState({Remark:e.target.value})} }\r\n onKeyDown={(e)=> e.key =='Enter' && this.acceptRequest()} autoFocus/>\r\n
      \r\n
      \r\n );\r\n\r\n const items = [\r\n { label: 'Transaction ' },\r\n { label: 'Redemption Requests' }\r\n ];\r\n\r\n const home = { icon: 'pi pi-home', url: '/dashboard' }\r\n let header = (\r\n
      \r\n \r\n \r\n
      \r\n );\r\n return (\r\n <>\r\n \r\n
      \r\n
      \r\n

      Loyalty Points Redemption Requests

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

      Accepted Requests

      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {TabView}\r\n \r\n )\r\n }\r\n}","import instance from './DefaultApi';\r\n\r\nexport default class ProductConfigurationService {\r\n ControllerName = 'ProductConfiguration';\r\n\r\n // get all product configuration data\r\n getConfigrationData(productId) {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetConfigrationData/${productId}`).then(res => res)\r\n }\r\n\r\n /// Update ProductConfigration\r\n UpdateProductConfigration(data) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/UpdateProductConfigration`, data).then(res => res)\r\n }\r\n}","import React, { Component } from 'react';\r\nimport 'primereact/resources/themes/saga-blue/theme.css';\r\nimport 'primereact/resources/primereact.min.css';\r\nimport 'primeicons/primeicons.css';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { Column } from 'primereact/column';\r\nimport { MultiSelect } from 'primereact/multiselect';\r\nimport { Button } from 'primereact/button';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport ProductService from '../../services/ProductService';\r\nimport { Dropdown } from 'primereact/dropdown';\r\nimport { BreadCrumb } from 'primereact/breadcrumb';\r\nimport ProductConfigurationService from '../../services/ProductConfigurationService';\r\nimport tableRequest from '../../models/tableRequest';\r\nimport { Thumbnail } from 'react-bootstrap';\r\nimport MessageComponent from '../../template/Message';\r\n\r\nexport default class ProductConfiguration extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n visible: false,\r\n ProductId: null,\r\n ProductConfiguration: '',\r\n emptyMessage: 'No Data found',\r\n formHeading: 'Add Product Master',\r\n buttonLabel: 'Submit',\r\n sales: [\r\n // { Configuration: 'Share', Value: 'IsShare' },\r\n { Configuration: 'Feedback', Value: 'IsFeedback' },\r\n { Configuration: 'Product Image', Value: 'IsProductImage' },\r\n // { Configuration: 'Company Logo', Value: 'IsCompanyLogo' },\r\n // { Configuration: 'Rating', Value: 'IsRating' },\r\n // { Configuration: 'Product Catelogue', Value: 'IsProductCatelogue' }\r\n ],\r\n Products: [],\r\n formError: {\r\n ProductId: null\r\n }\r\n }\r\n\r\n this.ProductService = new ProductService();\r\n this.ProductConfService = new ProductConfigurationService();\r\n this.brandTemplate = this.brandTemplate.bind(this);\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n\r\n this.getConfigrationData = this.getConfigrationData.bind(this);\r\n this.allcheck = this.allcheck.bind(this);\r\n this.singleCheck = this.singleCheck.bind(this);\r\n }\r\n //to trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.GetProductDDL();\r\n }, 1000);\r\n }\r\n //to get configuration data\r\n getConfigrationData(event) {\r\n const productId = event.value;\r\n this.setState({\r\n ProductId: event.value\r\n });\r\n\r\n this.ProductConfService.getConfigrationData(productId).then(res => {\r\n const resdata = res.data;\r\n\r\n let IsParentCheck = false;\r\n const checkboxes = document.getElementsByName('childCheck');\r\n if (resdata !== null && resdata.ResponseCode === '200') {\r\n const objdata = resdata.ResponseData;\r\n if (objdata.ProdConfiguration != null && objdata.ProdConfiguration.length > 0) {\r\n const obj = JSON.parse(objdata.ProdConfiguration);\r\n for (var checkbox of checkboxes) {\r\n if (obj.hasOwnProperty(checkbox.value)) {\r\n const keyval = obj[checkbox.value];\r\n if (keyval) {\r\n checkbox.checked = true;\r\n } else {\r\n checkbox.checked = false;\r\n IsParentCheck = true;\r\n }\r\n } else {\r\n checkbox.checked = false;\r\n IsParentCheck = true;\r\n }\r\n }\r\n } else {\r\n for (let checkbox of checkboxes) {\r\n checkbox.checked = false;\r\n IsParentCheck = true;\r\n }\r\n }\r\n } else {\r\n for (let checkbox of checkboxes) {\r\n checkbox.checked = false;\r\n IsParentCheck = true;\r\n }\r\n }\r\n\r\n let parentCheckboxe = document.getElementsByName('parentCheck');\r\n if (!IsParentCheck) {\r\n parentCheckboxe[0].checked = true;\r\n } else {\r\n parentCheckboxe[0].checked = false;\r\n }\r\n });\r\n\r\n if (productId > 0) {\r\n let errors = this.state.formError;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = '';\r\n });\r\n }\r\n }\r\n //to reset form\r\n formReset() {\r\n this.setState({\r\n productId: '',\r\n ProductConfiguration: '',\r\n })\r\n }\r\n //to validate form\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n\r\n switch (name) {\r\n case 'ProductId':\r\n if (value == null && value < 1) {\r\n IsValid = false;\r\n errors.ProductId = \"Please select product.\";\r\n } else errors.ProductId = ''\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return IsValid;\r\n }\r\n //to submit form\r\n submitForm(event) {\r\n event.preventDefault();\r\n this.singleCheck();\r\n const formData = {\r\n ProductId: this.state.ProductId,\r\n ProdConfiguration: '' + this.state.ProductConfiguration,\r\n BtnType: event.currentTarget.value\r\n }\r\n\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formError;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key]\r\n let valid = this.validateForm(val, key);\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n\r\n if (isfrmvalid) {\r\n this.ProductConfService.UpdateProductConfigration(formData).then((res) => {\r\n const resdata = res.data;\r\n if (resdata !== null && resdata.ResponseCode === '200') {\r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n } else if (resdata.ResponseCode === '400') {\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }\r\n }\r\n\r\n // get product ddl list data\r\n GetProductDDL() {\r\n this.ProductService.GetProductsDDL().then(data => {\r\n const resdata = data.data;\r\n if (resdata !== null && resdata.ResponseData !== null && resdata.ResponseData.length > 0) {\r\n const ProductsDDL = resdata.ResponseData;\r\n this.setState({\r\n Products: ProductsDDL\r\n });\r\n } else {\r\n this.setState({\r\n Products: null\r\n });\r\n }\r\n });\r\n }\r\n\r\n brandTemplate(rowData, column) {\r\n var src = rowData.ProductPic;\r\n return {rowData.ProductPic};\r\n }\r\n\r\n actionTemplate(rowData, column) {\r\n\r\n return
      \r\n \r\n
      ;\r\n }\r\n\r\n allcheck(event) {\r\n\r\n let obj = {};\r\n const checkboxes = document.getElementsByName('childCheck');\r\n for (var checkbox of checkboxes) {\r\n let ischeck = false;\r\n if (event.currentTarget.checked == true) {\r\n ischeck = true;\r\n }\r\n\r\n if (ischeck) {\r\n checkbox.checked = true;\r\n obj[checkbox.value] = true;\r\n } else {\r\n checkbox.checked = false;\r\n obj[checkbox.value] = false;\r\n }\r\n }\r\n\r\n this.setState({\r\n ProductConfiguration: JSON.stringify(obj)\r\n })\r\n }\r\n\r\n singleCheck() {\r\n let obj = {};\r\n const checkboxes = document.getElementsByName('childCheck');\r\n for (var checkbox of checkboxes) {\r\n if (checkbox.checked) {\r\n obj[checkbox.value] = true;\r\n } else {\r\n obj[checkbox.value] = false;\r\n }\r\n }\r\n\r\n this.setState({\r\n ProductConfiguration: JSON.stringify(obj)\r\n })\r\n }\r\n //to render html part\r\n render() {\r\n const items = [\r\n { label: 'Masters' },\r\n { label: 'Product Configuration' }\r\n ];\r\n\r\n const home = { icon: 'pi pi-home', url: '/dashboard' }\r\n\r\n let header = (\r\n
      \r\n \r\n\r\n {this.state.formError.ProductId !== null ?\r\n
      {this.state.formError.ProductId}
      : null}\r\n
      \r\n );\r\n\r\n let footer = (\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 checkboxCol = (\r\n
      \r\n Select All\r\n
      \r\n )\r\n\r\n return (\r\n <>\r\n \r\n
      \r\n
      \r\n

      Product Configuration

      \r\n
      \r\n
      \r\n \r\n
      \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 instance from './DefaultApi';\r\n\r\nexport default class MappingReportService {\r\n ControllerName = 'MappingReport';\r\n\r\n // get all data\r\n GetMappingReport(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetMappingReport`, tableRequest).then(res => res)\r\n }\r\n // Get Excel Export Mapping data\r\n GetMappingExport(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetMappingExport`,tableRequest).then(res => res)\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { CSVLink, CSVDownload } from \"react-csv\";\r\nimport { Calendar } from \"primereact/calendar\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport MappingReportService from \"../../services/MappingReportService\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Column } from \"primereact/column\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport $ from \"jquery\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport { SelectButton } from \"primereact/selectbutton\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport { Card } from \"primereact/card\";\r\nexport default class MappingReport extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.surveyLink = React.createRef();\r\n\r\n this.MappingReportService = new MappingReportService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n FromDate: new Date(),\r\n ToDate: new Date(),\r\n success: false,\r\n visible: false,\r\n sortOrder: \"\",\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n updateLoader: false,\r\n emptyMessage: \"No Data found\",\r\n allData: [],\r\n isPreprintedValue: \"Static Qr Mapping\",\r\n isPreprinted: false,\r\n };\r\n this.onPage = this.onPage.bind(this);\r\n this.FilterData = this.FilterData.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.GetMappingExport = this.GetMappingExport.bind(this);\r\n\r\n this.onSort = this.onSort.bind(this);\r\n this.setPreprintedValue = this.setPreprintedValue.bind(this);\r\n }\r\n //to trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n var date = new Date();\r\n date.setDate(date.getDate() - 7);\r\n this.tblResponse.FromDate = date.toLocaleDateString();\r\n this.tblResponse.ToDate = new Date().toLocaleDateString();\r\n this.setState({\r\n FromDate: date,\r\n ToDate: new Date(),\r\n });\r\n this.GetMapping();\r\n //this.GetMappingExport();\r\n }, 1000);\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n\r\n //to search\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetMapping();\r\n }\r\n\r\n onChange = (date) => this.setState({ FromDate: \"\", ToDate: \"\" });\r\n //on page loading\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetMapping();\r\n }, 250);\r\n }\r\n\r\n // get data list from api\r\n GetMappingExport() {\r\n this.MappingReportService.GetMappingExport(this.tblResponse).then(\r\n (data) => {\r\n const resdata = data.data;\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n allData: resdata.ResponseData,\r\n });\r\n this.setState({ allData: resdata.ResponseData }, () => {\r\n this.surveyLink.link.click();\r\n });\r\n }\r\n }\r\n );\r\n }\r\n //to handle\r\n //resolved KREP-22\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"FromDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select from date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (value instanceof Date && this.state.ToDate instanceof Date) {\r\n const startDate = value;\r\n const endDate = this.state.ToDate;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"From date must be less than to date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n case \"ToDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select to date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (\r\n value instanceof Date &&\r\n this.state.FromDate instanceof Date\r\n ) {\r\n const startDate = this.state.FromDate;\r\n const endDate = value;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"To date must be greater than from date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.setState({ [name]: value });\r\n }\r\n //to filter data\r\n FilterData() {\r\n this.tblResponse.FromDate = this.state.FromDate.toLocaleDateString();\r\n this.tblResponse.ToDate = this.state.ToDate.toLocaleDateString();\r\n this.GetMapping();\r\n }\r\n\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = \"1\";\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n this.tblResponse.FromDate = this.state.FromDate;\r\n this.tblResponse.ToDate = this.state.ToDate;\r\n }\r\n\r\n // get data list from api\r\n\r\n GetMapping() {\r\n this.tblResponse.SortColumn = \"CreatedDt\";\r\n this.MappingReportService.GetMappingReport(this.tblResponse).then(\r\n (data) => {\r\n const resdata = data.data;\r\n this.setState({ updateLoader: true });\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n });\r\n }\r\n //if response data null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n }\r\n );\r\n // this.datasource = null;\r\n // this.setState({\r\n // totalRecords: 0,\r\n // first: 1,\r\n // sales: null,\r\n // loading: false\r\n // });\r\n }\r\n //to sort\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField =\r\n event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetMapping();\r\n }\r\n\r\n /// to set isPreprinted\r\n setPreprintedValue(e) {\r\n this.setState(\r\n {\r\n isPreprintedValue: e.value,\r\n isPreprinted: e.value == \"Static Qr Mapping\" ? false : true,\r\n },\r\n () => {\r\n this.tblResponse.isPreprinted = this.state.isPreprinted;\r\n this.GetMapping();\r\n }\r\n );\r\n }\r\n\r\n //to render html part\r\n render() {\r\n const items = [{ label: \"Reports\" }, { label: \"Mapping Reports\" }];\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n const options = [\"Static Qr Mapping\"]; //, 'PrePrinted Qr Mapping'];\r\n let header = (\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n \r\n Submit\r\n \r\n \r\n
      \r\n
      \r\n \r\n \r\n \r\n Export\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

      Mapping Reports

      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n {/* */}\r\n
      \r\n {\r\n this.dt = el;\r\n }}\r\n >\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 instance from './DefaultApi';\r\n\r\nexport default class VerificationReportService {\r\n ControllerName = 'VerificationReport';\r\n\r\n // get all data VerificationReport\r\n GetVerificationReport(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetVerificationReport`, tableRequest).then(res => res)\r\n }\r\n\r\n // Get Verification Export Excel\r\n GetVerificationExport(req) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetVerificationExport`,req).then(res => res)\r\n }\r\n\r\n // To pick n lucky users \r\n PickLuckyUsers(req) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/PickLuckyUsers`,req).then(res => res)\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { CSVLink, CSVDownload } from \"react-csv\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Calendar } from \"primereact/calendar\";\r\nimport VerificationReportService from \"../../services/VerificationReportService\";\r\nimport tableRequest from \"../../models/tableRequest\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Column } from \"primereact/column\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport $ from \"jquery\";\r\nimport { SelectButton } from \"primereact/selectbutton\";\r\nimport Loaders from \"../../template/Loaders\";\r\nexport default class VerificationReport extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.surveyLink = React.createRef();\r\n this.VerificationReportService = new VerificationReportService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n FromDate: new Date(),\r\n ToDate: new Date(),\r\n success: false,\r\n updateLoader: false,\r\n emptyMessage: \"No Data found\",\r\n visible: false,\r\n sortOrder: \"\",\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n allData: [],\r\n isPreprintedValue: \"Static Qr Mapping\",\r\n isPreprinted: false,\r\n };\r\n\r\n this.onPage = this.onPage.bind(this);\r\n this.FilterData = this.FilterData.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n //onChange = date => this.setState({ FromDate,ToDate })\r\n //this.GetVerificationExport = this.GetVerificationExport.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n this.GetReportExport = this.GetReportExport.bind(this);\r\n this.setPreprintedValue = this.setPreprintedValue.bind(this);\r\n }\r\n //to trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n var date = new Date();\r\n date.setDate(date.getDate() - 7);\r\n this.tblResponse.FromDate = date.toLocaleDateString();\r\n this.tblResponse.ToDate = new Date().toLocaleDateString();\r\n this.setState({\r\n FromDate: date,\r\n ToDate: new Date(),\r\n });\r\n this.GetVerification();\r\n // this.GetVerificationExport();\r\n }, 100);\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n\r\n onChange = (date) => this.setState({ FromDate: \"\", ToDate: \"\" });\r\n //on page loading\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n\r\n this.getLazyLoadingValues(event);\r\n this.GetVerification();\r\n }\r\n //to search\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetVerification();\r\n }\r\n //to filter data\r\n FilterData() {\r\n this.tblResponse.FromDate = this.state.FromDate.toLocaleDateString();\r\n this.tblResponse.ToDate = this.state.ToDate.toLocaleDateString();\r\n\r\n this.GetVerification();\r\n }\r\n\r\n // get data list from api\r\n // GetVerificationExport() {\r\n // this.VerificationReportService.GetVerificationExport(this.tblResponse).then(data => {\r\n // const resdata = data.data;\r\n // if (resdata !== null && resdata.ResponseData !== null && resdata.ResponseData.length > 0) {\r\n // this.datasource = resdata.ResponseData;\r\n // this.setState({\r\n // allData: resdata.ResponseData\r\n // });\r\n // } else {\r\n // // this.setState({\r\n // // allData: null\r\n // // });\r\n // }\r\n // });\r\n // }\r\n /// to set isPreprinted\r\n setPreprintedValue() {\r\n let value = null;\r\n this.setState(\r\n {\r\n isPreprintedValue: value,\r\n isPreprinted: value == \"Static Qr Mapping\" ? false : true,\r\n },\r\n () => {\r\n this.tblResponse.isPreprinted = this.state.isPreprinted;\r\n this.GetVerification();\r\n }\r\n );\r\n }\r\n\r\n //to export report data\r\n GetReportExport() {\r\n this.VerificationReportService.GetVerificationExport(this.tblResponse).then(\r\n (data) => {\r\n const resdata = data.data;\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n allData: resdata.ResponseData,\r\n });\r\n this.setState({ allData: resdata.ResponseData }, () => {\r\n this.surveyLink.link.click();\r\n });\r\n }\r\n }\r\n );\r\n }\r\n onChange = (date) => this.setState({ FromDate: \"\", ToDate: \"\" });\r\n\r\n //to handle\r\n //resolved KREP-22\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"FromDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select from date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (value instanceof Date && this.state.ToDate instanceof Date) {\r\n const startDate = value;\r\n const endDate = this.state.ToDate;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"From date must be less than to date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n case \"ToDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select to date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (\r\n value instanceof Date &&\r\n this.state.FromDate instanceof Date\r\n ) {\r\n const startDate = this.state.FromDate;\r\n const endDate = value;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"To date must be greater than from date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.setState({ [name]: value });\r\n }\r\n\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = \"1\";\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n this.tblResponse.FromDate = this.state.FromDate;\r\n this.tblResponse.ToDate = this.state.ToDate;\r\n }\r\n\r\n // get data list from api\r\n GetVerification() {\r\n this.tblResponse.SortColumn = \"VerifiedDt\";\r\n this.tblResponse.isPreprinted = false;\r\n this.VerificationReportService.GetVerificationReport(this.tblResponse).then(\r\n (data) => {\r\n const resdata = data.data;\r\n this.setState({ updateLoader: true });\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n });\r\n }\r\n //if response data null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n }\r\n );\r\n\r\n // this.datasource = null;\r\n // this.setState({\r\n // totalRecords: 0,\r\n // first: 1,\r\n // sales: null,\r\n // loading: false\r\n // });\r\n }\r\n //to sort\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField =\r\n event.sortField == \"VerifiedDt\" ? \"VerifiedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetVerification();\r\n }\r\n\r\n //to render html part\r\n render() {\r\n const options = [\"Static Qr Mapping\"]; //, 'PrePrinted Qr Mapping'];\r\n let header = (\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n \r\n Submit\r\n \r\n \r\n
      \r\n
      \r\n \r\n \r\n {/* */}\r\n {/* Export */}\r\n\r\n \r\n Export\r\n \r\n
      \r\n
      \r\n );\r\n return (\r\n <>\r\n \r\n {}\r\n
      \r\n {/* */}\r\n

      Verification 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 );\r\n }\r\n}\r\n","import instance from './DefaultApi';\r\n\r\nexport default class FeedbackReportService {\r\n ControllerName = 'FeedbackReport';\r\n\r\n // get all data of Feedback Report\r\n GetFeedbackReport(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetFeedbackReport`, tableRequest).then(res => res)\r\n }\r\n\r\n // get Excel export Feedback Report\r\n GetFeedbackExport(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetFeedbackExport`,tableRequest).then(res => res)\r\n }\r\n}","import React, { Component } from 'react';\r\nimport 'primereact/resources/primereact.min.css';\r\nimport 'primeicons/primeicons.css';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { CSVLink, CSVDownload } from \"react-csv\";\r\nimport { Calendar } from 'primereact/calendar';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport FeedbackReportService from '../../services/FeedbackReportService';\r\nimport { Column } from 'primereact/column';\r\nimport tableRequest from '../../models/tableRequest';\r\nimport MessageComponent from '../../template/Message';\r\nimport $ from 'jquery';\r\nimport Loaders from '../../template/Loaders';\r\nimport { SelectButton } from 'primereact/selectbutton';\r\n\r\nexport default class FeedbackReport extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.surveyLink = React.createRef();\r\n this.FeedbackReportService = new FeedbackReportService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n FromDate: new Date(),\r\n ToDate: new Date(),\r\n success: false,\r\n sortOrder: '',\r\n visible: false,\r\n updateLoader: false,\r\n emptyMessage: 'No Data found',\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n allData: [],\r\n isPreprintedValue: \"Static Qr Mapping\",\r\n isPreprinted: false\r\n }\r\n this.onPage = this.onPage.bind(this);\r\n this.FilterData = this.FilterData.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.GetFeedbackExport = this.GetFeedbackExport.bind(this);\r\n\r\n this.onSort = this.onSort.bind(this);\r\n this.setPreprintedValue = this.setPreprintedValue.bind(this);\r\n }\r\n // to trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n var date = new Date();\r\n date.setDate(date.getDate() - 7);\r\n this.tblResponse.FromDate = date.toLocaleDateString();\r\n this.tblResponse.ToDate = new Date().toLocaleDateString();\r\n this.setState({\r\n FromDate: date,\r\n ToDate: new Date()\r\n });\r\n this.GetFeedback();\r\n //this.GetFeedbackExport();\r\n }, 1000);\r\n\r\n $('.p-column-title').on('click', function () {\r\n $(this).next().removeClass('pi-sort').toggleClass('pi-sort-up').addClass('pi-sort-down');\r\n });\r\n }\r\n //to search \r\n searchFilter(e) {\r\n this.setState({\r\n loading: true\r\n });\r\n\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetFeedback();\r\n }\r\n\r\n onChange = date => this.setState({ FromDate: '', ToDate: '' })\r\n //on page loading\r\n onPage(event) {\r\n this.setState({\r\n loading: true\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetFeedback();\r\n }, 250);\r\n }\r\n // call every change of form and validation part also\r\n //resolved KREP-22\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case 'FromDate':\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select from date.\");\r\n return;\r\n }\r\n else if (!(value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n }\r\n else if ((value instanceof Date) && (this.state.ToDate instanceof Date)) {\r\n const startDate = value;\r\n const endDate = this.state.ToDate;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"From date must be less than to date.\");\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n case 'ToDate':\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select to date.\");\r\n return;\r\n }\r\n else if (!(value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n }\r\n else if ((value instanceof Date) && (this.state.FromDate instanceof Date)) {\r\n const startDate = this.state.FromDate;\r\n const endDate = value;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"To date must be greater than from date.\");\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.setState({ [name]: value });\r\n }\r\n //to filter data \r\n FilterData() {\r\n this.tblResponse.FromDate = this.state.FromDate.toLocaleDateString();\r\n this.tblResponse.ToDate = this.state.ToDate.toLocaleDateString();\r\n this.GetFeedback();\r\n }\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = '1';\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? 'ASC' : 'DESC';\r\n this.tblResponse.FromDate = this.state.FromDate;\r\n this.tblResponse.ToDate = this.state.ToDate;\r\n }\r\n\r\n setPreprintedValue(e) {\r\n\r\n this.setState({\r\n isPreprintedValue: e.value,\r\n isPreprinted: e.value == \"Static Qr Mapping\" ? false : true\r\n }, () => {\r\n this.tblResponse.isPreprinted = this.state.isPreprinted;\r\n this.GetFeedback();\r\n });\r\n\r\n\r\n }\r\n // get data list from api\r\n GetFeedbackExport() {\r\n this.FeedbackReportService.GetFeedbackExport(this.tblResponse).then(data => {\r\n const resdata = data.data;\r\n //if response data not null\r\n if (resdata !== null && resdata.ResponseData !== null && resdata.ResponseData.length > 0) {\r\n\r\n this.setState({\r\n allData: resdata.ResponseData\r\n });\r\n this.setState({ allData: resdata.ResponseData }, () => {\r\n this.surveyLink.link.click()\r\n });\r\n }\r\n });\r\n }\r\n // get data list from api\r\n GetFeedback() {\r\n this.tblResponse.SortColumn = 'VerifiedDt';\r\n\r\n this.FeedbackReportService.GetFeedbackReport(this.tblResponse).then(data => {\r\n const resdata = data.data;\r\n this.setState({ updateLoader: true });\r\n //if response data not null\r\n \r\n if (resdata !== null && resdata.ResponseData !== null && resdata.ResponseData.length > 0) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: (this.tblResponse.First - 1),\r\n sales: this.datasource.slice(0, ((this.tblResponse.First - 1) + this.tblResponse.PageSize)),\r\n loading: false\r\n });\r\n }\r\n //if response data null \r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false\r\n });\r\n }\r\n });\r\n }\r\n //to sort\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField = event.sortField == \"VerifiedDt\" ? \"VerifiedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? 'DESC' : 'ASC';\r\n this.GetFeedback();\r\n }\r\n\r\n //to render html part\r\n render() {\r\n // const options = ['Static Qr Mapping'];\r\n let header = (\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \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 \r\n \r\n
      \r\n {/* */}\r\n

      Feedback Report

      \r\n
      \r\n\r\n { this.dt = el; }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}","import instance from './DefaultApi';\r\n\r\nexport default class SAPDataReportService {\r\n ControllerName = 'SAPMaster';\r\n\r\n // get all data of Feedback Report\r\n GetSAPDataReport(tableRequest) {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetSAPDataReport`).then(res => res)\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { CSVLink, CSVDownload } from \"react-csv\";\r\nimport { Calendar } from \"primereact/calendar\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport SAPDataReportService from \"../../services/SAPDataReportService\";\r\nimport { Column } from \"primereact/column\";\r\nimport tableRequest from \"../../models/tableRequest\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport $ from \"jquery\";\r\nimport Loaders from \"../../template/Loaders\";\r\n\r\nexport default class SAPDataReport extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.surveyLink = React.createRef();\r\n this.SAPDataReportService = new SAPDataReportService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n FromDate: new Date(),\r\n ToDate: new Date(),\r\n success: false,\r\n sortOrder: \"\",\r\n visible: false,\r\n updateLoader: false,\r\n emptyMessage: \"No Data found\",\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n allData: [],\r\n isPreprintedValue: \"Static Qr Mapping\",\r\n isPreprinted: false,\r\n };\r\n this.onPage = this.onPage.bind(this);\r\n this.FilterData = this.FilterData.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.GetSAPDataExport = this.GetSAPDataExport.bind(this);\r\n\r\n this.onSort = this.onSort.bind(this);\r\n this.setPreprintedValue = this.setPreprintedValue.bind(this);\r\n }\r\n // to trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n var date = new Date();\r\n date.setDate(date.getDate() - 7);\r\n this.tblResponse.FromDate = date.toLocaleDateString();\r\n this.tblResponse.ToDate = new Date().toLocaleDateString();\r\n this.setState({\r\n FromDate: date,\r\n ToDate: new Date(),\r\n });\r\n this.GetSAPDataReport();\r\n }, 1000);\r\n\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n //to search\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetSAPDataReport();\r\n }\r\n\r\n onChange = (date) => this.setState({ FromDate: \"\", ToDate: \"\" });\r\n //on page loading\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetSAPDataReport();\r\n }, 250);\r\n }\r\n // call every change of form and validation part also\r\n //resolved KREP-22\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"FromDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select from date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (value instanceof Date && this.state.ToDate instanceof Date) {\r\n const startDate = value;\r\n const endDate = this.state.ToDate;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"From date must be less than to date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n case \"ToDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select to date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (\r\n value instanceof Date &&\r\n this.state.FromDate instanceof Date\r\n ) {\r\n const startDate = this.state.FromDate;\r\n const endDate = value;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"To date must be greater than from date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.setState({ [name]: value });\r\n }\r\n //to filter data\r\n FilterData() {\r\n this.tblResponse.FromDate = this.state.FromDate.toLocaleDateString();\r\n this.tblResponse.ToDate = this.state.ToDate.toLocaleDateString();\r\n this.GetSAPDataReport();\r\n }\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = \"1\";\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n this.tblResponse.FromDate = this.state.FromDate;\r\n this.tblResponse.ToDate = this.state.ToDate;\r\n }\r\n\r\n setPreprintedValue(e) {\r\n this.setState(\r\n {\r\n isPreprintedValue: e.value,\r\n isPreprinted: e.value == \"Static Qr Mapping\" ? false : true,\r\n },\r\n () => {\r\n this.tblResponse.isPreprinted = this.state.isPreprinted;\r\n this.GetSAPDataReport();\r\n }\r\n );\r\n }\r\n // get data list from api\r\n GetSAPDataExport() {\r\n this.SAPDataReportService.GetSAPDataReport().then(\r\n (data) => {\r\n const resdata = data.data;\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n allData: resdata.ResponseData,\r\n });\r\n this.setState({ allData: resdata.ResponseData }, () => {\r\n this.surveyLink.link.click();\r\n });\r\n }\r\n }\r\n );\r\n }\r\n // get data list from api\r\n GetSAPDataReport() {\r\n this.tblResponse.SortColumn = \"VerifiedDt\";\r\n this.SAPDataReportService.GetSAPDataReport().then(\r\n (data) => {\r\n const resdata = data.data;\r\n this.setState({ updateLoader: true });\r\n //if response data not null\r\n ;\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n });\r\n }\r\n //if response data null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n }\r\n );\r\n }\r\n //to sort\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField =\r\n event.sortField == \"VerifiedDt\" ? \"VerifiedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetSAPDataReport();\r\n }\r\n\r\n //to render html part\r\n render() {\r\n // const options = ['Static Qr Mapping'];\r\n let header = (\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n\r\n \r\n Export\r\n \r\n
      \r\n
      \r\n );\r\n return (\r\n <>\r\n \r\n \r\n
      \r\n {/* */}\r\n

      SAP Data Report

      \r\n
      \r\n\r\n {\r\n this.dt = el;\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import instance from './DefaultApi';\r\n\r\nexport default class DispatchReportService {\r\n ControllerName = 'DispatchReport';\r\n\r\n // get all data\r\n GetDispatchReport(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetDispatchReport`, tableRequest).then(res => res)\r\n }\r\n //get export for Dispatch report\r\n GetReportExportDispatch(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetReportExportDispatch`, tableRequest).then(res => res)\r\n }\r\n GetDispatchRecReport(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetDispatchRecReport`, tableRequest).then(res => res)\r\n } \r\n GetDamageReport(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetDamageReport`, tableRequest).then(res => res)\r\n }\r\n //get export for Dispatch report\r\n\r\n GetReportFrac(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetFractionalReport`, tableRequest).then(res => res)\r\n }\r\n //To Print Dispatch detail\r\n GetDispatchToPrint(d) {\r\n \r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetDispatchToPrint`, d).then(res => res)\r\n }\r\n\r\n}","import React, { Component } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { CSVLink, CSVDownload } from \"react-csv\";\r\nimport { Calendar } from \"primereact/calendar\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport DispatchReportService from \"../../services/DispatchReportService\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Column } from \"primereact/column\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport $ from \"jquery\";\r\nimport PrintDispatchService from \"../../services/PrintDispatchService\";\r\nimport { Button } from \"primereact/button\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport { Card } from \"primereact/card\";\r\nexport default class DispatchReport extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.DispatchReportService = new DispatchReportService();\r\n this.PrintDispatchService = new PrintDispatchService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n FromDate: new Date(),\r\n ToDate: new Date(),\r\n success: false,\r\n updateLoader: false,\r\n visible: false,\r\n sortOrder: \"Desc\",\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n allData: [],\r\n };\r\n\r\n this.onPage = this.onPage.bind(this);\r\n this.FilterData = this.FilterData.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n this.GetReportExport = this.GetReportExport.bind(this);\r\n }\r\n //to trigger api function o page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n var date = new Date();\r\n date.setDate(date.getDate() - 7);\r\n this.tblResponse.FromDate = date.toLocaleDateString();\r\n this.tblResponse.ToDate = new Date().toLocaleDateString();\r\n this.setState({\r\n FromDate: date,\r\n ToDate: new Date(),\r\n });\r\n this.GetDispatch();\r\n }, 1000);\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n //to search data\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetDispatch();\r\n }\r\n\r\n onChange = (date) => this.setState({ FromDate: \"\", ToDate: \"\" });\r\n //to export report data\r\n GetReportExport() {\r\n this.DispatchReportService.GetReportExportDispatch(this.tblResponse).then(\r\n (data) => {\r\n const resdata = data.data;\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n allData: resdata.ResponseData,\r\n });\r\n this.setState({ allData: resdata.ResponseData }, () => {\r\n this.surveyLink.link.click();\r\n });\r\n }\r\n }\r\n );\r\n }\r\n //on page loading\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetDispatch();\r\n }, 250);\r\n }\r\n\r\n // call every change of form and validation part also\r\n\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"FromDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select from date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (value instanceof Date && this.state.ToDate instanceof Date) {\r\n const startDate = value;\r\n const endDate = this.state.ToDate;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"From date must be less than to date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n case \"ToDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select to date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (\r\n value instanceof Date &&\r\n this.state.FromDate instanceof Date\r\n ) {\r\n const startDate = this.state.FromDate;\r\n const endDate = value;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"To date must be greater than from date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.setState({ [name]: value });\r\n }\r\n\r\n //to filter data\r\n FilterData() {\r\n this.tblResponse.FromDate = this.state.FromDate.toLocaleDateString();\r\n this.tblResponse.ToDate = this.state.ToDate.toLocaleDateString();\r\n this.GetDispatch();\r\n }\r\n\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = \"1\";\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n this.tblResponse.FromDate = this.state.FromDate;\r\n this.tblResponse.ToDate = this.state.ToDate;\r\n }\r\n //to get dispatch data\r\n GetDispatch() {\r\n this.tblResponse.SortColumn = \"CartonId\";\r\n\r\n this.DispatchReportService.GetDispatchReport(this.tblResponse).then(\r\n (data) => {\r\n const resdata = data.data;\r\n this.setState({ updateLoader: true });\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n });\r\n }\r\n //if response data null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n }\r\n );\r\n // this.datasource = null;\r\n // this.setState({\r\n // totalRecords: 0,\r\n // first: 1,\r\n // sales: null,\r\n // loading: false\r\n // });\r\n }\r\n //for sorting\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField =\r\n event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetDispatch();\r\n }\r\n actionTemplate(rowData, column) {\r\n //to print\r\n const editMode = (e) => {\r\n this.DispatchReportService.GetDispatchToPrint(rowData).then((data) => {\r\n var options = {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\",\r\n };\r\n const resdata = data.data;\r\n this.PrintDispatchService.Printpdf(\r\n resdata.ResponseData,\r\n new Date(rowData.CreatedDt).toLocaleDateString(\"en-US\", options)\r\n );\r\n });\r\n\r\n ////PRINT SLIP\r\n };\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n //to render html part\r\n render() {\r\n const items = [{ label: \"Reports\" }, { label: \">Dispatch Report\" }];\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n let header = (\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n \r\n Submit\r\n \r\n \r\n
      \r\n
      \r\n \r\n \r\n {/* Export */}\r\n\r\n \r\n Export\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

      Dispatch Report

      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n\r\n {\r\n this.dt = el;\r\n }}\r\n >\r\n \r\n {/* */}\r\n \r\n {/* fromUserName */}\r\n\r\n {/* */}\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 'primereact/resources/themes/saga-blue/theme.css';\r\nimport 'primereact/resources/primereact.min.css';\r\nimport 'primeicons/primeicons.css';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { CSVLink, CSVDownload } from \"react-csv\";\r\nimport { Calendar } from 'primereact/calendar';\r\nimport tableRequest from '../../models/tableRequest.js';\r\nimport MappingReportService from '../../services/MappingReportService';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { Column } from 'primereact/column';\r\nimport MessageComponent from '../../template/Message';\r\nimport $ from 'jquery';\r\n\r\nexport default class PrimaryPackingReport extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.MappingReportService = new MappingReportService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n FromDate: new Date(),\r\n ToDate: new Date(),\r\n success: false,\r\n visible: false,\r\n sortOrder:'',\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 5,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: 'No Data found',\r\n allData: []\r\n\r\n }\r\n this.onPage = this.onPage.bind(this);\r\n this.FilterData = this.FilterData.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n\r\n this.onSort = this.onSort.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n setTimeout(() => {\r\n var date = new Date();\r\n date.setDate(date.getDate() - 7);\r\n this.tblResponse.FromDate = date.toLocaleDateString();\r\n this.tblResponse.ToDate = new Date().toLocaleDateString();\r\n this.setState({\r\n FromDate: date,\r\n ToDate: new Date()\r\n });\r\n this.GetMapping();\r\n this.GetMappingExport();\r\n }, 1000);\r\n $('.p-column-title').on('click', function(){\r\n $(this).next().removeClass('pi-sort').toggleClass('pi-sort-up').addClass('pi-sort-down');\r\n });\r\n }\r\n\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetMapping();\r\n }\r\n\r\n onChange = date => this.setState({ FromDate: '', ToDate: '' })\r\n\r\n onPage(event) {\r\n this.setState({\r\n loading: true\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetMapping();\r\n }, 250);\r\n }\r\n\r\n // get data list from api\r\n GetMappingExport() {\r\n this.MappingReportService.GetMappingExport(this.tblResponse).then(data => {\r\n const resdata = data.data;\r\n if (resdata !== null && resdata.ResponseData !== null && resdata.ResponseData.length > 0) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n allData: resdata.ResponseData\r\n });\r\n } else {\r\n // this.setState({\r\n // allData: null\r\n // });\r\n }\r\n });\r\n }\r\n\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n switch (name) {\r\n case 'FromDate':\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select from date.\");\r\n return;\r\n }\r\n else if (!(value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n }\r\n else if ((value instanceof Date) && (this.state.ToDate instanceof Date)) {\r\n const startDate = value;\r\n const endDate = this.state.ToDate;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"From date must be less than to date.\");\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n case 'ToDate':\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select to date.\");\r\n return;\r\n }\r\n else if (!(value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n }\r\n else if ((value instanceof Date) && (this.state.FromDate instanceof Date)) {\r\n const startDate = this.state.FromDate;\r\n const endDate = value;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"To date must be greater than from date.\");\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.setState({ [name]: value });\r\n }\r\n\r\n FilterData() {\r\n this.tblResponse.FromDate = this.state.FromDate.toLocaleDateString();\r\n this.tblResponse.ToDate = this.state.ToDate.toLocaleDateString();\r\n this.GetMapping();\r\n }\r\n\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = '1';\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? 'ASC' : 'DESC';\r\n this.tblResponse.FromDate = this.state.FromDate;\r\n this.tblResponse.ToDate = this.state.ToDate;\r\n }\r\n // get data list from api\r\n\r\n GetMapping() {\r\n this.MappingReportService.GetMappingReport(this.tblResponse).then(data => {\r\n const resdata = data.data;\r\n if (resdata !== null && resdata.ResponseData !== null && resdata.ResponseData.length > 0) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: (this.tblResponse.First - 1),\r\n sales: this.datasource.slice(0, ((this.tblResponse.First - 1) + this.tblResponse.PageSize)),\r\n loading: false\r\n });\r\n } else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false\r\n });\r\n }\r\n });\r\n // this.datasource = null;\r\n // this.setState({\r\n // totalRecords: 0,\r\n // first: 1,\r\n // sales: null,\r\n // loading: false\r\n // });\r\n }\r\n\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField = event.sortField == \"CreatedDate\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? 'DESC' : 'ASC';\r\n this.GetMapping();\r\n }\r\n//to render html part\r\n render() {\r\n\r\n let header = (\r\n
      \r\n
      \r\n
      \r\n
      \r\n \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\r\n
      \r\n
      \r\n );\r\n return (\r\n <>\r\n \r\n
      \r\n

      Primary Packing Report

      \r\n
      \r\n { this.dt = el; }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}","import instance from './DefaultApi';\r\n\r\nexport default class SecondaryReportService {\r\n ControllerName = 'SecondaryReport';\r\n\r\n // get all data\r\n GetSecondaryReport(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetSecondaryReport`, tableRequest).then(res => res)\r\n }\r\n\r\n //get export for report\r\n GetReportExport(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetReportExport`, tableRequest).then(res => res)\r\n }\r\n\r\n}","import React, { Component } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { CSVLink, CSVDownload } from \"react-csv\";\r\nimport { Calendar } from \"primereact/calendar\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport SecondaryReportService from \"../../services/SecondaryReportService\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Column } from \"primereact/column\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport $ from \"jquery\";\r\nimport { Button } from \"primereact/button\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport { Card } from \"primereact/card\";\r\nimport PrintSecondaryPackagingService from \"../../services/PrintSecondaryPackagingService\";\r\nexport default class SecondaryPackingReport extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.surveyLink = React.createRef();\r\n this.SecondaryReportService = new SecondaryReportService();\r\n this.PrintSecondaryPackagingService = new PrintSecondaryPackagingService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n FromDate: new Date(),\r\n ToDate: new Date(),\r\n success: false,\r\n updateLoader: false,\r\n visible: false,\r\n sortOrder: \"\",\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n allData: [],\r\n };\r\n this.onPage = this.onPage.bind(this);\r\n this.FilterData = this.FilterData.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.GetReportExport = this.GetReportExport.bind(this);\r\n }\r\n //to trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n var date = new Date();\r\n date.setDate(date.getDate() - 7);\r\n this.tblResponse.FromDate = date.toLocaleDateString();\r\n this.tblResponse.ToDate = new Date().toLocaleDateString();\r\n this.setState({\r\n FromDate: date,\r\n ToDate: new Date(),\r\n });\r\n this.GetSecondary();\r\n }, 1000);\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n //to search\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetSecondary();\r\n }\r\n //to export report data\r\n GetReportExport() {\r\n this.SecondaryReportService.GetReportExport(this.tblResponse).then(\r\n (data) => {\r\n const resdata = data.data;\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n allData: resdata.ResponseData,\r\n });\r\n this.setState({ allData: resdata.ResponseData }, () => {\r\n this.surveyLink.link.click();\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n onChange = (date) => this.setState({ FromDate: \"\", ToDate: \"\" });\r\n //on page loading\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetSecondary();\r\n }, 250);\r\n }\r\n\r\n //to handle\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"FromDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select from date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (value instanceof Date && this.state.ToDate instanceof Date) {\r\n const startDate = value;\r\n const endDate = this.state.ToDate;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"From date must be less than to date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n case \"ToDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select to date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (\r\n value instanceof Date &&\r\n this.state.FromDate instanceof Date\r\n ) {\r\n const startDate = this.state.FromDate;\r\n const endDate = value;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"To date must be greater than from date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.setState({ [name]: value });\r\n }\r\n //to filter data\r\n FilterData() {\r\n this.tblResponse.FromDate = this.state.FromDate.toLocaleDateString();\r\n this.tblResponse.ToDate = this.state.ToDate.toLocaleDateString();\r\n this.GetSecondary();\r\n }\r\n\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = \"1\";\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n this.tblResponse.FromDate = this.state.FromDate;\r\n this.tblResponse.ToDate = this.state.ToDate;\r\n }\r\n //to get secondary data\r\n GetSecondary(isExport) {\r\n this.tblResponse.SortColumn = \"CartonId\";\r\n this.SecondaryReportService.GetSecondaryReport(this.tblResponse).then(\r\n (data) => {\r\n const resdata = data.data;\r\n this.setState({ updateLoader: true });\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n });\r\n\r\n if (isExport) {\r\n this.setState({\r\n allData: resdata.ResponseData,\r\n });\r\n\r\n this.setState({ allData: resdata.ResponseData }, () => {\r\n this.surveyLink.link.click();\r\n });\r\n }\r\n }\r\n //if response data null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n }\r\n );\r\n // this.datasource = null;\r\n // this.setState({\r\n // totalRecords: 0,\r\n // first: 1,\r\n // sales: null,\r\n // loading: false\r\n // });\r\n }\r\n //to sort\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField =\r\n event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetSecondary();\r\n }\r\n\r\n actionTemplate(rowData, column) {\r\n const editMode = (e) => {\r\n this.PrintSecondaryPackagingService.formPreview1([rowData]);\r\n ////PRINT SLIP\r\n };\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n //to render html part\r\n render() {\r\n const items = [{ label: \"Reports\" }, { label: \"Secondary Packing Report\" }];\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n let header = (\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n \r\n Submit\r\n \r\n \r\n
      \r\n
      \r\n \r\n \r\n\r\n \r\n Export\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

      Secondary Packing Report

      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n\r\n {\r\n this.dt = el;\r\n }}\r\n >\r\n \r\n \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 instance from './DefaultApi';\r\n\r\nexport default class TertiaryReportService {\r\n ControllerName = 'TertiaryReport';\r\n\r\n // get all data\r\n GetTertiaryReport(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetTertiaryReport`, tableRequest).then(res => res)\r\n }\r\n //get export for report\r\n GetReportExport(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetReportExport`, tableRequest).then(res => res)\r\n }\r\n\r\n\r\n\r\n}","import React, { Component } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { CSVLink, CSVDownload } from \"react-csv\";\r\nimport { Calendar } from \"primereact/calendar\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport TertiaryReportService from \"../../services/TertiaryReportService\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Column } from \"primereact/column\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport $ from \"jquery\";\r\nimport PrintSecondaryPackagingService from \"../../services/PrintSecondaryPackagingService\";\r\nimport { Button } from \"primereact/button\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport { Card } from \"primereact/card\";\r\nexport default class TertiaryPackingReport extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.TertiaryReportService = new TertiaryReportService();\r\n this.PrintSecondaryPackagingService = new PrintSecondaryPackagingService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n FromDate: new Date(),\r\n ToDate: new Date(),\r\n success: false,\r\n updateLoader: false,\r\n visible: false,\r\n sortOrder: \"\",\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n allData: [],\r\n };\r\n this.onPage = this.onPage.bind(this);\r\n this.FilterData = this.FilterData.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n this.GetReportExport = this.GetReportExport.bind(this);\r\n }\r\n //to trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n var date = new Date();\r\n date.setDate(date.getDate() - 7);\r\n this.tblResponse.FromDate = date.toLocaleDateString();\r\n this.tblResponse.ToDate = new Date().toLocaleDateString();\r\n this.setState({\r\n FromDate: date,\r\n ToDate: new Date(),\r\n });\r\n this.GetTertiary();\r\n }, 1000);\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n //to search\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetTertiary();\r\n }\r\n\r\n onChange = (date) => this.setState({ FromDate: \"\", ToDate: \"\" });\r\n //to export report data\r\n GetReportExport() {\r\n this.TertiaryReportService.GetReportExport(this.tblResponse).then(\r\n (data) => {\r\n const resdata = data.data;\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n allData: resdata.ResponseData,\r\n });\r\n this.setState({ allData: resdata.ResponseData }, () => {\r\n this.surveyLink.link.click();\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n //on page loading\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetTertiary();\r\n }, 250);\r\n }\r\n\r\n //to handle\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n //to validate each from field with required conditions\r\n switch (name) {\r\n case \"FromDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select from date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (value instanceof Date && this.state.ToDate instanceof Date) {\r\n const startDate = value;\r\n const endDate = this.state.ToDate;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"From date must be less than to date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n case \"ToDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select to date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (\r\n value instanceof Date &&\r\n this.state.FromDate instanceof Date\r\n ) {\r\n const startDate = this.state.FromDate;\r\n const endDate = value;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"To date must be greater than from date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.setState({ [name]: value });\r\n }\r\n //to filter data\r\n FilterData() {\r\n this.tblResponse.FromDate = this.state.FromDate.toLocaleDateString();\r\n this.tblResponse.ToDate = this.state.ToDate.toLocaleDateString();\r\n this.GetTertiary();\r\n }\r\n\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = \"1\";\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n this.tblResponse.FromDate = this.state.FromDate;\r\n this.tblResponse.ToDate = this.state.ToDate;\r\n }\r\n // get data list from api\r\n\r\n GetTertiary() {\r\n this.tblResponse.SortColumn = \"CartonId\";\r\n this.TertiaryReportService.GetTertiaryReport(this.tblResponse).then(\r\n (data) => {\r\n const resdata = data.data;\r\n this.setState({ updateLoader: true });\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n });\r\n }\r\n //if response data null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n }\r\n );\r\n // this.datasource = null;\r\n // this.setState({\r\n // totalRecords: 0,\r\n // first: 1,\r\n // sales: null,\r\n // loading: false\r\n // });\r\n }\r\n //to sort\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField =\r\n event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetTertiary();\r\n }\r\n actionTemplate(rowData, column) {\r\n const editMode = (e) => {\r\n this.PrintSecondaryPackagingService.formPreview1([rowData]);\r\n ////PRINT SLIP\r\n };\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n //to render html part\r\n render() {\r\n const items = [{ label: \"Reports\" }, { label: \"Tertiary Packing Report\" }];\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n const options = [\"Static Qr Mapping\", \"PrePrinted Qr Mapping\"];\r\n let header = (\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n \r\n Submit\r\n \r\n \r\n
      \r\n
      \r\n \r\n \r\n\r\n \r\n Export\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

      Tertiary Packing Report

      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n\r\n {\r\n this.dt = el;\r\n }}\r\n >\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 instance from './DefaultApi';\r\n\r\nexport default class ItemLedgerReportService {\r\n ControllerName = 'ItemLedgerReport';\r\n\r\n // get all data\r\n GetReport(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetReport`, tableRequest).then(res => res)\r\n }\r\n // get stock report\r\n GetStockReport(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetStockReport`, tableRequest).then(res => res)\r\n }\r\n\r\n GetNewStockReport(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetNewStockReport`, tableRequest).then(res => res)\r\n }\r\n\r\n // Get Excel Export Mapping data\r\n GetExport(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetExport`, tableRequest).then(res => res)\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { CSVLink, CSVDownload } from \"react-csv\";\r\nimport { Calendar } from \"primereact/calendar\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport UserService from \"../../services/UserService\";\r\nimport ItemLedgerReportService from \"../../services/ItemLedgerReportService\";\r\nimport WareHouseMaterService from \"../../services/WareHouseMaterService\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Column } from \"primereact/column\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport $ from \"jquery\";\r\n\r\nexport default class ItemLedger extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.surveyLink = React.createRef();\r\n this.UserService = new UserService();\r\n this.WareHouseMaterService = new WareHouseMaterService();\r\n this.ItemLedgerReportService = new ItemLedgerReportService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n WareHouseId: \"\",\r\n ddid: \"\",\r\n FromDate: new Date(),\r\n ToDate: new Date(),\r\n SendTo: \"\",\r\n updateLoader: false,\r\n success: false,\r\n visible: false,\r\n sortOrder: \"\",\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n allData: [],\r\n wareHouseDDL: [],\r\n UserDDL: [],\r\n };\r\n this.onPage = this.onPage.bind(this);\r\n this.FilterData = this.FilterData.bind(this);\r\n this.GetReportExport = this.GetReportExport.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n\r\n this.onSort = this.onSort.bind(this);\r\n }\r\n //to trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n var date = new Date();\r\n date.setDate(date.getDate() - 7);\r\n this.tblResponse.FromDate = date.toLocaleDateString();\r\n this.tblResponse.ToDate = new Date().toLocaleDateString();\r\n this.setState({\r\n FromDate: date,\r\n ToDate: new Date(),\r\n });\r\n this.GetReport();\r\n this.GetWareHouse(0);\r\n this.GetActiveUsers();\r\n // this.GetReportExport();\r\n }, 1000);\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n //to search\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetReport();\r\n }\r\n\r\n onChange = (date) => this.setState({ FromDate: \"\", ToDate: \"\" });\r\n //on page loading\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetReport();\r\n }, 250);\r\n }\r\n\r\n // get data list from api\r\n GetReportExport() {\r\n this.tblResponse.FromDate = this.state.FromDate.toLocaleDateString();\r\n this.tblResponse.ToDate = this.state.ToDate.toLocaleDateString();\r\n\r\n //if WareHouseId is provided\r\n if (this.state.WareHouseId)\r\n this.tblResponse.WareHouseId = this.state.WareHouseId.ID;\r\n else this.tblResponse.WareHouseId = 0;\r\n //if UserId is provided\r\n if (this.state.ddid) this.tblResponse.UserId = this.state.ddid.UserId;\r\n else this.tblResponse.UserId = 0;\r\n\r\n this.ItemLedgerReportService.GetExport(this.tblResponse).then((data) => {\r\n const resdata = data.data;\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n allData: resdata.ResponseData,\r\n });\r\n\r\n this.setState({ allData: resdata.ResponseData }, () => {\r\n this.surveyLink.link.click();\r\n });\r\n } else {\r\n // this.setState({\r\n // allData: null\r\n // });\r\n }\r\n });\r\n }\r\n\r\n // get data list from api\r\n GetWareHouse(compId) {\r\n this.WareHouseMaterService.GetWareHouseDDL(compId).then((data) => {\r\n const resdata = data.data;\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n //const filteredWareHouse = resdata.ResponseData.filter(x=>x.ID != this.ApiService.getWareHouseId())\r\n\r\n this.setState({\r\n wareHouseDDL: resdata.ResponseData,\r\n });\r\n }\r\n });\r\n }\r\n //to get active users\r\n GetActiveUsers() {\r\n this.UserService.GetAllActiveUsers().then((data) => {\r\n const resdata = data.data;\r\n //if response data not null\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.setState({\r\n UserDDL: resdata.ResponseData,\r\n });\r\n }\r\n });\r\n }\r\n //to handle change\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n //to validate each form field with required conditons\r\n switch (name) {\r\n case \"FromDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select from date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (value instanceof Date && this.state.ToDate instanceof Date) {\r\n const startDate = value;\r\n const endDate = this.state.ToDate;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"From date must be less than to date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n case \"ToDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select to date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (\r\n value instanceof Date &&\r\n this.state.FromDate instanceof Date\r\n ) {\r\n const startDate = this.state.FromDate;\r\n const endDate = value;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"To date must be greater than from date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.setState({ [name]: value });\r\n }\r\n //to filter data\r\n FilterData() {\r\n this.tblResponse.FromDate = this.state.FromDate.toLocaleDateString();\r\n this.tblResponse.ToDate = this.state.ToDate.toLocaleDateString();\r\n\r\n this.GetReport();\r\n }\r\n\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = \"1\";\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n this.tblResponse.FromDate = this.state.FromDate;\r\n this.tblResponse.ToDate = this.state.ToDate;\r\n }\r\n\r\n //to get report data\r\n\r\n GetReport() {\r\n //if WareHouseId is provided\r\n if (this.state.WareHouseId)\r\n this.tblResponse.WareHouseId = this.state.WareHouseId.ID;\r\n else this.tblResponse.WareHouseId = 0;\r\n //if UserId is provided\r\n if (this.state.ddid) this.tblResponse.UserId = this.state.ddid.UserId;\r\n else this.tblResponse.UserId = 0;\r\n\r\n this.tblResponse.SortColumn = \"CreatedDt\";\r\n\r\n this.ItemLedgerReportService.GetReport(this.tblResponse).then((data) => {\r\n const resdata = data.data;\r\n this.setState({ updateLoader: true });\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n });\r\n }\r\n //if response data null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n });\r\n // this.datasource = null;\r\n // this.setState({\r\n // totalRecords: 0,\r\n // first: 1,\r\n // sales: null,\r\n // loading: false\r\n // });\r\n }\r\n\r\n //to sort\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField =\r\n event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetReport();\r\n }\r\n //to render html part\r\n //resolved KREP-140\r\n render() {\r\n let header = (\r\n
      \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\r\n \r\n Submit\r\n \r\n \r\n
      \r\n
      \r\n \r\n \r\n\r\n \r\n Export\r\n \r\n
      \r\n
      \r\n );\r\n return (\r\n <>\r\n \r\n {}\r\n
      \r\n

      Item ledger Reports

      \r\n
      \r\n {\r\n this.dt = el;\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \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 instance from './DefaultApi';\r\n\r\nexport default class SchemeReportService {\r\n ControllerName = 'SchemeReport';\r\n\r\n // get all data list Scheme Report\r\n GetSchemeReport(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetSchemeReport`, tableRequest).then(res => res)\r\n }\r\n\r\n // Excel Scheme Export\r\n GetSchemeExport(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetSchemeExport`,tableRequest).then(res => res)\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { CSVLink, CSVDownload } from \"react-csv\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Calendar } from \"primereact/calendar\";\r\nimport SchemeReportService from \"../../services/SchemeReportService\";\r\nimport tableRequest from \"../../models/tableRequest\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Column } from \"primereact/column\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport $ from \"jquery\";\r\n\r\nexport default class SchemeReport extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.surveyLink = React.createRef();\r\n\r\n this.SchemeReportService = new SchemeReportService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n FromDate: new Date(),\r\n ToDate: new Date(),\r\n success: false,\r\n updateLoader: false,\r\n emptyMessage: \"No Data found\",\r\n visible: false,\r\n sortOrder: \"\",\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n allData: [],\r\n };\r\n\r\n this.onPage = this.onPage.bind(this);\r\n this.FilterData = this.FilterData.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n //onChange = date => this.setState({ FromDate,ToDate })\r\n this.GetSchemeExport = this.GetSchemeExport.bind(this);\r\n\r\n this.onSort = this.onSort.bind(this);\r\n }\r\n //to trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n var date = new Date();\r\n date.setDate(date.getDate() - 7);\r\n this.tblResponse.FromDate = date.toLocaleDateString();\r\n this.tblResponse.ToDate = new Date().toLocaleDateString();\r\n this.setState({\r\n FromDate: date,\r\n ToDate: new Date(),\r\n });\r\n this.GetScheme();\r\n //this.GetSchemeExport();\r\n }, 1000);\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n\r\n onChange = (date) => this.setState({ FromDate: \"\", ToDate: \"\" });\r\n //on page loading\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetScheme();\r\n }, 250);\r\n }\r\n //to search\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetScheme();\r\n }\r\n //to filter data\r\n FilterData() {\r\n this.tblResponse.FromDate = this.state.FromDate.toLocaleDateString();\r\n this.tblResponse.ToDate = this.state.ToDate.toLocaleDateString();\r\n this.GetScheme();\r\n }\r\n\r\n // get data list from api\r\n GetSchemeExport() {\r\n this.SchemeReportService.GetSchemeExport(this.tblResponse).then((data) => {\r\n const resdata = data.data;\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n allData: resdata.ResponseData,\r\n });\r\n this.setState({ allData: resdata.ResponseData }, () => {\r\n this.surveyLink.link.click();\r\n });\r\n }\r\n });\r\n }\r\n //to handle\r\n //resolved KREP-22\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"FromDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select from date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (value instanceof Date && this.state.ToDate instanceof Date) {\r\n const startDate = value;\r\n const endDate = this.state.ToDate;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"From date must be less than to date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n case \"ToDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select to date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (\r\n value instanceof Date &&\r\n this.state.FromDate instanceof Date\r\n ) {\r\n const startDate = this.state.FromDate;\r\n const endDate = value;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"To date must be greater than from date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.setState({ [name]: value });\r\n }\r\n\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = \"1\";\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n this.tblResponse.FromDate = this.state.FromDate;\r\n this.tblResponse.ToDate = this.state.ToDate;\r\n }\r\n\r\n // get data list from api\r\n GetScheme() {\r\n this.tblResponse.SortColumn = \"CreatedDt\";\r\n this.SchemeReportService.GetSchemeReport(this.tblResponse).then((data) => {\r\n const resdata = data.data;\r\n this.setState({ updateLoader: true });\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n });\r\n }\r\n //if response data null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n });\r\n\r\n // this.datasource = null;\r\n // this.setState({\r\n // totalRecords: 0,\r\n // first: 1,\r\n // sales: null,\r\n // loading: false\r\n // });\r\n }\r\n //to sort\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField =\r\n event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetScheme();\r\n }\r\n\r\n //to render html part\r\n render() {\r\n let header = (\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n \r\n Submit\r\n \r\n \r\n
      \r\n
      \r\n \r\n \r\n \r\n Export\r\n \r\n
      \r\n
      \r\n );\r\n return (\r\n <>\r\n \r\n {}\r\n
      \r\n

      Scheme 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}\r\n","import React, { Component } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { CSVLink, CSVDownload } from \"react-csv\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Calendar } from \"primereact/calendar\";\r\nimport RedemptionReportService from \"../../services/RedemptionReportService\";\r\nimport tableRequest from \"../../models/tableRequest\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Column } from \"primereact/column\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport $ from \"jquery\";\r\n\r\nexport default class RedemptionReport extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.surveyLink = React.createRef();\r\n this.RedemptionReportService = new RedemptionReportService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n FromDate: new Date(),\r\n ToDate: new Date(),\r\n success: false,\r\n updateLoader: false,\r\n emptyMessage: \"No Data found\",\r\n visible: false,\r\n sortOrder: \"\",\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n allData: [],\r\n };\r\n\r\n this.onPage = this.onPage.bind(this);\r\n this.FilterData = this.FilterData.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n //onChange = date => this.setState({ FromDate,ToDate })\r\n this.GetRedemptionExport = this.GetRedemptionExport.bind(this);\r\n\r\n this.onSort = this.onSort.bind(this);\r\n }\r\n //to trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n var date = new Date();\r\n date.setDate(date.getDate() - 7);\r\n this.tblResponse.FromDate = date.toLocaleDateString();\r\n this.tblResponse.ToDate = new Date().toLocaleDateString();\r\n this.setState({\r\n FromDate: date,\r\n ToDate: new Date(),\r\n });\r\n this.GetRedemption();\r\n //this.GetRedemptionExport();\r\n }, 1000);\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n\r\n onChange = (date) => this.setState({ FromDate: \"\", ToDate: \"\" });\r\n //on page loading\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetRedemption();\r\n }, 250);\r\n }\r\n //to search\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetRedemption();\r\n }\r\n //to filter data\r\n FilterData() {\r\n this.tblResponse.FromDate = this.state.FromDate.toLocaleDateString();\r\n this.tblResponse.ToDate = this.state.ToDate.toLocaleDateString();\r\n this.GetRedemption();\r\n }\r\n\r\n // get data list from api\r\n GetRedemptionExport() {\r\n this.RedemptionReportService.GetRedemptionExport(this.tblResponse).then(\r\n (data) => {\r\n const resdata = data.data;\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n allData: resdata.ResponseData,\r\n });\r\n this.setState({ allData: resdata.ResponseData }, () => {\r\n this.surveyLink.link.click();\r\n });\r\n }\r\n }\r\n );\r\n }\r\n //to handle\r\n //resolved KREP-22\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"FromDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select from date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (value instanceof Date && this.state.ToDate instanceof Date) {\r\n const startDate = value;\r\n const endDate = this.state.ToDate;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"From date must be less than to date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n case \"ToDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select to date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (\r\n value instanceof Date &&\r\n this.state.FromDate instanceof Date\r\n ) {\r\n const startDate = this.state.FromDate;\r\n const endDate = value;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"To date must be greater than from date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.setState({ [name]: value });\r\n }\r\n\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = \"1\";\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n this.tblResponse.FromDate = this.state.FromDate;\r\n this.tblResponse.ToDate = this.state.ToDate;\r\n }\r\n\r\n // get data list from api\r\n GetRedemption() {\r\n this.tblResponse.SortColumn = \"CreatedDt\";\r\n this.RedemptionReportService.GetRedemptionReport(this.tblResponse).then(\r\n (data) => {\r\n const resdata = data.data;\r\n this.setState({ updateLoader: true });\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n });\r\n }\r\n //if response data null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n }\r\n );\r\n\r\n // this.datasource = null;\r\n // this.setState({\r\n // totalRecords: 0,\r\n // first: 1,\r\n // sales: null,\r\n // loading: false\r\n // });\r\n }\r\n //to sort\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField =\r\n event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetRedemption();\r\n }\r\n //to render html part\r\n //resolved KREP-34,KREP-107\r\n render() {\r\n let header = (\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n \r\n Submit\r\n \r\n \r\n
      \r\n\r\n
      \r\n \r\n \r\n \r\n Export\r\n \r\n
      \r\n
      \r\n );\r\n return (\r\n <>\r\n \r\n {}\r\n
      \r\n

      Farmer Loyalty 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 );\r\n }\r\n}\r\n","import instance from './DefaultApi';\r\n\r\nexport default class MissingCartonRptService {\r\n ControllerName = 'MissingCartonRpt';\r\n\r\n // get all data\r\n GetMissingCartonReport(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetMissingCartonReport`, tableRequest).then(res => res)\r\n }\r\n\r\n // Get Excel Export data\r\n GetMissingCartonExport(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetMissingCartonExport`,tableRequest).then(res => res)\r\n }\r\n \r\n}","import React, { Component } from 'react';\r\nimport 'primereact/resources/themes/saga-blue/theme.css';\r\nimport 'primereact/resources/primereact.min.css';\r\nimport 'primeicons/primeicons.css';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { CSVLink, CSVDownload } from \"react-csv\";\r\nimport { Calendar } from 'primereact/calendar';\r\nimport tableRequest from '../../models/tableRequest.js';\r\nimport MissingCartonRptService from '../../services/MissingCartonRptService';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { Column } from 'primereact/column';\r\nimport MessageComponent from '../../template/Message';\r\nimport $ from 'jquery';\r\n\r\nexport default class MissingCartonReport extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.surveyLink = React.createRef();\r\n\r\n this.MissingCartonRptService = new MissingCartonRptService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n FromDate: new Date(),\r\n ToDate: new Date(),\r\n success: false,\r\n visible: false,\r\n sortOrder:'',\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 5,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: 'No Data found',\r\n allData: []\r\n\r\n }\r\n this.onPage = this.onPage.bind(this);\r\n this.FilterData = this.FilterData.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.GetMissingCartonExport = this.GetMissingCartonExport.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n }\r\n//to trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n var date = new Date();\r\n date.setDate(date.getDate() - 7);\r\n this.tblResponse.FromDate = date.toLocaleDateString();\r\n this.tblResponse.ToDate = new Date().toLocaleDateString();\r\n this.setState({\r\n FromDate: date,\r\n ToDate: new Date()\r\n });\r\n this.GetMissingCartonReport();\r\n }, 1000);\r\n $('.p-column-title').on('click', function(){\r\n $(this).next().removeClass('pi-sort').toggleClass('pi-sort-up').addClass('pi-sort-down');\r\n });\r\n }\r\n//to search\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetMissingCartonReport();\r\n }\r\n\r\n onChange = date => this.setState({ FromDate: '', ToDate: '' })\r\n//on page loading\r\n onPage(event) {\r\n this.setState({\r\n loading: true\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetMissingCartonReport();\r\n }, 250);\r\n }\r\n\r\n //get data list from api\r\n GetMissingCartonExport()\r\n {\r\n this.MissingCartonRptService.GetMissingCartonExport(this.tblResponse).then(data => {\r\n const resdata = data.data;\r\n //if response data not null\r\n if (resdata !== null && resdata.ResponseData !== null && resdata.ResponseData.length > 0) {\r\n \r\n this.setState({\r\n allData: resdata.ResponseData\r\n });\r\n this.setState({ allData: resdata.ResponseData }, () => {\r\n this.surveyLink.link.click()\r\n });\r\n } \r\n });\r\n }\r\n //to handle\r\n //resolved KREP-22\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n //to validate each form field without required conditions\r\n switch (name) {\r\n case 'FromDate':\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select from date.\");\r\n return;\r\n }\r\n else if (!(value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n }\r\n else if ((value instanceof Date) && (this.state.ToDate instanceof Date)) {\r\n const startDate = value;\r\n const endDate = this.state.ToDate;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"From date must be less than to date.\");\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n case 'ToDate':\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select to date.\");\r\n return;\r\n }\r\n else if (!(value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n }\r\n else if ((value instanceof Date) && (this.state.FromDate instanceof Date)) {\r\n const startDate = this.state.FromDate;\r\n const endDate = value;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"To date must be greater than from date.\");\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.setState({ [name]: value });\r\n }\r\n//to filter data\r\n FilterData() {\r\n this.tblResponse.FromDate = this.state.FromDate.toLocaleDateString();\r\n this.tblResponse.ToDate = this.state.ToDate.toLocaleDateString();\r\n this.GetMissingCartonReport();\r\n }\r\n\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = '1';\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? 'ASC' : 'DESC';\r\n this.tblResponse.FromDate = this.state.FromDate;\r\n this.tblResponse.ToDate = this.state.ToDate;\r\n }\r\n\r\n // get data list from api\r\n\r\n GetMissingCartonReport() {\r\n ;\r\n this.tblResponse.SortColumn = 'CreatedDt';\r\n this.MissingCartonRptService.GetMissingCartonReport(this.tblResponse).then(data => {\r\n const resdata = data.data;\r\n //if response data not null\r\n if (resdata !== null && resdata.ResponseData !== null && resdata.ResponseData.length > 0) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: (this.tblResponse.First - 1),\r\n sales: this.datasource.slice(0, ((this.tblResponse.First - 1) + this.tblResponse.PageSize)),\r\n loading: false\r\n });\r\n }\r\n //if response data null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false\r\n });\r\n }\r\n });\r\n // this.datasource = null;\r\n // this.setState({\r\n // totalRecords: 0,\r\n // first: 1,\r\n // sales: null,\r\n // loading: false\r\n // });\r\n }\r\n//to sort\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField = event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? 'DESC' : 'ASC';\r\n this.GetMissingCartonReport();\r\n }\r\n//to render html part\r\n render() {\r\n\r\n let header = (\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n\r\n
      \r\n
      \r\n \r\n
      \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 \r\n
      \r\n

      Missing Carton Report

      \r\n
      \r\n { this.dt = el; }}>\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { CSVLink, CSVDownload } from \"react-csv\";\r\nimport { Calendar } from \"primereact/calendar\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport DispatchReportService from \"../../services/DispatchReportService\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Column } from \"primereact/column\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport $ from \"jquery\";\r\nimport PrintDispatchService from \"../../services/PrintDispatchService\";\r\nimport { Button } from \"primereact/button\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport { Card } from \"primereact/card\";\r\nexport default class DispatchReport extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.DispatchReportService = new DispatchReportService();\r\n this.PrintDispatchService = new PrintDispatchService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n FromDate: new Date(),\r\n ToDate: new Date(),\r\n success: false,\r\n updateLoader: false,\r\n visible: false,\r\n sortOrder: \"\",\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n allData: [],\r\n };\r\n\r\n this.onPage = this.onPage.bind(this);\r\n this.FilterData = this.FilterData.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n this.GetReportExport = this.GetReportExport.bind(this);\r\n }\r\n //to trigger api function o page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n var date = new Date();\r\n date.setDate(date.getDate() - 7);\r\n this.tblResponse.FromDate = date.toLocaleDateString();\r\n this.tblResponse.ToDate = new Date().toLocaleDateString();\r\n this.setState({\r\n FromDate: date,\r\n ToDate: new Date(),\r\n });\r\n this.GetDispatch();\r\n }, 1000);\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n //to search data\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetDispatch();\r\n }\r\n\r\n onChange = (date) => this.setState({ FromDate: \"\", ToDate: \"\" });\r\n //to export report data\r\n GetReportExport() {\r\n this.DispatchReportService.GetDispatchRecReport(this.tblResponse).then(\r\n (data) => {\r\n console.log(data);\r\n const resdata = data.data;\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n allData: resdata.ResponseData,\r\n });\r\n this.setState({ allData: resdata.ResponseData }, () => {\r\n this.surveyLink.link.click();\r\n });\r\n }\r\n }\r\n );\r\n }\r\n //on page loading\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetDispatch();\r\n }, 250);\r\n }\r\n\r\n // call every change of form and validation part also\r\n\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"FromDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select from date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (value instanceof Date && this.state.ToDate instanceof Date) {\r\n const startDate = value;\r\n const endDate = this.state.ToDate;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"From date must be less than to date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n case \"ToDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select to date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (\r\n value instanceof Date &&\r\n this.state.FromDate instanceof Date\r\n ) {\r\n const startDate = this.state.FromDate;\r\n const endDate = value;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"To date must be greater than from date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.setState({ [name]: value });\r\n }\r\n\r\n //to filter data\r\n FilterData() {\r\n this.tblResponse.FromDate = this.state.FromDate.toLocaleDateString();\r\n this.tblResponse.ToDate = this.state.ToDate.toLocaleDateString();\r\n this.GetDispatch();\r\n }\r\n\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = \"1\";\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n this.tblResponse.FromDate = this.state.FromDate;\r\n this.tblResponse.ToDate = this.state.ToDate;\r\n }\r\n //to get dispatch data\r\n GetDispatch() {\r\n this.tblResponse.SortColumn = \"DispatchId\";\r\n this.DispatchReportService.GetDispatchRecReport(this.tblResponse).then(\r\n (data) => {\r\n const resdata = data.data;\r\n this.setState({ updateLoader: true });\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n });\r\n }\r\n //if response data null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n }\r\n );\r\n // this.datasource = null;\r\n // this.setState({\r\n // totalRecords: 0,\r\n // first: 1,\r\n // sales: null,\r\n // loading: false\r\n // });\r\n }\r\n //for sorting\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField =\r\n event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetDispatch();\r\n }\r\n actionTemplate(rowData, column) {\r\n //to print\r\n // const editMode = (e) => {\r\n // this.DispatchReportService.GetDispatchToPrint(rowData).then(data => {\r\n //\r\n // const resdata = data.data;\r\n // this.PrintDispatchService.Printpdf(resdata.ResponseData);\r\n // });\r\n // ////PRINT SLIP\r\n // }\r\n // return \r\n // \r\n // ;\r\n }\r\n //to render html part\r\n render() {\r\n const items = [{ label: \"Reports\" }, { label: \"Dispatch Receive Report\" }];\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n let header = (\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n \r\n Submit\r\n \r\n \r\n
      \r\n
      \r\n \r\n \r\n {/* Export */}\r\n\r\n \r\n Export\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

      Dispatch Receive Report

      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n\r\n {\r\n this.dt = el;\r\n }}\r\n >\r\n \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 'primereact/resources/primereact.min.css';\r\nimport 'primeicons/primeicons.css';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { CSVLink, CSVDownload } from \"react-csv\";\r\nimport { Calendar } from 'primereact/calendar';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport FeedbackReportService from '../../services/FeedbackReportService';\r\nimport VerificationReportService from '../../services/VerificationReportService'\r\nimport { Column } from 'primereact/column';\r\nimport tableRequest from '../../models/tableRequest';\r\nimport MessageComponent from '../../template/Message';\r\nimport $ from 'jquery';\r\nimport Loaders from '../../template/Loaders';\r\nimport { SelectButton } from 'primereact/selectbutton';\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport ProductService from \"../../services/ProductService\";\r\n\r\nexport default class PickLuckyUsers extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.surveyLink = React.createRef();\r\n this.ProductService = new ProductService();\r\n this.FeedbackReportService = new FeedbackReportService();\r\n this.VerificationReportService = new VerificationReportService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n FromDate: new Date(),\r\n ToDate: new Date(),\r\n Qty:0,\r\n success: false,\r\n sortOrder: '',\r\n stateDDL:[],\r\n ProductId: null,\r\n stateID:null,\r\n visible: false,\r\n updateLoader: true,\r\n emptyMessage: 'No Data found',\r\n sales: [],\r\n loading: false,\r\n first: 0,\r\n rows: 10,\r\n checkerror: null,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n allData: [],\r\n isPreprintedValue: \"Static Qr Mapping\",\r\n isPreprinted: false,\r\n formError: {\r\n stateID:null,\r\n ProductId:null,\r\n Qty:null\r\n }\r\n }\r\n this.onPage = this.onPage.bind(this);\r\n this.FilterData = this.FilterData.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.GetFeedbackExport = this.GetFeedbackExport.bind(this);\r\n\r\n this.onSort = this.onSort.bind(this);\r\n this.setPreprintedValue = this.setPreprintedValue.bind(this);\r\n }\r\n // to trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n var date = new Date();\r\n date.setDate(date.getDate() - 7);\r\n this.tblResponse.FromDate = date.toLocaleDateString();\r\n this.tblResponse.ToDate = new Date().toLocaleDateString();\r\n this.setState({\r\n FromDate: date,\r\n ToDate: new Date()\r\n });\r\n this.GetProductDDL();\r\n //this.GetFeedback();\r\n this.GetstateDDL();\r\n //this.GetFeedbackExport();\r\n }, 1000);\r\n\r\n $('.p-column-title').on('click', function () {\r\n $(this).next().removeClass('pi-sort').toggleClass('pi-sort-up').addClass('pi-sort-down');\r\n });\r\n }\r\n //to search \r\n searchFilter(e) {\r\n\r\n\r\n this.tblResponse.SearchValue = e.target.value;\r\n //this.GetFeedback();\r\n }\r\n\r\n onChange = date => this.setState({ FromDate: '', ToDate: '' })\r\n //on page loading\r\n onPage(event) {\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n //this.GetFeedback();\r\n }, 250);\r\n }\r\n // call every change of form and validation part also\r\n //resolved KREP-22\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case 'FromDate':\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select from date.\");\r\n return;\r\n }\r\n else if (!(value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n }\r\n else if ((value instanceof Date) && (this.state.ToDate instanceof Date)) {\r\n const startDate = value;\r\n const endDate = this.state.ToDate;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"From date must be less than to date.\");\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n case 'ToDate':\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select to date.\");\r\n return;\r\n }\r\n else if (!(value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n }\r\n else if ((value instanceof Date) && (this.state.FromDate instanceof Date)) {\r\n const startDate = this.state.FromDate;\r\n const endDate = value;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"To date must be greater than from date.\");\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.setState({ [name]: value });\r\n }\r\n\r\n\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n//to validate each form field with required conditions\r\n switch (name) {\r\n case 'stateID':\r\n if (value == null || value.length < 1) {\r\n IsValid = false;\r\n errors.stateID = \"Please select location.\";\r\n }\r\n else errors.stateID = null;\r\n break;\r\n case 'ProductId':\r\n if (value == null || value.length < 1) {\r\n IsValid = false;\r\n errors.ProductId = \"Please select Product.\";\r\n }\r\n else errors.ProductId = null;\r\n break;\r\n case \"Qty\":\r\n if (value == null || value < 1) {\r\n IsValid = false;\r\n errors.Qty = \"Please enter +ve quantity.\";\r\n }\r\n else errors.Qty = null;\r\n break;\r\n default:\r\n break;\r\n }\r\n return IsValid;\r\n }\r\n\r\n\r\n //to filter data \r\n FilterData() {\r\n this.tblResponse.FromDate = this.state.FromDate.toLocaleDateString();\r\n this.tblResponse.ToDate = this.state.ToDate.toLocaleDateString();\r\n this.GetFeedback();\r\n }\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = '1';\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? 'ASC' : 'DESC';\r\n this.tblResponse.FromDate = this.state.FromDate;\r\n this.tblResponse.ToDate = this.state.ToDate;\r\n }\r\n\r\n setPreprintedValue(e) {\r\n\r\n this.setState({\r\n isPreprintedValue: e.value,\r\n isPreprinted: e.value == \"Static Qr Mapping\" ? false : true\r\n }, () => {\r\n this.tblResponse.isPreprinted = this.state.isPreprinted;\r\n //this.GetFeedback();\r\n });\r\n\r\n }\r\n // get data list from api\r\n GetFeedbackExport() {\r\n this.FeedbackReportService.GetFeedbackExport(this.tblResponse).then(data => {\r\n const resdata = data.data;\r\n //if response data not null\r\n if (resdata !== null && resdata.ResponseData !== null && resdata.ResponseData.length > 0) {\r\n\r\n this.setState({\r\n allData: resdata.ResponseData\r\n });\r\n this.setState({ allData: resdata.ResponseData }, () => {\r\n this.surveyLink.link.click()\r\n });\r\n }\r\n });\r\n }\r\n // get data list from api\r\n GetFeedback() {\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formError;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key]\r\n let valid = this.validateForm(val, key);\r\n //form not valid\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n\r\n if(isfrmvalid){\r\n this.tblResponse.Qty = this.state.Qty;\r\n this.tblResponse.SortColumn = 'VerifiedDt';\r\n this.VerificationReportService.PickLuckyUsers(this.tblResponse).then(data => {\r\n const resdata = data.data;\r\n //this.setState({ updateLoader: true });\r\n //if response data not null\r\n \r\n if (resdata !== null && resdata.ResponseData !== null && resdata.ResponseData.length > 0) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: (this.tblResponse.First - 1),\r\n sales: this.datasource.slice(0, ((this.tblResponse.First - 1) + this.tblResponse.PageSize)),\r\n loading: false\r\n });\r\n }\r\n //if response data null \r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false\r\n });\r\n }\r\n });\r\n }\r\n }\r\n //to sort\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField = event.sortField == \"VerifiedDt\" ? \"VerifiedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? 'DESC' : 'ASC';\r\n //this.GetFeedback();\r\n }\r\n\r\n // get product ddl list data\r\n GetProductDDL() {\r\n this.ProductService.GetProductsDDL().then(data => {\r\n const resdata = data.data;\r\n \r\n //if resdata is not null \r\n if (resdata !== null && resdata.ResponseCode === '200') {\r\n this.setState({\r\n ProductDDL: resdata.ResponseData\r\n });\r\n }\r\n });\r\n }\r\n\r\n GetstateDDL() {\r\n this.ProductService.GetMappedProductsDDLByType('LB').then(data => {\r\n const resdata = data.data;\r\n //if ResponseCode is 200\r\n if (resdata !== null && resdata.ResponseCode === '200') {\r\n this.setState({\r\n stateDDL: resdata.ResponseData\r\n });\r\n }\r\n });\r\n }\r\n\r\n //to render html part\r\n render() {\r\n // const options = ['Static Qr Mapping'];\r\n let header = (\r\n
      \r\n
      \r\n
      \r\n
      \r\n {this.setState({ProductId:e.target.value}) }} className=\"form-group\" value={this.state.ProductId} name=\"ProductId\" />\r\n {this.state.formError.ProductId !== null ?\r\n
      {this.state.formError.ProductId}
      : null}\r\n
      \r\n
      \r\n {this.setState({stateID:e.target.value}) }} value={this.state.stateID} className=\"form-group\" placeholder=\"Select Location\" name=\"stateId\" options={this.state.stateDDL} />\r\n {this.state.formError.stateID !== null ?\r\n
      {this.state.formError.stateID}
      : null}\r\n
      \r\n
      \r\n From Date*: \r\n \r\n
      \r\n
      \r\n To Date*: \r\n \r\n
      \r\n
      \r\n No. of Users to Pick*: \r\n {; this.setState({Qty:parseInt(e.target.value)}) }} className=\"form-control ml-2\" name=\"Qty\" />\r\n {this.state.formError.Qty !== null ?\r\n
      {this.state.formError.Qty}
      : null}\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
      \r\n {/* */}\r\n

      Pick Lucky Users

      \r\n
      \r\n\r\n { this.dt = el; }}>\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 \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { CSVLink, CSVDownload } from \"react-csv\";\r\nimport { Calendar } from \"primereact/calendar\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport DispatchReportService from \"../../services/DispatchReportService\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Column } from \"primereact/column\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport $ from \"jquery\";\r\nimport PrintDispatchService from \"../../services/PrintDispatchService\";\r\nimport { Button } from \"primereact/button\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport { Card } from \"primereact/card\";\r\nexport default class DispatchReport extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.DispatchReportService = new DispatchReportService();\r\n this.PrintDispatchService = new PrintDispatchService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n FromDate: new Date(),\r\n ToDate: new Date(),\r\n success: false,\r\n updateLoader: false,\r\n visible: false,\r\n sortOrder: \"\",\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n allData: [],\r\n };\r\n\r\n this.onPage = this.onPage.bind(this);\r\n this.FilterData = this.FilterData.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n this.GetReportExport = this.GetReportExport.bind(this);\r\n }\r\n //to trigger api function o page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n var date = new Date();\r\n date.setDate(date.getDate() - 7);\r\n this.tblResponse.FromDate = date.toLocaleDateString();\r\n this.tblResponse.ToDate = new Date().toLocaleDateString();\r\n this.setState({\r\n FromDate: date,\r\n ToDate: new Date(),\r\n });\r\n this.GetDispatch();\r\n }, 1000);\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n //to search data\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetDispatch();\r\n }\r\n\r\n onChange = (date) => this.setState({ FromDate: \"\", ToDate: \"\" });\r\n //to export report data\r\n GetReportExport() {\r\n this.DispatchReportService.GetReportFrac(this.tblResponse).then((data) => {\r\n console.log(data);\r\n const resdata = data.data;\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n allData: resdata.ResponseData,\r\n });\r\n this.setState({ allData: resdata.ResponseData }, () => {\r\n this.surveyLink.link.click();\r\n });\r\n }\r\n });\r\n }\r\n //on page loading\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetDispatch();\r\n }, 250);\r\n }\r\n\r\n // call every change of form and validation part also\r\n\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"FromDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select from date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (value instanceof Date && this.state.ToDate instanceof Date) {\r\n const startDate = value;\r\n const endDate = this.state.ToDate;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"From date must be less than to date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n case \"ToDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select to date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (\r\n value instanceof Date &&\r\n this.state.FromDate instanceof Date\r\n ) {\r\n const startDate = this.state.FromDate;\r\n const endDate = value;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"To date must be greater than from date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.setState({ [name]: value });\r\n }\r\n\r\n //to filter data\r\n FilterData() {\r\n this.tblResponse.FromDate = this.state.FromDate.toLocaleDateString();\r\n this.tblResponse.ToDate = this.state.ToDate.toLocaleDateString();\r\n this.GetDispatch();\r\n }\r\n\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = \"1\";\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n this.tblResponse.FromDate = this.state.FromDate;\r\n this.tblResponse.ToDate = this.state.ToDate;\r\n }\r\n //to get dispatch data\r\n GetDispatch() {\r\n this.tblResponse.SortColumn = \"CartonId\";\r\n this.DispatchReportService.GetReportFrac(this.tblResponse).then((data) => {\r\n const resdata = data.data;\r\n this.setState({ updateLoader: true });\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n });\r\n }\r\n //if response data null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n });\r\n // this.datasource = null;\r\n // this.setState({\r\n // totalRecords: 0,\r\n // first: 1,\r\n // sales: null,\r\n // loading: false\r\n // });\r\n }\r\n //for sorting\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField =\r\n event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetDispatch();\r\n }\r\n actionTemplate(rowData, column) {\r\n //to print\r\n // const editMode = (e) => {\r\n // this.DispatchReportService.GetDispatchToPrint(rowData).then(data => {\r\n //\r\n // const resdata = data.data;\r\n // this.PrintDispatchService.Printpdf(resdata.ResponseData);\r\n // });\r\n // ////PRINT SLIP\r\n // }\r\n // return \r\n // \r\n // ;\r\n }\r\n //to render html part\r\n render() {\r\n const items = [\r\n { label: \"Reports\" },\r\n { label: \">Fractional Carton Report\" },\r\n ];\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n let header = (\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n \r\n Submit\r\n \r\n \r\n
      \r\n
      \r\n \r\n \r\n {/* Export */}\r\n\r\n \r\n Export\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

      Fractional Carton Report

      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n\r\n {\r\n this.dt = el;\r\n }}\r\n >\r\n \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 \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { CSVLink, CSVDownload } from \"react-csv\";\r\nimport { Calendar } from \"primereact/calendar\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport SecondaryReportService from \"../../services/SecondaryReportService\";\r\nimport DispatchService from \"../../services/DispatchService\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Column } from \"primereact/column\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport $ from \"jquery\";\r\nimport { Button } from \"primereact/button\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport { Card } from \"primereact/card\";\r\nimport PrintSecondaryPackagingService from \"../../services/PrintSecondaryPackagingService\";\r\nexport default class ReturnReport extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.surveyLink = React.createRef();\r\n this.SecondaryReportService = new SecondaryReportService();\r\n this.DispatchService= new DispatchService();\r\n this.PrintSecondaryPackagingService = new PrintSecondaryPackagingService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n FromDate: new Date(),\r\n ToDate: new Date(),\r\n success: false,\r\n updateLoader: false,\r\n visible: false,\r\n sortOrder: \"\",\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n allData: [],\r\n };\r\n this.onPage = this.onPage.bind(this);\r\n this.FilterData = this.FilterData.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.GetReportExport = this.GetReportExport.bind(this);\r\n }\r\n //to trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n var date = new Date();\r\n date.setDate(date.getDate() - 7);\r\n this.tblResponse.FromDate = date.toLocaleDateString();\r\n this.tblResponse.ToDate = new Date().toLocaleDateString();\r\n this.setState({\r\n FromDate: date,\r\n ToDate: new Date(),\r\n });\r\n this.GetSecondary();\r\n }, 1000);\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n //to search\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetSecondary();\r\n }\r\n //to export report data\r\n GetReportExport() {\r\n this.DispatchService.GetReturnReport(this.tblResponse).then(\r\n (data) => {\r\n const resdata = data.data;\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n allData: resdata.ResponseData,\r\n });\r\n this.setState({ allData: resdata.ResponseData }, () => {\r\n this.surveyLink.link.click();\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n onChange = (date) => this.setState({ FromDate: \"\", ToDate: \"\" });\r\n //on page loading\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetSecondary();\r\n }, 250);\r\n }\r\n\r\n //to handle\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"FromDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select from date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (value instanceof Date && this.state.ToDate instanceof Date) {\r\n const startDate = value;\r\n const endDate = this.state.ToDate;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"From date must be less than to date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n case \"ToDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select to date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (\r\n value instanceof Date &&\r\n this.state.FromDate instanceof Date\r\n ) {\r\n const startDate = this.state.FromDate;\r\n const endDate = value;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"To date must be greater than from date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.setState({ [name]: value });\r\n }\r\n //to filter data\r\n FilterData() {\r\n this.tblResponse.FromDate = this.state.FromDate.toLocaleDateString();\r\n this.tblResponse.ToDate = this.state.ToDate.toLocaleDateString();\r\n this.GetSecondary();\r\n }\r\n\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = \"1\";\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n this.tblResponse.FromDate = this.state.FromDate;\r\n this.tblResponse.ToDate = this.state.ToDate;\r\n }\r\n //to get secondary data\r\n GetSecondary(isExport) {\r\n this.tblResponse.SortColumn = \"Cartonid\";\r\n debugger\r\n this.DispatchService.GetReturnReport(this.tblResponse).then(\r\n (data) => {\r\n const resdata = data.data;\r\n this.setState({ updateLoader: true });\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n });\r\n\r\n if (isExport) {\r\n this.setState({\r\n allData: resdata.ResponseData,\r\n });\r\n\r\n this.setState({ allData: resdata.ResponseData }, () => {\r\n this.surveyLink.link.click();\r\n });\r\n }\r\n }\r\n //if response data null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n }\r\n );\r\n // this.datasource = null;\r\n // this.setState({\r\n // totalRecords: 0,\r\n // first: 1,\r\n // sales: null,\r\n // loading: false\r\n // });\r\n }\r\n //to sort\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField =\r\n event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetSecondary();\r\n }\r\n\r\n actionTemplate(rowData, column) {\r\n const editMode = (e) => {\r\n this.PrintSecondaryPackagingService.formPreview1([rowData]);\r\n ////PRINT SLIP\r\n };\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n //to render html part\r\n render() {\r\n const items = [{ label: \"Reports\" }, { label: \"Return Report\" }];\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n let header = (\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n \r\n Submit\r\n \r\n \r\n
      \r\n
      \r\n \r\n \r\n\r\n \r\n Export\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

      Return Report

      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n\r\n {\r\n this.dt = el;\r\n }}\r\n >\r\n \r\n \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 UserService from '../services/UserService';\r\nimport MessageComponent from '../template/Message';\r\n\r\n// Manage Profile\r\nexport default class Profile extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n \r\n Email: '',\r\n MobileNo: '',\r\n \r\n\r\n formError: {\r\n Email: null,\r\n MobileNo: null\r\n }\r\n }\r\n\r\n this.UserService = new UserService();\r\n this.handleChange = this.handleChange.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n }\r\n //trigger api function on Page call\r\n componentDidMount() {\r\n this.getUser();\r\n }\r\n\r\n //get user list\r\n getUser() {\r\n this.UserService.getUser().then(data => {\r\n const resdata = data.data;\r\n //if ResponseCode is 200\r\n if (resdata.ResponseCode === '200') {\r\n const usr = resdata.ResponseData;\r\n this.setState({\r\n Email: usr.Email,\r\n MobileNo: usr.MobileNo\r\n });\r\n }\r\n });\r\n }\r\n\r\n // submit form and create or update user\r\n submitForm(event) {\r\n event.preventDefault();\r\n\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formError;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key]\r\n let valid = this.validateForm(val, key);\r\n //form not valid\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n //form valid\r\n if (isfrmvalid) {\r\n const formData = { \r\n MobileNo: this.state.MobileNo,\r\n Email: this.state.Email, \r\n }\r\n\r\n this.UserService.UpdateProfile(formData).then(data => {\r\n const resdata = data.data;\r\n //if ResponseCode is 200 success else error or warning message \r\n if (resdata !== null && resdata.ResponseCode === '200') {\r\n this.setState({\r\n loading: true,\r\n visible: false\r\n });\r\n \r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n\r\n // const res = this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n // if (res) {\r\n // setTimeout(() => {\r\n // sessionStorage.clear();\r\n // window.location = '/login';\r\n // }, 2000);\r\n // }\r\n\r\n } else if (resdata.ResponseCode === '400') {\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }\r\n }\r\n\r\n // form Reset\r\n formReset() {\r\n this.setState({\r\n Email: '',\r\n MobileNo: ''\r\n });\r\n }\r\n\r\n // call every change of form and validation part also\r\n handleChange(event) {\r\n\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n\r\n const isValid = this.validateForm(value, name);\r\n this.setState({ errors, [name]: value });\r\n }\r\n\r\n // validate Form\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n\r\n case 'Email':\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.Email = \"Please enter your email-id.\";\r\n }\r\n else if (value.length >= 1) {\r\n if (!value.match(/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/)) {\r\n IsValid = false;\r\n errors.Email = \"Please enter valid email-id.\";\r\n } else errors.Email = ''\r\n } else errors.Email = ''\r\n break;\r\n case 'MobileNo':\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.MobileNo = \"Please enter your mobile no.\";\r\n }\r\n else if (value.length >= 1) {\r\n if (!value.match(/^[6-9]\\d{9}$/)) {\r\n IsValid = false;\r\n errors.MobileNo = \"Please enter valid mobile no.\";\r\n } else errors.MobileNo = ''\r\n } else errors.MobileNo = ''\r\n break;\r\n\r\n \r\n default:\r\n break;\r\n }\r\n\r\n return IsValid;\r\n }\r\n\r\n // return html\r\n render() {\r\n return (\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 {this.state.formError.Email !== null ?\r\n
      {this.state.formError.Email}
      : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.MobileNo !== null ?\r\n
      {this.state.formError.MobileNo}
      : null}\r\n
      \r\n\r\n \r\n \r\n
      \r\n \r\n
      \r\n
      \r\n {/*
      \r\n
      Mobile No
      \r\n
      \r\n
      \r\n {this.state.formError.MobileNo !== '' ?\r\n
      {this.state.formError.MobileNo}
      : ''}\r\n \r\n
      Email
      \r\n
      \r\n \r\n {this.state.formError.Email !== null ?\r\n
      {this.state.formError.Email}
      : 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","import instance from \"./DefaultApi\";\r\n\r\nexport default class SchemeService {\r\n ControllerName = \"Scheme\";\r\n\r\n // get all product Scheme data\r\n GetSchemes(tableRequest) {\r\n return instance\r\n .post(\r\n `${process.env.REACT_APP_API_URL}${this.ControllerName}/GetSchemes`,\r\n tableRequest\r\n )\r\n .then((res) => res);\r\n }\r\n GetuserDDL() {\r\n return instance.get(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetuserDDL`).then(res => res)\r\n }\r\n\r\n // create new product Scheme\r\n CreateScheme(SchemeData) {\r\n return instance\r\n .post(\r\n `${process.env.REACT_APP_API_URL}${this.ControllerName}/CreateScheme`,\r\n SchemeData\r\n )\r\n .then((res) => res);\r\n }\r\n\r\n // Get Product Mpping\r\n GetPrdctMpping(tableRequest) {\r\n return instance\r\n .post(\r\n `${process.env.REACT_APP_API_URL}${this.ControllerName}/GetPrdctMpping`,\r\n tableRequest\r\n )\r\n .then((res) => res);\r\n }\r\n // create new product Scheme\r\n CreatePrdctMpping(SchemeData) {\r\n return instance\r\n .post(\r\n `${process.env.REACT_APP_API_URL}${this.ControllerName}/CreatePrdctMpping`,\r\n SchemeData\r\n )\r\n .then((res) => res);\r\n }\r\n\r\n // Get GetScheme Drop Down List\r\n GetSchemeDDL() {\r\n return instance\r\n .get(\r\n `${process.env.REACT_APP_API_URL}${this.ControllerName}/GetSchemeDDL`\r\n )\r\n .then((res) => res);\r\n }\r\n\r\n // In Active Scheme Config\r\n InActiveSchemeConfig(SchemeData) {\r\n return instance\r\n .post(\r\n `${process.env.REACT_APP_API_URL}${this.ControllerName}/InActiveSchemeConfig`,\r\n SchemeData\r\n )\r\n .then((res) => res);\r\n }\r\n\r\n GetSchemeDataById(Id) {\r\n return instance\r\n .get(\r\n `${process.env.REACT_APP_API_URL}${this.ControllerName}/GetSchemeDataById/${Id}`\r\n )\r\n .then((res) => res);\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Column } from \"primereact/column\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Button } from \"primereact/button\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Checkbox } from \"react-bootstrap\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport ProductService from \"../../services/ProductService\";\r\nimport SchemeService from \"../../services/SchemeService\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport { Calendar } from \"primereact/calendar\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport $ from \"jquery\";\r\n\r\n/// scheme master\r\n\r\nvar minDate = new Date();\r\nexport default class SchemeMaster extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.ProductService = new ProductService();\r\n this.state = {\r\n visible: false,\r\n buttonLabel: \"Submit\",\r\n SchemeId: 0,\r\n updateLoader: false,\r\n SchemeName: \"\",\r\n Schemedescription: \"\",\r\n StartDate: \"\",\r\n EndDate: \"\",\r\n LoyaltyPoints: 0,\r\n IsActive: false,\r\n sortOrder: \"\",\r\n ProductId: null,\r\n ProductName: '',\r\n Utype: null,\r\n TypeName: '',\r\n formError: {\r\n ProductId: null,\r\n ProductName: '',\r\n Utype: null,\r\n TypeName: '',\r\n SchemeName: null,\r\n Schemedescription: null,\r\n StartDate: null,\r\n EndDate: null,\r\n LoyaltyPoints: null,\r\n },\r\n\r\n formHeading: \"Add Scheme\",\r\n\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 5,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n };\r\n\r\n //this.brandTemplate = this.brandTemplate.bind(this);\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n this.activeTemplate = this.activeTemplate.bind(this);\r\n this.SchemeService = new SchemeService();\r\n this.tblResponse = new tableRequest();\r\n this.hideFunc = this.hideFunc.bind(this);\r\n this.onPage = this.onPage.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.openDialog = this.openDialog.bind(this);\r\n this.validateForm = this.validateForm.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n }\r\n //trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.GetProductDDL();\r\n this.GetSchemes();\r\n this.GetuserDDL();\r\n }, 1000);\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n\r\n // on page loading\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetSchemes();\r\n }, 250);\r\n }\r\n // Get Product List\r\n GetProductDDL() {\r\n this.ProductService.GetProductsDDL().then(data => {\r\n const resdata = data.data;\r\n\r\n //if resdata is not null \r\n if (resdata !== null && resdata.ResponseCode === '200') {\r\n this.setState({\r\n ProductDDL: resdata.ResponseData\r\n\r\n });\r\n }\r\n });\r\n }\r\n GetuserDDL() {\r\n this.SchemeService.GetuserDDL().then(data => {\r\n const resdata = data.data;\r\n\r\n //if resdata is not null \r\n if (resdata !== null && resdata.ResponseCode === '200') {\r\n this.setState({\r\n userDDL: resdata.ResponseData\r\n\r\n });\r\n }\r\n });\r\n }\r\n\r\n // get list of scheme\r\n GetSchemes() {\r\n this.tblResponse.SortColumn = \"CreatedDt\";\r\n this.SchemeService.GetSchemes(this.tblResponse).then((data) => {\r\n const resdata = data.data;\r\n console.log(resdata);\r\n //response data not null sales state will be set with response data\r\n if (resdata.ResponseCode === \"200\") {\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n });\r\n }\r\n //response data is null sales state will be set null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n this.setState({ updateLoader: true });\r\n }\r\n });\r\n }\r\n\r\n // get current date\r\n getCurrentDate() {\r\n var today = new Date();\r\n var dd = today.getDate();\r\n\r\n var mm = today.getMonth() + 1;\r\n var yyyy = today.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n // today = mm + '-' + dd + '-' + yyyy;\r\n // today = mm + '/' + dd + '/' + yyyy;\r\n // today = dd + '-' + mm + '-' + yyyy;\r\n today = mm + \"/\" + dd + \"/\" + yyyy;\r\n return today;\r\n }\r\n\r\n // validate form\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"SchemeName\":\r\n if (value == null || value.trim().length < 1) {\r\n IsValid = false;\r\n errors.SchemeName = \"Please enter scheme.\";\r\n } else errors.SchemeName = null;\r\n break;\r\n case \"ProductId\":\r\n if (value == null) {\r\n\r\n IsValid = false;\r\n errors.ProductId = \"Please select product.\";\r\n } else {\r\n errors.ProductId = null;\r\n }\r\n break;\r\n case \"Utype\":\r\n if (value == null) {\r\n\r\n IsValid = false;\r\n errors.Utype = \"Please select User Type.\";\r\n } else {\r\n errors.Utype = null;\r\n }\r\n break;\r\n case \"StartDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n IsValid = false;\r\n errors.StartDate = \"Please select from date\";\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n IsValid = false;\r\n errors.StartDate = \"Please enter only date.\";\r\n }\r\n //KREP-51\r\n else if (\r\n this.state.SchemeId == 0 &&\r\n Date.parse(value) < Date.parse(new Date(this.getCurrentDate()))\r\n ) {\r\n IsValid = false;\r\n errors.StartDate =\r\n \"From date must be greater than or equal to today date.\";\r\n } else if (\r\n value instanceof Date &&\r\n this.state.EndDate instanceof Date\r\n ) {\r\n errors.StartDate = null;\r\n errors.EndDate = null;\r\n\r\n const startDate = value;\r\n const endDate = this.state.EndDate;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n IsValid = false;\r\n errors.StartDate = \"From date must be less than to date.\";\r\n }\r\n } else errors.StartDate = null;\r\n break;\r\n case \"EndDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n IsValid = false;\r\n errors.EndDate = \"Please select to date\";\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n IsValid = false;\r\n errors.EndDate = \"Please enter only date.\";\r\n } else if (\r\n Date.parse(value) < Date.parse(new Date(this.getCurrentDate()))\r\n ) {\r\n IsValid = false;\r\n errors.EndDate =\r\n \"To date must be greater than or equal to today date.\";\r\n } else if (\r\n value instanceof Date &&\r\n this.state.StartDate instanceof Date\r\n ) {\r\n errors.StartDate = null;\r\n errors.EndDate = null;\r\n\r\n const startDate = this.state.StartDate;\r\n const endDate = value;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n IsValid = false;\r\n errors.EndDate = \"To date must be greater than from date.\";\r\n }\r\n } else errors.EndDate = null;\r\n\r\n break;\r\n case \"LoyaltyPoints\":\r\n if (value == \"\" || parseFloat(value) < 1) {\r\n IsValid = false;\r\n errors.LoyaltyPoints = \"Loyalty points must be minimum 1\";\r\n } else errors.LoyaltyPoints = null;\r\n break;\r\n // case 'IsActive':\r\n // this.setState({\r\n // IsActive: value\r\n // });\r\n // break;\r\n default:\r\n break;\r\n }\r\n\r\n return IsValid;\r\n }\r\n\r\n // call when input\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n\r\n const isValid = this.validateForm(value, name);\r\n this.setState({ errors, [name]: value });\r\n //to set state of IsActive\r\n if (name == \"IsActive\")\r\n this.setState({\r\n IsActive: event.target.checked,\r\n });\r\n }\r\n\r\n // open dialog\r\n openDialog() {\r\n this.setState({ visible: true });\r\n this.formReset();\r\n }\r\n\r\n // form Reset\r\n formReset() {\r\n this.setState({\r\n SchemeId: 0,\r\n SchemeName: \"\",\r\n Schemedescription: \"\",\r\n StartDate: \"\",\r\n EndDate: \"\",\r\n LoyaltyPoints: 0,\r\n IsActive: true,\r\n });\r\n\r\n let errors = this.state.formError;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = \"\";\r\n });\r\n }\r\n\r\n hideFunc() {\r\n this.setState({\r\n visible: false,\r\n buttonLabel: \"Submit\",\r\n formHeading: \"Add Scheme\",\r\n });\r\n this.formReset();\r\n }\r\n\r\n // submit form\r\n submitForm(event) {\r\n \r\n ;\r\n event.preventDefault();\r\n\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formError;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key];\r\n let valid = this.validateForm(val, key);\r\n //form is not valid\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n\r\n //form is valid\r\n if (isfrmvalid) {\r\n this.setState({ updateLoader: false });\r\n \r\n const formData = {\r\n ProductId: this.state.ProductId === \"\" ? 0 : parseInt(this.state.ProductId),\r\n Utype: this.state.Utype === \"\" ? 0 : parseInt(this.state.Utype),\r\n SchemeId: this.state.SchemeId,\r\n SchemeName: this.state.SchemeName,\r\n Schemedescription: this.state.Schemedescription,\r\n StartDate: this.state.StartDate.toLocaleDateString(),\r\n EndDate: this.state.EndDate.toLocaleDateString(),\r\n LoyaltyPoints: this.state.LoyaltyPoints,\r\n IsActive: this.state.IsActive,\r\n };\r\n\r\n //console.log(formData);\r\n\r\n setTimeout(() => {\r\n this.SchemeService.CreateScheme(formData).then((data) => {\r\n const resdata = data.data;\r\n //if responsecode is 200 success message will shown else it will move to 'else statement'\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n this.setState({\r\n loading: true,\r\n visible: false,\r\n updateLoader: true,\r\n });\r\n this.formReset();\r\n this.GetSchemes();\r\n } else if (resdata !== null && resdata.ResponseCode === \"400\") {\r\n this.setState({\r\n loading: true,\r\n visible: false,\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }, 100);\r\n }\r\n }\r\n\r\n // serch filter event\r\n //resolved KREP-9\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetSchemes();\r\n }\r\n\r\n // call lazy loading\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = true;\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n }\r\n\r\n // disabled check box\r\n activeTemplate(rowData, column) {\r\n return ;\r\n }\r\n\r\n // edit record\r\n actionTemplate(rowData, column) {\r\n const editMode = () => { \r\n \r\n this.setState({\r\n visible: true,\r\n formHeading: \"Update Scheme\",\r\n buttonLabel: \"Update\",\r\n SchemeId: rowData.SchemeId,\r\n SchemeName: rowData.SchemeName,\r\n Schemedescription: rowData.Schemedescription,\r\n ProductName: rowData.ProductName,\r\n ProductId: rowData.ProductId,\r\n TypeName: rowData.TypeName,\r\n Utype: rowData.Utype,\r\n StartDate: new Date(rowData.StartDate),\r\n EndDate: new Date(rowData.EndDate),\r\n LoyaltyPoints: rowData.LoyaltyPoints,\r\n IsActive: rowData.IsActive,\r\n });\r\n };\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n // sort data\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n\r\n const sortField = event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetSchemes();\r\n }\r\n\r\n // return HTML\r\n //resolved KREP-16,KREP-110\r\n render() {\r\n const items = [{ label: \"Masters\" }, { label: \"Scheme Master\" }];\r\n\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n let header = (\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

      Scheme 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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.ProductId !== null ?\r\n
      {this.state.formError.ProductId}
      : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.Utype !== null ?\r\n
      {this.state.formError.Utype}
      : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.SchemeName !== null ? (\r\n
      \r\n {this.state.formError.SchemeName}\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 {this.state.formError.StartDate !== null ? (\r\n
      {this.state.formError.StartDate}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {/* */}\r\n {this.state.formError.EndDate !== null ? (\r\n
      {this.state.formError.EndDate}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.LoyaltyPoints !== null ? (\r\n
      \r\n {this.state.formError.LoyaltyPoints}\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","import React, { Component, createRef } from \"react\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Column } from \"primereact/column\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Calendar } from \"primereact/calendar\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport Multiselect from \"multiselect-react-dropdown\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Checkbox } from \"react-bootstrap\";\r\nimport SchemeService from \"../../services/SchemeService\";\r\nimport ProductService from \"../../services/ProductService\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport $ from \"jquery\";\r\n\r\n// Scheme Configuration\r\nvar minDate = new Date();\r\nexport default class SchemeConfiguration extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.myRef = React.createRef();\r\n this.LocRef = React.createRef();\r\n this.state = {\r\n isEdit: false,\r\n DynamicDDL: [],\r\n visible: false,\r\n updateLoader: false,\r\n buttonLabel: \"Submit\",\r\n sortOrder: \"\",\r\n stateID: [],\r\n SchemeType: 0,\r\n DynamicId: 0,\r\n SelectedDynamicId: [],\r\n SchemeName: \"\",\r\n viewmapping: false,\r\n mappingData: [],\r\n selectedMapping: [],\r\n select: [],\r\n SchemeBeneficiary: \"\",\r\n SchemeId: 0,\r\n // SchemeDesc: '',\r\n ValidFrm: \"\",\r\n ValidTo: \"\",\r\n LoyaltyPoints: 0,\r\n IsActive: true,\r\n formError: {\r\n points: null,\r\n SchemeName: null,\r\n SchemeBeneficiary: \"\",\r\n ValidFrm: null,\r\n ValidTo: null,\r\n //LoyaltyPoints: null,\r\n SchemeType: null,\r\n DynamicId: null,\r\n SelectedDynamicId: null,\r\n },\r\n SchemeDDL: [\r\n { name: \"Product Based\", value: \"PB\" },\r\n //{ name: 'Batch Based', value: 'BB' },\r\n { name: \"Main Category \", value: \"CM\" },\r\n { name: \"Sub Category\", value: \"SC\" },\r\n { name: \"Sub Division\", value: \"SD\" },\r\n ],\r\n SchemeBeneficiaryDDL: [\r\n { name: \"Dealer\", value: 2 },\r\n { name: \"Distributor\", value: 2 },\r\n { name: \"Farmer\", value: 3 },\r\n { name: \"All\", value: 9 },\r\n ],\r\n formHeading: \"Design Scheme\",\r\n stateDDL: [],\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 5,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n };\r\n this.LocationSelectAll = this.LocationSelectAll.bind(this);\r\n this.onSelect = this.onSelect.bind(this);\r\n this.onRemove = this.onRemove.bind(this);\r\n this.onSelectState = this.onSelectState.bind(this);\r\n this.onRemoveState = this.onRemoveState.bind(this);\r\n //this.brandTemplate = this.brandTemplate.bind(this);\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n this.activeTemplate = this.activeTemplate.bind(this);\r\n this.hideFunc = this.hideFunc.bind(this);\r\n this.SchemeService = new SchemeService();\r\n this.ProductService = new ProductService();\r\n this.tblResponse = new tableRequest();\r\n this.onPage = this.onPage.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.openDialog = this.openDialog.bind(this);\r\n this.getAllMappings = this.getAllMappings.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n }\r\n //trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.GetSchemesConfiguration();\r\n // this.GetSchemesDDL();\r\n this.GetstateDDL();\r\n }, 1000);\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n\r\n // call on Page\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetSchemesConfiguration();\r\n }, 250);\r\n }\r\n\r\n // search filter table\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetSchemesConfiguration();\r\n }\r\n\r\n // open dialog\r\n openDialog() {\r\n this.setState({ visible: true });\r\n this.formReset();\r\n }\r\n\r\n // set lazy loading values\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = \"1\";\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n }\r\n\r\n // get scheme Drop down list\r\n // GetSchemesDDL() {\r\n // this.SchemeService.GetSchemeDDL().then(data => {\r\n // const resdata = data.data;\r\n // //if ResponseCode is 200\r\n // if (resdata !== null && resdata.ResponseCode === '200') {\r\n // this.setState({\r\n // SchemeDDL: resdata.ResponseData\r\n // });\r\n // }\r\n // });\r\n // }\r\n\r\n //get Product drop down list\r\n GetDynamicDDL(value, DynamicId, flag) {\r\n this.setState({\r\n SelectedDynamicId: [],\r\n });\r\n if (flag != 0) {\r\n this.myRef.current.resetSelectedValues();\r\n }\r\n ;\r\n this.ProductService.GetMappedProductsDDLByType(value).then((data) => {\r\n const resdata = data.data;\r\n //if ResponseCode is 200\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.setState({\r\n DynamicDDL: resdata.ResponseData,\r\n });\r\n\r\n if (DynamicId) {\r\n this.setState({\r\n DynamicId: DynamicId,\r\n });\r\n }\r\n }\r\n });\r\n }\r\n GetstateDDL() {\r\n this.ProductService.GetMappedProductsDDLByType(\"LB\").then((data) => {\r\n const resdata = data.data;\r\n //if ResponseCode is 200\r\n\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.setState({\r\n stateDDL: resdata.ResponseData,\r\n });\r\n }\r\n });\r\n }\r\n\r\n // get scheme configuration\r\n GetSchemesConfiguration() {\r\n this.tblResponse.SortColumn = \"ValidFrm\";\r\n this.SchemeService.GetSchemes(this.tblResponse).then((data) => {\r\n const resdata = data.data;\r\n this.setState({ updateLoader: true });\r\n //if ResponseData is not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n });\r\n }\r\n //if ResponseData is null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n });\r\n }\r\n\r\n // validate form\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n ;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"SchemeName\":\r\n if (value == null || value.trim().length < 1) {\r\n IsValid = false;\r\n errors.SchemeName = \"Please enter scheme.\";\r\n } else errors.SchemeName = null;\r\n break;\r\n case \"SchemeType\":\r\n if (value == 0 || value.trim().length < 1) {\r\n IsValid = false;\r\n errors.SchemeType = \"Please select scheme type.\";\r\n } else if (value == \"Scheme Type\") {\r\n IsValid = false;\r\n errors.SchemeType = \"Please select scheme type.\";\r\n } else errors.SchemeType = null;\r\n break;\r\n case \"SchemeBeneficiary\":\r\n if (value == \"Select Beneficiary\" || value == null) {\r\n IsValid = false;\r\n errors.SchemeBeneficiary = \"Please scheme beneficiary.\";\r\n } else errors.SchemeBeneficiary = null;\r\n break;\r\n case \"ValidFrm\":\r\n if (value == null || !(value instanceof Date)) {\r\n IsValid = false;\r\n errors.ValidFrm = \"Please select from date\";\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n IsValid = false;\r\n errors.ValidFrm = \"Please enter only date.\";\r\n }\r\n //KREP-51\r\n else if (\r\n this.state.SchemeType == 0 &&\r\n Date.parse(value) < Date.parse(new Date(this.getCurrentDate()))\r\n ) {\r\n IsValid = false;\r\n errors.ValidFrm =\r\n \"From date must be greater than or equal to today date.\";\r\n } else if (\r\n value instanceof Date &&\r\n this.state.ValidTo instanceof Date\r\n ) {\r\n errors.ValidFrm = null;\r\n errors.ValidTo = null;\r\n\r\n const startDate = value;\r\n const endDate = this.state.ValidTo;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n IsValid = false;\r\n errors.ValidFrm = \"From date must be less than to date.\";\r\n }\r\n } else errors.ValidFrm = null;\r\n break;\r\n case \"ValidTo\":\r\n if (value == null || !(value instanceof Date)) {\r\n IsValid = false;\r\n errors.ValidTo = \"Please select to date\";\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n IsValid = false;\r\n errors.ValidTo = \"Please enter only date.\";\r\n } else if (\r\n Date.parse(value) < Date.parse(new Date(this.getCurrentDate()))\r\n ) {\r\n IsValid = false;\r\n errors.ValidTo =\r\n \"To date must be greater than or equal to today date.\";\r\n } else if (\r\n value instanceof Date &&\r\n this.state.ValidFrm instanceof Date\r\n ) {\r\n errors.ValidFrm = null;\r\n errors.ValidTo = null;\r\n\r\n const startDate = this.state.ValidFrm;\r\n const endDate = value;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n IsValid = false;\r\n errors.ValidTo = \"To date must be greater than from date.\";\r\n }\r\n } else errors.ValidTo = null;\r\n\r\n break;\r\n case \"LoyaltyPoints\":\r\n if (value == \"\" || parseFloat(value) < 1) {\r\n IsValid = false;\r\n errors.LoyaltyPoints = \"Loyalty points must be minimum 1\";\r\n } else errors.LoyaltyPoints = null;\r\n break;\r\n\r\n case \"SelectedDynamicId\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.SelectedDynamicId = \"Please Select Category.\";\r\n } else errors.SelectedDynamicId = null;\r\n break;\r\n default:\r\n break;\r\n }\r\n return IsValid;\r\n }\r\n\r\n // handle change use for form input\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n\r\n const isValid = this.validateForm(value, name);\r\n this.setState({ errors, [name]: value });\r\n }\r\n\r\n // form Reset\r\n formReset() {\r\n ;\r\n this.setState({\r\n isEdit: false,\r\n stateID: [],\r\n SchemeBeneficiary: \"Select Beneficiary\",\r\n SchemeType: \"Scheme Type\",\r\n SchemeId: 0,\r\n DynamicId: 0,\r\n DynamicDDL: [],\r\n SelectedDynamicId: [],\r\n SchemeName: \"\",\r\n // SchemeDesc: '',\r\n ValidFrm: \"\",\r\n ValidTo: \"\",\r\n LoyaltyPoints: 0,\r\n IsActive: true,\r\n selectedMapping: null,\r\n });\r\n\r\n let errors = this.state.formError;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = \"\";\r\n });\r\n }\r\n\r\n // add user\r\n hideFunc() {\r\n this.setState({\r\n visible: false,\r\n buttonLabel: \"Submit\",\r\n formHeading: \"Design Scheme\",\r\n });\r\n this.formReset();\r\n }\r\n\r\n getCurrentDate() {\r\n var today = new Date();\r\n var dd = today.getDate();\r\n\r\n var mm = today.getMonth() + 1;\r\n var yyyy = today.getFullYear();\r\n if (dd < 10) {\r\n dd = \"0\" + dd;\r\n }\r\n\r\n if (mm < 10) {\r\n mm = \"0\" + mm;\r\n }\r\n // today = mm + '-' + dd + '-' + yyyy;\r\n // today = mm + '/' + dd + '/' + yyyy;\r\n // today = dd + '-' + mm + '-' + yyyy;\r\n today = mm + \"/\" + dd + \"/\" + yyyy;\r\n return today;\r\n }\r\n\r\n // submit form\r\n submitForm(event) {\r\n ;\r\n this.setState({ viewmapping: false });\r\n event.preventDefault();\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formError;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key];\r\n let valid = this.validateForm(val, key);\r\n //form not valid\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n // if (this.state.buttonLabel.includes(\"Submit\")) {\r\n // isfrmvalid = this.state.mappingData.length < 1 ? false : true;\r\n // if (!isfrmvalid) {\r\n // let error = this.state.formError;\r\n // error.DynamicId = \"Checklist in table for loyalty is null\";\r\n // }\r\n // }\r\n //form valid\r\n if (isfrmvalid) {\r\n // let val=[];\r\n // if(this.state.mappingData.length>0){\r\n // (this.state.mappingData).forEach(ele=>{\r\n // val.push({id:ele[\"MappingId\"]})\r\n // })\r\n //}\r\n ;\r\n const formData = {\r\n SchemeId: this.state.SchemeId,\r\n SchemeType: this.state.SchemeType,\r\n SchemeBeneficiary:\r\n typeof this.state.SchemeBeneficiary != \"number\"\r\n ? 0\r\n : this.state.SchemeBeneficiary,\r\n DynamicIds: this.state.SelectedDynamicId,\r\n SchemeName: this.state.SchemeName,\r\n // SchemeDesc: this.state.SchemeDesc,\r\n locationCodes: this.state.stateID == null ? [] : this.state.stateID,\r\n ValidFrm: this.state.ValidFrm.toLocaleDateString(),\r\n ValidTo: this.state.ValidTo.toLocaleDateString(),\r\n //LoyaltyPoints: this.state.LoyaltyPoints,\r\n IsActive: this.state.IsActive,\r\n mappingData:\r\n this.state.selectedMapping == null ? [] : this.state.selectedMapping,\r\n };\r\n this.setState({ updateLoader: false });\r\n setTimeout(() => {\r\n this.SchemeService.CreateScheme(formData).then((data) => {\r\n ;\r\n const resdata = data.data;\r\n //if ResponseCode is 200 success else error or warning message\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.refs.child.showSuccess(resdata.ResponseMessage);\r\n this.setState({\r\n loading: true,\r\n visible: false,\r\n updateLoader: true,\r\n });\r\n this.formReset();\r\n\r\n this.GetSchemesConfiguration();\r\n } else {\r\n this.setState({\r\n loading: true,\r\n visible: false,\r\n updateLoader: true,\r\n });\r\n this.formReset();\r\n this.refs.child.showWarn(resdata.ResponseMessage);\r\n }\r\n\r\n // if (resdata.ResponseCode === '200') {\r\n // this.refs.child.showSuccess(resdata.ResponseMessage);\r\n // this.GetSchemes();\r\n // } else {\r\n // this.refs.child.showError(resdata.ResponseMessage);\r\n // }\r\n });\r\n }, 1000);\r\n }\r\n }\r\n\r\n actionTemplate(rowData, column) {\r\n const editMode = (e) => {\r\n ;\r\n var schemtyp = this.state.SchemeDDL.find(\r\n (x) => x.name == rowData.SchemeType\r\n )?.value;\r\n if (schemtyp) {\r\n this.GetDynamicDDL(schemtyp, null, 0);\r\n }\r\n setTimeout(() => {\r\n this.SchemeService.GetSchemeDataById(rowData.SchemeId).then((data) => {\r\n ;\r\n const resdata = data.data;\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.setState({\r\n SelectedDynamicId: resdata.ResponseData.DynamicIds,\r\n stateID: resdata.ResponseData.locationCodes,\r\n });\r\n this.myRef.current.state.selectedValues =\r\n resdata.ResponseData.DynamicIds;\r\n }\r\n });\r\n }, 1000);\r\n this.minDate = new Date(rowData.ValidFrm);\r\n\r\n this.setState({\r\n isEdit: true,\r\n visible: true,\r\n buttonLabel: \"Update\",\r\n formHeading: \"Extend or Change Status of Scheme\",\r\n SchemeId: rowData.SchemeId,\r\n SchemeName: rowData.SchemeName,\r\n SchemeType: rowData.SchemeType,\r\n SchemeBeneficiary: rowData.SchemeBeneficiary,\r\n //DynamicId: rowData.DynamicId,\r\n //SchemeDesc: this.state.SchemeDesc,\r\n //stateID: rowData.stateID,\r\n ValidFrm: new Date(rowData.ValidFrm),\r\n ValidTo: new Date(rowData.ValidTo),\r\n LoyaltyPoints: rowData.LoyaltyPoints,\r\n IsActive: rowData.IsActive,\r\n });\r\n // let checkbox = document.getElementsByName('IsActive');\r\n // checkbox[0].checked = rowData.IsActive;\r\n };\r\n\r\n return (\r\n \r\n \r\n {/* */}\r\n \r\n );\r\n }\r\n\r\n // add checkbox function\r\n activeTemplate(rowData, column) {\r\n return (\r\n // onChange={e => { this.actionTemplate(e, rowData) }} />\r\n );\r\n }\r\n\r\n // // edit form\r\n // actionTemplate(e, rowData) {\r\n\r\n // const formData = {\r\n\r\n // IsActive: e.target.checked,\r\n // SchemeMapingId: rowData.SchemeId\r\n // }\r\n\r\n // setTimeout(() => {\r\n // this.SchemeService.InActiveSchemeConfig(formData).then(data => {\r\n // const resdata = data.data;\r\n // //if ResponseCode is 200 success else error or warning message\r\n\r\n // if (resdata !== null && resdata.ResponseCode === '200') {\r\n // this.refs.child.showSuccess(resdata.ResponseMessage);\r\n // this.GetSchemesConfiguration();\r\n\r\n // } else {\r\n // this.refs.Messchild.showWarn('Someting went wrong');\r\n // console.log(`Error Encountered ${resdata.ResponseMessage}`);\r\n // }\r\n\r\n // // if (resdata.ResponseCode === '200') {\r\n // // this.refs.child.showSuccess(resdata.ResponseMessage);\r\n // // this.GetSchemes();\r\n // // } else {\r\n // // this.refs.child.showError(resdata.ResponseMessage);\r\n // // }\r\n // });\r\n // }, 1000);\r\n // }\r\n\r\n getAllMappings(event) {\r\n this.setState({\r\n mappingData: null,\r\n selectedMapping: null,\r\n select: null,\r\n });\r\n event.preventDefault();\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formError;\r\n ;\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key];\r\n let valid = this.validateForm(val, key);\r\n //form not valid\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n // if (this.state.buttonLabel.includes(\"Submit\")) {\r\n // isfrmvalid = this.state.mappingData.length < 1 ? false : true;\r\n // if (!isfrmvalid) {\r\n // let error = this.state.formError;\r\n // error.DynamicId = \"Checklist in table for loyalty is null\";\r\n // }\r\n // }\r\n if (this.state.SelectedDynamicId.length != 0 && isfrmvalid) {\r\n this.setState({ viewmapping: true });\r\n\r\n this.ProductService.GetMappings(\r\n this.state.SelectedDynamicId,\r\n this.state.SchemeType\r\n ).then((data) => {\r\n const resdata = data.data;\r\n ;\r\n //if ResponseCode is 200\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.setState({\r\n mappingData: resdata.ResponseData,\r\n });\r\n }\r\n });\r\n } else {\r\n //this.refs.child.showWarn(\"Please Select Scheme On and Scheme Category first\")\r\n }\r\n }\r\n\r\n getMappings(id) {\r\n // this.setState({\r\n // mappingData: [],\r\n // });\r\n //this.setState({ viewmapping: true });\r\n this.ProductService.GetMapping(id, this.state.SchemeType).then((data) => {\r\n const resdata = data.data;\r\n ;\r\n //if ResponseCode is 200\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n var tmp = this.state.mappingData;\r\n if (tmp == undefined || tmp.length == 0) {\r\n console.log(resdata.ResponseData);\r\n this.setState({\r\n mappingData: resdata.ResponseData,\r\n });\r\n } else {\r\n tmp.push(resdata.ResponseData);\r\n this.setState({\r\n mappingData: tmp,\r\n });\r\n }\r\n }\r\n });\r\n }\r\n // sort page event\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField = event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetSchemesConfiguration();\r\n }\r\n\r\n onSelect(selectedList, selectedItem) {\r\n this.setState({\r\n SelectedDynamicId: [...this.state.SelectedDynamicId, selectedItem],\r\n });\r\n //this.getMappings(selectedItem.value);\r\n }\r\n\r\n onRemove(selectedList, removedItem) {\r\n this.setState({\r\n SelectedDynamicId: this.state.SelectedDynamicId.filter(\r\n (item) => item.value != removedItem.value\r\n ),\r\n });\r\n // if (this.state.selectedMapping != null) {\r\n // this.setState({\r\n // selectedMapping: this.state.selectedMapping.filter(\r\n // (mapping) => mapping.Id != removedItem.value\r\n // ),\r\n // });\r\n // }\r\n }\r\n\r\n onSelectState(selectedList, selectedItem) {\r\n ;\r\n this.setState({\r\n stateID: [...this.state.stateID, selectedItem],\r\n });\r\n }\r\n\r\n onRemoveState(selectedList, removedItem) {\r\n ;\r\n this.setState({\r\n stateID: this.state.stateID.filter((id) => id.value != removedItem.value),\r\n });\r\n }\r\n\r\n LocationSelectAll(e) {\r\n ;\r\n if (e.target.checked) {\r\n this.setState({\r\n stateID: this.state.stateDDL,\r\n });\r\n } else {\r\n this.setState({\r\n stateID: [],\r\n });\r\n this.LocRef.current.resetSelectedValues();\r\n }\r\n }\r\n\r\n // return HTML\r\n //resolved KREP-102\r\n render() {\r\n const items = [{ label: \"Masters\" }, { label: \"Scheme Design\" }];\r\n\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n\r\n const note = (\r\n \r\n );\r\n const updatednote = (\r\n \r\n );\r\n const MappingSelector = (\r\n this.setState({ viewmapping: false })}\r\n >\r\n
      Select Rows to Avail the Offer
      \r\n {\r\n ;\r\n if (this.state.selectedMapping == null) {\r\n this.setState({ selectedMapping: e.value });\r\n } else {\r\n for (var i = 0; i < e.value.length; i++)\r\n this.setState({\r\n selectedMapping: [...this.state.selectedMapping, e.value[i]],\r\n });\r\n }\r\n this.setState({ select: e.value });\r\n }}\r\n dataKey=\"MappingId\"\r\n responsiveLayout=\"scroll\"\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 \r\n \r\n
      \r\n
      \r\n
      \r\n

      Scheme Design

      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n {/* \r\n */}\r\n \r\n\r\n \r\n \r\n {this.state.viewmapping ? MappingSelector : null}\r\n \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.SchemeName !== null ? (\r\n
      {this.state.formError.SchemeName}
      \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 {this.state.formError.LoyaltyPoints !== null ? (\r\n
      \r\n {this.state.formError.LoyaltyPoints}\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 this.setState({ SchemeType: e.target.value });\r\n this.GetDynamicDDL(e.target.value);\r\n }}\r\n value={this.state.SchemeType}\r\n className=\"form-control\"\r\n placeholder={this.state.SchemeType}\r\n name=\"SchemeType\"\r\n options={this.state.SchemeDDL}\r\n />\r\n {this.state.formError.SchemeType !== null ? (\r\n
      {this.state.formError.SchemeType}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n {\r\n this.setState({ SchemeBeneficiary: e.target.value });\r\n }}\r\n value={this.state.SchemeBeneficiary}\r\n className=\"form-control\"\r\n placeholder={this.state.SchemeBeneficiary}\r\n name=\"SchemeBeneficiary\"\r\n options={this.state.SchemeBeneficiaryDDL}\r\n />\r\n {this.state.formError.SchemeBeneficiary !== null ? (\r\n
      \r\n {this.state.formError.SchemeBeneficiary}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formError.SelectedDynamicId !== null ? (\r\n
      \r\n {this.state.formError.SelectedDynamicId}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n
      \r\n \r\n \r\n {\r\n ;\r\n return (\r\n {;\r\n if(parseInt(event.target.value) < 1){\r\n this.refs.child.showWarn(\"Enter Points Greater than 0\")\r\n }\r\n var ele = event.target.parentNode.parentNode.textContent;\r\n var tmp = this.state.SelectedDynamicId;\r\n tmp = tmp.map((element) => {\r\n if (element.label == ele) {\r\n element.Points = event.target.value;\r\n }\r\n return element;\r\n });\r\n this.setState({\r\n SelectedDynamicId: tmp,\r\n });\r\n }}\r\n value={rowdata.Points}\r\n placeholder=\"Enter Points\"\r\n />\r\n );\r\n }}\r\n header=\"Loyalty Points\"\r\n style={{ width: \"50px\" }}\r\n />\r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {/* */}\r\n {this.state.formError.ValidFrm !== null ? (\r\n
      {this.state.formError.ValidFrm}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {/* */}\r\n {this.state.formError.ValidTo !== null ? (\r\n
      {this.state.formError.ValidTo}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n this.setState({ IsActive: e.target.checked })\r\n }\r\n />\r\n
      \r\n\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n {this.state.buttonLabel.includes(\"Submit\") ? note : updatednote}{\" \"}\r\n
      \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Column } from \"primereact/column\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport { Button } from \"primereact/button\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport { ConfirmationModal } from \"../../template/ConfirmationModal\";\r\nimport CategoryService from \"../../services/CategoryService\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport { confirmAlert } from \"react-confirm-alert\"; // Import\r\nimport \"react-confirm-alert/src/react-confirm-alert.css\"; // Import css\r\nimport Loaders from \"../../template/Loaders\";\r\nimport $ from \"jquery\";\r\nimport { CSVLink } from \"react-csv\";\r\n\r\n// create Category\r\nexport default class Category extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.CategoryService = new CategoryService();\r\n this.tblResponse = new tableRequest();\r\n this.tblResponseExport = new tableRequest();\r\n this.state = {\r\n headsMG1: [\"NameMG1\", \"CreatedDate\"],\r\n headsMG2: [\"NameMG2\", \"CreatedDate\"],\r\n headsMG3: [\"NameMG3\", \"CreatedDate\"],\r\n exportDataMG1: [],\r\n exportDataMG2: [],\r\n exportDataMG3: [],\r\n MG1: false,\r\n MG2: false,\r\n MG3: false,\r\n updateLoader: false,\r\n sortOrder: \"\",\r\n NameMG1: \"\",\r\n MG1Id: \"\",\r\n MG2Id: \"\",\r\n MG3Id: \"\",\r\n val: \"\",\r\n // CategoryDDLMG1: [],\r\n // CategoryDDLMG2: [],\r\n IsActiveMG1: false,\r\n IsActiveMG2: false,\r\n IsActiveMG3: false,\r\n\r\n formErrorMG1: {\r\n NameMG1: \"\",\r\n },\r\n formErrorMG2: {\r\n NameMG2: \"\",\r\n },\r\n formErrorMG3: {\r\n NameMG3: \"\",\r\n },\r\n\r\n formHeadingMG1: \"Category\",\r\n buttonLabelMG1: \"Submit\",\r\n // formHeadingMG2: \"Sub Group Category\",\r\n buttonLabelMG2: \"Submit\",\r\n // formHeadingMG3: \"Sub Divison Category\",\r\n buttonLabelMG3: \"Submit\",\r\n salesMG1: [],\r\n salesMG2: [],\r\n salesMG3: [],\r\n loading: true,\r\n firstMG1: 0,\r\n firstMG2: 0,\r\n firstMG3: 0,\r\n rowsMG1: 5,\r\n rowsMG2: 5,\r\n rowsMG3: 5,\r\n totalRecordsMG1: 0,\r\n totalRecordsMG2: 0,\r\n totalRecordsMG3: 0,\r\n globalFilterMG1: null,\r\n globalFilterMG2: null,\r\n globalFilterMG3: null,\r\n emptyMessage: \"No Data found\",\r\n };\r\n\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.actionTemplateMG2 = this.actionTemplateMG2.bind(this);\r\n this.actionTemplateMG3 = this.actionTemplateMG3.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.submitFormMG1 = this.submitFormMG1.bind(this);\r\n this.submitFormMG2 = this.submitFormMG2.bind(this);\r\n this.submitFormMG3 = this.submitFormMG3.bind(this);\r\n this.hideFuncMG1 = this.hideFuncMG1.bind(this);\r\n // this.hideFuncMG2 = this.hideFuncMG2.bind(this);\r\n // this.hideFuncMG3 = this.hideFuncMG3.bind(this);\r\n this.onPage = this.onPage.bind(this);\r\n //this.formReset = this.formReset.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.onPageMG2 = this.onPageMG2.bind(this);\r\n this.searchFilterMG2 = this.searchFilterMG2.bind(this);\r\n this.onPageMG3 = this.onPageMG3.bind(this);\r\n this.searchFilterMG3 = this.searchFilterMG3.bind(this);\r\n this.openDialog = this.openDialog.bind(this);\r\n this.subgroup = this.subgroup.bind(this);\r\n this.subdivgroup = this.subdivgroup.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n this.onSortMG2 = this.onSortMG2.bind(this);\r\n this.onSortMG3 = this.onSortMG3.bind(this);\r\n\r\n this.GetMG1Export = this.GetMG1Export.bind(this);\r\n this.GetMG2Export = this.GetMG2Export.bind(this);\r\n this.GetMG3Export = this.GetMG3Export.bind(this);\r\n }\r\n\r\n //trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n //this.GetDDL()\r\n this.GetCategoriesMG1();\r\n this.GetCategoriesMG2();\r\n this.GetCategoriesMG3();\r\n }, 1000);\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n\r\n this.tblResponseExport.PageSize = -1;\r\n this.tblResponseExport.First = 1;\r\n this.tblResponseExport.IsActive = true;\r\n this.tblResponseExport.SearchValue = \"\";\r\n this.tblResponseExport.SortOrder = \"ASC\";\r\n this.tblResponseExport.IsActiveMG3 = \"%\";\r\n this.GetMG1Export();\r\n this.GetMG2Export();\r\n this.GetMG3Export();\r\n }\r\n\r\n // get carton data list from api\r\n GetMG1Export() {\r\n this.tblResponseExport.SortColumn = \"CreatedDate\";\r\n this.CategoryService.GetCategoriesMG1(this.tblResponseExport).then(\r\n (data) => {\r\n const resdata = data.data;\r\n //when response data is not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n exportDataMG1: resdata.ResponseData,\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n // get carton data list from api\r\n GetMG2Export() {\r\n this.tblResponseExport.SortColumn = \"CreatedDate\";\r\n this.CategoryService.GetCategoriesMG2(this.tblResponseExport).then(\r\n (data) => {\r\n const resdata = data.data;\r\n //when response data is not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n exportDataMG2: resdata.ResponseData,\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n // get carton data list from api\r\n GetMG3Export() {\r\n this.tblResponseExport.SortColumn = \"CreatedDate\";\r\n this.tblResponse.IsActiveMG3 = \"%\";\r\n this.CategoryService.GetCategoriesMG3(this.tblResponseExport).then(\r\n (data) => {\r\n const resdata = data.data;\r\n //when response data is not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n exportDataMG3: resdata.ResponseData,\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n //loading page\r\n onPage(event) {\r\n this.setState({\r\n rowsMG1: event.rows,\r\n totalRecordsMG1: this.state.salesMG1.length,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetCategoriesMG1();\r\n }, 250);\r\n }\r\n onPageMG2(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValuesMG2(event);\r\n this.GetCategoriesMG2();\r\n }, 250);\r\n }\r\n onPageMG3(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValuesMG3(event);\r\n this.GetCategoriesMG3();\r\n }, 250);\r\n }\r\n\r\n // get list of data\r\n getLazyLoadingValues(event) {\r\n this.setState({ rowsMG1: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.PageNo = event.pageCount;\r\n this.tblResponse.IsActiveMG1 = \"%\";\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n // this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n }\r\n getLazyLoadingValuesMG2(event) {\r\n this.setState({ rowsMG2: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.PageNo = event.pageCount;\r\n this.tblResponse.IsActiveMG1 = \"%\";\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n // this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n }\r\n getLazyLoadingValuesMG3(event) {\r\n this.setState({ rowsMG3: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.first = event.first + 1;\r\n this.tblResponse.PageNo = event.pageCount;\r\n this.tblResponse.IsActiveMG3 = \"%\";\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n // this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n }\r\n\r\n // get users data list from api\r\n GetCategoriesMG1() {\r\n this.tblResponse.SortColumn = \"CreatedDt\";\r\n this.CategoryService.GetCategoriesMG1(this.tblResponse).then((data) => {\r\n const resdata = data.data;\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n //when response data is not null\r\n this.setState({\r\n totalRecordsMG1: resdata.ResponseData[0].TotalRows,\r\n firstMG1: this.tblResponse.First - 1,\r\n salesMG1: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n updateLoader: true,\r\n });\r\n }\r\n // when responsedata is null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecordsMG1: 0,\r\n firstMG1: 1,\r\n salesMG1: null,\r\n loading: false,\r\n updateLoader: true,\r\n });\r\n }\r\n console.log(\"dcsd\" + this.state.totalRecordsMG1);\r\n });\r\n }\r\n GetCategoriesMG2() {\r\n this.tblResponse.SortColumn = \"CreatedDt\";\r\n this.CategoryService.GetCategoriesMG2(this.tblResponse).then((data) => {\r\n const resdata = data.data;\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n //when response data is not null\r\n this.setState({\r\n totalRecordsMG2: resdata.ResponseData[0].TotalRows,\r\n firstMG2: this.tblResponse.First - 1,\r\n salesMG2: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n updateLoader: true,\r\n });\r\n }\r\n\r\n // when responsedata is null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecordsMG2: 0,\r\n firstMG2: 1,\r\n salesMG2: null,\r\n loading: false,\r\n updateLoader: true,\r\n });\r\n }\r\n\r\n console.log(\"dcsd 2\" + this.state.totalRecordsMG2);\r\n });\r\n }\r\n GetCategoriesMG3() {\r\n this.tblResponse.SortColumn = \"CreatedDt\";\r\n this.CategoryService.GetCategoriesMG3(this.tblResponse).then((data) => {\r\n const resdata = data.data;\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n //when response data is not null\r\n this.setState({\r\n totalRecordsMG3: resdata.ResponseData[0].TotalRows,\r\n firstMG3: this.tblResponse.First - 1,\r\n salesMG3: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n updateLoader: true,\r\n });\r\n }\r\n // when responsedata is null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecordsMG3: 0,\r\n firstMG3: 1,\r\n salesMG3: null,\r\n loading: false,\r\n updateLoader: true,\r\n });\r\n }\r\n });\r\n }\r\n\r\n /// validate form\r\n validateForm(value, name, error) {\r\n let errors = error;\r\n let IsValid = true;\r\n //this switch case is used for each form field to validate\r\n switch (name) {\r\n // case 'CategoryId':\r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.CategoryId = \"Please select category.\";\r\n // } else errors.CategoryId = ''\r\n // break;\r\n case \"NameMG1\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.NameMG1 = \"Please enter Category.\";\r\n } else errors.NameMG1 = \"\";\r\n break;\r\n case \"NameMG2\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.NameMG2 = \"Please enter Sub category.\";\r\n } else errors.NameMG2 = \"\";\r\n break;\r\n\r\n case \"NameMG3\":\r\n if (value == undefined || value == \"\") {\r\n IsValid = false;\r\n errors.NameMG3 = \"Please Enter Sub Division category.\";\r\n } else errors.NameMG3 = null;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return IsValid;\r\n }\r\n\r\n // call every change of form and validation part also\r\n handleChange(event) {\r\n if (typeof event == \"undefined\") {\r\n return;\r\n }\r\n const { name, value } = event.target;\r\n // if (name == 'MG1Id') {\r\n // this.CategoryService.GetCategoryDDLMG2(value).then((data) => {\r\n // const resdata = data.data;\r\n // ;\r\n // if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n // this.setState({\r\n\r\n // MG2Id: '',\r\n // CategoryDDLMG2: resdata.ResponseData\r\n // });\r\n\r\n // }\r\n // });\r\n // }\r\n let errors = this.state.formError;\r\n //this.validateForm(value, name);\r\n this.setState({ errors, [name]: value });\r\n //this statement will set state value for IsActive\r\n if (name == \"IsActiveMG1\")\r\n this.setState({\r\n IsActiveMG1: event.target.checked,\r\n });\r\n if (name == \"IsActiveMG2\")\r\n this.setState({\r\n IsActiveMG2: event.target.checked,\r\n });\r\n if (name == \"IsActiveMG3\")\r\n this.setState({\r\n IsActiveMG3: event.target.checked,\r\n });\r\n }\r\n\r\n // Open Dialog\r\n openDialog() {\r\n this.setState({\r\n MG1: true,\r\n NameMG1: \"\",\r\n IsActiveMG1: true,\r\n formErrorMG1: {\r\n NameMG1: \"\",\r\n },\r\n });\r\n let errors = this.state.formErrorMG1;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = \"\";\r\n });\r\n }\r\n // GetDDL() {\r\n\r\n // this.CategoryService.GetCategoryDDLMG1().then((data) => {\r\n // const resdata = data.data;\r\n // if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n // this.setState({\r\n // CategoryDDLMG1: resdata.ResponseData\r\n // });\r\n\r\n // }\r\n // })\r\n\r\n // }\r\n subgroup() {\r\n // this.CategoryService.GetCategoryDDLMG1().then((data) => {\r\n // const resdata = data.data;\r\n // if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n // this.setState({\r\n // CategoryDDLMG1: resdata.ResponseData\r\n // });\r\n\r\n // }\r\n // });\r\n this.setState({\r\n MG2: true,\r\n MG2Id: \"\",\r\n NameMG2: \"\",\r\n IsActiveMG2: true,\r\n formErrorMG2: {\r\n NameMG2: \"\",\r\n },\r\n });\r\n let errors = this.state.formErrorMG2;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = \"\";\r\n });\r\n }\r\n subdivgroup() {\r\n // this.CategoryService.GetCategoryDDLMG1().then((data) => {\r\n // const resdata = data.data;\r\n // if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n // this.setState({\r\n // CategoryDDLMG1: resdata.ResponseData\r\n // });\r\n\r\n // }\r\n // });\r\n this.setState({\r\n MG3: true,\r\n MG3Id: \"\",\r\n NameMG3: \"\",\r\n IsActiveMG3: true,\r\n formErrorMG3: {\r\n NameMG3: \"\",\r\n },\r\n });\r\n let errors = this.state.formErrorMG2;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = \"\";\r\n });\r\n }\r\n // reset form text value\r\n\r\n // Hide Func\r\n hideFuncMG1() {\r\n this.setState({\r\n MG1: false,\r\n buttonLabelMG1: \"Submit \",\r\n formHeadingMG1: \"Add Category\",\r\n });\r\n // this.formReset();\r\n }\r\n // hideFuncMG2() {\r\n // this.setState({\r\n // MG2: false,\r\n // buttonLabelMG2: \"Submit \",\r\n // formHeadingMG2: \"Add Sub Group Category\",\r\n // });\r\n // // this.formReset();\r\n // }\r\n // hideFuncMG3() {\r\n // this.setState({\r\n // MG3: false,\r\n // buttonLabelMG3: \"Submit\",\r\n // formHeadingMG3: \"Add Sub Divison Category\",\r\n // });\r\n // // this.formReset();\r\n // }\r\n submitFormMG3(event) {\r\n event.preventDefault();\r\n\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formErrorMG3;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key];\r\n let valid = this.validateForm(val, key, checkerror);\r\n //when form validation is not valid\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n if (isfrmvalid) {\r\n this.setState({ updateLoader: false });\r\n const formData = {\r\n CategoryIdMG3: this.state.MG3Id === \"\" ? 0 : parseInt(this.state.MG3Id),\r\n NameMG3: this.state.NameMG3,\r\n IsActiveMG3: this.state.IsActiveMG3,\r\n };\r\n\r\n setTimeout(() => {\r\n this.CategoryService.CreateUpdateCategoryMG3(formData).then((data) => {\r\n const resdata = data.data;\r\n //when data is not null it will give success message else will move to 'else statement'\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.refs.Messchild.showSuccess(\r\n resdata.ResponseMessage + \" Successfully\"\r\n );\r\n this.GetCategoriesMG3();\r\n this.setState({\r\n loading: true,\r\n MG3: false,\r\n updateLoader: true,\r\n });\r\n // this.formReset();\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }, 100);\r\n }\r\n }\r\n\r\n submitFormMG2(event) {\r\n event.preventDefault();\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formErrorMG2;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key];\r\n let valid = this.validateForm(val, key, checkerror);\r\n //when form validation is not valid\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n if (isfrmvalid) {\r\n this.setState({ updateLoader: false });\r\n const formData = {\r\n CategoryIdMG2: this.state.MG2Id === \"\" ? 0 : parseInt(this.state.MG2Id),\r\n NameMG2: this.state.NameMG2,\r\n IsActiveMG2: this.state.IsActiveMG2,\r\n };\r\n\r\n setTimeout(() => {\r\n this.CategoryService.CreateUpdateCategoryMG2(formData).then((data) => {\r\n const resdata = data.data;\r\n //when data is not null it will give success message else will move to 'else statement'\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.refs.Messchild.showSuccess(\r\n resdata.ResponseMessage + \" Successfully\"\r\n );\r\n this.GetCategoriesMG2();\r\n this.setState({\r\n loading: true,\r\n MG2: false,\r\n updateLoader: true,\r\n });\r\n // this.formReset();\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }, 100);\r\n }\r\n }\r\n // submit form and create or update user\r\n submitFormMG1(event) {\r\n event.preventDefault();\r\n\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formErrorMG1;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key];\r\n let valid = this.validateForm(val, key, checkerror);\r\n //when form validation is not valid\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n\r\n //when isfrmvalid is true\r\n if (isfrmvalid) {\r\n this.setState({ updateLoader: false });\r\n const formData = {\r\n CategoryIdMG1: this.state.MG1Id === \"\" ? 0 : parseInt(this.state.MG1Id),\r\n NameMG1: this.state.NameMG1,\r\n IsActiveMG1: this.state.IsActiveMG1,\r\n };\r\n\r\n setTimeout(() => {\r\n this.CategoryService.CreateUpdateCategoryMG1(formData).then((data) => {\r\n const resdata = data.data;\r\n //when data is not null it will give success message else will move to 'else statement'\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.refs.Messchild.showSuccess(\r\n resdata.ResponseMessage + \" Successfully\"\r\n );\r\n this.GetCategoriesMG1();\r\n this.setState({\r\n loading: true,\r\n MG1: false,\r\n updateLoader: true,\r\n });\r\n // this.formReset();\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }, 100);\r\n }\r\n }\r\n\r\n // delete user data\r\n // deleteSubCategory(subCategoryId) {\r\n // setTimeout(() => {\r\n // this.CategoryService.DeleteSubCategory(subCategoryId).then(data => {\r\n // const resdata = data.data;\r\n // if (resdata !== null && resdata.ResponseCode === '200') {\r\n // this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n // const totlrecord = this.state.totalRecords - 1;\r\n // const row = this.state.rows;\r\n\r\n // if (this.tblResponse.First >= totlrecord) {\r\n // const _curntCursor = Math.round(totlrecord / row);\r\n // this.tblResponse.First = _curntCursor + 1;\r\n // }\r\n // this.GetSubCategories();\r\n // } else {\r\n // this.refs.Messchild.showError(resdata.ResponseMessage);\r\n // }\r\n // });\r\n // }, 1000);\r\n // }\r\n\r\n // Search Filter data\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetCategoriesMG1();\r\n }\r\n searchFilterMG2(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetCategoriesMG2();\r\n }\r\n searchFilterMG3(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetCategoriesMG3();\r\n }\r\n\r\n // message\r\n callbackFunction = (childData) => {\r\n this.setState({ message: childData });\r\n };\r\n\r\n // disabled Checkbox\r\n activeTemplate(rowData, column) {\r\n return ;\r\n }\r\n activeTemplate2(rowData, column) {\r\n return ;\r\n }\r\n activeTemplate3(rowData, column) {\r\n return ;\r\n }\r\n // edit form\r\n actionTemplate(rowData, column) {\r\n const editMode = (e) => {\r\n this.setState({\r\n buttonLabelMG1: \"Update\",\r\n formHeadingMG1: \"Update Category\",\r\n MG1: true,\r\n MG1Id: rowData.CategoryIdMG1.toString(),\r\n NameMG1: rowData.NameMG1,\r\n IsActiveMG1: rowData.IsActiveMG1,\r\n });\r\n\r\n // let checkbox = document.getElementsByName('IsActive');\r\n\r\n //checkbox[0].checked = rowData.IsActive;\r\n };\r\n\r\n const deleteFunc = () => {\r\n // this.refs.child.confirmModal();\r\n // if (this.refs.child.state.confirm == true) {\r\n // this.deleteSubCategory(rowData.SubCategoryId);\r\n // } else {\r\n // }\r\n confirmAlert({\r\n title: \"Confirm to delete\",\r\n message: \"Are you sure to do this.\",\r\n buttons: [\r\n {\r\n label: \"Yes\",\r\n onClick: () => this.deleteSubCategory(rowData.SubCategoryId),\r\n },\r\n {\r\n label: \"No\",\r\n onClick: () => null,\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 actionTemplateMG2(rowData, column) {\r\n //const filterCatDDL = this.state.CategoryDDLMG1.filter(x => x.value == rowData.CategoryIdMG1);\r\n const editMode = (e) => {\r\n this.setState({\r\n buttonLabelMG2: \"Update\",\r\n formHeadingMG2: \"Update Sub Category\",\r\n MG2: true,\r\n // MG1Id: filterCatDDL.length != 0 ? rowData.CategoryIdMG1.toString() : \"\",\r\n MG2Id: rowData.CategoryIdMG2.toString(),\r\n NameMG2: rowData.NameMG2,\r\n IsActiveMG2: rowData.IsActiveMG2,\r\n });\r\n\r\n // let checkbox = document.getElementsByName('IsActive');\r\n //checkbox[0].checked = rowData.IsActive;\r\n };\r\n return (\r\n \r\n \r\n {/* */}\r\n \r\n );\r\n }\r\n actionTemplateMG3(rowData, column) {\r\n const editMode = (e) => {\r\n // const filterCatDDL = this.state.CategoryDDLMG1.filter(x => x.value == rowData.CategoryIdMG1);\r\n\r\n this.setState({\r\n buttonLabelMG3: \"Update\",\r\n formHeadingMG3: \"Update Sub Category\",\r\n MG3: true,\r\n // MG1Id: filterCatDDL.length != 0 ? rowData.CategoryIdMG1.toString() : \"\",\r\n\r\n // MG2Id: rowData.CategoryIdMG2.toString(),\r\n // NameMG2: rowData.NameMG2,\r\n MG3Id: rowData.CategoryIdMG3.toString(),\r\n NameMG3: rowData.NameMG3,\r\n IsActiveMG3: rowData.IsActiveMG3,\r\n });\r\n\r\n // let checkbox = document.getElementsByName('IsActive');\r\n //checkbox[0].checked = rowData.IsActive;\r\n };\r\n return (\r\n \r\n \r\n {/* */}\r\n \r\n );\r\n }\r\n\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField =\r\n event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetCategoriesMG1();\r\n }\r\n onSortMG2(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField =\r\n event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetCategoriesMG2();\r\n }\r\n onSortMG3(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField =\r\n event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetCategoriesMG3();\r\n }\r\n\r\n // create html part\r\n render() {\r\n const items = [{ label: \"Masters\" }, { label: \"Category Master\" }];\r\n\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n let header = (\r\n
      \r\n

      Category Master

      \r\n\r\n \r\n \r\n
      \r\n );\r\n // let headerMG3 = (\r\n //
      \r\n //

      Sub Division Category Master

      \r\n\r\n // \r\n // \r\n //
      \r\n // );\r\n // let headerMG2 = (\r\n //
      \r\n //

      Sub Category Master

      \r\n\r\n // \r\n // \r\n //
      \r\n // );\r\n\r\n // const categoryOption = this.state.CategoryDDL.map((category) =>\r\n // \r\n // );\r\n\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 \r\n {/* \r\n \r\n \r\n Export Sub Divison Group\r\n \r\n */}\r\n {/* \r\n \r\n \r\n Export Sub Group\r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n \r\n \r\n \r\n */}\r\n {/* \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formErrorMG1.NameMG1 !== \"\" ? (\r\n
      {this.state.formErrorMG1.NameMG1}
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n {/*
      \r\n \r\n
      \r\n
      \r\n\r\n \r\n {this.state.formErrorMG2.MG1Id !== null ? (\r\n
      {this.state.formErrorMG2.MG1Id}
      \r\n ) : null}\r\n
      */}\r\n\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formErrorMG2.NameMG2 !== \"\" ? (\r\n
      {this.state.formErrorMG2.NameMG2}
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n {/*
      \r\n \r\n
      \r\n
      \r\n\r\n \r\n {this.state.formErrorMG3.MG1Id !== null ? (\r\n
      {this.state.formErrorMG3.MG1Id}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formErrorMG3.MG2Id !== null ? (\r\n
      {this.state.formErrorMG3.MG2Id}
      \r\n ) : null}\r\n
      */}\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n {this.state.formErrorMG3.NameMG3 !== \"\" ? (\r\n
      {this.state.formErrorMG3.NameMG3}
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \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 instance from './DefaultApi';\r\n\r\nexport default class NumberGenerationService {\r\n ControllerName = 'NumberGeneration';\r\n\r\n // get all product Get Generated Numbers data\r\n GetGeneratedNumbers(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetGeneratedNumbers`, tableRequest).then(res => res)\r\n }\r\n\r\n // create new product Create Generated Number \r\n CreateGeneratedNumber(issueData) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/CreateGeneratedNumber`, issueData).then(res => res)\r\n }\r\n\r\n //get max from number to set new number issue\r\n GetFromNumbers(f) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetFromNumbers`,f).then(res => res)\r\n }\r\n\r\n DownloadNumber(data)\r\n {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/DownloadNumber`, data).then(res => res) \r\n }\r\n}","import React, { Component } from 'react';\r\nimport 'primereact/resources/themes/saga-blue/theme.css';\r\nimport 'primereact/resources/primereact.min.css';\r\nimport 'primeicons/primeicons.css';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { Column } from 'primereact/column';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport { Button } from 'primereact/button';\r\nimport { BreadCrumb } from 'primereact/breadcrumb';\r\nimport $ from \"jquery\";\r\nimport NumberGenerationService from '../../services/NumberGenerationService';\r\nimport MessageComponent from '../../template/Message';\r\nimport tableRequest from '../../models/tableRequest';\r\nimport ApiService from '../../services/apiService';\r\nimport Loaders from '../../template/Loaders';\r\n// TO Generate NUmber\r\nexport default class NumberGeneration extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.NumberGenerationService = new NumberGenerationService();\r\n this.ApiService = new ApiService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n visible: false,\r\n updateLoader: false,\r\n sortOrder: '',\r\n FromNo: '',\r\n ToNo: '',\r\n Qty: '',\r\n formError: {\r\n FromNo: null,\r\n ToNo: null,\r\n Qty: null,\r\n\r\n },\r\n prefix: '',\r\n downloadLink: '',\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: 'No Data found'\r\n }\r\n this.tblResponse.isAdmin = this.ApiService.getUserType() == 0 ? true : false\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.handleChnage = this.handleChnage.bind(this);\r\n this.onPage = this.onPage.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n }\r\n //trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.setState({\r\n prefix: this.ApiService.getFactoryPrefix()\r\n });\r\n this.GetGeneratedNumbers();\r\n }, 1000);\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n\r\n // call page event\r\n onPage(event) {\r\n this.setState({\r\n loading: true\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n\r\n this.getLazyLoadingValues(event);\r\n this.GetGeneratedNumbers();\r\n }, 250);\r\n }\r\n\r\n // get product issue number list data\r\n GetGeneratedNumbers() {\r\n \r\n this.tblResponse.SortColumn = 'CreatedDt';\r\n this.tblResponse.Prefix = this.ApiService.getFactoryPrefix();\r\n this.NumberGenerationService.GetGeneratedNumbers(this.tblResponse).then(data => {\r\n const resdata = data.data;\r\n \r\n //if response data is not null\r\n if (resdata !== null && resdata.ResponseData !== null && resdata.ResponseData.length > 0) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: (this.tblResponse.First - 1),\r\n sales: this.datasource.slice(0, ((this.tblResponse.First - 1) + this.tblResponse.PageSize)),\r\n loading: false,\r\n updateLoader: true\r\n\r\n });\r\n }\r\n ///if response data is null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false, updateLoader: true\r\n });\r\n }\r\n });\r\n }\r\n\r\n // show when edit record\r\n actionTemplate(rowData, column) {\r\n //to print\r\n const editMode = (e) => {\r\n this.NumberGenerationService.CreateGeneratedNumber(rowData).then(data => {\r\n\r\n const resdata = data.data;\r\n \r\n if (resdata.ResponseCode === '200') {\r\n \r\n this.refs.child.showSuccess(resdata.ResponseMessage);\r\n this.setState({\r\n loading: true,\r\n visible: false,\r\n downloadLink: resdata.downloadLinK,\r\n updateLoader: true\r\n });\r\n\r\n const link = document.createElement('a');\r\n link.href = resdata.downloadLinK;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n this.GetGeneratedNumbers();\r\n\r\n } else if (resdata.ResponseCode === '400') {\r\n this.refs.child.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.refs.child.showError(resdata.ResponseMessage);\r\n }\r\n\r\n });\r\n ////PRINT SLIP\r\n }\r\n return \r\n \r\n\r\n ;\r\n }\r\n\r\n\r\n //validate form\r\n //resolved KREP-17\r\n\r\n // call when input data on form\r\n handleChnage(event) {\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n\r\n this.setState({ errors, [name]: value });\r\n }\r\n\r\n\r\n\r\n // submit form to api\r\n\r\n ś\r\n // Get Next fromNO\r\n\r\n\r\n // set Lazy Loading Values\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = '1';\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? 'ASC' : 'DESC';\r\n }\r\n\r\n // search Filter table \r\n searchFilter(e) {\r\n this.setState({\r\n loading: true\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetGeneratedNumbers();\r\n }\r\n\r\n // Sort table\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField = event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? 'DESC' : 'ASC';\r\n this.GetGeneratedNumbers();\r\n }\r\n\r\n // Render html\r\n //resolved KREP-19\r\n render() {\r\n\r\n const items = [\r\n { label: 'Transaction' },\r\n { label: 'Number Generation' }\r\n ];\r\n\r\n const home = { icon: 'pi pi-home', url: '/dashboard' }\r\n let header = (\r\n \r\n );\r\n return (\r\n <>\r\n \r\n
      \r\n
      \r\n

      Number Download

      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n {}\r\n\r\n\r\n \r\n \r\n \r\n \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 'primereact/resources/primereact.min.css';\r\nimport 'primeicons/primeicons.css';\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { Column } from 'primereact/column';\r\nimport DispatchService from '../../services/DispatchService';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport tableRequest from '../../models/tableRequest.js';\r\nimport { BreadCrumb } from 'primereact/breadcrumb';\r\nimport { ConfirmationModal } from '../../template/ConfirmationModal';\r\nimport MessageComponent from '../../template/Message';\r\nimport Loaders from '../../template/Loaders';\r\nimport $ from 'jquery';\r\n\r\n\r\nexport default class DispatchReceive extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.DispatchService = new DispatchService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n DispatchId: \"\",\r\n globalFilter: null,\r\n visible: false,\r\n dispatchLoader: true,\r\n scanLoader: false,\r\n sortIcon: false,\r\n sortOrder: '1',\r\n formError: {\r\n DispatchId: \"\"\r\n },\r\n buttonLabel: 'Submit',\r\n sales: [],\r\n selectedStatus: null,\r\n receive: [],\r\n getrow: [],\r\n newrow: [],\r\n scanItems: [],\r\n stateover: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: 'No Data found'\r\n }\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.activeTemplate = this.activeTemplate.bind(this);\r\n\r\n\r\n this.submitForm = this.submitForm.bind(this);\r\n this.SubmitReceive = this.SubmitReceive.bind(this);\r\n\r\n this.handleChange = this.handleChange.bind(this);\r\n this.hideFunc = this.hideFunc.bind(this);\r\n this.onPage = this.onPage.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.openDialog = this.openDialog.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n }\r\n //trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.GetDispatchReceive();\r\n }, 1000);\r\n\r\n $('.p-column-title').on('click', function () {\r\n $(this).next().removeClass('pi-sort').toggleClass('pi-sort-up').addClass('pi-sort-down');\r\n });\r\n\r\n console.log(\"stateover1 :- \", this.state.stateover);\r\n }\r\n\r\n // PAGE EVENT CALL\r\n onPage(event) {\r\n this.setState({\r\n loading: true\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n \r\n\r\n this.getLazyLoadingValues(event);\r\n this.GetDispatchReceive();\r\n \r\n\r\n }, 250);\r\n\r\n\r\n }\r\n\r\n // set lazy loading values\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = true;\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? 'ASC' : 'DESC';\r\n }\r\n\r\n // get Dispatch Receive data list from api\r\n GetDispatchReceive() {\r\n \r\n this.tblResponse.SortColumn = 'DispatchId'\r\n this.DispatchService.GetDispatchReceive(this.tblResponse).then(data => {\r\n this.setState({ scanLoader: true });\r\n\r\n const resdata = data.data;\r\n //if ResponseData not null\r\n if (resdata !== null && resdata.ResponseData !== null && resdata.ResponseData.length > 0) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: (this.tblResponse.First - 1),\r\n sales: this.datasource.slice(0, ((this.tblResponse.First - 1) + this.tblResponse.PageSize)),\r\n loading: false\r\n });\r\n }\r\n //if ResponseData is null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false\r\n });\r\n }\r\n });\r\n }\r\n\r\n // get Dispatch Receive data list from api\r\n\r\n\r\n handleCheckboxChange = event => {\r\n let newArray = [...this.state.receive, event.target.id];\r\n this.setState({\r\n receive: newArray\r\n });\r\n };\r\n\r\n // call every change of form and validation part also\r\n handleChange(event) {\r\n\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n\r\n this.setState({ errors, [name]: value });\r\n }\r\n\r\n // validate form\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case 'DispatchId':\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.DispatchId = \"Please enter DispatchId.\";\r\n }\r\n else if (!value.includes(\"DID\")) {\r\n IsValid = false;\r\n errors.DispatchId = \"Invalid DispatchId.\";\r\n }\r\n else errors.DispatchId = ''\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return IsValid;\r\n }\r\n\r\n // reset form text value\r\n formReset() {\r\n this.setState({\r\n DispatchId: \"\",\r\n\r\n\r\n });\r\n let errors = this.state.formError;\r\n Object.entries(errors).map(([key]) => {\r\n errors[key] = '';\r\n });\r\n }\r\n\r\n hideFunc() {\r\n this.setState({\r\n visible: false,\r\n buttonLabel: \"Submit\",\r\n formHeading: \"Add Number Issue\",\r\n });\r\n this.formReset();\r\n }\r\n\r\n // open Dialog\r\n openDialog() {\r\n this.setState({ visible: true });\r\n this.formReset();\r\n }\r\n\r\n // submit packing\r\n submitForm(e) {\r\n\r\n ;\r\n // event.preventDefault(); \r\n let isfrmvalid = true;\r\n let checkerror = this.state.formError;\r\n // this.setState({\r\n // DispatchId : e.target.value\r\n // });\r\n\r\n Object.entries(checkerror).map(([key]) => {\r\n\r\n const val = this.state[key];\r\n let valid = this.validateForm(e.target.value, key);//KREP-59 defect\r\n //form is not valid\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n\r\n\r\n\r\n //form is valid\r\n if (isfrmvalid) {\r\n const formData = {\r\n\r\n DispatchId: e.target.value,\r\n }\r\n\r\n\r\n\r\n\r\n setTimeout(() => {\r\n // this.DispatchService.SaveDispatchReceive(formData).then(data => {\r\n // const resdata = data.data;\r\n // if (resdata !== null && resdata.ResponseCode === '200') {\r\n\r\n // this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n\r\n // this.setState({\r\n // loading: true,\r\n // visible: false\r\n // });\r\n\r\n // this.formReset();\r\n this.GetDispatchReceive();\r\n\r\n // } else if (resdata.ResponseCode === '400') {\r\n // this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n // } else {\r\n // this.refs.Messchild.showError(resdata.ResponseMessage);\r\n // }\r\n // });\r\n }, 1000);\r\n\r\n\r\n }\r\n }\r\n\r\n\r\n // submit packing\r\n getDispatchCarton(e) {\r\n\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formError;\r\n\r\n Object.entries(checkerror).map(([key]) => {\r\n\r\n const val = this.state[key];\r\n let valid = this.validateForm(e.target.value, key);//KREP-59 defect\r\n //form is not valid\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n //form is valid\r\n if (isfrmvalid) {\r\n const formData = {\r\n DispatchId: e.target.value,\r\n }\r\n\r\n this.DispatchService.GetDispatchReceiveCarton(formData).then(data => {\r\n \r\n this.setState({ dispatchLoader: true });\r\n const resdata = data.data;\r\n //if response data is not null success message will be shown else will move to 'else statement'\r\n if (resdata.ResponseCode == \"200\" && resdata !== null && resdata.ResponseData !== null && resdata.ResponseData.length > 0) {\r\n this.datasource = resdata.ResponseData;\r\n\r\n this.setState({\r\n carton: this.datasource,\r\n loading: false,\r\n DispatchId: ''\r\n });\r\n if (resdata.ResponseData[0].ResponseMessage != null) {\r\n this.refs.Messchild.showSuccess(resdata.ResponseData[0].ResponseMessage);\r\n }\r\n else {\r\n\r\n }\r\n\r\n } else {\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n this.datasource = null;\r\n this.setState({\r\n carton: null,\r\n loading: false\r\n });\r\n }\r\n });\r\n\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n // seach table\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetDispatchReceive();\r\n }\r\n\r\n callbackFunction = (childData) => {\r\n this.setState({ message: childData })\r\n }\r\n\r\n\r\n // add checkbox function\r\n activeTemplate(rowData, column) {\r\n\r\n return (\r\n { this.actionTemplate(e, rowData) }} />\r\n )\r\n }\r\n\r\n\r\n // edit form\r\n actionTemplate(e, rowData) {\r\n const getid = rowData.Id;\r\n this.state.newrow.push(getid);\r\n this.state.getrow.push({\r\n \"id\": rowData.Id\r\n })\r\n\r\n }\r\n\r\n\r\n SubmitReceive() {\r\n // if (!this.state.stateover.length > 0) {\r\n // this.refs.Messchild.showWarn(\"Please Select Cartons To Receive\");\r\n // return;\r\n // }\r\n \r\n this.setState({ dispatchLoader: false });\r\n const filterId = this.state.carton.filter(value => {\r\n\r\n this.state.stateover.push({ \"id\": value.DispatchId });\r\n });\r\n\r\n\r\n ;\r\n //if stateover is not null else will move to 'else statement'\r\n if (this.state.stateover != null) {\r\n this.DispatchService.DispatchCartonReceive(this.state.stateover).then(data => {\r\n const resdata = data.data;\r\n this.setState({ dispatchLoader: true });\r\n if (resdata !== null && resdata.ResponseCode === '200') {\r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n\r\n this.setState({\r\n carton: null\r\n });\r\n this.GetDispatchReceive();\r\n\r\n\r\n } else {\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n }\r\n\r\n\r\n });\r\n\r\n }\r\n else {\r\n\r\n\r\n this.DispatchService.DispatchCartonReceive(this.state.getrow).then(data => {\r\n const resdata = data.data;\r\n this.setState({ dispatchLoader: true });\r\n if (resdata !== null && resdata.ResponseCode === '200') {\r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n } else {\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n // Sort table\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1, sortIcon: !this.state.sortIcon });\r\n const sortField = event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? 'DESC' : 'ASC';\r\n this.GetDispatchReceive();\r\n console.log(event);\r\n }\r\n\r\n // create html part\r\n //resolved KREP-134,KREP-114(CR)\r\n render() {\r\n const items = [\r\n { label: 'Transaction' },\r\n { label: 'Dispatch Receive' }\r\n ];\r\n\r\n const home = { icon: 'pi pi-home', url: '/dashboard' }\r\n let header = (\r\n
      \r\n
      \r\n \r\n this.setState({ globalFilter: e.target.value })} placeholder=\"Global Search\" size=\"30\" />\r\n
      \r\n
      \r\n );\r\n //console.log(this.state.selectedStatus);\r\n let subheader = (\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      Scan Item:
      \r\n
      \r\n { this.handleChange(e) }} onKeyDown={e => { this.getDispatchCarton(e) }} className=\"custom-input\" name=\"DispatchId\" />\r\n {this.state.formError.DispatchId !== null ?\r\n
      {this.state.formError.DispatchId}
      : null}
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n this.setState({ globalFilter: e.target.value })} placeholder=\"Global Search\" size=\"30\" />\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

      Dispatch Receive

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

      Carton List

      \r\n
      \r\n \r\n this.setState({ selectedStatus: e.value })} responsive={true} header={subheader}\r\n emptyMessage={this.state.emptyMessage} value={this.state.carton} sortMode=\"multiple\"\r\n rows={this.state.rows} rowsPerPageOptions={[10, 50, 200,500]}\r\n lazy={true}\r\n onPage={this.onPage} onSort={this.onSort} className=\"tblAuto\">\r\n {/* */}\r\n \r\n \r\n \r\n \r\n {/* */}\r\n {/* */}\r\n \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 \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Column } from \"primereact/column\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport CompanyMasterService from \"../../services/CompanyMasterService\";\r\nimport WareHouseMaterService from \"../../services/WareHouseMaterService\";\r\nimport { Button } from \"primereact/button\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport { confirmAlert } from \"react-confirm-alert\"; // Import\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport { ConfirmationModal } from \"../../template/ConfirmationModal\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport $ from \"jquery\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport CountryService from \"../../services/CountryService\";\r\nimport { CSVLink } from \"react-csv\";\r\n// WareHouse Master\r\nexport default class WareHouseMaster extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.CompanyMasterService = new CompanyMasterService();\r\n this.WareHouseMaterService = new WareHouseMaterService();\r\n this.CountryService = new CountryService();\r\n this.tblResponse = new tableRequest();\r\n this.tblResponseExport = new tableRequest();\r\n this.state = {\r\n heads: [\r\n \"FirmName\",\r\n \"WCode\",\r\n \"Email\",\r\n \"MobileNo\",\r\n \"bill_Address1\",\r\n \"bill_Address2\",\r\n \"City\",\r\n \"State\",\r\n \"bill_Pincode\",\r\n \"CreatedDt\",\r\n ],\r\n exportData: [],\r\n IsFactory: false,\r\n Wcode: \"\",\r\n visible: false,\r\n ID: \"0\",\r\n chkbx: true,\r\n sortIcon: false,\r\n CompanyId: \"\",\r\n updateLoader: false,\r\n ship_City: \"\",\r\n ship_State: \"\",\r\n ship_Country: \"\",\r\n ship_Address1: \"\",\r\n ship_Address2: \"\",\r\n GST: \"\",\r\n bill_City: \"\",\r\n bill_State: \"\",\r\n bill_Country: \"\",\r\n bill_Address1: \"\",\r\n bill_Address2: \"\",\r\n bill_Pincode: \"\",\r\n FirmName: \"\",\r\n Email: \"\",\r\n MobileNo: \"\",\r\n IsActive: false,\r\n sortOrder: \"1\",\r\n formError: {\r\n Wcode: \"\",\r\n CompanyId: \"\",\r\n ship_Country: \"\",\r\n UserName: \"\",\r\n ship_City: \"\",\r\n ship_State: \"\",\r\n bill_City: \"\",\r\n bill_State: \"\",\r\n FirmName: \"\",\r\n bill_Country: \"\",\r\n bill_Pincode: \"\",\r\n bill_Address1: \"\",\r\n bill_Address2: \"\",\r\n GST: \"\",\r\n ship_Address1: \"\",\r\n ship_Address2: \"\",\r\n Email: \"\",\r\n ConfirmPassword: \"\",\r\n MobileNo: \"\",\r\n },\r\n\r\n formHeading: \"Add Warehouse\",\r\n buttonLabel: \"Submit\",\r\n sales: [],\r\n ship_citySelectItems: [],\r\n ship_stateSelectItems: [],\r\n ship_countrySelectItems: [],\r\n bill_citySelectItems: [],\r\n bill_stateSelectItems: [],\r\n bill_countrySelectItems: [],\r\n companyDDL: [],\r\n allstate: [],\r\n allcity: [],\r\n loading: true,\r\n first: 0,\r\n rows: 5,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n };\r\n\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.SameAsBilling = this.SameAsBilling.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n this.hideFunc = this.hideFunc.bind(this);\r\n this.onPage = this.onPage.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.openDialog = this.openDialog.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n this.GetWareHouseExport = this.GetWareHouseExport.bind(this);\r\n }\r\n //trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.GetWareHouse(this.tblResponse);\r\n this.GetCompany();\r\n this.GetStates(0);\r\n this.GetCities(0);\r\n }, 1000);\r\n\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n\r\n this.GetCountry();\r\n\r\n this.tblResponseExport.PageSize = -1;\r\n this.tblResponseExport.First = 1;\r\n this.tblResponseExport.IsActive = true;\r\n this.tblResponseExport.SearchValue = \"\";\r\n this.tblResponseExport.SortOrder = \"ASC\";\r\n this.tblResponseExport.IsWareHouse = true;\r\n this.GetWareHouseExport();\r\n }\r\n\r\n // get warehouse data list from api\r\n GetWareHouseExport() {\r\n this.tblResponseExport.SortColumn = \"CreatedDt\";\r\n this.WareHouseMaterService.Get(this.tblResponseExport).then((data) => {\r\n const resdata = data.data;\r\n //when response data is not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n exportData: resdata.ResponseData,\r\n });\r\n }\r\n });\r\n }\r\n\r\n //on page loading\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n }, 250);\r\n }\r\n\r\n // get list data\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = true;\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n\r\n this.GetWareHouse(this.tblResponse);\r\n }\r\n //to get country data\r\n GetCountry() {\r\n this.CountryService.GetCountries(\"101\").then((data) => {\r\n const resdata = data.data;\r\n //if resdata is not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.state.ship_countrySelectItems = resdata.ResponseData;\r\n this.state.bill_countrySelectItems = resdata.ResponseData;\r\n }\r\n });\r\n }\r\n\r\n SetState(cCode, fieldName) {\r\n if (fieldName == \"bill_Country\") {\r\n const resdata = this.state.allstate.filter((x) => x.CountryId == cCode);\r\n this.setState({\r\n bill_stateSelectItems: resdata,\r\n });\r\n }\r\n if (fieldName == \"ship_Country\") {\r\n const resdata = this.state.allstate.filter((x) => x.CountryId == cCode);\r\n this.setState({\r\n ship_stateSelectItems: resdata,\r\n });\r\n }\r\n }\r\n SetCity(sCode, fieldName) {\r\n if (fieldName == \"bill_State\") {\r\n const resdata = this.state.allcity.filter((x) => x.StateId == sCode);\r\n this.setState({\r\n bill_citySelectItems: resdata,\r\n });\r\n }\r\n if (fieldName == \"ship_State\") {\r\n const resdata = this.state.allcity.filter((x) => x.StateId == sCode);\r\n this.setState({\r\n ship_citySelectItems: resdata,\r\n });\r\n }\r\n }\r\n\r\n GetStates(cCode) {\r\n this.CountryService.GetStates(cCode).then((data) => {\r\n const resdata = data.data;\r\n\r\n this.setState({\r\n allstate: resdata.ResponseData,\r\n bill_stateSelectItems: resdata.ResponseData,\r\n ship_stateSelectItems: resdata.ResponseData,\r\n });\r\n\r\n // if(fieldName == 'bill_Country')\r\n // this.setState({\r\n // \"bill_stateSelectItems\" : resdata.ResponseData,\r\n // \"ship_stateSelectItems\" : resdata.ResponseData\r\n // });\r\n\r\n // if(fieldName == 'ship_Country')\r\n // this.setState({\r\n // \"ship_stateSelectItems\" : resdata.ResponseData\r\n // });\r\n });\r\n }\r\n\r\n GetCities(sCode) {\r\n this.CountryService.GetCities(sCode).then((data) => {\r\n const resdata = data.data;\r\n this.setState({\r\n allcity: resdata.ResponseData,\r\n bill_citySelectItems: resdata.ResponseData,\r\n ship_citySelectItems: resdata.ResponseData,\r\n });\r\n //if(fieldName == 'bill_State')\r\n // this.setState({\r\n // \"bill_citySelectItems\" : resdata.ResponseData,\r\n // \"ship_citySelectItems\" : resdata.ResponseData\r\n // });\r\n\r\n // if(fieldName == 'ship_State')\r\n // this.setState({\r\n // \"ship_citySelectItems\" : resdata.ResponseData\r\n // });\r\n });\r\n }\r\n\r\n // GetStates(cCode,fieldName) {\r\n\r\n // this.CountryService.GetStates(cCode).then(data =>{\r\n // const resdata = data.data;\r\n\r\n // if(fieldName == 'bill_Country')\r\n // this.setState({\r\n // \"bill_stateSelectItems\" : resdata.ResponseData\r\n // });\r\n\r\n // if(fieldName == 'ship_Country')\r\n // this.setState({\r\n // \"ship_stateSelectItems\" : resdata.ResponseData\r\n // });\r\n\r\n // });\r\n\r\n // }\r\n\r\n // GetCities(sCode,fieldName) {\r\n\r\n // let cCode = \"\";\r\n\r\n // this.CountryService.GetCities(sCode).then(data => {\r\n // const resdata = data.data;\r\n\r\n // if(fieldName == 'bill_State')\r\n // this.setState({\r\n // \"bill_citySelectItems\" : resdata.ResponseData\r\n // });\r\n\r\n // if(fieldName == 'ship_State')\r\n // this.setState({\r\n // \"ship_citySelectItems\" : resdata.ResponseData\r\n // });\r\n\r\n // });\r\n // }\r\n\r\n // get users data list from api\r\n GetWareHouse(tbl) {\r\n this.tblResponse.SortColumn = \"CreatedDt\";\r\n this.tblResponse.IsWareHouse = true;\r\n this.WareHouseMaterService.Get(this.tblResponse).then((data) => {\r\n const resdata = data.data;\r\n //if responsedata is not null sales state will be set with ResponseData\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n updateLoader: true,\r\n });\r\n }\r\n //if responsedata is null sales state will be set null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n updateLoader: true,\r\n });\r\n }\r\n });\r\n }\r\n\r\n // call every change of form and validation part also\r\n handleChange(event) {\r\n if (\r\n this.state.bill_Pincode != (null || undefined || \"\") &&\r\n this.state.bill_Address1 != (null || undefined || \"\") &&\r\n this.state.bill_Address2 != (null || undefined || \"\")\r\n ) {\r\n this.setState({\r\n chkbx: false,\r\n });\r\n }\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n\r\n const isValid = this.validateForm(value, name);\r\n this.setState({ errors, [name]: value });\r\n //to set state of IsActive\r\n if (name == \"IsActive\")\r\n this.setState({\r\n IsActive: event.target.checked,\r\n });\r\n }\r\n\r\n // call to update billing to shipping\r\n SameAsBilling(event) {\r\n if (event.target.checked) {\r\n this.setState({\r\n ship_countrySelectItems: this.state.bill_countrySelectItems,\r\n ship_stateSelectItems: this.state.bill_stateSelectItems,\r\n ship_citySelectItems: this.state.bill_citySelectItems,\r\n ship_Country: this.state.bill_Country,\r\n ship_State: this.state.bill_State,\r\n ship_City: this.state.bill_City,\r\n ship_Address1: this.state.bill_Address1,\r\n ship_Address2: this.state.bill_Address2,\r\n GST: this.state.bill_Pincode,\r\n });\r\n }\r\n }\r\n\r\n // Validate form\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"CompanyId\":\r\n if (value == undefined || value == \"\") {\r\n IsValid = false;\r\n errors.CompanyId = \"Please select Company\";\r\n } else {\r\n errors.CompanyId = \"\";\r\n }\r\n break;\r\n\r\n case \"FirmName\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.FirmName = \"Please enter WarehouseName.\";\r\n } else {\r\n errors.FirmName = \"\";\r\n }\r\n break;\r\n // case 'ship_Country':\r\n // if (value == undefined || value == \"\") {\r\n // IsValid = false;\r\n // errors.ship_Country = \"Please select country.\";\r\n // } else {\r\n // errors.ship_Country = '';\r\n // this.SetState(value.CountryId, name);\r\n // }\r\n\r\n // break;\r\n case \"bill_Country\":\r\n if (value == undefined || value == \"\") {\r\n IsValid = false;\r\n errors.bill_Country = \"Please select country.\";\r\n } else {\r\n errors.bill_Country = \"\";\r\n this.SetState(value.CountryId, name);\r\n }\r\n break;\r\n\r\n // case \"Wcode\":\r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.Wcode = \"Please enter Warehouse Code.\";\r\n // } else errors.Wcode = \"\";\r\n // break;\r\n // case 'FirmName':\r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.FirmName = \"Please enter your Firm name.\";\r\n // }\r\n // else if (value.length >= 1) {\r\n // if (!value.match(/^[A-Za-z]+$/)) {\r\n // IsValid = false;\r\n // errors.FirmName = \"FirmName should be alpha only.\"\r\n // } else errors.FirmName = ''\r\n // }\r\n // else errors.FirmName = ''\r\n // break;\r\n case \"LastName\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.LastName = \"Please enter your last name.\";\r\n } else if (value.length >= 1) {\r\n if (!value.match(/^[A-Za-z]+$/)) {\r\n IsValid = false;\r\n errors.LastName = \"LastName should be alpha only.\";\r\n } else errors.LastName = \"\";\r\n } else errors.LastName = \"\";\r\n break;\r\n // case \"Email\":\r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.Email = \"Please enter your email-id.\";\r\n // } else if (value.length >= 1) {\r\n // if (!value.match(/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/)) {\r\n // IsValid = false;\r\n // errors.Email = \"Please enter valid email-id.\";\r\n // } else errors.Email = \"\";\r\n // } else errors.Email = \"\";\r\n // break;\r\n // case \"MobileNo\":\r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.MobileNo = \"Please enter your mobile no.\";\r\n // } else if (value.length >= 1) {\r\n // if (!value.match(/^[6-9]\\d{9}$/)) {\r\n // IsValid = false;\r\n // errors.MobileNo = \"Please enter valid mobile no.\";\r\n // } else errors.MobileNo = \"\";\r\n // } else errors.MobileNo = \"\";\r\n // break;\r\n\r\n case \"IsActive\":\r\n this.setState({\r\n IsActive: value,\r\n });\r\n break;\r\n // case 'ship_City':\r\n // if (value == undefined || value == \"\") {\r\n // IsValid = false;\r\n // errors.ship_City = \"Please select city\";\r\n // } else\r\n // errors.ship_City = '';\r\n // break;\r\n case \"bill_City\":\r\n if (value == undefined || value == \"\") {\r\n IsValid = false;\r\n errors.bill_City = \"Please select city\";\r\n } else errors.bill_City = \"\";\r\n break;\r\n case \"bill_State\":\r\n if (value == undefined || value == \"\") {\r\n IsValid = false;\r\n errors.bill_State = \"Please select state\";\r\n } else {\r\n errors.bill_State = \"\";\r\n this.SetCity(value.StateId, name);\r\n }\r\n break;\r\n // case 'ship_State':\r\n // if (value == undefined || value == \"\") {\r\n // IsValid = false;\r\n // errors.ship_State = \"Please select state\";\r\n // } else {\r\n // errors.ship_State = '';\r\n // this.SetCity(value.StateId, name);\r\n // }\r\n // break;\r\n // case \"bill_Address1\":\r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.bill_Address1 = \"Please enter address1\";\r\n // }\r\n // break;\r\n // case \"bill_Address2\":\r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.bill_Address2 = \"Please enter address2\";\r\n // }\r\n // break;\r\n case \"bill_Pincode\":\r\n if (value == undefined || value == \"\" || value.length < 1) {\r\n IsValid = false;\r\n errors.bill_Pincode = \"Please enter pincode\";\r\n } else if (!value.match(/^[0-9]+$/)) {\r\n IsValid = false;\r\n errors.bill_Pincode = \"Please enter valid pincode.\";\r\n } else if (value.length != 6) {\r\n IsValid = false;\r\n errors.bill_Pincode = \"Please enter valid pincode\";\r\n } else errors.bill_Pincode = \"\";\r\n break;\r\n // case 'ship_Address1':\r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.ship_Address1 = \"Please enter address1\";\r\n // }\r\n // break;\r\n // case 'ship_Address2':\r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.ship_Address2 = \"Please enter address2\";\r\n // }\r\n // break;\r\n // case 'GST':\r\n // if (!value.match(/^\\d{2}[A-Z]{5}\\d{4}[A-Z]{1}[1-9A-Z]{1}[Z]{1}[A-Z\\d]{1}$/)) {\r\n // IsValid = false;\r\n // errors.GST = \"Please enter valid GST number\";\r\n // }\r\n // else\r\n // errors.GST = '';\r\n // break;\r\n default:\r\n break;\r\n }\r\n\r\n return IsValid;\r\n }\r\n\r\n // reset form text value\r\n formReset() {\r\n this.setState({\r\n ID: \"0\",\r\n Wcode: \"\",\r\n FirmName: \"\",\r\n Email: \"\",\r\n MobileNo: \"\",\r\n IsActive: true,\r\n ship_City: \"\",\r\n ship_State: \"\",\r\n chkbx: true,\r\n ship_Country: \"\",\r\n ship_Address1: \"\",\r\n ship_Address2: \"\",\r\n GST: \"\",\r\n bill_City: \"\",\r\n bill_State: \"\",\r\n bill_Country: \"\",\r\n bill_Address1: \"\",\r\n bill_Address2: \"\",\r\n bill_Pincode: \"\",\r\n });\r\n let errors = this.state.formError;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = \"\";\r\n });\r\n }\r\n\r\n hideFunc() {\r\n this.setState({\r\n visible: false,\r\n buttonLabel: \"Submit\",\r\n formHeading: \"Add Warehouse\",\r\n });\r\n this.formReset();\r\n }\r\n // open Dialog\r\n openDialog() {\r\n this.setState({ visible: true });\r\n this.formReset();\r\n }\r\n // submit form and create or update user\r\n submitForm(event) {\r\n event.preventDefault();\r\n\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formError;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key];\r\n let valid = this.validateForm(val, key);\r\n //form is not valid\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n //form is valid\r\n if (isfrmvalid) {\r\n this.setState({ updateLoader: false });\r\n console.log(this.ship_City);\r\n\r\n const formData = {\r\n Wcode: this.state.Wcode,\r\n CompanyId: this.state.CompanyId.CompId,\r\n FirmName: this.state.FirmName,\r\n Email: this.state.Email,\r\n MobileNo: this.state.MobileNo,\r\n ID: this.state.ID,\r\n IsActive: this.state.IsActive,\r\n ship_City: this.state.bill_City.CityId,\r\n ship_State: this.state.bill_State.StateId,\r\n ship_Country: this.state.bill_Country.CountryId,\r\n ship_Pincode: this.state.bill_Pincode,\r\n GST: this.state.GST,\r\n ship_Address1: this.state.bill_Address1,\r\n ship_Address2: this.state.bill_Address2,\r\n bill_City: this.state.bill_City.CityId,\r\n bill_State: this.state.bill_State.StateId,\r\n bill_Country: this.state.bill_Country.CountryId,\r\n bill_Pincode: this.state.bill_Pincode,\r\n bill_Address1: this.state.bill_Address1,\r\n bill_Address2: this.state.bill_Address2,\r\n IsFactory: this.state.IsFactory,\r\n };\r\n\r\n setTimeout(() => {\r\n this.WareHouseMaterService.Save(formData).then((data) => {\r\n const resdata = data.data;\r\n //if ResponseCode is 200 success message will be shown else it will move 'else statement'\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n this.setState({\r\n loading: true,\r\n visible: false,\r\n updateLoader: true,\r\n });\r\n this.formReset();\r\n this.GetWareHouse(this.tblResponse);\r\n this.GetWareHouseExport();\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n\r\n this.setState({\r\n loading: true,\r\n visible: false,\r\n updateLoader: true,\r\n });\r\n });\r\n }, 100);\r\n }\r\n }\r\n\r\n // delete user data\r\n deleteUser(ID) {\r\n this.WareHouseMaterService.DeleteUser(ID).then((data) => {\r\n const resdata = data.data;\r\n //if ResponseCode is 200 success message will be shown else it will move 'else statement'\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.GetWareHouse(this.tblResponse);\r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n const totlrecord = this.state.totalRecords - 1;\r\n const row = this.state.rows;\r\n\r\n if (this.tblResponse.First >= totlrecord) {\r\n const _curntCursor = Math.round(totlrecord / row);\r\n this.tblResponse.First = _curntCursor + 1;\r\n }\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }\r\n\r\n setOnEditDDL(rowData) {\r\n this.SetState(rowData.ship_Country, \"ship_Country\");\r\n this.SetState(rowData.bill_Country, \"bill_Country\");\r\n this.SetCity(rowData.ship_State, \"ship_State\");\r\n this.SetCity(rowData.bill_State, \"bill_State\");\r\n }\r\n //to get company data for ddl\r\n GetCompany() {\r\n this.CompanyMasterService.GetCompanyDDL().then((data) => {\r\n const resdata = data.data;\r\n //if ResponseData is not null companyDDL state will be set to ResponseData\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n companyDDL: resdata.ResponseData,\r\n });\r\n }\r\n });\r\n }\r\n // Search Filter\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetWareHouse();\r\n }\r\n\r\n callbackFunction = (childData) => {\r\n this.setState({ message: childData });\r\n };\r\n\r\n // disabled check box\r\n activeTemplate(rowData, column) {\r\n return ;\r\n }\r\n\r\n // sort page\r\n onSort(event) {\r\n this.setState({\r\n sortOrder: this.state.sortOrder === 1 ? 2 : 1,\r\n sortIcon: !this.state.sortIcon,\r\n });\r\n const sortField =\r\n event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetWareHouse(this.tblResponse);\r\n const clickData = document.getElementsByClassName(\r\n \"p-sortable-column-icon pi pi-fw pi-sort\"\r\n );\r\n console.log(event);\r\n }\r\n\r\n // edit form\r\n actionTemplate(rowData, column) {\r\n const editMode = (e) => {\r\n this.setState({\r\n buttonLabel: \"Update\",\r\n formHeading: \"Update Warehouse\",\r\n visible: true,\r\n Wcode: rowData.WCode,\r\n ID: rowData.ID,\r\n FirmName: rowData.FirmName,\r\n Email: rowData.Email,\r\n MobileNo: rowData.MobileNo,\r\n IsActive: rowData.IsActive,\r\n ship_Address1: rowData.ship_Address1,\r\n ship_Address2: rowData.ship_Address2,\r\n ship_Pincode: rowData.ship_Pincode,\r\n GST: rowData.GST,\r\n bill_Address1: rowData.bill_Address1,\r\n bill_Address2: rowData.bill_Address2,\r\n bill_Pincode: rowData.bill_Pincode,\r\n });\r\n\r\n const ship_CountryObj = this.state.ship_countrySelectItems.filter(\r\n (x) => x.CountryId == rowData.ship_Country\r\n );\r\n const bill_CountryObj = this.state.bill_countrySelectItems.filter(\r\n (x) => x.CountryId == rowData.bill_Country\r\n );\r\n\r\n this.SetState(rowData.ship_Country, \"ship_Country\"); //ship\r\n this.SetState(rowData.bill_Country, \"bill_Country\"); //bll\r\n this.SetCity(rowData.ship_State, \"ship_State\");\r\n this.SetCity(rowData.bill_State, \"bill_State\");\r\n\r\n const ship_StateObj = this.state.allstate.filter(\r\n (x) => x.StateId == rowData.ship_State\r\n );\r\n const bill_StateObj = this.state.allstate.filter(\r\n (x) => x.StateId == rowData.bill_State\r\n );\r\n const ship_CityObj = this.state.allcity.filter(\r\n (x) => x.CityId == rowData.ship_City\r\n );\r\n const bill_CityObj = this.state.allcity.filter(\r\n (x) => x.CityId == rowData.bill_City\r\n );\r\n\r\n this.setState({\r\n CompanyId: this.state.companyDDL.filter(\r\n (y) => y.CompId == rowData.CompanyId\r\n )[0],\r\n ship_Country: ship_CountryObj[0],\r\n bill_Country: bill_CountryObj[0],\r\n ship_State: ship_StateObj[0],\r\n bill_State: bill_StateObj[0],\r\n ship_City: ship_CityObj[0],\r\n bill_City: bill_CityObj[0],\r\n });\r\n };\r\n\r\n const deleteFunc = () => {\r\n confirmAlert({\r\n title: \"Confirm to delete\",\r\n message: \"Are you sure to do this.\",\r\n buttons: [\r\n {\r\n label: \"Yes\",\r\n onClick: () => this.deleteUser(rowData.ID),\r\n },\r\n {\r\n label: \"No\",\r\n onClick: () => null,\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\r\n // create html part\r\n //resolved KREP-139,KREP-83\r\n render() {\r\n const items = [{ label: \"Masters\" }, { label: \"Warehouse Master\" }];\r\n\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n\r\n let header = (\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

      Warehouse Master

      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n Export\r\n \r\n \r\n
      \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
      \r\n {/*
      \r\n \r\n
      */}\r\n
      \r\n \r\n {\r\n this.handleChange(e);\r\n }}\r\n value={this.state.CompanyId}\r\n className=\"form-control\"\r\n placeholder=\"Select Company\"\r\n name=\"CompanyId\"\r\n options={this.state.companyDDL}\r\n />\r\n {this.state.formError.CompanyId !== null ? (\r\n
      {this.state.formError.CompanyId}
      \r\n ) : null}\r\n
      \r\n\r\n
      \r\n \r\n \r\n {this.state.formError.Wcode !== \"\" ? (\r\n
      {this.state.formError.Wcode}
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n\r\n
      \r\n \r\n \r\n {this.state.formError.FirmName !== \"\" ? (\r\n
      {this.state.formError.FirmName}
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n\r\n
      \r\n \r\n \r\n {this.state.formError.Email !== null ? (\r\n
      {this.state.formError.Email}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.MobileNo !== null ? (\r\n
      {this.state.formError.MobileNo}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.GST !== null ? (\r\n
      {this.state.formError.GST}
      \r\n ) : null}\r\n
      \r\n\r\n {/*
      \r\n \r\n
      */}\r\n
      \r\n

      \r\n Billing Address\r\n

      \r\n\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.bill_Country !== null ? (\r\n
      \r\n {this.state.formError.bill_Country}\r\n
      \r\n ) : null}\r\n
      \r\n \r\n \r\n {this.state.formError.bill_State !== null ? (\r\n
      \r\n {this.state.formError.bill_State}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.bill_City !== null ? (\r\n
      \r\n {this.state.formError.bill_City}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.bill_Address1 !== null ? (\r\n
      \r\n {this.state.formError.bill_Address1}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.bill_Address2 !== null ? (\r\n
      \r\n {this.state.formError.bill_Address2}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.bill_Pincode !== null ? (\r\n
      \r\n {this.state.formError.bill_Pincode}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n {/*
      \r\n

      Shipping Address

      \r\n
      \r\n\r\n\r\n
      \r\n \r\n \r\n {this.state.formError.ship_Country !== null ?\r\n
      {this.state.formError.ship_Country}
      : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.ship_State !== null ?\r\n
      {this.state.formError.ship_State}
      : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.ship_City !== null ?\r\n
      {this.state.formError.ship_City}
      : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.ship_Address1 !== null ?\r\n
      {this.state.formError.ship_Address1}
      : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.ship_Address2 !== null ?\r\n
      {this.state.formError.ship_Address2}
      : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.ship_Pincode !== null ?\r\n
      {this.state.formError.GST}
      : 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","import React, { Component } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { CSVLink, CSVDownload } from \"react-csv\";\r\nimport { Calendar } from \"primereact/calendar\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport UserService from \"../../services/UserService\";\r\nimport ItemLedgerReportService from \"../../services/ItemLedgerReportService\";\r\nimport WareHouseMaterService from \"../../services/WareHouseMaterService\";\r\nimport ProductService from \"../../services/ProductService\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Column } from \"primereact/column\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport $ from \"jquery\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport { DriveEtaSharp } from \"@material-ui/icons\";\r\nimport { withWidth } from \"@material-ui/core\";\r\n\r\nexport default class ItemWiseStockDetail extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.surveyLink = React.createRef();\r\n this.UserService = new UserService();\r\n this.ProductService = new ProductService();\r\n this.WareHouseMaterService = new WareHouseMaterService();\r\n this.ItemLedgerReportService = new ItemLedgerReportService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n warehouseVisible: true,\r\n WareHouseId: \"\",\r\n ddid: \"\",\r\n FromDate: new Date(),\r\n ToDate: new Date(),\r\n SendTo: \"\",\r\n success: false,\r\n updateLoader: false,\r\n visible: false,\r\n sortOrder: \"\",\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n allData: [],\r\n wareHouseDDL: [],\r\n UserDDL: [],\r\n SelectedDDL: [],\r\n ProductDDL: [],\r\n };\r\n this.onPage = this.onPage.bind(this);\r\n this.FilterData = this.FilterData.bind(this);\r\n this.GetReportExport = this.GetReportExport.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n this.GetReportData = this.GetReportData.bind(this);\r\n }\r\n //to trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n var date = new Date();\r\n date.setDate(date.getDate() - 7);\r\n this.tblResponse.FromDate = date.toLocaleDateString();\r\n this.tblResponse.ToDate = new Date().toLocaleDateString();\r\n this.setState({\r\n FromDate: date,\r\n ToDate: new Date(),\r\n });\r\n\r\n this.GetReport();\r\n\r\n // this.GetReportExport();\r\n }, 100);\r\n\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n //to search\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetReport();\r\n }\r\n\r\n onChange = (date) => this.setState({ FromDate: \"\", ToDate: \"\" });\r\n //on page loading\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetReport();\r\n }, 250);\r\n }\r\n\r\n // get data list from api\r\n GetReportExport() {\r\n this.tblResponse.FromDate = this.state.FromDate.toLocaleDateString();\r\n this.tblResponse.ToDate = this.state.ToDate.toLocaleDateString();\r\n\r\n if (this.state.WareHouseId)\r\n this.tblResponse.WareHouseId = this.state.WareHouseId.ID;\r\n else this.tblResponse.WareHouseId = 0;\r\n\r\n if (this.state.ddid) this.tblResponse.UserId = this.state.ddid.UserId;\r\n else this.tblResponse.UserId = 0;\r\n\r\n this.ItemLedgerReportService.GetStockExport(this.tblResponse).then(\r\n (data) => {\r\n const resdata = data.data;\r\n console.log(this.state.SelectedDDL);\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n allData: resdata.ResponseData,\r\n });\r\n\r\n this.setState({ allData: resdata.ResponseData }, () => {\r\n this.surveyLink.link.click();\r\n });\r\n } else {\r\n // this.setState({\r\n // allData: null\r\n // });\r\n }\r\n }\r\n );\r\n }\r\n\r\n //to get warehouse data for ddl\r\n GetWareHouse(compId) {\r\n this.WareHouseMaterService.GetWareHouseDDL(compId).then((data) => {\r\n const resdata = data.data;\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n //const filteredWareHouse = resdata.ResponseData.filter(x=>x.ID != this.ApiService.getWareHouseId())\r\n var factory = resdata.ResponseData.filter((x) => x.IsFactory == true);\r\n const warehouse = resdata.ResponseData.filter(\r\n (x) => x.IsFactory == false\r\n );\r\n const mergedArr = [...factory, ...warehouse];\r\n this.setState({\r\n wareHouseDDL: mergedArr,\r\n });\r\n }\r\n });\r\n }\r\n\r\n //to get active users\r\n GetActiveUsers() {\r\n this.UserService.GetAllActiveUsers().then((data) => {\r\n const resdata = data.data;\r\n //if response data not null\r\n\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.setState({\r\n UserDDL: resdata.ResponseData,\r\n });\r\n }\r\n });\r\n }\r\n\r\n //to handle change\r\n handleChange(event) {\r\n let user = sessionStorage.getItem(\"username\");\r\n let userid = sessionStorage.getItem(\"userid\");\r\n const { name, value } = event.target;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"SendTo\":\r\n if (this.state.warehouseVisible) {\r\n if (this.state.SendTo != null && value != null) {\r\n let req = {\r\n WareHouseId: value.ID,\r\n IsWareHouse: true,\r\n };\r\n this.GetProductDDL(req);\r\n }\r\n } else {\r\n if (this.state.SendTo != null && value != null) {\r\n let req = {\r\n UserId: value.UserId,\r\n IsWareHouse: false,\r\n };\r\n this.GetProductDDL(req);\r\n }\r\n }\r\n break;\r\n case \"FromDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select from date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (value instanceof Date && this.state.ToDate instanceof Date) {\r\n const startDate = value;\r\n const endDate = this.state.ToDate;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"From date must be less than to date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n case \"ToDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select to date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (\r\n value instanceof Date &&\r\n this.state.FromDate instanceof Date\r\n ) {\r\n const startDate = this.state.FromDate;\r\n const endDate = value;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"To date must be greater than from date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.setState({ [name]: value });\r\n }\r\n //to filter data\r\n FilterData() {\r\n this.tblResponse.FromDate = this.state.FromDate.toLocaleDateString();\r\n this.tblResponse.ToDate = this.state.ToDate.toLocaleDateString();\r\n this.tblResponse.ToDate = this.state.ToDate.toLocaleDateString();\r\n this.setState({ sales: [] });\r\n this.GetReport();\r\n }\r\n\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = \"1\";\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n this.tblResponse.FromDate = this.state.FromDate;\r\n this.tblResponse.ToDate = this.state.ToDate;\r\n }\r\n //to get report data\r\n GetReport() {\r\n if (sessionStorage.getItem(\"uid\") == 1) {\r\n this.GetProductDDL({\r\n UserId: sessionStorage.getItem(\"uid\"),\r\n IsWareHouse: false,\r\n });\r\n this.GetWareHouse(0);\r\n //this.GetActiveUsers();\r\n setTimeout(() => {\r\n if (this.state.SendTo != null && this.state.SendTo != \"\")\r\n this.tblResponse.WareHouseId = this.state.SendTo.ID;\r\n else {\r\n this.setState({\r\n SendTo: this.state.wareHouseDDL[0],\r\n });\r\n this.tblResponse.WareHouseId = this.state.wareHouseDDL[0].ID;\r\n }\r\n\r\n this.tblResponse.UserId = 0;\r\n this.tblResponse.IsWareHouse = true;\r\n\r\n this.tblResponse.ProductId = this.state.ProductId;\r\n this.GetReportData();\r\n }, 500);\r\n } else {\r\n this.GetProductDDL({\r\n UserId: sessionStorage.getItem(\"uid\"),\r\n IsWareHouse: false,\r\n });\r\n let wid = sessionStorage.getItem(\"wid\");\r\n this.tblResponse.UserId = sessionStorage.getItem(\"uid\");\r\n this.tblResponse.WareHouseId = wid == null ? 0 : wid;\r\n this.tblResponse.ProductId = this.state.ProductId;\r\n this.GetReportData();\r\n }\r\n // if (this.state.WareHouseId)\r\n // this.tblResponse.WareHouseId = this.state.WareHouseId.ID;\r\n // else\r\n // this.tblResponse.WareHouseId=0;\r\n\r\n // if (this.state.ddid)\r\n // this.tblResponse.UserId = this.state.ddid.UserId;\r\n // else\r\n // this.tblResponse.UserId = 0 ;\r\n\r\n // this.datasource = null;\r\n // this.setState({\r\n // totalRecords: 0,\r\n // first: 1,\r\n // sales: null,\r\n // loading: false\r\n // });\r\n }\r\n\r\n GetReportData() {\r\n this.ItemLedgerReportService.GetStockReport(this.tblResponse).then(\r\n (data) => {\r\n const resdata = data.data;\r\n this.setState({ updateLoader: true });\r\n //if response data not null\r\n debugger;\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n });\r\n }\r\n //if response data null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n //get Product drop down list\r\n GetProductDDL(req) {\r\n this.ProductService.GetMapProductsDDLBySelectionWU(req).then((data) => {\r\n const resdata = data.data;\r\n //if response data not null\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.setState({\r\n ProductDDL: resdata.ResponseData,\r\n });\r\n }\r\n });\r\n }\r\n //to sort\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField =\r\n event.sortField == \"CreatedDate\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetReport();\r\n }\r\n\r\n //to render html part\r\n render() {\r\n let header = (\r\n
      \r\n
      \r\n
      \r\n {sessionStorage.getItem(\"uid\") == 1 ? (\r\n <>\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n ) : null}\r\n
      \r\n
      Product
      \r\n
      \r\n {\r\n this.handleChange(e);\r\n }}\r\n value={this.state.ProductId}\r\n className=\"w-60\"\r\n placeholder=\"All Products\"\r\n name=\"ProductId\"\r\n options={this.state.ProductDDL}\r\n showClear={true}\r\n />\r\n
      \r\n
      \r\n\r\n
      From
      \r\n\r\n
      \r\n \r\n
      \r\n\r\n
      To
      \r\n
      \r\n \r\n
      \r\n\r\n \r\n Submit\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 \r\n {}\r\n
      \r\n

      Available Stock Report

      \r\n
      \r\n {\r\n this.dt = el;\r\n }}\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 \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { CSVLink, CSVDownload } from \"react-csv\";\r\nimport { Calendar } from \"primereact/calendar\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport DispatchReportService from \"../../services/DispatchReportService\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Column } from \"primereact/column\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport $ from \"jquery\";\r\nimport PrintDispatchService from \"../../services/PrintDispatchService\";\r\nimport { Button } from \"primereact/button\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport { Card } from \"primereact/card\";\r\nexport default class DamageRpt extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.DispatchReportService = new DispatchReportService();\r\n this.PrintDispatchService = new PrintDispatchService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n FromDate: new Date(),\r\n ToDate: new Date(),\r\n success: false,\r\n updateLoader: false,\r\n visible: false,\r\n sortOrder: \"\",\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n allData: [],\r\n };\r\n\r\n this.onPage = this.onPage.bind(this);\r\n this.FilterData = this.FilterData.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n this.GetReportExport = this.GetReportExport.bind(this);\r\n }\r\n //to trigger api function o page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n var date = new Date();\r\n date.setDate(date.getDate() - 7);\r\n this.tblResponse.FromDate = date.toLocaleDateString();\r\n this.tblResponse.ToDate = new Date().toLocaleDateString();\r\n this.setState({\r\n FromDate: date,\r\n ToDate: new Date(),\r\n });\r\n this.GetDispatch();\r\n }, 1000);\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n //to search data\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetDispatch();\r\n }\r\n\r\n onChange = (date) => this.setState({ FromDate: \"\", ToDate: \"\" });\r\n //to export report data\r\n GetReportExport() {\r\n this.DispatchReportService.GetDamageReport(this.tblResponse).then(\r\n (data) => {\r\n console.log(data);\r\n const resdata = data.data;\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n allData: resdata.ResponseData,\r\n });\r\n this.setState({ allData: resdata.ResponseData }, () => {\r\n this.surveyLink.link.click();\r\n });\r\n }\r\n }\r\n );\r\n }\r\n //on page loading\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetDispatch();\r\n }, 250);\r\n }\r\n\r\n // call every change of form and validation part also\r\n\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"FromDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select from date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (value instanceof Date && this.state.ToDate instanceof Date) {\r\n const startDate = value;\r\n const endDate = this.state.ToDate;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"From date must be less than to date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n case \"ToDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select to date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (\r\n value instanceof Date &&\r\n this.state.FromDate instanceof Date\r\n ) {\r\n const startDate = this.state.FromDate;\r\n const endDate = value;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"To date must be greater than from date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.setState({ [name]: value });\r\n }\r\n\r\n //to filter data\r\n FilterData() {\r\n this.tblResponse.FromDate = this.state.FromDate.toLocaleDateString();\r\n this.tblResponse.ToDate = this.state.ToDate.toLocaleDateString();\r\n this.GetDispatch();\r\n }\r\n\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = \"1\";\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n this.tblResponse.FromDate = this.state.FromDate;\r\n this.tblResponse.ToDate = this.state.ToDate;\r\n }\r\n //to get dispatch data\r\n GetDispatch() {\r\n this.tblResponse.SortColumn = \"CartonId\";\r\n this.DispatchReportService.GetDamageReport(this.tblResponse).then(\r\n (data) => {\r\n const resdata = data.data;\r\n this.setState({ updateLoader: true });\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n });\r\n }\r\n //if response data null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n }\r\n );\r\n // this.datasource = null;\r\n // this.setState({\r\n // totalRecords: 0,\r\n // first: 1,\r\n // sales: null,\r\n // loading: false\r\n // });\r\n }\r\n //for sorting\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField =\r\n event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetDispatch();\r\n }\r\n actionTemplate(rowData, column) {\r\n //to print\r\n // const editMode = (e) => {\r\n // this.DispatchReportService.GetDispatchToPrint(rowData).then(data => {\r\n //\r\n // const resdata = data.data;\r\n // this.PrintDispatchService.Printpdf(resdata.ResponseData);\r\n // });\r\n // ////PRINT SLIP\r\n // }\r\n // return \r\n // \r\n // ;\r\n }\r\n //to render html part\r\n render() {\r\n const items = [{ label: \"Reports\" }, { label: \">Damage Report\" }];\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n let header = (\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n \r\n Submit\r\n \r\n \r\n
      \r\n
      \r\n \r\n \r\n {/* Export */}\r\n\r\n \r\n Export\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

      Damage Report

      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n\r\n {\r\n this.dt = el;\r\n }}\r\n >\r\n \r\n \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 instance from './DefaultApi';\r\n\r\nexport default class DeMappingReportService {\r\n ControllerName = 'DemappingReport';\r\n\r\n // create de map data\r\n GetDemappingReport(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetDemappingReport`, tableRequest).then(res => res)\r\n } \r\n}","import React, { Component } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { CSVLink, CSVDownload } from \"react-csv\";\r\nimport { Calendar } from \"primereact/calendar\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport DeMappingReportService from \"../../services/DeMappingReportService\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Column } from \"primereact/column\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport $ from \"jquery\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport { SelectButton } from \"primereact/selectbutton\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport { Card } from \"primereact/card\";\r\nexport default class DeMappingReport extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.surveyLink = React.createRef();\r\n\r\n this.DeMappingReportService = new DeMappingReportService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n heads: [\"FromNo\", \"ToNo\", \"Qty\", \"ProductName\", \"CreatedDt\"],\r\n FromDate: new Date(),\r\n ToDate: new Date(),\r\n success: false,\r\n visible: false,\r\n sortOrder: \"\",\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n updateLoader: false,\r\n emptyMessage: \"No Data found\",\r\n allData: [],\r\n isPreprintedValue: \"Static Qr Mapping\",\r\n isPreprinted: false,\r\n };\r\n this.onPage = this.onPage.bind(this);\r\n this.FilterData = this.FilterData.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.GetMappingExport = this.GetMappingExport.bind(this);\r\n\r\n this.onSort = this.onSort.bind(this);\r\n this.setPreprintedValue = this.setPreprintedValue.bind(this);\r\n }\r\n //to trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n var date = new Date();\r\n date.setDate(date.getDate() - 7);\r\n this.tblResponse.FromDate = date.toLocaleDateString();\r\n this.tblResponse.ToDate = new Date().toLocaleDateString();\r\n this.setState({\r\n FromDate: date,\r\n ToDate: new Date(),\r\n });\r\n this.GetMapping();\r\n //this.GetMappingExport();\r\n }, 1000);\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n\r\n //to search\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetMapping();\r\n }\r\n\r\n onChange = (date) => this.setState({ FromDate: \"\", ToDate: \"\" });\r\n //on page loading\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetMapping();\r\n }, 250);\r\n }\r\n\r\n // get data list from api\r\n GetMappingExport() {\r\n this.DeMappingReportService.GetDemappingReport(this.tblResponse).then(\r\n (data) => {\r\n const resdata = data.data;\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n allData: resdata.ResponseData,\r\n });\r\n this.setState({ allData: resdata.ResponseData }, () => {\r\n this.surveyLink.link.click();\r\n });\r\n }\r\n }\r\n );\r\n }\r\n //to handle\r\n //resolved KREP-22\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"FromDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select from date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (value instanceof Date && this.state.ToDate instanceof Date) {\r\n const startDate = value;\r\n const endDate = this.state.ToDate;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"From date must be less than to date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n case \"ToDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select to date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (\r\n value instanceof Date &&\r\n this.state.FromDate instanceof Date\r\n ) {\r\n const startDate = this.state.FromDate;\r\n const endDate = value;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"To date must be greater than from date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.setState({ [name]: value });\r\n }\r\n //to filter data\r\n FilterData() {\r\n this.tblResponse.FromDate = this.state.FromDate.toLocaleDateString();\r\n this.tblResponse.ToDate = this.state.ToDate.toLocaleDateString();\r\n this.GetMapping();\r\n }\r\n\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = \"1\";\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n this.tblResponse.FromDate = this.state.FromDate;\r\n this.tblResponse.ToDate = this.state.ToDate;\r\n }\r\n\r\n // get data list from api\r\n\r\n GetMapping() {\r\n this.tblResponse.SortColumn = \"CreatedDt\";\r\n this.DeMappingReportService.GetDemappingReport(this.tblResponse).then(\r\n (data) => {\r\n const resdata = data.data;\r\n this.setState({ updateLoader: true });\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n });\r\n }\r\n //if response data null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n }\r\n );\r\n // this.datasource = null;\r\n // this.setState({\r\n // totalRecords: 0,\r\n // first: 1,\r\n // sales: null,\r\n // loading: false\r\n // });\r\n }\r\n //to sort\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField =\r\n event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetMapping();\r\n }\r\n\r\n /// to set isPreprinted\r\n setPreprintedValue(e) {\r\n this.setState(\r\n {\r\n isPreprintedValue: e.value,\r\n isPreprinted: e.value == \"Static Qr Mapping\" ? false : true,\r\n },\r\n () => {\r\n this.tblResponse.isPreprinted = this.state.isPreprinted;\r\n this.GetMapping();\r\n }\r\n );\r\n }\r\n\r\n //to render html part\r\n render() {\r\n const items = [{ label: \"Reports\" }, { label: \"DeMapping Reports\" }];\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n const options = [\"Static Qr Mapping\"]; //, 'PrePrinted Qr Mapping'];\r\n let header = (\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n \r\n Submit\r\n \r\n \r\n
      \r\n
      \r\n \r\n \r\n \r\n Export\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

      DeMapping Reports

      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n {/* */}\r\n
      \r\n {\r\n this.dt = el;\r\n }}\r\n >\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 { confirmAlert } from \"react-confirm-alert\";\r\nimport ProductDamageService from \"../../services/ProductDamageService\";\r\nimport MessageComponent from \"../../template/Message\";\r\nexport default class damageCarton extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.ProductDamageService = new ProductDamageService();\r\n this.state = {\r\n scanTxt: \"\",\r\n reason: ''\r\n };\r\n\r\n this.ScanItem = this.ScanItem.bind(this);\r\n }\r\n\r\n ScanItem(e) {\r\n if (e.key === 'Enter' && this.state.reason != null && this.state.reason.length > 4) {\r\n \r\n let qr = e.target.value;\r\n\r\n if (qr.includes('SID') || qr.includes('TID')) {\r\n let data = {}\r\n data.DamageCid = qr\r\n data.Reason = this.state.reason\r\n confirmAlert({\r\n title: 'Confirmation to Damage',\r\n message: 'Are you sure to do this Damage.',\r\n\r\n buttons: [\r\n {\r\n label: 'Yes',\r\n onClick: () =>\r\n this.ProductDamageService.CartonDamage(data).then((data) => {\r\n const res = data.data\r\n if (res.ResponseCode === \"200\") {\r\n this.refs.Messchild.showSuccess(\"Damage Successfully\")\r\n this.setState({ reason: '' })\r\n }\r\n else {\r\n this.refs.Messchild.showWarn(res.ResponseMessage);\r\n }\r\n })\r\n\r\n },\r\n {\r\n label: 'No',\r\n onClick: () => null\r\n }\r\n ]\r\n });\r\n\r\n }\r\n else {\r\n this.refs.Messchild.showWarn(\"Invalid Scanned\");\r\n }\r\n\r\n this.setState({\r\n scanTxt: \"\"\r\n });\r\n\r\n\r\n }\r\n else if (e.key === 'Enter') {\r\n this.refs.Messchild.showWarn(\"Please fill reason of damage before Scanned between 5 to 200 chars\");\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n \r\n\r\n
      \r\n

      Damage Carton

      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n { this.setState({ reason: e.target.value }) }} name=\"reason\" value={this.state.reason} type=\"search\" autoComplete='off' className=\"form-control ml-2\" id=\"scan\" />\r\n
      \r\n
      \r\n \r\n { this.setState({ scanTxt: e.target.value }) }} name=\"scanTxt\" value={this.state.scanTxt} type=\"search\" autoComplete='off' className=\"form-control ml-2\" id=\"scan\" onKeyDown={e => { this.ScanItem(e) }} />\r\n
      \r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Column } from \"primereact/column\";\r\nimport DispatchService from \"../../services/DispatchService\";\r\nimport MessageComponent from \"../../template/Message\";\r\nexport default class QrCodeReport extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.DispatchService = new DispatchService();\r\n this.state = {\r\n isDetail: false,\r\n journeyList: [],\r\n scanTxt: \"\",\r\n did: false,\r\n tid: false,\r\n qrs: true,\r\n sid: false,\r\n TIDproducts: [],\r\n iddata: [],\r\n expandedRows: \"\",\r\n iddata2: [],\r\n expandedRows2: \"\",\r\n activeIndex: 0,\r\n };\r\n this.items = [];\r\n this.ScanItem = this.ScanItem.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.rowExpansionTemplate = this.rowExpansionTemplate.bind(this);\r\n this.rowExpansionTemplate2 = this.rowExpansionTemplate2.bind(this);\r\n this.toggle = this.toggle.bind(this);\r\n this.toggle2 = this.toggle2.bind(this);\r\n }\r\n\r\n // call every change of form and validation part also\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n\r\n // const isValid = this.validateForm(value, name);\r\n this.setState({ errors, [name]: value });\r\n }\r\n toggle(e) {\r\n console.log(this.state.expandedRows);\r\n if (e.length == 0 || this.state.expandedRows.length > 0) {\r\n this.setState({ expandedRows: \"\" });\r\n this.setState({\r\n iddata: \"\",\r\n });\r\n } else {\r\n let uid = e.data[0].Id;\r\n this.DispatchService.GetScanInfo(uid).then((res) => {\r\n const resp = res.data;\r\n let qr = [];\r\n let val;\r\n resp.ResponseData.forEach((element) => {\r\n if (val == element.Id) {\r\n } else {\r\n val = element.Id;\r\n qr.push(element);\r\n }\r\n });\r\n this.setState({\r\n iddata: qr,\r\n });\r\n });\r\n this.setState({ expandedRows: e.data });\r\n }\r\n }\r\n toggle2(e) {\r\n console.log(this.state.expandedRows);\r\n if (e.length == 0 || this.state.expandedRows2.length > 0) {\r\n this.setState({ expandedRows2: \"\" });\r\n this.setState({\r\n iddata2: \"\",\r\n });\r\n } else {\r\n let uid = e.data[0].Id;\r\n this.DispatchService.GetScanInfo(uid).then((res) => {\r\n const resp = res.data;\r\n let qr = [];\r\n let val;\r\n resp.ResponseData.forEach((element) => {\r\n if (val == element.SeqNo) {\r\n } else {\r\n val = element.Id;\r\n qr.push(element);\r\n }\r\n });\r\n this.setState({\r\n iddata2: qr,\r\n });\r\n });\r\n this.setState({ expandedRows2: e.data });\r\n }\r\n }\r\n // scan qr code\r\n ScanItem(e) {\r\n if (e.key === \"Enter\") {\r\n let qr = e.target.value;\r\n\r\n // if (qr.includes(\"iil\")||qr.includes(\"104\")|| (qr.includes(\"SID\")||qr.includes(\"TID\")))\r\n // {\r\n if (qr.includes(\"DID\")) {\r\n this.DispatchService.GetScanInfo(qr).then((data) => {\r\n const res = data.data;\r\n if (res.ResponseCode === \"200\") {\r\n //if (qr.includes('DID')) {\r\n this.setState({\r\n qrs: false,\r\n TIDproducts: res.ResponseData,\r\n did: true,\r\n tid: false,\r\n sid: false,\r\n });\r\n //}\r\n // else if (qr.includes('TID')) {\r\n // this.rowExpansionTemplate(res.ResponseData)\r\n // this.setState({ qrs:false,\r\n // iddata: res.ResponseData,\r\n // tid: true,\r\n // sid: false,\r\n // did: false\r\n\r\n // })\r\n // }\r\n // else if (qr.includes('SID')) {\r\n // this.rowExpansionTemplate(res.ResponseData)\r\n // this.setState({\r\n\r\n // qrs:false,\r\n // iddata2: res.ResponseData,\r\n // sid: true,\r\n // did: false,\r\n // tid: false\r\n\r\n // })\r\n // }\r\n\r\n //console.log(this.state.TIDproducts);\r\n }\r\n });\r\n //this.refs.Messchild.showWarn(\"Invalid QR code scanned\");\r\n } else {\r\n qr = qr.includes(\"=\") ? qr.split(\"=\")[1] : qr;\r\n\r\n this.DispatchService.GetJourney(qr).then((data) => {\r\n const resdata = data.data;\r\n //if response data not null\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n // this.items = [] = [];\r\n this.setState({\r\n journeyList: resdata.ResponseData,\r\n qrs: true,\r\n did: false,\r\n tid: false,\r\n sid: false,\r\n });\r\n } else this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n });\r\n }\r\n this.setState({\r\n scanTxt: \"\",\r\n });\r\n }\r\n }\r\n rowExpansionTemplate(data) {\r\n if (data.Id.includes(\"SID\")) {\r\n return (\r\n
      \r\n

      Items In {data.Id}

      \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n );\r\n } else if (data.Id.includes(\"TID\")) {\r\n return (\r\n
      \r\n

      Items In {data.Id}

      \r\n {\r\n this.toggle2(e);\r\n }}\r\n rowExpansionTemplate={this.rowExpansionTemplate2}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n
      \r\n );\r\n }\r\n }\r\n rowExpansionTemplate2(data) {\r\n return (\r\n
      \r\n

      Items In {data.Id}

      \r\n \r\n \r\n \r\n \r\n \r\n
      \r\n );\r\n }\r\n\r\n render() {\r\n const item = [];\r\n for (const [index, value] of this.state.journeyList.entries()) {\r\n item.push(\r\n
    • \r\n {value.activity}{\" \"}\r\n {value.date ? (\r\n \r\n {value.date}\r\n \r\n ) : null}{\" \"}\r\n
    • \r\n );\r\n }\r\n const itemLength = 60 * item.length + \"px\";\r\n itemLength.toString();\r\n const mystyle = {\r\n height: itemLength,\r\n };\r\n\r\n return (\r\n <>\r\n \r\n\r\n
      \r\n

      QR Code Tracking Report

      \r\n
      \r\n\r\n {/*
      \r\n this.setState(pre=>({isDetail:!pre.isDetail}))} checked={this.state.isDetail} />\r\n \r\n
      */}\r\n
      \r\n {\r\n this.handleChange(e);\r\n }}\r\n name=\"scanTxt\"\r\n value={this.state.scanTxt}\r\n type=\"search\"\r\n autoComplete=\"off\"\r\n className=\"form-control ml-2\"\r\n id=\"scan\"\r\n onKeyDown={(e) => {\r\n this.ScanItem(e);\r\n }}\r\n autoFocus\r\n />\r\n
      \r\n\r\n
      \r\n {this.state.qrs && (\r\n
        \r\n {item}\r\n
      \r\n )}\r\n
      \r\n
      \r\n .\r\n {this.state.did && (\r\n {\r\n this.toggle(e);\r\n }}\r\n rowExpansionTemplate={this.rowExpansionTemplate}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {this.state.tid && (\r\n {\r\n this.toggle2(e);\r\n }}\r\n rowExpansionTemplate={this.rowExpansionTemplate2}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {this.state.sid && (\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 UserService from '../services/UserService';\r\nimport MessageComponent from '../template/Message';\r\n\r\n// Manage password\r\nexport default class ChangePassword extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n UserName: '',\r\n OldPassword: '',\r\n NewPassword: '',\r\n UserId: 0,\r\n\r\n formError: {\r\n OldPassword: null,\r\n NewPassword: null\r\n }\r\n }\r\n\r\n this.UserService = new UserService();\r\n this.handleChange = this.handleChange.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n }\r\n //trigger api function on page call\r\n componentDidMount() {\r\n this.getUser();\r\n }\r\n\r\n //get user list\r\n getUser() {\r\n this.UserService.getUser().then(data => {\r\n const resdata = data.data;\r\n //if ResponseCode is 200\r\n if (resdata.ResponseCode === '200') {\r\n const usr = resdata.ResponseData;\r\n this.setState({\r\n UserName: usr.Username,\r\n UserId: usr.UserId\r\n });\r\n }\r\n });\r\n }\r\n\r\n // submit form and create or update user\r\n submitForm(event) {\r\n event.preventDefault();\r\n\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formError;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key]\r\n let valid = this.validateForm(val, key);\r\n //form not valid\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n //form valid\r\n if (isfrmvalid) {\r\n const formData = {\r\n UserName: this.state.UserName,\r\n OldPassword: this.state.OldPassword,\r\n NewPassword: this.state.NewPassword,\r\n UserId: this.state.UserId\r\n }\r\n\r\n this.UserService.ChangePassword(formData).then(data => {\r\n const resdata = data.data;\r\n //if ResponsCode is 200 success else error or warning message\r\n if (resdata !== null && resdata.ResponseCode === '200') {\r\n this.setState({\r\n loading: true,\r\n visible: false\r\n });\r\n const res = this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n if (res) {\r\n setTimeout(() => {\r\n sessionStorage.clear();\r\n window.location = '/login';\r\n }, 2000);\r\n }\r\n\r\n } else if (resdata.ResponseCode === '400') {\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }\r\n }\r\n\r\n // form Reset\r\n formReset() {\r\n this.setState({\r\n UserName: '',\r\n OldPassword: '',\r\n NewPassword: ''\r\n });\r\n }\r\n\r\n // call every change of form and validation part also\r\n handleChange(event) {\r\n\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n\r\n const isValid = this.validateForm(value, name);\r\n this.setState({ errors, [name]: value });\r\n }\r\n\r\n // validate Form\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n //to validate each form field with required conditions\r\n switch (name) { \r\n case 'OldPassword':\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.OldPassword = \"Please enter old password.\";\r\n } else if (value.length >= 1 && this.state.NewPassword.length >= 1) {\r\n errors.OldPassword = '';\r\n errors.NewPassword = '';\r\n if (value == this.state.NewPassword) {\r\n IsValid = false;\r\n errors.OldPassword = \"Old password and new password should not be same.\";\r\n }\r\n } else errors.OldPassword = ''\r\n break;\r\n\r\n case 'NewPassword':\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.NewPassword = \"Please enter new password.\";\r\n } else if (value.length >= 1 && this.state.OldPassword.length >= 1) {\r\n errors.OldPassword = '';\r\n errors.NewPassword = '';\r\n if (value == this.state.OldPassword) {\r\n IsValid = false;\r\n errors.NewPassword = \"New password and old password should not be same.\";\r\n }\r\n } else errors.NewPassword = ''\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return IsValid;\r\n }\r\n\r\n // return html\r\n render() {\r\n return (\r\n <>\r\n \r\n
      \r\n
      \r\n

      Change Password

      \r\n
      \r\n
      \r\n
      Name
      \r\n
      \r\n {/*
      Role
      \r\n
      \r\n
      Created Date
      \r\n
      */}\r\n
      Old Password
      \r\n
      \r\n \r\n {this.state.formError.OldPassword !== '' ?\r\n
      {this.state.formError.OldPassword}
      : ''}\r\n
      \r\n
      New Password
      \r\n
      \r\n \r\n {this.state.formError.NewPassword !== '' ?\r\n
      {this.state.formError.NewPassword}
      : ''}\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 \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Column } from \"primereact/column\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport CompanyMasterService from \"../../services/CompanyMasterService\";\r\nimport WareHouseMaterService from \"../../services/WareHouseMaterService\";\r\nimport { Button } from \"primereact/button\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport { confirmAlert } from \"react-confirm-alert\"; // Import\r\nimport { ConfirmationModal } from \"../../template/ConfirmationModal\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport $ from \"jquery\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport CountryService from \"../../services/CountryService\";\r\nimport { CSVLink } from \"react-csv\";\r\n// WareHouse Master\r\nexport default class FactoryMaster extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.CompanyMasterService = new CompanyMasterService();\r\n this.WareHouseMaterService = new WareHouseMaterService();\r\n this.CountryService = new CountryService();\r\n this.tblResponse = new tableRequest();\r\n this.tblResponseExport = new tableRequest();\r\n this.state = {\r\n heads: [\r\n \"FirmName\",\r\n \"WCode\",\r\n \"Email\",\r\n \"MobileNo\",\r\n \"bill_Address1\",\r\n \"bill_Address2\",\r\n \"City\",\r\n \"State\",\r\n \"bill_Pincode\",\r\n \"CreatedDt\",\r\n ],\r\n exportData: [],\r\n Wcode: \"\",\r\n visible: false,\r\n ID: \"0\",\r\n chkbx: true,\r\n sortIcon: false,\r\n CompanyId: \"\",\r\n ship_City: \"\",\r\n ship_State: \"\",\r\n ship_Country: \"\",\r\n ship_Address1: \"\",\r\n ship_Address2: \"\",\r\n ship_Pincode: \"\",\r\n bill_City: \"\",\r\n bill_State: \"\",\r\n bill_Country: \"\",\r\n bill_Address1: \"\",\r\n bill_Address2: \"\",\r\n bill_Pincode: \"\",\r\n FirmName: \"\",\r\n Email: \"\",\r\n MobileNo: \"\",\r\n updateLoader: false,\r\n IsActive: false,\r\n sortOrder: \"1\",\r\n IsFactory: true,\r\n prefix: \"\",\r\n readOnlyPrefix: \"false\",\r\n formError: {\r\n Wcode: \"\",\r\n CompanyId: \"\",\r\n ship_Country: \"\",\r\n UserName: \"\",\r\n ship_City: \"\",\r\n ship_State: \"\",\r\n bill_City: \"\",\r\n bill_State: \"\",\r\n FirmName: \"\",\r\n bill_Country: \"\",\r\n bill_Pincode: \"\",\r\n bill_Address1: \"\",\r\n bill_Address2: \"\",\r\n ship_Pincode: \"\",\r\n ship_Address1: \"\",\r\n ship_Address2: \"\",\r\n Email: \"\",\r\n ConfirmPassword: \"\",\r\n MobileNo: \"\",\r\n prefix: \"\",\r\n },\r\n\r\n formHeading: \"Add Factory\",\r\n buttonLabel: \"Submit\",\r\n sales: [],\r\n ship_citySelectItems: [],\r\n ship_stateSelectItems: [],\r\n ship_countrySelectItems: [],\r\n bill_citySelectItems: [],\r\n bill_stateSelectItems: [],\r\n bill_countrySelectItems: [],\r\n companyDDL: [],\r\n allstate: [],\r\n allcity: [],\r\n loading: true,\r\n first: 0,\r\n rows: 5,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n };\r\n\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.SameAsBilling = this.SameAsBilling.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n this.hideFunc = this.hideFunc.bind(this);\r\n this.onPage = this.onPage.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.openDialog = this.openDialog.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n this.GetWareHouseExport = this.GetWareHouseExport.bind(this);\r\n }\r\n //trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.GetWareHouse(this.tblResponse);\r\n this.GetCompany();\r\n this.GetStates(0);\r\n this.GetCities(0);\r\n }, 1000);\r\n\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n\r\n this.GetCountry();\r\n\r\n this.tblResponseExport.PageSize = -1;\r\n this.tblResponseExport.First = 1;\r\n this.tblResponseExport.IsActive = true;\r\n this.tblResponseExport.SearchValue = \"\";\r\n this.tblResponseExport.SortOrder = \"ASC\";\r\n this.tblResponseExport.IsWareHouse = false;\r\n this.GetWareHouseExport();\r\n }\r\n\r\n // get factory data list from api\r\n GetWareHouseExport() {\r\n this.tblResponseExport.SortColumn = \"CreatedDt\";\r\n this.WareHouseMaterService.Get(this.tblResponseExport).then((data) => {\r\n const resdata = data.data;\r\n //when response data is not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n exportData: resdata.ResponseData,\r\n });\r\n }\r\n });\r\n }\r\n\r\n //on page loading\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n }, 250);\r\n }\r\n\r\n // get list data\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = true;\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n\r\n this.GetWareHouse(this.tblResponse);\r\n }\r\n //to get country data\r\n GetCountry() {\r\n this.CountryService.GetCountries(\"101\").then((data) => {\r\n const resdata = data.data;\r\n //if resdata is not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.state.ship_countrySelectItems = resdata.ResponseData;\r\n this.state.bill_countrySelectItems = resdata.ResponseData;\r\n }\r\n });\r\n }\r\n\r\n SetState(cCode, fieldName) {\r\n ;\r\n\r\n if (fieldName == \"bill_Country\") {\r\n const resdata = this.state.allstate.filter((x) => x.CountryId == cCode);\r\n this.setState({\r\n bill_stateSelectItems: resdata,\r\n });\r\n }\r\n if (fieldName == \"ship_Country\") {\r\n const resdata = this.state.allstate.filter((x) => x.CountryId == cCode);\r\n this.setState({\r\n ship_stateSelectItems: resdata,\r\n });\r\n }\r\n }\r\n SetCity(sCode, fieldName) {\r\n ;\r\n\r\n if (fieldName == \"bill_State\") {\r\n const resdata = this.state.allcity.filter((x) => x.StateId == sCode);\r\n this.setState({\r\n bill_citySelectItems: resdata,\r\n });\r\n }\r\n if (fieldName == \"ship_State\") {\r\n const resdata = this.state.allcity.filter((x) => x.StateId == sCode);\r\n this.setState({\r\n ship_citySelectItems: resdata,\r\n });\r\n }\r\n }\r\n\r\n GetStates(cCode) {\r\n this.CountryService.GetStates(cCode).then((data) => {\r\n const resdata = data.data;\r\n\r\n this.setState({\r\n allstate: resdata.ResponseData,\r\n bill_stateSelectItems: resdata.ResponseData,\r\n ship_stateSelectItems: resdata.ResponseData,\r\n });\r\n\r\n // if(fieldName == 'bill_Country')\r\n // this.setState({\r\n // \"bill_stateSelectItems\" : resdata.ResponseData,\r\n // \"ship_stateSelectItems\" : resdata.ResponseData\r\n // });\r\n\r\n // if(fieldName == 'ship_Country')\r\n // this.setState({\r\n // \"ship_stateSelectItems\" : resdata.ResponseData\r\n // });\r\n });\r\n }\r\n\r\n GetCities(sCode) {\r\n this.CountryService.GetCities(sCode).then((data) => {\r\n const resdata = data.data;\r\n this.setState({\r\n allcity: resdata.ResponseData,\r\n bill_citySelectItems: resdata.ResponseData,\r\n ship_citySelectItems: resdata.ResponseData,\r\n });\r\n //if(fieldName == 'bill_State')\r\n // this.setState({\r\n // \"bill_citySelectItems\" : resdata.ResponseData,\r\n // \"ship_citySelectItems\" : resdata.ResponseData\r\n // });\r\n\r\n // if(fieldName == 'ship_State')\r\n // this.setState({\r\n // \"ship_citySelectItems\" : resdata.ResponseData\r\n // });\r\n });\r\n }\r\n\r\n // GetStates(cCode,fieldName) {\r\n\r\n // this.CountryService.GetStates(cCode).then(data =>{\r\n // const resdata = data.data;\r\n\r\n // if(fieldName == 'bill_Country')\r\n // this.setState({\r\n // \"bill_stateSelectItems\" : resdata.ResponseData\r\n // });\r\n\r\n // if(fieldName == 'ship_Country')\r\n // this.setState({\r\n // \"ship_stateSelectItems\" : resdata.ResponseData\r\n // });\r\n\r\n // });\r\n\r\n // }\r\n\r\n // GetCities(sCode,fieldName) {\r\n\r\n // let cCode = \"\";\r\n\r\n // this.CountryService.GetCities(sCode).then(data => {\r\n // const resdata = data.data;\r\n\r\n // if(fieldName == 'bill_State')\r\n // this.setState({\r\n // \"bill_citySelectItems\" : resdata.ResponseData\r\n // });\r\n\r\n // if(fieldName == 'ship_State')\r\n // this.setState({\r\n // \"ship_citySelectItems\" : resdata.ResponseData\r\n // });\r\n\r\n // });\r\n // }\r\n\r\n // get users data list from api\r\n GetWareHouse(tbl) {\r\n this.tblResponse.SortColumn = \"CreatedDt\";\r\n this.tblResponse.IsWareHouse = false;\r\n this.WareHouseMaterService.Get(this.tblResponse).then((data) => {\r\n const resdata = data.data;\r\n //if responsedata is not null sales state will be set with ResponseData\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n updateLoader: true,\r\n });\r\n }\r\n //if responsedata is null sales state will be set null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n updateLoader: true,\r\n });\r\n }\r\n });\r\n }\r\n\r\n // call every change of form and validation part also\r\n handleChange(event) {\r\n if (\r\n this.state.bill_Pincode != (null || undefined || '') &&\r\n this.state.bill_Address1 != (null || undefined || '') &&\r\n this.state.bill_Address2 != (null || undefined || '')\r\n ) {\r\n this.setState({\r\n chkbx: false,\r\n });\r\n }\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n\r\n const isValid = this.validateForm(value, name);\r\n this.setState({ errors, [name]: value });\r\n //to set state of IsActive\r\n if (name == \"IsActive\")\r\n this.setState({\r\n IsActive: event.target.checked,\r\n });\r\n }\r\n\r\n // call to update billing to shipping\r\n SameAsBilling(event) {\r\n if (event.target.checked) {\r\n this.setState({\r\n ship_countrySelectItems: this.state.bill_countrySelectItems,\r\n ship_stateSelectItems: this.state.bill_stateSelectItems,\r\n ship_citySelectItems: this.state.bill_citySelectItems,\r\n ship_Country: this.state.bill_Country,\r\n ship_State: this.state.bill_State,\r\n ship_City: this.state.bill_City,\r\n ship_Address1: this.state.bill_Address1,\r\n ship_Address2: this.state.bill_Address2,\r\n ship_Pincode: this.state.bill_Pincode,\r\n });\r\n }\r\n }\r\n\r\n // Validate form\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"CompanyId\":\r\n if (value == undefined || value == \"\") {\r\n IsValid = false;\r\n errors.CompanyId = \"Please select Company\";\r\n } else {\r\n errors.CompanyId = \"\";\r\n }\r\n break;\r\n\r\n case \"FirmName\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.FirmName = \"Please enter FirmName.\";\r\n } else errors.UserName = \"\";\r\n break;\r\n // case 'ship_Country':\r\n // if (value == undefined || value == \"\") {\r\n // IsValid = false;\r\n // errors.ship_Country = \"Please select country.\";\r\n // } else {\r\n // errors.ship_Country = '';\r\n // this.SetState(value.CountryId, name);\r\n // }\r\n\r\n // break;\r\n case \"bill_Country\":\r\n if (value == undefined || value == \"\") {\r\n IsValid = false;\r\n errors.bill_Country = \"Please select country.\";\r\n } else {\r\n errors.bill_Country = \"\";\r\n this.SetState(value.CountryId, name);\r\n }\r\n break;\r\n case \"prefix\":\r\n if (value.length < 2) {\r\n IsValid = false;\r\n errors.prefix = \"Please enter Prefix of 2 character\";\r\n } else errors.prefix = \"\";\r\n break;\r\n case \"Wcode\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.Wcode = \"Please enter WareHouse Code.\";\r\n } else errors.Wcode = \"\";\r\n break;\r\n case \"FirmName\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.FirmName = \"Please enter your first name.\";\r\n } else if (value.length >= 1) {\r\n if (!value.match(/^[A-Za-z]+$/)) {\r\n IsValid = false;\r\n errors.FirmName = \"FirmName should be alpha only.\";\r\n } else errors.FirmName = \"\";\r\n } else errors.FirmName = \"\";\r\n break;\r\n case \"LastName\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.LastName = \"Please enter your last name.\";\r\n } else if (value.length >= 1) {\r\n if (!value.match(/^[A-Za-z]+$/)) {\r\n IsValid = false;\r\n errors.LastName = \"LastName should be alpha only.\";\r\n } else errors.LastName = \"\";\r\n } else errors.LastName = \"\";\r\n break;\r\n // case \"Email\":\r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.Email = \"Please enter your email-id.\";\r\n // } else if (value.length >= 1) {\r\n // if (!value.match(/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/)) {\r\n // IsValid = false;\r\n // errors.Email = \"Please enter valid email-id.\";\r\n // } else errors.Email = \"\";\r\n // } else errors.Email = \"\";\r\n // break;\r\n // case \"MobileNo\":\r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.MobileNo = \"Please enter your mobile no.\";\r\n // } else if (value.length >= 1) {\r\n // if (!value.match(/^[6-9]\\d{9}$/)) {\r\n // IsValid = false;\r\n // errors.MobileNo = \"Please enter valid mobile no.\";\r\n // } else errors.MobileNo = \"\";\r\n // } else errors.MobileNo = \"\";\r\n // break;\r\n\r\n case \"IsActive\":\r\n this.setState({\r\n IsActive: value,\r\n });\r\n break;\r\n // case 'ship_City':\r\n // if (value == undefined || value == \"\") {\r\n // IsValid = false;\r\n // errors.ship_City = \"Please select city\";\r\n // } else\r\n // errors.ship_City = '';\r\n // break;\r\n case \"bill_City\":\r\n if (value == undefined || value == \"\") {\r\n IsValid = false;\r\n errors.bill_City = \"Please select city\";\r\n } else errors.bill_City = \"\";\r\n break;\r\n case \"bill_State\":\r\n if (value == undefined || value == \"\") {\r\n IsValid = false;\r\n errors.bill_State = \"Please select state\";\r\n } else {\r\n errors.bill_State = \"\";\r\n this.SetCity(value.StateId, name);\r\n }\r\n break;\r\n // case 'ship_State':\r\n // if (value == undefined || value == \"\") {\r\n // IsValid = false;\r\n // errors.ship_State = \"Please select state\";\r\n // } else {\r\n // errors.ship_State = '';\r\n // this.SetCity(value.StateId, name);\r\n // }\r\n // break;\r\n // case 'bill_Address1':\r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.bill_Address1 = \"Please enter address1\";\r\n // }\r\n // break;\r\n // case 'bill_Address2':\r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.bill_Address2 = \"Please enter address2\";\r\n // }\r\n // break;\r\n case \"bill_Pincode\":\r\n if (value == undefined || value == \"\" || value.length < 1) {\r\n IsValid = false;\r\n errors.bill_Pincode = \"Please enter pincode\";\r\n } else if (!value.match(/^[0-9]+$/)) {\r\n IsValid = false;\r\n errors.bill_Pincode = \"Please enter valid pincode.\";\r\n } else if (value.length != 6) {\r\n IsValid = false;\r\n errors.bill_Pincode = \"Please enter valid pincode\";\r\n } else errors.bill_Pincode = \"\";\r\n break;\r\n // case 'ship_Address1':\r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.ship_Address1 = \"Please enter address1\";\r\n // }\r\n // break;\r\n // case 'ship_Address2':\r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.ship_Address2 = \"Please enter address2\";\r\n // }\r\n // break;\r\n // case 'ship_Pincode':\r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.ship_Pincode = \"Please enter pincode\";\r\n // }\r\n // else if (!value.match(/^[0-9]+$/)) {\r\n // IsValid = false;\r\n // errors.ship_Pincode = \"Please enter valid pincode.\"\r\n // }\r\n // else if (value.length != 6) {\r\n // IsValid = false;\r\n // errors.ship_Pincode = \"Please enter valid pincode\";\r\n // }\r\n // else\r\n // errors.ship_Pincode = '';\r\n // break;\r\n default:\r\n break;\r\n }\r\n\r\n return IsValid;\r\n }\r\n\r\n // reset form text value\r\n formReset() {\r\n this.setState({\r\n ID: \"0\",\r\n Wcode: \"\",\r\n formHeading: \"Add Factory\",\r\n buttonLabel: \"Submit\",\r\n FirmName: \"\",\r\n Email: \"\",\r\n MobileNo: \"\",\r\n IsActive: true,\r\n\r\n chkbx: true,\r\n ship_City: \"\",\r\n ship_State: \"\",\r\n ship_Country: \"\",\r\n ship_Address1: \"\",\r\n ship_Address2: \"\",\r\n ship_Pincode: \"\",\r\n bill_City: \"\",\r\n bill_State: \"\",\r\n bill_Country: \"\",\r\n bill_Address1: \"\",\r\n bill_Address2: \"\",\r\n bill_Pincode: \"\",\r\n prefix: \"\",\r\n CompanyId: \"\",\r\n });\r\n let errors = this.state.formError;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = \"\";\r\n });\r\n }\r\n\r\n hideFunc() {\r\n this.setState({\r\n visible: false,\r\n buttonLabel: \"Submit\",\r\n formHeading: \"Add Factory\",\r\n });\r\n this.formReset();\r\n }\r\n // open Dialog\r\n openDialog() {\r\n this.setState({ visible: true, readOnlyPrefix: false });\r\n this.formReset();\r\n }\r\n // submit form and create or update user\r\n submitForm(event) {\r\n event.preventDefault();\r\n\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formError;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key];\r\n let valid = this.validateForm(val, key);\r\n //form is not valid\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n //form is valid\r\n if (isfrmvalid) {\r\n console.log(this.ship_City);\r\n\r\n const formData = {\r\n Wcode: this.state.Wcode,\r\n CompanyId: this.state.CompanyId.CompId,\r\n FirmName: this.state.FirmName,\r\n Email: this.state.Email,\r\n MobileNo: this.state.MobileNo,\r\n ID: this.state.ID,\r\n IsActive: this.state.IsActive,\r\n ship_City: this.state.bill_City.CityId,\r\n ship_State: this.state.bill_State.StateId,\r\n ship_Country: this.state.bill_Country.CountryId,\r\n ship_Pincode: this.state.bill_Pincode,\r\n ship_Address1: this.state.bill_Address1,\r\n ship_Address2: this.state.bill_Address2,\r\n bill_City: this.state.bill_City.CityId,\r\n bill_State: this.state.bill_State.StateId,\r\n bill_Country: this.state.bill_Country.CountryId,\r\n bill_Pincode: this.state.bill_Pincode,\r\n bill_Address1: this.state.bill_Address1,\r\n bill_Address2: this.state.bill_Address2,\r\n IsFactory: this.state.IsFactory,\r\n prefix: this.state.prefix,\r\n };\r\n this.setState({ updateLoader: false });\r\n setTimeout(() => {\r\n this.WareHouseMaterService.Save(formData).then((data) => {\r\n const resdata = data.data;\r\n //if ResponseCode is 200 success message will be shown else it will move 'else statement'\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n this.setState({\r\n loading: true,\r\n visible: false,\r\n updateLoader: true,\r\n });\r\n this.formReset();\r\n this.GetWareHouse(this.tblResponse);\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n\r\n this.setState({\r\n loading: true,\r\n visible: false,\r\n updateLoader: true,\r\n });\r\n });\r\n }, 100);\r\n }\r\n }\r\n\r\n // delete user data\r\n deleteUser(ID) {\r\n this.WareHouseMaterService.DeleteUser(ID).then((data) => {\r\n const resdata = data.data;\r\n //if ResponseCode is 200 success message will be shown else it will move 'else statement'\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.GetWareHouse(this.tblResponse);\r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n const totlrecord = this.state.totalRecords - 1;\r\n const row = this.state.rows;\r\n\r\n if (this.tblResponse.First >= totlrecord) {\r\n const _curntCursor = Math.round(totlrecord / row);\r\n this.tblResponse.First = _curntCursor + 1;\r\n }\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }\r\n\r\n setOnEditDDL(rowData) {\r\n this.SetState(rowData.ship_Country, \"ship_Country\");\r\n this.SetState(rowData.bill_Country, \"bill_Country\");\r\n this.SetCity(rowData.ship_State, \"ship_State\");\r\n this.SetCity(rowData.bill_State, \"bill_State\");\r\n }\r\n //to get company data for ddl\r\n GetCompany() {\r\n this.CompanyMasterService.GetCompanyDDL().then((data) => {\r\n const resdata = data.data;\r\n //if ResponseData is not null companyDDL state will be set to ResponseData\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n companyDDL: resdata.ResponseData,\r\n });\r\n }\r\n });\r\n }\r\n // Search Filter\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetWareHouse();\r\n }\r\n\r\n callbackFunction = (childData) => {\r\n this.setState({ message: childData });\r\n };\r\n\r\n // disabled check box\r\n activeTemplate(rowData, column) {\r\n return ;\r\n }\r\n\r\n // sort page\r\n onSort(event) {\r\n this.setState({\r\n sortOrder: this.state.sortOrder === 1 ? 2 : 1,\r\n sortIcon: !this.state.sortIcon,\r\n });\r\n const sortField =\r\n event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetWareHouse(this.tblResponse);\r\n const clickData = document.getElementsByClassName(\r\n \"p-sortable-column-icon pi pi-fw pi-sort\"\r\n );\r\n console.log(event);\r\n }\r\n\r\n // edit form\r\n actionTemplate(rowData, column) {\r\n const editMode = (e) => {\r\n this.setState({\r\n buttonLabel: \"Update\",\r\n formHeading: \"Update Factory\",\r\n visible: true,\r\n Wcode: rowData.WCode,\r\n ID: rowData.ID,\r\n FirmName: rowData.FirmName,\r\n Email: rowData.Email,\r\n MobileNo: rowData.MobileNo,\r\n IsActive: rowData.IsActive,\r\n ship_Address1: rowData.ship_Address1,\r\n ship_Address2: rowData.ship_Address2,\r\n ship_Pincode: rowData.ship_Pincode,\r\n bill_Address1: rowData.bill_Address1,\r\n bill_Address2: rowData.bill_Address2,\r\n bill_Pincode: rowData.bill_Pincode,\r\n prefix: rowData.Prefix,\r\n readOnlyPrefix: true,\r\n });\r\n\r\n const ship_CountryObj = this.state.ship_countrySelectItems.filter(\r\n (x) => x.CountryId == rowData.ship_Country\r\n );\r\n const bill_CountryObj = this.state.bill_countrySelectItems.filter(\r\n (x) => x.CountryId == rowData.bill_Country\r\n );\r\n\r\n this.SetState(rowData.ship_Country, \"ship_Country\"); //ship\r\n this.SetState(rowData.bill_Country, \"bill_Country\"); //bll\r\n this.SetCity(rowData.ship_State, \"ship_State\");\r\n this.SetCity(rowData.bill_State, \"bill_State\");\r\n\r\n const ship_StateObj = this.state.allstate.filter(\r\n (x) => x.StateId == rowData.ship_State\r\n );\r\n const bill_StateObj = this.state.allstate.filter(\r\n (x) => x.StateId == rowData.bill_State\r\n );\r\n const ship_CityObj = this.state.allcity.filter(\r\n (x) => x.CityId == rowData.ship_City\r\n );\r\n const bill_CityObj = this.state.allcity.filter(\r\n (x) => x.CityId == rowData.bill_City\r\n );\r\n\r\n this.setState({\r\n CompanyId: this.state.companyDDL.filter(\r\n (y) => y.CompId == rowData.CompanyId\r\n )[0],\r\n ship_Country: ship_CountryObj[0],\r\n bill_Country: bill_CountryObj[0],\r\n ship_State: ship_StateObj[0],\r\n bill_State: bill_StateObj[0],\r\n ship_City: ship_CityObj[0],\r\n bill_City: bill_CityObj[0],\r\n });\r\n };\r\n\r\n const deleteFunc = () => {\r\n confirmAlert({\r\n title: \"Confirm to delete\",\r\n message: \"Are you sure to do this.\",\r\n buttons: [\r\n {\r\n label: \"Yes\",\r\n onClick: () => this.deleteUser(rowData.ID),\r\n },\r\n {\r\n label: \"No\",\r\n onClick: () => null,\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\r\n // create html part\r\n //resolved KREP-139,KREP-83\r\n render() {\r\n const items = [{ label: \"Masters\" }, { label: \"Factory Master\" }];\r\n\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n let header = (\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

      Factory Master

      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n Export\r\n \r\n \r\n
      \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n\r\n \r\n \r\n
      \r\n {/*
      \r\n \r\n
      */}\r\n
      \r\n \r\n {\r\n this.handleChange(e);\r\n }}\r\n value={this.state.CompanyId}\r\n className=\"form-control\"\r\n placeholder=\"Select Company\"\r\n name=\"CompanyId\"\r\n options={this.state.companyDDL}\r\n />\r\n {this.state.formError.CompanyId !== null ? (\r\n
      {this.state.formError.CompanyId}
      \r\n ) : null}\r\n
      \r\n\r\n
      \r\n \r\n \r\n {this.state.formError.Wcode !== \"\" ? (\r\n
      {this.state.formError.Wcode}
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n\r\n
      \r\n \r\n \r\n {this.state.formError.FirmName !== \"\" ? (\r\n
      {this.state.formError.FirmName}
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n\r\n
      \r\n \r\n \r\n {this.state.formError.Email !== null ? (\r\n
      {this.state.formError.Email}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.MobileNo !== null ? (\r\n
      {this.state.formError.MobileNo}
      \r\n ) : null}\r\n
      \r\n\r\n
      \r\n \r\n \r\n {this.state.formError.prefix !== null ? (\r\n
      {this.state.formError.prefix}
      \r\n ) : null}\r\n {/*
      \r\n \r\n
      */}\r\n
      \r\n
      \r\n

      \r\n Billing Address\r\n

      \r\n\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.bill_Country !== null ? (\r\n
      \r\n {this.state.formError.bill_Country}\r\n
      \r\n ) : null}\r\n
      \r\n \r\n \r\n {this.state.formError.bill_State !== null ? (\r\n
      \r\n {this.state.formError.bill_State}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.bill_City !== null ? (\r\n
      \r\n {this.state.formError.bill_City}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.bill_Address1 !== null ? (\r\n
      \r\n {this.state.formError.bill_Address1}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.bill_Address2 !== null ? (\r\n
      \r\n {this.state.formError.bill_Address2}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.bill_Pincode !== null ? (\r\n
      \r\n {this.state.formError.bill_Pincode}\r\n
      \r\n ) : null}\r\n
      \r\n
      \r\n {/*
      \r\n

      Shipping Address

      \r\n
      \r\n\r\n\r\n
      \r\n \r\n \r\n {this.state.formError.ship_Country !== null ?\r\n
      {this.state.formError.ship_Country}
      : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.ship_State !== null ?\r\n
      {this.state.formError.ship_State}
      : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.ship_City !== null ?\r\n
      {this.state.formError.ship_City}
      : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.ship_Address1 !== null ?\r\n
      {this.state.formError.ship_Address1}
      : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.ship_Address2 !== null ?\r\n
      {this.state.formError.ship_Address2}
      : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.ship_Pincode !== null ?\r\n
      {this.state.formError.ship_Pincode}
      : 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","import React, { Component } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Column } from \"primereact/column\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Button } from \"primereact/button\";\r\nimport $ from \"jquery\";\r\nimport NumberGenerationService from \"../../services/NumberGenerationService\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport tableRequest from \"../../models/tableRequest\";\r\nimport ApiService from \"../../services/apiService\";\r\nimport Loaders from \"../../template/Loaders\";\r\n// TO Generate NUmber\r\nexport default class AdminNumberGenerated extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.NumberGenerationService = new NumberGenerationService();\r\n this.ApiService = new ApiService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n visible: false,\r\n buttonLabel: \"Submit\",\r\n updateLoader: false,\r\n formHeading: \"Add Number Generation\",\r\n sortOrder: \"\",\r\n FromNo: \"\",\r\n ToNo: \"\",\r\n Qty: \"\",\r\n formError: {\r\n FromNo: null,\r\n ToNo: null,\r\n Qty: null,\r\n },\r\n prefix: \"\",\r\n downloadLink: \"\",\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n };\r\n\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.handleChnage = this.handleChnage.bind(this);\r\n //this.submitForm = this.submitForm.bind(this);\r\n this.hideFunc = this.hideFunc.bind(this);\r\n this.onPage = this.onPage.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n // this.GetFromNo = this.GetFromNo.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n }\r\n //trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.GetGeneratedNumbers();\r\n }, 1000);\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n\r\n // call page event\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetGeneratedNumbers();\r\n }, 250);\r\n }\r\n\r\n // show when edit record\r\n actionTemplate(rowData) {\r\n const editMode = () => {\r\n this.Downlaod(rowData);\r\n };\r\n return (\r\n
      \r\n \r\n
      \r\n );\r\n }\r\n\r\n //validate form\r\n //resolved KREP-17\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"FromNo\":\r\n if (value < 1) {\r\n IsValid = false;\r\n errors.FromNo = \"Please enter your from number.\";\r\n } else {\r\n if (!value.match(/^[0-9]+$/)) {\r\n IsValid = false;\r\n errors.FromNo = \"Please enter only number.\";\r\n this.setState({ Qty: 0 });\r\n } else {\r\n errors.ToNo = null;\r\n errors.Qty = null;\r\n errors.FromNo = null;\r\n const fromNumber = value.trim() === \"\" ? 0 : parseInt(value.trim());\r\n const toNumber =\r\n this.state.ToNo.toString().trim() === \"\"\r\n ? 0\r\n : parseInt(this.state.ToNo.toString().trim());\r\n if (fromNumber >= 1 && toNumber >= 1) {\r\n if (fromNumber <= toNumber) {\r\n const qty = toNumber - fromNumber + 1;\r\n if (qty >= 0) {\r\n this.setState({ Qty: qty });\r\n } else {\r\n IsValid = false;\r\n errors.FromNo = \"From number should be less than to number.\";\r\n this.setState({ Qty: 0 });\r\n }\r\n } else {\r\n IsValid = false;\r\n errors.FromNo = \"From number should be less than to number.\";\r\n this.setState({ Qty: 0 });\r\n }\r\n } else {\r\n // IsValid = false;\r\n // errors.FromNo = \"From number should be less than to number.\";\r\n this.setState({ Qty: 0 });\r\n }\r\n }\r\n }\r\n break;\r\n case \"ToNo\":\r\n if (value < 1) {\r\n IsValid = false;\r\n errors.ToNo = \"Please enter To Number.\";\r\n } else errors.ToNo = null;\r\n break;\r\n case \"Qty\":\r\n if (value < 1) {\r\n IsValid = false;\r\n errors.Qty = \"Please enter your quantity.\";\r\n } else {\r\n if (!value.match(/^[0-9]+$/)) {\r\n IsValid = false;\r\n errors.Qty = \"Please enter only number.\";\r\n this.setState({ Qty: 0 });\r\n } else {\r\n errors.ToNo = null;\r\n errors.Qty = null;\r\n errors.FromNo = null;\r\n const qty = value.trim() === \"\" ? 0 : parseInt(value.trim());\r\n const fromNumber =\r\n this.state.FromNo.toString().trim() === \"\"\r\n ? 0\r\n : parseInt(this.state.FromNo.toString().trim());\r\n if (fromNumber >= 1 && qty >= 1) {\r\n const toNumber = qty + fromNumber - 1;\r\n if (toNumber >= 0) {\r\n this.setState({ ToNo: toNumber });\r\n } else {\r\n IsValid = false;\r\n errors.Qty =\r\n \"To number should be greater than or equal to from number.\";\r\n this.setState({ ToNo: 0 });\r\n }\r\n } else {\r\n // IsValid = false;\r\n // errors.ToNo = \"To number should be greater than from number.\";\r\n this.setState({ ToNo: 0 });\r\n }\r\n }\r\n }\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return IsValid;\r\n }\r\n\r\n // call when input data on form\r\n handleChnage(event) {\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n\r\n const isValid = this.validateForm(value, name);\r\n this.setState({ errors, [name]: value });\r\n }\r\n hideFunc() {\r\n this.setState({\r\n visible: false,\r\n buttonLabel: \"Submit\",\r\n formHeading: \"Add Number Generation\",\r\n });\r\n this.formReset();\r\n }\r\n\r\n // form Reset\r\n formReset() {\r\n this.setState({\r\n FromNo: \"\",\r\n ToNo: \"\",\r\n Qty: \"\",\r\n });\r\n\r\n let errors = this.state.formError;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = \"\";\r\n });\r\n }\r\n // submit form to api\r\n Downlaod(rowData) {\r\n const formData = {\r\n FromNo: rowData.FromNo,\r\n ToNo: rowData.ToNo,\r\n Qty: rowData.Qty,\r\n Prefix: rowData.Prefix,\r\n ProductName: rowData.ProductName,\r\n };\r\n setTimeout(() => {\r\n this.NumberGenerationService.DownloadNumber(formData).then((data) => {\r\n const resdata = data.data;\r\n //if response code is 200 sucess else error or warning message\r\n if (resdata.ResponseCode === \"200\") {\r\n this.refs.child.showSuccess(resdata.ResponseMessage);\r\n this.setState({\r\n loading: true,\r\n visible: false,\r\n // downloadLink : resdata.downloadLinK\r\n });\r\n this.formReset();\r\n this.GetGeneratedNumbers();\r\n\r\n const link = document.createElement(\"a\");\r\n link.href = resdata.downloadLinK;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.refs.child.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.refs.child.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }, 1000);\r\n }\r\n\r\n // get product issue number list data\r\n GetGeneratedNumbers() {\r\n // this.tblResponse.SortColumn='CreatedDt';\r\n this.tblResponse.Prefix = \"\";\r\n this.tblResponse.isAdmin = true;\r\n this.tblResponse.SortColumn = \"FromNo\";\r\n this.tblResponse.sortOrder = \"Desc\";\r\n this.NumberGenerationService.GetGeneratedNumbers(this.tblResponse).then(\r\n (data) => {\r\n const resdata = data.data;\r\n //if response data is not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n updateLoader: true,\r\n });\r\n }\r\n ///if response data is null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n // set Lazy Loading Values\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = \"1\";\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n }\r\n\r\n // search Filter table\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetGeneratedNumbers();\r\n }\r\n\r\n // Sort table\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField = event.sortField; //== \"CreatedDate\" ? \"CreatedDate\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetGeneratedNumbers();\r\n }\r\n\r\n // Render html\r\n //resolved KREP-19\r\n render() {\r\n let header = (\r\n
      \r\n \r\n \r\n
      \r\n );\r\n return (\r\n <>\r\n \r\n {}\r\n
      \r\n

      Number Download

      \r\n
      \r\n\r\n \r\n \r\n \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 \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Column } from \"primereact/column\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport UserService from \"../../services/UserService\";\r\nimport DispatchService from \"../../services/DispatchService\";\r\nimport { Button } from \"primereact/button\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport { confirmAlert } from \"react-confirm-alert\"; // Import\r\nimport { ConfirmationModal } from \"../../template/ConfirmationModal\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport $ from \"jquery\";\r\nimport ApiService from \"../../services/apiService\";\r\nimport Loaders from '../../template/Loaders';\r\nimport { BreadCrumb } from 'primereact/breadcrumb';\r\nimport { Card } from 'primereact/card';\r\nexport default class ReturnCarton extends Component\r\n {\r\n constructor(props) {\r\n super(props);\r\n this.UserService = new UserService();\r\n this.DispatchService = new DispatchService();\r\n this.ApiService = new ApiService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n\r\n scanTxt: '',\r\n \r\n radio: false,\r\n buttonLabel: \"Submit\",\r\n sales: [],\r\n scanItems: [],\r\n scanDisp: [],\r\n loading: false,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n Remark: \"\",\r\n globalFilter: null\r\n\r\n };\r\n this.hideFunc = this.hideFunc.bind(this);\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n //this.sendToEvent = this.sendToEvent.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n this.submitRemark = this.submitRemark.bind(this);\r\n this.onPage = this.onPage.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n this.ScanItem = this.ScanItem.bind(this);\r\n }\r\n //trigger api function on page call\r\n componentDidMount() {\r\n \r\n }\r\n\r\n // PAGE EVENT CALL\r\n onPage(event) {\r\n this.setState({\r\n loading: false,\r\n });\r\n\r\n \r\n }\r\n hideFunc() {\r\n this.setState({\r\n remarkVisible: false,\r\n olderstockVisible: false\r\n // formHeading: 'Add User'\r\n })\r\n\r\n }\r\n \r\n // get users data list from api\r\n \r\n\r\n // call every change of form and validation part also\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n this.setState({ errors, [name]: value });\r\n }\r\n\r\n openDialog() {\r\n this.setState({ visible: true });\r\n this.formReset();\r\n }\r\n\r\n submitForm(event) {\r\n\r\n\r\n event.preventDefault();\r\n //if SendTo length is 0 \r\n \r\n //if scanItems length is 0\r\n if (this.state.scanItems.length == 0) {\r\n this.refs.Messchild.showWarn(\"Scan First\");\r\n return;\r\n }\r\n\r\n //if(this.state.CartonId.ca)\r\n else {\r\n\r\n this.setState({\r\n remarkVisible: true\r\n });\r\n }\r\n \r\n }\r\n\r\n\r\n \r\n\r\n\r\n submitRemark(event) {\r\n let loader=this.state.loading;\r\n this.setState({\r\n loading:!loader\r\n })\r\n event.preventDefault();\r\n let formData = {\r\n scanned: this.state.scanItems,\r\n IsActive:this.state.IsActive,\r\n Remark:this.state.Remark,\r\n };\r\n \r\n this.SaveDispatch(formData);\r\n }\r\n\r\n\r\n SaveDispatch(formData) {\r\n\r\n\r\n setTimeout(() => {\r\n this.DispatchService.ReturnCarton(formData).then((data) => {\r\n \r\n const resdata = data.data;\r\n let loader=this.state.loading;\r\n //if ResponseCode is 200 success message will be shown else will move to 'else statement'\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n\r\n this.setState({\r\n scanItems: [],\r\n scanDisp:[],\r\n //KREP-55\r\n remarkVisible: false,\r\n needtoSaveDispatch: \"\",\r\n Remark:'',\r\n radio: false,IsActive:false,\r\n loading:!loader,\r\n \r\n\r\n });\r\n \r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n } else {\r\n this.setState({\r\n scanItems: [],\r\n scanDisp:[],\r\n IsActive:false,\r\n Remark:'',\r\n loading:!loader,\r\n //KREP-55\r\n remarkVisible: false,\r\n\r\n }); this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n \r\n }\r\n });\r\n }, 100);\r\n\r\n }\r\n\r\n // scan qr code\r\n ScanItem(e) {\r\n\r\n if (e.key === 'Enter') {\r\n \r\n let qr = e.target.value;\r\n \r\n if (qr.includes(\"TID\") || qr.includes(\"SID\") || qr.includes(\"DID\")) {\r\n\r\n\r\n\r\n this.setCartonDetails(qr, true);\r\n\r\n\r\n\r\n } else {\r\n this.refs.Messchild.showWarn(\"Invalid Scanned\");\r\n }\r\n this.setState({\r\n scanTxt: \"\"\r\n });\r\n\r\n }\r\n }\r\n\r\n\r\n // set tertiary details in grid\r\n\r\n setCartonDetails(qr, checkItemDate) {\r\n;\r\nlet id=1;\r\n \r\n (this.state.scanItems).forEach(element => {\r\n if (element.CartonId == qr) {\r\n\r\n this.refs.Messchild.showWarn(\"Already Scanned..!\");\r\n id=2;\r\n return;\r\n }\r\n\r\n });\r\n \r\nsetTimeout(() => {\r\n if(id==1){\r\n debugger\r\n let flag=this.state.IsActive?true:false;\r\n let wareHouseId= sessionStorage.getItem(\"wareHouseId\");\r\n this.DispatchService.GetReturnInfo(qr,flag,wareHouseId).then((data) => {\r\n\r\n const resdata = data.data;\r\n \r\n //if ResponseCode is 200 else will move to 'else statement'\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n //disable\r\n\r\n (resdata.ResponseData).forEach(element => {\r\n \r\n element.MFGDate = (element.MFGDate != null || undefined) ? element.MFGDate.substring(0, 10) : element.MFGDate\r\n element.EXPDate = (element.EXPDate != null || undefined) ? element.EXPDate.substring(0, 10) : element.EXPDate\r\n \r\n if (this.state.scanItems.length > 0) {\r\n \r\n let check = this.state.scanItems.filter(\r\n (y) => y.Id == element.Id\r\n );\r\n\r\n if (check.length > 0) {\r\n \r\n // this.refs.Messchild.showWarn(\"already Scanned\");\r\n \r\n }\r\n }\r\n\r\n this.state.scanItems.push(element);\r\n \r\n if (this.state.scanDisp.length > 0) {\r\n \r\n let checkseqNo = this.state.scanDisp.filter(\r\n (y) => y.CartonId == element.CartonId\r\n );\r\n\r\n if (checkseqNo.length > 0) {\r\n\r\n return\r\n }\r\n \r\n }\r\n this.state.scanDisp.push(element);\r\n \r\n \r\n \r\n this.setState({\r\n scanItems: this.state.scanItems,\r\n scanTxt: \"\",\r\n radio: true\r\n\r\n });\r\n });\r\n }\r\n \r\n else {\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n }\r\n });\r\n }\r\n \r\n\r\n}, 50);\r\n }\r\n // delete user data\r\n deleteScanned(TertiaryCartonId) {\r\n \r\n let arrayfilter = this.state.scanItems.filter(\r\n (x) => x.CartonId != TertiaryCartonId\r\n );\r\n\r\n this.setState({\r\n scanItems: arrayfilter,\r\n\r\n });\r\n let array = this.state.scanDisp.filter(\r\n (x) => x.CartonId != TertiaryCartonId\r\n );\r\n\r\n this.setState({\r\n scanDisp: array,\r\n });\r\n }\r\n\r\n\r\n // seach table\r\n searchFilter(e) {\r\n this.setState({\r\n loading: false,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetDispatch();\r\n }\r\n\r\n callbackFunction = (childData) => {\r\n this.setState({ message: childData });\r\n };\r\n\r\n \r\n // Sort table\r\n onSort(event) {\r\n this.setState({\r\n sortOrder: this.state.sortOrder === 1 ? 2 : 1,\r\n sortIcon: !this.state.sortIcon,\r\n });\r\n const sortField =\r\n event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n \r\n const clickData = document.getElementsByClassName(\r\n \"p-sortable-column-icon pi pi-fw pi-sort\"\r\n );\r\n console.log(event);\r\n }\r\n\r\n // edit form\r\n actionTemplate(rowData, column) {\r\n const deleteFunc = () => {\r\n confirmAlert({\r\n title: \"Confirm to delete\",\r\n message: \"Are you sure to do this.\",\r\n buttons: [\r\n {\r\n label: \"Yes\",\r\n onClick: () => this.deleteScanned(rowData.CartonId),\r\n },\r\n {\r\n label: \"No\",\r\n onClick: () => null,\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 // create html part\r\n render() {\r\n const items = [\r\n { label: 'Transaction' },\r\n { label: 'Dispatch' }\r\n ];\r\n\r\n const home = { icon: 'pi pi-home', url: '/dashboard' }\r\n let header = (\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
      \r\n
      \r\n

      Carton 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{let val=this.state.IsActive; this.setState({IsActive:!val})}}/>\r\n
      \r\n
      \r\n \r\n { this.handleChange(e) }} name=\"scanTxt\" value={this.state.scanTxt} type=\"search\"\r\n className=\"form-control ml-2\" id=\"scanTxt\" onKeyDown={e => this.ScanItem(e) } />\r\n\r\n {/* {\r\n this.ScanItem(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\r\n
      \r\n \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n
      \r\n
      \r\n \r\n \r\n
      \r\n
      \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 instance from './DefaultApi';\r\n\r\nexport default class ReplaceService {\r\n ControllerName = 'Replace';\r\n\r\n // get all products\r\n GetQrCodeDetails(data) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetQrCodeDetails`, data).then(res => res)\r\n }\r\n\r\n ReplaceQrCode(data){\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/ReplaceQrCode`, data).then(res => res)\r\n }\r\n\r\n}","import React, { Component } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport ReplaceService from \"../../services/ReplaceService\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport { Button } from \"primereact/button\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport { Card } from \"primereact/card\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Column } from \"primereact/column\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport Loaders from \"../../template/Loaders\";\r\n\r\nexport default class Replace extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.ReplaceService = new ReplaceService();\r\n this.state = {\r\n FistQrCode: \"\",\r\n type: \"\",\r\n formError: {\r\n FistQrCode: \"\",\r\n },\r\n scanItems: [],\r\n visible: false,\r\n updateLoader: true,\r\n };\r\n\r\n this.onValueChange = this.onValueChange.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n this.formReset = this.formReset.bind(this);\r\n }\r\n //to trigger api function o page call\r\n componentDidMount() {}\r\n\r\n submitForm() {\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formError;\r\n\r\n // Object.entries(checkerror).map(([key, value]) => {\r\n // const val = this.state[key];\r\n // let valid = this.validateForm(val, key);\r\n // //form is not valid\r\n\r\n // if (!valid) {\r\n // this.setState({ checkerror: isfrmvalid });\r\n // isfrmvalid = false;\r\n // }\r\n // });\r\n\r\n if (this.state.scanItems.length > 0) {\r\n if (isfrmvalid) {\r\n this.setState({ visible: true });\r\n }\r\n } else {\r\n this.refs.Messchild.showWarn(\r\n \"first scan primary qr code whome you want to replace\"\r\n );\r\n }\r\n }\r\n\r\n brekQrCode(qr) {\r\n if (\r\n qr.includes(\"msrmorganics\") ||\r\n qr.includes(\"localhost\") ||\r\n qr.includes(\"104\")\r\n ) {\r\n /////////for multiline qr code on KREPL//\r\n const splitQr = qr.split(\"=\");\r\n console.log(splitQr[1]);\r\n /////////for multiline qr code on KREPL//\r\n\r\n /////////for multiline qr code on KREPL// splitQr[splitQr.length-1].trim()\r\n qr = splitQr[1] === undefined ? qr : splitQr[1];\r\n /////////for multiline qr code on KREPL//\r\n }\r\n return qr;\r\n }\r\n // submit packing\r\n submitFormFinal(event) {\r\n event.preventDefault();\r\n this.setState({ updateLoader: false });\r\n if (\r\n this.state.scanItems == null ||\r\n this.state.scanItems == undefined ||\r\n this.state.scanItems.length == 0\r\n ) {\r\n this.refs.Messchild.showWarn(\r\n \"first scan primary qr code whome you want to replace\"\r\n );\r\n return;\r\n }\r\n if (this.state.type == \"SID\") {\r\n if (!event.target.value.includes(\"SID\")) {\r\n this.refs.Messchild.showWarn(\"valid only SID\");\r\n return;\r\n }\r\n }\r\n const first = this.state.scanItems.find(Boolean);\r\n\r\n let firstqr = this.brekQrCode(first.FistQrCode);\r\n let secondqr = this.brekQrCode(event.target.value);\r\n\r\n const formData = {\r\n //createdBy\r\n FistQrCode: firstqr,\r\n Type: this.state.type,\r\n SecondQrCode: secondqr,\r\n };\r\n\r\n this.setState({ CartonName: \"\" });\r\n setTimeout(() => {\r\n this.ReplaceService.ReplaceQrCode(formData).then((data) => {\r\n const resdata = data.data;\r\n this.setState({ updateLoader: true });\r\n //if ResponseCode is 200 success else error or warning message\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n // this.PrintSecondaryPackagingService.formPreview1([resdata.ResponseData]);\r\n\r\n this.formReset();\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.setState({ CartonName: \"\" });\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }, 100);\r\n }\r\n\r\n formReset() {\r\n this.setState({\r\n FistQrCode: \"\",\r\n scanItems: [],\r\n visible: false,\r\n CartonName: \"\",\r\n });\r\n\r\n let errors = this.state.formError;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = \"\";\r\n });\r\n }\r\n\r\n ScanItem(e) {\r\n if (e.key === \"Enter\") {\r\n let qr = e.target.value;\r\n\r\n if (\r\n qr.includes(\"msrmorganics\") ||\r\n qr.includes(\"localhost\") ||\r\n qr.includes(\"104\")\r\n ) {\r\n /////////for multiline qr code on KREPL//\r\n const splitQr = qr.split(\"=\");\r\n console.log(splitQr[1]);\r\n /////////for multiline qr code on KREPL//\r\n\r\n /////////for multiline qr code on KREPL// splitQr[splitQr.length-1].trim()\r\n qr = splitQr[1] === undefined ? qr : splitQr[1];\r\n /////////for multiline qr code on KREPL//\r\n }\r\n const fObj = {\r\n FistQrCode: qr,\r\n Type: this.state.type,\r\n };\r\n this.ReplaceService.GetQrCodeDetails(fObj).then((data) => {\r\n const resdata = data.data;\r\n //if ResponseCode is 200 success else error or warning message\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.setState({\r\n scanItems: resdata.ResponseData,\r\n visible: true,\r\n });\r\n } else this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n });\r\n\r\n this.setState({\r\n FistQrCode: \"\",\r\n });\r\n }\r\n }\r\n\r\n onValueChange(e) {\r\n this.setState({\r\n type: e.target.value,\r\n });\r\n }\r\n\r\n // call every change of form and validation part also\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n\r\n const isValid = this.validateForm(value, name);\r\n this.setState({ errors, [name]: value });\r\n }\r\n\r\n // validate form\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"FistQrCode\":\r\n if (!value || value.length < 1) {\r\n IsValid = false;\r\n errors.FistQrCode = \"Please enter QrCode.\";\r\n } else errors.FistQrCode = \"\";\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return IsValid;\r\n }\r\n\r\n //sessionStorage.getItem(\"Prefix\")\r\n render() {\r\n const items = [{ label: \"Transactions\" }, { label: \"Replace\" }];\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n let header = (\r\n
      \r\n
      \r\n
      \r\n \r\n\r\n this.setState({ globalFilter: e.target.value })}\r\n placeholder=\"Global Search\"\r\n size=\"30\"\r\n />\r\n
      \r\n
      \r\n );\r\n const TabView = (\r\n {\r\n this.setState({ visible: false });\r\n }}\r\n >\r\n
      \r\n {\" \"}\r\n {\r\n this.setState({ CartonName: e.target.value });\r\n }}\r\n onKeyDown={(e) => {\r\n if (e.key == \"Enter\") {\r\n if (e.target.value.includes(sessionStorage.getItem(\"Prefix\"))) {\r\n this.submitFormFinal(e);\r\n } else {\r\n this.refs.Messchild.showWarn(\"Invalid Cartons\");\r\n this.setState({ CartonName: \"\" });\r\n }\r\n }\r\n }}\r\n autoFocus\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

      Replace

      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Primary Qr Code\r\n \r\n Secondary Carton Slips\r\n {/* {\" \"}\r\n Tertiary Carton Slip */}\r\n
      \r\n\r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n {\r\n this.handleChange(e);\r\n }}\r\n onKeyDown={(e) => {\r\n this.ScanItem(e);\r\n }}\r\n className=\"form-control\"\r\n name=\"FistQrCode\"\r\n />\r\n\r\n {this.state.formError.FistQrCode !== null ? (\r\n
      {this.state.formError.FistQrCode}
      \r\n ) : null}\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n Replace\r\n \r\n
      \r\n
      \r\n
      \r\n\r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n {TabView}\r\n \r\n );\r\n }\r\n}\r\n","import instance from './DefaultApi';\r\n\r\nexport default class DealerLoyaltyReportService {\r\n ControllerName = 'Scheme';\r\n\r\n // get all data DealerLoyaltyReport\r\n GetDealerLoyaltyReport(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetDispatchLoyaltyData`, tableRequest).then(res => res)\r\n }\r\n\r\n // Get Verification Export Excel\r\n GetDealerLoyaltyExport(tableRequest) {\r\n return instance.post(`${process.env.REACT_APP_API_URL}${this.ControllerName}/GetDispatchLoyaltyExport`,tableRequest).then(res => res)\r\n }\r\n\r\n \r\n}","import React, { Component } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { CSVLink, CSVDownload } from \"react-csv\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Calendar } from \"primereact/calendar\";\r\nimport DealerLoyaltyReportService from \"../../services/DealerLoyaltyReportService\";\r\nimport tableRequest from \"../../models/tableRequest\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Column } from \"primereact/column\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport $ from \"jquery\";\r\nimport { SelectButton } from \"primereact/selectbutton\";\r\nimport Loaders from \"../../template/Loaders\";\r\nexport default class DealerLoyaltyReport extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.surveyLink = React.createRef();\r\n this.DealerLoyaltyReportService = new DealerLoyaltyReportService();\r\n this.tblResponse = new tableRequest();\r\n this.state = {\r\n FromDate: new Date(),\r\n ToDate: new Date(),\r\n success: false,\r\n updateLoader: false,\r\n emptyMessage: \"No Data found\",\r\n visible: false,\r\n sortOrder: \"\",\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n allData: [],\r\n // isPreprintedValue: \"Static Qr Mapping\",\r\n // isPreprinted: false\r\n };\r\n\r\n this.onPage = this.onPage.bind(this);\r\n this.FilterData = this.FilterData.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n //onChange = date => this.setState({ FromDate,ToDate })\r\n this.GetDealerLoyaltyExport = this.GetDealerLoyaltyExport.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n this.GetReportExport = this.GetReportExport.bind(this);\r\n // this.setPreprintedValue = this.setPreprintedValue.bind(this);\r\n }\r\n //to trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n var date = new Date();\r\n date.setDate(date.getDate() - 7);\r\n this.tblResponse.FromDate = date.toLocaleDateString();\r\n this.tblResponse.ToDate = new Date().toLocaleDateString();\r\n this.setState({\r\n FromDate: date,\r\n ToDate: new Date(),\r\n });\r\n this.GetDealerLoyalty();\r\n // this.GetDealerLoyaltyExport();\r\n }, 100);\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n\r\n onChange = (date) => this.setState({ FromDate: \"\", ToDate: \"\" });\r\n //on page loading\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n\r\n this.getLazyLoadingValues(event);\r\n this.GetDealerLoyalty();\r\n }\r\n //to search\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetDealerLoyalty();\r\n }\r\n //to filter data\r\n FilterData() {\r\n this.tblResponse.FromDate = this.state.FromDate.toLocaleDateString();\r\n this.tblResponse.ToDate = this.state.ToDate.toLocaleDateString();\r\n\r\n this.GetDealerLoyalty();\r\n }\r\n\r\n //get data list from api\r\n GetDealerLoyaltyExport() {\r\n this.DealerLoyaltyReportService.GetDealerLoyaltyExport(\r\n this.tblResponse\r\n ).then((data) => {\r\n const resdata = data.data;\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n allData: resdata.ResponseData,\r\n });\r\n } else {\r\n // this.setState({\r\n // allData: null\r\n // });\r\n }\r\n });\r\n }\r\n /// to set isPreprinted\r\n // setPreprintedValue() {\r\n // let value = null\r\n // this.setState({\r\n // isPreprintedValue: value,\r\n // isPreprinted: value == \"Static Qr Mapping\" ? false : true\r\n // }, () => {\r\n // this.tblResponse.isPreprinted = this.state.isPreprinted;\r\n // this.GetDealerLoyalty();\r\n // });\r\n // }\r\n\r\n //to export report data\r\n GetReportExport() {\r\n this.DealerLoyaltyReportService.GetDealerLoyaltyExport(\r\n this.tblResponse\r\n ).then((data) => {\r\n const resdata = data.data;\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n allData: resdata.ResponseData,\r\n });\r\n this.setState({ allData: resdata.ResponseData }, () => {\r\n this.surveyLink.link.click();\r\n });\r\n }\r\n });\r\n }\r\n onChange = (date) => this.setState({ FromDate: \"\", ToDate: \"\" });\r\n\r\n //to handle\r\n //resolved KREP-22\r\n handleChange(event) {\r\n const { name, value } = event.target;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"FromDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select from date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (value instanceof Date && this.state.ToDate instanceof Date) {\r\n const startDate = value;\r\n const endDate = this.state.ToDate;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"From date must be less than to date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n case \"ToDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select to date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (\r\n value instanceof Date &&\r\n this.state.FromDate instanceof Date\r\n ) {\r\n const startDate = this.state.FromDate;\r\n const endDate = value;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"To date must be greater than from date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.setState({ [name]: value });\r\n }\r\n\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = \"1\";\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n this.tblResponse.FromDate = this.state.FromDate;\r\n this.tblResponse.ToDate = this.state.ToDate;\r\n }\r\n\r\n // get data list from api\r\n GetDealerLoyalty() {\r\n // this.tblResponse.SortColumn = 'VerifiedDt';\r\n // this.tblResponse.isPreprinted = false;\r\n this.DealerLoyaltyReportService.GetDealerLoyaltyReport(\r\n this.tblResponse\r\n ).then((data) => {\r\n const resdata = data.data;\r\n this.setState({ updateLoader: true });\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n });\r\n }\r\n //if response data null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n });\r\n\r\n // this.datasource = null;\r\n // this.setState({\r\n // totalRecords: 0,\r\n // first: 1,\r\n // sales: null,\r\n // loading: false\r\n // });\r\n }\r\n //to sort\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField =\r\n event.sortField == \"VerifiedDt\" ? \"VerifiedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetDealerLoyalty();\r\n }\r\n\r\n //to render html part\r\n render() {\r\n const options = [\"Static Qr Mapping\"]; //, 'PrePrinted Qr Mapping'];\r\n let header = (\r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n
      \r\n \r\n Submit\r\n \r\n \r\n
      \r\n
      \r\n \r\n \r\n {/* */}\r\n {/* Export */}\r\n\r\n \r\n Export\r\n \r\n
      \r\n
      \r\n );\r\n return (\r\n <>\r\n \r\n {}\r\n
      \r\n {/* */}\r\n

      Dealer Loyalty 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","import React, { Component } from \"react\";\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { CSVLink, CSVDownload } from \"react-csv\";\r\nimport { Calendar } from \"primereact/calendar\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport UserService from \"../../services/UserService.js\";\r\nimport ItemLedgerReportService from \"../../services/ItemLedgerReportService.js\";\r\nimport WareHouseMaterService from \"../../services/WareHouseMaterService.js\";\r\nimport ProductService from \"../../services/ProductService.js\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Column } from \"primereact/column\";\r\nimport MessageComponent from \"../../template/Message.jsx\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport $ from \"jquery\";\r\nimport Loaders from \"../../template/Loaders.js\";\r\nimport { DriveEtaSharp } from \"@material-ui/icons\";\r\nimport { withWidth } from \"@material-ui/core\";\r\n\r\nexport default class ItemStockDetail extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.surveyLink = React.createRef();\r\n this.UserService = new UserService();\r\n this.ProductService = new ProductService();\r\n this.WareHouseMaterService = new WareHouseMaterService();\r\n this.ItemLedgerReportService = new ItemLedgerReportService();\r\n this.tblResponse = new tableRequest();\r\n this.tblResponse.WareHouseId = 0;\r\n this.state = {\r\n warehouseVisible: true,\r\n WareHouseId: 0,\r\n ddid: \"\",\r\n FromDate: new Date(),\r\n ToDate: new Date(),\r\n SendTo: \"\",\r\n success: false,\r\n updateLoader: false,\r\n visible: false,\r\n sortOrder: \"\",\r\n sales: [],\r\n loading: true,\r\n first: 0,\r\n rows: 10,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n allData: [],\r\n wareHouseDDL: [],\r\n UserDDL: [],\r\n SelectedDDL: [],\r\n ProductDDL: [],\r\n };\r\n this.onPage = this.onPage.bind(this);\r\n this.FilterData = this.FilterData.bind(this);\r\n this.GetReportExport = this.GetReportExport.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n }\r\n //to trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n var date = new Date();\r\n date.setDate(date.getDate() - 7);\r\n this.tblResponse.FromDate = date.toLocaleDateString();\r\n this.tblResponse.ToDate = new Date().toLocaleDateString();\r\n this.setState({\r\n FromDate: date,\r\n ToDate: new Date(),\r\n });\r\n\r\n this.GetReport();\r\n\r\n // this.GetReportExport();\r\n }, 100);\r\n\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n }\r\n //to search\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetReport();\r\n }\r\n\r\n onChange = (date) => this.setState({ FromDate: \"\", ToDate: \"\" });\r\n //on page loading\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n this.GetReport();\r\n }, 250);\r\n }\r\n\r\n // get data list from api\r\n GetReportExport() {\r\n this.tblResponse.FromDate = this.state.FromDate.toLocaleDateString();\r\n this.tblResponse.ToDate = this.state.ToDate.toLocaleDateString();\r\n\r\n if (this.state.WareHouseId)\r\n this.tblResponse.WareHouseId = this.state.WareHouseId.ID;\r\n else this.tblResponse.WareHouseId = 0;\r\n\r\n if (this.state.ddid) this.tblResponse.UserId = this.state.ddid.UserId;\r\n else this.tblResponse.UserId = 0;\r\n\r\n this.ItemLedgerReportService.GetStockExport(this.tblResponse).then(\r\n (data) => {\r\n const resdata = data.data;\r\n console.log(this.state.SelectedDDL);\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n allData: resdata.ResponseData,\r\n });\r\n\r\n this.setState({ allData: resdata.ResponseData }, () => {\r\n this.surveyLink.link.click();\r\n });\r\n } else {\r\n // this.setState({\r\n // allData: null\r\n // });\r\n }\r\n }\r\n );\r\n }\r\n\r\n //to get warehouse data for ddl\r\n GetWareHouse(compId) {\r\n this.WareHouseMaterService.GetWareHouseDDL(compId).then((data) => {\r\n const resdata = data.data;\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n //const filteredWareHouse = resdata.ResponseData.filter(x=>x.ID != this.ApiService.getWareHouseId())\r\n\r\n this.setState({\r\n wareHouseDDL: resdata.ResponseData,\r\n });\r\n }\r\n });\r\n }\r\n\r\n //to get active users\r\n GetActiveUsers() {\r\n this.UserService.GetAllActiveUsers().then((data) => {\r\n const resdata = data.data;\r\n //if response data not null\r\n\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.setState({\r\n UserDDL: resdata.ResponseData,\r\n });\r\n }\r\n });\r\n }\r\n\r\n //to handle change\r\n handleChange(event) {\r\n let user = sessionStorage.getItem(\"username\");\r\n let userid = sessionStorage.getItem(\"userid\");\r\n const { name, value } = event.target;\r\n //to validate each form field with required conditions\r\n switch (name) {\r\n case \"SendTo\":\r\n if (this.state.warehouseVisible) {\r\n if (this.state.SendTo != null && value != null) {\r\n let req = {\r\n WareHouseId: value.ID,\r\n IsWareHouse: true,\r\n };\r\n this.GetProductDDL(req);\r\n }\r\n } else {\r\n if (this.state.SendTo != null && value != null) {\r\n let req = {\r\n UserId: value.UserId,\r\n IsWareHouse: false,\r\n };\r\n this.GetProductDDL(req);\r\n }\r\n }\r\n break;\r\n case \"FromDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select from date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (value instanceof Date && this.state.ToDate instanceof Date) {\r\n const startDate = value;\r\n const endDate = this.state.ToDate;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"From date must be less than to date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n case \"ToDate\":\r\n if (value == null || !(value instanceof Date)) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please select to date.\");\r\n return;\r\n } else if (\r\n !value.toLocaleDateString().match(/^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/)\r\n ) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\"Please enter only date.\");\r\n return;\r\n } else if (\r\n value instanceof Date &&\r\n this.state.FromDate instanceof Date\r\n ) {\r\n const startDate = this.state.FromDate;\r\n const endDate = value;\r\n if (!(Date.parse(startDate) <= Date.parse(endDate))) {\r\n this.formIsValid = false;\r\n this.refs.Messchild.showError(\r\n \"To date must be greater than from date.\"\r\n );\r\n return;\r\n }\r\n }\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.setState({ [name]: value });\r\n }\r\n //to filter data\r\n FilterData() {\r\n debugger;\r\n this.tblResponse.FromDate = this.state.FromDate.toLocaleDateString();\r\n this.tblResponse.ToDate = this.state.ToDate.toLocaleDateString();\r\n this.tblResponse.ToDate = this.state.ToDate.toLocaleDateString();\r\n this.tblResponse.WareHouseId = this.state.SendTo;\r\n this.setState({ sales: [] });\r\n this.GetReport();\r\n }\r\n\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = \"1\";\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n this.tblResponse.FromDate = this.state.FromDate;\r\n this.tblResponse.ToDate = this.state.ToDate;\r\n }\r\n //to get report data\r\n GetReport() {\r\n debugger;\r\n if (sessionStorage.getItem(\"uid\") == 1) {\r\n this.GetProductDDL({\r\n UserId: sessionStorage.getItem(\"uid\"),\r\n IsWareHouse: false,\r\n });\r\n this.GetWareHouse(0);\r\n this.GetActiveUsers();\r\n if (this.state.SendTo != null && this.state.SendTo != \"\")\r\n this.tblResponse.WareHouseId = this.state.SendTo.ID;\r\n else if (this.state.SendTo == \"\") this.tblResponse.WareHouseId = 0;\r\n else this.tblResponse.WareHouseId = 0;\r\n\r\n this.tblResponse.UserId = 0;\r\n this.tblResponse.IsWareHouse = true;\r\n\r\n this.tblResponse.ProductId = this.state.ProductId;\r\n } else {\r\n this.GetProductDDL({\r\n UserId: sessionStorage.getItem(\"uid\"),\r\n IsWareHouse: false,\r\n });\r\n let wid = sessionStorage.getItem(\"wid\");\r\n this.tblResponse.UserId = sessionStorage.getItem(\"uid\");\r\n this.tblResponse.WareHouseId = wid == null ? 0 : wid;\r\n this.tblResponse.ProductId = this.state.ProductId;\r\n }\r\n // if (this.state.WareHouseId)\r\n // this.tblResponse.WareHouseId = this.state.WareHouseId.ID;\r\n // else\r\n // this.tblResponse.WareHouseId=0;\r\n\r\n // if (this.state.ddid)\r\n // this.tblResponse.UserId = this.state.ddid.UserId;\r\n // else\r\n // this.tblResponse.UserId = 0 ;\r\n\r\n this.ItemLedgerReportService.GetNewStockReport(this.tblResponse).then(\r\n (data) => {\r\n const resdata = data.data;\r\n this.setState({ updateLoader: true });\r\n //if response data not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n });\r\n }\r\n //if response data null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n });\r\n }\r\n }\r\n );\r\n // this.datasource = null;\r\n // this.setState({\r\n // totalRecords: 0,\r\n // first: 1,\r\n // sales: null,\r\n // loading: false\r\n // });\r\n }\r\n\r\n //get Product drop down list\r\n GetProductDDL(req) {\r\n this.ProductService.GetMapProductsDDLBySelectionWU(req).then((data) => {\r\n const resdata = data.data;\r\n //if response data not null\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.setState({\r\n ProductDDL: resdata.ResponseData,\r\n });\r\n }\r\n });\r\n }\r\n //to sort\r\n onSort(event) {\r\n this.setState({ sortOrder: this.state.sortOrder === 1 ? 2 : 1 });\r\n const sortField =\r\n event.sortField == \"CreatedDate\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetReport();\r\n }\r\n\r\n //to render html part\r\n render() {\r\n let header = (\r\n
      \r\n
      \r\n
      \r\n {sessionStorage.getItem(\"uid\") == 1 ? (\r\n <>\r\n
      \r\n
      \r\n
      \r\n \r\n ) : null}\r\n
      \r\n
      Product
      \r\n
      \r\n {\r\n this.handleChange(e);\r\n }}\r\n value={this.state.ProductId}\r\n className=\"w-60\"\r\n placeholder=\"All Products\"\r\n name=\"ProductId\"\r\n options={this.state.ProductDDL}\r\n showClear={true}\r\n />\r\n
      \r\n
      \r\n\r\n
      \r\n From\r\n
      \r\n\r\n \r\n \r\n
      \r\n\r\n
      \r\n To\r\n
      \r\n \r\n \r\n \r\n\r\n \r\n Submit\r\n \r\n \r\n \r\n \r\n );\r\n return (\r\n <>\r\n \r\n {}\r\n
      \r\n

      Stock Report

      \r\n
      \r\n {\r\n this.dt = el;\r\n }}\r\n >\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 \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Column } from \"primereact/column\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport UserService from \"../../services/UserService\";\r\nimport CountryService from \"../../services/CountryService\";\r\nimport CompanyMasterService from \"../../services/CompanyMasterService\";\r\nimport { Button } from \"primereact/button\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport tableRequest from \"../../models/tableRequest.js\";\r\nimport { confirmAlert } from \"react-confirm-alert\"; // Import\r\nimport { ConfirmationModal } from \"../../template/ConfirmationModal\";\r\nimport MessageComponent from \"../../template/Message\";\r\nimport $, { contains } from \"jquery\";\r\nimport ApiService from \"../../services/apiService\";\r\nimport Loaders from \"../../template/Loaders\";\r\nimport { BreadCrumb } from \"primereact/breadcrumb\";\r\nimport { Card } from \"primereact/card\";\r\nimport { CSVLink } from \"react-csv\";\r\n// Manage Dealer data\r\nexport default class SalePersonMaster extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.ApiService = new ApiService();\r\n this.UserService = new UserService();\r\n this.CompanyMasterService = new CompanyMasterService();\r\n this.CountryService = new CountryService();\r\n this.tblResponse = new tableRequest();\r\n this.tblResponseExport = new tableRequest();\r\n this.state = {\r\n heads: [\r\n \"CompanyName\",\r\n \"FirstName\",\r\n \"EmpId\",\r\n \"Email\",\r\n \"MobileNo\",\r\n \"CreatedDt\",\r\n ],\r\n exportData: [],\r\n visible: false,\r\n ReferenceID: \"\",\r\n updateLoader: false,\r\n sortIcon: false,\r\n UserName: \"\",\r\n ship_City: \"\",\r\n ship_State: \"\",\r\n ship_Country: \"\",\r\n ship_Address1: \"\",\r\n ship_Address2: \"\",\r\n ship_Pincode: \"\",\r\n chkbx: true,\r\n bill_City: \"\",\r\n bill_State: \"\",\r\n bill_Country: \"\",\r\n bill_Address1: \"\",\r\n bill_Address2: \"\",\r\n bill_Pincode: \"\",\r\n EmpId:\"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Email: \"\",\r\n MobileNo: \"\",\r\n Password: \"\",\r\n ConfirmPassword: \"\",\r\n GST: \"\",\r\n TIN: \"\",\r\n IsActive: false,\r\n sortOrder: \"1\",\r\n UserType: 6, //dealer\r\n CompanyId: \"\",\r\n companyDDL: [],\r\n formError: {\r\n ship_Country: \"\",\r\n UserName: \"\",\r\n ship_City: \"\",\r\n ship_State: \"\",\r\n bill_City: \"\",\r\n bill_State: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Password: \"\",\r\n bill_Country: \"\",\r\n Email: \"\",\r\n ConfirmPassword: \"\",\r\n GST: \"\",\r\n TIN: \"\",\r\n MobileNo: \"\",\r\n bill_Pincode: \"\",\r\n bill_Address1: \"\",\r\n bill_Address2: \"\",\r\n ship_Pincode: \"\",\r\n ship_Address1: \"\",\r\n ship_Address2: \"\",\r\n CompanyId: \"\",\r\n },\r\n\r\n formHeading: \"Add Salesperson\",\r\n buttonLabel: \"Submit\",\r\n sales: [],\r\n ship_citySelectItems: [],\r\n ship_stateSelectItems: [],\r\n ship_countrySelectItems: [],\r\n bill_citySelectItems: [],\r\n bill_stateSelectItems: [],\r\n bill_countrySelectItems: [],\r\n loading: true,\r\n first: 0,\r\n rows: 5,\r\n totalRecords: 0,\r\n globalFilter: null,\r\n emptyMessage: \"No Data found\",\r\n compDisabled: false,\r\n };\r\n\r\n this.actionTemplate = this.actionTemplate.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.SameAsBilling = this.SameAsBilling.bind(this);\r\n this.submitForm = this.submitForm.bind(this);\r\n this.hideFunc = this.hideFunc.bind(this);\r\n this.onPage = this.onPage.bind(this);\r\n this.searchFilter = this.searchFilter.bind(this);\r\n this.openDialog = this.openDialog.bind(this);\r\n this.onSort = this.onSort.bind(this);\r\n this.GetUserExport = this.GetUserExport.bind(this);\r\n }\r\n //trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.tblResponse.UserType = 6;\r\n this.GetUsers(this.tblResponse);\r\n this.GetStates(0);\r\n this.GetCities(0);\r\n\r\n this.GetCompany();\r\n }, 1000);\r\n\r\n $(\".p-column-title\").on(\"click\", function () {\r\n $(this)\r\n .next()\r\n .removeClass(\"pi-sort\")\r\n .toggleClass(\"pi-sort-up\")\r\n .addClass(\"pi-sort-down\");\r\n });\r\n\r\n this.GetCountry();\r\n\r\n this.tblResponseExport.PageSize = -1;\r\n this.tblResponseExport.First = 1;\r\n this.tblResponseExport.UserType = 6;\r\n this.tblResponseExport.IsActive = true;\r\n this.tblResponseExport.SearchValue = \"\";\r\n this.tblResponseExport.SortOrder = \"ASC\";\r\n this.GetUserExport();\r\n }\r\n\r\n // get user data list from api\r\n GetUserExport() {\r\n this.tblResponseExport.SortColumn = \"CreatedDt\";\r\n this.UserService.GetUsers(this.tblResponseExport).then((data) => {\r\n const resdata = data.data;\r\n //when response data is not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n exportData: resdata.ResponseData,\r\n });\r\n }\r\n });\r\n }\r\n\r\n //loading page\r\n onPage(event) {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n //imitate delay of a backend call\r\n setTimeout(() => {\r\n this.getLazyLoadingValues(event);\r\n }, 250);\r\n }\r\n\r\n // get list data\r\n getLazyLoadingValues(event) {\r\n this.setState({ rows: event.rows });\r\n this.tblResponse.PageSize = event.rows;\r\n this.tblResponse.First = event.first + 1;\r\n this.tblResponse.IsActive = true;\r\n this.tblResponse.SearchValue = event.globalFilter ? event.globalFilter : \"\";\r\n //this.tblResponse.SortColumn = event.sortField;\r\n this.tblResponse.SortOrder = event.sortOrder === 1 ? \"ASC\" : \"DESC\";\r\n this.tblResponse.UserType = 6;\r\n\r\n this.GetUsers(this.tblResponse);\r\n }\r\n\r\n //to get country data\r\n GetCountry() {\r\n this.CountryService.GetCountries(\"101\").then((data) => {\r\n const resdata = data.data;\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.state.ship_countrySelectItems = resdata.ResponseData;\r\n this.state.bill_countrySelectItems = resdata.ResponseData;\r\n }\r\n });\r\n }\r\n\r\n SetState(cCode, fieldName) {\r\n if (fieldName == \"bill_Country\") {\r\n const resdata = this.state.allstate.filter((x) => x.CountryId == cCode);\r\n this.setState({\r\n bill_stateSelectItems: resdata,\r\n });\r\n }\r\n if (fieldName == \"ship_Country\") {\r\n const resdata = this.state.allstate.filter((x) => x.CountryId == cCode);\r\n this.setState({\r\n ship_stateSelectItems: resdata,\r\n });\r\n }\r\n }\r\n SetCity(sCode, fieldName) {\r\n if (fieldName == \"bill_State\") {\r\n const resdata = this.state.allcity.filter((x) => x.StateId == sCode);\r\n this.setState({\r\n bill_citySelectItems: resdata,\r\n });\r\n }\r\n if (fieldName == \"ship_State\") {\r\n const resdata = this.state.allcity.filter((x) => x.StateId == sCode);\r\n this.setState({\r\n ship_citySelectItems: resdata,\r\n });\r\n }\r\n }\r\n\r\n GetStates(cCode) {\r\n this.CountryService.GetStates(cCode).then((data) => {\r\n const resdata = data.data;\r\n\r\n this.setState({\r\n allstate: resdata.ResponseData,\r\n bill_stateSelectItems: resdata.ResponseData,\r\n ship_stateSelectItems: resdata.ResponseData,\r\n });\r\n\r\n // if(fieldName == 'bill_Country')\r\n // this.setState({\r\n // \"bill_stateSelectItems\" : resdata.ResponseData,\r\n // \"ship_stateSelectItems\" : resdata.ResponseData\r\n // });\r\n\r\n // if(fieldName == 'ship_Country')\r\n // this.setState({\r\n // \"ship_stateSelectItems\" : resdata.ResponseData\r\n // });\r\n });\r\n }\r\n\r\n GetCities(sCode) {\r\n this.CountryService.GetCities(sCode).then((data) => {\r\n const resdata = data.data;\r\n this.setState({\r\n allcity: resdata.ResponseData,\r\n bill_citySelectItems: resdata.ResponseData,\r\n ship_citySelectItems: resdata.ResponseData,\r\n });\r\n // if(fieldName == 'bill_State')\r\n // this.setState({\r\n // \"bill_citySelectItems\" : resdata.ResponseData,\r\n // \"ship_citySelectItems\" : resdata.ResponseData\r\n // });\r\n\r\n // if(fieldName == 'ship_State')\r\n // this.setState({\r\n // \"ship_citySelectItems\" : resdata.ResponseData\r\n // });\r\n });\r\n }\r\n\r\n // get users data list from api\r\n GetUsers(tbl) {\r\n this.tblResponse.SortColumn = \"CreatedDt\";\r\n this.UserService.GetUsers(tbl).then((data) => {\r\n const resdata = data.data;\r\n //when response data is not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.datasource = resdata.ResponseData;\r\n this.setState({\r\n totalRecords: resdata.ResponseData[0].TotalRows,\r\n first: this.tblResponse.First - 1,\r\n sales: this.datasource.slice(\r\n 0,\r\n this.tblResponse.First - 1 + this.tblResponse.PageSize\r\n ),\r\n loading: false,\r\n updateLoader: true,\r\n });\r\n }\r\n //when response data is null\r\n else {\r\n this.datasource = null;\r\n this.setState({\r\n totalRecords: 0,\r\n first: 1,\r\n sales: null,\r\n loading: false,\r\n updateLoader: true,\r\n });\r\n }\r\n });\r\n }\r\n\r\n // call every change of form and validation part also\r\n handleChange(event) {\r\n if (\r\n this.state.bill_Pincode != (null || undefined || \"\") &&\r\n this.state.bill_Address1 != (null || undefined || \"\") &&\r\n this.state.bill_Address2 != (null || undefined || \"\") &&\r\n this.state.ship_Pincode != (null || undefined || \"\") &&\r\n this.state.ship_Address1 != (null || undefined || \"\") &&\r\n this.state.ship_Address2 != (null || undefined || \"\")\r\n ) {\r\n this.setState({\r\n chkbx: false,\r\n });\r\n }\r\n const { name, value } = event.target;\r\n let errors = this.state.formError;\r\n\r\n const isValid = this.validateForm(value, name);\r\n this.setState({ errors, [name]: value });\r\n //this statement will set state value for IsActive\r\n if (name == \"IsActive\")\r\n this.setState({\r\n IsActive: event.target.checked,\r\n });\r\n }\r\n\r\n // call to update billing to shipping\r\n SameAsBilling(event) {\r\n if (event.target.checked) {\r\n this.setState({\r\n ship_countrySelectItems: this.state.bill_countrySelectItems,\r\n ship_stateSelectItems: this.state.bill_stateSelectItems,\r\n ship_citySelectItems: this.state.bill_citySelectItems,\r\n ship_Country: this.state.bill_Country,\r\n ship_State: this.state.bill_State,\r\n ship_City: this.state.bill_City,\r\n ship_Address1: this.state.bill_Address1,\r\n ship_Address2: this.state.bill_Address2,\r\n ship_Pincode: this.state.bill_Pincode,\r\n });\r\n }\r\n }\r\n\r\n // Validate form\r\n validateForm(value, name) {\r\n let errors = this.state.formError;\r\n let IsValid = true;\r\n\r\n //this switch case is used for each form field to validate\r\n switch (name) {\r\n // case 'UserName':\r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.UserName = \"Please enter your username.\";\r\n // } else errors.UserName = ''\r\n // break;\r\n // case 'ship_Country':\r\n // if (value == undefined || value == \"\") {\r\n // IsValid = false;\r\n // errors.ship_Country = \"Please select country.\";\r\n // } else {\r\n // errors.ship_Country = '';\r\n // this.SetState(value.CountryId, name);\r\n // }\r\n\r\n // break;\r\n \r\n case \"FirstName\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.FirstName = \"Please Enter Your First Name.\";\r\n } else errors.FirstName = \"\";\r\n break;\r\n // case \"GST\": \r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.GST = \"Please enter your GST No.\";\r\n // } else errors.GST = \"\";\r\n // break;\r\n // case \"TIN\":\r\n // if (value == undefined || value == \"\" || value.length < 1) {\r\n // IsValid = false;\r\n // errors.TIN = \"Please enter TIN\";\r\n // }\r\n\r\n // break;\r\n // case 'LastName':\r\n // if (value.length < 1) {\r\n // IsValid = false;\r\n // errors.LastName = \"Please enter your last name.\";\r\n // }\r\n // else if (value.length >= 1) {\r\n // if (!value.match(/^[A-Za-z]+$/)) {\r\n // IsValid = false;\r\n // errors.LastName = \"LastName should be alpha only.\"\r\n // } else errors.LastName = ''\r\n // }\r\n // else errors.LastName = ''\r\n // break;\r\n case 'Email':\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.Email = \"Please enter your email-id.\";\r\n }\r\n else if (value.length >= 1) {\r\n if (!value.match(/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/)) {\r\n IsValid = false;\r\n errors.Email = \"Please enter valid email-id.\";\r\n } else errors.Email = ''\r\n } else errors.Email = ''\r\n break;\r\n case \"MobileNo\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.MobileNo = \"Please Enter Your Mobile No.\";\r\n } else if (value.length >= 1) {\r\n if (!value.match(/^[6-9]\\d{9}$/)) {\r\n IsValid = false;\r\n errors.MobileNo = \"Please enter valid mobile no.\";\r\n } else errors.MobileNo = \"\";\r\n } else errors.MobileNo = \"\";\r\n break;\r\n case \"Password\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.Password = \"Please Enter Password.\";\r\n } else if (!value.match(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d).{4,10}$/)) {\r\n IsValid = false;\r\n errors.Password =\r\n \"Password should be minimum 4 characters long, 1 uppercase & 1 lowercase character with 1 number.\";\r\n } else if (\r\n value.length >= 1 &&\r\n this.state.ConfirmPassword.length >= 1\r\n ) {\r\n errors.Password = \"\";\r\n errors.ConfirmPassword = \"\";\r\n if (!(value === this.state.ConfirmPassword)) {\r\n IsValid = false;\r\n errors.Password = \"Password Does Not Match\";\r\n } else errors.Password = \"\";\r\n } else errors.Password = \"\";\r\n break;\r\n\r\n case \"ConfirmPassword\":\r\n if (value.length < 1) {\r\n IsValid = false;\r\n errors.ConfirmPassword = \"Please Enter Confirm Password.\";\r\n } else if (value.length >= 1 && this.state.Password.length >= 1) {\r\n errors.Password = \"\";\r\n errors.ConfirmPassword = \"\";\r\n if (!(value === this.state.Password)) {\r\n IsValid = false;\r\n errors.ConfirmPassword = \"Confirm Password Does Not Match\";\r\n } else errors.ConfirmPassword = \"\";\r\n } else errors.ConfirmPassword = \"\";\r\n break;\r\n\r\n case \"IsActive\":\r\n this.setState({\r\n IsActive: value,\r\n });\r\n break;\r\n \r\n case \"CompanyId\":\r\n if (value == undefined || value == \"\") {\r\n IsValid = false;\r\n errors.CompanyId = \"Please select Company\";\r\n } else {\r\n errors.CompanyId = \"\";\r\n }\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return IsValid;\r\n }\r\n\r\n // reset form text value\r\n formReset() {\r\n this.setState({\r\n ReferenceID: \"\",\r\n UserName: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n chkbx: true,\r\n Email: \"\",\r\n MobileNo: \"\",\r\n Password: \"\",\r\n EmpId:\"\",\r\n ConfirmPassword: \"\",\r\n GST: \"\",\r\n TIN: \"\",\r\n IsActive: true,\r\n ship_City: \"\",\r\n ship_State: \"\",\r\n ship_Country: \"\",\r\n ship_Address1: \"\",\r\n ship_Address2: \"\",\r\n ship_Pincode: \"\",\r\n bill_City: \"\",\r\n bill_State: \"\",\r\n CompanyId:\"\",\r\n bill_Country: \"\",\r\n bill_Address1: \"\",\r\n bill_Address2: \"\",\r\n bill_Pincode: \"\",\r\n });\r\n let errors = this.state.formError;\r\n Object.entries(errors).map(([key, value]) => {\r\n errors[key] = \"\";\r\n });\r\n }\r\n\r\n hideFunc() {\r\n this.setState({\r\n visible: false,\r\n buttonLabel: \"Submit\",\r\n formHeading: \"Add Salesperson\",\r\n });\r\n this.formReset();\r\n }\r\n // open Dialog\r\n openDialog() {\r\n this.setState({ visible: true });\r\n this.formReset();\r\n }\r\n // submit form and create or update user\r\n submitForm(event) {\r\n event.preventDefault();\r\n\r\n let isfrmvalid = true;\r\n let checkerror = this.state.formError;\r\n\r\n Object.entries(checkerror).map(([key, value]) => {\r\n const val = this.state[key];\r\n let valid = this.validateForm(val, key);\r\n if (!valid) {\r\n this.setState({ checkerror: isfrmvalid });\r\n isfrmvalid = false;\r\n }\r\n });\r\n\r\n if (isfrmvalid) {\r\n \r\n this.setState({ updateLoader: false });\r\n debugger\r\n const formData = {\r\n // UserName: this.state.,\r\n FirstName: this.state.FirstName,\r\n \r\n LastName: this.state.LastName,\r\n EmpId:this.state.EmpId,\r\n Email: this.state.Email,\r\n MobileNo: this.state.MobileNo,\r\n Password: this.state.Password,\r\n ReferenceID: this.state.ReferenceID,\r\n userId: this.state.userId,\r\n IsActive: this.state.IsActive,\r\n UserType: this.state.UserType,\r\n \r\n CompanyId: this.state.CompanyId.CompId,\r\n };\r\n\r\n setTimeout(() => {\r\n this.UserService.CreateUpdateUser(formData).then((data) => {\r\n const resdata = data.data;\r\n if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n this.setState({\r\n loading: true,\r\n visible: false,\r\n updateLoader: true,\r\n });\r\n this.formReset();\r\n this.GetUsers(this.tblResponse);\r\n } else if (resdata.ResponseCode === \"400\") {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n } else {\r\n this.setState({\r\n updateLoader: true,\r\n });\r\n this.refs.Messchild.showError(resdata.ResponseMessage);\r\n }\r\n });\r\n }, 100);\r\n }\r\n }\r\n\r\n // delete user data\r\n // deleteUser(referenceID) {\r\n // this.UserService.DeleteUser(referenceID).then((data) => {\r\n // const resdata = data.data;\r\n // if (resdata !== null && resdata.ResponseCode === \"200\") {\r\n // this.GetUsers(this.tblResponse);\r\n // this.refs.Messchild.showSuccess(resdata.ResponseMessage);\r\n // const totlrecord = this.state.totalRecords - 1;\r\n // const row = this.state.rows;\r\n\r\n // if (this.tblResponse.First >= totlrecord) {\r\n // const _curntCursor = Math.round(totlrecord / row);\r\n // this.tblResponse.First = _curntCursor + 1;\r\n // }\r\n // } else if (resdata.ResponseCode === \"400\") {\r\n // this.refs.Messchild.showWarn(resdata.ResponseMessage);\r\n // } else {\r\n // this.refs.Messchild.showError(resdata.ResponseMessage);\r\n // }\r\n // });\r\n // }\r\n GetCompany() {\r\n this.CompanyMasterService.GetCompanyDDL().then((data) => {\r\n const resdata = data.data;\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseData !== null &&\r\n resdata.ResponseData.length > 0\r\n ) {\r\n this.setState({\r\n companyDDL: resdata.ResponseData,\r\n });\r\n\r\n if (this.ApiService.getIsAdmin() == \"false\") {\r\n const CompanyObj = this.state.companyDDL.filter(\r\n (x) => x.CompId == this.ApiService.getCompanyId()\r\n );\r\n this.setState({\r\n CompanyId: CompanyObj[0],\r\n compDisabled: true,\r\n });\r\n }\r\n }\r\n });\r\n }\r\n setOnEditDDL(rowData) {\r\n this.SetState(rowData.ship_Country, \"ship_Country\");\r\n this.SetState(rowData.bill_Country, \"bill_Country\");\r\n this.SetCity(rowData.ship_State, \"ship_State\");\r\n this.SetCity(rowData.bill_State, \"bill_State\");\r\n }\r\n\r\n // Search Filter\r\n searchFilter(e) {\r\n this.setState({\r\n loading: true,\r\n });\r\n this.tblResponse.SearchValue = e.target.value;\r\n this.GetUsers(this.tblResponse);\r\n }\r\n\r\n callbackFunction = (childData) => {\r\n this.setState({ message: childData });\r\n };\r\n\r\n // disabled check box\r\n activeTemplate(rowData, column) {\r\n return ;\r\n }\r\n\r\n // sort page\r\n onSort(event) {\r\n this.setState({\r\n sortOrder: this.state.sortOrder === 1 ? 2 : 1,\r\n sortIcon: !this.state.sortIcon,\r\n });\r\n const sortField =\r\n event.sortField == \"CreatedDt\" ? \"CreatedDt\" : event.sortField;\r\n this.tblResponse.SortColumn = sortField ? sortField : \"\";\r\n this.tblResponse.SortOrder = this.state.sortOrder === 1 ? \"DESC\" : \"ASC\";\r\n this.GetUsers(this.tblResponse);\r\n const clickData = document.getElementsByClassName(\r\n \"p-sortable-column-icon pi pi-fw pi-sort\"\r\n );\r\n console.log(event);\r\n }\r\n\r\n // edit form\r\n actionTemplate(rowData, column) {\r\n const editMode = (e) => {\r\n \r\n this.setState({\r\n buttonLabel: \"Update\",\r\n formHeading: \"Update Salesperson\",\r\n visible: true,\r\n ReferenceID: rowData.ReferenceID,\r\n userId: rowData.userId,\r\n UserName: rowData.Username,\r\n FirstName: rowData.FirstName,\r\n LastName: rowData.LastName,\r\n Email: rowData.Email,\r\n MobileNo: rowData.MobileNo,\r\n Password: rowData.Password,\r\n ConfirmPassword: rowData.Password,\r\n EmpId: rowData.EmpId,\r\n IsActive: rowData.IsActive,\r\n \r\n });\r\n\r\n const CompanyObj = this.state.companyDDL.filter(\r\n (x) => x.CompId == rowData.CompanyId\r\n );\r\n\r\n \r\n this.setState({\r\n \r\n CompanyId: CompanyObj[0],\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\r\n // create html part\r\n //resolved KREP-36\r\n render() {\r\n const items = [{ label: \"Masters\" }, { label: \"Saleperson Master\" }];\r\n const home = { icon: \"pi pi-home\", url: \"/dashboard\" };\r\n let header = (\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
      \r\n

      Salesperson 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 Export\r\n \r\n \r\n
      \r\n\r\n \r\n \r\n {/* */}\r\n \r\n \r\n {/* */}\r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n
      \r\n\r\n \r\n \r\n
      \r\n
      \r\n \r\n {\r\n this.handleChange(e);\r\n }}\r\n value={this.state.CompanyId}\r\n className=\"form-control\"\r\n placeholder=\"Select Company\"\r\n name=\"CompanyId\"\r\n options={this.state.companyDDL}\r\n />\r\n {this.state.formError.CompanyId !== null ? (\r\n
      {this.state.formError.CompanyId}
      \r\n ) : null}\r\n
      \r\n
      \r\n\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.EmpId !== '' ?\r\n
      {this.state.formError.EmpId}
      : ''}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.FirstName !== \"\" ? (\r\n
      {this.state.formError.FirstName}
      \r\n ) : (\r\n \"\"\r\n )}\r\n
      \r\n {/*
      \r\n \r\n \r\n {this.state.formError.LastName !== '' ?\r\n
      {this.state.formError.LastName}
      : ''}\r\n
      */}\r\n
      \r\n \r\n \r\n {this.state.formError.Email !== null ?\r\n
      {this.state.formError.Email}
      : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.MobileNo !== null ? (\r\n
      {this.state.formError.MobileNo}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.Password !== null ? (\r\n
      {this.state.formError.Password}
      \r\n ) : null}\r\n
      \r\n
      \r\n \r\n \r\n {this.state.formError.ConfirmPassword !== null ? (\r\n
      \r\n {this.state.formError.ConfirmPassword}\r\n
      \r\n ) : null}\r\n
      \r\n \r\n \r\n \r\n \r\n {/*
      \r\n \r\n \r\n {this.state.formError.bill_Address2 !== null ?\r\n
      {this.state.formError.bill_Address2}
      : null}\r\n
      */}\r\n \r\n
      \r\n \r\n {/*
      \r\n \r\n \r\n {this.state.formError.ship_Address2 !== null ?\r\n
      {this.state.formError.ship_Address2}
      : 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","import React, { Component } from \"react\";\r\nimport Sidebar from \"./Sidebar\";\r\nimport Footer from \"./Footer\";\r\nimport Dashboard from \"./../views/Dashboard\";\r\nimport AccessRight from \"./../views/master/AccessRight\";\r\nimport ProductMaster from \"./../views/master/ProductMaster\";\r\nimport UserMaster from \"./../views/master/UserMaster\";\r\nimport CartonMaster from \"./../views/master/CartonMaster\";\r\nimport CompanyMaster from \"./../views/master/CompanyMaster\";\r\nimport DealerMaster from \"./../views/master/DealerMaster\";\r\nimport ListMaster from \"./../views/master/ListMaster\";\r\nimport PriceMaster from \"./../views/master/PriceMaster\";\r\nimport DistributorMaster from \"./../views/master/DistributorMaster\";\r\nimport DeMapping from \"./../views/transaction/DeMapping\";\r\nimport Mapping from \"./../views/transaction/Mapping\";\r\nimport Dispatch from \"./../views/transaction/Dispatch\";\r\nimport SecondaryPacking from \"./../views/transaction/SecondaryPacking\";\r\nimport TertiaryPacking from \"./../views/transaction/TertiaryPacking\";\r\nimport NumberIssued from \"./../views/transaction/NumberIssued\";\r\nimport StockManagement from \"./../views/transaction/StockManagement\";\r\nimport ProductDamage from \"./../views/transaction/ProductDamage\";\r\nimport StaticMapping from \"./../views/transaction/StaticMapping\";\r\nimport CartonSlip from \"./../views/transaction/CartonSlip\";\r\nimport LoyaltyRedeemRequests from \"./../views/transaction/LoyaltyRedeemRequests\";\r\nimport ProductConfiguration from \"./../views/master/ProductConfiguration\";\r\nimport MappingReport from \"./../views/reports/MappingReport\";\r\nimport VerificationReport from \"./../views/reports/VerificationReport\";\r\nimport FeedbackReport from \"./../views/reports/FeedbackReport\";\r\nimport SAPDataReport from \"./../views/reports/SAPDataReport\";\r\nimport DispatchReport from \"./../views/reports/DispatchReport\";\r\nimport PrimaryPackingReport from \"./../views/reports/PrimaryPackingReport\";\r\nimport SecondaryPackingReport from \"./../views/reports/SecondaryPackingReport\";\r\nimport TertiaryPackingReport from \"./../views/reports/TertiaryPackingReport\";\r\nimport ItemLedger from \"./../views/reports/ItemLedger\";\r\nimport SchemeReport from \"./../views/reports/SchemeReport\";\r\nimport RedemptionReport from \"./../views/reports/RedemptionReport\";\r\nimport MissingCartonReport from \"./../views/reports/MissingCartonReport\";\r\nimport DispatchReceiveRpt from \"./../views/reports/DispatchReceiveRpt\";\r\nimport PickLuckyUsers from \"../views/reports/PickLuckyUsers\";\r\nimport FractionalCartonRpt from \"./../views/reports/FractionalCartonsRpt\";\r\nimport ReturnReport from \"./../views/reports/ReturnReport\";\r\nimport Profile from \"./../views/Profile\";\r\nimport { BrowserRouter as Router, Switch, Route } from \"react-router-dom\";\r\nimport Logo from \"./../assets/images/logo.png\";\r\nimport Avtar from \"./../assets/images/avatar.jpg\";\r\nimport \"./../App.css\";\r\nimport Message from \"./Message\";\r\nimport SchemeMaster from \"../views/master/SchemeMaster\";\r\nimport SchemeConfiguration from \"../views/transaction/SchemeConfiguration\";\r\nimport Category from \"../views/master/Category\";\r\nimport UserService from \"../services/UserService\";\r\nimport NumberGeneration from \"../views/transaction/NumberGeneration\";\r\nimport DispatchReceive from \"../views/transaction/DispatchReceive\";\r\nimport WareHouseMaster from \"../views/master/WareHouseMaster\";\r\nimport ItemWiseStockDetail from \"../views/reports/ItemWiseStockDetail\";\r\nimport DamageRpt from \"../views/reports/DamageRpt\";\r\nimport DeMappingReport from \"../views/reports/DeMappingReport\";\r\nimport damageCarton from \"../views/transaction/damageCarton\";\r\nimport QrCodeReport from \"../views/reports/QrCodeReport\";\r\nimport ChangePassword from \"../views/ChangePassword\";\r\nimport FactoryMaster from \"../views/master/FactoryMaster\";\r\nimport AdminNumberGenerated from \"../views/transaction/AdminNumberGenerated\";\r\nimport ReturnCarton from \"../views/transaction/ReturnCarton\";\r\nimport Replace from \"../views/transaction/Replace\";\r\nimport DispatchLoyaltyReport from \"../views/reports/DealerLoyaltyReport\";\r\nimport ItemStockDetail from \"../views/reports/ItemStockDetail\";\r\nimport SalePersonMaster from \"../views/master/SalePersonMaster\";\r\n// use for layout\r\nexport default class Layout extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n UserName: \"\",\r\n toggle: false,\r\n value: null,\r\n };\r\n\r\n this.UserService = new UserService();\r\n }\r\n //trigger api function on page call\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.CheckIsResetPassword();\r\n this.getUser();\r\n }, 1000);\r\n }\r\n //to get user data\r\n getUser() {\r\n this.UserService.getUser().then((data) => {\r\n const resdata = data.data;\r\n\r\n if (resdata.ResponseCode === \"200\") {\r\n const usr = resdata.ResponseData;\r\n this.setState({\r\n UserName: usr.Username,\r\n UserId: usr.UserId,\r\n });\r\n sessionStorage.setItem(\"wid\", usr.WareHouseId);\r\n sessionStorage.setItem(\"uid\", usr.UserId);\r\n }\r\n });\r\n }\r\n // Check Reset Password\r\n CheckIsResetPassword() {\r\n this.UserService.getUser().then((res) => {\r\n const curl = window.location.pathname;\r\n\r\n const resdata = res.data;\r\n //if ResponData not null\r\n if (\r\n resdata !== null &&\r\n resdata.ResponseCode === \"200\" &&\r\n resdata.ResponseData != null &&\r\n resdata.ResponseData.IsResetPassword === true\r\n ) {\r\n if (!curl.includes(\"/profile\")) {\r\n window.location = \"/profile\";\r\n }\r\n } else {\r\n }\r\n });\r\n }\r\n\r\n handleChange = (value) => {\r\n this.setState({ value });\r\n };\r\n\r\n // Render HTML\r\n //updated Render HTML to resolve defect KREP-12 on [08-07-20]\r\n render() {\r\n return (\r\n <>\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \"MSRM\r\n
      \r\n
      \r\n
      \r\n \r\n \r\n Welcome, {this.state.UserName}\r\n \r\n
      \r\n \r\n \r\n {\r\n sessionStorage.removeItem(\"LoggedInUser\");\r\n window.location = \"/login\";\r\n }}\r\n >\r\n Logout\r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
      \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
      \r\n\r\n
      \r\n \r\n
      \r\n \r\n\r\n