From 56278a25f0b8ada708a5dc8a8304cb14edc70f05 Mon Sep 17 00:00:00 2001 From: Ahmed Bouhuolia Date: Wed, 22 Jul 2020 02:03:12 +0200 Subject: [PATCH] - feat: Sales estimates APIs. - feat: Sales invoices APIs. - feat: Sales receipts APIs. - WIP: Sales payment receipts. - WIP: Purchases bills. - WIP: Purchases payments made. --- .../Dashboard/DashboardActionViewsList.js | 44 ++ .../Dashboard/DashboardViewsTabs.js | 16 +- client/src/components/index.js | 3 +- .../containers/Accounts/AccountsActionsBar.js | 41 +- .../containers/Accounts/AccountsViewsTabs.js | 17 +- .../Customers/CustomerActionsBar.js | 8 +- .../src/containers/Customers/CustomersList.js | 4 + .../Customers/CustomersViewsTabs.js | 78 +++ client/src/style/pages/dashboard.scss | 15 + common/routes/users.test.js | 2 +- server/src/database/factories/index.js | 80 +++ .../20190822214303_create_items_table.js | 7 +- .../20200607212203_create_customers_table.js | 2 + .../20200608192614_create_vendors_table.js | 2 + ...0713192127_create_sales_estimates_table.js | 18 + ...50_create_sales_estimates_entries_table.js | 16 + ...200713213303_create_sales_receipt_table.js | 18 + ...3311_create_sales_receipt_entries_table.js | 17 + ...200715193633_create_sale_invoices_table.js | 22 + ...715194514_create_payment_receives_table.js | 17 + ...846_create_sales_invoices_entries_table.js | 17 + ...1_create_payment_receives_entries_table.js | 13 + .../20200719152005_reate_bills_table.js | 16 + ...00719153909_create_bills_payments_table.js | 17 + server/src/database/seeds/seed_resources.js | 4 + server/src/http/controllers/Accounts.js | 2 - server/src/http/controllers/Bills.js | 10 - .../InventoryValuationSummary.js | 17 + .../PayableAgingSummary.js | 1 - server/src/http/controllers/Items.js | 31 +- .../src/http/controllers/Purchases/Bills.js | 157 ++++++ .../controllers/Purchases/BillsPayments.js | 140 +++++ .../src/http/controllers/Purchases/index.js | 15 + .../http/controllers/Sales/PaymentReceives.js | 215 ++++++++ .../http/controllers/Sales/SalesEstimates.js | 285 ++++++++++ .../http/controllers/Sales/SalesInvoices.js | 261 +++++++++ .../http/controllers/Sales/SalesInvoicing.js | 0 .../controllers/Sales/SalesPaymentReceive.js | 0 .../http/controllers/Sales/SalesReceipt.js | 276 ++++++++++ server/src/http/controllers/Sales/index.js | 21 + server/src/http/index.js | 6 +- .../src/http/middleware/TenancyMiddleware.js | 3 +- .../src/http/middleware/validateMiddleware.js | 13 + server/src/models/Bill.js | 29 + server/src/models/BillPayment.js | 28 + server/src/models/PaymentReceive.js | 46 ++ server/src/models/PaymentReceiveEntry.js | 45 ++ server/src/models/SaleEstimate.js | 47 ++ server/src/models/SaleEstimateEntry.js | 45 ++ server/src/models/SaleInvoice.js | 46 ++ server/src/models/SaleInvoiceEntry.js | 46 ++ server/src/models/SaleReceipt.js | 46 ++ server/src/models/SaleReceiptEntry.js | 45 ++ server/src/models/View.js | 18 + server/src/models/index.js | 37 ++ .../src/repositories/BaseModelRepository.js | 11 + server/src/repositories/ResourceRepository.js | 12 + server/src/repositories/index.js | 5 + .../src/services/Accounting/JournalPoster.js | 23 + .../src/services/Accounts/AccountsService.js | 9 + .../services/Customers/CustomersService.js | 10 + .../services/DynamicListing/DynamicListing.js | 75 +++ .../DynamicListing/DynamicListingBuilder.js | 25 + .../DynamicListing/HasDynamicListing.js | 22 + server/src/services/Items/ItemsService.js | 21 + server/src/services/Purchases/BillPayments.js | 30 ++ server/src/services/Purchases/Bills.js | 114 ++++ .../src/services/Resource/ResourceService.js | 5 + .../services/Sales/JournalPosterService.js | 25 + server/src/services/Sales/PaymentReceive.js | 116 ++++ server/src/services/Sales/SaleInvoice.js | 237 +++++++++ server/src/services/Sales/SalesEstimate.js | 179 +++++++ server/src/services/Sales/SalesReceipt.js | 188 +++++++ .../src/services/Sales/ServiceItemsEntries.js | 16 + server/src/services/Vendors/VendorsService.js | 15 + server/tests/routes/balance_sheet.test.js | 4 +- server/tests/routes/bill_payments.test.js | 113 ++++ server/tests/routes/bills.test.js | 215 ++++++++ server/tests/routes/payment_receives.test.js | 274 ++++++++++ server/tests/routes/sales_estimates.test.js | 439 ++++++++++++++++ server/tests/routes/sales_invoices.test.js | 494 ++++++++++++++++++ server/tests/routes/sales_receipts.test.js | 294 +++++++++++ server/tests/services/JournalPoster.test.js | 10 + 83 files changed, 5330 insertions(+), 76 deletions(-) create mode 100644 client/src/components/Dashboard/DashboardActionViewsList.js create mode 100644 client/src/containers/Customers/CustomersViewsTabs.js create mode 100644 server/src/database/migrations/20200713192127_create_sales_estimates_table.js create mode 100644 server/src/database/migrations/20200713193250_create_sales_estimates_entries_table.js create mode 100644 server/src/database/migrations/20200713213303_create_sales_receipt_table.js create mode 100644 server/src/database/migrations/20200713213311_create_sales_receipt_entries_table.js create mode 100644 server/src/database/migrations/20200715193633_create_sale_invoices_table.js create mode 100644 server/src/database/migrations/20200715194514_create_payment_receives_table.js create mode 100644 server/src/database/migrations/20200716092846_create_sales_invoices_entries_table.js create mode 100644 server/src/database/migrations/20200718161031_create_payment_receives_entries_table.js create mode 100644 server/src/database/migrations/20200719152005_reate_bills_table.js create mode 100644 server/src/database/migrations/20200719153909_create_bills_payments_table.js delete mode 100644 server/src/http/controllers/Bills.js create mode 100644 server/src/http/controllers/FinancialStatements/InventoryValuationSummary.js create mode 100644 server/src/http/controllers/Purchases/Bills.js create mode 100644 server/src/http/controllers/Purchases/BillsPayments.js create mode 100644 server/src/http/controllers/Purchases/index.js create mode 100644 server/src/http/controllers/Sales/PaymentReceives.js create mode 100644 server/src/http/controllers/Sales/SalesInvoices.js delete mode 100644 server/src/http/controllers/Sales/SalesInvoicing.js delete mode 100644 server/src/http/controllers/Sales/SalesPaymentReceive.js create mode 100644 server/src/http/controllers/Sales/index.js create mode 100644 server/src/http/middleware/validateMiddleware.js create mode 100644 server/src/models/Bill.js create mode 100644 server/src/models/BillPayment.js create mode 100644 server/src/models/PaymentReceive.js create mode 100644 server/src/models/PaymentReceiveEntry.js create mode 100644 server/src/models/SaleEstimate.js create mode 100644 server/src/models/SaleEstimateEntry.js create mode 100644 server/src/models/SaleInvoice.js create mode 100644 server/src/models/SaleInvoiceEntry.js create mode 100644 server/src/models/SaleReceipt.js create mode 100644 server/src/models/SaleReceiptEntry.js create mode 100644 server/src/models/index.js create mode 100644 server/src/repositories/BaseModelRepository.js create mode 100644 server/src/repositories/ResourceRepository.js create mode 100644 server/src/repositories/index.js create mode 100644 server/src/services/Accounts/AccountsService.js create mode 100644 server/src/services/Customers/CustomersService.js create mode 100644 server/src/services/DynamicListing/DynamicListing.js create mode 100644 server/src/services/DynamicListing/DynamicListingBuilder.js create mode 100644 server/src/services/DynamicListing/HasDynamicListing.js create mode 100644 server/src/services/Items/ItemsService.js create mode 100644 server/src/services/Purchases/BillPayments.js create mode 100644 server/src/services/Purchases/Bills.js create mode 100644 server/src/services/Resource/ResourceService.js create mode 100644 server/src/services/Sales/JournalPosterService.js create mode 100644 server/src/services/Sales/PaymentReceive.js create mode 100644 server/src/services/Sales/SaleInvoice.js create mode 100644 server/src/services/Sales/SalesEstimate.js create mode 100644 server/src/services/Sales/SalesReceipt.js create mode 100644 server/src/services/Sales/ServiceItemsEntries.js create mode 100644 server/src/services/Vendors/VendorsService.js create mode 100644 server/tests/routes/bill_payments.test.js create mode 100644 server/tests/routes/bills.test.js create mode 100644 server/tests/routes/payment_receives.test.js create mode 100644 server/tests/routes/sales_estimates.test.js create mode 100644 server/tests/routes/sales_invoices.test.js create mode 100644 server/tests/routes/sales_receipts.test.js diff --git a/client/src/components/Dashboard/DashboardActionViewsList.js b/client/src/components/Dashboard/DashboardActionViewsList.js new file mode 100644 index 000000000..120e78c87 --- /dev/null +++ b/client/src/components/Dashboard/DashboardActionViewsList.js @@ -0,0 +1,44 @@ +import React, { useMemo } from 'react'; +import classNames from 'classnames'; +import { + Button, + Classes, + MenuItem, + Menu, + Popover, + PopoverInteractionKind, + Position, +} from '@blueprintjs/core'; +import { FormattedMessage as T } from 'react-intl'; +import { useHistory } from 'react-router-dom'; +import { Icon } from 'components'; + +export default function DashboardActionViewsList({ + resourceName, + views +}) { + const history = useHistory(); + + const handleClickViewItem = (view) => { + history.push(view ? `/${resourceName}/${view.id}/custom_view` : '/accounts'); + }; + const viewsMenuItems = views.map((view) => { + return handleClickViewItem(view)} text={view.name} />; + }); + + return ( + {viewsMenuItems}} + minimal={true} + interactionKind={PopoverInteractionKind.HOVER} + position={Position.BOTTOM_LEFT} + > +