{"version":3,"sources":["api/useApiRes.js","api/PostData.js","api/index.js","components/Settings/Billing/ThumpsUpp.js","components/Settings/Billing/index.js","components/Spinner/Spinner.module.css","components/Spinner/Spinner.js","components/common/Inputs/PhoneNumber/CountryCodes.js","components/common/Inputs/PhoneNumber/PhoneNumber.js","AppContext.js","assets/no-image-icon-6.png","components/common/Functions.js","components/Password/Forgot.js","components/Footer/Footer.js","components/Header/CountDown.js","components/Header/PaymentModal.js","components/common/SearchDrpDown.js","components/common/Tab/tab.js","api/data.js","components/Header/EmailSender.js","components/Header/WhatsAppSender.js","components/Header/Header.js","components/Home/assets/img/hero-img.png","components/Home/assets/img/bg_hero_1.svg","components/Login/Login.js","Route.js","components/Home/Home.js","components/common/Loader.js","assets/sidebar/jss/Typography.js","assets/sidebar/jss/Theme-variable.js","components/Sidebar/NavItems.js","components/Sidebar/data.js","assets/sidebar/images/backgrounds/admin.jpg","components/Sidebar/Profile.js","components/Sidebar/Distribution.js","components/Sidebar/Sidebar.js","NotPaid.js","AdminRoute.js","index.js"],"names":["lastFetchTimeMap","Map","useApiRes","api","options","refresh","location","useLocation","data","setData","useState","error","setError","network","setNetwork","navigator","onLine","visible","setVisible","context","setContext","useContext","AppContext","FETCH_INTERVAL","useRef","current","manageCache","useCallback","async","cacheNames","caches","keys","now","Date","cacheName","cache","open","request","timestamp","URL","url","searchParams","get","parseInt","delete","err","console","addDataIntoCache","response","Response","JSON","stringify","window","timestampedUrl","set","toString","startsWith","put","getCachedData","cachedResponse","match","ok","json","fetchData","abortController","retries","arguments","length","undefined","prevContext","fetching","fetch","signal","Error","includes","errors","name","log","concat","cachedData","useEffect","controller","AbortController","lastFetchTime","updateData","abort","handleVisibilityChange","document","visibilityState","addEventListener","removeEventListener","handleOnlineStatus","loading","useAsyncSubmit","successFns","errorFns","setLoading","submitted","setSubmitted","success","setSuccess","result","setResult","token","encryptSession","getItem","values","parse","localStorage","setTimeout","handleAsyncSubmit","apiURL","requestBody","bypass","VendorLocationID","headers","Authorization","method","body","Message","toast","forEach","fn","useVendorID","VendorID","Main_URL","Funguo","EncryptStorage","encAlgorithm","storageType","ParentID","UserID","UserLogin","successFn","errorFn","asyncSubmit","PhoneNumber","email","Password","password","handleFormSubmit","ResetTwoFactoAuthentication","userID","twoFA","addedBy","GetPassCode","phone","Headers","Accept","phoneNumber","ResetPassword","resetCode","PassCode","NewPassword","UserLoginCustomer","UserCustomerRegistration","customerID","CustomerID","countryCode","firstName","lastName","userImage","GetNozzleReadingType","readingtype","GetLocations","locations","GetTank","LocationID","tank","mutate","gettank","AddVendorTank","ProductID","TankName","TankCapacity","AddedBy","TankParentID","UpdateVendorTank","TankID","RemoveVendorTank","GetDipReading","reading","GetNozzle","PumpID","nozzle","GetVendorLocationNozzle","GetNozzleReading","DateRange","start","moment","format","end","GetShiftNozzleReading","ShiftClockNO","readings","AddDipReading","ShiftClockNo","TankParentArray","dip","AddSingleDipReading","shiftClockNO","shiftRefNO","ShiftRefNO","vendorID","vendorLocationID","clockDate","ClockDate","tankParentArray","UpdateSecondDipReading","parentDipNO","ParentDipNO","tankDipArray","dipNO","DipNO","secondReading","NewReading","DeleteDipReading","tankParentID","GetPump","pump","AddVendorPump","PumpName","UpdateVendorPump","RemoveVendorPump","GetProduct","ProductCategoryID","product","GetClockProduct","ClockNO","GetCustomer","customer","AddVendorProduct","productName","ProductName","uom","productImageID","base64","buyingTax","TaxRate","IsStockItem","sellingTax","productCategoryID","productCategoryBrandID","ProductCategoryBrandID","productVolumeSizeID","ProductVolumeSizeID","productCategoryTypeID","ProductCategoryTypeID","GetSalesHistory","sales","GetProductDailySales","GetVendorLocationDailyDIscount","discount","GetDailyDipVariance","variance","GetProductSalesReport","GetInvoiceCustomerSalesHistory","invoice","GetAttendantClockSales","AddVendorClock","clockTypeID","ClockTypeID","userClockArray","UserClockArray","accountBalanceArray","ApproveVendorShift","approvedBy","statusID","ApproveVendorClock","clockNO","AddVendorShift","currentTime","passedDate","dipStatusID","DipStatusID","AddVendorShiftTimeAllowance","timeAdded","TimeAdded","CloseVendorShift","vendorName","VendorName","vendorLocationName","VendorLocationName","shiftType","ShiftType","shiftPDF","ShiftPDF","dipVarianceReason","DipVarianceReason","accountBalances","AccountBalances","contactLists","ContactLists","GetOpenShifts","GetVendorUser","users","GetVendorGeneralSalesTax","TaxDate","salestax","GetVendorWithHoldingTax","wtax","GetVendorGeneralPurchaseTax","ptax","UpdateInvoiceWithholdingTax","saleIDs","Sales","GetVendorClockFreeUser","AddVendorUserRole","userPolicyArray","UserPolicyArray","RemoveVendorUserRole","AddVendorUser","FirstName","CountryCode","LastName","UserTypeID","canSell","CanSell","Email","UserImage","stationsAssignmentArray","StationArray","UpdateVendorUser","RemoveVendorUser","VendorUserID","ResetUserPassword","GetVendorClock","clocks","GetVendorShifts","shifts","GetVendorShiftsAdminACtions","user","actions","GetVendorDailyNozzleReadingSummary","MeterReading","GetVendorDailyShiftSummary","daily","GetVendorShiftsDetails","details","GetUserType","types","GetVendorStorageLocation","stores","AddStorageLocation","storageLocationName","vendorStorageLocationID","productCategories","UpdateVendorStorageLocation","VendorStorageLocationID","RemoveVendorStorageLocation","AddStockMovement","movementTypeID","MovementTypeID","SourceLocationID","DestinationLocationID","TransactionDate","StockNO","MonthlyBalance","StockMovementDetailArray","stocks","AddVendorProductWriteOff","writeOffID","productID","quantity","Quantity","writeOffValue","WriteoffValue","writeOffReason","WriteOffReason","dateAdded","vendoStorageLocationID","AddStockTakeItem","stockNO","previousQuantity","StockDate","stockDate","productPrice","ProductPrice","PurchasePrice","UpdateStockMovement","monthlyBalance","AddStockTransfer","sourceLocationID","shiftID","ShiftID","transferInfo","transferNO","transferDetailArray","DeleteStockTransfer","TransferNO","UpdateStockTakeItem","PreviousQuantity","DateAdded","StockMovementDetailID","GetStockMovement","movement","GetStockMovementDetail","GetStockTransfer","transfer","ReceiveTransfer","stockTransferDetailID","StockTransferDetailID","stockInTankID","StockInTankID","ReceivedQuantity","receivedBy","AddProductPrice","Amount","AddCashCollection","VendorPaymentMethodID","CashDropCollectionID","CollectionNO","CollectedAmount","CollectionTypeID","Comment","UpdateCashDrop","VendorCashDropID","GetCashDrop","drops","GetClockSummary","summary","GetVendorSalesDashboard","GetVendorClockRTT","rtt","ReverseClockRTT","vendorRttID","VendorRTTID","ApproveClockRTT","AddClockRTT","vendorTankParentNozzleID","VendorTankParentNozzleID","shiftNO","ShiftNO","totalAmount","TotalAmount","tankID","rttReason","RTTReason","GetDropCollection","collection","GetClockMpesaAdmin","mpesa","GetPayments","payment","isLoading","GetUnusedPayments","GetParentTanks","parent","CloseClock","varianceReason","VarianceReason","ExpectedAmount","accountedAmount","AccountedAmount","varianceAmount","VarianceAmount","ClockedOutBy","StatusID","ReopenClock","AddPumpNozzle","NozzleName","UpdatePumpNozzle","NozzleID","RemovePumpNozzle","PostVendorCustomer","customerName","CustomerName","customerPhone","CustomerPhone","customerTypeID","CustomerTypeID","CustomerIdentityImageID","customerMail","CustomerMail","kraPin","KraPin","openingBalance","OpeningBalance","creditLimit","CreditLimit","paymentTerms","PaymentTerms","isPrepayCustomer","creditLimitNotification","CreditLimits","isCreditLimitMandatory","IsCreditLimitMandatory","fuelingLocationArray","FuelingLocationArray","customerAssetsArray","CustomerAssetsArray","cardArray","CardArray","usersArray","UsersArray","DeleteCustomer","vendorParentCardGroupName","VendorParentCardGroupName","UpdateCustomer","prevOpeningBalance","PrevOpeningBalance","KRAPin","CreditLimitNotification","isWithholding","IsWithholding","isTemporary","IsTemporary","AddCustomerAssets","AssetName","IsDelivery","IsAssetStation","StationID","RemoveCustomerAssets","assetID","AssetID","AddVendorLocation","NozzleReadingTypeID","ContactPerson","VendorLocationPhone","TradingName","isStockMandatory","isMandatory","Slogan","GetVendorLocationDetails","GetProductCategory","category","GetVendorPaymentMethod","methods","AddVendorSupplierPayment","vendorSupplierID","SupplierID","vendorPaymentMethodID","referenceNO","ReferenceNO","topUpAmount","transactionDate","GetVendorPaymentMethodBalances","AddVendorPaymentMethod","vendorPaymentMethodName","VendorPaymentMethodName","paymentMethodID","PaymentMethodID","holdingLimit","HoldingLimit","isVisibleToAttendant","IsVisibleToAttendant","isHashed","IsHashed","isRecon","IsRecon","UpdateVendorPaymentMethod","RemoveVendorPaymentMethod","AddPumpAssignment","pumpArray","pumpx","GetPumpsByClock","cpumps","ConfirmNozzleReading","OpenNozzleReading","eOpeningReading","EOpeningReading","mOpeningReading","MOpeningReading","cOpeningReading","COpeningReading","CloseNozzleReading","eClosingReading","EClosingReading","mClosingReading","MClosingReading","cClosingReading","CClosingReading","closedBy","ResetDipReading","dipMonth","DipMonth","dipYear","DipYear","AddVendorPurchase","PurchaseNO","VendorSupplierID","OtherCost","Subtotal","InvoiceNO","PurchaseDetailArray","rows","PurchasePaymentArray","payments","UpdateVendorPurchase","_data$DetailArray","vendorPurchaseID","VendorPurchaseID","supplierID","otherCost","DetailArray","reduce","a","b","BuyingTax","invoiceNO","purchaseDetailArray","ReceiveVendorPurchase","ReverseVendorPurchase","purchaseNO","GetDashBoardData","dashboard","GetVolumeSalesPerCategory","salescategory","GetSalesPerCategoryPredictions","predictions","GetDailySalesReport","dsr","AddVendorSupplier","VendorSupplierName","SupplierName","ContactName","ContactPhone","AssetMileage","ContactEmail","supplierLocationArray","GetVendorSupplier","supplier","GetVendorSupplierList","GetVendorDebtors","debtors","GetVendorSupplierStatement","statement","GetVendorSupplierPurchases","purchase","GetVendorSupplierPayments","GetVendorCustomerCreditNote","creditnote","AddVendorCustomerCreditNote","creditNoteID","VendorCustomerID","amount","description","Description","GetVendorCustomerOverdraft","AddVendorCustomerOverdraft","customerOverdraftID","expiryDate","DeleteVendorCustomerOverdraft","CustomerOverdraftID","DeleteVendorSupplierPayment","vendorSupplierTopUpID","VendorSupplierTopUpID","UpdateVendorCustomerCreditNote","CreditNoteID","GetVendorCustomerDebitNote","AddVendorCustomerDebitNote","Reason","DeleteVendorCustomerDebitNote","debitNoteID","DebitNoteID","Decription","GetPurchase","GetProductPerfomance","report","GetFuelStockReport","GetWetStockStockVariance","GetVendorTankParent","dateadded","DateTimeFormat","RerunCummulativeVariance","GetVendorTankByParent","UpdateProduct","ProductImageID","UOM","DeleteVendorProduct","GetVendorProductCategory","GetVendorAllProducts","allProduct","SearchVendorProduct","searchText","suggestion","GetVendorProfile","profile","GetVendorInvoice","GetShiftDipReading","dips","GetCustomerPrePayment","prepayment","GetPrimaryTopupType","AddVendorTopUpType","vendorTopUpTypeName","VendorTopUpTypeName","topUpTypeID","TopUpTypeID","GetVendorTopUpTypes","AddCustomerTopUp","vendorTopUpTypeID","VendorTopUpTypeID","refNO","comment","AddCustomerPrepayment","vendorCustomerID","ReverseCustomerTopUp","vendorTopUpID","VendorTopUpID","AdminReverseCustomerTopUp","vendorCustomerTopUpID","VendorCustomerTopUpID","GetStockLevel","GetVendorLocationStockLevel","StoreID","GetExpense","expense","AddVendorExpense","shiftClockNo","ExpenseAmount","VendorExpenseTypeID","type","UpdateVendorExpense","vendorExpenseID","VendorExpenseID","actionedBy","ReverseVendorSale","SaleID","UpdateDipReading","DipID","UpdateNozzleReading","changeType","GetPaymentMethod","pmethods","GetShiftSUmmary","ShiftDate","GetShiftDetailedReport","ReverseMarkedPayment","id","ID","userClockPaymentTransActionID","reversedBy","transID","TransID","reversedAmount","TransAmount","ApproveExpense","ApprovedAmount","ActionedBy","RejectExpense","DeactivatePayment","ReactivatePayment","ReopenNozzle","ReverseCollection","VendorPaymentCollectionID","ReversedBy","GetPumpAssignment","assignment","GetClockExpense","GetClockDiscount","ActionClockDiscount","saleID","GetClockSales","GetCustomerSales","PostClockSale","isStation","MoreInfo","saleDetailArray","selected","salePaymentArray","receipt","PostClockPoints","vendorCustomerCardID","VendorCustomerCardID","vendorCustomerCardChildID","VendorCustomerCardChildID","pumpImageID","vehicleImageID","UpdateClockSale","_data$SaleDetailArray","_data$SaleDetailArray2","saleOrder","receivedAmount","ReceivedAmount","SaleDetailArray","filter","p","moreInfo","saleOrderInvoice","saleOrderInvoiceID","saleDetails","GetCustomerUsers","GetShiftRefs","date","newDate","ShiftInfoList","GetCustomerPayments","GetCustomerStations","stations","AddCustomerLocation","contactEmail","vendorLocationPhone","DeleteCustomerLocation","vendorCustomerLocationID","VendorCustomerLocationID","GetCustomerDiscount","PostCustomerDiscount","discountAmount","DeactivateCustomerDiscount","customerDiscountID","CustomerDiscountID","GetCustomerStatement","GetCustomerAssets","assets","GetExpenseType","AddExpenseType","VendorExpenseTypeName","ExpenseType","UpdateExpenseType","RemoveExpenseType","GetProductStatment","GetAllProductPurchase","GetCashIn","cashIn","GetCashFlow","Year","cashflow","GetVendorLocationAttendanceVariance","GetVendorAttendanceStatement","GetVendorAttendantVariance","variace","GetVendorAttendantVariancePayment","AddAttendantVariancePayment","vendorAttendantVariancePaymentID","TransDate","amountPaid","ReverseAttendantVariancePayment","VendorAttendantVariancePaymentID","WriteOffAttendantVariance","variences","variances","GetCashOut","cashOut","AddMpesaPayment","_data$CustomerName","TransTime","Transtime","MpesaAmount","accountingFormat","TransactionCost","AccountBalance","trim","AddMpesaBulkPayment","_data$CustomerName2","isClosingBalance","GetIncomestatement","income","GetTransactionMessages","messages","GetPaymentMethodTransactions","trans","AddVendor","vendorClientID","slogan","vendorImageID","stationsArray","StationsArray","MarkMpesaPayment","MarkedPaymentArray","GetVendorPayroll","payroll","AddVendorPayroll","startDate","StartDate","endDate","payrollNO","payrollDetailArray","GetVendorPayrollSalary","salary","AddPayrollSalary","vendorPayrollSalaryID","paymentType","PaymentType","taxRate","idNumber","IDNumber","pinNumber","PinNumber","bankAccount","BankAccount","bankName","BankName","salaryItem","salaryItems","SalaryItems","GetVendorPayrollSalaryItems","AddVendorSalaryItem","SalaryItem","itemType","ItemType","GetVendorOpenTankNozzle","opennozzle","GetAccountTransfer","transfers","GetVendorShiftAccountRecon","recon","GetAccountStatement","AddAccountTransfer","accountTransferID","creditAccountID","CreditAccountID","debitAccountID","DebitAccountID","AccountTypeID","transactionCost","transDate","UpdateAccountTransfer","AccountTransferID","ReverseAccountTransfer","transferDate","GetUserTypePolicy","policy","GetUserTypePolicyAssignment","roles","GetUserPolicyAssingment","urole","GetNotificationTypes","GetNotificationRecipient","recipient","AddNotificationRecipient","notificationTypeID","NotificationTypeID","mediumChannelID","RemoveNotificationRecipient","notificationUserID","NotificationUserID","GetAgeingReport","GetConsolidatedReport","GetConsolidatedAccountBalances","GetAuditTrail","GetAuditLogAnalytics","analytics","BackdateLocationData","AddGoogleSheetCredentials","userGoogleSheetCredentialsID","googleSheetCredentials","GoogleSheetID","additionalInfo","AddDistributorPurchase","_data$stocks","deliveryAssetID","LineTotal","deliveryCost","purchasePaymentArray","GetDistributorDashbord","dash","Data","GetDistributorOrders","order","GetDistributorCustomers","GetDistributorPurchase","GetDistributorAllAssets","asset","AddDistributorOrder","saleType","stationID","DeliveryAssetID","eta","ETA","dateDelivered","deliveredByID","handlingCost","HandlingCost","DeliveryCost","deliveryDetail","DistributorCompleteDelivery","SaleOrderBulkID","vendorAssetID","DistributorLoadTruck","DistributorVehicle","vendorAssetName","VendorAssetName","AssignDistributorVehicle","VendorAssetID","GetUserManual","manual","GetCardCustomerGroup","GetRewardPointsTypes","DeleteCardCustomerGroup","vendorParentCardGroupID","VendorParentCardGroupID","AddCardCustomerGroup","vendorParentID","GetRewardLoyaltyRule","AddRewardLoyaltyRule","pointRewardName","PointRewardName","EndDate","rewardDetailArray","RewardDetailArray","rewardProductArray","ProductArray","rewardRuleArray","RewardRule","RemoveRewardLoyaltyRule","rewardRefNO","RewardRefNO","GetCardRedeemIniator","GetCardCustomer","GetLoyaltyDashBoard","GetLoyaltyStationSummary","GetLoyaltyCustomers","PageSize","SearchTerm","GetLoyaltyCustomersCards","GetLoyaltyCustomersPoints","GetLoyaltyCustomersRedeemedPoints","GetLoyaltyCustomersRedeemedOption","GetLoyaltyVendorRedeemOption","AddVendorRedeemOption","redeemOptionName","RedeemOptionName","RemoveVendorRedeemOption","vendorParentCardRedeemOptionID","VendorParentCardRedeemOptionID","GetLoyaltyVendorRedeemOptionPoints","AddVendorRedeemOptionPoints","rewardPoint","RewardPoint","rewardValue","RewardValue","AddVendorRedeemOptionBulkPoints","cardRedeemTypeID","initiatedBy","dateInitiated","redeemRefNO","cardRedeemArray","AddVendorRedeemCollection","redeemNO","RedeemNO","otpCode","OTPCode","AddVendorCustomerCard","cardSerialNO","CardSerialNO","openingAmount","openingPoints","expiryMonthYear","cardTypeID","isImageRequired","isPasswordProtected","isMileageRequired","isProductRestricted","isTimeRestricted","isLocationRestricted","isAssetRestricted","cardRedeemInitiatorID","canHoldPayment","vendorCustomerCardName","cardPolicyProductArray","cardPolicyTime","cardPolicyVendorLocation","cardPolicyAsset","RequestRedeemCustomerLoyaltyPoints","vendorParentCardRedeemOptionName","VendorParentCardRedeemOptionName","VendorCustomerCardName","redeemedPoints","RedeemedPoints","redeemValue","RedeemValue","redeemValueUOM","RedeemValueUOM","redemptionDate","pointsBalance","PointsBalance","notificationChannelID","NotificationChannelID","RedeemCustomerLoyaltyPoints","CardRedeemTypeID","RedeemOTP","ReverseCustomerLoyaltyRedeemedPoints","vendorCustomerCardRedeemedPointID","VendorCustomerCardRedeemedPointID","GetLoyaltyVendorCards","CardPanNO","DeactivateLoyaltyCustomerCard","AddVirtualLoyaltyCustomer","GetLoyaltyCustomerStatement","SendEmailReport","recipientEmailArray","emails","supervisorName","shiftDate","clockType","senderMail","hostName","port","Body","pdfBase64","SendWhatsAppReport","receiverPhone","templateName","fileName","FileName","fileLink","messageParam1","messageParam2","messageParam3","messageParam4","headerMessage","GetCratoAutomationDashBoard","GetPTSStatusReport","ptsID","GetCratoAutomationDetailTransaction","GetAutomationDeliveries","GetAutomationSalesPerAttendant","GetAutomationTankVariance","_moment","_moment2","GetAutomationTankTransactions","thumbsUpAnimation","keyframes","_templateObject","_taggedTemplateLiteral","ThumbsUpIcon","styled","svg","_templateObject2","Billing","_paymentData$filter$","_paymentData$filter$2","_paymentData$slice","paymentData","setPaymentData","setValues","pay","setPay","setRefresh","d","CheckPaymentStatus","axios","post","CheckoutRequestID","accept","ConfirmPayment","_response$data","_response$data2","errorMessage","reload","Balance","InvoiceAmount","showThumbsUp","getStatusBar","statusText","statusColor","_jsxs","style","display","alignItems","children","_jsx","padding","borderRadius","color","fontWeight","backgroundColor","width","Tooltip","title","cursor","background","Print","flex","overflowX","borderCollapse","border","overflow","fontFamily","borderBottom","textTransform","textAlign","slice","map","DueDate","TotalLocation","ServiceFee","InvoiceID","boxShadow","justifyContent","height","xmlns","viewBox","fill","stroke","fontSize","marginBottom","month","margin","minWidth","transition","onClick","marginTop","onChange","e","target","value","ResultDesc","ResponseDescription","CircularProgress","marginLeft","module","exports","Spinner","className","styles","container","loader","countryCodes","code","dialCode","PhoneNumberInput","_ref","defultValues","selectedCountry","setSelectedCountry","setPhoneNumber","params","apiKey","country","calling_code","country_code2","fetchCountryCode","checkValidity","fullPhoneNumber","valid","isValidPhoneNumber","Grid","spacing","item","xs","FormControl","fullWidth","Autocomplete","size","getOptionLabel","option","handleCountryChange","event","newValue","renderInput","TextField","label","variant","validateState","helperText","inputNumber","React","createContext","num","Math","abs","toLocaleString","minimumFractionDigits","maximumFractionDigits","getDefaultImageAsBase64","DefaultImage","then","arrayBuffer","buffer","binary","call","Uint8Array","base64String","btoa","charCode","String","fromCharCode","join","catch","state","isNaN","nairobiTime","timeZone","localDate","getTime","year","day","hour","minute","second","hour12","userTimeZone","Intl","resolvedOptions","getNairobiTimeFromLocal","localTime","DefaultContextDateRange","timeRange","monthFirstDay","getFullYear","getMonth","todayStart","setHours","startTime","endTime","valueOf","setMonth","VendorProductCheck","locd","products","VendorLocationCratoProductArray","some","CratoProductID","Forgot","setForgot","history","useHistory","form","setForm","ConfirmPassword","step","setStep","handleChange","commonStyles","formContainer","paddingTop","paddingBottom","minHeight","paper","maxWidth","heading","button","letterSpacing","buttonSpacing","buttonSecondary","errorText","successIcon","buttonContainer","gap","input","outline","inputFocus","borderColor","Container","component","Paper","Typography","onSubmit","preventDefault","placeholder","required","Button","handleSubmit","push","Footer","position","left","bottom","SuspenseCounter","daysDifference","daysLeft","setDaysLeft","hoursLeft","setHoursLeft","minutesLeft","setMinutesLeft","secondsLeft","setSecondsLeft","countdownTimer","setInterval","timeLeft","getDate","clearInterval","hours","floor","minutes","seconds","toFixed","PaymentModal","setOpen","handleClose","Box","handleOpen","startIcon","IconExclamationCircle","Modal","onClose","sx","top","transform","bgcolor","float","SearchableDropdown","storedValues","isVisible","setIsVisible","searchTerm","setSearchTerm","selectedOptions","setSelectedOptions","isMultiSelect","setIsMultiSelect","setVendorImage","setLocd","dropdownRef","dropdownHeight","setDropdownHeight","filteredOptions","_option$VendorLocatio","toLowerCase","handleOnChange","newValues","updateValue","VendorLocationIDs","selectedOption","v","vendorLocationIDs","ImageID","setItem","handleDateChange","_context$DateRange_","_context$DateRange_2","currentStartDate","DateRange_","currentEndDate","newStartDate","newEndDate","handleClickOutside","contains","calculateHeight","_dropdownRef$current","maxHeight","innerHeight","getBoundingClientRect","max","handleOptionChange","newSelectedOptions","renderDateInputs","_context$DateRange_3","_context$DateRange_4","startType","endType","_Fragment","boxSizing","marginRight","station","ref","readOnly","zIndex","flexDirection","listStyleType","overflowY","flexGrow","scrollbarWidth","msOverflowStyle","checked","Tabs","props","active","setActive","anchorEl","setAnchorEl","menuIdx","setMenuIdx","handleTabs","lastPart","href","split","pop","_Headers$","_Headers$$children","newIndex","findIndex","tab","tabIndex","child","idx","icon","NavBar","Dns","PermMedia","People","Settings","ProductionQuantityLimits","IconBoxModel","Support","TimeToLeaveOutlined","Phonelink","House","SendEmailDialog","recipients","setRecipients","reportName","setReportName","setBody","setEmail","IconButton","handleAddRecipient","AddIcon","List","dense","index","ListItem","secondaryAction","edge","_","i","handleDeleteRecipient","DeleteIcon","ListItemText","primary","multiline","EmailSender","_ref2","pdfBlob","reporttitle","handleUpload","onSuccess","Dialog","DialogTitle","DialogContent","src","DialogActions","setReport","_value$dialCode","_value$dialCode2","replace","WhatsAppSender","reports","setReports","ReportName","CompanyPhone","initiallocd","logo","Header","pageHeader","setPageHeader","timeoutIdRef","handleActivity","hostname","clearTimeout","newTimeoutId","logout","mouseMoveHandler","keyDownHandler","domain1","newPageHeader","el","toLocaleLowerCase","key","sessionStorage","clear","VendorImage","setPhone","file","setFile","componentRef","Location","handleReload","firstObject","selectedYear","selectedMonth","Array","isArray","exportToPdf","generatePDF","Promise","resolve","convertpf","byteCharacters","atob","byteNumbers","charCodeAt","byteArray","blob","Blob","createObjectURL","createElement","download","appendChild","click","revokeObjectURL","removeChild","element","filename","html2canvas","scale","scrollX","scrollY","scrollWidth","scrollHeight","windowWidth","windowHeight","useCORS","jsPDF","unit","orientation","clonedElement","cloneNode","clonedHeight","offsetHeight","currentPosition","pageHeight","from","elemHeight","fitsInCurrentPage","classList","add","innerHTML","head","html2pdf","outputPdf","pdfDataUrl","base64data","AppBar","elevation","Toolbar","isSidebarOpen","Hidden","mdDown","toggleSidebar","Menu","lgUp","toggleMobileSidebar","toLocaleUpperCase","isDueDateLessThan10Days","Avatar","isOnline","alt","textColor","Tab","ReactToPrint","trigger","content","pageStyle","PrintSharp","exportToExcel","_componentRef$current","table","querySelector","_context$reporttitle","worksheet","XLSX","table_to_sheet","workbook","book_new","truncatedSheetName","substring","book_append_sheet","InsertDriveFile","WhatsApp","firstDay","lastDay","SignUp","isLoggedIn","setIsLoggedIn","setTwoFA","isTwoFactorEnabled","setIsTwoFactorEnabled","twoFactorCode","setTwoFactorCode","isHovered","setIsHovered","showTwoFactorOptions","setShowTwoFactorOptions","showPassword","setShowPassword","setType","forgot","assetloading","HandleLogin","customerloading","customerResult","HandleCustomerLogin","SetDefaultRange","_locations$","_locations$2","_locations$3","_locations$4","_locations$5","VendorStatusID","VendorStatusIDF","TwoFA","storedType","handleCustomerLoginSuccess","UserToken","handleLoginSuccess","_result$VendorCratoPr","VendorParentID","AssignedStationArray","VendorTypeID","VendorCratoProductArray","resetloading","HandleResetTwoFA","lineHeight","grid","register","formField","passwordInput","backgroundImage","backgroundRepeat","backgroundSize","backgroundPosition","toggleIcon","right","forgotPasswordLink","textDecoration","submitButton","checkboxContainer","customCheckboxGroup","customCheckbox","tickIcon","tick","tickVisible","x1","y1","y2","offset","stopColor","h2","htmlFor","explanation","decodedPasscode","encodedPasscode","TwoFACode","onMouseEnter","onMouseLeave","info","emailInput","togglePasswordVisibility","VisibilityOff","Visibility","strokeWidth","strokeLinecap","strokeLinejoin","link","InvoiceDetails","lazy","Dashboard","Reset","Pump","Nozzle","Download","Help","Profile","AuditLog","Manual","StockReport","StockAction","Purchase","Inventory","Supplier","Offloading","SaleHistory","SalesDashboard","ClientList","ClockManagement","ShiftSummary","Statement","Expense","Transfer","Payroll","Tax","CustomerDash","ConDashboard","LotSummary","DaillySummary","DistributionDashboard","LoyaltyCardDashboard","LoyaltyCustomers","LoyaltySettings","LoyaltyProduct","LoyaltyRewards","LoyaltyRedeems","FuelCardCardDashboard","FuelCardCards","FuelCardTransactionCards","FuelCardCustomerCards","DistributionOrders","DistributionPurchase","DistributionVehicle","ViewTicket","route","path","layout","Background","class","Typical","loop","Infinity","wrapper","steps","homepage","Login","LoadingSpinner","typography","body1","h1","h3","h4","h5","h6","defaultTheme","createTheme","direction","palette","main","secondary","status","danger","overrides","MuiToolbar","gutters","breakpoints","up","paddingLeft","paddingRight","useStyles","makeStyles","theme","text","fontWeightMedium","Navitems","Icon","rest","classes","disableGutters","activeClassName","NavLink","to","ListItemIcon","Menuitems","HomeTwoTone","ShoppingBag","MonetizationOn","Summarize","Business","AutoModeOutlined","piclarge","profileBg","bgprofile","profileTextBg","menuitem","userProfile","avatar","jobTitle","toUpperCase","handleRedirect","Close","currentTarget","ExpandMoreIcon","getContentAnchorEl","anchorOrigin","vertical","horizontal","transformOrigin","Boolean","MenuItem","Loyalty","PaymentsRounded","IconDatabase","IconManualGearbox","LogoutOutlined","Distribution","m","mt","disableElevation","mobileSidebar","desktopSidebar","borderRight","Sidebar","list2","productIDs","SidebarContent","Divider","Drawer","anchor","isMobileSidebarOpen","onSidebarClose","NotPaid","flexWrap","Company","AdminRoute","_locd$VendorLocationC","_locd$VendorLocationC2","vtype","setSidebarOpen","setMobileSidebarOpen","setIsOnline","handleOnlineStatusChange","root","dark","hideFullSidebar","contentContainer","Copyright","align","Link","CssBaseline","BrowserRouter","SnackbarProvider","ToastContainer","Switch","Suspense","fallback","routes","prop","Route","exact","memo","queryClient","QueryClient","App","useMemo","fetchError","currentPath","pathname","isExcludedPath","memoizedContextValue","Provider","ReactDOM","render","StrictMode","QueryClientProvider","client","getElementById"],"mappings":"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CxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,UACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,UACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,UACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,UACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,MACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,UACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,UACxB,CAAED,KAAM,KAAMC,SAAU,UACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,UACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,UACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,YACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,YACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,UACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,YACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,MACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,UACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,UACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,UACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,MACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,UACxB,CAAED,KAAM,KAAMC,SAAU,UACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,UACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,UACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,UACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,OACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAED,KAAM,KAAMC,SAAU,UACxB,CAAED,KAAM,KAAMC,SAAU,QACxB,CAAE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","file":"static/js/main.a7985cf0.chunk.js","sourcesContent":["import { useContext, useState, useEffect, useRef, useCallback } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { AppContext } from \"../AppContext\";\r\n\r\nconst EXPIRATION_TIME = 172800000; // 2 days in milliseconds\r\nconst RETRY_COUNT = 3; // Number of retries for fetching\r\nconst lastFetchTimeMap = new Map();\r\n\r\nexport const useApiRes = (api, options) => {\r\n const { refresh } = options;\r\n const location = useLocation();\r\n const [data, setData] = useState([]);\r\n const [error, setError] = useState(null);\r\n const [network, setNetwork] = useState(navigator.onLine);\r\n const [visible, setVisible] = useState(true);\r\n const { context, setContext } = useContext(AppContext);\r\n const prevRefreshRef = useRef(refresh);\r\n const prevRefresh = prevRefreshRef.current;\r\n const FETCH_INTERVAL = prevRefresh !== context.refresh ? 0 : 30000;\r\n\r\n const manageCache = useCallback(async () => {\r\n try {\r\n const cacheNames = await caches.keys();\r\n const now = Date.now();\r\n\r\n for (const cacheName of cacheNames) {\r\n const cache = await caches.open(cacheName);\r\n const keys = await cache.keys();\r\n\r\n for (const request of keys) {\r\n const url = new URL(request.url);\r\n const timestamp = url.searchParams.get(\"timestamp\");\r\n\r\n if (timestamp && now - parseInt(timestamp, 10) > EXPIRATION_TIME) {\r\n await cache.delete(request);\r\n }\r\n }\r\n }\r\n } catch (err) {\r\n console.error(\"Error managing cache: \", err);\r\n }\r\n }, []);\r\n\r\n const addDataIntoCache = useCallback(\r\n async (api, response) => {\r\n try {\r\n const data = new Response(JSON.stringify(response));\r\n if (\"caches\" in window) {\r\n const cache = await caches.open(api);\r\n await manageCache();\r\n const timestampedUrl = new URL(api);\r\n timestampedUrl.searchParams.set(\"timestamp\", Date.now().toString());\r\n\r\n // Clear old cache entries for this API\r\n const keys = await cache.keys();\r\n for (const request of keys) {\r\n if (request.url.startsWith(api)) {\r\n await cache.delete(request);\r\n }\r\n }\r\n\r\n await cache.put(timestampedUrl.toString(), data);\r\n }\r\n } catch (err) {\r\n console.error(\"Error adding data to cache: \", err);\r\n }\r\n },\r\n [manageCache]\r\n );\r\n\r\n const getCachedData = useCallback(async (api) => {\r\n try {\r\n if (typeof caches === \"undefined\") return null;\r\n const cacheNames = await caches.keys();\r\n\r\n for (const cacheName of cacheNames) {\r\n const cache = await caches.open(cacheName);\r\n const keys = await cache.keys();\r\n\r\n for (const request of keys) {\r\n if (request.url.startsWith(api)) {\r\n const cachedResponse = await cache.match(request);\r\n if (cachedResponse && cachedResponse.ok) {\r\n return cachedResponse.json();\r\n }\r\n }\r\n }\r\n }\r\n return null;\r\n } catch (err) {\r\n console.error(\"Error getting cached data: \", err);\r\n return null;\r\n }\r\n }, []);\r\n\r\n const fetchData = useCallback(\r\n async (abortController, retries = RETRY_COUNT) => {\r\n setContext((prevContext) => ({ ...prevContext, fetching: true })); // Set fetching to true when fetching starts\r\n try {\r\n const response = await fetch(api, { signal: abortController.signal });\r\n if (!response.ok) {\r\n throw new Error(\"Network response was not ok\");\r\n }\r\n const data = await response.json();\r\n if (!api.includes(\"undefined\") && !data.errors) {\r\n await addDataIntoCache(api, data);\r\n setData(data); // Update the state with the new data after caching\r\n lastFetchTimeMap.set(api, Date.now()); // Update the last fetch time\r\n setError(null);\r\n } else {\r\n throw new Error(\"API returned undefined or errors\");\r\n }\r\n } catch (error) {\r\n if (error.name !== \"AbortError\" && retries > 0) {\r\n console.log(`Retrying... Attempts left: ${retries}`);\r\n await fetchData(abortController, retries - 1); // Retry fetching data\r\n } else {\r\n const cachedData = await getCachedData(api);\r\n if (cachedData) {\r\n setData(cachedData);\r\n setError(\"Fetch failed, showing cached data.\");\r\n } else {\r\n setError(\"Fetch failed and no cached data available.\");\r\n }\r\n }\r\n } finally {\r\n setContext((prevContext) => ({ ...prevContext, fetching: false })); // Set fetching to false when fetching ends\r\n }\r\n },\r\n [api, addDataIntoCache, getCachedData, setContext]\r\n );\r\n\r\n useEffect(() => {\r\n const controller = new AbortController();\r\n\r\n const updateData = async () => {\r\n const cachedData = await getCachedData(api);\r\n if (cachedData) {\r\n setData(cachedData); // Update the state with cached data\r\n setContext((prevContext) => ({ ...prevContext, fetching: false }));\r\n } else {\r\n setContext((prevContext) => ({ ...prevContext, fetching: true }));\r\n }\r\n\r\n const lastFetchTime = lastFetchTimeMap.get(api);\r\n const now = Date.now();\r\n if (network) {\r\n if (!lastFetchTime || now - lastFetchTime >= FETCH_INTERVAL) {\r\n await fetchData(controller); // Fetch new data in the background\r\n } else {\r\n setContext((prevContext) => ({ ...prevContext, fetching: false }));\r\n }\r\n } else {\r\n if (!cachedData) {\r\n setError(\"No internet connection and no cached data available.\");\r\n setContext((prevContext) => ({ ...prevContext, fetching: false }));\r\n }\r\n }\r\n };\r\n\r\n updateData();\r\n\r\n return () => {\r\n controller.abort();\r\n };\r\n }, [api, location, refresh, network, visible, getCachedData, fetchData, setContext]);\r\n\r\n useEffect(() => {\r\n const handleVisibilityChange = () => {\r\n setVisible(document.visibilityState === \"visible\");\r\n };\r\n document.addEventListener(\"visibilitychange\", handleVisibilityChange);\r\n return () => {\r\n document.removeEventListener(\"visibilitychange\", handleVisibilityChange);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n const handleOnlineStatus = () => {\r\n setNetwork(navigator.onLine);\r\n };\r\n window.addEventListener(\"online\", handleOnlineStatus);\r\n window.addEventListener(\"offline\", handleOnlineStatus);\r\n return () => {\r\n window.removeEventListener(\"online\", handleOnlineStatus);\r\n window.removeEventListener(\"offline\", handleOnlineStatus);\r\n };\r\n }, []);\r\n\r\n return { data, error, loading: context.fetching };\r\n};\r\n","import { useState } from \"react\";\r\nimport { toast } from \"react-toastify\";\r\n\r\nimport { AppContext } from \"../AppContext\";\r\nimport { useContext } from \"react\";\r\nimport { encryptSession } from \".\";\r\n\r\nconst useAsyncSubmit = (successFns = [], errorFns = []) => {\r\n const [loading, setLoading] = useState(false);\r\n const [submitted, setSubmitted] = useState(false);\r\n const [success, setSuccess] = useState(false);\r\n const [result, setResult] = useState(null);\r\n const { context, setContext } = useContext(AppContext);\r\n const token = encryptSession.getItem(\"tk\");\r\n const values = JSON.parse(localStorage.getItem(\"values\"));\r\n\r\n const handleAsyncSubmit = async (apiURL, requestBody, bypass) => {\r\n if (values?.VendorLocationID !== 0) {\r\n setSubmitted(true);\r\n\r\n if (!context.error || bypass) {\r\n setLoading(true);\r\n\r\n try {\r\n const response = await fetch(apiURL, {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n method: \"post\",\r\n body: JSON.stringify(requestBody),\r\n });\r\n\r\n const result = await response.json();\r\n\r\n if (result.Error === false) {\r\n result?.Message !== \"None\" && toast.success(`${result.Message} 👌`);\r\n setContext((prevContext) => ({\r\n ...prevContext, \r\n refresh: prevContext.refresh + 1,\r\n }));\r\n setSuccess(true);\r\n setResult(result); // Set the result state with the received data\r\n successFns.forEach((fn) => fn());\r\n } else {\r\n toast.error(`${result.Message} 😲`);\r\n errorFns.forEach((fn) => fn());\r\n }\r\n } catch (error) {\r\n toast.error(\"An error occurred while submitting the form 😲\");\r\n console.error(error);\r\n errorFns.forEach((fn) => fn());\r\n } finally {\r\n setLoading(false);\r\n }\r\n }\r\n } else {\r\n toast?.error(\"Please choose a Station you are transacting from\");\r\n }\r\n };\r\n\r\n setTimeout(() => {\r\n setSuccess(false);\r\n }, 8000);\r\n\r\n return {\r\n loading,\r\n submitted,\r\n success,\r\n result,\r\n setSubmitted,\r\n handleAsyncSubmit,\r\n };\r\n};\r\n\r\nexport default useAsyncSubmit;\r\n","import { EncryptStorage } from \"encrypt-storage\";\r\nimport moment from \"moment\";\r\n// import { toast } from \"react-toastify\";\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\nimport { useApiRes } from \"./useApiRes\";\r\nimport { AddToApi, saveToIndexedDB } from \"./IndexDB/PostData\";\r\nimport useAsyncSubmit from \"./PostData\";\r\nimport {\r\n DateTimeFormat,\r\n accountingFormat,\r\n} from \"../components/common/Functions\";\r\nimport { useContext } from \"react\";\r\nimport { AppContext } from \"../AppContext\";\r\nimport { result } from \"lodash\";\r\n\r\nconst useVendorID = () => {\r\n const { context } = useContext(AppContext);\r\n return context?.VendorID || 0;\r\n};\r\n//export default useVendorID;\r\n\r\n// const Main_URL = \"https://api.crato.co.ke/api/\";\r\nconst Main_URL = \"https://api.crato.africa/api/\";\r\nconst Funguo = \"LaHNcG1xClzAqZpegrr83gbxmSkZsniZ\";\r\n\r\nconst isOnline = localStorage.getItem(\"online\");\r\n// const chatgptkey = \"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\";\r\n// const cratchatkey = \"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\";\r\n// const geminikey = \"AIzaSyAs5ttlzPuvPN4t11F41q6UioUVSthEykY\";\r\n//colors\r\n//green- 44dc94\r\n//dark blue - 2c3d4e 2c3d4e\r\n//white -7fa7ba\r\n//grey - #7fa7ba;\r\n\r\nconst primarycolor = \"\";\r\nconst secondarycolor = \"\";\r\n\r\nexport function SendSMS(data) {\r\n return fetch(`https://wakish.esquekenya.com/api/Company/SendMessage`, {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n PhoneNumber: data.PhoneNumber,\r\n Message: data.Message,\r\n }),\r\n });\r\n}\r\n\r\nexport const encryptStorage = new EncryptStorage(\"secret-key\", {\r\n encAlgorithm: \"Rabbit\",\r\n});\r\n\r\nexport const encryptSession = new EncryptStorage(\"secret-key\", {\r\n storageType: \"sessionStorage\",\r\n});\r\n\r\nconst ParentID =\r\n encryptSession.getItem(\"pi\") === undefined ? 0 : encryptSession.getItem(\"pi\");\r\nconst UserID = encryptSession.getItem(\"us\");\r\n\r\nexport function UserLogin(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Users/UserLogin\";\r\n const requestBody = {\r\n PhoneNumber: data.email,\r\n Password: data.password,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n result: asyncSubmit.result,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function ResetTwoFactoAuthentication(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Users/SetTwoFactorAuthorisation\";\r\n const requestBody = {\r\n userID: data.UserID,\r\n twoFA: data.twoFA ? 1 : 0,\r\n addedBy: data.UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n result: asyncSubmit.result,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function GetPassCode(phone) {\r\n return fetch(Main_URL + \"Users/RequestPasscode\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n phoneNumber: phone,\r\n }),\r\n });\r\n}\r\n\r\nexport function ResetPassword(data) {\r\n return fetch(Main_URL + \"Users/ConfirmResetPassword\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n resetCode: data.PassCode,\r\n password: data.NewPassword,\r\n phoneNumber: data.PhoneNumber,\r\n }),\r\n });\r\n}\r\n\r\nexport function UserLoginCustomer(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Users/LoginCustomerUser\";\r\n const requestBody = {\r\n PhoneNumber: data.email,\r\n Password: data.password,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n result: asyncSubmit.result,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddCompanyLocation(data, ProviderID) {\r\n const address = localStorage.getItem(\"address\");\r\n const lat = localStorage.getItem(\"lat\");\r\n const lng = localStorage.getItem(\"lng\");\r\n return fetch(Main_URL + \"AddProviderServiceLocation\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n ProviderID: ProviderID,\r\n CityID: data.CityID,\r\n LocationName: data.locationName,\r\n ContactPhone: data.ContactPhone,\r\n Area: address,\r\n Street: address,\r\n ProviderImage: 0,\r\n Latitude: lat,\r\n Longitude: lng,\r\n AddedBy: 0,\r\n }),\r\n });\r\n}\r\n\r\nexport function UserRegistration(data) {\r\n return fetch(Main_URL + \"Admin/VendorUserRegistration\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n UserID: 0,\r\n VendorID: 0,\r\n VendorLocationID: 0,\r\n AddedBy: 0,\r\n UserTypeID: 0,\r\n FirstName: data.firstName,\r\n LastName: data.lastName,\r\n PhoneNumber: data.phoneNumber,\r\n Email: data.email,\r\n UserImage: data.logo,\r\n }),\r\n });\r\n}\r\n\r\nexport function UserCustomerRegistration(data) {\r\n return fetch(Main_URL + \"Customer/VendorCustomerUserRegistration\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n userID: 0,\r\n customerID: data.CustomerID,\r\n countryCode: data.countryCode,\r\n addedBy: UserID,\r\n firstName: data.firstName,\r\n lastName: data.lastName,\r\n phoneNumber: data.phoneNumber,\r\n email: data.email,\r\n userImage: 0,\r\n }),\r\n });\r\n}\r\n\r\nexport const GetNozzleReadingType = (refresh) => {\r\n const { data: readingtype, error } = useApiRes(\r\n Main_URL + `Admin/GetNozzleReadingType`,\r\n { refresh }\r\n );\r\n return { readingtype, error };\r\n};\r\n\r\nexport const GetLocations = (refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: locations, error } = useApiRes(\r\n Main_URL + `Admin/GetVendorLocation?VendorID=${VendorID}`,\r\n { refresh }\r\n );\r\n return { locations, error };\r\n};\r\n\r\nexport const GetTank = (LocationID, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: tank, mutate: gettank } = useApiRes(\r\n Main_URL +\r\n `Stock/GetVendorTank?VendorID=${VendorID}&VendorLocationID=${LocationID}`,\r\n { refresh }\r\n );\r\n return { tank, gettank };\r\n};\r\n\r\nexport function AddVendorTank(data) {\r\n const VendorID = encryptSession.getItem(\"ci\");\r\n return fetch(Main_URL + \"Stock/AddVendorTank\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n ProductID: data.ProductID,\r\n TankName: data.TankName,\r\n VendorLocationID: data.VendorLocationID,\r\n VendorID: VendorID,\r\n TankCapacity: data.TankCapacity,\r\n AddedBy: UserID,\r\n TankParentID: data.TankParentID,\r\n }),\r\n });\r\n}\r\n\r\nexport function UpdateVendorTank(data) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n return fetch(Main_URL + \"Stock/UpdateVendorTank\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n ProductID: data.ProductID,\r\n TankID: data.TankID,\r\n TankName: data.TankName,\r\n VendorLocationID: data.VendorLocationID,\r\n VendorID: VendorID,\r\n TankCapacity: data.TankCapacity,\r\n AddedBy: UserID,\r\n TankParentID: data.TankParentID,\r\n }),\r\n });\r\n}\r\n\r\nexport function RemoveVendorTank(data) {\r\n return fetch(Main_URL + \"Stock/RemoveVendorTank\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n TankID: data.TankID,\r\n AddedBy: UserID,\r\n }),\r\n });\r\n}\r\n\r\nexport const GetDipReading = (TankID, refresh) => {\r\n const { data: reading, error } = useApiRes(\r\n Main_URL + `Stock/GetVendorTankDip?TankID=${TankID}`,\r\n { refresh }\r\n );\r\n return { reading, error };\r\n};\r\n\r\nexport const GetNozzle = (PumpID, refresh) => {\r\n const { data: nozzle, error } = useApiRes(\r\n Main_URL + `Stock/GetVendorPumpNozzle?PumpID=${PumpID}`,\r\n { refresh }\r\n );\r\n return { nozzle, error };\r\n};\r\n\r\nexport const GetVendorLocationNozzle = (VendorLocationID, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: nozzle, error } = useApiRes(\r\n Main_URL +\r\n `Stock/GetVendorPumpNozzles?VendorLocationID=${VendorLocationID}&VendorID=${VendorID}`,\r\n { refresh }\r\n );\r\n return { nozzle, error };\r\n};\r\n\r\nexport const GetNozzleReading = (DateRange, PumpID, refresh) => {\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: reading, error } = useApiRes(\r\n Main_URL +\r\n `Stock/GetVendorPumpNozzleReading?PumpID=${PumpID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n return { reading, error };\r\n};\r\n\r\nexport const GetShiftNozzleReading = (\r\n VendorLocationID,\r\n ShiftClockNO,\r\n refresh\r\n) => {\r\n const { data: readings, error } = useApiRes(\r\n Main_URL +\r\n `Supervisor/GetShiftNozzleReadings?VendorLocationID=${VendorLocationID}&ShiftClockNO=${ShiftClockNO}`,\r\n { refresh }\r\n );\r\n return { readings, error };\r\n};\r\n\r\nexport function AddDipReading(data) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n return fetch(Main_URL + \"Stock/PostDipReading\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n VendorID: VendorID,\r\n ShiftClockNo: data.ShiftClockNo,\r\n VendorLocationID: data.VendorLocationID,\r\n AddedBy: UserID,\r\n TankParentArray: data.dip,\r\n }),\r\n });\r\n}\r\n\r\nexport function AddSingleDipReading(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Stock/PostNewDipReading\";\r\n const requestBody = {\r\n addedBy: UserID,\r\n shiftClockNO: data.ShiftClockNO,\r\n shiftRefNO: data.ShiftRefNO,\r\n vendorID: VendorID,\r\n vendorLocationID: data.VendorLocationID,\r\n clockDate: data.ClockDate,\r\n tankParentArray: data.TankParentArray,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function UpdateSecondDipReading(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Stock/UpdateBackdatedClosedParentDipReading\";\r\n const requestBody = {\r\n parentDipNO: data.ParentDipNO,\r\n addedBy: UserID,\r\n tankDipArray: [\r\n {\r\n dipNO: data.DipNO,\r\n secondReading: data.NewReading,\r\n },\r\n ],\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function DeleteDipReading(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Stock/DeactivateDipReading\";\r\n const requestBody = {\r\n tankParentID: data.TankParentID,\r\n vendorLocationID: data.VendorLocationID,\r\n parentDipNO: data.ParentDipNO,\r\n addedBy: UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function CloseShift(data) {\r\n return fetch(Main_URL + \"Stock/CloseTankPumpNozzleReading\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n ShiftID: data.ShiftID,\r\n ClosingReading: data.ClosingReading,\r\n ClosedBy: UserID,\r\n VendorTankParentNozzleID: data.VendorTankParentNozzleID,\r\n }),\r\n });\r\n}\r\n\r\nexport function OpenShift(data) {\r\n return fetch(Main_URL + \"Stock/OpenTankPumpNozzleReading\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n OpeningReading: data.OpeningReading,\r\n AddedBy: UserID,\r\n PumpID: data.PumpID,\r\n NozzleID: data.NozzleID,\r\n VendorTankParentNozzleID: data.VendorTankParentNozzleID,\r\n }),\r\n });\r\n}\r\n\r\nexport const GetPump = (LocationID, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: pump, error } = useApiRes(\r\n Main_URL +\r\n `Stock/GetVendorLocationPump?VendorLocationID=${LocationID}&VendorID=${VendorID}`,\r\n { refresh }\r\n );\r\n return { pump, error };\r\n};\r\n\r\nexport function AddVendorPump(data) {\r\n const VendorID = encryptSession.getItem(\"ci\");\r\n return fetch(Main_URL + \"Stock/AddVendorLocationPump\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n PumpName: data.PumpName,\r\n AddedBy: UserID,\r\n VendorLocationID: data.VendorLocationID,\r\n VendorID: VendorID,\r\n }),\r\n });\r\n}\r\n\r\nexport function UpdateVendorPump(data) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n return fetch(Main_URL + \"Stock/UpdateVendorLocationPump\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n PumpID: data.PumpID,\r\n PumpName: data.PumpName,\r\n AddedBy: UserID,\r\n VendorLocationID: data.VendorLocationID,\r\n VendorID: VendorID,\r\n }),\r\n });\r\n}\r\n\r\nexport function RemoveVendorPump(data) {\r\n return fetch(Main_URL + \"Stock/RemoveVendorLocationPump\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n PumpID: data.PumpID,\r\n AddedBy: UserID,\r\n }),\r\n });\r\n}\r\n\r\nexport const GetProduct = (VendorLocationID, ProductCategoryID, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: product, error } = useApiRes(\r\n Main_URL +\r\n `Stock/GetVendorLocationProduct?VendorLocationID=${VendorLocationID}&VendorID=${VendorID}&ProductCategoryID=${ProductCategoryID}`,\r\n { refresh }\r\n );\r\n return { product, error };\r\n};\r\n\r\nexport const GetClockProduct = (\r\n VendorLocationID,\r\n ClockNO,\r\n ProductCategoryID,\r\n refresh\r\n) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: product, error } = useApiRes(\r\n Main_URL +\r\n `Stock/GetAttendantLocationProduct?VendorLocationID=${VendorLocationID}&VendorID=${VendorID}&ClockNO=${ClockNO}&ProductCategoryID=${ProductCategoryID}`,\r\n { refresh }\r\n );\r\n return { product, error };\r\n};\r\n\r\nexport const GetCustomer = (VendorLocationID, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: customer, error } = useApiRes(\r\n Main_URL +\r\n `Customer/GetVendorCustomers?VendorID=${VendorID}&VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { customer, error };\r\n};\r\n\r\nexport const GetAllCustomerStatement = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const {\r\n data: customer,\r\n error,\r\n loading,\r\n } = useApiRes(\r\n Main_URL +\r\n `Customer/GetVendorAllCustomersSatement?VendorID=${start}&VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n return { customer, error, loading };\r\n};\r\n\r\nexport const GetCustomerType = (refresh) => {\r\n const { data, error, loading } = useApiRes(\r\n Main_URL + `Customer/GetCustomerType`,\r\n { refresh }\r\n );\r\n return { data, error, loading };\r\n};\r\n\r\nexport const GetCustomerExpense = (CustomerID, refresh) => {\r\n const { data: expense, error } = useApiRes(\r\n Main_URL + `Finance/GetVendorCustomerExpense?CustomerID=${CustomerID}`,\r\n { refresh }\r\n );\r\n return { expense, error };\r\n};\r\n\r\nexport function AddVendorProduct(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Stock/AddVendorProduct\";\r\n const requestBody = {\r\n productName: data.ProductName,\r\n uom: \"\",\r\n productImageID: data.base64,\r\n addedBy: UserID,\r\n vendorID: VendorID,\r\n buyingTax: data.TaxRate,\r\n IsStockItem: data.IsStockItem ? 1 : 0,\r\n sellingTax: data.TaxRate,\r\n productCategoryID: data.ProductCategoryID,\r\n productCategoryBrandID: data.ProductCategoryBrandID,\r\n productVolumeSizeID: data.ProductVolumeSizeID,\r\n productCategoryTypeID: data.ProductCategoryTypeID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n result: asyncSubmit.result,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetSalesHistory = (values, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: sales, loading } = useApiRes(\r\n Main_URL +\r\n `Sales/GetSaleHistory?VendorLocationID=${VendorLocationID}&VendorID=${VendorID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n\r\n return { sales, loading };\r\n};\r\n\r\nexport const GetProductDailySales = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: sales, loading } = useApiRes(\r\n Main_URL +\r\n `SalesReport/GetProductDailySales?VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n\r\n return { sales, loading };\r\n};\r\n\r\nexport const GetVendorLocationDailyDIscount = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: discount, loading } = useApiRes(\r\n Main_URL +\r\n `FinanceReport/GetVendorLocationDailyDiscount?VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n\r\n return { discount, loading };\r\n};\r\n\r\nexport const GetDailyDipVariance = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: variance, loading } = useApiRes(\r\n Main_URL +\r\n `StockReport/GetVendorDailyTotalDipVariance?VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n\r\n return { variance, loading };\r\n};\r\n\r\nexport const GetProductSalesReport = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: sales, loading } = useApiRes(\r\n Main_URL +\r\n `SalesReport/GetProductSales?VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n\r\n return { sales, loading };\r\n};\r\n\r\nexport const GetInvoiceCustomerSalesHistory = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: invoice, loading } = useApiRes(\r\n Main_URL +\r\n `Sales/GetVendorCustomerInvoiceSales?VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n\r\n return { invoice, loading };\r\n};\r\n\r\nexport const GetAttendantClockSales = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: sales, loading } = useApiRes(\r\n Main_URL +\r\n `SalesReport/GetAttendantClockSales?VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n\r\n return { sales, loading };\r\n};\r\n\r\nexport function AddVendorSale(data) {\r\n return fetch(Main_URL + \"Finance/AddVendorPaymentMethod\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n userID: 0,\r\n clockNO: \"string\",\r\n vendorID: 0,\r\n vendorLocationID: 0,\r\n customerID: 0,\r\n assetID: 0,\r\n totalAmount: 0,\r\n saleID: \"string\",\r\n saleDetailArray: data.saleDetail,\r\n salePaymentArray: data.receipt,\r\n }),\r\n });\r\n}\r\n\r\nexport function AddVendorClock(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Supervisor/AddVendorShiftUserClock\";\r\n const requestBody = {\r\n addedBy: UserID,\r\n clockTypeID: data.ClockTypeID,\r\n shiftClockNO: data.ShiftClockNO,\r\n shiftRefNO: data.ShiftRefNO,\r\n vendorID: VendorID,\r\n vendorLocationID: data.VendorLocationID,\r\n clockDate: data.ClockDate,\r\n userClockArray: data.UserClockArray,\r\n accountBalanceArray: [],\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function ApproveVendorShift(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Supervisor/ApproveShiftClock\";\r\n const requestBody = {\r\n shiftClockNO: data.ShiftClockNO,\r\n vendorLocationID: data.VendorLocationID,\r\n approvedBy: UserID,\r\n statusID: 2,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function UpdateMpesaStartTime(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/UpdateShiftMpesaStartTime\";\r\n const requestBody = {\r\n shiftRefNO: data.ShiftRefNO,\r\n mpesaStartTime: data.MpesaStartTime,\r\n mpesaStartAmount: data.MpesaAmount,\r\n addedBy: UserID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function ApproveVendorClock(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Supervisor/ApproveUserClock\";\r\n const requestBody = {\r\n clockNO: data.ClockNO,\r\n approvedBy: UserID,\r\n VendorLocationID: data.VendorLocationID,\r\n statusID: 2,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddVendorShift(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const currentTime = moment().format(\"HH:mm:ss\");\r\n const passedDate = moment(data.ClockDate).format(\"YYYY-MM-DD\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Supervisor/AddVendorShift\";\r\n const requestBody = {\r\n addedBy: UserID,\r\n clockTypeID: data.ClockTypeID,\r\n dipStatusID: data.DipStatusID,\r\n shiftClockNO: data.ShiftClockNO,\r\n vendorID: VendorID,\r\n vendorLocationID: data.VendorLocationID,\r\n clockDate: `${passedDate} ${currentTime}`,\r\n userClockArray: data.UserClockArray,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddVendorShiftTimeAllowance(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/AddShiftTimeAllowance\";\r\n const requestBody = {\r\n addedBy: UserID,\r\n shiftRefNO: data.ShiftRefNO,\r\n timeAdded: data.TimeAdded,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function CloseVendorShift(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Supervisor/CloseVendorShift\";\r\n const requestBody = {\r\n addedBy: UserID,\r\n vendorLocationID: data.VendorLocationID,\r\n vendorID: VendorID,\r\n shiftRefNO: data.ShiftRefNO,\r\n shiftClockNO: data.ShiftClockNO,\r\n vendorName: data.VendorName,\r\n vendorLocationName: data.VendorLocationName,\r\n shiftType: data.ShiftType,\r\n shiftPDF: data.ShiftPDF,\r\n dipVarianceReason: data.DipVarianceReason,\r\n userClockArray: data.UserClockArray,\r\n tankParentArray: data.TankParentArray,\r\n accountBalances: data.AccountBalances,\r\n contactLists: data.ContactLists,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetOpenShifts = (VendorLocationID, refresh) => {\r\n const { data, error } = useApiRes(\r\n Main_URL + `Supervisor/GetOpenShiftS?VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { data, error };\r\n};\r\n\r\nexport const GetVendorUser = (VendorLocationID, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: users, error } = useApiRes(\r\n Main_URL +\r\n `Admin/GetVendorUsers?VendorID=${VendorID}&VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { users, error };\r\n};\r\n\r\nexport const GetVendorGeneralSalesTax = (\r\n VendorLocationID,\r\n TaxDate,\r\n refresh\r\n) => {\r\n const { data: salestax, error } = useApiRes(\r\n Main_URL +\r\n `FinanceReport/GetGeneratedTax?VendorLocationID=${VendorLocationID}&TaxDate=${TaxDate}`,\r\n { refresh }\r\n );\r\n return { salestax, error };\r\n};\r\n\r\nexport const GetVendorWithHoldingTax = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: wtax, error } = useApiRes(\r\n Main_URL +\r\n `Finance/GetVendorWithholdingInvoice?StartDate=${start}&EndDate=${end}&VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { wtax, error };\r\n};\r\n\r\nexport const GetVendorGeneralPurchaseTax = (\r\n VendorLocationID,\r\n TaxDate,\r\n refresh\r\n) => {\r\n const { data: ptax, error } = useApiRes(\r\n Main_URL +\r\n `FinanceReport/GetGeneralPurchaseTax?VendorLocationID=${VendorLocationID}&TaxDate=${TaxDate}`,\r\n { refresh }\r\n );\r\n return { ptax, error };\r\n};\r\n\r\nexport function UpdateInvoiceWithholdingTax(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/UpdateWithholdingTaxInvoice\";\r\n const requestBody = {\r\n saleIDs: data?.Sales,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n return {\r\n result: asyncSubmit.result,\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetVendorClockFreeUser = (VendorLocationID, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: users, error } = useApiRes(\r\n Main_URL +\r\n `Admin/GetVendorClockFreeUsers?VendorID=${VendorID}&VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { users, error };\r\n};\r\n\r\nexport function AddVendorUserRole(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Admin/PostUserPolicyAssignment\";\r\n const requestBody = {\r\n userID: data.UserID,\r\n vendorID: VendorID,\r\n vendorLocationID: data.VendorLocationID,\r\n addedBy: UserID,\r\n userPolicyArray: data.UserPolicyArray,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n return {\r\n result: asyncSubmit.result,\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function RemoveVendorUserRole(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Admin/RemoveUserPolicyAssignment\";\r\n const requestBody = {\r\n userID: data.UserID,\r\n vendorID: VendorID,\r\n vendorLocationID: data.VendorLocationID,\r\n addedBy: UserID,\r\n userPolicyArray: data.UserPolicyArray,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n return {\r\n result: asyncSubmit.result,\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddVendorUser(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Admin/VendorUserRegistration\";\r\n const requestBody = {\r\n UserID: 0,\r\n VendorID: VendorID,\r\n VendorLocationID: data.VendorLocationID,\r\n AddedBy: UserID,\r\n FirstName: data.FirstName,\r\n countryCode: data.CountryCode,\r\n LastName: data.LastName,\r\n PhoneNumber: data.PhoneNumber,\r\n UserTypeID: data.UserTypeID,\r\n canSell: data.CanSell,\r\n Email: data.Email,\r\n UserImage: 0,\r\n stationsAssignmentArray: data.StationArray,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n result: asyncSubmit.result,\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function UpdateVendorUser(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Admin/UpdateVendorUser\";\r\n const requestBody = {\r\n userID: data.UserID,\r\n firstName: data.FirstName,\r\n lastName: data.LastName,\r\n\r\n phoneNumber: data.PhoneNumber,\r\n email: data.Email,\r\n addedBy: UserID,\r\n stationsAssignmentArray: data?.StationArray,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n result: asyncSubmit.result,\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function RemoveVendorUser(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Admin/RemoveVendorUser\";\r\n const requestBody = {\r\n VendorLocationID: data.VendorLocationID,\r\n VendorUserID: data.VendorUserID,\r\n AddedBy: UserID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function ResetUserPassword(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Users/AdminResetRequestPasscode\";\r\n const requestBody = {\r\n phoneNumber: data.PhoneNumber,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n result: asyncSubmit.result,\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetVendorClock = (values, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: clocks, error } = useApiRes(\r\n Main_URL +\r\n `Supervisor/GetVendorUserClock?VendorLocationID=${VendorLocationID}&VendorID=${VendorID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n return { clocks, error };\r\n};\r\n\r\nexport const GetVendorShifts = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: shifts, error } = useApiRes(\r\n Main_URL +\r\n `Supervisor/GetShiftClockSummary?VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n return { shifts, error };\r\n};\r\n\r\nexport const GetVendorShiftsAdminACtions = (values, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { DateRange, user } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: actions, error } = useApiRes(\r\n Main_URL +\r\n `AdminReport/GetAdminAction?StartDate=${start}&EndDate=${end}&VendorID=${VendorID}&UserID=${user}`,\r\n { refresh }\r\n );\r\n return { actions, error };\r\n};\r\n\r\nexport const GetVendorDailyNozzleReadingSummary = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: MeterReading, error } = useApiRes(\r\n Main_URL +\r\n `Supervisor/GetVendorDailySummaryNozzleReading?VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n return { MeterReading, error };\r\n};\r\n\r\nexport const GetVendorDailyShiftSummary = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: daily, error } = useApiRes(\r\n Main_URL +\r\n `FinanceReport/GetShiftSummaryDailyClocks?VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n return { daily, error };\r\n};\r\n\r\nexport const GetVendorShiftsDetails = (\r\n VendorLocationID,\r\n ShiftClockNO,\r\n refresh\r\n) => {\r\n const { data: details, error } = useApiRes(\r\n Main_URL +\r\n `FinanceReport/GetShiftClockDetail?VendorLocationID=${VendorLocationID}&ShiftClockNO=${ShiftClockNO}`,\r\n { refresh }\r\n );\r\n return { details, error };\r\n};\r\n\r\nexport const GetVendorDailyShiftsDetails = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: shifts, error } = useApiRes(\r\n Main_URL +\r\n `FinanceReport/GetShiftSummaryDailyClocks?VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n return { shifts, error };\r\n};\r\n\r\nexport const GetUserType = (refresh) => {\r\n const { data: types, error } = useApiRes(Main_URL + `Admin/GetUserType`, {\r\n refresh,\r\n });\r\n return { types, error };\r\n};\r\n\r\nexport const GetVendorStorageLocation = (VendorLocationID, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: stores, error } = useApiRes(\r\n Main_URL +\r\n `Admin/GetVendorStorageLocation?VendorLocationID=${VendorLocationID}&VendorID=${VendorID}`,\r\n { refresh }\r\n );\r\n return { stores, error };\r\n};\r\n\r\nexport function AddStorageLocation(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Admin/AddVendorStorageLocation\";\r\n const requestBody = {\r\n storageLocationName: data.storageLocationName,\r\n vendorID: VendorID,\r\n vendorLocationID: data.VendorLocationID,\r\n addedBy: UserID,\r\n productCategoryID: 0,\r\n vendorStorageLocationID: 0,\r\n productCategories: data.productCategories,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function UpdateVendorStorageLocation(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Admin/UpdateVendorStorageLocation\";\r\n const requestBody = {\r\n storageLocationName: data.storageLocationName,\r\n vendorID: VendorID,\r\n vendorLocationID: data.VendorLocationID,\r\n addedBy: UserID,\r\n productCategoryID: 0,\r\n vendorStorageLocationID: data.VendorStorageLocationID,\r\n productCategories: data.productCategories,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function RemoveVendorStorageLocation(data) {\r\n return fetch(Main_URL + \"Admin/UpdateVendorStorageLocation\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n VendorStorageLocationID: data.VendorStorageLocationID,\r\n AddedBy: UserID,\r\n }),\r\n });\r\n}\r\n\r\nexport function AddStockMovement(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Stock/PostStockMovementTx\";\r\n const requestBody = {\r\n VendorID: VendorID,\r\n shiftClockNO: data.ShiftClockNO,\r\n VendorLocationID: data.VendorLocationID,\r\n movementTypeID: data.MovementTypeID,\r\n SourceLocationID: data.SourceLocationID || 0,\r\n DestinationLocationID: data.DestinationLocationID || 0,\r\n TransactionDate: data.TransactionDate || new Date(),\r\n AddedBy: UserID,\r\n StockNO: 0,\r\n MonthlyBalance: data.MonthlyBalance,\r\n StockMovementDetailArray: data.stocks,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddVendorProductWriteOff(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Stock/AddProductWriteOff\";\r\n const requestBody = {\r\n writeOffID: 0,\r\n productID: data.ProductID,\r\n productName: data.ProductName,\r\n quantity: data.Quantity,\r\n writeOffValue: data.WriteoffValue,\r\n writeOffReason: data.WriteOffReason,\r\n dateAdded: new Date(),\r\n vendoStorageLocationID: data.VendorStorageLocationID,\r\n VendorLocationID: data.VendorLocationID,\r\n addedBy: UserID,\r\n statusID: 1,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n result: asyncSubmit.result,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddStockTakeItem(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Stock/PostStockTakeItem\";\r\n const requestBody = {\r\n stockNO: data.StockNO,\r\n productID: data.ProductID,\r\n quantity: data.Quantity,\r\n previousQuantity: 0,\r\n dateAdded: data.StockDate,\r\n stockDate: data.StockDate,\r\n statusID: 1,\r\n addedBy: UserID,\r\n productPrice: data.ProductPrice,\r\n PurchasePrice: data.PurchasePrice,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function UpdateStockMovement(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Stock/UpdateStockMovement\";\r\n const requestBody = {\r\n stockNO: data.StockNO,\r\n stockDate: data.StockDate,\r\n monthlyBalance: data.MonthlyBalance,\r\n addedBy: UserID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddStockTransfer(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Stock/PostStockTransferTx\";\r\n const requestBody = {\r\n addedBy: UserID,\r\n vendorID: VendorID,\r\n sourceLocationID: data.VendorLocationID,\r\n shiftID: data.ShiftID,\r\n transferInfo: \"\",\r\n transferNO: \"\",\r\n transferDetailArray: data.stocks,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function DeleteStockTransfer(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Stock/DeleteStockTransfer\";\r\n const requestBody = {\r\n addedBy: UserID,\r\n transferNO: data.TransferNO,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function UpdateStockTakeItem(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Stock/UpdateStockTakeItem\";\r\n const requestBody = {\r\n ProductID: data.ProductID,\r\n Quantity: data.Quantity,\r\n PreviousQuantity: data.PreviousQuantity,\r\n PurchasePrice: data.PurchasePrice,\r\n StockDate: data.DateAdded,\r\n StockNO: data.StockNO,\r\n AddedBy: UserID,\r\n StockMovementDetailID: data.StockMovementDetailID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n result: asyncSubmit.result,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetStockMovement = (values, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: movement, error } = useApiRes(\r\n Main_URL +\r\n `Stock/GetVendorStockMovement?VendorLocationID=${VendorLocationID}&VendorID=${VendorID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n return { movement, error };\r\n};\r\n\r\nexport const GetStockMovementDetail = (StockNO, refresh) => {\r\n const { data: movement, error } = useApiRes(\r\n Main_URL + `Stock/GetVendorStockMovementDetail?StockNO=${StockNO}`,\r\n { refresh }\r\n );\r\n return { movement, error };\r\n};\r\n\r\nexport const GetStockTransfer = (values, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: transfer, error } = useApiRes(\r\n Main_URL +\r\n `Stock/GetStockTransfer?VendorID=${VendorID}&VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDAte=${end}`,\r\n { refresh }\r\n );\r\n return { transfer, error };\r\n};\r\n\r\nexport const GetStocInboundkTransfer = (VendorLocationID, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: inbound, error } = useApiRes(\r\n Main_URL +\r\n `Stock/GetStockInTransfer?VendorID=${VendorID}&VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { inbound, error };\r\n};\r\n\r\nexport function ReceiveTransfer(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Stock/ReceiveStockTransferDetail\";\r\n const requestBody = {\r\n stockTransferDetailID: data.StockTransferDetailID,\r\n stockInTankID: data.StockInTankID,\r\n quantity: data.ReceivedQuantity,\r\n receivedBy: UserID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n result: asyncSubmit.result,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddProductPrice(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/SaveProductPrice\";\r\n const requestBody = {\r\n VendorID: VendorID,\r\n VendorLocationID: data.VendorLocationID,\r\n ProductID: data.ProductID,\r\n Amount: data.ProductPrice,\r\n AddedBy: UserID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n result: asyncSubmit.result,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddCashCollection(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/SaveVendorPaymentCollection\";\r\n const requestBody = {\r\n VendorID: VendorID,\r\n VendorLocationID: data.VendorLocationID,\r\n VendorPaymentMethodID: +data.VendorPaymentMethodID,\r\n CashDropCollectionID: 0,\r\n ClockNO: data.ClockNO,\r\n CollectionNO: 0,\r\n CollectedAmount: +data.Amount,\r\n AddedBy: UserID,\r\n CollectionTypeID: 1,\r\n Comment: data.Comment || \"\",\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddClockCashDrop(data) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n return fetch(Main_URL + \"Finance/SaveClockCashDrop\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n vendorID: VendorID,\r\n vendorPaymentMethodID: data.VendorPaymentMethodID,\r\n vendorLocationID: data.VendorLocationID,\r\n clockNO: data.ClockNO,\r\n amount: data.Amount,\r\n addedBy: UserID,\r\n cashDropTypeID: 0,\r\n refNO: data.Comment,\r\n }),\r\n });\r\n}\r\n\r\nexport function UpdateCashDrop(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/UpdateClockCashDrop\";\r\n const requestBody = {\r\n VendorCashDropID: data.VendorCashDropID,\r\n Amount: data.Amount,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetCashDrop = (ClockNO, refresh) => {\r\n const { data: drops, error } = useApiRes(\r\n Main_URL + `Finance/GetClockCashDrop?ClockNO=${ClockNO}`,\r\n { refresh }\r\n );\r\n return { drops, error };\r\n};\r\n\r\nexport const GetClockSummary = (ClockNO, refresh) => {\r\n const { data: summary, error } = useApiRes(\r\n Main_URL + `Sales/GetClockSaleSummaryDashBoard?ClockNO=${ClockNO}`,\r\n { refresh }\r\n );\r\n return { summary, error };\r\n};\r\n\r\nexport const GetVendorSalesDashboard = (VendorLocationID, refresh) => {\r\n const { data: summary, error } = useApiRes(\r\n Main_URL +\r\n `SalesReport/GetSalesDashBoardReport?VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { summary, error };\r\n};\r\n\r\nexport const GetVendorClockRTT = (ClockNO, refresh) => {\r\n const { data: rtt, error } = useApiRes(\r\n Main_URL + `Stock/GetClockRTT?ClockNO=${ClockNO}`,\r\n { refresh }\r\n );\r\n return { rtt, error };\r\n};\r\n\r\nexport const GetDailySHiftRTTDetail = (\r\n ClockDate,\r\n VendorLocationID,\r\n refresh\r\n) => {\r\n const { data: rtt, error } = useApiRes(\r\n Main_URL +\r\n `Stock/GetVendorShiftDailyDetailRTT?ClockDate=${ClockDate}&VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { rtt, error };\r\n};\r\n\r\nexport function ReverseClockRTT(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Stock/ReverseClockRTT\";\r\n const requestBody = {\r\n vendorRttID: data.VendorRTTID,\r\n clockNO: data.ClockNO,\r\n addedBy: UserID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function ApproveClockRTT(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Stock/ApproveClockRTT\";\r\n const requestBody = {\r\n vendorRttID: data.VendorRTTID,\r\n clockNO: data.ClockNO,\r\n addedBy: UserID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddClockRTT(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Stock/AddVendorClockRTT\";\r\n const requestBody = {\r\n clockNO: data.ClockNO,\r\n vendorTankParentNozzleID: data.VendorTankParentNozzleID,\r\n shiftNO: data.ShiftNO,\r\n totalAmount: data.TotalAmount,\r\n productPrice: data.ProductPrice,\r\n productID: data.ProductID,\r\n tankID: data.TankID,\r\n addedBy: UserID,\r\n rttReason: data.RTTReason,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetShiftTransfer = (ClockNO, refresh) => {\r\n const { data: summary, error } = useApiRes(\r\n Main_URL + `Sales/GetClockSaleSummaryDashBoard?ClockNO=${ClockNO}`,\r\n { refresh }\r\n );\r\n return { summary, error };\r\n};\r\n\r\nexport const GetClockPumps = (ClockNO, VendorLocationID, refresh) => {\r\n const { data: summary, error } = useApiRes(\r\n Main_URL +\r\n `Supervisor/GetVendorLocationClockPump?VendorLocationID=${VendorLocationID}&ClockNO=${ClockNO}`,\r\n { refresh }\r\n );\r\n return { summary, error };\r\n};\r\n\r\nexport const GetCashDropCollection = (ClockNO, refresh) => {\r\n const { data: collection, error } = useApiRes(\r\n Main_URL + `Finance/GetUserClockPayment?ClockNO=${ClockNO}`,\r\n { refresh }\r\n );\r\n return { collection, error };\r\n};\r\n\r\nexport const GetDropCollection = (ClockNO, refresh) => {\r\n const { data: collection, error } = useApiRes(\r\n Main_URL + `Finance/GetClockPaymentCollection?ClockNO=${ClockNO}`,\r\n { refresh }\r\n );\r\n return { collection, error };\r\n};\r\n\r\nexport const GetClockMpesaCollection = (ClockNO, refresh) => {\r\n const { data: mpesa, error } = useApiRes(\r\n Main_URL + `Finance/GetUserClockPayment?ClockNO=${ClockNO}`,\r\n { refresh }\r\n );\r\n return { mpesa, error };\r\n};\r\n\r\nexport const GetClockMpesaAdmin = (ClockNO, VendorPaymentMethodID, refresh) => {\r\n const { data: mpesa, error } = useApiRes(\r\n Main_URL +\r\n `Finance/GetAdminUserClockPayment?ClockNO=${ClockNO}&VendorPaymentMethodID=${VendorPaymentMethodID}`,\r\n { refresh }\r\n );\r\n return { mpesa, error };\r\n};\r\n\r\nexport function GetPayments(values, refresh) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const controller = \"Finance/GetPaymentTransAction\";\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD HH:mm\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD HH:mm\");\r\n const url = `?VendorLocationID=${VendorLocationID}&VendorID=${VendorID}&StartDate=${start}&EndDate=${end}`;\r\n const {\r\n data: payment,\r\n loading: isLoading,\r\n // getData,\r\n } = useApiRes(Main_URL + controller + url, { refresh });\r\n\r\n return { payment, isLoading };\r\n}\r\n\r\nexport const GetUnusedPayments = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD HH:mm\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD HH:mm\");\r\n const { data: payment, error } = useApiRes(\r\n Main_URL +\r\n `TransAction/GetVendorUnusedAdminTransAction?VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n return { payment, error };\r\n};\r\n\r\nexport const GetMarkedPayments = (values, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: markedlist, error } = useApiRes(\r\n Main_URL +\r\n `FinanceReport/GetMarkedTransAction?VendorID=${VendorID}&VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n\r\n return { markedlist, error };\r\n};\r\n\r\nexport const GetParentTanks = (refresh) => {\r\n const { data: parent, error } = useApiRes(Main_URL + `Stock/GetTankParent`, {\r\n refresh,\r\n });\r\n return { parent, error };\r\n};\r\n\r\nexport function AddTankNozzle(data) {\r\n return fetch(Main_URL + \"Stock/AddVendorTankParentNozzle\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n TankParentID: data.TankID,\r\n AddedBy: UserID,\r\n NozzleID: data.NozzleID,\r\n }),\r\n });\r\n}\r\n\r\nexport function CloseClock(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Supervisor/CloseUserClock\";\r\n const requestBody = {\r\n ClockNO: data.ClockNO,\r\n varianceReason: data.VarianceReason,\r\n ExpectedAmount: data.TotalAmount,\r\n accountedAmount: data.AccountedAmount,\r\n varianceAmount: data.VarianceAmount,\r\n ClockedOutBy: UserID,\r\n StatusID: data.StatusID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function ReopenClock(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Supervisor/ReOpenUserClock\";\r\n const requestBody = {\r\n ClockNO: data.ClockNO,\r\n AddedBy: UserID,\r\n VendorLocationID: data.VendorLocationID,\r\n clockDate: new Date(data.ClockDate),\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetPumpNozzles = (VendorLocationID, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: nozzles, error } = useApiRes(\r\n Main_URL +\r\n `Stock/GetVendorLocationPumpNozzle?VendorLocationID=${VendorLocationID}&VendorID=${VendorID}`,\r\n { refresh }\r\n );\r\n return { nozzles, error };\r\n};\r\n\r\nexport function AddPumpNozzle(data) {\r\n const VendorID = encryptSession.getItem(\"ci\");\r\n return fetch(Main_URL + \"Stock/AddVendorLocationPumpNozzle\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n NozzleName: data.NozzleName,\r\n PumpID: data.PumpID,\r\n AddedBy: UserID,\r\n VendorLocationID: data.VendorLocationID,\r\n VendorID: VendorID,\r\n TankParentID: data.TankParentID,\r\n }),\r\n });\r\n}\r\n\r\nexport function UpdatePumpNozzle(data) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n return fetch(Main_URL + \"Stock/UpdateVendorTankParentNozzle\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n NozzleID: data.NozzleID,\r\n VendorTankParentNozzleID: data.VendorTankParentNozzleID,\r\n NozzleName: data.NozzleName,\r\n PumpID: data.PumpID,\r\n AddedBy: UserID,\r\n VendorLocationID: data.VendorLocationID,\r\n VendorID: VendorID,\r\n TankParentID: data.TankParentID,\r\n }),\r\n });\r\n}\r\n\r\nexport function RemovePumpNozzle(data) {\r\n return fetch(Main_URL + \"Stock/RemoveVendorLocationPumpNozzle\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n NozzleID: data.NozzleID,\r\n AddedBy: UserID,\r\n }),\r\n });\r\n}\r\n\r\nexport const GetTankNozzle = (TankID, refresh) => {\r\n const { data: nozzles, error } = useApiRes(\r\n Main_URL + `Stock/GetVendorTankPumpNozzle?TankID=${TankID}`,\r\n { refresh }\r\n );\r\n return { nozzles, error };\r\n};\r\n\r\nexport function RemoveAssignment(NozzleID) {\r\n return fetch(Main_URL + \"Stock/RemoveVendorLocationTankNozzle\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n VendorTankNozzleID: NozzleID,\r\n StatusID: 2,\r\n }),\r\n });\r\n}\r\n\r\nexport function PostVendorCustomer(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Customer/PostVendorCustomer\";\r\n const requestBody = {\r\n customerName: data.CustomerName,\r\n customerPhone: data.CustomerPhone,\r\n countryCode: data.CountryCode,\r\n customerTypeID: data.CustomerTypeID,\r\n CustomerIdentityImageID: 0,\r\n customerMail: data.CustomerMail,\r\n kraPin: data.KraPin,\r\n openingBalance: data.OpeningBalance,\r\n creditLimit: data.CreditLimit,\r\n paymentTerms: data.PaymentTerms,\r\n addedBy: UserID,\r\n vendorID: VendorID,\r\n isPrepayCustomer: data.isPrepayCustomer,\r\n creditLimitNotification: data.CreditLimits,\r\n isCreditLimitMandatory: data.IsCreditLimitMandatory,\r\n fuelingLocationArray: data.FuelingLocationArray,\r\n customerAssetsArray: data.CustomerAssetsArray,\r\n cardArray: data.CardArray,\r\n usersArray: data.UsersArray,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n result: asyncSubmit.result,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddCustomer(data) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n return fetch(Main_URL + \"Customer/AddVendorCustomer\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n CustomerName: data.CustomerName,\r\n CustomerPhone: data.CustomerPhone,\r\n CustomerMail: data.CustomerMail,\r\n OpeningBalance: data.OpeningBalance,\r\n CreditLimit: data.CreditLimit,\r\n PaymentTerms: data.PaymentTerms,\r\n KRAPin: data.KRAPin,\r\n AddedBy: UserID,\r\n VendorLocationID: data.VendorLocationID,\r\n VendorID: VendorID,\r\n IsCreditLimitMandatory: data.IsCreditLimitMandatory,\r\n CreditLimitNotification: data.CreditLimitNotification,\r\n }),\r\n });\r\n}\r\n\r\nexport function DeleteCustomer(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Customer/UpdateVendorCustomerStatus\";\r\n const requestBody = {\r\n customerID: data.CustomerID,\r\n addedBy: UserID,\r\n statusID: data.StatusID || 0,\r\n vendorID: VendorID,\r\n customerTypeID: data.CustomerTypeID,\r\n vendorParentCardGroupName: data.VendorParentCardGroupName,\r\n vendorName: data.VendorName,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n result: asyncSubmit.result,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddAsset(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Customer/AddVendorCustomerAsset\";\r\n const requestBody = {\r\n customerID: data.VendorCustomerID,\r\n assetName: data.AssetName,\r\n addedBy: UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function UpdateCustomer(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Customer/UpdateVendorCustomer\";\r\n const requestBody = {\r\n OpeningBalance: data.OpeningBalance,\r\n prevOpeningBalance: data.PrevOpeningBalance,\r\n CustomerID: data.CustomerID,\r\n CustomerTypeID: data.CustomerTypeID,\r\n CustomerName: data.CustomerName,\r\n CustomerPhone: data.CustomerPhone,\r\n CustomerMail: data.CustomerMail,\r\n CreditLimit: data.CreditLimit,\r\n IsCreditLimitMandatory: data.IsCreditLimitMandatory,\r\n KRAPin: data.KRAPin,\r\n CreditLimitNotification: data.CreditLimitNotification,\r\n PaymentTerms: data.PaymentTerms,\r\n isWithholding: data.IsWithholding,\r\n isTemporary: data.IsTemporary,\r\n AddedBy: UserID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n result: asyncSubmit.result,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddCustomerAssets(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Customer/AddVendorCustomerAsset\";\r\n const requestBody = {\r\n CustomerID: data.CustomerID,\r\n AssetName: data.AssetName,\r\n AddedBy: UserID,\r\n IsDelivery: data.IsDelivery,\r\n IsAssetStation: data.IsAssetStation,\r\n StationID: data.StationID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n result: asyncSubmit.result,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function RemoveCustomerAssets(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Customer/RemoveVendorCustomerAsset\";\r\n const requestBody = {\r\n assetID: data.AssetID,\r\n AddedBy: UserID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n result: asyncSubmit.result,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddVendorLocation(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Admin/AddVendorLocation\";\r\n const requestBody = {\r\n VendorLocationID: 0,\r\n VendorID: VendorID,\r\n AddedBy: UserID,\r\n UserID: data.UserID,\r\n NozzleReadingTypeID: data.NozzleReadingTypeID,\r\n VendorLocationName: data.VendorLocationName,\r\n ContactPerson: data.ContactPerson,\r\n VendorLocationPhone: data.VendorLocationPhone,\r\n TradingName: data.TradingName,\r\n isStockMandatory: data.isMandatory ? 1 : 0,\r\n Slogan: \"\",\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetVendorLocationDetails = (VendorLocationID, refresh) => {\r\n const { data, error } = useApiRes(\r\n Main_URL +\r\n `Admin/GetVendorLocationDetails?VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { data, error };\r\n};\r\n\r\nexport function UpdateVendorLocation(data) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n return fetch(Main_URL + \"Admin/UpdateVendorLocationDetails\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n vendorLocationID: data.VendorLocationID,\r\n vendorID: VendorID,\r\n vendorLocationName: data.VendorLocationName,\r\n contactPerson: data.ContactPerson,\r\n vendorLocationPhone: data.VendorLocationPhone,\r\n contactEmail: data.ContactEmail,\r\n address: data.Address,\r\n tradingName: data.TradingName,\r\n imageID: data.ImageID,\r\n nozzleReadingTypeID: data.NozzleReadingTypeID,\r\n ptsID: data.PtsID,\r\n acceptedVariance: data.AcceptedVariance,\r\n is24Hr: data.Is24Hr,\r\n isStockMandatory: data.IsStockMandatory,\r\n slogan: data.Slogan,\r\n minAcceptedVariance: data.MinAcceptedVariance,\r\n maxAcceptedVariance: data.MaxAcceptedVariance,\r\n shiftTimeAllowance: data.ShiftTimeAllowance,\r\n currencyCode: data.CurrencyCode,\r\n dipImageMandatory: data.DipImageMandatory,\r\n accountImageMandatory: data.AccountImageMandatory,\r\n nozzleImageMandatory: data.NozzleImageMandatory,\r\n dipShift: data.DipShift,\r\n addedBy: data.AddedBy,\r\n dateAdded: data.DateAdded,\r\n statusID: data.StatusID,\r\n }),\r\n });\r\n}\r\n\r\nexport const GetProductCategory = (refresh) => {\r\n const { data: category, error } = useApiRes(\r\n Main_URL + `Stock/GetProductCategory`,\r\n { refresh }\r\n );\r\n return { category, error };\r\n};\r\n\r\nexport const GetVendorPaymentMethod = (VendorLocationID, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: methods, error } = useApiRes(\r\n Main_URL +\r\n `Finance/GetVendorPaymentMethod?VendorID=${VendorID}&VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { methods, error };\r\n};\r\n\r\nexport function AddVendorSupplierPayment(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/AddVendorSupplierTopUp\";\r\n const requestBody = {\r\n vendorSupplierID: data.SupplierID,\r\n vendorPaymentMethodID: data.VendorPaymentMethodID,\r\n referenceNO: data.ReferenceNO,\r\n topUpAmount: data.TotalAmount,\r\n addedBy: UserID,\r\n vendorID: VendorID,\r\n transactionDate: data.TransactionDate,\r\n vendorLocationID: data.VendorLocationID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetVendorPaymentMethodBalances = (values, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: methods, error } = useApiRes(\r\n Main_URL +\r\n `FinanceReport/GetPaymentMethodBalances?VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n return { methods, error };\r\n};\r\n\r\nexport function AddVendorPaymentMethod(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/AddVendorPaymentMethod\";\r\n const requestBody = {\r\n vendorPaymentMethodID: 0,\r\n vendorPaymentMethodName: data.VendorPaymentMethodName,\r\n paymentMethodID: data.PaymentMethodID,\r\n openingBalance: data.OpeningBalance,\r\n holdingLimit: data.HoldingLimit,\r\n referenceNO: \"\",\r\n vendorID: VendorID,\r\n vendorLocationID: data.VendorLocationID,\r\n addedBy: UserID,\r\n isVisibleToAttendant: data.IsVisibleToAttendant,\r\n isHashed: data.IsHashed,\r\n isRecon: data.IsRecon,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function UpdateVendorPaymentMethod(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/UpdateVendorPaymentMethod\";\r\n const requestBody = {\r\n vendorPaymentMethodID: data.VendorPaymentMethodID,\r\n vendorPaymentMethodName: data.VendorPaymentMethodName,\r\n paymentMethodID: data.PaymentMethodID,\r\n openingBalance: data.OpeningBalance,\r\n holdingLimit: data.HoldingLimit,\r\n referenceNO: \"\",\r\n vendorID: VendorID,\r\n vendorLocationID: data.VendorLocationID,\r\n addedBy: UserID,\r\n isVisibleToAttendant: data.IsVisibleToAttendant,\r\n isHashed: data.IsHashed,\r\n isRecon: data.IsRecon,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function RemoveVendorPaymentMethod(data) {\r\n return fetch(Main_URL + \"Finance/RemoveVendorPaymentMethod\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n VendorPaymentMethodID: data.VendorPaymentMethodID,\r\n AddedBy: UserID,\r\n }),\r\n });\r\n}\r\n\r\nexport function AddPumpAssignment(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Supervisor/AddUserPumpAssignmentTx\";\r\n const requestBody = {\r\n clockNO: data.ClockNO,\r\n userID: data.UserID,\r\n vendorID: VendorID,\r\n vendorLocationID: data.VendorLocationID,\r\n addedBy: UserID,\r\n pumpArray: [data.pumpx],\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetPumpsByClock = (VendorLocationID, ClockNO, refresh) => {\r\n const { data: cpumps, error } = useApiRes(\r\n Main_URL +\r\n `Stock/GetAttendantPumpNozzle?VendorLocationID=${VendorLocationID}&ClockNO=${ClockNO}`,\r\n { refresh }\r\n );\r\n return { cpumps, error };\r\n};\r\n\r\nexport function RemoveAssignePump(data) {\r\n return fetch(Main_URL + \"Supervisor/DeactivateUserPumpAssignment\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n userPumpAssignmentID: data.UserPumpAssignmentID,\r\n userID: UserID,\r\n }),\r\n });\r\n}\r\n\r\nexport function ConfirmNozzleReading(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Stock/AcceptTankPumpNozzleReading\";\r\n const requestBody = {\r\n AddedBy: data.UserID,\r\n ShiftID: data.ShiftID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function OpenNozzleReading(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Stock/OpenTankPumpNozzleReadings\";\r\n const requestBody = {\r\n clockNO: data.ClockNO,\r\n vendorTankParentNozzleID: data.VendorTankParentNozzleID,\r\n eOpeningReading: data.EOpeningReading,\r\n mOpeningReading: data.MOpeningReading,\r\n cOpeningReading: data.COpeningReading,\r\n vendorLocationID: data.VendorLocationID,\r\n addedBy: data.UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function CloseNozzleReading(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Stock/CloseTankPumpNozzleReadings\";\r\n const requestBody = {\r\n shiftID: data.ShiftID,\r\n VendorTankParentNozzleID: data.VendorTankParentNozzleID,\r\n eClosingReading: data.EClosingReading,\r\n mClosingReading: data.MClosingReading,\r\n cClosingReading: data.CClosingReading,\r\n closedBy: data.UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function ResetDipReading(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Stock/PostDipReadingVarianceReset\";\r\n const requestBody = {\r\n dipMonth: data.DipMonth,\r\n dipYear: data.DipYear,\r\n vendorLocationID: data.VendorLocationID,\r\n addedBy: UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddVendorPurchase(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const currentTime = moment().format(\"HH:mm:ss\");\r\n const passedDate = moment(data.DateAdded).format(\"YYYY-MM-DD\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Stock/PostVendorPurchaseTx\";\r\n const requestBody = {\r\n VendorID: VendorID,\r\n PurchaseNO: 0,\r\n shiftRefNO: data.ShiftRefNO,\r\n SupplierID: data.VendorSupplierID,\r\n VendorLocationID: data.VendorLocationID,\r\n OtherCost: data.OtherCost,\r\n AddedBy: UserID,\r\n DateAdded: `${passedDate} ${currentTime}`,\r\n TotalAmount: data.Subtotal + data.OtherCost,\r\n InvoiceNO: data.InvoiceNO,\r\n PurchaseDetailArray: data.rows,\r\n PurchasePaymentArray: data.payments,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function UpdateVendorPurchase(data, successFn, errorFn) {\r\n const currentTime = moment().format(\"HH:mm:ss\");\r\n const passedDate = moment(data?.DateAdded).format(\"YYYY-MM-DD\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Stock/UpdateVendorPurchaseOrder\";\r\n const requestBody = {\r\n vendorPurchaseID: data.VendorPurchaseID,\r\n supplierID: data.SupplierID,\r\n otherCost: data.OtherCost,\r\n dateAdded: `${passedDate} ${currentTime}`,\r\n totalAmount:\r\n data.DetailArray?.reduce(\r\n (a, b) => a + b.Quantity * b.PurchasePrice * (1 + b.BuyingTax),\r\n 0\r\n ) + +data.OtherCost,\r\n invoiceNO: data.InvoiceNO,\r\n shiftRefNO: data.ShiftRefNO,\r\n addedBy: UserID,\r\n statusID: 1,\r\n purchaseDetailArray: data.DetailArray,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function ReceiveVendorPurchase(data) {\r\n return fetch(Main_URL + \"Stock/ReceivePurchaseDelivery\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n vendorPurchaseID: data.VendorPurchaseID,\r\n invoiceNO: data.InvoiceNO,\r\n addedBy: UserID,\r\n }),\r\n });\r\n}\r\n\r\nexport function ReverseVendorPurchase(data) {\r\n return fetch(Main_URL + \"Stock/ReversePurchase\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n vendorPurchaseID: data.VendorPurchaseID,\r\n purchaseNO: data.PurchaseNO,\r\n invoiceNO: data.InvoiceNO,\r\n addedBy: UserID,\r\n }),\r\n });\r\n}\r\n\r\nexport function AddVendorPurchasePayment(data) {\r\n return fetch(Main_URL + \"Stock/AddPurchasePayment\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n purchaseNO: data.PurchaseNO,\r\n amountPaid: data.AmountPaid,\r\n vendorPaymentMethodID: data.VendorPaymentMethodID,\r\n referenceNO: data.ReferenceNO,\r\n addedBy: UserID,\r\n }),\r\n });\r\n}\r\n\r\nexport const GetDashBoardData = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: dashboard, mutate } = useApiRes(\r\n Main_URL +\r\n `AdminReport/GetAdminDashBoardReport?StartDate=${start}&EndDate=${end}&VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { dashboard, mutate };\r\n};\r\n\r\nexport const GetVolumeSalesPerCategory = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: salescategory } = useApiRes(\r\n Main_URL +\r\n `SalesReport/GetProductCategoryDailySales?VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n return { salescategory };\r\n};\r\n\r\nexport const GetSalesPerCategoryPredictions = (VendorLocationID, refresh) => {\r\n const { data: predictions } = useApiRes(\r\n Main_URL +\r\n `SalesReport/PredictMonthlySalesByCategory?VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { predictions };\r\n};\r\n\r\nexport const GetThisMonthDashBoardData = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: thimonth, mutate } = useApiRes(\r\n Main_URL +\r\n `AdminReport/GetAdminDashBoardReport?StartDate=${start}&EndDate=${end}&VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { thimonth, mutate };\r\n};\r\n\r\nexport const GetDailySalesReport = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: dsr, error } = useApiRes(\r\n Main_URL +\r\n `SalesReport/GetDailySalesReport?StartDate=${start}&EndDate=${end}&VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { dsr, error };\r\n};\r\n\r\nexport const GetUserSalesReport = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: udsr, error } = useApiRes(\r\n Main_URL +\r\n `SalesReport/GetUserSalesReport?StartDate=${start}&EndDate=${end}&UserID=${UserID}&VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { udsr, error };\r\n};\r\n\r\nexport function AddVendorSupplier(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Admin/PostVendorSupplier\";\r\n const requestBody = {\r\n VendorSupplierID: 0,\r\n VendorID: VendorID,\r\n AddedBy: UserID,\r\n VendorSupplierName: data.SupplierName,\r\n ContactName: data.SupplierName,\r\n ContactPhone: data.ContactPhone,\r\n AssetMileage: data.AssetMileage,\r\n ContactEmail: data.ContactEmail,\r\n kraPin: data.KRAPin,\r\n OpeningBalance: data.OpeningBalance,\r\n supplierLocationArray: data.StationArray,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetVendorSupplier = (VendorLocationID, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: supplier, error } = useApiRes(\r\n Main_URL + `Admin/GetVendorSupplier?VendorID=${VendorID}`,\r\n { refresh }\r\n );\r\n return { supplier, error };\r\n};\r\n\r\nexport const GetVendorSupplierAllStatement = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: supplier, error } = useApiRes(\r\n Main_URL +\r\n `Finance/GetAllSupplierVendorStatement?VendorSupplierID=${VendorLocationID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n return { supplier, error };\r\n};\r\n\r\nexport const GetVendorSupplierList = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: supplier, error } = useApiRes(\r\n Main_URL +\r\n `Finance/GetVendorSupplierList?VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n return { supplier, error };\r\n};\r\n\r\nexport const GetVendorDebtors = (values, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { DateRange, VendorLocationID, CustomerTypeID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: debtors, error } = useApiRes(\r\n Main_URL +\r\n `Customer/GetVendorDebtors?VendorLocationID=${VendorLocationID}&VendorID=${VendorID}&CustomerTypeID=${CustomerTypeID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n return { debtors, error };\r\n};\r\n\r\nexport const GetVendorSupplierStatement = (values, refresh) => {\r\n const { DateRange, SupplierID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: statement, error } = useApiRes(\r\n Main_URL +\r\n `Finance/GetVendorSupplierStatement?SupplierID=${SupplierID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n return { statement, error };\r\n};\r\n\r\nexport const GetVendorSupplierPurchases = (values, refresh) => {\r\n const { DateRange, SupplierID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: purchase, error } = useApiRes(\r\n Main_URL +\r\n `Stock/GetVendorSupplierPurchase?StartDate=${start}&EndDate=${end}&SupplierID=${SupplierID}`,\r\n { refresh }\r\n );\r\n return { purchase, error };\r\n};\r\n\r\nexport const GetVendorSupplierPayments = (values, refresh) => {\r\n const { DateRange, SupplierID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: payments, error } = useApiRes(\r\n Main_URL +\r\n `Finance/GetSupplierPayment?VendorSupplierID=${SupplierID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n return { payments, error };\r\n};\r\n\r\nexport const GetVendorCustomerCreditNote = (CustomerID, refresh) => {\r\n // const { DateRange, VendorLocationID } = values;\r\n // const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n // const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: creditnote, error } = useApiRes(\r\n Main_URL + `Finance/GetVendorCustomerCreditNote?CustomerID=${CustomerID}`,\r\n { refresh }\r\n );\r\n return { creditnote, error };\r\n};\r\n\r\nexport function AddVendorCustomerCreditNote(data, successFn, errorFn) {\r\n const currentTime = moment().format(\"HH:mm:ss\");\r\n const passedDate = moment(data.DateAdded).format(\"YYYY-MM-DD\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/AddVendorCreditNote\";\r\n const requestBody = {\r\n creditNoteID: 0,\r\n customerID: data.VendorCustomerID,\r\n vendorLocationID: data.VendorLocationID,\r\n dateAdded: `${passedDate} ${currentTime}`,\r\n amount: data.Amount,\r\n statusID: 1,\r\n description: data.Description,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetVendorCustomerOverdraft = (values, refresh) => {\r\n const { DateRange, CustomerID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data, error } = useApiRes(\r\n Main_URL +\r\n `Finance/GetVendorCustomerOverdraft?StartDate=${start}&EndDate=${end}&CustomerID=${CustomerID}`,\r\n { refresh }\r\n );\r\n return { data, error };\r\n};\r\n\r\nexport function AddVendorCustomerOverdraft(data, successFn, errorFn) {\r\n const currentTime = moment().format(\"HH:mm:ss\");\r\n const passedDate = moment(data.DateAdded).format(\"YYYY-MM-DD\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/AddVendorCustomerOverdraft\";\r\n const requestBody = {\r\n customerOverdraftID: 0,\r\n customerID: data.customerID,\r\n amount: data.amount,\r\n description: data.description,\r\n expiryDate: data.expiryDate,\r\n dateAdded: `${passedDate} ${currentTime}`,\r\n statusID: 1,\r\n addedBy: UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function DeleteVendorCustomerOverdraft(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/DeleteVendorCustomerOverdraft\";\r\n const requestBody = {\r\n customerOverdraftID: data?.CustomerOverdraftID,\r\n addedBy: UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function DeleteVendorSupplierPayment(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/ReverseVendorSupplierTopUp\";\r\n const requestBody = {\r\n vendorSupplierTopUpID: data?.VendorSupplierTopUpID,\r\n addedBy: UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function UpdateVendorCustomerCreditNote(data, successFn, errorFn) {\r\n const currentTime = moment().format(\"HH:mm:ss\");\r\n const passedDate = moment(data.DateAdded).format(\"YYYY-MM-DD\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/UpdateVendorCreditNote\";\r\n const requestBody = {\r\n creditNoteID: data.CreditNoteID,\r\n customerID: data.CustomerID,\r\n dateAdded: `${passedDate} ${currentTime}`,\r\n amount: data.Amount,\r\n statusID: 0,\r\n description: data.Description,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetVendorCustomerDebitNote = (CustomerID, refresh) => {\r\n // const { DateRange, VendorLocationID } = values;\r\n // const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n // const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: creditnote, error } = useApiRes(\r\n Main_URL + `Finance/GetVendorCustomerDebitNote?CustomerID=${CustomerID}`,\r\n { refresh }\r\n );\r\n return { creditnote, error };\r\n};\r\n\r\nexport function AddVendorCustomerDebitNote(data, successFn, errorFn) {\r\n const currentTime = moment().format(\"HH:mm:ss\");\r\n const passedDate = moment(data.DateAdded).format(\"YYYY-MM-DD\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/AddVendorDebitNote\";\r\n const requestBody = {\r\n creditNoteID: 0,\r\n customerID: data.VendorCustomerID,\r\n vendorLocationID: data.VendorLocationID,\r\n dateAdded: `${passedDate} ${currentTime}`,\r\n amount: data.Amount,\r\n statusID: 1,\r\n description: data.Reason,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function DeleteVendorCustomerDebitNote(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/UpdateVendorDebitNote\";\r\n const requestBody = {\r\n debitNoteID: data.DebitNoteID,\r\n customerID: data.CustomerID,\r\n dateAdded: data.DateAdded,\r\n amount: data.Amount,\r\n description: data.Decription,\r\n statusID: 0,\r\n addedBy: UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddDipFuelTesting(data) {\r\n return fetch(Main_URL + \"Stock/AddTankDipTesting\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n DipNO: data.DipNO,\r\n Quantity: data.Quantity,\r\n AddedBy: UserID,\r\n }),\r\n });\r\n}\r\n\r\nexport const GetPurchase = (values, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: purchase, error } = useApiRes(\r\n Main_URL +\r\n `Stock/GetVendorPurchase?StartDate=${start}&EndDate=${end}&VendorLocationID=${VendorLocationID}&VendorID=${VendorID}`,\r\n { refresh }\r\n );\r\n return { purchase, error };\r\n};\r\n\r\nexport const GetProductPerfomance = (VendorLocationID, refresh) => {\r\n const { data: report, error } = useApiRes(\r\n Main_URL +\r\n `SalesReport/GetProductReport?VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { report, error };\r\n};\r\n\r\nexport const GetFuelStockReport = (\r\n VendorLocationID,\r\n DateRange,\r\n TankParentID,\r\n refresh\r\n) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: report, error } = useApiRes(\r\n Main_URL +\r\n `Stock/GetVendorTankParentDip?VendorID=${VendorID}&VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}&TankParentID=${TankParentID}`,\r\n { refresh }\r\n );\r\n return { report, error };\r\n};\r\n\r\nexport const GetWetStockStockVariance = (\r\n VendorLocationID,\r\n DateRange,\r\n TankParentID,\r\n refresh\r\n) => {\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: report, error } = useApiRes(\r\n Main_URL +\r\n `StockReport/GetVendorWetSTockVariance?VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}&TankParentID=${TankParentID}`,\r\n { refresh }\r\n );\r\n return { report, error };\r\n};\r\n\r\nexport const GetVendorTankParent = (VendorLocationID, ClockDate, refresh) => {\r\n const dateadded = ClockDate\r\n ? ClockDate\r\n : DateTimeFormat(new Date(), \"dateonly\");\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: parent, error } = useApiRes(\r\n Main_URL +\r\n `Stock/GetVendorTankParent?VendorID=${VendorID}&VendorLocationID=${VendorLocationID}&ClockDate=${dateadded}`,\r\n { refresh }\r\n );\r\n return { parent, error };\r\n};\r\n\r\nexport function RerunCummulativeVariance(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Stock/PostDipReadingVarianceReset\";\r\n const requestBody = {\r\n dipMonth: data.DipMonth,\r\n dipYear: data.DipYear,\r\n vendorLocationID: data.VendorLocationID,\r\n addedBy: UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetVendorTankByParent = (VendorLocationID, ParentID, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: tank, error } = useApiRes(\r\n Main_URL +\r\n `Stock/GetVendorTankByParent?VendorID=${VendorID}&VendorLocationID=${VendorLocationID}&TankParentID=${ParentID}`,\r\n { refresh }\r\n );\r\n return { tank, error };\r\n};\r\n\r\nexport function UpdateProduct(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Stock/UpdateVendorProduct\";\r\n const requestBody = {\r\n productName: data.ProductName,\r\n productImageID: data.ProductImageID,\r\n uom: data.UOM,\r\n buyingTax: data.TaxRate,\r\n sellingTax: data.TaxRate,\r\n IsStockItem: data.IsStockItem ? 1 : 0,\r\n productCategoryID: data.ProductCategoryID,\r\n productCategoryBrandID: data.productCategoryBrandID,\r\n productVolumeSizeID: data.productVolumeSizeID,\r\n productCategoryTypeID: data.ProductCategoryTypeID,\r\n addedBy: UserID,\r\n productID: data.ProductID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function DeleteVendorProduct(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Stock/RemoveVendorProduct\";\r\n const requestBody = {\r\n AddedBy: UserID,\r\n ProductID: data.ProductID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n result: asyncSubmit.result,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetVendorProductCategory = (VendorLocationID, refresh) => {\r\n const { data: category, error } = useApiRes(\r\n Main_URL +\r\n `Stock/GetVendorProductCategory?VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { category, error };\r\n};\r\n\r\nexport const GetVendorAllProducts = (refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: allProduct, error } = useApiRes(\r\n Main_URL + `Stock/GetVendorProduct?VendorID=${VendorID}`,\r\n { refresh }\r\n );\r\n return { allProduct, error };\r\n};\r\n\r\nexport const SearchVendorProduct = (searchText, refresh) => {\r\n const { data: suggestion, error } = useApiRes(\r\n Main_URL + `Stock/SearchVendorProduct?SearchTerm=${searchText}`,\r\n { refresh }\r\n );\r\n return { suggestion, error };\r\n};\r\n\r\nexport const GetVendorProfile = (refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: profile, error } = useApiRes(\r\n Main_URL + `Admin/GetVendorProfile?VendorID=${VendorID}`,\r\n { refresh }\r\n );\r\n return { profile, error };\r\n};\r\n\r\nexport const GetVendorInvoice = (refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: invoice, error } = useApiRes(\r\n Main_URL + `Account/GetVendorAccountInvoice?VendorID=${VendorID}`,\r\n { refresh }\r\n );\r\n return { invoice, error };\r\n};\r\n\r\nexport function AddVendorAccountPayment(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Account/RequestSTKPush\";\r\n const requestBody = {\r\n phoneNumber: data.PhoneNumber,\r\n invoiceNO: data.InvoiceNO,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n result: asyncSubmit.result,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function ConfirmAccountPayment(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Account/CompleteServicePayment\";\r\n const requestBody = {\r\n transID: data.TransID,\r\n invoiceNO: data.InvoiceNO,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function CheckSTKPushAccountPayment(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL =\r\n Main_URL + `Account/CheckStkPush?CheckoutRequestID=${data.TransID}`;\r\n const requestBody = {\r\n phoneNumber: data.PhoneNumber,\r\n invoiceNO: data.InvoiceNO,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n result: asyncSubmit.result,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function CompleteAccountPayment(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Account/RequestSTKPush\";\r\n const requestBody = {\r\n phoneNumber: data.PhoneNumber,\r\n invoiceNO: data.InvoiceNO,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetCashClockSales = (ClockNO, refresh) => {\r\n const { data: sales, error } = useApiRes(\r\n Main_URL + `Sales/GetClockAllSales?ClockNO=${ClockNO}`,\r\n { refresh }\r\n );\r\n return { sales, error };\r\n};\r\n\r\nexport const GetShiftDailySales = (ClockDate, VendorLocationID, refresh) => {\r\n const { data: sales, error } = useApiRes(\r\n Main_URL +\r\n `Sales/GetShiftDailyDetailSales?ClockDate=${ClockDate}&VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { sales, error };\r\n};\r\n\r\nexport const GetShiftDipReading = (ShiftRefNO, refresh) => {\r\n const { data: dips, error } = useApiRes(\r\n Main_URL + `Stock/GetShiftDipReading?ShiftRefNO=${ShiftRefNO}`,\r\n { refresh }\r\n );\r\n return { dips, error };\r\n};\r\n\r\nexport function AddSalePayment(data) {\r\n return fetch(Main_URL + \"Finance/UsePaymentCollection\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n VendorPaymentCollectionID: data.VendorPaymentCollectionID,\r\n VendorPaymentMethodID: data.VendorPaymentMethodID,\r\n SaleID: data.SaleID,\r\n TransID: data.TransID,\r\n TransAmount: data.TransAmount,\r\n AddedBy: UserID,\r\n }),\r\n });\r\n}\r\n\r\nexport const GetCustomerPrePayment = (refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: prepayment, error } = useApiRes(\r\n Main_URL + `Finance/GetVendorPrepayAccount?VendorID=${VendorID}`,\r\n { refresh }\r\n );\r\n return { prepayment, error };\r\n};\r\n\r\nexport function AddSalesTX(data) {\r\n return fetch(Main_URL + \"Finance/UsePaymentCollection\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n UserID: UserID,\r\n ClockNO: \"string\",\r\n VendorID: 0,\r\n VendorLocationID: 0,\r\n CustomerID: 0,\r\n AssetID: 0,\r\n TotalAmount: 0,\r\n SaleID: \"string\",\r\n SaleDetailArray: [\r\n {\r\n ShiftNO: \"string\",\r\n ProductID: 0,\r\n PumpID: 0,\r\n VendorTankParentNozzleID: 0,\r\n ProductPrice: 0,\r\n Quantity: 0,\r\n TotalAmount: 0,\r\n },\r\n ],\r\n SalePaymentArray: [],\r\n }),\r\n });\r\n}\r\n\r\nexport const GetPrimaryTopupType = (VendorLocationID, refresh) => {\r\n const { data: types, error } = useApiRes(\r\n Main_URL + `Finance/GetPrimaryTopUpType`,\r\n { refresh }\r\n );\r\n return { types, error };\r\n};\r\n\r\nexport const GetDailyShiftNonshift = (ClockDate, VendorLocationID, refresh) => {\r\n const { data: nonshift, error } = useApiRes(\r\n Main_URL +\r\n `Finance/GetShiftDailyDetailNonShift?ClockDate=${ClockDate}&VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { nonshift, error };\r\n};\r\n\r\nexport function AddVendorTopUpType(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/AddVendorTopupType\";\r\n const requestBody = {\r\n vendorTopUpTypeName: data.VendorTopUpTypeName,\r\n topUpTypeID: data.TopUpTypeID,\r\n addedBy: UserID,\r\n vendorID: VendorID,\r\n vendorLocationID: data.VendorLocationID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetVendorTopUpTypes = (VendorLocationID, refresh) => {\r\n const { data: types, error } = useApiRes(\r\n Main_URL +\r\n `Finance/GetVendorTopUpType?VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { types, error };\r\n};\r\n\r\nexport function AddCustomerTopUp(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/SaveClockTopUp\";\r\n const requestBody = {\r\n vendorID: VendorID,\r\n vendorPaymentMethodID: data.VendorPaymentMethodID,\r\n vendorLocationID: data.VendorLocationID,\r\n clockNO: data.ClockNO,\r\n ShiftClockNO: data.ShiftClockNO,\r\n amount: data.Amount,\r\n UserID: data.UserID,\r\n addedBy: UserID,\r\n topUpTypeID: data.TopUpTypeID,\r\n vendorTopUpTypeID: data.VendorTopUpTypeID,\r\n customerID: data.CustomerID,\r\n refNO: data.ReferenceNO,\r\n comment: data.Comment,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddCustomerPrepayment(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/AddVendorTopUpPrepay\";\r\n const requestBody = {\r\n vendorCustomerID: data?.VendorCustomerID,\r\n vendorPaymentMethodID: data?.VendorPaymentMethodID,\r\n referenceNO: data?.ReferenceNO,\r\n topUpAmount: data?.Amount,\r\n addedBy: UserID,\r\n vendorID: VendorID,\r\n transactionDate: data?.TransactionDate,\r\n vendorLocationID: data?.VendorLocationID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function ReverseCustomerTopUp(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/ReverseClockTopUp\";\r\n const requestBody = {\r\n vendorTopUpID: data.VendorTopUpID,\r\n addedBy: UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AdminReverseCustomerTopUp(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/ReverseVendorTopUpPrepay\";\r\n const requestBody = {\r\n vendorCustomerTopUpID: data.VendorCustomerTopUpID,\r\n addedBy: UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetStockLevel = (VendorLocationID, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: stocks, loading: isLoading } = useApiRes(\r\n Main_URL +\r\n `Stock/GetVendorStockLevel?VendorID=${VendorID}&VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { stocks, isLoading };\r\n};\r\n\r\nexport const GetVendorLocationStockLevel = (values, refresh) => {\r\n const { DateRange, VendorLocationID, ProductCategoryID, StoreID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: stocks, loading: isLoading } = useApiRes(\r\n Main_URL +\r\n `StockReport/GetProductStockLevel?StartDate=${start}&EndDate=${end}&VendorLocationID=${VendorLocationID}&ProductCategoryID=${ProductCategoryID}&StoreID=${StoreID}`,\r\n { refresh }\r\n );\r\n return { stocks, isLoading };\r\n};\r\n\r\nexport function UpdateStockLevel(data) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n return fetch(Main_URL + \"Stock/UpdateStockLevel\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n StockLevelID: data.StockLevelID,\r\n Quantity: data.Quantity,\r\n vendorStorageLocationID: data.VendorStorageLocationID,\r\n PreviousQuantity: data.PreviousQty,\r\n ProductID: data.ProductID,\r\n VendorID: VendorID,\r\n VendorLocationID: data.VendorLocationID,\r\n AddedBy: UserID,\r\n }),\r\n });\r\n}\r\n\r\nexport const GetExpense = (values, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: expense, error } = useApiRes(\r\n Main_URL +\r\n `Finance/GetVendorExpense?VendorID=${VendorID}&VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n return { expense, error };\r\n};\r\n\r\nexport function AddVendorExpense(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/AddVendorExpense\";\r\n const requestBody = {\r\n ClockNO: data.ClockNO ? data.ClockNO : \"\",\r\n shiftClockNo: data.ShiftClockNo,\r\n VendorPaymentMethodID: data.VendorPaymentMethodID,\r\n UserID: UserID,\r\n customerID: data.CustomerID,\r\n VendorID: VendorID,\r\n VendorLocationID: data.VendorLocationID,\r\n Description: data.Description,\r\n ExpenseAmount: data.ExpenseAmount,\r\n VendorExpenseTypeID: data.VendorExpenseTypeID,\r\n AddedBy: UserID,\r\n transactionDate: data.TransactionDate,\r\n type: data.ClockNO ? 0 : 1,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function UpdateVendorExpense(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/UpdateVendorExpense\";\r\n const requestBody = {\r\n vendorExpenseID: data.VendorExpenseID,\r\n description: data.Description,\r\n transactionDate: data.TransactionDate,\r\n actionedBy: UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function ReverseVendorSale(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Sales/ReverseSaleTx\";\r\n const requestBody = {\r\n UserID: UserID,\r\n SaleID: data.SaleID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function UpdateDipReading(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Stock/UpdateDipReading\";\r\n const requestBody = {\r\n DipID: data.DipID,\r\n NewReading: data.NewReading,\r\n AddedBy: UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetAccounts = (refresh) => {\r\n const { data: accounts, error } = useApiRes(\r\n Main_URL + `Finance/GetAccounts`,\r\n { refresh }\r\n );\r\n return { accounts, error };\r\n};\r\n\r\nexport function UpdateNozzleReading(data, successFn, errorFn) {\r\n const noerrorcheck = true;\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Stock/UpdateTankPumpNozzleReadings\";\r\n const requestBody = {\r\n shiftID: data.ShiftID,\r\n clockNO: data.ClockNO,\r\n eOpeningReading: +data.EOpeningReading,\r\n mOpeningReading: +data.MOpeningReading,\r\n cOpeningReading: +data.COpeningReading,\r\n eClosingReading: +data.EClosingReading,\r\n mClosingReading: +data.MClosingReading,\r\n cClosingReading: +data.CClosingReading,\r\n VendorLocationID: data.VendorLocationID,\r\n changeType: data.changeType,\r\n closedBy: UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody, noerrorcheck);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetPaymentMethod = (refresh) => {\r\n const { data: pmethods, error } = useApiRes(\r\n Main_URL + `Finance/GetPaymentMethod`,\r\n { refresh }\r\n );\r\n return { pmethods, error };\r\n};\r\n\r\nexport const GetLotSUmmary = (\r\n VendorLocationID,\r\n ShiftNO,\r\n clockType,\r\n refresh\r\n) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: lots, error } = useApiRes(\r\n Main_URL +\r\n `FinanceReport/GetLotRecon?VendorID=${VendorID}&VendorLocationID=${VendorLocationID}&LotDate=${ShiftNO}&ClockTypeID=${clockType}`,\r\n { refresh }\r\n );\r\n return { lots, error };\r\n};\r\n\r\nexport const GetShiftSUmmary = (\r\n VendorLocationID,\r\n ShiftNO,\r\n ShiftDate,\r\n refresh\r\n) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: summary, error } = useApiRes(\r\n Main_URL +\r\n `SalesReport/GetShiftSummaryReport?ShiftDate=${ShiftDate}&ShiftTypeID=1&VendorLocationID=${VendorLocationID}&VendorID=${VendorID}&LotNO=${ShiftNO}`,\r\n { refresh }\r\n );\r\n return { summary, error };\r\n};\r\n\r\nexport const GetShiftDetailedReport = (\r\n VendorLocationID,\r\n ShiftClockNo,\r\n refresh\r\n) => {\r\n const { data: report, error } = useApiRes(\r\n Main_URL +\r\n `SalesReport/GetShiftSummaryResult?VendorLocationID=${VendorLocationID}&ShiftClockNO=${ShiftClockNo}`,\r\n { refresh }\r\n );\r\n return { report, error };\r\n};\r\n\r\nexport const GetLotCollection = (\r\n VendorLocationID,\r\n ShiftNO,\r\n clockType,\r\n refresh\r\n) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: collection, error } = useApiRes(\r\n Main_URL +\r\n `FinanceReport/GetLotCollection?VendorID=${VendorID}&VendorLocationID=${VendorLocationID}&LotDate=${ShiftNO}&ClockTypeID=${clockType}`,\r\n { refresh }\r\n );\r\n return { collection, error };\r\n};\r\n\r\nexport function AddLotCollection(data, VendorLocationID, ShiftNO) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n return fetch(Main_URL + \"Finance/PostVendorLotCollectionTx\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n UserID: UserID,\r\n LotNO: moment(ShiftNO).format(\"YYYYMMDD\"),\r\n VendorID: VendorID,\r\n VendorLocationID: VendorLocationID,\r\n LotCollectionArray: [data],\r\n }),\r\n });\r\n}\r\n\r\nexport function ReverseMarkedPayment(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/ReverseMarkedPayment\";\r\n const requestBody = {\r\n id: data.ID,\r\n userClockPaymentTransActionID: data.ID,\r\n reversedBy: UserID,\r\n transID: data.TransID,\r\n reversedAmount: data.TransAmount,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function ApproveExpense(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/ApproveVendorExpense\";\r\n const requestBody = {\r\n VendorExpenseID: data.VendorExpenseID,\r\n ApprovedAmount: data.ApprovedAmount,\r\n ActionedBy: UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function RejectExpense(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/RejectVendorExpense\";\r\n const requestBody = {\r\n VendorExpenseID: data.VendorExpenseID,\r\n comment: \"\",\r\n ActionedBy: UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function DeactivatePayment(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/DeactivateTransAction\";\r\n const requestBody = {\r\n ID: data.ID,\r\n UserID: UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function ReactivatePayment(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/ReActivateTransAction\";\r\n const requestBody = {\r\n ID: data.ID,\r\n UserID: UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function ReopenNozzle(data, successFn, errorFn) {\r\n const noerrorcheck = true;\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Stock/ReopenTankPumpNozzleReading\";\r\n const requestBody = {\r\n ShiftNO: data.ShiftNO,\r\n ClockNO: data.ClockNO,\r\n AddedBy: UserID,\r\n ShiftID: data.ShiftID,\r\n VendorLocationID: data.VendorLocationID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody, noerrorcheck);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function ReverseCollection(data, successFn, errorFn) {\r\n const noerrorcheck = true;\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/ReverseCollection\";\r\n const requestBody = {\r\n VendorPaymentCollectionID: data.VendorPaymentCollectionID,\r\n CollectionNO: data.CollectionNO,\r\n ClockNO: data.ClockNO,\r\n ReversedBy: UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody, noerrorcheck);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function BillClockAttendant(data) {\r\n return fetch(Main_URL + \"Finance/PostUserClockBilling\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n ClockNO: data.ClockNO,\r\n UserID: data.UserID,\r\n BillingAmount: data.Variance,\r\n Comment: data.Comment,\r\n AddedBy: UserID,\r\n }),\r\n });\r\n}\r\n\r\nexport function UserAccountPayment(data) {\r\n return fetch(Main_URL + \"Finance/PostUserClockBillPayment\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n VendorPaymentMethodID: data.VendorPaymentMethodID,\r\n PaidAmount: data.PaidAmount,\r\n UserClockBillingAccountID: data.UserClockBillingAccountID,\r\n Comment: data.Comment,\r\n AddedBy: UserID,\r\n }),\r\n });\r\n}\r\n\r\nexport const GetPumpAssignment = (VendorLocationID, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: assignment, error } = useApiRes(\r\n Main_URL +\r\n `Supervisor/GetUserPumpAssignment?VendorLocationID=${VendorLocationID}&VendorID=${VendorID}`,\r\n { refresh }\r\n );\r\n return { assignment, error };\r\n};\r\n\r\nexport const GetUserDeductions = (VendorLocationID, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: variace, error } = useApiRes(\r\n Main_URL +\r\n `Finance/GetVendorUserClockAccount?VendorID=${VendorID}&VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { variace, error };\r\n};\r\n\r\nexport const GetClockExpense = (ClockNO, refresh) => {\r\n const { data: expense, error } = useApiRes(\r\n Main_URL + `Finance/GetVendorClockExpense?ClockNO=${ClockNO}`,\r\n { refresh }\r\n );\r\n return { expense, error };\r\n};\r\n\r\nexport const GetClockDiscount = (ClockNO, refresh) => {\r\n const { data, error } = useApiRes(\r\n Main_URL + `FinanceReport/GetVendorClockDiscount?ClockNO=${ClockNO}`,\r\n { refresh }\r\n );\r\n return { data, error };\r\n};\r\n\r\nexport function ActionClockDiscount(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/ApproveRejectClockDiscount\";\r\n const requestBody = {\r\n saleID: data.SaleID,\r\n statusID: data.StatusID,\r\n ActionedBy: UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetDailyShiftExpense = (ClockDate, VendorLocationID, refresh) => {\r\n const { data: expense, error } = useApiRes(\r\n Main_URL +\r\n `Finance/GetShiftDailyDetailExpense?ClockDate=${ClockDate}&VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { expense, error };\r\n};\r\n\r\nexport const GetClockSales = (ClockNO, refresh) => {\r\n const { data: sales, error } = useApiRes(\r\n Main_URL + `Sales/GetClockAllSales?ClockNO=${ClockNO}`,\r\n { refresh }\r\n );\r\n return { sales, error };\r\n};\r\n\r\nexport const GetCustomerSales = (CustomerID, DateRange, refresh) => {\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: sales, error } = useApiRes(\r\n Main_URL +\r\n `Sales/GetCustomerSaleHistory?CustomerID=${CustomerID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n return { sales, error };\r\n};\r\n\r\nexport function PostClockSale(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const currentTime = moment().format(\"HH:mm:ss\");\r\n const passedDate = moment(data.DateAdded).format(\"YYYY-MM-DD\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Sales/PostVendorSales\";\r\n const requestBody = {\r\n userID: UserID,\r\n clockNO: data.ClockNO,\r\n AssetMileage: data.AssetMileage,\r\n DateAdded: `${passedDate} ${currentTime}`,\r\n isStation: 0,\r\n vendorID: VendorID,\r\n vendorLocationID: data.VendorLocationID,\r\n customerID: data.CustomerID,\r\n customerTypeID: data.CustomerTypeID,\r\n assetID: data.AssetID,\r\n totalAmount: data.TotalAmount,\r\n MoreInfo: data.MoreInfo || \"\",\r\n saleID: \"0\",\r\n saleDetailArray: data.selected,\r\n salePaymentArray: data.receipt,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n result: asyncSubmit.result,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function PostClockPoints(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"FuelCard/PostScanReceipt\";\r\n const requestBody = {\r\n saleID: data.SaleID,\r\n addedBy: UserID,\r\n vendorCustomerID: data.CustomerID,\r\n vendorCustomerCardID: data.VendorCustomerCardID,\r\n vendorCustomerCardChildID: data.VendorCustomerCardChildID,\r\n pumpImageID: \"\",\r\n vehicleImageID: \"0\",\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n result: asyncSubmit.result,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function UpdateClockSale(data, successFn, errorFn) {\r\n const currentTime = moment().format(\"HH:mm:ss\");\r\n const passedDate = moment(data.DateAdded).format(\"YYYY-MM-DD\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Supervisor/UpdateSaleData\";\r\n const requestBody = {\r\n saleOrder: {\r\n id: data.ID,\r\n receivedAmount: data.ReceivedAmount,\r\n TotalAmount: data?.SaleDetailArray?.filter(\r\n (p) => p.StatusID === 1\r\n )?.reduce((a, b) => {\r\n return +a + +b.TotalAmount;\r\n }, 0),\r\n dateAdded: `${passedDate} ${currentTime}`,\r\n moreInfo: data.MoreInfo,\r\n },\r\n saleOrderInvoice: {\r\n saleOrderInvoiceID: 0,\r\n saleID: data.SaleID,\r\n customerID: data.CustomerID,\r\n assetID: data.AssetID,\r\n },\r\n saleDetails: data?.SaleDetailArray,\r\n addedBy: UserID,\r\n ClockNO: data.ClockNO,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetCustomerUsers = (CustomerID, refresh) => {\r\n const { data: users, error } = useApiRes(\r\n Main_URL + `Customer/GetVendorCustomerUsers?CustomerID=${CustomerID}`,\r\n { refresh }\r\n );\r\n return { users, error };\r\n};\r\n\r\nexport const GetShiftRefs = (VendorLocationID, date, refresh) => {\r\n const newDate = moment(date).format(\"YYYY-MM-DD\");\r\n const { data: ShiftInfoList, error } = useApiRes(\r\n Main_URL +\r\n `Supervisor/GetShiftRefNosByDateAndVendorLocation?DateClockedIN=${newDate}&VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { ShiftInfoList, error };\r\n};\r\n\r\nexport const GetCustomerPayments = (CustomerID, DateRange, refresh) => {\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: payments, error } = useApiRes(\r\n Main_URL +\r\n `Finance/GetCustomerPayment?CustomerID=${CustomerID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n return { payments, error };\r\n};\r\n\r\nexport const GetCustomerStations = (CustomerID, refresh) => {\r\n const { data: stations, error } = useApiRes(\r\n Main_URL + `Customer/GetVendorCustomerLocation?CustomerID=${CustomerID}`,\r\n { refresh }\r\n );\r\n return { stations, error };\r\n};\r\n\r\nexport function AddCustomerLocation(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Customer/AddCustomerFuelingLocation\";\r\n const requestBody = {\r\n vendorLocationID: data.VendorLocationID,\r\n vendorID: VendorID,\r\n vendorCustomerID: data.VendorCustomerID,\r\n contactEmail: \"\",\r\n vendorLocationPhone: \"\",\r\n addedBy: UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function DeleteCustomerLocation(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Customer/DeleteCustomerFuelingLocation\";\r\n const requestBody = {\r\n vendorCustomerLocationID: data.VendorCustomerLocationID,\r\n addedBy: UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetCustomerDiscount = (CustomerID, refresh) => {\r\n const { data: discount, error } = useApiRes(\r\n Main_URL + `Finance/GetVendorCustomerDiscount?CustomerID=${CustomerID}`,\r\n { refresh }\r\n );\r\n return { discount, error };\r\n};\r\n\r\nexport function PostCustomerDiscount(data) {\r\n console.log(data);\r\n return fetch(Main_URL + \"Finance/AddVendorCustomerDiscount\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n productID: data.ProductID,\r\n discountAmount: data.Amount,\r\n addedBy: UserID,\r\n customerID: data.VendorCustomerID,\r\n }),\r\n });\r\n}\r\n\r\nexport function DeactivateCustomerDiscount(data) {\r\n return fetch(Main_URL + \"Finance/DisableCustomerDiscount\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n customerDiscountID: data.CustomerDiscountID,\r\n addedBy: UserID,\r\n }),\r\n });\r\n}\r\n\r\nexport const GetCustomerStatement = (\r\n CustomerID,\r\n VendorLocationID,\r\n DateRange,\r\n refresh\r\n) => {\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: statement, loading } = useApiRes(\r\n Main_URL +\r\n `Sales/GetnewCustomerStatement?CustomerID=${CustomerID}&VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n return { statement, loading };\r\n};\r\n\r\nexport const GetCustomerAssets = (CustomerID, DateRange, refresh) => {\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: assets, error } = useApiRes(\r\n Main_URL +\r\n `Sales/GetCustomerAsset?CustomerID=${CustomerID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n return { assets, error };\r\n};\r\n\r\nexport const GetExpenseType = (VendorLocationID, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: types, error } = useApiRes(\r\n Main_URL +\r\n `Finance/GetVendorExpenseType?VendorID=${VendorID}&VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { types, error };\r\n};\r\n\r\nexport function AddExpenseType(data, successFn, errorFn) {\r\n const VendorID = 128; // encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/AddVendorExpenseType\";\r\n const requestBody = {\r\n VendorID: VendorID,\r\n VendorLocationID: data.VendorLocationID,\r\n VendorExpenseTypeName: data.ExpenseType,\r\n AddedBy: UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function UpdateExpenseType(data) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n return fetch(Main_URL + \"Finance/UpdateVendorExpenseType\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n VendorID: VendorID,\r\n VendorLocationID: data.VendorLocationID,\r\n VendorExpenseTypeName: data.VendorExpenseTypeName,\r\n AddedBy: UserID,\r\n }),\r\n });\r\n}\r\n\r\nexport function RemoveExpenseType(data) {\r\n return fetch(Main_URL + \"Finance/UpdateVendorExpenseType\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n VendorExpenseTypeID: data.VendorExpenseTypeID,\r\n AddedBy: UserID,\r\n }),\r\n });\r\n}\r\n\r\nexport const GetProductSales = (values, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { DateRange, VendorLocationID, ProductID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: sales, error } = useApiRes(\r\n Main_URL +\r\n `StockReport/GetStockProductSalesReport?StartDate=${start}&EndDate=${end}&VendorLocationID=${VendorLocationID}&VendorID=${VendorID}&ProductID=${ProductID}`,\r\n { refresh }\r\n );\r\n return { sales, error };\r\n};\r\n\r\nexport const GetProductStatment = (values, refresh) => {\r\n const { DateRange, VendorLocationID, ProductID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: statement, error } = useApiRes(\r\n Main_URL +\r\n `StockReport/GetVendorProductStatement?StartDate=${start}&EndDate=${end}&VendorLocationID=${VendorLocationID}&ProductID=${ProductID}`,\r\n { refresh }\r\n );\r\n return { statement, error };\r\n};\r\n\r\nexport const GetAllProductPurchase = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: purchase, error } = useApiRes(\r\n Main_URL +\r\n `StockReport/GetProductPurchaseReport?StartDate=${start}&EndDate=${end}&VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { purchase, error };\r\n};\r\n\r\nexport const GetProductPurchase = (values, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { DateRange, VendorLocationID, ProductID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: purchase, error } = useApiRes(\r\n Main_URL +\r\n `StockReport/GetStockProductPurchaseReport?StartDate=${start}&EndDate=${end}&VendorLocationID=${VendorLocationID}&VendorID=${VendorID}&ProductID=${ProductID}`,\r\n { refresh }\r\n );\r\n return { purchase, error };\r\n};\r\n\r\nexport const GetBalanceSheet = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: balance, error } = useApiRes(\r\n Main_URL +\r\n `FinanceReport/GetBalanceSheet?VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n return { balance, error };\r\n};\r\n\r\nexport const GetTrailBalance = (VendorLocationID, year, month, refresh) => {\r\n const { data: balance, loading } = useApiRes(\r\n Main_URL +\r\n `FinanceReport/GetTrialBalance?VendorLocationID=${VendorLocationID}&Month=${month}&Year=${year}`,\r\n { refresh }\r\n );\r\n return { balance, loading };\r\n};\r\n\r\nexport const GetCashIn = (values, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { DateRange } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: cashIn, error } = useApiRes(\r\n Main_URL +\r\n `FinanceReport/GetVendorCashIN?VendorID=${VendorID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n return { cashIn, error };\r\n};\r\n\r\nexport const GetCashFlow = (VendorLocationID, Year, refresh) => {\r\n const { data: cashflow, error } = useApiRes(\r\n Main_URL +\r\n `FinanceReport/GetCashflowStatement?VendorLocationID=${VendorLocationID}&Year=${Year}`,\r\n { refresh }\r\n );\r\n return { cashflow, error };\r\n};\r\n\r\nexport const GetVendorLocationAttendanceVariance = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: variance, error } = useApiRes(\r\n Main_URL +\r\n `Finance/GetVendorLocationAttendnantVariance?StartDate=${start}&EndDate=${end}&VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { variance, error };\r\n};\r\n\r\nexport const GetVendorAttendanceStatement = (values, refresh) => {\r\n const { DateRange, UserID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: statement, error } = useApiRes(\r\n Main_URL +\r\n `Finance/GetVendorAttendantVarianceStatement?StartDate=${start}&EndDate=${end}&UserID=${UserID}`,\r\n { refresh }\r\n );\r\n return { statement, error };\r\n};\r\n\r\nexport const GetVendorAttendantVariance = (values, refresh) => {\r\n const { DateRange, UserID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: variace, error } = useApiRes(\r\n Main_URL +\r\n `Finance/GetVendorAttendantVariance?StartDate=${start}&EndDate=${end}&UserID=${UserID}`,\r\n { refresh }\r\n );\r\n return { variace, error };\r\n};\r\n\r\nexport const GetVendorAttendantVariancePayment = (values, refresh) => {\r\n const { DateRange, UserID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: payment, error } = useApiRes(\r\n Main_URL +\r\n `Finance/GetVendorAttendantVariancePayment?StartDate=${start}&EndDate=${end}&UserID=${UserID}`,\r\n { refresh }\r\n );\r\n return { payment, error };\r\n};\r\n\r\nexport function AddAttendantVariancePayment(data, successFn, errorFn) {\r\n const noerrorcheck = true;\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/AddAttendnatVariancePayment\";\r\n const requestBody = {\r\n vendorAttendantVariancePaymentID: 0,\r\n vendorPaymentMethodID: data.VendorPaymentMethodID,\r\n userID: data.UserID,\r\n dateAdded: data.TransDate,\r\n amountPaid: data.Amount,\r\n vendorTopUpID: 0,\r\n clockNO: data.ClockNO,\r\n addedBy: UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody, noerrorcheck);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function ReverseAttendantVariancePayment(data, successFn, errorFn) {\r\n const noerrorcheck = true;\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/ReverseAttendantVariancePayment\";\r\n const requestBody = {\r\n vendorAttendantVariancePaymentID: data.VendorAttendantVariancePaymentID,\r\n addedBy: UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody, noerrorcheck);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function WriteOffAttendantVariance(data, successFn, errorFn) {\r\n const noerrorcheck = true;\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/WriteOffAttendnantVariance\";\r\n const requestBody = {\r\n variences: data.variances,\r\n addedBy: UserID,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody, noerrorcheck);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetCashOut = (values, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { DateRange } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: cashOut, error } = useApiRes(\r\n Main_URL +\r\n `FinanceReport/GetVendorCashOut?VendorID=${VendorID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n return { cashOut, error };\r\n};\r\n\r\nexport function AddMpesaPayment(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const noerrorcheck = true;\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/AddPaymentMessage\";\r\n const requestBody = {\r\n VendorID: VendorID,\r\n VendorLocationID: data.VendorLocationID,\r\n VendorPaymentMethodID: data.VendorPaymentMethodID,\r\n TransID: data.TransID,\r\n ClockNO: data.ClockNO || \"\",\r\n TransTime: moment(data.Transtime).format(\"hh:mm A\"),\r\n TransDate: moment(data.Transtime).format(\"DD/MM/YY\"),\r\n MpesaAmount: accountingFormat(+data.MpesaAmount),\r\n TransactionCost: accountingFormat(+data.TransactionCost || 0),\r\n AccountBalance: accountingFormat(+data.AccountBalance || 0),\r\n AddedBy: UserID,\r\n UserID: 0,\r\n CustomerName: data.CustomerName?.trim(),\r\n CustomerPhone: \"254\" + data.CustomerPhone,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody, noerrorcheck);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddMpesaBulkPayment(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const noerrorcheck = true;\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/AddPaymentMessages\";\r\n const requestBody = {\r\n VendorID: VendorID,\r\n VendorLocationID: data.VendorLocationID,\r\n VendorPaymentMethodID: data.VendorPaymentMethodID,\r\n TransID: data.TransID,\r\n ClockNO: data.ClockNO || \"\",\r\n TransTime: moment(data.Transtime).format(\"hh:mm A\"),\r\n TransDate: moment(data.Transtime).format(\"DD/MM/YY\"),\r\n MpesaAmount: accountingFormat(+data.MpesaAmount),\r\n TransactionCost: accountingFormat(+data.TransactionCost || 0),\r\n AccountBalance: accountingFormat(+data.AccountBalance || 0),\r\n AddedBy: UserID,\r\n UserID: 0,\r\n CustomerName: data.CustomerName?.trim(),\r\n CustomerPhone: \"254\" + data.CustomerPhone,\r\n isClosingBalance: 0,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody, noerrorcheck);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetIncomestatement = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD HH:mm\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD HH:mm\");\r\n const { data: income, error } = useApiRes(\r\n Main_URL +\r\n `FinanceReport/GetVendorIncomeStatement?VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n return { income, error };\r\n};\r\n\r\nexport const GetTransactionMessages = (values, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD HH:mm\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD HH:mm\");\r\n const { data: messages, error } = useApiRes(\r\n Main_URL +\r\n `Finance/GetPaymentTransActionMessage?VendorLocationID=${VendorLocationID}&VendorID=${VendorID}&StartDate=${start}&EndDate=${end}`,\r\n { refresh }\r\n );\r\n return { messages, error };\r\n};\r\n\r\nexport const GetPaymentMethodTransactions = (values, refresh) => {\r\n const { DateRange, VendorPaymentMethodID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD HH:mm\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD HH:mm\");\r\n const { data: trans, error } = useApiRes(\r\n Main_URL +\r\n `Finance/GetVendorPaymentMethodTrasaction?StartDate=${start}&EndDate=${end}&VendorPaymentMethodID=${VendorPaymentMethodID}`,\r\n { refresh }\r\n );\r\n return { trans, error };\r\n};\r\n\r\nexport function AddVendor(data) {\r\n return fetch(Main_URL + \"Admin/PostVendorRegistrationTx\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n userID: 0,\r\n vendorID: 0,\r\n vendorClientID: 0,\r\n vendorLocationID: 0,\r\n addedBy: 0,\r\n vendorName: data.VendorName,\r\n countryCode: data.CountryCode,\r\n firstName: data.FirstName,\r\n lastName: data.LastName,\r\n phoneNumber: data.PhoneNumber,\r\n email: data.Email,\r\n slogan: \"\",\r\n vendorImageID: 0,\r\n stationsArray: data.StationsArray,\r\n }),\r\n });\r\n}\r\n\r\nexport function MarkMpesaPayment(data, successFn, errorFn) {\r\n const noerrorcheck = true;\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/MarkTransActionMultiple\";\r\n const requestBody = {\r\n UserID: UserID,\r\n ClockNO: data.ClockNO,\r\n MarkedPaymentArray: data.MarkedPaymentArray,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody, noerrorcheck);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetMonthlyReport = (refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: report, error } = useApiRes(\r\n Main_URL + `SalesReport/GetMonthlyReport?VendorID=${VendorID}`,\r\n { refresh }\r\n );\r\n return { report, error };\r\n};\r\n\r\nexport const GetVendorPayroll = (refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: payroll, error } = useApiRes(\r\n Main_URL + `Payroll/GetVendorPayroll?VendorID=${VendorID}`,\r\n { refresh }\r\n );\r\n return { payroll, error };\r\n};\r\n\r\nexport function AddVendorPayroll(data) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n return fetch(Main_URL + \"Payroll/AddVendorPayroll\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n vendorID: VendorID,\r\n vendorLocationID: data.VendorLocationID,\r\n startDate: moment(data.StartDate).format(\"YYYY-MM-DD\"),\r\n endDate: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n payrollNO: \"\",\r\n dateAdded: new Date(),\r\n addedBy: UserID,\r\n statusID: 1,\r\n payrollDetailArray: data.rows,\r\n }),\r\n });\r\n}\r\n\r\nexport const GetVendorPayrollSalary = (VendorLocationID, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: salary, error } = useApiRes(\r\n Main_URL +\r\n `Payroll/GetVendorPayrollSalary?VendorID=${VendorID}&VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { salary, error };\r\n};\r\n\r\nexport function AddPayrollSalary(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Payroll/AddVendorPayrollSalary\";\r\n const requestBody = {\r\n vendorPayrollSalaryID: 0,\r\n userID: data.UserID,\r\n vendorID: VendorID,\r\n vendorLocationID: data.VendorLocationID,\r\n paymentType: data.PaymentType,\r\n salary: 0,\r\n statusID: 1,\r\n dateAdded: new Date(),\r\n addedBy: UserID,\r\n taxRate: data.TaxRate,\r\n idNumber: data.IDNumber,\r\n pinNumber: data.PinNumber,\r\n bankAccount: data.BankAccount,\r\n bankName: data.BankName,\r\n salaryItem: \"\",\r\n salaryItems: data.SalaryItems,\r\n };\r\n\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetVendorPayrollDeductions = (PayrollDetailID, refresh) => {\r\n const { data: deductions, error } = useApiRes(\r\n Main_URL + `Payroll/yrollDeduction?PayrollDetailID=${PayrollDetailID}`,\r\n { refresh }\r\n );\r\n return { deductions, error };\r\n};\r\n\r\nexport function AddPayrollDeduction(data) {\r\n return fetch(Main_URL + \"Payroll/AddVendorPayrollDeduction\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n vendorPayrollDeductionID: 0,\r\n payrollDetailID: data.PayrollDetailID,\r\n deductionItemID: data.VendorPayrollDeductionItemID,\r\n amount: data.Amount,\r\n userID: data.UserID,\r\n dateAdded: new Date(),\r\n description: data.Description,\r\n addedBy: UserID,\r\n statusID: 1,\r\n }),\r\n });\r\n}\r\n\r\nexport function UpdateUserClockVariance(UserClockVarianceID) {\r\n return fetch(\r\n Main_URL +\r\n `Payroll/UpdateUserClockVariance?UserClockVarianceID=${UserClockVarianceID}`,\r\n {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n // body: JSON.stringify({\r\n // vendorPayrollDeductionID: 0,\r\n // payrollDetailID: data.PayrollDetailID,\r\n // deductionItemID: data.VendorPayrollDeductionItemID,\r\n // amount: data.Amount,\r\n // userID: data.UserID,\r\n // dateAdded: new Date(),\r\n // description: data.Description,\r\n // addedBy: UserID,\r\n // statusID: 1,\r\n // }),\r\n }\r\n );\r\n}\r\n\r\nexport const GetVendorPayrollSalaryItems = (VendorLocationID, refresh) => {\r\n const { data, error } = useApiRes(\r\n Main_URL +\r\n `Payroll/GetVendorPayrollSalaryItem?VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { data, error };\r\n};\r\n\r\nexport function AddVendorSalaryItem(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Payroll/AddVendorPayrollSalaryItem\";\r\n const requestBody = {\r\n vendorID: VendorID,\r\n vendorLocationID: data.VendorLocationID,\r\n salaryItem: data.SalaryItem,\r\n itemType: data.ItemType,\r\n dateAdded: new Date(),\r\n statusID: 1,\r\n addedBy: UserID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddVendorBenefitItem(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Payroll/AddVendorBenefitItem\";\r\n const requestBody = {\r\n benefitItem: data.BenefitItem,\r\n vendorID: VendorID,\r\n dateAdded: new Date(),\r\n addedBy: UserID,\r\n statusID: 1,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetVendorPayrollBenefit = (PayrollDetailID, refresh) => {\r\n const { data: benefits, error } = useApiRes(\r\n Main_URL +\r\n `Payroll/GetVendorPayrollBenefit?PayrollDetailID=${PayrollDetailID}`,\r\n { refresh }\r\n );\r\n return { benefits, error };\r\n};\r\n\r\nexport function AddPayrollBenefit(data) {\r\n return fetch(Main_URL + \"Payroll/AddVendorPayrollBenefit\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n vendorPayrollBenefit: 0,\r\n payrollDetailID: data.PayrollDetailID,\r\n benefitItemID: data.VendorPayrollBenefitItemID,\r\n amount: data.Amount,\r\n userID: data.UserID,\r\n dateAdded: new Date(),\r\n description: data.Description,\r\n addedBy: UserID,\r\n statusID: 1,\r\n }),\r\n });\r\n}\r\n\r\nexport const GetVendorPayrollBenefitItem = (refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: benefititem, error } = useApiRes(\r\n Main_URL + `Payroll/GetVendorBenefitItem?VendorID=${VendorID}`,\r\n { refresh }\r\n );\r\n return { benefititem, error };\r\n};\r\n\r\nexport const GetVendorUserClockVariance = (values, refresh) => {\r\n const { DateRange, UserID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD HH:mm\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD HH:mm\");\r\n const { data: variance, error } = useApiRes(\r\n Main_URL +\r\n `Payroll/GetUserClockVariance?StartDate=${start}&EndDate=${end}&UserID=${UserID}`,\r\n { refresh }\r\n );\r\n return { variance, error };\r\n};\r\n\r\nexport const GetVendorOpenTankNozzle = (VendorLocationID, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: opennozzle, error } = useApiRes(\r\n Main_URL +\r\n `Stock/GetVendorOpenTankNozzle?VendorID=${VendorID}&VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n return { opennozzle, error };\r\n};\r\n\r\nexport function sendHelpRequest(request) {\r\n return fetch(`https://graph.facebook.com/v15.0/111373551751141/messages`, {\r\n headers: new Headers({\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n Authorization:\r\n \"Bearer \" +\r\n \"EAASyPtQ8v4gBAPmgXV16ySDF8ZA19tHLbZCwD8Epg4wYXEYxEKLD11XjJXZBv5FnBuEiz3qXIzIlkzHhItQ14ZAVeJJezmrDaA4rZC3OaAnS1FZCsdKZAmURXOCP1dIz1AV6Mz80cfbnRSZCsDO8lMjDW2XT4TlNmjcaP8tnHgJ7fPXfzRbfDqh3\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n messaging_product: \"whatsapp\",\r\n recipient_type: \"individual\",\r\n to: request.PhoneNumber,\r\n type: \"template\",\r\n template: {\r\n name: \"help_request\",\r\n language: {\r\n code: \"en_US\",\r\n },\r\n components: [\r\n {\r\n type: \"header\",\r\n parameters: [\r\n {\r\n type: \"image\",\r\n image: {\r\n link: \"https://api.crato.co.ke/api/File/VendorImage?ImageID=help\",\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n type: \"body\",\r\n parameters: [\r\n {\r\n type: \"text\",\r\n text: request.FullName,\r\n },\r\n {\r\n type: \"text\",\r\n text: request.Message || \"N/A\",\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n }),\r\n });\r\n}\r\n\r\nexport const GetAccountTransfer = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: transfers, error } = useApiRes(\r\n Main_URL +\r\n `Finance/GetAccountsTransfer?VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { transfers, error };\r\n};\r\n\r\nexport const GetVendorShiftAccountRecon = (\r\n ShiftRefNO,\r\n ShiftClockNO,\r\n VendorLocationID,\r\n refresh\r\n) => {\r\n const { data: recon, error } = useApiRes(\r\n Main_URL +\r\n `FinanceReport/GetPaymentMethodShiftBalances?ShiftRefNO=${ShiftRefNO}&ShiftClockNO=${ShiftClockNO}&VendorLocationID=${VendorLocationID}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { recon, error };\r\n};\r\n\r\nexport const GetAccountStatement = (values, refresh) => {\r\n const { DateRange, VendorPaymentMethodID, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: statement, loading } = useApiRes(\r\n Main_URL +\r\n `Finance/GetAccountsStatement?PaymentMethodID=${VendorPaymentMethodID}&VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { statement, loading };\r\n};\r\n\r\nexport function AddAccountTransfer(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/PostAccountTransfer\";\r\n const requestBody = {\r\n accountTransferID: 0,\r\n shiftClockNO: data.ShiftClockNO,\r\n creditAccountID: data.CreditAccountID,\r\n debitAccountID: data.DebitAccountID,\r\n AccountTypeID: data.AccountTypeID,\r\n transactionCost: 0,\r\n amount: data.Amount,\r\n dateAdded: new Date(),\r\n vendorLocationID: data.VendorLocationID,\r\n vendorID: VendorID,\r\n transDate: data.TransDate,\r\n description: data.Description,\r\n addedBy: UserID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function UpdateAccountTransfer(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/UpdateAccountTransfer\";\r\n const requestBody = {\r\n accountTransferID: data.AccountTransferID,\r\n creditAccountID: data.CreditAccountID,\r\n shiftClockNO: data.ShiftClockNO,\r\n debitAccountID: data.DebitAccountID,\r\n amount: data.Amount,\r\n transactionCost: data.TransactionCost,\r\n dateAdded: new Date(),\r\n vendorLocationID: data.VendorLocationID,\r\n vendorID: VendorID,\r\n transDate: data.TransDate,\r\n description: data.Description,\r\n addedBy: UserID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function ReverseAccountTransfer(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Finance/ReverseAccountTransfer\";\r\n const requestBody = {\r\n accountTransferID: data.AccountTransferID,\r\n debitAccountID: data.DebitAccountID,\r\n VendorLocationID: data.VendorLocationID,\r\n amount: data.Amount,\r\n addedBy: UserID,\r\n transferDate: data.DateAdded,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetDistributorVendors = (values, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: vendors, error } = useApiRes(\r\n Main_URL + `Distributor/GetDistributorVendor?VendorID=${VendorID}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { vendors, error };\r\n};\r\n\r\nexport function AddDistributorDeliveryPoint(data) {\r\n return fetch(Main_URL + \"Distributor/PostDistributorLpoDeliveryTx\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n purchaseNO: data.PurchaseNO,\r\n orderNO: data.OrderNO,\r\n eta: moment(new Date()).format(\"YYYY-MM-DD\"),\r\n deliveryCost: data.DeliveryCost,\r\n vendorID: data.VendorID,\r\n vendorLocationID: data.VendorLocationID,\r\n deliveryDetail: data.DeliveryDetail,\r\n purchaseDeliveryType: 0,\r\n addedBy: UserID,\r\n purchaseDeliveryArray: data.PurchaseDeliveryArray,\r\n }),\r\n });\r\n}\r\n\r\nexport const GetUserRoleAssignment = (refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: urole, error } = useApiRes(\r\n Main_URL + `Admin/GetUserRolesWithDetails?VendorID=${VendorID}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { urole, error };\r\n};\r\n\r\nexport const GetUserTypePolicy = (refresh) => {\r\n const { data: policy, error } = useApiRes(\r\n Main_URL + `Admin/GetUserTypePolicy`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { policy, error };\r\n};\r\n\r\nexport const GetUserTypePolicyAssignment = (UserTypeID, refresh) => {\r\n const { data: roles, error } = useApiRes(\r\n Main_URL + `Admin/GetUserTypePolicyAssignment?userTypeID=${UserTypeID}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { roles, error };\r\n};\r\n\r\nexport const GetUserPolicyAssingment = (UserID, refresh) => {\r\n const { data: urole, error } = useApiRes(\r\n Main_URL + `Admin/GetUserPolicyAssignment?UserID=${UserID}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { urole, error };\r\n};\r\n\r\nexport const GetUserTypeRole = (UserType, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: roles, error } = useApiRes(\r\n Main_URL +\r\n `Admin/GetUserTypeRoles?vendorID=${VendorID}&userTypeID=${UserType}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { roles, error };\r\n};\r\n\r\nexport const GetNotificationTypes = (refresh) => {\r\n const { data: types, error } = useApiRes(\r\n Main_URL + `Notifications/GetNotificationType`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { types, error };\r\n};\r\n\r\nexport const GetNotificationRecipient = (VendorLocationID, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: recipient, error } = useApiRes(\r\n Main_URL +\r\n `Notifications/GetNotificationUsers?VendorID=${VendorID}&VendorLocationID=${VendorLocationID}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { recipient, error };\r\n};\r\n\r\nexport function AddNotificationRecipient(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Notifications/AddNotificationUser\";\r\n const requestBody = {\r\n userID: data.UserID,\r\n notificationTypeID: data.NotificationTypeID,\r\n vendorID: VendorID,\r\n vendorLocationID: data.VendorLocationID,\r\n addedBy: UserID,\r\n mediumChannelID: 2,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function RemoveNotificationRecipient(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Notifications/RemoveWhatsAppReportRecipient\";\r\n const requestBody = {\r\n notificationUserID: data.NotificationUserID,\r\n addedBy: UserID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddUserTypeRole(data, onSuccess, onError) {\r\n const url = Main_URL + \"Admin/AddUserRoles\";\r\n isOnline\r\n ? saveToIndexedDB(data, \"AddUserRoles\", \"UserRoleID\")\r\n : AddToApi(url, data, \"AddUserRoles\", onSuccess, onError);\r\n}\r\n\r\nexport const GetAgeingReport = (values, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: report, loading } = useApiRes(\r\n Main_URL +\r\n `Customer/GetAgeingReport?VendorLocationID=${VendorLocationID}&VendorID=${VendorID}&StartDate=${start}&EndDate=${end}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { report, loading };\r\n};\r\n\r\nexport const GetConsolidatedReport = (values, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { DateRange } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: report, error } = useApiRes(\r\n Main_URL +\r\n `AdminReport/GetConsolidatedVendorReport?UserID=${UserID}&VendorID=${VendorID}&StartDate=${start}&EndDate=${end}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { report, error };\r\n};\r\n\r\nexport const GetConsolidatedAccountBalances = (values, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { DateRange } = values;\r\n const start = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: report, error } = useApiRes(\r\n Main_URL +\r\n `AdminReport/GetConsolidatedVendorAccountBalances?UserID=${UserID}&VendorID=${VendorID}&StartDate=${start}&EndDate=${end}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { report, error };\r\n};\r\n\r\nexport const GetAuditTrail = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD HH:mm\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD HH:mm\");\r\n const { data: report, error } = useApiRes(\r\n Main_URL +\r\n `AuditTrail/GetAuditTrail?StartDate=${start}&EndDate=${end}&VendorLocationID=${VendorLocationID}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { report, error };\r\n};\r\n\r\nexport const GetAuditLogAnalytics = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD HH:mm\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD HH:mm\");\r\n const { data: analytics, error } = useApiRes(\r\n Main_URL +\r\n `AuditTrail/GetAuditTrailAnalysis?StartDate=${start}&EndDate=${end}&VendorLocationID=${VendorLocationID}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { analytics, error };\r\n};\r\n\r\nexport function sendAttendantClockSummary(request) {\r\n return fetch(`https://graph.facebook.com/v15.0/111373551751141/messages`, {\r\n headers: new Headers({\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n Authorization:\r\n \"Bearer \" +\r\n \"EAASyPtQ8v4gBAPmgXV16ySDF8ZA19tHLbZCwD8Epg4wYXEYxEKLD11XjJXZBv5FnBuEiz3qXIzIlkzHhItQ14ZAVeJJezmrDaA4rZC3OaAnS1FZCsdKZAmURXOCP1dIz1AV6Mz80cfbnRSZCsDO8lMjDW2XT4TlNmjcaP8tnHgJ7fPXfzRbfDqh3\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n messaging_product: \"whatsapp\",\r\n recipient_type: \"individual\",\r\n to: 254727337354,\r\n type: \"template\",\r\n template: {\r\n name: \"help_request\",\r\n language: {\r\n code: \"en_US\",\r\n },\r\n components: [\r\n {\r\n type: \"header\",\r\n parameters: [\r\n {\r\n type: \"image\",\r\n image: {\r\n link: \"https://api.crato.co.ke/api/File/VendorImage?ImageID=help\",\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n type: \"body\",\r\n parameters: [\r\n {\r\n type: \"text\",\r\n text: request.FullName,\r\n },\r\n {\r\n type: \"text\",\r\n text: request.Message || \"N/A\",\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n }),\r\n });\r\n}\r\n\r\nexport function BackdateLocationData(data) {\r\n const currentTime = moment().format(\"HH:mm:ss\");\r\n const passedDate = moment(data.DateAdded).format(\"YYYY-MM-DD\");\r\n return fetch(Main_URL + \"Supervisor/BackdateVendorLocationData\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n ClockTypeID: data.ClockTypeID,\r\n VendorLocationID: data.VendorLocationID,\r\n DateAdded: `${passedDate} ${currentTime}`,\r\n shiftClockNo: data.ShiftNO,\r\n }),\r\n });\r\n}\r\n\r\nexport function AddGoogleSheetCredentials(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"GoogleSheets/AddGoogleSheetCredentials\";\r\n const requestBody = {\r\n userGoogleSheetCredentialsID: 0,\r\n googleSheetCredentials: data.GoogleSheetID,\r\n additionalInfo: \"\",\r\n vendorLocationID: data.VendorLocationID,\r\n dateAdded: new Date(),\r\n statusID: 1,\r\n addedBy: UserID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function BackupGoogleSheet(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"GoogleSheets/PostToGoogleSheet\";\r\n const requestBody = {\r\n vendorLocationID: data.VendorLocationID,\r\n sheetName: \"\",\r\n googleSheetID: data.GoogleSheetID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddDistributorPurchase(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Distributor/PostDistributorPurchaseOrderTx\";\r\n const requestBody = {\r\n vendorID: VendorID,\r\n purchaseNO: \"\",\r\n supplierID: data?.VendorSupplierID,\r\n deliveryAssetID: data?.AssetID,\r\n statusID: 2,\r\n addedBy: UserID,\r\n totalAmount:\r\n data?.stocks?.reduce((a, b) => a + b.LineTotal, 0) + +data?.OtherCost,\r\n deliveryCost: data?.OtherCost,\r\n invoiceNO: data?.InvoiceNO,\r\n purchaseDetailArray: data?.stocks,\r\n purchasePaymentArray: [],\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetDistributorDashbord = (values, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { DateRange } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: dash, loading } = useApiRes(\r\n Main_URL +\r\n `Distributor/GetDistributorDashBoard?StartDate=${start}&EndDate=${end}&VendorID=${VendorID}`,\r\n { refresh }\r\n );\r\n\r\n return { dash: dash?.Data || [], loading };\r\n};\r\n\r\nexport const GetDistributorOrders = (values, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { DateRange } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data: order, loading } = useApiRes(\r\n Main_URL +\r\n `Distributor/GetDistributorSaleOrderHistory?VendorID=${VendorID}&StartDate=${start}&EndDate=${end}&PageNO=1&PageSize=1000`,\r\n { refresh }\r\n );\r\n\r\n return { order: order?.Data || [], loading };\r\n};\r\n\r\nexport const GetDistributorAssets = (VendorLocationID, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: assets, error } = useApiRes(\r\n Main_URL +\r\n `Supervisor/GetVendorAssetAssignment?VendorID=${VendorID}&VendorLocationID=${VendorLocationID}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { assets, error };\r\n};\r\n\r\nexport const GetDistributorCustomers = (VendorLocationID, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data: customer, error } = useApiRes(\r\n Main_URL + `Distributor/GetBulkCustomers?VendorID=${VendorID}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { customer: customer.Data, error };\r\n};\r\n\r\nexport const GetDistributorSupplier = (values, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { DateRange } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data, error } = useApiRes(\r\n Main_URL +\r\n `Distributor/GetDistributorSupplier?VendorID=${VendorID}&StartDate=${start}&EndDate=${end}&PageNO=1&PageSize=10`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { supplier: data?.Data, error };\r\n};\r\n\r\nexport const GetDistributorPurchase = (values, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { DateRange } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data, error } = useApiRes(\r\n Main_URL +\r\n `Distributor/GetDistributorPurchase?VendorID=${VendorID}&StartDate=${start}&EndDate=${end}&PageNO=1&PageSize=10`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { purchase: data.Data, error };\r\n};\r\n\r\nexport const GetDistributorAllAssets = (VendorLocationID, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { data, error } = useApiRes(\r\n Main_URL +\r\n `Customer/GetDistributorVendorAllClientAsset?VendorID=${VendorID}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { asset: data, error };\r\n};\r\n\r\nexport function AddDistributorFulfillDelivery(data) {\r\n return fetch(Main_URL + \"Distributor/FulfillDelivery\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n id: data.DistributorPurchaseDeliveryID,\r\n addedBy: UserID,\r\n }),\r\n });\r\n}\r\n\r\nexport function AddDistributorPurchasePayment(data) {\r\n return fetch(Main_URL + \"Distributor/SaveLpoPayment\", {\r\n headers: new Headers({\r\n Funguo: Funguo,\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n method: \"post\",\r\n body: JSON.stringify({\r\n purchaseNO: data.PurchaseNO,\r\n amountPaid: data.AmountPaid,\r\n transActionCost: data.TransactionCost,\r\n vendorPaymentMethodID: data.VendorPaymentMethodID,\r\n referenceNO: data.ReferenceNO,\r\n addedBy: UserID,\r\n }),\r\n });\r\n}\r\n\r\nexport function AddDistributorOrder(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Distributor/PostDistributorSaleOrderTx\";\r\n const requestBody = {\r\n userID: UserID,\r\n vendorID: VendorID,\r\n purchaseNO: data.PurchaseNO,\r\n customerID: data.CustomerID,\r\n customerTypeID: data.CustomerTypeID,\r\n assetID: data.AssetID,\r\n saleType: 4,\r\n isStation: data.StationID > 0 ? 1 : 0,\r\n stationID: data.StationID,\r\n deliveryAssetID: data.DeliveryAssetID,\r\n eta: data.ETA,\r\n dateDelivered: \"\",\r\n deliveredByID: 0,\r\n statusID: 1,\r\n handlingCost: data.HandlingCost,\r\n deliveryCost: data.DeliveryCost,\r\n deliveryDetail: \"\",\r\n totalAmount: data.TotalAmount,\r\n saleDetailArray: data.stocks,\r\n salePaymentArray: [],\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function DistributorCompleteDelivery(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Driver/CompleteDelivery\";\r\n const requestBody = {\r\n id: data.SaleOrderBulkID,\r\n addedBy: UserID,\r\n vendorAssetID: data.DeliveryAssetID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function DistributorLoadTruck(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Driver/CompleteLoading\";\r\n const requestBody = {\r\n id: data.VendorPurchaseID,\r\n addedBy: UserID,\r\n vendorAssetID: data.DeliveryAssetID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function DistributorVehicle(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Distributor/AddDeliveryAsset\";\r\n const requestBody = {\r\n vendorAssetID: 0,\r\n vendorID: VendorID,\r\n vendorLocationID: data.VendorLocationID,\r\n vendorAssetName: data.VendorAssetName,\r\n addedBy: UserID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AssignDistributorVehicle(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Distributor/AddDeliveryAssetAssignment\";\r\n const requestBody = {\r\n vendorAssetID: data.VendorAssetID,\r\n userID: data.UserID,\r\n addedBy: UserID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddDistributorCustomer(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Distributor/AddDistributorCustomer\";\r\n const requestBody = {\r\n customerName: data.CustomerName,\r\n customerPhone: data.CustomerPhone,\r\n customerMail: data.CustomerMail,\r\n kraPin: data.KRAPin,\r\n openingBalance: data.OpeningBalance,\r\n creditLimit: data.CreditLimit,\r\n paymentTerms: data.PaymentTerms,\r\n addedBy: UserID,\r\n vendorID: VendorID,\r\n creditLimitNotification: data.CreditLimitNotification,\r\n isCreditLimitMandatory: data.IsCreditLimitMandatory,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetUserManual = (refresh) => {\r\n const { data, error } = useApiRes(Main_URL + `AdminReport/GetUserManual`, {\r\n refresh,\r\n });\r\n return { manual: data, error };\r\n};\r\n\r\n//cards\r\nexport const GetCardCustomerGroup = (refresh) => {\r\n const { data, error } = useApiRes(\r\n Main_URL + `FuelCard/GetVendorParentCardGroup?VendorParentID=${ParentID}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { data, error };\r\n};\r\n\r\nexport const GetRewardPointsTypes = (refresh) => {\r\n const { data, error } = useApiRes(Main_URL + `FuelCard/GetCardPointReward`, {\r\n refresh,\r\n });\r\n return { data, error };\r\n};\r\n\r\nexport function DeleteCardCustomerGroup(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"FuelCard/RemoveVendorParentCardGroup\";\r\n const requestBody = {\r\n vendorParentCardGroupID: data.VendorParentCardGroupID,\r\n addedBy: UserID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddCardCustomerGroup(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"FuelCard/PostVendorParentCardGroup\";\r\n const requestBody = {\r\n vendorParentCardGroupName: data.VendorParentCardGroupName,\r\n vendorParentID: ParentID,\r\n addedBy: UserID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetRewardLoyaltyRule = (values, refresh) => {\r\n const { DateRange } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data, error } = useApiRes(\r\n Main_URL +\r\n `FuelCard/GetVendorParentCardPointReward?VendorParentID=${ParentID}&StartDate=${start}&EndDate=${end}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { data, error };\r\n};\r\n\r\nexport function AddRewardLoyaltyRule(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"FuelCard/PostVendorParentCardPointRewardTx\";\r\n const requestBody = {\r\n pointRewardName: data.PointRewardName,\r\n vendorParentCardGroupID: data.VendorParentCardGroupID,\r\n vendorParentID: ParentID,\r\n startDate: data.StartDate,\r\n endDate: data.EndDate,\r\n addedBy: UserID,\r\n rewardDetailArray: data.RewardDetailArray,\r\n rewardProductArray: data.ProductArray,\r\n rewardRuleArray: data.RewardRule,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function RemoveRewardLoyaltyRule(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"FuelCard/CloseVendorParentCardPointReward\";\r\n const requestBody = {\r\n rewardRefNO: data?.RewardRefNO,\r\n endDate: data.EndDate,\r\n addedBy: UserID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetCardRedeemIniator = (refresh) => {\r\n const { data, error } = useApiRes(\r\n Main_URL + `FuelCard/GetCardRedeemInitiator`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { data, error };\r\n};\r\n\r\nexport const GetCardCustomer = (values, refresh) => {\r\n const { DateRange, CustomerID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data, error } = useApiRes(\r\n Main_URL +\r\n `FuelCard/GetVendorCustomerCard?VendorParentID=${ParentID}&VendorCustomerID=${CustomerID}&UserID=0&StartDate=${start}&EndDate=${end}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { data, error };\r\n};\r\n\r\nexport const GetLoyaltyDashBoard = (values, refresh) => {\r\n const { DateRange } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data, error } = useApiRes(\r\n Main_URL +\r\n `FuelCard/GetFuelCardWebDashBoard?VendorParentID=${ParentID}&StartDate=${start}&EndDate=${end}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { data, error };\r\n};\r\n\r\nexport const GetLoyaltyStationSummary = (values, refresh) => {\r\n const { DateRange } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data, error } = useApiRes(\r\n Main_URL +\r\n `FuelCard/GetStationFuelCardSummary?VendorParentID=${ParentID}&StartDate=${start}&EndDate=${end}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { data, error };\r\n};\r\n\r\nexport const GetLoyaltyCustomers = (values, refresh) => {\r\n const { DateRange, CustomerID, PageSize, SearchTerm, VendorLocationID } =\r\n values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data, error, loading } = useApiRes(\r\n Main_URL +\r\n `FuelCard/GetVendorCardCustomerPoints?VendorParentID=${ParentID}&StartDate=${start}&EndDate=${end}&SearchTerm=${SearchTerm}&VendorCustomerID=${CustomerID}&VendorLocationID=${VendorLocationID}&PageNO=1&PageSize=${PageSize}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { data, loading, error };\r\n};\r\n\r\nexport const GetLoyaltyCustomersCards = (CustomerID, refresh) => {\r\n const { data, error } = useApiRes(\r\n Main_URL + `FuelCard/GetVendorCustomerCard?VendorCustomerID=${CustomerID}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { data, error };\r\n};\r\n\r\nexport const GetLoyaltyCustomersCardChild = (\r\n CardSerialNO,\r\n VendorLocationID,\r\n refresh\r\n) => {\r\n const { data, error } = useApiRes(\r\n Main_URL +\r\n `FuelCard/GetFuelCardChildInfo?CardSerialNO=${CardSerialNO}&VendorLocationID=${VendorLocationID}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { data, error };\r\n};\r\n\r\nexport const GetLoyaltyCustomersPoints = (values, refresh) => {\r\n const { DateRange, CustomerID, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD HH:mm\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD HH:mm\");\r\n const { data, error } = useApiRes(\r\n Main_URL +\r\n `FuelCard/GetCardEarnedPoints?VendorParentID=${ParentID}&VendorLocationID=${VendorLocationID}&UserID=0&VendorCustomerID=${CustomerID}&VendorCustomerCardID=0&isLatest=0&StartDate=${start}&EndDate=${end}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { data, error };\r\n};\r\n\r\nexport const GetLoyaltyCustomersRedeemedPoints = (VendorLocationID, CustomerID, refresh) => {\r\n const { data, error } = useApiRes(\r\n Main_URL +\r\n `FuelCard/GetCardRedeemedPoints?VendorParentID=${ParentID}&VendorLocationID=${VendorLocationID}&UserID=0&VendorCustomerID=${CustomerID}&VendorCustomerCardID=0&isLatest=0`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { data, error };\r\n};\r\n\r\nexport const GetLoyaltyCustomersRedeemedOption = (CustomerID, refresh) => {\r\n const { data, error } = useApiRes(\r\n Main_URL +\r\n `FuelCard/GetVendorParentCardRedeemConversion?VendorParentID=${ParentID}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { data, error };\r\n};\r\n\r\nexport const GetLoyaltyVendorRedeemOption = (CustomerID, refresh) => {\r\n const { data, error } = useApiRes(\r\n Main_URL +\r\n `FuelCard/GetVendorParentCardRedeemOption?VendorParentID=${ParentID}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { data, error };\r\n};\r\n\r\nexport function AddVendorRedeemOption(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"FuelCard/PostVendorParentCardRedeemOption\";\r\n const requestBody = {\r\n redeemOptionName: data?.RedeemOptionName,\r\n uom: data.UOM,\r\n vendorParentID: ParentID,\r\n addedBy: UserID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function RemoveVendorRedeemOption(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"FuelCard/RemoveVendorParentCardRedeemOption\";\r\n const requestBody = {\r\n vendorParentCardRedeemOptionID: data?.VendorParentCardRedeemOptionID,\r\n addedBy: UserID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetLoyaltyVendorRedeemOptionPoints = (CustomerID, refresh) => {\r\n const { data, error } = useApiRes(\r\n Main_URL +\r\n `FuelCard/GetVendorParentCardRedeemConversion?VendorParentID=${ParentID}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { data, error };\r\n};\r\n\r\nexport function AddVendorRedeemOptionPoints(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"FuelCard/PostVendorParentCardRedeemConversion\";\r\n const requestBody = {\r\n vendorParentCardRedeemOptionID: data.VendorParentCardRedeemOptionID,\r\n vendorParentID: ParentID,\r\n addedBy: UserID,\r\n rewardPoint: data.RewardPoint,\r\n vendorCustomerID: data.VendorCustomerID,\r\n rewardValue: data.RewardValue,\r\n startDate: new Date(data.StartDate),\r\n endDate: new Date(data.EndDate),\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddVendorRedeemOptionBulkPoints(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"FuelCard/PostVendorCustomerCardRedeemedPointsBulk\";\r\n const requestBody = {\r\n cardRedeemTypeID: data.cardRedeemTypeID,\r\n vendorID: VendorID,\r\n vendorParentID: ParentID,\r\n initiatedBy: UserID,\r\n dateInitiated: data.dateInitiated,\r\n expiryDate: data.expiryDate,\r\n vendorParentCardRedeemOptionID: data.vendorParentCardRedeemOptionID,\r\n redeemRefNO: \"\",\r\n cardRedeemArray: data.cardRedeemArray,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddVendorRedeemCollection(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"FuelCard/PostVendorCustomerCardRedeemedCollection\";\r\n const requestBody = {\r\n redeemNO: data?.RedeemNO,\r\n otpCode: data.OTPCode,\r\n vendorLocationID: data.VendorLocationID,\r\n addedBy: UserID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddVendorCustomerCard(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"FuelCard/PostVendorCustomerCard\";\r\n const requestBody = {\r\n vendorCustomerID: data.vendorCustomerID,\r\n vendorParentID: ParentID,\r\n vendorID: VendorID,\r\n vendorLocationID: data.VendorLocationID,\r\n cardSerialNO: data.CardSerialNO,\r\n openingAmount: data.openingAmount,\r\n openingPoints: data.openingPoints,\r\n expiryMonthYear: data.expiryMonthYear,\r\n cardTypeID: data.cardTypeID,\r\n isImageRequired: data.isImageRequired ? 1 : 0,\r\n isPasswordProtected: data.isPasswordProtected ? 1 : 0,\r\n isMileageRequired: data.isMileageRequired ? 1 : 0,\r\n isProductRestricted: data.isProductRestricted ? 1 : 0,\r\n isTimeRestricted: data.isTimeRestricted ? 1 : 0,\r\n isLocationRestricted: data.isLocationRestricted ? 1 : 0,\r\n isAssetRestricted: data.isAssetRestricted ? 1 : 0,\r\n cardRedeemInitiatorID: data.cardRedeemInitiatorID,\r\n addedBy: UserID,\r\n canHoldPayment: data.canHoldPayment ? 1 : 0,\r\n vendorCustomerCardName: data.vendorCustomerCardName,\r\n statusID: 1,\r\n cardPolicyProductArray: data.cardPolicyProductArray,\r\n cardPolicyTime: data.cardPolicyTime,\r\n cardPolicyVendorLocation: data.cardPolicyVendorLocation,\r\n cardPolicyAsset: data.cardPolicyAsset,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddVendorCustomerCardChild(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"FuelCard/PostVendorCustomerCardChild\";\r\n const requestBody = {\r\n vendorCustomerCardID: data.VendorCustomerCardID,\r\n vendorParentID: data.VendorParentID,\r\n cardSerialNO: data.CardSerialNO,\r\n cardTypeID: data.CardTypeID,\r\n addedBy: UserID,\r\n statusID: 1,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function RequestRedeemCustomerLoyaltyPoints(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"FuelCard/PostFuelCardRedeemOTPRequest\";\r\n const requestBody = {\r\n vendorCustomerID: data.VendorCustomerID,\r\n VendorLocationID: data.VendorLocationID,\r\n vendorID: VendorID,\r\n vendorName: data.VendorName,\r\n addedBy: UserID,\r\n vendorParentCardRedeemOptionName: data.VendorParentCardRedeemOptionName,\r\n vendorLocationName: data.VendorLocationName,\r\n vendorCustomerCardName: data.VendorCustomerCardName,\r\n redeemedPoints: data.RedeemedPoints,\r\n redeemValue: data.RedeemValue,\r\n redeemValueUOM: data.RedeemValueUOM,\r\n redemptionDate: new Date(),\r\n pointsBalance: data.PointsBalance,\r\n notificationChannelID: data.NotificationChannelID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n result: asyncSubmit.result,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function RedeemCustomerLoyaltyPoints(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"FuelCard/PostVendorCustomerCardRedeemedPoints\";\r\n const requestBody = {\r\n redeemedPoints: data.RewardPoint,\r\n VendorCustomerID: data.VendorCustomerID,\r\n cardRedeemTypeID: data.CardRedeemTypeID,\r\n vendorParentID: ParentID,\r\n vendorLocationID: data.VendorLocationID,\r\n vendorCustomerCardID: data.VendorCustomerCardID,\r\n initiatedBy: UserID,\r\n redeemNO: data.RedeemNO,\r\n otpCode: data.RedeemOTP,\r\n dateInitiated: moment(new Date()).format(\"YYYY-MM-DD HH:mm\"),\r\n expiryDate: moment(new Date()).format(\"YYYY-MM-DD HH:mm\"),\r\n vendorParentCardRedeemOptionID: data.VendorParentCardRedeemOptionID,\r\n redeemValue: data?.RedeemValue,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function ReverseCustomerLoyaltyRedeemedPoints(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"FuelCard/ReverseVendorCustomerCardRedeemedPoints\";\r\n const requestBody = {\r\n vendorCustomerCardRedeemedPointID: data?.VendorCustomerCardRedeemedPointID,\r\n addedBy: UserID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetLoyaltyVendorCards = (CardPanNO, refresh) => {\r\n const { data, error } = useApiRes(\r\n Main_URL + `FuelCard/GetVendorParentCard?VendorParentID=${ParentID}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { data, error };\r\n};\r\n\r\nexport function DeactivateLoyaltyCustomerCard(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"FuelCard/PostVendorCustomerCardRedeemedPoints\";\r\n const requestBody = {\r\n redeemedPoints: data.RedeemedPoints,\r\n cardRedeemTypeID: data.CardRedeemTypeID,\r\n vendorLocationID: data.VendorLocationID,\r\n vendorCustomerCardID: data.VendorCustomerCardID,\r\n initiatedBy: UserID,\r\n dateInitiated: new Date(),\r\n expiryDate: new Date(),\r\n vendorParentCardRedeemOptionID: data.VendorParentCardRedeemOptionID,\r\n redeemValue: data?.RedeemValue,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function AddVirtualLoyaltyCustomer(data, successFn, errorFn) {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"Customer/PostVendorCustomerVirtual\";\r\n const requestBody = {\r\n customerName: data.CustomerName,\r\n customerPhone: data.CustomerPhone,\r\n customerMail: data.CustomerMail || \"\",\r\n countryCode: data.CountryCode,\r\n CustomerIdentityImageID: 0,\r\n vendorLocationID: data.VendorLocationID,\r\n addedBy: UserID,\r\n vendorID: VendorID,\r\n vendorParentID: ParentID,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetLoyaltyCustomerStatement = (values, refresh) => {\r\n const { DateRange, CustomerID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data, error } = useApiRes(\r\n Main_URL +\r\n `FuelCard/GetCustomerCardPointStatement?VendorCustomerID=${CustomerID}&StartDate=${start}&EndDate=${end}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { data, error };\r\n};\r\n\r\nexport const GetPTSSPumpSales = (\r\n userID,\r\n VendorLocationID,\r\n ClockNO,\r\n refresh\r\n) => {\r\n const { data, error } = useApiRes(\r\n Main_URL +\r\n `Automation/GetUserClockAutomationSummary?UserID=${userID}&VendorLocationID=${VendorLocationID}&ClockNO=${ClockNO}`,\r\n {\r\n refresh,\r\n }\r\n );\r\n return { data, error };\r\n};\r\n\r\nexport function SendEmailReport(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"GoogleSheets/SendEmailReport\";\r\n const requestBody = {\r\n shiftRefNO: \"\",\r\n recipientEmailArray: data?.emails,\r\n vendorLocationName: data.VendorLocationName,\r\n supervisorName: \"\",\r\n endDate: \"2024-06-17T13:46:04.565Z\",\r\n shiftClockNO: \"string\",\r\n shiftDate: \"string\",\r\n clockType: \"string\",\r\n senderMail: \"no-reply@crato.co.ke\",\r\n vendorName: data.TradingName,\r\n hostName: \"mail.crato.co.ke\",\r\n port: 587,\r\n password: \"Crato@2023!\",\r\n body: data?.Body,\r\n pdfBase64: data?.pdfBase64,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function SendWhatsAppReport(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"GoogleSheets/SendWhatsAppReport\";\r\n const requestBody = {\r\n receiverPhone: data.PhoneNumber,\r\n templateName: \"\",\r\n fileName: data.FileName,\r\n fileLink: data.pdfBase64,\r\n messageParam1: data.TradingName,\r\n messageParam2: data.VendorLocationName,\r\n messageParam3: data.DateRange,\r\n messageParam4: \"+254-702628741\",\r\n headerMessage: \"\",\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetCratoChat = (values, refresh) => {\r\n const { DateRange, UserID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data, error } = useApiRes(\r\n Main_URL +\r\n `CratoAdmin/GetCratoAdminChatMessage?StartDate=${start}&EndDate=${end}&UserID=${UserID}`,\r\n { refresh }\r\n );\r\n\r\n return { data, error };\r\n};\r\n\r\nexport function AddCratoChat(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"CratoAdmin/AddCratoAdminChatMessage\";\r\n const requestBody = {\r\n messageID: 0,\r\n senderID: UserID,\r\n receiverID: 0,\r\n vendorLocationID: data.VendorLocationID,\r\n messageText: data.Messange,\r\n messageMediaID: data.MessangeFile,\r\n sentAt: new Date(),\r\n statusID: 1,\r\n };\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport function UpdateCratoChatStatus(data, successFn, errorFn) {\r\n const asyncSubmit = useAsyncSubmit(successFn, errorFn);\r\n const apiURL = Main_URL + \"CratoAdmin/UpdateCratoAdminChatMessageStatus\";\r\n const requestBody = data;\r\n const handleFormSubmit = async () => {\r\n asyncSubmit.handleAsyncSubmit(apiURL, requestBody);\r\n };\r\n\r\n return {\r\n loading: asyncSubmit.loading,\r\n submitted: asyncSubmit.submitted,\r\n success: asyncSubmit.success,\r\n setSubmitted: asyncSubmit.setSubmitted,\r\n handleFormSubmit,\r\n };\r\n}\r\n\r\nexport const GetCratoAutomationDashBoard = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD HH:mm\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD HH:mm\");\r\n const { data, error } = useApiRes(\r\n Main_URL +\r\n `Automation/GetAutomationDashBoard?StartDate=${start}&EndDate=${end}&VendorLocationID=${VendorLocationID}`,\r\n { refresh }\r\n );\r\n\r\n return { data, error };\r\n};\r\n\r\nexport const GetPTSStatusReport = (ptsID, refresh) => {\r\n const { data, error } = useApiRes(\r\n Main_URL + `Automation/PtsStatus?PtsID=004000363233511335383836`,\r\n { refresh }\r\n );\r\n\r\n return { data, error };\r\n};\r\n\r\nexport const GetCratoAutomationDetailTransaction = (values, refresh) => {\r\n const { DateRange, VendorLocationID, ProductID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD HH:mm\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD HH:mm\");\r\n const { data, error } = useApiRes(\r\n Main_URL +\r\n `Automation/GetPumpTransactionArray?VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}&VendorProductID=${ProductID}`,\r\n { refresh }\r\n );\r\n\r\n return { data, error };\r\n};\r\n\r\nexport const GetCratoTankTransactionArray = (values, refresh) => {\r\n const { DateRange, VendorLocationID, ProductID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD\");\r\n const { data, error } = useApiRes(\r\n Main_URL +\r\n `Automation/GetPumpTransactionArray?VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}&VendorProductID=${ProductID}`,\r\n { refresh }\r\n );\r\n\r\n return { data, error };\r\n};\r\n\r\nexport const GetPTSNozzleIntegrations = (ptsID, refresh) => {\r\n const { data, error } = useApiRes(\r\n Main_URL + `Automation/GetNozzleIntergration?PtsID=${ptsID}`,\r\n { refresh }\r\n );\r\n\r\n return { data, error };\r\n};\r\n\r\nexport const GetAutomationDeliveries = (values, refresh) => {\r\n const { DateRange, VendorLocationID, ProductID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD HH:mm\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD HH:mm\");\r\n const { data, error } = useApiRes(\r\n Main_URL +\r\n `Automation/GetTankTransactionDeliveryArray?VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}&VendorProductID=${ProductID}&isLatest=0`,\r\n { refresh }\r\n );\r\n\r\n return { data, error };\r\n};\r\n\r\nexport const GetAutomationSalesPerAttendant = (values, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD HH:mm\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD HH:mm\");\r\n const { data, error } = useApiRes(\r\n Main_URL +\r\n `Automation/GetAttendantSalesReport?VendorID=${VendorID}&StartDate=${start}&EndDate=${end}&VendorLocationID=${VendorLocationID}&VendorProductID=0&UserID=0`,\r\n { refresh }\r\n );\r\n\r\n return { data, error };\r\n};\r\n\r\nexport const GetAutomationTankVariance = (values, refresh) => {\r\n const VendorID = useVendorID() || encryptSession.getItem(\"ci\");\r\n const { DateRange, VendorLocationID } = values;\r\n\r\n // Set start time to 00:00 and end time to 23:59\r\n const start = moment(DateRange[0])?.format(\"YYYY-MM-DD HH:mm\");\r\n const end = moment(DateRange[1])?.format(\"YYYY-MM-DD HH:mm\");\r\n\r\n const { data, error } = useApiRes(\r\n Main_URL +\r\n `Automation/GetTankVarianceReport?VendorID=${VendorID}&StartDate=${start}&EndDate=${end}&VendorLocationID=${VendorLocationID}&VendorProductID=0`,\r\n { refresh }\r\n );\r\n\r\n return { data, error };\r\n};\r\n\r\nexport const GetAutomationTankTransactions = (values, refresh) => {\r\n const { DateRange, VendorLocationID } = values;\r\n const start = moment(DateRange[0]).format(\"YYYY-MM-DD HH:mm\");\r\n const end = moment(DateRange[1]).format(\"YYYY-MM-DD HH:mm\");\r\n const { data, error } = useApiRes(\r\n Main_URL +\r\n `Automation/GetTankTransactionArray?VendorLocationID=${VendorLocationID}&StartDate=${start}&EndDate=${end}&VendorProductID=0&isLatest=0`,\r\n { refresh }\r\n );\r\n\r\n return { data, error };\r\n};\r\n","import React from \"react\";\r\nimport styled, { keyframes } from \"styled-components\";\r\n\r\n// Define the animation keyframes\r\nconst thumbsUpAnimation = keyframes`\r\n 0% {\r\n transform: translateY(0);\r\n }\r\n 50% {\r\n transform: translateY(-10px);\r\n }\r\n 100% {\r\n transform: translateY(0);\r\n }\r\n`;\r\n\r\n// Define the styled SVG component\r\nconst ThumbsUpIcon = styled.svg`\r\n border-radius: 50%;\r\n fill: #28a745;\r\n width: 150px;\r\n height: 100px;\r\n animation: ${thumbsUpAnimation} 1s infinite; /* Apply the animation */\r\n`;\r\n\r\nexport default ThumbsUpIcon;\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { accountingFormat } from \"../../common/Functions\";\r\nimport { CircularProgress, Tooltip } from \"@mui/material\";\r\nimport { Print } from \"@material-ui/icons\";\r\nimport moment from \"moment\";\r\nimport { GetVendorInvoice } from \"../../../api\";\r\nimport ThumbsUpIcon from \"./ThumpsUpp\";\r\nimport axios from \"axios\";\r\nimport { AppContext } from \"../../../AppContext\";\r\n\r\nexport default function Billing() {\r\n const { context, setContext } = useContext(AppContext);\r\n const [paymentData, setPaymentData] = useState([]);\r\n const [values, setValues] = useState(null);\r\n const [pay, setPay] = useState(false);\r\n const [result, setResult] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const [refresh, setRefresh] = useState(false);\r\n\r\n const { invoice } = GetVendorInvoice(refresh);\r\n\r\n const InvoiceNO = paymentData?.filter((d) => d.StatusID === 1)[0]?.InvoiceNO;\r\n\r\n useEffect(() => {\r\n setPaymentData(invoice);\r\n }, [invoice]);\r\n\r\n const handleFormSubmit = async () => {\r\n setLoading(true);\r\n try {\r\n const response = await axios.post(\r\n \"https://api.crato.co.ke/api/Account/RequestSTKPush\",\r\n {\r\n phoneNumber: values.PhoneNumber,\r\n invoiceNO: InvoiceNO,\r\n },\r\n {\r\n headers: {\r\n accept: \"*/*\",\r\n \"Content-Type\": \"application/json-patch+json\",\r\n },\r\n }\r\n );\r\n\r\n setResult(response.data); // Store the response in the state\r\n CheckPaymentStatus();\r\n setLoading(false);\r\n } catch (error) {\r\n console.error(\"Error:\", error);\r\n setLoading(false);\r\n // Handle the error\r\n }\r\n };\r\n\r\n const CheckPaymentStatus = async () => {\r\n setLoading(true);\r\n try {\r\n const response = await axios.post(\r\n `https://api.crato.co.ke/api/Account/CheckStkPush?CheckoutRequestID=${result.CheckoutRequestID}`,\r\n {\r\n phoneNumber: \"0702628741\",\r\n invoiceNO: \"INV2308-0001\",\r\n },\r\n {\r\n headers: {\r\n accept: \"*/*\",\r\n \"Content-Type\": \"application/json-patch+json\",\r\n },\r\n }\r\n );\r\n\r\n console.log(\"Response:\", response.data);\r\n setResult(response.data); // Store the response in the state\r\n setLoading(false);\r\n } catch (error) {\r\n console.error(\"Error:\", error);\r\n // Handle the error\r\n }\r\n };\r\n\r\n const ConfirmPayment = async () => {\r\n if (result?.TransID && result?.TransID.length > 9) {\r\n setLoading(true);\r\n try {\r\n const response = await axios.post(\r\n `https://api.crato.co.ke/api/Account/CompleteServicePayment`,\r\n {\r\n transID: result?.TransID,\r\n invoiceNO: InvoiceNO,\r\n },\r\n {\r\n headers: {\r\n accept: \"*/*\",\r\n \"Content-Type\": \"application/json-patch+json\",\r\n },\r\n }\r\n );\r\n\r\n console.log(\"Response:\", response.data);\r\n setResult(response.data); // Store the response in the state\r\n setValues({\r\n ...values,\r\n error: response?.data?.Error,\r\n errorMessage: response.data.Message,\r\n });\r\n setRefresh(!refresh);\r\n setLoading(false);\r\n setContext({ ...context, refresh: !context?.refresh });\r\n if (response?.data?.Error === false) {\r\n window.location.reload(); // Corrected line to trigger a page reload\r\n }\r\n } catch (error) {\r\n console.error(\"Error:\", error);\r\n setLoading(false);\r\n }\r\n } else {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (result?.CheckoutRequestID) {\r\n CheckPaymentStatus();\r\n } else {\r\n if (result?.TransID) {\r\n ConfirmPayment();\r\n }\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [result]);\r\n\r\n const Balance = paymentData?.filter((d) => d.StatusID === 1)[0]\r\n ?.InvoiceAmount;\r\n\r\n const showThumbsUp = !Balance || Balance === 0;\r\n\r\n const getStatusBar = (statusID) => {\r\n const statusText = statusID === 2 ? \"PAID\" : \"PENDING\";\r\n const statusColor = statusID === 2 ? \"#28a745\" : \"#dc3545\";\r\n return (\r\n \r\n \r\n {statusText}\r\n \r\n \r\n \r\n \r\n {statusID === 2 && (\r\n
No invoices available
\r\n ) : (\r\n\r\n Invoice NO\r\n | \r\n\r\n INVOICE DATE\r\n | \r\n\r\n DUE DATE\r\n | \r\n\r\n STATIONS\r\n | \r\n\r\n SERVICE FEE\r\n | \r\n\r\n TOTAL AMOUNT\r\n | \r\nSTatus | \r\n
---|---|---|---|---|---|---|
\r\n {invoice.InvoiceNO}\r\n | \r\n\r\n {moment(invoice.DateAdded).format(\"DD/MM/YYYY\")}\r\n | \r\n\r\n {moment(invoice.DueDate).format(\"DD/MM/YYYY\")}\r\n | \r\n\r\n {invoice.TotalLocation}\r\n | \r\n\r\n {accountingFormat(invoice.ServiceFee)}\r\n | \r\n\r\n {accountingFormat(invoice.InvoiceAmount)}\r\n | \r\n\r\n {getStatusBar(invoice.StatusID)}\r\n | \r\n
\r\n
\r\n Payment Balance:{\" \"}\r\n
\r\n {daysLeft?.toFixed(0)} days, {hoursLeft} hours, {minutesLeft} minutes,{\" \"}\r\n {secondsLeft} seconds\r\n
\r\n\r\n\r\n URGENT: Please take action to prevent system suspension!\r\n
\r\n\r\n This will require you to use a one-time passcode sent to\r\n your{\" \"}\r\n WhatsApp and{\" \"}\r\n Email every\r\n time you log in to authenticate you signing in.\r\n
\r\n\r\n {result?.TwoFA === 1 && (\r\n \r\n )}\r\n {result?.TwoFA !== 1 && (\r\n\r\n Already have an account?{\" \"}\r\n \r\n Sign up\r\n \r\n
\r\n )}\r\n\r\n Use crato to automate your fuel station operations
\r\n and minimize your chances of getting loses.\r\n