{"version":3,"sources":["assets/icons/Bell.png","assets/icons/Currency.png","assets/icons/Document.png","assets/icons/File.png","assets/icons/Settings.png","assets/icons/Cart.png","assets/icons/Profile.png","assets/icons/Reload.png","assets/icons/arrow@2x.png","assets/icons/arrow1@2x.png","assets/icons/check_none.png","assets/icons/check_success.png","assets/icons/caret_down.png","assets/icons/check.png","assets/icons/trash.png","assets/icons/Search.png","assets/icons/Calendar.png","assets/icons/Share.png","assets/icons/close.png","assets/icons/Pdf.png","assets/icons/arrow_down.png","assets/icons/Radio_check.png","assets/icons/user.png","assets/icons/password.png","assets/icons/admin_user.png","assets/icons/admin_password.png","assets/images/Logo.png","assets/images/1.png","assets/images/AdminLogo.png","assets/images/UserAuth.png","assets/images/AdminAuth.png","assets/images/No_Image.png","components/common/Block.js","utils/Colors.js","utils/Metrics.js","utils/Navigator.js","utils/normalize.js","utils/Utils.js","components/common/Button.js","components/common/TextView.js","assets/icons/index.js","components/common/CheckBox.js","components/common/Empty.js","components/common/FilledInput.js","components/common/Input.js","components/common/WrapperBlock.js","assets/images/index.js","redux/actions/utils.js","redux/actions/home.js","utils/hook.js","configs/axiosDebugger.js","redux/actions/auth.js","redux/actions/estimate.js","redux/actions/invoice.js","components/navigation/Header.js","components/navigation/Tab.js","components/quotation-review/FooterButton.js","components/title/index.js","components/navigation/BottomTab.js","utils/DateUtility.js","components/home/TabView.js","utils/MoneyFormatter.js","components/home/Tab1.js","components/home/Tab3.js","components/home/Tab2.js","components/common/FullLoading.js","components/home/ContentTab.js","components/home/InvoiceConfirm.js","components/home/Footer.js","components/home/EstimateConfirm.js","components/common/InvoiceEstimateButton.js","components/common/Back.js","components/common/Title.js","containers/home/index.js","components/notice/NoticeStatus.js","components/notice/Footer.js","components/notice/NoticeToday.js","redux/actions/general.js","utils/Constant.js","containers/notice/index.js","components/common/InsertProductModal.js","components/catalog/CatalogCheckBox.js","components/catalog/Card.js","redux/actions/product.js","components/common/DateInput.js","containers/transfer-request/index.js","redux/actions/customer.js","redux/actions/transfer.js","components/common/InputWithSuggestion.js","components/common/DropdownList.js","containers/catalog/index.js","containers/performance/index.js","containers/past-notice/index.js","components/account/ListSaved.js","components/account/SectionHeader.js","components/account/PastQuote.js","components/account/AccountStatusCart.js","redux/actions/account.js","containers/account/index.js","components/modal/ModalPurchase.js","containers/purchase-supplier/index.js","containers/quotation-supplier/index.js","components/partition-preview/PreviewItem.js","containers/past-dividers/index.js","components/quotation-review/TextItem.js","containers/past-dividers/estimate-review.js","components/cart/TransferView.js","components/cart/inputAmountView.js","containers/past-dividers/invoice-review.js","components/cart/Package.js","containers/cart/index.js","components/buy-review/ItemTable.js","components/buy-review/Table.js","components/buy-review/ItemSearch.js","components/buy-review/SearchList.js","containers/buy-review/index.js","containers/partition-review/fakePartitionPreview.js","containers/partition-review/index.js","containers/quotation-review/index.js","containers/quotation-review/QuotationComplete.js","containers/purchase/index.js","components/past-performance/PerformanceRow.js","containers/past-performance/index.js","components/transfer/Card.js","containers/transfer-request/List.js","containers/transfer-request/Transfered.js","containers/auth/index.js","containers/settings/index.js","components/modal/ModalAnalysis.js","containers/settings/ItemAnalysis.js","containers/settings/Analysis.js","components/common/OtherInvoiceRecord.js","containers/cart/ProductDetail.js","containers/cart/Preview.js","containers/catalog/ProductInfo.js","containers/estimate/index.js","components/quotation-list/Package.js","containers/quotation-list/index.js","containers/quotation-list/ProductDetail.js","containers/admin/auth/index.js","containers/admin/notice/Create.js","containers/admin/notice/index.js","redux/reducers/auth.js","redux/reducers/home.js","redux/reducers/utils.js","redux/reducers/invoice.js","redux/reducers/product.js","redux/reducers/transfer.js","redux/reducers/general.js","redux/reducers/estimate.js","redux/reducers/customer.js","redux/reducers/account.js","redux/reducers/index.js","redux/sagas/utils.js","configs/api.js","redux/sagas/auth.js","redux/sagas/home.js","redux/sagas/invoice.js","redux/sagas/product.js","redux/sagas/transfer.js","redux/sagas/general.js","redux/sagas/estimate.js","redux/sagas/customer.js","redux/sagas/account.js","redux/sagas/index.js","redux/store.js","navigation/index.js","components/common/Alert.js","App.js","serviceWorker.js","index.js"],"names":["module","exports","styles","StyleSheet","create","block","flex","Block","_ref","margin","padding","paddingHorizontal","paddingVertical","marginHorizontal","marginVertical","width","height","border","borderWidth","borderColor","centered","color","style","direction","middle","children","justifyContent","alignItems","borderRadius","shadow","marginTop","marginLeft","marginRight","marginBottom","center","paddingTop","paddingLeft","paddingBottom","paddingRight","borderRightWidth","borderLeftWidth","borderBottomWidth","borderTopWidth","borderTopColor","borderBottomColor","borderStyle","alignSelf","position","bottom","top","left","right","props","_objectWithoutProperties","_excluded","styleComponent","flatten","backgroundColor","flexDirection","shadowOpacity","shadowRadius","shadowColor","shadowOffset","React","createElement","View","Object","assign","Colors","White","WhiteDark01","WhiteDark02","WhiteDark03","WhiteLight01","Primary","PrimaryLight","PrimaryLight2","SecondPrimary","Black","GrayLight","Gray","GrayShape01","GrayShape02","BlueLight01","BlueLight02","BlueLight03","Red","colorOpacity","opacity","concat","AdminPrimary","_Dimensions$get","Dimensions","get","appW","isAndroid","Platform","OS","StatusBar","currentHeight","useNavigate","location","useLocation","history","useHistory","screen","state","routeName","test","pathname","push","useNavigateReplace","pixelRatio","PixelRatio","deviceHeight","deviceWidth","nor","size","isAmountGreaterThanZero","unit_price","undefined","Button","fontSize","textColor","textStyle","activeOpacity","smallCentered","mediumCentered","outline","styleText","fontWeight","TouchableOpacity","Text","TextView","bold","textAlign","regular","h1","h2","h3","h4","h5","h6","lineHeight","bottomIcons","bell","require","currency","document","file","settings","headerIcons","cart","profile","reload","defaultIcons","arrow_up","arrow_down","check_none","check_success","caret_down","check","trash","commonIcons","search","calendar","share","close","pdf","RadioCheck","authIcons","user","password","admin_user","admin_password","CheckBox","_ref$label","label","_ref$ratio","ratio","_ref$size","_ref$check","onCheckBoxPress","_ratio","onPress","Image","source","Empty","onPress1","onPress2","_ref$button","button1","_ref$button2","button2","Input","_amountInput","tailText","headText","headTextStyle","textInputStyle","tailTextStyle","wrapStyle","value","onChangeText","amountInput","wrap","inputWrap","TextInput","textInput","ref","input","selectTextOnFocus","onFocus","focus","icon","forwardRef","hideIcon","renderRight","refHandler","WrapperBlock","logo","img","admin_logo","user_auth","admin_auth","no_image","createRequestTypes","base","_defineProperty","GET_METAL_MARKET_PRICE","getMetalMarketPrice","params","type","REQUEST","RESET_CART","reset_cart","CHECK_CART","checkCart","CREATE_NEW_INVOICE","createNewInvoice","GET_MARKET_PRICE_DATA","GET_AVERAGE_MARKET_PRICE","usePrevious","useRef","useEffect","current","axios","defaults","xsrfCookieName","xsrfHeaderName","withCredentials","setAxiosDefaultHeaders","token","uuid","language","headers","common","Authorization","LOGIN","login","LOGOUT","UPDATE_CUSTOMER_ESTIMATE","GET_LAST_ESTIMATE","INSERT_PRODUCTS_TO_ESTIMATE","insertProductsToEstimate","GET_ESTIMATE","getEstimate","UPDATE_ESTIMATE","updateEstimate","CREATE_NEW_ESTIMATE","createNewEstimate","DELETE_ESTIMATE_DETAIL","ESTIMATE_UPLOAD_PDF","uploadPdf","ESTIMATE_GENERATE_PDF","DELETE_ESTIMATE","COPY_ESTIMATE","UPDATE_CUSTOMER","GET_LAST_INVOICE","getLastInvoice","INSERT_PRODUCTS_TO_INVOICE","insertProductsToInvoice","GET_INVOICE","getInvoice","UPDATE_INVOICE","updateInvoice","GET_OTHER_INVOICE","getOtherInvoice","DELETE_INVOICE_DETAIL","SEARCH_PAST_PERFORMANCE","INVOICE_UPLOAD_PDF","CREATE_TRANSFER_INVOICE","createTransferInvoice","SAVE_INVOICE_DATA_GO_TO_PRODUCT_DETAIL","SEARCH_PRODUCT_IN_INVOICE_DETAIL","INVOICE_GENERATE_PDF","generatePdf","Badge","number","zIndex","mapDispatchToProps","logout","connect","isCheckedCart","home","isCheckingCart","isCreatedNewInvoice","isCreatingNewInvoice","newInvoice","account","auth","isCreatedNewEstimate","estimate","isCreatingNewEstimate","newEstimate","isGettingInvoice","invoice","isGotInvoice","isResettingCart","isResetCartFinish","_props$account","navigate","_React$useState","useState","_React$useState2","_slicedToArray","showHeader","setShowHeader","_React$useState3","_React$useState4","isAdmin","setIsAdmin","_React$useState5","_React$useState6","setHeaderCartClick","onPressNavigate","gradientColor","images","routePrefix","prevCreatingNewInvoice","new_invoice","getElementById","href","showLogOutConfirmModal","Alert","alert","primary","hideModal","getCartCount","_props$cart3","is_invoice_empty","includes","_props$cart4","_props$cart4$invoice","_step","count","invoice_details","_iterator","_createForOfIteratorHelper","entries","s","n","done","_step$value","detail","amount","err","e","f","_props$cart5","_props$cart5$invoice$","length","LinearGradient","colors","start","x","y","end","locations","contentWrap","resizeMode","rightWrap","reloadButtonWrap","window","reloadButton","name","logoutButton","button","buttonIcon","_props$cart","_props$cart2","_props$cart2$invoice","invoice_id","id","Fragment","marginEnd","email","Tab","path","RNStyles","tab","tabLabel","FooterButton","_ref$onPress","_ref$onPress2","Title","_ref$title","title","_ref$title2","title1","content","wrapTitle1","containerTitle1","bgTitle1","goBack","txtTitle1","txtTitle","mgLeft","transform","rotate","TABS","ADMIN_TABS","tabWrap","BottomTabs","showTabs","setShowTabs","map","item","index","key","DAYS","NOW_DATE","Date","getDayOfWeek","date","getDay","DateTimeFormatter","HH_MM_DD_MM_YYYY","DD_MM_YYYY_HH_MM","YYYY_MM_DD_HYPHEN","YYYY_MM_DD_HH_MM_HYPHEN","DD_MM_YYYY","HH_MM_DDD_DD_MM_YYYY","MM_DD_JP","YYYY_MM_DD_JP","YYYY_MM_DD_HH_MM_JP","YYYY_MM_DD_JP_DOT","MM_DD","formatDateTime","getTimezoneOffset","formatType","moment","isValid","utc","format","formatDateTimeLocal","formatDateTimeUTC","metalMarketPrice","_props$metalMarketPri","_props$metalMarketPri2","TextTab","txtTab","tabIndex","containerTime","txtTime","latest_price","modified","btnUpdate","txtUpdate","tabs","onPressTab","radiusLeft","radiusRight","letterSpacing","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","formatMoney","formatter","MoneyFormatter","ZERO_DECIMAL_FORMAT","numeral","Math","floor","ONE_DECIMAL_FORMAT","TWO_DECIMAL_FORMAT","CUSTOM_DECIMAL_FORMAT","ZERO_DECIMAL_FORMAT_NO_COMMAS","TWO_DECIMAL_FORMAT_NO_COMMAS","FIVE_DECIMAL_FORMAT_NO_COMMAS","SEVEN_DECIMAL_FORMAT_NO_COMMAS","floatRegExp","RegExp","intRegExp","validateDecimal","validateInteger","formatInvoiceDetailAmount","_String$split","String","split","_String$split2","decimal","Number","ColorSpread","Tab1","data","Item","_ref2","title_jpy","hairlineWidth","price_jpy","price_usd","unit_jpy","arrow_jpy","spread_jpy","unit_usd","arrow_usd","spread_usd","ScrollView","contentContainerStyle","getAverageMarketPrice","isGettingAverageMarketPrice","isGotAverageMarketPrice","averageMarketPrice","_useState","_useState2","setData","prevGettingAverageMarketPrice","_props$averageMarketP","_props$averageMarketP2","_props$averageMarketP3","_props$averageMarketP4","_props$averageMarketP5","_props$averageMarketP6","_props$averageMarketP7","_props$averageMarketP8","_props$averageMarketP9","_props$averageMarketP10","_props$averageMarketP11","_props$averageMarketP12","_props$averageMarketP13","_props$averageMarketP14","_props$averageMarketP15","_props$averageMarketP16","_props$averageMarketP17","_props$averageMarketP18","_props$averageMarketP19","_props$averageMarketP20","_props$averageMarketP21","_props$averageMarketP22","_props$averageMarketP23","_props$averageMarketP24","_props$averageMarketP25","_props$averageMarketP26","_props$averageMarketP27","_props$averageMarketP28","_props$averageMarketP29","_props$averageMarketP30","_props$averageMarketP31","_props$averageMarketP32","_props$averageMarketP33","_props$averageMarketP34","_props$averageMarketP35","_props$averageMarketP36","_props$averageMarketP37","_props$averageMarketP38","_props$averageMarketP39","_props$averageMarketP40","_props$averageMarketP41","_props$averageMarketP42","_props$averageMarketP43","_props$averageMarketP44","_props$averageMarketP45","_props$averageMarketP46","_props$averageMarketP47","_props$averageMarketP48","_props$averageMarketP49","_props$averageMarketP50","_props$averageMarketP51","_props$averageMarketP52","_props$averageMarketP53","_props$averageMarketP54","spread_pt","last","avg_pt","last_two_week","spread_pt_percentage","spread_pd","avg_pd","spread_pd_percentage","spread_rh","avg_rh","spread_rh_percentage","d","last_week_monday","monday_date","last_week_friday","friday_date","last_week_average","last_two_week_monday","last_two_week_friday","last_two_week_average","spread_amount","spread_percentage","dash","BUTTON_WIDTH","getMarketPriceData","marketPriceData","isGettingMarketPriceData","isGotMarketPriceData","marketPriceChartData","setMarketPriceChartData","_useState3","_useState4","selectedDayButton","setSelectedDayButton","_useState5","pt","pd","rh","_useState6","hideLineChart","setHideLineChart","prevGettingMarketPriceData","setHideLineChartValue","prev","_objectSpread","days_ago","PT","pt_jpy","PD","pd_jpy","RH","rh_jpy","SimpleBarChart","ResponsiveContainer","LineChart","CartesianGrid","strokeDasharray","XAxis","dataKey","tick","YAxis","tickFormatter","Tooltip","Line","stroke","dot","hide","_ref$textColor","background","FullLoading","_ref$color","ActivityIndicator","isGettingMetalMarketPrice","isGotMetalMarketPrice","loading","setLoading","setMetalMarketPrice","formatPrice","prevGettingMetalMarketPrice","spread_pt_jpy","previous_price","spread_pt_usd","pt_usd","spread_pd_jpy","spread_pd_usd","pd_usd","spread_rh_jpy","spread_rh_usd","rh_usd","Tab2","Tab3","view02","txt02","txt03","imgArrow","imgArrowDown","txt04","containerView","InvoiceDetail","purchase","text","btn2","_invoice_detail$produ","invoice_detail","titleWrap","numberOfLines","product_info","code","fieldName","marginStart","total_price","InvoiceConfirm","_invoice$customer_inf","_invoice$invoice_deta","minHeight","customer_info","maxHeight","EstimateDetail","_estimate_detail$prod","estimate_detail","wrap1","renderUnitPrice","estimateDetail","unit_price2","radioChecked","line","EstimateConfirm","estimates","selectedEstimateIndex","onSelectEstimate","selectedIndex","setSelectedIndex","_estimate$customer_in","_estimate$estimate_de","onSelectEstimateHandler","estimate_details","btn","newCart","isGettingEstimate","isGotEstimate","onInvoicePress","onEstimatePress","homeGoToCartScreen","setHomeGoToCartScreen","setSelectedEstimateIndex","showEstimateConfirmModal","estimate_id","prevGettingInvoice","_props$cart5$invoice","prevGettingEstimate","new_estimate","prevResettingCart","showInvoiceConfirmModal","is_estimate_empty","leftArrow","borderRightColor","Back","borderTopEndRadius","borderBottomEndRadius","backTitle","onBack","setTabIndex","TabView","ContentTab","InvoiceEstimateButton","NoticeStatus","_ref$content","_ref$patterns","patterns","noneContent","substring","MAX_TEXT_LENGTH","hiddenContent","overflow","textOverflow","NoticeToday","showCreate","_ref$office","office","informationData","onShowAllPress","onCreatePress","message","GET_SETTING","getSetting","UPDATE_SETTING","GET_LATEST_MARKET_PRICE","GET_TAX_RATE","GET_INFORMATION","getInformation","GET_LATEST_UPDATE_TRANSACTION","INSERT_INFORMATION","GET_MAKERS","getMakers","INVOICE_STATUS","ESTIMATE_STATUS","ESTIMATE_PIC_ATTACH","ESTIMATE_SEND_TYPE","QUOTATION_FLOW","TRANSFER_TYPE","ACCOUNT_LOGIN_AUTH","CART_UPDATE_INVOICE_BEHAVIOR","ACCOUNT_STATUS_FILTER_DATA","status_name","ACCOUNT_PREVIOUS_VOUCHER_TYPE","INFORMATION_TYPE","STATUS_MANAGEMENT_RESULT_TYPE","getLatestUpdateTransaction","todayInformationList","general","officeInformationList","latestUpdatedTransactionList","_props$latestUpdatedT","information_type","InsertProductModal","justInsertProductList","CatalogCheckBox","Card","_product$maker_info","product","isShowCheckBox","onImageLoaded","onImageTimeout","maker_info","is_check","SEARCH_PRODUCTS","searchProducts","UPDATE_PRODUCT","SEARCH_PRODUCT_CATALOG","keepSearchProductCatalog","GET_PRODUCT_CATALOG_DETAIL","getProductCatalogDetail","registerLocale","ja","DateInput","containerStyle","onDateChange","imageStyles","onCalendarOpen","setDate","CustomInput","onClick","DatePicker","locale","customInput","selected","onChange","popperPlacement","dateFormat","popperModifiers","flip","enabled","preventOverflow","escapeWithReference","boundariesElement","GET_CUSTOMERS","SEARCH_CUSTOMERS","searchCustomers","SEARCH_CUSTOMER_TRANSFER","GET_CUSTOMER_TRANSFER","GET_TRANSFER_CUSTOMERS","getTransferCustomers","UPDATE_TRANSFER","updateTransfer","CREATE_TRANSFER","SEARCH_TRANSFER","InputWithSuggestion","placeHolder","fetchApi","onSelectedItem","inputStyle","inputPaddingVertical","selectedItemName","setSelectedItemName","setSelectedItem","searchItemName","setSearchItemName","isShowCustomerList","setIsShowCustomerList","placeholder","placeholderTextColor","FlatList","keyExtractor","_","renderItem","selectItemHandler","searchIcon","dropdownIcon","DropdownList","defaultSelectedItemName","defaultSelectedItem","suggestionListStyle","selectedItem","isShowList","setIsShowList","searchProductCatalog","saveSearchProductCatalog","updateSearchProductCatalogResultList","clearSearchProductCatalog","isSearchingProductCatalog","isSearchedProductCatalog","searchProductCatalogNextPage","searchProductCatalogReachEnd","searchProductCatalogResult","searchProductCatalogResultCount","savedSearchProductCatalog","makerList","isInsertingProductToInvoice","isInsertedProductToInvoice","isInsertingProductToEstimate","isInsertedProductToEstimate","_history$location","_history$location$sta","_history$location2","_history$location2$st","_props$savedSearchPro3","_props$savedSearchPro4","searchProductName","setSearchProductName","selectMaker","setSelectedMaker","current_invoice","current_estimate","_useState7","_useState8","setJustInsertProductList","_useState9","_useState10","isLoadingMore","setisLoadingMore","_useState11","_useState12","_useState13","_useState14","_useState15","_useState16","_props$savedSearchPro","_props$savedSearchPro2","productName","selectedMaker","searchProduct","product_name","maker_name","page","insertOrDeleteProductToCurrentInvoice","is_delete_product","price","tax","is_clear_invoice_detail","products","datas","justInsertData","filter","insertOrDeleteProductToCurrentEstimate","is_clear_estimate_detail","isShowAddCheckBox","showInsertFinishModal","prevInsertingProductToInvoice","prevInsertingProductToEstimate","prevSearchingProductCatalog","onEndReached","debounce","defaultValue","isKeep","onEndReachedThreshold","ListFooterComponent","btnWrap","btnTitle","dateLabel","dateWrap","separator","searchProductInInvoiceDetail","searchCustomerResults","customer","isUpdatingCustomerEstimate","isUpdatedCustomerEstimate","updatedCustomerEstimate","invoiceDetailSearchByProductName","customerName","setCustomerName","setProductName","fromDate","setFromDate","toDate","setToDate","searchCustomerTimeOutHandler","setSearchCustomerTimeOutHandler","searchProductTimeOutHandler","setSearchProductTimeOutHandler","searchName","clearTimeout","setTimeout","searchCustomerHandler","searchProductHandler","search_params","customer_name","from_date","to_date","fakeData","i","list","listItem","radio","radioTitle","btnCheck","createTransfer","isCreatingTransfer","transfer","isCreatedTransfer","createdTransfer","_transferAmount","transferAmount","didChooseCustomer","didEnterTotalPrice","didSelectTransferType","didInputDate","sendTransferRequestValidation","setSendTransferRequestValidation","setTransfer","setTransferValue","limit_date","customer_id","selectedTransfer","transfer_type","remark","prevCreatingTransfer","checkDidChooseCustomer","keyboardType","for","selectedCustomer","isGettingInformationList","isGotInformationList","setInformationData","prevGettingInformationList","borderDashed","ListSaved","_cart$customer_info","onRecordPress","onDeletePress","Array","_item$customer_info","console","log","showConfirmModal","PATTERNS","SectionHeader","pattern","onSearch","showLeftCalendar","setShowLeftCalendar","showRightCalendar","setShowRightCalendar","AccountStatusCart","statusItem","transfer_id","status","request_date","GET_ACCOUNT_CART","GET_STATUS_MANAGEMENT","SEARCH_ACCOUNT_VOUCHER","getAccountCart","getStatusManagement","deleteEstimate","accountCart","statusManagementList","isDeletingEstimate","isDeletedEstimate","_props$accountCart3","_props$accountCart4","_props$statusManageme","showSelect","setShowSelect","showInvoiceCanlendar","setShowInvoiceCanlendar","showEstimateCanlendar","setShowEstimateCanlendar","selectedFilterItem","setSelectedFilterItem","filter_type","prevDeletingEstimate","account_invoice","_props$accountCart","_props$accountCart2","_props$accountCart2$a","onAccountInvoicePress","account_estimate","PastQuote","Select","onSelected","filterItem","ModalPurchase","_customer_transfer$tr","_customer_transfer$tr2","_customer_transfer$tr3","_customer_transfer$tr4","isVisible","onClose","onConfirm","customer_transfer","Modal","backdropOpacity","transfer_info","updateCustomer","searchCustomerTransfer","getCustomerTransfer","isUpdatingCustomer","isUpdatedCustomer","updatedCustomerInvoice","customerTransferList","isGettingCustomerTransfer","isGotCustomerTransfer","customerTransfer","_choose_estimate_from3","useWindowDimensions","setIsVisible","setSelectedCustomer","newCustomerName","setNewCustomerName","useTransfer","setUseTransfer","choose_estimate_from_estimate_review","from_home","_choose_estimate_from","prevGettingCustomerTransfer","prevUpdatingCustomer","insertEstimateProductToInvoice","use_transfer","_choose_estimate_from2","_item$product_info","_item$product_info2","prevCheckingCart","_props$cart3$invoice","disabled","next","updateCustomerEstimate","withoutCustomer","setWithoutCustomer","on","PreviewItem","_ref$isHeader","isHeader","_ref$value","value1","_ref$value2","value2","_ref$value3","value3","value4","_ref$blocks","blocks","_ref$centers","centers","onValue1Press","onValue2Press","onValue3Press","onValue4Press","isValidElement","searchAccountVoucher","searchAccountVoucherList","isSearchingAccountVoucher","isSearchedAccountVoucher","sortedAccountVoucherList","setSortedAccountVoucherList","sortDate","sortCustomer","sortCode","sortAscending","setSortAscending","setSortAscendingValue","prevSearchingAccountVoucher","sortDataHandler","sortType","sort","a","b","voucher_code","voucher_id","pdf_url","open","TextItem","defaultProps","copyEstimate","isUpdatingEstimate","isUpdatedEstimate","updatedEstimate","isUploadingEstimatePdf","isUploadedEstimatePdf","estimateWhichUploadPdf","isCopyingEstimate","isCopiedEstimate","copiedEstimate","_props$estimate2","_props$estimate3","_props$estimate3$cust","_props$estimate4","_props$estimate4$acco","_props$estimate5","navigateReplace","sortedEstimateDetail","setSortedEstimateDetail","sortName","sortUnitPrice","sortMaker","_props$estimate","noImageSortType","data1","_a$product_info","_b$product_info","_a$product_info2","_b$product_info2","_a$product_info3","_a$product_info3$make","_a$product_info4","_a$product_info4$make","_b$product_info3","_b$product_info3$make","_b$product_info4","_b$product_info4$make","aa","bb","haveImageData","pic_attach","noImageData","sortDataWithImageShowFirst","_toConsumableArray","prevCopyingEstimate","account_info","extraData","_item$product_info2$m","pic_path","uri","row","flexWrap","container","smallText","amountText","TransferView","buttonWrap","InputAmountView","_transferAmountInput","_cashAmountInput","transferAmountInput","cashAmountInput","invoiceData","setInputAmountChange","cashAmount","submit","setLimitDate","inputTransfer","setInputTransfer","inputCash","setInputCash","validateValueWithCommas","formatValue","editable","Row","forceSolid","FinishSubmitView","_ref3","alreadyTransferAmount","SumRow","_ref4","description","tableTitle","subDesc","cell","cellText","largeText","sumWrap","finishButton","transferCustomers","isUpdatingInvoice","isUpdatedInvoice","_props$invoice3","_props$invoice4","_props$invoice4$custo","_props$invoice5","_props$invoice5$custo","_props$invoice6","_props$invoice6$accou","_props$invoice7","_props$invoice9","_props$invoice10","_props$invoice11","_props$transferCustom","_props$invoice12","_props$invoice13","_objectDestructuringEmpty","sortedInvoiceDetail","setSortedInvoiceDetail","_props$invoice","_props$invoice$custom","_props$invoice2","_props$invoice8","_props$invoice8$invoi","transfer_price","cash_price","btnTrash","imgTrash","container1","wrapBtnTrash","Package","_unitPriceInput","unitPriceInput","invoiceDetailIndex","onTrash","onGoToDetail","amountOnBlur","unitPriceOnBlur","amountOnFocus","unitPriceOnFocus","_data$invoice_details","onQuantityChange","onUnitPriceChange","gotoInvoiceDetail","handler","validateQuantityValueWithCommas","onBlur","EmptyCartView","FinishPurchaseView","getTaxRate","deleteInvoiceDetail","saveInvoiceDataWhenGoToProductDetail","updatedInvoice","taxRate","isDeletingInvoiceDetail","isDeletedInvoiceDetail","invoiceWhichDeletedInvoiceDetail","invoiceDataWhenGoToProductDetail","_props$invoice2$custo","_props$invoice3$marke","_props$invoice4$marke","_props$invoice5$marke","_invoiceData$invoice_","setInvoiceData","cartUpdateInvoiceBehavior","setCartUpdateInvoiceBehavior","productIndex","invoiceDataChange","setInvoiceDataChange","isEmptyCart","setIsEmptyCart","isFinishPurchase","setIsFinishPurchase","finish_purchase_from_product_detail","_history$location3","_history$location4","_history$location4$st","setupData","formatMoneyZeroDecimalNoCommas","formatMoneyTwoDecimalNoCommas","calculateInvoiceDetailTotalPrice","currentIndex","invoiceDetail","totalPrice","_props$taxRate","_props$taxRate2","tempData","subTotal","reduce","consumptionTax","total","_data$invoice_details2","_props$taxRate3","is_submit","product_id","updateInvoiceWhenOnBlur","prevUpdatingInvoice","prevDeletingInvoiceDetail","showSubmitPurchaseModal","market_price","_history$location5","_history$location5$st","invoice_detail_id","ItemTable","setting","_lastInvoice$invoice2","_lastInvoice$invoice3","_lastInvoice$invoice4","_lastInvoice$invoice5","lastInvoice","total_purchase","limitPrice","_props$setting","_props$setting2","_lastInvoice$invoice","total_value_pd","total_value_pt","total_value_rh","target_profit_rate","limit_profit_rate","calculateUpperPrice","ItemSearch","labelButton","SearchList","isGettingLastInvoice","isGotLastInvoice","isSearchingProduct","isSearchProductFinish","invoiceWhichJustInsertProduct","errorMsg","_new_invoice$customer2","_new_invoice$customer3","_new_invoice$market_p","_new_invoice$market_p2","_new_invoice$market_p3","isFocus","setIsFocus","newProductName","setNewProductName","productCheck","setProductCheck","lastInvoiceData","setLastInvoiceData","_new_invoice$customer","isClearInvoiceDetail","prevGettingLastInvoice","timeOutHandler","setTimeOutHandler","Table","middles","insertAllProduct","insertSelectedProducts","search_name","search_code","fv","insertSearchProduct","insertNewProductToInvoice","PartitionReview","empty","screenHeight","SORT_TYPE","sortData","generatedPdfUrl","_estimate$customer_in2","_estimate$account_inf","select","setSelect","selectSortType","setSelectSortType","_location$state","nextScreenPattern","setNextScreenPattern","sendTypeChange","setSendTypeChange","updateSort","setUpdateSort","_useState17","_useState18","noImageSortAscending","setNoImageSortAscending","_useState19","_useState20","setNoImageSortType","generatePdfHandler","sort_condition","is_ascending","prevUpdatingEstimate","setNoImageSortAscendingValue","sortDataNoImageHandler","_a$product_info5","_b$product_info5","_a$product_info6","_b$product_info6","_a$product_info7","_a$product_info7$make","_a$product_info8","_a$product_info8$make","_b$product_info7","_b$product_info7$make","_b$product_info8","_b$product_info8$make","quotationPreviewUI","send_type","submitRequest","finishEstimate","selectSortTypeHandler","checked","navigator","url","then","catch","error","renderBottomUI","_item$product_info3","_item$product_info4","_item$product_info4$m","backToHome","submitRequestUI","Purchase","PerformanceRow","_item$account_info","_item$invoice_details","calculateUpvalue","toUnitPrice","marketText","badge","RowHeader","accountName","val1","val2","val3","_detail$product_info","_item$invoice_details2","Search","firstTime","setFirstTime","searchPastPerformance","searchPerformanceResult","isSearchingPerformance","isSearchedPerformance","searchPerformanceNextPage","searchPerformanceReachEnd","searchParams","setSearchParams","setSearchParamState","searchWhenSelectMakerChange","setSearchWhenSelectMakerChange","searchData","prevSearchingPerformance","searchCustomerName","_item$name","trim","_item$name2","_item$name3","str","renderFromToDate","pending","inProgress","field","note","hideStatus","transaction_status","type_name","searchTransfer","searchTransfers","isSearchingTransfer","isSearchedTransfer","_props$searchTransfer","prevSearchingTransfer","outlineButton","Transfered","isLoggedIn","isLoggingIn","username","setUsername","setPassword","prevLoggingIn","backgroundImage","formWrap","labelWrap","secureTextEntry","login_auth","buttonLabel","errorField","textDecorationLine","sectionHeader","sectionHeaderLabel","fieldRow","inputCol","descriptionCol","inputDescription","updateSetting","isGettingSetting","isGotSetting","updatedSetting","settingData","setSettingData","setSettingState","prevGettingSetting","_props$setting3","_props$setting4","_props$setting5","_props$setting6","adjust_rate_pd","adjust_rate_pt","adjust_rate_rh","FilledInput","Metrics","ModalAnalysis","_adjustRatePTInput","_adjustRatePDInput","_adjustRateRHInput","selectedProduct","onUpdate","adjustRatePT","setAdjustRatePT","adjustRatePD","setAdjustRatePD","adjustRateRH","setAdjustRateRH","adjustRatePTInput","adjustRatePDInput","adjustRateRHInput","flex1","flex2","tableDataRow","tableDataLabel","tableDataLabelFilled","minWidth","dataRow","tableDataNumber","ItemAnalysis","analyze_pt","analyze_pd","analyze_rh","adjust_value_pt","adjust_value_pd","adjust_value_rh","headerRow","headerLabel","tableHeader","tableHeaderLabel","updateProduct","isUpdatingProduct","isUpdatedProduct","updatedProduct","setSelectedProduct","setSearch","handleSort","_data","localeCompare","prevSearchingProduct","prevUpdatingProduct","mainWrap","titleWrap2","headerText","headerBadge","badgeSmall","rowFlex","redText","contentHeader","contentBadge","lightBlueText","borderBottom","_otherInvoice$custome","_otherInvoice$market_","_otherInvoice$market_2","_otherInvoice$market_3","_otherInvoice$market_4","_otherInvoice$market_5","_otherInvoice$market_6","otherInvoice","invoice_market_price","renderPriceColorText","currentPrice","prevPrice","borderBottom1","twoLastInvoice","otherInvoiceList","productCatalogDetail","_invoice$customer_inf2","_invoice$customer_inf3","_invoice$market_price2","_invoice$market_price3","_invoice$market_price4","_invoiceDetail$produc5","_props$productCatalog","_props$productCatalog2","_props$productCatalog3","_invoice$market_price5","_props$productCatalog4","_props$productCatalog5","_props$productCatalog6","_props$productCatalog7","_invoice$market_price6","_props$productCatalog8","_props$productCatalog9","_props$productCatalog10","_props$productCatalog11","_invoice$market_price7","_props$productCatalog12","_props$productCatalog13","_props$productCatalog14","_props$productCatalog15","_props$otherInvoiceLi","_invoiceDetail$produc6","fromToUnitPrice","setFromToUnitPrice","submitInvoiceHandler","calculateEstimatePrice","_invoice$market_price","_invoiceDetail$produc","fromUnitPrice","_invoiceDetail$produc2","_invoiceDetail$produc3","last_invoice_by_customer","_last_invoice_by_cust","_matchedInvoiceDetail","matchedInvoiceDetail","_invoiceDetail$produc4","getUnitPriceByLastInvoiceByCustomer","OtherInvoiceRecord","goToAccount","goToHomeScreen","formatedTransferAmount","haveTransfer","_invoiceData$customer3","_invoiceData$customer4","_invoiceData$account_","isFinishSubmit","setIsFinishSubmit","setTransferAmount","setCashAmount","limitDate","inputAmountChange","_invoiceData$customer","formatedAmount","transferTotalPrice","cash","checkHaveAtLeaseOneInvoiceDetail","checkInvoiceDetailEmpty","checkHaveTransferDateWhenHaveTransferAmount","checkTotalEqualPayment","formatCashAmount","formatTransferAmount","_invoiceData$invoice_2","update_type","_invoiceData$customer2","transferModel","topWarp","headerTitle","isGettingProductCatalogDetail","isGotProductCatalogDetail","_props$productCatalog16","_props$productCatalog17","_props$productCatalog18","_props$productCatalog19","_props$productCatalog20","_props$productCatalog21","_props$metalMarketPri3","_props$productCatalog22","_props$productCatalog23","_props$productCatalog24","_props$productCatalog25","_props$productCatalog28","prevGettingProductCatalogDetail","last_invoice","last_unit_price","_props$productCatalog26","_props$productCatalog27","getLastEstimate","_new_estimate$custome2","_new_estimate$custome3","_new_estimate$market_","_new_estimate$market_2","_new_estimate$market_3","_new_estimate$custome","isClearEstimateDetail","_props$lastInvoice","_props$lastInvoice$in","_props$lastInvoice$in2","insertNewProductToEstimate","wrapSwipable","containerInput","_estimate_detail$prod2","_unitPrice2Input","unitPrice2Input","estimateDetailIndex","unitPrice2OnBlur","onUnitPrice2Change","onNameChange","nameOnBlur","onImageCheckChange","_data$estimate_detail","onImageAttachCheck","gotoEstimateDetail","windowHeight","deleteEstimateDetail","saveEstimateScrollYOffset","isDeletingEstimateDetail","isDeletedEstimateDetail","estimateWhichDeletedEstimateDetail","estimateScrollYOffset","_props$estimate2$cust","_props$estimate4$mark","_props$estimate5$mark","_props$estimate6","_props$estimate6$mark","_estimateData$estimat","estimateData","setEstimateData","setUpdate","isGoNextScreen","setIsGoNextScreen","updateEstimateWhenOnBlur","estimate_detail_pic_attach","prevDeletingEstimateDetail","onEstimateChange","changedValue","onScroll","_history$location3$st","estimate_detail_id","onImageAttachChange","_estimate$customer_in3","_estimate$customer_in4","_estimate$market_pric2","_estimate$market_pric3","_estimate$market_pric4","_estimateDetail$produ5","_estimateDetail$produ6","_estimate$market_pric5","_estimate$market_pric6","_estimate$market_pric7","_estimateDetail$produ7","_estimateDetail$produ","_estimateDetail$produ2","_estimate$market_pric","_estimateDetail$produ3","_estimateDetail$produ4","replace","sectionRow","sectionLabel","insertInformation","isInsertingformation","isInsertedformation","setMessage","prevInsertingformation","multiline","initialState","isLoggingOut","isLoggedOut","processPaging","result","nextPageKey","arguments","reachEndKey","totalKey","totalPages","ceil","nextPageMatch","match","reachEnd","nextPage","currentPage","_result","results","from","processPagingProductCatalog","_result$results","resultCount","resultData","isGeneratingPdf","isGeneratedPdf","updatedTransfer","latestMarketPrice","isUpdatingSetting","isUpdatedSetting","insertedInformation","isGettingLastEstimate","isGotLastEstimate","lastEstimate","isSearchingCustomer","isSearchCustomerFinish","combineReducers","_action$result","_action$result$errorM","_action$result$errorM2","_action$result$errorM3","action","SUCCESS","FAIL","errorMessage","response","_action$result2","_action$result2$error","_action$result2$error2","_action$result2$error3","_action$result3","_action$result3$error","_action$result3$error2","_action$result3$error3","_action$result4","_action$result4$error","_action$result4$error2","_action$result4$error3","_action$result5","_action$result5$error","_action$result5$error2","_action$result5$error3","_action$result6","_action$result6$error","_action$result6$error2","_action$result6$error3","_action$result7","_action$result7$error","_action$result7$error2","_action$result7$error3","_action$result8","_action$result8$error","_action$result8$error2","_action$result8$error3","_action$result9","_action$result9$error","_action$result9$error2","_action$result9$error3","_action$result10","_action$result10$erro","_action$result10$erro2","_action$result10$erro3","_action$result11","_action$result11$erro","_action$result11$erro2","_action$result11$erro3","_action$result12","_action$result12$erro","_action$result12$erro2","_action$result12$erro3","_action$params","resultList","slice","_action$params2","y_offset","replaceParams","apiURL","keys","forEach","axiosGet","URL","config","_store$getState$auth","store","getState","success","resp_status","axiosPost","post","_store$getState$auth2","credentials","API_ROOT","process","API","AUTH","ACCOUNT","HOME","INVOICE","SEARCH_PERFORMANCE","UPLOAD_PDF","GENERATE_PDF","PRODUCT","TRANSFER","GENERAL","ESTIMATE","CUSTOMER","PERFORMANCE","GET_LATEST","_regeneratorRuntime","Op","prototype","hasOwn","hasOwnProperty","defineProperty","obj","desc","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","makeInvokeMethod","tryCatch","fn","arg","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","_invoke","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","resolve","reject","invoke","record","__await","unwrapped","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","return","TypeError","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","val","object","reverse","pop","skipTempReset","charAt","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","_marked","_marked2","_callee","_obj$params","_context","put","_context2","takeEvery","_marked3","_marked4","_marked5","_marked6","_marked7","_obj$params2","_obj$params3","_context3","_obj$params4","_context4","_obj$params5","_context5","_obj$params6","_context6","_context7","_marked8","_marked9","_marked10","_marked11","_marked12","_marked13","_obj$params7","_obj$params8","_context8","_obj$params9","formData","_context9","FormData","append","files","file_name","_obj$params10","_context10","_obj$params11","_context11","_obj$params12","_context12","_context13","getLatestMarketPrice","_result$data","_result$data2","sagas","watchAuth","watchHome","watchInvoice","watchProduct","watchTransfer","watchGeneral","watchEstimate","watchCustomer","watchAccount","all","saga","spawn","t0","rehydrationComplete","sagaMiddleware","createSagaMiddleware","persistConfig","storage","whitelist","persistedReducer","persistReducer","rootReducer","createStore","applyMiddleware","persistor","persistStore","run","mySaga","Navigation","setHeight","addEventListener","Router","basename","Header","Switch","PrivateRouter","exact","Home","Route","UserAuth","AdminAuth","Notice","Catalog","Performance","PastPerformance","TransferRequest","TransferList","CartProductDetail","Cart","CartPreview","PastNotice","Account","PurchaseSupplier","QuotationSupplier","BuyReview","PastDividers","EstimateReview","InvoiceReview","QuotationReview","QuotationComplete","ProductInfo","Estimate","QuoteProductDetail","QuoteList","AdminCreateNotice","Analysis","Settings","BottomTab","rest","render","getAuth","Redirect","to","_React$Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","args","_key","apply","buttons","show","styleButtons","styleDescription","setState","renderContent","_this$state","descriptionWrap","renderButtons","flexRow","showModal","_createClass","_this$state2","this","animationIn","animationOut","Component","App","_Component","interceptors","request","use","toUpperCase","JSON","stringify","DeviceOrientation","lockOrientation","onOrientationChange","Orientation","orientation","alwaysRender","Provider","PersistGate","Alert_","Boolean","hostname","ReactDOM","StrictMode","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.9c31c8d1.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAGqADAAQAAAABAAAAGgAAAABvAZQwAAABZklEQVRIDa2VPXKDMBCFdzGpww2MZ9w7KZKam8Q3yhFi3yBHIK1T2O6ZsY9AauPZ8GAUxmP9RdIWrCSW97GgB0wpYn8q6UJz4q4gyp5GSamGLFQSyzZ3cmwiRBAtqLsSMZRwEAymwBLzwQzanwq6dHUvsjKKTHL2kUg73IexSsGYV8YanxP5bGEHQSQF7GXJmfOGnhctPeQViRydtfqCHyy7QaiKgsnBH6RgnG0wDAm/jqC8a9b91n0PgNS4xg8ECNNHAOTvEjcoFiJ8Bs0OioWAwHJGMoNSQECQvEXSGzYMAr88QvQmerNift9RCERoS/mstJn6FhQKeV2u9aaWL9XdBIqBKDXLF2QEpYDoYMLD5wenssHx/zUj3gkelylUZxnVqgQ/vkpNvLILokQAI/pU03F775pNv9Hf1KIx+0I0ApOPXLAICLgTCDMTLBJyD9LBEkAgqw909t3I0KG+IuEqvJUwfgFGLZwF3v3WwwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAGqADAAQAAAABAAAAGgAAAABvAZQwAAABkklEQVRIDa2U0W3CMBRFrxP+gtR0AhKp/+0IYZOOQDfoBmWDdoVOQDcofIPECM0H+YO67yY1MiYEh/hJkWP7+h6/5NlAS2yBdIPxYovkqWU6zBAhayTfAtLy/ISCKXt7hOyRLBSUnUkZQ09zVEtb2/f9CLoAMX6DYTXoCiQITHlCBsOiA5K580+MaVubHqC8q5FJGJMoRjXT0Csz4NF6wTZInvcYz4xflAPlCFUREkYIoN6lAI7VG5EYEmYg9NX2p+MAIwTMhtBTQU/YMiS70/ivwi8pkMfTmc5eKUZzyeDVVT1gVzPOQBTeCHMZdT/G7j6XOqj/kavgxA0F4trUfam8uiBaQVSEhNHvIigULILuzoggxtDMfqFS+nRmRAFjCExKPKOHF4hCwkT8wfc+oaEy6r1BPIyy6I2L+oW+o175LHJPvM8aW8NDezWjoRAD7MwoFESupunIEN22uYZUJjv5FGHaVI+auDrffmdGbSbNBpprReYLariJprq0bOj8Mpb5l94gGvvEGuOCOt4McmiXfxEloEyQ3eM2AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAEaADAAQAAAABAAAAEQAAAACtW7E7AAAAtUlEQVQ4EWNkAILkrTvyOVmYi3/8+SsL4hMDuFhZnn39/adrrrfHRMb83Xsr5Pn4K8K11PmleHiI0Q9W8+zLF4aV125+vPb6TQPT////c0k1AGQKyEKQPg5W5iKmb7//SJHiAmSngvSBgoAJWZBc9qghmCE3Gia0ChNQbgRlJnIASB8HC/NjJkZGxsmrrt34RKpB4Fx8/canH7//9jGCXFCwc1/lH4a/maSWJ99+/eme4+MxAQDwSkti+EfqpwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAATCAYAAAB2pebxAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAEaADAAQAAAABAAAAEwAAAADXm+JbAAAB9klEQVQ4EWNkIAd0dRkw/Pu3nuH/f0eGysoHLCAzUrZsT+ZiYy3++eevMiEzf/79y7D21g22z/9/MXCwshz8wcAgz5K0bUequpBwd7C6Kr8ULw8hMxhCN2xg+PznF1gdBzOLbMyWnWlMPMwsVRFa6vyKAvwM7MzMePH08+cZNt+9A7dohZ8/IxcrcyUT0HlSMry8cImGo0cYNty+DefDGBdevWJoBMrBQL+TM4O7oiIDSD/T3///2WASIM2NR48yJG7byvDg40eYMMOHnz/BYiAaBPxVVBkKTEzAbJB+JjALSmy4fQvMAikOXL8OLlWwdw8DyCUgIM/Hx7DA2xsuB2KgGNJgbcPAz8YOVgDSBPLagsuXGRZeuQLXtCEomEGAHaIGJohiiAI/P4otIK8V7tsLU8sACgcDMTE4H8ZAMQQkGKCqypBvDPEviA8LB3tZWXg4gMSRAYYhIMkJzs4M+qIIG0FeBHkDF8BqCEjxhqAgePiA2OjhgGwgONkjC8DYsPD58OMHg4OcHEwYK43TEJBqUPgQA3B6hxjNMDVM3Kwsj199+wbjk0SD9IH0g1wyf9X1G9/efv9OkgEg9auv3/z6D6ifEaQzf9e+xr///uX+/veXm1iTWJmYvzIzMU2e6OZUDzYEpjFr/37CBQpU8TRHxy8wfQCY0asD7zWNCAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAHCAYAAADebrddAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAC6ADAAQAAAABAAAABwAAAABnhpU9AAAAXElEQVQYGWNM3rLjAiMjgz4DIfCfoZCJgZHhACF1QPmPjIxMBxhBCpO3bF/AyMgYj0PTR0YGJofZ3m4XwIrxaIArBKmBK8aiAUUhhmKwhq07JgBNSIBZDRIjCwAAfwYdvm1slwkAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAVCAYAAABG1c6oAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAFKADAAQAAAABAAAAFQAAAACsdft3AAABnklEQVQ4EbWTMVLCQBSG38YZoMwRvIHxBjrYiycwNxAaSDqoSGiCJ1BPoBdgHE8AVLa2dtgZi6zvJySb3U0chXGLZN//9n3Z92f3iA4ds5lHF91X6nbfabFYiYN4SeJSmi5J0DFzNiScc+cgYJre72DAuJRlyf7AOO4z7NLY0Ol+LcM3mS0NGIdy8neg7luFKV9oFJ6plvHV34yvz3nFt7xC0ge1Oj0EOTCK5tsWplM/X9Hw3ObFtZWVskeDwQa6oDhmsnzcLdr+ehoOV1ZR7tsz666ekxNudVxovMNsXgT8dnmndwSfqgMxdBMmaV2FoUR5qAAeH9ZEhTyDb0SepsE3tGoMBjp9Q4MRPhV+NvkmhE9h+GbW5scGP0XQjZHcUCavyBHw19Vykm4pCOyN8CJ1DqNoxdGJVlgXwLcg8OpS0JSH8AO+/DQafKuWKCD8kLK2jbKgwbcyzxMFhBqG93wmHzC1BnwbjZ4s3RB0IJKtTp9bX2vrELfbY01rCGwgrpDj+KWf8A3x7mo1cErZBiKFq1f4iXfdVSwR/zz5BtPPk6Pj+1b5AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAQAAAAAYLlVAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfkCRwDHDcKUj9pAAAB2UlEQVRo3u1ZPU4CURCeRyGFxkSxMSy30BNoqeEWVEqiN9DExDNQU+gBVkvtxEqjRwAtNFK4a4hQfBbuJiiz7Htvd5a//TpmYL7vfTMDDyAyBIqoowUf/+GjhUMUTeuZ0pfxiHF4QFmSvhhD/ytBzgXUY+kB4EBOwH1A4cIZyTm4CrJ3cgK8gMJhs5Ug+2lSUxkJQPAiZZfnUJByy1oAqrhlthxAeD6iqOmLyfu4wX6cyedac54EZ+Poq+L0ALAX3YKjTNp+PPzgz7zCo5UMBHhqNUoATGvZYXhNp28NF1xAJxPOdrSAWgYS2lTL5Jg5ZhlwxT6G3FE27n1gQ+xsJT0BvpgAprK+AJccqtC1VSzEl5ZMNNn+OURDN1+zWIimngOsTtUhIlJtm5hpCzwto2zAVM52CBlvtVuQChJtQYYC5ngGZqUFuYCJC1j4LVDfNBCh76u+ngNSHrBVcwG8AJk9YKtOqQO5gIkLmNMhZO+aBf2nJsaMz0D4lcsmlo4DDTioUMMqNkYAC+yK/Dyxk8yB5DBowYeIgC4XZP9ewhJ1aTlleo9KirlpsQ6oPl2mfv4LZXLRQxnvqQ7gGzYNBWMbr6nRv2DLwjOs4xTP6CWi7uEJJ1iLZvkBWWMbZlM2OU0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMjAtMDktMjhUMDM6Mjg6NTUrMDA6MDCZWUCfAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIwLTA5LTI4VDAzOjI4OjU1KzAwOjAw6AT4IwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAxlJREFUeJztmstOVEEQhr9zZgAHeAVXvqUmJoQEJSFBUfAOCCiOCMFLCAEU9YFMWOjGKC5qOhkmZ86luroHTH9JrQj911/dcPpSkEgkEolEIlGfaeA9cAbcGXEuObAE/EJymgotOAV8B877YhnIQgsXkAPrA7mcApOhBCeBrwOCLh4Ttwg5sDEkly9Ax1pwsjdwkaCLZ8QpQgvYqsjlM4ZF6PQGLBN0sYrMTihawOuauZxgVITdmoIuXhKmCG2g2zCXHQvh3w1Fz4FNZLasaCNmmubx00J8VSF8jixViyKM0XwVulgx0FctPRfd3u9rGQP2lNobGP4ptoBtZSI76IowDuwrNdcI8H+ozudnWOwhs1mXceCDUusFAb9EZRuQqtjvGatiAvik1HhKhL1IjiwxTYIfewaHMQEcKMd+RMTdaI4sNU2iBxQX4RpwqBxzJOeRDFlymoQPEcOODnCkHGspnMVqMmTpaRI/Qox3kG2rZozF8BaryZAlqDFwQv1zxmAsxDDXhCV0RjQxH8lTYxYJb34umhslC4QzPxvRhxfz2JufierAgDnszN+OnLsZs/ibvxU9a2Nm0Ju/GTq5kPd3bvzrHr9/g9FcuZuQob9N6o/nXMEiZOgPS0UR68rdhAyZNevP4JUoQijzLqJceGjJkFkKZd7FEy5hEXzuBjQR+y2ylAyZFY2RVfRfiqhXYMPwMb+G7BN87hhXGGERMmQpahJf5+ImrOitv24shzJYhs9V2LDH07z3s0tfhAxZepbmHT5FeGhncTg+5jepd/bweXx54G+xHO3l5xbNDl45UjCNVrBrcq35V+ieyXP0b5H3FXqlaM379gi0kAJqtO956F7grjKBbWwaJJr0BQ2GySXqmUL4DbYtMtoi/LAQb9qh0cXWvEPTpNG1EK7TI+jiLX4tMVW0kNVVJ5djDHsFy7pEXWhbYZrSorpnyaxHsJ8p4NsQwXfEMe9oI6utKBfTLtFBipqld4lr3lHUO3hKwGZpxzTS4PAX2a01aX6ypo2cIv8gfUXBzfczSuODhH7fSCQSiUTif+QfU9w4aogEWMMAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAE6ADAAQAAAABAAAAEwAAAAADp3KcAAAB3UlEQVQ4EWP8z8DAwoAEGquqZjs4OSUgCWEw/zMxMbx+8+b1woULnbZu3XoFpoDxjrwI0DwIYJGRZfj36SOYwyIjx/Dr2hUGkBgTHz+YDVMnMX0eA7enL8OhQ4c+dXV1WcMMRHEVX0gkWP3v588YWCWlGNgKysCGfNm1DWYOCm1nZ8cHFDh648YN47t3795hQpEFcpj4+Bj+f/vC8P3EUbhr2LV00JXB+SADZ86ceVxZWVkFxWUgFW+aahg4LawZeIPDGf59/gT09ieGz2tWwDXDGBcuXGD48OEDmMvMzCwSHx+/hoXhP8MRmIJ3/V0MX4SElTn+/JH8tHIpTJiBw8QczgYxmAWFGQwMDFDEXr169RZFAMSZOHHilP9kgJUrV+7FCDMM06ECoFj+uhN7RMD0EG3Yz6tXGP48eQTTh5Um2jBWYHr7/eQxVkNggkQbxiIrB0/QMM3oNNGGfT9+FJgb5Bj+PMbtVYx0hm4bjA9KxDxungw/gVkMhEFZDAQ4La1hSlAzOVwUiQGLRWZgzmDT1gVjkOuwhR9el4EMAmkE0fzJGXArQOEHwugAb5j9+/gR7AJkg9ANQObjdRkuFyAbgMzG6zJkhcSwMVzGwsLyAKjxADGakdUA9d0EABh+2LOPFoGtAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAICAYAAAAiJnXPAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAADaADAAQAAAABAAAACAAAAABC4rXkAAAAW0lEQVQYGWNk6Oi4wMDIoM9APNjAxMD4/wLx6oEq/zM8ZARr6GxfwMDAGE9Y8/+FDOWVCRBNINUENUI0gJQiNOHViNCAqQmrRlQN2DWhaMTUAJLGDdrbHXBJAgA5CyDHD0YcSwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAABaADAAQAAAABAAAABQAAAABcYj7LAAAAUElEQVQIHUWKQRGAMAwENzcIwQGVgAUc1E2frQM04QCMNIT2wSM3e3sxStmRVSDh3EjHglkLscWBseL9VMAUw45IAn/+HuRcopM/mEM8SPkFR1oRUAZ8ILQAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAEKADAAQAAAABAAAAEAAAAAAXnVPIAAABDUlEQVQ4EcVSu1HDQBDdt5eRQAnqALkCTAgklGBye8augBKsYchpAQdA6g5QCaYDk6N73hPYo7uTxs7QjEb7PvtOWi2k5+LHvGjYLCEog0xh7eAWuKk2qR0pEZq9958CuYg0ylZVR2mIRiYDjfdV1hxMFthqSUMWAHCceA4QkMsD+CuygNQQYTL75CzAPOuoqQMoqDuwLbMApzq3uX+nxsC5M52kfBYQpqxwJSkrIb/CHerA4brapgH/j6Op8n167wVXFCltC8fd17NtXJu5Vhsy7p5We60N+G3UpZHFXjjy3Kj4BW6fX/HzNpsAeDnS0CuTfFDbrqpXPYG0gx/tN+L8BO+Qpcj2YMg5xO8Az0VT2DYo8nEAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAEKADAAQAAAABAAAAEAAAAAAXnVPIAAABFUlEQVQ4EY1SvVUDMQzWp1CkZAPMBJAN0qZjhEtPAZOQgj5sQJkWJoANCBuEisoSku94ie1zEr/nd9L3I8lng0aWbh5C1PgEwq3TSvo5weQRi9W2lKME3CwiHwS6zDilHTPPyiKciSyJIis3W9d3Bl/79tixxBWGqgCgc9fYyJ138+2xYwDd+PdwpSPo5n4uymsjwiF5JN4yZInF81uaQAQvJg5HDCUVhobUHwG4KhVn5ME11T84w5hJmgWqW8hs++RiH+bR/y04am+jE5WvXNFnzQloSrsxQ4k1J4i/8dU6L91gz3ptz7r0prxZwAz2NvqxW2av0D7CaL8aHAroT02dQFS/XZEKMPSOBuCEradNy6ydJ3+cZWD2GLZPDgAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/Logo.62a5fdab.png\";","module.exports = __webpack_public_path__ + \"static/media/1.078b1286.png\";","module.exports = __webpack_public_path__ + \"static/media/AdminLogo.762aacc2.png\";","module.exports = __webpack_public_path__ + \"static/media/UserAuth.9d1ed858.png\";","module.exports = __webpack_public_path__ + \"static/media/AdminAuth.f896004e.png\";","module.exports = __webpack_public_path__ + \"static/media/No_Image.8bbcfce3.png\";","import React from \"react\";\nimport { View, StyleSheet } from \"react-native\";\n\nconst styles = StyleSheet.create({\n block: {\n flex: 1,\n },\n});\n\nconst Block = ({\n block,\n margin,\n padding,\n paddingHorizontal,\n paddingVertical,\n marginHorizontal,\n marginVertical,\n width,\n height,\n border,\n borderWidth,\n borderColor,\n centered,\n color,\n style,\n direction,\n middle,\n children,\n justifyContent,\n alignItems,\n borderRadius,\n shadow,\n marginTop,\n marginLeft,\n marginRight,\n marginBottom,\n flex,\n center,\n paddingTop,\n paddingLeft,\n paddingBottom,\n paddingRight,\n borderRightWidth,\n borderLeftWidth,\n borderBottomWidth,\n borderTopWidth,\n borderTopColor,\n borderBottomColor,\n borderStyle,\n alignSelf,\n position,\n bottom,\n top,\n left,\n right,\n ...props\n}) => {\n const styleComponent = StyleSheet.flatten([\n block && styles.block,\n margin && { margin },\n padding && { padding },\n width && { width },\n height && { height },\n border && { borderWidth: 1, borderColor: \"gray\" },\n borderWidth && { borderWidth },\n borderColor && { borderColor },\n color && { backgroundColor: color },\n centered && { justifyContent: \"center\" },\n justifyContent && { justifyContent },\n direction && { flexDirection: direction ? \"row\" : \"column\" },\n paddingVertical && { paddingVertical },\n paddingHorizontal && { paddingHorizontal },\n middle && { alignItems: \"center\" },\n borderRadius && { borderRadius },\n marginTop && { marginTop: marginTop },\n flex && { flex },\n center && { alignItems: \"center\", justifyContent: \"center\" },\n shadow && {\n shadowOpacity: 0.12,\n shadowRadius: 15,\n shadowColor: \"gray\",\n shadowOffset: { height: 0, width: 0 },\n },\n paddingTop && { paddingTop },\n paddingLeft && { paddingLeft },\n paddingBottom && { paddingBottom },\n paddingRight && { paddingRight },\n marginLeft && { marginLeft },\n marginRight && { marginRight },\n marginBottom && { marginBottom },\n alignSelf && { alignSelf },\n alignItems && { alignItems },\n marginHorizontal && { marginHorizontal },\n marginVertical && { marginVertical },\n borderRightWidth && { borderRightWidth },\n borderLeftWidth && { borderLeftWidth },\n position && { position },\n bottom && { bottom },\n borderBottomWidth && { borderBottomWidth },\n borderTopWidth && { borderTopWidth },\n borderTopColor && { borderTopColor },\n borderBottomColor && { borderBottomColor },\n borderStyle && { borderStyle },\n top && { top },\n left && { left },\n right && { right },\n style,\n ]);\n return (\n \n {children}\n \n );\n};\n\nexport default Block;\n","const Colors = {\n White: '#fff',\n WhiteDark01: '#EAEAEA',\n WhiteDark02: '#D5D5D5',\n WhiteDark03: '#BABABA',\n WhiteLight01: '#F6F6F6',\n Primary: '#008988',\n PrimaryLight: '#E4F1F2',\n PrimaryLight2: '#DFEFF0',\n SecondPrimary: '#64B5B8',\n Black: '#000',\n GrayLight: '#45494C',\n Gray: '#64696C',\n GrayShape01: '#54595C',\n GrayShape02: '#45494C',\n BlueLight01: '#A8D5F0',\n BlueLight02: '#80C2E9',\n BlueLight03: '#00CBDC',\n Red: '#DC000C',\n\n colorOpacity: (opacity) => `rgba(0,0,0,0.${opacity})`,\n AdminPrimary: '#FDB66E',\n};\nexport default Colors;\n","import {Dimensions, Platform, StatusBar} from 'react-native';\n\nconst {width: appW, height: appH} = Dimensions.get('window');\n\nconst isAndroid = Platform.OS === 'android';\nconst isIOS = Platform.OS === 'ios';\n\nconst baseUnit = 8;\nconst getBaseUnitFactor = (multiplier: number = 1) => baseUnit * multiplier;\n\nexport default {\n isAndroid,\n isIOS,\n appW,\n appH,\n androidNavBarHeight: 56, // Fixed height from RNN\n statusBarHeight: isAndroid ? StatusBar.currentHeight : 20, //20 is hard core status bar height on iOS\n getBaseUnitFactor,\n\n marginHorizontal: 10,\n marginVertical: 10,\n section: 28,\n baseMargin: 10,\n doubleBaseMargin: Platform.OS === 'ios' ? 20 : 0,\n smallMargin: 5,\n doubleSection: 50,\n horizontalLineHeight: 1,\n searchBarHeight: 30,\n typeOfDevice: Platform.OS === 'ios' ? 2 : 1,\n navBarHeight: Platform.OS === 'ios' ? 64 : 64, // 70\n bottomSpace: 114,\n navBarHeightRestarurantDetail: Platform.OS === 'ios' ? 76 : 54,\n inviteListHeight: appH - 150,\n buttonRadius: 4,\n header: {\n onboarding: appW > 320 ? (Platform.OS === 'ios' ? 90 : 20) : 60,\n discover: 65,\n EditTable: 82,\n },\n icons: {\n tiny: 15,\n small: 20,\n medium: 30,\n large: 45,\n xl: 50,\n },\n images: {\n small: 20,\n medium: 40,\n large: 60,\n logo: 91,\n },\n\n getRelativeSize: (size, total = 375) => {\n /**used to get the relative size for our designs */\n const TOTAL_WIDTH = appW < appH ? appW : appH;\n return (size / total) * TOTAL_WIDTH;\n },\n};\n","import { useLocation, useHistory } from \"react-router-dom\";\n\nfunction useNavigate() {\n const location = useLocation();\n const history = useHistory();\n\n const navigate = (screen, state) => {\n let routeName = \"\";\n if (/^\\/admin/.test(location.pathname)) {\n if (!/^\\/admin/.test(screen)) routeName = \"/admin\";\n if (!/^\\//.test(screen)) routeName += \"/\";\n routeName += screen;\n } else {\n if (!/^\\//.test(screen)) routeName = \"/\" + screen;\n else routeName = screen;\n }\n\n history.push(routeName, state);\n };\n\n return navigate;\n}\n\nfunction useNavigateReplace() {\n const location = useLocation();\n const history = useHistory();\n\n const replace = (screen, state) => {\n let routeName = \"\";\n if (/^\\/admin/.test(location.pathname)) {\n if (!/^\\/admin/.test(screen)) routeName = \"/admin\";\n if (!/^\\//.test(screen)) routeName += \"/\";\n routeName += screen;\n } else {\n if (!/^\\//.test(screen)) routeName = \"/\" + screen;\n else routeName = screen;\n }\n\n history.push(routeName, state);\n };\n\n return replace;\n}\n\nexport { useNavigate, useNavigateReplace };\n","import {PixelRatio, Dimensions} from 'react-native';\nconst pixelRatio = PixelRatio.get();\nconst deviceHeight = Dimensions.get('window').height;\nconst deviceWidth = Dimensions.get('window').width;\n\nconst nor = (size) => {\n if (pixelRatio >= 2 && pixelRatio < 3) {\n // iphone 5s and older Androids\n if (deviceWidth < 360) {\n return size * 0.95;\n }\n // iphone 5\n if (deviceHeight < 667) {\n return size;\n // iphone 6-6s\n }\n if (deviceHeight >= 667 && deviceHeight <= 735) {\n return size * 1.15;\n }\n // older phablets\n return size * 1.25;\n }\n if (pixelRatio >= 3 && pixelRatio < 3.5) {\n // catch Android font scaling on small machines\n // where pixel ratio / font scale ratio => 3:3\n if (deviceWidth <= 360) {\n return size;\n }\n // Catch other weird android width sizings\n if (deviceHeight < 667) {\n return size * 1.15;\n // catch in-between size Androids and scale font up\n // a tad but not too much\n }\n if (deviceHeight >= 667 && deviceHeight <= 735) {\n return size * 1.2;\n }\n // catch larger devices\n // ie iphone 6s plus / 7 plus / mi note 等等\n return size * 1.27;\n }\n if (pixelRatio >= 3.5) {\n // catch Android font scaling on small machines\n // where pixel ratio / font scale ratio => 3:3\n if (deviceWidth <= 360) {\n return size;\n // Catch other smaller android height sizings\n }\n if (deviceHeight < 667) {\n return size * 1.2;\n // catch in-between size Androids and scale font up\n // a tad but not too much\n }\n if (deviceHeight >= 667 && deviceHeight <= 735) {\n return size * 1.25;\n }\n // catch larger phablet devices\n return size * 1.4;\n }\n return size;\n};\n\nexport default nor;\n","import React, { useState, useEffect } from 'react';\n\nexport const handleFocus = (event) => event.target.select();\n\n// const [timeOutHandler, setTimeOutHandler] = useState(undefined);\n\n// export const searchTimeOut = (search, fetApi) => {\n// if (timeOutHandler !==undefined) clearTimeout(timeOutHandler);\n// setTimeOutHandler(\n// setTimeout(() => {\n// if (search !== \"\") {\n// fetApi(search);\n// }\n// }, 300)\n// );\n// };\n\n\nexport const isAmountGreaterThanZero = (unit_price) => {\n return unit_price !== undefined && unit_price !== null && unit_price > 0;\n };\n \n","import React from 'react';\nimport { TouchableOpacity, Text, StyleSheet } from 'react-native';\nimport { Colors } from 'utils';\n\nconst styles = StyleSheet.create({\n block: {\n flex: 1,\n },\n});\n\nconst Button = ({\n block,\n margin,\n padding,\n width,\n height,\n border,\n borderWidth,\n borderColor,\n borderRadius,\n color,\n fontSize,\n textColor,\n style,\n textStyle,\n centered,\n middle,\n children,\n shadow,\n paddingVertical,\n paddingHorizontal,\n marginVertical,\n marginHorizontal,\n marginTop,\n marginBottom,\n marginLeft,\n marginRight,\n activeOpacity,\n smallCentered,\n mediumCentered,\n outline,\n ...props\n}) => {\n const styleComponent = StyleSheet.flatten([\n smallCentered && {\n marginTop: 14,\n alignSelf: 'center',\n paddingVertical: 3,\n paddingHorizontal: 24,\n borderRadius: 3,\n backgroundColor: Colors.SecondPrimary,\n },\n mediumCentered && {\n alignSelf: 'center',\n paddingVertical: 5,\n paddingHorizontal: 32,\n borderRadius: 3,\n backgroundColor: Colors.SecondPrimary,\n },\n outline && {\n marginTop: 20,\n alignItems: 'center',\n paddingVertical: 7,\n borderColor: Colors.SecondPrimary,\n borderWidth: 2,\n borderRadius: 5,\n },\n block && styles.block,\n margin && { margin },\n padding && { padding },\n width && { width },\n height && { height },\n border && { borderWidth: 1, borderColor: 'gray' },\n borderWidth && { borderWidth },\n borderColor && { borderColor },\n borderRadius && { borderRadius },\n color && { backgroundColor: color },\n centered && { justifyContent: 'center' },\n middle && { alignItems: 'center' },\n shadow && {\n shadowOpacity: 0.12,\n shadowRadius: 15,\n shadowColor: 'gray',\n shadowOffset: { height: 0, width: 0 },\n },\n activeOpacity && { activeOpacity },\n paddingVertical && { paddingVertical },\n paddingHorizontal && { paddingHorizontal },\n marginVertical && { marginVertical },\n marginHorizontal && { marginHorizontal },\n marginTop && { marginTop },\n marginBottom && { marginBottom },\n marginLeft && { marginLeft },\n marginRight && { marginRight },\n style,\n ]);\n const styleText = StyleSheet.flatten([\n smallCentered && { fontSize: 12, color: 'white', fontWeight: 'bold' },\n mediumCentered && { color: 'white', fontWeight: 'bold' },\n outline && { fontWeight: 'bold', color: Colors.Primary },\n fontSize && { fontSize },\n textColor && { color: textColor },\n textStyle,\n ]);\n\n if (typeof children == 'string') {\n return (\n \n {children}\n \n );\n }\n\n return (\n \n {children}\n \n );\n};\n\nexport default Button;\n","import React from 'react';\nimport { Text } from 'react-native';\nconst TextView = ({\n margin,\n padding,\n backgroundColor,\n color,\n size,\n bold,\n center,\n textAlign,\n regular,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n style,\n children,\n paddingVertical,\n paddingHorizontal,\n lineHeight,\n ...props\n}) => {\n const styleComponent = [\n { fontSize: 14 }, // default h6\n margin && { margin },\n padding && { padding },\n backgroundColor && { backgroundColor },\n color && { color },\n size && { fontSize: size },\n bold && { fontWeight: 'bold' },\n regular && { fontWeight: '400' },\n h1 && { fontSize: 40, fontWeight: 'bold' },\n h2 && { fontSize: 34, fontWeight: 'bold' },\n h3 && { fontSize: 28, fontWeight: 'bold' },\n h4 && { fontSize: 24, fontWeight: 'bold' },\n h5 && { fontSize: 18, fontWeight: 'bold' },\n h6 && { fontSize: 14, fontWeight: 'bold' },\n paddingVertical && { paddingVertical },\n center && { textAlign: 'center' },\n textAlign && { textAlign },\n paddingHorizontal && { paddingHorizontal },\n lineHeight && { lineHeight },\n style,\n ];\n return (\n \n {children}\n \n );\n};\n\nexport default TextView;\n","export const bottomIcons = {\n bell: require(\"./Bell.png\"),\n currency: require(\"./Currency.png\"),\n document: require(\"./Document.png\"),\n file: require(\"./File.png\"),\n settings: require(\"./Settings.png\"),\n};\n\nexport const headerIcons = {\n cart: require(\"./Cart.png\"),\n profile: require(\"./Profile.png\"),\n reload: require(\"./Reload.png\"),\n};\n\nexport const defaultIcons = {\n arrow_up: require(\"./arrow@2x.png\"),\n arrow_down: require(\"./arrow1@2x.png\"),\n check_none: require(\"./check_none.png\"),\n check_success: require(\"./check_success.png\"),\n caret_down: require(\"./caret_down.png\"),\n check: require(\"./check.png\"),\n trash: require(\"./trash.png\"),\n};\n\nexport const commonIcons = {\n search: require(\"./Search.png\"),\n calendar: require(\"./Calendar.png\"),\n share: require(\"./Share.png\"),\n close: require(\"./close.png\"),\n pdf: require(\"./Pdf.png\"),\n arrow_down: require(\"./arrow_down.png\"),\n RadioCheck: require(\"./Radio_check.png\"),\n};\n\nexport const authIcons = {\n user: require(\"./user.png\"),\n password: require(\"./password.png\"),\n admin_user: require(\"./admin_user.png\"),\n admin_password: require(\"./admin_password.png\"),\n};\n","import React from \"react\";\nimport { StyleSheet, Image, TouchableOpacity } from \"react-native\";\nimport Block from \"./Block\";\nimport Button from \"./Button\";\nimport TextView from \"./TextView\";\nimport { defaultIcons, commonIcons } from \"assets/icons\";\nimport { Colors } from \"utils\";\n\nconst CheckBox = ({\n label = \"\",\n ratio = 0.8,\n size = 10,\n check = true,\n onCheckBoxPress,\n fontSize,\n}) => {\n const _ratio = ratio;\n return (\n \n \n \n {check && (\n \n )}\n \n {label && (\n \n {label}\n \n )}\n \n \n );\n};\n\nexport default CheckBox;\n\nconst styles = StyleSheet.create({});\n","import React from 'react';\nimport Block from './Block';\nimport TextView from './TextView';\nimport { Colors } from 'utils';\nimport Button from './Button';\n\nconst Empty = ({\n onPress1,\n onPress2,\n label = '現在査定中の取引はありません。',\n button1 = '仕切書一覧',\n button2 = 'TOPへ',\n}) => {\n return (\n \n \n {label}\n \n \n \n \n {button1}\n \n \n \n \n \n {button2}\n \n \n \n \n );\n};\n\nexport default Empty;\n","import React from \"react\";\nimport { StyleSheet, Text, View, TextInput, Image } from \"react-native\";\nimport { Colors } from \"utils\";\n\nconst Input = ({\n label,\n tailText,\n headText,\n paddingVertical,\n headTextStyle,\n textInputStyle,\n tailTextStyle,\n wrapStyle,\n value,\n onChangeText,\n ...props\n}) => {\n let amountInput = null;\n\n return (\n \n \n {!!label && {label}}\n \n \n {!!headText && (\n {headText}\n )}\n \n \n (amountInput = input)}\n selectTextOnFocus\n onFocus={amountInput?.focus()}\n {...props}\n />\n \n \n \n {!!tailText && (\n {tailText}\n )}\n \n );\n};\n\nexport default Input;\n\nconst styles = StyleSheet.create({\n wrap: {\n flexDirection: \"row\",\n alignItems: \"flex-end\",\n },\n label: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n marginTop: 12,\n marginBottom: 6,\n fontSize: \"12pt\",\n },\n inputWrap: {\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n textInput: {\n flex: 1,\n padding: 10,\n backgroundColor: Colors.PrimaryLight,\n },\n icon: {\n width: 20,\n height: 20,\n marginHorizontal: 10,\n },\n headText: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n marginRight: 5,\n },\n tailText: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n marginLeft: 5,\n },\n});\n","import React, { forwardRef } from \"react\";\nimport { StyleSheet, Text, View, TextInput, Image } from \"react-native\";\nimport { Colors } from \"utils\";\n\nimport { commonIcons } from \"assets/icons\";\nimport Button from \"./Button\";\n\nconst Input = forwardRef(\n ({\n label,\n hideIcon,\n tailText,\n paddingVertical,\n onPress,\n wrapStyle,\n textInputStyle,\n renderRight,\n refHandler,\n selectTextOnFocus,\n onFocus,\n ...props\n }) => (\n \n \n {!!label && {label}}\n \n {\n if (refHandler !== undefined) refHandler(input);\n }}\n selectTextOnFocus={selectTextOnFocus}\n onFocus={onFocus}\n {...props}\n />\n {!hideIcon && (\n \n )}\n \n \n {!!renderRight && renderRight()}\n {!!tailText && {tailText}}\n \n )\n);\n\nexport default Input;\n\nconst styles = StyleSheet.create({\n wrap: {\n flexDirection: \"row\",\n alignItems: \"flex-end\",\n },\n label: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n marginTop: \"12pt\",\n marginBottom: \"6pt\",\n fontSize: \"12pt\",\n },\n inputWrap: {\n flexDirection: \"row\",\n alignItems: \"center\",\n borderColor: Colors.SecondPrimary,\n borderWidth: 1,\n borderRadius: 5,\n },\n textInput: {\n flex: 1,\n padding: \"10pt\",\n },\n icon: {\n width: \"20pt\",\n height: \"20pt\",\n marginHorizontal: \"10pt\",\n },\n tailText: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n marginLeft: \"5pt\",\n },\n});\n","import React from \"react\";\nimport { Dimensions } from \"react-native\";\nimport Block from \"./Block\";\nconst { height } = Dimensions.get(\"window\");\nexport const TAB_HEIGHT = 225;\nconst WrapperBlock = ({ children }) => {\n return (\n \n {children}\n \n );\n};\n\nexport default WrapperBlock;\n","export default {\n logo: require(\"./Logo.png\"),\n img: require(\"./1.png\"),\n admin_logo: require(\"./AdminLogo.png\"),\n user_auth: require(\"./UserAuth.png\"),\n admin_auth: require(\"./AdminAuth.png\"),\n no_image: require(\"./No_Image.png\"),\n};\n","const REQUEST = 'REQUEST';\nconst SUCCESS = 'SUCCESS';\nconst FAIL = 'FAIL';\n\nexport const createRequestTypes = base => ({\n [REQUEST]: `${base}_${REQUEST}`,\n [SUCCESS]: `${base}_${SUCCESS}`,\n [FAIL]: `${base}_${FAIL}`\n});\n","import { createRequestTypes } from \"./utils\";\n\nexport const GET_METAL_MARKET_PRICE = createRequestTypes(\n \"GET_METAL_MARKET_PRICE\"\n);\nexport const getMetalMarketPrice = (params) => ({\n type: GET_METAL_MARKET_PRICE.REQUEST,\n params,\n});\n\nexport const RESET_CART = createRequestTypes(\"RESET_CART\");\nexport const reset_cart = (params) => ({ type: RESET_CART.REQUEST, params });\n\nexport const CHECK_CART = createRequestTypes(\"CHECK_CART\");\nexport const checkCart = (params) => ({ type: CHECK_CART.REQUEST, params });\n\nexport const CREATE_NEW_INVOICE = createRequestTypes(\"CREATE_NEW_INVOICE\");\nexport const createNewInvoice = (params) => ({\n type: CREATE_NEW_INVOICE.REQUEST,\n params,\n});\n\nexport const GET_MARKET_PRICE_DATA = createRequestTypes(\n \"GET_MARKET_PRICE_DATA\"\n);\nexport const getMarketPriceData = (params) => ({\n type: GET_MARKET_PRICE_DATA.REQUEST,\n params,\n});\n\nexport const GET_AVERAGE_MARKET_PRICE = createRequestTypes(\n \"GET_AVERAGE_MARKET_PRICE\"\n);\nexport const getAverageMarketPrice = (params) => ({\n type: GET_AVERAGE_MARKET_PRICE.REQUEST,\n params,\n});\n","import { useRef, useEffect } from 'react';\n\nexport function usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}\n","import axios from \"axios\";\n\naxios.defaults.xsrfCookieName = \"csrftoken\";\naxios.defaults.xsrfHeaderName = \"X-CSRFTOKEN\";\naxios.defaults.withCredentials = true;\n\nexport default function axiosDebugger() {\n if (true) {\n axios.interceptors.request.use((request) => {\n console.log(\n `%c ${request.method.toUpperCase()} %c${request.url || \"\"}`,\n \"background-color: #eeffee; color: green; font-weight: bold\",\n \"background-color: #eeffee; text-decoration: none\"\n );\n if (request.data) console.log(JSON.stringify(request.data));\n console.log(request.headers);\n return request;\n });\n\n axios.interceptors.response.use((response) => {\n console.log(\n `%c ${response.status} %c${response.config.url} \\n`,\n \"background-color: #eeeeff; color: blue; font-weight: bold\",\n \"background-color: #eeeeff; color: blue; text-decoration: none\",\n response.data\n );\n return response;\n });\n }\n}\n\nexport const setAxiosDefaultHeaders = ({ token, uuid, language }) => {\n axios.defaults.headers.common.Authorization = `token ${token}`;\n axios.defaults.headers.common.uuid = uuid;\n\n // axios.defaults.headers.common[\"Access-Control-Allow-Headers\"] = \"Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers \";\n // axios.defaults.headers.common[\"Access-Control-Request-Headers\"] = \"Content-Type \";\n // axios.defaults.headers.common[\"Access-Control-Allow-Origin\"] =\"*\";\n // axios.defaults.headers.common['Content-Language'] = language;\n // axios.defaults.headers.common[\"Access-Control-Allow-Headers\"] = \"Origin, X-Requested-With, Content-Type, Accept, Authorization\";\n};\n","import { createRequestTypes } from './utils';\n\n\n\nexport const LOGIN = createRequestTypes('LOGIN');\nexport const login = params => ({ type: LOGIN.REQUEST, params });\n\nexport const LOGOUT = createRequestTypes('LOGOUT');\nexport const logout = params => ({ type: LOGOUT.REQUEST, params });\n\n","import { createRequestTypes } from \"./utils\";\n\nexport const UPDATE_CUSTOMER_ESTIMATE = createRequestTypes(\n \"UPDATE_CUSTOMER_ESTIMATE\"\n);\nexport const updateCustomerEstimate = (params) => ({\n type: UPDATE_CUSTOMER_ESTIMATE.REQUEST,\n params,\n});\n\nexport const GET_LAST_ESTIMATE = createRequestTypes(\"GET_LAST_ESTIMATE\");\nexport const getLastEstimate = (params) => ({\n type: GET_LAST_ESTIMATE.REQUEST,\n params,\n});\n\nexport const INSERT_PRODUCTS_TO_ESTIMATE = createRequestTypes(\n \"INSERT_PRODUCTS_TO_ESTIMATE\"\n);\nexport const insertProductsToEstimate = (params) => ({\n type: INSERT_PRODUCTS_TO_ESTIMATE.REQUEST,\n params,\n});\n\nexport const GET_ESTIMATE = createRequestTypes(\"GET_ESTIMATE\");\nexport const getEstimate = (params) => ({\n type: GET_ESTIMATE.REQUEST,\n params,\n});\n\nexport const UPDATE_ESTIMATE = createRequestTypes(\"UPDATE_ESTIMATE\");\nexport const updateEstimate = (params) => ({\n type: UPDATE_ESTIMATE.REQUEST,\n params,\n});\n\nexport const CREATE_NEW_ESTIMATE = createRequestTypes(\"CREATE_NEW_ESTIMATE\");\nexport const createNewEstimate = (params) => ({\n type: CREATE_NEW_ESTIMATE.REQUEST,\n params,\n});\n\nexport const DELETE_ESTIMATE_DETAIL = createRequestTypes(\n \"DELETE_ESTIMATE_DETAIL\"\n);\nexport const deleteEstimateDetail = (params) => ({\n type: DELETE_ESTIMATE_DETAIL.REQUEST,\n params,\n});\n\nexport const ESTIMATE_UPLOAD_PDF = createRequestTypes(\"ESTIMATE_UPLOAD_PDF\");\nexport const uploadPdf = (params) => ({\n type: ESTIMATE_UPLOAD_PDF.REQUEST,\n params,\n});\n\nexport const ESTIMATE_GENERATE_PDF = createRequestTypes(\n \"ESTIMATE_GENERATE_PDF\"\n);\nexport const generatePdf = (params) => ({\n type: ESTIMATE_GENERATE_PDF.REQUEST,\n params,\n});\n\nexport const DELETE_ESTIMATE = createRequestTypes(\"DELETE_ESTIMATE\");\nexport const deleteEstimate = (params) => ({\n type: DELETE_ESTIMATE.REQUEST,\n params,\n});\n\nexport const ESTIMATE_SCROLL_Y_OFFSET = \"ESTIMATE_SCROLL_Y_OFFSET\";\nexport const saveEstimateScrollYOffset = (params) => ({\n type: ESTIMATE_SCROLL_Y_OFFSET,\n params,\n});\n\nexport const COPY_ESTIMATE = createRequestTypes(\"COPY_ESTIMATE\");\nexport const copyEstimate = (params) => ({\n type: COPY_ESTIMATE.REQUEST,\n params,\n});\n","import { createRequestTypes } from \"./utils\";\n\n// export const GET_TRANSFER_CUSTOMERS = createRequestTypes(\n// \"GET_TRANSFER_CUSTOMERS\"\n// );\n// export const getTransferCustomers = (params) => ({\n// type: GET_TRANSFER_CUSTOMERS.REQUEST,\n// params,\n// });\n\nexport const UPDATE_CUSTOMER = createRequestTypes(\"UPDATE_CUSTOMER\");\nexport const updateCustomer = (params) => ({\n type: UPDATE_CUSTOMER.REQUEST,\n params,\n});\n\nexport const GET_LAST_INVOICE = createRequestTypes(\"GET_LAST_INVOICE\");\nexport const getLastInvoice = (params) => ({\n type: GET_LAST_INVOICE.REQUEST,\n params,\n});\n\nexport const INSERT_PRODUCTS_TO_INVOICE = createRequestTypes(\n \"INSERT_PRODUCTS_TO_INVOICE\"\n);\nexport const insertProductsToInvoice = (params) => ({\n type: INSERT_PRODUCTS_TO_INVOICE.REQUEST,\n params,\n});\n\nexport const GET_INVOICE = createRequestTypes(\"GET_INVOICE\");\nexport const getInvoice = (params) => ({\n type: GET_INVOICE.REQUEST,\n params,\n});\n\nexport const UPDATE_INVOICE = createRequestTypes(\"UPDATE_INVOICE\");\nexport const updateInvoice = (params) => ({\n type: UPDATE_INVOICE.REQUEST,\n params,\n});\n\n// export const GET_TWO_LAST_INVOICE = createRequestTypes(\"GET_TWO_LAST_INVOICE\");\n// export const getTwoLastInvoice = (params) => ({\n// type: GET_TWO_LAST_INVOICE.REQUEST,\n// params,\n// });\n\nexport const GET_OTHER_INVOICE = createRequestTypes(\"GET_OTHER_INVOICE\");\nexport const getOtherInvoice = (params) => ({\n type: GET_OTHER_INVOICE.REQUEST,\n params,\n});\n\nexport const DELETE_INVOICE_DETAIL = createRequestTypes(\n \"DELETE_INVOICE_DETAIL\"\n);\nexport const deleteInvoiceDetail = (params) => ({\n type: DELETE_INVOICE_DETAIL.REQUEST,\n params,\n});\n\nexport const SEARCH_PAST_PERFORMANCE = createRequestTypes(\n \"SEARCH_PAST_PERFORMANCE\"\n);\n\nexport const searchPastPerformance = (params) => ({\n type: SEARCH_PAST_PERFORMANCE.REQUEST,\n params,\n});\n\nexport const INVOICE_UPLOAD_PDF = createRequestTypes(\"INVOICE_UPLOAD_PDF\");\nexport const uploadPdf = (params) => ({\n type: INVOICE_UPLOAD_PDF.REQUEST,\n params,\n});\n\nexport const CREATE_TRANSFER_INVOICE = createRequestTypes(\n \"CREATE_TRANSFER_INVOICE\"\n);\nexport const createTransferInvoice = (params) => ({\n type: CREATE_TRANSFER_INVOICE.REQUEST,\n params,\n});\n\nexport const SAVE_INVOICE_DATA_GO_TO_PRODUCT_DETAIL = createRequestTypes(\n \"SAVE_INVOICE_DATA_GO_TO_PRODUCT_DETAIL\"\n);\n\nexport const saveInvoiceDataWhenGoToProductDetail = (params) => ({\n type: SAVE_INVOICE_DATA_GO_TO_PRODUCT_DETAIL,\n params,\n});\n\nexport const SEARCH_PRODUCT_IN_INVOICE_DETAIL = createRequestTypes(\n \"SEARCH_PRODUCT_IN_INVOICE_DETAIL\"\n);\n\nexport const searchProductInInvoiceDetail = (params) => ({\n type: SEARCH_PRODUCT_IN_INVOICE_DETAIL.REQUEST,\n params,\n});\n\nexport const INVOICE_GENERATE_PDF = createRequestTypes(\"INVOICE_GENERATE_PDF\");\nexport const generatePdf = (params) => ({\n type: INVOICE_GENERATE_PDF.REQUEST,\n params,\n});\n","import React, { useEffect, useState } from \"react\";\nimport { StyleSheet, Image, Text, View, TouchableOpacity } from \"react-native\";\nimport LinearGradient from \"react-native-web-linear-gradient\";\nimport { useNavigate } from \"utils\";\n\nimport images from \"assets/images\";\nimport { headerIcons } from \"assets/icons\";\nimport { useHistory, useLocation } from \"react-router-dom\";\n\nimport { connect } from \"react-redux\";\nimport { checkCart, createNewInvoice } from \"../../redux/actions/home\";\nimport { usePrevious } from \"../../utils/hook\";\nimport { setAxiosDefaultHeaders } from \"../../configs/axiosDebugger\";\nimport { Colors } from \"utils\";\nimport { logout } from \"../../redux/actions/auth\";\nimport { createNewEstimate } from \"../../redux/actions/estimate\";\nimport { Alert } from \"../../App\";\nimport { getInvoice } from \"../../redux/actions/invoice\";\n\nconst Header = (props) => {\n const history = useHistory();\n const location = useLocation();\n const navigate = useNavigate();\n const [showHeader, setShowHeader] = React.useState(false);\n const [isAdmin, setIsAdmin] = React.useState(false);\n const [headerCartClick, setHeaderCartClick] = React.useState(false);\n\n const onPressNavigate = (pathname) => navigate(pathname);\n\n React.useEffect(() => {\n if (/\\/login/.test(location.pathname)) {\n setShowHeader(false);\n } else {\n setShowHeader(true);\n }\n\n if (/^\\/admin/.test(location.pathname)) {\n setIsAdmin(true);\n } else {\n setIsAdmin(false);\n }\n }, [location]);\n\n const gradientColor = isAdmin\n ? [\"#EF8545\", \"#5F9B89\"]\n : [\"#64B5B8\", \"#DF931C\"];\n const logo = isAdmin ? images.admin_logo : images.logo;\n const routePrefix = isAdmin ? \"/admin\" : \"\";\n\n const prevCreatingNewInvoice = usePrevious(props.isCreatingNewInvoice);\n useEffect(() => {\n if (prevCreatingNewInvoice && !props.isCreatingNewInvoice) {\n if (props.isCreatedNewInvoice) {\n navigate(\"purchase-supplier\", {\n new_invoice: props.newInvoice,\n });\n }\n }\n }, [props.isCreatingNewInvoice]);\n\n const favicon = getFaviconEl();\n favicon.href = isAdmin\n ? \"/icon_kanehira_admin.png\"\n : \"/icon_kanehira_user.png\";\n\n const appleIcon = getAppleIcon();\n appleIcon.href = isAdmin\n ? \"/icon_kanehira_admin.png\"\n : \"/icon_kanehira_user.png\";\n\n function getFaviconEl() {\n return document.getElementById(\"favicon\");\n }\n\n function getAppleIcon() {\n return document.getElementById(\"appleIcon\");\n }\n\n const checkCart = () => {\n //mean: is_invoice_empty =true when dont have invoice record or have atleast 1 invoice record and invoice have invoice-detail <=0\n if (props.cart.is_invoice_empty) {\n //go to [003-006/ 仕入リスト(空の状態)]\n navigate(\"cart\", {\n invoice_id: \"\",\n });\n } else {\n setHeaderCartClick(true);\n navigate(\"buy-review\", {\n // 003-002\n new_invoice: props.cart?.invoice,\n });\n\n navigate(\"cart\", {\n invoice_id: props.cart?.invoice?.id, // we send invoice_id instead of send \"new_invoice\" object, because many flow go to this screen \"cart\"\n });\n }\n };\n\n const doLogout = () => {\n setAxiosDefaultHeaders({\n token: \"\",\n uuid: \"\",\n });\n props.logout({});\n navigate(\"\");\n };\n\n useEffect(() => {\n props.checkCart();\n }, []);\n\n const showLogOutConfirmModal = () => {\n Alert.alert(\"\", \"ログアウトしますか?\", [\n {\n label: \"はい\",\n primary: true,\n onPress: () => {\n doLogout();\n Alert.hideModal();\n },\n },\n {\n label: \"いいえ\",\n primary: false,\n onPress: () => {\n Alert.hideModal();\n },\n },\n ]);\n };\n // console.log(\"hung props?.cart?.invoice:\", props?.cart?.invoice);\n const reloadPage = () => {\n window.location.reload(true);\n };\n const getCartCount = () => {\n if (props?.cart?.is_invoice_empty == false) {\n if (location.pathname.includes(\"cart-preview\")) {\n var count = 0;\n const invoice_details = props?.cart?.invoice?.invoice_details;\n for (const [index, detail] of invoice_details.entries()) {\n if (detail.amount > 0 && detail.unit_price > 0) {\n count++;\n }\n }\n return count;\n } else {\n return props?.cart?.invoice.invoice_details?.length;\n }\n } else {\n return 0;\n }\n };\n return (\n showHeader && (\n \n \n onPressNavigate(\"/\")}>\n \n \n \n reloadPage()}\n >\n \n \n \n \n {props.account?.name}\n showLogOutConfirmModal()}>\n ログアウト\n \n \n {/* {props.account?.email} */}\n \n onPressNavigate(routePrefix + \"/account\")}\n style={styles.button}\n >\n \n \n\n checkCart()} style={styles.button}>\n {getCartCount() > 0 ? : <>}\n \n \n \n \n \n )\n );\n};\n\nconst Badge = ({ number }) => {\n return (\n \n \n {number}\n \n \n );\n};\n\nconst mapStateToProps = (state) => ({\n isCheckedCart: state.home.isCheckedCart,\n isCheckingCart: state.home.isCheckingCart,\n cart: state.home.cart,\n\n isCreatedNewInvoice: state.home.isCreatedNewInvoice,\n isCreatingNewInvoice: state.home.isCreatingNewInvoice,\n newInvoice: state.home.newInvoice,\n\n account: state.auth.account,\n\n isCreatedNewEstimate: state.estimate.isCreatedNewEstimate,\n isCreatingNewEstimate: state.estimate.isCreatingNewEstimate,\n newEstimate: state.estimate.newEstimate,\n\n isGettingInvoice: state.invoice.isGettingInvoice,\n isGotInvoice: state.invoice.isGotInvoice,\n invoice: state.invoice.invoice,\n\n isResettingCart: state.home.isResettingCart,\n isResetCartFinish: state.home.isResetCartFinish,\n});\nconst mapDispatchToProps = {\n checkCart,\n createNewInvoice,\n createNewEstimate,\n logout,\n getInvoice,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Header);\n\nconst styles = StyleSheet.create({\n reloadButtonWrap: {\n alignItems: \"center\",\n justifyContent: \"center\",\n marginEnd: 10,\n },\n contentWrap: {\n flexDirection: \"row\",\n alignItems: \"center\",\n paddingBottom: 20,\n paddingHorizontal: 15,\n paddingTop: 40,\n },\n logo: {\n width: 100,\n height: 55,\n },\n name: {\n alignSelf: \"flex-end\",\n fontWeight: \"bold\",\n color: \"white\",\n fontSize: \"14pt\",\n marginRight: \"10pt\",\n },\n email: {\n color: \"white\",\n fontSize: \"12pt\",\n },\n rightWrap: {\n flex: 1,\n flexDirection: \"row\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n },\n button: {\n marginLeft: 10,\n },\n buttonIcon: {\n width: 50,\n height: 50,\n },\n reloadButton: {\n width: 20,\n height: 20,\n },\n logoutButton: {\n borderRadius: \"20pt\",\n backgroundColor: \"white\",\n color: Colors.Primary,\n fontSize: \"10pt\",\n paddingVertical: \"4pt\",\n paddingHorizontal: \"5pt\",\n },\n});\n","import React from 'react';\nimport { Text, Image, View, StyleSheet, TouchableOpacity } from 'react-native';\nimport { Link } from 'react-router-dom';\nimport { useNavigate } from 'utils';\n\nexport default function Tab({ label, icon, path }) {\n const navigate = useNavigate();\n return (\n navigate(path)} style={RNStyles.tab}>\n \n {label}\n \n );\n}\n\nconst styles = {\n tab: {\n display: 'flex',\n flex: 1,\n },\n};\n\nconst RNStyles = StyleSheet.create({\n tab: {\n flex: 1,\n paddingTop: '10pt',\n paddingBottom: '15pt',\n alignItems: 'center',\n },\n tabLabel: {\n color: 'white',\n },\n});\n","import React from \"react\";\nimport Block from \"components/common/Block\";\nimport TextView from \"components/common/TextView\";\nimport { Colors } from \"utils\";\nimport Button from \"components/common/Button\";\nconst FooterButton = ({\n label = \"FAX送付依頼を送信しました。\",\n button1 = \"\",\n button2 = \"\",\n onPress1 = () => true,\n onPress2 = () => true,\n}) => {\n return (\n \n \n {!!label && (\n \n \n {label}\n \n \n )}\n \n \n \n {button1}\n \n \n\n \n {button2 && (\n \n \n {button2}\n \n \n )}\n \n \n \n );\n};\n\nexport default FooterButton;\n","import Button from \"components/common/Button\";\nimport React from \"react\";\nimport { StyleSheet, View, Text } from \"react-native\";\nimport { useHistory } from \"react-router-dom\";\nimport { Colors } from \"utils\";\n\nconst Title = ({ title = \"\", title1 = \"\" }) => {\n const history = useHistory();\n return (\n \n \n {!title1 ? (\n {title}\n ) : (\n \n \n \n \n \n {title1}\n \n )}\n \n \n );\n};\n\nexport default Title;\n\nconst styles = StyleSheet.create({\n wrap: {\n width: \"100%\",\n },\n content: {\n width: \"100%\",\n backgroundColor: Colors.White,\n justifyContent: \"center\",\n borderBottomWidth: 2,\n borderBottomColor: Colors.WhiteDark03,\n paddingVertical: 20,\n },\n txtTitle: {\n fontSize: \"18pt\",\n color: Colors.Primary,\n fontWeight: \"bold\",\n },\n txtTitle1: {\n fontSize: 14,\n color: Colors.White,\n fontWeight: \"bold\",\n textAlign: \"center\",\n },\n wrapTitle1: { flexDirection: \"row\" },\n containerTitle1: {\n backgroundColor: Colors.SecondPrimary,\n justifyContent: \"center\",\n\n paddingHorizontal: 10,\n alignItems: \"center\",\n },\n bgTitle1: {\n height: 16,\n width: 16,\n backgroundColor: Colors.SecondPrimary,\n transform: [{ rotate: \"45deg\" }],\n position: \"absolute\",\n left: -8,\n },\n mgLeft: {\n marginLeft: 10,\n },\n});\n","import React, { useEffect, useState } from 'react';\nimport { View, StyleSheet } from 'react-native';\nimport { useLocation } from 'react-router-dom';\n\nimport Tab from './Tab';\nimport { bottomIcons } from 'assets/icons';\n\nconst BottomTabs = () => {\n const location = useLocation();\n const [showTabs, setShowTabs] = React.useState(false);\n const [isAdmin, setIsAdmin] = React.useState(false);\n\n React.useEffect(() => {\n if (/\\/login/.test(location.pathname)) {\n setShowTabs(false);\n } else {\n setShowTabs(true);\n }\n if (/^\\/admin/.test(location.pathname)) {\n setIsAdmin(true);\n } else {\n setIsAdmin(false);\n }\n }, [location]);\n\n return (\n showTabs && (\n \n {(isAdmin ? ADMIN_TABS : TABS).map((item, index) => (\n \n ))}\n \n )\n );\n};\n\nconst TABS = [\n {\n icon: bottomIcons.bell,\n label: 'お知らせ',\n path: '/notice',\n },\n {\n icon: bottomIcons.file,\n label: '製品カタログ',\n path: '/catalog',\n },\n {\n icon: bottomIcons.document,\n label: '過去実績',\n path: '/performance',\n },\n {\n icon: bottomIcons.currency,\n label: '振込依頼',\n path: '/transfer-request',\n },\n];\nconst ADMIN_TABS = [\n {\n icon: bottomIcons.bell,\n label: 'お知らせ',\n path: '/admin/notice',\n },\n {\n icon: bottomIcons.file,\n label: '製品カタログ',\n path: '/admin/catalog',\n },\n {\n icon: bottomIcons.document,\n label: '過去実績',\n path: '/admin/performance',\n },\n {\n icon: bottomIcons.currency,\n label: '振込依頼',\n path: '/admin/transfer-request',\n },\n {\n icon: bottomIcons.settings,\n label: '設 定',\n path: '/admin/settings',\n },\n];\n\nconst styles = StyleSheet.create({\n tabWrap: {\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'row',\n backgroundColor: '#008988',\n paddingBottom: '10pt',\n },\n});\n\nexport default BottomTabs;\n","import moment from \"moment\";\nimport \"moment/locale/ja\";\nimport \"moment/locale/vi\";\nimport \"moment/locale/zh-cn\";\nimport \"moment/locale/zh-tw\";\n\nexport const DEFAULT_LOCALE = \"en\";\n\nconst DAYS = [\"日\", \"月\", \"火\", \"水\", \"木\", \"金\", \"土\"];\n\nexport const NOW_DATE = new Date();\n\nexport const getDayOfWeek = (date) => {\n if (date == undefined || date == null || date == \"\") return \"\";\n const day = DAYS[date.getDay()];\n return day;\n};\n\nexport const DateTimeFormatter = {\n HH_MM_DD_MM_YYYY: \" HH:mm DD/MM/YYYY\",\n DD_MM_YYYY_HH_MM: \"DD/MM/YYYY HH:mm\",\n YYYY_MM_DD_HYPHEN: \"YYYY-MM-DD\",\n YYYY_MM_DD_HH_MM_HYPHEN: \"YYYY-MM-DD HH:mm\",\n DD_MM_YYYY: \"DD/MM/YYYY\",\n HH_MM_DDD_DD_MM_YYYY: \"HH:mm ddd, DD/MM/YYYY\",\n MM_DD_JP: \"MM月DD日\",\n YYYY_MM_DD_JP: \"YYYY年MM月DD日\",\n YYYY_MM_DD_HH_MM_JP: \"YYYY年MM月DD日HH時mm分\",\n YYYY_MM_DD_JP_DOT: \"YYYY.MM.DD\",\n MM_DD: \"MM/DD\",\n};\n\nconst timezoneOffset = new Date().getTimezoneOffset();\n\nconst _languageToLocale = (language) => {\n if (!language.includes(\"zh\")) {\n return language;\n }\n\n return language.includes(\"Hans\") ? \"zh-cn\" : \"zh-tw\";\n};\n\nexport const formatDateTime = (value, formatType) => {\n if (formatType === undefined) {\n formatType = DateTimeFormatter.YYYY_MM_DD_JP;\n }\n\n if (value === \"\" || value === undefined) {\n return \"\";\n }\n // moment.locale(DEFAULT_LOCALE);\n const date = moment(value);\n if (date.isValid()) {\n return moment.utc(value).format(formatType); //NOTE: all datetime will be utc , same date in db\n //return moment(value).format(formatType);\n }\n\n return value;\n};\n\nexport const formatDateTimeLocal = (value, formatType) => {\n if (formatType === undefined) {\n formatType = DateTimeFormatter.YYYY_MM_DD_JP;\n }\n\n if (value === \"\" || value === undefined) {\n return \"\";\n }\n // moment.locale(DEFAULT_LOCALE);\n const date = moment(value);\n if (date.isValid()) {\n return moment(value).format(formatType);\n }\n\n return value;\n};\n\nexport const formatDateTimeUTC = (value, formatType) => {\n if (formatType === undefined) {\n formatType = DateTimeFormatter.YYYY_MM_DD_JP;\n }\n\n if (value === \"\" || value === undefined) {\n return \"\";\n }\n\n const date = moment(value);\n if (date.isValid()) {\n return moment.utc(value).format(formatType);\n // return moment(value).format(formatType);\n }\n\n return value;\n};\n\n/**\n *\n * @param {*} value : a UTC dateTime: 2030-04-17T00:00:00.000000Z\n * @param {*} formatType : example: DD_MM_YYYY_HH_MM\n * @param {*} language : en/jp/zh/....\n * @param {*} isKeepUtcTime : true/false: true: keep output datetime as UTC \"17/04/2020 00:00 \", false: parse to local date time \"17/04/2020 07:00 \"\n */\nexport const formatDateTimeLocale = (\n value,\n formatType,\n language,\n isKeepUtcTime\n) => {\n if (formatType === undefined) {\n formatType = DateTimeFormatter.DD_MM_YYYY_HH_MM;\n }\n if (language === undefined) {\n moment.locale(DEFAULT_LOCALE);\n } else {\n moment.locale(_languageToLocale(language));\n }\n const date = moment(value);\n if (date.isValid()) {\n if (isKeepUtcTime) {\n return moment.utc(value).format(formatType);\n } else {\n return moment(value).format(formatType);\n }\n }\n return value;\n};\n\n// export const toDateTime = (value) => {\n// if (value === \"\" || value === undefined) {\n// return \"\";\n// }\n// const date = moment(value).format(DateTimeFormatter.YYYY_MM_DD_HYPHEN);\n// return date;\n// };\n\nexport default {\n formatDateTime,\n formatDateTimeUTC,\n DateTimeFormatter,\n formatDateTimeLocale,\n};\n","import React from \"react\";\nimport { StyleSheet, Text, View, TouchableOpacity } from \"react-native\";\nimport { Colors } from \"utils\";\nimport { getMetalMarketPrice } from \"../../redux/actions/home\";\nimport { connect } from \"react-redux\";\nimport {\n DateTimeFormatter,\n formatDateTime,\n formatDateTimeLocal,\n} from \"utils/DateUtility\";\n\nconst TabView = (props) => {\n // let newDate = new Date();\n // let date = newDate.getDate();\n // let month = newDate.getMonth() + 1;\n // let hours = newDate.getHours();\n // let minutes = newDate.getMinutes();\n const refreshData = () => {\n props.getMetalMarketPrice();\n };\n\n const TextTab = (content, index) => {\n return (\n \n {content}\n \n );\n };\n\n return (\n <>\n \n \n 最新の相場更新日時\n \n {formatDateTimeLocal(\n props.metalMarketPrice?.latest_price?.modified,\n DateTimeFormatter.YYYY_MM_DD_HH_MM_JP\n )}\n \n \n refreshData()}\n >\n 最新データに更新\n \n \n \n props.onPressTab(0)}\n style={[\n styles.tab,\n styles.radiusLeft,\n props.tabIndex === 0 && { backgroundColor: Colors.SecondPrimary },\n ]}\n >\n {TextTab(\"本日の貴金属相場\", 0)}\n \n props.onPressTab(1)}\n style={[\n styles.tab,\n { borderLeftWidth: 0, borderRightWidth: 0 },\n props.tabIndex === 1 && { backgroundColor: Colors.SecondPrimary },\n ]}\n >\n {TextTab(\"貴金属相場推移グラフ\", 1)}\n \n props.onPressTab(2)}\n style={[\n styles.tab,\n styles.radiusRight,\n props.tabIndex === 2 && { backgroundColor: Colors.SecondPrimary },\n ]}\n >\n {TextTab(`前週・前々週の\\n平均相場比較`, 2)}\n \n \n \n );\n};\n\nconst mapStateToProps = (state) => ({\n metalMarketPrice: state.home.metalMarketPrice,\n});\nconst mapDispatchToProps = {\n getMetalMarketPrice,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(TabView);\n\nconst styles = StyleSheet.create({\n containerTime: {\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n marginTop: \"10pt\",\n },\n btnUpdate: {\n paddingHorizontal: \"15pt\",\n paddingVertical: \"5pt\",\n backgroundColor: Colors.SecondPrimary,\n },\n txtUpdate: {\n color: Colors.White,\n fontSize: \"10pt\",\n },\n txtTime: {\n color: Colors.Gray,\n fontSize: \"12pt\",\n letterSpacing: \"2pt\",\n },\n tabs: {\n flexDirection: \"row\",\n marginTop: \"10pt\",\n },\n txtTab: {\n color: Colors.SecondPrimary,\n fontSize: \"10pt\",\n textAlign: \"center\",\n fontWeight: \"500\",\n },\n tab: {\n flex: 1,\n padding: \"2pt\",\n borderWidth: 1,\n borderColor: Colors.SecondPrimary,\n alignItems: \"center\",\n justifyContent: \"center\",\n backgroundColor: Colors.WhiteLight01,\n paddingVertical: \"3pt\",\n },\n radiusLeft: { borderTopLeftRadius: 30, borderBottomLeftRadius: 30 },\n radiusRight: {\n borderTopRightRadius: 30,\n borderBottomRightRadius: 30,\n },\n});\n","import numeral from \"numeral\";\n\n/**\n * roundCeil(2.9648,2) --> 2.97\n *\n * @param {*} value\n * @param {*} ceilNum\n */\nexport const roundCeil = (value, ceilNum) => {\n ceilNum = ceilNum === undefined || ceilNum === \"\" ? 2 : ceilNum;\n var factor = Math.pow(10, ceilNum);\n var a = value * factor;\n var b = Math.ceil(a);\n var c = b / factor;\n return c;\n};\n\n/**\n * roundFloor(2.9658,2) --> 2.96\n * @param {*} value\n * @param {*} floorNum\n */\nexport const roundFloor = (value, floorNum) => {\n floorNum = floorNum === undefined || floorNum === \"\" ? 2 : floorNum;\n var factor = Math.pow(10, floorNum);\n var a = value * factor;\n var b = Math.floor(a);\n var c = b / factor;\n return c;\n};\n\nexport const formatMoney = (value, formatter) => {\n if (formatter === undefined) {\n formatter = MoneyFormatter.ZERO_DECIMAL_FORMAT;\n }\n if (value === undefined || value === \"\") return 0;\n return numeral(value).format(formatter, Math.floor);\n};\n\nexport const MoneyFormatter = {\n ZERO_DECIMAL_FORMAT: \"0,0.\",\n ONE_DECIMAL_FORMAT: \"0,0.0\",\n TWO_DECIMAL_FORMAT: \"0,0.00\",\n CUSTOM_DECIMAL_FORMAT: \"0,0.[0000000]\",\n ZERO_DECIMAL_FORMAT_NO_COMMAS: \"0\",\n TWO_DECIMAL_FORMAT_NO_COMMAS: \"0.00\",\n FIVE_DECIMAL_FORMAT_NO_COMMAS: \"0.00000\",\n SEVEN_DECIMAL_FORMAT_NO_COMMAS: \"0.0000000\",\n};\n\n// const floatRegExp = new RegExp('^[+-]?([0-9]+([.][0-9]*)?|[.][0-9]+)$') //original\nconst floatRegExp = new RegExp(\"^[+-]?([0-9]+([.][0-9]{0,2})?|[.][0-9]+)$\"); // HungNgo: edit allow max 2 decimal number\n// const floatRegExp = new RegExp('^[0-9]{1,11}(?:\\\\.[0-9]{1,3})?$') // another, not test yet\n\nconst intRegExp = new RegExp(\"^(0|[1-9]\\\\d*)$\");\n\nexport const validateDecimal = (value) => {\n return value === \"\" || floatRegExp.test(value);\n\n // return true;\n // }else{\n // console.log('hung not validate')\n // }\n};\n\nexport const validateInteger = (value) => {\n return value === \"\" || intRegExp.test(value);\n};\n\n/**\n * format like below\n * 1.00 -> 0\n * 1.23 -> 1.23\n * @param {*} value\n * @returns\n */\nexport const formatInvoiceDetailAmount = (value) => {\n if (value !== undefined && value.includes(\".\")) {\n const [whole, decimal] = String(value).split(\".\");\n if (decimal !== \"\" && Number(decimal) > 0) {\n if (decimal % 10 !== 0) {\n return formatMoney(value, MoneyFormatter.TWO_DECIMAL_FORMAT);\n } else {\n return formatMoney(value, MoneyFormatter.ONE_DECIMAL_FORMAT);\n }\n } else {\n return formatMoney(value);\n }\n } else {\n return value;\n }\n};\n\nexport default {\n formatMoney,\n MoneyFormatter,\n validateDecimal,\n validateInteger,\n formatInvoiceDetailAmount,\n};\n","import React from \"react\";\nimport { StyleSheet, Image, ScrollView } from \"react-native\";\nimport Block from \"components/common/Block\";\nimport TextView from \"components/common/TextView\";\nimport { Colors } from \"utils\";\nimport { formatMoney, MoneyFormatter } from \"../../utils/MoneyFormatter\";\nexport const ColorSpread = (amount) =>\n amount < 0 ? Colors.Red : amount > 0 ? Colors.BlueLight03 : Colors.Primary;\nconst Tab1 = ({ data }) => {\n const Item = ({ item }) => {\n return (\n \n \n \n \n {item.title}\n \n \n {item.title_jpy}\n \n \n \n \n \n \n \n {item.price_jpy}\n \n \n \n \n {item.price_usd}\n \n \n \n \n \n \n {item.unit_jpy}\n \n \n \n \n \n \n {item.spread_jpy}\n \n \n \n \n \n {item.unit_usd}\n \n \n \n \n \n \n {item.spread_usd}\n \n \n \n \n \n \n \n \n );\n };\n return (\n \n \n {data.map((item, index) => (\n \n ))}\n \n \n );\n};\n\nexport default Tab1;\n\nconst styles = StyleSheet.create({});\n","import React, { useState, useEffect } from \"react\";\nimport { StyleSheet, Image, ScrollView } from \"react-native\";\nimport Block from \"components/common/Block\";\nimport TextView from \"components/common/TextView\";\nimport { Colors } from \"utils\";\nimport { ColorSpread } from \"./Tab1\";\nimport { getAverageMarketPrice } from \"../../redux/actions/home\";\nimport { usePrevious } from \"../../utils/hook\";\nimport { connect } from \"react-redux\";\nimport { defaultIcons } from \"assets/icons\";\nimport { formatMoney, MoneyFormatter } from \"../../utils/MoneyFormatter\";\nimport { formatDateTime, DateTimeFormatter } from \"../../utils/DateUtility\";\n\nconst Tab3 = (props) => {\n const [data, setData] = useState([]);\n const prevGettingAverageMarketPrice = usePrevious(\n props.isGettingAverageMarketPrice\n );\n\n useEffect(() => {\n props.getAverageMarketPrice();\n }, []);\n\n useEffect(() => {\n if (prevGettingAverageMarketPrice && !props.isGettingAverageMarketPrice) {\n if (props.isGotAverageMarketPrice) {\n const spread_pt =\n props.averageMarketPrice?.last?.avg_pt -\n props.averageMarketPrice?.last_two_week?.avg_pt;\n\n const spread_pt_percentage =\n (spread_pt / props.averageMarketPrice?.last?.avg_pt) * 100;\n\n const spread_pd =\n props.averageMarketPrice?.last?.avg_pd -\n props.averageMarketPrice?.last_two_week?.avg_pd;\n\n const spread_pd_percentage =\n (spread_pd / props.averageMarketPrice?.last?.avg_pd) * 100;\n\n const spread_rh =\n props.averageMarketPrice?.last?.avg_rh -\n props.averageMarketPrice?.last_two_week?.avg_rh;\n\n const spread_rh_percentage =\n (spread_rh / props.averageMarketPrice?.last?.avg_rh) * 100;\n\n const d = [\n {\n title: \"PT\",\n title_jpy: \"プラチナ\",\n last_week_monday: props.averageMarketPrice?.last?.monday_date,\n last_week_friday: props.averageMarketPrice?.last?.friday_date,\n last_week_average: props.averageMarketPrice?.last?.avg_pt,\n\n last_two_week_monday:\n props.averageMarketPrice?.last_two_week?.monday_date,\n last_two_week_friday:\n props.averageMarketPrice?.last_two_week?.friday_date,\n last_two_week_average:\n props.averageMarketPrice?.last_two_week?.avg_pt,\n spread_amount: spread_pt,\n spread_percentage: spread_pt_percentage,\n },\n {\n title: \"PD\",\n title_jpy: \"パラジウム\",\n last_week_monday: props.averageMarketPrice?.last?.monday_date,\n last_week_friday: props.averageMarketPrice?.last?.friday_date,\n last_week_average: props.averageMarketPrice?.last?.avg_pd,\n\n last_two_week_monday:\n props.averageMarketPrice?.last_two_week?.monday_date,\n last_two_week_friday:\n props.averageMarketPrice?.last_two_week?.friday_date,\n last_two_week_average:\n props.averageMarketPrice?.last_two_week?.avg_pd,\n spread_amount: spread_pd,\n spread_percentage: spread_pd_percentage,\n },\n {\n title: \"RH\",\n title_jpy: \"ロジウム\",\n last_week_monday: props.averageMarketPrice?.last?.monday_date,\n last_week_friday: props.averageMarketPrice?.last?.friday_date,\n last_week_average: props.averageMarketPrice?.last?.avg_rh,\n\n last_two_week_monday:\n props.averageMarketPrice?.last_two_week?.monday_date,\n last_two_week_friday:\n props.averageMarketPrice?.last_two_week?.friday_date,\n last_two_week_average:\n props.averageMarketPrice?.last_two_week?.avg_rh,\n spread_amount: spread_rh,\n spread_percentage: spread_rh_percentage,\n },\n ];\n\n setData(d);\n }\n }\n }, [props.isGettingAverageMarketPrice]);\n\n const Item = ({ item, index }) => {\n return (\n \n \n \n \n {item.title}\n \n \n \n {item.title_jpy}\n \n \n \n \n \n \n 前週\n \n \n \n \n {formatDateTime(\n item.last_week_monday,\n DateTimeFormatter.MM_DD_JP\n )}\n (月)〜\n {formatDateTime(\n item.last_week_friday,\n DateTimeFormatter.MM_DD_JP\n )}\n (金)\n \n \n \n 前々週\n \n \n \n \n {formatDateTime(\n item.last_two_week_monday,\n DateTimeFormatter.MM_DD_JP\n )}\n (月)〜\n {formatDateTime(\n item.last_two_week_friday,\n DateTimeFormatter.MM_DD_JP\n )}\n (金)\n \n \n \n \n \n \n 平 均\n \n \n \n \n {formatMoney(item.last_week_average)}\n \n \n \n \n \n \n 平 均\n \n \n \n \n {formatMoney(item.last_two_week_average)}\n \n \n \n \n \n \n \n 円/g\n \n \n 円/g\n \n \n \n 0\n ? defaultIcons.arrow_up\n : defaultIcons.arrow_down\n }\n />\n \n {item.spread_amount > 0 ? \"+\" : \"\"}\n {formatMoney(item.spread_amount)} 円\n \n \n {item.spread_percentage > 0 ? \"+\" : \"\"}\n {formatMoney(\n item.spread_percentage,\n MoneyFormatter.TWO_DECIMAL_FORMAT\n )}{\" \"}\n %\n \n \n \n \n \n );\n };\n\n return (\n \n \n {data.map((item, index) => (\n \n ))}\n \n \n );\n};\n\nconst mapStateToProps = (state) => ({\n isGettingAverageMarketPrice: state.home.isGettingAverageMarketPrice,\n isGotAverageMarketPrice: state.home.isGotAverageMarketPrice,\n averageMarketPrice: state.home.averageMarketPrice,\n});\nconst mapDispatchToProps = {\n getAverageMarketPrice,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Tab3);\n\nconst styles = StyleSheet.create({\n dash: {\n borderStyle: \"dashed\",\n borderBottomWidth: 1,\n borderBottomColor: Colors.SecondPrimary,\n },\n});\n","import React, { useState, useEffect } from \"react\";\nimport { StyleSheet, Dimensions, ScrollView } from \"react-native\";\nimport Block from \"components/common/Block\";\nimport TextView from \"components/common/TextView\";\nimport { Colors } from \"utils\";\nimport {\n BarChart,\n Bar,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n Legend,\n LineChart,\n Line,\n ResponsiveContainer,\n} from \"recharts\";\nimport { getMarketPriceData } from \"../../redux/actions/home\";\nimport { connect } from \"react-redux\";\nimport { TouchableOpacity } from \"react-native-web\";\nimport { usePrevious } from \"../../utils/hook\";\nimport { formatDateTime, DateTimeFormatter } from \"../../utils/DateUtility\";\nimport { formatMoney, MoneyFormatter } from \"../../utils/MoneyFormatter\";\n\nconst { width } = Dimensions.get(\"window\");\nconst BUTTON_WIDTH = (width - 48) / 10;\nconst Tab2 = (props) => {\n const [marketPriceChartData, setMarketPriceChartData] = useState([]);\n const [selectedDayButton, setSelectedDayButton] = useState(2);\n const [hideLineChart, setHideLineChart] = useState({\n pt: false,\n pd: false,\n rh: false,\n });\n const prevGettingMarketPriceData = usePrevious(\n props.isGettingMarketPriceData\n );\n\n const setHideLineChartValue = (key) => {\n setHideLineChart((prev) => ({\n ...prev,\n [key]: !prev[key],\n }));\n };\n\n useEffect(() => {\n props.getMarketPriceData({\n days_ago: 14,\n });\n }, []);\n\n useEffect(() => {\n if (prevGettingMarketPriceData && !props.isGettingMarketPriceData) {\n if (props.isGotMarketPriceData) {\n const data = [];\n const data1 = props.marketPriceData;\n data1.map((item) => {\n data.push({\n date: formatDateTime(item.date, DateTimeFormatter.MM_DD),\n PT: item.pt_jpy,\n PD: item.pd_jpy,\n RH: item.rh_jpy,\n });\n });\n\n setMarketPriceChartData(data);\n }\n }\n }, [props.isGettingMarketPriceData]);\n\n const getMarketPriceData = (index, days_ago) => {\n setSelectedDayButton(index);\n props.getMarketPriceData({\n days_ago: days_ago,\n });\n };\n\n const SimpleBarChart = () => {\n return (\n \n \n \n \n {\n return formatMoney(tick);\n }}\n />\n formatMoney(label)} />\n\n \n \n \n \n \n );\n };\n\n const Button = ({\n title,\n color,\n textColor = Colors.SecondPrimary,\n index,\n onPress,\n }) => (\n \n \n \n {title}\n \n \n \n );\n return (\n \n \n getMarketPriceData(0, 3)}\n />\n getMarketPriceData(1, 7)}\n />\n getMarketPriceData(2, 14)}\n />\n getMarketPriceData(3, 30)}\n />\n getMarketPriceData(4, 60)}\n />\n \n setHideLineChartValue(\"pt\")}\n />\n setHideLineChartValue(\"pd\")}\n />\n setHideLineChartValue(\"rh\")}\n />\n \n \n \n \n \n \n \n \n );\n};\n\nconst styles = StyleSheet.create({});\n\nconst mapStateToProps = (state) => ({\n marketPriceData: state.home.marketPriceData,\n isGettingMarketPriceData: state.home.isGettingMarketPriceData,\n isGotMarketPriceData: state.home.isGotMarketPriceData,\n});\nconst mapDispatchToProps = {\n getMarketPriceData,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Tab2);\n","import React from \"react\";\nimport { View, ActivityIndicator, StyleSheet } from \"react-native\";\n// import { Colors } from \"configs\";\n\nconst FullLoading = ({ wrapStyle, color = \"#F25F14\", size = \"small\" }) => (\n \n \n \n \n \n);\n\nconst styles = StyleSheet.create({\n wrap: {\n position: \"absolute\",\n backgroundColor: \"rgba(0, 0, 0, 0.1)\",\n alignItems: \"center\",\n justifyContent: \"center\",\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n },\n background: {\n backgroundColor: \"rgba(255, 255, 255, 0.8)\",\n borderRadius: 5,\n paddingHorizontal: 32,\n paddingVertical: 24,\n },\n});\n\nexport default FullLoading;\n","import React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { StyleSheet } from \"react-native\";\nimport { Colors } from \"utils\";\nimport { defaultIcons } from \"assets/icons\";\nimport Block from \"components/common/Block\";\nimport TextView from \"components/common/TextView\";\nimport Tab1 from \"./Tab1\";\nimport Tab3 from \"./Tab3\";\nimport Tab2 from \"./Tab2\";\nimport { usePrevious } from \"../../utils/hook\";\nimport { getMetalMarketPrice } from \"../../redux/actions/home\";\nimport { formatMoney, MoneyFormatter } from \"../../utils/MoneyFormatter\";\nimport {\n formatDateTime,\n DateTimeFormatter,\n formatDateTimeUTC,\n} from \"../../utils/DateUtility\";\nimport FullLoading from \"components/common/FullLoading\";\n\nconst data = [\n {\n title: \"PT\",\n title_jpy: \"プラチナ\",\n price_jpy: \"3,414\",\n price_usd: \"3,300\",\n unit_jpy: \"円/g\",\n unit_usd: \"ドル/oz\",\n spread_jpy: \"+211円\",\n spread_usd: \"+○○$\",\n arrow_jpy: defaultIcons.arrow_up,\n arrow_usd: defaultIcons.arrow_up,\n },\n {\n title: \"PD\",\n title_jpy: \"パラジウム\",\n price_jpy: \"3,620\",\n price_usd: \"3,540\",\n unit_jpy: \"円/g\",\n unit_usd: \"ドル/oz\",\n spread_jpy: \"+156円\",\n spread_usd: \"-○○$\",\n arrow_jpy: defaultIcons.arrow_up,\n arrow_usd: defaultIcons.arrow_down,\n },\n {\n title: \"RH\",\n title_jpy: \"ロジウム\",\n price_jpy: \"4,700\",\n price_usd: \"3,540\",\n unit_jpy: \"円/g\",\n unit_usd: \"ドル/oz\",\n spread_jpy: \"-82円\",\n spread_usd: \"+○○$\",\n arrow_jpy: defaultIcons.arrow_down,\n arrow_usd: defaultIcons.arrow_up,\n },\n];\nconst ContentTab = (props) => {\n const [loading, setLoading] = useState(false);\n const [metalMarketPrice, setMetalMarketPrice] = useState([]);\n const formatPrice = (value) => {\n return formatMoney(value, MoneyFormatter.ZERO_DECIMAL_FORMAT);\n };\n\n const prevGettingMetalMarketPrice = usePrevious(\n props.isGettingMetalMarketPrice\n );\n useEffect(() => {\n if (prevGettingMetalMarketPrice && !props.isGettingMetalMarketPrice) {\n if (props.isGotMetalMarketPrice) {\n const spread_pt_jpy =\n props.metalMarketPrice.latest_price.pt_jpy -\n props.metalMarketPrice.previous_price.pt_jpy;\n const spread_pt_usd =\n props.metalMarketPrice.latest_price.pt_usd -\n props.metalMarketPrice.previous_price.pt_usd;\n\n const spread_pd_jpy =\n props.metalMarketPrice.latest_price.pd_jpy -\n props.metalMarketPrice.previous_price.pd_jpy;\n const spread_pd_usd =\n props.metalMarketPrice.latest_price.pd_usd -\n props.metalMarketPrice.previous_price.pd_usd;\n\n const spread_rh_jpy =\n props.metalMarketPrice.latest_price.rh_jpy -\n props.metalMarketPrice.previous_price.rh_jpy;\n const spread_rh_usd =\n props.metalMarketPrice.latest_price.rh_usd -\n props.metalMarketPrice.previous_price.rh_usd;\n\n const data = [\n {\n title: \"PT\",\n title_jpy: \"プラチナ\",\n price_jpy: formatPrice(props.metalMarketPrice.latest_price.pt_jpy),\n price_usd: formatPrice(props.metalMarketPrice.latest_price.pt_usd),\n unit_jpy: \"円/g\",\n unit_usd: \"ドル/oz\",\n spread_jpy:\n (spread_pt_jpy > 0\n ? \"+\" + formatPrice(spread_pt_jpy)\n : formatPrice(spread_pt_jpy)) + \"円\",\n spread_usd:\n (spread_pt_usd > 0\n ? \"+\" + formatPrice(spread_pt_usd)\n : formatPrice(spread_pt_usd)) + \"$\",\n arrow_jpy:\n spread_pt_jpy > 0\n ? defaultIcons.arrow_up\n : spread_pt_jpy < 0\n ? defaultIcons.arrow_down\n : null,\n arrow_usd:\n spread_pt_usd > 0\n ? defaultIcons.arrow_up\n : spread_pt_usd < 0\n ? defaultIcons.arrow_down\n : null,\n },\n {\n title: \"PD\",\n title_jpy: \"パラジウム\",\n price_jpy: formatPrice(props.metalMarketPrice.latest_price.pd_jpy),\n price_usd: formatPrice(props.metalMarketPrice.latest_price.pd_usd),\n unit_jpy: \"円/g\",\n unit_usd: \"ドル/oz\",\n spread_jpy:\n (spread_pd_jpy > 0\n ? \"+\" + formatPrice(spread_pd_jpy)\n : formatPrice(spread_pd_jpy)) + \"円\",\n spread_usd:\n (spread_pd_usd > 0\n ? \"+\" + formatPrice(spread_pd_usd)\n : formatPrice(spread_pd_usd)) + \"$\",\n arrow_jpy:\n spread_pd_jpy > 0\n ? defaultIcons.arrow_up\n : spread_pd_jpy < 0\n ? defaultIcons.arrow_down\n : null,\n arrow_usd:\n spread_pd_usd > 0\n ? defaultIcons.arrow_up\n : spread_pd_usd < 0\n ? defaultIcons.arrow_down\n : null,\n },\n {\n title: \"RH\",\n title_jpy: \"ロジウム\",\n price_jpy: formatPrice(props.metalMarketPrice.latest_price.rh_jpy),\n price_usd: formatPrice(props.metalMarketPrice.latest_price.rh_usd),\n unit_jpy: \"円/g\",\n unit_usd: \"ドル/oz\",\n spread_jpy:\n (spread_rh_jpy > 0\n ? \"+\" + formatPrice(spread_rh_jpy)\n : formatPrice(spread_rh_jpy)) + \"円\",\n spread_usd:\n (spread_rh_usd > 0\n ? \"+\" + formatPrice(spread_rh_usd)\n : formatPrice(spread_rh_usd)) + \"$\",\n arrow_jpy:\n spread_rh_jpy > 0\n ? defaultIcons.arrow_up\n : spread_rh_jpy < 0\n ? defaultIcons.arrow_down\n : null,\n arrow_usd:\n spread_rh_usd > 0\n ? defaultIcons.arrow_up\n : spread_rh_usd < 0\n ? defaultIcons.arrow_down\n : null,\n },\n ];\n\n setMetalMarketPrice(data);\n } else {\n }\n setLoading(false);\n }\n }, [props.isGettingMetalMarketPrice]);\n\n useEffect(() => {\n props.getMetalMarketPrice();\n setLoading(true);\n }, []);\n\n return (\n \n {props.tabIndex !== 1 && (\n \n \n \n {props.tabIndex === 0 ? \"前営業日との比較\" : \"比 較\"}\n \n \n {props.tabIndex === 0\n ? formatDateTimeUTC(\n props.metalMarketPrice?.previous_price?.date,\n DateTimeFormatter.MM_DD_JP\n )\n : \"\"}\n \n \n \n )}\n {props.tabIndex === 0 && }\n {props.tabIndex === 1 && }\n {props.tabIndex === 2 && }\n {loading && }\n \n );\n};\n\nconst mapStateToProps = (state) => ({\n isGettingMetalMarketPrice: state.home.isGettingMetalMarketPrice,\n isGotMetalMarketPrice: state.home.isGotMetalMarketPrice,\n metalMarketPrice: state.home.metalMarketPrice,\n\n isGettingAverageMarketPrice: state.home.isGettingAverageMarketPrice,\n isGotAverageMarketPrice: state.home.isGotAverageMarketPrice,\n averageMarketPrice: state.home.averageMarketPrice,\n});\nconst mapDispatchToProps = {\n getMetalMarketPrice,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ContentTab);\n\nconst styles = StyleSheet.create({\n dash: {\n borderStyle: \"dashed\",\n borderBottomWidth: 1,\n borderBottomColor: Colors.SecondPrimary,\n },\n view02: {\n backgroundColor: Colors.PrimaryLight,\n flex: 1,\n paddingVertical: 13,\n alignItems: \"flex-end\",\n paddingRight: 10,\n marginLeft: 15,\n marginRight: 5,\n },\n txt02: {\n fontSize: 18,\n fontWeight: \"500\",\n color: Colors.Primary,\n },\n txt03: {\n fontSize: 12,\n fontWeight: \"500\",\n color: Colors.Primary,\n },\n imgArrow: { height: 18, width: 18 },\n imgArrowDown: { height: 14, width: 14 },\n txt04: {\n fontSize: 8,\n color: Colors.SecondPrimary,\n marginTop: 2,\n marginLeft: 5,\n },\n containerView: {\n justifyContent: \"space-around\",\n },\n});\n","import React, { useState, useEffect } from \"react\";\nimport {\n View,\n Text,\n StyleSheet,\n TextInput,\n TouchableOpacity,\n ScrollView,\n} from \"react-native\";\nimport { Colors } from \"utils\";\n\nconst InvoiceConfirm = ({ invoice }) => {\n return (\n \n \n \n 保存中のリストがあります。\n \n この取引を続けますか?\n \n \n \n {invoice?.customer_info?.name}\n \n \n {invoice?.invoice_details?.map((detail, index) => {\n return (\n \n \n \n );\n })}\n \n \n );\n};\n\nconst InvoiceDetail = ({ invoice_detail }) => {\n return (\n \n {}} style={styles.titleWrap}>\n \n 品 名\n \n \n \n {invoice_detail?.name}【{invoice_detail?.product_info?.code}】\n \n \n \n \n \n \n 数 量\n \n \n {invoice_detail?.amount}\n \n \n \n \n 仕入単価\n \n \n {invoice_detail?.unit_price}\n \n \n 円\n \n \n \n \n 金 額\n \n \n {invoice_detail?.total_price}\n \n \n 円\n \n \n \n \n );\n};\n\nconst styles = StyleSheet.create({\n wrap: {\n borderColor: Colors.PrimaryLight2,\n borderWidth: 1,\n borderRadius: 5,\n marginBottom: 5,\n },\n titleWrap: {\n flexDirection: \"row\",\n alignItems: \"center\",\n padding: 10,\n borderBottomColor: Colors.PrimaryLight2,\n borderBottomWidth: 1,\n paddingVertical: 5,\n },\n fieldName: {\n fontSize: 15,\n color: Colors.Primary,\n fontWeight: \"bold\",\n },\n amount: {\n fontSize: 15,\n },\n});\n\nexport default InvoiceConfirm;\n","import React from \"react\";\nimport { StyleSheet, Text, TouchableOpacity } from \"react-native\";\nimport { Colors } from \"utils\";\nimport Block from \"components/common/Block\";\n\nconst Footer = ({ style, onPress1, onPress2 }) => {\n return (\n \n \n 仕入査定\n \n \n 見積作成\n \n \n );\n};\n\nexport default Footer;\n\nconst styles = StyleSheet.create({\n purchase: {\n fontSize: \"20pt\",\n color: Colors.White,\n },\n text: {\n fontSize: \"20pt\",\n color: Colors.White,\n },\n btn2: {\n width: \"100%\",\n paddingVertical: \"7pt\",\n backgroundColor: Colors.SecondPrimary,\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRadius: \"5pt\",\n marginTop: \"5pt\",\n },\n});\n","import React, { useState, useEffect } from \"react\";\nimport {\n View,\n Text,\n StyleSheet,\n TextInput,\n TouchableOpacity,\n ScrollView,\n Image,\n} from \"react-native\";\nimport { Colors, isAmountGreaterThanZero } from \"utils\";\nimport { commonIcons } from \"assets/icons\";\nimport { formatMoney, MoneyFormatter } from \"../../utils/MoneyFormatter\";\n\nconst EstimateConfirm = ({\n estimates,\n selectedEstimateIndex,\n onSelectEstimate,\n}) => {\n const [selectedIndex, setSelectedIndex] = useState(selectedEstimateIndex);\n const onSelectEstimateHandler = (index) => {\n setSelectedIndex(index);\n onSelectEstimate(index);\n };\n return (\n \n \n \n 保存中のリストがあります。\n \n この見積を続けますか?\n \n\n {estimates?.map((estimate, index) => {\n return (\n \n \n onSelectEstimateHandler(index)}\n >\n \n \n \n 取引先名:{estimate?.customer_info?.name}\n \n \n \n {/* {estimate?.estimate_details !== undefined &&\n estimate?.estimate_details.length > 0 && (\n \n \n \n )} */}\n \n {estimate.estimate_details?.map((estimate_detail, index) => {\n return (\n \n \n \n );\n })}\n \n\n \n \n );\n })}\n \n );\n};\n\nconst EstimateDetail = ({ estimate_detail }) => {\n return (\n \n {}} style={styles.titleWrap}>\n \n 品 名:\n \n \n \n {estimate_detail?.name}【{estimate_detail?.product_info?.code}】\n \n \n \n \n 仕入単価: \n {renderUnitPrice(estimate_detail)}\n \n \n );\n};\n\nconst renderUnitPrice = (estimateDetail) => {\n if (\n isAmountGreaterThanZero(estimateDetail?.unit_price) &&\n isAmountGreaterThanZero(estimateDetail?.unit_price2)\n ) {\n return (\n formatMoney(estimateDetail.unit_price2) +\n \" ~ \" +\n formatMoney(estimateDetail.unit_price) +\n \"円\"\n );\n } else if (isAmountGreaterThanZero(estimateDetail?.unit_price)) {\n return formatMoney(estimateDetail.unit_price) + \"円\";\n } else if (isAmountGreaterThanZero(estimateDetail?.unit_price2)) {\n return formatMoney(estimateDetail.unit_price2) + \"円\";\n } else {\n return formatMoney(estimateDetail.unit_price) + \"円\";\n }\n};\n\nconst styles = StyleSheet.create({\n wrap: {\n borderColor: Colors.PrimaryLight2,\n borderWidth: 1,\n borderRadius: 5,\n marginBottom: 5,\n },\n titleWrap: {\n flexDirection: \"row\",\n alignItems: \"center\",\n // padding: 10,\n // borderBottomColor: Colors.PrimaryLight2,\n // borderBottomWidth: 1,\n // paddingVertical: 5,\n },\n fieldName: {\n fontSize: 15,\n color: Colors.Primary,\n },\n radioChecked: {\n borderColor: Colors.Primary,\n borderWidth: 1,\n borderRadius: 50,\n width: 5,\n height: 5,\n backgroundColor: Colors.Primary,\n borderStyle: \"solid\",\n },\n line: {\n width: \"100%\",\n height: 1,\n backgroundColor: Colors.Primary,\n },\n});\n\nexport default EstimateConfirm;\n","import React, { useState, useEffect } from \"react\";\n\nimport { Title, Block, WrapperBlock } from \"components\";\nimport {\n TabView,\n ContentTab,\n Footer,\n InvoiceConfirm,\n EstimateConfirm,\n} from \"components/home\";\nimport { useNavigate } from \"utils\";\nimport { Alert } from \"../../App\";\nimport { reset_cart, checkCart } from \"../../redux/actions/home\";\n\nimport { connect } from \"react-redux\";\nimport { usePrevious } from \"../../utils/hook\";\nimport { setAxiosDefaultHeaders } from \"../../configs/axiosDebugger\";\nimport { createNewInvoice } from \"../../redux/actions/home\";\nimport { getInvoice } from \"../../redux/actions/invoice\";\nimport { createNewEstimate, getEstimate } from \"../../redux/actions/estimate\";\nimport { useHistory } from \"react-router-dom\";\nimport {\n View,\n Text,\n StyleSheet,\n TextInput,\n TouchableOpacity,\n ScrollView,\n} from \"react-native\";\nimport { Colors } from \"utils\";\n\nconst InvoiceEstimateButton = ({\n onPress,\n onInvoicePress,\n onEstimatePress,\n ...props\n}) => {\n const navigate = useNavigate();\n const [homeGoToCartScreen, setHomeGoToCartScreen] = React.useState(false);\n\n const [selectedEstimateIndex, setSelectedEstimateIndex] = useState(0);\n const onSelectEstimate = (index) => {\n setSelectedEstimateIndex(index);\n };\n\n const showInvoiceConfirmModal = () => {\n Alert.alert(\"\", , [\n {\n label: \"はい\",\n primary: true,\n onPress: () => {\n // go direct to [003-003-1 / 仕入リスト], but must go though 003-001,003-002\n setHomeGoToCartScreen(true);\n props.getInvoice({\n invoice_id: props.cart?.invoice?.id,\n });\n Alert.hideModal();\n },\n },\n {\n label: \"いいえ(破棄)\",\n primary: false,\n onPress: () => {\n // clear the cart, and go to [003-001-1 / 仕入査定・取引先入力]\n props.reset_cart({ type: \"1\" });\n },\n },\n ]);\n };\n\n const showEstimateConfirmModal = () => {\n // const [state, setState] = React.useState(0);\n let selectedIndex = 0;\n const onSelectEstimateHandler = (index) => {\n onSelectEstimate(index);\n selectedIndex = index;\n };\n Alert.alert(\n \"\",\n onSelectEstimateHandler(index)}\n />,\n [\n {\n label: \"はい\",\n primary: false,\n onPress: () => {\n // onEstimateModalOkClickHandler();\n //Go directly to 003-009, but must go though 003-007, 003-008\n props.getEstimate({\n estimate_id: props.cart?.estimate[selectedIndex].id,\n });\n Alert.hideModal();\n },\n },\n {\n label: \"いいえ\",\n primary: true,\n onPress: () => {\n // clear the cart, and go to [003-007-1 /\n //props.reset_cart({ type: \"2\" });\n navigate(\"quotation-supplier\", {});\n Alert.hideModal();\n },\n },\n ]\n );\n };\n\n const prevGettingInvoice = usePrevious(props.isGettingInvoice);\n useEffect(() => {\n if (prevGettingInvoice && !props.isGettingInvoice) {\n if (props.isGotInvoice && homeGoToCartScreen) {\n // go direct to [003-003-1 / 仕入リスト], but must go though 003-001,003-002\n // navigate(\"purchase-supplier\", {}); //003-001\n navigate(\"buy-review\", {\n // 003-002\n new_invoice: props.invoice,\n });\n\n navigate(\"cart\", {\n invoice_id: props.cart?.invoice?.id, // we send invoice_id instead of send \"new_invoice\" object, because many flow go to this screen \"cart\"\n });\n }\n }\n }, [props.isGettingInvoice]);\n\n const prevGettingEstimate = usePrevious(props.isGettingEstimate);\n useEffect(() => {\n if (prevGettingEstimate && !props.isGettingEstimate) {\n if (props.isGotEstimate) {\n //Go directly to 003-009, but must go though 003-007, 003-008\n navigate(\"quotation-supplier\", {});\n navigate(\"estimate\", {\n //003-008\n new_estimate: props.estimate,\n });\n navigate(\"quotation-list\", {\n estimate_id: props.estimate.id, // we send estimate_id instead of send \"new_estimate\" object, because many flow go to this screen \"quotation-list\"\n });\n }\n }\n }, [props.isGettingEstimate]);\n\n const prevResettingCart = usePrevious(props.isResettingCart);\n useEffect(() => {\n if (prevResettingCart && !props.isResettingCart) {\n if (props.isResetCartFinish) {\n //go to [003-001-1 / 仕入査定・取引先入力]\n props.checkCart();\n Alert.hideModal();\n if (props.newCart.type == 1) {\n // clear the cart, and go to [003-001-1 / 仕入査定・取引先入力]\n navigate(\"purchase-supplier\", {});\n } else {\n // clear the cart, Go to [003-007-1 / 見積・取引先入力]\n navigate(\"quotation-supplier\", {});\n }\n }\n }\n }, [props.isResettingCart]);\n\n const checkCart = (type) => {\n if (type === \"invoice\") {\n if (props.cart.is_invoice_empty) {\n // clear the cart, and go to [003-001-1 / 仕入査定・取引先入力]\n props.reset_cart({ type: \"1\" });\n } else {\n showInvoiceConfirmModal();\n }\n } else if (type === \"estimate\") {\n if (props.cart.is_estimate_empty) {\n // clear the cart, and go to [003-007-1 /\n props.reset_cart({ type: \"2\" });\n } else {\n showEstimateConfirmModal();\n }\n }\n };\n\n return (\n \n checkCart(\"invoice\")} style={styles.btn}>\n 仕入査定\n \n checkCart(\"estimate\")}\n style={[styles.btn, { marginTop: 5 }]}\n >\n 見積作成\n \n \n );\n};\n\nconst styles = StyleSheet.create({\n btn: {\n width: \"100%\",\n paddingVertical: 20,\n backgroundColor: Colors.SecondPrimary,\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRadius: 5,\n },\n purchase: {\n fontSize: 20,\n color: Colors.White,\n },\n});\n\nconst mapStateToProps = (state) => ({\n isGettingMetalMarketPrice: state.home.isGettingMetalMarketPrice,\n isGotMetalMarketPrice: state.home.isGotMetalMarketPrice,\n metalMarketPrice: state.home.metalMarketPrice,\n\n isResettingCart: state.home.isResettingCart,\n isResetCartFinish: state.home.isResetCartFinish,\n newCart: state.home.newCart,\n\n cart: state.home.cart,\n\n isCreatedNewInvoice: state.home.isCreatedNewInvoice,\n isCreatingNewInvoice: state.home.isCreatingNewInvoice,\n newInvoice: state.home.newInvoice,\n\n isCreatedNewEstimate: state.estimate.isCreatedNewEstimate,\n isCreatingNewEstimate: state.estimate.isCreatingNewEstimate,\n newEstimate: state.estimate.newEstimate,\n\n isGettingEstimate: state.estimate.isGettingEstimate,\n isGotEstimate: state.estimate.isGotEstimate,\n estimate: state.estimate.estimate,\n\n isGettingInvoice: state.invoice.isGettingInvoice,\n isGotInvoice: state.invoice.isGotInvoice,\n invoice: state.invoice.invoice,\n});\nconst mapDispatchToProps = {\n reset_cart,\n createNewInvoice,\n createNewEstimate,\n checkCart,\n getEstimate,\n getInvoice,\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(InvoiceEstimateButton);\n","import React from \"react\";\nimport { View, Text, TouchableOpacity } from \"react-native\";\nimport { Colors } from \"utils\";\nimport { useHistory } from \"react-router-dom\";\n\nconst Back = ({ label, onPress }) => {\n const history = useHistory();\n return (\n \n // window.history.back()\n {\n history.goBack();\n if (onPress !== undefined) onPress();\n }\n }\n style={{ flexDirection: \"row\" }}\n >\n \n \n {label}\n \n \n );\n};\n\nconst styles = {\n leftArrow: {\n width: 0,\n height: 0,\n borderTopWidth: 12,\n borderBottomWidth: 12,\n borderRightWidth: 12,\n borderTopColor: \"transparent\",\n borderBottomColor: \"transparent\",\n borderRightColor: Colors.SecondPrimary,\n },\n};\n\nexport default Back;\n","import Button from \"components/common/Button\";\nimport React from \"react\";\nimport { StyleSheet, View, Text } from \"react-native\";\nimport { useHistory } from \"react-router-dom\";\nimport { Colors } from \"utils\";\nimport Back from \"./Back\";\n\nconst Title = ({ backTitle, title, onBack }) => {\n return (\n \n {backTitle && }\n \n {title}\n \n \n );\n};\n\nexport default Title;\n\nconst styles = StyleSheet.create({\n titleWrap: {\n flexDirection: \"row\",\n alignItems: \"center\",\n borderBottomWidth: 2,\n borderBottomColor: Colors.WhiteDark03,\n paddingVertical: \"15pt\",\n },\n title: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n fontSize: \"18pt\",\n },\n});\n","import React, { useState, useEffect } from \"react\";\n\nimport { Block, WrapperBlock } from \"components\";\nimport {\n TabView,\n ContentTab,\n Footer,\n InvoiceConfirm,\n EstimateConfirm,\n} from \"components/home\";\nimport { useNavigate } from \"utils\";\nimport { Alert } from \"../../App\";\nimport { reset_cart, checkCart } from \"../../redux/actions/home\";\n\nimport { connect } from \"react-redux\";\nimport { usePrevious } from \"../../utils/hook\";\nimport { setAxiosDefaultHeaders } from \"../../configs/axiosDebugger\";\nimport { createNewInvoice } from \"../../redux/actions/home\";\nimport { getInvoice } from \"../../redux/actions/invoice\";\nimport { createNewEstimate, getEstimate } from \"../../redux/actions/estimate\";\nimport { useHistory } from \"react-router-dom\";\nimport {\n View,\n Text,\n StyleSheet,\n TextInput,\n TouchableOpacity,\n ScrollView,\n} from \"react-native\";\nimport { Colors } from \"utils\";\nimport InvoiceEstimateButton from \"components/common/InvoiceEstimateButton\";\nimport Title from \"components/common/Title\";\n\nconst Home = (props) => {\n const history = useHistory();\n const [tabIndex, setTabIndex] = useState(0);\n\n const onPressTab = (value) => {\n setTabIndex(value);\n };\n const navigate = useNavigate();\n\n useEffect(() => {\n props.checkCart();\n }, []);\n\n return (\n \n \n \n <TabView {...{ tabIndex, onPressTab }} />\n <ScrollView>\n <ContentTab {...{ tabIndex }} />\n </ScrollView>\n </Block>\n <Block marginBottom={\"10pt\"}>\n <InvoiceEstimateButton />\n </Block>\n </WrapperBlock>\n );\n};\n\n// export default Home;\n\nconst mapStateToProps = (state) => ({\n isGettingMetalMarketPrice: state.home.isGettingMetalMarketPrice,\n isGotMetalMarketPrice: state.home.isGotMetalMarketPrice,\n metalMarketPrice: state.home.metalMarketPrice,\n\n isResettingCart: state.home.isResettingCart,\n isResetCartFinish: state.home.isResetCartFinish,\n newCart: state.home.newCart,\n\n cart: state.home.cart,\n\n isCreatedNewInvoice: state.home.isCreatedNewInvoice,\n isCreatingNewInvoice: state.home.isCreatingNewInvoice,\n newInvoice: state.home.newInvoice,\n\n isCreatedNewEstimate: state.estimate.isCreatedNewEstimate,\n isCreatingNewEstimate: state.estimate.isCreatingNewEstimate,\n newEstimate: state.estimate.newEstimate,\n\n isGettingEstimate: state.estimate.isGettingEstimate,\n isGotEstimate: state.estimate.isGotEstimate,\n estimate: state.estimate.estimate,\n\n isGettingInvoice: state.invoice.isGettingInvoice,\n isGotInvoice: state.invoice.isGotInvoice,\n invoice: state.invoice.invoice,\n});\nconst mapDispatchToProps = {\n reset_cart,\n createNewInvoice,\n createNewEstimate,\n checkCart,\n getEstimate,\n getInvoice,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Home);\n","import React from \"react\";\nimport { StyleSheet, View, Text } from \"react-native\";\nimport { Colors } from \"utils\";\nimport Block from \"components/common/Block\";\nimport Button from \"components/common/Button\";\nimport TextView from \"components/common/TextView\";\n\nconst MAX_TEXT_LENGTH = 50;\n\nconst NoticeStatus = ({\n title = \"\",\n content = \"\",\n onPress = () => true,\n patterns = 0,\n}) => {\n const noneContent = content === \"通達事項はありません。\";\n return (\n <Button activeOpacity={0.5} {...{ onPress }}>\n <Block style={styles.wrap}>\n {patterns === 0 ? (\n <TextView bold size={13} color={Colors.SecondPrimary}>\n {title}\n </TextView>\n ) : (\n <Button\n paddingHorizontal={15}\n paddingVertical={5}\n color={patterns === 1 ? Colors.Red : Colors.WhiteDark03}\n >\n <TextView bold size={13} color={Colors.White}>\n {title}\n </TextView>\n </Button>\n )}\n <Block block marginLeft={20}>\n <TextView\n bold\n size={12}\n color={noneContent ? Colors.PrimaryLight : Colors.SecondPrimary}\n >\n {content.length > MAX_TEXT_LENGTH\n ? content.substring(0, MAX_TEXT_LENGTH - 2) + \"...\"\n : content}\n </TextView>\n </Block>\n {/* <View>\n <Text ellipsizeMode=\"tail\" numberOfLines={1} style={{ width: 200 }}>\n {content}\n </Text>\n </View> */}\n </Block>\n </Button>\n );\n};\n\nexport default NoticeStatus;\n\nconst styles = StyleSheet.create({\n wrap: {\n flexDirection: \"row\",\n alignItems: \"center\",\n borderBottomWidth: 1,\n borderStyle: \"dashed\",\n borderBottomColor: Colors.Primary,\n paddingVertical: 10,\n },\n\n hiddenContent: {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n },\n});\n","import React from \"react\";\nimport { StyleSheet, Text, TouchableOpacity } from \"react-native\";\nimport { Colors } from \"utils\";\nimport Block from \"components/common/Block\";\n\nconst Footer = ({ onPress }) => {\n return (\n <Block width={\"100%\"} middle marginTop={10}>\n <TouchableOpacity\n onPress={() => onPress(\"/purchase-supplier\")}\n style={styles.btn}\n >\n <Text style={styles.purchase}>仕入査定</Text>\n </TouchableOpacity>\n <TouchableOpacity\n onPress={() => onPress(\"/quotation-supplier\")}\n style={[styles.btn, { marginTop: 5 }]}\n >\n <Text style={styles.purchase}>見積作成</Text>\n </TouchableOpacity>\n </Block>\n );\n};\n\nexport default Footer;\n\nconst styles = StyleSheet.create({\n btn: {\n width: \"100%\",\n paddingVertical: 20,\n backgroundColor: Colors.SecondPrimary,\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRadius: 5,\n },\n purchase: {\n fontSize: 20,\n color: Colors.White,\n },\n});\n","import React from \"react\";\nimport { ScrollView, Dimensions, TouchableOpacity } from \"react-native\";\n// import { Link } from \"react-router-dom\";\nimport { Colors } from \"utils\";\nimport Block from \"components/common/Block\";\nimport TextView from \"components/common/TextView\";\nimport {\n formatDateTime,\n DateTimeFormatter,\n getDayOfWeek,\n NOW_DATE,\n} from \"../../utils/DateUtility\";\nimport { useHistory, useLocation } from \"react-router-dom\";\n// import { TouchableOpacity } from \"react-native-web\";\n\nconst { height } = Dimensions.get(\"window\");\nconst NoticeToday = ({\n showCreate,\n routePrefix = \"\",\n office = false,\n informationData,\n onShowAllPress,\n onCreatePress,\n}) => {\n const [isAdmin, setIsAdmin] = React.useState(false);\n\n const location = useLocation();\n React.useEffect(() => {\n if (/^\\/admin/.test(location.pathname)) {\n setIsAdmin(true);\n } else {\n setIsAdmin(false);\n }\n }, [location]);\n\n return (\n <Block marginTop={10}>\n <Block direction=\"row\" justifyContent=\"space-between\">\n <TextView bold size={13} color={Colors.SecondPrimary}>\n {office ? \"事務からのお知らせ\" : \"本日の通達事項\"}\n </TextView>\n <TextView bold size={13} color={Colors.SecondPrimary}>\n {formatDateTime(informationData?.date)}(\n {getDayOfWeek(new Date(informationData?.date))})\n </TextView>\n </Block>\n <Block\n borderWidth={1}\n borderColor={Colors.SecondPrimary}\n marginTop={10}\n padding={10}\n height={height * 0.15}\n >\n <ScrollView>\n <TextView\n regular\n size={13}\n color={Colors.Gray}\n style={{ lineHeight: 20 }}\n >\n {informationData?.message}\n </TextView>\n </ScrollView>\n </Block>\n <Block direction=\"row\" justifyContent=\"flex-end\">\n <TouchableOpacity onPress={onShowAllPress}>\n <Block\n paddingVertical={2}\n paddingHorizontal={8}\n color={Colors.SecondPrimary}\n marginTop={5}\n >\n <TextView bold size={\"10pt\"} color={Colors.White}>\n {office ? \"過去のお知らせ\" : \"過去の通達事項\"}\n </TextView>\n </Block>\n </TouchableOpacity>\n {isAdmin && !office && (\n <TouchableOpacity onPress={onCreatePress} style={{ marginStart: 10 }}>\n <Block\n paddingVertical={2}\n paddingHorizontal={8}\n color={Colors.SecondPrimary}\n marginTop={5}\n >\n <TextView bold size={10} color={Colors.White}>\n 新規作成\n </TextView>\n </Block>\n </TouchableOpacity>\n )}\n\n {/* {showCreate && (\n <Link\n style={{ marginLeft: 10 }}\n to={{\n pathname: routePrefix + \"/notice/create\",\n state: { office },\n }}\n >\n <Block\n paddingVertical={2}\n paddingHorizontal={8}\n color={Colors.SecondPrimary}\n marginTop={5}\n >\n <TextView bold size={10} color={Colors.White}>\n 新規作成\n </TextView>\n </Block>\n </Link>\n )} */}\n </Block>\n </Block>\n );\n};\n\nexport default NoticeToday;\n","import { createRequestTypes } from \"./utils\";\n\nexport const GET_SETTING = createRequestTypes(\"GET_SETTING\");\nexport const getSetting = (params) => ({ type: GET_SETTING.REQUEST, params });\n\nexport const UPDATE_SETTING = createRequestTypes(\"UPDATE_SETTING\");\nexport const updateSetting = (params) => ({\n type: UPDATE_SETTING.REQUEST,\n params,\n});\n\nexport const GET_LATEST_MARKET_PRICE = createRequestTypes(\n \"GET_LATEST_MARKET_PRICE\"\n);\nexport const getLatestMarketPrice = (params) => ({\n type: GET_LATEST_MARKET_PRICE.REQUEST,\n params,\n});\n\nexport const GET_TAX_RATE = createRequestTypes(\"GET_TAX_RATE\");\nexport const getTaxRate = (params) => ({\n type: GET_TAX_RATE.REQUEST,\n params,\n});\n\nexport const GET_INFORMATION = createRequestTypes(\"GET_INFORMATION\");\nexport const getInformation = (params) => ({\n type: GET_INFORMATION.REQUEST,\n params,\n});\n\nexport const GET_LATEST_UPDATE_TRANSACTION = createRequestTypes(\n \"GET_LATEST_UPDATE_TRANSACTION\"\n);\nexport const getLatestUpdateTransaction = (params) => ({\n type: GET_LATEST_UPDATE_TRANSACTION.REQUEST,\n params,\n});\n\nexport const INSERT_INFORMATION = createRequestTypes(\"INSERT_INFORMATION\");\nexport const insertInformation = (params) => ({\n type: INSERT_INFORMATION.REQUEST,\n params,\n});\n\nexport const GET_MAKERS = createRequestTypes(\"GET_MAKERS\");\nexport const getMakers = (params) => ({\n type: GET_MAKERS.REQUEST,\n params,\n});\n","export const INVOICE_STATUS = {\n PURCHASING: 0,\n PURCHASE_COMPLETED: 1,\n TRANSFER_REQUESTED: 2,\n PROCESSED: 3,\n};\n\nexport const ESTIMATE_STATUS = {\n ESTIMATING: 0,\n ESTIMATE_COMPLETED: 1,\n SEND_REQUESTED: 2,\n PROCESSED: 3,\n};\n\nexport const ESTIMATE_PIC_ATTACH = {\n NO_ATTACH: 0,\n ATTACHED: 1,\n};\n\nexport const ESTIMATE_SEND_TYPE = {\n FAX: 0,\n EMAIL: 1,\n};\n\nexport const QUOTATION_FLOW = {\n QUOTATION_REVIEW_NO_IMAGE: 0,\n QUOTATION_REVIEW_WITH_IMAGE: 1,\n SUBMIT_REQUEST: 2,\n FINISH_ESTIMATE: 3,\n};\n\nexport const TRANSFER_TYPE = {\n ADVANCE_TRANSFER: 0,\n TRANSFER_WHEN_PURCHASE: 1,\n};\n\nexport const ACCOUNT_LOGIN_AUTH = {\n MOBILE: 0,\n MOBILE_MANAGER: 1,\n};\n\nexport const CART_UPDATE_INVOICE_BEHAVIOR = {\n PREVIEW_INVOICE: 1,\n SUBMIT_INVOICE: 2,\n UPDATE_INVOICE_ON_BLUR: 3,\n};\n\nexport const ACCOUNT_STATUS_FILTER_DATA = [\n {\n name: \"未処理のステータス\",\n type: 0,\n status_name: \"未処理\",\n },\n {\n name: \"すべてのステータス\",\n type: 1,\n status_name: \"\",\n },\n {\n name: \"処理済のステータス\",\n type: 2,\n status_name: \"処理済\",\n },\n {\n name: \"確認済のステータス\",\n type: 3,\n status_name: \"確認済\",\n },\n];\n\nexport const ACCOUNT_PREVIOUS_VOUCHER_TYPE = {\n INVOICE: 0,\n ESTIMATE: 1,\n};\n\nexport const INFORMATION_TYPE = {\n TODAY: 0,\n OFFICE: 1,\n};\n\nexport const STATUS_MANAGEMENT_RESULT_TYPE = {\n INVOICE: 0,\n ESTIMATE: 1,\n TRANSFER: 2,\n};\n","import React, { useState, useEffect } from \"react\";\nimport { ScrollView } from \"react-native\";\nimport { WrapperBlock, Block, TextView } from \"components\";\nimport { NoticeStatus, NoticeToday } from \"components/notice\";\nimport { Footer } from \"components/notice\";\nimport { PAST_NOTICE } from \"containers/past-notice/fakePastNotice\";\nimport { Colors, useNavigate } from \"utils\";\nimport { connect } from \"react-redux\";\nimport {\n getInformation,\n getLatestUpdateTransaction,\n} from \"../../redux/actions/general\";\nimport { INFORMATION_TYPE } from \"../../utils/Constant\";\nimport { formatDateTime, DateTimeFormatter } from \"../../utils/DateUtility\";\nimport InvoiceEstimateButton from \"components/common/InvoiceEstimateButton\";\nimport Title from \"components/common/Title\";\n\n/**\n * 004-001-01 / お知らせ\n * @param {*} props\n */\nconst Notice = (props) => {\n const navigate = useNavigate();\n\n const onPressNavigate = (pathname) => navigate(pathname, {});\n const onPressStatus = (key) => navigate(\"account\");\n\n useEffect(() => {\n props.getInformation({\n type: INFORMATION_TYPE.TODAY,\n });\n props.getInformation({\n type: INFORMATION_TYPE.OFFICE,\n });\n props.getLatestUpdateTransaction();\n }, []);\n\n return (\n <Block paddingBottom=\"10pt\" paddingHorizontal=\"24pt\">\n <Title title={\"お知らせ\"} />\n <Block block>\n <Block flex={6}>\n <NoticeToday\n showCreate\n informationData={props.todayInformationList[0]}\n onShowAllPress={() =>\n navigate(\"/past-notice\", {\n information_type: INFORMATION_TYPE.TODAY,\n })\n }\n onCreatePress={() => {\n navigate(\"/notice/create\", {});\n }}\n />\n <NoticeToday\n office\n informationData={props.officeInformationList[0]}\n onShowAllPress={() =>\n navigate(\"/past-notice\", {\n information_type: INFORMATION_TYPE.OFFICE,\n })\n }\n />\n </Block>\n <Block flex={4}>\n <Block flex={2}>\n <TextView bold size={13} color={Colors.SecondPrimary}>\n ステータス通知\n </TextView>\n <Block\n block\n borderWidth=\"1pt\"\n borderColor={Colors.SecondPrimary}\n borderRightWidth=\"0pt\"\n borderLeftWidth=\"0pt\"\n paddingBottom=\"10pt\"\n height=\"100pt\"\n >\n <ScrollView>\n {props.latestUpdatedTransactionList?.map((item, key) => (\n <NoticeStatus\n onPress={() => onPressStatus(key)}\n key={`${key}`}\n title={\"\"}\n content={item?.message}\n />\n ))}\n </ScrollView>\n </Block>\n </Block>\n <Block flex={3}>\n {/* <Footer onPress={onPressNavigate} /> */}\n <InvoiceEstimateButton />\n </Block>\n </Block>\n </Block>\n </Block>\n );\n};\n\nconst mapStateToProps = (state) => ({\n todayInformationList: state.general.todayInformationList,\n officeInformationList: state.general.officeInformationList,\n latestUpdatedTransactionList: state.general.latestUpdatedTransactionList,\n});\nconst mapDispatchToProps = {\n getInformation,\n getLatestUpdateTransaction,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Notice);\n","import React, { useState, useEffect } from \"react\";\nimport {\n View,\n Text,\n StyleSheet,\n TextInput,\n TouchableOpacity,\n ScrollView,\n Dimensions,\n} from \"react-native\";\n\nconst InsertProductModal = ({ justInsertProductList }) => {\n return (\n <View>\n <Text>製品を追加しました</Text>\n <ScrollView style={{ maxHeight: 200, marginTop: 5 }}>\n {justInsertProductList?.map((item, index) => {\n return <Text key={`${index}`}>{item.name}</Text>;\n })}\n </ScrollView>\n </View>\n );\n};\n\nexport default InsertProductModal;\n","import React from \"react\";\nimport { StyleSheet, Image, TouchableOpacity } from \"react-native\";\nimport Block from \"components/common/Block\";\nimport Button from \"components/common/Button\";\nimport TextView from \"components/common/TextView\";\nimport { defaultIcons, commonIcons } from \"assets/icons\";\nimport { Colors } from \"utils\";\n\nconst CatalogCheckBox = ({\n label = \"\",\n ratio = 0.8,\n size = 10,\n check = true,\n onCheckBoxPress,\n}) => {\n const _ratio = ratio;\n return (\n <Block direction=\"row\" marginRight=\"5pt\">\n <TouchableOpacity\n onPress={onCheckBoxPress}\n style={{ flexDirection: \"row\" }}\n >\n <Block\n height={`${size}pt`}\n width={`${size}pt`}\n borderWidth=\"1pt\"\n borderRadius=\"2pt\"\n borderColor={Colors.SecondPrimary}\n marginRight=\"2pt\"\n >\n {check && (\n <Image\n style={{\n height: `${size * _ratio}pt`,\n width: `${size * _ratio}pt`,\n position: \"absolute\",\n top: \"-2pt\",\n }}\n source={defaultIcons.check}\n />\n )}\n </Block>\n {label && (\n <TextView size=\"8pt\" color={Colors.Primary} regular>\n {label}\n </TextView>\n )}\n </TouchableOpacity>\n </Block>\n );\n};\n\nexport default CatalogCheckBox;\n\nconst styles = StyleSheet.create({});\n","import React from \"react\";\nimport { TouchableOpacity, Image, View } from \"react-native\";\nimport { Colors } from \"utils\";\nimport Block from \"components/common/Block\";\nimport TextView from \"components/common/TextView\";\nimport CatalogCheckBox from \"./CatalogCheckBox\";\n// import {\n// LazyLoadImage,\n// LazyLoadComponent,\n// } from \"react-lazy-load-image-component\";\n// import OnImagesLoaded from \"react-on-images-loaded\";\nconst Card = ({\n index,\n product,\n onPress,\n onCheckBoxPress,\n isShowCheckBox,\n onImageLoaded,\n onImageTimeout,\n}) => {\n return (\n <TouchableOpacity\n onPress={onPress}\n style={{\n borderRadius: 5,\n }}\n >\n {/* <View\n style={{\n justifyContent: \"center\",\n alignItems: \"center\",\n }}\n >\n <Image\n source={{\n uri: product?.pic_path,\n }}\n style={{ height: \"50vh\", width: \"100%\" }}\n resizeMode=\"contain\"\n />\n </View> */}\n <Block direction=\"row\" marginHorizontal=\"20pt\" marginTop=\"10pt\">\n <Block block direction=\"row\">\n <Block\n center\n color={Colors.Primary}\n paddingHorizontal=\"2pt\"\n paddingVertical=\"1pt\"\n marginRight=\"3pt\"\n >\n <TextView size=\"12pt\" color={Colors.White} bold>\n {product?.code}\n </TextView>\n </Block>\n <Block center marginVertical=\"5pt\">\n <TextView size=\"12pt\" regular color={Colors.Primary}>\n {product?.maker_info?.name}\n </TextView>\n </Block>\n </Block>\n <Block center marginVertical=\"5pt\">\n <TextView size=\"13pt\" regular color={Colors.Primary}>\n {product?.name}\n </TextView>\n </Block>\n </Block>\n {isShowCheckBox && (\n <Block marginHorizontal=\"20pt\" marginVertical=\"5pt\">\n <CatalogCheckBox\n label=\"追加\"\n check={product?.is_check}\n onCheckBoxPress={onCheckBoxPress}\n />\n </Block>\n )}\n <View style={{ marginHorizontal: 20 }}>\n <View\n style={{\n width: \"100%\",\n height: 1,\n backgroundColor: Colors.Primary,\n marginTop: 20,\n }}\n ></View>\n </View>\n </TouchableOpacity>\n );\n};\n\nexport default Card;\n","import { createRequestTypes } from \"./utils\";\n\nexport const SEARCH_PRODUCTS = createRequestTypes(\"SEARCH_PRODUCTS\");\nexport const searchProducts = (params) => ({\n type: SEARCH_PRODUCTS.REQUEST,\n params,\n});\n\nexport const UPDATE_PRODUCT = createRequestTypes(\"UPDATE_PRODUCT\");\nexport const updateProduct = (params) => ({\n type: UPDATE_PRODUCT.REQUEST,\n params,\n});\n\nexport const SEARCH_PRODUCT_CATALOG = createRequestTypes(\n \"SEARCH_PRODUCT_CATALOG\"\n);\nexport const searchProductCatalog = (params) => ({\n type: SEARCH_PRODUCT_CATALOG.REQUEST,\n params,\n});\n\nexport const SAVE_SEARCH_PRODUCT_CATALOG = \"SAVE_SEARCH_PRODUCT_CATALOG\";\nexport const saveSearchProductCatalog = (params) => ({\n type: SAVE_SEARCH_PRODUCT_CATALOG,\n params,\n});\n\nexport const CLEAR_SEARCH_PRODUCT_CATALOG = \"CLEAR_SEARCH_PRODUCT_CATALOG\";\nexport const clearSearchProductCatalog = (params) => ({\n type: CLEAR_SEARCH_PRODUCT_CATALOG,\n params,\n});\n\n\nexport const KEEP_SEARCH_PRODUCT_CATALOG = \"KEEP_SEARCH_PRODUCT_CATALOG\";\nexport const keepSearchProductCatalog = (params) => ({\n type: KEEP_SEARCH_PRODUCT_CATALOG,\n params,\n});\n\nexport const UPDATE_SEARCH_PRODUCT_CATALOG_RESULT_LIST =\n \"UPDATE_SEARCH_PRODUCT_CATALOG_RESULT_LIST\";\nexport const updateSearchProductCatalogResultList = (params) => ({\n type: UPDATE_SEARCH_PRODUCT_CATALOG_RESULT_LIST,\n params,\n});\n\nexport const GET_PRODUCT_CATALOG_DETAIL = createRequestTypes(\n \"GET_PRODUCT_CATALOG_DETAIL\"\n);\nexport const getProductCatalogDetail = (params) => ({\n type: GET_PRODUCT_CATALOG_DETAIL.REQUEST,\n params,\n});\n","import React, { useState, forwardRef, useEffect } from \"react\";\nimport { StyleSheet, Text, View, TouchableOpacity, Image } from \"react-native\";\nimport { Colors } from \"utils\";\nimport DatePicker, { registerLocale } from \"react-datepicker\";\nimport ja from \"date-fns/locale/ja\";\nimport { commonIcons } from \"assets/icons\";\nimport CustomDatePickerStyle from \"./CustomDatePickerStyle.css\";\n\nregisterLocale(\"ja\", ja);\n\nconst DateInput = ({\n label,\n style,\n containerStyle,\n textStyle,\n onDateChange,\n value,\n imageStyles,\n onCalendarOpen,\n}) => {\n const [date, setDate] = useState();\n\n useEffect(() => {\n if (onDateChange !== undefined) onDateChange(date);\n }, [date]);\n\n const CustomInput = forwardRef(({ value, onClick }, ref) => (\n <TouchableOpacity onPress={onClick} style={style}>\n <View style={[styles.inputWrap, containerStyle]}>\n <View style={styles.textInput}>\n <Text style={textStyle}>{value || \" \"} </Text>\n </View>\n <Image\n source={commonIcons.calendar}\n style={[styles.icon, imageStyles]}\n resizeMode={\"contain\"}\n />\n </View>\n </TouchableOpacity>\n ));\n\n return (\n <>\n {!!label && <Text style={styles.label}>{label}</Text>}\n <DatePicker\n locale=\"ja\"\n customInput={<CustomInput />}\n selected={date}\n onChange={setDate}\n popperPlacement={\"auto\"}\n value={value}\n dateFormat={\"yyyy/MM/dd\"}\n popperModifiers={{\n flip: {\n enabled: false,\n },\n preventOverflow: {\n enabled: true,\n escapeWithReference: false,\n boundariesElement: \"viewport\",\n },\n }}\n onCalendarOpen={() => {\n if (onCalendarOpen !== undefined) onCalendarOpen();\n }}\n />\n </>\n );\n};\n\nexport default DateInput;\n\nconst styles = StyleSheet.create({\n label: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n marginTop: 12,\n marginBottom: 6,\n fontSize: \"12pt\",\n },\n inputWrap: {\n flexDirection: \"row\",\n alignItems: \"center\",\n borderColor: Colors.SecondPrimary,\n borderWidth: 1,\n borderRadius: 5,\n },\n textInput: {\n flex: 1,\n paddingVertical: 5,\n paddingLeft: 10,\n justifyContent: \"center\",\n fontSize: \"12pt\",\n },\n icon: {\n width: 20,\n height: 20,\n marginLeft: \"5pt\",\n },\n});\n","import React, { useState, useEffect, useRef } from \"react\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport {\n StyleSheet,\n Text,\n TouchableOpacity,\n ScrollView,\n View,\n FlatList,\n} from \"react-native\";\n\nimport { Block } from \"components\";\nimport Input from \"components/common/Input\";\nimport DateInput from \"components/common/DateInput\";\nimport { Colors } from \"utils\";\nimport { useNavigate } from \"utils\";\nimport { searchCustomers } from \"../../redux/actions/customer\";\nimport { createTransfer } from \"../../redux/actions/transfer\";\nimport { connect } from \"react-redux\";\nimport { TRANSFER_TYPE } from \"../../utils/Constant\";\nimport { formatDateTime, DateTimeFormatter } from \"../../utils/DateUtility\";\nimport { usePrevious } from \"../../utils/hook\";\nimport InputWithSuggestion from \"components/common/InputWithSuggestion\";\nimport { MoneyFormatter, formatMoney } from \"utils/MoneyFormatter\";\nimport Title from \"components/common/Title\";\n\n/**\n * 007-001 / 振込依頼\n * @param {*} props\n */\nconst TransferRequest = (props) => {\n const navigate = useNavigate();\n let transferAmount;\n const [\n sendTransferRequestValidation,\n setSendTransferRequestValidation,\n ] = useState({\n didChooseCustomer: undefined,\n didEnterTotalPrice: undefined,\n didSelectTransferType: undefined,\n didInputDate: undefined,\n });\n // const [transferListValidation, setTransferListValidation] = useState({\n // didChooseCustomer: undefined,\n // });\n\n const [transfer, setTransfer] = useState({});\n\n const setTransferValue = (key, value) => {\n setTransfer((prev) => ({\n ...prev,\n [key]: value,\n }));\n };\n const validateSendTransferRequest = () => {\n // setTransferListValidation({\n // didChooseCustomer: undefined,\n // });\n\n setSendTransferRequestValidation({\n didChooseCustomer: transfer.selectedTransfer !== undefined,\n didEnterTotalPrice:\n transfer.total_price !== \"\" &&\n formatMoney(\n transfer.total_price,\n MoneyFormatter.ZERO_DECIMAL_FORMAT_NO_COMMAS\n ) > 0,\n didSelectTransferType:\n transfer.transfer_type !== \"\" && transfer.transfer_type >= 0,\n didInputDate: transfer.date !== undefined && transfer.date !== \"\",\n });\n };\n\n const validateTransferList = () => {\n setSendTransferRequestValidation({\n didChooseCustomer: undefined,\n didEnterTotalPrice: undefined,\n didSelectTransferType: undefined,\n didInputDate: undefined,\n });\n\n // setTransferListValidation({\n // didChooseCustomer: transfer.selectedTransfer !== undefined,\n // });\n navigate(\"transfer-request/list\", {\n selectedCustomer: transfer.selectedTransfer,\n });\n };\n\n useEffect(() => {\n setTransferValue(\"selectedTransfer\", undefined);\n }, [props.searchCustomerResults]);\n\n useEffect(() => {\n if (\n sendTransferRequestValidation.didChooseCustomer &&\n sendTransferRequestValidation.didEnterTotalPrice &&\n sendTransferRequestValidation.didSelectTransferType\n ) {\n props.createTransfer({\n date: transfer.date,\n limit_date:\n transfer.limit_date == undefined || transfer.limit_date == \"\"\n ? null\n : transfer.limit_date,\n customer_id: transfer.selectedTransfer.id,\n type: transfer.transfer_type,\n total_price: formatMoney(\n transfer.total_price,\n MoneyFormatter.ZERO_DECIMAL_FORMAT_NO_COMMAS\n ),\n remark: transfer.remark,\n });\n }\n }, [sendTransferRequestValidation]);\n\n const prevCreatingTransfer = usePrevious(props.isCreatingTransfer);\n useEffect(() => {\n if (prevCreatingTransfer && !props.isCreatingTransfer) {\n if (props.isCreatedTransfer) {\n //go to 007-003 / 振込依頼・送信完了画面\n navigate(\"transfer-request/transfered\", {\n createdTransfer: props.createdTransfer,\n });\n }\n }\n }, [props.isCreatingTransfer]);\n\n const checkDidChooseCustomer = () => {\n if (sendTransferRequestValidation.didChooseCustomer !== undefined) {\n return !sendTransferRequestValidation.didChooseCustomer;\n }\n // else if (transferListValidation.didChooseCustomer !== undefined) {\n // return !transferListValidation.didChooseCustomer;\n // }\n };\n\n // useEffect(() => {\n // if (transferListValidation.didChooseCustomer) {\n // navigate(\"transfer-request/list\", {\n // selectedCustomer: transfer.selectedTransfer,\n // });\n // }\n // }, [transferListValidation]);\n\n const searchCustomerHandler = (searchName) => {\n props.searchCustomers({\n name: searchName,\n });\n };\n\n return (\n <View style={styles.wrap}>\n <Title title={\"振込依頼\"} />\n <View style={styles.dateWrap}>\n <View\n style={{\n flex: 1,\n marginRight: 20,\n zIndex: 1,\n }}\n >\n <DateInput\n label={\"取引日\"}\n containerStyle={[\n sendTransferRequestValidation.didInputDate !== undefined &&\n !sendTransferRequestValidation.didInputDate && {\n borderWidth: 1,\n borderColor: \"red\",\n },\n { padding: \"5pt\" },\n ]}\n onDateChange={(date) => {\n setTransferValue(\n \"date\",\n formatDateTime(date, DateTimeFormatter.YYYY_MM_DD_HH_MM_HYPHEN)\n );\n }}\n imageStyles={{ height: \"24pt\", width: \"24pt\" }}\n />\n </View>\n <View style={{ flex: 1 }}>\n <DateInput\n label={\"振込期日\"}\n onDateChange={(date) => {\n setTransferValue(\n \"limit_date\",\n formatDateTime(date, DateTimeFormatter.YYYY_MM_DD_HH_MM_HYPHEN)\n );\n }}\n imageStyles={{ height: \"24pt\", width: \"24pt\" }}\n containerStyle={{ padding: \"5pt\" }}\n />\n </View>\n </View>\n\n <View>\n <InputWithSuggestion\n placeHolder={\"\"}\n label={\"取引先検索\"}\n fetchApi={(searchName) => searchCustomerHandler(searchName)}\n data={props.searchCustomerResults}\n onSelectedItem={(item) => setTransferValue(\"selectedTransfer\", item)}\n inputStyle={\n checkDidChooseCustomer() && { borderColor: \"red\", borderWidth: 1 }\n }\n />\n </View>\n\n <View\n style={{\n flexDirection: \"row\",\n alignItems: \"flex-end\",\n }}\n >\n <View style={{ flex: 1 }}>\n <Input\n label={\"振込金額\"}\n hideIcon\n tailText={\"円\"}\n textInputStyle={{ textAlign: \"right\" }}\n value={transfer.total_price}\n onChangeText={(value) =>\n setTransferValue(\"total_price\", formatMoney(value))\n }\n wrapStyle={\n sendTransferRequestValidation.didEnterTotalPrice !== undefined &&\n !sendTransferRequestValidation.didEnterTotalPrice && {\n borderColor: \"red\",\n }\n }\n keyboardType={\"phone-pad\"}\n refHandler={(input) => (transferAmount = input)}\n selectTextOnFocus\n onFocus={transferAmount?.focus()}\n />\n </View>\n <View\n style={[\n { paddingLeft: 20 },\n sendTransferRequestValidation.didSelectTransferType !== undefined &&\n !sendTransferRequestValidation.didSelectTransferType && {\n borderColor: \"red\",\n borderWidth: 1,\n },\n ]}\n >\n <Text style={styles.radioTitle}>振込内容</Text>\n <View style={[styles.radio, {}]}>\n <TouchableOpacity\n onPress={() => {\n setTransferValue(\n \"transfer_type\",\n TRANSFER_TYPE.ADVANCE_TRANSFER\n );\n }}\n style={styles.btnCheck}\n >\n {transfer?.transfer_type === TRANSFER_TYPE.ADVANCE_TRANSFER ? (\n <Block\n color=\"black\"\n height={\"6pt\"}\n width={\"6pt\"}\n borderRadius={\"5pt\"}\n />\n ) : (\n <Block width={\"5pt\"} height={\"5pt\"} />\n )}\n </TouchableOpacity>\n <label\n for={\"tt-advance\"}\n style={{ color: Colors.Primary, fontSize: \"12pt\" }}\n >\n 事前振込\n </label>\n </View>\n <View style={styles.radio}>\n <TouchableOpacity\n onPress={() => {\n setTransferValue(\n \"transfer_type\",\n TRANSFER_TYPE.TRANSFER_WHEN_PURCHASE\n );\n }}\n style={styles.btnCheck}\n >\n {transfer?.transfer_type ===\n TRANSFER_TYPE.TRANSFER_WHEN_PURCHASE ? (\n <Block\n color=\"black\"\n height={\"6pt\"}\n width={\"6pt\"}\n borderRadius={\"5pt\"}\n />\n ) : (\n <Block width={\"5pt\"} height={\"5pt\"} />\n )}\n </TouchableOpacity>\n <label\n for={\"tt-paid\"}\n style={{ color: Colors.Primary, fontSize: \"12pt\" }}\n >\n 仕入時振込\n </label>\n </View>\n </View>\n </View>\n <View>\n <Input\n label={\"備 考\"}\n hideIcon\n onChangeText={(value) => setTransferValue(\"remark\", value)}\n />\n </View>\n <View style={{ flexDirection: \"row\", marginTop: 10 }}>\n <TouchableOpacity\n // onPress={() => navigate('transfer-request/transfered')}\n onPress={() => validateSendTransferRequest()}\n style={{ flex: 1, paddingVertical: \"12pt\", marginRight: 10 }}\n >\n <View style={styles.btn}>\n <Text style={styles.btnTitle}>振込依頼を送信</Text>\n </View>\n </TouchableOpacity>\n <TouchableOpacity\n onPress={() => validateTransferList()}\n style={{ flex: 1, paddingVertical: \"12pt\" }}\n >\n <View style={styles.btn}>\n <Text style={styles.btnTitle}>振込依頼一覧</Text>\n </View>\n </TouchableOpacity>\n </View>\n </View>\n );\n};\n\nconst fakeData = [];\nfor (let i = 0; i < 10; i++)\n fakeData.push(\n {\n key: `item_0_${i}`,\n label: \"有限会社カネヒラ商会\",\n },\n {\n key: `item_1_${i}`,\n label: \"金田金属株式会社\",\n },\n {\n key: `item_2_${i}`,\n label: \"兼光解体\",\n },\n {\n key: `item_3_${i}`,\n label: \"吉金興業\",\n },\n {\n key: `item_4_${i}`,\n label: \"鷲尾金属工業株式会社\",\n }\n );\n\nconst styles = StyleSheet.create({\n wrap: {\n paddingBottom: 20,\n paddingHorizontal: \"24pt\",\n },\n dateWrap: {\n zIndex: 1,\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n btn: {\n flex: 1,\n backgroundColor: Colors.SecondPrimary,\n paddingHorizontal: 23,\n paddingVertical: \"12pt\",\n borderRadius: 5,\n alignItems: \"center\",\n },\n btnTitle: {\n color: \"white\",\n fontSize: \"13pt\",\n },\n list: {\n width: \"90%\",\n height: 200,\n alignSelf: \"flex-end\",\n borderWidth: 1,\n borderColor: Colors.SecondPrimary,\n borderRadius: 5,\n zIndex: -1,\n },\n listItem: {\n paddingVertical: 10,\n paddingHorizontal: 15,\n borderBottomColor: Colors.SecondPrimary,\n borderBottomWidth: 1,\n },\n radio: {\n flexDirection: \"row\",\n marginTop: 5,\n alignItems: \"center\",\n },\n radioTitle: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n fontSize: \"12pt\",\n },\n btnCheck: {\n borderWidth: 1,\n borderColor: Colors.Primary,\n padding: 4,\n borderRadius: \"8pt\",\n marginRight: \"5pt\",\n },\n});\n\nconst mapStateToProps = (state) => ({\n searchCustomerResults: state.customer.searchCustomerResults,\n isCreatingTransfer: state.transfer.isCreatingTransfer,\n isCreatedTransfer: state.transfer.isCreatedTransfer,\n createdTransfer: state.transfer.createdTransfer,\n});\nconst mapDispatchToProps = {\n searchCustomers,\n createTransfer,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(TransferRequest);\n","import { createRequestTypes } from \"./utils\";\n\nexport const GET_CUSTOMERS = createRequestTypes(\"GET_CUSTOMERS\");\nexport const getCustomers = (params) => ({\n type: GET_CUSTOMERS.REQUEST,\n params,\n});\n\nexport const SEARCH_CUSTOMERS = createRequestTypes(\"SEARCH_CUSTOMERS\");\nexport const searchCustomers = (params) => ({\n type: SEARCH_CUSTOMERS.REQUEST,\n params,\n});\n\nexport const SEARCH_CUSTOMER_TRANSFER = createRequestTypes(\n \"SEARCH_CUSTOMER_TRANSFER\"\n);\nexport const searchCustomerTransfer = (params) => ({\n type: SEARCH_CUSTOMER_TRANSFER.REQUEST,\n params,\n});\n\nexport const GET_CUSTOMER_TRANSFER = createRequestTypes(\n \"GET_CUSTOMER_TRANSFER\"\n);\nexport const getCustomerTransfer = (params) => ({\n type: GET_CUSTOMER_TRANSFER.REQUEST,\n params,\n});\n","import { createRequestTypes } from \"./utils\";\n\nexport const GET_TRANSFER_CUSTOMERS = createRequestTypes(\n \"GET_TRANSFER_CUSTOMERS\"\n);\nexport const getTransferCustomers = (params) => ({\n type: GET_TRANSFER_CUSTOMERS.REQUEST,\n params,\n});\n\nexport const UPDATE_TRANSFER = createRequestTypes(\"UPDATE_TRANSFER\");\nexport const updateTransfer = (params) => ({\n type: UPDATE_TRANSFER.REQUEST,\n params,\n});\n\n\nexport const CREATE_TRANSFER = createRequestTypes(\"CREATE_TRANSFER\");\nexport const createTransfer = (params) => ({\n type: CREATE_TRANSFER.REQUEST,\n params,\n});\n\n\n\nexport const SEARCH_TRANSFER = createRequestTypes(\"SEARCH_TRANSFER\");\nexport const searchTransfer = (params) => ({\n type: SEARCH_TRANSFER.REQUEST,\n params,\n});\n","import React, { useState, useEffect } from \"react\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport {\n StyleSheet,\n Text,\n TouchableOpacity,\n ScrollView,\n View,\n FlatList,\n} from \"react-native\";\nimport { Title, Block, Button, TextView, WrapperBlock } from \"components\";\nimport Input from \"components/common/Input\";\n\nimport DateInput from \"components/common/DateInput\";\nimport { Colors } from \"utils\";\nimport { useNavigate } from \"utils\";\nimport { searchCustomers } from \"../../redux/actions/customer\";\nimport { createTransfer } from \"../../redux/actions/transfer\";\nimport { connect } from \"react-redux\";\nimport { TRANSFER_TYPE } from \"../../utils/Constant\";\nimport { formatDateTime, DateTimeFormatter } from \"../../utils/DateUtility\";\nimport { usePrevious } from \"../../utils/hook\";\n\nconst InputWithSuggestion = ({\n placeHolder,\n label,\n fetchApi,\n data,\n onSelectedItem,\n inputStyle,\n inputPaddingVertical,\n}) => {\n const [selectedItemName, setSelectedItemName] = useState(\"\");\n const [selectedItem, setSelectedItem] = useState(undefined);\n const [searchItemName, setSearchItemName] = useState(\"\");\n const [isShowCustomerList, setIsShowCustomerList] = React.useState(false);\n\n useEffect(() => {\n if (searchItemName !== \"\" && searchItemName !== selectedItemName) {\n fetchApi(searchItemName);\n setIsShowCustomerList(true);\n } else if (searchItemName === \"\") {\n onSelectedItem(undefined);\n setIsShowCustomerList(false);\n } else {\n setIsShowCustomerList(false);\n }\n }, [searchItemName]);\n\n const selectItemHandler = (item, index) => {\n setSelectedItem(item);\n setSelectedItemName(item.name);\n setSearchItemName(item.name);\n setIsShowCustomerList(false);\n onSelectedItem(item);\n };\n\n return (\n <View>\n <Block marginTop=\"10pt\">\n <Input\n placeholder={placeHolder}\n placeholderTextColor={`${Colors.SecondPrimary}40`}\n label={label}\n value={searchItemName}\n paddingVertical={\n inputPaddingVertical !== undefined ? inputPaddingVertical : 15\n }\n onChangeText={(value) => setSearchItemName(value)}\n wrapStyle={inputStyle}\n />\n </Block>\n {isShowCustomerList && (\n <Block\n color=\"#ECECEC\"\n width=\"90%\"\n height=\"300pt\"\n alignSelf=\"flex-end\"\n borderWidth=\"1pt\"\n borderColor={Colors.SecondPrimary}\n borderRadius=\"3pt\"\n >\n <FlatList\n data={data}\n style={{ flex: 1 }}\n keyExtractor={(_, index) => `${index}`}\n renderItem={({ item, index }) => {\n return (\n <Block\n key={`${index}`}\n paddingVertical=\"10pt\"\n paddingLeft=\"15pt\"\n borderWidth={1}\n borderColor={Colors.PrimaryLight}\n color={\"white\"}\n >\n <TouchableOpacity\n onPress={() => selectItemHandler(item, index)}\n >\n <TextView color={Colors.Primary} size={14} bold>\n {item.name}\n {item.code !== undefined ? \"【\" + item.code + \"】\" : \"\"}\n </TextView>\n </TouchableOpacity>\n </Block>\n );\n }}\n />\n </Block>\n )}\n </View>\n );\n};\n\nexport default InputWithSuggestion;\n","import React, { useState, useEffect } from \"react\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport {\n StyleSheet,\n Text,\n TouchableOpacity,\n ScrollView,\n View,\n FlatList,\n Image,\n} from \"react-native\";\n\nimport { Title, Block, Button, TextView, WrapperBlock } from \"components\";\nimport Input from \"components/common/Input\";\n\nimport DateInput from \"components/common/DateInput\";\nimport { Colors } from \"utils\";\nimport { useNavigate } from \"utils\";\nimport { searchCustomers } from \"../../redux/actions/customer\";\nimport { createTransfer } from \"../../redux/actions/transfer\";\nimport { connect } from \"react-redux\";\nimport { TRANSFER_TYPE } from \"../../utils/Constant\";\nimport { formatDateTime, DateTimeFormatter } from \"../../utils/DateUtility\";\nimport { usePrevious } from \"../../utils/hook\";\nimport { commonIcons } from \"assets/icons\";\n\nconst DropdownList = ({\n label,\n defaultSelectedItemName,\n defaultSelectedItem,\n data,\n onSelectedItem,\n wrapStyle,\n textInputStyle,\n suggestionListStyle,\n}) => {\n const [selectedItemName, setSelectedItemName] = useState(\n defaultSelectedItemName\n );\n const [selectedItem, setSelectedItem] = useState(defaultSelectedItem);\n // const [searchItemName, setSearchItemName] = useState(\"\");\n const [isShowList, setIsShowList] = React.useState(false);\n\n // useEffect(() => {\n // if (searchItemName !== \"\" && searchItemName !== selectedItemName) {\n // fetchApi(searchItemName);\n // setIsShowList(true);\n // } else if (searchItemName === \"\") {\n // onSelectedItem(undefined);\n // setIsShowList(false);\n // } else {\n // setIsShowList(false);\n // }\n // }, [searchItemName]);\n\n useEffect(() => {\n // setSelectedItemName(selectedItem?.name);\n }, [selectedItem]);\n\n const selectItemHandler = (item, index) => {\n setSelectedItem(item);\n setSelectedItemName(item.name);\n // setSearchItemName(item.name);\n setIsShowList(false);\n onSelectedItem(item);\n };\n\n return (\n <View style={wrapStyle}>\n <Block block marginTop=\"10pt\">\n {/* <Input\n dropdownIcon\n placeholder={placeHolder}\n placeholderTextColor={`${Colors.SecondPrimary}40`}\n label={label}\n value={searchItemName}\n paddingVertical={\n inputPaddingVertical !== undefined ? inputPaddingVertical : 15\n }\n onChangeText={(value) => setSearchItemName(value)}\n wrapStyle={inputStyle}\n disabled\n /> */}\n <View style={[styles.wrap]}>\n <View style={{ flex: 1 }}>\n {!!label && <Text style={styles.label}>{label}</Text>}\n <View style={[styles.inputWrap]}>\n <Text style={[styles.textInput, textInputStyle]}>\n {selectedItemName}\n </Text>\n <Button onPress={() => setIsShowList((prev) => !prev)}>\n <Image\n source={commonIcons.arrow_down}\n style={styles.dropdownIcon}\n />\n </Button>\n </View>\n </View>\n </View>\n </Block>\n {isShowList && (\n <Block\n color=\"#ECECEC\"\n width=\"90%\"\n height=\"140pt\"\n alignSelf=\"flex-end\"\n borderWidth=\"1pt\"\n borderColor={Colors.SecondPrimary}\n borderRadius=\"3pt\"\n style={suggestionListStyle}\n >\n <FlatList\n data={data}\n style={{ flex: 1 }}\n keyExtractor={(_, index) => `${index}`}\n renderItem={({ item, index }) => {\n return (\n <Block\n key={`${index}`}\n paddingVertical=\"10pt\"\n paddingLeft=\"15pt\"\n borderWidth={1}\n borderColor={Colors.PrimaryLight}\n color={\n item?.id === selectedItem?.id\n ? Colors.PrimaryLight\n : \"white\"\n }\n >\n <TouchableOpacity\n onPress={() => selectItemHandler(item, index)}\n >\n <TextView color={Colors.Primary} size={14} bold>\n {item.name}\n </TextView>\n </TouchableOpacity>\n </Block>\n );\n }}\n />\n </Block>\n )}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n wrap: {\n flexDirection: \"row\",\n alignItems: \"flex-end\",\n },\n label: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n marginTop: \"12pt\",\n marginBottom: \"6pt\",\n fontSize: \"12pt\",\n },\n inputWrap: {\n flexDirection: \"row\",\n alignItems: \"center\",\n borderColor: Colors.SecondPrimary,\n borderWidth: 1,\n borderRadius: 5,\n },\n textInput: {\n flex: 1,\n padding: \"15pt\",\n },\n searchIcon: {\n width: \"20pt\",\n height: \"20pt\",\n marginHorizontal: \"10pt\",\n },\n dropdownIcon: {\n width: \"15pt\",\n height: \"10pt\",\n marginHorizontal: \"10pt\",\n },\n tailText: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n marginLeft: \"5pt\",\n },\n});\n\nexport default DropdownList;\n","import React, { useState, useEffect } from \"react\";\nimport {\n View,\n ScrollView,\n FlatList,\n Text,\n Image,\n ActivityIndicator,\n} from \"react-native\";\nimport { WrapperBlock, Block, Button } from \"components\";\nimport Input from \"components/common/Input\";\nimport InsertProductModal from \"components/common/InsertProductModal\";\nimport { Card } from \"components/catalog\";\nimport { useNavigate } from \"utils\";\nimport {\n searchProductCatalog,\n saveSearchProductCatalog,\n updateSearchProductCatalogResultList,\n clearSearchProductCatalog,\n keepSearchProductCatalog,\n} from \"../../redux/actions/product\";\nimport { insertProductsToEstimate } from \"../../redux/actions/estimate\";\n\nimport { insertProductsToInvoice } from \"../../redux/actions/invoice\";\n\nimport { connect } from \"react-redux\";\nimport InputWithSuggestion from \"components/common/InputWithSuggestion\";\nimport DropdownList from \"components/common/DropdownList\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { getMakers } from \"../../redux/actions/general\";\nimport { usePrevious } from \"../../utils/hook\";\nimport { Alert } from \"../../App\";\nimport { checkCart } from \"../../redux/actions/home\";\nimport FullLoading from \"components/common/FullLoading\";\nimport {\n LazyLoadComponent,\n LazyLoadImage,\n} from \"react-lazy-load-image-component\";\nimport { debounce } from \"lodash\";\nimport LazyLoad from \"react-lazyload\";\nimport OnImagesLoaded from \"react-on-images-loaded\";\nimport Title from \"components/common/Title\";\n\n/**\n * 005-001-1 / サンプルカタログ\n * @param {*} props\n */\nconst Catalog = (props) => {\n const history = useHistory();\n const navigate = useNavigate();\n const location = useLocation();\n\n const [searchProductName, setSearchProductName] = useState(\"\");\n const [selectMaker, setSelectedMaker] = useState(undefined);\n const [timeOutHandler, setTimeOutHandler] = useState(undefined);\n const current_invoice = history?.location?.state?.current_invoice;\n const current_estimate = history?.location?.state?.current_estimate;\n const [justInsertProductList, setJustInsertProductList] = useState([]);\n const [isLoadingMore, setisLoadingMore] = useState(false);\n const [loading, setLoading] = useState(false);\n const [searchProductCatalogData, setSearchProductCatalogData] = useState([]);\n const [countImageLoad, setCountImageLoad] = useState(0);\n\n useEffect(() => {\n setSearchProductName(props.savedSearchProductCatalog?.productName);\n setSelectedMaker(props.savedSearchProductCatalog?.selectedMaker);\n props.getMakers();\n }, []);\n\n useEffect(() => {\n if (selectMaker !== undefined) {\n searchProduct();\n }\n }, [selectMaker]);\n\n useEffect(() => {\n return () => {\n props.clearSearchProductCatalog();\n };\n }, []);\n\n const searchProduct = () => {\n props.searchProductCatalog({\n product_name: searchProductName,\n maker_name:\n selectMaker !== undefined\n ? selectMaker.id > -1\n ? selectMaker.name\n : \"\"\n : \"\",\n page: 1,\n });\n props.saveSearchProductCatalog({\n productName: searchProductName,\n selectedMaker: selectMaker,\n });\n setLoading(true);\n };\n\n const insertProductToCurrentCart = (product) => {\n if (current_invoice !== undefined && current_invoice !== null) {\n insertOrDeleteProductToCurrentInvoice(product);\n } else if (current_estimate !== undefined && current_estimate !== null) {\n insertOrDeleteProductToCurrentEstimate(product);\n }\n };\n\n const insertOrDeleteProductToCurrentInvoice = (product) => {\n const data = [];\n data.push({\n id: product.id,\n name: product.name,\n amount: 0,\n is_delete_product: product.is_check,\n unit_price: 0,\n price: 0,\n tax: 0,\n total_price: 0,\n });\n props.insertProductsToInvoice({\n invoice_id: current_invoice?.id,\n is_clear_invoice_detail: false,\n products: data,\n });\n const datas = props.searchProductCatalogResult.map((item) => {\n return {\n ...item,\n is_check: item.id === product.id ? !product.is_check : item.is_check,\n };\n });\n props.updateSearchProductCatalogResultList({\n searchProductCatalogResult: datas,\n });\n\n const justInsertData = data.filter(\n (item) => item.is_delete_product == false\n );\n\n setJustInsertProductList(justInsertData);\n };\n\n const insertOrDeleteProductToCurrentEstimate = (product) => {\n const data = [];\n data.push({\n id: product.id,\n name: product.name,\n amount: 0,\n is_delete_product: product.is_check,\n unit_price: 0,\n price: 0,\n tax: 0,\n total_price: 0,\n });\n props.insertProductsToEstimate({\n estimate_id: current_estimate?.id,\n is_clear_estimate_detail: false,\n products: data,\n });\n const datas = props.searchProductCatalogResult.map((item) => {\n return {\n ...item,\n is_check: item.id === product.id ? !product.is_check : item.is_check,\n };\n });\n props.updateSearchProductCatalogResultList({\n searchProductCatalogResult: datas,\n });\n const justInsertData = data.filter(\n (item) => item.is_delete_product == false\n );\n\n setJustInsertProductList(justInsertData);\n };\n\n const isShowAddCheckBox = () => {\n const is_have_invoice =\n current_invoice !== undefined && current_invoice !== null;\n const is_have_estimate =\n current_estimate !== undefined && current_estimate !== null;\n return is_have_invoice || is_have_estimate;\n };\n\n const showInsertFinishModal = () => {\n Alert.alert(\n \"\",\n <InsertProductModal justInsertProductList={justInsertProductList} />,\n [\n {\n label: \"OK\",\n primary: true,\n onPress: () => {\n Alert.hideModal();\n },\n },\n ]\n );\n };\n\n const prevInsertingProductToInvoice = usePrevious(\n props.isInsertingProductToInvoice\n );\n useEffect(() => {\n if (prevInsertingProductToInvoice && !props.isInsertingProductToInvoice) {\n if (props.isInsertedProductToInvoice) {\n props.checkCart();\n if (\n justInsertProductList !== undefined &&\n justInsertProductList.length > 0\n ) {\n showInsertFinishModal();\n setJustInsertProductList([]);\n }\n }\n }\n }, [props.isInsertingProductToInvoice]);\n\n const prevInsertingProductToEstimate = usePrevious(\n props.isInsertingProductToEstimate\n );\n useEffect(() => {\n if (prevInsertingProductToEstimate && !props.isInsertingProductToEstimate) {\n if (props.isInsertedProductToEstimate) {\n if (\n justInsertProductList !== undefined &&\n justInsertProductList.length > 0\n ) {\n showInsertFinishModal();\n setJustInsertProductList([]);\n }\n }\n }\n }, [props.isInsertingProductToEstimate]);\n\n const prevSearchingProductCatalog = usePrevious(\n props.isSearchingProductCatalog\n );\n useEffect(() => {\n if (prevSearchingProductCatalog && !props.isSearchingProductCatalog) {\n setisLoadingMore(false);\n setLoading(false);\n // setTimeout(() => {\n // setLoading(false);\n // }, 7000);\n }\n }, [props.isSearchingProductCatalog]);\n\n const onEndReached = debounce(() => {\n const {\n searchProductCatalogNextPage,\n searchProductCatalogReachEnd,\n } = props;\n\n if (!isLoadingMore && !searchProductCatalogReachEnd) {\n props.searchProductCatalog({\n product_name: searchProductName,\n maker_name:\n selectMaker !== undefined\n ? selectMaker.id > -1\n ? selectMaker.name\n : \"\"\n : \"\",\n page: searchProductCatalogNextPage,\n });\n setisLoadingMore(true);\n setLoading(true);\n }\n });\n\n const increaseImageLoad = () => {\n console.log(\"hung increaseImageLoad:\");\n setCountImageLoad((prev) => ++prev);\n };\n\n // useEffect(() => {\n // console.log(\n // \"hung countImageLoad:\",\n // countImageLoad,\n // \" searchProductCatalogResultCount:\",\n // props.searchProductCatalogResultCount\n // );\n // if (countImageLoad >= props.searchProductCatalogResultCount) {\n // setLoading(false);\n // setCountImageLoad(0);\n // }\n // }, [countImageLoad]);\n\n return (\n <View style={{ flex: 1 }}>\n <Block paddingBottom=\"10pt\">\n <Block flex={7} paddingHorizontal=\"24pt\">\n <Title title={\"サンプルカタログ\"} />\n <Input\n label={\"品名検索\"}\n onChangeText={(value) => setSearchProductName(value)}\n value={searchProductName}\n defaultValue={searchProductName}\n onPress={() => searchProduct()}\n />\n <DropdownList\n label={\"メーカー検索\"}\n data={props.makerList}\n defaultSelectedItemName={\n props.savedSearchProductCatalog?.selectedMaker?.name\n }\n onSelectedItem={(item) => {\n setSelectedMaker(item);\n }}\n suggestionListStyle={{ height: 500 }}\n />\n </Block>\n </Block>\n\n {/* <ScrollView>\n {props.searchProductCatalogResult?.map((item, index) => {\n return (\n <OnImagesLoaded\n onLoaded={() => console.log(\"hung onLoaded\")}\n onTimeout={() => console.log(\"hung onTimeout\")}\n timeout={7000}\n >\n <LazyLoad key={index} placeholder={\"\"}>\n <Card\n key={index}\n index={index}\n product={item}\n onPress={() => {\n // setTest(true);\n props.keepSearchProductCatalog({\n isKeep: true,\n });\n navigate(\"product-info\", { product: item });\n }}\n onCheckBoxPress={() => insertProductToCurrentCart(item)}\n isShowCheckBox={isShowAddCheckBox()}\n />\n </LazyLoad>\n </OnImagesLoaded>\n // <Card\n // key={index}\n // index={index}\n // product={item}\n // onPress={() => {\n // // setTest(true);\n // props.keepSearchProductCatalog({\n // isKeep: true,\n // });\n // navigate(\"product-info\", { product: item });\n // }}\n // onCheckBoxPress={() => insertProductToCurrentCart(item)}\n // isShowCheckBox={isShowAddCheckBox()}\n // />\n // <LazyLoadImage effect=\"blur\" src={item.pic_path} />\n );\n })}\n </ScrollView> */}\n\n <FlatList\n data={props.searchProductCatalogResult}\n style={{ flex: 1 }}\n keyExtractor={(_, index) => `${index}`}\n renderItem={({ item, index }) => {\n return (\n // <LazyLoadComponent>\n <Card\n index={index}\n product={item}\n onPress={() => {\n // setTest(true);\n props.keepSearchProductCatalog({\n isKeep: true,\n });\n navigate(\"product-info\", { product: item });\n }}\n onCheckBoxPress={() => insertProductToCurrentCart(item)}\n isShowCheckBox={isShowAddCheckBox()}\n onImageLoaded={() => {\n // increaseImageLoad();\n // console.log(\"hung eeee\");\n // setCountImageLoad((prev) => prev + 1);\n }}\n onImageTimeout={() => setLoading(false)}\n />\n // </LazyLoadComponent>\n );\n }}\n onEndReachedThreshold={1}\n onEndReached={onEndReached}\n ListFooterComponent={() =>\n isLoadingMore && (\n <View style={{ padding: 5 }}>\n <ActivityIndicator />\n </View>\n )\n }\n />\n\n {isShowAddCheckBox() && (\n <View\n style={{\n marginVertical: 10,\n alignSelf: \"center\",\n }}\n >\n <Block flex={1} center>\n <Button onPress={() => history.goBack()} mediumCentered>\n 次 へ\n </Button>\n </Block>\n </View>\n )}\n {loading && <FullLoading />}\n </View>\n );\n};\n\nconst mapStateToProps = (state) => ({\n // lastInvoice: state.invoice.lastInvoice,\n // isGettingLastInvoice: state.invoice.isGettingLastInvoice,\n // isGotLastInvoice: state.invoice.isGotLastInvoice,\n isSearchingProductCatalog: state.product.isSearchingProductCatalog,\n isSearchedProductCatalog: state.product.isSearchedProductCatalog,\n searchProductCatalogNextPage: state.product.searchProductCatalogNextPage,\n searchProductCatalogReachEnd: state.product.searchProductCatalogReachEnd,\n searchProductCatalogResult: state.product.searchProductCatalogResult,\n searchProductCatalogResultCount:\n state.product.searchProductCatalogResultCount,\n\n savedSearchProductCatalog: state.product.savedSearchProductCatalog,\n\n makerList: state.general.makerList,\n\n isInsertingProductToInvoice: state.invoice.isInsertingProductToInvoice,\n isInsertedProductToInvoice: state.invoice.isInsertedProductToInvoice,\n\n isInsertingProductToEstimate: state.estimate.isInsertingProductToEstimate,\n isInsertedProductToEstimate: state.estimate.isInsertedProductToEstimate,\n});\nconst mapDispatchToProps = {\n searchProductCatalog,\n insertProductsToInvoice,\n insertProductsToEstimate,\n saveSearchProductCatalog,\n updateSearchProductCatalogResultList,\n getMakers,\n clearSearchProductCatalog,\n checkCart,\n keepSearchProductCatalog,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Catalog);\n","import React, { useState, useEffect } from \"react\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport { StyleSheet, TouchableOpacity, Text, View } from \"react-native\";\nimport { Block } from \"components\";\nimport Input from \"components/common/Input\";\nimport DateInput from \"components/common/DateInput\";\nimport { Colors } from \"utils\";\nimport { useNavigate } from \"utils\";\nimport { formatDateTime, DateTimeFormatter } from \"../../utils/DateUtility\";\nimport InputWithSuggestion from \"components/common/InputWithSuggestion\";\nimport { searchCustomers } from \"../../redux/actions/customer\";\nimport { searchProductInInvoiceDetail } from \"../../redux/actions/invoice\";\nimport { connect } from \"react-redux\";\nimport { searchProducts } from \"../../redux/actions/product\";\nimport DropdownList from \"components/common/DropdownList\";\nimport { getMakers } from \"../../redux/actions/general\";\nimport Title from \"components/common/Title\";\n/**\n * 006-001 / 過去実績検索\n * @param {*} props\n */\nconst Performance = (props) => {\n const navigate = useNavigate();\n const [customerName, setCustomerName] = useState(\"\");\n const [productName, setProductName] = useState(\"\");\n const [fromDate, setFromDate] = useState(\"\");\n const [toDate, setToDate] = useState(\"\");\n const [\n searchCustomerTimeOutHandler,\n setSearchCustomerTimeOutHandler,\n ] = useState(undefined);\n\n const [\n searchProductTimeOutHandler,\n setSearchProductTimeOutHandler,\n ] = useState(undefined);\n const [selectMaker, setSelectedMaker] = useState(undefined);\n\n // const searchCustomerHandler = (searchName) => {\n // props.searchCustomers({\n // name: searchName,\n // });\n // };\n // const searchProductHandler = (searchName) => {\n // props.searchProductInInvoiceDetail({\n // product_name: searchName,\n // });\n // };\n\n const searchProductHandler = (searchName) => {\n if (searchProductTimeOutHandler !== undefined)\n clearTimeout(searchProductTimeOutHandler);\n setSearchProductTimeOutHandler(\n setTimeout(() => {\n if (searchName !== \"\") {\n props.searchProductInInvoiceDetail({\n product_name: searchName,\n });\n // props.searchProducts({\n // search_name: searchName,\n // search_code: \"\",\n // });\n }\n }, 300)\n );\n };\n\n const searchCustomerHandler = (searchName) => {\n if (searchCustomerTimeOutHandler !== undefined)\n clearTimeout(searchCustomerTimeOutHandler);\n setSearchCustomerTimeOutHandler(\n setTimeout(() => {\n if (searchName !== \"\") {\n props.searchCustomers({\n name: searchName,\n });\n }\n }, 300)\n );\n };\n\n useEffect(() => {\n props.getMakers();\n }, []);\n\n return (\n <View style={styles.wrap}>\n {/* <Title title={\"過去実績検索\"} /> */}\n <Title title=\"過去実績検索\" />\n <InputWithSuggestion\n placeHolder={\"\"}\n label={\"取引先で絞り込む\"}\n fetchApi={(searchName) => searchCustomerHandler(searchName)}\n data={props.searchCustomerResults}\n onSelectedItem={(item) => setCustomerName(item?.name)}\n />\n <Block marginTop={-10}>\n <InputWithSuggestion\n placeHolder={\"\"}\n label={\"品名で絞り込む\"}\n fetchApi={(searchName) => searchProductHandler(searchName)}\n data={props.invoiceDetailSearchByProductName}\n onSelectedItem={(item) => setProductName(item?.name)}\n />\n </Block>\n <Block>\n <DropdownList\n label={\"メーカー検索\"}\n data={props.makerList}\n onSelectedItem={(item) => {\n setSelectedMaker(item);\n }}\n />\n </Block>\n\n <Block marginTop={\"20pt\"}>\n <Text style={styles.dateLabel}>期間を指定する</Text>\n </Block>\n <View style={styles.dateWrap}>\n <View style={{ flex: 1 }}>\n <DateInput\n onDateChange={(date) => {\n setFromDate(\n formatDateTime(date, DateTimeFormatter.YYYY_MM_DD_HYPHEN)\n );\n }}\n imageStyles={{ height: \"24pt\", width: \"24pt\" }}\n containerStyle={{ padding: \"5pt\" }}\n />\n </View>\n <Text style={styles.separator}>〜</Text>\n <View style={{ flex: 1 }}>\n <DateInput\n onDateChange={(date) => {\n setToDate(\n formatDateTime(date, DateTimeFormatter.YYYY_MM_DD_HYPHEN)\n );\n }}\n imageStyles={{ height: \"24pt\", width: \"24pt\" }}\n containerStyle={{ padding: \"5pt\" }}\n />\n </View>\n </View>\n <View style={styles.btnWrap}>\n <TouchableOpacity\n onPress={() =>\n navigate(\"past-performance\", {\n search_params: {\n customer_name: customerName == undefined ? \"\" : customerName,\n product_name: productName == undefined ? \"\" : productName,\n from_date: fromDate,\n to_date: toDate,\n maker_name: selectMaker == undefined ? \"\" : selectMaker?.name,\n page: 1,\n },\n })\n }\n >\n <View style={styles.btn}>\n <Text style={styles.btnTitle}>過去実績検索</Text>\n </View>\n </TouchableOpacity>\n </View>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n wrap: {\n paddingHorizontal: \"24pt\",\n },\n btnWrap: {\n alignItems: \"center\",\n paddingVertical: \"70pt\",\n },\n btn: {\n backgroundColor: Colors.SecondPrimary,\n paddingHorizontal: \"25pt\",\n paddingVertical: \"10pt\",\n borderRadius: \"2pt\",\n },\n btnTitle: {\n color: \"white\",\n fontWeight: \"bold\",\n fontSize: \"12pt\",\n },\n dateLabel: {\n marginTop: \"12pt\",\n marginBottom: \"6pt\",\n color: Colors.Primary,\n fontWeight: \"bold\",\n fontSize: \"12pt\",\n },\n dateWrap: {\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n separator: {\n color: Colors.Primary,\n marginHorizontal: \"5pt\",\n },\n});\n\nconst mapStateToProps = (state) => ({\n searchCustomerResults: state.customer.searchCustomerResults,\n isUpdatingCustomerEstimate: state.estimate.isUpdatingCustomerEstimate,\n isUpdatedCustomerEstimate: state.estimate.isUpdatedCustomerEstimate,\n updatedCustomerEstimate: state.estimate.updatedCustomerEstimate,\n invoiceDetailSearchByProductName:\n state.invoice.invoiceDetailSearchByProductName,\n products: state.product.products,\n makerList: state.general.makerList,\n});\nconst mapDispatchToProps = {\n searchCustomers,\n searchProductInInvoiceDetail,\n searchProducts,\n getMakers,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Performance);\n\n// export default Performance;\n","import React, { useState, useEffect } from \"react\";\nimport { ScrollView } from \"react-native\";\nimport { Block, TextView, WrapperBlock, Button } from \"components\";\nimport { connect } from \"react-redux\";\nimport { NoticeStatus } from \"components/notice\";\nimport { PAST_NOTICE } from \"./fakePastNotice\";\nimport { Colors, useNavigate } from \"utils\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { INFORMATION_TYPE } from \"../../utils/Constant\";\nimport { formatDateTime, DateTimeFormatter } from \"../../utils/DateUtility\";\nimport { usePrevious } from \"../../utils/hook\";\nimport { getInformation } from \"../../redux/actions/general\";\nimport { Alert } from \"../../App\";\nimport Title from \"components/common/Title\";\n\nconst PastNotice = (props) => {\n const navigate = useNavigate();\n const location = useLocation();\n const history = useHistory();\n const isAdmin = location.pathname.substring(1, 6) === \"admin\";\n const { information_type } = history?.location?.state;\n const [informationData, setInformationData] = useState([]);\n // let information_data = [];\n\n // console.log(\"hung officeInformationList:\", props.officeInformationList);\n\n useEffect(() => {\n props.getInformation({\n type: information_type,\n });\n }, []);\n\n const prevGettingInformationList = usePrevious(\n props.isGettingInformationList\n );\n useEffect(() => {\n if (prevGettingInformationList && !props.isGettingInformationList) {\n if (props.isGotInformationList) {\n setInformationData(\n information_type === INFORMATION_TYPE.TODAY\n ? props.todayInformationList\n : props.officeInformationList\n );\n }\n }\n }, [props.isGettingInformationList]);\n\n const showMessageDialog = (message) => {\n Alert.alert(\n \"\",\n message,\n [\n {\n label: \"OK\",\n primary: true,\n onPress: () => {\n Alert.hideModal();\n },\n },\n ],\n {},\n { alignItems: \"flex-start\", textAlign: \"left\" }\n );\n };\n\n return (\n <WrapperBlock>\n <Block flex={7}>\n <Title title={\"お知らせ\"} />\n <Block marginTop={20} marginBottom={10}>\n <TextView color={Colors.Primary} size={13}>\n {information_type == INFORMATION_TYPE.TODAY\n ? \"過去の通達事項\"\n : \"過去の事務からのお知らせ\"}\n </TextView>\n </Block>\n <Block\n block\n borderRightWidth=\"0pt\"\n borderLeftWidth=\"0pt\"\n borderColor={Colors.SecondPrimary}\n borderWidth=\"1pt\"\n paddingBottom=\"5pt\"\n >\n <ScrollView>\n {informationData.map((item, key) => (\n <NoticeStatus\n key={`${key}`}\n title={formatDateTime(\n item?.date,\n DateTimeFormatter.YYYY_MM_DD_JP_DOT\n )}\n content={item?.message}\n onPress={() => showMessageDialog(item?.message)}\n />\n ))}\n </ScrollView>\n </Block>\n </Block>\n <Block flex={3}>\n <Button\n // onPress={() => (isAdmin ? history.goBack() : navigate(\"/\"))}\n onPress={() => history.goBack()}\n smallCentered\n paddingVertical=\"8pt\"\n >\n <TextView bold size={12} color={Colors.White}>\n お知らせTOPへ\n </TextView>\n </Button>\n </Block>\n </WrapperBlock>\n );\n};\n\n// export default PastNotice;\n\nconst mapStateToProps = (state) => ({\n todayInformationList: state.general.todayInformationList,\n officeInformationList: state.general.officeInformationList,\n\n isGettingInformationList: state.general.isGettingInformationList,\n isGotInformationList: state.general.isGotInformationList,\n});\nconst mapDispatchToProps = {\n getInformation,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(PastNotice);\n","import React from \"react\";\nimport { StyleSheet, ScrollView, Image, View } from \"react-native\";\nimport { LIST_SAVED1 } from \"containers/account/fakeAcount\";\nimport Block from \"components/common/Block\";\nimport { Colors, useNavigate } from \"utils\";\nimport Button from \"components/common/Button\";\nimport { TextView } from \"components\";\nimport { defaultIcons } from \"assets/icons\";\nimport { TouchableOpacity } from \"react-native-web\";\nimport { Alert } from \"../../App\";\n\nconst styles = StyleSheet.create({\n borderDashed: {\n borderBottomWidth: 1,\n borderBottomColor: Colors.SecondPrimary,\n borderStyle: \"dashed\",\n },\n});\nconst ListSaved = ({ title, cart, type, onRecordPress, onDeletePress }) => {\n const navigate = useNavigate();\n const onPressNavigate = (pathname) => navigate(pathname);\n\n const showConfirmModal = (item) => {\n console.log(\"hung showConfirmModal item:\", item);\n Alert.alert(\"\", \"削除しますか?\", [\n {\n label: \"はい\",\n primary: true,\n onPress: () => {\n Alert.hideModal();\n onDeletePress(item);\n },\n },\n {\n label: \"いいえ\",\n primary: false,\n onPress: () => {\n Alert.hideModal();\n },\n },\n ]);\n };\n return (\n <Block>\n <Block\n paddingVertical={10}\n direction=\"row\"\n style={styles.borderDashed}\n style={{ flex: 3 }}\n >\n <Block\n justifyContent=\"flex-start\"\n alignItems=\"flex-start\"\n style={{ flex: 0.6 }}\n >\n <Button\n paddingVertical={6}\n paddingHorizontal={9}\n color={Colors.Primary}\n >\n <TextView bold size={\"9pt\"} color={Colors.White}>\n {title}\n </TextView>\n </Button>\n </Block>\n\n <Block\n style={{ flex: 2.4 }}\n paddingVertical={3}\n paddingRight={20}\n justifyContent=\"flex-start\"\n >\n {cart !== undefined &&\n cart !== null &&\n cart instanceof Array === false && (\n <Button onPress={onRecordPress}>\n <TextView size={15} color={Colors.Primary}>\n {cart?.code} / {cart?.customer_info?.name}\n </TextView>\n </Button>\n )}\n\n {cart !== undefined && cart !== null && cart instanceof Array && (\n <ScrollView style={{ height: 50 }}>\n {cart.map((item, index) => {\n return (\n <Button\n key={`${index}`}\n onPress={() => onRecordPress(item)}\n middle\n style={{ flexDirection: \"row\" }}\n >\n <TextView size={15} color={Colors.Primary}>\n {item?.code} / {item?.customer_info?.name}\n </TextView>\n <TouchableOpacity\n style={{\n backgroundColor: \"red\",\n padding: \"5pt\",\n marginRight: \"5pt\",\n marginStart: \"5pt\",\n borderRadius: \"20pt\",\n }}\n onPress={() => {\n showConfirmModal(item);\n }}\n >\n <Image\n resizeMode=\"contain\"\n source={defaultIcons.trash}\n style={{ height: \"10pt\", width: \"10pt\" }}\n />\n </TouchableOpacity>\n </Button>\n );\n })}\n </ScrollView>\n )}\n </Block>\n </Block>\n </Block>\n );\n};\nexport default ListSaved;\n","import React from 'react';\nimport Block from 'components/common/Block';\nimport { Colors } from 'utils';\nimport TextView from 'components/common/TextView';\n\nconst PATTERNS = [\n { backgroundColor: Colors.Primary, color: Colors.White },\n { backgroundColor: Colors.White, color: Colors.Primary },\n];\nconst SectionHeader = ({ title = '', patterns = 0 }) => {\n const pattern = PATTERNS[patterns];\n return (\n <Block\n marginTop={10}\n color={pattern.backgroundColor}\n paddingHorizontal={patterns === 0 ? 10 : 0}\n paddingVertical={5}\n >\n <TextView size={13} bold color={pattern.color}>\n {title}\n </TextView>\n </Block>\n );\n};\n\nexport default SectionHeader;\n","import React, { useState, useEffect } from \"react\";\nimport Block from \"components/common/Block\";\nimport Input from \"components/common/Input\";\nimport DateInput from \"components/common/DateInput\";\nimport { Colors } from \"utils\";\nimport TextView from \"components/common/TextView\";\nimport Button from \"components/common/Button\";\nimport InputWithSuggestion from \"components/common/InputWithSuggestion\";\nimport { connect } from \"react-redux\";\nimport { searchCustomers } from \"../../redux/actions/customer\";\nimport {\n formatDateTime,\n DateTimeFormatter,\n formatDateTimeLocal,\n} from \"../../utils/DateUtility\";\n\nconst PastQuote = ({ onPressNavigate, onSearch, onCalendarOpen, ...props }) => {\n const [\n searchCustomerTimeOutHandler,\n setSearchCustomerTimeOutHandler,\n ] = useState(undefined);\n const [fromDate, setFromDate] = useState(\"\");\n const [toDate, setToDate] = useState(\"\");\n const [customerName, setCustomerName] = useState(\"\");\n const [showLeftCalendar, setShowLeftCalendar] = useState(false);\n const [showRightCalendar, setShowRightCalendar] = useState(false);\n\n const searchCustomerHandler = (searchName) => {\n if (searchCustomerTimeOutHandler !== undefined)\n clearTimeout(searchCustomerTimeOutHandler);\n setSearchCustomerTimeOutHandler(\n setTimeout(() => {\n if (searchName !== \"\") {\n props.searchCustomers({\n name: searchName,\n });\n }\n }, 300)\n );\n };\n\n return (\n <Block>\n <Block direction=\"row\" marginTop={10}>\n <Block centered marginRight={10}>\n <TextView bold color={Colors.Primary}>\n 取引先で絞り込む\n </TextView>\n </Block>\n <Block block>\n {/* <Input paddingVertical={5} /> */}\n <InputWithSuggestion\n placeHolder={\"\"}\n label={\"\"}\n fetchApi={(searchName) => searchCustomerHandler(searchName)}\n data={props.searchCustomerResults}\n onSelectedItem={(item) => setCustomerName(item?.name)}\n inputPaddingVertical={5}\n />\n </Block>\n </Block>\n <Block>\n <TextView bold color={Colors.Primary}>\n 期間を指定する\n </TextView>\n </Block>\n <Block direction=\"row\" middle marginVertical={10}>\n <Block block style={{ zIndex: showLeftCalendar ? 2 : 1 }}>\n <DateInput\n onDateChange={(date) => {\n setFromDate(\n formatDateTimeLocal(date, DateTimeFormatter.YYYY_MM_DD_HYPHEN)\n );\n }}\n onCalendarOpen={() => {\n setShowLeftCalendar(true);\n setShowRightCalendar(false);\n onCalendarOpen();\n }}\n />\n </Block>\n <Block marginHorizontal={10}>\n <TextView regular h5 color={Colors.SecondPrimary}>\n ~\n </TextView>\n </Block>\n <Block block style={{ zIndex: showRightCalendar ? 2 : 1 }}>\n <DateInput\n onDateChange={(date) => {\n setToDate(\n formatDateTimeLocal(date, DateTimeFormatter.YYYY_MM_DD_HYPHEN)\n );\n }}\n onCalendarOpen={() => {\n setShowLeftCalendar(false);\n setShowRightCalendar(true);\n onCalendarOpen();\n }}\n />\n </Block>\n <Button\n onPress={() => onSearch(fromDate, toDate, customerName)}\n justifyContent=\"flex-end\"\n alignItems=\"flex-end\"\n paddingVertical={7}\n paddingHorizontal={20}\n color={Colors.SecondPrimary}\n borderRadius={5}\n marginLeft={10}\n >\n <TextView color={Colors.White} size={\"9pt\"} bold>\n 一覧を表示\n </TextView>\n </Button>\n </Block>\n </Block>\n );\n};\n\nconst mapStateToProps = (state) => ({\n searchCustomerResults: state.customer.searchCustomerResults,\n // isUpdatingCustomerEstimate: state.estimate.isUpdatingCustomerEstimate,\n // isUpdatedCustomerEstimate: state.estimate.isUpdatedCustomerEstimate,\n // updatedCustomerEstimate: state.estimate.updatedCustomerEstimate,\n // invoiceDetailSearchByProductName:\n // state.invoice.invoiceDetailSearchByProductName,\n // products: state.product.products,\n});\nconst mapDispatchToProps = {\n searchCustomers,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(PastQuote);\n","import React from \"react\";\nimport { StyleSheet } from \"react-native\";\nimport { Colors } from \"utils\";\nimport Block from \"components/common/Block\";\nimport Button from \"components/common/Button\";\nimport TextView from \"components/common/TextView\";\nimport { ACCOUNT_STATUS_FILTER_DATA } from \"../../utils/Constant\";\nimport { formatDateTime, DateTimeFormatter } from \"../../utils/DateUtility\";\nimport { useNavigate } from \"utils\";\nimport { STATUS_MANAGEMENT_RESULT_TYPE } from \"../../utils/Constant\";\n\nconst AccountStatusCart = ({ onPress = () => true, statusItem }) => {\n const navigate = useNavigate();\n\n const press = () => {\n if (statusItem.type === STATUS_MANAGEMENT_RESULT_TYPE.INVOICE) {\n navigate(\"invoice-review\", {\n invoice_id: statusItem.id,\n });\n } else if (statusItem.type === STATUS_MANAGEMENT_RESULT_TYPE.ESTIMATE) {\n navigate(\"estimate-review\", {\n estimate_id: statusItem.id,\n });\n } else if (statusItem.type === STATUS_MANAGEMENT_RESULT_TYPE.TRANSFER) {\n navigate(\"transfer-request/list\", {\n transfer_id: statusItem.id,\n });\n }\n };\n return (\n <Button activeOpacity={0.5} onPress={() => press()}>\n <Block style={styles.wrap}>\n <Button\n paddingHorizontal={15}\n paddingVertical={5}\n color={\n statusItem.status === ACCOUNT_STATUS_FILTER_DATA[0].type\n ? Colors.Red\n : statusItem.status === ACCOUNT_STATUS_FILTER_DATA[3].type\n ? \"#ffc107\"\n : Colors.WhiteDark03\n }\n >\n <TextView\n bold\n size={13}\n color={\n statusItem.status === ACCOUNT_STATUS_FILTER_DATA[3].type\n ? Colors.Black\n : Colors.White\n }\n >\n {ACCOUNT_STATUS_FILTER_DATA[statusItem.status].status_name}\n </TextView>\n </Button>\n\n <Block block marginLeft={20}>\n <TextView bold size={12} color={Colors.SecondPrimary}>\n {statusItem.name} {formatDateTime(statusItem.request_date)}{\" \"}\n {statusItem.customer_name}\n </TextView>\n </Block>\n </Block>\n </Button>\n );\n};\n\nexport default AccountStatusCart;\n\nconst styles = StyleSheet.create({\n wrap: {\n flexDirection: \"row\",\n alignItems: \"center\",\n borderBottomWidth: 1,\n borderStyle: \"dashed\",\n borderBottomColor: Colors.Primary,\n paddingVertical: 10,\n },\n});\n","import { createRequestTypes } from \"./utils\";\n\nexport const GET_ACCOUNT_CART = createRequestTypes(\"GET_ACCOUNT_CART\");\nexport const getAccountCart = (params) => ({\n type: GET_ACCOUNT_CART.REQUEST,\n params,\n});\n\nexport const GET_STATUS_MANAGEMENT = createRequestTypes(\n \"GET_STATUS_MANAGEMENT\"\n);\nexport const getStatusManagement = (params) => ({\n type: GET_STATUS_MANAGEMENT.REQUEST,\n params,\n});\n\nexport const SEARCH_ACCOUNT_VOUCHER = createRequestTypes(\n \"SEARCH_ACCOUNT_VOUCHER\"\n);\nexport const searchAccountVoucher = (params) => ({\n type: SEARCH_ACCOUNT_VOUCHER.REQUEST,\n params,\n});\n","import React, { useState, useEffect } from \"react\";\nimport { Image, ScrollView, View, Text } from \"react-native\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport { Block, TextView, Button } from \"components\";\nimport {\n ListSaved,\n SectionHeader,\n PastQuote,\n AccountStatusCart,\n} from \"components/account\";\nimport { Colors, useNavigate } from \"utils\";\nimport { defaultIcons } from \"assets/icons\";\nimport {\n getAccountCart,\n getStatusManagement,\n} from \"../../redux/actions/account\";\n\nimport { deleteEstimate } from \"../../redux/actions/estimate\";\nimport { connect } from \"react-redux\";\nimport {\n ACCOUNT_STATUS_FILTER_DATA,\n ACCOUNT_PREVIOUS_VOUCHER_TYPE,\n} from \"../../utils/Constant\";\n\nimport { usePrevious } from \"../../utils/hook\";\nimport Title from \"components/common/Title\";\n\n/**\n * 002-001 / アカウント\n * @param {*} props\n */\nconst Account = (props) => {\n const navigate = useNavigate();\n const [showSelect, setShowSelect] = useState(false);\n const [showInvoiceCanlendar, setShowInvoiceCanlendar] = useState(false);\n const [showEstimateCanlendar, setShowEstimateCanlendar] = useState(false);\n const [selectedFilterItem, setSelectedFilterItem] = useState(\n ACCOUNT_STATUS_FILTER_DATA[0]\n );\n\n useEffect(() => {\n props.getAccountCart();\n }, []);\n\n const onSelected = (filterItem) => {\n setSelectedFilterItem(filterItem);\n setShowSelect((prev) => !prev);\n };\n useEffect(() => {\n props.getStatusManagement({\n filter_type: selectedFilterItem.type,\n });\n }, [selectedFilterItem]);\n const onAccountInvoicePress = () => {\n navigate(\"purchase-supplier\", {});\n navigate(\"buy-review\", {\n new_invoice: props.accountCart?.account_invoice,\n });\n\n navigate(\"cart\", {\n invoice_id: props.accountCart?.account_invoice?.id,\n });\n };\n\n const prevDeletingEstimate = usePrevious(props.isDeletingEstimate);\n useEffect(() => {\n if (prevDeletingEstimate && !props.isDeletingEstimate) {\n if (props.isDeletedEstimate) {\n props.getAccountCart();\n }\n }\n }, [props.isDeletingEstimate]);\n\n // console.log(\"hung showCanlendar:\", showCanlendar);\n return (\n <Block paddingBottom={20} paddingHorizontal={\"24pt\"}>\n <Title title=\"マイアカウント\" />\n <SectionHeader title=\"保存中のリスト\" />\n <ListSaved\n title={\"仕入リスト\"}\n cart={props.accountCart?.account_invoice}\n onRecordPress={() => onAccountInvoicePress()}\n />\n\n <ListSaved\n title={\"見積書\"}\n cart={props.accountCart?.account_estimate}\n onRecordPress={(item) => {\n // console.log(\"hung item:\", item);\n navigate(\"quotation-list\", {\n estimate_id: item?.id,\n });\n }}\n onDeletePress={(item) => props.deleteEstimate({ estimate_id: item.id })}\n />\n <SectionHeader title=\"過去の仕切書\" />\n <View style={{ zIndex: showInvoiceCanlendar ? 2 : 1 }}>\n <PastQuote\n onSearch={(fromDate, toDate, customerName) => {\n navigate(\"past-dividers\", {\n title: \"仕切書一覧\",\n type: ACCOUNT_PREVIOUS_VOUCHER_TYPE.INVOICE,\n from_date: fromDate,\n to_date: toDate,\n customer_name: customerName,\n });\n }}\n onPressNavigate={() =>\n navigate(\"past-dividers\", { title: \"仕切書一覧\" })\n }\n onCalendarOpen={() => {\n setShowInvoiceCanlendar(true);\n setShowEstimateCanlendar(false);\n }}\n />\n </View>\n <SectionHeader title=\"過去の見積書\" />\n <View style={{ zIndex: showEstimateCanlendar ? 2 : 1 }}>\n <PastQuote\n onSearch={(fromDate, toDate, customerName) => {\n navigate(\"past-dividers\", {\n title: \"見積書一覧\",\n type: ACCOUNT_PREVIOUS_VOUCHER_TYPE.ESTIMATE,\n from_date: fromDate,\n to_date: toDate,\n customer_name: customerName,\n });\n }}\n onCalendarOpen={() => {\n setShowInvoiceCanlendar(false);\n setShowEstimateCanlendar(true);\n }}\n />\n </View>\n <Block direction=\"row\" style={{ zIndex: 1 }}>\n <Block block>\n <TextView paddingVertical={8} size={13} color={Colors.Primary} bold>\n ステータス管理\n </TextView>\n </Block>\n <Button\n block\n onPress={() => setShowSelect((prev) => !prev)}\n style={{ flex: 1.5 }}\n >\n <Block\n flex={1.5}\n borderWidth={1}\n borderRadius={5}\n borderColor={Colors.SecondPrimary}\n direction=\"row\"\n justifyContent=\"space-between\"\n paddingHorizontal={10}\n middle\n >\n <TextView size=\"10pt\" color={Colors.Primary} regular>\n {selectedFilterItem.name}\n </TextView>\n <Image\n source={defaultIcons.caret_down}\n style={{ height: 10, width: 15 }}\n />\n </Block>\n </Button>\n <Block block />\n </Block>\n <Block direction=\"row\" style={{ zIndex: 1 }}>\n <Block block />\n <Block flex={1.5}>\n {showSelect && <Select onSelected={onSelected} />}\n </Block>\n <Block block />\n </Block>\n <Block\n borderWidth={2}\n borderColor={Colors.SecondPrimary}\n height={150}\n marginTop={10}\n style={{ borderRightWidth: 0, borderLeftWidth: 0 }}\n >\n <ScrollView>\n {props.statusManagementList?.map((item, key) => (\n <Block key={`${key}`}>\n <AccountStatusCart\n statusItem={item}\n patterns={key < 1 ? 1 : 2}\n title=\"未処理\"\n content=\"振込依頼:2020年5月25日・兼光解体\"\n />\n </Block>\n ))}\n </ScrollView>\n </Block>\n </Block>\n );\n};\n\n// export default Account;\n\nconst mapStateToProps = (state) => ({\n accountCart: state.account.accountCart,\n statusManagementList: state.account.statusManagementList,\n isDeletingEstimate: state.estimate.isDeletingEstimate,\n isDeletedEstimate: state.estimate.isDeletedEstimate,\n});\nconst mapDispatchToProps = {\n getAccountCart,\n getStatusManagement,\n deleteEstimate,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Account);\n\nconst Select = ({ onSelected }) => {\n return (\n <Block\n position=\"absolute\"\n height=\"122pt\"\n borderWidth=\"1pt\"\n borderColor={Colors.SecondPrimary}\n borderRadius=\"3pt\"\n width=\"100%\"\n color={Colors.White}\n bottom=\"-122pt\"\n style={{\n zIndex: 1,\n }}\n >\n <ScrollView>\n {ACCOUNT_STATUS_FILTER_DATA.map((item, index) => (\n <Button\n key={`${index}`}\n onPress={() => {\n onSelected(item);\n }}\n style={{\n borderBottomWidth: 1,\n borderBottomColor: Colors.SecondPrimary,\n paddingVertical: 10,\n }}\n >\n <TextView size=\"10pt\" color={Colors.Primary} regular>\n {item.name}\n </TextView>\n </Button>\n ))}\n </ScrollView>\n </Block>\n );\n};\n","import React from \"react\";\nimport Modal from \"modal-enhanced-react-native-web\";\nimport { TextView, Button, Block } from \"components\";\nimport { Colors } from \"utils\";\nimport { Dimensions } from \"react-native-web\";\nimport { formatDateTime, DateTimeFormatter } from \"../../utils/DateUtility\";\nimport { formatMoney, MoneyFormatter } from \"../../utils/MoneyFormatter\";\n\nconst { height } = Dimensions.get(\"window\");\nconst ModalPurchase = ({\n isVisible,\n onClose,\n onConfirm,\n customer_transfer,\n}) => {\n console.log(isVisible);\n return (\n <Modal backdropOpacity={0} {...{ isVisible }}>\n <Block\n width=\"270pt\"\n color=\"white\"\n borderWidth=\"1pt\"\n borderColor={Colors.Primary}\n borderRadius=\"5pt\"\n padding=\"10pt\"\n position=\"absolute\"\n alignSelf=\"center\"\n marginTop={-height * 0.15}\n >\n <TextView size=\"12pt\" color={Colors.SecondPrimary} regular>\n 対象の取引先に下記の取引未完了事前振込依頼が あります。\n </TextView>\n <Block\n height=\"0.5pt\"\n color={Colors.SecondPrimary}\n marginVertical=\"10pt\"\n />\n <TextView size=\"10pt\" color={Colors.SecondPrimary} regular>\n 取引先名:{customer_transfer?.name}\n </TextView>\n <TextView size=\"10pt\" color={Colors.SecondPrimary} regular>\n 取引日:\n {formatDateTime(\n customer_transfer?.transfer_info?.date,\n DateTimeFormatter.MM_DD_JP\n )}{\" \"}\n 振込期日:\n {formatDateTime(\n customer_transfer?.transfer_info?.limit_date,\n DateTimeFormatter.MM_DD_JP\n )}\n </TextView>\n <TextView size=\"10pt\" color={Colors.SecondPrimary} regular>\n 振込金額:{formatMoney(customer_transfer?.transfer_info?.total_price)}{\" \"}\n 円{\" \"}\n ステータス:{customer_transfer?.transfer_info?.status}\n </TextView>\n <Block\n height=\"0.5pt\"\n color={Colors.SecondPrimary}\n marginVertical=\"10pt\"\n />\n <TextView center size=\"12pt\" color={Colors.SecondPrimary} regular>\n この取引に読み込みますか?\n </TextView>\n <Block\n direction=\"row\"\n justifyContent=\"space-around\"\n paddingHorizontal=\"20%\"\n marginVertical={25}\n >\n <Button\n paddingVertical=\"5pt\"\n paddingHorizontal=\"15pt\"\n color={Colors.SecondPrimary}\n borderRadius=\"3pt\"\n onPress={onConfirm}\n >\n <TextView size=\"9pt\" bold color={Colors.White}>\n は い\n </TextView>\n </Button>\n <Button\n onPress={onClose}\n paddingVertical=\"5pt\"\n paddingHorizontal=\"15pt\"\n color={Colors.SecondPrimary}\n borderRadius=\"3pt\"\n >\n <TextView size=\"9pt\" bold color={Colors.White}>\n いいえ\n </TextView>\n </Button>\n </Block>\n </Block>\n </Modal>\n );\n};\n\nexport default ModalPurchase;\n","import React, { useState, useEffect } from \"react\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport { Title, Block, Button, TextView } from \"components\";\nimport Input from \"components/common/Input\";\nimport InputWithSuggestion from \"components/common/InputWithSuggestion\";\nimport { Colors, useNavigate } from \"utils\";\nimport ModalPurchase from \"components/modal/ModalPurchase\";\nimport { connect } from \"react-redux\";\nimport {\n updateCustomer,\n insertProductsToInvoice,\n} from \"../../redux/actions/invoice\";\n// import { getTransferCustomers } from \"../../redux/actions/transfer\";\nimport {\n searchCustomerTransfer,\n getCustomerTransfer,\n} from \"../../redux/actions/customer\";\nimport { usePrevious } from \"../../utils/hook\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { useWindowDimensions } from \"react-native-web\";\nimport { reset_cart, checkCart } from \"../../redux/actions/home\";\nimport { Alert } from \"../../App\";\nimport {\n TabView,\n ContentTab,\n Footer,\n InvoiceConfirm,\n EstimateConfirm,\n} from \"components/home\";\nimport { ACCOUNT_PREVIOUS_VOUCHER_TYPE } from \"../../utils/Constant\";\n\n/**\n * Screen: 003-001-1 / 仕入査定・取引先入力\n * Screen: 003-001-2 / 仕入査定・取引先入力\n * @returns {*}\n * @constructor\n */\nconst PurchaseSupplier = (props) => {\n const navigate = useNavigate();\n const location = useLocation();\n\n const { width } = useWindowDimensions();\n\n const [isVisible, setIsVisible] = React.useState(false);\n const [selectedCustomer, setSelectedCustomer] = useState(undefined);\n const [newCustomerName, setNewCustomerName] = useState(\"\");\n const [useTransfer, setUseTransfer] = useState(false);\n\n const history = useHistory();\n const {\n from_home,\n choose_estimate_from_estimate_review,\n } = history?.location?.state;\n\n useEffect(() => {\n props.checkCart();\n if (choose_estimate_from_estimate_review !== undefined) {\n props.getCustomerTransfer({\n customer_id: choose_estimate_from_estimate_review?.customer_info?.id,\n });\n }\n }, []);\n\n const prevGettingCustomerTransfer = usePrevious(\n props.isGettingCustomerTransfer\n );\n useEffect(() => {\n if (prevGettingCustomerTransfer && !props.isGettingCustomerTransfer) {\n if (props.isGotCustomerTransfer) {\n setSelectedCustomer(props.customerTransfer);\n }\n }\n }, [props.isGettingCustomerTransfer]);\n\n const next = () => {\n // props.reset_cart({ type: \"1\" });\n\n if (selectedCustomer !== undefined) {\n const customer = selectedCustomer;\n if (\n customer.transfer_info !== undefined &&\n customer.transfer_info !== null\n ) {\n setIsVisible(true);\n } else {\n setUseTransfer(false);\n props.updateCustomer({\n invoice_id: -1, // create new invoice\n customer_id: selectedCustomer?.id,\n customer_name: \"\",\n });\n }\n } else if (newCustomerName !== \"\") {\n // Insert a new record into table customers\n //Go to [003-002-1 / 仕入査定]\n props.updateCustomer({\n invoice_id: -1, // create new invoice\n customer_id: -1,\n customer_name: newCustomerName,\n });\n }\n };\n\n const onModalDeny = () => {\n setIsVisible(false);\n setUseTransfer(false);\n props.updateCustomer({\n invoice_id: -1, // create new invoice\n customer_id: selectedCustomer?.id,\n customer_name: \"\",\n });\n };\n const onModalConfirm = () => {\n setIsVisible(false);\n setUseTransfer(true);\n props.updateCustomer({\n invoice_id: -1, // create new invoice\n customer_id: selectedCustomer?.id,\n customer_name: \"\",\n });\n };\n\n const prevUpdatingCustomer = usePrevious(props.isUpdatingCustomer);\n useEffect(() => {\n if (prevUpdatingCustomer && !props.isUpdatingCustomer) {\n if (props.isUpdatedCustomer) {\n props.checkCart();\n if (choose_estimate_from_estimate_review !== undefined) {\n insertEstimateProductToInvoice(props.updatedCustomerInvoice);\n } else {\n //go to [003-002-1 / 仕入査定], update customer_id\n navigate(\"buy-review\", {\n new_invoice: props.updatedCustomerInvoice,\n use_transfer: useTransfer,\n });\n }\n }\n }\n }, [props.isUpdatingCustomer]);\n\n const insertEstimateProductToInvoice = (newInvoice) => {\n const data = choose_estimate_from_estimate_review?.estimate_details?.map(\n (item) => {\n return {\n id: item?.product_info?.id,\n name: item?.product_info?.name,\n amount: 0,\n unit_price: 0,\n price: 0,\n tax: 0,\n total_price: 0,\n is_delete_product: false,\n };\n }\n );\n props.insertProductsToInvoice({\n invoice_id: newInvoice?.id,\n is_clear_invoice_detail: false,\n products: data,\n });\n };\n\n const prevInsertingProductToInvoice = usePrevious(\n props.isInsertingProductToInvoice\n );\n useEffect(() => {\n if (prevInsertingProductToInvoice && !props.isInsertingProductToInvoice) {\n if (props.isInsertedProductToInvoice) {\n // when have choose_estimate_from_estimate_review will insert ProductToInvoice\n // after that go to buy-review\n //go to [003-002-1 / 仕入査定], update customer_id\n props.checkCart();\n navigate(\"buy-review\", {\n new_invoice: props.updatedCustomerInvoice,\n use_transfer: useTransfer,\n });\n } else {\n }\n }\n }, [props.isInsertingProductToInvoice]);\n\n const searchCustomerTransfer = (searchName) => {\n props.searchCustomerTransfer({\n customer_name: searchName,\n });\n };\n\n const prevCheckingCart = usePrevious(props.isCheckingCart);\n useEffect(() => {\n if (prevCheckingCart && !props.isCheckingCart) {\n if (\n props.isCheckedCart &&\n location.pathname.includes(\"purchase-supplier\")\n ) {\n if (props.cart.is_invoice_empty) {\n // clear the cart, and go to [003-001-1 / 仕入査定・取引先入力]\n // props.reset_cart({ type: \"1\" });\n } else {\n if (\n choose_estimate_from_estimate_review === undefined ||\n choose_estimate_from_estimate_review === null\n ) {\n showInvoiceConfirmModal();\n }\n }\n }\n }\n }, [props.isCheckingCart]);\n\n const showInvoiceConfirmModal = () => {\n Alert.alert(\"\", <InvoiceConfirm invoice={props.cart?.invoice} />, [\n {\n label: \"はい\",\n primary: true,\n onPress: () => {\n // go direct to [003-003-1 / 仕入リスト], but must go though 003-001,003-002\n navigate(\"buy-review\", {\n // 003-002\n new_invoice: props.cart?.invoice,\n });\n\n navigate(\"cart\", {\n invoice_id: props.cart?.invoice?.id,\n });\n Alert.hideModal();\n },\n },\n {\n label: \"いいえ(破棄)\",\n primary: false,\n onPress: () => {\n // clear the cart, and go to [003-001-1 / 仕入査定・取引先入力]\n props.reset_cart({ type: \"1\" });\n Alert.hideModal();\n },\n },\n ]);\n };\n\n const prevResettingCart = usePrevious(props.isResettingCart);\n useEffect(() => {\n if (prevResettingCart && !props.isResettingCart) {\n if (props.isResetCartFinish) {\n }\n }\n }, [props.isResettingCart]);\n\n return (\n <>\n <Block paddingBottom=\"10pt\" paddingHorizontal=\"24pt\">\n <Block flex={6}>\n <Title title={\"仕入査定 / 取引先入力\"} />\n\n <InputWithSuggestion\n placeHolder={\"\"}\n label={\"取引先検索\"}\n fetchApi={(searchName) => searchCustomerTransfer(searchName)}\n data={props.customerTransferList}\n onSelectedItem={(item) => setSelectedCustomer(item)}\n />\n <Button\n onPress={() => {\n navigate(\"past-dividers\", {\n title: \"見積書一覧\",\n type: ACCOUNT_PREVIOUS_VOUCHER_TYPE.ESTIMATE,\n from_date: \"\",\n to_date: \"\",\n customer_name: \"\",\n });\n }}\n >\n <Block\n color={Colors.SecondPrimary}\n width={\"40%\"}\n height={50}\n centered\n middle\n borderRadius={5}\n marginTop={20}\n >\n <TextView bold color={Colors.White} h5>\n 見積書を選択\n </TextView>\n </Block>\n </Button>\n </Block>\n <Block flex={4}>\n <Block marginTop=\"5pt\">\n <Input\n paddingVertical={15}\n hideIcon\n disabled\n defaultValue={\n choose_estimate_from_estimate_review !== undefined\n ? choose_estimate_from_estimate_review?.customer_info?.name\n : \"\"\n }\n />\n </Block>\n <Block marginTop={20}>\n <Input\n paddingVertical={15}\n hideIcon\n label={\"新規取引先\"}\n onChangeText={(value) => setNewCustomerName(value)}\n />\n </Block>\n <Block width=\"100%\" marginTop=\"40pt\">\n <Button\n onPress={() => next()}\n smallCentered\n width={width / 3.75}\n paddingVertical=\"8pt\"\n middle\n >\n <TextView bold color={Colors.White} h5>\n 次 へ\n </TextView>\n </Button>\n </Block>\n </Block>\n </Block>\n <ModalPurchase\n {...{ isVisible }}\n onClose={() => {\n onModalDeny();\n }}\n onConfirm={() => onModalConfirm()}\n customer_transfer={selectedCustomer}\n />\n </>\n );\n};\n\nconst mapStateToProps = (state) => ({\n // transferCustomers: state.transfer.transferCustomers,\n isUpdatingCustomer: state.invoice.isUpdatingCustomer,\n isUpdatedCustomer: state.invoice.isUpdatedCustomer,\n updatedCustomerInvoice: state.invoice.updatedCustomerInvoice,\n\n customerTransferList: state.customer.customerTransferList,\n\n isCheckedCart: state.home.isCheckedCart,\n isCheckingCart: state.home.isCheckingCart,\n cart: state.home.cart,\n\n isResettingCart: state.home.isResettingCart,\n isResetCartFinish: state.home.isResetCartFinish,\n newCart: state.home.newCart,\n\n isGettingCustomerTransfer: state.customer.isGettingCustomerTransfer,\n isGotCustomerTransfer: state.customer.isGotCustomerTransfer,\n customerTransfer: state.customer.customerTransfer,\n isInsertingProductToInvoice: state.invoice.isInsertingProductToInvoice,\n isInsertedProductToInvoice: state.invoice.isInsertedProductToInvoice,\n});\nconst mapDispatchToProps = {\n // getTransferCustomers,\n updateCustomer,\n searchCustomerTransfer,\n getCustomerTransfer,\n checkCart,\n reset_cart,\n insertProductsToInvoice,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(PurchaseSupplier);\n","import React, { useState, useEffect } from \"react\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport { StyleSheet, FlatList, Image, TouchableOpacity } from \"react-native\";\nimport { Title, Block, Button, TextView, WrapperBlock } from \"components\";\nimport Input from \"components/common/Input\";\nimport { Colors, useNavigate } from \"utils\";\nimport { CUSTOMER } from \"containers/purchase-supplier/fakePurchaseSupplier\";\nimport { defaultIcons } from \"assets/icons\";\nimport { useHistory } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { searchCustomers } from \"../../redux/actions/customer\";\nimport { updateCustomerEstimate } from \"../../redux/actions/estimate\";\nimport { usePrevious } from \"../../utils/hook\";\nimport InputWithSuggestion from \"components/common/InputWithSuggestion\";\nimport { Dimensions, useWindowDimensions } from \"react-native-web\";\n\nconst styles = StyleSheet.create({\n list: {\n width: \"90%\",\n alignSelf: \"flex-end\",\n borderWidth: 1,\n borderColor: Colors.SecondPrimary,\n borderRadius: 5,\n borderTopWidth: 0,\n },\n});\n\n/**\n * 003-007-1 / 見積・取引先入力\n */\nconst QuotationSupplier = (props) => {\n const navigate = useNavigate();\n const onPressNavigate = (pathname) => navigate(pathname);\n const [selectedCustomer, setSelectedCustomer] = useState(undefined);\n const [newCustomerName, setNewCustomerName] = useState(\"\");\n const [withoutCustomer, setWithoutCustomer] = useState(false);\n const { width } = useWindowDimensions();\n const history = useHistory();\n // const { new_estimate } = history?.location?.state;\n\n const next = () => {\n if (withoutCustomer) {\n props.updateCustomerEstimate({\n estimate_id: -1, //create new estimate\n customer_id: 0,\n customer_name: \"\",\n });\n } else if (selectedCustomer !== undefined) {\n props.updateCustomerEstimate({\n estimate_id: -1, //create new estimate\n customer_id: selectedCustomer?.id,\n customer_name: \"\",\n });\n } else if (newCustomerName !== \"\") {\n props.updateCustomerEstimate({\n estimate_id: -1, //create new estimate\n customer_id: -1,\n customer_name: newCustomerName,\n });\n }\n };\n\n const prevUpdatingCustomer = usePrevious(props.isUpdatingCustomerEstimate);\n useEffect(() => {\n if (prevUpdatingCustomer && !props.isUpdatingCustomerEstimate) {\n if (props.isUpdatedCustomerEstimate) {\n //go to [003-008-1 / 見積, update customer_id\n navigate(\"estimate\", {\n new_estimate: props.updatedCustomerEstimate,\n });\n }\n }\n }, [props.isUpdatingCustomerEstimate]);\n\n const searchCustomerHandler = (searchName) => {\n props.searchCustomers({\n name: searchName,\n });\n };\n\n return (\n <WrapperBlock>\n <Title title={\"見積作成 / 取引先入力\"} />\n\n <InputWithSuggestion\n placeHolder={\"\"}\n label={\"取引先検索\"}\n fetchApi={(searchName) => searchCustomerHandler(searchName)}\n data={props.searchCustomerResults}\n onSelectedItem={(item) => setSelectedCustomer(item)}\n />\n <Block block>\n <Block marginTop={\"20pt\"}>\n <Input\n paddingVertical={\"15pt\"}\n hideIcon\n label={\"新規取引先\"}\n onChangeText={(value) => setNewCustomerName(value)}\n />\n </Block>\n <Block direction=\"row\" marginTop={\"20pt\"} height={\"20pt\"} middle>\n <Button onPress={() => setWithoutCustomer((prev) => !prev)}>\n <Image\n style={{ height: \"18pt\", width: \"18pt\" }}\n source={\n withoutCustomer\n ? defaultIcons.check_success\n : defaultIcons.check_none\n }\n />\n </Button>\n <Block marginLeft={\"10pt\"}>\n <TextView color={Colors.SecondPrimary} size={\"12pt\"} on>\n 取引先を指定せずに見積を作成する\n </TextView>\n </Block>\n </Block>\n <Block width=\"100%\" position=\"absolute\" bottom=\"30pt\">\n <Button\n onPress={() => next()}\n smallCentered\n paddingVertical=\"10pt\"\n width={width * (100 / 375)}\n middle\n >\n <TextView bold color={Colors.White} size={\"12pt\"}>\n 次 へ\n </TextView>\n </Button>\n </Block>\n </Block>\n </WrapperBlock>\n );\n};\n\nconst mapStateToProps = (state) => ({\n searchCustomerResults: state.customer.searchCustomerResults,\n isUpdatingCustomerEstimate: state.estimate.isUpdatingCustomerEstimate,\n isUpdatedCustomerEstimate: state.estimate.isUpdatedCustomerEstimate,\n updatedCustomerEstimate: state.estimate.updatedCustomerEstimate,\n});\nconst mapDispatchToProps = {\n searchCustomers,\n updateCustomerEstimate,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(QuotationSupplier);\n","import React from \"react\";\nimport Block from \"components/common/Block\";\nimport TextView from \"components/common/TextView\";\nimport { Colors } from \"utils\";\nimport Button from \"components/common/Button\";\nimport { TouchableOpacity } from \"react-native-web\";\n\nconst PreviewItem = ({\n isHeader = false,\n value1 = \"\",\n value2 = \"\",\n value3 = \"\",\n value4,\n blocks = [3, 1, 1, 1],\n centers = [\"left\", \"left\", \"left\", \"left\"],\n onPress,\n onValue1Press,\n onValue2Press,\n onValue3Press,\n onValue4Press,\n}) => {\n return (\n <Block\n direction=\"row\"\n borderBottomWidth=\"1pt\"\n borderBottomColor={Colors.Primary}\n borderStyle={isHeader ? \"solid\" : \"dashed\"}\n paddingVertical=\"7pt\"\n >\n <Block flex={blocks[0]}>\n <TouchableOpacity\n onPress={() => {\n if (onValue1Press !== undefined) onValue1Press();\n }}\n >\n <TextView\n size={isHeader ? \"11pt\" : \"11pt\"}\n color={Colors.Primary}\n style={{\n fontWeight: isHeader ? \"bold\" : \"400\",\n textAlign: centers[0],\n }}\n >\n {value1}\n </TextView>\n </TouchableOpacity>\n </Block>\n <Block flex={blocks[1]}>\n <TouchableOpacity\n onPress={() => {\n if (onValue2Press !== undefined) onValue2Press();\n }}\n >\n <TextView\n size={isHeader ? \"11pt\" : \"11pt\"}\n color={Colors.Primary}\n style={{\n fontWeight: isHeader ? \"bold\" : \"400\",\n textAlign: centers[1],\n }}\n >\n {value2}\n </TextView>\n </TouchableOpacity>\n </Block>\n <Block flex={blocks[2]}>\n <TouchableOpacity\n onPress={() => {\n if (onValue3Press !== undefined) onValue3Press();\n }}\n >\n <TextView\n size={isHeader ? \"11pt\" : \"11pt\"}\n color={Colors.Primary}\n style={{\n fontWeight: isHeader ? \"bold\" : \"400\",\n textAlign: centers[2],\n }}\n >\n {value3}\n </TextView>\n </TouchableOpacity>\n </Block>\n <Block flex={blocks[3]}>\n <TouchableOpacity\n onPress={() => {\n if (onValue4Press !== undefined) onValue4Press();\n }}\n >\n {React.isValidElement(value4) ? (\n value4\n ) : (\n <TextView\n size={isHeader ? \"11pt\" : \"11pt\"}\n color={Colors.Primary}\n style={{\n fontWeight: isHeader ? \"bold\" : \"400\",\n textAlign: centers[3],\n }}\n >\n {value4}\n </TextView>\n )}\n </TouchableOpacity>\n </Block>\n </Block>\n );\n};\n\nexport default PreviewItem;\n","import React, { useState, useEffect } from \"react\";\nimport { View, Text, ScrollView, StyleSheet, Image } from \"react-native\";\nimport { Block, Button, TextView, WrapperBlock } from \"components\";\n\nimport { PreviewItem } from \"components/partition-preview\";\nimport { useLocation } from \"react-router-dom\";\nimport { useHistory } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { searchAccountVoucher } from \"../../redux/actions/account\";\nimport { formatDateTime, DateTimeFormatter } from \"../../utils/DateUtility\";\nimport { commonIcons } from \"assets/icons\";\nimport { usePrevious } from \"../../utils/hook\";\nimport Back from \"components/common/Back\";\nimport { Colors, Metrics, nor, useNavigate } from \"utils\";\nimport {\n ACCOUNT_PREVIOUS_VOUCHER_TYPE,\n ACCOUNT_STATUS_FILTER_DATA,\n} from \"../../utils/Constant\";\nimport Title from \"components/common/Title\";\n\n/**\n * 002-002 / 過去の仕切書\n * 002-003 / 過去の見積書\n * @param {*} props\n */\nconst PastDividers = (props) => {\n const navigate = useNavigate();\n const location = useLocation();\n const history = useHistory();\n const { type, from_date, to_date, customer_name } = history?.location?.state;\n const [sortedAccountVoucherList, setSortedAccountVoucherList] = useState([]);\n console.log(\"hung type:\", type);\n const [sortAscending, setSortAscending] = useState({\n sortDate: true,\n sortCustomer: true,\n sortCode: true,\n });\n\n const setSortAscendingValue = (key, value) => {\n setSortAscending((prev) => ({\n ...prev,\n [key]: value,\n }));\n };\n\n const prevSearchingAccountVoucher = usePrevious(\n props.isSearchingAccountVoucher\n );\n useEffect(() => {\n if (prevSearchingAccountVoucher && !props.isSearchingAccountVoucher) {\n if (props.isSearchedAccountVoucher) {\n setSortedAccountVoucherList(props.searchAccountVoucherList);\n }\n }\n }, [props.isSearchingAccountVoucher]);\n\n const sortDataHandler = (sortType) => {\n const data = sortedAccountVoucherList.sort((a, b) => {\n if (sortType === 1) {\n setSortAscendingValue(\"sortDate\", !sortAscending.sortDate);\n if (a?.date > b?.date) return !sortAscending.sortDate ? 1 : -1;\n if (a?.date < b?.date) return !sortAscending.sortDate ? -1 : 1;\n return 0;\n } else if (sortType === 2) {\n setSortAscendingValue(\"sortCustomer\", !sortAscending.sortCustomer);\n if (a?.customer_name > b?.customer_name)\n return !sortAscending.sortCustomer ? 1 : -1;\n if (a?.customer_name < b?.customer_name)\n return !sortAscending.sortCustomer ? -1 : 1;\n return 0;\n } else if (sortType === 3) {\n //単価順: Sort by Product Price\n setSortAscendingValue(\"sortCode\", !sortAscending.sortCode);\n if (a?.voucher_code > b?.voucher_code)\n return !sortAscending.sortCode ? 1 : -1;\n if (a?.voucher_code < b?.voucher_code)\n return !sortAscending.sortCode ? -1 : 1;\n return 0;\n }\n });\n\n setSortedAccountVoucherList(data);\n };\n\n const onPressNavigate = () => {\n navigate(\"quotation-review\", { pattern: \"002-003\" });\n };\n\n useEffect(() => {\n props.searchAccountVoucher({\n type: type,\n from_date: from_date,\n to_date: to_date,\n customer_name: customer_name !== undefined ? customer_name : \"\",\n });\n }, []);\n\n const onRecordPress = (item) => {\n if (type === ACCOUNT_PREVIOUS_VOUCHER_TYPE.ESTIMATE) {\n navigate(\"estimate-review\", {\n estimate_id: item?.voucher_id,\n });\n } else if (type === ACCOUNT_PREVIOUS_VOUCHER_TYPE.INVOICE) {\n navigate(\"invoice-review\", {\n invoice_id: item?.voucher_id,\n });\n }\n };\n return (\n <WrapperBlock>\n <Block block paddingBottom=\"30pt\">\n <Title\n backTitle={\"戻る\"}\n title={\n type === ACCOUNT_PREVIOUS_VOUCHER_TYPE.INVOICE\n ? \"仕切書一覧\"\n : \"見積書一覧\"\n }\n />\n {/* <View style={styles.titleWrap}>\n <Back label={\"戻る\"} />\n <Text style={styles.title}>\n {location?.state?.title ? location?.state?.title : \"仕切書一覧\"}\n </Text>\n </View> */}\n\n <Block\n direction=\"row\"\n paddingVertical=\"6.5pt\"\n borderTopWidth=\"1pt\"\n borderTopColor={Colors.Primary}\n marginTop=\"10pt\"\n >\n <Block flex={2}>\n <Button onPress={() => sortDataHandler(1)}>\n <TextView bold size=\"10pt\" color={Colors.Primary}>\n 取引日 ▼\n </TextView>\n </Button>\n </Block>\n <Block flex={2}>\n <Button onPress={() => sortDataHandler(2)}>\n <TextView bold size=\"10pt\" color={Colors.Primary}>\n 取引先 ▼\n </TextView>\n </Button>\n </Block>\n <Block flex={4}>\n <Button onPress={() => sortDataHandler(3)}>\n <TextView bold size=\"10pt\" color={Colors.Primary}>\n {type == ACCOUNT_PREVIOUS_VOUCHER_TYPE.ESTIMATE\n ? \"見積書コード ▼\"\n : \"仕切書コード ▼\"}\n </TextView>\n </Button>\n </Block>\n <Block block />\n </Block>\n <Block\n borderWidth=\"1pt\"\n borderColor={Colors.Primary}\n borderRightWidth=\"0pt\"\n borderLeftWidth=\"0pt\"\n block\n >\n <ScrollView>\n {sortedAccountVoucherList?.map((item, index) => (\n <PreviewItem\n key={`${index}`}\n value1={formatDateTime(\n item.date,\n DateTimeFormatter.YYYY_MM_DD_JP_DOT\n )}\n value2={item.customer_name}\n value3={item.voucher_code}\n value4={\n item.pdf_url !== undefined &&\n item.pdf_url !== \"\" && (\n <Image\n source={commonIcons.pdf}\n style={{ height: \"15pt\", width: \"12pt\" }}\n resizeMode=\"contain\"\n />\n )\n }\n centers={[1, 1, 1, 1]}\n blocks={[2, 2, 4, 1]}\n onValue1Press={() => onRecordPress(item)}\n onValue2Press={() => onRecordPress(item)}\n onValue3Press={() => onRecordPress(item)}\n onValue4Press={() => window.open(item.pdf_url)}\n />\n ))}\n </ScrollView>\n </Block>\n </Block>\n </WrapperBlock>\n );\n};\n\nconst styles = StyleSheet.create({\n wrap: {\n flex: 1,\n paddingBottom: 20,\n paddingHorizontal: 24,\n },\n titleWrap: {\n flexDirection: \"row\",\n alignItems: \"center\",\n borderBottomWidth: 2,\n borderBottomColor: Colors.WhiteDark03,\n paddingVertical: nor(15),\n },\n title: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n marginLeft: 10,\n fontSize: nor(18),\n },\n});\n\nconst mapStateToProps = (state) => ({\n searchAccountVoucherList: state.account.searchAccountVoucherList,\n isSearchingAccountVoucher: state.account.isSearchingAccountVoucher,\n isSearchedAccountVoucher: state.account.isSearchedAccountVoucher,\n});\nconst mapDispatchToProps = {\n searchAccountVoucher,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(PastDividers);\n","import React from \"react\";\nimport { Colors } from \"utils\";\nimport Block from \"components/common/Block\";\nimport TextView from \"components/common/TextView\";\n\nconst TextItem = ({ value1, value2, value3, value4, last }) => {\n return (\n <Block\n direction={false}\n paddingVertical=\"5pt\"\n borderBottomWidth=\"1pt\"\n borderBottomColor={Colors.Primary}\n borderStyle={last ? \"solid\" : \"dashed\"}\n >\n <Block direction=\"row\" flex={1}>\n <Block flex={1} direction=\"row\">\n <TextView\n size=\"13pt\"\n backgroundColor={Colors.Primary}\n color={Colors.White}\n center\n regular\n paddingHorizontal={\"5pt\"}\n >\n {value1}\n </TextView>\n <Block center marginHorizontal={\"5pt\"}>\n <TextView size=\"13pt\" color={Colors.Primary} regular>\n {value2}\n </TextView>\n </Block>\n </Block>\n\n <Block flex={4} direction=\"row\" justifyContent=\"flex-end\">\n <TextView size=\"13pt\" color={Colors.Primary} regular>\n {value3}\n </TextView>\n </Block>\n </Block>\n <Block direction=\"row\" justifyContent=\"flex-end\">\n <TextView size=\"13pt\" color={Colors.Primary} regular>\n {value4}\n </TextView>\n </Block>\n </Block>\n );\n};\nTextItem.defaultProps = {\n value1: \"\",\n value2: \"\",\n value3: \"\",\n value4: \"\",\n last: false,\n};\nexport default TextItem;\n","import React, { useEffect, useState } from \"react\";\nimport {\n Block,\n Empty,\n TextView,\n FooterButton,\n WrapperBlock,\n Button,\n CheckBox,\n} from \"components\";\nimport {\n Image,\n View,\n StyleSheet,\n TouchableOpacity,\n FlatList,\n Dimensions,\n ScrollView,\n Text,\n} from \"react-native\";\n\nimport { commonIcons } from \"assets/icons\";\nimport { TextItem } from \"components/quotation-review\";\nimport { useLocation } from \"react-router-dom\";\nimport { PreviewItem } from \"components/partition-preview\";\nimport { useHistory } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { usePrevious } from \"../../utils/hook\";\nimport { formatMoney, MoneyFormatter } from \"../../utils/MoneyFormatter\";\nimport { formatDateTime, DateTimeFormatter } from \"../../utils/DateUtility\";\nimport images from \"assets/images\";\nimport {\n ESTIMATE_SEND_TYPE,\n ESTIMATE_STATUS,\n ESTIMATE_PIC_ATTACH,\n QUOTATION_FLOW,\n} from \"../../utils/Constant\";\nimport {\n getEstimate,\n updateEstimate,\n uploadPdf,\n copyEstimate,\n} from \"../../redux/actions/estimate\";\nimport { useNavigate, useNavigateReplace } from \"utils\";\nimport Title from \"components/common/Title\";\nimport { Colors, isAmountGreaterThanZero } from \"utils\";\nimport { Alert } from \"../../App\";\n\nconst { height, width } = Dimensions.get(\"window\");\nconst HEIGHT_IMAGE = height / 7;\n\n/**\n * 003-010-1 / 見積書プレビュー(画像なし)2 (this is for review from past-dividers)\n */\nconst EstimateReview = (props) => {\n const navigate = useNavigate();\n const navigateReplace = useNavigateReplace();\n const [sortedEstimateDetail, setSortedEstimateDetail] = useState(undefined);\n const location = useLocation();\n const { estimate_id } = location?.state;\n const [sortAscending, setSortAscending] = useState({\n sortCode: true,\n sortName: true,\n sortUnitPrice: true,\n sortMaker: true,\n });\n const setSortAscendingValue = (key, value) => {\n setSortAscending((prev) => ({\n ...prev,\n [key]: value,\n }));\n };\n\n useEffect(() => {\n props.getEstimate({\n estimate_id: estimate_id,\n });\n }, []);\n\n const prevGettingEstimate = usePrevious(props.isGettingEstimate);\n useEffect(() => {\n if (prevGettingEstimate && !props.isGettingEstimate) {\n if (props.isGotEstimate) {\n const data = props.estimate?.estimate_details;\n\n sortDataHandler(2, data);\n }\n }\n }, [props.isGettingEstimate]);\n\n const goBackToPurchaseSupplier = () => {\n navigateReplace(\"purchase-supplier\", {\n choose_estimate_from_estimate_review: props.estimate,\n });\n };\n\n const sortDataHandler = (noImageSortType, sortedEstimateDetail) => {\n const data1 = sortedEstimateDetail.sort((a, b) => {\n if (noImageSortType === 1) {\n //コード順: Sort by Product Code\n setSortAscendingValue(\"sortCode\", !sortAscending.sortCode);\n\n if (a?.product_info?.id > b?.product_info?.id)\n return !sortAscending.sortCode ? 1 : -1;\n if (a?.product_info?.id < b?.product_info?.id)\n return !sortAscending.sortCode ? -1 : 1;\n return 0;\n } else if (noImageSortType === 2) {\n //品名順: Sort by Product Name\n setSortAscendingValue(\"sortName\", !sortAscending.sortName);\n if (a?.name > b?.name) return !sortAscending.sortName ? 1 : -1;\n if (a?.name < b?.name) return !sortAscending.sortName ? -1 : 1;\n return 0;\n } else if (noImageSortType === 3) {\n //単価順: Sort by Product Price\n setSortAscendingValue(\"sortUnitPrice\", !sortAscending.sortUnitPrice);\n if (a?.unit_price > b?.unit_price)\n return !sortAscending.sortUnitPrice ? 1 : -1;\n if (a?.unit_price < b?.unit_price)\n return !sortAscending.sortUnitPrice ? -1 : 1;\n return 0;\n } else if (noImageSortType === 4) {\n //Maker: Sort by Maker\n const aa =\n a?.product_info?.maker_info?.name !== undefined\n ? a?.product_info?.maker_info?.name\n : \"\";\n const bb =\n b?.product_info?.maker_info?.name !== undefined\n ? b?.product_info?.maker_info?.name\n : \"\";\n setSortAscendingValue(\"sortMaker\", !sortAscending.sortMaker);\n if (aa > bb) return !sortAscending.sortMaker ? 1 : -1;\n if (aa < bb) return !sortAscending.sortMaker ? -1 : 1;\n return 0;\n }\n });\n\n const haveImageData = data1.filter(\n (item) => item.pic_attach === ESTIMATE_PIC_ATTACH.ATTACHED\n );\n const noImageData = data1.filter(\n (item) => item.pic_attach === ESTIMATE_PIC_ATTACH.NO_ATTACH\n );\n const sortDataWithImageShowFirst = [...haveImageData, ...noImageData];\n setSortedEstimateDetail(sortDataWithImageShowFirst);\n };\n\n const showCopyDialog = () => {\n Alert.alert(\"\", \"見積書をコピーしますか?\", [\n {\n label: \"はい\",\n primary: true,\n onPress: () => {\n Alert.hideModal();\n props.copyEstimate({ estimate_id: estimate_id });\n },\n },\n {\n label: \"いいえ\",\n primary: false,\n onPress: () => {\n Alert.hideModal();\n },\n },\n ]);\n };\n\n const prevCopyingEstimate = usePrevious(props.isCopyingEstimate);\n useEffect(() => {\n if (prevCopyingEstimate && !props.isCopyingEstimate) {\n if (props.isCopiedEstimate) {\n navigate(\"quotation-list\", {\n estimate_id: props.copiedEstimate.id,\n });\n }\n }\n }, [props.isCopyingEstimate]);\n\n return (\n <WrapperBlock>\n <Title backTitle={\"見積書一覧\"} title=\"見積書プレビュー\" />\n <Block block style={{ marginBottom: \"30pt\" }}>\n <View style={{ flex: 1 }}>\n <Block block paddingTop=\"15pt\">\n <Block>\n <TouchableOpacity\n onPress={() => {\n showCopyDialog();\n }}\n style={{\n backgroundColor: Colors.Primary,\n padding: 5,\n position: \"absolute\",\n right: 0,\n marginEnd: \"\",\n }}\n >\n <Text style={{ color: Colors.White }}>コピー</Text>\n </TouchableOpacity>\n <TextView\n size=\"13pt\"\n color={Colors.Primary}\n bold\n lineHeight=\"18pt\"\n >\n 取引日:{formatDateTime(props.estimate?.date)}\n </TextView>\n <TextView\n size=\"13pt\"\n color={Colors.Primary}\n bold\n lineHeight=\"18pt\"\n >\n 取引先名:{props.estimate?.customer_info?.name} {\"様\"}\n </TextView>\n <TextView\n size=\"13pt\"\n color={Colors.Primary}\n bold\n lineHeight=\"18pt\"\n >\n 担当者:{props.estimate?.account_info?.name}\n </TextView>\n <Block\n marginTop=\"10pt\"\n borderBottomWidth=\"1pt\"\n borderBottomColor={Colors.Primary}\n marginBottom=\"5pt\"\n >\n <TextView\n size=\"8pt\"\n color={Colors.Primary}\n bold\n lineHeight=\"18pt\"\n >\n 見積書コード:{props.estimate?.code}\n </TextView>\n </Block>\n </Block>\n\n <Block block>\n <FlatList\n style={{ marginTop: 15 }}\n extraData={sortedEstimateDetail}\n data={sortedEstimateDetail}\n keyExtractor={(item, index) => `${index}`}\n renderItem={renderItem}\n />\n </Block>\n </Block>\n </View>\n </Block>\n <Block>\n <FooterButton\n label=\"\"\n button1=\"選 択\"\n onPress1={() => goBackToPurchaseSupplier()}\n />\n </Block>\n </WrapperBlock>\n );\n};\n\nconst styles = StyleSheet.create({\n radio: {\n flexDirection: \"row\",\n },\n});\n\nconst mapStateToProps = (state) => ({\n isGettingEstimate: state.estimate.isGettingEstimate,\n isGotEstimate: state.estimate.isGotEstimate,\n estimate: state.estimate.estimate,\n isUpdatingEstimate: state.estimate.isUpdatingEstimate,\n isUpdatedEstimate: state.estimate.isUpdatedEstimate,\n updatedEstimate: state.estimate.updatedEstimate,\n\n isUploadingEstimatePdf: state.estimate.isUploadingEstimatePdf,\n isUploadedEstimatePdf: state.estimate.isUploadedEstimatePdf,\n estimateWhichUploadPdf: state.estimate.estimateWhichUploadPdf,\n\n isCopyingEstimate: state.estimate.isCopyingEstimate,\n isCopiedEstimate: state.estimate.isCopiedEstimate,\n copiedEstimate: state.estimate.copiedEstimate,\n});\nconst mapDispatchToProps = {\n getEstimate,\n updateEstimate,\n uploadPdf,\n copyEstimate,\n // insertProductsToInvoice,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(EstimateReview);\n\nconst renderItem = ({ item, index }) => {\n const { pic_path } = item.product_info;\n return (\n <Block width=\"100%\">\n {item.pic_attach == ESTIMATE_PIC_ATTACH.ATTACHED && (\n <Image\n source={{\n uri:\n pic_path == undefined || pic_path == \"\"\n ? images.no_image\n : pic_path,\n }}\n style={{ height: \"80vw\", width: \"100%\" }}\n resizeMode=\"contain\"\n />\n )}\n <TextItem\n value1={item.product_info?.code}\n value2={item.product_info?.maker_info?.name}\n value3={item.name}\n value4={renderUnitPrice(item)}\n />\n </Block>\n );\n};\n\nconst renderUnitPrice = (estimateDetail) => {\n if (\n isAmountGreaterThanZero(estimateDetail?.unit_price) &&\n isAmountGreaterThanZero(estimateDetail?.unit_price2)\n ) {\n return (\n formatMoney(estimateDetail.unit_price2) +\n \" ~ \" +\n formatMoney(estimateDetail.unit_price) +\n \"円\"\n );\n } else if (isAmountGreaterThanZero(estimateDetail?.unit_price)) {\n return formatMoney(estimateDetail.unit_price) + \"円\";\n } else if (isAmountGreaterThanZero(estimateDetail?.unit_price2)) {\n return formatMoney(estimateDetail.unit_price2) + \"円\";\n } else {\n return formatMoney(estimateDetail.unit_price) + \"円\";\n }\n};\n","import React from \"react\";\nimport { View, Text, StyleSheet } from \"react-native\";\nimport { Colors } from \"utils\";\nimport { formatMoney } from \"../../utils/MoneyFormatter\";\n\nconst TransferView = ({ transferAmount }) => {\n return (\n <View style={{ flexDirection: \"row\", marginTop: 18 }}>\n <View style={styles.container}>\n <Text style={[styles.smallText, { fontWeight: \"bold\" }]}>事前振込</Text>\n <View style={[styles.row, styles.value]}>\n <Text style={[styles.amountText, { paddingRight: \"5pt\" }]}>\n {formatMoney(transferAmount)}\n </Text>\n <Text style={[styles.smallText]}>円</Text>\n </View>\n </View>\n <View style={{ flex: 1 }}></View>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n row: {\n flex: 1,\n flexDirection: \"row\",\n justifyContent: \"flex-end\",\n alignItems: \"flex-end\",\n flexWrap: \"wrap\",\n },\n container: {\n flex: 1,\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n smallText: {\n fontSize: \"12pt\",\n color: Colors.Primary,\n },\n value: { alignItems: \"center\", marginRight: \"5pt\" },\n amountText: {\n fontSize: 18,\n color: Colors.Primary,\n fontWeight: \"bold\",\n },\n});\n\nexport default TransferView;\n","import React, { useEffect, useState } from \"react\";\nimport {\n View,\n Text,\n StyleSheet,\n TextInput,\n TouchableOpacity,\n Dimensions,\n} from \"react-native\";\nimport { Colors } from \"utils\";\nimport {\n formatMoney,\n MoneyFormatter,\n validateInteger,\n} from \"../../utils/MoneyFormatter\";\nimport {\n formatDateTime,\n DateTimeFormatter,\n formatDateTimeLocal,\n} from \"../../utils/DateUtility\";\nimport DateInput from \"components/common/DateInput\";\nimport { TransferView } from \"components/cart\";\n\nconst InputAmountView = ({\n transfer,\n invoiceData,\n setInputAmountChange,\n transferAmount,\n cashAmount,\n submit,\n setLimitDate,\n}) => {\n let transferAmountInput;\n let cashAmountInput;\n const [inputTransfer, setInputTransfer] = useState(\n transferAmount == undefined ? \"\" : transferAmount\n );\n const [inputCash, setInputCash] = useState(\n cashAmount == undefined ? \"\" : cashAmount\n );\n\n useEffect(() => {\n setInputCash(formatMoney(cashAmount, MoneyFormatter.ZERO_DECIMAL_FORMAT));\n }, [cashAmount]);\n useEffect(() => {\n setInputTransfer(\n formatMoney(transferAmount, MoneyFormatter.ZERO_DECIMAL_FORMAT)\n );\n }, [transferAmount]);\n\n const validateValueWithCommas = (value) => {\n const formatValue = formatMoney(\n value,\n MoneyFormatter.ZERO_DECIMAL_FORMAT_NO_COMMAS\n );\n return validateInteger(formatValue);\n };\n\n return (\n <View>\n <TransferView transferAmount={transfer?.total_price} />\n <View style={{ flexDirection: \"row\", marginTop: 8 }}>\n <View style={{ flexDirection: \"row\", flex: 1 }}>\n <View style={styles.row}>\n <View style={{ alignSelf: \"center\", marginRight: \"5pt\" }}>\n <Text style={[styles.smallText, { fontWeight: \"bold\" }]}>\n 口座振込\n </Text>\n </View>\n <View style={{ flex: 1 }}>\n <TextInput\n style={styles.textInput}\n editable={\n transfer !== undefined\n ? +invoiceData?.total_price > +transfer?.total_price\n : true\n }\n onChangeText={(value) => {\n if (validateValueWithCommas(value)) {\n setInputAmountChange({ type: 0, amount: value });\n setInputTransfer(formatMoney(value));\n }\n }}\n value={inputTransfer}\n keyboardType={\"phone-pad\"}\n ref={(input) => (transferAmountInput = input)}\n selectTextOnFocus\n onFocus={transferAmountInput?.focus()}\n />\n </View>\n <View style={{ marginLeft: \"5pt\" }}>\n <Text style={styles.smallText}>円</Text>\n </View>\n </View>\n </View>\n <View style={{ flexDirection: \"row\", flex: 1, marginLeft: \"10pt\" }}>\n <View style={styles.row}>\n <View style={{ alignSelf: \"center\", marginRight: \"5pt\" }}>\n <Text style={[styles.smallText, { fontWeight: \"bold\" }]}>\n 小口現金\n </Text>\n </View>\n <View style={{ flex: 1 }}>\n <TextInput\n style={styles.textInput}\n editable={\n transfer !== undefined\n ? +invoiceData?.total_price > +transfer?.total_price\n : true\n }\n onChangeText={(value) => {\n if (validateValueWithCommas(value)) {\n setInputAmountChange({ type: 1, amount: value });\n setInputCash(formatMoney(value));\n }\n }}\n value={inputCash}\n keyboardType={\"phone-pad\"}\n ref={(input) => (cashAmountInput = input)}\n selectTextOnFocus\n onFocus={cashAmountInput?.focus()}\n />\n </View>\n <Text style={styles.smallText}> 円</Text>\n </View>\n </View>\n </View>\n <View style={{ flexDirection: \"row\", marginTop: \"5pt\" }}>\n <View style={[styles.row, { marginTop: \"5pt\" }]}>\n <View style={{ alignSelf: \"center\", marginRight: \"5pt\" }}>\n <Text style={[styles.smallText, { fontWeight: \"bold\" }]}>\n 振込期日\n </Text>\n </View>\n <View style={{ flex: 1 }}>\n <DateInput\n containerStyle={[\n styles.textInput,\n {\n borderWidth: 0,\n borderRadius: 0,\n },\n ]}\n textStyle={{ fontSize: \"12pt\" }}\n onDateChange={(date) => {\n setLimitDate(\n formatDateTimeLocal(\n date,\n DateTimeFormatter.YYYY_MM_DD_HH_MM_HYPHEN\n )\n );\n }}\n />\n </View>\n </View>\n <View style={[styles.row]} />\n </View>\n\n <View style={styles.buttonWrap}>\n <TouchableOpacity style={styles.button} onPress={() => submit()}>\n <Text style={{ color: \"white\", fontWeight: \"bold\", fontSize: 16 }}>\n 査定完了\n </Text>\n </TouchableOpacity>\n </View>\n <View style={{ alignItems: \"center\" }}>\n <Text\n style={{\n color: Colors.Primary,\n fontSize: \"12pt\",\n fontWeight: \"bold\",\n }}\n >\n 査定を完了すると口座振込依頼が送信されます\n </Text>\n </View>\n </View>\n );\n};\n\nconst { width } = Dimensions.get(\"window\");\n\nconst styles = StyleSheet.create({\n textInput: {\n paddingVertical: \"5pt\",\n paddingHorizontal: \"5pt\",\n backgroundColor: Colors.PrimaryLight2,\n textAlign: \"right\",\n fontSize: \"12pt\",\n },\n button: {\n backgroundColor: Colors.SecondPrimary,\n paddingVertical: \"10pt\",\n alignItems: \"center\",\n borderRadius: \"5pt\",\n },\n buttonWrap: {\n paddingTop: \"25pt\",\n paddingBottom: \"5pt\",\n width: width * (160 / 375),\n alignSelf: \"center\",\n },\n smallText: {\n fontSize: \"12pt\",\n color: Colors.Primary,\n },\n\n row: {\n flex: 1,\n flexDirection: \"row\",\n justifyContent: \"flex-end\",\n alignItems: \"flex-end\",\n flexWrap: \"wrap\",\n },\n});\n\nexport default InputAmountView;\n","import React, { useEffect, useState } from \"react\";\nimport {\n View,\n Text,\n StyleSheet,\n TextInput,\n TouchableOpacity,\n} from \"react-native\";\nimport Back from \"components/common/Back\";\nimport { Colors, nor } from \"utils\";\nimport { Block } from \"components\";\nimport { useHistory } from \"react-router-dom\";\nimport {\n formatMoney,\n MoneyFormatter,\n validateInteger,\n formatInvoiceDetailAmount,\n} from \"../../utils/MoneyFormatter\";\nimport { formatDateTime, DateTimeFormatter } from \"../../utils/DateUtility\";\nimport {\n getTransferCustomers,\n updateTransfer,\n} from \"../../redux/actions/transfer\";\nimport {\n updateInvoice,\n createTransferInvoice,\n generatePdf,\n getInvoice,\n} from \"../../redux/actions/invoice\";\nimport { connect } from \"react-redux\";\nimport { INVOICE_STATUS } from \"../../utils/Constant\";\nimport { useNavigate } from \"utils\";\nimport DateInput from \"components/common/DateInput\";\nimport validator from \"validator\";\nimport { TransferView, InputAmountView } from \"components/cart\";\nimport { Alert } from \"../../App\";\nimport { usePrevious } from \"../../utils/hook\";\nimport { checkCart } from \"../../redux/actions/home\";\nimport Title from \"components/common/Title\";\n\n/**\n * //screen: 002-002-1 / 仕切書プレビュー\n */\nconst InvoiceReview = ({ ...props }) => {\n const history = useHistory();\n const navigate = useNavigate();\n const { invoice_id } = history?.location?.state;\n\n const [sortedInvoiceDetail, setSortedInvoiceDetail] = useState([]);\n useEffect(() => {\n props.getInvoice({\n invoice_id: invoice_id,\n });\n }, []);\n\n const prevGettingInvoice = usePrevious(props.isGettingInvoice);\n useEffect(() => {\n if (prevGettingInvoice && !props.isGettingInvoice) {\n if (props.isGotInvoice) {\n props.getTransferCustomers({\n customer_id: props.invoice?.customer_info?.id,\n customer_name: \"\",\n });\n const data = props.invoice?.invoice_details;\n setSortedInvoiceDetail(data);\n }\n }\n }, [props.isGettingInvoice]);\n\n return (\n <View style={{ paddingBottom: 20, paddingHorizontal: \"24pt\" }}>\n <Title backTitle={\"仕切書一覧\"} title=\"仕切書プレビュー\" />\n <View style={{ paddingVertical: 10 }}>\n <Text style={styles.description}>\n 取引日:\n {formatDateTime(props.invoice?.date)}\n </Text>\n <Text style={styles.description}>\n 取引先コード:{props.invoice?.customer_info?.code}\n </Text>\n <Text style={styles.description}>\n 取引先名:{props.invoice?.customer_info?.name}\n </Text>\n <Text style={styles.description}>\n 担当者:{props.invoice?.account_info?.name}\n </Text>\n </View>\n\n <View style={styles.tableTitle}>\n <Text style={styles.subDesc}>取引コード:{props.invoice?.code}</Text>\n </View>\n <Row\n isHeader\n name={\"品名・分類\"}\n amount={\"数 量\"}\n unit_price={\"仕入単価\"}\n price={\"金 額\"}\n />\n {sortedInvoiceDetail?.map(\n (item, index) =>\n item?.amount > 0 &&\n item.unit_price > 0 && (\n <Row\n key={index}\n name={item?.name}\n code={item?.product_info?.code}\n amount={formatInvoiceDetailAmount(item?.amount)}\n unit_price={formatMoney(item?.unit_price)}\n price={formatMoney(item?.total_price)}\n forceSolid={index === props.invoice?.invoice_details?.length - 1}\n />\n )\n )}\n <View\n style={{\n width: \"100%\",\n marginTop: 2,\n borderBottomWidth: StyleSheet.hairlineWidth,\n borderBottomColor: Colors.SecondPrimary,\n borderStyle: \"solid\",\n }}\n />\n\n <View style={styles.sumWrap}>\n <SumRow\n name={\"小 計(税別)\"}\n value={formatMoney(props.invoice?.price) + \"円\"}\n />\n <SumRow\n name={\"消費税\"}\n value={formatMoney(props.invoice?.tax) + \"円\"}\n />\n <SumRow\n name={\"合 計(税込)\"}\n value={formatMoney(props.invoice?.total_price) + \"円\"}\n />\n </View>\n\n <FinishSubmitView\n alreadyTransferAmount={props.transferCustomers[0]?.total_price}\n transferAmount={props.invoice?.transfer_price}\n cashAmount={props.invoice?.cash_price}\n />\n </View>\n );\n};\n\nconst Row = ({\n name,\n code,\n amount,\n unit_price,\n price,\n isHeader,\n forceSolid,\n}) => {\n const fontWeight = isHeader ? \"bold\" : \"normal\";\n return (\n <View\n style={{\n flexDirection: \"row\",\n borderBottomColor: Colors.SecondPrimary,\n borderBottomWidth: 1,\n borderStyle: isHeader || forceSolid ? \"solid\" : \"dashed\",\n }}\n >\n <View style={{ flex: 2, paddingVertical: 5 }}>\n <Text style={[styles.smallText, { fontWeight }]}>\n {name} {isHeader ? \"\" : \"【\" + code + \"】\"}\n </Text>\n </View>\n <View style={{ flex: 1, paddingVertical: 5, alignItems: \"center\" }}>\n <Text style={[styles.smallText, { fontWeight }]}>\n {isHeader ? amount : amount}\n </Text>\n </View>\n <View style={{ flex: 1, paddingVertical: 5, alignItems: \"center\" }}>\n <Text style={[styles.smallText, { fontWeight }]}>\n {isHeader ? unit_price : unit_price + \"円\"}\n </Text>\n </View>\n <View style={{ flex: 1, paddingVertical: 5, alignItems: \"flex-end\" }}>\n <Text style={[styles.smallText, { fontWeight }]}>\n {isHeader ? price : price + \"円\"}\n </Text>\n </View>\n </View>\n );\n};\n\nconst FinishSubmitView = ({\n alreadyTransferAmount,\n transferAmount,\n cashAmount,\n}) => {\n // const haveTransfer = transferAmount !== undefined && transferAmount > 0;\n return (\n <View>\n <View>\n <TransferView transferAmount={alreadyTransferAmount} />\n <View style={{ flexDirection: \"row\", marginTop: 10 }}>\n <View style={{ flex: 1, flexDirection: \"row\", alignItems: \"center\" }}>\n <View>\n <Text style={[styles.smallText, { fontWeight: \"bold\" }]}>\n 口座振込\n </Text>\n </View>\n <View style={[styles.row, { alignItems: \"center\" }]}>\n <View style={styles.row}>\n <Text style={styles.amountText}>\n {formatMoney(\n transferAmount,\n MoneyFormatter.ZERO_DECIMAL_FORMAT\n )}\n </Text>\n </View>\n <Text style={styles.smallText}> 円</Text>\n </View>\n </View>\n <View style={{ width: 32 }} />\n <View style={{ flex: 1, flexDirection: \"row\", alignItems: \"center\" }}>\n <View>\n <Text style={[styles.smallText, { fontWeight: \"bold\" }]}>\n 小口現金\n </Text>\n </View>\n <View style={[styles.row, { alignItems: \"center\" }]}>\n <View style={styles.row}>\n <Text style={styles.amountText}>\n {formatMoney(cashAmount, MoneyFormatter.ZERO_DECIMAL_FORMAT)}\n </Text>\n </View>\n <Text style={styles.smallText}> 円</Text>\n </View>\n </View>\n </View>\n </View>\n\n {/* <Block\n borderWidth=\"3pt\"\n borderColor={Colors.SecondPrimary}\n paddingTop=\"5pt\"\n paddingBottom=\"5pt\"\n marginTop=\"40pt\"\n marginLeft=\"50pt\"\n marginRight=\"50pt\"\n style={{ justifyContent: \"center\", alignItems: \"center\" }}\n >\n <Text style={{ color: Colors.Primary, fontWeight: \"bold\" }}>\n {haveTransfer ? \"振込依頼を送信しました。\" : \"査定を完了しました。\"}\n </Text>\n </Block> */}\n {/* <View\n style={{\n flexDirection: \"row\",\n paddingVertical: 32,\n alignItems: \"center\",\n justifyContent: \"space-around\",\n }}\n >\n {haveTransfer && (\n <TouchableOpacity\n style={[styles.finishButton, { marginRight: 10 }]}\n onPress={() => goToAccount}\n >\n <Text style={{ color: \"white\", fontWeight: \"bold\", fontSize: 16 }}>\n ステータスを確認\n </Text>\n </TouchableOpacity>\n )}\n <TouchableOpacity\n onPress={goToHomeScreen}\n style={[styles.finishButton]}\n >\n <Text style={{ color: \"white\", fontWeight: \"bold\", fontSize: 16 }}>\n TOPへ\n </Text>\n </TouchableOpacity>\n </View> */}\n </View>\n );\n};\n\nconst SumRow = ({ name, value }) => (\n <View style={{ flexDirection: \"row\", marginBottom: 5 }}>\n <View style={{ flex: 2 }} />\n <View style={{ flex: 1 }}>\n <Text style={[styles.smallText, { fontWeight: \"bold\" }]}>{name}</Text>\n </View>\n <View style={{ flex: 1, paddingLeft: 10, alignItems: \"flex-end\" }}>\n <Text style={styles.smallText}>{value}</Text>\n </View>\n </View>\n);\n\nconst styles = StyleSheet.create({\n titleWrap: {\n flexDirection: \"row\",\n alignItems: \"center\",\n borderBottomWidth: 2,\n borderBottomColor: Colors.WhiteDark03,\n paddingVertical: \"15pt\",\n },\n title: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n marginLeft: \"10pt\",\n fontSize: \"18pt\",\n },\n description: {\n color: Colors.Primary,\n marginBottom: 5,\n fontWeight: \"bold\",\n fontSize: \"12pt\",\n },\n tableTitle: {\n borderBottomColor: Colors.SecondPrimary,\n borderBottomWidth: 1,\n paddingVertical: 5,\n },\n subDesc: {\n color: Colors.Primary,\n marginTop: \"10pt\",\n fontSize: \"12pt\",\n },\n cell: {\n flex: 1,\n backgroundColor: Colors.PrimaryLight2,\n alignItems: \"center\",\n paddingVertical: 5,\n },\n cellText: {\n fontWeight: \"bold\",\n color: Colors.Primary,\n },\n textInput: {\n flex: 1,\n paddingVertical: 5,\n paddingHorizontal: 5,\n marginLeft: 5,\n backgroundColor: Colors.PrimaryLight2,\n },\n button: {\n backgroundColor: Colors.SecondPrimary,\n paddingVertical: \"10pt\",\n paddingHorizontal: \"64pt\",\n alignItems: \"center\",\n borderRadius: 5,\n },\n buttonWrap: {\n paddingTop: \"32pt\",\n paddingBottom: 5,\n alignItems: \"center\",\n },\n smallText: {\n fontSize: \"12pt\",\n color: Colors.Primary,\n },\n largeText: {\n fontSize: \"18pt\",\n fontWeight: \"bold\",\n color: Colors.Primary,\n },\n sumWrap: {\n paddingVertical: \"10pt\",\n borderColor: Colors.Primary,\n borderTopWidth: 1,\n borderBottomWidth: 1,\n },\n row: {\n flex: 1,\n flexDirection: \"row\",\n justifyContent: \"flex-end\",\n alignItems: \"flex-end\",\n flexWrap: \"wrap\",\n },\n finishButton: {\n flex: 1,\n backgroundColor: Colors.SecondPrimary,\n paddingVertical: \"10pt\",\n alignItems: \"center\",\n borderRadius: 5,\n },\n amountText: {\n fontSize: 18,\n color: Colors.Primary,\n fontWeight: \"bold\",\n },\n});\n\nconst mapStateToProps = (state) => ({\n transferCustomers: state.transfer.transferCustomers,\n isUpdatingInvoice: state.invoice.isUpdatingInvoice,\n isUpdatedInvoice: state.invoice.isUpdatedInvoice,\n\n isGettingInvoice: state.invoice.isGettingInvoice,\n isGotInvoice: state.invoice.isGotInvoice,\n invoice: state.invoice.invoice,\n});\nconst mapDispatchToProps = {\n getTransferCustomers,\n updateTransfer,\n updateInvoice,\n createTransferInvoice,\n checkCart,\n generatePdf,\n getInvoice,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(InvoiceReview);\n","import React from \"react\";\nimport {\n View,\n Text,\n TextInput,\n StyleSheet,\n TouchableOpacity,\n Animated,\n Image,\n} from \"react-native\";\nimport { defaultIcons } from \"assets/icons\";\nimport { Colors } from \"utils\";\nimport { useNavigate } from \"utils\";\n\nimport {\n formatMoney,\n MoneyFormatter,\n validateDecimal,\n} from \"../../utils/MoneyFormatter\";\nimport { formatDateTime, DateTimeFormatter } from \"../../utils/DateUtility\";\n\nconst Package = ({\n invoice,\n invoice_detail,\n use_transfer,\n invoiceDetailIndex,\n onTrash,\n onGoToDetail,\n amountOnBlur,\n unitPriceOnBlur,\n amountOnFocus,\n unitPriceOnFocus,\n ...props\n}) => {\n const navigate = useNavigate();\n let amountInput;\n let unitPriceInput;\n\n const gotoInvoiceDetail = () => {\n //go to 003-003-2 / 製品詳細\n const data = invoice;\n const detail = data?.invoice_details?.map((item) => {\n return {\n ...item,\n onQuantityChange: null,\n onUnitPriceChange: null,\n };\n });\n\n data.invoice_details = detail;\n navigate(\"/cart/detail\", {\n invoice: data,\n invoiceDetailIndex: invoiceDetailIndex,\n use_transfer: use_transfer,\n });\n };\n const validateValueWithCommas = (value, handler) => {\n const formatValue = formatMoney(\n value,\n MoneyFormatter.ZERO_DECIMAL_FORMAT_NO_COMMAS\n );\n\n if (validateDecimal(formatValue)) {\n handler(formatMoney(value));\n }\n };\n // const aaa = (value) => {\n // console.log(\"hung aaa value:\", value);\n // if (value.includes(\".\")) {\n // const [whole, decimal] = String(value).split(\".\");\n // console.log(\"hung aaa decimal:\", decimal);\n // if (decimal !== \"\" && Number(decimal) > 0) {\n // return formatMoney(value, MoneyFormatter.TWO_DECIMAL_FORMAT);\n // } else if (decimal === \"\") {\n // return value;\n // } else {\n // return formatMoney(value);\n // }\n // } else {\n // return value;\n // }\n // };\n const validateQuantityValueWithCommas = (value, handler) => {\n // const formatValue = formatMoney(\n // value,\n // MoneyFormatter.TWO_DECIMAL_FORMAT_NO_COMMAS\n // );\n // console.log(\"hung TWO_DECIMAL_FORMAT_NO_COMMAS formatValue:\", formatValue);\n // if (validateDecimal(formatValue)) {\n // handler(formatMoney(value, MoneyFormatter.TWO_DECIMAL_FORMAT));\n // }\n console.log(\"hung validateQuantityValueWithCommas value:\", value);\n handler(value);\n };\n return (\n <View style={styles.wrap} {...props}>\n <View style={styles.container}>\n <TouchableOpacity\n onPress={() => {\n gotoInvoiceDetail();\n onGoToDetail();\n }}\n style={styles.titleWrap}\n >\n <View style={{ paddingRight: \"14pt\" }}>\n <Text style={{ fontSize: \"12pt\", color: Colors.Primary }}>\n 品 名\n </Text>\n </View>\n <View style={{ flex: 1 }}>\n <Text\n numberOfLines={1}\n style={{ fontSize: \"16pt\", color: Colors.Primary }}\n >\n {invoice_detail?.name}【{invoice_detail?.product_info?.code}】\n </Text>\n </View>\n </TouchableOpacity>\n <TouchableOpacity\n style={styles.wrapBtnTrash}\n onPress={() => onTrash(invoice_detail)}\n >\n <View style={styles.btnTrash}>\n <Image\n resizeMode=\"contain\"\n source={defaultIcons.trash}\n style={styles.imgTrash}\n />\n </View>\n </TouchableOpacity>\n </View>\n <View style={styles.container1}>\n <View style={{ flex: 1, flexDirection: \"row\", alignItems: \"center\" }}>\n <Text style={styles.fieldName}>数 量</Text>\n <View style={{ flex: 1 }}>\n <TextInput\n style={styles.textInput}\n value={invoice_detail?.amount}\n onChangeText={(value) => {\n validateQuantityValueWithCommas(\n value,\n invoice_detail.onQuantityChange\n );\n // if (validateDecimal(value)) {\n // invoice_detail.onQuantityChange(value);\n // }\n }}\n onBlur={(value) => {\n amountOnBlur();\n }}\n keyboardType={\"decimal-pad\"}\n ref={(input) => (amountInput = input)}\n selectTextOnFocus\n onFocus={amountInput?.focus()}\n />\n </View>\n </View>\n <View\n style={{\n flex: 2,\n flexDirection: \"row\",\n alignItems: \"center\",\n paddingLeft: \"10pt\",\n }}\n >\n <View>\n <Text style={styles.fieldName}>仕入単価</Text>\n </View>\n <View style={{ flex: 1 }}>\n <TextInput\n style={styles.textInput}\n value={formatMoney(invoice_detail?.unit_price)}\n onChangeText={(value) => {\n validateValueWithCommas(\n value,\n invoice_detail.onUnitPriceChange\n );\n }}\n onBlur={unitPriceOnBlur}\n keyboardType={\"phone-pad\"}\n ref={(input) => (unitPriceInput = input)}\n selectTextOnFocus\n onFocus={unitPriceInput?.focus()}\n />\n </View>\n <Text\n style={{\n color: Colors.Primary,\n marginLeft: 3,\n fontSize: \"13pt\",\n }}\n >\n 円\n </Text>\n </View>\n <View\n style={{\n flex: 2,\n flexDirection: \"row\",\n alignItems: \"center\",\n paddingLeft: \"10pt\",\n }}\n >\n <View>\n <Text style={styles.fieldName}>金 額</Text>\n </View>\n <View style={{ flex: 1 }}>\n <TextInput\n style={styles.textInput}\n value={formatMoney(invoice_detail?.total_price)}\n />\n </View>\n <Text\n style={{\n color: Colors.Primary,\n marginLeft: \"3pt\",\n fontSize: \"13pt\",\n }}\n >\n 円\n </Text>\n </View>\n </View>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n wrap: {\n borderColor: Colors.SecondPrimary,\n borderWidth: 1,\n borderRadius: \"5pt\",\n marginBottom: \"5pt\",\n marginTop: \"5pt\",\n },\n titleWrap: {\n flexDirection: \"row\",\n alignItems: \"center\",\n borderBottomColor: Colors.SecondPrimary,\n borderBottomWidth: 1,\n flex: 1,\n paddingHorizontal: \"10pt\",\n },\n textInput: {\n flex: 1,\n paddingVertical: \"6pt\",\n paddingHorizontal: \"5pt\",\n marginLeft: \"3pt\",\n backgroundColor: Colors.PrimaryLight2,\n textAlign: \"right\",\n },\n fieldName: {\n fontSize: \"12pt\",\n color: Colors.Primary,\n fontWeight: \"400\",\n },\n btnTrash: {\n backgroundColor: \"red\",\n padding: \"8pt\",\n marginRight: \"5pt\",\n borderRadius: \"20pt\",\n },\n imgTrash: {\n height: \"10pt\",\n width: \"10pt\",\n },\n container: {\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n },\n container1: {\n flexDirection: \"row\",\n paddingVertical: \"5pt\",\n paddingHorizontal: \"10pt\",\n },\n wrapBtnTrash: {\n borderBottomColor: Colors.SecondPrimary,\n borderBottomWidth: 1,\n height: \"100%\",\n alignItems: \"center\",\n justifyContent: \"center\",\n paddingVertical: \"5pt\",\n },\n});\n\nexport default Package;\n","import React, { useEffect, useState } from \"react\";\nimport {\n View,\n Text,\n StyleSheet,\n TextInput,\n TouchableOpacity,\n ScrollView,\n} from \"react-native\";\nimport Back from \"components/common/Back\";\nimport { Colors, handleFocus, nor } from \"utils\";\nimport Package from \"components/cart/Package\";\nimport { useNavigate } from \"utils\";\nimport { useHistory } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport {\n getInvoice,\n updateInvoice,\n deleteInvoiceDetail,\n uploadPdf,\n saveInvoiceDataWhenGoToProductDetail,\n} from \"../../redux/actions/invoice\";\nimport { getTaxRate } from \"../../redux/actions/general\";\nimport { usePrevious } from \"../../utils/hook\";\nimport {\n formatMoney,\n MoneyFormatter,\n formatInvoiceDetailAmount,\n} from \"../../utils/MoneyFormatter\";\nimport {\n INVOICE_STATUS,\n CART_UPDATE_INVOICE_BEHAVIOR,\n} from \"../../utils/Constant\";\nimport { jsPDF } from \"jspdf\";\nimport html2canvas from \"html2canvas\";\nimport { Block, TextView, Button } from \"components\";\nimport { Utils } from \"utils\";\nimport { checkCart } from \"../../redux/actions/home\";\nimport { Alert } from \"../../App\";\nimport {\n ACCOUNT_STATUS_FILTER_DATA,\n ACCOUNT_PREVIOUS_VOUCHER_TYPE,\n} from \"../../utils/Constant\";\nimport Title from \"components/common/Title\";\n\n/**\n * //screen: [003-003-1 / 仕入リスト]\n */\nconst Cart = (props) => {\n const navigate = useNavigate();\n const history = useHistory();\n const [invoiceData, setInvoiceData] = useState({});\n // const [isGoNextScreen, setIsGoNextScreen] = useState(false);\n const [cartUpdateInvoiceBehavior, setCartUpdateInvoiceBehavior] = useState(0);\n const [invoiceDataChange, setInvoiceDataChange] = useState({\n type: 1,\n productIndex: -1,\n amount: 0,\n unit_price: 0,\n });\n const prevGettingInvoice = usePrevious(props.isGettingInvoice);\n const [isEmptyCart, setIsEmptyCart] = useState(false);\n const [isFinishPurchase, setIsFinishPurchase] = useState(false);\n const { use_transfer } = history?.location?.state;\n const { finish_purchase_from_product_detail } = history?.location?.state;\n useEffect(() => {\n const { invoice_id } = history?.location?.state;\n if (finish_purchase_from_product_detail !== undefined) {\n setIsFinishPurchase(true);\n } else if (invoice_id !== \"\" && invoice_id !== undefined) {\n props.getInvoice({\n invoice_id: history?.location?.state?.invoice_id,\n });\n setIsEmptyCart(false);\n } else {\n //show empty cart\n setIsEmptyCart(true);\n }\n }, []);\n\n useEffect(() => {\n if (prevGettingInvoice && !props.isGettingInvoice) {\n if (props.isGotInvoice) {\n setupData(props.invoice);\n props.getTaxRate();\n }\n }\n }, [props.isGettingInvoice]);\n const formatMoneyZeroDecimalNoCommas = (value) => {\n return formatMoney(value, MoneyFormatter.ZERO_DECIMAL_FORMAT_NO_COMMAS);\n };\n const formatMoneyTwoDecimalNoCommas = (value) => {\n return formatMoney(value, MoneyFormatter.TWO_DECIMAL_FORMAT_NO_COMMAS);\n };\n\n const setupData = (invoice) => {\n const data = invoice;\n const invoice_detail = invoice.invoice_details.map((item, index) => {\n return {\n ...item,\n amount: formatInvoiceDetailAmount(item.amount),\n onQuantityChange: (value) => {\n setInvoiceDataChange((prev) => ({\n ...prev,\n type: 1, //type =1 update amount\n productIndex: index,\n amount: value,\n }));\n },\n onUnitPriceChange: (value) => {\n setInvoiceDataChange((prev) => ({\n ...prev,\n type: 2, //type =2 update unit_price\n productIndex: index,\n unit_price: value,\n }));\n },\n };\n });\n data.invoice_details = invoice_detail;\n setInvoiceData(data);\n };\n\n const calculateInvoiceDetailTotalPrice = (\n currentIndex,\n invoiceDataChange,\n invoiceDetail\n ) => {\n let totalPrice = 0;\n if (currentIndex === invoiceDataChange.productIndex) {\n if (invoiceDataChange.type === 1) {\n totalPrice =\n formatMoneyTwoDecimalNoCommas(invoiceDataChange.amount) *\n formatMoneyZeroDecimalNoCommas(invoiceDetail.unit_price);\n totalPrice = formatMoney(totalPrice);\n } else {\n totalPrice =\n formatMoneyTwoDecimalNoCommas(invoiceDetail.amount) *\n formatMoneyZeroDecimalNoCommas(invoiceDataChange.unit_price);\n totalPrice = formatMoney(totalPrice);\n }\n } else {\n totalPrice =\n formatMoneyTwoDecimalNoCommas(invoiceDetail.amount) *\n formatMoneyZeroDecimalNoCommas(invoiceDetail.unit_price);\n totalPrice = formatMoney(totalPrice);\n }\n return totalPrice;\n };\n useEffect(() => {\n if (invoiceData !== undefined) {\n const data = { ...invoiceData };\n\n const tempData = data?.invoice_details?.map((item, index) => {\n return {\n ...item,\n amount:\n index === invoiceDataChange.productIndex &&\n invoiceDataChange.type === 1\n ? invoiceDataChange.amount\n : item.amount,\n unit_price:\n index === invoiceDataChange.productIndex &&\n invoiceDataChange.type === 2\n ? invoiceDataChange.unit_price\n : item.unit_price,\n\n total_price: calculateInvoiceDetailTotalPrice(\n index,\n invoiceDataChange,\n item\n ),\n };\n });\n\n const subTotal = tempData?.reduce(\n (prev, current, index) =>\n prev + +formatMoneyZeroDecimalNoCommas(current.total_price),\n 0\n );\n const tax = formatMoney(\n props.taxRate?.tax == undefined ? 0 : props.taxRate?.tax,\n MoneyFormatter.ZERO_DECIMAL_FORMAT\n );\n let consumptionTax = subTotal * (tax * 0.01);\n let total = subTotal + consumptionTax;\n data.price = formatMoney(subTotal, MoneyFormatter.ZERO_DECIMAL_FORMAT);\n data.tax = formatMoney(\n consumptionTax,\n MoneyFormatter.ZERO_DECIMAL_FORMAT\n );\n data.total_price = formatMoney(total, MoneyFormatter.ZERO_DECIMAL_FORMAT);\n data.invoice_details = tempData;\n setInvoiceData(data);\n }\n }, [invoiceDataChange]);\n\n // console.log(\"hung invoiceDataChange:\", invoiceDataChange);\n\n useEffect(() => {\n if (invoiceData !== undefined) {\n const data = { ...invoiceData };\n let subTotal = 0;\n\n subTotal = data?.invoice_details?.reduce(\n (prev, current, index) => prev + +current.total_price,\n 0\n );\n let consumptionTax = subTotal * (props.taxRate?.tax * 0.01);\n let total = subTotal + consumptionTax;\n data.price = formatMoney(subTotal, MoneyFormatter.ZERO_DECIMAL_FORMAT);\n data.tax = formatMoney(\n consumptionTax,\n MoneyFormatter.ZERO_DECIMAL_FORMAT\n );\n data.total_price = formatMoney(total, MoneyFormatter.ZERO_DECIMAL_FORMAT);\n setInvoiceData(data);\n }\n }, [props.taxRate]);\n\n const updateInvoice = (status, useTransfer, is_submit) => {\n const invoice_details = invoiceData?.invoice_details.map((item) => {\n return {\n id: item.id,\n product_id: item.product_info?.id,\n amount: formatMoney(\n item.amount,\n MoneyFormatter.TWO_DECIMAL_FORMAT_NO_COMMAS\n ),\n price: formatMoney(\n item.price,\n MoneyFormatter.TWO_DECIMAL_FORMAT_NO_COMMAS\n ),\n unit_price: formatMoney(\n item.unit_price,\n MoneyFormatter.TWO_DECIMAL_FORMAT_NO_COMMAS\n ),\n total_price: formatMoney(\n item.total_price,\n MoneyFormatter.TWO_DECIMAL_FORMAT_NO_COMMAS\n ),\n };\n });\n\n const updateInvoice = {\n id: invoiceData.id,\n price: formatMoney(\n invoiceData.price,\n MoneyFormatter.TWO_DECIMAL_FORMAT_NO_COMMAS\n ),\n tax: formatMoney(\n invoiceData.tax,\n MoneyFormatter.TWO_DECIMAL_FORMAT_NO_COMMAS\n ),\n total_price: formatMoney(\n invoiceData.total_price,\n MoneyFormatter.TWO_DECIMAL_FORMAT_NO_COMMAS\n ),\n status: status,\n invoice_details: invoice_details,\n transfer_price: 0,\n cash_price: 0,\n use_transfer: useTransfer,\n is_submit: is_submit,\n };\n props.updateInvoice(updateInvoice);\n };\n\n const submitPreview = () => {\n // Submit the data, invoices.status = 1\n // Go to [003-004-01 / 仕切書プレビュー]\n updateInvoice(INVOICE_STATUS.PURCHASING, false, false);\n setCartUpdateInvoiceBehavior(CART_UPDATE_INVOICE_BEHAVIOR.PREVIEW_INVOICE);\n // generatePdf(false);\n };\n\n const finishPurchase = () => {\n showSubmitPurchaseModal();\n };\n\n const updateInvoiceWhenOnBlur = () => {\n updateInvoice(INVOICE_STATUS.PURCHASING, false, false);\n setCartUpdateInvoiceBehavior(\n CART_UPDATE_INVOICE_BEHAVIOR.UPDATE_INVOICE_ON_BLUR\n );\n };\n const prevUpdatingInvoice = usePrevious(props.isUpdatingInvoice);\n useEffect(() => {\n if (prevUpdatingInvoice && !props.isUpdatingInvoice) {\n if (props.isUpdatedInvoice) {\n props.checkCart();\n if (\n cartUpdateInvoiceBehavior ==\n CART_UPDATE_INVOICE_BEHAVIOR.PREVIEW_INVOICE\n ) {\n navigate(\"cart-preview\", {\n invoice: props.updatedInvoice,\n use_transfer: use_transfer,\n });\n } else if (\n cartUpdateInvoiceBehavior ==\n CART_UPDATE_INVOICE_BEHAVIOR.SUBMIT_INVOICE\n ) {\n setIsFinishPurchase(true);\n } else {\n //do nothing\n }\n }\n }\n }, [props.isUpdatingInvoice]);\n\n const prevDeletingInvoiceDetail = usePrevious(props.isDeletingInvoiceDetail);\n useEffect(() => {\n if (prevDeletingInvoiceDetail && !props.isDeletingInvoiceDetail) {\n if (props.isDeletedInvoiceDetail) {\n props.checkCart();\n setupData(props.invoiceWhichDeletedInvoiceDetail);\n }\n }\n }, [props.isDeletingInvoiceDetail]);\n\n const showSubmitPurchaseModal = () => {\n Alert.alert(\n \"\",\n <View>\n <Text style={{ textAlign: \"center\", fontSize: 16 }}>\n {\n \"未入力で査定を終了すると\\n登録された仕入れリストは保存されません。\\n査定を終了しますか。\"\n }\n </Text>\n </View>,\n [\n {\n label: \"はい\",\n primary: true,\n onPress: () => {\n Alert.hideModal();\n //Submit the data, invoices.status = 1\n updateInvoice(\n INVOICE_STATUS.PURCHASE_COMPLETED,\n use_transfer,\n true\n );\n setCartUpdateInvoiceBehavior(\n CART_UPDATE_INVOICE_BEHAVIOR.SUBMIT_INVOICE\n );\n },\n },\n {\n label: \"いいえ\",\n primary: false,\n onPress: () => {\n Alert.hideModal();\n },\n },\n ]\n );\n };\n\n return (\n <View style={styles.wrap}>\n {/* <View style={styles.titleWrap}>\n <Back label={isEmptyCart || isFinishPurchase ? \"TOP\" : \"査 定\"} />\n <Text style={styles.title}>仕入リスト</Text>\n </View> */}\n <Title\n backTitle={isEmptyCart || isFinishPurchase ? \"TOP\" : \"査 定\"}\n title=\"仕入リスト\"\n />\n {isEmptyCart ? (\n <EmptyCartView navigate={navigate} />\n ) : isFinishPurchase ? (\n <FinishPurchaseView navigate={navigate} />\n ) : (\n <View style={{ flex: 1 }}>\n <div id=\"viewToRenderPdf\">\n <View style={{}}>\n <Text style={styles.description}>\n 取引先コード:{props.invoice?.customer_info?.code}\n </Text>\n <Text style={styles.description}>\n 取引先名:{props.invoice?.customer_info?.name}\n </Text>\n <Text style={styles.description}>本日の貴金属相場</Text>\n </View>\n <View style={{ flexDirection: \"row\", marginTop: \"5pt\" }}>\n <View style={styles.cell}>\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n PT:{formatMoney(props.invoice?.market_price?.pt_jpy)}円\n </TextView>\n </View>\n <View style={[styles.cell, { marginHorizontal: \"5pt\" }]}>\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n PD:{formatMoney(props.invoice?.market_price?.pd_jpy)}円\n </TextView>\n </View>\n <View style={styles.cell}>\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n RH:{formatMoney(props.invoice?.market_price?.rh_jpy)}円\n </TextView>\n </View>\n </View>\n\n <ScrollView style={{ height: \"40vh\", marginTop: \"5pt\" }}>\n {invoiceData.invoice_details?.map((item, index) => {\n return (\n <Package\n invoice={invoiceData}\n invoice_detail={item}\n invoiceDetailIndex={index}\n key={item.id}\n use_transfer={use_transfer}\n onTrash={(invoice_detail) => {\n props.deleteInvoiceDetail({\n invoice_id: history?.location?.state?.invoice_id,\n invoice_detail_id: invoice_detail.id,\n });\n }}\n onGoToDetail={() => {\n props.saveInvoiceDataWhenGoToProductDetail({\n invoiceData,\n });\n }}\n amountOnBlur={() => {\n setInvoiceDataChange((prev) => ({\n ...prev,\n type: 1, //type =1 update amount\n productIndex: index,\n amount: formatInvoiceDetailAmount(item.amount),\n }));\n updateInvoiceWhenOnBlur();\n }}\n unitPriceOnBlur={() => {\n updateInvoiceWhenOnBlur();\n }}\n />\n );\n })}\n </ScrollView>\n <View style={{ flexDirection: \"row\", paddingTop: 10 }}>\n <View style={{ flex: 1 }}>\n <View style={{ flexDirection: \"row\", alignItems: \"center\" }}>\n <View>\n <Text style={styles.cellText}>小 計(税別)</Text>\n </View>\n <View style={{ flex: 1 }}>\n <TextInput\n style={styles.textInput}\n value={invoiceData?.price}\n />\n </View>\n <Text style={[styles.cellText, { marginLeft: \"1pt\" }]}>\n 円\n </Text>\n </View>\n <View\n style={{\n marginTop: 5,\n flexDirection: \"row\",\n alignItems: \"center\",\n }}\n >\n <View>\n <Text style={[styles.cellText, { marginRight: 52 }]}>\n 消費税\n </Text>\n </View>\n <View style={{ flex: 1 }}>\n <TextInput\n style={styles.textInput}\n value={invoiceData?.tax}\n />\n </View>\n <Text style={[styles.cellText, { marginLeft: \"1pt\" }]}>\n 円\n </Text>\n </View>\n </View>\n <View style={{ flex: 1, paddingLeft: 10 }}>\n <View\n style={{\n flex: 1,\n flexDirection: \"row\",\n alignItems: \"flex-end\",\n alignSelf: \"stretch\",\n }}\n >\n <View>\n <Text style={[styles.cellText, { fontSize: 20 }]}>\n 合計\n </Text>\n </View>\n <View style={{ flex: 1, alignSelf: \"stretch\" }}>\n <TextInput\n style={styles.textInput}\n value={invoiceData?.total_price}\n />\n </View>\n <Text\n style={[\n styles.cellText,\n { marginLeft: \"3pt\", fontSize: 20 },\n ]}\n >\n 円\n </Text>\n </View>\n </View>\n </View>\n </div>\n <View style={{ flexDirection: \"row\", paddingVertical: 32 }}>\n <TouchableOpacity\n style={[styles.button, { marginRight: 10 }]}\n onPress={() => submitPreview()}\n >\n <Text\n style={{ color: \"white\", fontWeight: \"bold\", fontSize: 16 }}\n >\n 仕切書プレビュー\n </Text>\n </TouchableOpacity>\n <TouchableOpacity\n onPress={() => finishPurchase()}\n style={styles.button}\n >\n <Text\n style={{ color: \"white\", fontWeight: \"bold\", fontSize: 16 }}\n >\n 未入力で査定を終了\n </Text>\n </TouchableOpacity>\n </View>\n </View>\n )}\n </View>\n );\n};\n\nconst EmptyCartView = ({ navigate }) => {\n return (\n <View style={{ flex: 1 }}>\n <View style={{ flex: 1, justifyContent: \"center\", alignItems: \"center\" }}>\n <Text>現在査定中の取引はありません。</Text>\n </View>\n <View style={{ flexDirection: \"row\", paddingVertical: 32 }}>\n <TouchableOpacity\n style={[styles.button, { marginRight: 10 }]}\n onPress={() => {\n // TODO: navigate to [002-002 / 過去の仕切書]\n navigate(\"past-dividers\", {\n title: \"仕切書一覧\",\n type: ACCOUNT_PREVIOUS_VOUCHER_TYPE.INVOICE,\n from_date: \"\",\n to_date: \"\",\n customer_name: \"\",\n });\n }}\n >\n <Text style={{ color: \"white\", fontWeight: \"bold\", fontSize: 16 }}>\n 仕切書一覧\n </Text>\n </TouchableOpacity>\n <TouchableOpacity\n onPress={() => {\n navigate(\"\");\n }}\n style={styles.button}\n >\n <Text style={{ color: \"white\", fontWeight: \"bold\", fontSize: 16 }}>\n TOPへ\n </Text>\n </TouchableOpacity>\n </View>\n </View>\n );\n};\n\nconst FinishPurchaseView = ({ navigate }) => {\n return (\n <View style={{ flex: 1 }}>\n <View\n style={{ flex: 1, justifyContent: \"flex-end\", alignItems: \"center\" }}\n >\n <Block\n borderWidth=\"2pt\"\n borderColor={Colors.SecondPrimary}\n paddingTop=\"5pt\"\n paddingBottom=\"5pt\"\n marginTop=\"40pt\"\n marginLeft=\"30pt\"\n marginRight=\"30pt\"\n style={{ justifyContent: \"center\", alignItems: \"center\" }}\n >\n <Text\n style={{ color: Colors.Primary, fontWeight: \"bold\", padding: 5 }}\n >\n 査定を完了しました。\n </Text>\n </Block>\n </View>\n <View\n style={{\n flexDirection: \"row\",\n paddingVertical: 32,\n paddingHorizontal: 20,\n }}\n >\n <TouchableOpacity\n onPress={() => {\n navigate(\"\");\n }}\n style={styles.button}\n >\n <Text style={{ color: \"white\", fontWeight: \"bold\", fontSize: 16 }}>\n TOPへ\n </Text>\n </TouchableOpacity>\n </View>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n wrap: {\n flex: 1,\n paddingBottom: \"20pt\",\n paddingHorizontal: \"24pt\",\n },\n titleWrap: {\n flexDirection: \"row\",\n alignItems: \"center\",\n borderBottomWidth: 2,\n borderBottomColor: Colors.WhiteDark03,\n paddingVertical: \"15pt\",\n },\n title: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n marginLeft: \"10pt\",\n fontSize: \"18pt\",\n },\n description: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n fontSize: \"13pt\",\n },\n cell: {\n flex: 1,\n backgroundColor: Colors.PrimaryLight2,\n alignItems: \"center\",\n paddingVertical: 3,\n },\n cellText: {\n fontWeight: \"500\",\n color: Colors.Primary,\n fontSize: \"12pt\",\n },\n\n textInput: {\n flex: 1,\n paddingVertical: 5,\n paddingHorizontal: 5,\n marginLeft: 5,\n backgroundColor: Colors.PrimaryLight2,\n textAlign: \"right\",\n fontSize: \"12pt\",\n },\n button: {\n flex: 1,\n backgroundColor: Colors.SecondPrimary,\n paddingVertical: \"10pt\",\n alignItems: \"center\",\n borderRadius: 5,\n },\n});\n\nconst mapStateToProps = (state) => ({\n isGettingInvoice: state.invoice.isGettingInvoice,\n isGotInvoice: state.invoice.isGotInvoice,\n invoice: state.invoice.invoice,\n\n isUpdatingInvoice: state.invoice.isUpdatingInvoice,\n isUpdatedInvoice: state.invoice.isUpdatedInvoice,\n updatedInvoice: state.invoice.updatedInvoice,\n\n taxRate: state.general.taxRate,\n\n isDeletingInvoiceDetail: state.invoice.isDeletingInvoiceDetail,\n isDeletedInvoiceDetail: state.invoice.isDeletedInvoiceDetail,\n invoiceWhichDeletedInvoiceDetail:\n state.invoice.invoiceWhichDeletedInvoiceDetail,\n\n invoiceDataWhenGoToProductDetail:\n state.invoice.invoiceDataWhenGoToProductDetail,\n});\nconst mapDispatchToProps = {\n getInvoice,\n updateInvoice,\n getTaxRate,\n deleteInvoiceDetail,\n uploadPdf,\n saveInvoiceDataWhenGoToProductDetail,\n checkCart,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Cart);\n","import React from \"react\";\nimport { Colors } from \"utils\";\nimport Block from \"components/common/Block\";\nimport TextView from \"components/common/TextView\";\nimport CheckBox from \"components/common/CheckBox\";\nimport { formatMoney, MoneyFormatter } from \"../../utils/MoneyFormatter\";\n\nconst ItemTable = ({\n name,\n check,\n amount,\n unit_price,\n total_price,\n onCheckBoxPress,\n}) => {\n return (\n <Block\n direction=\"row\"\n justifyContent=\"space-between\"\n middle\n marginTop=\"3pt\"\n borderBottomWidth=\"1pt\"\n borderBottomColor={Colors.SecondPrimary}\n borderStyle=\"dashed\"\n paddingBottom=\"5pt\"\n paddingTop=\"5pt\"\n >\n <Block flex={2} direction=\"row\" middle>\n <CheckBox\n label={name}\n size={12}\n check={check}\n onCheckBoxPress={onCheckBoxPress}\n fontSize={\"11pt\"}\n />\n </Block>\n <Block block>\n <TextView size=\"11pt\" color={Colors.Primary} regular textAlign=\"right\">\n {amount}\n </TextView>\n </Block>\n <Block block>\n <TextView textAlign=\"right\" size=\"11pt\" color={Colors.Primary} regular>\n {formatMoney(unit_price) + \"円\"}\n </TextView>\n </Block>\n <Block block>\n <TextView textAlign=\"right\" size=\"11pt\" color={Colors.Primary} regular>\n {formatMoney(total_price) + \"円\"}\n </TextView>\n </Block>\n </Block>\n );\n};\n\nItemTable.defaultProps = {\n title: \"\",\n check: false,\n value1: \"\",\n value2: \"\",\n value3: \"\",\n};\nexport default ItemTable;\n","import React, { useState, useEffect } from \"react\";\nimport { ScrollView } from \"react-native\";\nimport { Colors } from \"utils\";\nimport Block from \"components/common/Block\";\nimport TextView from \"components/common/TextView\";\nimport ItemTable from \"./ItemTable\";\nimport {\n formatMoney,\n MoneyFormatter,\n formatInvoiceDetailAmount,\n} from \"../../utils/MoneyFormatter\";\nimport { formatDateTime, DateTimeFormatter } from \"../../utils/DateUtility\";\nimport { connect } from \"react-redux\";\nimport { getSetting } from \"../../redux/actions/general\";\n\nconst Table = ({ data, lastInvoice, ...props }) => {\n useEffect(() => {\n props.getSetting();\n }, []);\n\n const calculateUpperPrice = (invoice_detail) => {\n // 仕入単価=(products.adjust_value_pt × market_prices.pt_jpy)\n // + (products.adjust_value_pd × market_prices.pd_jpy)\n // + (products.adjust_value_rh × market_prices.rh_jpy)\n // 下限仕入単価=仕入単価 × (settings.target_profit_rate) / 100)\n // 上限仕入単価=下限仕入単価 × (settings.limit_profit_rate) / 100)\n // => 仕入単価目安 = {下限仕入単価} ~ {上限仕入単価}\n\n if (lastInvoice !== undefined) {\n const { pt_jpy, pd_jpy, rh_jpy } = lastInvoice?.invoice;\n const {\n total_value_pd,\n total_value_pt,\n total_value_rh,\n } = invoice_detail?.product_info;\n const unitPrice =\n total_value_pd * pd_jpy +\n total_value_pt * pt_jpy +\n total_value_rh * rh_jpy;\n\n const fromUnitPrice =\n unitPrice * (props.setting?.target_profit_rate * 0.01);\n const toUnitPrice =\n fromUnitPrice * (props.setting?.limit_profit_rate * 0.01);\n return toUnitPrice;\n }\n };\n\n return (\n <Block\n block\n borderWidth=\"1pt\"\n borderColor={Colors.SecondPrimary}\n borderRadius=\"5pt\"\n paddingTop=\"5pt\"\n marginTop=\"5pt\"\n >\n <Block paddingHorizontal=\"10pt\">\n <Block direction=\"row\" justifyContent=\"space-between\" middle>\n <TextView size=\"10pt\" color={Colors.Primary} bold>\n 前回仕入日:\n {formatDateTime(lastInvoice?.invoice?.date)}\n </TextView>\n <TextView size=\"10pt\" color={Colors.Primary} bold>\n 総取引回数:{lastInvoice?.total_purchase}回\n </TextView>\n </Block>\n <Block\n direction=\"row\"\n justifyContent=\"space-between\"\n middle\n marginTop=\"3pt\"\n borderBottomWidth=\"1pt\"\n borderBottomColor={Colors.Primary}\n paddingBottom=\"5pt\"\n borderStyle=\"dashed\"\n >\n <Block flex={2}>\n <TextView size=\"10pt\" color={Colors.Primary} bold>\n 前回仕入時の貴金属相場\n </TextView>\n </Block>\n <Block block direction=\"row\" middle>\n <Block\n center\n color={Colors.Primary}\n paddingHorizontal=\"2pt\"\n paddingVertical=\"1pt\"\n marginRight=\"3pt\"\n >\n <TextView size=\"10pt\" color={Colors.White} bold>\n PT\n </TextView>\n </Block>\n <TextView size=\"10pt\" color={Colors.Primary} bold>\n {formatMoney(\n lastInvoice?.invoice?.pt_jpy,\n MoneyFormatter.ZERO_DECIMAL_FORMAT\n )}\n 円\n </TextView>\n </Block>\n <Block block direction=\"row\" middle>\n <Block\n center\n color={Colors.Primary}\n paddingHorizontal=\"2pt\"\n paddingVertical=\"1pt\"\n marginRight=\"3pt\"\n >\n <TextView size=\"10pt\" color={Colors.White} bold>\n PD\n </TextView>\n </Block>\n <TextView size=\"10pt\" color={Colors.Primary} bold>\n {formatMoney(\n lastInvoice?.invoice?.pd_jpy,\n MoneyFormatter.ZERO_DECIMAL_FORMAT\n )}\n 円\n </TextView>\n </Block>\n <Block block direction=\"row\" middle>\n <Block\n center\n color={Colors.Primary}\n paddingHorizontal=\"2pt\"\n paddingVertical=\"1pt\"\n marginRight=\"3pt\"\n >\n <TextView size=\"10pt\" color={Colors.White} bold>\n RH\n </TextView>\n </Block>\n <TextView size=\"10pt\" color={Colors.Primary} bold>\n {formatMoney(\n lastInvoice?.invoice?.rh_jpy,\n MoneyFormatter.ZERO_DECIMAL_FORMAT\n )}\n 円\n </TextView>\n </Block>\n </Block>\n\n <Block\n direction=\"row\"\n justifyContent=\"space-between\"\n middle\n marginTop=\"3pt\"\n paddingBottom=\"3pt\"\n >\n <Block flex={2}>\n <TextView size=\"10pt\" color={Colors.Primary} bold>\n 品名・分類\n </TextView>\n </Block>\n <Block block>\n <TextView\n size=\"10pt\"\n color={Colors.Primary}\n bold\n textAlign=\"center\"\n >\n 数量\n </TextView>\n </Block>\n <Block block>\n <TextView\n textAlign=\"center\"\n size=\"10pt\"\n color={Colors.Primary}\n bold\n >\n 前回仕入単価\n </TextView>\n </Block>\n <Block block>\n <TextView\n textAlign=\"center\"\n size=\"10pt\"\n color={Colors.Primary}\n bold\n >\n 前回上限単価\n </TextView>\n </Block>\n </Block>\n </Block>\n <Block\n borderTopWidth=\"1pt\"\n borderTopColor={Colors.SecondPrimary}\n paddingBottom=\"5pt\"\n paddingHorizontal=\"10pt\"\n block\n >\n <ScrollView style={{ maxHeight: 180 }}>\n {data.map((item, index) => {\n const limitPrice = calculateUpperPrice(item);\n return (\n <ItemTable\n key={`${index}`}\n name={item.name}\n check={item.check}\n amount={formatInvoiceDetailAmount(item.amount)}\n unit_price={item.unit_price}\n total_price={limitPrice}\n onCheckBoxPress={item.onCheckBoxPress}\n />\n );\n })}\n </ScrollView>\n </Block>\n </Block>\n );\n};\n\n// export default Table;\n\nconst mapStateToProps = (state) => ({\n setting: state.general.setting,\n});\nconst mapDispatchToProps = {\n getSetting,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Table);\n","import React from \"react\";\nimport Block from \"components/common/Block\";\nimport TextView from \"components/common/TextView\";\nimport { Colors } from \"utils\";\nimport Button from \"components/common/Button\";\n\nconst ItemSearch = ({ data, onPress }) => {\n return (\n <Block\n direction=\"row\"\n paddingHorizontal=\"10pt\"\n paddingVertical=\"8pt\"\n borderBottomWidth=\"0.5pt\"\n borderBottomColor={`${Colors.SecondPrimary}50`}\n >\n <Block block>\n <TextView size=\"10pt\" bold color={Colors.Primary}>\n {data?.name}\n </TextView>\n </Block>\n <Button\n {...{ onPress }}\n paddingHorizontal=\"5pt\"\n paddingVertical=\"3pt\"\n color={Colors.SecondPrimary}\n >\n <TextView size=\"10pt\" regular color={Colors.White}>\n {\"追 加\"}\n </TextView>\n </Button>\n </Block>\n );\n};\nItemSearch.defaultProps = {\n title: \"ビートル AZJ【7041】\",\n labelButton: \"追 加\",\n onPress: () => true,\n};\nexport default ItemSearch;\n","import React from \"react\";\nimport { ScrollView } from \"react-native\";\nimport { Colors } from \"utils\";\nimport Block from \"components/common/Block\";\nimport ItemSearch from \"./ItemSearch\";\n\nconst SearchList = ({ data, onPress }) => {\n return (\n <Block\n height=\"100pt\"\n width=\"75%\"\n color=\"white\"\n position=\"absolute\"\n right=\"0pt\"\n bottom=\"-100pt\"\n borderRadius=\"3pt\"\n borderWidth=\"1pt\"\n borderColor={Colors.SecondPrimary}\n >\n <ScrollView>\n {data.map((item, index) => {\n return (\n <ItemSearch\n data={item}\n onPress={() => onPress(item)}\n key={`${index}`}\n />\n );\n })}\n </ScrollView>\n </Block>\n );\n};\n\nexport default SearchList;\n","import React, { useState, useEffect } from \"react\";\nimport { Block, TextView, Button } from \"components\";\nimport { Table, SearchList } from \"components/buy-review\";\nimport Title from \"components/common/Title\";\nimport { Colors, useNavigate } from \"utils\";\nimport Input from \"components/common/Input\";\nimport { data } from \"./fakeBuyReviews\";\nimport { connect } from \"react-redux\";\nimport {\n getLastInvoice,\n insertProductsToInvoice,\n} from \"../../redux/actions/invoice\";\nimport { searchProducts } from \"../../redux/actions/product\";\nimport { useHistory } from \"react-router-dom\";\nimport { usePrevious } from \"../../utils/hook\";\nimport { formatMoney, MoneyFormatter } from \"../../utils/MoneyFormatter\";\nimport { formatDateTime, DateTimeFormatter } from \"../../utils/DateUtility\";\nimport { Alert } from \"../../App\";\nimport { checkCart } from \"../../redux/actions/home\";\nimport {\n View,\n Text,\n StyleSheet,\n TextInput,\n TouchableOpacity,\n ScrollView,\n} from \"react-native\";\n\n/**\n * Screen: [003-002-1 / 仕入査定]\n * @returns {*}\n * @constructor\n */\n\nconst BuyReviews = (props) => {\n const [isFocus, setIsFocus] = useState(false);\n const [newProductName, setNewProductName] = useState(\"\");\n const [productCheck, setProductCheck] = useState({\n productIndex: -1,\n check: false,\n });\n const navigate = useNavigate();\n const history = useHistory();\n const [lastInvoiceData, setLastInvoiceData] = useState([]);\n const [searchProductName, setSearchProductName] = useState(\"\");\n const [justInsertProductList, setJustInsertProductList] = useState([]);\n const { new_invoice, use_transfer } = history?.location?.state;\n\n useEffect(() => {\n if (lastInvoiceData.length > 0) {\n const data = lastInvoiceData.map((item, index) => {\n return {\n ...item,\n check: index === productCheck.productIndex ? !item.check : item.check,\n };\n });\n setLastInvoiceData(data);\n }\n }, [productCheck]);\n\n useEffect(() => {\n props.getLastInvoice({\n customer_id: new_invoice?.customer_info?.id,\n });\n }, []);\n\n const showInsertFinishModal = () => {\n Alert.alert(\n \"\",\n <InsertProductModal justInsertProductList={justInsertProductList} />,\n [\n {\n label: \"OK\",\n primary: true,\n onPress: () => {\n Alert.hideModal();\n },\n },\n ]\n );\n };\n\n const prevInsertingProductToInvoice = usePrevious(\n props.isInsertingProductToInvoice\n );\n useEffect(() => {\n if (prevInsertingProductToInvoice && !props.isInsertingProductToInvoice) {\n if (props.isInsertedProductToInvoice) {\n props.checkCart();\n showInsertFinishModal();\n setJustInsertProductList([]);\n } else {\n Alert.alert(\"\", props.errorMsg, [\n {\n label: \"OK\",\n primary: true,\n onPress: () => {\n Alert.hideModal();\n },\n },\n ]);\n }\n }\n }, [props.isInsertingProductToInvoice]);\n\n const insertAllProduct = () => {\n const data = lastInvoiceData.map((item) => {\n return {\n id: item.id,\n name: item.name,\n amount: 0,\n unit_price: 0,\n price: 0,\n tax: 0,\n total_price: 0,\n is_delete_product: false,\n };\n });\n setJustInsertProductList(data);\n insertProductsToInvoice(data, false);\n };\n\n const insertSelectedProducts = () => {\n const data = lastInvoiceData\n .filter(function (item) {\n return item.check;\n })\n .map(function (item) {\n return {\n id: item.id,\n name: item.name,\n amount: 0,\n unit_price: 0,\n price: 0,\n tax: 0,\n total_price: 0,\n is_delete_product: false,\n };\n });\n setJustInsertProductList(data);\n insertProductsToInvoice(data, false);\n };\n\n const insertNewProductToInvoice = () => {\n if (!newProductName) {\n return;\n }\n\n const data = [];\n data.push({\n id: -1,\n name: newProductName,\n amount: 0,\n unit_price: 0,\n price: 0,\n tax: 0,\n total_price: 0,\n is_delete_product: false,\n });\n setJustInsertProductList(data);\n insertProductsToInvoice(data, false);\n };\n\n const insertSearchProduct = (product) => {\n const data = [];\n data.push({\n id: product.id,\n name: product.name,\n amount: 0,\n unit_price: 0,\n price: 0,\n tax: 0,\n total_price: 0,\n is_delete_product: false,\n });\n setJustInsertProductList(data);\n insertProductsToInvoice(data, false);\n setIsFocus((e) => !e);\n };\n\n const insertProductsToInvoice = (data, isClearInvoiceDetail) => {\n props.insertProductsToInvoice({\n invoice_id: new_invoice?.id,\n is_clear_invoice_detail: isClearInvoiceDetail,\n products: data,\n });\n };\n\n const prevGettingLastInvoice = usePrevious(props.isGettingLastInvoice);\n useEffect(() => {\n if (prevGettingLastInvoice && !props.isGettingLastInvoice) {\n if (props.isGotLastInvoice) {\n const data = props.lastInvoice.invoice.invoice_details.map(\n (item, index) => {\n return {\n id: item.product_info.id,\n name: item.product_info.name,\n check: false,\n amount: item.amount,\n unit_price: item.unit_price,\n price: item.price,\n tax: item.tax,\n total_price: item.total_price,\n product_info: item.product_info,\n onCheckBoxPress: () => {\n setProductCheck((prev) => ({\n productIndex: index,\n check: !prev.check,\n }));\n },\n };\n }\n );\n setLastInvoiceData(data);\n }\n }\n }, [props.isGettingLastInvoice]);\n\n const chooseFromCatalog = () => {\n // go to [005-001-1 / サンプルカタログ(追加ボタンあり)]\n navigate(\"catalog\", { current_invoice: new_invoice });\n };\n\n const purchaseRegister = () => {\n navigate(\"cart\", {\n invoice_id: new_invoice?.id, // we send invoice_id instead of send \"new_invoice\" object, because many flow go to this screen \"cart\"\n lastInvoice: props.lastInvoice,\n use_transfer: use_transfer,\n }); //[003-003-1 / 仕入リスト]\n };\n const [timeOutHandler, setTimeOutHandler] = useState(undefined);\n const doSearch = (search) => {\n setSearchProductName(search);\n if (timeOutHandler !== undefined) clearTimeout(timeOutHandler);\n setTimeOutHandler(\n setTimeout(() => {\n if (search !== \"\") {\n props.searchProducts({\n search_name: search,\n search_code: \"\",\n });\n }\n }, 300)\n );\n };\n\n return (\n <View style={{ flex: 1 }}>\n <Block marginBottom=\"10pt\" marginHorizontal=\"24pt\" flex={10}>\n <Block flex={5}>\n <Title backTitle=\"取引先入力\" title=\"仕入査定\" />\n <Block>\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n 取引先コード:{new_invoice?.customer_info?.code}\n </TextView>\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n 取引先名:{new_invoice?.customer_info?.name}\n </TextView>\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n 本日の貴金属相場\n </TextView>\n </Block>\n <Block direction=\"row\" marginTop=\"5pt\">\n <Block\n block\n center\n color={`${Colors.Primary}20`}\n paddingVertical=\"2pt\"\n >\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n PT:{formatMoney(new_invoice?.market_price?.pt_jpy)}円\n </TextView>\n </Block>\n <Block\n marginHorizontal=\"5pt\"\n block\n center\n color={`${Colors.Primary}20`}\n >\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n PD:{formatMoney(new_invoice?.market_price?.pd_jpy)}円\n </TextView>\n </Block>\n <Block block center color={`${Colors.Primary}20`}>\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n RH:{formatMoney(new_invoice?.market_price?.rh_jpy)}円\n </TextView>\n </Block>\n </Block>\n <Table data={lastInvoiceData} lastInvoice={props.lastInvoice} />\n {\n //props.lastInvoice for use to get data only because lastInvoiceData contain function\n //lastInvoiceData use for check/uncheck checkbox\n }\n </Block>\n <Block flex={5} marginTop=\"5pt\">\n <Block flex={1.2} centered>\n <Block direction=\"row\" block>\n <Button\n centered\n middles\n block\n borderRadius=\"3pt\"\n paddingHorizontal=\"10pt\"\n paddingVertical=\"12pt\"\n color={Colors.SecondPrimary}\n onPress={() => insertAllProduct()}\n >\n <TextView size=\"12pt\" center bold color={Colors.White}>\n 前回仕入をすべて追加\n </TextView>\n </Button>\n <Block width=\"5pt\" />\n <Button\n centered\n middle\n block\n borderRadius=\"3pt\"\n paddingHorizontal=\"10pt\"\n paddingVertical=\"12pt\"\n color={Colors.SecondPrimary}\n onPress={() => insertSelectedProducts()}\n >\n <TextView size=\"12pt\" bold center color={Colors.White}>\n 選択した製品を追加\n </TextView>\n </Button>\n </Block>\n <Block flex={2}>\n <Button\n smallCentered\n width=\"100%\"\n paddingVertical=\"12pt\"\n centered\n middle\n onPress={() => chooseFromCatalog()}\n >\n <TextView size=\"13pt\" bold color={Colors.White} center>\n サンプルカタログから選ぶ\n </TextView>\n </Button>\n </Block>\n </Block>\n <Block flex={2} style={{ zIndex: 1 }}>\n <Block style={{ zIndex: 1, marginTop: \"10pt\" }}>\n <Input\n onPress={() => setIsFocus((e) => !e)}\n placeholder={\"\"}\n placeholderTextColor={Colors.SecondPrimary}\n label={\"品名・分類検索\"}\n paddingVertical=\"10pt\"\n value={searchProductName}\n onChangeText={(value) => doSearch(value)}\n fv\n />\n {isFocus && (\n <SearchList\n onPress={(product) => {\n setSearchProductName(\"\");\n insertSearchProduct(product);\n }}\n data={props.products}\n />\n )}\n </Block>\n\n <Block direction=\"row\" alignItems=\"flex-end\">\n <Block block>\n <Input\n hideIcon\n placeholder={\"\"}\n placeholderTextColor={Colors.SecondPrimary}\n label={\"新規商品(参考名称)\"}\n paddingVertical=\"10pt\"\n onChangeText={(value) => setNewProductName(value)}\n renderRight={() => (\n <Button\n color={Colors.SecondPrimary}\n paddingVertical=\"5pt\"\n paddingHorizontal=\"10pt\"\n onPress={() => insertNewProductToInvoice()}\n height={\"24pt\"}\n marginLeft={\"10pt\"}\n marginBottom={\"4pt\"}\n middle\n centered\n >\n <TextView size=\"12pt\" color=\"white\">\n 追 加\n </TextView>\n </Button>\n )}\n />\n </Block>\n </Block>\n </Block>\n <Block flex={0.8}>\n <Block\n width=\"50%\"\n alignSelf=\"center\"\n paddingVertical=\"10pt\"\n color={Colors.SecondPrimary}\n borderRadius=\"3pt\"\n marginTop=\"8pt\"\n center\n >\n <Button onPress={() => purchaseRegister()}>\n <TextView bold size=\"12pt\" color=\"white\">\n 仕入リスト登録\n </TextView>\n </Button>\n </Block>\n </Block>\n </Block>\n </Block>\n </View>\n );\n};\n\nconst mapStateToProps = (state) => ({\n lastInvoice: state.invoice.lastInvoice,\n isGettingLastInvoice: state.invoice.isGettingLastInvoice,\n isGotLastInvoice: state.invoice.isGotLastInvoice,\n isSearchingProduct: state.product.isSearchingProduct,\n isSearchProductFinish: state.product.isSearchProductFinish,\n products: state.product.products,\n\n isInsertingProductToInvoice: state.invoice.isInsertingProductToInvoice,\n isInsertedProductToInvoice: state.invoice.isInsertedProductToInvoice,\n invoiceWhichJustInsertProduct: state.invoice.invoiceWhichJustInsertProduct,\n\n errorMsg: state.invoice.errorMsg,\n});\nconst mapDispatchToProps = {\n getLastInvoice,\n insertProductsToInvoice,\n searchProducts,\n checkCart,\n};\n\nconst InsertProductModal = ({ justInsertProductList }) => {\n return (\n <View>\n <Text style={{ fontSize: 20 }}>製品を追加しました</Text>\n <ScrollView style={{ maxHeight: 200, marginTop: 5 }}>\n {justInsertProductList?.map((item, index) => {\n return (\n <Text key={index} style={{ fontSize: 18 }}>\n {item.name}\n </Text>\n );\n })}\n </ScrollView>\n </View>\n );\n};\nexport default connect(mapStateToProps, mapDispatchToProps)(BuyReviews);\n\n// export default BuyReviews;\n","export const data = [\n {\n value1: 'ビートル APK【7003】',\n value2: '150',\n value3: '14,900円',\n value4: '2,235,000円',\n },\n {\n value1: 'ビートル APK【7003】',\n value2: '150',\n value3: '14,900円',\n value4: '2,235,000円',\n },\n {\n value1: 'ビートル APK【7003】',\n value2: '150',\n value3: '14,900円',\n value4: '2,235,000円',\n },\n {\n value1: 'ビートル APK【7003】',\n value2: '150',\n value3: '14,900円',\n value4: '2,235,000円',\n },\n {\n value1: 'ビートル APK【7003】',\n value2: '150',\n value3: '14,900円',\n value4: '2,235,000円',\n },\n];\nexport const data1 = [\n { title: '小 計(税別)', value: '4,446,600円' },\n { title: '消費税', value: '444,660円' },\n { title: '合 計(税込)', value: '4,891,260円' },\n];\n","import React, { useState } from \"react\";\nimport { Block, Empty, TextView, FooterButton, WrapperBlock } from \"components\";\nimport { Colors } from \"utils\";\nimport { data, data1 } from \"./fakePartitionPreview\";\nimport { PreviewItem } from \"components/partition-preview\";\nimport { ScrollView } from \"react-native-web\";\nimport Title from \"components/common/Title\";\nconst PartitionReview = () => {\n const [empty, setEmpty] = useState(false);\n return (\n <WrapperBlock>\n <Title backTitle={\"TOP\"} title=\"仕入リスト\" />\n {empty ? (\n <Empty />\n ) : (\n <Block block>\n <Block block paddingTop=\"15pt\">\n <Block>\n <TextView\n size=\"13pt\"\n color={Colors.Primary}\n bold\n lineHeight=\"18pt\"\n >\n 取引日:2020年5月25日\n </TextView>\n <TextView\n size=\"13pt\"\n color={Colors.Primary}\n bold\n lineHeight=\"18pt\"\n >\n 取引先名:兼光解体 様\n </TextView>\n <TextView\n size=\"13pt\"\n color={Colors.Primary}\n bold\n lineHeight=\"18pt\"\n >\n 担当者:平田佳彬\n </TextView>\n <Block marginTop=\"10pt\">\n <TextView\n size=\"8pt\"\n color={Colors.Primary}\n bold\n lineHeight=\"18pt\"\n >\n 見積書コード:M20200523-21001-62001\n </TextView>\n </Block>\n </Block>\n <Block\n flex={3}\n borderWidth=\"1pt\"\n borderColor={Colors.Primary}\n borderRightWidth=\"0pt\"\n borderLeftWidth=\"0pt\"\n >\n <PreviewItem\n isHeader\n value1=\"コード ▼\"\n value2=\"メーカー ▼\"\n value3=\"品名・分類 ▼\"\n value4=\"単 価 ▼\"\n blocks={[3, 1, 1, 1.2]}\n centers={[\"left\", \"center\", \"center\", \"center\"]}\n />\n <ScrollView>\n {data.map(({ value1, value2, value3, value4 }, index) => {\n return (\n <PreviewItem\n key={`${index}`}\n {...{ value1, value2, value3, value4 }}\n blocks={[3, 1, 1, 1.2]}\n centers={[\"left\", \"center\", \"center\", \"right\"]}\n />\n );\n })}\n </ScrollView>\n </Block>\n <Block\n borderBottomWidth={1}\n borderBottomColor={Colors.SecondPrimary}\n width={\"50%\"}\n marginTop={1}\n />\n </Block>\n <Block block>\n <Block block>\n <Block\n block\n justifyContent=\"space-around\"\n borderWidth=\"1pt\"\n borderColor={Colors.Primary}\n marginTop=\"1pt\"\n borderRightWidth=\"0pt\"\n borderLeftWidth=\"0pt\"\n >\n {data1.map(({ title, value }, index) => {\n return (\n <Block key={`${index}`} direction=\"row\">\n <Block flex={3}></Block>\n <Block flex={1}>\n <TextView size=\"8pt\" color={Colors.Primary} bold>\n {title}\n </TextView>\n </Block>\n <Block flex={1}>\n <TextView\n textAlign=\"right\"\n size=\"10pt\"\n color={Colors.Primary}\n regular\n >\n {value}\n </TextView>\n </Block>\n </Block>\n );\n })}\n </Block>\n <Block block>\n <Block paddingVertical=\"10pt\">\n <Block direction=\"row\" width=\"50%\">\n <Block block>\n <TextView size=\"8pt\" bold color={Colors.Primary}>\n 事前振込\n </TextView>\n </Block>\n <Block block>\n <TextView size=\"10pt\" bold color={Colors.Primary}>\n 2,000,000 円\n </TextView>\n </Block>\n </Block>\n <Block direction=\"row\" width=\"100%\" marginTop=\"5pt\">\n <Block block>\n <TextView size=\"8pt\" bold color={Colors.Primary}>\n 事前振込\n </TextView>\n </Block>\n <Block block>\n <TextView size=\"10pt\" bold color={Colors.Primary}>\n 2,000,000 円\n </TextView>\n </Block>\n <Block block>\n <TextView size=\"8pt\" bold color={Colors.Primary}>\n 小口現金\n </TextView>\n </Block>\n <Block block>\n <TextView size=\"10pt\" bold color={Colors.Primary}>\n 891,260 円\n </TextView>\n </Block>\n </Block>\n </Block>\n </Block>\n </Block>\n <FooterButton\n label=\"FAX送付依頼を送信しました。\"\n button1=\"ステータスを確認\"\n button2=\"TOPへ\"\n />\n </Block>\n </Block>\n )}\n </WrapperBlock>\n );\n};\n\nexport default PartitionReview;\n","import React, { useEffect, useState } from \"react\";\nimport {\n Block,\n Empty,\n TextView,\n FooterButton,\n WrapperBlock,\n Button,\n CheckBox,\n} from \"components\";\nimport { Colors, isAmountGreaterThanZero } from \"utils\";\nimport { data, data1 } from \"./fakeQuotationReview\";\nimport {\n Image,\n View,\n StyleSheet,\n TouchableOpacity,\n FlatList,\n Dimensions,\n ScrollView,\n Text,\n} from \"react-native\";\nimport { useNavigate } from \"utils\";\nimport { commonIcons } from \"assets/icons\";\nimport { TextItem } from \"components/quotation-review\";\nimport { useLocation } from \"react-router-dom\";\nimport { PreviewItem } from \"components/partition-preview\";\nimport { useHistory } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { usePrevious } from \"../../utils/hook\";\nimport { formatMoney, MoneyFormatter } from \"../../utils/MoneyFormatter\";\nimport { formatDateTime, DateTimeFormatter } from \"../../utils/DateUtility\";\nimport images from \"assets/images\";\nimport {\n ESTIMATE_SEND_TYPE,\n ESTIMATE_STATUS,\n ESTIMATE_PIC_ATTACH,\n QUOTATION_FLOW,\n} from \"../../utils/Constant\";\nimport {\n getEstimate,\n updateEstimate,\n uploadPdf,\n generatePdf,\n} from \"../../redux/actions/estimate\";\nimport Title from \"components/common/Title\";\nimport { Alert } from \"../../App\";\n\nconst screenHeight = Dimensions.get(\"window\").height;\nconst HEIGHT_IMAGE = screenHeight / 7;\nconst SORT_TYPE = {\n SORT_PRODUCT_CODE: 1,\n SORT_PRODUCT_NAME: 2,\n SORT_UNIT_PRICE: 3,\n SORT_MAKER: 4,\n};\n\nconst sortData = [\n {\n name: \"コード順\",\n type: SORT_TYPE.SORT_PRODUCT_CODE,\n },\n {\n name: \"メーカー\",\n type: SORT_TYPE.SORT_MAKER,\n },\n {\n name: \"品名順\",\n type: SORT_TYPE.SORT_PRODUCT_NAME,\n },\n {\n name: \"単価順\",\n type: SORT_TYPE.SORT_UNIT_PRICE,\n },\n];\n\n/**\n * 003-010-1 / 見積書プレビュー(画像なし)\n */\nconst QuotationReview = (props) => {\n const navigate = useNavigate();\n const [empty, setEmpty] = useState(false);\n const [select, setSelect] = useState(true);\n const [selectSortType, setSelectSortType] = useState(sortData[0]);\n const [sortAscending, setSortAscending] = useState(true);\n const [sortedEstimateDetail, setSortedEstimateDetail] = useState(undefined);\n const location = useLocation();\n const { estimate, pattern } = location?.state;\n const [nextScreenPattern, setNextScreenPattern] = useState(0);\n const [sendTypeChange, setSendTypeChange] = useState(ESTIMATE_SEND_TYPE.FAX);\n const [updateSort, setUpdateSort] = useState(false);\n // const [pdfShareHandler, setPdfShareHandler] = useState(false);\n const [noImageSortAscending, setNoImageSortAscending] = useState({\n sortCode: true,\n sortName: true,\n sortUnitPrice: true,\n sortMaker: true,\n });\n const [noImageSortType, setNoImageSortType] = useState(\n SORT_TYPE.SORT_PRODUCT_CODE\n );\n\n const submitRequest = () => {\n const updateEstimate = {\n id: estimate.id,\n status: ESTIMATE_STATUS.SEND_REQUESTED,\n send_type: sendTypeChange,\n };\n props.updateEstimate(updateEstimate);\n setNextScreenPattern(QUOTATION_FLOW.SUBMIT_REQUEST);\n };\n const finishEstimate = () => {\n const updateEstimate = {\n id: estimate.id,\n status: ESTIMATE_STATUS.ESTIMATE_COMPLETED,\n };\n props.updateEstimate(updateEstimate);\n setNextScreenPattern(QUOTATION_FLOW.FINISH_ESTIMATE);\n };\n const selectSortTypeHandler = (sortType) => {\n setSelect((e) => !e);\n const data = { ...sortType };\n\n setSelectSortType(data);\n };\n\n useEffect(() => {\n if (select) {\n sortDataHandler();\n }\n }, [selectSortType, select]);\n\n useEffect(() => {\n sortDataHandler();\n }, [sortAscending]);\n\n const sortDataHandler = () => {\n const data = estimate.estimate_details;\n\n const data1 = data.sort((a, b) => {\n if (selectSortType.type === SORT_TYPE.SORT_PRODUCT_CODE) {\n //コード順: Sort by Product Code\n\n if (a?.product_info?.code > b?.product_info?.code)\n return sortAscending ? 1 : -1;\n if (a?.product_info?.code < b?.product_info?.code)\n return sortAscending ? -1 : 1;\n return 0;\n } else if (selectSortType.type === SORT_TYPE.SORT_PRODUCT_NAME) {\n //品名順: Sort by Product Name\n if (a?.name > b?.name) return sortAscending ? 1 : -1;\n if (a?.name < b?.name) return sortAscending ? -1 : 1;\n return 0;\n } else if (selectSortType.type === SORT_TYPE.SORT_UNIT_PRICE) {\n //単価順: Sort by Product Price\n if (a?.unit_price > b?.unit_price) return sortAscending ? 1 : -1;\n if (a?.unit_price < b?.unit_price) return sortAscending ? -1 : 1;\n return 0;\n } else if (selectSortType.type === SORT_TYPE.SORT_MAKER) {\n //Maker: Sort by Maker\n const aa =\n a?.product_info?.maker_info?.name !== undefined\n ? a?.product_info?.maker_info?.name\n : \"\";\n const bb =\n b?.product_info?.maker_info?.name !== undefined\n ? b?.product_info?.maker_info?.name\n : \"\";\n // console.log(\"hung aa:\", aa, \"bb:\", bb);\n if (aa > bb) return !sortAscending ? 1 : -1;\n if (aa < bb) return !sortAscending ? -1 : 1;\n return 0;\n }\n });\n\n const haveImageData = data1.filter(\n (item) => item.pic_attach === ESTIMATE_PIC_ATTACH.ATTACHED\n );\n const noImageData = data1.filter(\n (item) => item.pic_attach === ESTIMATE_PIC_ATTACH.NO_ATTACH\n );\n const sortDataWithImageShowFirst = [...haveImageData, ...noImageData];\n setSortedEstimateDetail(sortDataWithImageShowFirst);\n setUpdateSort((prev) => !prev);\n };\n useEffect(() => {\n // setSortedEstimateDetail(estimate?.estimate_details);\n }, []);\n useEffect(() => {\n generatePdfHandler();\n }, [updateSort]);\n\n const generatePdfHandler = () => {\n let sort_condition = \"\";\n let is_ascending = true;\n\n if (pattern === QUOTATION_FLOW.QUOTATION_REVIEW_WITH_IMAGE) {\n sort_condition = selectSortType.type;\n is_ascending = sortAscending;\n } else {\n sort_condition = noImageSortType;\n is_ascending =\n noImageSortType === SORT_TYPE.SORT_PRODUCT_CODE\n ? noImageSortAscending.sortCode\n : noImageSortType === SORT_TYPE.SORT_PRODUCT_NAME\n ? noImageSortAscending.sortName\n : noImageSortType === SORT_TYPE.SORT_UNIT_PRICE\n ? noImageSortAscending.sortUnitPrice\n : noImageSortAscending.sortMaker;\n }\n\n props.generatePdf({\n id: estimate.id,\n sort_condition: sort_condition,\n is_ascending: is_ascending,\n });\n };\n\n const prevUpdatingEstimate = usePrevious(props.isUpdatingEstimate);\n useEffect(() => {\n if (prevUpdatingEstimate && !props.isUpdatingEstimate) {\n if (props.isUpdatedEstimate) {\n generatePdfHandler();\n navigate(\"quotation-complete\", {\n estimate: props.updatedEstimate,\n pattern: nextScreenPattern,\n });\n }\n }\n }, [props.isUpdatingEstimate]);\n\n const setNoImageSortAscendingValue = (key, value) => {\n setNoImageSortAscending((prev) => ({\n ...prev,\n [key]: value,\n }));\n };\n const sortDataNoImageHandler = (noImageSortType) => {\n const data = estimate.estimate_details;\n\n setNoImageSortType(noImageSortType);\n const data1 = data.sort((a, b) => {\n if (noImageSortType === SORT_TYPE.SORT_PRODUCT_CODE) {\n //コード順: Sort by Product Code\n setNoImageSortAscendingValue(\n \"sortCode\",\n !noImageSortAscending.sortCode\n );\n\n if (a?.product_info?.code > b?.product_info?.code)\n return !noImageSortAscending.sortCode ? 1 : -1;\n if (a?.product_info?.code < b?.product_info?.code)\n return !noImageSortAscending.sortCode ? -1 : 1;\n return 0;\n } else if (noImageSortType === SORT_TYPE.SORT_PRODUCT_NAME) {\n //品名順: Sort by Product Name\n setNoImageSortAscendingValue(\n \"sortName\",\n !noImageSortAscending.sortName\n );\n if (a?.name > b?.name) return !noImageSortAscending.sortName ? 1 : -1;\n if (a?.name < b?.name) return !noImageSortAscending.sortName ? -1 : 1;\n return 0;\n } else if (noImageSortType === SORT_TYPE.SORT_UNIT_PRICE) {\n //単価順: Sort by Product Price\n setNoImageSortAscendingValue(\n \"sortUnitPrice\",\n !noImageSortAscending.sortUnitPrice\n );\n if (a?.unit_price > b?.unit_price)\n return !noImageSortAscending.sortUnitPrice ? 1 : -1;\n if (a?.unit_price < b?.unit_price)\n return !noImageSortAscending.sortUnitPrice ? -1 : 1;\n return 0;\n } else if (noImageSortType === SORT_TYPE.SORT_MAKER) {\n //Maker: Sort by Maker\n const aa =\n a?.product_info?.maker_info?.name !== undefined\n ? a?.product_info?.maker_info?.name\n : \"\";\n const bb =\n b?.product_info?.maker_info?.name !== undefined\n ? b?.product_info?.maker_info?.name\n : \"\";\n\n setNoImageSortAscendingValue(\n \"sortMaker\",\n !noImageSortAscending.sortMaker\n );\n if (aa > bb) return !noImageSortAscending.sortMaker ? 1 : -1;\n if (aa < bb) return !noImageSortAscending.sortMaker ? -1 : 1;\n return 0;\n }\n });\n\n setSortedEstimateDetail(data1);\n setUpdateSort((prev) => !prev);\n };\n\n const quotationPreviewUI = () => (\n <FooterButton\n label=\"\"\n button1=\"この内容で送付依頼を送る\"\n button2=\"見積を保存\"\n onPress1={() => submitRequest()}\n onPress2={() => finishEstimate()}\n />\n );\n\n const renderBottomUI = () => {\n if (\n pattern == QUOTATION_FLOW.QUOTATION_REVIEW_NO_IMAGE ||\n pattern == QUOTATION_FLOW.QUOTATION_REVIEW_WITH_IMAGE\n ) {\n return quotationPreviewUI();\n }\n };\n\n return (\n <View>\n <Block paddingHorizontal=\"24pt\">\n <Title backTitle={\"見積単価\"} title=\"見積書プレビュー\" />\n </Block>\n <Block block style={{}}>\n <View style={{ flex: 1 }}>\n <Block block>\n <Block paddingHorizontal=\"24pt\">\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n 御見積日:{formatDateTime(estimate?.date)}\n </TextView>\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n 取引先コード:{estimate?.customer_info?.code}\n </TextView>\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n 取引先名:{estimate?.customer_info?.name} {\"様\"}\n </TextView>\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n 担当者:{estimate?.account_info?.name}\n </TextView>\n <Block\n marginTop=\"10pt\"\n borderBottomWidth=\"1pt\"\n borderBottomColor={Colors.Primary}\n marginBottom=\"5pt\"\n >\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n 見積書コード:{estimate?.code}\n </TextView>\n </Block>\n </Block>\n\n {/* 003-010-1 / 見積書プレビュー(画像なし) – 1 */}\n\n {(pattern === \"002-003\" ||\n pattern === QUOTATION_FLOW.QUOTATION_REVIEW_NO_IMAGE) && (\n <Block\n flex={3}\n marginTop=\"-5pt\"\n paddingBottom=\"10pt\"\n paddingHorizontal=\"24pt\"\n >\n <PreviewItem\n isHeader\n value1=\"コード ▼\"\n value2=\"メーカー ▼\"\n value3=\"品名・分類 ▼\"\n value4=\"単 価 ▼\"\n blocks={[1, 1, 1, 1]}\n centers={[\"left\", \"left\", \"left\", \"right\"]}\n onValue1Press={() =>\n sortDataNoImageHandler(SORT_TYPE.SORT_PRODUCT_CODE)\n }\n onValue2Press={() =>\n sortDataNoImageHandler(SORT_TYPE.SORT_MAKER)\n }\n onValue3Press={() =>\n sortDataNoImageHandler(SORT_TYPE.SORT_PRODUCT_NAME)\n }\n onValue4Press={() =>\n sortDataNoImageHandler(SORT_TYPE.SORT_UNIT_PRICE)\n }\n />\n <ScrollView\n contentContainerStyle={{\n borderBottomWidth: \"1pt\",\n borderTopColor: Colors.Primary,\n }}\n style={{ height: screenHeight - 625 }}\n >\n {sortedEstimateDetail?.map((item, index) => {\n return (\n <PreviewItem\n key={`${index}`}\n value1={item?.product_info?.code}\n value2={item?.product_info?.maker_info?.name}\n value3={item.name}\n value4={renderUnitPrice(item)}\n blocks={[1, 1, 1, 1]}\n centers={[\"left\", \"left\", \"left\", \"right\"]}\n />\n );\n })}\n </ScrollView>\n </Block>\n )}\n {/*pattern === 003-009-2 */}\n {(pattern === \"003-009-1\" ||\n pattern === QUOTATION_FLOW.QUOTATION_REVIEW_WITH_IMAGE) && (\n <Block block>\n <Block\n direction=\"row\"\n middle\n style={{ zIndex: 1 }}\n paddingHorizontal=\"24pt\"\n >\n <TextView size=\"12pt\" color={Colors.Primary}>\n 並べ替え\n </TextView>\n <Block width=\"20%\" height=\"20pt\" marginLeft=\"10pt\" center>\n {!select ? (\n <Block\n position=\"absolute\"\n height=\"120pt\"\n borderWidth=\"1pt\"\n borderColor={Colors.SecondPrimary}\n borderRadius=\"3pt\"\n width=\"100%\"\n color={Colors.White}\n bottom=\"-100pt\"\n style={{\n zIndex: 1,\n }}\n >\n <ScrollView>\n {sortData.map((item, index) => (\n <Button\n key={`${index}`}\n onPress={() => selectSortTypeHandler(item)}\n style={{\n borderBottomWidth: 1,\n borderBottomColor: Colors.SecondPrimary,\n paddingVertical: 6,\n paddingLeft: 5,\n }}\n >\n <TextView\n size=\"12pt\"\n color={Colors.Primary}\n regular\n >\n {item.name}\n </TextView>\n </Button>\n ))}\n </ScrollView>\n </Block>\n ) : (\n <Block\n borderWidth=\"1pt\"\n borderColor={Colors.SecondPrimary}\n borderRadius=\"3pt\"\n width=\"100%\"\n marginTop=\"10pt\"\n color={Colors.White}\n >\n <Button\n onPress={() => setSelect((e) => !e)}\n style={{\n borderBottomWidth: 1,\n borderBottomColor: Colors.SecondPrimary,\n paddingVertical: 6,\n paddingLeft: 5,\n }}\n >\n <TextView size=\"12pt\" color={Colors.Primary} regular>\n {selectSortType.name}\n </TextView>\n </Button>\n </Block>\n )}\n </Block>\n <Block marginHorizontal=\"10pt\">\n <CheckBox\n label=\"昇 順\"\n check={sortAscending}\n onCheckBoxPress={() => setSortAscending((e) => !e)}\n fontSize={\"12pt\"}\n />\n </Block>\n <CheckBox\n label=\"降 順\"\n check={!sortAscending}\n onCheckBoxPress={() => setSortAscending((e) => !e)}\n fontSize={\"12pt\"}\n />\n </Block>\n <View style={{ height: screenHeight - 605 }}>\n <FlatList\n style={{ marginTop: 15 }}\n extraData={updateSort}\n data={sortedEstimateDetail}\n keyExtractor={(item, index) => `${index}`}\n renderItem={renderItem}\n />\n </View>\n </Block>\n )}\n </Block>\n </View>\n\n <View flex={0.3} style={{ marginTop: 10 }}>\n <Block block />\n {(pattern === \"003-009-1\" ||\n pattern === QUOTATION_FLOW.QUOTATION_REVIEW_NO_IMAGE ||\n pattern === QUOTATION_FLOW.QUOTATION_REVIEW_WITH_IMAGE) && (\n <View style={[styles.radio, { alignItems: \"flex-end\" }]}>\n <View style={{ flex: 1 }}>\n <View style={[styles.radio, { marginStart: 10 }]}>\n <View style={styles.radio}>\n <input\n type={\"radio\"}\n name={\"transfertype\"}\n id={\"fax\"}\n checked={sendTypeChange === ESTIMATE_SEND_TYPE.FAX}\n onChange={(value) =>\n setSendTypeChange(ESTIMATE_SEND_TYPE.FAX)\n }\n />\n <label\n for={\"fax\"}\n style={{ color: Colors.Primary, fontSize: 20 }}\n >\n FAX\n </label>\n </View>\n <View style={[styles.radio, { marginLeft: 10 }]}>\n <input\n type={\"radio\"}\n name={\"transfertype\"}\n id={\"email\"}\n checked={sendTypeChange === ESTIMATE_SEND_TYPE.EMAIL}\n onChange={(value) =>\n setSendTypeChange(ESTIMATE_SEND_TYPE.EMAIL)\n }\n />\n <label\n for={\"email\"}\n style={{ color: Colors.Primary, fontSize: 20 }}\n >\n メール\n </label>\n </View>\n </View>\n </View>\n {props.generatedPdfUrl !== \"\" && (\n <View style={{ flex: 1, marginTop: 5 }}>\n <TouchableOpacity\n onPress={() => {\n if (navigator.share) {\n navigator\n .share({\n title: \"Pdf\",\n url: props.generatedPdfUrl,\n })\n .then(() => {\n console.log(\"Thanks for sharing!\");\n })\n .catch((error) => {\n //this will catch the second share attempt\n window.location.reload(true); // now share works again\n });\n } else {\n // fallback\n }\n }}\n >\n <Image\n source={commonIcons.share}\n style={{\n width: \"35pt\",\n height: \"35pt\",\n\n alignSelf: \"center\",\n bottom: \"10pt\",\n }}\n />\n </TouchableOpacity>\n </View>\n )}\n <View style={{ flex: 1 }} />\n </View>\n )}\n\n {renderBottomUI()}\n {pattern === \"002-003\" && (\n <Block position=\"absolute\" bottom=\"20pt\" width=\"100%\">\n <FooterButton label=\"\" button1=\"選 択\" />\n </Block>\n )}\n </View>\n </Block>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n radio: {\n flexDirection: \"row\",\n },\n});\n\n// export default QuotationReview;\n\nconst mapStateToProps = (state) => ({\n // isGettingEstimate: state.estimate.isGettingEstimate,\n // isGotEstimate: state.estimate.isGotEstimate,\n // estimate: state.estimate.estimate,\n isUpdatingEstimate: state.estimate.isUpdatingEstimate,\n isUpdatedEstimate: state.estimate.isUpdatedEstimate,\n updatedEstimate: state.estimate.updatedEstimate,\n\n // isUploadingEstimatePdf: state.estimate.isUploadingEstimatePdf,\n // isUploadedEstimatePdf: state.estimate.isUploadedEstimatePdf,\n // estimateWhichUploadPdf: state.estimate.estimateWhichUploadPdf,\n generatedPdfUrl: state.estimate.generatedPdfUrl,\n});\nconst mapDispatchToProps = {\n // getEstimate,\n updateEstimate,\n uploadPdf,\n generatePdf,\n\n // insertProductsToInvoice,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(QuotationReview);\n\nconst renderItem = ({ item, index }) => {\n const { pic_path } = item.product_info;\n return (\n <Block>\n {item.pic_attach == ESTIMATE_PIC_ATTACH.ATTACHED && (\n <Image\n source={{\n uri:\n pic_path == undefined || pic_path == \"\"\n ? images.no_image\n : pic_path,\n }}\n style={{ height: \"80vw\", width: \"100%\" }}\n resizeMode=\"contain\"\n />\n )}\n <Block paddingHorizontal=\"24pt\">\n <TextItem\n value1={item.product_info?.code}\n value2={item.product_info?.maker_info?.name}\n value3={item.name}\n value4={renderUnitPrice(item)}\n />\n </Block>\n </Block>\n );\n};\n\nconst renderUnitPrice = (estimateDetail) => {\n if (\n isAmountGreaterThanZero(estimateDetail?.unit_price) &&\n isAmountGreaterThanZero(estimateDetail?.unit_price2)\n ) {\n return (\n formatMoney(estimateDetail.unit_price2) +\n \" ~ \" +\n formatMoney(estimateDetail.unit_price) +\n \"円\"\n );\n } else if (isAmountGreaterThanZero(estimateDetail?.unit_price)) {\n return formatMoney(estimateDetail.unit_price) + \"円\";\n } else if (isAmountGreaterThanZero(estimateDetail?.unit_price2)) {\n return formatMoney(estimateDetail.unit_price2) + \"円\";\n } else {\n return formatMoney(estimateDetail.unit_price) + \"円\";\n }\n};\n","import React, { useEffect, useState } from \"react\";\nimport {\n Block,\n Empty,\n TextView,\n FooterButton,\n WrapperBlock,\n Button,\n CheckBox,\n} from \"components\";\nimport { Colors, isAmountGreaterThanZero } from \"utils\";\nimport { data, data1 } from \"./fakeQuotationReview\";\nimport {\n Image,\n View,\n StyleSheet,\n TouchableOpacity,\n FlatList,\n Dimensions,\n ScrollView,\n} from \"react-native\";\nimport { useNavigate } from \"utils\";\nimport { commonIcons } from \"assets/icons\";\nimport { TextItem } from \"components/quotation-review\";\nimport { useLocation } from \"react-router-dom\";\nimport { PreviewItem } from \"components/partition-preview\";\nimport { useHistory } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { usePrevious } from \"../../utils/hook\";\nimport { formatMoney, MoneyFormatter } from \"../../utils/MoneyFormatter\";\nimport { formatDateTime, DateTimeFormatter } from \"../../utils/DateUtility\";\nimport {\n ESTIMATE_SEND_TYPE,\n ESTIMATE_STATUS,\n ESTIMATE_PIC_ATTACH,\n QUOTATION_FLOW,\n} from \"../../utils/Constant\";\nimport { getEstimate, updateEstimate } from \"../../redux/actions/estimate\";\nimport Title from \"components/common/Title\";\n\n/**\n * 003-011-1 / 見積書プレビュー(画像なし)・送付依頼完了画面\n * 003-011-2 / 見積書プレビュー(画像なし)・見積完了画面\n * @param {*} props\n */\nconst QuotationComplete = (props) => {\n const navigate = useNavigate();\n const location = useLocation();\n const { estimate, pattern } = location?.state;\n\n const checkStatus = () => {\n //Go to [002-001 / アカウント]\n navigate(\"account\");\n };\n\n const backToHome = () => {\n //Go to [001-001 / TOP(貴金属相場)]\n navigate(\"\", {});\n };\n\n const finishEstimateUI = () => (\n <FooterButton\n label=\"見積を完了しました。\"\n button1=\"TOPへ\"\n button2=\"\"\n onPress1={() => backToHome()}\n onPress2={() => {}}\n />\n );\n\n const submitRequestUI = () => (\n <FooterButton\n label={\n estimate.send_type == ESTIMATE_SEND_TYPE.FAX\n ? \"FAX送付依頼を送信しました。\"\n : \"メール送付依頼を送信しました。\"\n }\n button1=\"ステータスを確認\"\n button2=\"TOPへ\"\n onPress1={() => checkStatus()}\n onPress2={() => backToHome()}\n />\n );\n\n const renderBottomUI = () => {\n if (pattern == QUOTATION_FLOW.FINISH_ESTIMATE) {\n return finishEstimateUI();\n } else if (pattern == QUOTATION_FLOW.SUBMIT_REQUEST) {\n return submitRequestUI();\n }\n };\n\n return (\n <WrapperBlock>\n <Title backTitle={\"見積単価\"} title=\"見積書プレビュー\" />\n <Block block style={{ marginBottom: \"30pt\" }}>\n <Block block paddingTop=\"15pt\">\n <Block>\n <TextView size=\"13pt\" color={Colors.Primary} bold lineHeight=\"18pt\">\n 御見積日:{formatDateTime(estimate?.date)}\n </TextView>\n <TextView size=\"13pt\" color={Colors.Primary} bold lineHeight=\"18pt\">\n 取引先名:{estimate?.customer_info?.name} {\"様\"}\n </TextView>\n <TextView size=\"13pt\" color={Colors.Primary} bold lineHeight=\"18pt\">\n 担当者:{estimate?.account_info?.name}\n </TextView>\n <Block\n marginTop=\"10pt\"\n borderBottomWidth=\"1pt\"\n borderBottomColor={Colors.Primary}\n marginBottom=\"5pt\"\n >\n <TextView\n size=\"13pt\"\n color={Colors.Primary}\n bold\n lineHeight=\"18pt\"\n >\n 見積書コード:{estimate?.code}\n </TextView>\n </Block>\n </Block>\n\n <Block flex={3} marginTop=\"-5pt\">\n <PreviewItem\n isHeader\n value1=\"コード ▼\"\n value2=\"メーカー ▼\"\n value3=\"品名・分類 ▼\"\n value4=\"単 価 ▼\"\n blocks={[1, 1, 1, 1]}\n centers={[\"left\", \"left\", \"left\", \"right\"]}\n />\n <ScrollView\n contentContainerStyle={{\n borderBottomWidth: \"1pt\",\n borderTopColor: Colors.Primary,\n }}\n >\n {estimate.estimate_details?.map((item, index) => {\n return (\n <PreviewItem\n key={`${index}`}\n value1={item?.product_info?.code}\n value2={item?.product_info?.maker_info?.name}\n value3={item.name}\n value4={renderUnitPrice(item)}\n blocks={[1, 1, 1, 1]}\n centers={[\"left\", \"left\", \"left\", \"right\"]}\n />\n );\n })}\n </ScrollView>\n </Block>\n </Block>\n <Block flex={0.3}>{renderBottomUI()}</Block>\n </Block>\n </WrapperBlock>\n );\n};\n\nconst styles = StyleSheet.create({\n radio: {\n flexDirection: \"row\",\n },\n});\n\nconst renderUnitPrice = (estimateDetail) => {\n if (\n isAmountGreaterThanZero(estimateDetail?.unit_price) &&\n isAmountGreaterThanZero(estimateDetail?.unit_price2)\n ) {\n return (\n formatMoney(estimateDetail.unit_price2) +\n \" ~ \" +\n formatMoney(estimateDetail.unit_price) +\n \"円\"\n );\n } else if (isAmountGreaterThanZero(estimateDetail?.unit_price)) {\n return formatMoney(estimateDetail.unit_price) + \"円\";\n } else if (isAmountGreaterThanZero(estimateDetail?.unit_price2)) {\n return formatMoney(estimateDetail.unit_price2) + \"円\";\n } else {\n return formatMoney(estimateDetail.unit_price) + \"円\";\n }\n};\n\nconst mapStateToProps = (state) => ({\n // isGettingEstimate: state.estimate.isGettingEstimate,\n // isGotEstimate: state.estimate.isGotEstimate,\n // estimate: state.estimate.estimate,\n isUpdatingEstimate: state.estimate.isUpdatingEstimate,\n isUpdatedEstimate: state.estimate.isUpdatedEstimate,\n updatedEstimate: state.estimate.updatedEstimate,\n});\nconst mapDispatchToProps = {\n // getEstimate,\n updateEstimate,\n // insertProductsToInvoice,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(QuotationComplete);\n","import React from \"react\";\nimport { Dimensions } from \"react-native\";\nimport { Block, Empty } from \"components\";\nimport Title from \"components/common/Title\";\nconst { height } = Dimensions.get(\"window\");\nconst TAB_HEIGHT = 160;\nconst Purchase = () => {\n return (\n <Block\n paddingBottom=\"10pt\"\n paddingHorizontal=\"24pt\"\n height={height - TAB_HEIGHT}\n >\n <Title backTitle={\"TOP\"} title=\"仕入リスト\" />\n <Empty />\n </Block>\n );\n};\n\nexport default Purchase;\n","import React, { useState, useEffect } from \"react\";\n\nimport {\n View,\n Text,\n Image,\n StyleSheet,\n TextInput,\n ScrollView,\n FlatList,\n} from \"react-native\";\nimport { Colors, nor } from \"utils\";\nimport { formatDateTime, DateTimeFormatter } from \"../../utils/DateUtility\";\nimport { formatMoney, MoneyFormatter } from \"../../utils/MoneyFormatter\";\n\nconst PerformanceRow = ({ item, ...props }) => {\n const calculateUpvalue = (invoice, invoice_detail) => {\n if (\n invoice !== undefined &&\n invoice_detail !== undefined &&\n invoice_detail?.product_info !== undefined &&\n invoice_detail?.product_info !== null\n ) {\n const { pt_jpy, pd_jpy, rh_jpy } = invoice;\n const {\n total_value_pd,\n total_value_pt,\n total_value_rh,\n } = invoice_detail?.product_info;\n const unitPrice =\n total_value_pd * pd_jpy +\n total_value_pt * pt_jpy +\n total_value_rh * rh_jpy;\n\n const fromUnitPrice =\n unitPrice * (props.setting?.target_profit_rate * 0.01);\n const toUnitPrice =\n fromUnitPrice * (props.setting?.limit_profit_rate * 0.01);\n return formatMoney(toUnitPrice);\n }\n return 0;\n };\n\n return (\n <View style={{ marginTop: 20 }}>\n <View style={{ flexDirection: \"row\" }}>\n <View\n style={{\n flex: 1,\n flexDirection: \"row\",\n alignItems: \"center\",\n }}\n >\n <Text style={styles.text}>{formatDateTime(item.date)}</Text>\n <Text style={styles.marketText}>仕入時相場</Text>\n </View>\n <Text style={styles.badge}>PT</Text>\n <Text style={styles.text}>{formatMoney(item.pt_jpy)}円</Text>\n <Text style={styles.badge}>PD</Text>\n <Text style={styles.text}>{formatMoney(item.pd_jpy)}円</Text>\n <Text style={styles.badge}>RH</Text>\n <Text style={styles.text}>{formatMoney(item.rh_jpy)}円</Text>\n </View>\n\n <RowHeader\n customerName={item.customer_info?.name}\n accountName={item.account_info?.name}\n />\n <Row\n isHeader\n name={\"品名・分類\"}\n val1={\"数 量\"}\n val2={\"仕入単価\"}\n val3={\"仕入時上限単価\"}\n />\n\n {item.invoice_details?.map((detail, index) => (\n <Row\n key={index}\n name={detail.name + \"【\" + detail?.product_info?.code + \"】\"}\n val1={formatMoney(detail.amount)}\n val2={formatMoney(detail.unit_price) + \"円\"}\n val3={calculateUpvalue(item, detail) + \"円\"}\n forceSolid={index === item.invoice_details?.length - 1}\n />\n ))}\n </View>\n );\n};\nexport default PerformanceRow;\nconst styles = StyleSheet.create({\n text: {\n fontWeight: \"bold\",\n color: Colors.Primary,\n },\n marketText: {\n fontSize: \"10pt\",\n fontWeight: \"bold\",\n color: Colors.Primary,\n },\n badge: {\n color: \"white\",\n fontSize: 12,\n fontWeight: \"bold\",\n paddingVertical: 1,\n paddingHorizontal: 5,\n marginHorizontal: 3,\n backgroundColor: Colors.Primary,\n },\n titleWrap: {\n flexDirection: \"row\",\n alignItems: \"center\",\n borderBottomWidth: 2,\n borderBottomColor: Colors.WhiteDark03,\n paddingVertical: nor(15),\n },\n title: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n marginLeft: 10,\n fontSize: nor(18),\n },\n description: {\n color: Colors.Primary,\n marginBottom: 5,\n fontWeight: \"bold\",\n fontSize: \"12pt\",\n },\n tableTitle: {\n borderBottomColor: Colors.SecondPrimary,\n borderBottomWidth: 1,\n paddingVertical: 5,\n },\n textInput: {\n flex: 1,\n paddingVertical: 5,\n paddingHorizontal: 5,\n marginLeft: 5,\n backgroundColor: Colors.PrimaryLight2,\n },\n smallText: {\n fontSize: 12,\n color: Colors.Primary,\n },\n});\n\nconst Row = ({ name, val1, val2, val3, isHeader, forceSolid }) => {\n const fontWeight = isHeader ? \"bold\" : \"normal\";\n return (\n <View\n style={{\n flexDirection: \"row\",\n borderBottomColor: Colors.SecondPrimary,\n borderBottomWidth: forceSolid ? 2 : 1,\n borderStyle: isHeader || forceSolid ? \"solid\" : \"dashed\",\n }}\n >\n <View style={{ flex: 2, paddingVertical: 7 }}>\n <Text style={[styles.text, { fontWeight }]}> {name}</Text>\n </View>\n <View style={{ flex: 1, paddingVertical: 7, alignItems: \"center\" }}>\n <Text style={[styles.text, { fontWeight }]}>{val1}</Text>\n </View>\n <View style={{ flex: 1, paddingVertical: 7, alignItems: \"center\" }}>\n <Text style={[styles.text, { fontWeight }]}> {val2}</Text>\n </View>\n <View style={{ flex: 1.5, paddingVertical: 7, alignItems: \"flex-end\" }}>\n <Text style={[styles.text, { fontWeight }]}> {val3}</Text>\n </View>\n </View>\n );\n};\n\nconst RowHeader = ({ customerName, accountName }) => {\n const fontWeight = \"bold\";\n return (\n <View\n style={{\n flexDirection: \"row\",\n borderBottomColor: Colors.SecondPrimary,\n borderBottomWidth: 1,\n borderStyle: \"solid\",\n }}\n >\n <View style={{ flex: 1, paddingVertical: 7 }}>\n <Text style={[styles.text, { fontWeight }]}>\n 取引先名: {customerName}\n </Text>\n </View>\n\n <View style={{ paddingVertical: 7, alignItems: \"flex-end\" }}>\n <Text style={[styles.text, { fontWeight }]}>担当: {accountName}</Text>\n </View>\n </View>\n );\n};\n","import React, { useState, useEffect } from \"react\";\nimport {\n View,\n Text,\n Image,\n StyleSheet,\n TextInput,\n ScrollView,\n FlatList,\n ActivityIndicator,\n} from \"react-native\";\nimport Back from \"components/common/Back\";\nimport { Colors, nor } from \"utils\";\nimport { commonIcons } from \"assets/icons\";\nimport { useLocation } from \"react-router-dom\";\nimport { useHistory } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { searchPastPerformance } from \"../../redux/actions/invoice\";\nimport { formatDateTime, DateTimeFormatter } from \"../../utils/DateUtility\";\nimport { formatMoney, MoneyFormatter } from \"../../utils/MoneyFormatter\";\nimport { getSetting } from \"../../redux/actions/general\";\nimport { TouchableOpacity } from \"react-native-web\";\nimport { Block, Button, TextView, WrapperBlock } from \"components\";\nimport { searchProducts } from \"../../redux/actions/product\";\nimport { searchCustomers } from \"../../redux/actions/customer\";\nimport FullLoading from \"components/common/FullLoading\";\nimport { usePrevious } from \"../../utils/hook\";\nimport DropdownList from \"components/common/DropdownList\";\nimport { getMakers } from \"../../redux/actions/general\";\nimport Title from \"components/common/Title\";\nimport PerformanceRow from \"components/past-performance/PerformanceRow\";\nimport { debounce } from \"lodash\";\n\n/**\n * 006-002-1 / 過去実績表示画面(パターン1)\n * @param {*} props\n */\nconst Preview = (props) => {\n const location = useLocation();\n const history = useHistory();\n const isAdmin = location.pathname.substring(1, 6) === \"admin\";\n const { search_params } = history?.location?.state;\n const [searchParams, setSearchParams] = useState(\n history?.location?.state?.search_params\n );\n const [loading, setLoading] = useState(false);\n const [isLoadingMore, setisLoadingMore] = useState(false);\n // console.log('hung searchParams: ', searchParams);\n // console.log('setting:', props.setting);\n const setSearchParamState = (key, value) => {\n setSearchParams((prev) => ({\n ...prev,\n [key]: value,\n }));\n };\n\n const [\n searchWhenSelectMakerChange,\n setSearchWhenSelectMakerChange,\n ] = useState(false);\n\n useEffect(() => {\n // props.searchPastPerformance(searchParams);\n props.getSetting();\n props.getMakers();\n setLoading(true);\n }, []);\n\n useEffect(() => {\n search();\n }, [searchWhenSelectMakerChange]);\n\n const renderFromToDate = () => {\n let str = \"\";\n if (\n search_params.from_date !== undefined &&\n search_params.from_date !== \"\"\n ) {\n str += formatDateTime(search_params.from_date);\n }\n\n if (search_params.to_date !== undefined && search_params.to_date !== \"\") {\n str += \"〜\" + formatDateTime(search_params.to_date);\n }\n\n return str;\n };\n\n const calculateUpvalue = (invoice, invoice_detail) => {\n if (\n invoice !== undefined &&\n invoice_detail !== undefined &&\n invoice_detail?.product_info !== undefined &&\n invoice_detail?.product_info !== null\n ) {\n const { pt_jpy, pd_jpy, rh_jpy } = invoice;\n const {\n total_value_pd,\n total_value_pt,\n total_value_rh,\n } = invoice_detail?.product_info;\n const unitPrice =\n total_value_pd * pd_jpy +\n total_value_pt * pt_jpy +\n total_value_rh * rh_jpy;\n\n const fromUnitPrice =\n unitPrice * (props.setting?.target_profit_rate * 0.01);\n const toUnitPrice =\n fromUnitPrice * (props.setting?.limit_profit_rate * 0.01);\n return formatMoney(toUnitPrice);\n }\n return 0;\n };\n\n const search = () => {\n const searchData = {\n ...searchParams,\n customer_name:\n searchParams?.customer_name !== undefined\n ? searchParams.customer_name\n : \"\",\n product_name:\n searchParams?.product_name !== undefined\n ? searchParams.product_name\n : \"\",\n maker_name:\n searchParams?.maker_name !== undefined ? searchParams.maker_name : \"\",\n page: 1,\n };\n props.searchPastPerformance(searchData);\n setLoading(true);\n };\n\n const searchProduct = (searchProductName) => {\n props.searchProducts({\n search_name: searchProductName,\n search_code: \"\",\n });\n };\n\n const searchCustomer = (searchCustomerName) => {\n props.searchCustomers({\n name: searchCustomerName,\n });\n };\n const prevSearchingPerformance = usePrevious(props.isSearchingPerformance);\n useEffect(() => {\n if (prevSearchingPerformance && !props.isSearchingPerformance) {\n setLoading(false);\n setisLoadingMore(false);\n }\n }, [props.isSearchingPerformance]);\n\n const onEndReached = debounce(() => {\n const { searchPerformanceNextPage, searchPerformanceReachEnd } = props;\n\n if (!isLoadingMore && !searchPerformanceReachEnd) {\n const searchData = {\n ...searchParams,\n customer_name:\n searchParams?.customer_name !== undefined\n ? searchParams.customer_name\n : \"\",\n product_name:\n searchParams?.product_name !== undefined\n ? searchParams.product_name\n : \"\",\n maker_name:\n searchParams?.maker_name !== undefined ? searchParams.maker_name : \"\",\n page: searchPerformanceNextPage,\n };\n\n props.searchPastPerformance(searchData);\n setisLoadingMore(true);\n }\n });\n\n return (\n <View\n style={{\n flex: 1,\n paddingBottom: 20,\n paddingHorizontal: \"24pt\",\n }}\n >\n {/* <View style={styles.titleWrap}>\n <Back label={\"過去実績検索\"} />\n <Text style={styles.title}>過去実績</Text>\n </View> */}\n <Title backTitle={\"過去実績検索\"} title=\"過去実績\" />\n <View style={{ paddingTop: 10 }}>\n <View style={{ flexDirection: \"row\", marginBottom: 5 }}>\n <View style={{ flex: 1 }}>\n <Text style={styles.description}>\n {isAdmin ? \"取引先:\" : \"取引先:\"}\n </Text>\n </View>\n <Search\n defaultValue={searchParams.customer_name}\n // onChangeText={(value) => {\n // setSearchParamState(\"customer_name\", value.trim());\n // }}\n onSearch={() => search()}\n fetchApi={(searchName) => searchCustomer(searchName)}\n data={props.searchCustomerResults}\n onSelectedItem={(item) =>\n setSearchParamState(\"customer_name\", item?.name?.trim())\n }\n />\n <View style={{ flex: 1 }}></View>\n </View>\n <View style={{ flexDirection: \"row\", marginBottom: 5 }}>\n <View style={{ flex: 1 }}>\n <Text style={styles.description}>\n {isAdmin ? \"品名:\" : \"品名・分類:\"}\n </Text>\n </View>\n <Search\n defaultValue={searchParams.product_name}\n // onChangeText={(value) => {\n // setSearchParamState(\"product_name\", value.trim());\n // }}\n fetchApi={(searchName) => searchProduct(searchName)}\n data={props.products}\n onSelectedItem={(item) =>\n setSearchParamState(\"product_name\", item?.name?.trim())\n }\n onSearch={() => search()}\n />\n <View style={{ flex: 1 }}></View>\n </View>\n <View style={{ flexDirection: \"row\", marginBottom: 5 }}>\n <View style={{ flex: 0.6 }}>\n <Text style={styles.description}>\n {isAdmin ? \"メーカー:\" : \"メーカー:\"}\n </Text>\n </View>\n <DropdownList\n label={\"\"}\n data={props.makerList}\n defaultSelectedItemName={search_params?.maker_name}\n onSelectedItem={(item) => {\n setSearchParamState(\"maker_name\", item?.name?.trim());\n setSearchWhenSelectMakerChange((prev) => !prev);\n }}\n wrapStyle={{\n flex: 1,\n paddingVertical: 10,\n\n marginTop: -20,\n }}\n textInputStyle={{ paddingVertical: 10 }}\n />\n <View style={{ flex: 0.6 }}></View>\n </View>\n <View\n style={{\n flexDirection: \"row\",\n marginBottom: 5,\n borderBottomWidth: \"1pt\",\n borderBottomColor: Colors.Primary,\n paddingBottom: \"5pt\",\n }}\n >\n <View style={{ flex: 1 }}>\n <Text style={styles.description}>期間:{renderFromToDate()}</Text>\n </View>\n </View>\n </View>\n <View\n style={{\n flex: 1,\n height: 100,\n }}\n >\n <FlatList\n data={props.searchPerformanceResult}\n style={{ flex: 1, height: 100 }}\n keyExtractor={(_, index) => `${index}`}\n renderItem={({ item, index }) => {\n return <PerformanceRow key={index} item={item} {...props} />;\n }}\n onEndReachedThreshold={0.5}\n onEndReached={onEndReached}\n ListFooterComponent={() =>\n isLoadingMore && (\n <View style={{ padding: 5 }}>\n <ActivityIndicator />\n </View>\n )\n }\n />\n\n {loading && <FullLoading />}\n </View>\n </View>\n );\n};\n\nconst Search = ({\n onSearch,\n fetchApi,\n onSelectedItem,\n defaultValue,\n data,\n ...props\n}) => {\n const [selectedItemName, setSelectedItemName] = useState(\"\");\n const [selectedItem, setSelectedItem] = useState(undefined);\n const [searchItemName, setSearchItemName] = useState(defaultValue);\n const [isShowCustomerList, setIsShowCustomerList] = React.useState(false);\n const [firstTime, setFirstTime] = React.useState(true);\n\n useEffect(() => {\n if (firstTime) {\n setFirstTime(false);\n } else if (searchItemName !== \"\" && searchItemName !== selectedItemName) {\n fetchApi(searchItemName);\n setIsShowCustomerList(true);\n } else if (searchItemName === \"\") {\n onSelectedItem(undefined);\n setIsShowCustomerList(false);\n } else {\n setIsShowCustomerList(false);\n }\n }, [searchItemName]);\n\n const selectItemHandler = (item, index) => {\n setSelectedItem(item);\n setSelectedItemName(item.name);\n setSearchItemName(item.name);\n setIsShowCustomerList(false);\n onSelectedItem(item);\n };\n\n return (\n <View>\n <View\n style={{\n flex: 1,\n borderColor: Colors.SecondPrimary,\n borderWidth: 1,\n flexDirection: \"row\",\n alignItems: \"center\",\n }}\n >\n <TextInput\n style={{ flex: 1, fontSize: \"12pt\" }}\n value={searchItemName}\n onChangeText={(value) => setSearchItemName(value)}\n {...props}\n />\n <TouchableOpacity onPress={onSearch}>\n <Image\n source={commonIcons.search}\n style={{ width: 14, height: 14, marginHorizontal: 10 }}\n />\n </TouchableOpacity>\n </View>\n {isShowCustomerList && (\n <Block\n color=\"#ECECEC\"\n width=\"90%\"\n height=\"140pt\"\n alignSelf=\"flex-end\"\n borderWidth=\"1pt\"\n borderColor={Colors.SecondPrimary}\n borderRadius=\"3pt\"\n >\n <FlatList\n data={data}\n style={{ flex: 1 }}\n keyExtractor={(_, index) => `${index}`}\n renderItem={({ item, index }) => {\n return (\n <Block\n key={`${index}`}\n paddingVertical=\"10pt\"\n paddingLeft=\"15pt\"\n borderWidth={1}\n borderColor={Colors.PrimaryLight}\n color={\n item?.id === selectedItem?.id\n ? Colors.PrimaryLight\n : \"white\"\n }\n >\n <TouchableOpacity\n onPress={() => selectItemHandler(item, index)}\n >\n <TextView color={Colors.SecondPrimary} size={14} regular>\n {item.name}\n {item.code !== undefined ? \"【\" + item.code + \"】\" : \"\"}\n </TextView>\n </TouchableOpacity>\n </Block>\n );\n }}\n />\n </Block>\n )}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n text: {\n fontWeight: \"bold\",\n color: Colors.Primary,\n },\n marketText: {\n marginStart: 10,\n fontSize: 11,\n fontWeight: \"bold\",\n color: Colors.Primary,\n },\n badge: {\n color: \"white\",\n fontSize: 12,\n fontWeight: \"bold\",\n paddingVertical: 1,\n paddingHorizontal: 5,\n marginHorizontal: 5,\n backgroundColor: Colors.Primary,\n },\n titleWrap: {\n flexDirection: \"row\",\n alignItems: \"center\",\n borderBottomWidth: 2,\n borderBottomColor: Colors.WhiteDark03,\n paddingVertical: nor(15),\n },\n title: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n marginLeft: 10,\n fontSize: nor(18),\n },\n description: {\n color: Colors.Primary,\n marginBottom: 5,\n fontWeight: \"bold\",\n fontSize: \"12pt\",\n },\n tableTitle: {\n borderBottomColor: Colors.SecondPrimary,\n borderBottomWidth: 1,\n paddingVertical: 5,\n },\n textInput: {\n flex: 1,\n paddingVertical: 5,\n paddingHorizontal: 5,\n marginLeft: 5,\n backgroundColor: Colors.PrimaryLight2,\n },\n smallText: {\n fontSize: 12,\n color: Colors.Primary,\n },\n});\n\nconst mapStateToProps = (state) => ({\n searchPerformanceResult: state.invoice.searchPerformanceResult,\n isSearchingPerformance: state.invoice.isSearchingPerformance,\n isSearchedPerformance: state.invoice.isSearchedPerformance,\n searchPerformanceNextPage: state.invoice.searchPerformanceNextPage,\n searchPerformanceReachEnd: state.invoice.searchPerformanceReachEnd,\n\n setting: state.general.setting,\n // isUpdatingCustomerEstimate: state.estimate.isUpdatingCustomerEstimate,\n // isUpdatedCustomerEstimate: state.estimate.isUpdatedCustomerEstimate,\n // updatedCustomerEstimate: state.estimate.updatedCustomerEstimate,\n\n isSearchingProduct: state.product.isSearchingProduct,\n isSearchProductFinish: state.product.isSearchProductFinish,\n products: state.product.products,\n\n searchCustomerResults: state.customer.searchCustomerResults,\n makerList: state.general.makerList,\n});\n\nconst mapDispatchToProps = {\n searchPastPerformance,\n getSetting,\n searchProducts,\n searchCustomers,\n getMakers,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Preview);\n\n//export default Preview;\n","import React from \"react\";\nimport { Text, View, StyleSheet } from \"react-native\";\nimport { Colors } from \"utils\";\nimport { formatDateTime, DateTimeFormatter } from \"../../utils/DateUtility\";\nimport { formatMoney, MoneyFormatter } from \"../../utils/MoneyFormatter\";\n\nconst Card = ({ hideStatus, item }) => {\n return (\n <View style={styles.wrap}>\n {!hideStatus && (\n <View style={{ flexDirection: \"row\", alignItems: \"center\" }}>\n <Text style={styles.field}>取引</Text>\n <Text\n style={[\n styles.inProgress,\n {\n backgroundColor:\n item.transaction_status === \"完了\" ? \"#ADADAD\" : \"#D90000\",\n },\n ]}\n >\n {item.transaction_status}\n </Text>\n <Text style={[styles.field, { marginLeft: 20 }]}>振込</Text>\n <Text\n style={[\n styles.pending,\n {\n backgroundColor:\n item.status == \"未処理\" ? \"#D90000\" : \"#ADADAD\",\n },\n ]}\n >\n {item.status}\n </Text>\n </View>\n )}\n <Text style={styles.field}>\n 取引日:{formatDateTime(item.date, DateTimeFormatter.YYYY_MM_DD_JP)}\n </Text>\n <Text style={styles.field}>\n 振込期日:\n {formatDateTime(item.limit_date, DateTimeFormatter.YYYY_MM_DD_JP)}\n </Text>\n <Text style={styles.field}>取引先名:{item.customer_info?.name}</Text>\n <Text style={styles.field}>\n 振込金額:{formatMoney(item.total_price)} 円\n </Text>\n <Text style={styles.field}>振込内容:{item.type_name}</Text>\n <View style={{ flexDirection: \"row\" }}>\n <Text style={styles.field}>備 考:</Text>\n <View style={{ flex: 1 }}>\n <Text style={styles.note}>{item.remark}</Text>\n </View>\n </View>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n wrap: {\n paddingVertical: 15,\n borderBottomColor: Colors.SecondPrimary,\n borderStyle: \"dashed\",\n borderBottomWidth: 1,\n },\n pending: {\n marginHorizontal: 10,\n paddingHorizontal: 5,\n paddingVertical: 2,\n color: \"white\",\n fontSize: \"12pt\",\n fontWeight: \"bold\",\n alignSelf: \"center\",\n },\n inProgress: {\n backgroundColor: \"#D90000\",\n marginHorizontal: 10,\n paddingHorizontal: 5,\n paddingVertical: 2,\n color: \"white\",\n fontSize: \"12pt\",\n fontWeight: \"bold\",\n alignSelf: \"center\",\n },\n field: {\n fontWeight: \"bold\",\n color: Colors.Primary,\n marginBottom: 5,\n fontSize: \"12pt\",\n },\n note: {\n color: Colors.Primary,\n fontWeight: \"normal\",\n fontSize: \"12pt\",\n },\n});\n\nexport default Card;\n","import React, { useState, useEffect } from \"react\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport {\n StyleSheet,\n Text,\n TouchableOpacity,\n ScrollView,\n View,\n FlatList,\n} from \"react-native\";\nimport { Button } from \"components\";\nimport Card from \"components/transfer/Card\";\nimport { connect } from \"react-redux\";\nimport { useHistory } from \"react-router-dom\";\nimport { createTransfer, searchTransfer } from \"../../redux/actions/transfer\";\nimport FullLoading from \"components/common/FullLoading\";\nimport { Colors, useNavigate } from \"utils\";\nimport { usePrevious } from \"../../utils/hook\";\nimport Title from \"components/common/Title\";\n\n/**\n * 007-002 / 振込依頼・振込依頼一覧\n * @param {*} props\n */\nconst TransferList = (props) => {\n const navigate = useNavigate();\n const history = useHistory();\n const { selectedCustomer } = history?.location?.state;\n const { transfer_id } = history?.location?.state;\n const [loading, setLoading] = useState(false);\n useEffect(() => {\n props.searchTransfer({\n customer_id: selectedCustomer == undefined ? -1 : selectedCustomer.id,\n transfer_id: transfer_id == undefined ? -1 : transfer_id,\n });\n setLoading(true);\n }, []);\n\n const goToAccount = () => {\n //TODO: Go to [002-001 / アカウント]\n };\n\n const goToHomeScreen = () => {\n //Go to [001-001 / TOP(貴金属相場)]\n navigate(\"\");\n };\n\n const prevSearchingTransfer = usePrevious(props.isSearchingTransfer);\n useEffect(() => {\n if (prevSearchingTransfer && !props.isSearchingTransfer) {\n setLoading(false);\n }\n }, [props.isSearchingTransfer]);\n\n return (\n <View style={styles.wrap}>\n <Title title={\"振込依頼一覧\"} />\n <ScrollView style={{ height: \"50vh\" }}>\n {props.searchTransfers?.map((item, index) => {\n return <Card key={index} item={item} />;\n })}\n </ScrollView>\n {loading && <FullLoading />}\n <View style={styles.buttonWrap}>\n <TouchableOpacity\n onPress={() => navigate(\"account\")}\n style={[styles.button, { marginRight: 10 }]}\n >\n <Text style={{ color: \"white\", fontSize: \"13pt\" }}>\n ステータスを確認\n </Text>\n </TouchableOpacity>\n <TouchableOpacity onPress={() => navigate(\"/\")} style={styles.button}>\n <Text style={{ color: \"white\", fontSize: \"13pt\" }}>TOPへ</Text>\n </TouchableOpacity>\n </View>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n wrap: {\n flex: 1,\n paddingBottom: 20,\n paddingHorizontal: \"24pt\",\n },\n field: {\n fontWeight: \"bold\",\n color: Colors.Primary,\n marginBottom: 5,\n },\n note: {\n color: Colors.Primary,\n fontWeight: \"normal\",\n },\n button: {\n flex: 1,\n backgroundColor: Colors.SecondPrimary,\n alignItems: \"center\",\n paddingVertical: 10,\n borderRadius: 3,\n },\n buttonWrap: { flexDirection: \"row\", marginTop: 5 },\n});\n\nconst mapStateToProps = (state) => ({\n searchTransfers: state.transfer.searchTransfers,\n isSearchingTransfer: state.transfer.isSearchingTransfer,\n isSearchedTransfer: state.transfer.isSearchedTransfer,\n});\nconst mapDispatchToProps = {\n searchTransfer,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(TransferList);\n","import React from \"react\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport {\n StyleSheet,\n Text,\n TouchableOpacity,\n ScrollView,\n View,\n} from \"react-native\";\nimport {} from \"components\";\nimport Card from \"components/transfer/Card\";\nimport { useHistory } from \"react-router-dom\";\nimport { Colors, useNavigate } from \"utils\";\nimport Title from \"components/common/Title\";\n\n/**\n * 007-003 / 振込依頼・送信完了画面\n * @param {*} props\n */\nconst Transfered = (props) => {\n const history = useHistory();\n const navigate = useNavigate();\n const { createdTransfer } = history?.location?.state;\n console.log(\"hung createdTransfer:\", createdTransfer);\n\n const goToAccount = () => {\n //TODO: Go to [002-001 / アカウント]\n };\n\n const goToHomeScreen = () => {\n //Go to [001-001 / TOP(貴金属相場)]\n navigate(\"\");\n };\n\n return (\n <View style={styles.wrap}>\n <Title title={\"振込依頼完了\"} />\n <ScrollView style={{ height: \"50vh\" }}>\n {createdTransfer !== undefined && (\n <Card hideStatus item={createdTransfer} />\n )}\n </ScrollView>\n <View>\n <TouchableOpacity style={[styles.button, styles.outlineButton]}>\n <Text style={{ color: Colors.Primary, fontSize: \"12pt\" }}>\n 振込依頼を送信しました。\n </Text>\n </TouchableOpacity>\n </View>\n <View style={styles.buttonWrap}>\n <TouchableOpacity\n style={[styles.button, { marginRight: 10 }]}\n onPress={() => navigate(\"account\")}\n >\n <Text style={{ color: \"white\", fontSize: \"12pt\" }}>\n ステータスを確認\n </Text>\n </TouchableOpacity>\n <TouchableOpacity style={styles.button} onPress={() => navigate(\"/\")}>\n <Text style={{ color: \"white\", fontSize: \"12pt\" }}>TOPへ</Text>\n </TouchableOpacity>\n </View>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n wrap: {\n flex: 1,\n paddingBottom: 20,\n paddingHorizontal: \"24pt\",\n },\n field: {\n fontWeight: \"bold\",\n color: Colors.Primary,\n marginBottom: 5,\n },\n note: {\n color: Colors.Primary,\n fontWeight: \"normal\",\n },\n button: {\n flex: 1,\n backgroundColor: Colors.SecondPrimary,\n alignItems: \"center\",\n paddingVertical: 10,\n borderRadius: 3,\n },\n buttonWrap: { flexDirection: \"row\", marginTop: 5 },\n outlineButton: {\n backgroundColor: \"white\",\n borderWidth: 1,\n borderColor: Colors.Primary,\n alignSelf: \"center\",\n paddingHorizontal: 32,\n marginVertical: 10,\n },\n});\n\nexport default Transfered;\n","import React, { useState, useEffect } from 'react';\nimport {\n StyleSheet,\n TouchableOpacity,\n View,\n Image,\n Text,\n TextInput,\n} from 'react-native';\nimport { Colors } from 'utils';\nimport images from 'assets/images';\nimport { authIcons } from 'assets/icons';\nimport { useNavigate } from 'utils';\nimport { connect } from 'react-redux';\nimport { login } from 'redux/actions/auth';\nimport { usePrevious } from '../../utils/hook';\nimport axiosDebugger, {\n setAxiosDefaultHeaders,\n} from '../../configs/axiosDebugger';\nimport { ACCOUNT_LOGIN_AUTH } from '../../utils/Constant';\n\nconst Login = (props) => {\n const navigate = useNavigate();\n const [username, setUsername] = useState('');\n const [password, setPassword] = useState('');\n\n const submitLogin = () => {\n props.login({\n email: username,\n password: password,\n login_auth: ACCOUNT_LOGIN_AUTH.MOBILE,\n });\n };\n\n const prevLoggingIn = usePrevious(props.isLoggingIn);\n useEffect(() => {\n if (prevLoggingIn && !props.isLoggingIn) {\n if (props.isLoggedIn) {\n setAxiosDefaultHeaders({\n token: props.account.token,\n uuid: props.account.uuid,\n });\n navigate('');\n } else {\n console.log('hung login false');\n }\n }\n }, [props.isLoggingIn]);\n\n return (\n <View style={styles.wrap}>\n <Image\n source={images.user_auth}\n style={styles.backgroundImage}\n resizeMode={'cover'}\n />\n <View style={styles.formWrap}>\n <View style={styles.field}>\n <View style={styles.labelWrap}>\n <Image source={authIcons.user} style={styles.icon} />\n <Text style={styles.label}>ログインID</Text>\n </View>\n <TextInput\n style={styles.textInput}\n onChangeText={(value) => setUsername(value)}\n />\n </View>\n <View style={styles.field}>\n <View style={styles.labelWrap}>\n <Image source={authIcons.password} style={styles.icon} />\n <Text style={styles.label}>パスワード</Text>\n </View>\n <TextInput\n style={styles.textInput}\n secureTextEntry\n onChangeText={(value) => setPassword(value)}\n />\n </View>\n <TouchableOpacity onPress={() => submitLogin()} style={styles.button}>\n <Text style={styles.buttonLabel}>ログイン</Text>\n </TouchableOpacity>\n <TouchableOpacity\n style={styles.errorField}\n onPress={() => navigate('/admin/login')}\n >\n <Text\n style={{\n color: '#DF931C',\n textDecorationLine: 'underline',\n fontSize: 18,\n fontWeight: 'bold',\n }}\n >\n 管理者ログインはこちら\n </Text>\n </TouchableOpacity>\n <View style={styles.errorField}>\n <Text style={{ color: 'red' }}>{props.errorMsg}</Text>\n </View>\n </View>\n </View>\n );\n};\n\nconst mapStateToProps = (state) => ({\n isLoggedIn: state.auth.isLoggedIn,\n isLoggingIn: state.auth.isLoggingIn,\n account: state.auth.account,\n errorMsg: state.auth.errorMsg,\n});\nconst mapDispatchToProps = {\n login,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Login);\n\nconst styles = StyleSheet.create({\n wrap: {\n flex: 1,\n justifyContent: 'flex-end',\n },\n backgroundImage: {\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n },\n formWrap: {\n height: '53vh',\n paddingHorizontal: '24pt',\n },\n field: {\n flexDirection: 'row',\n alignItems: 'center',\n backgroundColor: '#E6F3F3',\n marginBottom: '10pt',\n },\n labelWrap: {\n flexDirection: 'row',\n paddingLeft: '10pt',\n alignItems: 'center',\n },\n icon: { width: '16pt', height: '16pt', marginLeft: '15pt' },\n label: {\n color: Colors.Primary,\n fontWeight: 'bold',\n paddingHorizontal: '10pt',\n },\n textInput: {\n flex: 2,\n textAlign: 'right',\n color: Colors.Primary,\n paddingVertical: '25pt',\n paddingHorizontal: '15pt',\n },\n button: {\n backgroundColor: 'white',\n paddingHorizontal: '32pt',\n paddingVertical: '10pt',\n borderRadius: '40pt',\n alignSelf: 'center',\n marginTop: '40pt',\n },\n buttonLabel: {\n color: Colors.Primary,\n fontWeight: 'bold',\n },\n errorField: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n marginVertical: '13pt',\n },\n});\n","import React, { useEffect, useState } from \"react\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport {\n StyleSheet,\n TouchableOpacity,\n Text,\n View,\n ScrollView,\n} from \"react-native\";\nimport { FilledInput, Button, TextView } from \"components\";\nimport { Colors, Metrics } from \"utils\";\nimport { useNavigate } from \"utils\";\nimport { connect } from \"react-redux\";\nimport { getSetting, updateSetting } from \"../../redux/actions/general\";\nimport validator from \"validator\";\nimport { TextInput } from \"react-native-web\";\nimport { usePrevious } from \"../../utils/hook\";\nimport { validateInteger } from \"../../utils/MoneyFormatter\";\nimport { formatMoney, MoneyFormatter } from \"../../utils/MoneyFormatter\";\nimport FullLoading from \"components/common/FullLoading\";\nimport Title from \"components/common/Title\";\n\n/**\n * 【管理者】008-001-1 / 設定\n */\nconst Settings = (props) => {\n const [loading, setLoading] = useState(false);\n const navigate = useNavigate();\n const [settingData, setSettingData] = useState({});\n\n const setSettingState = (key, value) => {\n setSettingData((prev) => ({\n ...prev,\n [key]: formatMoney(value, MoneyFormatter.ZERO_DECIMAL_FORMAT_NO_COMMAS),\n }));\n };\n\n useEffect(() => {\n props.getSetting();\n setLoading(true);\n }, []);\n\n const prevGettingSetting = usePrevious(props.isGettingSetting);\n useEffect(() => {\n if (prevGettingSetting && !props.isGettingSetting) {\n if (props.isGotSetting) {\n setSettingState(\"id\", props.setting?.id);\n setSettingState(\"adjust_rate_pd\", props.setting?.adjust_rate_pd);\n setSettingState(\"adjust_rate_pt\", props.setting?.adjust_rate_pt);\n setSettingState(\"adjust_rate_rh\", props.setting?.adjust_rate_rh);\n setSettingState(\"limit_profit_rate\", props.setting?.limit_profit_rate);\n setSettingState(\n \"target_profit_rate\",\n props.setting?.target_profit_rate\n );\n }\n setLoading(false);\n }\n }, [props.isGettingSetting]);\n\n return (\n <View style={styles.wrap}>\n <Title title={\"設 定\"} />\n <View style={styles.sectionHeader}>\n <Text style={styles.sectionHeaderLabel}>利益率設定</Text>\n </View>\n\n <ScrollView style={{ height: \"50vh\" }}>\n <View style={styles.fieldRow}>\n <View style={styles.inputCol}>\n <FilledInput\n hideIcon\n headText={\"目標利益率\"}\n tailText={\"%\"}\n value={formatMoney(settingData.target_profit_rate)}\n keyboardType=\"numeric\"\n textInputStyle={{ textAlign: \"right\" }}\n onChangeText={(value) => {\n const formatValue = formatMoney(\n value,\n MoneyFormatter.ZERO_DECIMAL_FORMAT_NO_COMMAS\n );\n if (validateInteger(formatValue)) {\n setSettingState(\"target_profit_rate\", value);\n }\n }}\n keyboardType={\"phone-pad\"}\n />\n </View>\n <View style={styles.descriptionCol}>\n <Text style={styles.inputDescription}>\n ※最安値の仕入単価参考数値を算出\n </Text>\n </View>\n </View>\n <View style={styles.fieldRow}>\n <View style={styles.inputCol}>\n <FilledInput\n hideIcon\n headText={\"上限利益率\"}\n tailText={\"%\"}\n textInputStyle={{ textAlign: \"right\" }}\n value={settingData.limit_profit_rate}\n onChangeText={(value) => {\n const formatValue = formatMoney(\n value,\n MoneyFormatter.ZERO_DECIMAL_FORMAT_NO_COMMAS\n );\n if (validateInteger(formatValue)) {\n setSettingState(\"limit_profit_rate\", value);\n }\n }}\n keyboardType={\"phone-pad\"}\n />\n </View>\n <View style={styles.descriptionCol}>\n <Text style={styles.inputDescription}>\n ※仕入単価の上限(損益分岐点)を算出\n </Text>\n </View>\n </View>\n <Button\n smallCentered\n onPress={() => {\n props.updateSetting(settingData);\n }}\n style={{\n width: Metrics.appW * 0.25,\n paddingVertical: \"8pt\",\n alignItems: \"center\",\n }}\n >\n 更  新\n </Button>\n\n <View style={styles.sectionHeader}>\n <Text style={styles.sectionHeaderLabel}>\n サンプル分析データ補正率設定(製品全体)\n </Text>\n </View>\n\n <View style={styles.fieldRow}>\n <FilledInput\n headText={\"PT\"}\n tailText={\"%\"}\n wrapStyle={{ flex: 1 }}\n headTextStyle={{ fontSize: \"22pt\" }}\n textInputStyle={{ textAlign: \"right\" }}\n value={settingData.adjust_rate_pt}\n onChangeText={(value) => {\n const formatValue = formatMoney(\n value,\n MoneyFormatter.ZERO_DECIMAL_FORMAT_NO_COMMAS\n );\n if (validateInteger(formatValue)) {\n setSettingState(\"adjust_rate_pt\", value);\n }\n }}\n keyboardType={\"phone-pad\"}\n />\n <FilledInput\n headText={\"PD\"}\n tailText={\"%\"}\n wrapStyle={{ flex: 1, paddingHorizontal: 14 }}\n headTextStyle={{ fontSize: \"22pt\" }}\n textInputStyle={{ textAlign: \"right\" }}\n value={settingData.adjust_rate_pd}\n onChangeText={(value) => {\n const formatValue = formatMoney(\n value,\n MoneyFormatter.ZERO_DECIMAL_FORMAT_NO_COMMAS\n );\n if (validateInteger(formatValue)) {\n setSettingState(\"adjust_rate_pd\", value);\n }\n }}\n keyboardType={\"phone-pad\"}\n />\n <FilledInput\n headText={\"RH\"}\n tailText={\"%\"}\n wrapStyle={{ flex: 1 }}\n headTextStyle={{ fontSize: \"22pt\" }}\n textInputStyle={{ textAlign: \"right\" }}\n value={settingData.adjust_rate_rh}\n onChangeText={(value) => {\n const formatValue = formatMoney(\n value,\n MoneyFormatter.ZERO_DECIMAL_FORMAT_NO_COMMAS\n );\n if (validateInteger(formatValue)) {\n setSettingState(\"adjust_rate_rh\", value);\n }\n }}\n keyboardType={\"phone-pad\"}\n />\n </View>\n <Button\n smallCentered\n onPress={() => {\n props.updateSetting(settingData);\n }}\n style={{\n width: Metrics.appW * 0.25,\n paddingVertical: \"8pt\",\n alignItems: \"center\",\n }}\n >\n 更  新\n </Button>\n\n <Button\n outline\n onPress={() => navigate(\"settings/analysis\")}\n style={{\n width: \"100%\",\n paddingVertical: \"10pt\",\n alignItems: \"center\",\n }}\n >\n <TextView size={\"15pt\"} color={Colors.Primary} bold>\n サンプル分析データ マスタ管理\n </TextView>\n </Button>\n </ScrollView>\n\n <Button\n mediumCentered\n onPress={() => {\n navigate(\"\");\n }}\n style={{\n width: Metrics.appW * 0.5,\n paddingVertical: \"10pt\",\n alignItems: \"center\",\n }}\n >\n <TextView size={\"15pt\"} color={\"white\"} bold>\n TOPへ\n </TextView>\n </Button>\n {loading && <FullLoading />}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n wrap: {\n flex: 1,\n paddingBottom: \"10pt\",\n paddingHorizontal: \"24pt\",\n },\n sectionHeader: {\n backgroundColor: Colors.Primary,\n color: \"white\",\n paddingVertical: 5,\n paddingHorizontal: 10,\n marginTop: 14,\n },\n sectionHeaderLabel: {\n color: \"white\",\n fontWeight: \"bold\",\n fontSize: \"14pt\",\n },\n fieldRow: {\n flexDirection: \"row\",\n marginTop: 10,\n },\n row: {\n flexDirection: \"row\",\n },\n inputCol: {\n flex: 1,\n },\n descriptionCol: {\n flex: 1,\n justifyContent: \"center\",\n alignItems: \"flex-end\",\n paddingLeft: 15,\n },\n inputDescription: {\n color: Colors.SecondPrimary,\n fontSize: 12,\n },\n});\n\nconst mapStateToProps = (state) => ({\n setting: state.general.setting,\n isGettingSetting: state.general.isGettingSetting,\n isGotSetting: state.general.isGotSetting,\n\n updatedSetting: state.general.updatedSetting,\n});\nconst mapDispatchToProps = {\n getSetting,\n updateSetting,\n};\nexport default connect(mapStateToProps, mapDispatchToProps)(Settings);\n\n// export default Settings;\n","import React, { useEffect, useState } from \"react\";\nimport Modal from \"modal-enhanced-react-native-web\";\nimport { TextView, Button, Block, Input } from \"components\";\nimport {\n StyleSheet,\n TouchableOpacity,\n Text,\n View,\n Image,\n ScrollView,\n} from \"react-native\";\nimport { Colors } from \"utils\";\nimport { Dimensions } from \"react-native-web\";\nimport validator from \"validator\";\nimport { validateInteger } from \"../../utils/MoneyFormatter\";\nimport { commonIcons } from \"assets/icons\";\n\nconst { height } = Dimensions.get(\"window\");\nconst ModalAnalysis = ({ isVisible, onClose, selectedProduct, onUpdate }) => {\n const [adjustRatePT, setAdjustRatePT] = useState(0);\n const [adjustRatePD, setAdjustRatePD] = useState(0);\n const [adjustRateRH, setAdjustRateRH] = useState(0);\n let adjustRatePTInput = null;\n let adjustRatePDInput = null;\n let adjustRateRHInput = null;\n\n useEffect(() => {\n if (isVisible) {\n // console.log('hung Modal init selectedProduct:',selectedProduct)\n setAdjustRatePT(selectedProduct?.adjust_rate_pt);\n setAdjustRatePD(selectedProduct?.adjust_rate_pd);\n setAdjustRateRH(selectedProduct?.adjust_rate_rh);\n }\n }, [\n isVisible,\n selectedProduct?.adjust_rate_pd,\n selectedProduct?.adjust_rate_pt,\n selectedProduct?.adjust_rate_rh,\n ]);\n\n return (\n <Modal backdropOpacity={0} isVisible={isVisible}>\n <Block\n width=\"270pt\"\n color=\"white\"\n borderWidth=\"1pt\"\n borderColor={Colors.Primary}\n borderRadius=\"5pt\"\n padding=\"10pt\"\n position=\"absolute\"\n alignSelf=\"center\"\n marginTop={-height * 0.15}\n >\n <View style={{ flexDirection: \"row\", justifyContent: \"center\" }}>\n <TextView size=\"12pt\" center color={Colors.SecondPrimary} regular>\n 補正率入力\n </TextView>\n <TouchableOpacity\n onPress={onClose}\n style={{ position: \"absolute\", right: 0 }}\n >\n <Image\n source={commonIcons.close}\n style={{ height: \"12pt\", width: \"12pt\" }}\n />\n </TouchableOpacity>\n </View>\n <Block height=\"0.5pt\" marginVertical=\"10pt\" />\n <TextView size=\"10pt\" color={Colors.SecondPrimary} regular>\n コード:{selectedProduct?.code}\n </TextView>\n <TextView size=\"10pt\" color={Colors.SecondPrimary} regular>\n 品名・分類:{selectedProduct?.name}\n </TextView>\n <Block direction=\"row\" justifyContent=\"space-around\" marginTop=\"5pt\">\n <Block direction=\"row\">\n <TextView size=\"10pt\" color={Colors.SecondPrimary} regular>\n PT\n </TextView>\n <Input\n defaultValue={selectedProduct?.adjust_rate_pt || \"\"}\n onChangeText={(value) => {\n if (validateInteger(value)) {\n setAdjustRatePT(value);\n }\n }}\n hideIcon\n style={{\n width: 50,\n color: Colors.SecondPrimary,\n textAlign: \"right\",\n }}\n wrapStyle={{\n marginHorizontal: 5,\n borderRadius: 0,\n }}\n value={adjustRatePT}\n keyboardType={\"phone-pad\"}\n refHandler={(input) => (adjustRatePTInput = input)}\n selectTextOnFocus\n onFocus={adjustRatePTInput?.focus()}\n />\n <TextView size=\"10pt\" color={Colors.SecondPrimary} regular>\n %\n </TextView>\n </Block>\n <Block direction=\"row\">\n <TextView size=\"10pt\" color={Colors.SecondPrimary} regular>\n PD\n </TextView>\n <Input\n defaultValue={selectedProduct?.adjust_rate_pd || \"\"}\n onChangeText={(value) => {\n if (validateInteger(value)) {\n setAdjustRatePD(value);\n }\n }}\n hideIcon\n style={{\n width: 50,\n color: Colors.SecondPrimary,\n textAlign: \"right\",\n }}\n wrapStyle={{ marginHorizontal: 5, borderRadius: 0 }}\n value={adjustRatePD}\n keyboardType={\"phone-pad\"}\n refHandler={(input) => (adjustRatePDInput = input)}\n selectTextOnFocus\n onFocus={adjustRatePDInput?.focus()}\n />\n <TextView size=\"10pt\" color={Colors.SecondPrimary} regular>\n %\n </TextView>\n </Block>\n <Block direction=\"row\">\n <TextView size=\"10pt\" color={Colors.SecondPrimary} regular>\n RH\n </TextView>\n <Input\n defaultValue={selectedProduct?.adjust_rate_rh || \"\"}\n onChangeText={(value) => {\n if (validateInteger(value)) {\n setAdjustRateRH(value);\n }\n }}\n hideIcon\n style={{\n width: 50,\n color: Colors.SecondPrimary,\n textAlign: \"right\",\n }}\n wrapStyle={{ marginHorizontal: 5, borderRadius: 0 }}\n value={adjustRateRH}\n keyboardType={\"phone-pad\"}\n refHandler={(input) => (adjustRateRHInput = input)}\n selectTextOnFocus\n onFocus={adjustRateRHInput?.focus()}\n />\n <TextView size=\"10pt\" color={Colors.SecondPrimary} regular>\n %\n </TextView>\n </Block>\n </Block>\n <Block\n direction=\"row\"\n justifyContent=\"space-around\"\n marginVertical={25}\n >\n <Button\n onPress={() =>\n onUpdate(\n selectedProduct,\n adjustRatePT,\n adjustRatePD,\n adjustRateRH\n )\n }\n paddingVertical=\"5pt\"\n paddingHorizontal=\"25pt\"\n color={Colors.SecondPrimary}\n borderRadius=\"3pt\"\n >\n <TextView size=\"9pt\" bold color={Colors.White}>\n 更新\n </TextView>\n </Button>\n </Block>\n </Block>\n </Modal>\n );\n};\n\nexport default ModalAnalysis;\n","import React, { useState } from \"react\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport { StyleSheet, TouchableOpacity, Text, View } from \"react-native\";\nimport { Colors } from \"utils\";\nconst ItemAnalysis = ({ item, onPress }) => {\n return (\n <TouchableOpacity onPress={onPress} style={styles.tableDataRow}>\n <View style={styles.flex1}>\n <Text style={styles.tableDataLabel}>{item.code}</Text>\n </View>\n <View style={styles.flex2}>\n <Text style={styles.tableDataLabel}>{item.name}</Text>\n </View>\n <View style={styles.flex1}>\n <View style={styles.dataRow}>\n <Text style={styles.badge}>PT</Text>\n <Text style={styles.tableDataLabel}>{item.analyze_pt}</Text>\n </View>\n <View style={styles.dataRow}>\n <Text style={styles.badge}>PD</Text>\n <Text style={styles.tableDataLabel}>{item.analyze_pd}</Text>\n </View>\n <View style={styles.dataRow}>\n <Text style={styles.badge}>RH</Text>\n <Text style={styles.tableDataLabel}>{item.analyze_rh}</Text>\n </View>\n </View>\n <View style={styles.flex1}>\n <View style={styles.dataRow}>\n <Text style={styles.tableDataLabelFilled}>{item.adjust_rate_pt}</Text>\n </View>\n <View style={styles.dataRow}>\n <Text style={styles.tableDataLabelFilled}>{item.adjust_rate_pd}</Text>\n </View>\n <View style={styles.dataRow}>\n <Text style={styles.tableDataLabelFilled}>{item.adjust_rate_rh}</Text>\n </View>\n </View>\n <View style={styles.flex1}>\n <View style={styles.dataRow}>\n <Text style={styles.tableDataNumber}>{item.adjust_value_pt}</Text>\n </View>\n <View style={styles.dataRow}>\n <Text style={styles.tableDataNumber}>{item.adjust_value_pd}</Text>\n </View>\n <View style={styles.dataRow}>\n <Text style={styles.tableDataNumber}>{item.adjust_value_rh}</Text>\n </View>\n </View>\n <View style={styles.flex1}>\n <View style={styles.flex1}>\n <View style={styles.dataRow}>\n <Text style={styles.tableDataNumber}>{item.total_value_pt}</Text>\n </View>\n <View style={styles.dataRow}>\n <Text style={styles.tableDataNumber}>{item.total_value_pd}</Text>\n </View>\n <View style={styles.dataRow}>\n <Text style={styles.tableDataNumber}>{item.total_value_rh}</Text>\n </View>\n </View>\n </View>\n </TouchableOpacity>\n );\n};\n\nconst styles = StyleSheet.create({\n flex1: { flex: 1 },\n flex2: { flex: 2 },\n tableDataRow: {\n flexDirection: \"row\",\n paddingVertical: 5,\n borderBottomWidth: 1,\n borderBottomColor: Colors.SecondPrimary,\n borderStyle: \"dashed\",\n },\n tableDataLabel: {\n fontSize: 12,\n color: Colors.Primary,\n marginBottom: 2,\n },\n tableDataLabelFilled: {\n fontSize: 12,\n color: Colors.Primary,\n marginBottom: 2,\n backgroundColor: Colors.PrimaryLight,\n alignSelf: \"flex-end\",\n paddingVertical: 2,\n paddingHorizontal: 10,\n minWidth: 40,\n textAlign: \"right\",\n },\n badge: {\n backgroundColor: Colors.Primary,\n paddingVertical: 1,\n paddingHorizontal: 5,\n color: \"white\",\n fontSize: 10,\n marginRight: 5,\n },\n dataRow: {\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n height: 22,\n },\n tableDataNumber: {\n fontSize: 12,\n color: Colors.Primary,\n textAlign: \"right\",\n minWidth: 32,\n },\n});\n\nexport default ItemAnalysis;\n","import React, { useEffect, useState } from \"react\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport {\n StyleSheet,\n TouchableOpacity,\n Text,\n View,\n ScrollView,\n} from \"react-native\";\nimport { Button, Input } from \"components\";\nimport { Colors } from \"utils\";\nimport ModalAnalysis from \"components/modal/ModalAnalysis\";\nimport ItemAnalysis from \"./ItemAnalysis\";\nimport { DATA } from \"./fakeSettting\";\nimport { connect } from \"react-redux\";\nimport { searchProducts, updateProduct } from \"../../redux/actions/product\";\nimport { usePrevious } from \"../../utils/hook\";\nimport Title from \"components/common/Title\";\n\n/**\n * 【管理者】008-001-2 / サンプル分析データ\n * 【管理者】008-001-3 / サンプル分析データ・補正率入力\n */\nconst Analysis = (props) => {\n const [isVisible, setIsVisible] = useState(false);\n const [data, setData] = useState([]);\n const [selectedProduct, setSelectedProduct] = useState(null);\n const [search, setSearch] = useState(\"\");\n\n const handleSort = (type) => {\n if (type) {\n let _data = data.sort((a, b) => a.code - b.code);\n setData([..._data]);\n } else {\n let _data = data.sort((a, b) => a.name.localeCompare(b.name));\n setData([..._data]);\n }\n };\n\n useEffect(() => {}, []);\n\n const prevSearchingProduct = usePrevious(props.isSearchingProduct);\n useEffect(() => {\n if (prevSearchingProduct && !props.isSearchingProduct) {\n if (props.isSearchProductFinish) {\n setData(props.products);\n }\n }\n }, [props.isSearchingProduct]);\n\n const searchHandler = () => {\n props.searchProducts({\n search_name: search,\n search_code: search,\n });\n };\n\n const prevUpdatingProduct = usePrevious(props.isUpdatingProduct);\n useEffect(() => {\n if (prevUpdatingProduct && !props.isUpdatingProduct) {\n if (props.isUpdatedProduct) {\n let d = data;\n d = d.map((item) => {\n if (item.id === props.updatedProduct.id) {\n item.adjust_rate_pt = props.updatedProduct.adjust_rate_pt;\n item.adjust_rate_pd = props.updatedProduct.adjust_rate_pd;\n item.adjust_rate_rh = props.updatedProduct.adjust_rate_rh;\n\n item.adjust_value_pt = props.updatedProduct.adjust_value_pt;\n item.adjust_value_pd = props.updatedProduct.adjust_value_pd;\n item.adjust_value_rh = props.updatedProduct.adjust_value_rh;\n\n item.total_value_pt = props.updatedProduct.total_value_pt;\n item.total_value_pd = props.updatedProduct.total_value_pd;\n item.total_value_rh = props.updatedProduct.total_value_rh;\n }\n return item;\n });\n setData(d);\n }\n }\n }, [props.isUpdatingProduct]);\n\n return (\n <View style={styles.wrap}>\n <Title title={\"設 定\"} />\n <View style={styles.headerRow}>\n <View style={{ flex: 1 }}>\n <Text style={styles.headerLabel}>サンプル分析データ・マスタ</Text>\n </View>\n <View>\n <Input\n paddingVertical={5}\n onChangeText={(value) => setSearch(value)}\n onPress={() => searchHandler()}\n />\n </View>\n </View>\n <View style={styles.tableHeader}>\n <TouchableOpacity onPress={() => handleSort(true)} style={styles.flex1}>\n <Text style={styles.tableHeaderLabel}>コード ▼</Text>\n </TouchableOpacity>\n <TouchableOpacity\n onPress={() => handleSort(false)}\n style={styles.flex2}\n >\n <Text style={styles.tableHeaderLabel}>品名・分類 ▼</Text>\n </TouchableOpacity>\n <View style={styles.flex1}>\n <Text style={styles.tableHeaderLabel}>採集データ{\"\\n\"}(g)</Text>\n </View>\n <View style={styles.flex1}>\n <Text style={styles.tableHeaderLabel}>補正率{\"\\n\"}(%)</Text>\n </View>\n <View style={styles.flex1}>\n <Text style={styles.tableHeaderLabel}>個別補正{\"\\n\"}(g)</Text>\n </View>\n <View style={styles.flex1}>\n <Text style={styles.tableHeaderLabel}>全体補正{\"\\n\"}(g)</Text>\n </View>\n </View>\n <ScrollView style={{ height: \"50vh\" }}>\n {data.map((item, index) => {\n return (\n <ItemAnalysis\n onPress={() => {\n setSelectedProduct(item);\n setIsVisible(true);\n }}\n key={String(index)}\n item={item}\n />\n );\n })}\n </ScrollView>\n\n <ModalAnalysis\n isVisible={isVisible}\n onUpdate={(\n selectedProduct,\n adjustRatePT,\n adjustRatePD,\n adjustRateRH\n ) => {\n setIsVisible(false);\n\n props.updateProduct({\n product_id: selectedProduct?.id,\n adjust_rate_pt: adjustRatePT,\n adjust_rate_pd: adjustRatePD,\n adjust_rate_rh: adjustRateRH,\n });\n }}\n onClose={() => setIsVisible(false)}\n selectedProduct={selectedProduct}\n />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n wrap: {\n flex: 1,\n paddingBottom: \"10pt\",\n paddingHorizontal: \"24pt\",\n },\n headerRow: {\n flexDirection: \"row\",\n alignItems: \"center\",\n paddingVertical: 10,\n borderBottomColor: Colors.Primary,\n borderBottomWidth: 1,\n },\n headerLabel: {\n color: Colors.Primary,\n fontSize: 16,\n fontWeight: \"bold\",\n },\n tableHeader: {\n flexDirection: \"row\",\n alignItems: \"center\",\n paddingVertical: 5,\n borderBottomColor: Colors.SecondPrimary,\n borderBottomWidth: 1,\n },\n flex1: { flex: 1 },\n flex2: { flex: 2 },\n tableHeaderLabel: {\n fontSize: 12,\n fontWeight: \"bold\",\n textAlign: \"center\",\n color: Colors.Primary,\n alignSelf: \"flex-start\",\n },\n tableDataRow: {\n flexDirection: \"row\",\n paddingVertical: 5,\n borderBottomWidth: 1,\n borderBottomColor: Colors.SecondPrimary,\n borderStyle: \"dashed\",\n },\n tableDataLabel: {\n fontSize: 12,\n color: Colors.Primary,\n marginBottom: 2,\n },\n tableDataLabelFilled: {\n fontSize: 12,\n color: Colors.Primary,\n marginBottom: 2,\n backgroundColor: Colors.PrimaryLight,\n alignSelf: \"flex-end\",\n paddingVertical: 2,\n paddingHorizontal: 10,\n minWidth: 40,\n textAlign: \"right\",\n },\n badge: {\n backgroundColor: Colors.Primary,\n paddingVertical: 1,\n paddingHorizontal: 5,\n color: \"white\",\n fontSize: 10,\n marginRight: 5,\n },\n dataRow: {\n flexDirection: \"row\",\n alignItems: \"center\",\n height: 22,\n },\n tableDataNumber: {\n fontSize: 12,\n color: Colors.Primary,\n textAlign: \"right\",\n minWidth: 32,\n },\n});\n\nconst mapStateToProps = (state) => ({\n // setting: state.general.setting,\n isSearchProductFinish: state.product.isSearchProductFinish,\n isSearchingProduct: state.product.isSearchingProduct,\n products: state.product.products,\n\n isUpdatingProduct: state.product.isUpdatingProduct,\n isUpdatedProduct: state.product.isUpdatedProduct,\n updatedProduct: state.product.updatedProduct,\n});\nconst mapDispatchToProps = {\n searchProducts,\n updateProduct,\n};\nexport default connect(mapStateToProps, mapDispatchToProps)(Analysis);\n\n// export default Analysis;\n","import React, { useEffect, useState } from \"react\";\nimport {\n View,\n Text,\n Image,\n StyleSheet,\n TextInput,\n TouchableOpacity,\n} from \"react-native\";\n// import Back from \"components/common/Back\";\nimport { Colors, nor } from \"utils\";\n// import Package from \"components/cart/Package\";\n// import { useNavigate, useNavigateReplace } from \"utils\";\n// import { Block } from \"components\";\n// import { useHistory } from \"react-router-dom\";\nimport { formatMoney, MoneyFormatter } from \"../../utils/MoneyFormatter\";\nimport { connect } from \"react-redux\";\n// import {\n// getOtherInvoice,\n// getLastInvoice,\n// updateInvoice,\n// } from \"../../redux/actions/invoice\";\n// import { getSetting } from \"../../redux/actions/general\";\nimport { formatDateTime, DateTimeFormatter } from \"../../utils/DateUtility\";\n// import { usePrevious } from \"../../utils/hook\";\n\nconst OtherInvoiceRecord = ({ otherInvoice, invoice_market_price }) => {\n const renderPriceColorText = (currentPrice, prevPrice) => {\n if (currentPrice > prevPrice) {\n return styles.redText;\n } else {\n return styles.lightBlueText;\n }\n };\n\n return (\n <View\n style={{\n borderBottomWidth: 1,\n borderStyle: \"dashed\",\n borderBottomColor: Colors.SecondPrimary,\n paddingBottom: 5,\n }}\n >\n <Text style={styles.contentHeader}>\n 他社仕入実績:{otherInvoice?.customer_info?.name}\n </Text>\n <View style={styles.row}>\n <View style={[styles.rowFlex, { flex: 1.1 }]}>\n <Text style={styles.contentBadge}>他社仕入単価</Text>\n <Text style={styles.price}>{otherInvoice?.price}円</Text>\n </View>\n <View style={styles.rowFlex}>\n <Text style={styles.contentBadge}>仕入日</Text>\n <Text style={styles.date}>{formatDateTime(otherInvoice?.date)}</Text>\n </View>\n </View>\n <View style={[styles.row, { justifyContent: \"space-between\" }]}>\n <Text style={styles.contentBadge}>仕入時相場</Text>\n <Text style={[styles.contentBadge, styles.badgeSmall]}>PT</Text>\n <Text\n style={renderPriceColorText(\n invoice_market_price?.pt_jpy,\n otherInvoice?.market_price?.pt_jpy\n )}\n >\n {formatMoney(otherInvoice?.market_price?.pt_jpy)}円\n </Text>\n <Text style={[styles.contentBadge, styles.badgeSmall]}>PD</Text>\n <Text\n style={renderPriceColorText(\n invoice_market_price?.pd_jpy,\n otherInvoice?.market_price?.pd_jpy\n )}\n >\n {formatMoney(otherInvoice?.market_price?.pd_jpy)}円\n </Text>\n <Text style={[styles.contentBadge, styles.badgeSmall]}>RH</Text>\n <Text\n style={renderPriceColorText(\n invoice_market_price?.rh_jpy,\n otherInvoice?.market_price?.rh_jpy\n )}\n >\n {formatMoney(otherInvoice?.market_price?.rh_jpy)}円\n </Text>\n </View>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n mainWrap: {\n marginTop: 10,\n borderColor: Colors.PrimaryLight,\n borderWidth: 1,\n borderRadius: 5,\n },\n titleWrap: {\n flexDirection: \"row\",\n alignItems: \"center\",\n borderBottomWidth: 2,\n borderBottomColor: Colors.WhiteDark03,\n paddingVertical: nor(15),\n },\n titleWrap2: {\n flexDirection: \"row\",\n paddingVertical: \"10pt\",\n paddingHorizontal: \"10pt\",\n borderBottomColor: Colors.PrimaryLight,\n borderBottomWidth: 1,\n borderStyle: \"dashed\",\n },\n title: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n marginLeft: \"10pt\",\n fontSize: \"16pt\",\n },\n description: {\n color: Colors.Primary,\n marginBottom: \"5pt\",\n fontWeight: \"bold\",\n fontSize: \"12pt\",\n },\n cell: {\n flex: 1,\n backgroundColor: Colors.PrimaryLight2,\n alignItems: \"center\",\n paddingVertical: 5,\n },\n cellText: {\n fontWeight: \"bold\",\n color: Colors.Primary,\n },\n textInput: {\n flex: 1,\n padding: \"5pt\",\n marginLeft: 5,\n backgroundColor: Colors.PrimaryLight2,\n },\n button: {\n flex: 1,\n backgroundColor: Colors.SecondPrimary,\n alignItems: \"center\",\n borderRadius: 5,\n },\n headerText: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n fontSize: \"10pt\",\n },\n headerBadge: {\n color: \"white\",\n backgroundColor: Colors.Primary,\n paddingVertical: \"2pt\",\n paddingHorizontal: 10,\n minWidth: 100,\n textAlign: \"center\",\n marginRight: \"10pt\",\n fontSize: \"8pt\",\n },\n badgeSmall: {\n minWidth: 0,\n fontSize: \"8pt\",\n alignSelf: \"center\",\n },\n rowFlex: {\n alignItems: \"center\",\n flexDirection: \"row\",\n flex: 1,\n },\n row: {\n alignItems: \"center\",\n flexDirection: \"row\",\n marginTop: \"3pt\",\n },\n redText: {\n color: \"#D90000\",\n fontWeight: \"bold\",\n fontSize: \"10pt\",\n },\n contentHeader: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n marginVertical: \"3pt\",\n fontSize: \"11pt\",\n },\n contentBadge: {\n color: \"white\",\n backgroundColor: Colors.SecondPrimary,\n paddingVertical: \"2pt\",\n paddingHorizontal: \"8pt\",\n textAlign: \"center\",\n marginRight: \"7pt\",\n fontSize: \"10pt\",\n },\n price: {\n color: Colors.SecondPrimary,\n fontSize: \"10pt\",\n fontWeight: \"bold\",\n },\n date: {\n color: Colors.SecondPrimary,\n fontSize: \"12pt\",\n fontWeight: \"bold\",\n },\n lightBlueText: {\n color: \"#00CBDC\",\n fontWeight: \"bold\",\n fontSize: \"10pt\",\n },\n borderBottom: {\n borderBottomColor: Colors.PrimaryLight,\n borderBottomWidth: 1,\n paddingBottom: 5,\n borderStyle: \"dashed\",\n },\n});\n\nconst mapStateToProps = (state) => ({\n // twoLastInvoice: state.invoice.twoLastInvoice,\n // setting: state.general.setting,\n // otherInvoice: state.invoice.otherInvoice,\n // lastInvoice: state.invoice.lastInvoice,\n // isUpdatingInvoice: state.invoice.isUpdatingInvoice,\n // isUpdatedInvoice: state.invoice.isUpdatedInvoice,\n // updatedInvoice: state.invoice.updatedInvoice,\n});\nconst mapDispatchToProps = {\n // getSetting,\n // getOtherInvoice,\n // getLastInvoice,\n // updateInvoice,\n // insertProductsToInvoice,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(OtherInvoiceRecord);\n","import React, { useEffect, useState } from \"react\";\nimport {\n View,\n Text,\n Image,\n StyleSheet,\n TextInput,\n TouchableOpacity,\n ScrollView,\n} from \"react-native\";\nimport Back from \"components/common/Back\";\nimport OtherInvoiceRecord from \"components/common/OtherInvoiceRecord\";\n\nimport { Colors, nor } from \"utils\";\nimport Package from \"components/cart/Package\";\nimport { useNavigate, useNavigateReplace } from \"utils\";\nimport { Block, TextView, Button } from \"components\";\nimport { useHistory } from \"react-router-dom\";\nimport { formatMoney, MoneyFormatter } from \"../../utils/MoneyFormatter\";\nimport { connect } from \"react-redux\";\nimport {\n getOtherInvoice,\n // getLastInvoice,\n updateInvoice,\n} from \"../../redux/actions/invoice\";\nimport { getSetting } from \"../../redux/actions/general\";\nimport { formatDateTime, DateTimeFormatter } from \"../../utils/DateUtility\";\nimport {\n INVOICE_STATUS,\n CART_UPDATE_INVOICE_BEHAVIOR,\n} from \"../../utils/Constant\";\nimport { usePrevious } from \"../../utils/hook\";\nimport Title from \"components/common/Title\";\nimport { getProductCatalogDetail } from \"../../redux/actions/product\";\n\nconst Cart = (props) => {\n const navigate = useNavigate();\n const navigateReplace = useNavigateReplace();\n\n const history = useHistory();\n const [invoice, setInvoiceData] = useState(history?.location?.state?.invoice);\n const [invoiceDetailIndex, setInvoiceDetailIndex] = useState(\n history?.location?.state?.invoiceDetailIndex\n );\n const invoiceDetail = invoice.invoice_details[invoiceDetailIndex];\n // const [lastInvoiceDetailByProduct, setLastInvoiceDetailByProduct] = useState(\n // {}\n // );\n const { use_transfer } = history?.location?.state;\n // const lastInvoice = props.lastInvoice?.invoice;\n const [fromToUnitPrice, setFromToUnitPrice] = useState(\"\");\n const [submitInvoiceHandler, setSubmitInvoiceHandler] = useState(false);\n\n const calculateEstimatePrice = () => {\n // 仕入単価=(products.adjust_value_pt × market_prices.pt_jpy)\n // + (products.adjust_value_pd × market_prices.pd_jpy)\n // + (products.adjust_value_rh × market_prices.rh_jpy)\n // 下限仕入単価=仕入単価 × (settings.target_profit_rate) / 100)\n // 上限仕入単価=下限仕入単価 × (settings.limit_profit_rate) / 100)\n // => 仕入単価目安 = {下限仕入単価} ~ {上限仕入単価}\n const { pt_jpy, pd_jpy, rh_jpy } = invoice?.market_price;\n const {\n total_value_pd,\n total_value_pt,\n total_value_rh,\n } = invoiceDetail?.product_info;\n const unitPrice =\n total_value_pd * pd_jpy +\n total_value_pt * pt_jpy +\n total_value_rh * rh_jpy;\n\n const fromUnitPrice =\n unitPrice * (props.setting?.target_profit_rate * 0.01);\n const toUnitPrice =\n fromUnitPrice * (props.setting?.limit_profit_rate * 0.01);\n // 14,000円〜15,500円\n const s =\n formatMoney(fromUnitPrice) + \"円〜\" + formatMoney(toUnitPrice) + \"円\";\n setFromToUnitPrice(s);\n };\n\n useEffect(() => {\n props.getSetting();\n\n props.getOtherInvoice({\n product_id: invoiceDetail?.product_info?.id,\n });\n calculateEstimatePrice();\n\n // props.getLastInvoice({\n // customer_id: invoice?.customer_info?.id,\n // });\n props.getProductCatalogDetail({\n product_id: invoiceDetail?.product_info?.id,\n customer_id: invoice?.customer_info?.id,\n });\n }, []);\n\n // useEffect(() => {\n // const invoideDetailProduct = props.lastInvoice?.invoice?.invoice_details?.filter(\n // (item) => item.product_info?.id == invoiceDetail?.product_info?.id\n // );\n // setLastInvoiceDetailByProduct(invoideDetailProduct?.[0]);\n // }, [props.lastInvoice]);\n\n useEffect(() => {\n calculateEstimatePrice();\n }, [props.setting]);\n\n const updateInvoice = () => {\n const invoice_details = invoice?.invoice_details.map((item) => {\n return {\n id: item.id,\n product_id: item.product_info?.id,\n amount: formatMoney(\n item.amount,\n MoneyFormatter.TWO_DECIMAL_FORMAT_NO_COMMAS\n ),\n price: formatMoney(\n item.price,\n MoneyFormatter.TWO_DECIMAL_FORMAT_NO_COMMAS\n ),\n unit_price: formatMoney(\n item.unit_price,\n MoneyFormatter.TWO_DECIMAL_FORMAT_NO_COMMAS\n ),\n total_price: formatMoney(\n item.total_price,\n MoneyFormatter.TWO_DECIMAL_FORMAT_NO_COMMAS\n ),\n };\n });\n\n const updateInvoice = {\n id: invoice.id,\n price: formatMoney(\n invoice.price,\n MoneyFormatter.TWO_DECIMAL_FORMAT_NO_COMMAS\n ),\n tax: formatMoney(\n invoice.tax,\n MoneyFormatter.TWO_DECIMAL_FORMAT_NO_COMMAS\n ),\n total_price: formatMoney(\n invoice.total_price,\n MoneyFormatter.TWO_DECIMAL_FORMAT_NO_COMMAS\n ),\n status: INVOICE_STATUS.PURCHASE_COMPLETED,\n invoice_details: invoice_details,\n transfer_price: 0,\n cash_price: 0,\n use_transfer: use_transfer,\n is_submit: true,\n };\n\n props.updateInvoice(updateInvoice);\n };\n\n const renderPriceColorText = (currentPrice, prevPrice) => {\n if (currentPrice > prevPrice) {\n return styles.redText;\n } else {\n return styles.lightBlueText;\n }\n };\n\n const prevUpdatingInvoice = usePrevious(props.isUpdatingInvoice);\n useEffect(() => {\n if (prevUpdatingInvoice && !props.isUpdatingInvoice) {\n if (props.isUpdatedInvoice && submitInvoiceHandler) {\n history.goBack();\n navigateReplace(\"cart\", {\n finish_purchase_from_product_detail: true,\n });\n }\n }\n }, [props.isUpdatingInvoice]);\n\n const getUnitPriceByLastInvoiceByCustomer = (last_invoice_by_customer) => {\n if (\n last_invoice_by_customer !== null ||\n last_invoice_by_customer !== undefined\n ) {\n const matchedInvoiceDetail = last_invoice_by_customer?.invoice_details?.filter(\n (item) => item.product_info?.id == invoiceDetail?.product_info?.id\n );\n if (matchedInvoiceDetail !== undefined) {\n return matchedInvoiceDetail[0]?.unit_price;\n }\n }\n };\n\n return (\n <View>\n <View style={{ paddingBottom: 10, paddingHorizontal: \"24pt\" }}>\n <Title backTitle={\"仕入リスト\"} title=\"製品詳細\" />\n <View style={{}}>\n <Text style={styles.description}>\n 取引先コード:{invoice?.customer_info?.code}\n </Text>\n <Text style={styles.description}>\n 取引先名:{invoice?.customer_info?.name}\n </Text>\n <Text style={styles.description}>本日の貴金属相場</Text>\n </View>\n <View style={{ flexDirection: \"row\", marginTop: \"5pt\" }}>\n <View style={styles.cell}>\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n PT:{formatMoney(invoice?.market_price?.pt_jpy)}円\n </TextView>\n </View>\n <View style={[styles.cell, { marginHorizontal: \"5pt\" }]}>\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n PD:{formatMoney(invoice?.market_price?.pd_jpy)}円\n </TextView>\n </View>\n <View style={styles.cell}>\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n RH:{formatMoney(invoice?.market_price?.rh_jpy)}円\n </TextView>\n </View>\n </View>\n <View style={styles.mainWrap}>\n <View>\n <View style={styles.titleWrap2}>\n <View style={{ paddingRight: \"14pt\" }}>\n <Text style={{ fontSize: \"12pt\", color: Colors.Primary }}>\n 品 名\n </Text>\n </View>\n <View style={{ flex: 1 }}>\n <Text style={{ fontSize: \"14pt\", color: Colors.Primary }}>\n {invoiceDetail?.name}【{invoiceDetail?.product_info?.code}】\n </Text>\n </View>\n </View>\n <View style={{ padding: 10, paddingTop: 0 }}>\n <View style={[styles.sectionHeader, styles.borderBottom1]}>\n <View style={[styles.row, styles.borderBottom]}>\n <View style={styles.rowFlex}>\n <Text style={styles.headerBadge}>仕入単価目安</Text>\n <Text style={[styles.headerText, { fontSize: 20 }]}>\n {fromToUnitPrice}\n </Text>\n </View>\n </View>\n <View style={styles.row}>\n <View style={styles.rowFlex}>\n <Text style={styles.headerBadge}>前回仕入単価</Text>\n <Text style={styles.headerText}>\n {formatMoney(\n getUnitPriceByLastInvoiceByCustomer(\n props.productCatalogDetail?.last_invoice_by_customer\n )\n )}\n 円\n </Text>\n </View>\n <View style={styles.rowFlex}>\n <Text style={[styles.headerBadge]}>前回仕入日</Text>\n <Text style={[styles.headerText, { fontSize: \"10pt\" }]}>\n {formatDateTime(\n props.productCatalogDetail?.last_invoice_by_customer\n ?.date\n )}\n </Text>\n </View>\n </View>\n <View style={[styles.row, { justifyContent: \"space-between\" }]}>\n <Text style={styles.headerBadge}>前回仕入時相場</Text>\n <Text style={[styles.badgeSmall]}>PT</Text>\n <Text\n style={renderPriceColorText(\n invoice?.market_price?.pt_jpy,\n props.productCatalogDetail?.last_invoice_by_customer\n ?.pt_jpy\n )}\n >\n {formatMoney(\n props.productCatalogDetail?.last_invoice_by_customer\n ?.pt_jpy\n )}\n 円\n </Text>\n <Text style={[styles.badgeSmall]}>PD</Text>\n <Text\n style={renderPriceColorText(\n invoice?.market_price?.pd_jpy,\n props.productCatalogDetail?.last_invoice_by_customer\n ?.pd_jpy\n )}\n >\n {formatMoney(\n props.productCatalogDetail?.last_invoice_by_customer\n ?.pd_jpy\n )}\n 円\n </Text>\n <Text style={[styles.badgeSmall]}>RH</Text>\n <Text\n style={renderPriceColorText(\n invoice?.market_price?.rh_jpy,\n props.productCatalogDetail?.last_invoice_by_customer\n ?.rh_jpy\n )}\n >\n {formatMoney(\n props.productCatalogDetail?.last_invoice_by_customer\n ?.rh_jpy\n )}\n 円\n </Text>\n </View>\n </View>\n <ScrollView style={{ maxHeight: 110 }}>\n {props.otherInvoiceList?.map((item, index) => {\n return (\n <OtherInvoiceRecord\n key={`${index}`}\n otherInvoice={item}\n invoice_market_price={props.invoice?.market_price}\n />\n );\n })}\n </ScrollView>\n </View>\n </View>\n </View>\n </View>\n\n <Block>\n <Image\n source={{\n uri: invoiceDetail?.product_info?.pic_path,\n }}\n style={{ height: 390, width: \"100%\" }}\n resizeMode=\"contain\"\n />\n </Block>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n mainWrap: {\n marginTop: \"8pt\",\n borderColor: Colors.Primary,\n borderWidth: 1,\n borderRadius: 5,\n },\n titleWrap: {\n flexDirection: \"row\",\n alignItems: \"center\",\n borderBottomWidth: 2,\n borderBottomColor: Colors.WhiteDark03,\n paddingVertical: nor(15),\n },\n titleWrap2: {\n flexDirection: \"row\",\n paddingVertical: \"8pt\",\n paddingHorizontal: \"10pt\",\n borderBottomColor: Colors.SecondPrimary,\n borderBottomWidth: 1,\n borderStyle: \"dashed\",\n },\n title: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n marginLeft: \"10pt\",\n fontSize: \"16pt\",\n },\n description: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n fontSize: \"13pt\",\n },\n cell: {\n flex: 1,\n backgroundColor: Colors.PrimaryLight2,\n alignItems: \"center\",\n paddingVertical: 3,\n },\n cellText: {\n fontWeight: \"bold\",\n color: Colors.Primary,\n fontSize: 15,\n },\n textInput: {\n flex: 1,\n padding: \"5pt\",\n marginLeft: 5,\n backgroundColor: Colors.PrimaryLight2,\n },\n button: {\n flex: 1,\n backgroundColor: Colors.SecondPrimary,\n alignItems: \"center\",\n borderRadius: 5,\n },\n headerText: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n fontSize: \"11pt\",\n },\n headerBadge: {\n color: \"white\",\n backgroundColor: Colors.Primary,\n paddingVertical: \"2pt\",\n paddingHorizontal: 8,\n minWidth: 90,\n textAlign: \"center\",\n marginRight: \"8pt\",\n fontSize: \"12pt\",\n },\n badgeSmall: {\n minWidth: 0,\n alignSelf: \"center\",\n color: \"white\",\n backgroundColor: Colors.Primary,\n paddingVertical: \"2pt\",\n paddingHorizontal: 7,\n textAlign: \"center\",\n marginRight: \"10pt\",\n fontSize: \"8pt\",\n },\n rowFlex: {\n alignItems: \"center\",\n flexDirection: \"row\",\n flex: 1,\n },\n row: {\n alignItems: \"center\",\n flexDirection: \"row\",\n marginTop: \"3pt\",\n },\n redText: {\n color: \"#D90000\",\n fontWeight: \"bold\",\n fontSize: \"10pt\",\n },\n contentHeader: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n marginVertical: \"3pt\",\n },\n contentBadge: {\n color: \"white\",\n backgroundColor: Colors.SecondPrimary,\n paddingVertical: \"2pt\",\n paddingHorizontal: \"10pt\",\n textAlign: \"center\",\n marginRight: \"10pt\",\n fontSize: \"12pt\",\n },\n price: {\n color: Colors.SecondPrimary,\n fontSize: \"18pt\",\n fontWeight: \"bold\",\n },\n date: {\n color: Colors.SecondPrimary,\n fontSize: \"16pt\",\n fontWeight: \"bold\",\n },\n lightBlueText: {\n color: \"#00CBDC\",\n fontWeight: \"bold\",\n fontSize: \"10pt\",\n },\n borderBottom: {\n borderBottomColor: Colors.SecondPrimary,\n borderBottomWidth: 1,\n paddingBottom: 5,\n borderStyle: \"dashed\",\n },\n borderBottom1: {\n borderBottomColor: Colors.GrayLight,\n borderBottomWidth: 1,\n paddingBottom: 5,\n borderStyle: \"solid\",\n },\n});\n\nconst mapStateToProps = (state) => ({\n twoLastInvoice: state.invoice.twoLastInvoice,\n setting: state.general.setting,\n otherInvoiceList: state.invoice.otherInvoiceList,\n // lastInvoice: state.invoice.lastInvoice,\n isUpdatingInvoice: state.invoice.isUpdatingInvoice,\n isUpdatedInvoice: state.invoice.isUpdatedInvoice,\n updatedInvoice: state.invoice.updatedInvoice,\n\n productCatalogDetail: state.product.productCatalogDetail,\n});\nconst mapDispatchToProps = {\n getSetting,\n getOtherInvoice,\n // getLastInvoice,\n updateInvoice,\n getProductCatalogDetail,\n // insertProductsToInvoice,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Cart);\n","import React, { useEffect, useState } from \"react\";\nimport {\n View,\n Text,\n StyleSheet,\n TextInput,\n TouchableOpacity,\n ScrollView,\n} from \"react-native\";\nimport Back from \"components/common/Back\";\nimport { Colors, nor } from \"utils\";\nimport { Block } from \"components\";\nimport { useHistory } from \"react-router-dom\";\nimport {\n formatMoney,\n MoneyFormatter,\n validateInteger,\n formatInvoiceDetailAmount,\n} from \"../../utils/MoneyFormatter\";\nimport { formatDateTime, DateTimeFormatter } from \"../../utils/DateUtility\";\nimport {\n getTransferCustomers,\n updateTransfer,\n} from \"../../redux/actions/transfer\";\nimport {\n updateInvoice,\n createTransferInvoice,\n generatePdf,\n} from \"../../redux/actions/invoice\";\nimport { connect } from \"react-redux\";\nimport { INVOICE_STATUS } from \"../../utils/Constant\";\nimport { useNavigate } from \"utils\";\nimport DateInput from \"components/common/DateInput\";\nimport validator from \"validator\";\nimport { TransferView, InputAmountView } from \"components/cart\";\nimport { Alert } from \"../../App\";\nimport { usePrevious } from \"../../utils/hook\";\nimport { checkCart } from \"../../redux/actions/home\";\nimport Title from \"components/common/Title\";\n\n/**\n * //screen: 003-004-01 / 仕切書プレビュー\n */\nconst Preview = ({ ...props }) => {\n const history = useHistory();\n const navigate = useNavigate();\n const [invoiceData, setInvoiceData] = useState(\n history?.location?.state?.invoice\n );\n const { use_transfer } = history?.location?.state;\n const [isFinishSubmit, setIsFinishSubmit] = useState(false);\n const [transferAmount, setTransferAmount] = useState(0);\n const [cashAmount, setCashAmount] = useState(0);\n const [limitDate, setLimitDate] = useState(undefined);\n const [inputAmountChange, setInputAmountChange] = useState({\n type: -1,\n amount: 0,\n }); //0: transfer amount change, 1: cash amount change\n const transfer = use_transfer ? props.transferCustomers[0] : undefined;\n\n useEffect(() => {\n props.checkCart();\n if (use_transfer) {\n props.getTransferCustomers({\n customer_id: invoiceData?.customer_info?.id,\n customer_name: \"\",\n });\n } else {\n }\n }, []);\n\n useEffect(() => {\n if (inputAmountChange.type == 0) {\n // tranfer amount change\n const formatedAmount = formatMoney(\n inputAmountChange.amount,\n MoneyFormatter.ZERO_DECIMAL_FORMAT_NO_COMMAS\n );\n const transferTotalPrice =\n transfer !== undefined ? transfer?.total_price : 0;\n const cash =\n +invoiceData?.total_price - +formatedAmount - +transferTotalPrice;\n\n setCashAmount(formatMoney(cash));\n setTransferAmount(formatMoney(formatedAmount));\n } else if (inputAmountChange.type == 1) {\n const formatedAmount = formatMoney(\n inputAmountChange.amount,\n MoneyFormatter.ZERO_DECIMAL_FORMAT_NO_COMMAS\n );\n\n const transferTotalPrice =\n transfer !== undefined ? transfer?.total_price : 0;\n const transferAmount =\n +invoiceData?.total_price - +formatedAmount - +transferTotalPrice;\n setTransferAmount(formatMoney(transferAmount));\n setCashAmount(formatMoney(formatedAmount));\n }\n }, [inputAmountChange]);\n\n const updateInvoice = () => {\n const invoice_details = invoiceData?.invoice_details.map((item) => {\n return {\n id: item.id,\n product_id: item.product_info?.id,\n amount: item.amount,\n price: item.price,\n unit_price: item.unit_price,\n total_price: item.total_price,\n };\n });\n\n const updateInvoice = {\n id: invoiceData.id,\n price: invoiceData.price,\n tax: invoiceData.tax,\n total_price: invoiceData.total_price,\n status: INVOICE_STATUS.PURCHASE_COMPLETED,\n invoice_details: invoice_details,\n transfer_price: formatMoney(\n transferAmount,\n MoneyFormatter.TWO_DECIMAL_FORMAT_NO_COMMAS\n ),\n cash_price: formatMoney(\n cashAmount,\n MoneyFormatter.TWO_DECIMAL_FORMAT_NO_COMMAS\n ),\n limit_date:\n limitDate === undefined || limitDate === \"\" ? null : limitDate,\n update_type: 1,\n use_transfer: use_transfer,\n is_submit: true,\n };\n props.updateInvoice(updateInvoice);\n };\n\n const updateTransfer = () => {\n if (transfer !== undefined) {\n props.updateTransfer({\n id: transfer?.id,\n invoice_id: invoiceData?.id,\n });\n }\n const formatedTransferAmount = formatMoney(\n transferAmount,\n MoneyFormatter.ZERO_DECIMAL_FORMAT_NO_COMMAS\n );\n\n if (formatedTransferAmount !== undefined && formatedTransferAmount > 0) {\n const transferModel = {\n limit_date:\n limitDate === undefined || limitDate === \"\" ? null : limitDate,\n customer_id: invoiceData?.customer_info?.id,\n invoice_id: invoiceData?.id,\n total_price: formatedTransferAmount,\n };\n props.createTransferInvoice(transferModel);\n }\n };\n\n const submit = () => {\n //Update record into table invoices, with invoices.status = 1\n // Update record into table invoice_details, with invoice_details.invoice_id = invoices.code\n // set invoice_details.name = products.name\n // Update record into table transfers, with transfer.invoice_id = invoices.code\n // Go to [003-005-1 / 仕切書プレビュー・振込依頼完了画面]\n if (checkHaveAtLeaseOneInvoiceDetail()) {\n if (checkTotalEqualPayment()) {\n if (checkHaveTransferDateWhenHaveTransferAmount()) {\n updateInvoice();\n updateTransfer();\n setIsFinishSubmit(true);\n }\n }\n }\n };\n\n const checkInvoiceDetailEmpty = () => {\n const invoice_details = invoiceData.invoice_details;\n if (\n invoice_details === undefined ||\n invoice_details === null ||\n invoice_details?.length <= 0\n ) {\n return true;\n } else {\n for (const [index, detail] of invoice_details.entries()) {\n if (detail.amount > 0 && detail.unit_price > 0) {\n return false;\n }\n }\n return true;\n }\n };\n\n const checkHaveAtLeaseOneInvoiceDetail = () => {\n if (checkInvoiceDetailEmpty()) {\n Alert.alert(\"\", \"製品が選択されていません。\", [\n {\n label: \"OK\",\n primary: true,\n onPress: () => {\n Alert.hideModal();\n },\n },\n ]);\n return false;\n } else {\n return true;\n }\n };\n\n const checkHaveTransferDateWhenHaveTransferAmount = () => {\n const formatTransferAmount = formatMoney(\n transferAmount,\n MoneyFormatter.ZERO_DECIMAL_FORMAT_NO_COMMAS\n );\n if (\n formatTransferAmount > 0 &&\n (limitDate === undefined || limitDate === \"\")\n ) {\n Alert.alert(\"\", \"振込期日を設定してください。\", [\n {\n label: \"OK\",\n primary: true,\n onPress: () => {\n Alert.hideModal();\n },\n },\n ]);\n return false;\n }\n return true;\n };\n const checkTotalEqualPayment = () => {\n const total_price = invoiceData.total_price;\n const formatCashAmount = formatMoney(\n cashAmount,\n MoneyFormatter.ZERO_DECIMAL_FORMAT_NO_COMMAS\n );\n const formatTransferAmount = formatMoney(\n transferAmount,\n MoneyFormatter.ZERO_DECIMAL_FORMAT_NO_COMMAS\n );\n const alreadyTransferAmount =\n transfer?.total_price === undefined ? 0 : transfer?.total_price;\n\n if (\n total_price >\n +alreadyTransferAmount + +formatTransferAmount + +formatCashAmount\n ) {\n Alert.alert(\"\", \"支払金額の内訳を入力してください\", [\n {\n label: \"OK\",\n primary: true,\n onPress: () => {\n Alert.hideModal();\n },\n },\n ]);\n return false;\n }\n return true;\n };\n\n const goToAccount = () => {\n //Go to [002-001 / アカウント]\n navigate(\"account\");\n };\n\n const goToHomeScreen = () => {\n //Go to [001-001 / TOP(貴金属相場)]\n navigate(\"\");\n };\n\n const prevUpdatingInvoice = usePrevious(props.isUpdatingInvoice);\n useEffect(() => {\n if (prevUpdatingInvoice && !props.isUpdatingInvoice) {\n if (props.isUpdatedInvoice) {\n props.checkCart();\n props.generatePdf({\n id: invoiceData.id,\n use_transfer: use_transfer,\n });\n }\n }\n }, [props.isUpdatingInvoice]);\n\n return (\n <View style={{ paddingBottom: 20, paddingHorizontal: \"24pt\" }}>\n <Title backTitle={\"仕入リスト\"} title=\"仕切書プレビュー\" />\n <View style={{}}>\n <Text style={styles.description}>\n 取引日:\n {formatDateTime(invoiceData?.date)}\n </Text>\n <Text style={styles.description}>\n 取引先コード:{invoiceData?.customer_info?.code}\n </Text>\n <Text style={styles.description}>\n 取引先名:{invoiceData?.customer_info?.name}\n </Text>\n <Text style={styles.description}>\n 担当者:{invoiceData?.account_info?.name}\n </Text>\n </View>\n\n <View style={styles.tableTitle}>\n <Text style={styles.subDesc}>取引コード:{invoiceData?.code}</Text>\n </View>\n\n <Row\n isHeader\n name={\"品名・分類\"}\n amount={\"数 量\"}\n unit_price={\"仕入単価\"}\n price={\"金 額\"}\n />\n <ScrollView style={{ height: 220 }}>\n {invoiceData?.invoice_details?.map(\n (item, index) =>\n item?.amount > 0 &&\n item.unit_price > 0 && (\n <Row\n key={index}\n name={item?.name}\n code={item?.product_info?.code}\n amount={formatInvoiceDetailAmount(item?.amount)}\n unit_price={formatMoney(item?.unit_price)}\n price={formatMoney(item?.total_price)}\n forceSolid={index === invoiceData?.invoice_details?.length - 1}\n />\n )\n )}\n </ScrollView>\n <View\n style={{\n width: \"100%\",\n marginTop: 2,\n borderBottomWidth: StyleSheet.hairlineWidth,\n borderBottomColor: Colors.SecondPrimary,\n borderStyle: \"solid\",\n }}\n />\n\n <View style={styles.sumWrap}>\n <SumRow\n name={\"小 計(税別)\"}\n value={formatMoney(invoiceData?.price) + \"円\"}\n />\n <SumRow name={\"消費税\"} value={formatMoney(invoiceData?.tax) + \"円\"} />\n <SumRow\n name={\"合 計(税込)\"}\n value={formatMoney(invoiceData?.total_price) + \"円\"}\n />\n </View>\n\n {isFinishSubmit ? (\n <FinishSubmitView\n alreadyTransferAmount={transfer?.total_price}\n transferAmount={transferAmount}\n cashAmount={cashAmount}\n goToAccount={goToAccount}\n goToHomeScreen={goToHomeScreen}\n />\n ) : (\n <InputAmountView\n transfer={transfer}\n invoiceData={invoiceData}\n setInputAmountChange={setInputAmountChange}\n transferAmount={transferAmount}\n cashAmount={cashAmount}\n submit={submit}\n setLimitDate={setLimitDate}\n />\n )}\n </View>\n );\n};\n\nconst Row = ({\n name,\n code,\n amount,\n unit_price,\n price,\n isHeader,\n forceSolid,\n}) => {\n const fontWeight = isHeader ? \"bold\" : \"normal\";\n return (\n <View\n style={{\n flexDirection: \"row\",\n borderBottomColor: Colors.SecondPrimary,\n borderBottomWidth: 1,\n borderStyle: isHeader || forceSolid ? \"solid\" : \"dashed\",\n }}\n >\n <View style={{ flex: 2, paddingVertical: 5 }}>\n <Text style={[styles.smallText, { fontWeight }]}>\n {name} {isHeader ? \"\" : \"【\" + code + \"】\"}\n </Text>\n </View>\n <View style={{ flex: 1, paddingVertical: 5, alignItems: \"center\" }}>\n <Text style={[styles.smallText, { fontWeight }]}>\n {isHeader ? amount : amount}\n </Text>\n </View>\n <View style={{ flex: 1, paddingVertical: 5, alignItems: \"center\" }}>\n <Text style={[styles.smallText, { fontWeight }]}>\n {isHeader ? unit_price : unit_price + \"円\"}\n </Text>\n </View>\n <View style={{ flex: 1, paddingVertical: 5, alignItems: \"flex-end\" }}>\n <Text style={[styles.smallText, { fontWeight }]}>\n {isHeader ? price : price + \"円\"}\n </Text>\n </View>\n </View>\n );\n};\n\nconst FinishSubmitView = ({\n alreadyTransferAmount,\n transferAmount,\n cashAmount,\n goToAccount,\n goToHomeScreen,\n}) => {\n const formatedTransferAmount = formatMoney(\n transferAmount,\n MoneyFormatter.ZERO_DECIMAL_FORMAT_NO_COMMAS\n );\n const haveTransfer =\n formatedTransferAmount !== undefined && formatedTransferAmount > 0;\n return (\n <View>\n {haveTransfer && (\n <View>\n <TransferView transferAmount={alreadyTransferAmount} />\n <View style={{ flexDirection: \"row\", marginTop: 8 }}>\n <View\n style={{ flex: 1, flexDirection: \"row\", alignItems: \"center\" }}\n >\n <View>\n <Text style={[styles.smallText, { fontWeight: \"bold\" }]}>\n 口座振込\n </Text>\n </View>\n <View style={[styles.row, { alignItems: \"center\" }]}>\n <View style={styles.row}>\n <Text style={styles.amountText}>\n {formatMoney(\n transferAmount,\n MoneyFormatter.ZERO_DECIMAL_FORMAT\n )}\n </Text>\n </View>\n <Text style={styles.smallText}> 円</Text>\n </View>\n </View>\n <View style={{ width: 32 }} />\n <View\n style={{ flex: 1, flexDirection: \"row\", alignItems: \"center\" }}\n >\n <View>\n <Text style={[styles.smallText, { fontWeight: \"bold\" }]}>\n 小口現金\n </Text>\n </View>\n <View style={[styles.row, { alignItems: \"center\" }]}>\n <View style={styles.row}>\n <Text style={styles.amountText}>\n {formatMoney(\n cashAmount,\n MoneyFormatter.ZERO_DECIMAL_FORMAT\n )}\n </Text>\n </View>\n <Text style={styles.smallText}> 円</Text>\n </View>\n </View>\n </View>\n </View>\n )}\n\n <Block\n borderWidth=\"3pt\"\n borderColor={Colors.SecondPrimary}\n paddingTop=\"5pt\"\n paddingBottom=\"5pt\"\n marginTop=\"40pt\"\n marginLeft=\"50pt\"\n marginRight=\"50pt\"\n style={{ justifyContent: \"center\", alignItems: \"center\" }}\n >\n <Text\n style={{\n color: Colors.Primary,\n fontWeight: \"bold\",\n fontSize: \"12pt\",\n }}\n >\n {haveTransfer ? \"振込依頼を送信しました。\" : \"査定を完了しました。\"}\n </Text>\n </Block>\n\n <View\n style={{\n flexDirection: \"row\",\n paddingVertical: 25,\n alignItems: \"center\",\n justifyContent: \"space-around\",\n }}\n >\n {haveTransfer && (\n <TouchableOpacity\n style={[styles.finishButton, { marginRight: 10 }]}\n onPress={goToAccount}\n >\n <Text style={{ color: \"white\", fontWeight: \"bold\", fontSize: 16 }}>\n ステータスを確認\n </Text>\n </TouchableOpacity>\n )}\n <TouchableOpacity\n onPress={goToHomeScreen}\n style={[styles.finishButton]}\n >\n <Text style={{ color: \"white\", fontWeight: \"bold\", fontSize: 16 }}>\n TOPへ\n </Text>\n </TouchableOpacity>\n </View>\n </View>\n );\n};\n\nconst SumRow = ({ name, value }) => (\n <View style={{ flexDirection: \"row\", marginBottom: 5 }}>\n <View style={{ flex: 2 }} />\n <View style={{ flex: 1 }}>\n <Text style={[styles.smallText, { fontWeight: \"bold\" }]}>{name}</Text>\n </View>\n <View style={{ flex: 1, paddingLeft: 10, alignItems: \"flex-end\" }}>\n <Text style={styles.smallText}>{value}</Text>\n </View>\n </View>\n);\n\nconst styles = StyleSheet.create({\n titleWrap: {\n flexDirection: \"row\",\n alignItems: \"center\",\n borderBottomWidth: 2,\n borderBottomColor: Colors.WhiteDark03,\n paddingVertical: \"15pt\",\n },\n title: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n marginLeft: \"10pt\",\n fontSize: \"18pt\",\n },\n description: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n fontSize: \"13pt\",\n },\n tableTitle: {\n borderBottomColor: Colors.SecondPrimary,\n borderBottomWidth: 1,\n paddingVertical: 5,\n },\n subDesc: {\n color: Colors.Primary,\n marginTop: \"10pt\",\n fontSize: \"12pt\",\n },\n cell: {\n flex: 1,\n backgroundColor: Colors.PrimaryLight2,\n alignItems: \"center\",\n paddingVertical: 5,\n },\n cellText: {\n fontWeight: \"bold\",\n color: Colors.Primary,\n },\n textInput: {\n flex: 1,\n paddingVertical: 5,\n paddingHorizontal: 5,\n marginLeft: 5,\n backgroundColor: Colors.PrimaryLight2,\n },\n button: {\n backgroundColor: Colors.SecondPrimary,\n paddingVertical: \"10pt\",\n paddingHorizontal: \"64pt\",\n alignItems: \"center\",\n borderRadius: 5,\n },\n buttonWrap: {\n paddingTop: \"32pt\",\n paddingBottom: 5,\n alignItems: \"center\",\n },\n smallText: {\n fontSize: \"12pt\",\n color: Colors.Primary,\n },\n largeText: {\n fontSize: \"18pt\",\n fontWeight: \"bold\",\n color: Colors.Primary,\n },\n sumWrap: {\n paddingVertical: \"8pt\",\n borderColor: Colors.Primary,\n borderTopWidth: 1,\n borderBottomWidth: 1,\n },\n row: {\n flex: 1,\n flexDirection: \"row\",\n justifyContent: \"flex-end\",\n alignItems: \"flex-end\",\n flexWrap: \"wrap\",\n },\n finishButton: {\n flex: 1,\n backgroundColor: Colors.SecondPrimary,\n paddingVertical: \"10pt\",\n alignItems: \"center\",\n borderRadius: 5,\n },\n amountText: {\n fontSize: 18,\n color: Colors.Primary,\n fontWeight: \"bold\",\n },\n});\n\nconst mapStateToProps = (state) => ({\n transferCustomers: state.transfer.transferCustomers,\n isUpdatingInvoice: state.invoice.isUpdatingInvoice,\n isUpdatedInvoice: state.invoice.isUpdatedInvoice,\n});\nconst mapDispatchToProps = {\n getTransferCustomers,\n updateTransfer,\n updateInvoice,\n createTransferInvoice,\n checkCart,\n generatePdf,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Preview);\n","import React, { useEffect, useState } from \"react\";\nimport { View, Text, StyleSheet, ScrollView, Image } from \"react-native\";\nimport { Block } from \"components\";\nimport { Colors, nor } from \"utils\";\nimport Back from \"components/common/Back\";\nimport { connect } from \"react-redux\";\nimport {\n getOtherInvoice,\n getLastInvoice,\n updateInvoice,\n} from \"../../redux/actions/invoice\";\nimport { getSetting } from \"../../redux/actions/general\";\nimport { formatDateTime, DateTimeFormatter } from \"../../utils/DateUtility\";\nimport {\n INVOICE_STATUS,\n CART_UPDATE_INVOICE_BEHAVIOR,\n} from \"../../utils/Constant\";\nimport { usePrevious } from \"../../utils/hook\";\nimport { formatMoney, MoneyFormatter } from \"../../utils/MoneyFormatter\";\nimport {\n getProductCatalogDetail,\n keepSearchProductCatalog,\n} from \"../../redux/actions/product\";\nimport { useHistory } from \"react-router-dom\";\nimport { getMetalMarketPrice } from \"../../redux/actions/home\";\nimport OtherInvoiceRecord from \"components/common/OtherInvoiceRecord\";\nimport Title from \"components/common/Title\";\n\n// import FastImage from \"react-native-fast-image\";\n// import { requireNativeComponent } from \"react-native\";\n/**\n * 005-002 / 製品情報\n * @param {*} props\n */\nconst ProductInfo = (props) => {\n // const history = useHistory();\n const [fromToUnitPrice, setFromToUnitPrice] = useState(\"\");\n const history = useHistory();\n const product = history?.location?.state?.product;\n useEffect(() => {\n props.getSetting();\n if (product !== undefined && product !== null) {\n props.getProductCatalogDetail({\n product_id: product.id,\n customer_id: -1,\n });\n props.getOtherInvoice({\n product_id: product?.id,\n });\n props.getMetalMarketPrice();\n }\n }, []);\n\n const renderPriceColorText = (currentPrice, prevPrice) => {\n if (currentPrice > prevPrice) {\n return styles.redText;\n } else {\n return styles.lightBlueText;\n }\n };\n\n const calculateEstimatePrice = () => {\n // 仕入単価=(products.adjust_value_pt × market_prices.pt_jpy)\n // + (products.adjust_value_pd × market_prices.pd_jpy)\n // + (products.adjust_value_rh × market_prices.rh_jpy)\n // 下限仕入単価=仕入単価 × (settings.target_profit_rate / 100)\n // 上限仕入単価=仕入単価 × (settings.limit_profit_rate / 100)\n // => 仕入単価目安 = {下限仕入単価} ~ {上限仕入単価}\n console.log(\"hung props.productCatalogDetail:\", props.productCatalogDetail);\n console.log(\"hung props.setting:\", props.setting);\n if (props.productCatalogDetail !== undefined) {\n const {\n pt_jpy,\n pd_jpy,\n rh_jpy,\n } = props.productCatalogDetail?.market_price;\n const {\n total_value_pd,\n total_value_pt,\n total_value_rh,\n } = props.productCatalogDetail;\n const unitPrice =\n total_value_pt * pt_jpy +\n total_value_pd * pd_jpy +\n total_value_rh * rh_jpy;\n const fromUnitPrice =\n unitPrice * (props.setting?.target_profit_rate * 0.01);\n const toUnitPrice =\n fromUnitPrice * (props.setting?.limit_profit_rate * 0.01);\n // 14,000円〜1'5pt',500円\n const s =\n formatMoney(fromUnitPrice) + \"円〜\" + formatMoney(toUnitPrice) + \"円\";\n setFromToUnitPrice(s);\n }\n };\n\n useEffect(() => {\n calculateEstimatePrice();\n }, [props.setting]);\n\n const prevGettingProductCatalogDetail = usePrevious(\n props.isGettingProductCatalogDetail\n );\n useEffect(() => {\n if (\n prevGettingProductCatalogDetail &&\n !props.isGettingProductCatalogDetail\n ) {\n if (props.isGotProductCatalogDetail) {\n calculateEstimatePrice();\n }\n }\n }, [props.isGettingProductCatalogDetail]);\n\n return (\n <View style={{ flex: 2 }}>\n <View style={styles.wrap}>\n <View style={styles.topWarp}>\n {/* <View style={styles.titleWrap}>\n <Back\n label={\"サンプルカタログ\"}\n onPress={() =>\n props.keepSearchProductCatalog({\n isKeep: false,\n })\n }\n />\n <Text style={styles.title}>製品情報</Text>\n </View> */}\n <Title\n backTitle={\"サンプルカタログ\"}\n title=\"製品情報\"\n onBack={() =>\n props.keepSearchProductCatalog({\n isKeep: false,\n })\n }\n />\n\n <View style={styles.sectionHeader}>\n <Text style={styles.headerTitle}>\n 製品コード:{props.productCatalogDetail?.code}\n </Text>\n <Text style={styles.headerTitle}>\n 品名:{props.productCatalogDetail?.name}\n </Text>\n <Text style={styles.headerTitle}>\n メーカー:{props.productCatalogDetail?.maker_info?.name}\n </Text>\n <View style={styles.row}>\n <View style={styles.rowFlex}>\n <Text style={styles.headerBadge}>仕入単価目安</Text>\n <Text style={styles.headerText}>{fromToUnitPrice}</Text>\n </View>\n {/* <View style={styles.rowFlex}>\n <Text style={styles.headerBadge}>直近仕入日</Text>\n <Text style={[styles.headerText, { fontSize: \"10pt\" }]}>\n {formatDateTime(\n props.productCatalogDetail?.last_invoice?.date\n )}\n </Text>\n </View> */}\n </View>\n <View style={styles.row}>\n <View style={styles.rowFlex}>\n <Text style={styles.headerBadge}>直近取引先</Text>\n <Text style={styles.headerText}>\n {\n props.productCatalogDetail?.last_invoice?.customer_info\n ?.name\n }\n </Text>\n </View>\n <View style={styles.rowFlex}>\n <Text style={styles.headerBadge}>直近仕入日</Text>\n <Text style={[styles.headerText, { fontSize: \"10pt\" }]}>\n {formatDateTime(\n props.productCatalogDetail?.last_invoice?.date\n )}\n </Text>\n </View>\n </View>\n <View style={styles.row}>\n <View style={styles.rowFlex}>\n <Text style={styles.headerBadge}>直近仕入単価</Text>\n <Text style={styles.headerText}>\n {formatMoney(props.productCatalogDetail?.last_unit_price)}円\n </Text>\n </View>\n <View style={styles.rowFlex} />\n </View>\n <View style={[styles.row, { justifyContent: \"space-between\" }]}>\n <Text style={styles.headerBadge}>仕入時相場</Text>\n <Text style={[styles.headerBadge, styles.badgeSmall]}>PT</Text>\n <Text\n style={renderPriceColorText(\n props.metalMarketPrice.latest_price?.pt_jpy,\n props.productCatalogDetail?.last_invoice?.pt_jpy\n )}\n >\n {formatMoney(props.productCatalogDetail?.last_invoice?.pt_jpy)}\n 円\n </Text>\n\n <Text style={[styles.headerBadge, styles.badgeSmall]}>PD</Text>\n <Text\n style={renderPriceColorText(\n props.metalMarketPrice.latest_price?.pd_jpy,\n props.productCatalogDetail?.last_invoice?.pd_jpy\n )}\n >\n {formatMoney(props.productCatalogDetail?.last_invoice?.pd_jpy)}\n 円\n </Text>\n\n <Text style={[styles.headerBadge, styles.badgeSmall]}>RH</Text>\n\n <Text\n style={renderPriceColorText(\n props.metalMarketPrice.latest_price?.rh_jpy,\n props.productCatalogDetail?.last_invoice?.rh_jpy\n )}\n >\n {formatMoney(props.productCatalogDetail?.last_invoice?.rh_jpy)}\n 円\n </Text>\n </View>\n </View>\n\n <ScrollView style={{ maxHeight: 130 }}>\n {props.otherInvoiceList?.map((item, index) => {\n return (\n <OtherInvoiceRecord\n key={`${index}`}\n otherInvoice={item}\n invoice_market_price={\n props.productCatalogDetail?.last_invoice?.market_price\n }\n />\n );\n })}\n </ScrollView>\n </View>\n <View style={{ alignItems: \"center\" }}>\n <Image\n source={{\n uri: props.productCatalogDetail?.pic_path,\n }}\n style={{\n height: 350,\n width: \"90%\",\n }}\n resizeMode=\"contain\"\n />\n </View>\n </View>\n {/* <View style={{ flex: 1 }}>\n <Image\n source={{\n uri: props.productCatalogDetail?.pic_path,\n }}\n style={{ height: 400, width: \"100%\" }}\n resizeMode=\"contain\"\n />\n </View> */}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n wrap: {\n flex: 1,\n },\n topWarp: {\n paddingHorizontal: \"24pt\",\n },\n titleWrap: {\n flexDirection: \"row\",\n alignItems: \"center\",\n borderBottomWidth: 2,\n borderBottomColor: Colors.SecondPrimary,\n paddingVertical: nor(15),\n },\n title: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n marginLeft: 10,\n fontSize: nor(18),\n },\n sectionHeader: {\n paddingTop: 15,\n paddingBottom: 10,\n borderBottomColor: Colors.GrayLight,\n borderBottomWidth: 1,\n borderStyle: \"solid\",\n },\n headerTitle: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n fontSize: \"12pt\",\n },\n headerText: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n fontSize: \"11pt\",\n },\n headerBadge: {\n color: \"white\",\n backgroundColor: Colors.Primary,\n paddingVertical: \"2pt\",\n paddingHorizontal: \"10pt\",\n minWidth: 90,\n textAlign: \"center\",\n marginRight: \"8pt\",\n fontSize: \"12pt\",\n },\n badgeSmall: {\n minWidth: 0,\n fontSize: \"8pt\",\n alignSelf: \"center\",\n },\n rowFlex: {\n alignItems: \"center\",\n flexDirection: \"row\",\n flex: 1,\n },\n row: {\n alignItems: \"center\",\n flexDirection: \"row\",\n marginTop: 5,\n },\n redText: {\n color: \"#D90000\",\n fontWeight: \"bold\",\n fontSize: \"10pt\",\n },\n contentHeader: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n marginVertical: 10,\n },\n contentBadge: {\n color: \"white\",\n backgroundColor: Colors.SecondPrimary,\n paddingVertical: 2,\n paddingHorizontal: 10,\n textAlign: \"center\",\n marginRight: 10,\n fontSize: 12,\n },\n price: {\n color: Colors.SecondPrimary,\n fontSize: 20,\n fontWeight: \"bold\",\n },\n date: {\n color: Colors.SecondPrimary,\n fontSize: 18,\n fontWeight: \"bold\",\n },\n lightBlueText: {\n color: \"#00CBDC\",\n fontWeight: \"bold\",\n fontSize: \"10pt\",\n },\n});\n\nconst mapStateToProps = (state) => ({\n productCatalogDetail: state.product.productCatalogDetail,\n\n // otherInvoice: state.invoice.otherInvoice,\n metalMarketPrice: state.home.metalMarketPrice,\n otherInvoiceList: state.invoice.otherInvoiceList,\n isGettingProductCatalogDetail: state.product.isGettingProductCatalogDetail,\n isGotProductCatalogDetail: state.product.isGotProductCatalogDetail,\n setting: state.general.setting,\n});\nconst mapDispatchToProps = {\n getSetting,\n getOtherInvoice,\n\n updateInvoice,\n // insertProductsToInvoice,\n getProductCatalogDetail,\n keepSearchProductCatalog,\n\n getMetalMarketPrice,\n};\n\nconst ImageCard = ({ pic_path }) => {\n return (\n <Image\n key={Date.now()}\n source={{\n uri: pic_path,\n }}\n style={{ height: 400, width: \"100%\" }}\n resizeMode=\"contain\"\n transition={false}\n />\n );\n};\nexport default connect(mapStateToProps, mapDispatchToProps)(ProductInfo);\n","import React, { useState, useEffect } from \"react\";\nimport { Block, TextView, WrapperBlock, Button } from \"components\";\nimport { Table, SearchList } from \"components/buy-review\";\nimport { Colors, useNavigate } from \"utils\";\nimport Input from \"components/common/Input\";\nimport { data } from \"../buy-review/fakeBuyReviews\";\nimport { useHistory } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { usePrevious } from \"../../utils/hook\";\nimport { formatMoney, MoneyFormatter } from \"../../utils/MoneyFormatter\";\nimport { formatDateTime, DateTimeFormatter } from \"../../utils/DateUtility\";\nimport {\n getLastEstimate,\n insertProductsToEstimate,\n} from \"../../redux/actions/estimate\";\nimport {\n getLastInvoice,\n insertProductsToInvoice,\n} from \"../../redux/actions/invoice\";\n\nimport { searchProducts } from \"../../redux/actions/product\";\nimport { Alert } from \"../../App\";\nimport {\n View,\n Text,\n StyleSheet,\n TextInput,\n TouchableOpacity,\n ScrollView,\n Dimensions,\n} from \"react-native\";\nimport { TAB_HEIGHT } from \"components/common/WrapperBlock\";\nimport Title from \"components/common/Title\";\n\nconst { height } = Dimensions.get(\"window\");\n\n/**\n * [003-008-1 / 見積\n * @param {*} props\n */\nconst Estimate = (props) => {\n const navigate = useNavigate();\n const history = useHistory();\n\n const { new_estimate } = history?.location?.state;\n const [isFocus, setIsFocus] = useState(false);\n const [newProductName, setNewProductName] = useState(\"\");\n const [productCheck, setProductCheck] = useState({\n productIndex: -1,\n check: false,\n });\n // const [lastEstimateData, setLastEstimateData] = useState([]);\n const [lastInvoiceData, setLastInvoiceData] = useState([]);\n const [searchProductName, setSearchProductName] = useState(\"\");\n const [justInsertProductList, setJustInsertProductList] = useState([]);\n\n useEffect(() => {\n if (lastInvoiceData.length > 0) {\n const data = lastInvoiceData.map((item, index) => {\n return {\n ...item,\n check: index === productCheck.productIndex ? !item.check : item.check,\n };\n });\n setLastInvoiceData(data);\n }\n }, [productCheck]);\n\n useEffect(() => {\n props.getLastInvoice({\n customer_id: new_estimate?.customer_info?.id,\n });\n }, []);\n\n const insertAllProduct = () => {\n const data = lastInvoiceData.map((item) => {\n return {\n id: item.id,\n name: item.name,\n amount: 0,\n unit_price: 0,\n price: 0,\n tax: 0,\n total_price: 0,\n is_delete_product: false,\n };\n });\n setJustInsertProductList(data);\n insertProductsToEstimate(data, true);\n };\n\n const insertSelectedProducts = () => {\n const data = lastInvoiceData\n .filter(function (item) {\n return item.check;\n })\n .map(function (item) {\n return {\n id: item.id,\n name: item.name,\n amount: 0,\n unit_price: 0,\n price: 0,\n tax: 0,\n total_price: 0,\n is_delete_product: false,\n };\n });\n setJustInsertProductList(data);\n insertProductsToEstimate(data, false);\n };\n\n const insertNewProductToEstimate = () => {\n if (!newProductName) {\n return;\n }\n\n const data = [];\n data.push({\n id: -1,\n name: newProductName,\n amount: 0,\n unit_price: 0,\n price: 0,\n tax: 0,\n total_price: 0,\n is_delete_product: false,\n });\n setJustInsertProductList(data);\n insertProductsToEstimate(data, false);\n };\n\n const insertSearchProduct = (product) => {\n const data = [];\n data.push({\n id: product.id,\n name: product.name,\n amount: 0,\n unit_price: 0,\n price: 0,\n tax: 0,\n total_price: 0,\n is_delete_product: false,\n });\n setJustInsertProductList(data);\n insertProductsToEstimate(data, false);\n setIsFocus((e) => !e);\n };\n\n const insertProductsToEstimate = (data, isClearEstimateDetail) => {\n props.insertProductsToEstimate({\n estimate_id: new_estimate?.id,\n is_clear_estimate_detail: isClearEstimateDetail,\n products: data,\n });\n };\n\n const prevGettingLastInvoice = usePrevious(props.isGettingLastInvoice);\n useEffect(() => {\n if (prevGettingLastInvoice && !props.isGettingLastInvoice) {\n if (props.isGotLastInvoice) {\n const data = props.lastInvoice?.invoice?.invoice_details?.map(\n (item, index) => {\n return {\n id: item.product_info.id,\n name: item.product_info.name,\n check: false,\n amount: item.amount,\n unit_price: item.unit_price,\n price: item.price,\n tax: item.tax,\n total_price: item.total_price,\n product_info: item.product_info,\n onCheckBoxPress: () => {\n setProductCheck((prev) => ({\n productIndex: index,\n check: !prev.check,\n }));\n },\n };\n }\n );\n setLastInvoiceData(data);\n }\n }\n }, [props.isGettingLastInvoice]);\n\n const chooseFromCatalog = () => {\n //go to [005-001-1 / サンプルカタログ(追加ボタンあり)]\n navigate(\"catalog\", { current_estimate: new_estimate });\n };\n\n const purchaseRegister = () => {\n navigate(\"quotation-list\", {\n estimate_id: new_estimate?.id, // we send estimate_id instead of send \"new_estimate\" object, because many flow go to this screen \"quotation-list\"\n });\n };\n\n const showInsertFinishModal = () => {\n Alert.alert(\n \"\",\n <InsertProductModal justInsertProductList={justInsertProductList} />,\n [\n {\n label: \"OK\",\n primary: true,\n onPress: () => {\n Alert.hideModal();\n },\n },\n ]\n );\n };\n\n const prevInsertingProductToEstimate = usePrevious(\n props.isInsertingProductToEstimate\n );\n useEffect(() => {\n if (prevInsertingProductToEstimate && !props.isInsertingProductToEstimate) {\n if (props.isInsertedProductToEstimate) {\n showInsertFinishModal();\n setJustInsertProductList([]);\n } else {\n Alert.alert(\"\", props.errorMsg, [\n {\n label: \"OK\",\n primary: true,\n onPress: () => {\n Alert.hideModal();\n },\n },\n ]);\n }\n }\n }, [props.isInsertingProductToEstimate]);\n\n const [timeOutHandler, setTimeOutHandler] = useState(undefined);\n const doSearch = (search) => {\n setSearchProductName(search);\n if (timeOutHandler !== undefined) clearTimeout(timeOutHandler);\n setTimeOutHandler(\n setTimeout(() => {\n if (search !== \"\") {\n props.searchProducts({\n search_name: search,\n search_code: \"\",\n });\n }\n }, 300)\n );\n };\n return (\n <View style={{ flex: 1 }}>\n <Block paddingBottom=\"10pt\" paddingHorizontal=\"24pt\" flex={10}>\n <Block flex={5}>\n <Title backTitle={\"取引先入力\"} title=\"見積作成\" />\n <Block>\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n 取引先コード:{new_estimate?.customer_info?.code}\n </TextView>\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n 取引先名:{new_estimate?.customer_info?.name}\n </TextView>\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n 本日の貴金属相場\n </TextView>\n </Block>\n <Block direction=\"row\" marginTop=\"5pt\">\n <Block\n block\n center\n color={`${Colors.Primary}20`}\n paddingVertical=\"2pt\"\n >\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n PT:{formatMoney(new_estimate?.market_price?.pt_jpy)}円\n </TextView>\n </Block>\n <Block\n marginHorizontal=\"5pt\"\n block\n center\n color={`${Colors.Primary}20`}\n >\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n PD:{formatMoney(new_estimate?.market_price?.pd_jpy)}円\n </TextView>\n </Block>\n <Block block center color={`${Colors.Primary}20`}>\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n RH:{formatMoney(new_estimate?.market_price?.rh_jpy)}円\n </TextView>\n </Block>\n </Block>\n <Table data={lastInvoiceData} lastInvoice={props.lastInvoice} />\n </Block>\n <Block flex={5} marginTop=\"5pt\">\n <Block flex={1.2} centered>\n <Block direction=\"row\" block>\n <Button\n centered\n middle\n block\n borderRadius=\"3pt\"\n paddingHorizontal=\"10pt\"\n paddingVertical=\"12pt\"\n color={Colors.SecondPrimary}\n onPress={() => insertAllProduct()}\n >\n <TextView size=\"12pt\" bold color={Colors.White}>\n 前回仕入をすべて追加\n </TextView>\n </Button>\n <Block width=\"5pt\" />\n <Button\n centered\n middle\n block\n borderRadius=\"3pt\"\n paddingHorizontal=\"10pt\"\n paddingVertical=\"12pt\"\n color={Colors.SecondPrimary}\n onPress={() => insertSelectedProducts()}\n >\n <TextView size=\"12pt\" bold color={Colors.White}>\n 選択した製品を追加\n </TextView>\n </Button>\n </Block>\n <Block flex={2}>\n <Button\n smallCentered\n width=\"100%\"\n paddingVertical=\"13pt\"\n onPress={() => chooseFromCatalog()}\n >\n <TextView size=\"12pt\" bold color={Colors.White} center>\n サンプルカタログから選ぶ\n </TextView>\n </Button>\n </Block>\n </Block>\n <Block flex={2} style={{ zIndex: 1 }}>\n <Block style={{ zIndex: 1, marginTop: \"10pt\" }}>\n <Input\n onPress={() => setIsFocus((e) => !e)}\n placeholder={\"\"}\n placeholderTextColor={Colors.SecondPrimary}\n label={\"品名・分類検索\"}\n paddingVertical=\"10pt\"\n value={searchProductName}\n onChangeText={(value) => doSearch(value)}\n />\n {isFocus && (\n <SearchList\n onPress={(product) => {\n setSearchProductName(\"\");\n insertSearchProduct(product);\n }}\n data={props.products}\n />\n )}\n </Block>\n\n <Block direction=\"row\" alignItems=\"flex-end\">\n <Block block>\n <Input\n hideIcon\n placeholder={\"\"}\n placeholderTextColor={Colors.SecondPrimary}\n label={\"新規商品(参考名称)\"}\n paddingVertical=\"10pt\"\n onChangeText={(value) => setNewProductName(value)}\n />\n </Block>\n <Block flex={0.2} center height=\"50%\">\n <Button\n color={Colors.SecondPrimary}\n paddingVertical=\"4pt\"\n paddingHorizontal=\"7pt\"\n onPress={() => insertNewProductToEstimate()}\n >\n <TextView size=\"12pt\" color=\"white\">\n 追 加\n </TextView>\n </Button>\n </Block>\n </Block>\n </Block>\n <Block block>\n <Block\n width=\"50%\"\n alignSelf=\"center\"\n paddingVertical=\"10pt\"\n color={Colors.SecondPrimary}\n borderRadius=\"3pt\"\n marginTop=\"20pt\"\n center\n >\n <Button onPress={() => purchaseRegister()}>\n <TextView size=\"12pt\" color=\"white\">\n 見積リスト登録\n </TextView>\n </Button>\n </Block>\n </Block>\n </Block>\n </Block>\n </View>\n );\n};\n\nconst mapStateToProps = (state) => ({\n // lastEstimate: state.estimate.lastEstimate,\n // isGettingLastEstimate: state.estimate.isGettingLastEstimate,\n // isGotLastEstimate: state.estimate.isGotLastEstimate,\n isSearchingProduct: state.product.isSearchingProduct,\n isSearchProductFinish: state.product.isSearchProductFinish,\n products: state.product.products,\n\n lastInvoice: state.invoice.lastInvoice,\n isGettingLastInvoice: state.invoice.isGettingLastInvoice,\n isGotLastInvoice: state.invoice.isGotLastInvoice,\n\n isInsertingProductToEstimate: state.estimate.isInsertingProductToEstimate,\n isInsertedProductToEstimate: state.estimate.isInsertedProductToEstimate,\n\n errorMsg: state.estimate.errorMsg,\n});\nconst mapDispatchToProps = {\n getLastEstimate,\n insertProductsToEstimate,\n searchProducts,\n\n getLastInvoice,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Estimate);\n\nconst InsertProductModal = ({ justInsertProductList }) => {\n return (\n <View>\n <Text>製品を追加しました</Text>\n <ScrollView style={{ maxHeight: 200, marginTop: 5 }}>\n {justInsertProductList?.map((item, index) => {\n return <Text key={`${index}`}>{item.name}</Text>;\n })}\n </ScrollView>\n </View>\n );\n};\n","import React, { useRef } from \"react\";\nimport {\n View,\n Text,\n TextInput,\n StyleSheet,\n TouchableOpacity,\n PanResponder,\n Animated,\n Image,\n} from \"react-native\";\nimport { Colors } from \"utils\";\nimport { useNavigate } from \"utils\";\nimport CheckBox from \"../common/CheckBox\";\nimport { defaultIcons } from \"assets/icons\";\nimport { ESTIMATE_STATUS, ESTIMATE_PIC_ATTACH } from \"../../utils/Constant\";\nimport validator from \"validator\";\nimport {\n formatMoney,\n MoneyFormatter,\n validateInteger,\n} from \"../../utils/MoneyFormatter\";\n\nconst Package = ({\n onTrash,\n estimate,\n estimate_detail,\n estimateDetailIndex,\n unitPriceOnBlur,\n unitPrice2OnBlur,\n onUnitPriceChange,\n onUnitPrice2Change,\n onNameChange,\n nameOnBlur,\n onImageCheckChange,\n\n ...props\n}) => {\n let unitPriceInput;\n let unitPrice2Input;\n const navigate = useNavigate();\n\n const gotoEstimateDetail = () => {\n //go to 003-003-2 / 製品詳細\n // onGoToEstimateDetail();\n const data = estimate;\n const detail = data?.estimate_details?.map((item) => {\n return {\n ...item,\n onImageAttachCheck: null,\n onUnitPriceChange: null,\n onUnitPrice2Change: null,\n onNameChange: null,\n };\n });\n\n data.estimate_details = detail;\n navigate(\"/quotation-list/detail\", {\n estimate: data,\n estimateDetailIndex: estimateDetailIndex,\n });\n };\n\n const validateValueWithCommas = (value, handler) => {\n const formatValue = formatMoney(\n value,\n MoneyFormatter.ZERO_DECIMAL_FORMAT_NO_COMMAS\n );\n if (validateInteger(formatValue)) {\n handler(formatMoney(value));\n }\n };\n\n return (\n <View style={styles.wrap} {...props}>\n <View style={{ flexDirection: \"row\", alignItems: \"center\", flex: 1 }}>\n <TouchableOpacity\n onPress={() => gotoEstimateDetail()}\n style={[styles.titleWrap]}\n >\n <View style={{ paddingRight: 14 }}>\n <Text style={{ fontSize: \"12pt\", color: Colors.Primary }}>\n 品 名\n </Text>\n </View>\n <View style={{ flex: 1 }}>\n <Text style={{ fontSize: \"14pt\", color: Colors.Primary }}>\n {estimate_detail?.product_info?.name}【\n {estimate_detail?.product_info?.code}】\n </Text>\n </View>\n </TouchableOpacity>\n <View\n style={{\n position: \"absolute\",\n right: \"5pt\",\n flexDirection: \"row\",\n alignItems: \"center\",\n }}\n >\n <Text style={{ fontSize: \"12pt\", color: Colors.Primary }}>\n 表示名\n </Text>\n <View style={{}}>\n <TextInput\n style={styles.textInput}\n value={estimate_detail.name}\n onChangeText={(value) => {\n // estimate_detail.onNameChange(value);\n onNameChange(value);\n }}\n onBlur={nameOnBlur}\n />\n </View>\n <TouchableOpacity\n onPress={() => onTrash(estimate_detail)}\n style={styles.btnTrash}\n >\n <Image\n resizeMode=\"contain\"\n source={defaultIcons.trash}\n style={styles.imgTrash}\n />\n </TouchableOpacity>\n </View>\n </View>\n <View\n style={{\n width: \"100%\",\n height: 1,\n backgroundColor: Colors.SecondPrimary,\n }}\n ></View>\n <View style={{ flexDirection: \"row\", padding: 10, alignItems: \"center\" }}>\n <View style={{ flex: 1 }}>\n <CheckBox\n label={\"画像を添付\"}\n check={estimate_detail.pic_attach === ESTIMATE_PIC_ATTACH.ATTACHED}\n onCheckBoxPress={() => {\n // estimate_detail.onImageAttachCheck(estimate_detail.pic_attach);\n onImageCheckChange(estimate_detail.pic_attach);\n }}\n fontSize={\"12pt\"}\n />\n </View>\n <View style={styles.containerInput}>\n <View>\n <Text style={styles.fieldName}>仕入単価</Text>\n </View>\n <View style={{ flex: 1, alignItems: \"center\", flexDirection: \"row\" }}>\n <TextInput\n style={styles.textInput}\n value={formatMoney(estimate_detail.unit_price2)}\n onChangeText={(value) => {\n validateValueWithCommas(value, onUnitPrice2Change);\n }}\n onBlur={unitPrice2OnBlur}\n keyboardType={\"phone-pad\"}\n ref={(input) => (unitPrice2Input = input)}\n selectTextOnFocus\n onFocus={unitPrice2Input?.focus()}\n />\n <Text> ~ </Text>\n <TextInput\n style={styles.textInput}\n value={formatMoney(estimate_detail.unit_price)}\n onChangeText={(value) => {\n validateValueWithCommas(value, onUnitPriceChange);\n }}\n onBlur={unitPriceOnBlur}\n keyboardType={\"phone-pad\"}\n ref={(input) => (unitPriceInput = input)}\n selectTextOnFocus\n onFocus={unitPriceInput?.focus()}\n />\n </View>\n <Text\n style={{\n color: Colors.Primary,\n marginLeft: 3,\n fontSize: 15,\n }}\n >\n 円\n </Text>\n </View>\n </View>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n wrap: {\n borderColor: Colors.SecondPrimary,\n borderWidth: 1,\n borderRadius: 5,\n marginBottom: 10,\n },\n titleWrap: {\n flexDirection: \"row\",\n alignItems: \"center\",\n padding: 10,\n },\n textInput: {\n borderColor: Colors.SecondPrimary,\n borderWidth: 1,\n paddingVertical: 5,\n paddingHorizontal: 5,\n marginLeft: 5,\n backgroundColor: Colors.PrimaryLight2,\n textAlign: \"right\",\n width: 100,\n },\n fieldName: {\n fontSize: \"12pt\",\n color: Colors.SecondPrimary,\n fontWeight: \"bold\",\n },\n wrapSwipable: {\n height: \"100%\",\n width: 100,\n position: \"absolute\",\n right: -100,\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n btnTrash: {\n padding: \"5pt\",\n backgroundColor: \"red\",\n borderRadius: 50,\n marginHorizontal: 5,\n },\n imgTrash: { height: \"12pt\", width: \"12pt\" },\n containerInput: {\n flexDirection: \"row\",\n alignItems: \"center\",\n paddingLeft: 10,\n },\n});\n\nexport default Package;\n","import React, { useEffect, useState } from \"react\";\nimport { View, Text, ScrollView, StyleSheet, Dimensions } from \"react-native\";\nimport { Colors, Metrics, nor, useNavigate } from \"utils\";\nimport Back from \"components/common/Back\";\nimport Package from \"components/quotation-list/Package\";\nimport { Block, Button, TextView } from \"components\";\nimport { useHistory } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport {\n getEstimate,\n updateEstimate,\n deleteEstimateDetail,\n saveEstimateScrollYOffset,\n} from \"../../redux/actions/estimate\";\nimport { usePrevious } from \"../../utils/hook\";\nimport { formatMoney, MoneyFormatter } from \"../../utils/MoneyFormatter\";\nimport {\n ESTIMATE_STATUS,\n ESTIMATE_PIC_ATTACH,\n QUOTATION_FLOW,\n} from \"../../utils/Constant\";\nimport Title from \"components/common/Title\";\nconst windowHeight = Dimensions.get(\"window\")?.height;\n\n/**\n * //screen: 003-009-1 / 見積リスト\n */\n\nconst QuoteList = (props) => {\n const navigate = useNavigate();\n const history = useHistory();\n const [estimateData, setEstimateData] = useState({});\n const [update, setUpdate] = useState(false);\n const [isGoNextScreen, setIsGoNextScreen] = useState(false);\n let scrollRef = null;\n\n useEffect(() => {\n const estimate_id = history?.location?.state?.estimate_id;\n if (!!estimate_id) {\n props.getEstimate({\n estimate_id: history?.location?.state?.estimate_id,\n });\n // setIsEmptyCart(false);\n } else {\n //show empty cart\n // setIsEmptyCart(true);\n }\n }, []);\n\n useEffect(() => {\n // if (history.action === \"POP\") {\n // console.log(\"hung scrollRef:\", props.estimateScrollYOffset);\n // scrollRef.scrollTo({ y: props.estimateScrollYOffset });\n // } else {\n // props.saveEstimateScrollYOffset({\n // y_offset: 0,\n // });\n // }\n }, [estimateData]);\n\n const prevGettingEstimate = usePrevious(props.isGettingEstimate);\n useEffect(() => {\n if (prevGettingEstimate && !props.isGettingEstimate) {\n if (props.isGotEstimate) {\n setupData(props.estimate);\n }\n }\n }, [props.isGettingEstimate]);\n\n const updateEstimate = (data, status) => {\n const estimate_details = data?.estimate_details?.map((item) => {\n return {\n id: item.id,\n product_id: item.product_info?.id,\n name: item.name,\n unit_price: formatMoney(\n item.unit_price,\n MoneyFormatter.ZERO_DECIMAL_FORMAT_NO_COMMAS\n ),\n unit_price2: formatMoney(\n item.unit_price2,\n MoneyFormatter.ZERO_DECIMAL_FORMAT_NO_COMMAS\n ),\n pic_attach: item.pic_attach\n ? ESTIMATE_PIC_ATTACH.ATTACHED\n : ESTIMATE_PIC_ATTACH.NO_ATTACH,\n };\n });\n\n const updateEstimate = {\n id: estimateData.id,\n status: status,\n estimate_details: estimate_details,\n };\n props.updateEstimate(updateEstimate);\n };\n\n const quotationPreview = () => {\n //Submit the data, estimate.status = 0\n updateEstimate(estimateData, ESTIMATE_STATUS.ESTIMATING);\n // navigate(\"cart-preview\")}\n setIsGoNextScreen(true);\n };\n\n const updateEstimateWhenOnBlur = () => {\n updateEstimate(estimateData, ESTIMATE_STATUS.ESTIMATING);\n };\n\n const prevUpdatingEstimate = usePrevious(props.isUpdatingEstimate);\n useEffect(() => {\n if (prevUpdatingEstimate && !props.isUpdatingEstimate) {\n if (props.isUpdatedEstimate && isGoNextScreen) {\n // navigate(\"quotation-review\", {\n // pattern: QUOTATION_FLOW.QUOTATION_REVIEW_WITH_IMAGE,\n // estimate: props.updatedEstimate,\n // });\n const estimate_detail_pic_attach = props.updatedEstimate.estimate_details.filter(\n (item) => item.pic_attach == ESTIMATE_PIC_ATTACH.ATTACHED\n );\n // if estimate_detail_pic_attach.length > 0 : go to [003-010-1 / 見積書プレビュー(画像なし)]\n // else: go to 003-010-2 / 見積書プレビュー(画像あり)\n navigate(\"quotation-review\", {\n pattern:\n estimate_detail_pic_attach.length > 0\n ? QUOTATION_FLOW.QUOTATION_REVIEW_WITH_IMAGE\n : QUOTATION_FLOW.QUOTATION_REVIEW_NO_IMAGE,\n estimate: props.updatedEstimate,\n });\n }\n }\n }, [props.isUpdatingEstimate]);\n\n const prevDeletingEstimateDetail = usePrevious(\n props.isDeletingEstimateDetail\n );\n useEffect(() => {\n if (prevDeletingEstimateDetail && !props.isDeletingEstimateDetail) {\n if (props.isDeletedEstimateDetail) {\n //TODO\n setupData(props.estimateWhichDeletedEstimateDetail);\n }\n }\n }, [props.isDeletingEstimateDetail]);\n\n const onImageAttachChange = (selectedIndex, pic_attach) => {\n const estimate_details = props.estimate?.estimate_details.map(\n (item, index) => {\n item.pic_attach =\n index === selectedIndex\n ? pic_attach === ESTIMATE_PIC_ATTACH.NO_ATTACH\n ? ESTIMATE_PIC_ATTACH.ATTACHED\n : ESTIMATE_PIC_ATTACH.NO_ATTACH\n : item.pic_attach;\n return item;\n }\n );\n const data = props.estimate;\n data.estimate_details = estimate_details;\n updateEstimate(data, ESTIMATE_STATUS.ESTIMATING);\n };\n\n const onEstimateChange = (selectedIndex, changedValue, type) => {\n let data = props.estimate;\n const estimate_details = props.estimate.estimate_details.map(\n (item, index) => {\n if (type === 1) {\n item.unit_price =\n index === selectedIndex ? changedValue : item.unit_price;\n return item;\n } else if (type === 2) {\n item.unit_price2 =\n index === selectedIndex ? changedValue : item.unit_price2;\n return item;\n } else if (type === 3) {\n item.name = index === selectedIndex ? changedValue : item.name;\n return item;\n } else {\n return item;\n }\n }\n );\n\n data.estimate_details = estimate_details;\n\n setEstimateData(data);\n setUpdate((prev) => !prev);\n };\n\n const setupData = (estimate) => {\n const data = estimate;\n setEstimateData(data);\n setUpdate((prev) => !prev);\n };\n\n return (\n <View style={styles.wrap}>\n <Title backTitle={\"査 定\"} title=\"見積リスト\" />\n <View style={{}}>\n <Text style={styles.description}>\n 取引先コード:{props.estimate?.customer_info?.code}\n </Text>\n <Text style={styles.description}>\n 取引先名:{props.estimate?.customer_info?.name}\n </Text>\n <Text style={styles.description}>本日の貴金属相場</Text>\n </View>\n <View style={{ flexDirection: \"row\", marginTop: \"5pt\" }}>\n <View style={styles.cell}>\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n PT:{formatMoney(props.estimate?.market_price?.pt_jpy)}円\n </TextView>\n </View>\n <View style={[styles.cell, { marginHorizontal: \"5pt\" }]}>\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n PD:{formatMoney(props.estimate?.market_price?.pd_jpy)}円\n </TextView>\n </View>\n <View style={styles.cell}>\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n RH:{formatMoney(props.estimate?.market_price?.rh_jpy)}円\n </TextView>\n </View>\n </View>\n\n <View style={{ height: windowHeight - 550, marginTop: \"5pt\" }}>\n <ScrollView\n ref={(ref) => (scrollRef = ref)}\n onScroll={(e) => {\n // props.saveEstimateScrollYOffset({\n // y_offset: e?.nativeEvent?.contentOffset?.y,\n // });\n }}\n >\n {estimateData?.estimate_details?.map((item, index) => {\n return (\n <Package\n estimate={estimateData}\n estimate_detail={item}\n estimateDetailIndex={index}\n key={item.id}\n onTrash={(estimate_detail) => {\n props.deleteEstimateDetail({\n estimate_id: history?.location?.state?.estimate_id,\n estimate_detail_id: estimate_detail.id,\n });\n }}\n unitPriceOnBlur={() => {\n updateEstimateWhenOnBlur();\n }}\n onUnitPriceChange={(value) => {\n onEstimateChange(index, value, 1);\n }}\n onUnitPrice2Change={(value) => {\n onEstimateChange(index, value, 2);\n }}\n onNameChange={(value) => {\n onEstimateChange(index, value, 3);\n }}\n unitPrice2OnBlur={() => {\n updateEstimateWhenOnBlur();\n }}\n nameOnBlur={() => {\n updateEstimateWhenOnBlur();\n }}\n onImageCheckChange={(pic_attach) => {\n onImageAttachChange(index, pic_attach);\n }}\n />\n );\n })}\n </ScrollView>\n </View>\n <Block width=\"100%\" center paddingTop=\"20pt\">\n <Button\n // onPress={() => navigate(\"quotation-review\", { pattern: \"003-009-1\" })}\n onPress={() => quotationPreview()}\n color={Colors.SecondPrimary}\n middle\n width={Metrics.appW * (160 / 375)}\n paddingVertical=\"10pt\"\n borderRadius=\"3pt\"\n >\n <TextView color=\"white\" size={\"14pt\"}>\n 見積書プレビュー\n </TextView>\n </Button>\n </Block>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n wrap: {\n flex: 1,\n paddingBottom: 20,\n paddingHorizontal: \"24pt\",\n },\n titleWrap: {\n flexDirection: \"row\",\n alignItems: \"center\",\n borderBottomWidth: 2,\n borderBottomColor: Colors.WhiteDark03,\n paddingVertical: nor(15),\n },\n title: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n marginLeft: 10,\n fontSize: nor(18),\n },\n description: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n fontSize: \"13pt\",\n },\n cell: {\n flex: 1,\n backgroundColor: Colors.PrimaryLight2,\n alignItems: \"center\",\n paddingVertical: 3,\n },\n cellText: {\n fontWeight: \"bold\",\n color: Colors.Primary,\n fontSize: \"14pt\",\n },\n});\n\n// export default QuoteList;\n\nconst mapStateToProps = (state) => ({\n isGettingEstimate: state.estimate.isGettingEstimate,\n isGotEstimate: state.estimate.isGotEstimate,\n estimate: state.estimate.estimate,\n\n isUpdatingEstimate: state.estimate.isUpdatingEstimate,\n isUpdatedEstimate: state.estimate.isUpdatedEstimate,\n updatedEstimate: state.estimate.updatedEstimate,\n\n isDeletingEstimateDetail: state.estimate.isDeletingEstimateDetail,\n isDeletedEstimateDetail: state.estimate.isDeletedEstimateDetail,\n estimateWhichDeletedEstimateDetail:\n state.estimate.estimateWhichDeletedEstimateDetail,\n\n estimateScrollYOffset: state.estimate.estimateScrollYOffset,\n});\nconst mapDispatchToProps = {\n getEstimate,\n updateEstimate,\n deleteEstimateDetail,\n saveEstimateScrollYOffset,\n // insertProductsToInvoice,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(QuoteList);\n","import React, { useEffect, useState } from \"react\";\nimport {\n View,\n Text,\n Image,\n StyleSheet,\n TextInput,\n TouchableOpacity,\n ScrollView,\n} from \"react-native\";\nimport Back from \"components/common/Back\";\nimport { Colors, nor } from \"utils\";\nimport Package from \"components/cart/Package\";\nimport { useNavigate } from \"utils\";\nimport { Block, Button, TextView } from \"components\";\nimport { useHistory } from \"react-router-dom\";\nimport { formatMoney, MoneyFormatter } from \"../../utils/MoneyFormatter\";\nimport { connect } from \"react-redux\";\n\nimport { getOtherInvoice, getLastInvoice } from \"../../redux/actions/invoice\";\nimport { getSetting } from \"../../redux/actions/general\";\nimport { formatDateTime, DateTimeFormatter } from \"../../utils/DateUtility\";\nimport { INVOICE_STATUS } from \"../../utils/Constant\";\nimport OtherInvoiceRecord from \"components/common/OtherInvoiceRecord\";\nimport Title from \"components/common/Title\";\n\nimport { getProductCatalogDetail } from \"../../redux/actions/product\";\n\nconst Cart = ({ ...props }) => {\n const navigate = useNavigate();\n const history = useHistory();\n const [estimate, setEstimateData] = useState(\n history?.location?.state?.estimate\n );\n const [estimateDetailIndex, setEstimateDetailIndex] = useState(\n history?.location?.state?.estimateDetailIndex\n );\n const estimateDetail = estimate?.estimate_details[estimateDetailIndex];\n // const lastInvoice = props.lastInvoice?.invoice;\n // const [lastInvoiceDetailByProduct, setLastInvoiceDetailByProduct] = useState(\n // {}\n // );\n const [fromToUnitPrice, setFromToUnitPrice] = useState(\"\");\n\n useEffect(() => {\n props.getSetting();\n props.getOtherInvoice({\n product_id: estimateDetail?.product_info?.id,\n });\n calculateEstimatePrice();\n\n props.getLastInvoice({\n customer_id: estimate?.customer_info?.id,\n });\n props.getProductCatalogDetail({\n product_id: estimateDetail?.product_info?.id,\n customer_id: estimate?.customer_info?.id,\n });\n }, []);\n\n // useEffect(() => {\n // const invoiceDetailProduct = props.lastInvoice?.invoice?.invoice_details?.filter(\n // (item) => item.product_info?.id == estimateDetail?.product_info?.id\n // );\n // setLastInvoiceDetailByProduct(invoiceDetailProduct?.[0]);\n // }, [props.lastInvoice]);\n\n useEffect(() => {\n calculateEstimatePrice();\n }, [props.setting]);\n\n const calculateEstimatePrice = () => {\n // 仕入単価=(products.adjust_value_pt × market_prices.pt_jpy)\n // + (products.adjust_value_pd × market_prices.pd_jpy)\n // + (products.adjust_value_rh × market_prices.rh_jpy)\n // 下限仕入単価=仕入単価 × (settings.target_profit_rate / 100)\n // 上限仕入単価=仕入単価 × (settings.limit_profit_rate / 100)\n // => 仕入単価目安 = {下限仕入単価} ~ {上限仕入単価}\n const { pt_jpy, pd_jpy, rh_jpy } = estimate?.market_price;\n const {\n total_value_pd,\n total_value_pt,\n total_value_rh,\n } = estimateDetail?.product_info;\n const unitPrice =\n total_value_pt * pt_jpy +\n total_value_pd * pd_jpy +\n total_value_rh * rh_jpy;\n const fromUnitPrice =\n unitPrice * (props.setting?.target_profit_rate * 0.01);\n const toUnitPrice =\n fromUnitPrice * (props.setting?.limit_profit_rate * 0.01);\n // 14,000円〜1'5pt',500円\n const s =\n formatMoney(fromUnitPrice) + \"円〜\" + formatMoney(toUnitPrice) + \"円\";\n setFromToUnitPrice(s);\n };\n const renderPriceColorText = (currentPrice, prevPrice) => {\n if (currentPrice > prevPrice) {\n return styles.redText;\n } else {\n return styles.lightBlueText;\n }\n };\n\n const getUnitPriceByLastInvoiceByCustomer = (last_invoice_by_customer) => {\n if (\n last_invoice_by_customer !== null ||\n last_invoice_by_customer !== undefined\n ) {\n const matchedInvoiceDetail = last_invoice_by_customer?.invoice_details?.filter(\n (item) => item.product_info?.id == estimateDetail?.product_info?.id\n );\n if (matchedInvoiceDetail !== undefined) {\n return matchedInvoiceDetail[0]?.unit_price;\n }\n }\n };\n\n return (\n <View>\n <View style={{ paddingBottom: 10, paddingHorizontal: \"24pt\" }}>\n <Title backTitle={\"見積単価\"} title=\"製品詳細\" />\n <View style={{}}>\n <Text style={styles.description}>\n 取引先コード:{estimate?.customer_info?.code}\n </Text>\n <Text style={styles.description}>\n 取引先名:{estimate?.customer_info?.name}\n </Text>\n <Text style={styles.description}>本日の貴金属相場</Text>\n </View>\n <View style={{ flexDirection: \"row\", marginTop: \"5pt\" }}>\n <View style={styles.cell}>\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n PT:{formatMoney(estimate?.market_price?.pt_jpy)}円\n </TextView>\n </View>\n <View style={[styles.cell, { marginHorizontal: \"5pt\" }]}>\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n PD:{formatMoney(estimate?.market_price?.pd_jpy)}円\n </TextView>\n </View>\n <View style={styles.cell}>\n <TextView size=\"13pt\" color={Colors.Primary} bold>\n RH:{formatMoney(estimate?.market_price?.rh_jpy)}円\n </TextView>\n </View>\n </View>\n <View style={styles.mainWrap}>\n <View>\n <View style={styles.titleWrap2}>\n <View style={{ paddingRight: 14 }}>\n <Text style={{ fontSize: \"12pt\", color: Colors.Primary }}>\n 品 名\n </Text>\n </View>\n <View style={{ flex: 1 }}>\n <Text style={{ fontSize: \"14pt\", color: Colors.Primary }}>\n {estimateDetail?.product_info?.name}【\n {estimateDetail?.product_info?.code}】\n </Text>\n </View>\n </View>\n <View style={{ padding: 10, paddingTop: 0 }}>\n <View style={[styles.sectionHeader, styles.borderBottom1]}>\n <View style={[styles.row, styles.borderBottom]}>\n <View style={styles.rowFlex}>\n <Text style={styles.headerBadge}>仕入単価目安</Text>\n <Text style={[styles.headerText, { fontSize: 20 }]}>\n {fromToUnitPrice}\n </Text>\n </View>\n </View>\n <View style={styles.row}>\n <View style={styles.rowFlex}>\n <Text style={styles.headerBadge}>前回仕入単価</Text>\n <Text style={styles.headerText}>\n {formatMoney(\n getUnitPriceByLastInvoiceByCustomer(\n props.productCatalogDetail?.last_invoice_by_customer\n )\n )}\n 円\n </Text>\n </View>\n <View style={styles.rowFlex}>\n <Text style={styles.headerBadge}>前回仕入日</Text>\n <Text style={[styles.headerText, { fontSize: \"10pt\" }]}>\n {formatDateTime(\n props.productCatalogDetail?.last_invoice_by_customer\n ?.date\n )}\n </Text>\n </View>\n </View>\n <View style={[styles.row, { justifyContent: \"space-between\" }]}>\n <Text style={styles.headerBadge}>前回仕入時相場</Text>\n <Text style={[styles.badgeSmall]}>PT</Text>\n <Text\n style={renderPriceColorText(\n estimate?.market_price?.pt_jpy,\n props.productCatalogDetail?.last_invoice_by_customer\n ?.pt_jpy\n )}\n >\n {formatMoney(\n props.productCatalogDetail?.last_invoice_by_customer\n ?.pt_jpy\n )}\n 円\n </Text>\n <Text style={[styles.badgeSmall]}>PD</Text>\n <Text\n style={renderPriceColorText(\n estimate?.market_price?.pd_jpy,\n props.productCatalogDetail?.last_invoice_by_customer\n ?.pd_jpy\n )}\n >\n {formatMoney(\n props.productCatalogDetail?.last_invoice_by_customer\n ?.pd_jpy\n )}\n 円\n </Text>\n <Text style={[styles.badgeSmall]}>RH</Text>\n <Text\n style={renderPriceColorText(\n estimate?.market_price?.rh_jpy,\n props.productCatalogDetail?.last_invoice_by_customer\n ?.rh_jpy\n )}\n >\n {formatMoney(\n props.productCatalogDetail?.last_invoice_by_customer\n ?.rh_jpy\n )}\n 円\n </Text>\n </View>\n </View>\n <ScrollView style={{ maxHeight: 110 }}>\n {props.otherInvoiceList?.map((item, index) => {\n return (\n <OtherInvoiceRecord\n key={`${index}`}\n otherInvoice={item}\n invoice_market_price={props.estimate?.market_price}\n />\n );\n })}\n </ScrollView>\n </View>\n </View>\n </View>\n </View>\n <Block>\n <Image\n source={{\n uri: estimateDetail?.product_info?.pic_path,\n }}\n style={{ height: 390, width: \"100%\" }}\n resizeMode=\"contain\"\n />\n </Block>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n mainWrap: {\n marginTop: \"8pt\",\n borderColor: Colors.Primary,\n borderWidth: 1,\n borderRadius: \"5pt\",\n },\n titleWrap: {\n flexDirection: \"row\",\n alignItems: \"center\",\n borderBottomWidth: 1,\n borderBottomColor: Colors.SecondPrimary,\n paddingVertical: nor(15),\n },\n titleWrap2: {\n flexDirection: \"row\",\n paddingVertical: \"6pt\",\n paddingHorizontal: \"10pt\",\n borderBottomColor: Colors.SecondPrimary,\n borderBottomWidth: 1,\n borderStyle: \"dashed\",\n },\n title: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n marginLeft: \"10pt\",\n fontSize: \"16pt\",\n },\n description: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n fontSize: \"13pt\",\n },\n cell: {\n flex: 1,\n backgroundColor: Colors.PrimaryLight2,\n alignItems: \"center\",\n paddingVertical: 3,\n },\n cellText: {\n fontWeight: \"bold\",\n color: Colors.Primary,\n fontSize: 15,\n },\n textInput: {\n flex: 1,\n paddingVertical: \"5pt\",\n paddingHorizontal: \"5pt\",\n marginLeft: \"5pt\",\n backgroundColor: Colors.PrimaryLight2,\n },\n button: {\n backgroundColor: Colors.SecondPrimary,\n alignItems: \"center\",\n borderRadius: \"5pt\",\n },\n headerText: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n fontSize: \"11pt\",\n },\n headerBadge: {\n color: \"white\",\n backgroundColor: Colors.Primary,\n paddingVertical: \"2pt\",\n paddingHorizontal: \"10pt\",\n minWidth: 90,\n textAlign: \"center\",\n marginRight: \"8pt\",\n fontSize: \"12pt\",\n },\n badgeSmall: {\n minWidth: 0,\n alignSelf: \"center\",\n color: \"white\",\n backgroundColor: Colors.Primary,\n paddingVertical: \"2pt\",\n paddingHorizontal: 7,\n textAlign: \"center\",\n marginRight: \"10pt\",\n fontSize: \"8pt\",\n },\n rowFlex: {\n alignItems: \"center\",\n flexDirection: \"row\",\n flex: 1,\n },\n row: {\n alignItems: \"center\",\n flexDirection: \"row\",\n marginTop: \"3pt\",\n },\n redText: {\n color: \"#D90000\",\n fontWeight: \"bold\",\n fontSize: \"10pt\",\n },\n contentHeader: {\n color: Colors.Primary,\n fontWeight: \"bold\",\n marginVertical: \"3pt\",\n },\n contentBadge: {\n color: \"white\",\n backgroundColor: Colors.SecondPrimary,\n paddingVertical: \"2pt\",\n paddingHorizontal: \"10pt\",\n textAlign: \"center\",\n marginRight: \"10pt\",\n fontSize: \"12pt\",\n },\n price: {\n color: Colors.SecondPrimary,\n fontSize: \"18pt\",\n fontWeight: \"bold\",\n },\n date: {\n color: Colors.SecondPrimary,\n fontSize: \"16pt\",\n fontWeight: \"bold\",\n },\n lightBlueText: {\n color: \"#00CBDC\",\n fontWeight: \"bold\",\n fontSize: \"10pt\",\n },\n borderBottom: {\n borderBottomColor: Colors.SecondPrimary,\n borderBottomWidth: 1,\n paddingBottom: 5,\n borderStyle: \"dashed\",\n },\n borderBottom1: {\n borderBottomColor: Colors.GrayLight,\n borderBottomWidth: 1,\n paddingBottom: 5,\n borderStyle: \"solid\",\n },\n});\n// export default Cart;\n\nconst mapStateToProps = (state) => ({\n setting: state.general.setting,\n otherInvoiceList: state.invoice.otherInvoiceList,\n // lastInvoice: state.invoice.lastInvoice,\n\n productCatalogDetail: state.product.productCatalogDetail,\n});\nconst mapDispatchToProps = {\n getSetting,\n getOtherInvoice,\n getLastInvoice,\n // insertProductsToInvoice,\n getProductCatalogDetail,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Cart);\n","import React, { useState, useEffect } from 'react';\nimport {\n StyleSheet,\n TouchableOpacity,\n View,\n Image,\n Text,\n TextInput,\n} from 'react-native';\nimport { Colors } from 'utils';\nimport images from 'assets/images';\nimport { authIcons } from 'assets/icons';\nimport { useNavigate } from 'utils';\nimport { login } from 'redux/actions/auth';\nimport { connect } from 'react-redux';\nimport { usePrevious } from '../../../utils/hook';\nimport axiosDebugger, {\n setAxiosDefaultHeaders,\n} from '../../../configs/axiosDebugger';\nimport { ACCOUNT_LOGIN_AUTH } from '../../../utils/Constant';\nimport { useHistory } from 'react-router-dom';\n\nconst Login = (props) => {\n const history = useHistory();\n const navigate = useNavigate();\n const [username, setUsername] = useState('');\n const [password, setPassword] = useState('');\n\n const submitLogin = () => {\n props.login({\n email: username,\n password: password,\n login_auth: ACCOUNT_LOGIN_AUTH.MOBILE_MANAGER,\n });\n };\n\n const prevLoggingIn = usePrevious(props.isLoggingIn);\n useEffect(() => {\n if (prevLoggingIn && !props.isLoggingIn) {\n if (props.isLoggedIn) {\n\n setAxiosDefaultHeaders({\n token: props.account.token,\n uuid: props.account.uuid,\n });\n navigate('/admin');\n } else {\n console.log('hung login false');\n }\n }\n }, [props.isLoggingIn]);\n\n return (\n <View style={styles.wrap}>\n <Image\n source={images.admin_auth}\n style={styles.backgroundImage}\n resizeMode={'cover'}\n />\n <View style={styles.formWrap}>\n <View style={styles.field}>\n <View style={styles.labelWrap}>\n <Image source={authIcons.admin_user} style={styles.icon} />\n <Text style={styles.label}>ログインID</Text>\n </View>\n <TextInput\n style={styles.textInput}\n onChangeText={(value) => setUsername(value)}\n />\n </View>\n <View style={styles.field}>\n <View style={styles.labelWrap}>\n <Image source={authIcons.admin_password} style={styles.icon} />\n <Text style={styles.label}>パスワード</Text>\n </View>\n <TextInput\n style={styles.textInput}\n secureTextEntry\n onChangeText={(value) => setPassword(value)}\n />\n </View>\n\n <TouchableOpacity onPress={() => submitLogin()} style={styles.button}>\n <Text style={[styles.buttonLabel]}>ログイン</Text>\n </TouchableOpacity>\n <TouchableOpacity\n style={styles.errorField}\n onPress={() => {\n history.replace('/login');\n }}\n >\n <Text\n style={{\n color: '#64B5B8',\n textDecorationLine: 'underline',\n fontSize: 18,\n fontWeight: 'bold',\n }}\n >\n スタッフログインへ戻る\n </Text>\n </TouchableOpacity>\n <View style={styles.errorField}>\n <Text style={{ color: 'red' }}>{props.errorMsg}</Text>\n </View>\n </View>\n </View>\n );\n};\n\nconst mapStateToProps = (state) => ({\n isLoggedIn: state.auth.isLoggedIn,\n isLoggingIn: state.auth.isLoggingIn,\n account: state.auth.account,\n errorMsg: state.auth.errorMsg,\n});\nconst mapDispatchToProps = {\n login,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Login);\n\nconst styles = StyleSheet.create({\n wrap: {\n flex: 1,\n justifyContent: 'flex-end',\n },\n backgroundImage: {\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n },\n formWrap: {\n height: '53vh',\n paddingHorizontal: '24pt',\n },\n field: {\n flexDirection: 'row',\n alignItems: 'center',\n backgroundColor: '#E6F3F3',\n marginBottom: '10pt',\n },\n labelWrap: {\n flexDirection: 'row',\n paddingLeft: '10pt',\n alignItems: 'center',\n },\n icon: { width: '16pt', height: '16pt', marginLeft: '15pt' },\n label: {\n color: Colors.Primary,\n fontWeight: 'bold',\n paddingHorizontal: '10pt',\n },\n textInput: {\n flex: 2,\n textAlign: 'right',\n color: Colors.SecondPrimary,\n paddingVertical: '25pt',\n paddingHorizontal: '15pt',\n },\n button: {\n backgroundColor: 'white',\n paddingHorizontal: '32pt',\n paddingVertical: '10pt',\n borderRadius: '40pt',\n alignSelf: 'center',\n marginTop: '40pt',\n },\n buttonLabel: {\n color: Colors.Primary,\n fontWeight: 'bold',\n },\n errorField: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n marginVertical: '13pt',\n },\n});\n","import React, { useState, useEffect } from \"react\";\nimport { View, Text, StyleSheet, TextInput } from \"react-native\";\nimport { Title, Block, Button } from \"components\";\nimport { Colors } from \"utils\";\nimport { useHistory } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\n\nimport {\n getDayOfWeek,\n NOW_DATE,\n formatDateTime,\n DateTimeFormatter,\n} from \"../../../utils/DateUtility\";\nimport { insertInformation } from \"../../../redux/actions/general\";\nimport { INFORMATION_TYPE } from \"../../../utils/Constant\";\nimport { usePrevious } from \"../../../utils/hook\";\nimport { useNavigate } from \"utils\";\n\n/**\n * 【管理者】004-002-1 / お知らせ・新規作成\n * @param {*} props\n */\nconst CreateNotice = (props) => {\n const history = useHistory();\n const [message, setMessage] = React.useState(\"\");\n const navigate = useNavigate();\n\n const createInformation = () => {\n props.insertInformation({\n type: INFORMATION_TYPE.TODAY,\n message: message,\n });\n };\n\n const prevInsertingformation = usePrevious(props.isInsertingformation);\n useEffect(() => {\n if (prevInsertingformation && !props.isInsertingformation) {\n if (props.isInsertedformation) {\n navigate(\"/notice\", {});\n }\n }\n }, [props.isInsertingformation]);\n\n return (\n <View style={styles.wrap}>\n <Title title={\"お知らせ\"} />\n <View style={styles.sectionRow}>\n <Text style={styles.sectionLabel}>本日の通達事項:新規作成</Text>\n <Text style={[styles.sectionLabel, { fontWeight: \"bold\" }]}>\n {formatDateTime(NOW_DATE)} ({getDayOfWeek(NOW_DATE)})\n </Text>\n </View>\n <TextInput\n multiline\n style={styles.textInput}\n onChangeText={(value) => setMessage(value)}\n />\n <View>\n <Button\n mediumCentered\n marginTop={32}\n onPress={() => createInformation()}\n >\n 送 信\n </Button>\n <Button onPress={() => history.goBack()} mediumCentered marginTop={5}>\n お知らせTOPへ\n </Button>\n </View>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n wrap: {\n flex: 1,\n paddingVertical: 20,\n paddingHorizontal: 24,\n },\n sectionRow: {\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n paddingTop: 15,\n paddingBottom: 10,\n },\n sectionLabel: {\n color: Colors.Primary,\n },\n textInput: {\n borderColor: Colors.SecondPrimary,\n borderWidth: 1,\n borderRadius: 5,\n height: \"35vh\",\n },\n});\n\nconst mapStateToProps = (state) => ({\n // todayInformationList: state.general.todayInformationList,\n // officeInformationList: state.general.officeInformationList,\n // latestUpdatedTransactionList: state.general.latestUpdatedTransactionList,\n\n isInsertingformation: state.general.isInsertingformation,\n isInsertedformation: state.general.isInsertedformation,\n});\nconst mapDispatchToProps = {\n insertInformation,\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(CreateNotice);\n","import React from \"react\";\nimport { StyleSheet, ScrollView, Dimensions } from \"react-native\";\nimport { useHistory } from \"react-router-dom\";\nimport { Block, TextView } from \"components\";\nimport { useNavigate } from \"utils\";\n\nimport { Colors } from \"utils\";\nimport { Footer } from \"components/notice\";\nimport NoticeStatus from \"components/notice/NoticeStatus\";\nimport NoticeToday from \"components/notice/NoticeToday\";\nimport { PAST_NOTICE } from \"containers/past-notice/fakePastNotice\";\nimport Title from \"components/common/Title\";\n\nconst { height } = Dimensions.get(\"window\");\nconst HEIGHT = height * 0.1;\nconst styles = StyleSheet.create({\n containerStyle: {\n borderTopWidth: 2,\n borderTopColor: Colors.SecondPrimary,\n borderBottomWidth: 2,\n borderBottomColor: Colors.SecondPrimary,\n },\n});\n\nconst Notice = () => {\n const navigate = useNavigate();\n\n const onPressNavigate = (pathname) => navigate(pathname);\n const onPressStatus = (key) => navigate(\"account\");\n\n return (\n <Block block paddingHorizontal={24} paddingBottom={20}>\n <Title title={\"お知らせ\"} />\n <Block block>\n <NoticeToday routePrefix={\"/admin\"} showCreate />\n <NoticeToday routePrefix={\"/admin\"} office />\n <Block marginTop={10}>\n <TextView bold size={13} color={Colors.SecondPrimary}>\n ステータス通知\n </TextView>\n <Block marginTop={10} height={HEIGHT}>\n <ScrollView style={styles.containerStyle}>\n {PAST_NOTICE.map(({ title, content }, key) => (\n <NoticeStatus\n onPress={() => onPressStatus(key)}\n {...{ key, title, content }}\n />\n ))}\n </ScrollView>\n </Block>\n </Block>\n <Footer onPress={onPressNavigate} />\n </Block>\n </Block>\n );\n};\n\nexport default Notice;\n","import { LOGIN, LOGOUT } from \"redux/actions/auth\";\n\nconst initialState = {\n isLoggedIn: false,\n isLoggingIn: false,\n account: {},\n errorMsg: \"\",\n isLoggingOut: false,\n isLoggedOut: false,\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case LOGIN.REQUEST:\n return {\n ...state,\n isLoggedIn: false,\n isLoggingIn: true,\n };\n\n case LOGIN.SUCCESS:\n return {\n ...state,\n isLoggedIn: true,\n isLoggingIn: false,\n account: action.result,\n };\n\n case LOGIN.FAIL:\n // console.log('hung LOGIN.FAIL, action:', action.result?.errorMessage?.response?.data?.error);\n return {\n ...state,\n isLoggedIn: false,\n isLoggingIn: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case LOGOUT.REQUEST:\n console.log(\"hung LOGOUT:\", LOGOUT);\n return { ...initialState };\n\n default:\n return state;\n }\n}\n","import {\n GET_METAL_MARKET_PRICE,\n RESET_CART,\n CHECK_CART,\n CREATE_NEW_INVOICE,\n GET_MARKET_PRICE_DATA,\n GET_AVERAGE_MARKET_PRICE,\n} from \"../../redux/actions/home\";\n\nconst initialState = {\n isGettingMetalMarketPrice: false,\n isGotMetalMarketPrice: false,\n metalMarketPrice: {},\n errorMsg: \"\",\n isCheckingCart: false,\n isCheckedCart: false,\n cart: {},\n\n isResettingCart: false,\n isResetCartFinish: false,\n newCart: {},\n\n isCreatingNewInvoice: false,\n isCreatedNewInvoice: false,\n newInvoice: {},\n\n isGettingMarketPriceData: false,\n isGotMarketPriceData: false,\n marketPriceData: [],\n\n isGettingAverageMarketPrice: false,\n isGotAverageMarketPrice: false,\n averageMarketPrice: [],\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case GET_METAL_MARKET_PRICE.REQUEST:\n return {\n ...state,\n isGotMetalMarketPrice: false,\n isGettingMetalMarketPrice: true,\n };\n\n case GET_METAL_MARKET_PRICE.SUCCESS:\n return {\n ...state,\n isGotMetalMarketPrice: true,\n isGettingMetalMarketPrice: false,\n metalMarketPrice: action.result,\n };\n\n case GET_METAL_MARKET_PRICE.FAIL:\n return {\n ...state,\n isGotMetalMarketPrice: false,\n isGettingMetalMarketPrice: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case RESET_CART.REQUEST:\n return {\n ...state,\n isResettingCart: true,\n isResetCartFinish: false,\n };\n\n case RESET_CART.SUCCESS:\n return {\n ...state,\n isResettingCart: false,\n isResetCartFinish: true,\n newCart: action.result,\n };\n\n case RESET_CART.FAIL:\n return {\n ...state,\n isResettingCart: false,\n isResetCartFinish: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case CHECK_CART.REQUEST:\n return {\n ...state,\n isCheckingCart: true,\n isCheckedCart: false,\n };\n\n case CHECK_CART.SUCCESS:\n return {\n ...state,\n isCheckingCart: false,\n isCheckedCart: true,\n cart: action.result,\n };\n\n case CHECK_CART.FAIL:\n return {\n ...state,\n isCheckingCart: false,\n isCheckedCart: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case CREATE_NEW_INVOICE.REQUEST:\n return {\n ...state,\n isCreatingNewInvoice: true,\n isCreatedNewInvoice: false,\n };\n\n case CREATE_NEW_INVOICE.SUCCESS:\n return {\n ...state,\n isCreatingNewInvoice: false,\n isCreatedNewInvoice: true,\n newInvoice: action.result,\n };\n\n case CREATE_NEW_INVOICE.FAIL:\n return {\n ...state,\n isCreatingNewInvoice: false,\n isCreatedNewInvoice: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case GET_MARKET_PRICE_DATA.REQUEST:\n return {\n ...state,\n isGettingMarketPriceData: true,\n isGotMarketPriceData: false,\n };\n\n case GET_MARKET_PRICE_DATA.SUCCESS:\n return {\n ...state,\n isGettingMarketPriceData: false,\n isGotMarketPriceData: true,\n marketPriceData: action.result,\n };\n\n case GET_MARKET_PRICE_DATA.FAIL:\n return {\n ...state,\n isGettingMarketPriceData: false,\n isGotMarketPriceData: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case GET_AVERAGE_MARKET_PRICE.REQUEST:\n return {\n ...state,\n isGettingAverageMarketPrice: true,\n isGotAverageMarketPrice: false,\n };\n\n case GET_AVERAGE_MARKET_PRICE.SUCCESS:\n return {\n ...state,\n isGettingAverageMarketPrice: false,\n isGotAverageMarketPrice: true,\n averageMarketPrice: action.result,\n };\n\n case GET_AVERAGE_MARKET_PRICE.FAIL:\n return {\n ...state,\n isGettingAverageMarketPrice: false,\n isGotAverageMarketPrice: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n default:\n return state;\n }\n}\n","const ITEMS_PER_PAGE = 10;\n\nexport const processPaging = (\n dataKey,\n state,\n result,\n nextPageKey = \"nextPagePage\",\n reachEndKey = \"reachEnd\",\n totalKey = \"totalPages\"\n) => {\n const totalPages = Math.ceil((result?.count || 0) / ITEMS_PER_PAGE);\n const nextPageMatch = (result?.next || \"\").match(/page=(\\d+)/);\n const reachEnd = nextPageMatch == null || nextPageMatch == undefined;\n\n const nextPage = nextPageMatch ? nextPageMatch[1] : totalPages + 1;\n\n const currentPage = +nextPage - 1;\n const _result = {\n [totalKey]: totalPages,\n };\n if (currentPage == 0) {\n _result[nextPageKey] = 0;\n _result[dataKey] = result.results;\n } else if (currentPage == 1) {\n _result[nextPageKey] = nextPage;\n _result[dataKey] = result.results;\n } else {\n _result[nextPageKey] = nextPage;\n _result[dataKey] = Array.from(state[dataKey]).concat(result.results);\n }\n _result[reachEndKey] = reachEnd;\n\n return _result;\n};\n\nexport const processPagingProductCatalog = (\n dataKey,\n state,\n result,\n nextPageKey = \"nextPagePage\",\n reachEndKey = \"reachEnd\",\n resultCount,\n totalKey = \"totalPages\"\n) => {\n const totalPages = Math.ceil((result?.count || 0) / ITEMS_PER_PAGE);\n const nextPageMatch = (result?.next || \"\").match(/page=(\\d+)/);\n const reachEnd = nextPageMatch == null || nextPageMatch == undefined;\n\n const nextPage = nextPageMatch ? nextPageMatch[1] : totalPages + 1;\n\n const currentPage = +nextPage - 1;\n const _result = {\n [totalKey]: totalPages,\n };\n\n const resultData = result.results?.map((item) => {\n return {\n ...item,\n is_check: false,\n };\n });\n\n if (currentPage == 0) {\n _result[nextPageKey] = 0;\n _result[dataKey] = resultData;\n } else if (currentPage == 1) {\n _result[nextPageKey] = nextPage;\n _result[dataKey] = resultData;\n } else {\n _result[nextPageKey] = nextPage;\n _result[dataKey] = Array.from(state[dataKey]).concat(resultData);\n }\n _result[reachEndKey] = reachEnd;\n _result[resultCount] = resultData.length;\n\n return _result;\n};\n","import {\n GET_TRANSFER_CUSTOMERS,\n UPDATE_CUSTOMER,\n GET_LAST_INVOICE,\n INSERT_PRODUCTS_TO_INVOICE,\n GET_INVOICE,\n UPDATE_INVOICE,\n // GET_TWO_LAST_INVOICE,\n GET_OTHER_INVOICE,\n DELETE_INVOICE_DETAIL,\n SEARCH_PAST_PERFORMANCE,\n INVOICE_UPLOAD_PDF,\n CREATE_TRANSFER_INVOICE,\n SAVE_INVOICE_DATA_GO_TO_PRODUCT_DETAIL,\n SEARCH_PRODUCT_IN_INVOICE_DETAIL,\n INVOICE_GENERATE_PDF,\n} from \"../../redux/actions/invoice\";\n\nimport { processPaging } from \"./utils\";\nconst initialState = {\n // transferCustomers: [],\n errorMsg: \"\",\n isUpdatingCustomer: false,\n isUpdatedCustomer: false,\n updatedCustomerInvoice: {},\n\n isGettingLastInvoice: false,\n isGotLastInvoice: false,\n lastInvoice: {},\n\n isGettingInvoice: false,\n isGotInvoice: false,\n invoice: {},\n\n isUpdatingInvoice: false,\n isUpdatedInvoice: false,\n updatedInvoice: {},\n\n twoLastInvoice: {},\n otherInvoiceList: [],\n\n isDeletingInvoiceDetail: false,\n isDeletedInvoiceDetail: false,\n invoiceWhichDeletedInvoiceDetail: {},\n\n isSearchingPerformance: false,\n isSearchedPerformance: false,\n searchPerformanceNextPage: 1,\n searchPerformanceReachEnd: false,\n searchPerformanceResult: [],\n\n invoiceDataWhenGoToProductDetail: {},\n\n invoiceDetailSearchByProductName: [],\n\n isInsertingProductToInvoice: false,\n isInsertedProductToInvoice: false,\n invoiceWhichJustInsertProduct: [],\n\n isGeneratingPdf: false,\n isGeneratedPdf: false,\n generatedPdfUrl: {},\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case UPDATE_CUSTOMER.REQUEST:\n return {\n ...state,\n isUpdatingCustomer: true,\n isUpdatedCustomer: false,\n updatedCustomerInvoice: [],\n };\n\n case UPDATE_CUSTOMER.SUCCESS:\n return {\n ...state,\n isUpdatingCustomer: false,\n isUpdatedCustomer: true,\n updatedCustomerInvoice: action.result,\n };\n\n case UPDATE_CUSTOMER.FAIL:\n return {\n ...state,\n isUpdatingCustomer: false,\n isUpdatedCustomer: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case GET_LAST_INVOICE.REQUEST:\n return {\n ...state,\n isGettingLastInvoice: true,\n isGotLastInvoice: false,\n lastInvoice: [],\n };\n\n case GET_LAST_INVOICE.SUCCESS:\n return {\n ...state,\n isGettingLastInvoice: false,\n isGotLastInvoice: true,\n lastInvoice: action.result,\n };\n\n case GET_LAST_INVOICE.FAIL:\n return {\n ...state,\n isGettingLastInvoice: false,\n isGotLastInvoice: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case INSERT_PRODUCTS_TO_INVOICE.REQUEST:\n return {\n ...state,\n isInsertingProductToInvoice: true,\n isInsertedProductToInvoice: false,\n };\n\n case INSERT_PRODUCTS_TO_INVOICE.SUCCESS:\n return {\n ...state,\n isInsertingProductToInvoice: false,\n isInsertedProductToInvoice: true,\n invoiceWhichJustInsertProduct: action.result,\n };\n\n case INSERT_PRODUCTS_TO_INVOICE.FAIL:\n return {\n ...state,\n isInsertingProductToInvoice: false,\n isInsertedProductToInvoice: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case GET_INVOICE.REQUEST:\n return {\n ...state,\n isGettingInvoice: true,\n isGotInvoice: false,\n invoice: {},\n };\n\n case GET_INVOICE.SUCCESS:\n return {\n ...state,\n isGettingInvoice: false,\n isGotInvoice: true,\n invoice: action.result,\n };\n\n case GET_INVOICE.FAIL:\n return {\n ...state,\n isGettingInvoice: false,\n isGotInvoice: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case UPDATE_INVOICE.REQUEST:\n return {\n ...state,\n isUpdatingInvoice: true,\n isUpdatedInvoice: false,\n };\n\n case UPDATE_INVOICE.SUCCESS:\n return {\n ...state,\n isUpdatingInvoice: false,\n isUpdatedInvoice: true,\n updatedInvoice: action.result,\n };\n\n case UPDATE_INVOICE.FAIL:\n return {\n ...state,\n isUpdatingInvoice: false,\n isUpdatedInvoice: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case GET_OTHER_INVOICE.REQUEST:\n return {\n ...state,\n // isGettingInvoice: true,\n // isGotInvoice: false,\n otherInvoiceList: [],\n };\n\n case GET_OTHER_INVOICE.SUCCESS:\n return {\n ...state,\n // isGettingInvoice: false,\n // isGotInvoice: true,\n otherInvoiceList: action.result,\n };\n\n case GET_OTHER_INVOICE.FAIL:\n return {\n ...state,\n // isGettingInvoice: false,\n // isGotInvoice: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case DELETE_INVOICE_DETAIL.REQUEST:\n return {\n ...state,\n isDeletingInvoiceDetail: true,\n isDeletedInvoiceDetail: false,\n invoiceWhichDeletedInvoiceDetail: {},\n };\n\n case DELETE_INVOICE_DETAIL.SUCCESS:\n return {\n ...state,\n isDeletingInvoiceDetail: false,\n isDeletedInvoiceDetail: true,\n invoiceWhichDeletedInvoiceDetail: action.result,\n };\n\n case DELETE_INVOICE_DETAIL.FAIL:\n return {\n ...state,\n isDeletingInvoiceDetail: false,\n isDeletedInvoiceDetail: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case SEARCH_PAST_PERFORMANCE.REQUEST:\n return {\n ...state,\n isSearchingPerformance: true,\n isSearchedPerformance: false,\n // searchPerformanceResult: [],\n };\n\n case SEARCH_PAST_PERFORMANCE.SUCCESS:\n return {\n ...state,\n isSearchingPerformance: false,\n isSearchedPerformance: true,\n // searchPerformanceResult: action.result,\n ...processPaging(\n \"searchPerformanceResult\",\n state,\n action.result,\n \"searchPerformanceNextPage\",\n \"searchPerformanceReachEnd\"\n ),\n };\n\n case SEARCH_PAST_PERFORMANCE.FAIL:\n return {\n ...state,\n isSearchingPerformance: false,\n isSearchedPerformance: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case INVOICE_UPLOAD_PDF.REQUEST:\n return {\n ...state,\n };\n\n case INVOICE_UPLOAD_PDF.SUCCESS:\n return {\n ...state,\n // estimateWhichDeletedEstimateDetail: action.result,\n };\n\n case INVOICE_UPLOAD_PDF.FAIL:\n return {\n ...state,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case CREATE_TRANSFER_INVOICE.REQUEST:\n return {\n ...state,\n };\n\n case CREATE_TRANSFER_INVOICE.SUCCESS:\n return {\n ...state,\n // estimateWhichDeletedEstimateDetail: action.result,\n };\n\n case CREATE_TRANSFER_INVOICE.FAIL:\n return {\n ...state,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case SAVE_INVOICE_DATA_GO_TO_PRODUCT_DETAIL:\n return {\n ...state,\n invoiceDataWhenGoToProductDetail: action.params.invoiceData,\n };\n\n case SEARCH_PRODUCT_IN_INVOICE_DETAIL.REQUEST:\n return {\n ...state,\n };\n\n case SEARCH_PRODUCT_IN_INVOICE_DETAIL.SUCCESS:\n return {\n ...state,\n invoiceDetailSearchByProductName: action.result,\n };\n\n case SEARCH_PRODUCT_IN_INVOICE_DETAIL.FAIL:\n return {\n ...state,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n case INVOICE_GENERATE_PDF.REQUEST:\n return {\n ...state,\n isGeneratingPdf: true,\n isGeneratedPdf: false,\n generatedPdfUrl: \"\",\n };\n\n case INVOICE_GENERATE_PDF.SUCCESS:\n return {\n ...state,\n isGeneratingPdf: false,\n isGeneratedPdf: true,\n generatedPdfUrl: action.result,\n };\n\n case INVOICE_GENERATE_PDF.FAIL:\n return {\n ...state,\n isGeneratingPdf: false,\n isGeneratedPdf: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n default:\n return state;\n }\n}\n","import {\n SEARCH_PRODUCTS,\n UPDATE_PRODUCT,\n SEARCH_PRODUCT_CATALOG,\n SAVE_SEARCH_PRODUCT_CATALOG,\n UPDATE_SEARCH_PRODUCT_CATALOG_RESULT_LIST,\n GET_PRODUCT_CATALOG_DETAIL,\n CLEAR_SEARCH_PRODUCT_CATALOG,\n KEEP_SEARCH_PRODUCT_CATALOG,\n} from \"redux/actions/product\";\nimport { processPagingProductCatalog } from \"./utils\";\n\nconst initialState = {\n isSearchingProduct: false,\n isSearchProductFinish: false,\n products: [],\n errorMsg: \"\",\n isUpdatingProduct: false,\n isUpdatedProduct: false,\n updatedProduct: {},\n\n isSearchingProductCatalog: false,\n isSearchedProductCatalog: false,\n searchProductCatalogNextPage: 1,\n searchProductCatalogReachEnd: false,\n searchProductCatalogResult: [],\n searchProductCatalogResultCount: 0,\n\n savedSearchProductCatalog: {\n productName: \"\",\n selectedMaker: undefined,\n },\n\n isGettingProductCatalogDetail: false,\n isGotProductCatalogDetail: false,\n productCatalogDetail: undefined,\n\n keepSearchProductCatalog: false,\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case SEARCH_PRODUCTS.REQUEST:\n return {\n ...state,\n isSearchProductFinish: false,\n isSearchingProduct: true,\n products: [],\n };\n\n case SEARCH_PRODUCTS.SUCCESS:\n return {\n ...state,\n isSearchProductFinish: true,\n isSearchingProduct: false,\n products: action.result,\n };\n\n case SEARCH_PRODUCTS.FAIL:\n return {\n ...state,\n isSearchProductFinish: false,\n isSearchingProduct: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case UPDATE_PRODUCT.REQUEST:\n return {\n ...state,\n isUpdatingProduct: true,\n isUpdatedProduct: false,\n updatedProduct: {},\n };\n\n case UPDATE_PRODUCT.SUCCESS:\n return {\n ...state,\n isUpdatingProduct: false,\n isUpdatedProduct: true,\n updatedProduct: action.result,\n };\n\n case UPDATE_PRODUCT.FAIL:\n return {\n ...state,\n isUpdatingProduct: false,\n isUpdatedProduct: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case SEARCH_PRODUCT_CATALOG.REQUEST:\n return {\n ...state,\n isSearchingProductCatalog: true,\n isSearchedProductCatalog: false,\n updatedProduct: {},\n };\n\n case SEARCH_PRODUCT_CATALOG.SUCCESS:\n return {\n ...state,\n isSearchingProductCatalog: false,\n isSearchedProductCatalog: true,\n // searchProductCatalogResult: action.result,\n\n ...processPagingProductCatalog(\n \"searchProductCatalogResult\",\n state,\n action.result,\n \"searchProductCatalogNextPage\",\n \"searchProductCatalogReachEnd\",\n \"searchProductCatalogResultCount\"\n ),\n };\n\n case SEARCH_PRODUCT_CATALOG.FAIL:\n return {\n ...state,\n isSearchingProductCatalog: false,\n isSearchedProductCatalog: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case UPDATE_SEARCH_PRODUCT_CATALOG_RESULT_LIST:\n return {\n ...state,\n searchProductCatalogResult: action.params.searchProductCatalogResult,\n };\n\n case GET_PRODUCT_CATALOG_DETAIL.REQUEST:\n return {\n ...state,\n isGettingProductCatalogDetail: true,\n isGotProductCatalogDetail: false,\n };\n\n case GET_PRODUCT_CATALOG_DETAIL.SUCCESS:\n return {\n ...state,\n isGettingProductCatalogDetail: false,\n isGotProductCatalogDetail: true,\n productCatalogDetail: action.result,\n };\n\n case GET_PRODUCT_CATALOG_DETAIL.FAIL:\n return {\n ...state,\n isGettingProductCatalogDetail: false,\n isGotProductCatalogDetail: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case SAVE_SEARCH_PRODUCT_CATALOG:\n return {\n ...state,\n savedSearchProductCatalog: {\n productName: action.params.productName,\n selectedMaker: action.params.selectedMaker,\n },\n };\n\n case CLEAR_SEARCH_PRODUCT_CATALOG:\n return {\n ...state,\n searchProductCatalogResult: state.keepSearchProductCatalog\n ? state.searchProductCatalogResult\n : [],\n savedSearchProductCatalog: state.keepSearchProductCatalog\n ? state.savedSearchProductCatalog\n : {\n productName: \"\",\n selectedMaker: undefined,\n },\n };\n case KEEP_SEARCH_PRODUCT_CATALOG:\n return {\n ...state,\n keepSearchProductCatalog: action.params?.isKeep,\n };\n\n default:\n return state;\n }\n}\n","import {\n GET_TRANSFER_CUSTOMERS,\n UPDATE_TRANSFER,\n CREATE_TRANSFER,\n SEARCH_TRANSFER,\n} from \"redux/actions/transfer\";\n\nconst initialState = {\n // isLoggedIn: false,\n // isLoggingIn: false,\n transferCustomers: [],\n updatedTransfer: {},\n\n isCreatingTransfer: false,\n isCreatedTransfer: false,\n createdTransfer: {},\n\n isSearchingTransfer: false,\n isSearchedTransfer: false,\n searchTransfers: [],\n errorMsg: \"\",\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case GET_TRANSFER_CUSTOMERS.REQUEST:\n return {\n ...state,\n // isLoggedIn: false,\n // isLoggingIn: true\n transferCustomers: [],\n };\n\n case GET_TRANSFER_CUSTOMERS.SUCCESS:\n return {\n ...state,\n // isLoggedIn: true,\n // isLoggingIn: false,\n transferCustomers: action.result,\n };\n\n case GET_TRANSFER_CUSTOMERS.FAIL:\n // console.log('hung LOGIN.FAIL, action:', action.result?.errorMessage?.response?.data?.error);\n return {\n ...state,\n // isLoggedIn: false,\n // isLoggingIn: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n case UPDATE_TRANSFER.REQUEST:\n return {\n ...state,\n // isLoggedIn: false,\n // isLoggingIn: true\n updatedTransfer: {},\n };\n\n case UPDATE_TRANSFER.SUCCESS:\n return {\n ...state,\n // isLoggedIn: true,\n // isLoggingIn: false,\n updatedTransfer: action.result,\n };\n\n case UPDATE_TRANSFER.FAIL:\n return {\n ...state,\n // isLoggedIn: false,\n // isLoggingIn: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case CREATE_TRANSFER.REQUEST:\n return {\n ...state,\n isCreatingTransfer: true,\n isCreatedTransfer: false,\n createdTransfer: {},\n };\n\n case CREATE_TRANSFER.SUCCESS:\n return {\n ...state,\n isCreatingTransfer: false,\n isCreatedTransfer: true,\n createdTransfer: action.result,\n };\n\n case CREATE_TRANSFER.FAIL:\n return {\n ...state,\n isCreatingTransfer: false,\n isCreatedTransfer: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case SEARCH_TRANSFER.REQUEST:\n return {\n ...state,\n isSearchingTransfer: true,\n isSearchedTransfer: false,\n searchTransfers: [],\n };\n\n case SEARCH_TRANSFER.SUCCESS:\n return {\n ...state,\n isSearchingTransfer: false,\n isSearchedTransfer: true,\n searchTransfers: action.result,\n };\n\n case SEARCH_TRANSFER.FAIL:\n return {\n ...state,\n isSearchingTransfer: false,\n isSearchedTransfer: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n default:\n return state;\n }\n}\n","import {\n GET_SETTING,\n GET_LATEST_MARKET_PRICE,\n GET_TAX_RATE,\n UPDATE_SETTING,\n GET_INFORMATION,\n GET_LATEST_UPDATE_TRANSACTION,\n INSERT_INFORMATION,\n GET_MAKERS,\n} from \"redux/actions/general\";\nimport { INFORMATION_TYPE } from \"../../utils/Constant\";\n\nconst initialState = {\n setting: {},\n errorMsg: \"\",\n latestMarketPrice: {},\n taxRate: {},\n isGettingSetting: false,\n isGotSetting: false,\n\n isUpdatingSetting: false,\n isUpdatedSetting: false,\n updatedSetting: {},\n\n isGettingInformationList: false,\n isGotInformationList: false,\n todayInformationList: [],\n officeInformationList: [],\n\n latestUpdatedTransactionList: [],\n\n isInsertingformation: false,\n isInsertedformation: false,\n insertedInformation: {},\n makerList: [],\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case GET_SETTING.REQUEST:\n return {\n ...state,\n isGettingSetting: true,\n isGotSetting: false,\n };\n\n case GET_SETTING.SUCCESS:\n return {\n ...state,\n isGettingSetting: false,\n isGotSetting: true,\n setting: action.result,\n };\n\n case GET_SETTING.FAIL:\n return {\n ...state,\n isGettingSetting: false,\n isGotSetting: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case GET_LATEST_MARKET_PRICE.REQUEST:\n return {\n ...state,\n setting: {},\n };\n\n case GET_LATEST_MARKET_PRICE.SUCCESS:\n return {\n ...state,\n // isLoggedIn: true,\n // isLoggingIn: false,\n setting: action.result,\n };\n\n case GET_LATEST_MARKET_PRICE.FAIL:\n return {\n ...state,\n // isLoggedIn: false,\n // isLoggingIn: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case GET_TAX_RATE.REQUEST:\n return {\n ...state,\n taxRate: {},\n };\n\n case GET_TAX_RATE.SUCCESS:\n return {\n ...state,\n taxRate: action.result,\n };\n\n case GET_TAX_RATE.FAIL:\n return {\n ...state,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case UPDATE_SETTING.REQUEST:\n return {\n ...state,\n updatedSetting: {},\n };\n\n case UPDATE_SETTING.SUCCESS:\n return {\n ...state,\n updatedSetting: action.result,\n };\n\n case UPDATE_SETTING.FAIL:\n return {\n ...state,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case GET_INFORMATION.REQUEST:\n return {\n ...state,\n isGettingInformationList: true,\n isGotInformationList: false,\n };\n\n case GET_INFORMATION.SUCCESS:\n const resultList = action.result;\n if (resultList !== undefined && resultList.length > 0) {\n if (resultList[0].type === INFORMATION_TYPE.TODAY) {\n return {\n ...state,\n isGettingInformationList: false,\n isGotInformationList: true,\n todayInformationList: resultList,\n };\n } else {\n return {\n ...state,\n isGettingInformationList: false,\n isGotInformationList: true,\n officeInformationList: resultList,\n };\n }\n } else {\n return {\n ...state,\n isGettingInformationList: false,\n isGotInformationList: true,\n };\n }\n\n case GET_INFORMATION.FAIL:\n return {\n ...state,\n isGettingInformationList: false,\n isGotInformationList: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case GET_LATEST_UPDATE_TRANSACTION.REQUEST:\n return {\n ...state,\n };\n\n case GET_LATEST_UPDATE_TRANSACTION.SUCCESS:\n return {\n ...state,\n latestUpdatedTransactionList: action.result,\n };\n\n case GET_LATEST_UPDATE_TRANSACTION.FAIL:\n return {\n ...state,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case INSERT_INFORMATION.REQUEST:\n return {\n ...state,\n isInsertingformation: true,\n isInsertedformation: false,\n };\n\n case INSERT_INFORMATION.SUCCESS:\n return {\n ...state,\n isInsertingformation: false,\n isInsertedformation: true,\n insertedInformation: action.result,\n };\n\n case INSERT_INFORMATION.FAIL:\n return {\n ...state,\n isInsertingformation: false,\n isInsertedformation: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case GET_MAKERS.REQUEST:\n return {\n ...state,\n makerList: [],\n };\n\n case GET_MAKERS.SUCCESS:\n // makerList.push({\n // id: -1, name: \"all\"\n // })\n const a = [\n ...action.result.slice(0, 0),\n { id: -1, name: \"すべて\" },\n ...action.result.slice(0),\n ];\n return {\n ...state,\n makerList: a,\n };\n\n case GET_MAKERS.FAIL:\n return {\n ...state,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n default:\n return state;\n }\n}\n","import {\n UPDATE_CUSTOMER_ESTIMATE,\n GET_LAST_ESTIMATE,\n INSERT_PRODUCTS_TO_ESTIMATE,\n GET_ESTIMATE,\n UPDATE_ESTIMATE,\n CREATE_NEW_ESTIMATE,\n DELETE_ESTIMATE_DETAIL,\n ESTIMATE_UPLOAD_PDF,\n ESTIMATE_GENERATE_PDF,\n DELETE_ESTIMATE,\n ESTIMATE_SCROLL_Y_OFFSET,\n COPY_ESTIMATE,\n} from \"../actions/estimate\";\n\nconst initialState = {\n // transferCustomers: [],\n errorMsg: \"\",\n isUpdatingCustomerEstimate: false,\n isUpdatedCustomerEstimate: false,\n updatedCustomerEstimate: {},\n\n isGettingLastEstimate: false,\n isGotLastEstimate: false,\n lastEstimate: {},\n\n isGettingEstimate: false,\n isGotEstimate: false,\n estimate: {},\n\n isUpdatingEstimate: false,\n isUpdatedEstimate: false,\n updatedEstimate: {},\n\n isCreatingNewEstimate: false,\n isCreatedNewEstimate: false,\n newEstimate: {},\n\n isDeletingEstimateDetail: false,\n isDeletedEstimateDetail: false,\n estimateWhichDeletedEstimateDetail: {},\n\n isInsertingProductToEstimate: false,\n isInsertedProductToEstimate: false,\n\n isUploadingEstimatePdf: false,\n isUploadedEstimatePdf: false,\n estimateWhichUploadPdf: {},\n\n isGeneratingPdf: false,\n isGeneratedPdf: false,\n generatedPdfUrl: {},\n\n isDeletingEstimate: false,\n isDeletedEstimate: false,\n estimateScrollYOffset: 0,\n\n isCopyingEstimate: false,\n isCopiedEstimate: false,\n copiedEstimate: {},\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case UPDATE_CUSTOMER_ESTIMATE.REQUEST:\n return {\n ...state,\n isUpdatingCustomerEstimate: true,\n isUpdatedCustomerEstimate: false,\n };\n\n case UPDATE_CUSTOMER_ESTIMATE.SUCCESS:\n return {\n ...state,\n isUpdatingCustomerEstimate: false,\n isUpdatedCustomerEstimate: true,\n updatedCustomerEstimate: action.result,\n };\n\n case UPDATE_CUSTOMER_ESTIMATE.FAIL:\n return {\n ...state,\n isUpdatingCustomerEstimate: false,\n isUpdatedCustomerEstimate: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case GET_LAST_ESTIMATE.REQUEST:\n return {\n ...state,\n isGettingLastEstimate: true,\n isGotLastEstimate: false,\n lastEstimate: {},\n };\n\n case GET_LAST_ESTIMATE.SUCCESS:\n return {\n ...state,\n isGettingLastEstimate: false,\n isGotLastEstimate: true,\n lastEstimate: action.result,\n };\n\n case GET_LAST_ESTIMATE.FAIL:\n return {\n ...state,\n isGettingLastEstimate: false,\n isGotLastEstimate: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case INSERT_PRODUCTS_TO_ESTIMATE.REQUEST:\n return {\n ...state,\n isInsertingProductToEstimate: true,\n isInsertedProductToEstimate: false,\n };\n\n case INSERT_PRODUCTS_TO_ESTIMATE.SUCCESS:\n return {\n ...state,\n isInsertingProductToEstimate: false,\n isInsertedProductToEstimate: true,\n };\n\n case INSERT_PRODUCTS_TO_ESTIMATE.FAIL:\n return {\n ...state,\n isInsertingProductToEstimate: false,\n isInsertedProductToEstimate: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case GET_ESTIMATE.REQUEST:\n return {\n ...state,\n isGettingEstimate: true,\n isGotEstimate: false,\n estimate: {},\n };\n\n case GET_ESTIMATE.SUCCESS:\n return {\n ...state,\n isGettingEstimate: false,\n isGotEstimate: true,\n estimate: action.result,\n };\n\n case GET_ESTIMATE.FAIL:\n return {\n ...state,\n isGettingEstimate: false,\n isGotEstimate: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case UPDATE_ESTIMATE.REQUEST:\n return {\n ...state,\n isUpdatingEstimate: true,\n isUpdatedEstimate: false,\n updatedEstimate: {},\n };\n\n case UPDATE_ESTIMATE.SUCCESS:\n return {\n ...state,\n isUpdatingEstimate: false,\n isUpdatedEstimate: true,\n updatedEstimate: action.result,\n };\n\n case UPDATE_ESTIMATE.FAIL:\n return {\n ...state,\n isUpdatingEstimate: false,\n isUpdatedEstimate: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case CREATE_NEW_ESTIMATE.REQUEST:\n return {\n ...state,\n isCreatingNewEstimate: true,\n isCreatedNewEstimate: false,\n newEstimate: {},\n };\n\n case CREATE_NEW_ESTIMATE.SUCCESS:\n return {\n ...state,\n isCreatingNewEstimate: false,\n isCreatedNewEstimate: true,\n newEstimate: action.result,\n };\n\n case CREATE_NEW_ESTIMATE.FAIL:\n return {\n ...state,\n isCreatingNewEstimate: false,\n isCreatedNewEstimate: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case DELETE_ESTIMATE_DETAIL.REQUEST:\n return {\n ...state,\n isDeletingEstimateDetail: true,\n isDeletedEstimateDetail: false,\n estimateWhichDeletedEstimateDetail: {},\n };\n\n case DELETE_ESTIMATE_DETAIL.SUCCESS:\n return {\n ...state,\n isDeletingEstimateDetail: false,\n isDeletedEstimateDetail: true,\n estimateWhichDeletedEstimateDetail: action.result,\n };\n\n case DELETE_ESTIMATE_DETAIL.FAIL:\n return {\n ...state,\n isDeletingEstimateDetail: false,\n isDeletedEstimateDetail: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case ESTIMATE_UPLOAD_PDF.REQUEST:\n return {\n ...state,\n isUploadingEstimatePdf: true,\n isUploadedEstimatePdf: false,\n };\n\n case ESTIMATE_UPLOAD_PDF.SUCCESS:\n return {\n ...state,\n isUploadingEstimatePdf: false,\n isUploadedEstimatePdf: true,\n estimateWhichUploadPdf: action.result,\n };\n\n case ESTIMATE_UPLOAD_PDF.FAIL:\n return {\n ...state,\n isUploadingEstimatePdf: false,\n isUploadedEstimatePdf: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case ESTIMATE_GENERATE_PDF.REQUEST:\n return {\n ...state,\n isGeneratingPdf: true,\n isGeneratedPdf: false,\n generatedPdfUrl: \"\",\n };\n\n case ESTIMATE_GENERATE_PDF.SUCCESS:\n return {\n ...state,\n isGeneratingPdf: false,\n isGeneratedPdf: true,\n generatedPdfUrl: action.result,\n };\n\n case ESTIMATE_GENERATE_PDF.FAIL:\n return {\n ...state,\n isGeneratingPdf: false,\n isGeneratedPdf: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case DELETE_ESTIMATE.REQUEST:\n return {\n ...state,\n isDeletingEstimate: true,\n isDeletedEstimate: false,\n generatedPdfUrl: \"\",\n };\n\n case DELETE_ESTIMATE.SUCCESS:\n return {\n ...state,\n isDeletingEstimate: false,\n isDeletedEstimate: true,\n };\n\n case DELETE_ESTIMATE.FAIL:\n return {\n ...state,\n isDeletingEstimate: false,\n isDeletedEstimate: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case ESTIMATE_SCROLL_Y_OFFSET:\n console.log(\"hung action.params?.y_offset:\", action.params?.y_offset);\n return {\n ...state,\n estimateScrollYOffset: action.params?.y_offset,\n };\n\n case COPY_ESTIMATE.REQUEST:\n return {\n ...state,\n isCopyingEstimate: true,\n isCopiedEstimate: false,\n };\n\n case COPY_ESTIMATE.SUCCESS:\n return {\n ...state,\n isCopyingEstimate: false,\n isCopiedEstimate: true,\n copiedEstimate: action.result,\n };\n\n case COPY_ESTIMATE.FAIL:\n return {\n ...state,\n isCopyingEstimate: false,\n isCopiedEstimate: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n default:\n return state;\n }\n}\n","import {\n GET_CUSTOMERS,\n SEARCH_CUSTOMERS,\n SEARCH_CUSTOMER_TRANSFER,\n GET_CUSTOMER_TRANSFER,\n} from \"redux/actions/customer\";\n\nconst initialState = {\n isSearchingCustomer: false,\n isSearchCustomerFinish: false,\n searchCustomerResults: [],\n\n errorMsg: \"\",\n customerTransferList: [],\n\n isGettingCustomerTransfer: false,\n isGotCustomerTransfer: false,\n customerTransfer: {},\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case GET_CUSTOMERS.REQUEST:\n return {\n ...state,\n };\n\n case GET_CUSTOMERS.SUCCESS:\n return {\n ...state,\n // isLoggedIn: true,\n // isLoggingIn: false,\n // latestMarketPrice: action.result,\n };\n\n case GET_CUSTOMERS.FAIL:\n return {\n ...state,\n // isLoggedIn: false,\n // isLoggingIn: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case SEARCH_CUSTOMERS.REQUEST:\n return {\n ...state,\n isSearchingCustomer: true,\n isSearchCustomerFinish: false,\n searchCustomerResults: [],\n };\n\n case SEARCH_CUSTOMERS.SUCCESS:\n return {\n ...state,\n isSearchingCustomer: false,\n isSearchCustomerFinish: true,\n searchCustomerResults: action.result,\n };\n\n case SEARCH_CUSTOMERS.FAIL:\n return {\n ...state,\n isSearchingCustomer: false,\n isSearchCustomerFinish: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case SEARCH_CUSTOMER_TRANSFER.REQUEST:\n return {\n ...state,\n customerTransferList: [],\n };\n\n case SEARCH_CUSTOMER_TRANSFER.SUCCESS:\n return {\n ...state,\n customerTransferList: action.result,\n };\n\n case SEARCH_CUSTOMER_TRANSFER.FAIL:\n return {\n ...state,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case GET_CUSTOMER_TRANSFER.REQUEST:\n return {\n ...state,\n isGettingCustomerTransfer: true,\n isGotCustomerTransfer: false,\n customerTransfer: {},\n };\n\n case GET_CUSTOMER_TRANSFER.SUCCESS:\n return {\n ...state,\n isGettingCustomerTransfer: false,\n isGotCustomerTransfer: true,\n customerTransfer: action.result,\n };\n\n case GET_CUSTOMER_TRANSFER.FAIL:\n return {\n ...state,\n isGettingCustomerTransfer: false,\n isGotCustomerTransfer: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n default:\n return state;\n }\n}\n","import {\n GET_ACCOUNT_CART,\n GET_STATUS_MANAGEMENT,\n SEARCH_ACCOUNT_VOUCHER,\n} from \"redux/actions/account\";\n\nconst initialState = {\n // isLoggedIn: false,\n // isLoggingIn: false,\n // account: {},\n // errorMsg: \"\",\n // isLoggingOut: false,\n // isLoggedOut: false,\n accountCart: {},\n statusManagementList: [],\n\n isSearchingAccountVoucher: false,\n isSearchedAccountVoucher: false,\n searchAccountVoucherList: [],\n};\n\nexport default function (state = initialState, action) {\n switch (action.type) {\n case GET_ACCOUNT_CART.REQUEST:\n return {\n ...state,\n // isLoggedIn: false,\n // isLoggingIn: true,\n };\n\n case GET_ACCOUNT_CART.SUCCESS:\n return {\n ...state,\n // isLoggedIn: true,\n // isLoggingIn: false,\n accountCart: action.result,\n };\n\n case GET_ACCOUNT_CART.FAIL:\n return {\n ...state,\n // isLoggedIn: false,\n // isLoggingIn: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n case GET_STATUS_MANAGEMENT.REQUEST:\n return {\n ...state,\n };\n\n case GET_STATUS_MANAGEMENT.SUCCESS:\n return {\n ...state,\n statusManagementList: action.result,\n };\n\n case GET_STATUS_MANAGEMENT.FAIL:\n return {\n ...state,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n case SEARCH_ACCOUNT_VOUCHER.REQUEST:\n return {\n ...state,\n isSearchingAccountVoucher: true,\n isSearchedAccountVoucher: false,\n };\n\n case SEARCH_ACCOUNT_VOUCHER.SUCCESS:\n return {\n ...state,\n isSearchingAccountVoucher: false,\n isSearchedAccountVoucher: true,\n searchAccountVoucherList: action.result,\n };\n\n case SEARCH_ACCOUNT_VOUCHER.FAIL:\n return {\n ...state,\n isSearchingAccountVoucher: false,\n isSearchedAccountVoucher: false,\n errorMsg: action.result?.errorMessage?.response?.data?.error,\n };\n\n default:\n return state;\n }\n}\n","import { combineReducers } from \"redux\";\nimport auth from \"./auth\";\nimport home from \"./home\";\nimport invoice from \"./invoice\";\nimport product from \"./product\";\nimport transfer from \"./transfer\";\nimport general from \"./general\";\nimport estimate from \"./estimate\";\nimport customer from \"./customer\";\nimport account from \"./account\";\n\nexport default combineReducers({\n auth,\n home,\n invoice,\n product,\n transfer,\n general,\n estimate,\n customer,\n account,\n});\n","import axios from 'axios';\nimport {setAxiosDefaultHeaders} from \"../../configs/axiosDebugger\";\nimport store from \"../store\";\n\n\nexport const replaceParams = (apiURL, params) => {\n let _result = apiURL;\n if (typeof params === 'object') {\n Object.keys(params).forEach(key => {\n _result = _result.replace(`{${key}}`, params[key]);\n });\n }\n return _result;\n};\n\n\nexport function axiosGet(URL, config = {}) {\n const { isLoggedIn, account } = store.getState().auth;\n if (isLoggedIn) {\n const { token, uuid } = account;\n setAxiosDefaultHeaders({\n token,\n uuid,\n });\n } else {\n setAxiosDefaultHeaders({\n token: '',\n uuid: '',\n });\n }\n return axios\n .get(URL, config)\n .then(response => {\n const { data } = response;\n if (response.status === 200) {\n return {\n success: true,\n data\n };\n }\n return {\n success: false,\n resp_status: response.status,\n data\n };\n })\n .catch(error => ({\n success: false,\n errorMessage: error.response\n }));\n}\n\nexport function axiosDelete(URL, config = {}) {\n return axios\n .delete(URL, config)\n .then(response => {\n const { data } = response;\n if (response.status === 200) {\n return {\n success: true,\n data\n };\n }\n return {\n success: false,\n resp_status: response.status,\n data\n };\n })\n .catch(error => ({\n success: false,\n errorMessage: error.response\n }));\n}\nexport function axiosPost(URL, post, config = {}) {\n const { isLoggedIn, account } = store.getState().auth;\n if (isLoggedIn) {\n const { token, uuid } = account;\n setAxiosDefaultHeaders({\n token,\n uuid,\n });\n } else {\n setAxiosDefaultHeaders({\n token: '',\n uuid: '',\n });\n }\n console.log('oki post', config);\n config.withCredentials = true;\n config.credentials = 'include';\n console.log(URL, post, config);\n return axios\n .post(URL, post, config)\n .then(response => {\n const { data } = response;\n if (response.status === 200 || response.status === 201) {\n return {\n success: true,\n data\n };\n }\n return {\n success: false,\n resp_status: response.status,\n data\n };\n })\n .catch(error => ({\n success: false,\n errorMessage: error\n }));\n}\n","import { GET_LAST_INVOICE } from \"../redux/actions/invoice\";\n\nconst API_ROOT = process.env.REACT_APP_API_URL;\nconsole.log(\"hung process.env.NODE_ENV: \", process.env.NODE_ENV);\nexport const API = {\n AUTH: {\n LOGIN: API_ROOT + \"accounts/login/\",\n },\n ACCOUNT: {\n GET_ACCOUNT_CART: API_ROOT + \"accounts/get_account_cart/\",\n GET_STATUS_MANAGEMENT:\n API_ROOT + \"accounts/get_status_management/?filter_type={filter_type}\",\n SEARCH_ACCOUNT_VOUCHER:\n API_ROOT +\n \"accounts/search_account_voucher/?type={type}&customer_name={customer_name}&from_date={from_date}&to_date={to_date}\",\n },\n HOME: {\n GET_METAL_MARKET_PRICE: API_ROOT + \"home/get_metal_market_price/\",\n RESET_CART: API_ROOT + \"home/reset_cart/?type={type}\",\n CHECK_CART: API_ROOT + \"home/check_cart/\",\n CREATE_NEW_INVOICE: API_ROOT + \"home/create_new_invoice/\",\n GET_MARKET_PRICE_DATA:\n API_ROOT + \"home/get_market_price/?days_ago={days_ago}\",\n GET_AVERAGE_MARKET_PRICE: API_ROOT + \"home/get_average_market_price/\",\n },\n INVOICE: {\n // GET_TRANSFER_CUSTOMERS: API_ROOT + \"invoices/get_transfer_customers/\",\n UPDATE_CUSTOMER: API_ROOT + \"invoices/update_customer/\",\n GET_LAST_INVOICE:\n API_ROOT + \"invoices/get_last_invoice/?customer_id={customer_id}\",\n INSERT_PRODUCTS_TO_INVOICE:\n API_ROOT + \"invoices/insert_products_to_invoice/\",\n GET_INVOICE: API_ROOT + \"invoices/get_invoice/?invoice_id={invoice_id}\",\n UPDATE_INVOICE: API_ROOT + \"invoices/update/\",\n // GET_TWO_LAST_INVOICE:\n // API_ROOT +\n // \"invoices/get_two_last_invoice/?customer_id={customer_id}&product_id={product_id}\",\n GET_OTHER_INVOICE:\n API_ROOT + \"invoices/get_other_invoice/?product_id={product_id}\",\n DELETE_INVOICE_DETAIL: API_ROOT + \"invoices/delete_invoice_detail/\",\n CREATE_NEW_INVOICE: API_ROOT + \"invoices/create_new_invoice/\",\n SEARCH_PERFORMANCE:\n API_ROOT +\n \"invoices/search_performances/?customer_name={customer_name}&product_name={product_name}&maker_name={maker_name}&from_date={from_date}&to_date={to_date}&page={page}\",\n UPLOAD_PDF: API_ROOT + \"invoices/upload_pdf/\",\n CREATE_TRANSFER_INVOICE: API_ROOT + \"invoices/create_transfer_invoice/\",\n SEARCH_PRODUCT_IN_INVOICE_DETAIL:\n API_ROOT +\n \"invoices/search_product_in_invoice_detail/?product_name={product_name}\",\n GENERATE_PDF: API_ROOT + \"invoices/generate_pdf/\",\n },\n PRODUCT: {\n SEARCH_PRODUCTS:\n API_ROOT +\n \"products/search_products/?search_name={search_name}&search_code={search_code}\",\n\n UPDATE_PRODUCT: API_ROOT + \"products/update/\",\n SEARCH_PRODUCT_CATALOG:\n API_ROOT +\n \"products/search_product_catalog/?product_name={product_name}&maker_name={maker_name}&page={page}\",\n GET_PRODUCT_CATALOG_DETAIL:\n API_ROOT +\n \"products/get_product_catalog/?product_id={product_id}&customer_id={customer_id}\",\n },\n TRANSFER: {\n GET_TRANSFER_CUSTOMERS:\n API_ROOT +\n \"transfers/get_transfer_customers/?customer_id={customer_id}&customer_name={customer_name}\",\n\n UPDATE_TRANSFER: API_ROOT + \"transfers/update/\",\n CREATE_TRANSFER: API_ROOT + \"transfers/create/\",\n SEARCH_TRANSFER:\n API_ROOT +\n \"transfers/search/?customer_id={customer_id}&transfer_id={transfer_id}\",\n },\n GENERAL: {\n GET_SETTING: API_ROOT + \"generals/get_setting/\",\n UPDATE_SETTING: API_ROOT + \"generals/update_setting/\",\n GET_LATEST_MARKET_PRICE: API_ROOT + \"generals/get_latest_market_price/\",\n GET_TAX_RATE: API_ROOT + \"generals/get_tax/\",\n GET_INFORMATION: API_ROOT + \"generals/information/?type={type}\",\n GET_LATEST_UPDATE_TRANSACTION:\n API_ROOT + \"generals/get_latest_update_transaction/\",\n INSERT_INFORMATION: API_ROOT + \"generals/information/\",\n GET_MAKERS: API_ROOT + \"generals/get_makers/\",\n },\n ESTIMATE: {\n UPDATE_CUSTOMER: API_ROOT + \"estimates/update_customer/\",\n GET_LAST_ESTIMATE:\n API_ROOT + \"estimates/get_last_estimate/?customer_id={customer_id}\",\n INSERT_PRODUCTS_TO_ESTIMATE:\n API_ROOT + \"estimates/insert_products_to_estimate/\",\n GET_ESTIMATE:\n API_ROOT + \"estimates/get_estimate/?estimate_id={estimate_id}\",\n UPDATE_ESTIMATE: API_ROOT + \"estimates/update/\",\n CREATE_NEW_ESTIMATE: API_ROOT + \"estimates/create_new_estimate/\",\n DELETE_ESTIMATE_DETAIL: API_ROOT + \"estimates/delete_estimate_detail/\",\n UPLOAD_PDF: API_ROOT + \"estimates/upload_pdf/\",\n GENERATE_PDF: API_ROOT + \"estimates/generate_pdf/\",\n DELETE_ESTIMATE: API_ROOT + \"estimates/delete_estimate/\",\n COPY_ESTIMATE: API_ROOT + \"estimates/copy_estimate/\",\n },\n CUSTOMER: {\n SEARCH_CUSTOMERS: API_ROOT + \"customers/search/?name={name}\",\n SEARCH_CUSTOMER_TRANSFER:\n API_ROOT +\n \"customers/search_customer_transfer/?customer_name={customer_name}\",\n GET_CUSTOMER_TRANSFER:\n API_ROOT + \"customers/get_customer_transfer/?customer_id={customer_id}\",\n },\n PERFORMANCE: {\n GET_LATEST:\n API_ROOT + \"invoices/get_performances/?customer_name={customer_name}\",\n },\n};\n","\n import axios from \"axios\";\n\nimport { takeEvery, put } from 'redux-saga/effects';\nimport {LOGIN} from '../actions/auth';\nimport { axiosGet, axiosPost } from './utils';\nimport {API} from '../../configs/api';\n\n\nfunction* login(obj) {\n const { params = {} } = obj;\n const result = yield axiosPost(API.AUTH.LOGIN, params);\n console.log('in login generator');\n if (result.success) {\n console.log('success ', result);\n yield put({\n type: LOGIN.SUCCESS,\n result: result.data.data // model account\n });\n } else {\n console.log('fail ', result);\n yield put({\n type: LOGIN.FAIL,\n result\n });\n }\n}\n\n\nexport default function*() {\n yield takeEvery(LOGIN.REQUEST, login);\n\n}\n","import { takeEvery, put } from \"redux-saga/effects\";\nimport {\n GET_METAL_MARKET_PRICE,\n RESET_CART,\n CHECK_CART,\n CREATE_NEW_INVOICE,\n GET_MARKET_PRICE_DATA,\n GET_AVERAGE_MARKET_PRICE,\n} from \"../actions/home\";\nimport { axiosGet, axiosPost, replaceParams } from \"./utils\";\nimport { API } from \"../../configs/api\";\n\nfunction* getMetalMarketPrice(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(API.HOME.GET_METAL_MARKET_PRICE, params);\n if (result.success) {\n yield put({\n type: GET_METAL_MARKET_PRICE.SUCCESS,\n result: result.data.data, // model account\n });\n } else {\n yield put({\n type: GET_METAL_MARKET_PRICE.FAIL,\n result,\n });\n }\n}\n\nfunction* reset_cart(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(replaceParams(API.HOME.RESET_CART, params));\n if (result.success) {\n yield put({\n type: RESET_CART.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: RESET_CART.FAIL,\n result,\n });\n }\n}\n\nfunction* checkCart(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(API.HOME.CHECK_CART, params);\n if (result.success) {\n yield put({\n type: CHECK_CART.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: CHECK_CART.FAIL,\n result,\n });\n }\n}\n\nfunction* createNewInvoice(obj) {\n const { params = {} } = obj;\n const result = yield axiosPost(API.INVOICE.CREATE_NEW_INVOICE, params);\n if (result.success) {\n yield put({\n type: CREATE_NEW_INVOICE.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: CREATE_NEW_INVOICE.FAIL,\n result,\n });\n }\n}\n\nfunction* getMarketPriceData(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(\n replaceParams(API.HOME.GET_MARKET_PRICE_DATA, params)\n );\n if (result.success) {\n yield put({\n type: GET_MARKET_PRICE_DATA.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: GET_MARKET_PRICE_DATA.FAIL,\n result,\n });\n }\n}\n\nfunction* getAverageMarketPrice(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(\n replaceParams(API.HOME.GET_AVERAGE_MARKET_PRICE, params)\n );\n if (result.success) {\n yield put({\n type: GET_AVERAGE_MARKET_PRICE.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: GET_AVERAGE_MARKET_PRICE.FAIL,\n result,\n });\n }\n}\n\nexport default function* () {\n yield takeEvery(GET_METAL_MARKET_PRICE.REQUEST, getMetalMarketPrice);\n yield takeEvery(RESET_CART.REQUEST, reset_cart);\n yield takeEvery(CHECK_CART.REQUEST, checkCart);\n yield takeEvery(CREATE_NEW_INVOICE.REQUEST, createNewInvoice);\n yield takeEvery(GET_MARKET_PRICE_DATA.REQUEST, getMarketPriceData);\n yield takeEvery(GET_AVERAGE_MARKET_PRICE.REQUEST, getAverageMarketPrice);\n}\n","import { takeEvery, put } from \"redux-saga/effects\";\nimport {\n GET_TRANSFER_CUSTOMERS,\n UPDATE_CUSTOMER,\n GET_LAST_INVOICE,\n INSERT_PRODUCTS_TO_INVOICE,\n GET_INVOICE,\n UPDATE_INVOICE,\n // GET_TWO_LAST_INVOICE,\n GET_OTHER_INVOICE,\n DELETE_INVOICE_DETAIL,\n SEARCH_PAST_PERFORMANCE,\n INVOICE_UPLOAD_PDF,\n CREATE_TRANSFER_INVOICE,\n SEARCH_PRODUCT_IN_INVOICE_DETAIL,\n INVOICE_GENERATE_PDF,\n} from \"../actions/invoice\";\nimport { axiosGet, axiosPost, replaceParams } from \"./utils\";\nimport { API } from \"../../configs/api\";\n\nfunction* updateCustomer(obj) {\n const { params = {} } = obj;\n const result = yield axiosPost(API.INVOICE.UPDATE_CUSTOMER, params);\n if (result.success) {\n yield put({\n type: UPDATE_CUSTOMER.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: UPDATE_CUSTOMER.FAIL,\n result,\n });\n }\n}\n\nfunction* getLastInvoice(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(\n replaceParams(API.INVOICE.GET_LAST_INVOICE, params)\n );\n if (result.success) {\n yield put({\n type: GET_LAST_INVOICE.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: GET_LAST_INVOICE.FAIL,\n result,\n });\n }\n}\n\nfunction* insertProductsToInvoice(obj) {\n const { params = {} } = obj;\n const result = yield axiosPost(\n API.INVOICE.INSERT_PRODUCTS_TO_INVOICE,\n params\n );\n\n if (result.success) {\n yield put({\n type: INSERT_PRODUCTS_TO_INVOICE.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: INSERT_PRODUCTS_TO_INVOICE.FAIL,\n result,\n });\n }\n}\n\nfunction* getInvoice(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(replaceParams(API.INVOICE.GET_INVOICE, params));\n if (result.success) {\n yield put({\n type: GET_INVOICE.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: GET_INVOICE.FAIL,\n result,\n });\n }\n}\n\nfunction* updateInvoice(obj) {\n const { params = {} } = obj;\n const result = yield axiosPost(API.INVOICE.UPDATE_INVOICE, params);\n if (result.success) {\n yield put({\n type: UPDATE_INVOICE.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: UPDATE_INVOICE.FAIL,\n result,\n });\n }\n}\n\nfunction* getOtherInvoice(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(\n replaceParams(API.INVOICE.GET_OTHER_INVOICE, params)\n );\n if (result.success) {\n yield put({\n type: GET_OTHER_INVOICE.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: GET_OTHER_INVOICE.FAIL,\n result,\n });\n }\n}\n\nfunction* deleteInvoiceDetail(obj) {\n const { params = {} } = obj;\n const result = yield axiosPost(API.INVOICE.DELETE_INVOICE_DETAIL, params);\n if (result.success) {\n yield put({\n type: DELETE_INVOICE_DETAIL.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: DELETE_INVOICE_DETAIL.FAIL,\n result,\n });\n }\n}\n\nfunction* searchPastPerformance(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(\n replaceParams(API.INVOICE.SEARCH_PERFORMANCE, params)\n );\n if (result.success) {\n yield put({\n type: SEARCH_PAST_PERFORMANCE.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: SEARCH_PAST_PERFORMANCE.FAIL,\n result,\n });\n }\n}\n\nfunction* uploadPdf(obj) {\n const { params = {} } = obj;\n const formData = new FormData();\n formData.append(\"files\", params.files, params.file_name);\n formData.append(\"invoice_id\", params.invoice_id);\n const result = yield axiosPost(API.INVOICE.UPLOAD_PDF, formData);\n if (result.success) {\n yield put({\n type: INVOICE_UPLOAD_PDF.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: INVOICE_UPLOAD_PDF.FAIL,\n result,\n });\n }\n}\n\nfunction* createTransferInvoice(obj) {\n const { params = {} } = obj;\n const result = yield axiosPost(API.INVOICE.CREATE_TRANSFER_INVOICE, params);\n if (result.success) {\n yield put({\n type: CREATE_TRANSFER_INVOICE.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: CREATE_TRANSFER_INVOICE.FAIL,\n result,\n });\n }\n}\n\nfunction* searchProductInInvoiceDetail(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(\n replaceParams(API.INVOICE.SEARCH_PRODUCT_IN_INVOICE_DETAIL, params)\n );\n if (result.success) {\n yield put({\n type: SEARCH_PRODUCT_IN_INVOICE_DETAIL.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: SEARCH_PRODUCT_IN_INVOICE_DETAIL.FAIL,\n result,\n });\n }\n}\n\nfunction* generatePdf(obj) {\n const { params = {} } = obj;\n const result = yield axiosPost(API.INVOICE.GENERATE_PDF, params);\n\n if (result.success) {\n yield put({\n type: INVOICE_GENERATE_PDF.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: INVOICE_GENERATE_PDF.FAIL,\n result,\n });\n }\n}\n\nexport default function* () {\n // yield takeEvery(GET_TRANSFER_CUSTOMERS.REQUEST, getTransferCustomers);\n yield takeEvery(UPDATE_CUSTOMER.REQUEST, updateCustomer);\n yield takeEvery(GET_LAST_INVOICE.REQUEST, getLastInvoice);\n yield takeEvery(INSERT_PRODUCTS_TO_INVOICE.REQUEST, insertProductsToInvoice);\n yield takeEvery(GET_INVOICE.REQUEST, getInvoice);\n yield takeEvery(UPDATE_INVOICE.REQUEST, updateInvoice);\n // yield takeEvery(GET_TWO_LAST_INVOICE.REQUEST, getTwoLastInvoice);\n yield takeEvery(GET_OTHER_INVOICE.REQUEST, getOtherInvoice);\n yield takeEvery(DELETE_INVOICE_DETAIL.REQUEST, deleteInvoiceDetail);\n yield takeEvery(SEARCH_PAST_PERFORMANCE.REQUEST, searchPastPerformance);\n yield takeEvery(INVOICE_UPLOAD_PDF.REQUEST, uploadPdf);\n yield takeEvery(CREATE_TRANSFER_INVOICE.REQUEST, createTransferInvoice);\n yield takeEvery(\n SEARCH_PRODUCT_IN_INVOICE_DETAIL.REQUEST,\n searchProductInInvoiceDetail\n );\n yield takeEvery(INVOICE_GENERATE_PDF.REQUEST, generatePdf);\n}\n","import axios from \"axios\";\n\nimport { takeEvery, put } from \"redux-saga/effects\";\nimport {\n SEARCH_PRODUCTS,\n UPDATE_PRODUCT,\n SEARCH_PRODUCT_CATALOG,\n GET_PRODUCT_CATALOG_DETAIL,\n} from \"../actions/product\";\nimport { axiosGet, axiosPost, replaceParams } from \"./utils\";\nimport { API } from \"../../configs/api\";\n\nfunction* searchProducts(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(\n replaceParams(API.PRODUCT.SEARCH_PRODUCTS, params)\n );\n if (result.success) {\n yield put({\n type: SEARCH_PRODUCTS.SUCCESS,\n result: result.data.data, // model account\n });\n } else {\n yield put({\n type: SEARCH_PRODUCTS.FAIL,\n result,\n });\n }\n}\n\nfunction* updateProduct(obj) {\n const { params = {} } = obj;\n const result = yield axiosPost(API.PRODUCT.UPDATE_PRODUCT, params);\n if (result.success) {\n yield put({\n type: UPDATE_PRODUCT.SUCCESS,\n result: result.data.data, // model account\n });\n } else {\n yield put({\n type: UPDATE_PRODUCT.FAIL,\n result,\n });\n }\n}\n\nfunction* searchProductCatalog(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(\n replaceParams(API.PRODUCT.SEARCH_PRODUCT_CATALOG, params)\n );\n if (result.success) {\n yield put({\n type: SEARCH_PRODUCT_CATALOG.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: SEARCH_PRODUCT_CATALOG.FAIL,\n result,\n });\n }\n}\n\nfunction* getProductCatalogDetail(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(\n replaceParams(API.PRODUCT.GET_PRODUCT_CATALOG_DETAIL, params)\n );\n if (result.success) {\n yield put({\n type: GET_PRODUCT_CATALOG_DETAIL.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: GET_PRODUCT_CATALOG_DETAIL.FAIL,\n result,\n });\n }\n}\n\nexport default function* () {\n yield takeEvery(SEARCH_PRODUCTS.REQUEST, searchProducts);\n yield takeEvery(UPDATE_PRODUCT.REQUEST, updateProduct);\n yield takeEvery(SEARCH_PRODUCT_CATALOG.REQUEST, searchProductCatalog);\n yield takeEvery(GET_PRODUCT_CATALOG_DETAIL.REQUEST, getProductCatalogDetail);\n}\n","import axios from \"axios\";\n\nimport { takeEvery, put } from \"redux-saga/effects\";\nimport { GET_TRANSFER_CUSTOMERS, UPDATE_TRANSFER, CREATE_TRANSFER, SEARCH_TRANSFER } from \"../actions/transfer\";\nimport { axiosGet, axiosPost, replaceParams } from \"./utils\";\nimport { API } from \"../../configs/api\";\n\nfunction* getTransferCustomers(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(\n replaceParams(API.TRANSFER.GET_TRANSFER_CUSTOMERS, params)\n );\n if (result.success) {\n yield put({\n type: GET_TRANSFER_CUSTOMERS.SUCCESS,\n result: result.data.data, // model account\n });\n } else {\n yield put({\n type: GET_TRANSFER_CUSTOMERS.FAIL,\n result,\n });\n }\n}\n\nfunction* updateTransfer(obj) {\n const { params = {} } = obj;\n const result = yield axiosPost(API.TRANSFER.UPDATE_TRANSFER, params);\n if (result.success) {\n yield put({\n type: UPDATE_TRANSFER.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: UPDATE_TRANSFER.FAIL,\n result,\n });\n }\n}\n\n\nfunction* createTransfer(obj) {\n const { params = {} } = obj;\n const result = yield axiosPost(API.TRANSFER.CREATE_TRANSFER, params);\n if (result.success) {\n yield put({\n type: CREATE_TRANSFER.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: CREATE_TRANSFER.FAIL,\n result,\n });\n }\n}\n\n\n\nfunction* searchTransfer(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(replaceParams(API.TRANSFER.SEARCH_TRANSFER, params));\n if (result.success) {\n yield put({\n type: SEARCH_TRANSFER.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: SEARCH_TRANSFER.FAIL,\n result,\n });\n }\n}\n\n\nexport default function* () {\n yield takeEvery(GET_TRANSFER_CUSTOMERS.REQUEST, getTransferCustomers);\n yield takeEvery(UPDATE_TRANSFER.REQUEST, updateTransfer);\n yield takeEvery(CREATE_TRANSFER.REQUEST, createTransfer);\n yield takeEvery(SEARCH_TRANSFER.REQUEST, searchTransfer);\n}\n","import axios from \"axios\";\n\nimport { takeEvery, put } from \"redux-saga/effects\";\nimport {\n GET_SETTING,\n GET_LATEST_MARKET_PRICE,\n GET_TAX_RATE,\n UPDATE_SETTING,\n GET_INFORMATION,\n GET_LATEST_UPDATE_TRANSACTION,\n INSERT_INFORMATION,\n GET_MAKERS,\n} from \"../actions/general\";\nimport { axiosGet, axiosPost, replaceParams } from \"./utils\";\nimport { API } from \"../../configs/api\";\n\nfunction* getSetting(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(API.GENERAL.GET_SETTING, params);\n if (result.success) {\n yield put({\n type: GET_SETTING.SUCCESS,\n result: result.data.data, // model account\n });\n } else {\n yield put({\n type: GET_SETTING.FAIL,\n result,\n });\n }\n}\n\nfunction* updateSetting(obj) {\n const { params = {} } = obj;\n const result = yield axiosPost(API.GENERAL.UPDATE_SETTING, params);\n if (result.success) {\n yield put({\n type: UPDATE_SETTING.SUCCESS,\n result: result.data.data, // model account\n });\n } else {\n yield put({\n type: UPDATE_SETTING.FAIL,\n result,\n });\n }\n}\n\nfunction* getLatestMarketPrice(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(API.GENERAL.GET_LATEST_MARKET_PRICE, params);\n if (result.success) {\n yield put({\n type: GET_LATEST_MARKET_PRICE.SUCCESS,\n result: result.data.data, // model account\n });\n } else {\n yield put({\n type: GET_LATEST_MARKET_PRICE.FAIL,\n result,\n });\n }\n}\n\nfunction* getTaxRate(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(API.GENERAL.GET_TAX_RATE, params);\n if (result.success) {\n yield put({\n type: GET_TAX_RATE.SUCCESS,\n result: result.data.data, // model account\n });\n } else {\n yield put({\n type: GET_TAX_RATE.FAIL,\n result,\n });\n }\n}\n\nfunction* getInformation(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(\n replaceParams(API.GENERAL.GET_INFORMATION, params)\n );\n if (result.success) {\n yield put({\n type: GET_INFORMATION.SUCCESS,\n result: result.data.data, // model account\n });\n } else {\n yield put({\n type: GET_INFORMATION.FAIL,\n result,\n });\n }\n}\n\nfunction* getLatestUpdateTransaction(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(\n replaceParams(API.GENERAL.GET_LATEST_UPDATE_TRANSACTION, params)\n );\n if (result.success) {\n yield put({\n type: GET_LATEST_UPDATE_TRANSACTION.SUCCESS,\n result: result.data.data, // model account\n });\n } else {\n yield put({\n type: GET_LATEST_UPDATE_TRANSACTION.FAIL,\n result,\n });\n }\n}\n\nfunction* insertInformation(obj) {\n const { params = {} } = obj;\n const result = yield axiosPost(API.GENERAL.INSERT_INFORMATION, params);\n if (result.success) {\n yield put({\n type: INSERT_INFORMATION.SUCCESS,\n result: result.data.data, // model account\n });\n } else {\n yield put({\n type: INSERT_INFORMATION.FAIL,\n result,\n });\n }\n}\n\nfunction* getMakers(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(replaceParams(API.GENERAL.GET_MAKERS, params));\n if (result.success) {\n yield put({\n type: GET_MAKERS.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: GET_MAKERS.FAIL,\n result,\n });\n }\n}\n\nexport default function* () {\n yield takeEvery(GET_SETTING.REQUEST, getSetting);\n yield takeEvery(GET_LATEST_MARKET_PRICE.REQUEST, getLatestMarketPrice);\n yield takeEvery(GET_TAX_RATE.REQUEST, getTaxRate);\n yield takeEvery(UPDATE_SETTING.REQUEST, updateSetting);\n yield takeEvery(GET_INFORMATION.REQUEST, getInformation);\n yield takeEvery(\n GET_LATEST_UPDATE_TRANSACTION.REQUEST,\n getLatestUpdateTransaction\n );\n yield takeEvery(INSERT_INFORMATION.REQUEST, insertInformation);\n yield takeEvery(GET_MAKERS.REQUEST, getMakers);\n}\n","import { takeEvery, put } from \"redux-saga/effects\";\nimport {\n UPDATE_CUSTOMER_ESTIMATE,\n GET_LAST_ESTIMATE,\n INSERT_PRODUCTS_TO_ESTIMATE,\n GET_ESTIMATE,\n UPDATE_ESTIMATE,\n CREATE_NEW_ESTIMATE,\n DELETE_ESTIMATE_DETAIL,\n ESTIMATE_UPLOAD_PDF,\n ESTIMATE_GENERATE_PDF,\n DELETE_ESTIMATE,\n COPY_ESTIMATE,\n} from \"../actions/estimate\";\nimport { axiosGet, axiosPost, replaceParams } from \"./utils\";\nimport { API } from \"../../configs/api\";\n\nfunction* updateCustomer(obj) {\n const { params = {} } = obj;\n const result = yield axiosPost(API.ESTIMATE.UPDATE_CUSTOMER, params);\n if (result.success) {\n yield put({\n type: UPDATE_CUSTOMER_ESTIMATE.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: UPDATE_CUSTOMER_ESTIMATE.FAIL,\n result,\n });\n }\n}\n\nfunction* getLastEstimate(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(\n replaceParams(API.ESTIMATE.GET_LAST_ESTIMATE, params)\n );\n if (result.success) {\n yield put({\n type: GET_LAST_ESTIMATE.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: GET_LAST_ESTIMATE.FAIL,\n result,\n });\n }\n}\n\nfunction* insertProductsToEstimate(obj) {\n const { params = {} } = obj;\n const result = yield axiosPost(\n API.ESTIMATE.INSERT_PRODUCTS_TO_ESTIMATE,\n params\n );\n if (result.success) {\n yield put({\n type: INSERT_PRODUCTS_TO_ESTIMATE.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: INSERT_PRODUCTS_TO_ESTIMATE.FAIL,\n result,\n });\n }\n}\n\nfunction* getEstimate(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(\n replaceParams(API.ESTIMATE.GET_ESTIMATE, params)\n );\n if (result.success) {\n yield put({\n type: GET_ESTIMATE.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: GET_ESTIMATE.FAIL,\n result,\n });\n }\n}\n\nfunction* updateEstimate(obj) {\n const { params = {} } = obj;\n const result = yield axiosPost(API.ESTIMATE.UPDATE_ESTIMATE, params);\n if (result.success) {\n yield put({\n type: UPDATE_ESTIMATE.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: UPDATE_ESTIMATE.FAIL,\n result,\n });\n }\n}\n\nfunction* createNewEstimate(obj) {\n const { params = {} } = obj;\n const result = yield axiosPost(API.ESTIMATE.CREATE_NEW_ESTIMATE, params);\n if (result.success) {\n yield put({\n type: CREATE_NEW_ESTIMATE.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: CREATE_NEW_ESTIMATE.FAIL,\n result,\n });\n }\n}\n\nfunction* deleteEstimateDetail(obj) {\n const { params = {} } = obj;\n const result = yield axiosPost(API.ESTIMATE.DELETE_ESTIMATE_DETAIL, params);\n if (result.success) {\n yield put({\n type: DELETE_ESTIMATE_DETAIL.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: DELETE_ESTIMATE_DETAIL.FAIL,\n result,\n });\n }\n}\n\nconst createFormData = (pdf, body) => {\n const data = new FormData();\n data.append(\"file\", {\n name: pdf.filename,\n uri: pdf.uri,\n });\n\n Object.keys(body).forEach((key) => {\n data.append(key, body[key]);\n });\n\n return data;\n};\n\nfunction* uploadPdf(obj) {\n const { params = {} } = obj;\n const formData = new FormData();\n formData.append(\"files\", params.files, params.file_name);\n formData.append(\"estimate_id\", params.estimate_id);\n const result = yield axiosPost(API.ESTIMATE.UPLOAD_PDF, formData);\n\n if (result.success) {\n yield put({\n type: ESTIMATE_UPLOAD_PDF.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: ESTIMATE_UPLOAD_PDF.FAIL,\n result,\n });\n }\n}\n\nfunction* generatePdf(obj) {\n const { params = {} } = obj;\n const result = yield axiosPost(API.ESTIMATE.GENERATE_PDF, params);\n\n if (result.success) {\n yield put({\n type: ESTIMATE_GENERATE_PDF.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: ESTIMATE_GENERATE_PDF.FAIL,\n result,\n });\n }\n}\n\nfunction* deleteEstimate(obj) {\n const { params = {} } = obj;\n const result = yield axiosPost(API.ESTIMATE.DELETE_ESTIMATE, params);\n if (result.success) {\n yield put({\n type: DELETE_ESTIMATE.SUCCESS,\n result: result?.data?.data,\n });\n } else {\n yield put({\n type: DELETE_ESTIMATE.FAIL,\n result,\n });\n }\n}\n\nfunction* copyEstimate(obj) {\n const { params = {} } = obj;\n const result = yield axiosPost(API.ESTIMATE.COPY_ESTIMATE, params);\n if (result.success) {\n yield put({\n type: COPY_ESTIMATE.SUCCESS,\n result: result?.data?.data,\n });\n } else {\n yield put({\n type: COPY_ESTIMATE.FAIL,\n result,\n });\n }\n}\n\nexport default function* () {\n // yield takeEvery(GET_TRANSFER_CUSTOMERS.REQUEST, getTransferCustomers);\n yield takeEvery(UPDATE_CUSTOMER_ESTIMATE.REQUEST, updateCustomer);\n yield takeEvery(GET_LAST_ESTIMATE.REQUEST, getLastEstimate);\n yield takeEvery(\n INSERT_PRODUCTS_TO_ESTIMATE.REQUEST,\n insertProductsToEstimate\n );\n yield takeEvery(GET_ESTIMATE.REQUEST, getEstimate);\n yield takeEvery(UPDATE_ESTIMATE.REQUEST, updateEstimate);\n // yield takeEvery(GET_TWO_LAST_INVOICE.REQUEST, getTwoLastInvoice);\n yield takeEvery(CREATE_NEW_ESTIMATE.REQUEST, createNewEstimate);\n yield takeEvery(DELETE_ESTIMATE_DETAIL.REQUEST, deleteEstimateDetail);\n yield takeEvery(ESTIMATE_UPLOAD_PDF.REQUEST, uploadPdf);\n yield takeEvery(ESTIMATE_GENERATE_PDF.REQUEST, generatePdf);\n yield takeEvery(DELETE_ESTIMATE.REQUEST, deleteEstimate);\n yield takeEvery(COPY_ESTIMATE.REQUEST, copyEstimate);\n}\n","import axios from \"axios\";\n\nimport { takeEvery, put } from \"redux-saga/effects\";\nimport {\n SEARCH_CUSTOMERS,\n SEARCH_CUSTOMER_TRANSFER,\n GET_CUSTOMER_TRANSFER,\n} from \"../actions/customer\";\nimport { axiosGet, axiosPost, replaceParams } from \"./utils\";\nimport { API } from \"../../configs/api\";\n\nfunction* searchCustomers(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(\n replaceParams(API.CUSTOMER.SEARCH_CUSTOMERS, params)\n );\n if (result.success) {\n yield put({\n type: SEARCH_CUSTOMERS.SUCCESS,\n result: result.data.data, // model account\n });\n } else {\n yield put({\n type: SEARCH_CUSTOMERS.FAIL,\n result,\n });\n }\n}\n\nfunction* searchCustomerTransfer(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(\n replaceParams(API.CUSTOMER.SEARCH_CUSTOMER_TRANSFER, params)\n );\n if (result.success) {\n yield put({\n type: SEARCH_CUSTOMER_TRANSFER.SUCCESS,\n result: result.data.data, // model account\n });\n } else {\n yield put({\n type: SEARCH_CUSTOMER_TRANSFER.FAIL,\n result,\n });\n }\n}\n\nfunction* getCustomerTransfer(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(\n replaceParams(API.CUSTOMER.GET_CUSTOMER_TRANSFER, params)\n );\n if (result.success) {\n yield put({\n type: GET_CUSTOMER_TRANSFER.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: GET_CUSTOMER_TRANSFER.FAIL,\n result,\n });\n }\n}\n\nexport default function* () {\n yield takeEvery(SEARCH_CUSTOMERS.REQUEST, searchCustomers);\n yield takeEvery(SEARCH_CUSTOMER_TRANSFER.REQUEST, searchCustomerTransfer);\n yield takeEvery(GET_CUSTOMER_TRANSFER.REQUEST, getCustomerTransfer);\n}\n","import axios from \"axios\";\n\nimport { takeEvery, put } from \"redux-saga/effects\";\nimport {\n GET_ACCOUNT_CART,\n GET_STATUS_MANAGEMENT,\n SEARCH_ACCOUNT_VOUCHER,\n} from \"../actions/account\";\nimport { axiosGet, axiosPost, replaceParams } from \"./utils\";\nimport { API } from \"../../configs/api\";\n\nfunction* login(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(API.ACCOUNT.GET_ACCOUNT_CART, params);\n\n if (result.success) {\n yield put({\n type: GET_ACCOUNT_CART.SUCCESS,\n result: result.data.data, // model account\n });\n } else {\n console.log(\"fail \", result);\n yield put({\n type: GET_ACCOUNT_CART.FAIL,\n result,\n });\n }\n}\n\nfunction* getStatusManagement(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(\n replaceParams(API.ACCOUNT.GET_STATUS_MANAGEMENT, params)\n );\n\n if (result.success) {\n yield put({\n type: GET_STATUS_MANAGEMENT.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: GET_STATUS_MANAGEMENT.FAIL,\n result,\n });\n }\n}\n\nfunction* searchAccountVoucher(obj) {\n const { params = {} } = obj;\n const result = yield axiosGet(\n replaceParams(API.ACCOUNT.SEARCH_ACCOUNT_VOUCHER, params)\n );\n\n if (result.success) {\n yield put({\n type: SEARCH_ACCOUNT_VOUCHER.SUCCESS,\n result: result.data.data,\n });\n } else {\n yield put({\n type: SEARCH_ACCOUNT_VOUCHER.FAIL,\n result,\n });\n }\n}\n\nexport default function* () {\n yield takeEvery(GET_ACCOUNT_CART.REQUEST, login);\n yield takeEvery(GET_STATUS_MANAGEMENT.REQUEST, getStatusManagement);\n yield takeEvery(SEARCH_ACCOUNT_VOUCHER.REQUEST, searchAccountVoucher);\n}\n","import { all, call, spawn } from \"redux-saga/effects\";\n\nimport watchAuth from \"./auth\";\nimport watchHome from \"./home\";\nimport watchInvoice from \"./invoice\";\nimport watchProduct from \"./product\";\nimport watchTransfer from \"./transfer\";\nimport watchGeneral from \"./general\";\nimport watchEstimate from \"./estimate\";\nimport watchCustomer from \"./customer\";\nimport watchAccount from \"./account\";\n\nexport default function* sagas() {\n const sagas = [\n watchAuth,\n watchHome,\n watchInvoice,\n watchProduct,\n watchTransfer,\n watchGeneral,\n watchEstimate,\n watchCustomer,\n watchAccount,\n ];\n\n yield all(\n sagas.map((saga) =>\n spawn(function* () {\n while (true) {\n try {\n yield call(saga);\n break;\n } catch (e) {\n console.log(e);\n }\n }\n })\n )\n );\n}\n","\n\n\nimport { createStore ,applyMiddleware} from \"redux\";\nimport { persistStore, persistReducer } from 'redux-persist'\nimport storage from 'redux-persist/lib/storage' // defaults to localStorage for web\nimport createSagaMiddleware from \"redux-saga\";\nimport rootReducer from \"./reducers\";\nimport mySaga from './sagas'\nimport axiosDebugger ,{setAxiosDefaultHeaders} from '../configs/axiosDebugger';\n\n\nconst sagaMiddleware = createSagaMiddleware()\n\nconst persistConfig = {\n key: 'root',\n storage,\n whitelist: ['auth']\n}\n\nconst persistedReducer = persistReducer(persistConfig, rootReducer)\n\n// let store = createStore(persistedReducer)\n// let persistor = persistStore(store);\n// export default createStore(persistedReducer,applyMiddleware(sagaMiddleware));\n\n// export default () => {\n// let store = createStore(persistedReducer,applyMiddleware(sagaMiddleware))\n// let persistor = persistStore(store)\n// return {store,persistor}\n// }\nlet rehydrationComplete;\n\nexport function rehydration() {\n return new Promise((resolve, reject) => {\n rehydrationComplete = resolve;\n });\n}\n\nconst store = createStore(persistedReducer,applyMiddleware(sagaMiddleware));\nexport default store\nexport const persistor = persistStore(store, {}, ()=>{\n if (rehydrationComplete)\n rehydrationComplete();\n const { isLoggedIn, account } = store.getState().auth;\n if (isLoggedIn) {\n const { token, uuid } = account;\n setAxiosDefaultHeaders({\n token,\n uuid,\n });\n } else {\n setAxiosDefaultHeaders({\n token: '',\n uuid: '',\n });\n }\n});\n\n\n sagaMiddleware.run(mySaga)","import React, { useEffect, useState } from \"react\";\nimport { View, Dimensions, StyleSheet, ScrollView } from \"react-native\";\nimport {\n BrowserRouter as Router,\n Switch,\n Route,\n Redirect,\n} from \"react-router-dom\";\n\nimport { Header } from \"components\";\nimport BottomTab from \"components/navigation/BottomTab\";\nimport { bottomIcons } from \"assets/icons\";\n\nimport Home from \"containers/home\";\nimport Notice from \"containers/notice\";\nimport Catalog from \"containers/catalog\";\nimport Performance from \"containers/performance\";\nimport TransferRequest from \"containers/transfer-request\";\nimport PastNotice from \"containers/past-notice\";\nimport Account from \"containers/account\";\nimport PurchaseSupplier from \"containers/purchase-supplier\";\nimport QuotationSupplier from \"containers/quotation-supplier\";\nimport PastDividers from \"containers/past-dividers\";\nimport EstimateReview from \"containers/past-dividers/estimate-review\";\nimport InvoiceReview from \"containers/past-dividers/invoice-review\";\n\nimport Cart from \"containers/cart\";\nimport BuyReview from \"containers/buy-review\";\nimport PartitionReview from \"containers/partition-review\";\nimport QuotationReview from \"containers/quotation-review\";\nimport QuotationComplete from \"containers/quotation-review/QuotationComplete\";\nimport Purchase from \"containers/purchase\";\nimport PastPerformance from \"containers/past-performance\";\nimport TransferList from \"containers/transfer-request/List\";\nimport Transfered from \"containers/transfer-request/Transfered\";\nimport UserAuth from \"containers/auth\";\nimport Settings from \"containers/settings\";\nimport Analysis from \"containers/settings/Analysis\";\nimport CartProductDetail from \"containers/cart/ProductDetail\";\nimport CartPreview from \"containers/cart/Preview\";\nimport ProductInfo from \"containers/catalog/ProductInfo\";\nimport Estimate from \"containers/estimate\";\nimport QuoteList from \"containers/quotation-list\";\nimport QuoteProductDetail from \"containers/quotation-list/ProductDetail\";\n\nimport AdminAuth from \"containers/admin/auth\";\nimport AdminNotice from \"containers/admin/notice\";\nimport AdminCreateNotice from \"containers/admin/notice/Create\";\nimport store, { rehydration } from \"../redux/store\";\nimport { useHistory, useLocation } from \"react-router-dom\";\n\nimport { ACCOUNT_LOGIN_AUTH } from \"../utils/Constant\";\n\nexport default function Navigation() {\n const [height, setHeight] = useState(Dimensions.get(\"window\").height);\n\n useEffect(() => {\n Dimensions.addEventListener(\"change\", ({ window }) => {\n setHeight(window.height);\n });\n }, []);\n\n return (\n <Router basename={\"/mobile/bas/\"}>\n <View style={{ height }}>\n <Header />\n <View style={{ flex: 1 }}>\n <Switch>\n <PrivateRouter exact path=\"/\">\n <Home />\n </PrivateRouter>\n <Route exact path=\"/login\">\n <UserAuth />\n </Route>\n <Route exact path=\"/admin/login\">\n <AdminAuth />\n </Route>\n\n <Route path=\"/notice\">\n <Notice />\n </Route>\n <Route path=\"/catalog\">\n <Catalog />\n </Route>\n <Route path=\"/performance\">\n <Performance />\n </Route>\n <Route path=\"/past-performance\">\n <PastPerformance />\n </Route>\n <Route exact path=\"/transfer-request\">\n <TransferRequest />\n </Route>\n\n <Route path=\"/transfer-request/list\">\n <TransferList />\n </Route>\n <Route path=\"/transfer-request/transfered\">\n <Transfered />\n </Route>\n <Route path=\"/cart/detail\">\n <CartProductDetail />\n </Route>\n <Route path=\"/cart\">\n <Cart />\n </Route>\n <Route path=\"/cart-preview\">\n <CartPreview />\n </Route>\n <Route path=\"/past-notice\">\n <PastNotice />\n </Route>\n <Route path=\"/account\">\n <Account />\n </Route>\n <Route path=\"/purchase-supplier\">\n <PurchaseSupplier />\n </Route>\n <Route path=\"/quotation-supplier\">\n <QuotationSupplier />\n </Route>\n <Route path=\"/buy-review\">\n <BuyReview />\n </Route>\n <Route path=\"/past-dividers\">\n <PastDividers />\n </Route>\n <Route path=\"/estimate-review\">\n <EstimateReview />\n </Route>\n <Route path=\"/invoice-review\">\n <InvoiceReview />\n </Route>\n\n <Route path=\"/partition-review\">\n <PartitionReview />\n </Route>\n <Route path=\"/quotation-review\">\n <QuotationReview />\n </Route>\n <Route path=\"/quotation-complete\">\n <QuotationComplete />\n </Route>\n <Route path=\"/purchase\">\n <Purchase />\n </Route>\n <Route path=\"/product-info\">\n <ProductInfo />\n </Route>\n <Route path=\"/estimate\">\n <Estimate />\n </Route>\n <Route path=\"/quotation-list/detail\">\n <QuoteProductDetail />\n </Route>\n <Route path=\"/quotation-list\">\n <QuoteList />\n </Route>\n\n <Route path=\"/admin/estimate\">\n <Estimate />\n </Route>\n <Route path=\"/admin/purchase\">\n <Purchase />\n </Route>\n <Route path=\"/admin/quotation-review\">\n <QuotationReview />\n </Route>\n <Route path=\"/admin/partition-review\">\n <PartitionReview />\n </Route>\n <Route path=\"/admin/past-dividers\">\n <PastDividers />\n </Route>\n <Route path=\"/admin/estimate-review\">\n <EstimateReview />\n </Route>\n <Route path=\"/admin/invoice-review\">\n <InvoiceReview />\n </Route>\n\n <Route path=\"/admin/buy-review\">\n <BuyReview />\n </Route>\n <Route path=\"/admin/notice/create\">\n <AdminCreateNotice />\n </Route>\n <Route path=\"/admin/notice\">\n <Notice />\n </Route>\n <Route path=\"/admin/catalog\">\n <Catalog />\n </Route>\n <Route path=\"/admin/performance\">\n <Performance />\n </Route>\n <Route path=\"/admin/past-performance\">\n <PastPerformance />\n </Route>\n <Route exact path=\"/admin/transfer-request\">\n <TransferRequest />\n </Route>\n <Route path=\"/admin/transfer-request/list\">\n <TransferList />\n </Route>\n <Route path=\"/admin/transfer-request/transfered\">\n <Transfered />\n </Route>\n <Route path=\"/admin/cart/detail\">\n <CartProductDetail />\n </Route>\n <Route path=\"/admin/cart\">\n <Cart />\n </Route>\n <Route path=\"/admin/cart-preview\">\n <CartPreview />\n </Route>\n <Route path=\"/admin/past-notice\">\n <PastNotice />\n </Route>\n <Route path=\"/admin/account\">\n <Account />\n </Route>\n <Route path=\"/admin/purchase-supplier\">\n <PurchaseSupplier />\n </Route>\n <Route path=\"/admin/quotation-supplier\">\n <QuotationSupplier />\n </Route>\n <Route path=\"/admin/quotation-complete\">\n <QuotationComplete />\n </Route>\n <Route path=\"/admin/settings/analysis\">\n <Analysis />\n </Route>\n <Route path=\"/admin/settings\">\n <Settings />\n </Route>\n <Route path=\"/admin/product-info\">\n <ProductInfo />\n </Route>\n <Route path=\"/admin/quotation-list/detail\">\n <QuoteProductDetail />\n </Route>\n <Route path=\"/admin/quotation-list\">\n <QuoteList />\n </Route>\n <PrivateRouter exact path=\"/admin\">\n <Home />\n </PrivateRouter>\n </Switch>\n </View>\n <BottomTab />\n </View>\n </Router>\n );\n}\n\nconst getAuth = (location) => {\n const { isLoggedIn, account } = store.getState().auth;\n const isAdmin = /^\\/admin/.test(location.pathname);\n if (isLoggedIn) {\n return isAdmin\n ? account.login_auth === ACCOUNT_LOGIN_AUTH.MOBILE_MANAGER\n : account.login_auth === ACCOUNT_LOGIN_AUTH.MOBILE;\n } else {\n return false;\n }\n};\n\nfunction PrivateRouter({ children, ...rest }) {\n const location = useLocation();\n const isAdmin = /^\\/admin/.test(location.pathname);\n\n return (\n <Route\n {...rest}\n render={({ location }) =>\n getAuth(location) ? (\n children\n ) : (\n <Redirect\n to={{\n pathname: isAdmin ? \"/admin/login\" : \"/login\",\n state: { from: location },\n }}\n />\n )\n }\n />\n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { View, StyleSheet, Text } from \"react-native\";\n// import Text from 'components/Text';\nimport { TextView, Button, Block } from \"components\";\nimport Modal from \"modal-enhanced-react-native-web\";\nimport TextButton from \"./Button\";\nimport { Colors } from \"../../utils\";\n\nclass Alert extends React.Component {\n state = {\n title: \"\",\n description: \"\",\n buttons: [],\n show: false,\n styleButtons: [] || {},\n styleDescription: {},\n };\n\n alert = (title, description, buttons, styleButtons, styleDescription) => {\n this.setState({\n title,\n description,\n buttons,\n show: true,\n styleButtons,\n styleDescription,\n });\n };\n\n renderContent = () => {\n const { description, title } = this.state;\n console.log(\"hung styleDescription:\", this.state.styleDescription);\n return (\n <>\n <Text style={styles.title}>{title}</Text>\n <View style={[styles.descriptionWrap]}>\n {React.isValidElement(description) ? (\n description\n ) : (\n <Text style={[styles.description, this.state.styleDescription]}>\n {description}\n </Text>\n )}\n </View>\n </>\n );\n };\n\n renderButtons = () => {\n return (\n <View\n key={this.state.title}\n style={[\n styles.flexRow,\n {\n justifyContent:\n this.state.buttons.length == 1 ? \"center\" : \"space-between\",\n },\n this.state.styleButtons,\n ]}\n >\n {this.state.buttons.map((item, index) => {\n return (\n <Button\n key={`item_${index}`}\n onPress={item.onPress}\n paddingVertical=\"5pt\"\n paddingHorizontal=\"15pt\"\n color={Colors.SecondPrimary}\n borderRadius=\"3pt\"\n >\n <TextView size=\"9pt\" bold color={Colors.White}>\n {item.label}\n </TextView>\n </Button>\n );\n })}\n </View>\n );\n };\n\n hideModal = () => {\n this.setState({ show: false });\n };\n\n showModal = () => {\n this.setState({ show: true });\n };\n\n render() {\n const { buttons, show } = this.state;\n return (\n <Modal animationIn={\"zoomIn\"} animationOut={\"zoomOut\"} isVisible={show}>\n <Block\n width=\"100%\"\n color=\"white\"\n borderWidth=\"1pt\"\n borderColor={Colors.Primary}\n borderRadius=\"5pt\"\n padding=\"5pt\"\n >\n <View\n style={[\n styles.wrap,\n { paddingBottom: 0 },\n this.state.styleDescription,\n ]}\n >\n {this.renderContent()}\n </View>\n <View style={[styles.wrap, { paddingTop: 0, alignItems: \"stretch\" }]}>\n {!!buttons?.length && this.renderButtons()}\n </View>\n </Block>\n </Modal>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n wrap: {\n padding: 20,\n alignItems: \"center\",\n backgroundColor: \"white\",\n },\n title: {\n fontWeight: \"bold\",\n fontSize: 20,\n },\n descriptionWrap: {\n minHeight: 78,\n paddingVertical: 10,\n },\n description: {\n textAlign: \"center\",\n fontSize: 18,\n },\n flexRow: {\n flexDirection: \"row\",\n },\n});\n\nexport default Alert;\n","// import * as React from 'react';\n// import Navigation from 'navigation';\n//\n// export default function App() {\n// return <Navigation />;\n// }\n\nimport React, { Component } from \"react\";\nimport {\n View,\n Text,\n StyleSheet,\n TextInput,\n TouchableOpacity,\n ScrollView,\n} from \"react-native\";\nimport Navigation from \"navigation\";\nimport { Provider } from \"react-redux\";\nimport store, { persistor } from \"redux/store\";\nimport axiosDebugger, { setAxiosDefaultHeaders } from \"configs/axiosDebugger\";\nimport { PersistGate } from \"redux-persist/integration/react\";\n\nimport { default as Alert_ } from \"components/common/Alert\";\nimport ErrorPage from \"containers/error-page\";\nimport DeviceOrientation, { Orientation } from \"react-screen-orientation\";\nimport {\n BrowserRouter as Router,\n Switch,\n Route,\n Redirect,\n} from \"react-router-dom\";\n\nlet Alert = null;\n\nexport default class App extends Component {\n constructor(props) {\n super(props);\n // const { isLoggedIn } = store.getState().auth;\n\n axiosDebugger();\n // setAxiosDefaultHeaders({})\n }\n\n // checkSubDomain() {\n // let host = window.location.host;\n // let protocol = window.location.protocol;\n // let parts = host.split(\".\");\n // let subdomain = \"\";\n // // If we get more than 3 parts, then we have a subdomain\n // // INFO: This could be 4, if you have a co.uk TLD or something like that.\n // console.log(\"hung parts:\", parts);\n // if (parts.length >= 2) {\n // subdomain = parts[0];\n // // Remove the subdomain from the parts list\n // parts.splice(0, 1);\n // // Set the location to the new url\n // // window.location = protocol + \"//\" + parts.join(\".\") + \"/\" + subdomain;\n // return true;\n // } else {\n // return false;\n // }\n // }\n\n render() {\n return (\n // <Router>\n // <Route exact path=\"/\">\n // {this.checkSubDomain() ? (\n // <Redirect to={\"/mobile/bas/\"}></Redirect>\n // ) : (\n // <ErrorPage />\n // )}\n // </Route>\n // <Route path=\"/\">\n // <DeviceOrientation\n // lockOrientation={\"portrait\"}\n // onOrientationChange={() => {}}\n // >\n // <Orientation orientation=\"portrait\" alwaysRender={false}>\n // <Provider store={store}>\n // <PersistGate loading={null} persistor={persistor}>\n // <Navigation />\n // <Alert_\n // ref={(ref) => {\n // Alert = ref;\n // }}\n // />\n // </PersistGate>\n // </Provider>\n // </Orientation>\n // <Orientation orientation=\"portrait\">\n // <Text>Please rotate your device</Text>\n // </Orientation>\n // </DeviceOrientation>\n // </Route>\n // </Router>\n <DeviceOrientation\n lockOrientation={\"portrait\"}\n onOrientationChange={() => {}}\n >\n <Orientation orientation=\"portrait\" alwaysRender={false}>\n <Provider store={store}>\n <PersistGate loading={null} persistor={persistor}>\n <Navigation />\n <Alert_\n ref={(ref) => {\n Alert = ref;\n }}\n />\n </PersistGate>\n </Provider>\n </Orientation>\n <Orientation orientation=\"portrait\">\n <Text>Please rotate your device</Text>\n </Orientation>\n </DeviceOrientation>\n );\n }\n}\n\nexport { Alert };\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport \"./index.css\";\nimport App from \"./App\";\nimport * as serviceWorker from \"./serviceWorker\";\nimport {\n BrowserRouter as Router,\n Switch,\n Route,\n Redirect,\n} from \"react-router-dom\";\n\nReactDOM.render(\n <Router>\n <Route exact path=\"/\">\n <Redirect to={\"/mobile/bas/\"}></Redirect>\n </Route>\n <React.StrictMode>\n <App />\n </React.StrictMode>\n </Router>,\n // <React.StrictMode>\n // <App />\n // </React.StrictMode>,\n document.getElementById(\"root\")\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}