├── .eslintrc.js ├── .git-blame-ignore-revs ├── .github ├── CONTRIBUTING.md ├── ISSUE_TEMPLATE │ ├── 1-bug_template.yml │ ├── 2-feature_template.yml │ ├── 3-general_question_template.yml │ └── config.yml ├── frappe-books-preview.png ├── logo.png └── workflows │ ├── build.yml │ ├── lint.yml │ ├── publish.yml │ └── test.yml ├── .gitignore ├── .prettierignore ├── LICENSE ├── META.md ├── README.md ├── backend ├── database │ ├── bespoke.ts │ ├── core.ts │ ├── manager.ts │ ├── runPatch.ts │ ├── tests │ │ ├── helpers.ts │ │ └── testCore.spec.ts │ └── types.ts ├── helpers.ts └── patches │ ├── addUOMs.ts │ ├── createInventoryNumberSeries.ts │ ├── createPaymentMethods.ts │ ├── fixItemHSNField.ts │ ├── fixRoundOffAccount.ts │ ├── index.ts │ ├── setPaymentReferenceType.ts │ ├── testPatch.ts │ ├── updateSchemas.ts │ └── v0_21_0 │ └── fixLedgerDateTime.ts ├── build ├── entitlements.mac.plist ├── icon.icns ├── icon.ico ├── icon.png ├── icons │ ├── 128x128.png │ ├── 16x16.png │ ├── 256x256.png │ ├── 32x32.png │ ├── 48x48.png │ ├── 512x512.png │ └── 64x64.png ├── installerIcon.ico ├── scripts │ ├── build.mjs │ ├── dev.mjs │ └── helpers.mjs └── uninstallerIcon.ico ├── colors.json ├── dummy ├── README.md ├── helpers.ts ├── index.ts ├── items.json ├── logo.ts ├── parties.json └── tests │ └── testDummy.spec.ts ├── electron-builder-config.mjs ├── electron-builder.yml.disabled ├── fixtures ├── countryInfo.json └── verified │ ├── ae.json │ ├── ca.json │ ├── fr.json │ ├── gt.json │ ├── hu.json │ ├── id.json │ ├── in.json │ ├── mx.json │ ├── ni.json │ ├── nl.json │ ├── sg.json │ └── standardCOA.json ├── fyo ├── README.md ├── core │ ├── authHandler.ts │ ├── converter.ts │ ├── dbHandler.ts │ ├── docHandler.ts │ └── types.ts ├── demux │ ├── auth.ts │ ├── config.ts │ └── db.ts ├── index.ts ├── model │ ├── doc.ts │ ├── errorHelpers.ts │ ├── helpers.ts │ ├── naming.ts │ ├── types.ts │ └── validationFunction.ts ├── models │ ├── CustomField.ts │ ├── CustomForm.ts │ ├── NumberSeries.ts │ ├── SystemSettings.ts │ └── index.ts ├── telemetry │ ├── telemetry.ts │ └── types.ts ├── tests │ ├── helpers.ts │ ├── testFyo.spec.ts │ └── testObservable.spec.ts └── utils │ ├── cacheManager.ts │ ├── consts.ts │ ├── errors.ts │ ├── format.ts │ ├── index.ts │ ├── observable.ts │ ├── translation.ts │ └── types.ts ├── jobs └── triggerErpNextSync.ts ├── main.ts ├── main ├── api.ts ├── contactMothership.ts ├── getLanguageMap.ts ├── getPrintTemplates.ts ├── helpers.ts ├── initSheduler.ts ├── preload.ts ├── printHtmlDocument.ts ├── registerAppLifecycleListeners.ts ├── registerAutoUpdaterListeners.ts ├── registerIpcMainActionListeners.ts ├── registerIpcMainMessageListeners.ts ├── registerProcessListeners.ts └── saveHtmlAsPdf.ts ├── models ├── README.md ├── Transactional │ ├── LedgerPosting.ts │ ├── Transactional.ts │ └── types.ts ├── baseModels │ ├── Account │ │ ├── Account.ts │ │ └── types.ts │ ├── AccountingLedgerEntry │ │ └── AccountingLedgerEntry.ts │ ├── AccountingSettings │ │ └── AccountingSettings.ts │ ├── Address │ │ └── Address.ts │ ├── AppliedCouponCodes │ │ └── AppliedCouponCodes.ts │ ├── CollectionRulesItems │ │ └── CollectionRulesItems.ts │ ├── CouponCode │ │ └── CouponCode.ts │ ├── Defaults │ │ └── Defaults.ts │ ├── ERPNextSyncQueue │ │ └── ERPNextSyncQueue.ts │ ├── ERPNextSyncSettings │ │ └── ERPNextSyncSettings.ts │ ├── FetchFromERPNextQueue │ │ └── FetchFromERPNextQueue.ts │ ├── IntegrationErrorLog │ │ └── IntegrationErrorLog.ts │ ├── Invoice │ │ ├── Invoice.ts │ │ └── types.ts │ ├── InvoiceItem │ │ └── InvoiceItem.ts │ ├── Item │ │ └── Item.ts │ ├── JournalEntry │ │ └── JournalEntry.ts │ ├── JournalEntryAccount │ │ └── JournalEntryAccount.ts │ ├── Lead │ │ └── Lead.ts │ ├── LoyaltyPointEntry │ │ └── LoyaltyPointEntry.ts │ ├── LoyaltyProgram │ │ └── LoyaltyProgram.ts │ ├── Misc.ts │ ├── Party │ │ ├── Party.ts │ │ └── types.ts │ ├── Payment │ │ ├── Payment.ts │ │ └── types.ts │ ├── PaymentFor │ │ └── PaymentFor.ts │ ├── PaymentMethod │ │ └── PaymentMethod.ts │ ├── PriceList │ │ ├── PriceList.ts │ │ └── PriceListItem.ts │ ├── PricingRule │ │ └── PricingRule.ts │ ├── PricingRuleDetail │ │ └── PricingRuleDetail.ts │ ├── PricingRuleItem │ │ └── PricingRuleItem.ts │ ├── PrintSettings │ │ └── PrintSettings.ts │ ├── PrintTemplate.ts │ ├── PurchaseInvoice │ │ └── PurchaseInvoice.ts │ ├── PurchaseInvoiceItem │ │ └── PurchaseInvoiceItem.ts │ ├── SalesInvoice │ │ └── SalesInvoice.ts │ ├── SalesInvoiceItem │ │ └── SalesInvoiceItem.ts │ ├── SalesQuote │ │ └── SalesQuote.ts │ ├── SalesQuoteItem │ │ └── SalesQuoteItem.ts │ ├── SetupWizard │ │ └── SetupWizard.ts │ ├── Tax │ │ └── Tax.ts │ ├── TaxSummary │ │ └── TaxSummary.ts │ └── tests │ │ ├── testCouponCodes.spec.ts │ │ ├── testInvoice.spec.ts │ │ ├── testLead.spec.ts │ │ ├── testLoyaltyProgram.spec.ts │ │ ├── testPriceList.spec.ts │ │ └── testPricingRule.spec.ts ├── exchangeRate.ts ├── helpers.ts ├── index.ts ├── inventory │ ├── Batch.ts │ ├── InventorySettings.ts │ ├── Location.ts │ ├── Point of Sale │ │ ├── CashDenominations.ts │ │ ├── ClosingAmounts.ts │ │ ├── ClosingCash.ts │ │ ├── DefaultCashDenominations.ts │ │ ├── OpeningAmounts.ts │ │ ├── OpeningCash.ts │ │ ├── POSClosingShift.ts │ │ ├── POSOpeningShift.ts │ │ ├── POSSettings.ts │ │ └── tests │ │ │ └── testPointOfSale.spec.ts │ ├── PurchaseReceipt.ts │ ├── PurchaseReceiptItem.ts │ ├── SerialNumber.ts │ ├── Shipment.ts │ ├── ShipmentItem.ts │ ├── StockLedgerEntry.ts │ ├── StockManager.ts │ ├── StockMovement.ts │ ├── StockMovementItem.ts │ ├── StockTransfer.ts │ ├── StockTransferItem.ts │ ├── Transfer.ts │ ├── TransferItem.ts │ ├── helpers.ts │ ├── stockQueue.ts │ ├── tests │ │ ├── helpers.ts │ │ ├── testBatches.spec.ts │ │ ├── testInventory.spec.ts │ │ ├── testSerialNumbers.spec.ts │ │ ├── testStockMovement.spec.ts │ │ ├── testStockQueue.spec.ts │ │ └── testStockTransfer.spec.ts │ └── types.ts ├── regionalModels │ └── in │ │ ├── Address.ts │ │ ├── Party.ts │ │ └── types.ts └── types.ts ├── package.json ├── postcss.config.js ├── regional └── in.ts ├── reports ├── AccountReport.ts ├── BalanceSheet │ └── BalanceSheet.ts ├── GeneralLedger │ └── GeneralLedger.ts ├── GoodsAndServiceTax │ ├── BaseGSTR.ts │ ├── GSTR1.ts │ ├── GSTR2.ts │ ├── gstExporter.ts │ └── types.ts ├── LedgerReport.ts ├── ProfitAndLoss │ └── ProfitAndLoss.ts ├── README.md ├── Report.ts ├── TrialBalance │ └── TrialBalance.ts ├── commonExporter.ts ├── index.ts ├── inventory │ ├── StockBalance.ts │ ├── StockLedger.ts │ ├── helpers.ts │ └── types.ts └── types.ts ├── schemas ├── README.md ├── app │ ├── Account.json │ ├── AccountingLedgerEntry.json │ ├── AccountingSettings.json │ ├── Address.json │ ├── AppliedCouponCodes.json │ ├── Batch.json │ ├── CollectionRulesItems.json │ ├── Color.json │ ├── CouponCode.json │ ├── Currency.json │ ├── Defaults.json │ ├── ERPNextSyncQueue.json │ ├── ERPNextSyncSettings.json │ ├── FetchFromERPNextQueue.json │ ├── GetStarted.json │ ├── IntegrationErrorLog.json │ ├── Invoice.json │ ├── InvoiceItem.json │ ├── Item.json │ ├── JournalEntry.json │ ├── JournalEntryAccount.json │ ├── Lead.json │ ├── LoyaltyPointEntry.json │ ├── LoyaltyProgram.json │ ├── Misc.json │ ├── NumberSeries.json │ ├── Party.json │ ├── Payment.json │ ├── PaymentFor.json │ ├── PaymentMethod.json │ ├── PriceList.json │ ├── PriceListItem.json │ ├── PricingRule.json │ ├── PricingRuleDetail.json │ ├── PricingRuleItem.json │ ├── PrintSettings.json │ ├── PrintTemplate.json │ ├── PurchaseInvoice.json │ ├── PurchaseInvoiceItem.json │ ├── SalesInvoice.json │ ├── SalesInvoiceItem.json │ ├── SalesQuote.json │ ├── SalesQuoteItem.json │ ├── SetupWizard.json │ ├── Tax.json │ ├── TaxDetail.json │ ├── TaxSummary.json │ ├── UOM.json │ └── inventory │ │ ├── InventorySettings.json │ │ ├── Location.json │ │ ├── Point of Sale │ │ ├── CashDenominations.json │ │ ├── ClosingAmounts.json │ │ ├── ClosingCash.json │ │ ├── DefaultCashDenominations.json │ │ ├── OpeningAmounts.json │ │ ├── OpeningCash.json │ │ ├── POSClosingShift.json │ │ ├── POSOpeningShift.json │ │ ├── POSSettings.json │ │ └── POSShiftAmounts.json │ │ ├── PurchaseReceipt.json │ │ ├── PurchaseReceiptItem.json │ │ ├── SerialNumber.json │ │ ├── Shipment.json │ │ ├── ShipmentItem.json │ │ ├── StockLedgerEntry.json │ │ ├── StockMovement.json │ │ ├── StockMovementItem.json │ │ ├── StockTransfer.json │ │ ├── StockTransferItem.json │ │ └── UOMConversionItem.json ├── core │ ├── CustomField.json │ ├── CustomForm.json │ ├── PatchRun.json │ ├── SingleValue.json │ └── SystemSettings.json ├── index.ts ├── meta │ ├── base.json │ ├── child.json │ ├── submittable.json │ └── tree.json ├── regional │ ├── ch │ │ ├── AccountingSettings.json │ │ └── index.ts │ ├── in │ │ ├── AccountingSettings.json │ │ ├── Address.json │ │ ├── Party.json │ │ └── index.ts │ └── index.ts ├── schemas.ts ├── tests │ ├── Customer.json │ ├── Party.json │ ├── helpers.ts │ └── testSchemaBuilder.spec.ts └── types.ts ├── scripts ├── generateTranslations.ts ├── profile.sh ├── profile.ts ├── publish-mac-arm.sh ├── runner.sh └── test.sh ├── src ├── App.vue ├── README.md ├── assets │ ├── fonts │ │ └── Inter.var.woff2 │ └── img │ │ └── list-empty-state.svg ├── components │ ├── Avatar.vue │ ├── Badge.vue │ ├── Button.vue │ ├── Charts │ │ ├── BarChart.vue │ │ ├── DonutChart.vue │ │ └── LineChart.vue │ ├── Controls │ │ ├── AttachImage.vue │ │ ├── Attachment.vue │ │ ├── AutoComplete.vue │ │ ├── Barcode.vue │ │ ├── Base.vue │ │ ├── Button.vue │ │ ├── Check.vue │ │ ├── Color.vue │ │ ├── Currency.vue │ │ ├── Data.vue │ │ ├── Date.vue │ │ ├── Datetime.vue │ │ ├── DatetimePicker.vue │ │ ├── Datetime_old.vue │ │ ├── DynamicLink.vue │ │ ├── ExchangeRate.vue │ │ ├── Float.vue │ │ ├── FormControl.vue │ │ ├── Int.vue │ │ ├── LanguageSelector.vue │ │ ├── Link.vue │ │ ├── MultiLabelLink.vue │ │ ├── Secret.vue │ │ ├── Select.vue │ │ ├── Table.vue │ │ ├── TableRow.vue │ │ ├── Text.vue │ │ └── WeightEnabledBarcode.vue │ ├── Dialog.vue │ ├── Dropdown.vue │ ├── DropdownWithActions.vue │ ├── ErrorBoundary.vue │ ├── ExportWizard.vue │ ├── FeatherIcon.vue │ ├── FilterDropdown.vue │ ├── FormContainer.vue │ ├── FormHeader.vue │ ├── HorizontalResizer.vue │ ├── HowTo.vue │ ├── Icon.vue │ ├── Icons │ │ ├── 8 │ │ │ ├── arrow-right.vue │ │ │ ├── chevron-left.vue │ │ │ ├── chevron-right.vue │ │ │ ├── circle.vue │ │ │ ├── dot-horizontal.vue │ │ │ ├── dot-vertical.vue │ │ │ ├── index.ts │ │ │ ├── pencil.vue │ │ │ ├── plus.vue │ │ │ ├── up.vue │ │ │ └── x.vue │ │ ├── 12 │ │ │ ├── arrow-left-right.vue │ │ │ ├── drag-handle.vue │ │ │ ├── filter.vue │ │ │ ├── index.ts │ │ │ ├── list.vue │ │ │ ├── select.vue │ │ │ └── sidebar.vue │ │ ├── 16 │ │ │ ├── account-in.vue │ │ │ ├── address.vue │ │ │ ├── assets.vue │ │ │ ├── calendar.vue │ │ │ ├── circle.vue │ │ │ ├── down-small.vue │ │ │ ├── down.vue │ │ │ ├── expenses.vue │ │ │ ├── income.vue │ │ │ ├── index.ts │ │ │ ├── items.vue │ │ │ ├── liabilities.vue │ │ │ ├── mail.vue │ │ │ ├── normal.vue │ │ │ ├── opened.vue │ │ │ ├── phone.vue │ │ │ ├── plus.vue │ │ │ └── search.vue │ │ ├── 18 │ │ │ ├── check.vue │ │ │ ├── common-entries.vue │ │ │ ├── customer.vue │ │ │ ├── dashboard.vue │ │ │ ├── fb.vue │ │ │ ├── general.vue │ │ │ ├── gst.vue │ │ │ ├── index.ts │ │ │ ├── inventory.vue │ │ │ ├── invoice.vue │ │ │ ├── item.vue │ │ │ ├── mail.vue │ │ │ ├── opening-ac.vue │ │ │ ├── percentage.vue │ │ │ ├── pos.vue │ │ │ ├── property.vue │ │ │ ├── purchase-invoice.vue │ │ │ ├── purchase.vue │ │ │ ├── reports.vue │ │ │ ├── review-ac.vue │ │ │ ├── sales-invoice.vue │ │ │ ├── sales.vue │ │ │ ├── settings.vue │ │ │ ├── start.vue │ │ │ ├── supplier.vue │ │ │ └── system.vue │ │ ├── 24 │ │ │ ├── general.vue │ │ │ ├── green-check.vue │ │ │ ├── index.ts │ │ │ ├── invoice.vue │ │ │ ├── mail.vue │ │ │ ├── privacy.vue │ │ │ └── system.vue │ │ └── base.vue │ ├── Loading.vue │ ├── Modal.vue │ ├── MouseFollower.vue │ ├── POS │ │ ├── Classic │ │ │ ├── ItemsGrid.vue │ │ │ ├── ItemsTable.vue │ │ │ ├── SelectedItemRow.vue │ │ │ └── SelectedItemTable.vue │ │ ├── FloatingLabelCurrencyInput.vue │ │ ├── FloatingLabelFloatInput.vue │ │ ├── FloatingLabelInputBase.vue │ │ ├── Modern │ │ │ ├── ModernPOSItemsGrid.vue │ │ │ ├── ModernPOSItemsTable.vue │ │ │ ├── ModernPOSSelectedItemRow.vue │ │ │ └── ModernPOSSelectedItemTable.vue │ │ └── types.ts │ ├── PageHeader.vue │ ├── PageHeaderNavGroup.vue │ ├── Paginator.vue │ ├── Popover.vue │ ├── QuickView.vue │ ├── Report │ │ └── ListReport.vue │ ├── Row.vue │ ├── SearchBar.vue │ ├── ShortcutKeys.vue │ ├── ShortcutsHelper.vue │ ├── Sidebar.vue │ ├── StatusPill.vue │ ├── Toast.vue │ ├── Tooltip.vue │ ├── TwoColumnForm.vue │ ├── WindowsTitleBar.vue │ └── WithScroll.vue ├── errorHandling.ts ├── importer.ts ├── index.html ├── initFyo.ts ├── pages │ ├── ChartOfAccounts.vue │ ├── CommonForm │ │ ├── CommonForm.vue │ │ ├── CommonFormSection.vue │ │ ├── LinkedEntries.vue │ │ └── RowEditForm.vue │ ├── CustomizeForm │ │ └── CustomizeForm.vue │ ├── Dashboard │ │ ├── BaseDashboardChart.vue │ │ ├── Cashflow.vue │ │ ├── Dashboard.vue │ │ ├── Expenses.vue │ │ ├── PeriodSelector.vue │ │ ├── ProfitAndLoss.vue │ │ ├── SectionHeader.vue │ │ └── UnpaidInvoices.vue │ ├── DatabaseSelector.vue │ ├── Desk.vue │ ├── GetStarted.vue │ ├── ImportWizard.vue │ ├── ListView │ │ ├── List.vue │ │ ├── ListCell.vue │ │ └── ListView.vue │ ├── POS │ │ ├── AlertModal.vue │ │ ├── ClassicPOS.vue │ │ ├── ClosePOSShiftModal.vue │ │ ├── CouponCodeModal.vue │ │ ├── KeyboardModal.vue │ │ ├── LoyaltyProgramModal.vue │ │ ├── ModernPOS.vue │ │ ├── OpenPOSShiftModal.vue │ │ ├── POS.vue │ │ ├── POSQuickActions.vue │ │ ├── PaymentModal.vue │ │ ├── PriceListModal.vue │ │ ├── ReturnSalesInvoiceModal.vue │ │ └── SavedInvoiceModal.vue │ ├── PrintView │ │ ├── PrintView.vue │ │ └── ReportPrintView.vue │ ├── QuickEditForm.vue │ ├── Report.vue │ ├── Settings │ │ └── Settings.vue │ ├── SetupWizard │ │ └── SetupWizard.vue │ └── TemplateBuilder │ │ ├── PrintContainer.vue │ │ ├── ScaledContainer.vue │ │ ├── SetPrintSize.vue │ │ ├── SetType.vue │ │ ├── TemplateBuilder.vue │ │ ├── TemplateBuilderHint.vue │ │ └── TemplateEditor.vue ├── regional │ ├── in │ │ └── in.ts │ └── index.ts ├── renderer.ts ├── renderer │ ├── helpers.ts │ └── registerIpcRendererListeners.ts ├── router.ts ├── setup │ ├── createCOA.ts │ ├── setupInstance.ts │ ├── standardCOA.ts │ └── types.ts ├── shims-tsx.d.ts ├── shims-vue-custom.d.ts ├── shims-vue.d.ts ├── styles │ └── index.css └── utils │ ├── api.ts │ ├── chart.ts │ ├── colors.ts │ ├── db.ts │ ├── doc.ts │ ├── erpnextSync.ts │ ├── export.ts │ ├── filters.ts │ ├── getStartedConfig.ts │ ├── index.ts │ ├── initialization.ts │ ├── injectionKeys.ts │ ├── interactive.ts │ ├── language.ts │ ├── misc.ts │ ├── pos.ts │ ├── printTemplates.ts │ ├── refs.ts │ ├── search.ts │ ├── shortcuts.ts │ ├── sidebarConfig.ts │ ├── theme.ts │ ├── types.ts │ ├── ui.ts │ └── vueUtils.ts ├── tailwind.config.js ├── templates ├── Basic.template.html ├── Business-POS.template.html ├── Business.Payment.template.html ├── Business.Shipment.template.html ├── Business.template.html └── Minimal.template.html ├── tests ├── helpers.ts ├── items.csv ├── parties.csv ├── sales_invoices.csv ├── testImporter.spec.ts └── testSetupInstance.spec.ts ├── translations ├── ar.csv ├── ca-ES.csv ├── da.csv ├── de.csv ├── es.csv ├── fr.csv ├── gu.csv ├── hi.csv ├── id.csv ├── ko.csv ├── nl.csv ├── np.csv ├── pt.csv ├── sv.csv ├── tr.csv ├── zh-CN.csv └── zh-Hant.csv ├── tsconfig.json ├── uitest └── index.mjs ├── utils ├── auth │ └── types.ts ├── config.ts ├── csvParser.ts ├── db │ └── types.ts ├── defaults.ts ├── index.ts ├── ipc │ └── types.ts ├── messages.ts ├── misc.ts ├── translationHelpers.ts ├── types.ts └── version.ts ├── vite.config.ts └── yarn.lock /.git-blame-ignore-revs: -------------------------------------------------------------------------------- 1 | # Rename 'frappe' to 'fyo' outside src 2 | 32d282dc9c6f129807a1cf53eae47fc3602aa976 3 | 4 | # Format files using prettier 5 | 8c9d81d298dd08ae7acaf6de297aa30d95329778 -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/3-general_question_template.yml: -------------------------------------------------------------------------------- 1 | name: 'General Question' 2 | description: Create a new ticket for a general question 3 | title: '🐛 [General Question] -
17 | {{ formSubTitle }} 18 |
19 |