{"version":3,"sources":["components/api-authorization/ApiAuthorizationConstants.js","components/api-authorization/AuthorizeService.js","components/api-authorization/AuthorizeRoute.js","components/api-authorization/Login.js","components/api-authorization/Logout.js","components/api-authorization/ApiAuthorizationRoutes.js","components/api-authorization/LoginMenu.js","assets/icons/logo.svg","components/Sidebar.jsx","components/fields/AddFieldTable.jsx","assets/icons/del.png","assets/icons/dark_arrow_up.png","assets/icons/dark_arrow_down.png","assets/icons/add.png","assets/icons/triangle.png","assets/icons/search.png","components/fields/FieldTable.jsx","assets/icons/red-clock.png","assets/icons/clock.png","pages/Fields.jsx","assets/icons/edit.png","components/Fertilizers/OrganicTable.jsx","assets/icons/success.png","assets/icons/fail.png","components/Fertilizers/FertilizersTable.jsx","pages/Fertilizers.jsx","components/Calculations/FieldsTable.jsx","components/Calculations/PredecessorTable.jsx","components/Calculations/CalculatingElementsTable.jsx","components/Calculations/FertilizersTable.jsx","components/Calculations/BalanceFooter.jsx","components/Calculations/FertilizersCalculationTables.jsx","components/Calculations/LimingTable.jsx","components/Calculations/FieldInfoBar.jsx","components/Calculations/CropDataTable.jsx","components/Calculations/SelectField.jsx","pages/Calculations.jsx","components/Reports/WarnTooltip.jsx","components/Reports/Card.jsx","assets/icons/warn.png","components/Reports/ReportsTable.jsx","pages/Reports.jsx","assets/icons/hide_passwd.png","assets/icons/show_passwd.png","components/Profile/AddUser.jsx","components/Profile/ChangePage.jsx","pages/Profile.jsx","components/Directory/CropsTable.jsx","pages/Directory.jsx","assets/images/not_found.png","pages/NotFoundPage.jsx","App.js","serviceWorkerRegistration.js","reportWebVitals.js","index.js"],"names":["ApplicationName","QueryParameterNames","LogoutActions","LoginActions","prefix","ApplicationPaths","DefaultLoginRedirectPath","ApiAuthorizationClientConfigurationUrl","concat","ApiAuthorizationPrefix","Login","LoginFailed","LoginCallback","Register","Profile","LogOut","LoggedOut","LogOutCallback","IdentityRegisterPath","IdentityManagePath","AuthorizeService","_classCallCheck","_callbacks","_nextSubscriptionId","_user","_isAuthenticated","_popUpDisabled","_createClass","key","value","_asyncToGenerator","_regeneratorRuntime","mark","_callee","user","wrap","_context","prev","next","this","getUser","sent","abrupt","stop","apply","arguments","_getUser","_callee2","_context2","profile","ensureUserManagerInitialized","userManager","_getAccessToken","_callee3","_context3","access_token","_signIn","_callee4","state","silentUser","popUpUser","_context4","signinSilent","createArguments","updateState","success","t0","console","log","Error","signinPopup","t1","message","error","signinRedirect","redirect","t2","_x","_completeSignIn","_callee5","url","_context5","signinCallback","_x2","_signOut","_callee6","_context6","signoutPopup","undefined","signoutRedirect","_x3","_completeSignOut","_callee7","response","_context7","signoutCallback","data","_x4","notifySubscribers","callback","push","subscription","subscriptionId","subscriptionIndex","map","element","index","found","filter","length","splice","i","useReplaceToNavigate","status","AuthenticationResultStatus","Fail","Success","Redirect","_ensureUserManagerInitialized","_callee9","settings","_this","_context9","fetch","ok","json","automaticSilentRenew","includeIdTokenInSilentRenew","userStore","WebStorageStateStore","UserManager","events","addUserSignedOut","_callee8","_context8","removeUser","get","authService","AuthorizeRoute","_Component","_inherits","_super","_createSuper","props","call","ready","authenticated","_this2","_subscription","subscribe","authenticationChanged","populateAuthenticationState","unsubscribe","_this$state","link","document","createElement","href","path","returnUrl","protocol","host","pathname","search","hash","redirectUrl","encodeURIComponent","_this$props","Component","component","rest","_objectWithoutProperties","_excluded","_jsx","Route","_objectSpread","render","_Component2","to","_populateAuthenticationState","isAuthenticated","setState","_authenticationChanged","action","login","getReturnUrl","processLoginCallback","URLSearchParams","window","location","redirectToProfile","redirectToRegister","children","_login","result","signIn","navigateToReturnUrl","_processLoginCallback","completeSignIn","fromQuery","startsWith","origin","redirectToApiAuthorizationPath","encodeURI","apiAuthorizationPath","replace","Logout","isReady","history","local","logout","processLogoutCallback","_logout","signOut","_processLogoutCallback","completeSignOut","ApiAuthorizationRoutes","_jsxs","Fragment","loginAction","logoutAction","name","LoginMenu","userName","populateState","_populateState","_yield$Promise$all","_yield$Promise$all2","token","username_response","username","Promise","all","_slicedToArray","getAccessToken","headers","profilePath","logoutPath","authenticatedView","registerPath","loginPath","anonymousView","className","NavLink","tag","Link","activeclassname","Sidebar","_ref","src","logo","alt","item","activeClassName","AddFieldTable","columns","save","row_save","handleSubmit","bind","_assertThisInitialized","populateFieldsData","event","PostResponse","preventDefault","area","_PostResponse","method","then","addField","setTimeout","id","Grid","rows","isScrollable","focusOnSingleClick","getRowKey","row","rowHeight","OverlayTrigger","trigger","show","placement","overlay","Popover","Button","onClick","_populateFieldsData","numberFormat","formatCell","onFieldChange","_this3","format","toString","Intl","NumberFormat","rowId","field","value1","set","title","focus","Input","placeholder","selectTextOnFocus","onChange","_ref2","FieldTable","trackScrolling","wrappedElement","getElementById","scrollHeight","scrollTop","clientHeight","classList","add","remove","expandRow","find","expand","addRowRegion","regions","removeField","forceUpdate","removeRowRegion","e","loading","modalShow","columnsRegion","columnsOneRegion","clockIsError","syncModalShow","cropwise_fields_all","modalSowId","synchronising","sync_loading","isCheckAll","sort_fields","check_cropwise","saveData","delFieldModal","syncModal","checkAll","checkField","synchronise","sort_field_list","onSyncClick","filterFieldList","body","JSON","stringify","fieldName","Modal","backdrop","keyboard","size","onHide","centered","Header","closeButton","Body","Title","_this4","checked","r","check","Set","has","_this5","checked_fields","cloneDeep","innerHTML","_onSyncClick","cropwise_fields_response","cropwise_fields","toFixed","hide","forEach","toLowerCase","includes","_this6","Icon","icon","loadingIcon","color","width","height","_Fragment","onInput","target","triangle","defaultChecked","type","onScroll","disabled","clockIcon","col","sort_field","sort","a","b","_this7","contents","renderTable","modalShowId","Row","Col","filterFields","numberElementFormat","response_soils","soils_list","soils","compare","onDateChange","onRegionChange","onRegion2Change","onSelectChange","del_button","DropdownIndicator","NoOptionsMessage","_this8","options","Typography","innerProps","maximumFractionDigits","label","Object","assign","fieldId","rowRegion","test","el","Number","elementMg","density","depthSoil","soil","s","del","components","selectProps","menuIsOpen","arrow_up","arrow_down","IMaskInput","mask","Date","dateAnalyse","min","max","onAccept","getCellClassName","_ref3","_ref4","Select","defaultValue","findIndex","soilId","maxMenuHeight","theme","border","borderRadius","colors","primary","styles","container","baseStyles","control","background","isFocused","menu","margin","fontSize","option","backgroundColor","lineHeight","singleValue","baseSyles","whiteSpace","textAlign","_ref5","humus","_ref6","pH","_ref7","_ref8","_ref9","_ref10","n","_ref11","p2O5","_ref12","k2O","_ref13","_ref14","caO","_ref15","mg","_ref16","_ref17","_ref18","_ref19","_ref20","_ref21","_ref22","_ref23","_ref24","_ref25","_ref26","_ref27","_ref28","_ref29","_ref30","addRow","showModal","LazyLoad","Form","Control","style","maxWidth","Collapse","isOpened","disabledCellChecker","columnId","Fields","_useState","useState","_useState2","setToken","useEffect","token_resp","OrganicTable","saveResponse","fertilizers","isModalShow","afterChange","changeResponse","patterns","update","selectedPattern","patterns_list","isAdd","AddModal","checkRowStorage","checkRowCalc","handleChangeSelectFertilizer","handleClickDelete","populateFertilizersData","info","setModal","fertilizer","f","consuming1","consuming2","price","inStorage","inUse","selected_fertilizer","onSubmit","Group","Label","input","menuList","paddingRight","Footer","rowSpan","colSpan","DataTable","responsive","noTableHead","noDataComponent","customStyles","fontWeight","borderBottom","minHeight","cells","borderLeft","_populateFertilizersData","organic_fertilizers","organic_pattern","cell","edit","button","selector","sortable","center","compact","FertilizersTable","stockCheckAll","calcCheckAll","base_fertilizer_list","base_fertilizers","selectedFertilizerType","fertilizer_type_list","infoIcon","infoModalShow","handleChangeN","handleChangeName","handleChangeP2O5","handleChangeK2O","handleChangeS","handleChangeCa","handleChangeMg","handleChangePrice","handleChangeProducer","handleChangeProvider","handleChangeFormula","handleChangeSelectFertilizerType","handleCheckStock","saveCheckbox","infoModal","fail","formula","diler","manufacturer","animation","mineralFertilizerId","defaultElement","defaultType","mineralFertilizer","verticalAlign","fertilizers_list","t3","t4","t5","t6","t7","t8","t9","t10","Fertilizers","FieldsTable","checkSumArea","sum_area","region","isAreaRight","prevProps","prevState","snapshot","changeExpand","isReport","onSelectFieldChange","soil_list","changeField","fields_name","display","alignContent","alignItems","isExpand","tableField","PredecessorTable","handleChangeSelectCrops","handleChangeYieldFact","residue","cropId","onPredecessorChange","fertilizerOrganicId","fertilizerOrganic","yield","crop_list","fertilizer_organic_list","crops_list","fertilizers_organic_list","onCropChange","onFertilizerChange","wordWrap","overflow","isOpen","fertilizerCount","mineralElement","scope","onKeyDown","CalculatingElementsTable","columns_region","calculation_data","dose_row","isActive","handleCheckElement","field_row","Table","calcSum","setUseInputPrice","useInputPrice","sum","organic_input_price","setSumPrice","content","priceFormat","minimumFractionDigits","_this3$props$fertiliz","isColumnsResizable","BalanceFooter","getOffset","elementRect","getBoundingClientRect","top","initial_state","_document$getElementB","_document$getElementB2","heightToHide","windowHeight","scrollY","documentElement","Math","offsetHeight","windowScrollHeight","bottomHeightToHide","bottom","calcInit","isVisible","setIsVisible","_useState3","_useState4","stickyClass","setStickyClass","addEventListener","stickNavbar","listenToScroll","_document$getElementB3","_document$getElementB4","removeEventListener","_document$getElementB5","_document$getElementB6","FertilizersCalculationTables","main_rows","pre_sowing_rows","feed_rows","balance_row","columns_main","columns_feed","columns_pre_sowing","fertilizers_mineral_list","balance_columns","calculateFertilizers","deleteRow","calcBalance","sumElements","BalanceBackLight","handleChangeCoefP","isDisable","populateData","coefP","report_loading","calculate_main","sumRows","input_price","fertilizer_count","isCalc","changed_rows","balance","feed","pre_sowing","main","sum_limit","setFertilizerLimit","balanceCalc","fertilizer_data","class_name","table","at","fertilizerId","recalculateRows","changed_id","visible","not_calculate_fertilizers_list","clear","recalculate_A_c","changeCoefP","_populateData","fertilizers_mineral_list_full","onMainChange","onPreSowingChange","onFeedChange","onMainFertilizerChange","onPreSowingFertilizerChange","onFeedFertilizerChange","onElementChange","fertilizer_mineral_list","recalculateRowFromElements","paddingTop","_ref31","_ref32","_ref33","_ref34","_ref35","position","zIndex","select","marginLeft","marginRight","LimingTable","colorBacklight","soilGroup","liming_columns","isCellChange","calculateLiming","sum_dose","sum_price","liming","fertilizer_dose","intro_price","setSumDose","soilGroupId","ph","groupSoil","groupHumus","soilGroupHumus","soilGroupPh","_unused","liming_rows","dose","fertilizer_id","setLiming","isLimingOpen","useLiming","isSelectChange","onLimingChange","newCellChange","marginTop","Navbar","CropDataTable","cur_year","year_list","onYieldPlanChange","onYieldPriceChange","onYieldYearChange","setCrop","getFullYear","setYieldPlan","setYieldPrice","setYieldYear","fieldChange","yield_plan","yield_year","yield_price","SelectField","fields","selected_field","usePredecessor","fertilizerChange","predecessorChange","calculationsChange","crops","mineralCoef","parent_report","calculateMessage","calculatedField","saveModalShow","fertilizerModalShow","report_name","report_info","date_create","date_change","need_to_recalc","saveMessage","fertilizer_calculation_data","updateFertilizerlist","isLimingChange","fertilizerCalculationChange","fertilizerCalculationsOpen","recalcIsVisible","fertilizer_limit","liming_sum_price","liming_sum_dose","fertilizer_sum_price","limit_yield","is_element_active","A","c","other_price","seeds","szr","notes","changed_fertilizers_rows","predecessor","calculations","other","prev_year","organic_sum_price","fertilizers_calc","organic","default_report_name","isNext","handleChangeField","handleChangeFertilizer","handleChangePredecessorTable","calculate","saveAsCalculation","saveCalculation","SaveModal","ChooseFertilizerModal","limingChange","fertilizerCalculationsInit","calculateLimit","handleChangeActiveElement","recalculate_A","calcNextYear","RecalcReport","syncStock","getResidue","_getResidue","field_id","year","crop","round","report_id","calculationChange","regionId","calculated_field","field_element","reload","change","_saveAsCalculation","yield_sum_price","replaceAll","use_fertilizer_list","fertilizer_Id","calculationId","calculation","_saveCalculation","limit","_this9","newData","vinos","multiplyScalar","getData","nutrient","twoYearMineralCoef","coef","cropCoefSoil","coefSoil","cropCoefFertilizer","coefFertilizer","cropBobCoef","coefBob","need","fromSoil","needFull","cropYieldResidue","cropGroup","cropResidues","residueCoef","factYield","twoYearMineral","multiplyVector","temp","minusVector","organicCount","residueElement","plusVector","OY","phCoefP2O5","phCoefK2O","needFertilizer","diffVector","fertilizerLiming","fertilizerMineral","fertilizerMineralOut","regions_area","j","keys","currentKey","B","parseFloat","_this10","controlId","autoFocus","autocomplete","setAttribute","isFertilizersList","_this11","p","_this12","_this13","filterFertilizerList","persistTableHead","head","headRow","maxHeight","overflowY","borderTop","getMaxOfArray","numArray","ogr","isLimit","isFirst","_calcNextYear","response_selected_field","selectedField","_this14","defaultName","_RecalcReport","_this15","sumElementArea","_this$state$mineralFe","_this$state$mineralFe2","_this16","yield_sum_price_self","nav_content","FieldInfoBar","toLocaleString","classChange","as","plaintext","readOnly","_this17","minus","C","tableJSON","minus_col","newMain","_selectField$soilsGro","response_report","report","report_data","response_selectField","response_fertilizer_organic","fields_all","selectField","response_fields","_report$use_fertilize","use_fertilizer_array","_this18","currentCalculation","prevCalculation","prevCalcId","soilsGroup","mineralFertilizerCoef","mineralFertilizerStorages","elements","liming_dose","liming_fertilizer_dose","liming_fertilizerId","liming_input_price","liming_fertilizer","gr","dateCreate","dateChange","colorState","Calculations","URL","searchParams","WarnTooltip","Card","askDelModalShow","setAskDelModalShow","_handleClickDelete","deleteData","dif","yield_self_price","income","need_to_change","Xarrow","start","end","showTail","tailShape","arrowTailProps","strokeWidth","tailSize","endAnchor","startAnchor","checkRowReport","onMouseEnter","onMouseLeave","crop_name","ReportsTable","report_calculations","years","field_data","field_columns","isNew","isOld","getReport","ModalSaveReport","checkType","populateReportsData","variant","blob","createObjectURL","Blob","appendChild","click","parentNode","removeChild","modalSave","changed_field","cols","card_data","row_data","noData","calc_relations","array","reverse","pop","tree_sets","cur_array","check_array","some","trees","_toArray","slice","refs","cur_el","tree","cntr","last_el","ref_length","node","find_ref","_populateReportsData","response_reports","reports_data","field_names","tree_data","rows_data","one_field_data","_args","field_name","_toConsumableArray","_this5$get_trees","get_trees","_this5$get_trees2","_step","root_el","_iterator","_createForOfIteratorHelper","_loop","done","err","Array","from","Reports","AddUser","initialState","email","password","confirmPassword","userData","setUserData","setMessage","_useState5","_useState6","errors","setErrors","_useState7","_useState8","showPasswd","setShowPasswd","_useState9","_useState10","showConfirmPasswd","setShowConfirmPasswd","_useState11","_useState12","setInfoModalShow","_useState13","_useState14","delModalShow","setDelModalShow","_useState15","_useState16","setInfoIcon","_useState17","_useState18","delUserId","setDelUserId","_useState19","_useState20","users","setUsers","no","getUsers","user_response","users_full","checkPasswdValid","delUser","delModal","onBlur","show_passwd","hide_passwd","newUser","addUser","highlightOnHover","marginBottom","padding","headCells","justifyContent","borderRight","paddingLeft","ChangePage","newEmail","setNewEmail","oldPasswd","setOldPasswd","newPasswd","setNewPasswd","repeatNewPasswd","setRepeatNewPasswd","errorsEmail","setErrorsEmail","old","new","repeatNew","passwdError","setPasswdError","_useState21","_useState22","askModalShow","setAskModalShow","changeEmail","askModal","changePasswd","oldPass","newPass","role","setRole","setUserName","user_role","Tabs","defaultActiveKey","Tab","eventKey","CropsTable","crops_user","ca","cropGroupId","isBob","error_select","crops_default","columns_user","crop_group_list","populateCropsData","menuPlacement","menuPosition","crop_table","_populateCropsData","crops_response","crops_all","defaultCrop","userCrop","groupCrop","add_crop","Directory","NotFoundPage","_React$Component","PageNotFound","clientWidth","React","App","Switch","exact","displayName","Boolean","hostname","match","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","baseUrl","getElementsByTagName","getAttribute","rootElement","ReactDOM","BrowserRouter","basename","navigator","serviceWorker","registration","unregister","catch"],"mappings":"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","file":"static/js/main.1deea14a.chunk.js","sourcesContent":["export const ApplicationName = 'CalculatorProject';\r\n\r\nexport const QueryParameterNames = {\r\n ReturnUrl: 'returnUrl',\r\n Message: 'message'\r\n};\r\n\r\nexport const LogoutActions = {\r\n LogoutCallback: 'logout-callback',\r\n Logout: 'logout',\r\n Login: 'login',\r\n LoggedOut: 'logged-out'\r\n};\r\n\r\nexport const LoginActions = {\r\n Login: 'login',\r\n LoginCallback: 'login-callback',\r\n LoginFailed: 'login-failed',\r\n Profile: 'profile',\r\n Register: 'register'\r\n};\r\n\r\nconst prefix = '/authentication';\r\n\r\nexport const ApplicationPaths = {\r\n DefaultLoginRedirectPath: '/fields',\r\n ApiAuthorizationClientConfigurationUrl: `_configuration/${ApplicationName}`,\r\n ApiAuthorizationPrefix: prefix,\r\n Login: `${prefix}/${LoginActions.Login}`,\r\n LoginFailed: `${prefix}/${LoginActions.LoginFailed}`,\r\n LoginCallback: `${prefix}/${LoginActions.LoginCallback}`,\r\n Register: `${prefix}/${LoginActions.Register}`,\r\n Profile: `${prefix}/${LoginActions.Profile}`,\r\n LogOut: `${prefix}/${LogoutActions.Logout}`,\r\n LoggedOut: `${prefix}/${LogoutActions.LoggedOut}`,\r\n LogOutCallback: `${prefix}/${LogoutActions.LogoutCallback}`,\r\n IdentityRegisterPath: 'Identity/Account/Register',\r\n IdentityManagePath: 'Identity/Account/Manage'\r\n};\r\n","import { UserManager, WebStorageStateStore } from 'oidc-client';\r\nimport { ApplicationPaths, ApplicationName } from './ApiAuthorizationConstants';\r\n\r\nexport class AuthorizeService {\r\n _callbacks = [];\r\n _nextSubscriptionId = 0;\r\n _user = null;\r\n _isAuthenticated = false;\r\n\r\n // By default pop ups are disabled because they don't work properly on Edge.\r\n // If you want to enable pop up authentication simply set this flag to false.\r\n _popUpDisabled = true;\r\n\r\n async isAuthenticated() {\r\n const user = await this.getUser();\r\n return !!user;\r\n }\r\n\r\n async getUser() {\r\n if (this._user && this._user.profile) {\r\n return this._user.profile;\r\n }\r\n\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.getUser();\r\n return user && user.profile;\r\n }\r\n\r\n async getAccessToken() {\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.getUser();\r\n return user && user.access_token;\r\n }\r\n\r\n // We try to authenticate the user in three different ways:\r\n // 1) We try to see if we can authenticate the user silently. This happens\r\n // when the user is already logged in on the IdP and is done using a hidden iframe\r\n // on the client.\r\n // 2) We try to authenticate the user using a PopUp Window. This might fail if there is a\r\n // Pop-Up blocker or the user has disabled PopUps.\r\n // 3) If the two methods above fail, we redirect the browser to the IdP to perform a traditional\r\n // redirect flow.\r\n async signIn(state) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n const silentUser = await this.userManager.signinSilent(this.createArguments());\r\n this.updateState(silentUser);\r\n return this.success(state);\r\n } catch (silentError) {\r\n // User might not be authenticated, fallback to popup authentication\r\n console.log(\"Silent authentication error: \", silentError);\r\n\r\n try {\r\n if (this._popUpDisabled) {\r\n throw new Error('Popup disabled. Change \\'AuthorizeService.js:AuthorizeService._popupDisabled\\' to false to enable it.')\r\n }\r\n\r\n const popUpUser = await this.userManager.signinPopup(this.createArguments());\r\n this.updateState(popUpUser);\r\n return this.success(state);\r\n } catch (popUpError) {\r\n if (popUpError.message === \"Popup window closed\") {\r\n // The user explicitly cancelled the login action by closing an opened popup.\r\n return this.error(\"The user closed the window.\");\r\n } else if (!this._popUpDisabled) {\r\n console.log(\"Popup authentication error: \", popUpError);\r\n }\r\n\r\n // PopUps might be blocked by the user, fallback to redirect\r\n try {\r\n await this.userManager.signinRedirect(this.createArguments(state));\r\n return this.redirect();\r\n } catch (redirectError) {\r\n console.log(\"Redirect authentication error: \", redirectError);\r\n return this.error(redirectError);\r\n }\r\n }\r\n }\r\n }\r\n\r\n async completeSignIn(url) {\r\n try {\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.signinCallback(url);\r\n this.updateState(user);\r\n return this.success(user && user.state);\r\n } catch (error) {\r\n console.log('There was an error signing in: ', error);\r\n return this.error('There was an error signing in.');\r\n }\r\n }\r\n\r\n // We try to sign out the user in two different ways:\r\n // 1) We try to do a sign-out using a PopUp Window. This might fail if there is a\r\n // Pop-Up blocker or the user has disabled PopUps.\r\n // 2) If the method above fails, we redirect the browser to the IdP to perform a traditional\r\n // post logout redirect flow.\r\n async signOut(state) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n if (this._popUpDisabled) {\r\n throw new Error('Popup disabled. Change \\'AuthorizeService.js:AuthorizeService._popupDisabled\\' to false to enable it.')\r\n }\r\n\r\n await this.userManager.signoutPopup(this.createArguments());\r\n this.updateState(undefined);\r\n return this.success(state);\r\n } catch (popupSignOutError) {\r\n console.log(\"Popup signout error: \", popupSignOutError);\r\n try {\r\n await this.userManager.signoutRedirect(this.createArguments(state));\r\n return this.redirect();\r\n } catch (redirectSignOutError) {\r\n console.log(\"Redirect signout error: \", redirectSignOutError);\r\n return this.error(redirectSignOutError);\r\n }\r\n }\r\n }\r\n\r\n async completeSignOut(url) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n const response = await this.userManager.signoutCallback(url);\r\n this.updateState(null);\r\n return this.success(response && response.data);\r\n } catch (error) {\r\n console.log(`There was an error trying to log out '${error}'.`);\r\n return this.error(error);\r\n }\r\n }\r\n\r\n updateState(user) {\r\n this._user = user;\r\n this._isAuthenticated = !!this._user;\r\n this.notifySubscribers();\r\n }\r\n\r\n subscribe(callback) {\r\n this._callbacks.push({ callback, subscription: this._nextSubscriptionId++ });\r\n return this._nextSubscriptionId - 1;\r\n }\r\n\r\n unsubscribe(subscriptionId) {\r\n const subscriptionIndex = this._callbacks\r\n .map((element, index) => element.subscription === subscriptionId ? { found: true, index } : { found: false })\r\n .filter(element => element.found === true);\r\n if (subscriptionIndex.length !== 1) {\r\n throw new Error(`Found an invalid number of subscriptions ${subscriptionIndex.length}`);\r\n }\r\n\r\n this._callbacks.splice(subscriptionIndex[0].index, 1);\r\n }\r\n\r\n notifySubscribers() {\r\n for (let i = 0; i < this._callbacks.length; i++) {\r\n const callback = this._callbacks[i].callback;\r\n callback();\r\n }\r\n }\r\n\r\n createArguments(state) {\r\n return { useReplaceToNavigate: true, data: state };\r\n }\r\n\r\n error(message) {\r\n return { status: AuthenticationResultStatus.Fail, message };\r\n }\r\n\r\n success(state) {\r\n return { status: AuthenticationResultStatus.Success, state };\r\n }\r\n\r\n redirect() {\r\n return { status: AuthenticationResultStatus.Redirect };\r\n }\r\n\r\n async ensureUserManagerInitialized() {\r\n if (this.userManager !== undefined) {\r\n return;\r\n }\r\n\r\n let response = await fetch(ApplicationPaths.ApiAuthorizationClientConfigurationUrl);\r\n if (!response.ok) {\r\n throw new Error(`Could not load settings for '${ApplicationName}'`);\r\n }\r\n\r\n let settings = await response.json();\r\n settings.automaticSilentRenew = true;\r\n settings.includeIdTokenInSilentRenew = true;\r\n settings.userStore = new WebStorageStateStore({\r\n prefix: ApplicationName\r\n });\r\n\r\n this.userManager = new UserManager(settings);\r\n\r\n this.userManager.events.addUserSignedOut(async () => {\r\n await this.userManager.removeUser();\r\n this.updateState(undefined);\r\n });\r\n }\r\n\r\n static get instance() { return authService }\r\n}\r\n\r\nconst authService = new AuthorizeService();\r\n\r\nexport default authService;\r\n\r\nexport const AuthenticationResultStatus = {\r\n Redirect: 'redirect',\r\n Success: 'success',\r\n Fail: 'fail'\r\n};\r\n","import React from 'react'\r\nimport { Component } from 'react'\r\nimport { Route, Redirect } from 'react-router-dom'\r\nimport { ApplicationPaths, QueryParameterNames } from './ApiAuthorizationConstants'\r\nimport authService from './AuthorizeService'\r\n\r\nexport default class AuthorizeRoute extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n ready: false,\r\n authenticated: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this._subscription = authService.subscribe(() => this.authenticationChanged());\r\n this.populateAuthenticationState();\r\n }\r\n\r\n componentWillUnmount() {\r\n authService.unsubscribe(this._subscription);\r\n }\r\n\r\n render() {\r\n const { ready, authenticated } = this.state;\r\n var link = document.createElement(\"a\");\r\n link.href = this.props.path;\r\n const returnUrl = `${link.protocol}//${link.host}${link.pathname}${link.search}${link.hash}`;\r\n const redirectUrl = `${ApplicationPaths.Login}?${QueryParameterNames.ReturnUrl}=${encodeURIComponent(returnUrl)}`\r\n if (!ready) {\r\n return
;\r\n } else {\r\n const { component: Component, ...rest } = this.props;\r\n return {\r\n if (authenticated) {\r\n return \r\n } else {\r\n return \r\n }\r\n }} />\r\n }\r\n }\r\n\r\n async populateAuthenticationState() {\r\n const authenticated = await authService.isAuthenticated();\r\n this.setState({ ready: true, authenticated });\r\n }\r\n\r\n async authenticationChanged() {\r\n this.setState({ ready: false, authenticated: false });\r\n await this.populateAuthenticationState();\r\n }\r\n}\r\n","import React from 'react'\r\nimport { Component } from 'react';\r\nimport authService from './AuthorizeService';\r\nimport { AuthenticationResultStatus } from './AuthorizeService';\r\nimport { LoginActions, QueryParameterNames, ApplicationPaths } from './ApiAuthorizationConstants';\r\n\r\n// The main responsibility of this component is to handle the user's login process.\r\n// This is the starting point for the login process. Any component that needs to authenticate\r\n// a user can simply perform a redirect to this component with a returnUrl query parameter and\r\n// let the component perform the login and return back to the return url.\r\nexport class Login extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n message: undefined\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LoginActions.Login:\r\n this.login(this.getReturnUrl());\r\n break;\r\n case LoginActions.LoginCallback:\r\n this.processLoginCallback();\r\n break;\r\n case LoginActions.LoginFailed:\r\n const params = new URLSearchParams(window.location.search);\r\n const error = params.get(QueryParameterNames.Message);\r\n this.setState({ message: error });\r\n break;\r\n case LoginActions.Profile:\r\n this.redirectToProfile();\r\n break;\r\n case LoginActions.Register:\r\n this.redirectToRegister();\r\n break;\r\n default:\r\n throw new Error(`Ошибка '${action}'`);\r\n }\r\n }\r\n\r\n render() {\r\n const action = this.props.action;\r\n const { message } = this.state;\r\n\r\n if (!!message) {\r\n return
{message}
\r\n } else {\r\n switch (action) {\r\n case LoginActions.Login:\r\n case LoginActions.LoginCallback:\r\n case LoginActions.Profile:\r\n case LoginActions.Register:\r\n return (
);\r\n default:\r\n throw new Error(`Ошибка '${action}'`);\r\n }\r\n }\r\n }\r\n\r\n async login(returnUrl) {\r\n const state = { returnUrl };\r\n const result = await authService.signIn(state);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(`Неверный статус ${result.status}.`);\r\n }\r\n }\r\n\r\n async processLoginCallback() {\r\n const url = window.location.href;\r\n const result = await authService.completeSignIn(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n // There should not be any redirects as the only time completeSignIn finishes\r\n // is when we are doing a redirect sign in flow.\r\n throw new Error('Перенаправление не требуется.');\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(`Неверный статус аутентификации '${result.status}'.`);\r\n }\r\n }\r\n\r\n getReturnUrl(state) {\r\n const params = new URLSearchParams(window.location.search);\r\n const fromQuery = params.get(QueryParameterNames.ReturnUrl);\r\n if (fromQuery && !fromQuery.startsWith(`${window.location.origin}/`)) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error(\"Недопустимый обратный URL. URL-адрес возврата должен иметь то же происхождение, что и текущая страница.\")\r\n }\r\n return (state && state.returnUrl) || fromQuery || `${window.location.origin}/`;\r\n }\r\n\r\n redirectToRegister() {\r\n this.redirectToApiAuthorizationPath(`${ApplicationPaths.IdentityRegisterPath}?${QueryParameterNames.ReturnUrl}=${encodeURI(ApplicationPaths.Login)}`);\r\n }\r\n\r\n redirectToProfile() {\r\n this.redirectToApiAuthorizationPath(ApplicationPaths.IdentityManagePath);\r\n }\r\n\r\n redirectToApiAuthorizationPath(apiAuthorizationPath) {\r\n const redirectUrl = `${window.location.origin}/${apiAuthorizationPath}`;\r\n // It's important that we do a replace here so that when the user hits the back arrow on the\r\n // browser they get sent back to where it was on the app instead of to an endpoint on this\r\n // component.\r\n window.location.replace(redirectUrl);\r\n }\r\n\r\n navigateToReturnUrl(returnUrl) {\r\n // It's important that we do a replace here so that we remove the callback uri with the\r\n // fragment containing the tokens from the browser history.\r\n window.location.replace(returnUrl);\r\n }\r\n}\r\n","import React from 'react'\r\nimport {Component} from 'react';\r\nimport authService from './AuthorizeService';\r\nimport {AuthenticationResultStatus} from './AuthorizeService';\r\nimport {QueryParameterNames, LogoutActions, ApplicationPaths} from './ApiAuthorizationConstants';\r\n\r\n// The main responsibility of this component is to handle the user's logout process.\r\n// This is the starting point for the logout process, which is usually initiated when a\r\n// user clicks on the logout button on the LoginMenu component.\r\nexport class Logout extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n message: undefined,\r\n isReady: false,\r\n authenticated: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LogoutActions.Logout:\r\n if (!!window.history.state.state.local) {\r\n this.logout(this.getReturnUrl());\r\n } else {\r\n // This prevents regular links to /authentication/logout from triggering a logout\r\n this.setState({isReady: true, message: \"\"});\r\n }\r\n break;\r\n case LogoutActions.LogoutCallback:\r\n this.processLogoutCallback();\r\n break;\r\n case LogoutActions.LoggedOut:\r\n this.setState({isReady: true, message: \"Вы успешно вышли из аккаунта!\"});\r\n break;\r\n default:\r\n throw new Error(`Ошибка '${action}'`);\r\n }\r\n\r\n this.populateAuthenticationState();\r\n }\r\n\r\n render() {\r\n const {isReady, message} = this.state;\r\n if (!isReady) {\r\n return
\r\n }\r\n if (!!message) {\r\n return (
{message}
);\r\n } else {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LogoutActions.Logout:\r\n return (
Выполняется выход...
);\r\n case LogoutActions.LogoutCallback:\r\n return (
...
);\r\n case LogoutActions.LoggedOut:\r\n return (
{message}
);\r\n default:\r\n throw new Error(`Ошибка '${action}'`);\r\n }\r\n }\r\n }\r\n\r\n async logout(returnUrl) {\r\n const state = {returnUrl};\r\n const isauthenticated = await authService.isAuthenticated();\r\n if (isauthenticated) {\r\n const result = await authService.signOut(state);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({message: result.message});\r\n break;\r\n default:\r\n throw new Error(\"Неверный статус результата аутентификации.\");\r\n }\r\n } else {\r\n this.setState({message: \"Вы успешно вышли из аккаунта!\"});\r\n }\r\n }\r\n\r\n async processLogoutCallback() {\r\n const url = window.location.href;\r\n const result = await authService.completeSignOut(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({message: result.message});\r\n break;\r\n default:\r\n throw new Error(\"Неверный статус результата проверки подлинности.\");\r\n }\r\n }\r\n\r\n async populateAuthenticationState() {\r\n const authenticated = await authService.isAuthenticated();\r\n this.setState({isReady: true, authenticated});\r\n }\r\n\r\n getReturnUrl(state) {\r\n const params = new URLSearchParams(window.location.search);\r\n const fromQuery = params.get(QueryParameterNames.ReturnUrl);\r\n if (fromQuery && !fromQuery.startsWith(`${window.location.origin}/`)) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error(\"Недопустимый обратный URL. URL-адрес возврата должен иметь тот же источник, что и текущая страница.\")\r\n }\r\n return (state && state.returnUrl) ||\r\n fromQuery ||\r\n `${window.location.origin}${ApplicationPaths.Login}`;\r\n }\r\n\r\n navigateToReturnUrl(returnUrl) {\r\n return window.location.replace(returnUrl);\r\n }\r\n}\r\n","import React, { Component, Fragment } from 'react';\r\nimport { Route } from 'react-router';\r\nimport { Login } from './Login'\r\nimport { Logout } from './Logout'\r\nimport { ApplicationPaths, LoginActions, LogoutActions } from './ApiAuthorizationConstants';\r\n\r\nexport default class ApiAuthorizationRoutes extends Component {\r\n\r\n render () {\r\n return(\r\n \r\n loginAction(LoginActions.Login)} />\r\n loginAction(LoginActions.LoginFailed)} />\r\n loginAction(LoginActions.LoginCallback)} />\r\n loginAction(LoginActions.Profile)} />\r\n loginAction(LoginActions.Register)} />\r\n logoutAction(LogoutActions.Logout)} />\r\n logoutAction(LogoutActions.LogoutCallback)} />\r\n logoutAction(LogoutActions.LoggedOut)} />\r\n );\r\n }\r\n}\r\n\r\nfunction loginAction(name){\r\n return ();\r\n}\r\n\r\nfunction logoutAction(name) {\r\n return ();\r\n}\r\n","import React, {Component} from 'react';\r\nimport {NavLink} from 'reactstrap';\r\nimport {Link} from 'react-router-dom';\r\nimport authService from './AuthorizeService';\r\nimport {ApplicationPaths} from './ApiAuthorizationConstants';\r\n\r\nexport class LoginMenu extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isAuthenticated: false,\r\n userName: null,\r\n name:''\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this._subscription = authService.subscribe(() => this.populateState());\r\n this.populateState();\r\n }\r\n\r\n componentWillUnmount() {\r\n authService.unsubscribe(this._subscription);\r\n }\r\n\r\n async populateState() {\r\n const [isAuthenticated, user] = await Promise.all([authService.isAuthenticated(), authService.getUser()])\r\n this.setState({\r\n isAuthenticated,\r\n userName: user && user.name\r\n });\r\n const token = await authService.getAccessToken()\r\n const username_response = await fetch('api/validator/getUsername', {\r\n headers: !token ? {} : {'Authorization': `Bearer ${token}`}})\r\n const username = await username_response.json()\r\n this.setState({name: username.userName})\r\n }\r\n\r\n render() {\r\n\r\n const {isAuthenticated, userName} = this.state;\r\n if (!isAuthenticated) {\r\n const registerPath = `${ApplicationPaths.Register}`;\r\n const loginPath = `${ApplicationPaths.Login}`;\r\n return this.anonymousView(registerPath, loginPath);\r\n } else {\r\n const profilePath = `${ApplicationPaths.Profile}`;\r\n const logoutPath = {pathname: `${ApplicationPaths.LogOut}`, state: {local: true}};\r\n return this.authenticatedView(userName, profilePath, logoutPath);\r\n }\r\n }\r\n\r\n authenticatedView(userName, profilePath, logoutPath) {\r\n return (
\r\n
{this.state.name}
\r\n Личный кабинет\r\n Выход\r\n
);\r\n\r\n }\r\n\r\n anonymousView(registerPath, loginPath) {\r\n return (
\r\n Вход\r\n
\r\n );\r\n }\r\n\r\n\r\n}\r\n","export default __webpack_public_path__ + \"static/media/logo.e95ef623.svg\";","import React from 'react';\r\nimport {NavLink} from \"react-router-dom\";\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\nimport {LoginMenu} from \"./api-authorization/LoginMenu\";\r\nimport logo from '../assets/icons/logo.svg'\r\n\r\nconst Sidebar = ({children}) => {\r\n const menuItem = [\r\n {\r\n path: \"/fields\",\r\n name: \"Поля\",\r\n },\r\n {\r\n path: \"/directory\",\r\n name: \"Справочник\",\r\n },\r\n {\r\n path: \"/fertilizers\",\r\n name: \"Удобрения\",\r\n },\r\n {\r\n path: \"/calculations\",\r\n name: \"Расчет\",\r\n },\r\n {\r\n path: \"/reports\",\r\n name: \"Отчеты\",\r\n }\r\n ]\r\n return (\r\n
\r\n
\r\n
\r\n \"logo\"/\r\n
SKARB-SOIL
\r\n
\r\n
\r\n {menuItem.map((item, index) => (\r\n \r\n
{item.name}
\r\n
\r\n ))}\r\n
\r\n \r\n
\r\n
\r\n
{children}
\r\n
\r\n )\r\n};\r\n\r\nexport default Sidebar;","/* eslint-disable */\r\nimport React, {Component} from 'react';\r\nimport {Input, Grid} from 'react-spreadsheet-grid';\r\nimport set from 'lodash.set';\r\nimport {Button, OverlayTrigger, Popover} from \"react-bootstrap\";\r\n\r\n\r\nexport class AddFieldTable extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n columns: [],\r\n data: [],\r\n save: -1,\r\n row_save: {\r\n \"area\": 0,\r\n \"name\": \"\",\r\n }\r\n };\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.populateFieldsData();\r\n }\r\n\r\n handleSubmit(event) {\r\n this.PostResponse()\r\n event.preventDefault();\r\n this.setState({data: [{name: '', area: ''}]})\r\n }\r\n\r\n async PostResponse() {\r\n this.setState({save: 0})\r\n const token = this.props.token;\r\n await fetch('api/field?area=' + this.state.row_save.area + '&name=' + this.state.row_save.name, {\r\n method: 'POST',\r\n headers: !token ? {} : {'Authorization': `Bearer ${token}`},\r\n }).then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n this.props.addField(result)\r\n });\r\n this.setState({save: 2, row_save:{'area':0, 'name':''}})\r\n setTimeout(()=>this.setState({save: -1}),3000)\r\n }else {\r\n this.setState({save: 1})\r\n setTimeout(()=>this.setState({save: -1}),3000)\r\n }\r\n });\r\n }\r\n\r\n\r\n render() {\r\n let save=''\r\n switch (this.state.save) {\r\n case 0:\r\n save = 'Идет добавление...'\r\n break\r\n case 1:\r\n save = 'Ошибка'\r\n break\r\n case 2:\r\n save = 'Поле успешно добавлено'\r\n break\r\n default:\r\n save = ''\r\n break\r\n }\r\n return (\r\n
\r\n row.id}\r\n rowHeight={90}\r\n />\r\n
\r\n {save}}\r\n >\r\n \r\n \r\n
\r\n
);\r\n }\r\n\r\n\r\n async populateFieldsData() {\r\n const numberFormat = new Intl.NumberFormat('ru-RU')\r\n\r\n function formatCell(value, element = false) {\r\n return value ? (numberFormat.format(value.toString().replace(',', '.')).replace(',', '.')) : '0'\r\n }\r\n\r\n const onFieldChange = (rowId, field) => (value1) => {\r\n let value = value1\r\n if (field === 'area')\r\n value = value1.replace(/\\s/g, \"\")\r\n set(this.state.data[0], field, value);\r\n this.state.row_save[field] = value\r\n }\r\n\r\n const columns = [\r\n {\r\n title: 'Наименование нового поля',\r\n value: (row, {focus}) => {\r\n return (\r\n \r\n );\r\n },\r\n id: 'name',\r\n }, {\r\n title: 'Площадь нового поля, га',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'area',\r\n }\r\n ]\r\n\r\n this.setState({\r\n data: [{name: '', area: '0'}],\r\n columns: columns,\r\n });\r\n }\r\n\r\n}\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAB/SURBVHgB7ZHBDYAgDEWrIY7gySE8c2AHJ3ULzm7gxYNhBEOM7aEJaQtxAP6NX94PvwB0Kd0hnJf3q/QTejST/qiMnDfn3F6GEPyiRzN5fwBDDGQEJjwzPMd4/AooQ/hVFmxWsPQ0Zs0K3JnrLJVXKJi2ncQSa7+jJGEZAl1KH3vARxQyzdkDAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAMCAYAAACJOyb4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACxSURBVHgBrZLRCcIwFEXvC35LFwjEDRxBFP8doW7gCG5SV/C7iriBbhCsa5jYWBTE5vXZ5nzehHPhJoAQk80yoxcr/IGSXApijEcnEIq6oICQTvlH7OkK9ZiAaCotIKnYVmX+ykyduZD5i62O617yNvHXuV7uAOe5AsWKHZ3bxIEmV8RNpKJiYG/v5QYMXQUUFd8OWwiJTURDxVwBpRDHCprNE4gDP28Q/q3R8xwJefueGyFisbhAgOgAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAMCAYAAABm+U3GAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACPSURBVHgBrdPBCYAwDAXQb0unECQjdARBHMBJO4AXR3ADe3EKUWxFDx7UtPFDLgm8Q0gKKmsLGPi5H/FDLk+FAvTmqGwthDlQbRzMcjaotlQ1kwSPKFXtFK37QIA/ohL8E83B2WgKnoxy8Gz0DeeiBRg4Nu2wqg4I9xnvVC2d98Mogm94+CcOmpRjLQk73QGw+0JIosyy8QAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABhSURBVHgBzVHBCYAwDEyC80g3cAUfuo9fncYV3MCJGjn0Ycv10UehByHhjpDkIkKwHiEgmDYw0j3OX3nnmkkl2jcojvvt/JKmE7JHvxJe7ayeQLHs44ZgWocu0U/DjVLDA0wHE7vxfEgqAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAHCAYAAAA4R3wZAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABrSURBVHgBlcvBEUAwEIXhXf1QCTfO6EAHiQqUgGtyS/RhREErw2AMEf7LzpudD8CR1BOTemauP7qQPXxbAc+SsPbCK9q7Y/SjZ3xAqUwDSBW8duIVisG0SFTAhxCxS+OoRKHGwo4cfhQQ9QuLbybz9EBM2QAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAISSURBVHgB1VVNbtNAFP5mPFkBUm5AuADBN3AOUKgXpUIsQk7Q3KDNCVBPELpCIqDQoK7bnsCBBescIRJlZfs93rObKk0yVozaSv2kp/HPm/ne/wCPHabq5+dxEjUapktkImPQuv48NcZM8xSn+/HL7/gfAjm45VwwBDiq3GwwS1PqvIvDmU/Hrn74cpa8cs4m14fPARq4jF7s7bSNClsKmanHjJlIS3V1j9eIdcv1cDTBOLnKqd+Lw/mmjeNx0swdjhj2QA3JMgo3eeKWXxqBPWc5XOT47et2HxWIS+L+aPKzKWZ2y5Cis6p3E6Kvk2SXJZEis78ZHWFLOPESRSg5Gv1IIi8BbPCmWIkGvrD4PCGiY32W6up6CZi5SFSaY4qaIMKn8slEXgJBQfA+DmsTLJKrVVVFcC9YChFmun47+/0cNbHoA6m+aQUBXeqaZWkPdZGX4bWG/QTWlomS9WAoTYQtoboW9rDgSfnUS7C3E16IHyJoPmsEH7ElngbB4aJ/9uNwbfjd6uQs455zJpGS/TCa/Jpf5bm3J9TyJ2qI6Oq7kfm0SW9tmmrCDNlz9USnpTTRQHtjUb7lvHLSUEUH34TSN1m94zqQubR0B3igIeUBsx2q7iaSygunmE/ArpjXFtWyFKWcreULCeNJmbfbBq2SGNwRVkn+pBRq/u6sk9XiPKdOcRERLusMzFpQT/CQ+AcVeQgntzycCwAAAABJRU5ErkJggg==\"","/* eslint-disable */\r\nimport React, {Component} from 'react'\r\nimport {Input, Grid} from 'react-spreadsheet-grid'\r\nimport set from 'lodash.set'\r\nimport {Collapse} from 'react-collapse'\r\nimport {Button, Col, Row, Form, Modal, OverlayTrigger, Popover} from \"react-bootstrap\"\r\nimport Select, {components, DropdownIndicatorProps} from 'react-select'\r\nimport {AddFieldTable} from \"./AddFieldTable\"\r\nimport del from \"../../assets/icons/del.png\"\r\nimport arrow_up from \"../../assets/icons/dark_arrow_up.png\"\r\nimport arrow_down from \"../../assets/icons/dark_arrow_down.png\"\r\nimport {Typography} from \"@material-ui/core\"\r\nimport add from \"../../assets/icons/add.png\"\r\nimport {IMaskInput} from \"react-imask\"\r\nimport {Icon} from '@iconify/react'\r\nimport clockIcon from '@iconify/icons-svg-spinners/clock'\r\nimport clock from '../../assets/icons/clock.png'\r\nimport triangle from '../../assets/icons/triangle.png'\r\nimport cloneDeep from 'lodash/cloneDeep'\r\nimport red_clock from '../../assets/icons/red-clock.png'\r\nimport loadingIcon from '@iconify/icons-uiw/loading'\r\nimport search from '../../assets/icons/search.png'\r\nimport LazyLoad from 'react-lazy-load';\r\n\r\nexport class FieldTable extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n rows: [],\r\n loading: true,\r\n save: -1,\r\n modalShow: false,\r\n columnsRegion: [],\r\n columnsOneRegion: [],\r\n clockIsError: false,\r\n syncModalShow: false,\r\n cropwise_fields_all: [],\r\n modalSowId: '',\r\n synchronising: false,\r\n sync_loading: false,\r\n isCheckAll: true,\r\n sort_fields: {name: true, area: false},\r\n check_cropwise: false\r\n }\r\n this.saveData = this.saveData.bind(this)\r\n this.onFieldChange = this.onFieldChange.bind(this)\r\n this.delFieldModal = this.delFieldModal.bind(this)\r\n this.syncModal = this.syncModal.bind(this)\r\n this.checkAll = this.checkAll.bind(this)\r\n this.checkField = this.checkField.bind(this)\r\n this.synchronise = this.synchronise.bind(this)\r\n this.trackScrolling = this.trackScrolling.bind(this)\r\n this.sort_field_list = this.sort_field_list.bind(this)\r\n this.onSyncClick = this.onSyncClick.bind(this)\r\n this.filterFieldList = this.filterFieldList.bind(this)\r\n }\r\n\r\n componentDidMount() {\r\n this.populateFieldsData()\r\n }\r\n\r\n trackScrolling = () => {\r\n const wrappedElement = document.getElementById('sync-table-container');\r\n if (wrappedElement.scrollHeight - wrappedElement.scrollTop === wrappedElement.clientHeight) {\r\n document.getElementById('sync-table-container').classList.add('no-after')\r\n } else {\r\n document.getElementById('sync-table-container').classList.remove('no-after')\r\n }\r\n }\r\n\r\n expandRow = (rowId) => {\r\n const row = this.state.rows.find((row) => {\r\n return row.id === rowId;\r\n });\r\n row.expand = !row.expand\r\n this.setState({expand: row.expand ? \"Скрыть\" : \"Раскрыть\"})\r\n }\r\n\r\n addRowRegion = (rowId) => {\r\n fetch('api/region?fieldId=' + rowId, {\r\n method: 'POST',\r\n headers: !this.props.token ? {} : {'Authorization': `Bearer ${this.props.token}`},\r\n }).then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n let row = this.state.rows.find((row) => {\r\n return row.id === rowId;\r\n });\r\n row.regions = row.regions.concat(result)\r\n this.setState({rows: this.state.rows})\r\n })\r\n }\r\n });\r\n }\r\n\r\n removeField = (rowId) => {\r\n fetch('api/Field?id=' + rowId, {\r\n method: 'DELETE',\r\n headers: !this.props.token ? {} : {'Authorization': `Bearer ${this.props.token}`}\r\n }).then((response) => {\r\n if (response.ok) {\r\n this.setState({rows: this.state.rows.filter((row) => row.id !== rowId)})\r\n }\r\n });\r\n }\r\n\r\n onFieldChange = (rowId, field, value1) => {\r\n let value = value1\r\n if (field === 'area')\r\n value = value1.replace(/\\s/g, \"\")\r\n const modifiedRows = [].concat(this.state.rows);\r\n const row = modifiedRows.find((row) => {\r\n return row.id === rowId;\r\n });\r\n set(row, field, value);\r\n this.forceUpdate()\r\n }\r\n\r\n removeRowRegion = (rowId) => {\r\n fetch('api/region?id=' + rowId, {\r\n method: 'DELETE',\r\n headers: !this.props.token ? {} : {'Authorization': `Bearer ${this.props.token}`}\r\n }).then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n let row = this.state.rows.find((row) => {\r\n return row.id === result;\r\n });\r\n row.regions = row.regions.filter(e => e.id !== rowId)\r\n this.setState({rows: this.state.rows});\r\n })\r\n }\r\n });\r\n }\r\n\r\n saveData() {\r\n this.setState({save: 0})\r\n fetch('api/field', {\r\n method: 'PUT',\r\n headers: !this.props.token ? {} : {\r\n 'Authorization': `Bearer ${this.props.token}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(this.state.rows)\r\n })\r\n .then((response) => {\r\n if (response.ok) {\r\n this.setState({save: 2})\r\n setTimeout(() => this.setState({save: -1}), 3000)\r\n } else {\r\n this.setState({save: 1})\r\n setTimeout(() => this.setState({save: -1}), 3000)\r\n }\r\n });\r\n }\r\n\r\n delFieldModal(fieldName, rowId) {\r\n return (\r\n this.setState({modalShow: false})}\r\n centered>\r\n \r\n \r\n Вы действительно хотите удалить поле \"{fieldName}\"?\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n }\r\n\r\n checkAll() {\r\n this.state.cropwise_fields_all.map((item) => {\r\n item.checked = !this.state.isCheckAll\r\n })\r\n this.setState({isCheckAll: !this.state.isCheckAll})\r\n }\r\n\r\n checkField(row) {\r\n this.state.cropwise_fields_all.find((r) => r.id === row.id).checked = !row.checked\r\n let check = new Set()\r\n this.state.cropwise_fields_all.map((r) => {\r\n check.add(r.checked)\r\n })\r\n if (check.size === 1 && check.has(true)) {\r\n this.setState({isCheckAll: true})\r\n } else {\r\n this.setState({isCheckAll: false})\r\n }\r\n }\r\n\r\n synchronise() {\r\n this.setState({synchronising: true})\r\n let checked_fields = cloneDeep(this.state.cropwise_fields_all.filter((row) => row.checked))\r\n checked_fields.map((row) => delete row.checked)\r\n fetch('api/field/createFromCropwise', {\r\n method: 'POST',\r\n headers: !this.props.token ? {} : {\r\n 'Authorization': `Bearer ${this.props.token}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(checked_fields)\r\n }).then(async (response) => {\r\n if (response.ok) {\r\n const body = await response.json()\r\n this.setState({synchronising: false, syncModalShow: false, rows: body})\r\n } else {\r\n this.setState({synchronising: false, clockIsError: true})\r\n document.getElementById('sync-error').innerHTML = 'Ошибка синхронизации!'\r\n }\r\n })\r\n }\r\n\r\n async onSyncClick() {\r\n this.setState({sync_loading: true})\r\n const cropwise_fields_response = await fetch('api/field/getFromCropwise', {\r\n headers: !this.props.token ? {} : {'Authorization': `Bearer ${this.props.token}`}\r\n });\r\n const cropwise_fields_all = await cropwise_fields_response.json()\r\n const cropwise_fields = cropwise_fields_all.map((field) => ({\r\n id: field.id,\r\n name: field.name,\r\n area: field.area.toFixed(2),\r\n checked: true,\r\n hide: false,\r\n }))\r\n this.setState({cropwise_fields_all: cropwise_fields, sync_loading: false})\r\n }\r\n\r\n filterFieldList(value) {\r\n let rows = this.state.cropwise_fields_all\r\n rows.forEach((row) => {\r\n row.hide = !row.name.toLowerCase().includes(value.toLowerCase())\r\n })\r\n this.setState({cropwise_fields_all: rows})\r\n }\r\n\r\n filterFields(value) {\r\n let rows = this.state.rows\r\n rows.forEach((row) => {\r\n row.hide = !row.name.toLowerCase().includes(value.toLowerCase())\r\n })\r\n this.setState({rows: rows})\r\n }\r\n\r\n syncModal() {\r\n return (\r\n this.setState({syncModalShow: false, clockIsError: false}, () => this.forceUpdate())}\r\n centered>\r\n \r\n Выберите поля\r\n \r\n \r\n {this.state.sync_loading ?\r\n
:\r\n <>\r\n
\r\n this.filterFieldList(e.target.value)}\r\n className='search-input'/>\r\n search\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {\r\n this.state.cropwise_fields_all.map((row) => {\r\n return (row.hide ? <> :\r\n )\r\n })\r\n }\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n }\r\n
\r\n
\r\n )\r\n }\r\n\r\n sort_field_list(col) {\r\n const sort_field = this.state.sort_fields[col]\r\n\r\n function compare(a, b) {\r\n if (a[col] < b[col]) {\r\n return (sort_field ? -1 : 1);\r\n }\r\n if (a[col] > b[col]) {\r\n return (sort_field ? 1 : -1);\r\n }\r\n return 0;\r\n }\r\n\r\n this.setState({cropwise_fields_all: this.state.cropwise_fields_all.sort(compare)})\r\n this.state.sort_fields[col] = !this.state.sort_fields[col]\r\n this.state.sort_fields[col] ? document.getElementById('sort-triangle-' + col).classList.add('sort-rotate') :\r\n document.getElementById('sort-triangle-' + col).classList.remove('sort-rotate')\r\n }\r\n\r\n static renderTable(rows, addRow, columnsRegion, columnsOneRegion, expand, onFieldChange, delFieldModal, showModal, modalShowId) {\r\n const tableField = rows ? rows.map((row) => (\r\n \r\n {!row.hide ?\r\n
\r\n
\r\n \r\n
\r\n {modalShowId === row.id ? delFieldModal(row.name, row.id) : <>}\r\n \r\n \r\n Наименование поля:\r\n \r\n \r\n onFieldChange(row.id, 'name', event.target.value)}>\r\n \r\n / Площадь: \r\n onFieldChange(row.id, 'area', event.target.value)}>\r\n га\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n row.id}\r\n rowHeight={90}\r\n disabledCellChecker={(row, columnId) => {\r\n return columnId === 'soilId' ||\r\n columnId === 'unit_measurements' ||\r\n columnId === 'button_remove' ||\r\n columnId === 'dateAnalyse'\r\n }}\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 tableField\r\n }\r\n\r\n render() {\r\n const showModal = (rowId) => {\r\n this.setState({modalShow: true, modalShowId: rowId})\r\n }\r\n let save = ''\r\n switch (this.state.save) {\r\n case 0:\r\n save = 'Идет сохранение...'\r\n break\r\n case 1:\r\n save = 'Ошибка'\r\n break\r\n case 2:\r\n save = 'Данные успешно сохранены'\r\n break\r\n default:\r\n save = ''\r\n break\r\n }\r\n let contents = this.state.loading\r\n ?

Загрузка...

\r\n : FieldTable.renderTable(\r\n this.state.rows,\r\n this.addRowRegion,\r\n this.state.columnsRegion,\r\n this.state.columnsOneRegion,\r\n this.expandRow,\r\n this.onFieldChange,\r\n this.delFieldModal,\r\n showModal,\r\n this.state.modalShowId)\r\n return (\r\n
\r\n {this.state.syncModalShow ? this.syncModal() : <>}\r\n \r\n Поля\r\n {this.state.check_cropwise ?\r\n : <>}\r\n \r\n this.setState({rows: this.state.rows.concat(value)})}/>\r\n
\r\n this.filterFields(e.target.value)}\r\n className='search-input'/>\r\n search\r\n
\r\n {contents}\r\n {save}}\r\n >\r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n async populateFieldsData() {\r\n const numberFormat = new Intl.NumberFormat('ru-RU')\r\n const numberElementFormat = new Intl.NumberFormat('ru-RU', {maximumFractionDigits: 0})\r\n\r\n function formatCell(value, element = false) {\r\n return value ? ((element ? numberElementFormat : numberFormat).format(value.toString().replace(',', '.')).replace(',', '.')) : 0\r\n }\r\n\r\n let check_cropwise = false\r\n fetch('api/field/checkCropwise', {\r\n headers: !this.props.token ? {} : {'Authorization': `Bearer ${this.props.token}`}\r\n }).then((response) => {\r\n if (response.ok) {\r\n check_cropwise = true\r\n }\r\n });\r\n\r\n const response = await fetch('api/field', {\r\n headers: !this.props.token ? {} : {'Authorization': `Bearer ${this.props.token}`}\r\n });\r\n const response_soils = await fetch('api/soil', {\r\n headers: !this.props.token ? {} : {'Authorization': `Bearer ${this.props.token}`}\r\n });\r\n let soils_list = [];\r\n const soils = await response_soils.json();\r\n soils.map((item) => (\r\n soils_list.push({value: item.id, label: item.name})\r\n ))\r\n soils_list = soils_list.sort((function (a, b) {\r\n if (a.label < b.label) {\r\n return -1;\r\n }\r\n if (a.label > b.label) {\r\n return 1;\r\n }\r\n return 0;\r\n }))\r\n\r\n let rows = await response.json()\r\n rows.map((row) => {\r\n Object.assign(row, {hide: false})\r\n })\r\n\r\n function compare(a, b) {\r\n if (a.name < b.name) {\r\n return -1;\r\n }\r\n if (a.name > b.name) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n rows = rows.sort(compare)\r\n\r\n const onDateChange = (rowId, fieldId, value) => {\r\n const modifiedRows = [].concat(this.state.rows);\r\n const row = modifiedRows.find((row) => {\r\n return row.id === fieldId;\r\n });\r\n const rowRegion = row.regions.find((row) => {\r\n return row.id === rowId;\r\n });\r\n set(rowRegion, 'dateAnalyse', value);\r\n }\r\n const onRegionChange = (rowId, field, fieldId) => (value1) => {\r\n let value = value1\r\n if (field !== 'dateAnalyse' && field !== 'name')\r\n value = value1.replace(/\\s/g, \"\").replace(',', '.')\r\n const modifiedRows = [].concat(this.state.rows);\r\n const row = modifiedRows.find((row) => {\r\n return row.id === fieldId;\r\n });\r\n const rowRegion = row.regions.find((row) => {\r\n return row.id === rowId;\r\n });\r\n set(rowRegion, field, value);\r\n if (/^element/.test(field))\r\n set(rowRegion, field.replace('element', 'elementMg'), 0)\r\n if (field === 'density' || field === 'depthSoil')\r\n for (let el in rowRegion.element) {\r\n if (Number(rowRegion.elementMg[el]) !== 0) {\r\n set(rowRegion, 'element.' + el, rowRegion.elementMg[el] * rowRegion.density * rowRegion.depthSoil / 10)\r\n }\r\n }\r\n }\r\n const onRegion2Change = (rowId, field, fieldId) => (value1) => {\r\n let value = value1.replace(/\\s/g, \"\")\r\n const modifiedRows = [].concat(this.state.rows);\r\n const row = modifiedRows.find((row) => {\r\n return row.id === fieldId;\r\n });\r\n const rowRegion = row.regions.find((row) => {\r\n return row.id === rowId;\r\n });\r\n set(rowRegion, 'element.' + field, value * rowRegion.density * rowRegion.depthSoil / 10);\r\n set(rowRegion, 'elementMg.' + field, value);\r\n }\r\n const onSelectChange = (rowId, field, fieldId) => (value) => {\r\n const modifiedRows = [].concat(this.state.rows);\r\n const row = modifiedRows.find((row) => {\r\n return row.id === fieldId;\r\n });\r\n const rowRegion = row.regions.find((row) => {\r\n return row.id === rowId;\r\n });\r\n rowRegion.soil = soils.find((s) => {\r\n return s.id === value.value;\r\n })\r\n set(rowRegion, field, value.value);\r\n }\r\n const del_button = (id) => {\r\n return ()\r\n }\r\n const DropdownIndicator = (props: DropdownIndicatorProps) => {\r\n return (\r\n \r\n arrow-down\r\n \r\n );\r\n };\r\n\r\n function NoOptionsMessage(props) {\r\n if (props.options.length) return null;\r\n return Нет данных;\r\n }\r\n\r\n const columnsOneRegion = [\r\n {\r\n title: 'Дата анализа',\r\n value: (row, {focus}) => {\r\n return (\r\n onDateChange(row.id, row.fieldId, value)}\r\n placeholder=\"00.00.0000\"\r\n />\r\n );\r\n },\r\n id: 'dateAnalyse',\r\n width: 8,\r\n getCellClassName: () => \"SpreadsheetGrid__cell_focused\"\r\n }, {\r\n title: 'Площадь\\nполя, га',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'area',\r\n width: 7,\r\n }, {\r\n title: 'Тип почвы',\r\n value: (row, {focus}) => {\r\n return (\r\n r.value === row.soilId)]}\r\n onChange={onSelectChange(row.id, 'soilId', row.fieldId)}\r\n className='in-table-select'\r\n maxMenuHeight='244px'\r\n components={{DropdownIndicator, NoOptionsMessage}}\r\n theme={(theme) => ({\r\n ...theme,\r\n border: '1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n colors: {\r\n ...theme.colors,\r\n primary: '#ABB3D1',\r\n },\r\n })}\r\n styles={{\r\n container: (baseStyles, state) => ({\r\n ...baseStyles,\r\n width: '90%',\r\n height: '70px',\r\n }),\r\n control: (baseStyles, state) => ({\r\n ...baseStyles,\r\n background: state.isFocused ? '#fff' : '#E9EAEE',\r\n height: '70px',\r\n width: '100%',\r\n }),\r\n menu: (baseStyles, state) => ({\r\n ...baseStyles,\r\n border: ' 1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n margin: '0',\r\n fontSize: '18px !important',\r\n }),\r\n option: (baseStyles, state) => ({\r\n ...baseStyles,\r\n backgroundColor: state.isFocused ? 'rgba(226, 228, 239, 0.5)' : \"white\",\r\n height: '80px',\r\n lineHeight: '20px',\r\n fontSize: '18px !important',\r\n }),\r\n singleValue: (baseSyles) => ({\r\n ...baseSyles,\r\n whiteSpace: 'normal',\r\n height: '57px',\r\n textAlign: 'left',\r\n fontSize: '18px',\r\n lineHeight: '20px',\r\n color: '#201E44',\r\n margin: '0 !important'\r\n }),\r\n }}\r\n />\r\n );\r\n },\r\n id: 'soilId',\r\n width: 26,\r\n getCellClassName: () => \"SpreadsheetGrid__cell_focused\"\r\n }, {\r\n title: 'Гумус\\n%',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'humus',\r\n width: 5,\r\n }, {\r\n title: 'pH',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'pH',\r\n width: 5,\r\n }, {\r\n title: 'Плотность\\nг/см³',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'density',\r\n width: 7,\r\n }, {\r\n title: 'Глубина пахотного слоя, см',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'depthSoil',\r\n width: 7,\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\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 id: 'unit_measurements',\r\n width: 5,\r\n }, {\r\n title: 'N',\r\n value: (row, {focus}) => {\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 id: 'N',\r\n width: 5\r\n }, {\r\n title: 'P₂O₅',\r\n value: (row, {focus}) => {\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 id: 'P2O5',\r\n width: 5\r\n }, {\r\n title: 'K₂O',\r\n value: (row, {focus}) => {\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 id: 'K2O',\r\n width: 5\r\n }, {\r\n title: 'S',\r\n value: (row, {focus}) => {\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n )\r\n ;\r\n },\r\n id: 'S',\r\n width: 5\r\n }, {\r\n title: 'CaO',\r\n value: (row, {focus}) => {\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 id: 'caO',\r\n width: 5\r\n }, {\r\n title: 'Mg',\r\n value: (row, {focus}) => {\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 id: 'mg',\r\n width: 5\r\n },\r\n {\r\n title: '',\r\n value: (row) => {\r\n return del_button(row.id);\r\n },\r\n id: 'button_remove',\r\n width: 0,\r\n getCellClassName: () => \"SpreadsheetGrid__cell_focused\"\r\n }\r\n ];\r\n const columnsRegion = [\r\n {\r\n title: 'Дата анализа',\r\n value: (row, {focus}) => {\r\n return (\r\n onDateChange(row.id, row.fieldId, value)}\r\n placeholder=\"00.00.0000\"\r\n />\r\n )\r\n },\r\n id: 'dateAnalyse',\r\n width: 7,\r\n getCellClassName: () => \"SpreadsheetGrid__cell_focused\"\r\n }, {\r\n title: 'Наим.\\nэл. уч.',\r\n value: (row, {focus}) => {\r\n return (\r\n \r\n );\r\n },\r\n id: 'name',\r\n width: 6,\r\n }, {\r\n title: 'Площадь\\nэл. уч., га',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'area',\r\n width: 7,\r\n }, {\r\n title: 'Тип почвы',\r\n value: (row, {focus}) => {\r\n return (\r\n r.value === row.soilId)]}\r\n onChange={onSelectChange(row.id, 'soilId', row.fieldId)}\r\n className='in-table-select'\r\n maxMenuHeight='244px'\r\n components={{DropdownIndicator, NoOptionsMessage}}\r\n theme={(theme) => ({\r\n ...theme,\r\n border: '1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n colors: {\r\n ...theme.colors,\r\n primary: '#ABB3D1',\r\n },\r\n })}\r\n styles={{\r\n container: (baseStyles, state) => ({\r\n ...baseStyles,\r\n width: '90%',\r\n height: '70px',\r\n }),\r\n control: (baseStyles, state) => ({\r\n ...baseStyles,\r\n background: state.isFocused ? '#fff' : '#E9EAEE',\r\n height: '70px',\r\n width: '100%',\r\n }),\r\n menu: (baseStyles, state) => ({\r\n ...baseStyles,\r\n border: ' 1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n margin: '0',\r\n fontSize: '18px !important',\r\n }),\r\n option: (baseStyles, state) => ({\r\n ...baseStyles,\r\n backgroundColor: state.isFocused ? 'rgba(226, 228, 239, 0.5)' : \"white\",\r\n height: '80px',\r\n lineHeight: '20px',\r\n fontSize: '18px !important',\r\n }),\r\n singleValue: (baseSyles) => ({\r\n ...baseSyles,\r\n whiteSpace: 'normal',\r\n height: '57px',\r\n textAlign: 'left',\r\n fontSize: '18px',\r\n lineHeight: '20px',\r\n color: '#201E44',\r\n margin: '0 !important'\r\n }),\r\n }}\r\n />\r\n );\r\n },\r\n id: 'soilId',\r\n width: 22,\r\n getCellClassName: () => \"SpreadsheetGrid__cell_focused\"\r\n }, {\r\n title: 'Гумус\\n%',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'humus',\r\n width: 5,\r\n }, {\r\n title: 'pH',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n width: 5,\r\n id: 'pH'\r\n }, {\r\n title: 'Плотность\\nг/см³',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n width: 7,\r\n id: 'density'\r\n }, {\r\n title: 'Глубина\\nпах.\\nслоя, см',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n width: 6,\r\n id: 'depthSoil'\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\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 width: 5,\r\n id: 'unit_measurements'\r\n }, {\r\n title: 'N',\r\n value: (row, {focus}) => {\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 id: 'N',\r\n width: 5\r\n }, {\r\n title: 'P₂O₅',\r\n value: (row, {focus}) => {\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 id: 'P2O5',\r\n width: 5\r\n }, {\r\n title: 'K₂O',\r\n value: (row, {focus}) => {\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 id: 'K2O',\r\n width: 5\r\n }, {\r\n title: 'S',\r\n value: (row, {focus}) => {\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n )\r\n ;\r\n },\r\n id: 'S',\r\n width: 5\r\n }, {\r\n title: 'CaO',\r\n value: (row, {focus}) => {\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 id: 'caO',\r\n width: 5\r\n }, {\r\n title: 'Mg',\r\n value: (row, {focus}) => {\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 id: 'mg',\r\n width: 5\r\n }, {\r\n title: '',\r\n value: (row) => {\r\n return del_button(row.id);\r\n },\r\n id: 'button_remove',\r\n width: 0,\r\n getCellClassName: () => \"SpreadsheetGrid__cell_focused\"\r\n }\r\n ]\r\n\r\n this.setState({\r\n rows: rows,\r\n loading: false,\r\n columnsRegion: columnsRegion,\r\n columnsOneRegion: columnsOneRegion,\r\n check_cropwise: check_cropwise\r\n });\r\n }\r\n\r\n}\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAIjSURBVHgBtVVBThsxFP22BSpdsasiIXV6gqY7FKGpcwJ6g7YngBsQbtCeoO0N4ASYCCF2zQ3wAinABnYg0Nj85/HMJBOYBEZ5UvSt2P+/b8/zM9GSIZomz7VeX8uyHzz8SkJ0OSZxypL31hP9o8dH0zk7s68iQOH3zu3wcJeLrNP8LgcfhsP9F+amMdY6Ec4dld16b+qdXvd63UypriTa9kJ8i6nWPzz067sRDcWtd+5n5+TEUANmcmokcoqtWji6k/LLvOJAxxiLtchBrlhdPcIRzxBcpele0QUn9D8Zc1svdpmm5/jV/8da5CAXNd45tztFgG3yOQ8wxhafKx6RUKWkGRIcaSy6U+wi30GWaQRHdNgkuXkIR5qLopB3TsBf+nuI3h9QSwTFoVkhdElAUiYILL0RtYVSJhb+HCNofYKwYUxrAqgqDpOKYInICYSwCDe93kdqiQu+5XFoK4L8ktC9Un1qCcUWEgZshhWBc8cIhZraQEi5HepHNQWCO6X+cvFbPio93trS9EbgwnLnufmxOZYEuIV8yX7HDv5MesmiQE70MnS/X1zYUkX3Uv6i6CVrvPA1JOFhmnDUznA4KOZKguAllWF1OeH/eHMzqdWy8VcCR4q1yKFo15Pzizw4B7zlwyzLRhunp0FtgXhlRQdRREugRR6cKaI0HfDkHs0BxIHvhyN+zoUbH/2gCnba2GlCE48+G+OId3YMBTbY+/LxBDZ5D6utFR1IAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAL5SURBVHgBzVddTttAEJ5ZBwlVSOUI5gQNNwgPFX9GhBPADYB3ijeo79AbwAkIEjREPJAb1D1B3RukUlVasHe6f9442AmJ4op+EsKr3Zlvdnb+AvBKwEkP8svGYjK/UPcYbgPBIjDy9QZBnwR8FZRGHzc67Un1vUjMO2s+sbl9QNrThOO19aUlbUzTFl+/jccfHYPjuyBEAby4QzEQxlaDMqZeOMGAn7y/bsE0xOaWtcshhQQ9JGjB758R3+n1h87LZ4A3Cw0hqIkMd3P0EYp0p+z2WE46dy+F/IEwHvL16x5MACPvSXm08hijeFp5Tl57LmhuakiJ4NPJ2s0BTAFLsHR8G5whwr7SJQ1R3lvOn2P5RasbhGDda0ivR5J+6Gzsqb9R+0pW6TArrB93A57fd6627/rNrChurd4sjVLKO0FDBs+9VpCIZb75ORp1NuwGX7LLoEiWMpe7G5Pnhc4aka7AhEgYG5tiMisOs2+BNefBnKuxaSyg85dycBrooJQZoRkQdnUGZMRH3aCZFQdEcQUVQ6ehga5+jpiJXL7+euhB1ZivuRhgCE1HjAzeWdMKxaEK8JV2X1c7RQH41hEPajBWTuqQlVjbXBi8EjQxEX3XK0If/hVMMwES9MMRy1C2LiY/C/cqwe+bgw5GGDliRuAaeBbuVSJ5TBrZN2PpgFiHu27iAJ4HIVQMD2nbfvb5qplSNLEKdzm+XOgtgsaRrMVQEVQPkO7dM7rJedZFNaPkzFnI6BQqguntBkhpq0Cs6rMs6HYD6+Hd5szkYXfr1PV22XXzPWAoj2VB5/KfKW8CD2Yht6S2G1F0sqp1OxQmENkzd9zoosi7W83C6KKC8fEpNgrSOC+v4sNjoEhtdlCs5q4CD5SgdNhDOk8TcVX789ArG/b0zK0yQgbnYGeKYW/YgIDLSaMkvShyRYfUG6JfUCzUmw67d2JiQ77mC/A4evYXxDjIWkAJXDBMzmYa6AtGyIFByN6t2+igo8Wq/so+2y6buf87/AWTCGD0/yE+vgAAAABJRU5ErkJggg==\"","import React, {useEffect, useState} from 'react';\r\nimport '../style/Fields.css'\r\nimport {FieldTable} from \"../components/fields/FieldTable\";\r\nimport authService from \"../components/api-authorization/AuthorizeService\";\r\n\r\n\r\nconst Fields = () => {\r\n const [token, setToken] = useState('')\r\n useEffect(async () => {\r\n const token_resp = await authService.getAccessToken()\r\n await fetch('/api/Validator', {\r\n method: 'POST',\r\n headers: !token_resp ? {} : {'Authorization': `Bearer ${token_resp}`}\r\n })\r\n setToken(token_resp)\r\n }, [])\r\n\r\n return (token===''?<>:\r\n
\r\n \r\n
\r\n\r\n );\r\n};\r\n\r\nexport default Fields;","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAD4SURBVHgBrZQ7igJBEIb/mu19ROscwU03WeYIG+8DRARTTyCewPYGegNzBwTH3CPI4AX0BBoYGDRVTmsggjP09MwHRXfQfPxUdxchI07SvgA624bwgAhbwzzp/kdjms/XoVHBHtU5HA1/BCfPVA8I319eGwFqxkc46vx9ka06hFamiw6UEd7JZkk6rCJ8JNO+QmeZRaEI4kHnNxq7ygoTimBLuD14F1l+wizZs8HUULCKl6mVN11k+QlFNVqt6KAMf4MvIg1HcnrIepZsYERCkDRRgoJLYQ1Caer/y2/Z2MG1KtP++dwp2/x4se4J0VCEvEfZE3hk1zMfUVoMihhf6wAAAABJRU5ErkJggg==\"","/* eslint-disable */\r\nimport React, {Component} from 'react';\r\nimport Form from \"react-bootstrap/Form\";\r\nimport {Button, Modal} from \"react-bootstrap\";\r\nimport DataTable from \"react-data-table-component\";\r\nimport Select, {components, DropdownIndicatorProps} from \"react-select\";\r\nimport del from \"../../assets/icons/del.png\";\r\nimport edit from \"../../assets/icons/edit.png\";\r\nimport add from \"../../assets/icons/add.png\";\r\nimport arrow_up from \"../../assets/icons/dark_arrow_up.png\";\r\nimport arrow_down from \"../../assets/icons/dark_arrow_down.png\";\r\nimport {Typography} from \"@material-ui/core\";\r\n\r\nexport class OrganicTable extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n fertilizers: [],\r\n columns: [],\r\n save: -1,\r\n isModalShow: false,\r\n patterns: [],\r\n update: false,\r\n selectedPattern: '',\r\n patterns_list: [],\r\n isAdd: true,\r\n rowId: \"\",\r\n afterChange: false,\r\n row_save: {\r\n \"id\": 0,\r\n \"name\": \"\",\r\n \"consuming1\": {\"n\": 0, \"p2O5\": 0, \"k2O\": 0, \"s\": 0, \"caO\": 0, \"mg\": 0},\r\n \"consuming2\": {\"n\": 0, \"p2O5\": 0, \"k2O\": 0, \"s\": 0, \"caO\": 0, \"mg\": 0},\r\n \"price\": '0',\r\n 'userId': '',\r\n }\r\n };\r\n this.AddModal = this.AddModal.bind(this)\r\n this.checkRowStorage = this.checkRowStorage.bind(this)\r\n this.checkRowCalc = this.checkRowCalc.bind(this)\r\n this.handleChangeSelectFertilizer = this.handleChangeSelectFertilizer.bind(this)\r\n this.handleClickDelete = this.handleClickDelete.bind(this)\r\n }\r\n\r\n componentDidMount() {\r\n this.populateFertilizersData();\r\n }\r\n\r\n handleClickDelete(rowId) {\r\n fetch('api/fertilizerOrganic?id=' + rowId, {\r\n method: 'DELETE',\r\n headers: !this.props.token ? {} : {'Authorization': `Bearer ${this.props.token}`}\r\n }).then((response) => {\r\n if (response.ok) {\r\n response.json().then((result)=>{\r\n if(result.info === 'use'){\r\n this.props.setModal(false, 'Удобрение используется в расчетах и не может быть удалено')\r\n }else{\r\n this.state.fertilizers.splice(this.state.fertilizers.findIndex((r) => r.id === rowId), 1)\r\n this.props.setModal(true, 'Удобрение успешно удалено')\r\n this.forceUpdate()\r\n }\r\n })\r\n }else {\r\n this.props.setModal(false, 'Ошибка удаления удборения')\r\n }\r\n })\r\n }\r\n\r\n saveResponse = () => {\r\n this.setState({save: 0})\r\n fetch('api/fertilizerOrganic', {\r\n method: 'POST',\r\n headers: !this.props.token ? {} : {\r\n 'Authorization': `Bearer ${this.props.token}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(this.state.row_save)\r\n }).then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n this.setState({fertilizers: this.state.fertilizers.concat(result)})\r\n this.setState({save: 2, isModalShow: false, afterChange: false}, () => {\r\n this.forceUpdate()\r\n })\r\n });\r\n } else {\r\n this.setState({save: 1})\r\n }\r\n });\r\n }\r\n\r\n changeResponse = () => {\r\n this.setState({save: 0})\r\n fetch('api/fertilizerOrganic', {\r\n method: 'PUT',\r\n headers: !this.props.token ? {} : {\r\n 'Authorization': `Bearer ${this.props.token}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(this.state.row_save)\r\n }).then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n this.state.fertilizers.splice(this.state.fertilizers.findIndex((r) => r.id === result.id), 1, result)\r\n this.setState({save: 2, isModalShow: false, afterChange: true})\r\n })\r\n } else {\r\n this.setState({save: 1, isModalShow: false})\r\n }\r\n }\r\n )\r\n ;\r\n }\r\n\r\n handleChangeSelectFertilizer(e) {\r\n const fertilizer = this.state.patterns.find((f) => f.id === e.value)\r\n this.state.row_save.name = fertilizer.name\r\n this.state.row_save.consuming1 = fertilizer.consuming1\r\n this.state.row_save.consuming2 = fertilizer.consuming2\r\n this.state.row_save.price = fertilizer.price\r\n this.state.row_save.id = 1\r\n this.setState({selectedPattern: e.value})\r\n }\r\n\r\n checkRowStorage(row) {\r\n this.state.data.find((r) => r.id === row.id).inStorage = !row.inStorage\r\n }\r\n\r\n checkRowCalc(row) {\r\n this.state.data.find((r) => r.id === row.id).inUse = !row.inUse\r\n }\r\n\r\n AddModal(props, isAdd, rowId, afterChange) {\r\n if (this.state.patterns.length !== 0) {\r\n if (isAdd) {\r\n if (this.state.row_save.id === 0 || afterChange) {\r\n const fertilizer = this.state.patterns[0]\r\n this.state.row_save.name = fertilizer.name\r\n this.state.row_save.consuming1 = fertilizer.consuming1\r\n this.state.row_save.consuming2 = fertilizer.consuming2\r\n this.state.row_save.id = 0\r\n }\r\n } else {\r\n const fertilizer = this.state.fertilizers.find((row) => row.id === rowId)\r\n if (fertilizer) {\r\n this.state.row_save.id = fertilizer.id\r\n this.state.row_save.name = fertilizer.name\r\n this.state.row_save.consuming1 = fertilizer.consuming1\r\n this.state.row_save.consuming2 = fertilizer.consuming2\r\n this.state.row_save.price = fertilizer.price\r\n } else {\r\n const fertilizer = this.state.patterns[0]\r\n this.state.row_save.name = fertilizer.name\r\n this.state.row_save.consuming1 = fertilizer.consuming1\r\n this.state.row_save.consuming2 = fertilizer.consuming2\r\n this.state.row_save.id = 0\r\n }\r\n\r\n }\r\n }\r\n const DropdownIndicator = (props: DropdownIndicatorProps) => {\r\n return (\r\n \r\n arrow-down\r\n \r\n );\r\n };\r\n\r\n function NoOptionsMessage(props) {\r\n if (props.options.length) return null;\r\n return Нет полей;\r\n }\r\n\r\n let selected_fertilizer = this.state.patterns.length !== 0 ? isAdd ?\r\n this.state.patterns.find((f) => f.id === this.state.selectedPattern)\r\n : this.state.fertilizers.find((row) => row.id === rowId) : {consuming1: {}, consuming2: {}}\r\n if (!selected_fertilizer)\r\n selected_fertilizer = {consuming1: {}, consuming2: {}}\r\n return (\r\n this.setState({isModalShow: false, afterChange: !isAdd})}\r\n centered\r\n size=\"lg\"\r\n id=\"modal-add\">\r\n \r\n {isAdd ? \"Добавить органическое удобрение\" : \"Редактировать удобрение\"}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Шаблон удобрения\r\n ({\r\n ...theme,\r\n border: '1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n colors: {\r\n ...theme.colors,\r\n primary: '#ABB3D1',\r\n },\r\n })}\r\n styles={{\r\n container: (baseStyles, state) => ({\r\n ...baseStyles,\r\n width: '455px',\r\n height: '52px',\r\n }),\r\n control: (baseStyles, state) => ({\r\n ...baseStyles,\r\n background: state.isFocused ? '#fff' : '#E9EAEE',\r\n height: '52px',\r\n width: '455px',\r\n }),\r\n menu: (baseStyles, state) => ({\r\n ...baseStyles,\r\n border: ' 1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n margin: '0'\r\n }),\r\n input: (baseStyles, state) => ({\r\n ...baseStyles,\r\n height: '45px',\r\n }),\r\n option: (baseStyles, state) => ({\r\n ...baseStyles,\r\n color: '#201E44',\r\n height: '45px',\r\n backgroundColor: state.isFocused ? 'rgba(226, 228, 239, 0.5)' : \"white\",\r\n }),\r\n menuList: (baseStyles, state) => ({\r\n ...baseStyles,\r\n paddingRight: '13px !important',\r\n \"::-webkit-scrollbar\": {\r\n width: '3px !important'\r\n },\r\n \"::-webkit-scrollbar-track\": {\r\n background: '#E2E4EF !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb\": {\r\n background: ' #ABB3D1 !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb:hover\": {\r\n background: ' #ABB3D1 !important',\r\n }\r\n })\r\n }}\r\n id=\"fertilizer-type-select\"\r\n defaultValue={this.state.patterns_list.length !== 0 ?\r\n this.state.patterns_list.find((f) => f.label === selected_fertilizer.name)\r\n : \"\"}\r\n options={this.state.patterns_list}\r\n onChange={(e) => this.handleChangeSelectFertilizer(e)}\r\n />\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Наименование\r\n this.state.row_save.name = e.target.value}\r\n key={this.state.selectedPattern}\r\n />\r\n \r\n
\r\n
\r\n \r\n Цена, руб/т\r\n this.state.row_save.price = e.target.value}/>\r\n \r\n
\r\n
\r\n
\r\n Потребление растениями элементов питания, кг/т \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Год 1Год 2
\r\n
\r\n
\r\n \r\n N\r\n this.state.row_save.consuming1.n = e.target.value}\r\n key={this.state.selectedPattern}\r\n />\r\n \r\n
\r\n
\r\n \r\n P2O5\r\n this.state.row_save.consuming1.p2O5 = e.target.value}/>\r\n \r\n
\r\n
\r\n \r\n K2O\r\n this.state.row_save.consuming1.k2O = e.target.value}/>\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n N\r\n this.state.row_save.consuming2.n = e.target.value}\r\n key={this.state.selectedPattern}\r\n />\r\n \r\n
\r\n
\r\n \r\n P2O5\r\n this.state.row_save.consuming2.p2O5 = e.target.value}/>\r\n \r\n
\r\n
\r\n \r\n K2O\r\n this.state.row_save.consuming2.k2O = e.target.value}/>\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n render() {\r\n let contents = this.state.loading\r\n ?

Загрузка...

\r\n :\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
НаименованиеПотребление растениями элементов питания из органических удобрений,\r\n кг/т\r\n Цена,
руб/т
Год 1Год 2
NP2O5K2ONP2O5K2O
\r\n \r\n
\r\n return (\r\n
\r\n
Органические удобрения
\r\n {contents}\r\n
\r\n \r\n
\r\n {this.AddModal(this.state.isModalShow, this.state.isAdd, this.state.rowId, this.state.afterChange)}\r\n
\r\n );\r\n }\r\n\r\n async populateFertilizersData() {\r\n const token = this.props.token;\r\n const organic_fertilizers = this.props.organic_fertilizers\r\n const organic_pattern = this.props.organic_pattern\r\n const fertilizers = organic_fertilizers\r\n const patterns = organic_pattern\r\n const patterns_list = patterns.map((el) => ({value: el.id, label: el.name}))\r\n const columns = [\r\n {\r\n cell: (row) =>\r\n ,\r\n button: true,\r\n width: \"0\"\r\n }, {\r\n selector: row => row.name,\r\n sortable: true,\r\n width: \"27%\",\r\n wrap: true\r\n }, {\r\n selector: row => row.consuming1.n,\r\n width: \"11%\",\r\n center: true,\r\n compact: true,\r\n }, {\r\n selector: row => row.consuming1.p2O5,\r\n width: \"11%\",\r\n center: true,\r\n compact: true,\r\n }, {\r\n selector: row => row.consuming1.k2O,\r\n width: \"11%\",\r\n center: true,\r\n compact: true,\r\n }, {\r\n selector: row => row.consuming2.n,\r\n width: \"11%\",\r\n center: true,\r\n compact: true,\r\n }, {\r\n selector: row => row.consuming2.p2O5,\r\n width: \"11%\",\r\n center: true,\r\n compact: true,\r\n }, {\r\n selector: row => row.consuming2.k2O,\r\n width: \"11%\",\r\n center: true,\r\n compact: true,\r\n }, {\r\n selector: row => row.price,\r\n sortable: true,\r\n width: \"7%\",\r\n center: true,\r\n compact: true,\r\n }, {\r\n cell: (row) =>\r\n ,\r\n button: true,\r\n width: \"0\"\r\n }]\r\n\r\n this.setState({\r\n fertilizers: fertilizers,\r\n columns: columns,\r\n patterns: patterns,\r\n patterns_list: patterns_list,\r\n selectedPattern: patterns_list[0].value,\r\n }\r\n );\r\n }\r\n\r\n}\r\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","/* eslint-disable */\r\nimport React, {Component} from 'react';\r\nimport authService from \"../api-authorization/AuthorizeService\";\r\nimport Form from \"react-bootstrap/Form\";\r\nimport {Button, Modal, Row} from \"react-bootstrap\";\r\nimport DataTable from \"react-data-table-component\";\r\nimport Select, {components, DropdownIndicatorProps} from \"react-select\";\r\nimport {OrganicTable} from \"./OrganicTable\";\r\nimport del from \"../../assets/icons/del.png\";\r\nimport edit from \"../../assets/icons/edit.png\";\r\nimport add from \"../../assets/icons/add.png\";\r\nimport arrow_up from \"../../assets/icons/dark_arrow_up.png\";\r\nimport arrow_down from \"../../assets/icons/dark_arrow_down.png\";\r\nimport {Typography} from \"@material-ui/core\";\r\nimport success from '../../assets/icons/success.png'\r\nimport fail from '../../assets/icons/fail.png'\r\n\r\nexport class FertilizersTable extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n data: [],\r\n columns: [],\r\n save: -1,\r\n loading: true,\r\n isModalShow: false,\r\n stockCheckAll: false,\r\n message: '',\r\n calcCheckAll: false,\r\n base_fertilizer_list: [],\r\n base_fertilizers: [],\r\n selectedFertilizerType: \"\",\r\n fertilizer_type_list: [],\r\n update: false,\r\n organic_fertilizers: [],\r\n organic_pattern: [],\r\n isAdd: true,\r\n infoIcon: success,\r\n infoModalShow: false,\r\n rowId: \"\",\r\n row_save: {\r\n \"id\": 0,\r\n \"mineralFertilizerId\": \"\",\r\n \"manufacturer\": \"\",\r\n \"diler\": \"\",\r\n \"name\": \"\",\r\n \"type\": \"\",\r\n \"inStorage\": true,\r\n \"inUse\": true,\r\n \"formula\": \"\",\r\n \"price\": \"\",\r\n \"element\": {\"n\": 0, \"p2O5\": 0, \"k2O\": 0, \"s\": 0, \"caO\": 0, \"mg\": 0},\r\n \"userId\": \"\"\r\n },\r\n afterChange: false\r\n };\r\n this.handleChangeN = this.handleChangeN.bind(this)\r\n this.handleChangeName = this.handleChangeName.bind(this);\r\n this.handleChangeP2O5 = this.handleChangeP2O5.bind(this);\r\n this.handleChangeK2O = this.handleChangeK2O.bind(this);\r\n this.handleChangeS = this.handleChangeS.bind(this);\r\n this.handleChangeCa = this.handleChangeCa.bind(this);\r\n this.handleChangeMg = this.handleChangeMg.bind(this);\r\n this.handleChangePrice = this.handleChangePrice.bind(this);\r\n this.handleChangeProducer = this.handleChangeProducer.bind(this);\r\n this.handleChangeProvider = this.handleChangeProvider.bind(this);\r\n this.handleChangeFormula = this.handleChangeFormula.bind(this);\r\n this.handleChangeSelectFertilizer = this.handleChangeSelectFertilizer.bind(this)\r\n this.handleChangeSelectFertilizerType = this.handleChangeSelectFertilizerType.bind(this)\r\n this.AddModal = this.AddModal.bind(this)\r\n this.handleCheckStock = this.handleCheckStock.bind(this);\r\n //this.handleCheckCalc = this.handleCheckCalc.bind(this);\r\n this.checkRowStorage = this.checkRowStorage.bind(this)\r\n //this.checkRowCalc = this.checkRowCalc.bind(this)\r\n this.saveCheckbox = this.saveCheckbox.bind(this)\r\n this.handleClickDelete = this.handleClickDelete.bind(this)\r\n this.infoModal = this.infoModal.bind(this)\r\n this.checkAll = this.checkAll.bind(this)\r\n }\r\n\r\n componentDidMount() {\r\n this.populateFertilizersData();\r\n }\r\n\r\n handleClickDelete(rowId) {\r\n fetch('api/mineralFertilizer?id=' + rowId, {\r\n method: 'DELETE',\r\n headers: !this.props.token ? {} : {'Authorization': `Bearer ${this.props.token}`}\r\n }).then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n if (result.info === 'use') {\r\n this.setState({\r\n infoIcon: fail,\r\n message: 'Удобрение используется в расчетах и не может быть удалено'\r\n })\r\n } else {\r\n this.state.data.splice(this.state.data.findIndex((r) => r.id === rowId), 1)\r\n this.setState({infoIcon: success, message: 'Удобрение успешно удалено'})\r\n this.forceUpdate()\r\n }\r\n })\r\n } else {\r\n this.setState({infoIcon: fail, message: 'Ошибка удаления удборения'})\r\n }\r\n this.setState({infoModalShow: true})\r\n setTimeout(() => this.setState({infoModalShow: false}), 2000)\r\n });\r\n }\r\n\r\n handleChangeN(event) {\r\n this.state.row_save.element.n = event.target.value;\r\n }\r\n\r\n handleChangeFormula(event) {\r\n this.state.row_save.formula = event.target.value;\r\n }\r\n\r\n handleChangeP2O5(event) {\r\n this.state.row_save.element.p2O5 = event.target.value;\r\n }\r\n\r\n handleChangeK2O(event) {\r\n this.state.row_save.element.k2O = event.target.value;\r\n }\r\n\r\n handleChangeName(event) {\r\n this.state.row_save.name = event.target.value;\r\n }\r\n\r\n handleChangeS(event) {\r\n this.state.row_save.element.s = event.target.value;\r\n }\r\n\r\n handleChangeCa(event) {\r\n this.state.row_save.element.caO = event.target.value;\r\n }\r\n\r\n handleChangeMg(event) {\r\n this.state.row_save.element.mg = event.target.value;\r\n }\r\n\r\n handleChangeProvider(event) {\r\n this.state.row_save.diler = event.target.value;\r\n }\r\n\r\n handleChangeProducer(event) {\r\n this.state.row_save.manufacturer = event.target.value;\r\n }\r\n\r\n handleChangePrice(event) {\r\n this.state.row_save.price = event.target.value;\r\n document.getElementById('price-control').classList.remove(\"error\")\r\n }\r\n\r\n\r\n saveResponse = () => {\r\n const price = document.getElementById('price-control')\r\n if (price.value === '') {\r\n document.getElementById('price-control').classList.add(\"error\")\r\n } else {\r\n this.setState({save: 0})\r\n fetch('api/mineralFertilizer', {\r\n method: 'POST',\r\n headers: !this.props.token ? {} : {\r\n 'Authorization': `Bearer ${this.props.token}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(this.state.row_save)\r\n }).then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n this.setState({data: this.state.data.concat(result)})\r\n this.setState({save: 2, isModalShow: false, afterChange: false}, () => {\r\n this.forceUpdate()\r\n })\r\n });\r\n } else {\r\n this.setState({save: 1})\r\n }\r\n })\r\n }\r\n }\r\n\r\n\r\n changeResponse = () => {\r\n const price = document.getElementById('price-control')\r\n if (price.value === '') {\r\n document.getElementById('price-control').classList.add(\"error\")\r\n } else {\r\n this.setState({save: 0})\r\n fetch('api/mineralFertilizer', {\r\n method: 'PUT',\r\n headers: !this.props.token ? {} : {\r\n 'Authorization': `Bearer ${this.props.token}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(this.state.row_save)\r\n }).then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n this.state.data.splice(this.state.data.findIndex((r) => r.id === result.id), 1, result)\r\n this.setState({save: 2, isModalShow: false, afterChange: true})\r\n })\r\n } else {\r\n this.setState({save: 1, isModalShow: false})\r\n }\r\n }\r\n )\r\n }\r\n }\r\n\r\n\r\n infoModal(props) {\r\n return (\r\n this.setState({infoModalShow: false})}\r\n centered>\r\n \r\n success\r\n \r\n \r\n
{this.state.message}
\r\n
\r\n
\r\n );\r\n }\r\n\r\n\r\n checkAll(col) {\r\n let check = new Set()\r\n this.state.data.map((r) => {\r\n check.add(col === 'storage' ? r.inStorage : r.inUse)\r\n })\r\n if (check.size === 1 && check.has(true)) {\r\n if(col === 'storage'){\r\n this.setState({stockCheckAll: true})\r\n }else {\r\n this.setState({calcCheckAll: true})\r\n }\r\n } else{\r\n if(col === 'storage'){\r\n this.setState({stockCheckAll: false})\r\n }else {\r\n this.setState({calcCheckAll: false})\r\n }\r\n }\r\n\r\n }\r\n\r\n handleCheckStock() {\r\n this.state.data.map((item) => {\r\n item.inStorage = !this.state.stockCheckAll\r\n })\r\n this.setState({update: !this.state.update, stockCheckAll: !this.state.stockCheckAll})\r\n this.saveCheckbox()\r\n }\r\n\r\n // handleCheckCalc() {\r\n // this.state.data.map((item) => {\r\n // item.inUse = !this.state.calcCheckAll\r\n // })\r\n // this.setState({update: !this.state.update, calcCheckAll: !this.state.calcCheckAll})\r\n // this.saveCheckbox()\r\n // }\r\n\r\n handleChangeSelectFertilizer(e) {\r\n this.setState({selectedFertilizerType: e.value})\r\n const fertilizer = this.state.base_fertilizers.find((f) => f.id === e.value)\r\n this.state.row_save.name = fertilizer.name\r\n this.state.row_save.mineralFertilizerId = fertilizer.id\r\n this.state.row_save.formula = fertilizer.formula\r\n this.state.row_save.element = fertilizer.defaultElement\r\n this.state.row_save.type = fertilizer.defaultType\r\n this.state.row_save.id = 1\r\n }\r\n\r\n handleChangeSelectFertilizerType(e) {\r\n this.state.row_save.type = e.label\r\n }\r\n\r\n checkRowStorage(row) {\r\n this.state.data.find((r) => r.id === row.id).inStorage = !row.inStorage\r\n this.saveCheckbox()\r\n this.checkAll('storage')\r\n }\r\n\r\n // checkRowCalc(row) {\r\n // this.state.data.find((r) => r.id === row.id).inUse = !row.inUse\r\n // this.saveCheckbox()\r\n // this.checkAll('use')\r\n // }\r\n\r\n saveCheckbox() {\r\n this.setState({save: 0})\r\n fetch('api/mineralFertilizer/Checkbox', {\r\n method: 'PUT',\r\n headers: !this.props.token ? {} : {\r\n 'Authorization': `Bearer ${this.props.token}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(this.state.data)\r\n }).then((response) => {\r\n if (response.ok) {\r\n this.setState({save: 2})\r\n } else {\r\n this.setState({save: 1})\r\n }\r\n });\r\n }\r\n\r\n AddModal(props, isAdd, rowId, afterChange) {\r\n if (this.state.base_fertilizers.length !== 0) {\r\n if (isAdd) {\r\n if (this.state.row_save.id === 0 || afterChange) {\r\n const fertilizer = this.state.base_fertilizers[0]\r\n this.state.row_save.name = fertilizer.name\r\n this.state.row_save.mineralFertilizerId = fertilizer.id\r\n this.state.row_save.formula = fertilizer.formula\r\n this.state.row_save.element = fertilizer.defaultElement\r\n this.state.row_save.type = fertilizer.defaultType\r\n this.state.row_save.id = 0\r\n }\r\n } else {\r\n const fertilizer = this.state.data.find((row) => row.id === rowId)\r\n if (fertilizer) {\r\n this.state.row_save.id = fertilizer.id\r\n this.state.row_save.name = fertilizer.name\r\n this.state.row_save.mineralFertilizerId = fertilizer.mineralFertilizerId\r\n this.state.row_save.formula = fertilizer.formula\r\n this.state.row_save.element = fertilizer.element\r\n this.state.row_save.type = fertilizer.type\r\n this.state.row_save.manufacturer = fertilizer.manufacturer\r\n this.state.row_save.diler = fertilizer.diler\r\n this.state.row_save.price = fertilizer.price\r\n }\r\n }\r\n }\r\n const DropdownIndicator = (props: DropdownIndicatorProps) => {\r\n return (\r\n \r\n arrow-down\r\n \r\n );\r\n };\r\n\r\n function NoOptionsMessage(props) {\r\n if (props.options.length) return null;\r\n return Нет полей;\r\n }\r\n\r\n let selected_fertilizer = this.state.base_fertilizers.length !== 0 ? isAdd ?\r\n this.state.base_fertilizers.find(\r\n (f) => f.id === this.state.selectedFertilizerType)\r\n : this.state.data.find((row) => row.id === rowId) : {defaultElement: {}}\r\n if (selected_fertilizer) {\r\n\r\n } else {\r\n selected_fertilizer = isAdd ? {defaultElement: {}} : {element: {}}\r\n rowId = this.state.data[0].id\r\n }\r\n return (\r\n {\r\n this.setState({isModalShow: false, afterChange: !isAdd})\r\n }}\r\n centered\r\n size=\"lg\"\r\n id=\"modal-add\"\r\n >\r\n \r\n {isAdd ? \"Добавить минеральное удобрение\" : \"Редактировать минеральное удобрение\"}\r\n \r\n \r\n
\r\n
\r\n \r\n Наименование\r\n \r\n \r\n
\r\n
\r\n
\r\n {isAdd ? \r\n Вид удобрения\r\n ({\r\n ...theme,\r\n border: '1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n colors: {\r\n ...theme.colors,\r\n primary: '#ABB3D1',\r\n },\r\n })}\r\n styles={{\r\n container: (baseStyles, state) => ({\r\n ...baseStyles,\r\n width: '455px',\r\n height: '52px',\r\n }),\r\n control: (baseStyles, state) => ({\r\n ...baseStyles,\r\n background: state.isFocused ? '#fff' : '#E9EAEE',\r\n height: '52px',\r\n width: '455px',\r\n }),\r\n menu: (baseStyles, state) => ({\r\n ...baseStyles,\r\n border: ' 1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n margin: '0'\r\n }),\r\n input: (baseStyles, state) => ({\r\n ...baseStyles,\r\n height: '45px'\r\n }),\r\n option: (baseStyles, state) => ({\r\n ...baseStyles,\r\n color: '#201E44',\r\n height: '45px',\r\n backgroundColor: state.isFocused ? 'rgba(226, 228, 239, 0.5)' : \"white\",\r\n }),\r\n menuList: (baseStyles, state) => ({\r\n ...baseStyles,\r\n paddingRight: '13px !important',\r\n \"::-webkit-scrollbar\": {\r\n width: '3px !important'\r\n },\r\n \"::-webkit-scrollbar-track\": {\r\n background: '#E2E4EF !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb\": {\r\n background: ' #ABB3D1 !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb:hover\": {\r\n background: ' #ABB3D1 !important',\r\n }\r\n })\r\n }}\r\n id=\"fertilizer-mineral-select\"\r\n defaultValue={this.state.base_fertilizer_list.length !== 0 ?\r\n this.state.base_fertilizer_list.find((f) => f.label === selected_fertilizer.name)\r\n : \"\"}\r\n options={this.state.base_fertilizer_list}\r\n onChange={(e) => this.handleChangeSelectFertilizer(e)}\r\n />\r\n :\r\n
\r\n \r\n Вид удобрения\r\n row.id === rowId).mineralFertilizer.name : \"\"}/>\r\n \r\n
}\r\n
\r\n
\r\n \r\n Тип удобрения\r\n ({\r\n ...theme,\r\n border: '1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n colors: {\r\n ...theme.colors,\r\n primary: '#ABB3D1',\r\n },\r\n })}\r\n styles={{\r\n container: (baseStyles, state) => ({\r\n ...baseStyles,\r\n width: '455px',\r\n height: '52px',\r\n }),\r\n control: (baseStyles, state) => ({\r\n ...baseStyles,\r\n background: state.isFocused ? '#fff' : '#E9EAEE',\r\n height: '52px',\r\n width: '455px',\r\n }),\r\n menu: (baseStyles, state) => ({\r\n ...baseStyles,\r\n border: ' 1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n margin: '0'\r\n }),\r\n input: (baseStyles, state) => ({\r\n ...baseStyles,\r\n height: '45px'\r\n }),\r\n option: (baseStyles, state) => ({\r\n ...baseStyles,\r\n color: '#201E44',\r\n height: '45px',\r\n backgroundColor: state.isFocused ? 'rgba(226, 228, 239, 0.5)' : \"white\",\r\n }),\r\n menuList: (baseStyles, state) => ({\r\n ...baseStyles,\r\n paddingRight: '13px !important',\r\n \"::-webkit-scrollbar\": {\r\n width: '3px !important'\r\n },\r\n \"::-webkit-scrollbar-track\": {\r\n background: '#E2E4EF !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb\": {\r\n background: ' #ABB3D1 !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb:hover\": {\r\n background: ' #ABB3D1 !important',\r\n }\r\n })\r\n }}\r\n id=\"fertilizer-type-select\"\r\n defaultValue={this.state.base_fertilizers.length !== 0 ? isAdd ?\r\n this.state.fertilizer_type_list.find((f) => f.label === selected_fertilizer.defaultType) :\r\n this.state.fertilizer_type_list.find((f) => f.label === selected_fertilizer.type)\r\n : \"\"}\r\n key={this.state.selectedFertilizerType}\r\n options={this.state.fertilizer_type_list}\r\n onChange={(e) => this.handleChangeSelectFertilizerType(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 N\r\n \r\n \r\n
\r\n
\r\n \r\n P2O5\r\n \r\n \r\n
\r\n
\r\n \r\n K2O\r\n \r\n \r\n
\r\n
\r\n \r\n S\r\n \r\n \r\n
\r\n
\r\n \r\n CaO\r\n \r\n \r\n
\r\n
\r\n \r\n Mg\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n render() {\r\n let contents = this.state.loading\r\n ?

Загрузка...

\r\n :\r\n
\r\n
Минеральные удобрения
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/**/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
НаименованиеФормулаСодержание элементов в удобрении (д.в.)ПроизводительПоставщикЦена, руб/тСклад\r\n
\r\n \r\n
\r\n
Использ. в расчетах*/}\r\n {/*
*/}\r\n {/* */}\r\n {/*
*/}\r\n {/*
NP2O5K2OSCaOMg
\r\n \r\n
\r\n \r\n
\r\n {this.AddModal(this.state.isModalShow, this.state.isAdd, this.state.rowId, this.state.afterChange)}\r\n this.setState({\r\n infoIcon: icon ? success : fail,\r\n message: message,\r\n infoModalShow: true\r\n })}\r\n >\r\n\r\n
\r\n\r\n return (\r\n
\r\n Удобрения\r\n {contents}\r\n {this.infoModal(this.state.infoModalShow)}\r\n
\r\n );\r\n }\r\n\r\n async populateFertilizersData() {\r\n const fertilizers_list = await fetch('api/mineralFertilizer/baseMineralFertilizer', {\r\n headers: !this.props.token ? {} : {'Authorization': `Bearer ${this.props.token}`}\r\n });\r\n const fertilizers = await fetch('api/mineralFertilizer', {\r\n headers: !this.props.token ? {} : {'Authorization': `Bearer ${this.props.token}`}\r\n });\r\n const organic_fertilizers = await fetch('api/fertilizerOrganic', {\r\n headers: !this.props.token ? {} : {'Authorization': `Bearer ${this.props.token}`}\r\n });\r\n const organic_pattern = await fetch('api/fertilizerOrganic/ListOrganicPattern', {\r\n headers: !this.props.token ? {} : {'Authorization': `Bearer ${this.props.token}`}\r\n });\r\n const base_fertilizers = await fertilizers_list.json()\r\n const base_fertilizer_list = base_fertilizers.map((item) => (\r\n {value: item.id, label: item.name}\r\n ))\r\n const data = await fertilizers.json()\r\n\r\n const fertilizer_type_list = [\r\n {value: 1, label: \"Азотное\"},\r\n {value: 2, label: \"Фосфорное\"},\r\n {value: 3, label: \"Калийное\"},\r\n {value: 4, label: \"Известковое\"},\r\n {value: 5, label: \"Комплексное\"},\r\n ]\r\n const columns = [\r\n {\r\n cell: (row) => ,\r\n button: true,\r\n width: \"0%\"\r\n }, {\r\n selector: row => row.name,\r\n sortable: true,\r\n width: \"19%\",\r\n compact: false,\r\n wrap: true\r\n }, {\r\n selector: row => row.formula,\r\n center: true,\r\n compact: true,\r\n width: \"10%\"\r\n\r\n }, {\r\n selector: row => row.element.n,\r\n width: \"6%\",\r\n compact: true,\r\n center: true,\r\n }, {\r\n selector: row => row.element.p2O5,\r\n width: \"6%\",\r\n compact: true,\r\n center: true,\r\n }, {\r\n selector: row => row.element.k2O,\r\n width: \"6%\",\r\n compact: true,\r\n center: true,\r\n }, {\r\n selector: row => row.element.s,\r\n width: \"6%\",\r\n center: true,\r\n }, {\r\n selector: row => row.element.caO,\r\n width: \"6%\",\r\n compact: true,\r\n center: true,\r\n }, {\r\n selector: row => row.element.mg,\r\n width: \"6%\",\r\n compact: true,\r\n center: true,\r\n }, {\r\n selector: row => row.manufacturer,\r\n sortable: true,\r\n width: \"11%\",\r\n compact: true,\r\n center: true,\r\n }, {\r\n selector: row => row.diler,\r\n sortable: true,\r\n compact: true,\r\n width: \"11%\",\r\n center: true,\r\n }, {\r\n selector: row => row.price,\r\n sortable: true,\r\n compact: true,\r\n width: \"7%\",\r\n center: true,\r\n }, {\r\n cell: (row) =>\r\n ,\r\n width: \"6%\",\r\n center: true,\r\n },\r\n // {\r\n // cell: (row) =>\r\n // ,\r\n // width: \"7%\",\r\n // center: true,\r\n // },\r\n {\r\n cell: (row) => ,\r\n button: true,\r\n width: \"0\",\r\n center: true,\r\n }]\r\n\r\n\r\n this.setState({\r\n data: data,\r\n columns: columns,\r\n loading: false,\r\n base_fertilizer_list: base_fertilizer_list,\r\n base_fertilizers: base_fertilizers,\r\n selectedFertilizerType: base_fertilizer_list[0].value,\r\n fertilizer_type_list: fertilizer_type_list,\r\n organic_fertilizers: await organic_fertilizers.json(),\r\n organic_pattern: await organic_pattern.json()\r\n }, () => {\r\n this.checkAll('storage')\r\n this.checkAll('use')\r\n }\r\n )\r\n }\r\n\r\n}\r\n","import React, {useEffect, useState} from 'react';\r\nimport {FertilizersTable} from \"../components/Fertilizers/FertilizersTable\";\r\nimport \"../style/Fertilizers.css\"\r\nimport authService from \"../components/api-authorization/AuthorizeService\";\r\n\r\nconst Fertilizers = () => {\r\n const [token, setToken] = useState('')\r\n useEffect(async () => {\r\n const token_resp = await authService.getAccessToken()\r\n await fetch('/api/Validator', {\r\n method: 'POST',\r\n headers: !token_resp ? {} : {'Authorization': `Bearer ${token_resp}`}\r\n })\r\n setToken(token_resp)\r\n }, [])\r\n return (token===''?<>:\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Fertilizers;","import React, {Component} from 'react';\r\nimport {Input, Grid} from 'react-spreadsheet-grid';\r\nimport set from 'lodash.set';\r\nimport {Collapse} from 'react-collapse';\r\nimport Select, {components, DropdownIndicatorProps} from 'react-select';\r\nimport {Button} from \"react-bootstrap\";\r\nimport arrow_up from \"../../assets/icons/dark_arrow_up.png\";\r\nimport arrow_down from \"../../assets/icons/dark_arrow_down.png\";\r\nimport del from '../../assets/icons/del.png'\r\nimport add from '../../assets/icons/add.png'\r\nimport {Typography} from \"@material-ui/core\";\r\nimport { IMaskInput } from \"react-imask\";\r\n\r\n\r\nexport class FieldsTable extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n columns: [],\r\n columnsRegion: [],\r\n isAreaRight: true,\r\n };\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.populateFieldsData();\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (prevProps.field !== this.props.field) {\r\n this.checkSumArea();\r\n }\r\n }\r\n\r\n addRowRegion = (rowId) => {\r\n fetch('api/region?fieldId=' + rowId, {\r\n method: 'POST',\r\n headers: !this.props.token ? {} : {'Authorization': `Bearer ${this.props.token}`},\r\n }).then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n let row = this.props.field.find((row) => {\r\n return row.id === rowId;\r\n });\r\n row.regions = row.regions.concat(result)\r\n this.props.onFieldChange();\r\n })\r\n }\r\n });\r\n }\r\n\r\n removeRowRegion = (rowId) => {\r\n fetch('api/region?id=' + rowId, {\r\n method: 'DELETE',\r\n headers: !this.props.token ? {} : {'Authorization': `Bearer ${this.props.token}`}\r\n }).then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n let row = this.props.field.find((row) => {\r\n return row.id === result;\r\n });\r\n row.regions = row.regions.filter(e => e.id !== rowId)\r\n this.props.onFieldChange();\r\n this.checkSumArea()\r\n })\r\n }\r\n });\r\n }\r\n\r\n static renderTable(columns, rows, addRow, columnsRegion, expand, isExpand, isReport) {\r\n const tableField = rows ? rows.map((row) => (\r\n <>\r\n
\r\n row.id}\r\n isScrollable={false}\r\n disabledCellChecker={(row, columnId) => {\r\n return columnId === 'name'\r\n }}\r\n />\r\n
Площадь поля не совпадает с суммой площади участков
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n row.id}\r\n isScrollable={false}\r\n disabledCellChecker={(row, columnId) => {\r\n return columnId === 'soilId' || columnId === 'button_remove' || columnId==='dateAnalyse';\r\n }}\r\n />\r\n
\r\n {!isReport?\r\n
\r\n \r\n
:<>}\r\n
\r\n \r\n )\r\n ) : []\r\n\r\n return (<>{tableField});\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n FieldsTable.renderTable(\r\n this.state.columns,\r\n this.props.field,\r\n this.addRowRegion,\r\n this.state.columnsRegion,\r\n this.props.changeExpand,\r\n this.props.expand,\r\n this.props.isReport)\r\n );\r\n\r\n }\r\n\r\n checkSumArea = () => {\r\n let sum_area = 0\r\n if (this.props.field && this.props.field.length !== 0) {\r\n // eslint-disable-next-line array-callback-return\r\n this.props.field[0].regions.map((region) => {\r\n sum_area += Number(region.area);\r\n })\r\n if (sum_area !== Number(this.props.field[0].area)) {\r\n this.setState({isAreaRight: false}, () => {\r\n document.getElementById(\"field-area\").className = \"area-input\";\r\n document.getElementById('error-label').className = 'error-label'\r\n });\r\n } else {\r\n this.setState({isAreaRight: true}, () => {\r\n document.getElementById(\"field-area\").className = \"area-input-true\";\r\n document.getElementById('error-label').className = 'no-error-label'\r\n });\r\n return true\r\n }\r\n }\r\n\r\n }\r\n\r\n async populateFieldsData() {\r\n const numberFormat = new Intl.NumberFormat('ru-RU')\r\n\r\n function formatCell(value) {\r\n return value ? numberFormat.format(value.toString().replace(',', '.')).replace(',', '.') : 0\r\n }\r\n\r\n const soils_list = this.props.soil_list;\r\n this.checkSumArea();\r\n const onFieldChange = (rowId, field) => (value1) => {\r\n let value = Number(value1.replace(/\\s/g, \"\").replace(',', '.'))\r\n const modifiedRows = [].concat(this.props.field);\r\n const row = modifiedRows.find((row) => {\r\n return row.id === rowId;\r\n });\r\n set(row, field, value);\r\n this.checkSumArea();\r\n this.props.onFieldChange()\r\n }\r\n const onDateChange=(rowId, value)=>{\r\n const rowRegion = this.props.field[0].regions.find((row) => {\r\n return row.id === rowId;\r\n });\r\n set(rowRegion, 'dateAnalyse', value);\r\n this.props.onFieldChange();\r\n }\r\n const onRegionChange = (rowId, field) => (value1) => {\r\n let value = (field === 'dateAnalyse' || field === 'name') ? value1 : Number(value1.replace(/\\s/g, \"\").replace(',', '.'))\r\n const rowRegion = this.props.field[0].regions.find((row) => {\r\n return row.id === rowId;\r\n });\r\n set(rowRegion, field, value);\r\n this.checkSumArea();\r\n this.props.onFieldChange();\r\n }\r\n const onSelectChange = (rowId, field) => (value) => {\r\n const rowRegion = this.props.field[0].regions.find((row) => {\r\n return row.id === rowId;\r\n });\r\n rowRegion.soil = this.props.soil.find((s) => {\r\n return s.id === value.value;\r\n\r\n })\r\n set(rowRegion, field, value.value);\r\n this.checkSumArea();\r\n this.props.onFieldChange();\r\n }\r\n const onSelectFieldChange = (rowId, field) => (value) => {\r\n const modifiedRows = [].concat(this.props.field);\r\n const row = modifiedRows.find((row) => {\r\n return row.id === rowId;\r\n });\r\n set(row, field, value.value);\r\n this.props.changeField(value.value)\r\n }\r\n\r\n const DropdownIndicator = (props: DropdownIndicatorProps) => {\r\n return (\r\n \r\n arrow-down\r\n \r\n );\r\n };\r\n\r\n function NoOptionsMessage(props) {\r\n if (props.options.length) return null;\r\n return Нет данных;\r\n }\r\n\r\n const del_button = (id) => {\r\n return ()\r\n }\r\n const columns = [\r\n {\r\n title: 'Наименование поля',\r\n value: (row, {focus}) => {\r\n return (this.props.isReport?\r\n :\r\n ({\r\n ...theme,\r\n border: '1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n colors: {\r\n ...theme.colors,\r\n primary: '#ABB3D1',\r\n },\r\n })}\r\n styles={{\r\n container: (baseStyles, state) => ({\r\n ...baseStyles,\r\n width: '95%',\r\n height: '52px',\r\n }),\r\n control: (baseStyles, state) => ({\r\n ...baseStyles,\r\n background: state.isFocused ? '#fff' : '#E9EAEE',\r\n height: '52px',\r\n width: '100%',\r\n }),\r\n menu: (baseStyles, state) => ({\r\n ...baseStyles,\r\n border: ' 1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n margin: '0',\r\n }),\r\n option: (baseStyles, state) => ({\r\n ...baseStyles,\r\n height: '45px',\r\n backgroundColor: state.isFocused ? 'rgba(226, 228, 239, 0.5)' : \"white\",\r\n }),\r\n menuList: (baseStyles, state) => ({\r\n ...baseStyles,\r\n paddingRight: '13px !important',\r\n \"::-webkit-scrollbar\":{\r\n width: '3px !important'\r\n },\r\n \"::-webkit-scrollbar-track\": {\r\n background: '#E2E4EF !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb\":{\r\n background: ' #ABB3D1 !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb:hover\":{\r\n background: ' #ABB3D1 !important',\r\n }\r\n })\r\n }}\r\n defaultValue={this.props.fields_name.find((r) => r.label === row.name)}\r\n onChange={onSelectFieldChange()}\r\n />\r\n )\r\n },\r\n id: 'name',\r\n getCellClassName: () => this.props.isReport?'':\"SpreadsheetGrid__cell_focused\"\r\n }, {\r\n title: 'Площадь, га',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n {/* eslint-disable-next-line eqeqeq */}\r\n
\r\n \r\n
\r\n
\r\n );\r\n },\r\n id: 'area',\r\n }\r\n ]\r\n\r\n const columnsRegion = [\r\n {\r\n title: 'Дата анализа',\r\n value: (row, {focus}) => {\r\n return (\r\n onDateChange(row.id, value)}\r\n placeholder=\"00.00.0000\"\r\n />\r\n );\r\n },\r\n id: 'dateAnalyse',\r\n width: 9,\r\n getCellClassName: () => \"SpreadsheetGrid__cell_focused\"\r\n }, {\r\n title: 'Наим.\\nэл. уч.',\r\n value: (row, {focus}) => {\r\n return (\r\n \r\n );\r\n },\r\n id: 'name',\r\n width: 7,\r\n }, {\r\n title: 'Площадь, га',\r\n value: (row, {focus}) => {\r\n return (\r\n // eslint-disable-next-line eqeqeq\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'area',\r\n width: 8,\r\n }, {\r\n title: 'Тип почвы',\r\n value: (row, {focus}) => {\r\n return (\r\n ({\r\n ...theme,\r\n border: '1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n colors: {\r\n ...theme.colors,\r\n primary: '#ABB3D1',\r\n },\r\n })}\r\n styles={{\r\n container: (baseStyles, state) => ({\r\n ...baseStyles,\r\n width: '90%',\r\n height: '70px',\r\n }),\r\n control: (baseStyles, state) => ({\r\n ...baseStyles,\r\n background: state.isFocused ? '#fff' : '#E9EAEE',\r\n height: '70px',\r\n width: '100%',\r\n }),\r\n menu: (baseStyles, state) => ({\r\n ...baseStyles,\r\n border: ' 1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n margin: '0'\r\n }),\r\n option: (baseStyles, state) => ({\r\n ...baseStyles,\r\n backgroundColor: state.isFocused ? 'rgba(226, 228, 239, 0.5)' : \"white\",\r\n height: '80px',\r\n lineHeight: '20px'\r\n }),\r\n singleValue: (baseSyles) => ({\r\n ...baseSyles,\r\n whiteSpace: 'normal',\r\n height: '60px',\r\n display: 'flex',\r\n alignContent: 'center',\r\n alignItems:'center',\r\n verticalAlign: 'middle',\r\n textAlign: 'left',\r\n lineHeight: '18px'\r\n }),\r\n menuList: (baseStyles, state) => ({\r\n ...baseStyles,\r\n paddingRight: '13px !important',\r\n \"::-webkit-scrollbar\":{\r\n width: '3px !important'\r\n },\r\n \"::-webkit-scrollbar-track\": {\r\n background: '#E2E4EF !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb\":{\r\n background: ' #ABB3D1 !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb:hover\":{\r\n background: ' #ABB3D1 !important',\r\n }\r\n })\r\n\r\n }}\r\n options={soils_list}\r\n defaultValue={soils_list[soils_list.findIndex((r) => r.value === row.soilId)]}\r\n onChange={onSelectChange(row.id, 'soilId')}\r\n />\r\n );\r\n },\r\n id: 'soilId',\r\n width: 28,\r\n getCellClassName: () => \"SpreadsheetGrid__cell_focused\"\r\n }, {\r\n title: 'Гумус,\\n%',\r\n value: (row, {focus}) => {\r\n return (\r\n // eslint-disable-next-line eqeqeq\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'humus',\r\n width: 6,\r\n }, {\r\n title: 'pH',\r\n value: (row, {focus}) => {\r\n return (\r\n // eslint-disable-next-line eqeqeq\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'pH',\r\n width: 6,\r\n }, {\r\n title: 'N,\\nкг/га',\r\n value: (row, {focus}) => {\r\n return (\r\n // eslint-disable-next-line eqeqeq\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'N',\r\n width: 6,\r\n }, {\r\n title: 'P₂O₅,\\nкг/га',\r\n value: (row, {focus}) => {\r\n return (\r\n // eslint-disable-next-line eqeqeq\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'P2O5',\r\n width: 6,\r\n }, {\r\n title: 'K₂O,\\nкг/га',\r\n value: (row, {focus}) => {\r\n return (\r\n // eslint-disable-next-line eqeqeq\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'K2O',\r\n width: 6,\r\n }, {\r\n title: 'S,\\nкг/га',\r\n value: (row, {focus}) => {\r\n return (\r\n // eslint-disable-next-line eqeqeq\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'S',\r\n width: 6,\r\n }, {\r\n title: 'CaO,\\nкг/га',\r\n value: (row, {focus}) => {\r\n return (\r\n // eslint-disable-next-line eqeqeq\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'caO',\r\n width: 6,\r\n }, {\r\n title: 'Mg,\\nкг/га',\r\n value: (row, {focus}) => {\r\n return (\r\n // eslint-disable-next-line eqeqeq\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'mg',\r\n width: 5.9,\r\n }, {\r\n title: '',\r\n value: (row) => {\r\n return this.props.isReport?<>:del_button(row.id);\r\n },\r\n id: 'button_remove',\r\n width: 0,\r\n getCellClassName: () => \"SpreadsheetGrid__cell_focused\"\r\n }\r\n ]\r\n\r\n this.setState({columns: columns, columnsRegion: columnsRegion});\r\n }\r\n\r\n}\r\n","import React, {Component} from 'react';\r\nimport {Input, Grid} from 'react-spreadsheet-grid';\r\nimport set from 'lodash.set';\r\nimport authService from \"../api-authorization/AuthorizeService\";\r\nimport Select, {components, DropdownIndicatorProps} from 'react-select';\r\nimport {Button, Form} from \"react-bootstrap\";\r\nimport {Collapse} from \"react-collapse\";\r\nimport arrow_up from \"../../assets/icons/dark_arrow_up.png\";\r\nimport arrow_down from \"../../assets/icons/dark_arrow_down.png\";\r\nimport {Typography} from \"@material-ui/core\";\r\n\r\nexport class PredecessorTable extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n columnsRegion: [],\r\n };\r\n this.handleChangeSelectCrops = this.handleChangeSelectCrops.bind(this)\r\n this.handleChangeSelectFertilizer = this.handleChangeSelectFertilizer.bind(this)\r\n this.handleChangeYieldFact = this.handleChangeYieldFact.bind(this)\r\n }\r\n\r\n componentDidMount() {\r\n this.populateFieldsData();\r\n }\r\n\r\n handleChangeSelectCrops(e) {\r\n // eslint-disable-next-line array-callback-return\r\n this.props.field[0].regions.map((region) => {\r\n region.residue.cropId = e.value;\r\n });\r\n this.props.onPredecessorChange(true);\r\n }\r\n\r\n handleChangeSelectFertilizer(e) {\r\n // eslint-disable-next-line array-callback-return\r\n this.props.field[0].regions.map((region) => {\r\n region.residue.fertilizerOrganicId = e.value;\r\n region.residue.fertilizerOrganic = this.props.fertilizers.find((f) => {\r\n return f.id === e.value;\r\n })\r\n });\r\n this.props.onPredecessorChange(true);\r\n }\r\n\r\n handleChangeYieldFact(e) {\r\n if (e.key === 'Enter') {\r\n // eslint-disable-next-line array-callback-return\r\n this.props.field[0].regions.map((region) => {\r\n region.residue.yield = e.target.value;\r\n })\r\n this.props.onPredecessorChange(true);\r\n }\r\n }\r\n\r\n\r\n static renderTable(columns, field, crop_list, fertilizers_organic_list, addRow, columnsRegion, handleChangeSelectCrops, handleChangeYieldFact, handleChangeSelectFertilizer, expand, isExpand) {\r\n let row = field.length !== 0 ? field[0].regions : [];\r\n const DropdownIndicator = (props: DropdownIndicatorProps) => {\r\n return (\r\n \r\n arrow-down\r\n \r\n );\r\n };\r\n\r\n function NoOptionsMessage(props) {\r\n if (props.options.length) return null;\r\n return Нет данных;\r\n }\r\n\r\n return (\r\n row.length !== 0 ?\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Наим.
эл. уч.\r\n
Площадь, га\r\n КультураФакт. урож.,ц/гаОрг. удобрения внесенные под предшественникКол-во мин. удобрений внесенных под предшественник, д.в. кг/га
\r\n ({\r\n ...theme,\r\n border: '1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n colors: {\r\n ...theme.colors,\r\n primary: '#ABB3D1',\r\n },\r\n })}\r\n styles={{\r\n container: (baseStyles, state) => ({\r\n ...baseStyles,\r\n width: '90%',\r\n margin: '0 auto',\r\n height: '45px',\r\n }),\r\n control: (baseStyles, state) => ({\r\n ...baseStyles,\r\n background: state.isFocused ? '#fff' : '#E9EAEE',\r\n height: '45px',\r\n width: '100%',\r\n }),\r\n menu: (baseStyles, state) => ({\r\n ...baseStyles,\r\n border: ' 1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n margin: '0',\r\n }),\r\n option: (baseStyles, state) => ({\r\n ...baseStyles,\r\n color: '#201E44',\r\n minHeight: '45px',\r\n height: 'fit-content',\r\n overflow: 'hidden',\r\n wordWrap: 'break-word',\r\n lineHeight: '22px',\r\n backgroundColor: state.isFocused ? 'rgba(226, 228, 239, 0.5)' : \"white\",\r\n }),\r\n menuList: (baseStyles, state) => ({\r\n ...baseStyles,\r\n paddingRight: '13px !important',\r\n \"::-webkit-scrollbar\":{\r\n width: '3px !important'\r\n },\r\n \"::-webkit-scrollbar-track\": {\r\n background: '#E2E4EF !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb\":{\r\n background: ' #ABB3D1 !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb:hover\":{\r\n background: ' #ABB3D1 !important',\r\n }\r\n })\r\n }}\r\n options={crop_list}\r\n placeholder='Выберите культуру'\r\n defaultValue={crop_list[crop_list.findIndex((r) => r.value === row[0].residue.cropId)]}\r\n onChange={handleChangeSelectCrops}\r\n />\r\n \r\n
\r\n \r\n \r\n
\r\n ({\r\n ...theme,\r\n border: '1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n colors: {\r\n ...theme.colors,\r\n primary: '#ABB3D1',\r\n },\r\n })}\r\n styles={{\r\n container: (baseStyles, state) => ({\r\n ...baseStyles,\r\n margin: '0 auto',\r\n width: '90%',\r\n height: '45px',\r\n }),\r\n control: (baseStyles, state) => ({\r\n ...baseStyles,\r\n background: state.isFocused ? '#fff' : '#E9EAEE',\r\n height: '45px',\r\n width: '100%',\r\n }),\r\n menu: (baseStyles, state) => ({\r\n ...baseStyles,\r\n border: ' 1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n margin: '0',\r\n }),\r\n option: (baseStyles, state) => ({\r\n ...baseStyles,\r\n overflow: \"hidden\",\r\n height: 'fit-content',\r\n minHeight: '45px',\r\n wordWrap: 'break-word',\r\n lineHeight: '22px',\r\n backgroundColor: state.isFocused ? 'rgba(226, 228, 239, 0.5)' : \"white\",\r\n }),\r\n menuList: (baseStyles, state) => ({\r\n ...baseStyles,\r\n paddingRight: '13px !important',\r\n \"::-webkit-scrollbar\":{\r\n width: '3px !important'\r\n },\r\n \"::-webkit-scrollbar-track\": {\r\n background: '#E2E4EF !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb\":{\r\n background: ' #ABB3D1 !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb:hover\":{\r\n background: ' #ABB3D1 !important',\r\n }\r\n })\r\n }}\r\n placeholder='Выберите удобрение'\r\n defaultValue={fertilizers_organic_list[fertilizers_organic_list.findIndex((r) => r.value === row[0].residue.fertilizerOrganicId)]}\r\n options={fertilizers_organic_list}\r\n onChange={handleChangeSelectFertilizer}\r\n />\r\n Кол-во,
т/га
N
P₂O₅
K₂O
S
CaO
Mg
\r\n
\r\n row.id}\r\n isScrollable={false}\r\n disabledCellChecker={(row, columnId) => {\r\n return columnId === 'button_remove' || columnId === 'cropId' || columnId === 'organic';\r\n }}\r\n />\r\n
\r\n
\r\n
\r\n\r\n
:
\r\n );\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n PredecessorTable.renderTable(\r\n this.state.columns,\r\n this.props.field,\r\n this.props.crop_list,\r\n this.props.fertilizer_organic_list,\r\n this.addRowRegion,\r\n this.state.columnsRegion,\r\n this.handleChangeSelectCrops,\r\n this.handleChangeYieldFact,\r\n this.handleChangeSelectFertilizer,\r\n this.props.changeExpand,\r\n this.props.expand)\r\n );\r\n }\r\n\r\n async populateFieldsData() {\r\n const numberFormat = new Intl.NumberFormat('ru-RU')\r\n\r\n function formatCell(value) {\r\n return value ? numberFormat.format(value.toString().replace(',', '.')).replace(',', '.') : 0\r\n }\r\n\r\n const token = await authService.getAccessToken();\r\n const crops_list = this.props.crop_list;\r\n const fertilizers_organic_list = this.props.fertilizer_organic_list;\r\n\r\n const onRegionChange = (rowId, field) => (value1) => {\r\n let value = Number(value1.replace(/\\s/g, \"\").replace(',', '.'))\r\n const rowRegion = this.props.field[0].regions.find((row) => {\r\n return row.id === rowId;\r\n });\r\n set(rowRegion, field, value);\r\n this.props.onPredecessorChange(false);\r\n }\r\n\r\n const onCropChange = (rowId, field) => (value) => {\r\n const row = this.props.field[0].regions.find((row) => {\r\n return row.id === rowId;\r\n })\r\n set(row, field, value.value);\r\n this.props.onPredecessorChange(false);\r\n }\r\n\r\n const onFertilizerChange = (rowId, field) => (value) => {\r\n const row = this.props.field[0].regions.find((row) => {\r\n return row.id === rowId;\r\n });\r\n row.residue.fertilizerOrganic = this.props.fertilizers.find((f) => {\r\n return f.id === value.value;\r\n })\r\n set(row, field, value.value);\r\n this.props.onPredecessorChange(false);\r\n }\r\n\r\n const DropdownIndicator = (props: DropdownIndicatorProps) => {\r\n return (\r\n \r\n arrow-down\r\n \r\n );\r\n };\r\n\r\n function NoOptionsMessage(props) {\r\n if (props.options.length) return null;\r\n return Нет данных;\r\n }\r\n\r\n const columnsRegion = [\r\n {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n \r\n );\r\n },\r\n id: 'name',\r\n width: 6,\r\n selectTextOnFocus: true\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n // eslint-disable-next-line eqeqeq\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'area',\r\n width: 8,\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n ({\r\n ...theme,\r\n border: '1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n colors: {\r\n ...theme.colors,\r\n primary: '#ABB3D1',\r\n },\r\n })}\r\n styles={{\r\n container: (baseStyles, state) => ({\r\n ...baseStyles,\r\n width: '90%',\r\n height: '53px',\r\n }),\r\n control: (baseStyles, state) => ({\r\n ...baseStyles,\r\n background: state.isFocused ? '#fff' : '#E9EAEE',\r\n height: '53px',\r\n width: '100%',\r\n }),\r\n menu: (baseStyles, state) => ({\r\n ...baseStyles,\r\n border: ' 1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n margin: '0',\r\n }),\r\n option: (baseStyles, state) => ({\r\n ...baseStyles,\r\n height: 'fit-content',\r\n wordWrap: 'break-word',\r\n overflow: \"hidden\",\r\n minHeight: '45px',\r\n lineHeight: '22px',\r\n backgroundColor: state.isFocused ? 'rgba(226, 228, 239, 0.5)' : \"white\",\r\n }),\r\n menuList: (baseStyles, state) => ({\r\n ...baseStyles,\r\n paddingRight: '13px !important',\r\n \"::-webkit-scrollbar\":{\r\n width: '3px !important'\r\n },\r\n \"::-webkit-scrollbar-track\": {\r\n background: '#E2E4EF !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb\":{\r\n background: ' #ABB3D1 !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb:hover\":{\r\n background: ' #ABB3D1 !important',\r\n }\r\n })\r\n }}\r\n placeholder='Выберите культуру'\r\n id=\"crop-select\"\r\n options={crops_list}\r\n defaultValue={crops_list[crops_list.findIndex((r) => r.value === row.residue.cropId)]}\r\n isOpen={focus}\r\n onChange={onCropChange(row.id, 'residue.cropId')}\r\n />\r\n )\r\n },\r\n id: 'cropId',\r\n width: 18,\r\n getCellClassName: () => \"SpreadsheetGrid__cell_focused\"\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n // eslint-disable-next-line eqeqeq\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'yield',\r\n width: 8\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n ({\r\n ...theme,\r\n border: '1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n colors: {\r\n ...theme.colors,\r\n primary: '#ABB3D1',\r\n },\r\n })}\r\n styles={{\r\n container: (baseStyles, state) => ({\r\n ...baseStyles,\r\n width: '90%',\r\n height: '53px',\r\n }),\r\n control: (baseStyles, state) => ({\r\n ...baseStyles,\r\n background: state.isFocused ? '#fff' : '#E9EAEE',\r\n height: '53px',\r\n width: '100%',\r\n }),\r\n menu: (baseStyles, state) => ({\r\n ...baseStyles,\r\n border: ' 1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n margin: '0',\r\n }),\r\n option: (baseStyles, state) => ({\r\n ...baseStyles,\r\n color: '#201E44',\r\n height: 'fit-content',\r\n wordWrap: 'break-word',\r\n overflow: \"hidden\",\r\n minHeight: '45px',\r\n lineHeight: '22px',\r\n backgroundColor: state.isFocused ? 'rgba(226, 228, 239, 0.5)' : \"white\",\r\n }),\r\n menuList: (baseStyles, state) => ({\r\n ...baseStyles,\r\n paddingRight: '13px !important',\r\n \"::-webkit-scrollbar\":{\r\n width: '3px !important'\r\n },\r\n \"::-webkit-scrollbar-track\": {\r\n background: '#E2E4EF !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb\":{\r\n background: ' #ABB3D1 !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb:hover\":{\r\n background: ' #ABB3D1 !important',\r\n }\r\n })\r\n }}\r\n placeholder='Выберите удобрение'\r\n defaultValue={fertilizers_organic_list[fertilizers_organic_list.findIndex((r) => r.value === row.residue.fertilizerOrganicId)]}\r\n options={fertilizers_organic_list}\r\n isOpen={focus}\r\n onChange={onFertilizerChange(row.id, 'residue.fertilizerOrganicId')}\r\n />\r\n );\r\n },\r\n id: 'organic',\r\n width: 24,\r\n getCellClassName: () => \"SpreadsheetGrid__cell_focused\"\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n // eslint-disable-next-line eqeqeq\r\n
\r\n \r\n
\r\n )\r\n },\r\n id: 'fertilizerCount',\r\n width: 6,\r\n },\r\n {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n // eslint-disable-next-line eqeqeq\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'element.n',\r\n width: 5\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n // eslint-disable-next-line eqeqeq\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'p2o5',\r\n width: 5\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n // eslint-disable-next-line eqeqeq\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'k2o',\r\n width: 5\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n // eslint-disable-next-line eqeqeq\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'S',\r\n width: 5\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n // eslint-disable-next-line eqeqeq\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'cao',\r\n width: 5\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n // eslint-disable-next-line eqeqeq\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'mg',\r\n width: 5\r\n }\r\n ];\r\n this.setState({token: token, columnsRegion: columnsRegion});\r\n\r\n }\r\n\r\n}\r\n","import React, {Component} from 'react'\r\nimport {Input, Grid} from 'react-spreadsheet-grid'\r\nimport {Collapse} from 'react-collapse'\r\nimport {Table} from \"react-bootstrap\"\r\n\r\n\r\n\r\nexport class CalculatingElementsTable extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n columns_region: [],\r\n columns: [],\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.populateFieldsData();\r\n }\r\n\r\n static renderTable(columns, rows, field_row, columnsRegion, isActive, handleCheckElement) {\r\n return (\r\n rows.length !== 0 ?\r\n
\r\n
Потребность элементов питания
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
УчастокN
кг/га д.в.
P₂O₅
кг/га д.в.
K₂O
кг/га д.в.
\r\n S
кг/га д.в.\r\n \r\n\r\n
\r\n CaO
кг/га д.в.\r\n \r\n
\r\n Mg
кг/га д.в.\r\n \r\n
\r\n
\r\n rows.id}\r\n isScrollable={false}\r\n disabledCellChecker={(row, columnId) => {\r\n return columnId === 'name' ||\r\n columnId === 'N' ||\r\n columnId === 'P2O5' ||\r\n columnId === 'K2O' ||\r\n columnId === 'S' ||\r\n columnId === 'CaO' ||\r\n columnId === 'Mg';\r\n }}\r\n />\r\n
\r\n
\r\n
\r\n field_row.id}\r\n disabledCellChecker={(field_row, columnId) => {\r\n return columnId === 'button_expand' ||\r\n columnId === 'N' ||\r\n columnId === 'P2O5' ||\r\n columnId === 'K2O' ||\r\n columnId === 'S' ||\r\n columnId === 'CaO' ||\r\n columnId === 'Mg' ||\r\n columnId === 'empty';\r\n }}\r\n />\r\n
\r\n
\r\n
:
\r\n );\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n CalculatingElementsTable.renderTable(\r\n this.state.columns,\r\n this.props.calculation_data,\r\n this.props.dose_row,\r\n this.state.columns_region,\r\n this.props.isActive,\r\n this.props.handleCheckElement)\r\n );\r\n }\r\n\r\n async populateFieldsData() {\r\n const numberFormat = new Intl.NumberFormat('ru-RU')\r\n\r\n function formatCell(value) {\r\n return value ? numberFormat.format(value.toString().replace(',', '.')).replace(',', '.') : 0\r\n }\r\n\r\n const columns = [\r\n {\r\n id: 'empty',\r\n title: '',\r\n value: (row, {focus}) => {\r\n return ();\r\n },\r\n width: 34,\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n \r\n );\r\n },\r\n id: 'N',\r\n width: 11,\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n \r\n );\r\n },\r\n id: 'P2O5',\r\n width: 11,\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n \r\n );\r\n },\r\n id: 'K2O',\r\n width: 11,\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'S',\r\n width: 11,\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'CaO',\r\n width: 11,\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'Mg',\r\n width: 11,\r\n }\r\n ];\r\n\r\n const columns_region = [\r\n {\r\n title: \"\",\r\n value: (row, {focus}) => {\r\n return (\r\n \r\n );\r\n },\r\n className: \"name\",\r\n id: 'name',\r\n width: 34\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n \r\n );\r\n },\r\n id: 'N',\r\n width: 11,\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n \r\n );\r\n },\r\n id: 'P2O5',\r\n width: 11,\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n \r\n );\r\n },\r\n id: 'K2O',\r\n width: 11,\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'S',\r\n width: 11,\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'CaO',\r\n width: 11,\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'Mg',\r\n width: 11,\r\n }\r\n ];\r\n\r\n this.setState({\r\n columns: columns,\r\n columns_region: columns_region,\r\n });\r\n }\r\n\r\n}\r\n","import React, {Component} from 'react';\r\nimport {Input, Grid} from 'react-spreadsheet-grid';\r\nimport set from 'lodash.set';\r\nimport Select, {components, DropdownIndicatorProps} from 'react-select'\r\nimport {Collapse} from 'react-collapse';\r\nimport {Button} from \"react-bootstrap\";\r\nimport arrow_up from \"../../assets/icons/dark_arrow_up.png\";\r\nimport arrow_down from \"../../assets/icons/dark_arrow_down.png\";\r\nimport {Typography} from \"@material-ui/core\";\r\n\r\nexport class FertilizersTable extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n columnsRegion: [],\r\n update: false\r\n }\r\n this.calcSum=this.calcSum.bind(this)\r\n this.setUseInputPrice=this.setUseInputPrice.bind(this)\r\n }\r\n\r\n componentDidMount() {\r\n this.populateFieldsData();\r\n }\r\n calcSum(useInputPrice){\r\n let sum=0\r\n let fertilizer\r\n // eslint-disable-next-line array-callback-return\r\n this.props.field[0].regions.map((region)=>{\r\n fertilizer = this.props.fertilizers.find((f)=>f.id===region.fertilizerOrganicId)\r\n sum+=(useInputPrice?Number(region.organic_input_price):0)*Number(region.area)*region.fertilizerCount+\r\n (fertilizer? fertilizer.price:0)*region.fertilizerCount*Number(region.area)\r\n })\r\n this.props.setSumPrice(sum)\r\n }\r\n\r\n static renderTable(field, columnsRegion, expand, isExpand, useInputPrice, setUseInputPrice) {\r\n let row = field.length !== 0 ? field[0].regions : [];\r\n if (row.length !== 0) {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n {/**/}\r\n row.id}\r\n isScrollable={false}\r\n disabledCellChecker={(row, columnId) => {\r\n return columnId === 'organic' ||\r\n columnId === 'price'\r\n }}\r\n />\r\n
\r\n
\r\n
\r\n );\r\n } else\r\n return (
)\r\n }\r\n\r\n setUseInputPrice(){\r\n this.props.setUseInputPrice()\r\n this.calcSum(!this.props.useInputPrice)\r\n }\r\n\r\n render() {\r\n const content=FertilizersTable.renderTable(\r\n this.props.field,\r\n this.state.columnsRegion,\r\n this.props.changeExpand,\r\n this.props.expand,\r\n this.props.useInputPrice,\r\n this.setUseInputPrice\r\n )\r\n return (\r\n
{content}
\r\n );\r\n }\r\n\r\n async populateFieldsData() {\r\n // const useInputPrice = this.props.useInputPrice\r\n const numberFormat = new Intl.NumberFormat('ru-RU')\r\n const priceFormat = new Intl.NumberFormat('ru-RU',{maximumFractionDigits:2,minimumFractionDigits:2})\r\n function formatCell(value, price=false){\r\n return value?(price?priceFormat:numberFormat).format(value.toString().replace(',','.')).replace(',','.'):0\r\n }\r\n const fertilizers_organic_list = this.props.fertilizer_organic_list;\r\n const onRegionChange = (rowId, field) => (value1) => {\r\n let value = Number(value1.replace(/\\s/g, \"\").replace(',','.'))\r\n const row = this.props.field[0].regions.find((row) => {\r\n return row.id === rowId;\r\n });\r\n set(row, field, value);\r\n this.props.onFertilizerChange();\r\n this.calcSum(this.props.useInputPrice)\r\n this.setState({update: !this.state.update})\r\n }\r\n const onFertilizerChange = (rowId, field) => (value) => {\r\n const row = this.props.field[0].regions.find((row) => {\r\n return row.id === rowId;\r\n });\r\n row.fertilizerOrganic = this.props.fertilizers.find((f) => {\r\n return f.id === value.value;\r\n })\r\n set(row, field, value.value);\r\n this.props.onFertilizerChange();\r\n this.calcSum(this.props.useInputPrice)\r\n this.setState({update: !this.state.update})\r\n }\r\n\r\n const DropdownIndicator = (props: DropdownIndicatorProps) => {\r\n return (\r\n \r\n arrow-down\r\n \r\n );\r\n };\r\n\r\n function NoOptionsMessage(props) {\r\n if (props.options.length) return null;\r\n return Нет данных;\r\n }\r\n const columnsRegion = [\r\n {\r\n title: 'Наим. эл. участка',\r\n value: (row, {focus}) => {\r\n return (\r\n \r\n )\r\n },\r\n id: 'name',\r\n width: 12\r\n }, {\r\n title: 'Площадь, га',\r\n value: (row, {focus}) => {\r\n return (\r\n // eslint-disable-next-line eqeqeq\r\n
\r\n \r\n
\r\n )\r\n },\r\n id: 'area',\r\n width: 10\r\n }, {\r\n title: 'Тип органического удобрения',\r\n value: (row, {focus}) => {\r\n return (\r\n ({\r\n ...theme,\r\n border: '1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n colors: {\r\n ...theme.colors,\r\n primary: '#ABB3D1',\r\n },\r\n })}\r\n styles={{\r\n container: (baseStyles, state) => ({\r\n ...baseStyles,\r\n margin: '10px',\r\n width: '95%',\r\n height: '53px',\r\n }),\r\n control: (baseStyles, state) => ({\r\n ...baseStyles,\r\n background: state.isFocused ? '#fff' : '#E9EAEE',\r\n height: '53px',\r\n width: '100%',\r\n }),\r\n menu: (baseStyles, state) => ({\r\n ...baseStyles,\r\n border: ' 1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n margin: '0',\r\n }),\r\n option: (baseStyles, state) => ({\r\n ...baseStyles,\r\n height: '45px',\r\n backgroundColor: state.isFocused ? 'rgba(226, 228, 239, 0.5)' : \"white\",\r\n }),\r\n singleValue: (baseStyles, state) => ({\r\n ...baseStyles,\r\n width: '650px'\r\n }),\r\n menuList: (baseStyles, state) => ({\r\n ...baseStyles,\r\n paddingRight: '13px !important',\r\n \"::-webkit-scrollbar\":{\r\n width: '3px !important'\r\n },\r\n \"::-webkit-scrollbar-track\": {\r\n background: '#E2E4EF !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb\":{\r\n background: ' #ABB3D1 !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb:hover\":{\r\n background: ' #ABB3D1 !important',\r\n }\r\n })\r\n }}\r\n id=\"fertilizer-organic-select\"\r\n defaultValue={fertilizers_organic_list[fertilizers_organic_list.findIndex((r) => r.value === row.fertilizerOrganicId)]}\r\n options={fertilizers_organic_list}\r\n placeholder='Выберите удобрение'\r\n onChange={onFertilizerChange(row.id, 'fertilizerOrganicId')}\r\n />\r\n )\r\n },\r\n id: 'organic',\r\n getCellClassName: () => \"SpreadsheetGrid__cell_focused\"\r\n }, {\r\n title: 'Кол-во ОУ, т/га',\r\n value: (row, {focus}) => {\r\n return (\r\n // eslint-disable-next-line eqeqeq\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'fertilizerCount',\r\n width: 12\r\n }, {\r\n title: 'Стоимость удобрения, руб/поле',\r\n value: (row, {focus}) => {\r\n return (\r\n f.id === row.fertilizerOrganicId)?.price) * row.fertilizerCount * row.area, true)}\r\n selectTextOnFocus={true}\r\n focus={focus}\r\n />\r\n )\r\n },\r\n id: 'price',\r\n width: 15,\r\n }\r\n // }, {\r\n // title: 'Стоимость внесения \\nруб/т',\r\n // value: (row, {focus}) => {\r\n // return (\r\n //
\r\n // \r\n //
\r\n // )\r\n // },\r\n // id: 'intro_price',\r\n // width: 12,\r\n // }\r\n ];\r\n\r\n this.setState({columnsRegion: columnsRegion});\r\n }\r\n\r\n}\r\n","import React, {useState, useEffect} from 'react';\r\n\r\nexport default function BalanceFooter({content}) {\r\n\r\n const getOffset = (element) => {\r\n const elementRect = element?.getBoundingClientRect();\r\n return elementRect?.top\r\n }\r\n\r\n const calcInit = () => {\r\n if(window !== undefined) {\r\n const heightToHide = getOffset(document.getElementById('fertilizer-calculation'))\r\n let windowHeight = window.scrollY + document.documentElement.clientHeight;\r\n let scrollHeight = Math.max(\r\n document.body.scrollHeight, document.documentElement.scrollHeight,\r\n document.body.offsetHeight, document.documentElement.offsetHeight,\r\n document.body.clientHeight, document.documentElement.clientHeight\r\n );\r\n const windowScrollHeight = document.body.scrollTop || document.documentElement.scrollTop;\r\n const bottomHeightToHide = document.getElementById('fertilizer-calculation')?.getBoundingClientRect()?.bottom\r\n if (windowHeight-windowScrollHeight {\r\n window.addEventListener('scroll', stickNavbar);\r\n const listenToScroll = () => {\r\n if (window !== undefined) {\r\n const heightToHide = getOffset(document.getElementById('fertilizer-calculation'))\r\n let windowHeight = window.scrollY + document.documentElement.clientHeight;\r\n const windowScrollHeight = document.body.scrollTop || document.documentElement.scrollTop;\r\n const bottomHeightToHide = document.getElementById('fertilizer-calculation')?.getBoundingClientRect()?.bottom\r\n if (windowHeight-windowScrollHeight window.removeEventListener('scroll', listenToScroll);\r\n }, []);\r\n\r\n useEffect(() => {\r\n const listenToScroll = () => {\r\n if (window !== undefined) {\r\n const heightToHide = getOffset(document.getElementById('fertilizer-calculation'))\r\n let windowHeight = window.scrollY + document.documentElement.clientHeight;\r\n const windowScrollHeight = document.body.scrollTop || document.documentElement.scrollTop;\r\n const bottomHeightToHide = document.getElementById('fertilizer-calculation')?.getBoundingClientRect()?.bottom\r\n if (windowHeight-windowScrollHeight window.removeEventListener('scroll', listenToScroll);\r\n }, []);\r\n\r\n\r\n\r\n\r\n const stickNavbar = () => {\r\n if (window !== undefined) {\r\n let windowHeight = window.scrollY + document.documentElement.clientHeight;\r\n let scrollHeight = Math.max(\r\n document.body.scrollHeight, document.documentElement.scrollHeight,\r\n document.body.offsetHeight, document.documentElement.offsetHeight,\r\n document.body.clientHeight, document.documentElement.clientHeight\r\n );\r\n windowHeight < (scrollHeight - 100) ? setStickyClass('sticky-footer') : setStickyClass('balance_calculation_table');\r\n }\r\n };\r\n\r\n return isVisible ?
{content}
: <>;\r\n}\r\n","import React, {Component} from 'react';\r\nimport {Input, Grid} from 'react-spreadsheet-grid';\r\nimport Select, {components, DropdownIndicatorProps} from \"react-select\";\r\nimport set from \"lodash.set\";\r\nimport {Button, Table, Form} from \"react-bootstrap\";\r\nimport BalanceFooter from \"./BalanceFooter\";\r\nimport arrow_up from \"../../assets/icons/dark_arrow_up.png\";\r\nimport arrow_down from \"../../assets/icons/dark_arrow_down.png\";\r\nimport del from \"../../assets/icons/del.png\";\r\nimport add from \"../../assets/icons/add.png\";\r\nimport {Typography} from \"@material-ui/core\";\r\n\r\nexport class FertilizersCalculationTables extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n main_rows: [],\r\n pre_sowing_rows: [],\r\n feed_rows: [],\r\n balance_row: [],\r\n columns_main: [],\r\n columns_feed: [],\r\n columns_pre_sowing: [],\r\n update: false,\r\n fertilizers_mineral_list: [],\r\n balance_columns: [],\r\n }\r\n this.calculateFertilizers = this.calculateFertilizers.bind(this)\r\n this.addRow = this.addRow.bind(this)\r\n this.deleteRow = this.deleteRow.bind(this)\r\n this.calcBalance = this.calcBalance.bind(this)\r\n this.sumElements = this.sumElements.bind(this)\r\n this.BalanceBackLight = this.BalanceBackLight.bind(this)\r\n this.handleChangeCoefP = this.handleChangeCoefP.bind(this)\r\n this.isDisable = this.isDisable.bind(this)\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.populateData();\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (this.props.coefP !== prevProps.coefP && !this.props.report_loading) {\r\n this.calcBalance(false)\r\n this.props.calculate_main()\r\n }\r\n }\r\n\r\n sumElements(rows) {\r\n let sumRows = {n: 0, p2O5: 0, k2O: 0, s: 0, caO: 0, mg: 0, price: 0, input_price: 0};\r\n // eslint-disable-next-line array-callback-return\r\n rows.map((row) => {\r\n sumRows.n += Number(row.element.n)\r\n sumRows.p2O5 += Number(row.element.p2O5)\r\n sumRows.k2O += Number(row.element.k2O)\r\n sumRows.s += Number(row.element.s)\r\n sumRows.caO += Number(row.element.caO)\r\n sumRows.mg += Number(row.element.mg)\r\n sumRows.price += Number(row.price)\r\n sumRows.input_price += Number(row.input_price ? row.input_price : 0) * Number(row.fertilizer_count) / 1000\r\n })\r\n return sumRows\r\n\r\n }\r\n\r\n calcBalance(isCalc) {\r\n const changed_rows = this.props.changed_rows\r\n const balance = this.props.balance[0].element\r\n const feed = this.sumElements(this.state.feed_rows)\r\n const pre_sowing = this.sumElements(this.state.pre_sowing_rows)\r\n const main = isCalc ? this.sumElements(this.state.main_rows) : this.sumElements(changed_rows)\r\n const sum_limit = [feed.n + pre_sowing.n + main.n,\r\n feed.p2O5 + pre_sowing.p2O5 * this.props.coefP + main.p2O5,\r\n feed.k2O + pre_sowing.k2O + main.k2O,\r\n feed.s + pre_sowing.s + main.s,\r\n feed.caO + pre_sowing.caO + main.caO,\r\n feed.mg + pre_sowing.mg + main.mg\r\n ]\r\n if (isCalc) {\r\n this.props.setFertilizerLimit(sum_limit)\r\n }\r\n const balanceCalc = [{\r\n price: (feed.price + pre_sowing.price + main.price).toFixed(2),\r\n input_price: (feed.input_price + pre_sowing.input_price + main.input_price) * this.props.area,\r\n element: {\r\n n: (balance.n - sum_limit[0]).toFixed(2),\r\n p2O5: (balance.p2O5 - sum_limit[1]).toFixed(2),\r\n k2O: (balance.k2O - sum_limit[2]).toFixed(2),\r\n s: (balance.s - sum_limit[3]).toFixed(2),\r\n caO: (balance.caO - sum_limit[4]).toFixed(2),\r\n mg: (balance.mg - sum_limit[5]).toFixed(2),\r\n }\r\n }]\r\n if (isCalc) {\r\n this.setState({balance_row: balanceCalc})\r\n this.props.setSumPrice(Number(balanceCalc[0].price) + (this.props.useInputPrice ? Number(balanceCalc[0].input_price) : 0))\r\n } else {\r\n this.props.fertilizer_data.balance = balanceCalc\r\n }\r\n }\r\n\r\n BalanceBackLight(value, el) {\r\n let conf_interval = 0.4\r\n let class_name = \"\"\r\n if (!this.props.isActive[el])\r\n class_name = class_name.concat(\"disable\")\r\n if (Number(value) <= 0 - conf_interval) {\r\n class_name = class_name.concat(\"blue-cell\")\r\n } else if (Number(value) <= conf_interval) {\r\n class_name = class_name.concat(\"green-cell\")\r\n } else {\r\n class_name = class_name.concat(\"red-cell\")\r\n }\r\n return class_name\r\n }\r\n\r\n isDisable(el) {\r\n if (!this.props.isActive[el])\r\n return 'disable'\r\n else\r\n return ''\r\n }\r\n\r\n addRow(table) {\r\n this.state[table].push({\r\n id: this.state[table].at(-1) ? this.state[table].at(-1).id + 1 : 0,\r\n fertilizerId: 0,\r\n fertilizer_count: 0,\r\n price: 0,\r\n element: {n: 0, p2O5: 0, k2O: 0, s: 0, caO: 0, mg: 0}\r\n })\r\n this.recalculateRows(this.state.main_rows)\r\n this.recalculateRows(this.state.feed_rows)\r\n this.recalculateRows(this.state.pre_sowing_rows)\r\n this.setState({update: !this.state.update})\r\n }\r\n\r\n deleteRow(rowId, table) {\r\n const row = this.state[table].find(row => row.id === rowId)\r\n this.state[table].splice(this.state[table].findIndex(row => row.id === rowId), 1)\r\n if (table !== 'main_rows') {\r\n this.calcBalance(false)\r\n this.props.calculate_main()\r\n } else {\r\n let changed_rows = this.props.changed_rows\r\n let changed_id = changed_rows.findIndex((row=>row.id===rowId))\r\n if(changed_id!==-1){\r\n this.props.changed_rows[changed_id].visible=false\r\n }else {\r\n changed_rows.push({\r\n id: \"n\".concat(row.id),\r\n fertilizerId: row.fertilizerId,\r\n fertilizer_count: 0,\r\n price: 0,\r\n element: {n: 0, p2O5: 0, k2O: 0, s: 0, mg: 0, caO: 0},\r\n visible: false\r\n })\r\n this.props.not_calculate_fertilizers_list.clear()\r\n changed_rows.map((row) => this.props.not_calculate_fertilizers_list.add(row.fertilizerId))\r\n this.calcBalance(false)\r\n this.props.recalculate_A_c()\r\n }\r\n }\r\n this.setState({update: !this.state.update})\r\n }\r\n\r\n calculateFertilizers() {\r\n this.recalculateRows(this.state.main_rows)\r\n this.recalculateRows(this.state.pre_sowing_rows)\r\n this.recalculateRows(this.state.feed_rows)\r\n let changed_rows = this.props.changed_rows\r\n changed_rows.splice(0, changed_rows.length)\r\n this.forceUpdate()\r\n this.calcBalance(false)\r\n this.props.not_calculate_fertilizers_list.clear()\r\n this.props.recalculate_A_c()\r\n }\r\n\r\n recalculateRows(rows) {\r\n if (this.state.fertilizers_mineral_list.length > 0) {\r\n // eslint-disable-next-line array-callback-return\r\n rows.map(r => {\r\n let fertilizer = this.state.fertilizers_mineral_list.find(f => f.value === r.fertilizerId)\r\n r.element = fertilizer ? {\r\n n: (r.fertilizer_count * fertilizer.element.n).toFixed(1),\r\n p2O5: (r.fertilizer_count * fertilizer.element.p2O5).toFixed(1),\r\n k2O: (r.fertilizer_count * fertilizer.element.k2O).toFixed(1),\r\n s: (r.fertilizer_count * fertilizer.element.s).toFixed(1),\r\n caO: (r.fertilizer_count * fertilizer.element.caO).toFixed(1),\r\n mg: (r.fertilizer_count * fertilizer.element.mg).toFixed(1)\r\n } : {n: 0, p2O5: 0, k2O: 0, s: 0, caO: 0, mg: 0}\r\n r.price = fertilizer ? (fertilizer.price * r.fertilizer_count / 1000 * this.props.area).toFixed(2) : 0\r\n })\r\n }\r\n }\r\n\r\n recalculateRowFromElements(row, field) {\r\n if (this.state.fertilizers_mineral_list.length > 0) {\r\n let fertilizer = this.state.fertilizers_mineral_list.find(f => f.value === row.fertilizerId)\r\n if (fertilizer && fertilizer.element[field] !== 0) {\r\n row.fertilizer_count = row.element[field] / fertilizer.element[field]\r\n for (const el in (fertilizer.element)) {\r\n if (el !== field)\r\n row.element[el] = (row.fertilizer_count * fertilizer.element[el]).toFixed(1)\r\n }\r\n row.price = (fertilizer.price * row.fertilizer_count / 1000 * this.props.area).toFixed(2)\r\n } else\r\n row.element[field] = 0\r\n }\r\n }\r\n\r\n handleChangeCoefP(event) {\r\n this.props.changeCoefP(event.target.value)\r\n this.calcBalance(false)\r\n }\r\n\r\n static renderTable(columns_main, columns_pre_sowing, columns_feed, main_rows, pre_sowing_rows, feed_rows,\r\n balance_row, balance_columns, calculateFertilizers, addRow, handleChangeCoefP, coefP,\r\n isDisable, showModal, useInputPrice, setUseInputPrice) {\r\n const content =
\r\n balance_row.id}\r\n disabledCellChecker={(balance_row, columnId) => {\r\n return columnId === 'N' ||\r\n columnId === 'P2O5' ||\r\n columnId === 'K2O' ||\r\n columnId === 'S' ||\r\n columnId === 'CaO' ||\r\n columnId === 'Mg' ||\r\n columnId === 'balance' ||\r\n columnId === 'price'\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\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/**/}\r\n \r\n \r\n
Тип удобренияКол-во удобрения,
кг/га
N
кг/га
P₂O₅
кг/га
K₂O
кг/га
S
кг/га
CaO
кг/га
Mg
кг/га
Стоимость, руб/полеСтоимость внесения,
руб/т*/}\r\n {/*
\r\n
\r\n
Основное внесение
\r\n <>\r\n main_rows.id}\r\n disabledCellChecker={(main_rows, columnId) => {\r\n return columnId === 'fertilizer' ||\r\n columnId === 'fertilizer_type' ||\r\n columnId === 'button_remove' ||\r\n columnId === 'price'\r\n }}\r\n />\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
Припосевное внесение (Повышающий коэффициент усвоения\r\n фосфора:\r\n
e.preventDefault()}>\r\n e.target.select()}\r\n style={{width: '40px', marginLeft: '10px', marginRight: '5px'}}\r\n onChange={handleChangeCoefP}>\r\n )\r\n
\r\n pre_sowing_rows.id}\r\n disabledCellChecker={(pre_sowing_rows, columnId) => {\r\n return columnId === 'fertilizer' ||\r\n columnId === 'fertilizer_type' ||\r\n columnId === 'button_remove' ||\r\n columnId === 'price'\r\n }}\r\n />\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Подкормка
\r\n feed_rows.id}\r\n disabledCellChecker={(feed_rows, columnId) => {\r\n return columnId === 'fertilizer' ||\r\n columnId === 'fertilizer_type' ||\r\n columnId === 'button_remove' ||\r\n columnId === '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 render() {\r\n const content = FertilizersCalculationTables.renderTable(\r\n this.state.columns_main,\r\n this.state.columns_pre_sowing,\r\n this.state.columns_feed,\r\n this.state.main_rows,\r\n this.state.pre_sowing_rows,\r\n this.state.feed_rows,\r\n this.state.balance_row,\r\n this.state.balance_columns,\r\n this.calculateFertilizers,\r\n this.addRow,\r\n this.handleChangeCoefP,\r\n this.props.coefP,\r\n this.isDisable,\r\n this.props.showModal,\r\n this.props.useInputPrice,\r\n this.props.setUseInputPrice,\r\n );\r\n return (\r\n this.props.visible ?\r\n <>\r\n
\r\n {content}\r\n
\r\n \r\n : <>\r\n )\r\n }\r\n\r\n async populateData() {\r\n const numberFormat = new Intl.NumberFormat('ru-RU')\r\n const priceFormat = new Intl.NumberFormat('ru-RU', {maximumFractionDigits: 2, minimumFractionDigits: 2})\r\n\r\n function formatCell(value, price = false) {\r\n return value ? (price ? priceFormat : numberFormat).format(value.toString().replace(',', '.')).replace(',', '.') : 0\r\n }\r\n\r\n const data = this.props.fertilizer_data\r\n const main_rows = data.main.concat(this.props.changed_rows.filter((r) => r.visible))\r\n\r\n const pre_sowing_rows = data.pre_sowing\r\n const feed_rows = data.feed\r\n const balance_row = this.props.balance\r\n let fertilizers_mineral_list_full = this.props.fertilizer_mineral_list\r\n let fertilizers_mineral_list = []\r\n fertilizers_mineral_list_full.map((r) => fertilizers_mineral_list.push({\r\n value: r.id,\r\n label: r.name,\r\n element: r.element,\r\n price: r.price\r\n }))\r\n\r\n let changed_rows = this.props.changed_rows\r\n\r\n const onMainChange = (rowId, field) => (value1) => {\r\n let value = Number(value1.replace(/\\s/g, \"\").replace(',', '.'))\r\n const rowRegion = this.state.main_rows.find((row) => {\r\n return row.id === rowId\r\n });\r\n set(rowRegion, field, value)\r\n this.recalculateRows(main_rows)\r\n const i = changed_rows.findIndex((r) => r.id === rowId)\r\n if (i < 0) {\r\n changed_rows.push({\r\n id: \"n\".concat(rowRegion.id),\r\n fertilizerId: rowRegion.fertilizerId,\r\n fertilizer_count: rowRegion.fertilizer_count,\r\n price: rowRegion.price,\r\n element: rowRegion.element,\r\n visible: true\r\n })\r\n }\r\n this.props.not_calculate_fertilizers_list.clear()\r\n changed_rows.map((row) => this.props.not_calculate_fertilizers_list.add(row.fertilizerId))\r\n this.calcBalance(false)\r\n this.props.recalculate_A_c()\r\n }\r\n const onPreSowingChange = (rowId, field) => (value1) => {\r\n let value = Number(value1.replace(/\\s/g, \"\").replace(',', '.'))\r\n const rowRegion = this.state.pre_sowing_rows.find((row) => {\r\n return row.id === rowId\r\n });\r\n set(rowRegion, field, value)\r\n this.setState({update: !this.state.update})\r\n this.recalculateRows(this.state.pre_sowing_rows)\r\n this.calcBalance(false)\r\n this.props.calculate_main()\r\n }\r\n const onFeedChange = (rowId, field) => (value1) => {\r\n let value = Number(value1.replace(/\\s/g, \"\").replace(',', '.'))\r\n const rowRegion = this.state.feed_rows.find((row) => {\r\n return row.id === rowId\r\n });\r\n set(rowRegion, field, value)\r\n this.setState({update: !this.state.update})\r\n this.recalculateRows(this.state.feed_rows)\r\n this.calcBalance(false)\r\n this.props.calculate_main()\r\n }\r\n\r\n const onMainFertilizerChange = (rowId, field) => (value) => {\r\n const row = this.state.main_rows.find((row) => {\r\n return row.id === rowId;\r\n });\r\n if (value.value !== 0) {\r\n let fertilizer = this.props.fertilizer_mineral_list.find((f) => {\r\n return f.id === value.value;\r\n })\r\n row.fertilizerId = fertilizer.id\r\n }\r\n const i = changed_rows.findIndex((r) => r.id === rowId)\r\n set(row, field, value.value);\r\n this.recalculateRows(this.state.main_rows)\r\n if (i < 0) {\r\n changed_rows.push({\r\n id: \"n\".concat(row.id),\r\n fertilizerId: row.fertilizerId,\r\n fertilizer_count: row.fertilizer_count,\r\n price: row.price,\r\n element: row.element,\r\n visible: true\r\n })\r\n }\r\n this.props.not_calculate_fertilizers_list.clear()\r\n changed_rows.map((row) => this.props.not_calculate_fertilizers_list.add(row.fertilizerId))\r\n this.calcBalance(false)\r\n this.props.recalculate_A_c()\r\n\r\n }\r\n const onPreSowingFertilizerChange = (rowId, field) => (value) => {\r\n const row = this.state.pre_sowing_rows.find((row) => {\r\n return row.id === rowId;\r\n });\r\n if (value.value !== 0) {\r\n let fertilizer = this.props.fertilizer_mineral_list.find((f) => {\r\n return f.id === value.value;\r\n })\r\n row.fertilizerId = fertilizer.id\r\n }\r\n set(row, field, value.value);\r\n this.setState({update: !this.state.update})\r\n this.recalculateRows(this.state.pre_sowing_rows)\r\n this.calcBalance(false)\r\n this.props.calculate_main()\r\n }\r\n const onFeedFertilizerChange = (rowId, field) => (value) => {\r\n const row = this.state.feed_rows.find((row) => {\r\n return row.id === rowId;\r\n });\r\n if (value.value !== 0) {\r\n let fertilizer = this.props.fertilizer_mineral_list.find((f) => {\r\n return f.id === value.value;\r\n })\r\n row.fertilizerId = fertilizer.id\r\n }\r\n set(row, field, value.value);\r\n this.setState({update: !this.state.update})\r\n this.recalculateRows(this.state.feed_rows)\r\n this.calcBalance(false)\r\n this.props.calculate_main()\r\n }\r\n\r\n const onElementChange = (rowId, field, table) => (value1) => {\r\n let value = value1.replace(/\\s/g, \"\")\r\n const rowRegion = this.state[table].find((row) => {\r\n return row.id === rowId\r\n });\r\n set(rowRegion.element, field, value)\r\n this.recalculateRowFromElements(rowRegion, field)\r\n if (table === 'main_rows') {\r\n const i = changed_rows.findIndex((r) => r.id === rowId)\r\n if (i < 0) {\r\n changed_rows.push({\r\n id: \"n\".concat(rowRegion.id),\r\n fertilizerId: rowRegion.fertilizerId,\r\n fertilizer_count: rowRegion.fertilizer_count,\r\n price: rowRegion.price,\r\n element: rowRegion.element,\r\n visible: true\r\n })\r\n }\r\n this.props.not_calculate_fertilizers_list.clear()\r\n changed_rows.map((row) => this.props.not_calculate_fertilizers_list.add(row.fertilizerId))\r\n this.calcBalance(false)\r\n this.props.recalculate_A_c()\r\n } else {\r\n this.calcBalance(false)\r\n this.props.calculate_main()\r\n }\r\n }\r\n\r\n // const onInputPriceChange = (rowId, field, table) => (value1) => {\r\n // let value = value1.replace(/\\s/g, \"\")\r\n // const rowRegion = this.state[table].find((row) => {\r\n // return row.id === rowId\r\n // });\r\n // set(rowRegion, field, value)\r\n // this.calcBalance(true)\r\n // }\r\n\r\n const del_button = (id, field) => {\r\n return ()\r\n }\r\n\r\n const DropdownIndicator = (props: DropdownIndicatorProps) => {\r\n return (\r\n \r\n arrow-down\r\n \r\n );\r\n };\r\n\r\n function NoOptionsMessage(props) {\r\n if (props.options.length) return null;\r\n return Нет данных;\r\n }\r\n\r\n const balance_columns = [\r\n {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n \r\n );\r\n },\r\n id: 'balance',\r\n width: 36,\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'N',\r\n width: 9\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'P2O5',\r\n width:9\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'K2O',\r\n width:9\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'S',\r\n width:9\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'CaO',\r\n width:9\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'Mg',\r\n width: 9\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'price',\r\n width: 10,\r\n }\r\n // }, {\r\n // title: '',\r\n // value: (row, {focus}) => {\r\n // return (\r\n //
\r\n // \r\n //
\r\n // );\r\n // },\r\n // id: 'intro_price',\r\n // width: 8,\r\n // }\r\n\r\n ];\r\n const columns_main = [\r\n {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n ({\r\n ...theme,\r\n border: '1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n colors: {\r\n ...theme.colors,\r\n primary: '#ABB3D1',\r\n },\r\n })}\r\n styles={{\r\n container: (baseStyles, state) => ({\r\n ...baseStyles,\r\n margin: '0 auto',\r\n width: '90%',\r\n height: '50px',\r\n }),\r\n control: (baseStyles, state) => ({\r\n ...baseStyles,\r\n background: state.isFocused ? '#fff' : '#E9EAEE',\r\n height: '50px',\r\n width: '100%',\r\n }),\r\n menu: (baseStyles, state) => ({\r\n ...baseStyles,\r\n border: ' 1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n margin: '0',\r\n }),\r\n option: (baseStyles, state) => ({\r\n ...baseStyles,\r\n color: '#201E44',\r\n height: '46px',\r\n backgroundColor: state.isFocused ? 'rgba(226, 228, 239, 0.5)' : \"white\",\r\n }),\r\n menuList: (baseStyles, state) => ({\r\n ...baseStyles,\r\n paddingRight: '13px !important',\r\n \"::-webkit-scrollbar\":{\r\n width: '3px !important'\r\n },\r\n \"::-webkit-scrollbar-track\": {\r\n background: '#E2E4EF !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb\":{\r\n background: ' #ABB3D1 !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb:hover\":{\r\n background: ' #ABB3D1 !important',\r\n }\r\n })\r\n }}\r\n placeholder='Выберите удобрение'\r\n className={row.id.toString().includes('n') ? 'change-cell' : ''}\r\n id=\"fertilizer-mineral-select\"\r\n defaultValue={fertilizers_mineral_list[fertilizers_mineral_list.findIndex((r) => r.value === row.fertilizerId)]}\r\n options={fertilizers_mineral_list}\r\n isOpen={focus}\r\n onChange={onMainFertilizerChange(row.id, 'fertilizerId')}\r\n />\r\n )\r\n },\r\n id: 'fertilizer_type',\r\n width: 26,\r\n getCellClassName: () => \"SpreadsheetGrid__cell_focused\"\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n \r\n {/* eslint-disable-next-line eqeqeq */}\r\n
\r\n \r\n
\r\n \r\n );\r\n },\r\n id: 'fertilizer_count',\r\n width: 10\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n },\r\n id: 'N',\r\n width: 9,\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n },\r\n id: 'P2O5',\r\n width: 9,\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n },\r\n id: 'K2O',\r\n width: 9,\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'S',\r\n width: 9,\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'CaO',\r\n width: 9,\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'Mg',\r\n width: 9,\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'price',\r\n width: 10,\r\n },\r\n {\r\n title: '',\r\n value: (row) => {\r\n return del_button(row.id, 'main_rows');\r\n },\r\n id: 'button_remove',\r\n width: 0,\r\n getCellClassName: () => \"SpreadsheetGrid__cell_focused\"\r\n }\r\n // , {\r\n // title: '',\r\n // value: (row, {focus}) => {\r\n // return (\r\n //
\r\n // \r\n //
\r\n // );\r\n // },\r\n // id: 'intro_price',\r\n // width: 8,\r\n // }\r\n ];\r\n const columns_pre_sowing = [\r\n {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n ({\r\n ...theme,\r\n border: '1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n colors: {\r\n ...theme.colors,\r\n primary: '#ABB3D1',\r\n },\r\n })}\r\n styles={{\r\n container: (baseStyles, state) => ({\r\n ...baseStyles,\r\n margin: '0 auto',\r\n width: '90%',\r\n height: '50px',\r\n }),\r\n control: (baseStyles, state) => ({\r\n ...baseStyles,\r\n background: state.isFocused ? '#fff' : '#E9EAEE',\r\n height: '50px',\r\n width: '100%',\r\n }),\r\n menu: (baseStyles, state) => ({\r\n ...baseStyles,\r\n border: ' 1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n margin: '0',\r\n }),\r\n option: (baseStyles, state) => ({\r\n ...baseStyles,\r\n color: '#201E44',\r\n height: '46px',\r\n paddingTop: '15px',\r\n backgroundColor: state.isFocused ? 'rgba(226, 228, 239, 0.5)' : \"white\",\r\n }),\r\n menuList: (baseStyles, state) => ({\r\n ...baseStyles,\r\n paddingRight: '13px !important',\r\n \"::-webkit-scrollbar\":{\r\n width: '3px !important'\r\n },\r\n \"::-webkit-scrollbar-track\": {\r\n background: '#E2E4EF !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb\":{\r\n background: ' #ABB3D1 !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb:hover\":{\r\n background: ' #ABB3D1 !important',\r\n }\r\n })\r\n }}\r\n placeholder='Выберите удобрение'\r\n className={row.id.toString().includes('n') ? 'change-cell' : ''}\r\n defaultValue={fertilizers_mineral_list[fertilizers_mineral_list.findIndex((r) => r.value === row.fertilizerId)]}\r\n options={fertilizers_mineral_list}\r\n onChange={onPreSowingFertilizerChange(row.id, 'fertilizerId')}\r\n />\r\n )\r\n },\r\n id: 'fertilizer_type',\r\n width: 26,\r\n getCellClassName: () => \"SpreadsheetGrid__cell_focused\"\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n {/* eslint-disable-next-line eqeqeq */}\r\n
\r\n \r\n
\r\n
\r\n );\r\n },\r\n id: 'fertilizer_count',\r\n width: 10\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n \r\n );\r\n },\r\n id: 'N',\r\n width: 9\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n \r\n );\r\n },\r\n id: 'P2O5',\r\n width: 9\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n \r\n );\r\n },\r\n id: 'K2O',\r\n width: 9\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'S',\r\n width: 9\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'CaO',\r\n width: 9\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'Mg',\r\n width: 9\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'price',\r\n width: 10,\r\n },\r\n {\r\n title: '',\r\n value: (row) => {\r\n return del_button(row.id, 'pre_sowing_rows')\r\n },\r\n id: 'button_remove',\r\n width: 0,\r\n getCellClassName: () => \"SpreadsheetGrid__cell_focused\"\r\n }\r\n // , {\r\n // title: '',\r\n // value: (row, {focus}) => {\r\n // return (\r\n //
\r\n // \r\n //
\r\n // );\r\n // },\r\n // id: 'intro_price',\r\n // width: 8,\r\n // }\r\n ];\r\n const columns_feed = [\r\n {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n ({\r\n ...theme,\r\n border: '1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n colors: {\r\n ...theme.colors,\r\n primary: '#ABB3D1',\r\n },\r\n })}\r\n styles={{\r\n container: (baseStyles, state) => ({\r\n ...baseStyles,\r\n margin: '0 auto',\r\n width: '90%',\r\n height: '50px',\r\n }),\r\n control: (baseStyles, state) => ({\r\n ...baseStyles,\r\n background: state.isFocused ? '#fff' : '#E9EAEE',\r\n height: '50px',\r\n width: '100%',\r\n }),\r\n menu: (baseStyles, state) => ({\r\n ...baseStyles,\r\n border: ' 1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n margin: '0',\r\n }),\r\n option: (baseStyles, state) => ({\r\n ...baseStyles,\r\n color: '#201E44',\r\n height: '46px',\r\n paddingTop: '15px',\r\n backgroundColor: state.isFocused ? 'rgba(226, 228, 239, 0.5)' : \"white\",\r\n }),\r\n menuList: (baseStyles, state) => ({\r\n ...baseStyles,\r\n paddingRight: '13px !important',\r\n \"::-webkit-scrollbar\":{\r\n width: '3px !important'\r\n },\r\n \"::-webkit-scrollbar-track\": {\r\n background: '#E2E4EF !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb\":{\r\n background: ' #ABB3D1 !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb:hover\":{\r\n background: ' #ABB3D1 !important',\r\n }\r\n })\r\n }}\r\n placeholder='Выберите удобрение'\r\n className={row.id.toString().includes('n') ? 'change-cell' : ''}\r\n defaultValue={fertilizers_mineral_list[fertilizers_mineral_list.findIndex((r) => r.value === row.fertilizerId)]}\r\n options={fertilizers_mineral_list}\r\n isOpen={focus}\r\n onChange={onFeedFertilizerChange(row.id, 'fertilizerId')}\r\n />\r\n )\r\n },\r\n id: 'fertilizer_type',\r\n width: 26,\r\n getCellClassName: () => \"SpreadsheetGrid__cell_focused\"\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n {/* eslint-disable-next-line eqeqeq */}\r\n
\r\n \r\n
\r\n
\r\n );\r\n },\r\n id: 'fertilizer_count',\r\n width: 10\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n \r\n );\r\n },\r\n id: 'N',\r\n width: 9\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n \r\n );\r\n },\r\n id: 'P2O5',\r\n width: 9\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n \r\n );\r\n },\r\n id: 'K2O',\r\n width: 9\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'S',\r\n width: 9\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'CaO',\r\n width: 9\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'Mg',\r\n width: 9\r\n }, {\r\n title: '',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'price',\r\n width: 10,\r\n },{\r\n title: '',\r\n value: (row) => {\r\n return del_button(row.id, 'feed_rows');\r\n },\r\n id: 'button_remove',\r\n width: 0,\r\n getCellClassName: () => \"SpreadsheetGrid__cell_focused\"\r\n }\r\n // , {\r\n // title: '',\r\n // value: (row, {focus}) => {\r\n // return (\r\n //
\r\n // \r\n //
\r\n // );\r\n // },\r\n // id: 'intro_price',\r\n // width: 8,\r\n // }\r\n ];\r\n\r\n this.setState({\r\n main_rows: main_rows,\r\n pre_sowing_rows: pre_sowing_rows,\r\n feed_rows: feed_rows,\r\n balance_row: balance_row,\r\n columns_main: columns_main,\r\n columns_pre_sowing: columns_pre_sowing,\r\n columns_feed: columns_feed,\r\n balance_columns: balance_columns,\r\n fertilizers_mineral_list: fertilizers_mineral_list,\r\n }, () => {\r\n this.recalculateRows(this.state.main_rows)\r\n this.recalculateRows(this.state.feed_rows)\r\n this.recalculateRows(this.state.pre_sowing_rows)\r\n if (this.props.balance.length !== 0) {\r\n this.calcBalance(true)\r\n }\r\n })\r\n }\r\n}\r\n","import React, {Component} from 'react';\r\nimport {Input, Grid} from 'react-spreadsheet-grid';\r\nimport Select, {components, DropdownIndicatorProps} from \"react-select\";\r\nimport set from \"lodash.set\";\r\nimport {Button, Col} from \"react-bootstrap\";\r\nimport {Collapse} from \"react-collapse\";\r\nimport Row from \"react-bootstrap/Row\";\r\nimport arrow_up from \"../../assets/icons/dark_arrow_up.png\";\r\nimport arrow_down from \"../../assets/icons/dark_arrow_down.png\";\r\nimport {Typography} from \"@material-ui/core\";\r\n\r\nexport class LimingTable extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n liming_columns: [],\r\n update: false,\r\n fertilizers_mineral_list: [],\r\n isCellChange: []\r\n }\r\n this.calculateLiming = this.calculateLiming.bind(this)\r\n this.calcSum = this.calcSum.bind(this)\r\n this.setUseInputPrice = this.setUseInputPrice.bind(this)\r\n }\r\n\r\n componentDidMount() {\r\n this.populateData();\r\n }\r\n\r\n calcSum(useInputPrice = false) {\r\n let sum_dose = 0\r\n let sum_price = 0\r\n if (this.state.fertilizers_mineral_list.length !== 0 && this.props.field.length !== 0) {\r\n // eslint-disable-next-line array-callback-return\r\n this.props.liming.map((row) => {\r\n sum_dose = sum_dose + (Number(row.fertilizer_dose) * row.area)\r\n sum_price = sum_price + (row.price ? Number(row.price) : 0) + (useInputPrice ? Number(row.intro_price) * Number(row.fertilizer_dose) * row.area : 0)\r\n })\r\n }\r\n this.props.setSumPrice(sum_price)\r\n this.props.setSumDose(sum_dose)\r\n }\r\n\r\n colorBacklight = (pH, soilId) => {\r\n const group = this.props.soils.find((soil) => soil.id === soilId).soilGroup.name\r\n if (group === \"Торфяные\") {\r\n if (Number(pH) <= 4)\r\n return \"red-row\"\r\n else if (Number(pH) <= 4.5)\r\n return \"pink-row\"\r\n else if (Number(pH) <= 5.0)\r\n return \"orange-row\"\r\n else if (Number(pH) <= 5.5)\r\n return \"yellow-row\"\r\n else if (Number(pH) <= 6.0)\r\n return \"green-row\"\r\n else if (Number(pH) <= 6.5)\r\n return \"blue-row\"\r\n else return \"dark-blue-row\"\r\n } else {\r\n if (Number(pH) <= 4.5)\r\n return \"red-row\"\r\n else if (Number(pH) <= 5)\r\n return \"pink-row\"\r\n else if (Number(pH) <= 5.5)\r\n return \"orange-row\"\r\n else if (Number(pH) <= 6)\r\n return \"yellow-row\"\r\n else if (Number(pH) <= 6.5)\r\n return \"green-row\"\r\n else if (Number(pH) <= 7)\r\n return \"blue-row\"\r\n else return \"dark-blue-row\"\r\n }\r\n }\r\n\r\n groupSoil(soilId) {\r\n return this.props.soilGroup.find((value) => value.id === this.props.soils.find(value => value.id === soilId).soilGroupId)\r\n }\r\n\r\n dose(soilId, humus, ph) {\r\n try {\r\n let soilGroup = this.groupSoil(soilId)\r\n let groupHumus = soilGroup.soilGroupHumus[0]\r\n // eslint-disable-next-line array-callback-return\r\n soilGroup.soilGroupHumus.map((r) => {\r\n if (humus <= r.humus) {\r\n groupHumus = r\r\n }\r\n })\r\n let liming = groupHumus.soilGroupPh[0].liming\r\n // eslint-disable-next-line array-callback-return\r\n groupHumus.soilGroupPh.map((r) => {\r\n if (ph <= r.ph) {\r\n liming = r.liming\r\n }\r\n })\r\n return liming\r\n } catch {\r\n return 0\r\n }\r\n }\r\n\r\n calculateLiming() {\r\n let liming_rows = this.props.liming\r\n let min\r\n if (this.state.fertilizers_mineral_list.length > 0) {\r\n min = this.state.fertilizers_mineral_list[0]\r\n // eslint-disable-next-line array-callback-return\r\n this.state.fertilizers_mineral_list.map(r => {\r\n if (min.element.caO / min.price < r.element.caO / r.price) {\r\n min = r\r\n }\r\n })\r\n }\r\n // eslint-disable-next-line array-callback-return\r\n liming_rows.map((r) => {\r\n let dose = this.dose(r.soilId, r.humus, r.pH)\r\n r.dose = dose\r\n if (this.state.fertilizers_mineral_list.length > 0) {\r\n r.fertilizer_dose = (dose / min.element.caO).toFixed(2)\r\n r.price = min.price * r.fertilizer_dose * r.area\r\n r.fertilizer_id = min.value\r\n }\r\n })\r\n this.props.setLiming(liming_rows)\r\n this.setState({\r\n update: !this.state.update,\r\n isCellChange: [],\r\n }, () => this.calcSum(this.props.useInputPrice))\r\n\r\n }\r\n\r\n setUseInputPrice() {\r\n this.props.setUseInputPrice()\r\n this.calcSum(!this.props.useInputPrice)\r\n }\r\n\r\n static renderTable(liming_columns, liming_rows, calculateLiming, sum_dose, sum_price, expand, isExpand,\r\n isLimingOpen, useLiming, useInputPrice, setUseInputPrice) {\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 liming_rows.id}\r\n disabledCellChecker={(liming_rows, columnId) => {\r\n return columnId === 'name' ||\r\n columnId === 'soil' ||\r\n columnId === 'humus' ||\r\n columnId === 'pH' ||\r\n columnId === 'dose' ||\r\n columnId === 'organic' ||\r\n columnId === 'pH' ||\r\n columnId === 'price'\r\n }}\r\n />\r\n\r\n \r\n \r\n Итог по\r\n полю: {new Intl.NumberFormat('ru-RU', {maximumFractionDigits: 0}).format(sum_dose)} тонн,  \r\n {new Intl.NumberFormat('ru-RU', {\r\n maximumFractionDigits: 2,\r\n minimumFractionDigits: 2\r\n }).format(sum_price).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 render() {\r\n const content = this.props.field.length !== 0 ? LimingTable.renderTable(\r\n this.state.liming_columns,\r\n this.props.liming,\r\n this.calculateLiming,\r\n this.props.sum_dose,\r\n this.props.sum_price,\r\n this.props.changeExpand,\r\n this.props.expand,\r\n this.props.isLimingOpen,\r\n this.props.useLiming,\r\n this.props.useInputPrice,\r\n this.setUseInputPrice,\r\n this.calcSum) : <>\r\n return (
{content}
)\r\n\r\n }\r\n\r\n async populateData() {\r\n const numberFormat = new Intl.NumberFormat('ru-RU')\r\n const priceFormat = new Intl.NumberFormat('ru-RU', {maximumFractionDigits: 2, minimumFractionDigits: 2})\r\n\r\n function formatCell(value, price = false) {\r\n return value ? (price ? priceFormat : numberFormat).format(value.toString().replace(',', '.')).replace(',', '.') : 0\r\n }\r\n\r\n const fertilizers_mineral_list_full = this.props.fertilizer_mineral_list\r\n let fertilizers_mineral_list = fertilizers_mineral_list_full.filter(r => r.type === \"Известковое\").map((r) => ({\r\n value: r.id, label: r.name, element: r.element, price: r.price\r\n }))\r\n let isCellChange = []\r\n let isSelectChange = []\r\n\r\n const onLimingChange = (rowId, field) => (value1) => {\r\n let value = Number(value1.replace(/\\s/g, \"\").replace(',', '.'))\r\n const rowRegion = this.props.liming.find((row) => {\r\n return row.id === rowId;\r\n });\r\n set(rowRegion, field, value);\r\n if (field === 'fertilizer_dose' && fertilizers_mineral_list.length > 0) {\r\n const fertilizer = fertilizers_mineral_list.find((f) => f.value === rowRegion.fertilizer_id)\r\n if (fertilizer)\r\n set(rowRegion, 'price', (fertilizer.price * value * rowRegion.area))\r\n else\r\n set(rowRegion, 'price', 0)\r\n }\r\n const newCellChange = this.state.isCellChange.concat(rowId)\r\n this.setState({isCellChange: newCellChange})\r\n this.calcSum(this.props.useInputPrice)\r\n }\r\n const onFertilizerChange = (rowId, field) => (value) => {\r\n const row = this.props.liming.find((row) => {\r\n return row.id === rowId;\r\n });\r\n let fertilizer = this.props.fertilizer_mineral_list.find((f) => {\r\n return f.id === value.value;\r\n })\r\n row.fertilizer_id = fertilizer.id\r\n row.fertilizer_dose = (row.dose / fertilizer.element.caO).toFixed(2)\r\n set(row, field, value.value)\r\n set(row, 'price', (fertilizer.price * row.fertilizer_dose * row.area))\r\n this.calcSum(this.props.useInputPrice)\r\n isSelectChange.push(rowId)\r\n this.setState({update: !this.state.update})\r\n }\r\n\r\n const DropdownIndicator = (props: DropdownIndicatorProps) => {\r\n return (\r\n \r\n arrow-down\r\n \r\n );\r\n };\r\n\r\n function NoOptionsMessage(props) {\r\n if (props.options.length) return null;\r\n return Нет данных;\r\n }\r\n\r\n const liming_columns = [\r\n {\r\n title: 'Наим. эл. участка',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'name',\r\n width: 12,\r\n }, {\r\n title: 'pH',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'pH',\r\n width: 8,\r\n }, {\r\n title: 'Доза изв. мелиорантов,\\nт/га CaCO₃',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'dose',\r\n width: 15\r\n }, {\r\n title: 'Тип минерального удобрения',\r\n value: (row, {focus}) => {\r\n return (\r\n \r\n ({\r\n ...theme,\r\n border: '1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n colors: {\r\n ...theme.colors,\r\n primary: '#ABB3D1',\r\n },\r\n })}\r\n styles={{\r\n container: (baseStyles, state) => ({\r\n ...baseStyles,\r\n margin: '0 auto',\r\n marginTop: '10px',\r\n width: '90%',\r\n height: '53px',\r\n }),\r\n control: (baseStyles, state) => ({\r\n ...baseStyles,\r\n background: state.isFocused ? '#fff' : '#E9EAEE',\r\n height: '53px',\r\n width: '100%',\r\n }),\r\n menu: (baseStyles, state) => ({\r\n ...baseStyles,\r\n border: ' 1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n margin: '0',\r\n }),\r\n option: (baseStyles, state) => ({\r\n ...baseStyles,\r\n height: '45px',\r\n backgroundColor: state.isFocused ? 'rgba(226, 228, 239, 0.5)' : \"white\",\r\n }),\r\n menuList: (baseStyles, state) => ({\r\n ...baseStyles,\r\n paddingRight: '13px !important',\r\n \"::-webkit-scrollbar\":{\r\n width: '3px !important'\r\n },\r\n \"::-webkit-scrollbar-track\": {\r\n background: '#E2E4EF !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb\":{\r\n background: ' #ABB3D1 !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb:hover\":{\r\n background: ' #ABB3D1 !important',\r\n }\r\n })\r\n }}\r\n placeholder='Выберите удобрение'\r\n id=\"fertilizer-mineral-select\"\r\n value={fertilizers_mineral_list.find((f)=>f.value===row.fertilizer_id)}\r\n options={fertilizers_mineral_list}\r\n onChange={onFertilizerChange(row.id, 'fertilizer_id')}\r\n />\r\n \r\n );\r\n },\r\n id: 'organic',\r\n width: 30,\r\n getCellClassName: () => \"SpreadsheetGrid__cell_focused\"\r\n }, {\r\n title: 'Доза удобрения,\\nт/га',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n {/* eslint-disable-next-line eqeqeq */}\r\n
\r\n \r\n
\r\n
\r\n );\r\n },\r\n id: 'fertilizer_dose',\r\n width: 15\r\n }, {\r\n title: 'Стоимость удобрения, руб',\r\n value: (row, {focus}) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'price'\r\n }\r\n // , {\r\n // title: 'Стоимость внесения\\n руб/т',\r\n // value: (row, {focus}) => {\r\n // return (\r\n //
\r\n // \r\n //
\r\n // );\r\n // },\r\n // id: 'intro_price',\r\n // }\r\n ]\r\n\r\n\r\n this.setState({\r\n liming_columns: liming_columns,\r\n fertilizers_mineral_list: fertilizers_mineral_list,\r\n isCellChange: isCellChange\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport {Col, Row} from \"react-bootstrap\";\r\n\r\nexport default function Navbar({content}) {\r\n return \r\n \r\n {content[0]}\r\n {content[1]}\r\n \r\n \r\n {content[2]}\r\n {content[3]}\r\n \r\n \r\n {content[4]}\r\n {content[5]}\r\n \r\n ;\r\n}\r\n","import React, {Component} from 'react'\r\nimport {Input, Grid} from 'react-spreadsheet-grid'\r\nimport set from 'lodash.set'\r\nimport Select, {components, DropdownIndicatorProps} from 'react-select'\r\nimport arrow_up from \"../../assets/icons/dark_arrow_up.png\"\r\nimport arrow_down from \"../../assets/icons/dark_arrow_down.png\"\r\nimport {Typography} from \"@material-ui/core\"\r\n\r\nexport class CropDataTable extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n columns: [],\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.populateData().then(() =>{});\r\n }\r\n\r\n static renderTable(columns, data) {\r\n return (\r\n
\r\n row.id}\r\n isScrollable={false}\r\n disabledCellChecker={(row, columnId) => {\r\n return columnId === 'crop' ||\r\n columnId === 'yield_year'\r\n }}\r\n />\r\n
\r\n );\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n CropDataTable.renderTable(\r\n this.state.columns,\r\n this.state.data)\r\n );\r\n }\r\n\r\n async populateData() {\r\n const priceFormat = Intl.NumberFormat('ru-RU', {minimumFractionDigits: 2, maximumFractionDigits: 2})\r\n const numberFormat = Intl.NumberFormat('ru-RU')\r\n const crop_list = this.props.crop_list\r\n const data = this.props.data\r\n const onCropChange = () => (value) => {\r\n this.props.setCrop(value.value)\r\n set(data[0], 'cropId', value.value);\r\n }\r\n const cur_year = new Date().getFullYear()\r\n\r\n const year_list = [\r\n {label: cur_year, value: cur_year},\r\n {label: cur_year + 1, value: cur_year + 1},\r\n {label: cur_year + 2, value: cur_year + 2},\r\n {label: cur_year + 3, value: cur_year + 3},\r\n {label: cur_year + 4, value: cur_year + 4},\r\n {label: cur_year + 5, value: cur_year + 5},\r\n ]\r\n\r\n const onYieldPlanChange = () => (value1) => {\r\n let value = Number(value1.replace(/\\s/g, \"\").replace(',', '.'))\r\n this.props.setYieldPlan(value)\r\n set(data[0], 'yield_plan', value);\r\n }\r\n\r\n const onYieldPriceChange = () => (value1) => {\r\n let value = Number(value1.replace(/\\s/g, \"\").replace(',', '.'))\r\n this.props.setYieldPrice(value)\r\n set(data[0], 'yield_price', value);\r\n }\r\n\r\n const onYieldYearChange = () => (value) => {\r\n this.props.setYieldYear(value.value)\r\n set(data[0], 'yield_year', value.value);\r\n }\r\n\r\n const DropdownIndicator = (props: DropdownIndicatorProps) => {\r\n return (\r\n \r\n arrow-down\r\n \r\n );\r\n };\r\n\r\n function NoOptionsMessage(props) {\r\n if (props.options.length) return null;\r\n return Нет данных;\r\n }\r\n\r\n const columns = [\r\n {\r\n title: 'Планируемая культура',\r\n value: (row) => {\r\n return (\r\n ({\r\n ...theme,\r\n border: '1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n colors: {\r\n ...theme.colors,\r\n primary: '#ABB3D1',\r\n },\r\n })}\r\n styles={{\r\n container: (baseStyles, state) => ({\r\n ...baseStyles,\r\n width: '90%',\r\n height: '52px',\r\n }),\r\n control: (baseStyles, state) => ({\r\n ...baseStyles,\r\n background: state.isFocused ? '#fff' : '#E9EAEE',\r\n height: '52px',\r\n width: '100%',\r\n }),\r\n menu: (baseStyles) => ({\r\n ...baseStyles,\r\n border: ' 1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n margin: '0',\r\n }),\r\n option: (baseStyles, state) => ({\r\n ...baseStyles,\r\n height: '50px',\r\n backgroundColor: state.isFocused ? 'rgba(226, 228, 239, 0.5)' : \"white\",\r\n }),\r\n menuList: (baseStyles) => ({\r\n ...baseStyles,\r\n paddingRight: '13px !important',\r\n \"::-webkit-scrollbar\": {\r\n width: '3px !important'\r\n },\r\n \"::-webkit-scrollbar-track\": {\r\n background: '#E2E4EF !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb\": {\r\n background: ' #ABB3D1 !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb:hover\": {\r\n background: ' #ABB3D1 !important',\r\n }\r\n })\r\n }}\r\n options={crop_list}\r\n key={this.state.fieldChange}\r\n placeholder=\"Выберите культуру\"\r\n defaultValue={crop_list[crop_list.findIndex((r) => r.value === row.cropId)]}\r\n onChange={onCropChange()}\r\n />\r\n );\r\n },\r\n id: 'crop',\r\n getCellClassName: () => \"SpreadsheetGrid__cell_focused\"\r\n\r\n }, {\r\n title: 'Планируемая урожайность, ц/га',\r\n value: (row, {focus}) => {\r\n return (\r\n // eslint-disable-next-line eqeqeq\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'yield_plan',\r\n\r\n }, {\r\n title: 'Год урожая',\r\n value: (row, {focus}) => {\r\n return (\r\n ({\r\n ...theme,\r\n border: '1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n colors: {\r\n ...theme.colors,\r\n primary: '#ABB3D1',\r\n },\r\n })}\r\n styles={{\r\n container: (baseStyles, state) => ({\r\n ...baseStyles,\r\n width: '90%',\r\n height: '52px',\r\n }),\r\n control: (baseStyles, state) => ({\r\n ...baseStyles,\r\n background: state.isFocused ? '#fff' : '#E9EAEE',\r\n height: '52px',\r\n width: '100%',\r\n }),\r\n menu: (baseStyles, state) => ({\r\n ...baseStyles,\r\n border: ' 1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n margin: '0',\r\n }),\r\n option: (baseStyles, state) => ({\r\n ...baseStyles,\r\n height: '50px',\r\n backgroundColor: state.isFocused ? 'rgba(226, 228, 239, 0.5)' : \"white\",\r\n }),\r\n menuList: (baseStyles, state) => ({\r\n ...baseStyles,\r\n paddingRight: '13px !important',\r\n \"::-webkit-scrollbar\": {\r\n width: '3px !important'\r\n },\r\n \"::-webkit-scrollbar-track\": {\r\n background: '#E2E4EF !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb\": {\r\n background: ' #ABB3D1 !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb:hover\": {\r\n background: ' #ABB3D1 !important',\r\n }\r\n })\r\n }}\r\n options={year_list}\r\n placeholder=\"Выберите год\"\r\n defaultValue={year_list[year_list.findIndex((r) => r.value === row.yield_year)]}\r\n onChange={onYieldYearChange()}\r\n />\r\n );\r\n },\r\n id: 'yield_year',\r\n getCellClassName: () => \"SpreadsheetGrid__cell_focused\"\r\n }, {\r\n title: 'Ориентировочная цена урожая, руб/т',\r\n value: (row, {focus}) => {\r\n return (\r\n // eslint-disable-next-line eqeqeq\r\n
\r\n \r\n
\r\n );\r\n },\r\n id: 'yield_price',\r\n }\r\n ];\r\n\r\n this.setState({columns: columns, data: data});\r\n }\r\n\r\n}\r\n","/* eslint-disable */\r\nimport React, {Component} from 'react';\r\nimport authService from \"../api-authorization/AuthorizeService\";\r\nimport Select, {components, DropdownIndicatorProps} from 'react-select';\r\nimport {FieldsTable} from \"./FieldsTable\";\r\nimport {Button, Col, Form, Modal} from \"react-bootstrap\";\r\nimport Row from 'react-bootstrap/Row';\r\nimport {PredecessorTable} from \"./PredecessorTable\";\r\nimport {CalculatingElementsTable} from \"./CalculatingElementsTable\";\r\nimport {FertilizersTable} from \"./FertilizersTable\";\r\nimport {FertilizersCalculationTables} from \"./FertilizersCalculationTables\";\r\nimport {LimingTable} from \"./LimingTable\";\r\nimport FieldInfoBar from \"./FieldInfoBar\";\r\nimport DataTable from \"react-data-table-component\";\r\nimport {CropDataTable} from \"./CropDataTable\";\r\nimport arrow_down from '../../assets/icons/dark_arrow_down.png';\r\nimport arrow_up from '../../assets/icons/dark_arrow_up.png';\r\nimport {Typography} from \"@material-ui/core\";\r\nimport {Collapse} from 'react-collapse';\r\nimport search from \"../../assets/icons/search.png\";\r\n\r\nexport class SelectField extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n fields_name: [],\r\n fields: [],\r\n selected_field: [],\r\n fieldId: \"\",\r\n cropId: \"\",\r\n yield_plan: 0,\r\n yield_year: new Date().getFullYear(),\r\n usePredecessor: true,\r\n fieldChange: false,\r\n fertilizerChange: false,\r\n predecessorChange: false,\r\n calculationsChange: false,\r\n soils: [],\r\n soil_list: [],\r\n crops: [],\r\n crop_list: [],\r\n fertilizers: [],\r\n fertilizer_organic_list: [],\r\n mineralCoef: [],\r\n calculation_data: [],\r\n parent_report: [],\r\n calculateMessage: [],\r\n calculatedField: [],\r\n saveModalShow: false,\r\n fertilizerModalShow: false,\r\n report_name: '',\r\n report_info: {date_create: \"\", date_change: \"\", need_to_recalc: false},\r\n saveMessage: '',\r\n dose: [],\r\n fertilizer_calculation_data: {liming: [], feed: [], main: [], pre_sowing: [], balance: []},\r\n isLimingOpen: false,\r\n updateFertilizerlist: false,\r\n isLimingChange: false,\r\n mineralFertilizer: [],\r\n fertilizerCalculationChange: false,\r\n fertilizerCalculationsOpen: false,\r\n recalcIsVisible: true,\r\n fertilizer_limit: [0, 0, 0, 0, 0, 0],\r\n liming_sum_price: 0,\r\n liming_sum_dose: 0,\r\n fertilizer_sum_price: 0,\r\n soilGroup: [],\r\n limit_yield: {value: 0, element: \"\"},\r\n is_element_active: {n: true, p2O5: true, k2O: true, s: true, caO: true, mg: true},\r\n A: [],\r\n c: [],\r\n yield_price: 0,\r\n coefP: 3,\r\n other_price: {seeds: 0, szr: 0, yield: 0, input: 0},\r\n notes: '',\r\n changed_fertilizers_rows: [],\r\n expand: {\r\n regions: false,\r\n fertilizers: false,\r\n predecessor: false,\r\n liming: false,\r\n calculations: true,\r\n other: false\r\n },\r\n not_calculate_fertilizers_list: new Set(),\r\n prev_year: '',\r\n organic_sum_price: 0,\r\n useInputPrice: {fertilizers_calc: false, liming: false, organic: false},\r\n default_report_name: '',\r\n isNext: false,\r\n report_loading: false\r\n }\r\n this.handleChangeField = this.handleChangeField.bind(this);\r\n this.handleChangeFertilizer = this.handleChangeFertilizer.bind(this);\r\n this.handleChangePredecessorTable = this.handleChangePredecessorTable.bind(this);\r\n this.calculate = this.calculate.bind(this)\r\n this.saveAsCalculation = this.saveAsCalculation.bind(this)\r\n this.saveCalculation = this.saveCalculation.bind(this)\r\n this.SaveModal = this.SaveModal.bind(this)\r\n this.ChooseFertilizerModal = this.ChooseFertilizerModal.bind(this)\r\n this.calculate_main = this.calculate_main.bind(this)\r\n this.limingChange = this.limingChange.bind(this)\r\n this.fertilizerCalculationsInit = this.fertilizerCalculationsInit.bind(this)\r\n this.calculateLimit = this.calculateLimit.bind(this)\r\n this.handleChangeActiveElement = this.handleChangeActiveElement.bind(this)\r\n this.recalculate_A = this.recalculate_A.bind(this)\r\n this.calcNextYear = this.calcNextYear.bind(this)\r\n this.RecalcReport = this.RecalcReport.bind(this)\r\n this.syncStock = this.syncStock.bind(this)\r\n this.getResidue = this.getResidue.bind(this)\r\n }\r\n\r\n componentDidMount() {\r\n this.populateFieldsData();\r\n }\r\n\r\n async getResidue(field_id) {\r\n if (!this.isNext) {\r\n try {\r\n const response = await fetch('api/cropResidue/getFromCropwise', {\r\n method: 'POST',\r\n headers: !this.props.token\r\n ? { 'Content-Type': 'application/json' }\r\n : {\r\n 'Authorization': `Bearer ${this.props.token}`,\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({ field_id: field_id, year: this.state.yield_year }),\r\n });\r\n if (response.ok) {\r\n const data = await response.json();\r\n if (data.crop !== 0) {\r\n this.state.selected_field[0].regions.map((r) => {\r\n r.residue.cropId = data.crop\r\n })\r\n if (data.yield !== 0) {\r\n this.state.selected_field[0].regions.map((r) => {\r\n r.residue.yield = Math.round(data.yield*10)/10\r\n this.state.predecessorChange = !this.state.predecessorChange\r\n })\r\n }\r\n this.handleChangePredecessorTable()\r\n \r\n }\r\n } else {\r\n\r\n console.error('Ошибка! HTTP статус:', response.status);\r\n }\r\n } catch (error) {\r\n console.error('Ошибка при выполнении запроса:', error);\r\n }\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (this.state.fieldId !== prevState.fieldId) {\r\n // eslint-disable-next-line array-callback-return\r\n this.state.fields.map((field) => {\r\n if (field.id === this.state.fieldId) {\r\n this.setState({selected_field: [field]})\r\n }\r\n }\r\n );\r\n }\r\n if (this.state.selected_field !== prevState.selected_field && !this.props.report_id) {\r\n this.setState({\r\n calculationChange: !this.state.calculationChange,\r\n predecessorChange: !this.state.predecessorChange,\r\n fertilizerChange: !this.state.fertilizerChange,\r\n fieldChange: !this.state.fieldChange,\r\n isLimingChange: !this.state.isLimingChange,\r\n isLimingOpen: false,\r\n fertilizerCalculationsOpen: false\r\n });\r\n let data = [];\r\n // eslint-disable-next-line array-callback-return\r\n this.state.selected_field[0].regions.map((region) => {\r\n data.push({\r\n name: region.name,\r\n regionId: region.id,\r\n element: {n: 0, p2O5: 0, k2O: 0, s: 0, caO: 0, mg: 0}\r\n })\r\n });\r\n this.setState({\r\n calculation_data: data,\r\n calculated_field: [{expand: true, element: {n: 0, p2O5: 0, k2O: 0, s: 0, caO: 0, mg: 0}}]\r\n }, () => {\r\n const field_element = this.state.calculated_field[0].element;\r\n const area = this.state.selected_field[0].area;\r\n this.setState({\r\n dose: [{\r\n expand: true,\r\n element: {\r\n n: Math.round(field_element.n / area * 10) / 10,\r\n p2O5: Math.round(field_element.p2O5 / area * 10) / 10,\r\n k2O: Math.round(field_element.k2O / area * 10) / 10,\r\n s: Math.round(field_element.s / area * 10) / 10,\r\n caO: Math.round(field_element.caO / area * 10) / 10,\r\n mg: Math.round(field_element.mg / area * 10) / 10,\r\n }\r\n }]\r\n })\r\n this.calculateLimit()\r\n })\r\n this.limingChange(true)\r\n }\r\n if (this.state.calculation_data !== prevState.calculation_data) {\r\n this.setState({calculationChange: !this.state.calculationChange})\r\n }\r\n if (this.props.report_id !== prevProps.report_id) {\r\n window.location.reload();\r\n }\r\n if (this.state.dose !== prevState.dose) {\r\n // eslint-disable-next-line react/no-direct-mutation-state\r\n this.state.fertilizer_calculation_data.balance = this.state.dose\r\n this.setState({fertilizerCalculationChange: !this.state.fertilizerCalculationChange})\r\n }\r\n if (this.state.fertilizerCalculationsOpen !== prevState.fertilizerCalculationsOpen && !this.props.report_id) {\r\n this.fertilizerCalculationsInit()\r\n }\r\n if (this.state.fertilizer_limit !== prevState.fertilizer_limit) {\r\n this.calculateLimit()\r\n }\r\n }\r\n\r\n handleChangeActiveElement(el) {\r\n // eslint-disable-next-line react/no-direct-mutation-state\r\n this.state.is_element_active[el] = !this.state.is_element_active[el]\r\n this.setState({\r\n calculationChange: !this.state.calculationChange,\r\n fertilizerCalculationChange: !this.state.fertilizerCalculationChange\r\n })\r\n }\r\n\r\n limingChange(changeField = false) {\r\n if (this.state.fertilizer_calculation_data.liming.length === 0 || changeField || this.state.fertilizer_calculation_data.liming.length !== this.state.selected_field[0].regions.length) {\r\n let liming = []\r\n this.state.selected_field[0].regions.map((region) => liming.push({\r\n id: region.id,\r\n name: region.name,\r\n soilId: region.soilId,\r\n soil: this.state.soils.find((f) => f.id === region.soilId).name,\r\n humus: region.humus,\r\n pH: region.pH,\r\n dose: 0,\r\n area: region.area,\r\n fertilizer_dose: 0,\r\n fertilizer_id: null,\r\n intro_price: 0\r\n }))\r\n this.state.fertilizer_calculation_data.liming = liming\r\n } else {\r\n this.state.selected_field[0].regions.map((region, i) => {\r\n this.state.fertilizer_calculation_data.liming[i].id = region.id\r\n this.state.fertilizer_calculation_data.liming[i].name = region.name\r\n this.state.fertilizer_calculation_data.liming[i].soilId = region.soilId\r\n this.state.fertilizer_calculation_data.liming[i].soil = this.state.soils.find((f) => f.id === region.soilId).name\r\n this.state.fertilizer_calculation_data.liming[i].humus = region.humus\r\n this.state.fertilizer_calculation_data.liming[i].pH = region.pH\r\n this.state.fertilizer_calculation_data.liming[i].area = region.area\r\n\r\n })\r\n }\r\n this.setState({isLimingChange: !this.state.isLimingChange})\r\n // this.state.fertilizer_calculation_data.liming.length===0?\r\n // this.state.fertilizer_calculation_data.liming =\r\n //\r\n }\r\n\r\n fertilizerCalculationsInit() {\r\n this.state.fertilizer_calculation_data.balance = [{\r\n price: 0,\r\n input_price: 0,\r\n element: this.state.dose[0] ? this.state.dose[0].element\r\n : {n: 0, p2O5: 0, k2O: 0, s: 0, mg: 0, caO: 0}\r\n }]\r\n this.state.fertilizer_calculation_data.main = [{\r\n id: 0,\r\n price: 0,\r\n input_price: 0,\r\n fertilizerId: 0,\r\n fertilizer_count: 0,\r\n element: {n: 0, p2O5: 0, k2O: 0, s: 0, caO: 0, mg: 0},\r\n }]\r\n this.state.fertilizer_calculation_data.pre_sowing = [{\r\n input_price: 0,\r\n id: 0,\r\n price: 0,\r\n fertilizerId: 0,\r\n fertilizer_count: 0,\r\n element: {n: 0, p2O5: 0, k2O: 0, s: 0, caO: 0, mg: 0},\r\n }]\r\n this.state.fertilizer_calculation_data.feed = [{\r\n id: 0,\r\n input_price: 0,\r\n price: 0,\r\n fertilizerId: 0,\r\n fertilizer_count: 0,\r\n element: {n: 0, p2O5: 0, k2O: 0, s: 0, caO: 0, mg: 0},\r\n }]\r\n this.setState({fertilizerCalculationChange: !this.state.fertilizerCalculationChange})\r\n }\r\n\r\n handleChangeField() {\r\n this.limingChange()\r\n this.setState({\r\n predecessorChange: !this.state.predecessorChange,\r\n isLimingChange: !this.state.isLimingChange,\r\n fertilizerChange: !this.state.fertilizerChange,\r\n calculationChange: !this.state.calculationChange,\r\n })\r\n this.calculate(false, this.state.yield_plan)\r\n }\r\n\r\n handleChangeFertilizer() {\r\n this.limingChange()\r\n this.setState({\r\n predecessorChange: !this.state.predecessorChange,\r\n isLimingChange: !this.state.isLimingChange,\r\n fieldChange: !this.state.fieldChange,\r\n calculationChange: !this.state.calculationChange,\r\n }, () => {\r\n this.calculate(false, this.state.yield_plan)\r\n });\r\n }\r\n\r\n handleChangePredecessorTable(change) {\r\n this.limingChange()\r\n this.setState({\r\n fieldChange: !this.state.fieldChange,\r\n fertilizerChange: !this.state.fertilizerChange,\r\n calculationChange: this.state.calculationChange,\r\n isLimingChange: !this.state.isLimingChange,\r\n }, () => this.calculate(false, this.state.yield_plan))\r\n if (change) {\r\n this.setState({predecessorChange: !this.state.predecessorChange})\r\n }\r\n }\r\n\r\n async saveAsCalculation() {\r\n this.setState({default_report_name: document.getElementById(\"region_name_input\").value}, () => {\r\n this.setState({saveMessage: this.state.default_report_name === \"\" ? \"Введите название отчета\" : \"\"})\r\n const fertilizer_sum_price = ((this.state.isLimingOpen ? this.state.liming_sum_price : 0) + this.state.fertilizer_sum_price + this.state.organic_sum_price)\r\n const yield_sum_price = (this.state.yield_price * this.state.yield_plan * (this.state.selected_field.length !== 0 ? this.state.selected_field[0].area : 0) / 10)\r\n let main = this.state.fertilizer_calculation_data.main\r\n this.state.changed_fertilizers_rows.map((r) => {\r\n if (r.visible) {\r\n main.push({\r\n id: r.id.replaceAll('n', ''),\r\n fertilizerId: r.fertilizerId,\r\n fertilizer: r.fertilizer,\r\n fertilizer_count: r.fertilizer_count,\r\n price: r.price,\r\n element: r.element,\r\n input_price: r.input_price,\r\n })\r\n }\r\n })\r\n let use_fertilizer_list = []\r\n this.state.mineralFertilizer.map((fertilizer) => {\r\n if (fertilizer.inUse)\r\n use_fertilizer_list.push({id: 0, fertilizer_Id: fertilizer.id, calculationId: 0})\r\n })\r\n let calculation = {\r\n \"id\": 0,\r\n 'prevCalcId': (this.state.prev_year !== null && this.state.prev_year.length !== 0) ? this.state.prev_year : null,\r\n \"name\": this.state.default_report_name,\r\n \"field\": this.state.selected_field[0],\r\n \"fieldId\": 0,\r\n \"yield\": this.state.yield_plan,\r\n \"cropId\": this.state.cropId,\r\n \"sumElements\": this.state.calculated_field[0].element,\r\n \"sumElementArea\": this.state.dose[0].element,\r\n \"crop\": this.state.crops.find((f) => {\r\n return f.id === this.state.cropId;\r\n }),\r\n \"usePredecessor\": true,\r\n \"calculations\": [],\r\n 'use_fertilizer_list': use_fertilizer_list,\r\n 'yield_price': this.state.yield_price,\r\n 'yield_year': this.state.yield_year,\r\n 'fertilizer_sum_price': fertilizer_sum_price,\r\n 'yield_sum_price': yield_sum_price,\r\n 'isLimingOpen': this.state.isLimingOpen,\r\n 'coefP': this.state.coefP,\r\n 'liming_sum_price': this.state.liming_sum_price,\r\n 'liming_sum_dose': this.state.liming_sum_dose,\r\n 'is_element_active': this.state.is_element_active,\r\n 'main_rows': main,\r\n 'pre_sowing_rows': this.state.fertilizer_calculation_data.pre_sowing,\r\n 'feed_rows': this.state.fertilizer_calculation_data.feed,\r\n 'notes': this.state.notes,\r\n 'other_price': this.state.other_price,\r\n\r\n }\r\n this.state.calculation_data.map((region, i) => {\r\n calculation.calculations.push({\r\n \"id\": 0,\r\n \"calculationId\": 0,\r\n \"elements\": region.element,\r\n \"regionId\": region.regionId,\r\n 'liming_dose': this.state.fertilizer_calculation_data.liming[i].dose,\r\n 'liming_fertilizer_dose': this.state.fertilizer_calculation_data.liming[i].fertilizer_dose,\r\n 'liming_fertilizerId': this.state.fertilizer_calculation_data.liming[i].fertilizer_id,\r\n 'liming_input_price': this.state.fertilizer_calculation_data.liming[i].intro_price\r\n })\r\n })\r\n fetch('api/calculation', {\r\n method: 'POST',\r\n headers: !this.props.token ? {} : {\r\n 'Authorization': `Bearer ${this.props.token}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(calculation)\r\n }).then((response) => {\r\n if (response.ok) {\r\n window.location.assign('/reports');\r\n } else {\r\n this.setState({saveMessage: \"Ошибка\"})\r\n }\r\n })\r\n })\r\n\r\n }\r\n\r\n async saveCalculation() {\r\n let main = this.state.fertilizer_calculation_data.main\r\n this.state.changed_fertilizers_rows.map((r) => {\r\n if (r.visible) {\r\n main.push({\r\n id: r.id.replaceAll('n', ''),\r\n fertilizerId: r.fertilizerId,\r\n fertilizer: r.fertilizer,\r\n fertilizer_count: r.fertilizer_count,\r\n price: r.price,\r\n element: r.element,\r\n input_price: r.input_price,\r\n })\r\n }\r\n })\r\n let use_fertilizer_list = []\r\n this.state.mineralFertilizer.map((fertilizer) => {\r\n if (fertilizer.inUse)\r\n use_fertilizer_list.push({id: 0, fertilizer_Id: fertilizer.id, calculationId: 0})\r\n })\r\n const fertilizer_sum_price = ((this.state.isLimingOpen ? this.state.liming_sum_price : 0) + this.state.fertilizer_sum_price + this.state.organic_sum_price)\r\n const yield_sum_price = (this.state.yield_price * this.state.yield_plan * (this.state.selected_field.length !== 0 ? this.state.selected_field[0].area : 0) / 10)\r\n let calculation = {\r\n \"id\": 0,\r\n \"name\": this.state.report_name,\r\n 'prevCalcId': this.state.prev_year,\r\n \"field\": this.state.selected_field[0],\r\n \"fieldId\": 0,\r\n \"yield\": this.state.yield_plan,\r\n \"cropId\": this.state.cropId,\r\n \"sumElements\": this.state.calculated_field[0].element,\r\n \"sumElementArea\": this.state.dose[0].element,\r\n \"crop\": this.state.crops.find((f) => {\r\n return f.id === this.state.cropId;\r\n }),\r\n \"usePredecessor\": true,\r\n \"calculations\": [],\r\n 'yield_price': this.state.yield_price,\r\n 'use_fertilizer_list': use_fertilizer_list,\r\n 'yield_year': this.state.yield_year,\r\n 'fertilizer_sum_price': fertilizer_sum_price,\r\n 'yield_sum_price': yield_sum_price,\r\n 'isLimingOpen': this.state.isLimingOpen,\r\n 'coefP': this.state.coefP,\r\n 'liming_sum_price': this.state.liming_sum_price,\r\n 'liming_sum_dose': this.state.liming_sum_dose,\r\n 'is_element_active': this.state.is_element_active,\r\n 'main_rows': main,\r\n 'pre_sowing_rows': this.state.fertilizer_calculation_data.pre_sowing,\r\n 'feed_rows': this.state.fertilizer_calculation_data.feed,\r\n 'notes': this.state.notes,\r\n 'other_price': this.state.other_price,\r\n }\r\n this.state.calculation_data.map((region, i) => {\r\n calculation.calculations.push({\r\n \"id\": 0,\r\n \"calculationId\": 0,\r\n \"elements\": region.element,\r\n \"regionId\": region.regionId,\r\n 'liming_dose': this.state.fertilizer_calculation_data.liming[i].dose,\r\n 'liming_fertilizer_dose': this.state.fertilizer_calculation_data.liming[i].fertilizer_dose,\r\n 'liming_fertilizerId': this.state.fertilizer_calculation_data.liming[i].fertilizer_id,\r\n 'liming_input_price': this.state.fertilizer_calculation_data.liming[i].intro_price\r\n })\r\n })\r\n fetch('api/calculation?id=' + this.props.report_id, {\r\n method: 'PUT',\r\n headers: !this.props.token ? {} : {\r\n 'Authorization': `Bearer ${this.props.token}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(calculation)\r\n }).then((response) => {\r\n if (response.ok) {\r\n window.location.assign('/reports');\r\n } else {\r\n this.setState({saveMessage: \"Ошибка\"})\r\n }\r\n })\r\n }\r\n\r\n calculate(limit, yield_plan) {\r\n try {\r\n if (!this.state.selected_field[0]) {\r\n this.setState({calculateMessage: 3})\r\n return false\r\n }\r\n if (!this.state.cropId) {\r\n this.setState({calculateMessage: 2})\r\n return false\r\n }\r\n let newData = []\r\n let vinos = this.multiplyScalar(this.getData(this.state.crops.find((f) => {\r\n return f.id === this.state.cropId;\r\n }).nutrient), yield_plan)\r\n let twoYearMineralCoef = this.getData(this.state.mineralCoef.find((f) => {\r\n return f.year === \"2\";\r\n }).coef)\r\n let cropCoefSoil = this.getData(this.state.crops.find((f) => {\r\n return f.id === this.state.cropId;\r\n }).coefSoil)\r\n let cropCoefFertilizer = this.getData(this.state.crops.find((f) => {\r\n return f.id === this.state.cropId;\r\n }).coefFertilizer)\r\n let cropBobCoef = this.state.crops.find((f) => {\r\n return f.id === this.state.cropId;\r\n }).coefBob\r\n this.state.selected_field[0].regions.map((region) => {\r\n let cropResidue = this.state.crops.find((f) => {\r\n return f.id === region.residue.cropId;\r\n })\r\n let cropYieldResidue = cropResidue.cropGroup.cropResidues.sort(function (a, b) {\r\n if (a.yield > b.yield) {\r\n return -1;\r\n }\r\n if (a.yield < b.yield) {\r\n return 1;\r\n }\r\n return 0;\r\n })\r\n let residueCoef = cropYieldResidue[0]\r\n let factYield = region.residue.yield\r\n cropYieldResidue.map((r) => {\r\n if (factYield <= r.yield) {\r\n residueCoef = r\r\n }\r\n })\r\n let need\r\n let fromSoil\r\n if (this.state.usePredecessor) {\r\n let twoYearMineral = this.multiplyVector(this.getData(region.residue.mineralElement), twoYearMineralCoef)\r\n let temp = this.minusVector(vinos, twoYearMineral)\r\n if (region.residue.fertilizerOrganic) {\r\n let organicCount = this.multiplyScalar(this.getData(region.residue.fertilizerOrganic.consuming2), region.residue.fertilizerCount)\r\n need = this.minusVector(temp, organicCount)\r\n } else {\r\n need = temp\r\n }\r\n let residue = this.multiplyScalar(this.getData(residueCoef.residueElement), factYield)\r\n fromSoil = this.multiplyVector(this.plusVector(this.getData(region.element), residue), cropCoefSoil)\r\n } else {\r\n need = vinos\r\n fromSoil = this.multiplyVector(this.getData(region.element), cropCoefSoil)\r\n }\r\n let needFull\r\n needFull = this.minusVector(need, fromSoil)\r\n if (region.fertilizerOrganic) {\r\n let OY = this.multiplyScalar(this.getData(region.fertilizerOrganic.consuming1), region.fertilizerCount)\r\n needFull = this.minusVector(needFull, OY)\r\n }\r\n let ph = region.pH\r\n needFull[1] = needFull[1] * this.phCoefP2O5(ph)\r\n needFull[2] = needFull[2] * this.phCoefK2O(ph)\r\n let needFertilizer = this.multiplyVector(this.diffVector(needFull, cropCoefFertilizer), this.getData(region.soil.coef))\r\n needFertilizer[0] = needFertilizer[0] * cropBobCoef\r\n if (this.state.isLimingOpen && this.state.fertilizer_calculation_data.liming.length > 0) {\r\n let fertilizerLiming = this.state.fertilizer_calculation_data.liming.find((r) => r.id == region.id)\r\n let fertilizerMineral = this.state.mineralFertilizer.find(r => r.id == fertilizerLiming.fertilizer_id)\r\n let fertilizerMineralOut = this.multiplyScalar(this.getData(fertilizerMineral.element), 1000 * fertilizerLiming.fertilizer_dose)\r\n needFertilizer = this.minusVector(needFertilizer, fertilizerMineralOut)\r\n\r\n }\r\n newData.push(needFertilizer)\r\n })\r\n\r\n let regions_area = [];\r\n\r\n let data = [];\r\n this.state.selected_field[0].regions.map((region, i) => {\r\n regions_area.push(Number(region.area));\r\n data.push({\r\n regionId: region.id,\r\n name: region.name, element: {\r\n n: Math.round(newData[i][0]),\r\n p2O5: Math.round(newData[i][1]),\r\n k2O: Math.round(newData[i][2]),\r\n s: Math.round(newData[i][3]),\r\n caO: Math.round(newData[i][4]),\r\n mg: Math.round(newData[i][5]),\r\n }\r\n })\r\n });\r\n let sum = [0, 0, 0, 0, 0, 0];\r\n if (true) {\r\n newData.map((row, j) => {\r\n sum.map((el, i) => {\r\n sum[i] += Math.round((row[i] > 0 ? row[i] : 0)) * regions_area[j];\r\n })\r\n })\r\n } else {\r\n newData.map((row, j) => {\r\n sum.map((el, i) => {\r\n sum[i] += Math.round(row[i]) * regions_area[j];\r\n })\r\n })\r\n }\r\n const field_row = [{\r\n expand: true,\r\n element: {n: sum[0], p2O5: sum[1], k2O: sum[2], s: sum[3], caO: sum[4], mg: sum[5]}\r\n }];\r\n const area = this.state.selected_field[0].area;\r\n const balance = [\r\n (Math.round(sum[0] / area * 10) / 10).toFixed(1),\r\n (Math.round(sum[1] / area * 10) / 10).toFixed(1),\r\n (Math.round(sum[2] / area * 10) / 10).toFixed(1),\r\n (Math.round(sum[3] / area * 10) / 10).toFixed(1),\r\n (Math.round(sum[4] / area * 10) / 10).toFixed(1),\r\n (Math.round(sum[5] / area * 10) / 10).toFixed(1)\r\n ]\r\n if (!limit) {\r\n this.setState({\r\n calculation_data: data,\r\n calculated_field: field_row,\r\n calculateMessage: 0,\r\n fertilizerCalculationsOpen: true\r\n }, () => {\r\n const field_element = this.state.calculated_field[0].element;\r\n this.setState({\r\n dose: [{\r\n expand: true,\r\n element: {\r\n n: (Math.round(field_element.n / area * 10) / 10).toFixed(1),\r\n p2O5: (Math.round(field_element.p2O5 / area * 10) / 10).toFixed(1),\r\n k2O: (Math.round(field_element.k2O / area * 10) / 10).toFixed(1),\r\n s: (Math.round(field_element.s / area * 10) / 10).toFixed(1),\r\n caO: (Math.round(field_element.caO / area * 10) / 10).toFixed(1),\r\n mg: (Math.round(field_element.mg / area * 10) / 10).toFixed(1),\r\n }\r\n }]\r\n })\r\n })\r\n }\r\n return balance\r\n\r\n } catch {\r\n this.setState({calculateMessage: 1})\r\n return false\r\n }\r\n }\r\n\r\n getData(data) {\r\n let newData = []\r\n Object.keys(data).map((currentKey) => {\r\n newData.push(data[currentKey])\r\n })\r\n return newData;\r\n }\r\n\r\n multiplyVector(A, B) {\r\n let newData = []\r\n for (let i = 0; i < A.length; i++) {\r\n newData.push(parseFloat(A[i]) * parseFloat(B[i]))\r\n }\r\n return newData\r\n }\r\n\r\n minusVector(A, B) {\r\n let newData = []\r\n for (let i = 0; i < A.length; i++) {\r\n newData.push(parseFloat(A[i]) - parseFloat(B[i]))\r\n }\r\n return newData\r\n }\r\n\r\n diffVector(A, B) {\r\n let newData = []\r\n for (let i = 0; i < A.length; i++) {\r\n newData.push(parseFloat(A[i]) / parseFloat(B[i]))\r\n }\r\n return newData\r\n }\r\n\r\n plusVector(A, B) {\r\n let newData = []\r\n for (let i = 0; i < A.length; i++) {\r\n newData.push(parseFloat(A[i]) + parseFloat(B[i]))\r\n }\r\n return newData\r\n }\r\n\r\n multiplyScalar(A, B) {\r\n let newData = []\r\n A.map((a) => {\r\n newData.push(parseFloat(a) * parseFloat(B))\r\n })\r\n return newData\r\n }\r\n\r\n phCoefP2O5(ph) {\r\n let coef\r\n if (ph < 5) {\r\n coef = 1.2\r\n } else if (ph >= 5 && ph <= 5.5) {\r\n coef = (-ph * 0.4) + 3.2\r\n } else if (ph > 5.5) {\r\n coef = 1\r\n }\r\n return coef\r\n }\r\n\r\n phCoefK2O(ph) {\r\n let coef\r\n if (ph < 5.6) {\r\n coef = 1.2\r\n } else if (ph >= 5.6 && ph <= 6.0) {\r\n coef = (-ph * 0.5) + 4\r\n } else if (ph > 6.0) {\r\n coef = 1\r\n }\r\n return coef\r\n }\r\n\r\n SaveModal(props) {\r\n return (\r\n this.setState({saveModalShow: false})}\r\n centered>\r\n \r\n Введите название отчета\r\n \r\n \r\n
\r\n \r\n Наименование\r\n {\r\n if (e.key === \"Enter\") {\r\n e.preventDefault()\r\n this.saveAsCalculation()\r\n }\r\n }\r\n }\r\n defaultValue={this.state.default_report_name}\r\n autoFocus\r\n autocomplete=\"off\"\r\n />\r\n \r\n
\r\n

{this.state.saveMessage}

\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n recalculate_A(isFertilizersList) {\r\n let A = []\r\n if (this.state.mineralFertilizer.length > 0) {\r\n Object.keys(this.state.mineralFertilizer[0].element).map((currentKey) => {\r\n let temp = []\r\n this.state.mineralFertilizer.map(p => {\r\n if (p.inUse && !this.state.not_calculate_fertilizers_list.has(p.id)) {\r\n temp.push(p.element[currentKey])\r\n } else\r\n temp.push(0)\r\n })\r\n A.push(temp)\r\n })\r\n }\r\n this.setState({A: A}, () => isFertilizersList ? {} : this.calculate_main())\r\n }\r\n\r\n filterFertilizerList(value) {\r\n let rows = this.state.mineralFertilizer\r\n rows.forEach((row) => {\r\n row.hide = !row.name.toLowerCase().includes(value.toLowerCase())\r\n })\r\n this.setState({mineralFertilizer: rows})\r\n }\r\n\r\n\r\n syncStock(){\r\n let fertilizers = this.state.mineralFertilizer\r\n fertilizers.map((fertilizer)=>{\r\n fertilizer.inUse = fertilizer.inStorage\r\n }\r\n )\r\n this.setState({mineralFertilizer: fertilizers},()=>this.setState({updateFertilizerlist: !this.state.updateFertilizerlist}))\r\n }\r\n\r\n\r\n ChooseFertilizerModal(props) {\r\n const columns = [\r\n {\r\n cell: (row) =>\r\n ,\r\n width: \"5%\"\r\n }, {\r\n name: 'Наименование',\r\n selector: row => row.name,\r\n sortable: true,\r\n width: \"35%\",\r\n wrap: true\r\n }, {\r\n name: 'N',\r\n selector: row => row.element.n,\r\n width: \"10%\"\r\n }, {\r\n name: 'P₂O₅',\r\n selector: row => row.element.p2O5,\r\n width: \"10%\"\r\n }, {\r\n name: 'K₂O',\r\n selector: row => row.element.k2O,\r\n width: \"10%\"\r\n }, {\r\n name: 'S',\r\n selector: row => row.element.s,\r\n width: \"10%\"\r\n }, {\r\n name: 'CaO',\r\n selector: row => row.element.caO,\r\n width: \"10%\"\r\n }, {\r\n name: 'Mg',\r\n selector: row => row.element.mg,\r\n width: \"10%\"\r\n }]\r\n return (\r\n this.setState({fertilizerModalShow: false})}\r\n centered>\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.filterFertilizerList(e.target.value)}\r\n className='search-input'/>\r\n search\r\n
\r\n
\r\n
\r\n }\r\n customStyles={{\r\n rows: {\r\n style: {\r\n height: '0',\r\n }\r\n },\r\n head: {\r\n style: {\r\n height: '73px!important',\r\n fontWeight: '500',\r\n fontSize: '20px',\r\n borderBottom: '0.5px solid #ABB3D1 !important'\r\n }\r\n },\r\n headRow: {\r\n style: {}\r\n }\r\n }}\r\n />\r\n !fertilizer.hide)}\r\n columns={columns}\r\n noTableHead={true}\r\n key={this.state.updateFertilizerlist}\r\n noDataComponent='Удобрения не найдены'\r\n customStyles={{\r\n table: {\r\n style: {\r\n maxHeight: '450px',\r\n overflowY: 'scroll'\r\n }\r\n },\r\n rows: {\r\n style: {\r\n height: '65px!important',\r\n fontSize: '16px',\r\n border: '0 !important',\r\n borderTop: '0.5px solid #ABB3D1 !important'\r\n }\r\n },\r\n }}\r\n />\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n calculateLimit() {\r\n\r\n function getMaxOfArray(numArray) {\r\n let max = numArray[0]\r\n for (let i = 0; i < numArray.length; i++) {\r\n if (numArray[i] > max && element[i]) {\r\n max = numArray[i]\r\n }\r\n }\r\n return max;\r\n }\r\n\r\n\r\n let element = [true, true, true, true, true, true]\r\n if (!this.state.is_element_active.n) {\r\n element[0] = false\r\n }\r\n if (!this.state.is_element_active.p2O5) {\r\n element[1] = false\r\n }\r\n if (!this.state.is_element_active.k2O) {\r\n element[2] = false\r\n }\r\n if (!this.state.is_element_active.s) {\r\n element[3] = false\r\n }\r\n if (!this.state.is_element_active.caO) {\r\n element[4] = false\r\n }\r\n if (!this.state.is_element_active.mg) {\r\n element[5] = false\r\n }\r\n let yield_plan = 0\r\n while (yield_plan <= 400 && this.state.cropId) {\r\n let balance = this.minusVector(this.calculate(true, yield_plan), this.state.fertilizer_limit)\r\n let ogr = []\r\n let isLimit = false\r\n let max = getMaxOfArray(balance)\r\n let isFirst = true\r\n for (let i = 0; i < balance.length; i++) {\r\n if (balance[i] >= 0.4 && element[i] && max == balance[i] && isFirst) {\r\n isFirst = false\r\n ogr.push(true)\r\n isLimit = true\r\n } else {\r\n ogr.push(false)\r\n }\r\n }\r\n if (isLimit) {\r\n let element = []\r\n for (let i = 0; i < ogr.length; i++) {\r\n if (ogr[i]) {\r\n\r\n if (i === 0) {\r\n element.push(\"N\")\r\n }\r\n if (i === 1) {\r\n element.push(\"P₂O₅\")\r\n }\r\n if (i === 2) {\r\n element.push(\"K₂O\")\r\n }\r\n if (i === 3) {\r\n element.push(\"S\")\r\n }\r\n if (i === 4) {\r\n element.push(\"CaO\")\r\n }\r\n if (i === 5) {\r\n element.push(\"Mg\")\r\n }\r\n\r\n }\r\n }\r\n yield_plan = Math.round((yield_plan - 1) * 10) / 10\r\n const limit = {value: yield_plan, element: element}\r\n this.setState({limit_yield: limit})\r\n break\r\n }\r\n\r\n\r\n yield_plan = Math.round((yield_plan + 1) * 10) / 10\r\n }\r\n\r\n }\r\n\r\n async calcNextYear() {\r\n const response_selected_field = await fetch('api/selectField?prevId=' + this.props.report_id, {\r\n headers: !this.props.token ? {} : {'Authorization': `Bearer ${this.props.token}`}\r\n });\r\n const selectedField = await response_selected_field.json()\r\n this.state.selected_field[0].regions.map((row) => {\r\n row.residue.cropId = this.state.cropId\r\n row.residue.yield = this.state.yield_plan\r\n row.residue.fertilizerCount = row.fertilizerCount\r\n row.residue.fertilizerOrganic = row.fertilizerOrganic\r\n row.residue.fertilizerOrganicId = row.fertilizerOrganicId\r\n row.residue.mineralElement.n = Math.round(this.state.fertilizer_limit[0])\r\n row.residue.mineralElement.p2O5 = Math.round(this.state.fertilizer_limit[1])\r\n row.residue.mineralElement.k2O = Math.round(this.state.fertilizer_limit[2])\r\n row.residue.mineralElement.s = Math.round(this.state.fertilizer_limit[3])\r\n row.residue.mineralElement.caO = Math.round(this.state.fertilizer_limit[4])\r\n row.residue.mineralElement.mg = Math.round(this.state.fertilizer_limit[5])\r\n })\r\n this.setState({\r\n cropId: \"\",\r\n yield_plan: 0,\r\n report_name: selectedField.defaultName,\r\n default_report_name: selectedField.defaultName,\r\n prev_year: this.props.report_id ? this.props.report_id : \"\",\r\n yield_year: Number(this.state.yield_year) + 1,\r\n usePredecessor: true,\r\n calculation_data: [],\r\n calculatedField: [],\r\n dose: [],\r\n fertilizer_calculation_data: {liming: [], feed: [], main: [], pre_sowing: [], balance: []},\r\n isLimingOpen: false,\r\n fertilizerCalculationsOpen: false,\r\n fertilizer_limit: [0, 0, 0, 0, 0, 0],\r\n limit_yield: {value: 0, element: \"\"},\r\n yield_price: 0,\r\n other_price: {seeds: 0, szr: 0, yield: 0, input: 0},\r\n fertilizer_sum_price: 0,\r\n organic_sum_price: 0,\r\n notes: '',\r\n isNext: true,\r\n }, () => {\r\n this.setState({predecessorChange: !this.state.predecessorChange, fieldChange: !this.state.fieldChange})\r\n this.limingChange()\r\n }\r\n )\r\n }\r\n\r\n async RecalcReport() {\r\n const parent_report = this.state.parent_report\r\n this.state.selected_field[0].regions.map((row, i) => {\r\n row.residue.cropId = parent_report.cropId\r\n row.residue.yield = parent_report.yield\r\n row.residue.fertilizerCount = parent_report.field.regions[i].fertilizerCount\r\n row.residue.fertilizerOrganic = parent_report.field.regions[i].fertilizerOrganic\r\n row.residue.fertilizerOrganicId = parent_report.field.regions[i].fertilizerOrganicId\r\n row.residue.mineralElement = parent_report.sumElementArea\r\n row.dateAnalyse = parent_report.field.regions[i].dateAnalyse\r\n })\r\n this.state.selected_field[0].name = parent_report.field.name\r\n this.state.selected_field[0].area = parent_report.field.area\r\n this.setState({\r\n fertilizer_calculation_data: {liming: [], feed: [], main: [], pre_sowing: [], balance: []},\r\n recalcIsVisible: false\r\n }, () => {\r\n this.limingChange()\r\n this.calculate(false, this.state.yield_plan)\r\n }\r\n )\r\n }\r\n\r\n render() {\r\n const priceFormat = new Intl.NumberFormat('ru-RU', {minimumFractionDigits: 2, maximumFractionDigits: 2})\r\n const numberFormat = new Intl.NumberFormat('ru-RU')\r\n const DropdownIndicator = (props: DropdownIndicatorProps) => {\r\n return (\r\n \r\n arrow-down\r\n \r\n );\r\n };\r\n\r\n function formatCell(value, price = false) {\r\n return value ? (price ? priceFormat : numberFormat).format(value.toString().replace(',', '.')).replace(',', '.') : 0\r\n }\r\n\r\n function NoOptionsMessage(props) {\r\n if (props.options.length) return null;\r\n return Нет полей;\r\n }\r\n const field = this.state.selected_field.length !== 0 ? this.state.selected_field[0] : { name: '', area: '' }\r\n const crop = this.state.cropId !== \"\" ? this.state.crop_list.find((crop) => crop.value === this.state.cropId).label : \"\"\r\n let other_price = Number(this.state.other_price.seeds) + Number(this.state.other_price.szr) + Number(this.state.other_price.yield) + Number(this.state.other_price.input)\r\n let sum_other_price = (other_price + (this.state.fertilizer_sum_price + this.state.organic_sum_price) / (this.state.selected_field[0] ? this.state.selected_field[0].area : 1) + (this.state.isLimingOpen ? this.state.liming_sum_price : 0) / (this.state.selected_field[0] ? this.state.selected_field[0].area : 1)).toFixed(2)\r\n let yield_sum_price = (this.state.yield_price * this.state.yield_plan * (this.state.selected_field.length !== 0 ? this.state.selected_field[0].area : 0) / 10)\r\n let yield_sum_price_self = other_price * (this.state.selected_field[0] ? this.state.selected_field[0].area : 1) + this.state.fertilizer_sum_price + this.state.organic_sum_price + (this.state.isLimingOpen ? this.state.liming_sum_price : 0)\r\n let nav_content = [field.name + \" \" + field.area + (field.name !== '' ? \" га, \" : '') + crop,\r\n 'Планируемая урожайность: ' + Number(this.state.yield_plan) + ' ц/га ',\r\n 'Стоимость урожая: ' + priceFormat.format(yield_sum_price.toFixed(2)).replace(',', '.') + ' руб',\r\n 'Себестоимость урожая: ' + priceFormat.format(yield_sum_price_self.toFixed(2)).replace(',', '.') + ' руб',\r\n 'Расчетная урожайность: ' + ((this.state.limit_yield.value >= this.state.yield_plan) ?\r\n numberFormat.format(this.state.yield_plan.toString()).replace(',', '.') :\r\n numberFormat.format(this.state.limit_yield.value.toFixed(0)).replace(',', '.')) + ' ц/га',\r\n (((this.state.limit_yield.element.length !== 0) && (this.state.limit_yield.value.toFixed(0) !== '0') && (this.state.limit_yield.value < this.state.yield_plan)) ?\r\n ('Лимитирующий элемент: ' + this.state.limit_yield.element[0]) : '')]\r\n return (\r\n <>\r\n \r\n Расчет\r\n \r\n {this.props.report_id ? (this.state.isNext ? <> : (this.state.selected_field[0] ?\r\n \r\n \r\n \r\n Наименование: \r\n {this.state.report_name}\r\n \r\n \r\n Дата создания:\r\n {this.state.report_info.date_create !== \"\" ? new Date(this.state.report_info.date_create).toLocaleString() : \"\"}\r\n \r\n \r\n Дата изменения:\r\n {this.state.report_info.date_create !== \"\" ? new Date(this.state.report_info.date_change).toLocaleString() : \"\"}\r\n \r\n \r\n {this.state.report_info.need_to_recalc && this.state.recalcIsVisible ?\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.selected_field[0] ?\r\n this.setState({ cropId: value }, () => {\r\n this.calculate(false, this.state.yield_plan)\r\n })}\r\n setYieldPlan={(value) => this.setState({ yield_plan: value }, () => this.calculate(false, this.state.yield_plan))}\r\n setYieldPrice={(value) => this.setState({ yield_price: value })}\r\n setYieldYear={(value) => {\r\n this.setState({ yield_year: value });\r\n this.getResidue(this.state.fieldId)\r\n }}\r\n >\r\n : <>}\r\n \r\n \r\n {this.props.report_id ? <>\r\n : this.state.fieldId ? <> :\r\n \r\n ({\r\n ...theme,\r\n border: '1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n colors: {\r\n ...theme.colors,\r\n primary: '#ABB3D1',\r\n },\r\n })}\r\n styles={{\r\n container: (baseStyles, state) => ({\r\n ...baseStyles,\r\n width: '428px',\r\n height: '52px',\r\n }),\r\n control: (baseStyles, state) => ({\r\n ...baseStyles,\r\n background: state.isFocused ? '#fff' : '#E9EAEE',\r\n height: '52px',\r\n width: '428px',\r\n }),\r\n menu: (baseStyles, state) => ({\r\n ...baseStyles,\r\n border: ' 1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n margin: '0'\r\n }),\r\n option: (baseStyles, state) => ({\r\n ...baseStyles,\r\n color: '#201E44',\r\n height: '45px',\r\n backgroundColor: state.isFocused ? 'rgba(226, 228, 239, 0.5)' : \"white\",\r\n }),\r\n menuList: (baseStyles, state) => ({\r\n ...baseStyles,\r\n paddingRight: '13px !important',\r\n \"::-webkit-scrollbar\": {\r\n width: '3px !important'\r\n },\r\n \"::-webkit-scrollbar-track\": {\r\n background: '#E2E4EF !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb\": {\r\n background: ' #ABB3D1 !important',\r\n borderRadius: '6px !important'\r\n },\r\n \"::-webkit-scrollbar-thumb:hover\": {\r\n background: ' #ABB3D1 !important',\r\n }\r\n })\r\n }}\r\n onChange={(event) => {\r\n this.getResidue(event.value)\r\n this.setState({\r\n fieldId: event.value,\r\n saveMessage: \"\",\r\n calculateMessage: \"\"\r\n })\r\n }}\r\n placeholder=\"Выберите поле\"\r\n />\r\n \r\n }\r\n \r\n \r\n {\r\n this.state.expand.regions = !this.state.expand.regions\r\n this.setState({ fieldChange: !this.state.fieldChange })\r\n }}\r\n changeField={(value) => {\r\n this.getResidue(value);\r\n this.setState({\r\n fieldId: value,\r\n saveMessage: \"\",\r\n calculateMessage: \"\"\r\n })\r\n }\r\n }\r\n >\r\n \r\n \r\n {\r\n this.state.expand.predecessor = !this.state.expand.predecessor\r\n this.setState({predecessorChange: !this.state.predecessorChange})\r\n }}>\r\n \r\n \r\n \r\n this.state.fertilizer_calculation_data.liming = value}\r\n key={this.state.isLimingChange}\r\n fertilizer_mineral_list={this.state.mineralFertilizer?.filter((r) => r.inUse)}\r\n fertilizers={this.state.fertilizers}\r\n soils={this.state.soils}\r\n soilGroup={this.state.soilGroup}\r\n field={this.state.selected_field}\r\n sum_price={this.state.liming_sum_price}\r\n sum_dose={this.state.liming_sum_dose}\r\n setSumPrice={(value) => this.setState({liming_sum_price: value}, () => {\r\n this.calculate(false, this.state.yield_plan)\r\n })}\r\n setSumDose={(value) => this.setState({liming_sum_dose: value})}\r\n isLimingOpen={this.state.isLimingOpen}\r\n useLiming={() => this.setState({\r\n isLimingOpen: !this.state.isLimingOpen,\r\n }, () => {\r\n this.calculate(false, this.state.yield_plan)\r\n })}\r\n expand={this.state.expand.liming}\r\n changeExpand={() => {\r\n this.state.expand.liming = !this.state.expand.liming\r\n this.setState({isLimingChange: !this.state.isLimingChange})\r\n }}\r\n useInputPrice={this.state.useInputPrice.liming}\r\n setUseInputPrice={() => {\r\n this.setState({\r\n useInputPrice: {\r\n liming: !this.state.useInputPrice.liming,\r\n fertilizers_calc: this.state.useInputPrice.fertilizers_calc,\r\n organic: this.state.useInputPrice.organic\r\n }\r\n },\r\n () => this.setState({isLimingChange: !this.state.isLimingChange}))\r\n }}\r\n >\r\n \r\n \r\n this.setState({organic_sum_price: value})}\r\n onFertilizerChange={this.handleChangeFertilizer}\r\n style={{maxWidth: '90%'}}\r\n expand={this.state.expand.fertilizers}\r\n changeExpand={() => {\r\n this.state.expand.fertilizers = !this.state.expand.fertilizers\r\n this.setState({fertilizerChange: !this.state.fertilizerChange})\r\n }}\r\n useInputPrice={this.state.useInputPrice.organic}\r\n setUseInputPrice={() => {\r\n this.setState({\r\n useInputPrice: {\r\n liming: this.state.useInputPrice.liming,\r\n fertilizers_calc: this.state.useInputPrice.fertilizers_calc,\r\n organic: !this.state.useInputPrice.organic\r\n }\r\n },\r\n () => this.setState({fertilizerChange: !this.state.fertilizerChange}))\r\n }}\r\n >\r\n \r\n \r\n {\r\n this.state.expand.calculations = !this.state.expand.calculations\r\n this.setState({calculationChange: !this.state.calculationChange})\r\n }}\r\n >\r\n \r\n \r\n {this.state.fertilizerModalShow ? this.ChooseFertilizerModal(this.state.fertilizerModalShow) : <>}\r\n r.inUse)}\r\n fertilizers={this.state.fertilizers}\r\n calculate_main={this.calculate_main}\r\n balance={this.state.dose}\r\n isActive={this.state.is_element_active}\r\n setFertilizerLimit={(value) => this.setState({fertilizer_limit: value})}\r\n area={this.state.selected_field[0] ? this.state.selected_field[0].area : 0}\r\n coefP={this.state.coefP}\r\n report_loading={this.state.report_loading}\r\n changeCoefP={(value) => this.setState({report_loading: false},()=>this.setState({coefP: value}, () => this.setState(\r\n {fertilizerCalculationChange: !this.state.fertilizerCalculationChange})))}\r\n setSumPrice={(value) => this.setState({fertilizer_sum_price: value})}\r\n showModal={() => this.setState({fertilizerModalShow: true})}\r\n changed_rows={this.state.changed_fertilizers_rows}\r\n not_calculate_fertilizers_list={this.state.not_calculate_fertilizers_list}\r\n recalculate_A_c={this.recalculate_A}\r\n useInputPrice={this.state.useInputPrice.fertilizers_calc}\r\n setUseInputPrice={() => {\r\n this.setState({\r\n useInputPrice:\r\n {\r\n fertilizers_calc: !this.state.useInputPrice.fertilizers_calc,\r\n liming: !this.state.useInputPrice.liming,\r\n organic: !this.state.useInputPrice.organic\r\n }\r\n },\r\n () => this.setState({fertilizerCalculationChange: !this.state.fertilizerCalculationChange}))\r\n }}\r\n >\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n руб/га\r\n \r\n Подготовительные и посевные\r\n работы\r\n e.target.select()}\r\n onChange={(e) => this.setState({\r\n other_price:\r\n {\r\n yield: this.state.other_price.yield,\r\n seeds: e.target.value.replace(',', '.'),\r\n szr: this.state.other_price.szr,\r\n input: this.state.other_price.input\r\n }\r\n })}\r\n >\r\n \r\n \r\n \r\n Защита растений\r\n e.target.select()}\r\n onChange={(e) => this.setState({\r\n other_price:\r\n {\r\n yield: this.state.other_price.yield,\r\n seeds: this.state.other_price.seeds,\r\n szr: e.target.value.replace(',', '.'),\r\n input: this.state.other_price.input\r\n }\r\n })}>\r\n \r\n \r\n \r\n Уборка урожая\r\n e.target.select()}\r\n onChange={(e) => this.setState({\r\n other_price:\r\n {\r\n yield: e.target.value.replace(',', '.'),\r\n seeds: this.state.other_price.seeds,\r\n szr: this.state.other_price.szr,\r\n input: this.state.other_price.input\r\n }\r\n })}>\r\n \r\n \r\n \r\n Внесение удобрений\r\n e.target.select()}\r\n className={this.state.other_price.seeds == 0 ? 'other-costs-placeholder' : ''}\r\n onChange={(e) => this.setState({\r\n other_price:\r\n {\r\n input: e.target.value.replace(',', '.'),\r\n yield: this.state.other_price.yield,\r\n seeds: this.state.other_price.seeds,\r\n szr: this.state.other_price.szr\r\n }\r\n })}>\r\n \r\n \r\n
\r\n \r\n Итого руб/га\r\n \r\n \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({notes: e.target.value})}>\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {this.SaveModal(this.state.saveModalShow)}\r\n \r\n \r\n Сохранить\r\n \r\n \r\n window.location.assign('/reports')}>Перейти к отчетам\r\n \r\n \r\n Рассчитать на следующий год\r\n \r\n \r\n \r\n )\r\n ;\r\n }\r\n\r\n calculate_main() {\r\n function minus_col(A) {\r\n let temp = []\r\n for (let i = 0; i < A.length; i++) {\r\n temp.push(minus(A[i]))\r\n }\r\n return temp\r\n }\r\n\r\n function minus(C) {\r\n let temp = []\r\n for (let i = 0; i < C.length; i++) {\r\n temp.push(-C[i])\r\n }\r\n return temp\r\n }\r\n\r\n const balance = this.state.fertilizer_calculation_data.balance[0].element\r\n let B = [balance.n, balance.p2O5, balance.k2O, balance.s, balance.caO, balance.mg]\r\n let C = this.state.c\r\n let A = this.state.A\r\n if (!this.state.is_element_active.n) {\r\n B[0] = 0\r\n }\r\n if (!this.state.is_element_active.p2O5) {\r\n B[1] = 0\r\n }\r\n if (!this.state.is_element_active.k2O) {\r\n B[2] = 0\r\n }\r\n if (!this.state.is_element_active.s) {\r\n B[3] = 0\r\n }\r\n if (!this.state.is_element_active.caO) {\r\n B[4] = 0\r\n }\r\n if (!this.state.is_element_active.mg) {\r\n B[5] = 0\r\n }\r\n let tableJSON = {\"a\": minus_col(A), \"b\": minus(B), \"c\": minus(C)}\r\n fetch('api/Calculation/CalculateFertilizer', {\r\n method: 'POST',\r\n headers: !this.props.token ? {} : {\r\n 'Authorization': `Bearer ${this.props.token}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(tableJSON)\r\n }).then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n let newMain = []\r\n for (let i = 0; i < result.length; i++) {\r\n\r\n if (result[i] > 0.001) {\r\n newMain.push({\r\n id: i,\r\n fertilizerId: this.state.mineralFertilizer[i].id,\r\n fertilizer_count: result[i].toFixed(1),\r\n price: 0,\r\n input_price: 0,\r\n element: {\r\n n: result[i].toFixed(1) * this.state.mineralFertilizer[i].element.n,\r\n p2O5: result[i].toFixed(1) * this.state.mineralFertilizer[i].element.p2O5,\r\n k2O: result[i].toFixed(1) * this.state.mineralFertilizer[i].element.k2O,\r\n s: result[i].toFixed(1) * this.state.mineralFertilizer[i].element.s,\r\n caO: result[i].toFixed(1) * this.state.mineralFertilizer[i].element.caO,\r\n mg: result[i].toFixed(1) * this.state.mineralFertilizer[i].element.mg\r\n },\r\n })\r\n }\r\n }\r\n this.state.fertilizer_calculation_data.main = newMain.length !== 0 ? newMain : this.state.changed_fertilizers_rows.length !== 0 ? [] :\r\n [{\r\n id: 0,\r\n price: 0,\r\n fertilizerId: 0,\r\n fertilizer_count: 0,\r\n element: {n: 0, p2O5: 0, k2O: 0, s: 0, caO: 0, mg: 0},\r\n }]\r\n this.setState({fertilizerCalculationChange: !this.state.fertilizerCalculationChange})\r\n })\r\n }\r\n })\r\n }\r\n\r\n async populateFieldsData() {\r\n let response_report\r\n let report = []\r\n let parent_report = []\r\n if (this.props.report_id) {\r\n response_report = await fetch('api/calculation?id=' + this.props.report_id, {\r\n headers: !this.props.token ? {} : {'Authorization': `Bearer ${this.props.token}`}\r\n });\r\n const report_data = await response_report.json();\r\n report = report_data.currentCalculation\r\n parent_report = report_data.prevCalculation\r\n }\r\n const response_selectField = await fetch('api/selectField?prevId=' + (this.props.report_id ? (report.prevCalcId !== null ? report.prevCalcId : '') : this.state.prev_year), {\r\n headers: !this.props.token ? {} : {'Authorization': `Bearer ${this.props.token}`}\r\n });\r\n const response_fertilizer_organic = await fetch('api/fertilizerOrganic', {\r\n headers: !this.props.token ? {} : {'Authorization': `Bearer ${this.props.token}`}\r\n });\r\n let fields = []\r\n let fields_all = []\r\n let soil_list = []\r\n const selectField = await response_selectField.json()\r\n const soils = selectField.soils\r\n const soilGroup = selectField.soilsGroup\r\n const crops = selectField.crops\r\n const fertilizers = await response_fertilizer_organic.json()\r\n const report_name = selectField.defaultName\r\n const mineralCoef = selectField.mineralFertilizerCoef\r\n const mineralFertilizer = selectField.mineralFertilizerStorages\r\n const calculation_data = [];\r\n let fertilizer_calculation_data = {liming: [], balance: []}\r\n let organic_sum_price = 0\r\n if (this.props.report_id) {\r\n let fertilizer\r\n report.field.regions.map((region) => {\r\n fertilizer = fertilizers.find((f) => f.id === region.fertilizerOrganicId)\r\n organic_sum_price += Number(region.organic_input_price) * Number(region.area) * region.fertilizerCount +\r\n (fertilizer ? fertilizer.price : 0) * region.fertilizerCount * Number(region.area)\r\n })\r\n const calculations = report.calculations;\r\n fertilizer_calculation_data.main = report.main_rows\r\n fertilizer_calculation_data.feed = report.feed_rows\r\n fertilizer_calculation_data.pre_sowing = report.pre_sowing_rows\r\n calculations.map((calculation) => {\r\n calculation_data.push({\r\n name: calculation.region.name,\r\n regionId: calculation.region.id,\r\n element: calculation.elements\r\n })\r\n fertilizer_calculation_data.liming.push({\r\n area: calculation.region.area,\r\n dose: calculation.liming_dose,\r\n fertilizer_dose: calculation.liming_fertilizer_dose,\r\n fertilizer_id: calculation.liming_fertilizerId,\r\n name: calculation.region.name,\r\n id: calculation.region.id,\r\n soilId: calculation.region.soilId,\r\n soil: calculation.region.soil,\r\n humus: calculation.region.humus,\r\n pH: calculation.region.pH,\r\n intro_price: calculation.liming_input_price,\r\n price: calculation.liming_fertilizer_dose * calculation.region.area * (calculation.liming_fertilizer ? calculation.liming_fertilizer.price : 0)\r\n }\r\n )\r\n })\r\n } else {\r\n const response_fields = await fetch('api/field', {\r\n headers: !this.props.token ? {} : {'Authorization': `Bearer ${this.props.token}`}\r\n });\r\n fields_all = await response_fields.json();\r\n fields_all.map((field) => (\r\n fields.push({value: field.id, label: field.name})\r\n ))\r\n fields = fields.sort((function (a, b) {\r\n if (a.label < b.label) {\r\n return -1;\r\n }\r\n if (a.label > b.label) {\r\n return 1;\r\n }\r\n return 0;\r\n }))\r\n }\r\n soils?.map((f) => (\r\n soil_list.push({value: f.id, label: f.name})\r\n ))\r\n let crop_list = [];\r\n crops?.map((f) => (\r\n crop_list.push({value: f.id, label: f.name})\r\n ))\r\n let fertilizer_organic_list = [];\r\n fertilizers.map((f) => {\r\n fertilizer_organic_list.push({value: f.id, label: f.name})\r\n }\r\n )\r\n crop_list = crop_list.sort((function (a, b) {\r\n if (a.label < b.label) {\r\n return -1;\r\n }\r\n if (a.label > b.label) {\r\n return 1;\r\n }\r\n return 0;\r\n }))\r\n soil_list = soil_list.sort((function (a, b) {\r\n if (a.label < b.label) {\r\n return -1;\r\n }\r\n if (a.label > b.label) {\r\n return 1;\r\n }\r\n return 0;\r\n }))\r\n fertilizer_organic_list = fertilizer_organic_list.sort((function (a, b) {\r\n if (a.label < b.label) {\r\n return -1;\r\n }\r\n if (a.label > b.label) {\r\n return 1;\r\n }\r\n return 0;\r\n }))\r\n selectField.soilsGroup?.map((gr) => {\r\n gr.soilGroupHumus.map((p) => {\r\n p.soilGroupPh.sort((function (a, b) {\r\n if (a.ph > b.ph) {\r\n return -1;\r\n }\r\n if (a.ph < b.ph) {\r\n return 1;\r\n }\r\n return 0;\r\n }))\r\n })\r\n gr.soilGroupHumus.sort((function (a, b) {\r\n if (a.humus > b.humus) {\r\n return -1;\r\n }\r\n if (a.humus < b.humus) {\r\n return 1;\r\n }\r\n return 0;\r\n }))\r\n })\r\n let A = []\r\n let c = []\r\n if (mineralFertilizer?.length > 0) {\r\n mineralFertilizer.map((p) => {\r\n p.inUse = p.inStorage\r\n Object.assign(p, {hide: false})\r\n c.push(p.price)\r\n })\r\n Object.keys(mineralFertilizer[0].element).map((currentKey) => {\r\n let temp = []\r\n mineralFertilizer.map(p => {\r\n temp.push(p.element[currentKey])\r\n })\r\n A.push(temp)\r\n })\r\n }\r\n if (this.props.report_id) {\r\n const use_fertilizer_array = report.use_fertilizer_list?.map((fertilizer) => fertilizer.fertilizer_Id)\r\n mineralFertilizer.map((fertilizer) => {\r\n fertilizer.inUse = use_fertilizer_array.includes(fertilizer.id)\r\n })\r\n if(report.use_fertilizer_list.length===0){\r\n mineralFertilizer.map((fertilizer)=> {\r\n fertilizer.inUse = fertilizer.inStorage\r\n })\r\n }\r\n }\r\n this.setState({\r\n soilGroup: soilGroup,\r\n fields_name: fields,\r\n soils: soils,\r\n fields: fields_all,\r\n soil_list: soil_list,\r\n crop_list: crop_list,\r\n fertilizer_organic_list: fertilizer_organic_list,\r\n fertilizers: fertilizers,\r\n default_report_name: report_name,\r\n crops: crops,\r\n mineralCoef: mineralCoef,\r\n mineralFertilizer: mineralFertilizer,\r\n A: A,\r\n c: c\r\n }, () => {\r\n if (this.props.report_id) {\r\n this.setState({report_loading: true}, () => {\r\n this.setState({\r\n parent_report: parent_report,\r\n selected_field: [report.field],\r\n fieldId: report.fieldId,\r\n cropId: report.cropId,\r\n yield_plan: report.yield,\r\n usePredecessor: report.usePredecessor,\r\n organic_sum_price: organic_sum_price,\r\n calculation_data: calculation_data,\r\n dose: [{expand: true, element: report.sumElementArea}],\r\n calculated_field: [{\r\n expand: true, element: report.sumElements\r\n }],\r\n prev_year: report.prevCalcId,\r\n report_name: report.name,\r\n report_info: {\r\n date_create: report.dateCreate,\r\n date_change: report.dateChange,\r\n need_to_recalc: report.colorState !== 0\r\n },\r\n yield_price: report.yield_price,\r\n yield_year: report.yield_year,\r\n isLimingOpen: report.isLimingOpen,\r\n coefP: report.coefP,\r\n liming_sum_dose: report.liming_sum_dose,\r\n liming_sum_price: report.liming_sum_price,\r\n is_element_active: report.is_element_active,\r\n notes: report.notes,\r\n other_price: report.other_price,\r\n }, () => {\r\n this.setState({\r\n isLimingChange: !this.state.isLimingChange,\r\n fertilizerCalculationsOpen: true,\r\n fertilizer_calculation_data: fertilizer_calculation_data,\r\n })\r\n })\r\n })\r\n }\r\n this.setState({\r\n fieldChange: !this.state.fieldChange,\r\n fertilizerChange: !this.state.fertilizerChange,\r\n predecessorChange: !this.state.predecessorChange,\r\n calculationsChange: !this.state.calculationChange,\r\n })\r\n })\r\n\r\n }\r\n}\r\n","import React, {useEffect, useState} from 'react';\r\nimport {SelectField} from \"../components/Calculations/SelectField\";\r\nimport \"../style/Calculations.css\"\r\nimport authService from \"../components/api-authorization/AuthorizeService\";\r\n\r\nconst Calculations = () => {\r\n\r\n const [token, setToken] = useState('')\r\n useEffect(async () => {\r\n const token_resp = await authService.getAccessToken()\r\n await fetch('/api/Validator', {\r\n method: 'POST',\r\n headers: !token_resp ? {} : {'Authorization': `Bearer ${token_resp}`}\r\n })\r\n setToken(token_resp)\r\n }, [])\r\n\r\n\r\n const report_id = new URL(window.location.href).searchParams.get('id')\r\n return (token===''?<>:\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Calculations;","import React from 'react'\r\n\r\n\r\nexport default function WarnTooltip(props) {\r\n return
\r\n Предыдущий расчет был изменен. Необходимо пересчитать этот расчет!\r\n
;\r\n}\r\n","import React, {useState} from 'react'\r\nimport {Col, Row} from \"react-bootstrap\"\r\nimport Xarrow from \"react-xarrows\"\r\nimport del from \"../../assets/icons/del.png\"\r\nimport edit from \"../../assets/icons/edit.png\"\r\nimport warn from \"../../assets/icons/warn.png\"\r\nimport WarnTooltip from \"./WarnTooltip\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\n\r\nexport default function Card(props) {\r\n\r\n function handleClickOpen() {\r\n window.location.assign('/calculations?id=' + props.data.id)\r\n }\r\n\r\n const numberFormat = new Intl.NumberFormat('ru-RU')\r\n const priceFormat = new Intl.NumberFormat('ru-RU', {maximumFractionDigits: 2, minimumFractionDigits: 2})\r\n const [askDelModalShow, setAskDelModalShow] = useState('')\r\n\r\n function formatCell(value, price = false) {\r\n return value ? (price ? priceFormat : numberFormat).format(value.toString().replace(',', '.')).replace(',', '.') : 0\r\n }\r\n\r\n async function handleClickDelete() {\r\n fetch('api/calculation?id=' + props.data.id, {\r\n method: 'DELETE',\r\n headers: !props.token ? {} : {'Authorization': `Bearer ${props.token}`}\r\n }).then((response) => {\r\n if (response.ok) {\r\n props.deleteData()\r\n }\r\n });\r\n setAskDelModalShow(false)\r\n }\r\n\r\n function askDelModal() {\r\n return (\r\n setAskDelModalShow(false)}\r\n area-labelledby='contained-modal-title-vcenter'\r\n centered>\r\n \r\n Вы действительно хотите удалить этот отчет\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n\r\n const dif = props.data.yield_price - props.data.yield_self_price\r\n const income = props.data.yield_self_price !== 0 ? (dif !== 0 ? (' (' + Math.round(dif * 100 / props.data.yield_self_price) + '%)') : '') : ''\r\n return
\r\n {askDelModal(askDelModalShow)}\r\n {props.prev ?\r\n \r\n : <>}\r\n
\r\n \r\n \r\n ,\r\n \r\n {props.data.report_name}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {props.data.crop_name}\r\n {props.data.yield} ц/га\r\n - {formatCell(props.data.yield * props.data.area / 10)} т/поле\r\n \r\n \r\n \r\n \r\n \r\n Стоим. ур.:\r\n {formatCell(props.data.yield_price, true)} руб\r\n \r\n \r\n С/с ур.:\r\n {formatCell(props.data.yield_self_price, true)} руб\r\n \r\n \r\n Доход:\r\n {formatCell(dif, true)} руб {income}\r\n \r\n \r\n \r\n \r\n \r\n Создан: {props.data.date_create}\r\n Изменен: {props.data.date_change}\r\n \r\n \r\n\r\n\r\n
\r\n
;\r\n}\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHqSURBVHgBrZRBTuswEIZn7FA9vVVXT6oei3ACyg4hqpobwAmAEwAnQNwATgCcoHACIhUhdpQT4AWoglVWCLXJmBk3tUoaCEjMJiPH8814/I8BftmwbsPj2lpba90mgNTluV28uRn8GPhgTPMv0R67+w6gWfpt0bmExuOj1u2trQUO19eNUqrnQRKIeM+ASVWIMQdssxcLOHfu4H+/f/Ep8KnT2dSIPV5MM+d2y5tD0k5nBxEPBeyINlrX18kccGhMjERX4rvRaKPqOB+gvF8R3Yn/qtTSUpKk4qvpBuXcJKNzc7154YsZrq7Gs2utJLFyCmnNH6L9wJk6DDL8sa1+/6xcDUXRKTYaV+V13xLuM0P2PgBFGr46gHOoMsQmfGZ8aVLlozHtAESt46JMCz80VyhA57kHRgW1WRN1SfC1MSMNwDzPB1EUeZ1Vbs6yM5ZHWkkqYsZa2wIMIOMk2mMBd6ti5FJUo9Gr5E2EbheTZBCAPgjghLMZEXc5yCm1hVm2W14XgfMnllGcSTCxYn4fPHw0WvmOsKsGIVTolc6Z/AwvLJivYHKKYkpimefZ5KHC5273lCWww66VaakC8fwuc9K2tEZ6TkRbs3McgNNHAb5hHsT9flPqeDq/c8BwjBo9sngH/2oe2F+3dyfN8iim0+X1AAAAAElFTkSuQmCC\"","/* eslint-disable */\r\nimport React, {Component} from 'react'\r\nimport DataTable from 'react-data-table-component'\r\nimport authService from \"../api-authorization/AuthorizeService\"\r\nimport {Button, Col, Row} from \"react-bootstrap\"\r\nimport Card from \"./Card\"\r\nimport Modal from \"react-bootstrap/Modal\"\r\nimport arrow_up from \"../../assets/icons/dark_arrow_up.png\";\r\nimport arrow_down from \"../../assets/icons/dark_arrow_down.png\";\r\nimport {Collapse} from 'react-collapse';\r\n\r\nexport class ReportsTable extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n columns: [],\r\n data: [],\r\n report_calculations: [],\r\n years: [],\r\n field_data: [],\r\n field_columns: [],\r\n isModalShow: false,\r\n isNew: false,\r\n isOld: false\r\n }\r\n this.checkRowReport = this.checkRowReport.bind(this)\r\n this.getReport = this.getReport.bind(this)\r\n this.deleteData = this.deleteData.bind(this)\r\n this.ModalSaveReport = this.ModalSaveReport.bind(this)\r\n this.checkType = this.checkType.bind(this)\r\n }\r\n\r\n componentDidMount() {\r\n this.populateReportsData();\r\n }\r\n\r\n checkType(isNew) {\r\n this.setState({isNew: isNew ? !this.state.isNew : false, isOld: isNew ? false : !this.state.isOld}, () => {\r\n document.getElementById('New').checked = this.state.isNew\r\n document.getElementById('Old').checked = this.state.isOld\r\n })\r\n\r\n }\r\n\r\n\r\n ModalSaveReport() {\r\n return (\r\n this.setState({isModalShow: false})}\r\n area-labelledby='contained-modal-title-vcenter'\r\n centered\r\n >\r\n \r\n Выберите тип отчета\r\n \r\n \r\n this.checkType(true)}/>Тип 1 \r\n \r\n this.checkType(false)}/>Тип 2\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n checkRowReport(rowId) {\r\n const id = this.state.report_calculations.findIndex(el => el === rowId)\r\n if (id >= 0)\r\n this.state.report_calculations.splice(id, 1)\r\n else\r\n this.setState({report_calculations: this.state.report_calculations.concat(rowId)})\r\n }\r\n\r\n getReport(type) {\r\n fetch(`api/report/${type}?id=`, {\r\n method: 'POST',\r\n headers: !this.props.token ? {} : {\r\n 'Authorization': `Bearer ${this.props.token}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(this.state.report_calculations)\r\n }).then((response) => response.blob())\r\n .then((blob) => {\r\n const url = window.URL.createObjectURL(\r\n new Blob([blob]),\r\n );\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute(\r\n 'download',\r\n `report.xlsx`,\r\n );\r\n document.body.appendChild(link);\r\n link.click();\r\n link.parentNode.removeChild(link);\r\n })\r\n }\r\n\r\n render() {\r\n const modalSave = this.ModalSaveReport()\r\n const expand = (fieldId) => {\r\n let changed_field = this.state.field_data.find((field) => field.id === fieldId)\r\n changed_field.expand = !changed_field.expand\r\n this.forceUpdate()\r\n }\r\n\r\n function inner_table(row) {\r\n\r\n function compare(a,b) {\r\n if ( a[0][0].card_data.report_name < b[0][0].card_data.report_name){\r\n return -1;\r\n }\r\n if ( a[0][0].card_data.report_name > b[0][0].card_data.report_name){\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n row.data.sort(compare)\r\n return (
\r\n \r\n {row.data.map((row_data) => (\r\n \r\n ))}\r\n
)\r\n }\r\n function compare( a, b ) {\r\n if ( a.name[0] < b.name[0]){\r\n return -1;\r\n }\r\n if ( a.name[0] > b.name[0] ){\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n this.state.field_data.sort(compare)\r\n return (\r\n <>\r\n Отчеты\r\n {modalSave}\r\n {this.state.field_data.map((field) => {\r\n return (\r\n
\r\n \r\n \r\n {inner_table({data: field.data, cols: field.cols})}\r\n \r\n
\r\n )\r\n })}\r\n
\r\n {/**/}\r\n \r\n
\r\n\r\n \r\n )\r\n ;\r\n }\r\n\r\n deleteData(id) {\r\n this.state.data.filter((row) => row.card_data.id !== id)\r\n this.populateReportsData(id)\r\n }\r\n\r\n get_trees(data) {\r\n let calc_relations = [[]]\r\n let find = false\r\n function compare( a, b ) {\r\n if ( a.card_data.report_name < b.card_data.report_name){\r\n return -1;\r\n }\r\n if ( a.card_data.report_name > b.card_data.report_name ){\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n data.sort(compare)\r\n data.map((row) => {\r\n if (row.prev_year && row.prev_year !== '') {\r\n find = false\r\n calc_relations.map((array) => {\r\n if (array.includes(row.prev_year)) {\r\n array.push(row.card_data.id)\r\n find = true\r\n } else if (array.includes(row.card_data.id)) {\r\n array.push(row.prev_year)\r\n find = true\r\n }\r\n })\r\n if (find === false)\r\n calc_relations.push([row.prev_year, row.card_data.id])\r\n } else {\r\n find = false\r\n calc_relations.map((array) => {\r\n if (array.includes(row.card_data.id))\r\n find = true\r\n })\r\n if (find === false)\r\n calc_relations.push([row.card_data.id])\r\n }\r\n }\r\n )\r\n calc_relations.reverse().pop().reverse()\r\n let tree_sets = []\r\n calc_relations.map((cur_array, i) => {\r\n find = false\r\n calc_relations.map((check_array) => {\r\n if (check_array !== cur_array) {\r\n find = cur_array.some((r) => check_array.includes(r))\r\n }\r\n if (find === true) {\r\n calc_relations[i] = cur_array.concat(check_array)\r\n calc_relations = calc_relations.filter((array) => array !== check_array && array !== cur_array)\r\n }\r\n })\r\n tree_sets.push(new Set(calc_relations[i]))\r\n })\r\n tree_sets = tree_sets.filter((set) => set.size !== 0)\r\n let trees = tree_sets.map(() => [])\r\n tree_sets.map(([...set], i) => {\r\n set.map((el) => {\r\n let refs\r\n refs = data.filter((row) => row.prev_year === el)\r\n refs = refs.map((row) => row.card_data.id)\r\n trees[i].push({el: el, refs: refs})\r\n })\r\n })\r\n return [trees, tree_sets]\r\n }\r\n\r\n find_ref(rows, cur_el, tree, cntr, i, last_el) {\r\n let ref_length = cur_el.refs.length\r\n if (ref_length !== 0) {\r\n if (cur_el.refs[cntr]) {\r\n if (ref_length > 1) {\r\n last_el.push({el: cur_el.el, cntr: cntr})\r\n }\r\n if (rows[i]) {\r\n rows[i].push(cur_el.refs[cntr])\r\n } else {\r\n rows.push([cur_el.refs[cntr]])\r\n }\r\n cur_el = tree.find(node => node.el === cur_el.refs[cntr])\r\n cntr = 0\r\n this.find_ref(rows, cur_el, tree, cntr, i, last_el)\r\n } else {\r\n last_el = last_el.filter((r) => r.el !== cur_el.el)\r\n if (last_el.length === 0) {\r\n return rows\r\n } else {\r\n cur_el = tree.find((node) => node.el === last_el.at(-1).el)\r\n cntr = last_el.at(-1).cntr + 1\r\n this.find_ref(rows, cur_el, tree, cntr, i, last_el)\r\n }\r\n }\r\n } else {\r\n if (last_el.length === 0) {\r\n return rows\r\n } else {\r\n cntr = last_el.at(-1).cntr + 1\r\n cur_el = tree.find((node) => node.el === last_el.at(-1).el)\r\n i++\r\n this.find_ref(rows, cur_el, tree, cntr, i, last_el)\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n async populateReportsData(id=-1) {\r\n const response_reports = await fetch('api/calculation/list', {\r\n headers: !this.props.token ? {} : {'Authorization': `Bearer ${this.props.token}`}\r\n })\r\n const reports_data = await response_reports.json()\r\n\r\n let data = []\r\n let field_names = []\r\n let field_data = []\r\n let cols = []\r\n let isExpand=false\r\n let trees\r\n let tree_sets\r\n let rows\r\n let tree_data\r\n let rows_data = []\r\n let years\r\n let one_field_data\r\n reports_data.map((report) => {\r\n let sum_other_price = 0\r\n for (let key in report.other_price) {\r\n sum_other_price = sum_other_price + report.other_price[key]\r\n }\r\n const other_price = report.other_price\r\n const yield_self_price = (Number(other_price.seeds) + Number(other_price.szr) + Number(other_price.yield) + Number(other_price.input)) * report.field.area + Number(report.fertilizer_sum_price)\r\n data.push({\r\n need_to_change: (report.colorState !== 0),\r\n prev_year: report.prevCalcId,\r\n field_name: report.field.name,\r\n area: report.field.area,\r\n year: report.yield_year,\r\n card_data: {\r\n report_name: report.name,\r\n area: report.field.area,\r\n crop_name: report.crop.name,\r\n yield: report.yield,\r\n date_create: new Date(report.dateCreate).toLocaleString().slice(0,-3),\r\n date_change: new Date(report.dateChange).toLocaleString().slice(0,-3),\r\n id: report.id,\r\n yield_price: report.yield_sum_price,\r\n yield_self_price: yield_self_price\r\n }\r\n })\r\n if (!field_names.find((row) => (row[0] === report.field.name && row[1] === report.field.area)))\r\n field_names.push([report.field.name, report.field.area])\r\n })\r\n\r\n years = new Set()\r\n data.map((row) => {\r\n years.add(row.year)\r\n })\r\n years = [...years].sort()\r\n field_names.forEach((field, i) => {\r\n one_field_data = data.filter(row => (row.field_name === field[0] && row.area === field[1]));\r\n [trees, tree_sets] = this.get_trees(one_field_data)\r\n trees.map((tree, i) => {\r\n tree_data = one_field_data.filter((row) => tree_sets[i].has(row.card_data.id))\r\n if (tree_data.length !== 1) {\r\n let root_el = []\r\n for (let year of years) {\r\n const row = tree_data.find((row) => row.year === year)\r\n if (tree_data.find((row) => row.year === year)) {\r\n root_el = tree.find((node) => node.el === row.card_data.id)\r\n break\r\n }\r\n }\r\n rows = [[root_el.el]]\r\n if (root_el.length !== 0) {\r\n this.find_ref(rows, root_el, tree, 0, 0, [])\r\n }\r\n rows_data.push(rows.map((row) => row.map((el) => one_field_data.find((row) => row.card_data.id === el))))\r\n } else {\r\n rows = [...tree_sets[i]]\r\n rows_data.push(rows.map((el) => [one_field_data.find((row) => row.card_data.id === el)]))\r\n }\r\n })\r\n Array.from(years).sort().forEach((year) => cols.push({\r\n name: `${year}`,\r\n width: '360px',\r\n cell: (row) => row.map((data) => data.year === year ? this.deleteData(data.card_data.id)}\r\n checkRowReport={() => this.checkRowReport(data.card_data.id)}\r\n > : <>),\r\n button: true\r\n }))\r\n field_data.push({\r\n id: i,\r\n name: field,\r\n data: rows_data,\r\n cols: cols,\r\n expand: this.state.field_data.length!==0?this.state.field_data[i].expand:true\r\n })\r\n\r\n cols = []\r\n one_field_data = []\r\n rows_data = []\r\n })\r\n\r\n\r\n this.setState({\r\n columns: cols,\r\n years: years,\r\n data: data,\r\n field_data: field_data,\r\n });\r\n }\r\n\r\n}\r\n","import React, {useEffect, useState} from 'react';\r\nimport {ReportsTable} from \"../components/Reports/ReportsTable\";\r\nimport '../style/Reports.css'\r\nimport authService from \"../components/api-authorization/AuthorizeService\";\r\n\r\nconst Reports = () => {\r\n\r\n const [token, setToken] = useState('')\r\n useEffect(async () => {\r\n const token_resp = await authService.getAccessToken()\r\n await fetch('/api/Validator', {\r\n method: 'POST',\r\n headers: !token_resp ? {} : {'Authorization': `Bearer ${token_resp}`}\r\n })\r\n setToken(token_resp)\r\n }, [])\r\n\r\n return (token===''?<>:\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Reports;","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAASCAYAAAC9+TVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAGGSURBVHgBzVJLUsJAEO2ZkJQ7Z+nCsnID4wmIJe7xBHgDuIFwAuAEwAmUPSV4Ar2BU7hxZ9xZhGR8PYlDxHIhbuiqfF7PzOvXb5po7yI8ikN+aIeQ7i+QTQr8+S5EogrCk0YXqRat0nPyvYiE7BMZhVxCxmiifEJpvtCvC/07CasIvEcITCyR56tiV4pvDWlzjVedTNbTL/fjHyQFgT9H5SGgcooCr4P/Oh5l8QFWcw/7xFgvZz3niSPgCsvZgFZrVMmVza2yAXJnIJ+QXxtpjVZkBkxNtN9xJOj/hjc5iewHiQd7sDQbRF0SJgpVrECUkFxfYb3NWJZNvZOhw407Eu2YN3uwQkRGTt2Wj1KDopJEZlwF8i5aFnvpHd6xU1ASUZp2dbJIuPqXf9zextgQlQrDhuwLcAR8S0ZoKFXlPRTm+rU2qy8KbF8xExmvD9kRmwySJyhUmy7NyLYAouqsfCNxZMeNuJgJcQrIJms7bIKm1evfHro/BU92eHL5bL35T1i1exefSQqygkHTy8kAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAASCAYAAAC9+TVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFxSURBVHgB7VJdUsIwEP6SFh+1j84osDewN7D8+K4noJxAOAF6AoYTFE7g+CxKj8ANjMqDj32WkrhJoY4dBy/AziST3Wx29/u+AAermqgGKIgCHPsxDC4hRAgY4vCSfQXoR/XxMt1bhM67EaRIODmFFjP4ucK6FkAYXpogZQ9GEL7WLfWZqt07WRZodHqQJoE2ffX+3OdiF9C1BXwzdnEhm+pt3oLZ3OPIW9DZVYjqBFzklSgi59fb8dYPypxm54Ea3YE7UxS6+9Miv5jEQpCbllLbEYWImIMh+1nZaSMmvEf2yPElczVBzU/c86KbBnKfsM9MnnHhk5+AZ3hzTaTrpoXlINmNx/6UpxmVvsv0Rnwxc3DOIqtaDC8f/lKHGm3G693umGf8d3zNahjFWaFVS62eBlTvXDPJTPb6poBVldglYMxjpyyllThjmAGfM2bPdu8VSPJ+yR/++GxFsXZc/gn32QRPo5eWXLWapzjYv/YNco+T1HlfJvIAAAAASUVORK5CYII=\"","/* eslint-disable */\r\nimport React, {useEffect, useState} from 'react';\r\nimport {Col, Form, Modal, Row} from \"react-bootstrap\";\r\nimport hide_passwd from '../../assets/icons/hide_passwd.png'\r\nimport show_passwd from '../../assets/icons/show_passwd.png'\r\nimport success from '../../assets/icons/success.png'\r\nimport fail from '../../assets/icons/fail.png'\r\nimport DataTable from \"react-data-table-component\";\r\nimport del from \"../../assets/icons/del.png\";\r\n\r\nexport default function AddUser(props) {\r\n const initialState = {name: '', email: '', password: '', confirmPassword: ''}\r\n const [userData, setUserData] = useState(initialState);\r\n const [message, setMessage] = useState('')\r\n const [errors, setErrors] = useState(initialState)\r\n const [showPasswd, setShowPasswd] = useState(false)\r\n const [showConfirmPasswd, setShowConfirmPasswd] = useState(false)\r\n const [infoModalShow, setInfoModalShow] = useState(false)\r\n const [delModalShow, setDelModalShow] = useState(false)\r\n const [infoIcon, setInfoIcon] = useState(success)\r\n const [delUserId, setDelUserId] = useState('')\r\n const [users, setUsers] = useState([])\r\n const columns = [{\r\n name: '№',\r\n selector: row => row.no,\r\n width: \"10%\",\r\n compact: true,\r\n center: true,\r\n wrap: true\r\n }, {\r\n name: 'Имя пользователя',\r\n selector: row => row.name,\r\n sortable: true,\r\n width: \"50%\",\r\n compact: false,\r\n wrap: true\r\n }, {\r\n name: 'e-mail',\r\n selector: row => row.email,\r\n sortable: true,\r\n width: \"40%\",\r\n center: false,\r\n wrap: true\r\n }, {\r\n cell: (row) => ,\r\n button: true,\r\n width: \"0\",\r\n center: true,\r\n }]\r\n\r\n\r\n const getUsers = async () => {\r\n const user_response = await fetch('api/ManageUser/GetUsers', {\r\n headers: !props.token ? {} : {'Authorization': `Bearer ${props.token}`}\r\n })\r\n let users_full = await user_response.json()\r\n setUsers(users_full.map((user, i) => ({id: user.id, no: i + 1, name: user.name, email: user.email})))\r\n }\r\n\r\n function addUser(e) {\r\n e.preventDefault();\r\n if (errors.name === '' && errors.email === '' && errors.password === '' && errors.confirmPassword === '') {\r\n const newUser = {name: userData.name, email: userData.email, password: userData.password}\r\n fetch('api/manageUser/addUser', {\r\n method: 'POST',\r\n headers: !props.token ? {} : {\r\n 'Authorization': `Bearer ${props.token}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(newUser)\r\n }).then((response) => {\r\n if (response.ok) {\r\n setMessage('Пользователь успешно добавлен')\r\n setInfoIcon(success)\r\n setInfoModalShow(true)\r\n setUserData(initialState)\r\n getUsers()\r\n } else {\r\n setMessage('Ошибка добавления пользователя')\r\n setInfoIcon(fail)\r\n setInfoModalShow(true)\r\n }\r\n })\r\n }\r\n }\r\n\r\n function infoModal(props) {\r\n return (\r\n setInfoModalShow(false)}\r\n centered>\r\n \r\n success\r\n \r\n \r\n
{message}
\r\n
\r\n
\r\n );\r\n }\r\n\r\n function checkEmailValid(value) {\r\n let regEmail = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n if (!regEmail.test(value)) {\r\n return ('Некорректный email!')\r\n }\r\n return ''\r\n }\r\n\r\n function checkPasswdValid(value){\r\n if (value.length<5)\r\n return 'Пароль должен содержать минимум 5 символов!'\r\n else\r\n return ''\r\n }\r\n\r\n function delModal(props) {\r\n return (\r\n setDelModalShow(false)}\r\n centered>\r\n \r\n Вы действительно хотите удалить пользователя?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n function delUser() {\r\n fetch('api/manageUser/deleteUser?id=' + delUserId, {\r\n method: 'DELETE',\r\n headers: !props.token ? {} : {'Authorization': `Bearer ${props.token}`}\r\n }).then((response) => {\r\n if (response.ok) {\r\n setMessage('Пользователь успешно удален')\r\n setInfoIcon(success)\r\n setDelModalShow(false)\r\n setInfoModalShow(true)\r\n getUsers()\r\n } else {\r\n setMessage('Ошибка удаления пользователя')\r\n setInfoIcon(fail)\r\n setDelModalShow(false)\r\n setInfoModalShow(true)\r\n }\r\n })\r\n }\r\n\r\n\r\n useEffect(() => {\r\n if (props.token !== '') {\r\n getUsers()\r\n }\r\n }, [props.token])\r\n\r\n useEffect(() => {\r\n setErrors({\r\n name: userData.name === '' ? 'Заполните поле!' : '',\r\n email: errors.email,\r\n password: errors.password,\r\n confirmPassword: errors.confirmPassword\r\n })\r\n }, [userData.name]);\r\n\r\n useEffect(() => {\r\n setErrors({\r\n name: errors.name,\r\n email: userData.email === '' ? 'Заполните поле!' : '',\r\n password: errors.password,\r\n confirmPassword: errors.confirmPassword\r\n })\r\n }, [userData.email])\r\n\r\n useEffect(() => {\r\n setErrors({\r\n name: errors.name,\r\n email: errors.email,\r\n password: userData.password === '' ? 'Заполните поле!' : '',\r\n confirmPassword: userData.confirmPassword !== userData.password ? 'Пароли не совпадают!' : ''\r\n })\r\n }, [userData.password]);\r\n\r\n useEffect(() => {\r\n setErrors({\r\n name: errors.name,\r\n email: errors.email,\r\n password: errors.password,\r\n confirmPassword: userData.confirmPassword === '' ? (userData.password !== '' ? 'Заполните поле!' : '') :\r\n (userData.confirmPassword !== userData.password ? 'Пароли не совпадают!' : '')\r\n })\r\n }, [userData.confirmPassword]);\r\n\r\n useEffect(() => {\r\n document.getElementById('passwd').type = showPasswd ? 'text' : 'password'\r\n }, [showPasswd])\r\n\r\n useEffect(() => {\r\n document.getElementById('passwd_confirm').type = showConfirmPasswd ? 'text' : 'password'\r\n }, [showConfirmPasswd])\r\n\r\n useEffect(() => {\r\n if (infoModalShow) {\r\n setTimeout(() => setInfoModalShow(false), 2000)\r\n }\r\n }, [infoModalShow])\r\n\r\n return \r\n \r\n {infoModal(infoModalShow)}\r\n {delModal(delModalShow)}\r\n Добавить нового пользователя\r\n \r\n
\r\n \r\n Введите имя пользователя\r\n {\r\n setUserData({\r\n name: e.target.value,\r\n email: userData.email,\r\n password: userData.password,\r\n confirmPassword: userData.confirmPassword\r\n })\r\n }} placeholder='имя пользователя'>\r\n {errors.name}\r\n \r\n \r\n Введите e-mail\r\n setErrors({\r\n name: errors.name,\r\n email: errors.email === '' ? checkEmailValid(userData.email) : errors.email,\r\n password: errors.password,\r\n confirmPassword: errors.confirmPassword\r\n })}\r\n onChange={(e) => {\r\n setUserData({\r\n name: userData.name,\r\n email: e.target.value,\r\n password: userData.password,\r\n confirmPassword: userData.confirmPassword\r\n })\r\n }} placeholder='e-mail'>\r\n {errors.email}\r\n \r\n \r\n Введите пароль\r\n setErrors({\r\n name: errors.name,\r\n email: errors.email,\r\n password: errors.password === '' ? checkPasswdValid(userData.password) : errors.password,\r\n confirmPassword: errors.confirmPassword\r\n })}\r\n onChange={(e) => {\r\n setUserData({\r\n name: userData.name,\r\n email: userData.email,\r\n password: e.target.value,\r\n confirmPassword: userData.confirmPassword\r\n })\r\n }}/>\r\n \r\n {errors.password}\r\n \r\n \r\n Повторите пароль\r\n setErrors({\r\n name: errors.name,\r\n email: errors.email,\r\n password: errors.password,\r\n confirmPassword: errors.confirmPassword === '' ? checkPasswdValid(userData.confirmPassword) : errors.confirmPassword\r\n })}\r\n onChange={(e) => {\r\n setUserData({\r\n name: userData.name,\r\n email: userData.email,\r\n password: userData.password,\r\n confirmPassword: e.target.value\r\n })\r\n }}/>\r\n \r\n {errors.confirmPassword}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Список пользователей\r\n \r\n \r\n \r\n \r\n
;\r\n}\r\n","import React, {useEffect, useState} from 'react';\r\nimport {Col, Form, Modal, Row} from \"react-bootstrap\";\r\nimport success from \"../../assets/icons/success.png\";\r\nimport fail from \"../../assets/icons/fail.png\";\r\nimport show_passwd from \"../../assets/icons/show_passwd.png\";\r\nimport hide_passwd from \"../../assets/icons/hide_passwd.png\";\r\n\r\nexport default function ChangePage(props) {\r\n const [newEmail, setNewEmail] = useState('')\r\n const [oldPasswd, setOldPasswd] = useState('')\r\n const [newPasswd, setNewPasswd] = useState('')\r\n const [repeatNewPasswd, setRepeatNewPasswd] = useState('')\r\n const [errorsEmail, setErrorsEmail] = useState('')\r\n const [passwdError, setPasswdError] = useState({old: '', new: '', repeatNew: ''})\r\n const [message, setMessage] = useState('')\r\n const [infoIcon, setInfoIcon] = useState(success)\r\n const [showPasswd, setShowPasswd] = useState({old: false, new: false, repeatNew: false})\r\n const [infoModalShow, setInfoModalShow] = useState(false)\r\n const [askModalShow, setAskModalShow] = useState(false)\r\n\r\n function changeEmail(e) {\r\n e.preventDefault()\r\n if (errorsEmail === '') {\r\n const changeEmail = {\"newEmail\": newEmail}\r\n fetch('api/ResetEmail', {\r\n method: 'PUT',\r\n headers: !props.token ? {} : {\r\n 'Authorization': `Bearer ${props.token}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(changeEmail)\r\n }).then((response) => {\r\n if (response.ok) {\r\n setMessage('E-mail успешно изменен')\r\n setInfoIcon(success)\r\n setAskModalShow(false)\r\n setInfoModalShow(true)\r\n setNewEmail('')\r\n } else {\r\n setMessage('Ошибка изменения e-mail')\r\n setInfoIcon(fail)\r\n setAskModalShow(false)\r\n setInfoModalShow(true)\r\n }\r\n })\r\n }\r\n }\r\n\r\n function changePasswd(e) {\r\n e.preventDefault()\r\n if (passwdError.old === '' && passwdError.new === '' && passwdError.repeatNew === '') {\r\n const changePasswd = {oldPass: oldPasswd, newPass: newPasswd}\r\n fetch('api/resetPassword', {\r\n method: 'PUT',\r\n headers: !props.token ? {} : {\r\n 'Authorization': `Bearer ${props.token}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(changePasswd)\r\n }).then((response) => {\r\n if (response.ok) {\r\n setMessage('Пароль успешно изменен')\r\n setInfoIcon(success)\r\n setInfoModalShow(true)\r\n setOldPasswd('')\r\n setNewPasswd('')\r\n setRepeatNewPasswd('')\r\n } else {\r\n setMessage('Ошибка изменения пароля')\r\n setInfoIcon(fail)\r\n setInfoModalShow(true)\r\n }\r\n })\r\n }\r\n }\r\n\r\n function infoModal(props) {\r\n return (\r\n setInfoModalShow(false)}\r\n centered>\r\n \r\n success\r\n \r\n \r\n
{message}
\r\n
\r\n
\r\n );\r\n }\r\n\r\n function askModal(props) {\r\n return (\r\n setAskModalShow(false)}\r\n centered>\r\n \r\n Вы действительно хотите изменить свой e-mail?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n function checkEmailValid(value) {\r\n if (newEmail === '')\r\n return ('Заполните поле!')\r\n let regEmail = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n if (!regEmail.test(value)) {\r\n return ('Некорректный email!')\r\n }\r\n return ''\r\n }\r\n\r\n function checkPasswdValid(value) {\r\n if (value.length < 5)\r\n return 'Пароль должен содержать минимум 5 символов!'\r\n else\r\n return ''\r\n }\r\n\r\n useEffect(() => {\r\n if (oldPasswd === '' && newPasswd === '' && repeatNewPasswd === '')\r\n setPasswdError({old: '', new: '', repeatNew: ''})\r\n else\r\n setPasswdError({\r\n old: oldPasswd === '' ? 'Заполните поле!' : '',\r\n new: passwdError.new,\r\n repeatNew: passwdError.repeatNew\r\n })\r\n }, [oldPasswd])\r\n\r\n useEffect(() => {\r\n if (oldPasswd === '' && newPasswd === '' && repeatNewPasswd === '')\r\n setPasswdError({old: '', new: '', repeatNew: ''})\r\n else\r\n setPasswdError({\r\n old: passwdError.old,\r\n new: newPasswd === '' ? 'Заполните поле!' : (''),\r\n repeatNew: passwdError.repeatNew\r\n })\r\n }, [newPasswd])\r\n\r\n useEffect(() => {\r\n if (oldPasswd === '' && newPasswd === '' && repeatNewPasswd === '')\r\n setPasswdError({old: '', new: '', repeatNew: ''})\r\n else\r\n setPasswdError({\r\n old: passwdError.old,\r\n new: passwdError.new,\r\n repeatNew: repeatNewPasswd === '' ? (newPasswd === '' ? '' : 'Заполните поле!') : (newPasswd === '' ? '' : (newPasswd === repeatNewPasswd ? '' : 'Пароли не совпадают!'))\r\n })\r\n }, [repeatNewPasswd])\r\n\r\n\r\n useEffect(() => {\r\n if (infoModalShow) {\r\n setTimeout(() => setInfoModalShow(false), 2000)\r\n }\r\n }, [infoModalShow])\r\n\r\n\r\n useEffect(() => {\r\n document.getElementById('old').type = showPasswd.old ? 'text' : 'password'\r\n document.getElementById('new').type = showPasswd.new ? 'text' : 'password'\r\n document.getElementById('repeatNew').type = showPasswd.repeatNew ? 'text' : 'password'\r\n }, [showPasswd])\r\n\r\n\r\n return \r\n {infoModal(infoModalShow)}\r\n {askModal(askModalShow)}\r\n \r\n Изменить e-mail\r\n \r\n
\r\n \r\n Введите новый e-mail\r\n setErrorsEmail(checkEmailValid(newEmail))}\r\n onChange={(e) => setNewEmail(e.target.value)}>\r\n {errorsEmail}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Изменить пароль\r\n \r\n
\r\n \r\n Введите старый пароль\r\n setPasswdError({\r\n old: passwdError.old === '' ? checkPasswdValid(oldPasswd) : passwdError.old,\r\n new: passwdError.new,\r\n repeatNew: passwdError.repeatNew\r\n })}\r\n id='old'\r\n onChange={(e) => setOldPasswd(e.target.value)}\r\n >\r\n \r\n {passwdError.old}\r\n \r\n \r\n Введите новый пароль\r\n setPasswdError({\r\n old: passwdError.old,\r\n new: passwdError.new === '' ? checkPasswdValid(newPasswd) : passwdError.new,\r\n repeatNew: passwdError.repeatNew\r\n })}\r\n type='password'\r\n onChange={(e) => setNewPasswd(e.target.value)}\r\n >\r\n \r\n {passwdError.new}\r\n \r\n \r\n Повторите новый пароль\r\n setPasswdError({\r\n old: passwdError.old,\r\n new: passwdError.new,\r\n repeatNew: passwdError.repeatNew === '' ? checkPasswdValid(repeatNewPasswd) : passwdError.repeatNew\r\n })}\r\n onChange={(e) => setRepeatNewPasswd(e.target.value)}>\r\n \r\n \r\n {passwdError.repeatNew}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n}\r\n","import React, {useEffect, useState} from 'react'\r\nimport AddUser from '../components/Profile/AddUser'\r\nimport ChangePage from '../components/Profile/ChangePage'\r\nimport \"../style/Profile.css\"\r\nimport Tab from 'react-bootstrap/Tab'\r\nimport Tabs from 'react-bootstrap/Tabs'\r\nimport authService from \"../components/api-authorization/AuthorizeService\";\r\n\r\nconst Profile = () => {\r\n const [token, setToken] = useState('')\r\n const [role, setRole] = useState()\r\n const [userName, setUserName] = useState('')\r\n\r\n useEffect(async () => {\r\n const [user] = await Promise.all([authService.getUser()])\r\n setUserName(user.name)\r\n const token_resp = await authService.getAccessToken()\r\n setToken(token_resp)\r\n }, [])\r\n\r\n useEffect(async () => {\r\n if (token !== '') {\r\n fetch('api/Validator', {\r\n method: 'POST',\r\n headers: !token ? {} : {\r\n 'Authorization': `Bearer ${token}`,\r\n },\r\n })\r\n }\r\n }, [token])\r\n\r\n useEffect(async () => {\r\n if (token !== '') {\r\n const user_response = await fetch('api/checkRole?role=admin', {\r\n headers: !token ? {} : {'Authorization': `Bearer ${token}`}\r\n })\r\n const user_role = await user_response.json()\r\n setRole(((user_role.info === 'false') ? 'user' : 'admin'))\r\n }\r\n }, [token])\r\n\r\n\r\n return (\r\n
\r\n
Личный кабинет
\r\n
{userName}
\r\n {role === 'admin' ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : }\r\n
\r\n );\r\n};\r\n\r\nexport default Profile;","/* eslint-disable */\r\nimport React, {Component} from 'react';\r\nimport {Button, Col, Modal, Row, Table} from \"react-bootstrap\";\r\nimport {Collapse} from 'react-collapse';\r\nimport DataTable from \"react-data-table-component\";\r\nimport authService from \"../api-authorization/AuthorizeService\";\r\nimport Form from \"react-bootstrap/Form\";\r\nimport Select, {components, DropdownIndicatorProps} from \"react-select\";\r\nimport add from \"../../assets/icons/add.png\";\r\nimport arrow_up from \"../../assets/icons/dark_arrow_up.png\";\r\nimport arrow_down from \"../../assets/icons/dark_arrow_down.png\";\r\nimport {Typography} from \"@material-ui/core\";\r\nimport del from \"../../assets/icons/del.png\";\r\nimport edit from \"../../assets/icons/edit.png\";\r\n\r\n\r\nexport class CropsTable extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n columns: [],\r\n crops_default: [],\r\n crops_user: [],\r\n columns_user: [],\r\n isModalShow: false,\r\n isSelectChange: false,\r\n loading: true,\r\n isAdd: false,\r\n error_select: false,\r\n row_save: {\r\n id: 0,\r\n name: '',\r\n nutrient: {n: 0, p2O5: 0, k2O: 0, s: 0, mg: 0, ca: 0},\r\n coefSoil: {n: 0, p2O5: 0, k2O: 0, s: 0, mg: 0, ca: 0},\r\n coefFertilizer: {n: 0, p2O5: 0, k2O: 0, s: 0, mg: 0, ca: 0},\r\n cropGroupId: 0,\r\n isBob: false,\r\n coefBob: 1\r\n },\r\n crop_group_list: [],\r\n rowId: 0,\r\n }\r\n this.AddModal = this.AddModal.bind(this)\r\n this.changeResponse = this.changeResponse.bind(this)\r\n this.saveResponse = this.saveResponse.bind(this)\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.populateCropsData();\r\n }\r\n\r\n saveResponse = () => {\r\n if(this.state.isSelectChange){\r\n fetch('api/crop', {\r\n method: 'POST',\r\n headers: !this.props.token ? {} : {\r\n 'Authorization': `Bearer ${this.props.token}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(this.state.row_save)\r\n }).then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n this.setState({crops_user: this.state.crops_user.concat(result),\r\n isModalShow: false,\r\n isSelectChange:false,\r\n row_save: {\r\n id: 0,\r\n name: '',\r\n nutrient: {n: 0, p2O5: 0, k2O: 0, s: 0, mg: 0, ca: 0},\r\n coefSoil: {n: 0, p2O5: 0, k2O: 0, s: 0, mg: 0, ca: 0},\r\n coefFertilizer: {n: 0, p2O5: 0, k2O: 0, s: 0, mg: 0, ca: 0},\r\n cropGroupId: 0,\r\n isBob: false,\r\n coefBob: 1\r\n },\r\n }, () => {\r\n this.forceUpdate()\r\n })\r\n });\r\n }\r\n })\r\n }else{\r\n this.setState({error_select:true})\r\n }\r\n\r\n }\r\n\r\n changeResponse = () => {\r\n fetch('api/crop', {\r\n method: 'PUT',\r\n headers: !this.props.token ? {} : {\r\n 'Authorization': `Bearer ${this.props.token}`,\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(this.state.row_save)\r\n }).then((response) => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n this.state.crops_user.splice(this.state.crops_user.findIndex((r) => r.id === result.id), 1, result)\r\n this.setState({isModalShow: false})\r\n })\r\n }\r\n }\r\n )\r\n }\r\n\r\n handleClickDelete(rowId) {\r\n fetch('api/crop?id=' + rowId, {\r\n method: 'DELETE',\r\n headers: !this.props.token ? {} : {'Authorization': `Bearer ${this.props.token}`}\r\n }).then((response) => {\r\n if (response.ok) {\r\n this.state.crops_user.splice(this.state.crops_user.findIndex((r) => r.id === rowId), 1)\r\n this.forceUpdate()\r\n }\r\n });\r\n }\r\n\r\n\r\n AddModal(props, isAdd, rowId) {\r\n const DropdownIndicator = (props: DropdownIndicatorProps) => {\r\n return (\r\n \r\n arrow-down\r\n \r\n );\r\n };\r\n\r\n function NoOptionsMessage(props) {\r\n if (props.options.length) return null;\r\n return Нет данных;\r\n }\r\n\r\n let crop = []\r\n if (!isAdd) {\r\n crop = this.state.crops_user.find((row) => row.id === rowId)\r\n this.state.row_save = crop\r\n }\r\n return (\r\n this.setState({isModalShow: false})}\r\n centered\r\n size=\"lg\"\r\n id=\"modal-add\"\r\n >\r\n \r\n {(isAdd ? \"Добавить \" : \"Редактировать \") + \"свою культуру\"}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Наименование культуры\r\n this.state.row_save.name = e.target.value}\r\n />\r\n \r\n
\r\n
\r\n
\r\n
\r\n Вынос питательных веществ одним центнером основной и соответствующим\r\n количеством побочной\r\n продукции (кг)\r\n
\r\n
\r\n \r\n N\r\n this.state.row_save.nutrient.n = e.target.value}\r\n />\r\n \r\n
\r\n
\r\n \r\n P2O5\r\n this.state.row_save.nutrient.p2O5 = e.target.value}\r\n />\r\n \r\n
\r\n
\r\n \r\n K2O\r\n this.state.row_save.nutrient.k2O = e.target.value}/>\r\n \r\n
\r\n
\r\n \r\n S\r\n this.state.row_save.nutrient.s = e.target.value}/>\r\n \r\n
\r\n
\r\n \r\n CaO\r\n this.state.row_save.nutrient.caO = e.target.value}/>\r\n \r\n
\r\n
\r\n \r\n Mg\r\n this.state.row_save.nutrient.mg = e.target.value}/>\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Коэффициент использования питательных веществ из запасов почвы\r\n (%)\r\n
\r\n
\r\n \r\n N\r\n this.state.row_save.coefSoil.n = e.target.value / 100}\r\n />\r\n \r\n
\r\n
\r\n \r\n P2O5\r\n this.state.row_save.coefSoil.p2O5 = e.target.value / 100}/>\r\n \r\n
\r\n
\r\n \r\n K2O\r\n this.state.row_save.coefSoil.k2O = e.target.value / 100}/>\r\n \r\n
\r\n
\r\n \r\n S\r\n this.state.row_save.coefSoil.s = e.target.value / 100}/>\r\n \r\n
\r\n
\r\n \r\n CaO\r\n this.state.row_save.coefSoil.caO = e.target.value / 100}/>\r\n \r\n
\r\n
\r\n \r\n Mg\r\n this.state.row_save.coefSoil.mg = e.target.value / 100}/>\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Коэффициент использования питательных веществ из минеральных удобрений\r\n в 1-й год (%)\r\n
\r\n
\r\n \r\n N\r\n this.state.row_save.coefFertilizer.n = e.target.value / 100}\r\n />\r\n \r\n
\r\n
\r\n \r\n P2O5\r\n this.state.row_save.coefFertilizer.p2O5 = e.target.value / 100}/>\r\n \r\n
\r\n
\r\n \r\n K2O\r\n this.state.row_save.coefFertilizer.k2O = e.target.value / 100}/>\r\n \r\n
\r\n
\r\n \r\n S\r\n this.state.row_save.coefFertilizer.s = e.target.value / 100}/>\r\n \r\n
\r\n
\r\n \r\n CaO\r\n this.state.row_save.coefFertilizer.caO = e.target.value / 100}/>\r\n \r\n
\r\n
\r\n \r\n Mg\r\n this.state.row_save.coefFertilizer.mg = e.target.value / 100}/>\r\n \r\n
\r\n
\r\n
\r\n
\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.row_save.coefBob = e.target.value}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Пожнивные остатки\r\n ({\r\n ...theme,\r\n border: '1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n colors: {\r\n ...theme.colors,\r\n primary: '#ABB3D1',\r\n },\r\n })}\r\n styles={{\r\n container: (baseStyles, state) => ({\r\n ...baseStyles,\r\n width: '100%',\r\n height: '55px',\r\n }),\r\n control: (baseStyles, state) => ({\r\n ...baseStyles,\r\n background: state.isFocused ? '#fff' : '#E9EAEE',\r\n height: '55px',\r\n width: '100%',\r\n }),\r\n menu: (baseStyles, state) => ({\r\n ...baseStyles,\r\n border: ' 1px solid #ABB3D1',\r\n borderRadius: '10px',\r\n margin: '0',\r\n fontSize: '18px !important',\r\n }),\r\n option: (baseStyles, state) => ({\r\n ...baseStyles,\r\n backgroundColor: state.isFocused ? 'rgba(226, 228, 239, 0.5)' : \"white\",\r\n lineHeight: '20px',\r\n fontSize: '18px !important',\r\n }),\r\n singleValue: (baseSyles) => ({\r\n ...baseSyles,\r\n textAlign: 'left',\r\n fontSize: '18px',\r\n color: '#201E44',\r\n margin: '0 !important'\r\n }),\r\n }}\r\n menuPlacement=\"auto\"\r\n menuPosition='absolute'\r\n placeholder='Выберите вашу культуру из группы'\r\n defaultValue={isAdd ? '' : this.state.crop_group_list.find((el) => el.value = crop.cropGroupId)}\r\n options={this.state.crop_group_list}\r\n onChange={(e) => {\r\n this.setState({\r\n isSelectChange: true,\r\n error_select:false,\r\n row_save: {\r\n id:this.state.row_save.id,\r\n name:this.state.row_save.name,\r\n nutrient: this.state.row_save.nutrient,\r\n coefSoil: this.state.row_save.coefSoil,\r\n coefFertilizer: this.state.row_save.coefFertilizer,\r\n cropGroupId: e.value,\r\n isBob: this.state.row_save.isBob,\r\n coefBob: this.state.row_save.coefBob\r\n }\r\n }, ()=>this.forceUpdate())\r\n\r\n }}\r\n />\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n static renderTable(columns, crops_default, crops_user, columns_user, add_crop) {\r\n return (\r\n
\r\n Коэффициенты по культурам\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
КультураВынос питательных веществ 1 ц основной и соответствующим количеством\r\n побочной\r\n продукции, кг\r\n Коэффициенты использования питательных веществ из запасов почвы, %\r\n Коэффициенты использования питательных веществ из минеральных\r\n удобрений
в\r\n первый год, %\r\n
Коэф. для бобовых культур
NP2O5K2OSCaOMgNP2O5K2OSCaOMgNP2O5K2OSCaOMg
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n render() {\r\n const add_crop = () => {\r\n this.setState({isModalShow: true, isAdd: true})\r\n }\r\n const crop_table = this.state.loading ?\r\n

Загрузка...

:\r\n CropsTable.renderTable(\r\n this.state.columns,\r\n this.state.crops_default,\r\n this.state.crops_user,\r\n this.state.columns_user,\r\n add_crop)\r\n return (<>\r\n Справочник\r\n {crop_table}\r\n {this.state.isModalShow ? this.AddModal(this.state.isModalShow, this.state.isAdd, this.state.rowId) : <>}\r\n \r\n );\r\n\r\n }\r\n\r\n async populateCropsData() {\r\n const crops_response = await fetch('api/crop', {\r\n headers: !this.props.token ? {} : {'Authorization': `Bearer ${this.props.token}`}\r\n })\r\n const crops_all = await crops_response.json()\r\n const crops_default = crops_all.defaultCrop\r\n const crops_user = crops_all.userCrop\r\n const crop_group_list = crops_all.groupCrop\r\n const columns = [{\r\n selector: row => row.name,\r\n sortable: true,\r\n width: \"14%\",\r\n wrap: true,\r\n compact: false\r\n }, {\r\n selector: row => (row.nutrient.n).toFixed(2),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => (row.nutrient.p2O5).toFixed(2),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => (row.nutrient.k2O).toFixed(2),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => (row.nutrient.s).toFixed(2),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => (row.nutrient.caO).toFixed(2),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => (row.nutrient.mg).toFixed(2),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => Math.round(row.coefSoil.n * 100),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => Math.round(row.coefSoil.p2O5 * 100),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => Math.round(row.coefSoil.k2O * 100),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => Math.round(row.coefSoil.s * 100),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => (row.coefSoil.caO * 100).toFixed(1),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => Math.round(row.coefSoil.mg * 100),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => Math.round(row.coefFertilizer.n * 100),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => Math.round(row.coefFertilizer.p2O5 * 100),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => Math.round(row.coefFertilizer.k2O * 100),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => Math.round(row.coefFertilizer.s * 100),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => Math.round(row.coefFertilizer.caO * 100),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => Math.round(row.coefFertilizer.mg * 100),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => row.isBob ? row.coefBob : '-',\r\n width: \"5%\",\r\n center: true,\r\n compact: true\r\n }]\r\n const columns_user = [{\r\n cell: (row) =>\r\n ,\r\n button: true,\r\n width: \"0%\"\r\n }, {\r\n selector: row => row.name,\r\n sortable: true,\r\n width: \"14%\",\r\n wrap: true,\r\n compact: false\r\n }, {\r\n selector: row => (row.nutrient.n).toFixed(2),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => (row.nutrient.p2O5).toFixed(2),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => (row.nutrient.k2O).toFixed(2),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => (row.nutrient.s).toFixed(2),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => (row.nutrient.caO).toFixed(2),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => (row.nutrient.mg).toFixed(2),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => Math.round(row.coefSoil.n * 100),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => Math.round(row.coefSoil.p2O5 * 100),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => Math.round(row.coefSoil.k2O * 100),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => Math.round(row.coefSoil.s * 100),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => (row.coefSoil.caO * 100).toFixed(1),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => Math.round(row.coefSoil.mg * 100),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => Math.round(row.coefFertilizer.n * 100),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => Math.round(row.coefFertilizer.p2O5 * 100),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => Math.round(row.coefFertilizer.k2O * 100),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => Math.round(row.coefFertilizer.s * 100),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => Math.round(row.coefFertilizer.caO * 100),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => Math.round(row.coefFertilizer.mg * 100),\r\n width: \"4.5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n selector: row => row.isBob ? row.coefBob : '-',\r\n width: \"5%\",\r\n center: true,\r\n compact: true\r\n }, {\r\n cell: (row) =>\r\n ,\r\n button: true,\r\n width: \"0px\"\r\n }]\r\n\r\n this.setState({\r\n columns: columns,\r\n crops_default: crops_default,\r\n crops_user: crops_user,\r\n columns_user: columns_user,\r\n crop_group_list: crop_group_list,\r\n loading: false\r\n });\r\n }\r\n}\r\n","import React, {useEffect, useState} from 'react';\r\nimport \"../style/Directory.css\"\r\nimport {CropsTable} from \"../components/Directory/CropsTable\";\r\nimport authService from \"../components/api-authorization/AuthorizeService\";\r\n\r\n\r\nconst Directory = () => {\r\n const [token, setToken] = useState('')\r\n useEffect(async () => {\r\n const token_resp = await authService.getAccessToken()\r\n await fetch('/api/Validator', {\r\n method: 'POST',\r\n headers: !token_resp ? {} : {'Authorization': `Bearer ${token_resp}`}\r\n })\r\n setToken(token_resp)\r\n }, [])\r\n return (token===''?<>:\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Directory;","export default __webpack_public_path__ + \"static/media/not_found.ee596504.png\";","import React from 'react';\r\nimport {Link} from 'react-router-dom';\r\nimport PageNotFound from '../assets/images/not_found.png';\r\nimport '../style/NotFound.css'\r\n\r\nclass NotFoundPage extends React.Component {\r\n render() {\r\n return
\r\n not-found\r\n
404
\r\n
\r\n
Вернитесь на
главную
\r\n
и попробуйте еще раз
\r\n\r\n
\r\n
;\r\n }\r\n}\r\n\r\nexport default NotFoundPage;","import React, {Component} from 'react';\r\nimport {Redirect, Route, Switch} from \"react-router-dom\";\r\nimport AuthorizeRoute from './components/api-authorization/AuthorizeRoute';\r\nimport ApiAuthorizationRoutes from './components/api-authorization/ApiAuthorizationRoutes';\r\nimport {ApplicationPaths} from './components/api-authorization/ApiAuthorizationConstants';\r\nimport Sidebar from \"./components/Sidebar.jsx\";\r\nimport Fields from \"./pages/Fields.jsx\";\r\nimport Fertilizers from \"./pages/Fertilizers.jsx\";\r\nimport Calculations from \"./pages/Calculations.jsx\";\r\nimport Reports from \"./pages/Reports.jsx\";\r\nimport Profile from \"./pages/Profile\";\r\nimport './App.css';\r\nimport './custom.css';\r\nimport Directory from \"./pages/Directory\";\r\nimport NotFoundPage from \"./pages/NotFoundPage\";\r\n\r\n\r\nexport default class App extends Component {\r\n static displayName = App.name\r\n\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 \r\n \r\n );\r\n }\r\n}\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://cra.link/PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://cra.link/PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then((registration) => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://cra.link/PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch((error) => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' },\r\n })\r\n .then((response) => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then((registration) => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log('No internet connection found. App is running in offline mode.');\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then((registration) => {\r\n registration.unregister();\r\n })\r\n .catch((error) => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","const reportWebVitals = (onPerfEntry) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import 'bootstrap/dist/css/bootstrap.css';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport {BrowserRouter} from 'react-router-dom';\r\nimport App from './App';\r\nimport * as serviceWorkerRegistration from './serviceWorkerRegistration';\r\nimport reportWebVitals from './reportWebVitals';\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n rootElement);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://cra.link/PWA\r\nserviceWorkerRegistration.unregister();\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""}