Compare commits

..

5 Commits

Author SHA1 Message Date
Ahmed Bouhuolia
79b3ab9ec7 Update CHANGELOG.md 2022-04-05 05:26:48 +02:00
a.bouhuolia
e7158b7ba7 feat(i18n): add the missing arabic localization. 2022-04-05 05:25:26 +02:00
Ahmed Bouhuolia
569bc1c4a4 Merge pull request #49 from bigcapitalhq/billingplans
Billingplans
2022-04-05 05:16:28 +02:00
elforjani13
b880732087 feat: add billing plans. 2022-04-04 23:52:29 +02:00
elforjani13
b1e7720bd9 BIG-378: add Localize to invoice. 2022-04-04 17:58:39 +02:00
14 changed files with 144 additions and 94 deletions

View File

@@ -2,6 +2,12 @@
All notable changes to Bigcapital server-side will be in this file.
## [1.7.2-rc.2] - 04-04-2022
### Fixed
- Add the missing Arabic localization.
- Subscription plans modifications.
## [1.7.1-rc.2] - 30-03-2022
## Added

View File

@@ -85,9 +85,6 @@ function getClientEnvironment(publicUrl) {
WDS_SOCKET_HOST: process.env.WDS_SOCKET_HOST,
WDS_SOCKET_PATH: process.env.WDS_SOCKET_PATH,
WDS_SOCKET_PORT: process.env.WDS_SOCKET_PORT,
// Application version.
VERSION: paths.appVersion
}
);
// Stringify all values so we can feed into webpack DefinePlugin

View File

@@ -48,8 +48,6 @@ const resolveModule = (resolveFn, filePath) => {
return resolveFn(`${filePath}.js`);
};
const appVersion = require(resolveApp('package.json')).version;
// config after eject: we're in ./config/
module.exports = {
dotenv: resolveApp('.env'),
@@ -67,7 +65,6 @@ module.exports = {
proxySetup: resolveApp('src/setupProxy.js'),
appNodeModules: resolveApp('node_modules'),
publicUrlOrPath,
appVersion
};

View File

@@ -28,7 +28,7 @@ export default function Sidebar({ dashboardContentRef }) {
* @returns {React.JSX}
*/
function SidebarFooterVersion() {
const { VERSION } = process.env;
const { REACT_APP_VERSION: VERSION } = process.env;
if (!VERSION) {
return null;

View File

@@ -57,7 +57,9 @@ function BillTransactionDeleteAlert({
loading={isLoading}
>
<p>
<T id={`landed_cost.once_your_delete_this_located_landed_cost`} />
<T
id={`Once your delete this located landed cost, you won't be able to restore it later, Are your sure you want to delete this transaction?`}
/>
</p>
</Alert>
);

View File

@@ -79,10 +79,6 @@ export const handleCashFlowTransactionType = (reference, openDrawer) => {
return openDrawer('refund-vendor-detail-drawer', {
refundTransactionId: reference.reference_id,
});
case 'InventoryAdjustment':
return openDrawer('inventory-adjustment-drawer', {
inventoryId: reference.reference_id,
});
default:
return openDrawer('cashflow-transaction-drawer', {

View File

@@ -37,7 +37,7 @@ function AllocateLandedCostFloatingActions({
<DialogFooterActions alignment={'left'}>
{costTransactionEntry && (
<UnallocatedAmount>
<T id={'landed_cost.dialog.label_unallocated_cost_amount'}/>
Unallocated cost Amount:{' '}
<strong>{formattedUnallocatedCostAmount}</strong>
</UnallocatedAmount>
)}

View File

@@ -42,10 +42,7 @@ function AllocateLandedCostForm({
.map((entry) => transformToForm(entry, defaultInitialValues.items[0]));
if (entries.length <= 0) {
AppToaster.show({
message: intl.get('something_wrong'),
intent: Intent.DANGER,
});
AppToaster.show({ message: 'Something wrong!', intent: Intent.DANGER });
return;
}
const form = {
@@ -72,14 +69,13 @@ function AllocateLandedCostForm({
)
) {
AppToaster.show({
message: intl.get(
'landed_cost.error.the_total_located_cost_is_bigger_than_the_transaction_line',
),
message:
'The total located cost is bigger than the transaction line.',
intent: Intent.DANGER,
});
} else {
AppToaster.show({
message: intl.get('something_went_wrong'),
message: 'Something went wrong!',
intent: Intent.DANGER,
});
}

View File

@@ -43,7 +43,10 @@ export function ActionsCellRenderer({
const exampleMenu = (
<Menu>
<MenuItem onClick={onRemoveRole} text={'item_entries.remove_row'} />
<MenuItem
onClick={onRemoveRole}
text={<T id={'item_entries.remove_row'} />}
/>
</Menu>
);

View File

@@ -147,7 +147,7 @@ function InvoiceFormHeaderFields({
</FastField>
</Col>
<Col className={'col--due-date'}>
<Col xs={6}>
{/* ----------- Due date ----------- */}
<FastField name={'due_date'}>
{({ form, field: { value }, meta: { error, touched } }) => (

View File

@@ -1173,6 +1173,7 @@
"From transaction": "من معاملة",
"Landed": "Landed",
"This options allows you to be able to add additional cost eg. freight then allocate cost to the items in your bills.": "يتيح لك هذا الخيار إمكانية إضافة تكلفة إضافية على سبيل المثال اضافة تكلفة الشحن ومن ثم تخصيص التكلفة لفواتير الشراء.",
"Once your delete this located landed cost, you won't be able to restore it later, Are your sure you want to delete this transaction?": "بمجرد حذف معاملة تحميل التكلفة ، لن تتمكن من استعادتها لاحقًا ، هل أنت متأكد من أنك تريد حذف هذه المعاملة؟",
"journal_entries": "القيود",
"contact": "جهة الاتصال",
"invoice_details": "تفاصيل الفاتورة",
@@ -1389,7 +1390,7 @@
"filter.value": "قيمة",
"payment_made.empty_status.title": "المنشأة لم تدفع اي اموال إلي الموردين ، إلي حد الأن!.",
"estimate.delete.error.estimate_converted_to_invoice": "لا يمكن حذف عملية عرض اسعار الذي تم تحويلها إلي فاتورة بيع.",
"landed_cost.action.delete.success_message": "تم حذف تكلفة اضافية بنجاح. ",
"landed_cost.action.delete.success_message": "The landed cost has been deleted successfully.",
"items.option.only_active": "Only active",
"items.option_all_items.hint": "جميع الاصناف ، بما في ذلك تلك الاصناف لديها رصيد صفر.",
"items.option_with_transactions": "الاصناف مع معاملات",
@@ -1593,9 +1594,6 @@
"refund": "استرجاع",
"landed_cost.dialog.label_select_transaction": "حدد المعاملة ",
"landed_cost.dialog.label_select_transaction_entry": "حدد سطر المعاملة ",
"landed_cost.dialog.label_unallocated_cost_amount":"قيمة التكلفة غير المحملة:",
"landed_cost.error.the_total_located_cost_is_bigger_than_the_transaction_line":"إجمالي قيمة التكلفة المحملة أكبر من قيمة سطر المعاملة.",
"landed_cost.once_your_delete_this_located_landed_cost": "بمجرد حذف معاملة تحميل التكلفة ، لن تتمكن من استعادتها لاحقًا ، هل أنت متأكد من أنك تريد حذف هذه المعاملة؟",
"refund_credit_note.dialog.label": "استرجاع اموال",
"refund_credit_note.dialog.success_message": "تم انشاء معاملة استرجاع الاموال لإشعار الدائن بنجاح.",
"refund_credit_note.dialog.refund_date": "تاريخ الاسترجاع",
@@ -1918,7 +1916,7 @@
"branches_multi_select.placeholder": "تصفية حسب الفروع…",
"warehouses_multi_select.label": "مخازن",
"warehouses_multi_select.placeholder": "تصفية حسب المخازن…",
"dimensions": "Dimensions",
"dimensions": "الأبعاد",
"warehouse_transfer.save_initiate_transfer": "حفظ وبدء النقل",
"warehouse_transfer.save_mark_as_transferred": "حفظ وتم النقل",
"warehouse_transfer.label.transfer_initiated": "بدء النقل",
@@ -1947,7 +1945,7 @@
"view_customer_details": "عرض تفاصيل العميل ",
"view_vendor_details": "عرض تفاصيل المورد ",
"thanks_for_your_business_and_have_a_great_day": "Thanks for your business and have a great day!",
"terms_and_conditions.placeholder": "Enter the terms and conditions of your business to be displayed in your transaction",
"terms_and_conditions.placeholder": "أدخل شروط وأحكام عملك ليتم عرضها في المعاملة.",
"expenses.decscrption.placeholder": "Enter the description of your business to be displayed in your transaction",
"make_jorunal.decscrption.placeholder": "Enter the description of your business to be displayed in your transaction",
"estimate_form.label.total": "إجمالي",
@@ -1955,14 +1953,15 @@
"estimate_form.label.customer_note": "ملاحظة الزبون",
"estimate_form.label.terms_conditions": "الشروط والأحكام",
"estimate_form.customer_note.placeholder": "Thanks for your business and have a great day!",
"estimate_form.terms_and_conditions.placeholder": "Enter the terms and conditions of your business to be displayed in your transaction",
"estimate_form.terms_and_conditions.placeholder": "أدخل شروط وأحكام عملك ليتم عرضها في المعاملة.",
"invoice_form.label.total": "إجمالي",
"invoice_form.label.subtotal": "المجموع",
"invoice_form.label.due_amount": "مبلغ المستحق",
"invoice_form.label.payment_amount": "مبلغ المدفوع",
"invoice_form.label.invoice_message": "رسالة الفاتورة",
"invoice_form.invoice_message.placeholder": "Thanks for your business and have a great day!",
"invoice_form.terms_and_conditions.placeholder": "Enter the terms and conditions of your business to be displayed in your transaction",
"invoice_form.label.terms_conditions": "الشروط والأحكام",
"invoice_form.terms_and_conditions.placeholder": "أدخل شروط وأحكام عملك ليتم عرضها في المعاملة.",
"receipt_form.label.total": "إجمالي",
"receipt_form.label.subtotal": "المجموع",
"receipt_form.label.due_amount": "مبلغ المستحق",
@@ -1976,13 +1975,13 @@
"payment_receive_form.label.subtotal": "المجموع",
"payment_receive_form.label.total": "إجمالي",
"bill_form.label.note": "ملاحظة",
"bill_form.label.note.placeholder": "Enter the terms and conditions of your business to be displayed in your transaction",
"bill_form.label.note.placeholder": "أدخل شروط وأحكام عملك ليتم عرضها في المعاملة.",
"bill_form.label.subtotal": "المجموع",
"bill_form.label.total": "إجمالي",
"bill_form.label.due_amount": "مبلغ المستحق",
"bill_form.label.payment_amount": "مبلغ المدفوع",
"vendor_credit_form.label.note": "ملاحظة",
"vendor_credit_form.note.placeholder": "Enter the terms and conditions of your business to be displayed in your transaction",
"vendor_credit_form.note.placeholder": "أدخل شروط وأحكام عملك ليتم عرضها في المعاملة.",
"vendor_credit_form.label.subtotal": "المجموع",
"vendor_credit_form.label.total": "إجمالي",
"payment_made_form.label.statement": "بيان",
@@ -2010,7 +2009,7 @@
"warehouse_transfer.empty_status.title": "إدارة عمليات النقل بين المخازن",
"warehouse_transfer.empty_status.description": "غالبًا ماتحتاج الاعمال ذات مخازن متعددة لطلبات نقل البضائع من مخزن إلى آخر عندما تكون في حاجة ماسة إلى البائعين.",
"warehouse_transfer.form.reason.label": "أسباب النقل",
"warehouse_transfer.form.reason.placeholder": "Enter the reason behind the transfer order.",
"warehouse_transfer.form.reason.placeholder": "أدخل السبب وراء طلب النقل.",
"item.error.you_could_not_delete_item_has_associated": "لا يمكنك حذف العنصر لديه معاملات مرتبطة به ",
"warehouse_transfer.quantity_cannot_be_zero_or_empty": "لا يمكن أن تكون الكمية صفراً أو فارغة.",
"invoice.validation.due_date": "يجب أن يكون حقل {path} في وقت لاحق من {min}",

View File

@@ -1147,6 +1147,7 @@
"From transaction": "From transaction",
"landed": "Landed",
"This options allows you to be able to add additional cost eg. freight then allocate cost to the items in your bills.": "This options allows you to be able to add additional cost eg. freight then allocate cost to the items in your bills.",
"Once your delete this located landed cost, you won't be able to restore it later, Are your sure you want to delete this transaction?": "Once your delete this located landed cost, you won't be able to restore it later, Are your sure you want to delete this transaction?",
"journal_entries": "Journal Entries",
"contact": "Contact",
"invoice_details": "Invoice details",
@@ -1258,12 +1259,41 @@
"setup.initializing.please_refresh_the_page": "Please refresh the page",
"setup.organization.title": "Lets Get Started",
"setup.organization.description": "Tell the system a little bit about your organization.",
"plan.capital_basic.title": "Capital Basic",
"plan.feature.sales_invoices": "Sales Invoices.",
"plan.feature.sales_estimates": "Sales Estimates.",
"plan.feature.customers": "Customers.",
"plan.feature.credit_notes": "Credit notes.",
"plan.feature.manual_journals": "Manual Journals.",
"plan.feature.expenses_tracking": "Expenses Tracking",
"plan.feature.basic_financial_reports": "Basic Financial Reports.",
"plan.capital_plus.title": "Capital Plus",
"plan.feature.all_capital_basic": "All Capital Basic features.",
"plan.feature.predefined_user_roles": "Predefined User Roles.",
"plan.feature.custom_tables_views": "Custom Tables Views.",
"plan.feature.transactions_locking": "Transactions Locking.",
"plan.feature.plus_financial_reports": "Plus Financial Reports.",
"plan.feature.custom_fields_resources": "Custom Fields & Resources.",
"plan.essential.title": "Capital Essential",
"plan.feature.all_capital_plus": "All Capital Basic features.",
"plan.feature.sales_purchases_order": "Sales & Purchases Order.",
"plan.feature.purchase_invoices": "Purchase Invoices.",
"plan.feature.inventory_tracking": "Inventory Tracking.",
"plan.feature.custom_roles": "Custom Roles.",
"plan.feature.multiply_currency_transcations": "Multiply Currency Transcations.",
"plan.feature.inventory_reports": "Inventory Reports.",
"plan.feature.landed_cost": "Landed cost.",
"plan.capital_enterprise.title": "Capital Enterprise",
"plan.feature.all_capital_essential": "All Capital Essential features.",
"plan.feature.multiply_branches": "Multiply Branches.",
"plan.feature.multiply_warehouses": "Multiply Warehouses.",
"plan.feature.accounting_dimensions": "Accounting Dimensions.",
"plan.feature.warehouses_reports": "Warehouses Reports.",
"plan.feature.branches_reports": "Branches Reports.",
"plan.professional.title": "Pro",
"plan.essential.title": "Essential",
"plan.plus.title": "Plus+",
"plan.feature.sale_purchase_invoice": "Sale and purchase invoices.",
"plan.feature.receivable_payable_accounts": "Customers/vendors accounts.",
"plan.feature.expenses_tracking": "Expenses tracking",
"plan.feature.manual_journal": "Manual journals.",
"plan.feature.financial_reports": "Financial reports.",
"plan.feature.one_user_with_accountant": "For one user and accountant",
@@ -1274,9 +1304,7 @@
"plan.feature.three_users": "Three users with your accountant",
"plan.feature.advanced_financial_reports": "Advanced financial reports",
"plan.feature.tracking_multi_locations": "Track multi-branches and locations",
"plan.feature.all_capital_essential": "All Capital Essential features.",
"plan.feature.projects_accounting": "Projects accounting and timesheets",
"plan.feature.accounting_dimensions": "Accounting dimensions.",
"plan.monthly": "Monthly",
"plan.yearly": "Yearly",
"payment_via_voucher.success_message": "Payment has been done successfully.",
@@ -1292,11 +1320,11 @@
"inventory_adjustment.details_drawer.title": "Inventory adjustment details",
"setup.organization.location": "Location",
"preferences.general.success_message": "The general preferences has been saved.",
"customer.drawer.action.new_invoice": "New Invoice",
"customer.drawer.action.new_estimate": "New Estimate",
"customer.drawer.action.new_payment": "New Payment",
"customer.drawer.action.new_receipt": "New Receipt",
"customer.drawer.action.new_transaction": "New Transaction",
"customer.drawer.action.new_invoice": "New invoice",
"customer.drawer.action.new_estimate": "New estimate",
"customer.drawer.action.new_payment": "New payment",
"customer.drawer.action.new_receipt": "New receipt",
"customer.drawer.action.new_transaction": "New transaction",
"customer.drawer.action.edit_opening_balance": "Edit Opening Balance",
"customer.drawer.action.edit": "Edit",
"customer.drawer.label.outstanding_receivable": "Outstanding receivable",
@@ -1323,9 +1351,9 @@
"vendor.drawer.label.note": "Note",
"vendor.drawer.action.edit_vendor": "Edit vendor",
"vendor.drawer.action.delete": "Delete",
"vendor.drawer.action.new_transaction": "New Transaction",
"vendor.drawer.action.new_payment": "New Payment",
"vendor.drawer.action.new_invoice": "New Purchase Invoice",
"vendor.drawer.action.new_transaction": "New transaction",
"vendor.drawer.action.new_payment": "New payment",
"vendor.drawer.action.new_invoice": "New purchase invoice",
"vendor.drawer.action.edit": "Edit",
"vendor.drawer.action.edit_opening_balance": "Edit Opening Balance",
"manual_journals.empty_status.description": "Manual journals can be used to record financial transactions manually, used by accountants to work with the ledger.",
@@ -1584,9 +1612,6 @@
"refund": "Refund",
"landed_cost.dialog.label_select_transaction": "Select transaction",
"landed_cost.dialog.label_select_transaction_entry": "Select transaction entry",
"landed_cost.dialog.label_unallocated_cost_amount": "Unallocated cost Amount:",
"landed_cost.error.the_total_located_cost_is_bigger_than_the_transaction_line": "The total located cost is bigger than the transaction line.",
"landed_cost.once_your_delete_this_located_landed_cost": "Once your delete this located landed cost, you won't be able to restore it later, Are your sure you want to delete this transaction?",
"refund_credit_note.dialog.label": "Refund Credit Note",
"refund_credit_note.dialog.success_message": "The customer credit note refund has been created successfully.",
"refund_credit_note.dialog.refund_date": "Refund date",
@@ -1941,7 +1966,6 @@
"payment_made.error.withdrawal_account_currency_invalid": "The withdrawal account currency should be same vendor currency or organization base currency.",
"view_customer_details": "View Customer Details",
"view_vendor_details": "View Vendor Details",
"thanks_for_your_business_and_have_a_great_day": "Thanks for your business and have a great day!",
"terms_and_conditions.placeholder": "Enter the terms and conditions of your business to be displayed in your transaction",
"expenses.decscrption.placeholder": "Enter the description of your business to be displayed in your transaction",
"make_jorunal.decscrption.placeholder": "Enter the description of your business to be displayed in your transaction",

View File

@@ -2,7 +2,6 @@ import { createReducer } from '@reduxjs/toolkit';
import intl from 'react-intl-universal';
import t from 'store/types';
const getSubscriptionPeriods = () => [
{
slug: 'month',
@@ -15,79 +14,110 @@ const getSubscriptionPeriods = () => [
];
const getSubscriptionPlans = () => [
{
name: intl.get('plan.capital_basic.title'),
slug: 'capital_basic',
description: [
intl.get('plan.feature.sales_invoices'),
intl.get('plan.feature.sales_estimates'),
intl.get('plan.feature.customers'),
intl.get('plan.feature.credit_notes'),
intl.get('plan.feature.manual_journals'),
intl.get('plan.feature.expenses_tracking'),
intl.get('plan.feature.basic_financial_reports'),
],
price: '55',
periods: [
{
slug: 'month',
label: intl.get('plan.monthly'),
price: '55',
},
{
slug: 'year',
label: intl.get('plan.yearly'),
price: '595',
},
],
currencyCode: 'LYD',
},
{
name: intl.get('plan.capital_plus.title'),
slug: 'capital_plus',
description: [
intl.get('plan.feature.all_capital_basic'),
intl.get('plan.feature.predefined_user_roles'),
intl.get('plan.feature.custom_tables_views'),
intl.get('plan.feature.transactions_locking'),
intl.get('plan.feature.plus_financial_reports'),
intl.get('plan.feature.custom_fields_resources'),
],
price: '75',
periods: [
{
slug: 'month',
label: intl.get('plan.monthly'),
price: '75',
},
{
slug: 'year',
label: intl.get('plan.yearly'),
price: '795',
},
],
currencyCode: 'LYD',
},
{
name: intl.get('plan.essential.title'),
slug: 'essentials',
description: [
intl.get('plan.feature.sale_purchase_invoice'),
intl.get('plan.feature.receivable_payable_accounts'),
intl.get('plan.feature.expenses_tracking'),
intl.get('plan.feature.manual_journal'),
intl.get('plan.feature.financial_reports'),
intl.get('plan.feature.one_user_with_accountant'),
intl.get('plan.feature.all_capital_plus'),
intl.get('plan.feature.sales_purchases_order'),
intl.get('plan.feature.purchase_invoices'),
intl.get('plan.feature.inventory_tracking'),
intl.get('plan.feature.custom_roles'),
intl.get('plan.feature.multiply_currency_transcations'),
intl.get('plan.feature.inventory_reports'),
intl.get('plan.feature.landed_cost'),
],
price: '100',
price: '95',
periods: [
{
slug: 'month',
label: intl.get('plan.monthly'),
price: '100'
price: '95',
},
{
slug: 'year',
label: intl.get('plan.yearly'),
price: '1,200',
price: '995',
},
],
currencyCode: 'LYD',
},
{
name: intl.get('plan.professional.title'),
slug: 'plus',
description: [
intl.get('plan.feature.all_capital_essential'),
intl.get('plan.feature.multi_currency'),
intl.get('plan.feature.purchase_sell_orders'),
intl.get('plan.feature.multi_inventory_managment'),
intl.get('plan.feature.three_users'),
intl.get('plan.feature.advanced_financial_reports'),
],
price: '200',
currencyCode: 'LYD',
periods: [
{
slug: 'month',
label: intl.get('plan.monthly'),
price: '200'
},
{
slug: 'year',
label: intl.get('plan.yearly'),
price: '1,200',
},
],
},
{
name: intl.get('plan.plus.title'),
name: intl.get('plan.capital_enterprise.title'),
slug: 'enterprise',
description: [
intl.get('plan.feture.all_capital_professional_features'),
intl.get('plan.feature.tracking_multi_locations'),
intl.get('plan.feature.projects_accounting'),
intl.get('plan.feature.all_capital_essential'),
intl.get('plan.feature.multiply_branches'),
intl.get('plan.feature.multiply_warehouses'),
intl.get('plan.feature.accounting_dimensions'),
intl.get('plan.feature.warehouses_reports'),
intl.get('plan.feature.branches_reports'),
],
price: '300',
price: '120',
currencyCode: 'LYD',
periods: [
{
slug: 'month',
label: intl.get('plan.monthly'),
price: '300'
price: '120',
},
{
slug: 'year',
label: intl.get('plan.yearly'),
price: '1,200',
price: '1,195',
},
],
},

View File

@@ -1,6 +1,6 @@
.billing-plans{
max-width: 753px;
.paragraph{
font-size: 15px;
}