mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-20 14:50:32 +00:00
BIG-22: feat: localize auto-increment dialogs.
This commit is contained in:
14
client/src/components/Forms/FormObserver.js
Normal file
14
client/src/components/Forms/FormObserver.js
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
|
||||||
|
import { useEffect } from 'react'
|
||||||
|
|
||||||
|
export function FormObserver({ onChange, values }) {
|
||||||
|
useEffect(() => {
|
||||||
|
onChange(values);
|
||||||
|
}, [Object.values(values).join(', ')]);
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
FormObserver.defaultProps = {
|
||||||
|
onChange: () => null,
|
||||||
|
};
|
||||||
1
client/src/components/Forms/index.js
Normal file
1
client/src/components/Forms/index.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
export * from './FormObserver';
|
||||||
@@ -76,6 +76,7 @@ export * from './Alert';
|
|||||||
export * from './Subscriptions';
|
export * from './Subscriptions';
|
||||||
export * from './Dashboard';
|
export * from './Dashboard';
|
||||||
export * from './Drawer';
|
export * from './Drawer';
|
||||||
|
export * from './Forms';
|
||||||
|
|
||||||
const Hint = FieldHint;
|
const Hint = FieldHint;
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
import React, { useCallback } from 'react';
|
import React, { useCallback } from 'react';
|
||||||
|
import intl from 'react-intl-universal';
|
||||||
|
|
||||||
import { DialogContent } from 'components';
|
import { DialogContent } from 'components';
|
||||||
import { useSaveSettings, useSettingsEstimates } from 'hooks/query';
|
import { useSaveSettings, useSettingsEstimates } from 'hooks/query';
|
||||||
|
|
||||||
@@ -28,6 +30,8 @@ function EstimateNumberDialogContent({
|
|||||||
initialValues,
|
initialValues,
|
||||||
onConfirm,
|
onConfirm,
|
||||||
}) {
|
}) {
|
||||||
|
const [referenceFormValues, setReferenceFormValues] = React.useState(null);
|
||||||
|
|
||||||
// Fetches the estimates settings.
|
// Fetches the estimates settings.
|
||||||
const { isLoading: isSettingsLoading } = useSettingsEstimates();
|
const { isLoading: isSettingsLoading } = useSettingsEstimates();
|
||||||
|
|
||||||
@@ -58,6 +62,17 @@ function EstimateNumberDialogContent({
|
|||||||
closeDialog('estimate-number-form');
|
closeDialog('estimate-number-form');
|
||||||
}, [closeDialog]);
|
}, [closeDialog]);
|
||||||
|
|
||||||
|
// Handle form change.
|
||||||
|
const handleChange = (values) => {
|
||||||
|
setReferenceFormValues(values);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Description.
|
||||||
|
const description =
|
||||||
|
referenceFormValues?.incrementMode === 'auto'
|
||||||
|
? intl.get('estimate.auto_increment.auto')
|
||||||
|
: intl.get('estimate.auto_increment.manually');
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<DialogContent isLoading={isSettingsLoading}>
|
<DialogContent isLoading={isSettingsLoading}>
|
||||||
<ReferenceNumberForm
|
<ReferenceNumberForm
|
||||||
@@ -71,6 +86,8 @@ function EstimateNumberDialogContent({
|
|||||||
}}
|
}}
|
||||||
onSubmit={handleSubmitForm}
|
onSubmit={handleSubmitForm}
|
||||||
onClose={handleClose}
|
onClose={handleClose}
|
||||||
|
onChange={handleChange}
|
||||||
|
description={description}
|
||||||
/>
|
/>
|
||||||
</DialogContent>
|
</DialogContent>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
import intl from 'react-intl-universal';
|
||||||
import { useSaveSettings } from 'hooks/query';
|
import { useSaveSettings } from 'hooks/query';
|
||||||
|
|
||||||
import { InvoiceNumberDialogProvider } from './InvoiceNumberDialogProvider';
|
import { InvoiceNumberDialogProvider } from './InvoiceNumberDialogProvider';
|
||||||
@@ -30,6 +31,7 @@ function InvoiceNumberDialogContent({
|
|||||||
closeDialog,
|
closeDialog,
|
||||||
}) {
|
}) {
|
||||||
const { mutateAsync: saveSettings } = useSaveSettings();
|
const { mutateAsync: saveSettings } = useSaveSettings();
|
||||||
|
const [referenceFormValues, setReferenceFormValues] = React.useState(null);
|
||||||
|
|
||||||
// Handle the submit form.
|
// Handle the submit form.
|
||||||
const handleSubmitForm = (values, { setSubmitting }) => {
|
const handleSubmitForm = (values, { setSubmitting }) => {
|
||||||
@@ -50,7 +52,7 @@ function InvoiceNumberDialogContent({
|
|||||||
// Transformes the form values to settings to save it.
|
// Transformes the form values to settings to save it.
|
||||||
const options = transformFormToSettings(values, 'sales_invoices');
|
const options = transformFormToSettings(values, 'sales_invoices');
|
||||||
|
|
||||||
// Save the goddamn settings.
|
// Save the settings.
|
||||||
saveSettings({ options }).then(handleSuccess).catch(handleErrors);
|
saveSettings({ options }).then(handleSuccess).catch(handleErrors);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -58,6 +60,15 @@ function InvoiceNumberDialogContent({
|
|||||||
const handleClose = () => {
|
const handleClose = () => {
|
||||||
closeDialog('invoice-number-form');
|
closeDialog('invoice-number-form');
|
||||||
};
|
};
|
||||||
|
// Handle form change.
|
||||||
|
const handleChange = (values) => {
|
||||||
|
setReferenceFormValues(values);
|
||||||
|
};
|
||||||
|
// Description.
|
||||||
|
const description =
|
||||||
|
referenceFormValues?.incrementMode === 'auto'
|
||||||
|
? intl.get('invoice.auto_increment.auto')
|
||||||
|
: intl.get('invoice.auto_increment.manually');
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<InvoiceNumberDialogProvider>
|
<InvoiceNumberDialogProvider>
|
||||||
@@ -70,8 +81,10 @@ function InvoiceNumberDialogContent({
|
|||||||
}),
|
}),
|
||||||
...initialValues,
|
...initialValues,
|
||||||
}}
|
}}
|
||||||
|
description={description}
|
||||||
onSubmit={handleSubmitForm}
|
onSubmit={handleSubmitForm}
|
||||||
onClose={handleClose}
|
onClose={handleClose}
|
||||||
|
onChange={handleChange}
|
||||||
/>
|
/>
|
||||||
</InvoiceNumberDialogProvider>
|
</InvoiceNumberDialogProvider>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
import React, { useCallback } from 'react';
|
import React, { useCallback } from 'react';
|
||||||
|
import intl from 'react-intl-universal';
|
||||||
|
|
||||||
import { DialogContent } from 'components';
|
import { DialogContent } from 'components';
|
||||||
import { useSaveSettings, useSettingsPaymentReceives } from 'hooks/query';
|
import { useSaveSettings, useSettingsPaymentReceives } from 'hooks/query';
|
||||||
|
|
||||||
@@ -28,11 +30,22 @@ function PaymentNumberDialogContent({
|
|||||||
|
|
||||||
// #ownProps
|
// #ownProps
|
||||||
onConfirm,
|
onConfirm,
|
||||||
initialValues
|
initialValues,
|
||||||
}) {
|
}) {
|
||||||
|
const [referenceFormValues, setReferenceFormValues] = React.useState(null);
|
||||||
|
|
||||||
const { isLoading: isSettingsLoading } = useSettingsPaymentReceives();
|
const { isLoading: isSettingsLoading } = useSettingsPaymentReceives();
|
||||||
const { mutateAsync: saveSettingsMutate } = useSaveSettings();
|
const { mutateAsync: saveSettingsMutate } = useSaveSettings();
|
||||||
|
|
||||||
|
const initialFormValues = {
|
||||||
|
...transformSettingsToForm({
|
||||||
|
nextNumber,
|
||||||
|
numberPrefix,
|
||||||
|
autoIncrement,
|
||||||
|
}),
|
||||||
|
...initialValues,
|
||||||
|
};
|
||||||
|
|
||||||
// Handle submit form.
|
// Handle submit form.
|
||||||
const handleSubmitForm = (values, { setSubmitting }) => {
|
const handleSubmitForm = (values, { setSubmitting }) => {
|
||||||
// Transformes the form values to settings to save it.
|
// Transformes the form values to settings to save it.
|
||||||
@@ -58,19 +71,25 @@ function PaymentNumberDialogContent({
|
|||||||
closeDialog('payment-receive-number-form');
|
closeDialog('payment-receive-number-form');
|
||||||
}, [closeDialog]);
|
}, [closeDialog]);
|
||||||
|
|
||||||
|
// Handle form change.
|
||||||
|
const handleChange = (values) => {
|
||||||
|
setReferenceFormValues(values);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Description.
|
||||||
|
const description =
|
||||||
|
referenceFormValues?.incrementMode === 'auto'
|
||||||
|
? intl.get('payment_receive.auto_increment.auto')
|
||||||
|
: intl.get('payment_receive.auto_increment.manually');
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<DialogContent isLoading={isSettingsLoading}>
|
<DialogContent isLoading={isSettingsLoading}>
|
||||||
<ReferenceNumberForm
|
<ReferenceNumberForm
|
||||||
initialValues={{
|
initialValues={initialFormValues}
|
||||||
...transformSettingsToForm({
|
|
||||||
nextNumber,
|
|
||||||
numberPrefix,
|
|
||||||
autoIncrement,
|
|
||||||
}),
|
|
||||||
...initialValues,
|
|
||||||
}}
|
|
||||||
onSubmit={handleSubmitForm}
|
onSubmit={handleSubmitForm}
|
||||||
onClose={handleClose}
|
onClose={handleClose}
|
||||||
|
onChange={handleChange}
|
||||||
|
description={description}
|
||||||
/>
|
/>
|
||||||
</DialogContent>
|
</DialogContent>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
import React, { useCallback } from 'react';
|
import React, { useCallback } from 'react';
|
||||||
|
import intl from 'react-intl-universal';
|
||||||
|
|
||||||
import { DialogContent } from 'components';
|
import { DialogContent } from 'components';
|
||||||
|
|
||||||
import { useSettingsReceipts, useSaveSettings } from 'hooks/query';
|
import { useSettingsReceipts, useSaveSettings } from 'hooks/query';
|
||||||
@@ -30,6 +32,8 @@ function ReceiptNumberDialogContent({
|
|||||||
// #withDialogActions
|
// #withDialogActions
|
||||||
closeDialog,
|
closeDialog,
|
||||||
}) {
|
}) {
|
||||||
|
const [referenceFormValues, setReferenceFormValues] = React.useState(null);
|
||||||
|
|
||||||
const { isLoading: isSettingsLoading } = useSettingsReceipts();
|
const { isLoading: isSettingsLoading } = useSettingsReceipts();
|
||||||
const { mutateAsync: saveSettingsMutate } = useSaveSettings();
|
const { mutateAsync: saveSettingsMutate } = useSaveSettings();
|
||||||
|
|
||||||
@@ -57,6 +61,17 @@ function ReceiptNumberDialogContent({
|
|||||||
closeDialog('receipt-number-form');
|
closeDialog('receipt-number-form');
|
||||||
}, [closeDialog]);
|
}, [closeDialog]);
|
||||||
|
|
||||||
|
// Handle form change.
|
||||||
|
const handleChange = (values) => {
|
||||||
|
setReferenceFormValues(values);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Description.
|
||||||
|
const description =
|
||||||
|
referenceFormValues?.incrementMode === 'auto'
|
||||||
|
? intl.get('receipt.auto_increment.auto')
|
||||||
|
: intl.get('receipt.auto_increment.manually');
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<DialogContent isLoading={isSettingsLoading}>
|
<DialogContent isLoading={isSettingsLoading}>
|
||||||
<ReferenceNumberForm
|
<ReferenceNumberForm
|
||||||
@@ -70,6 +85,8 @@ function ReceiptNumberDialogContent({
|
|||||||
}}
|
}}
|
||||||
onSubmit={handleSubmitForm}
|
onSubmit={handleSubmitForm}
|
||||||
onClose={handleClose}
|
onClose={handleClose}
|
||||||
|
onChange={handleChange}
|
||||||
|
description={description}
|
||||||
/>
|
/>
|
||||||
</DialogContent>
|
</DialogContent>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -2,12 +2,11 @@ import React, { useMemo } from 'react';
|
|||||||
import * as Yup from 'yup';
|
import * as Yup from 'yup';
|
||||||
import { Formik, Form } from 'formik';
|
import { Formik, Form } from 'formik';
|
||||||
import { FormattedMessage as T } from 'components';
|
import { FormattedMessage as T } from 'components';
|
||||||
import { Button, Classes } from '@blueprintjs/core';
|
import { Intent, Button, Classes } from '@blueprintjs/core';
|
||||||
import { Intent } from '@blueprintjs/core';
|
|
||||||
import intl from 'react-intl-universal';
|
|
||||||
|
|
||||||
import 'style/pages/ReferenceNumber/ReferenceNumber.scss';
|
import 'style/pages/ReferenceNumber/ReferenceNumber.scss';
|
||||||
|
|
||||||
|
import { FormObserver } from 'components';
|
||||||
import ReferenceNumberFormContent from './ReferenceNumberFormContent';
|
import ReferenceNumberFormContent from './ReferenceNumberFormContent';
|
||||||
import { transformValuesToForm } from './utils';
|
import { transformValuesToForm } from './utils';
|
||||||
import { saveInvoke } from 'utils';
|
import { saveInvoke } from 'utils';
|
||||||
@@ -19,6 +18,8 @@ export default function ReferenceNumberForm({
|
|||||||
onSubmit,
|
onSubmit,
|
||||||
onClose,
|
onClose,
|
||||||
initialValues,
|
initialValues,
|
||||||
|
description,
|
||||||
|
onChange,
|
||||||
}) {
|
}) {
|
||||||
// Validation schema.
|
// Validation schema.
|
||||||
const validationSchema = Yup.object().shape({
|
const validationSchema = Yup.object().shape({
|
||||||
@@ -51,14 +52,10 @@ export default function ReferenceNumberForm({
|
|||||||
validationSchema={validationSchema}
|
validationSchema={validationSchema}
|
||||||
onSubmit={handleSubmit}
|
onSubmit={handleSubmit}
|
||||||
>
|
>
|
||||||
{({ isSubmitting }) => (
|
{({ isSubmitting, values }) => (
|
||||||
<Form className={'reference-number-form'}>
|
<Form className={'reference-number-form'}>
|
||||||
<div className={Classes.DIALOG_BODY}>
|
<div className={Classes.DIALOG_BODY}>
|
||||||
<p className="paragraph">
|
<p className="paragraph">{description}</p>
|
||||||
{intl.get(
|
|
||||||
'your_invoice_numbers_are_set_on_auto_increment_mod_are_you_sure_changing_this_setting',
|
|
||||||
)}
|
|
||||||
</p>
|
|
||||||
<ReferenceNumberFormContent />
|
<ReferenceNumberFormContent />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -70,12 +67,14 @@ export default function ReferenceNumberForm({
|
|||||||
<Button
|
<Button
|
||||||
intent={Intent.PRIMARY}
|
intent={Intent.PRIMARY}
|
||||||
type="submit"
|
type="submit"
|
||||||
disabled={isSubmitting}
|
loading={isSubmitting}
|
||||||
>
|
>
|
||||||
<T id={'submit'} />
|
<T id={'submit'} />
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<FormObserver values={values} onChange={onChange} />
|
||||||
</Form>
|
</Form>
|
||||||
)}
|
)}
|
||||||
</Formik>
|
</Formik>
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ export default function ReferenceNumberFormContent() {
|
|||||||
<FastField name={'incrementMode'}>
|
<FastField name={'incrementMode'}>
|
||||||
{({ form, field, meta: { error, touched } }) => (
|
{({ form, field, meta: { error, touched } }) => (
|
||||||
<Radio
|
<Radio
|
||||||
label={<T id={'auto_incrementing_number'} />}
|
label={<T id={'auto_increment.field.auto'} />}
|
||||||
value="auto-increment"
|
value="auto-increment"
|
||||||
onChange={() => {
|
onChange={() => {
|
||||||
form.setFieldValue('incrementMode', 'auto');
|
form.setFieldValue('incrementMode', 'auto');
|
||||||
@@ -73,7 +73,7 @@ export default function ReferenceNumberFormContent() {
|
|||||||
<FastField name={'incrementMode'}>
|
<FastField name={'incrementMode'}>
|
||||||
{({ form, field, meta: { error, touched } }) => (
|
{({ form, field, meta: { error, touched } }) => (
|
||||||
<Radio
|
<Radio
|
||||||
label={<T id={'i_will_enter_them_manually_each_time'} />}
|
label={<T id={'auto_increment.field.manual_this_transaction'} />}
|
||||||
value="manual"
|
value="manual"
|
||||||
onChange={() => {
|
onChange={() => {
|
||||||
form.setFieldValue('incrementMode', 'manual');
|
form.setFieldValue('incrementMode', 'manual');
|
||||||
@@ -88,7 +88,7 @@ export default function ReferenceNumberFormContent() {
|
|||||||
<FastField name={'incrementMode'}>
|
<FastField name={'incrementMode'}>
|
||||||
{({ form, field, meta: { error, touched } }) => (
|
{({ form, field, meta: { error, touched } }) => (
|
||||||
<Radio
|
<Radio
|
||||||
label={<T id={'manual_entering_for_this_transaction'} />}
|
label={<T id={'auto_increment.field.manually'} />}
|
||||||
value="manual"
|
value="manual"
|
||||||
onChange={() => {
|
onChange={() => {
|
||||||
form.setFieldValue('incrementMode', 'manual-transaction');
|
form.setFieldValue('incrementMode', 'manual-transaction');
|
||||||
|
|||||||
@@ -916,8 +916,6 @@
|
|||||||
"attachments_maximum": "المرفقات: الحجم الأقصى: 20MB",
|
"attachments_maximum": "المرفقات: الحجم الأقصى: 20MB",
|
||||||
"drag_drop_files_here_or_click_here": "قم بسحب/إسقاط الملفات هنا أو انقر هنا.",
|
"drag_drop_files_here_or_click_here": "قم بسحب/إسقاط الملفات هنا أو انقر هنا.",
|
||||||
"enter_an_item": "أدخل منتج ...",
|
"enter_an_item": "أدخل منتج ...",
|
||||||
"i_will_enter_them_manually_each_time": "سأدخلها يدويًا في كل مرة",
|
|
||||||
"manual_entering_for_this_transaction": "إدخال يدوي لهذه العملية فقط.",
|
|
||||||
"due_amount": "القيمة المستحقة",
|
"due_amount": "القيمة المستحقة",
|
||||||
"invoice_details": "تفاصيل الفاتورة",
|
"invoice_details": "تفاصيل الفاتورة",
|
||||||
"setting_your_auto_generated_estimate_number": "عيين رقم العرض الذي تم إنشاؤه تلقائيًا",
|
"setting_your_auto_generated_estimate_number": "عيين رقم العرض الذي تم إنشاؤه تلقائيًا",
|
||||||
@@ -1190,8 +1188,6 @@
|
|||||||
"if_the_problem_stuck_please_contact_us_as_soon_as_possible": "إذا تكررت المشكلة اكتر من مرة ، الرجاء الاتصال بنا في أقرب وقت ممكن.",
|
"if_the_problem_stuck_please_contact_us_as_soon_as_possible": "إذا تكررت المشكلة اكتر من مرة ، الرجاء الاتصال بنا في أقرب وقت ممكن.",
|
||||||
"non-inventory":"غير مخزون",
|
"non-inventory":"غير مخزون",
|
||||||
"terms_conditions":"الشروط والأحكام",
|
"terms_conditions":"الشروط والأحكام",
|
||||||
"your_invoice_numbers_are_set_on_auto_increment_mod_are_you_sure_changing_this_setting":"Your invoice numbers are set on auto-increment mod. Are you sure changing this setting?",
|
|
||||||
"auto_incrementing_number":"Auto-incrementing number",
|
|
||||||
"the_inventory_adjustment_has_been_published": "تم نشر تسوية المخزون",
|
"the_inventory_adjustment_has_been_published": "تم نشر تسوية المخزون",
|
||||||
"are_sure_to_publish_this_inventory_adjustment": "هل أنت متأكد أنك تريد نشر هذا المخزون ؟",
|
"are_sure_to_publish_this_inventory_adjustment": "هل أنت متأكد أنك تريد نشر هذا المخزون ؟",
|
||||||
"the_contact_has_been_activated_successfully": "تم تفعيل جهة اتصال بنجاح.",
|
"the_contact_has_been_activated_successfully": "تم تفعيل جهة اتصال بنجاح.",
|
||||||
@@ -1343,6 +1339,17 @@
|
|||||||
"item.field.cost_account.hint": "أدخل السعر الذي اشتريت به هذا العنصر.",
|
"item.field.cost_account.hint": "أدخل السعر الذي اشتريت به هذا العنصر.",
|
||||||
"item.field.sell_account.hint": "أدخل السعر الذي ستبيعه لهذا العنصر.",
|
"item.field.sell_account.hint": "أدخل السعر الذي ستبيعه لهذا العنصر.",
|
||||||
"item_entries.products_services.hint": "أدخل المنتجات أو الخدمات التي تبيعها أو تشتريها لتتبع ما قمت ببيعه أو شرائه.",
|
"item_entries.products_services.hint": "أدخل المنتجات أو الخدمات التي تبيعها أو تشتريها لتتبع ما قمت ببيعه أو شرائه.",
|
||||||
"item_entries.landed.hint": "يتيح لك هذه الخيار إمكانية إضافة تكلفة اضافية علي فاتورة الشراء متال علي ذلك تكاليف الشحن ، ثم تحديد هذه التكلفة لتحميلها علي فاتورة الشراء."
|
"item_entries.landed.hint": "يتيح لك هذه الخيار إمكانية إضافة تكلفة اضافية علي فاتورة الشراء متال علي ذلك تكاليف الشحن ، ثم تحديد هذه التكلفة لتحميلها علي فاتورة الشراء.",
|
||||||
|
"invoice.auto_increment.auto": "يتم تعيين أرقام الفواتير على وضع الزيادة التلقائي. هل أنت متأكد من تغيير هذا الإعداد؟",
|
||||||
|
"invoice.auto_increment.manually": "يتم تعيين أرقام فواتيرك يدوياً. هل أنت متأكد من تغيير هذه الإعدادات؟",
|
||||||
|
"estimate.auto_increment.auto": "يتم تعيين أرقام العروض على وضع الزيادة التلقائي. هل أنت متأكد من تغيير هذا الإعداد؟",
|
||||||
|
"estimate.auto_increment.manually": "يتم تعيين أرقام عروض الاسعار يدوياً. هل أنت متأكد من تغيير هذه الإعدادات؟",
|
||||||
|
"receipt.auto_increment.auto": "يتم تعيين أرقام إيصالات على وضع الزيادة التلقائي. هل أنت متأكد من تغيير هذا الإعداد؟",
|
||||||
|
"receipt.auto_increment.manually": "يتم تعيين أرقام إيصالات يدوياً. هل أنت متأكد من تغيير هذه الإعدادات؟",
|
||||||
|
"payment_receive.auto_increment.auto": "يتم تعيين أرقام سندات الدفع على وضع الزيادة التلقائي. هل أنت متأكد من تغيير هذا الإعداد؟",
|
||||||
|
"payment_receive.auto_increment.manually": "يتم تعيين سندات الدفع يدوياً. هل أنت متأكد من تغيير هذه الإعدادات؟",
|
||||||
|
"auto_increment.field.manually": "سأدخلها يدويًا في كل مرة",
|
||||||
|
"auto_increment.field.manual_this_transaction": "إدخال يدوي لهذه العملية فقط.",
|
||||||
|
"auto_increment.field.auto": "زيادة الرقم العملية تلقائيًا."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -906,8 +906,6 @@
|
|||||||
"attachments_maximum": "Attachments: Maximum size: 20MB",
|
"attachments_maximum": "Attachments: Maximum size: 20MB",
|
||||||
"drag_drop_files_here_or_click_here": "Drag/Drop files here or click here.",
|
"drag_drop_files_here_or_click_here": "Drag/Drop files here or click here.",
|
||||||
"enter_an_item": "Enter an item...",
|
"enter_an_item": "Enter an item...",
|
||||||
"i_will_enter_them_manually_each_time": "I will enter them manually each time",
|
|
||||||
"manual_entering_for_this_transaction": "Manual entering for this transaction.",
|
|
||||||
"due_amount": "Due Amount",
|
"due_amount": "Due Amount",
|
||||||
"invoice_details": "Invoice details",
|
"invoice_details": "Invoice details",
|
||||||
"setting_your_auto_generated_estimate_number": "Setting your auto-generated estimate number",
|
"setting_your_auto_generated_estimate_number": "Setting your auto-generated estimate number",
|
||||||
@@ -1160,8 +1158,6 @@
|
|||||||
"if_the_problem_stuck_please_contact_us_as_soon_as_possible": "If the problem stuck, please contact us as soon as possible.",
|
"if_the_problem_stuck_please_contact_us_as_soon_as_possible": "If the problem stuck, please contact us as soon as possible.",
|
||||||
"non-inventory": "Non-Inventory",
|
"non-inventory": "Non-Inventory",
|
||||||
"terms_conditions": "Terms conditions",
|
"terms_conditions": "Terms conditions",
|
||||||
"your_invoice_numbers_are_set_on_auto_increment_mod_are_you_sure_changing_this_setting": "Your invoice numbers are set on auto-increment mod. Are you sure changing this setting?",
|
|
||||||
"auto_incrementing_number": "Auto-incrementing number",
|
|
||||||
"inventory_adjustment.publish.success_message": "The inventory adjustment has been published successfully.",
|
"inventory_adjustment.publish.success_message": "The inventory adjustment has been published successfully.",
|
||||||
"inventory_adjustment.publish.alert_message": "Are you sure you want to publish this inventory adjustment?",
|
"inventory_adjustment.publish.alert_message": "Are you sure you want to publish this inventory adjustment?",
|
||||||
"the_contact_has_been_activated_successfully": "The contact has been inactivated successfully.",
|
"the_contact_has_been_activated_successfully": "The contact has been inactivated successfully.",
|
||||||
@@ -1314,5 +1310,16 @@
|
|||||||
"item.field.cost_account.hint": "Enter price at which you purchased this item.",
|
"item.field.cost_account.hint": "Enter price at which you purchased this item.",
|
||||||
"item.field.sell_account.hint": "Enter price which you goint to sell this item.",
|
"item.field.sell_account.hint": "Enter price which you goint to sell this item.",
|
||||||
"item_entries.products_services.hint": "Enter products or services you sell or buy to keep tracking what your sold or purchased.",
|
"item_entries.products_services.hint": "Enter products or services you sell or buy to keep tracking what your sold or purchased.",
|
||||||
"item_entries.landed.hint": "This options allows you to be able to add additional cost eg. freight then allocate cost to the items in your bills."
|
"item_entries.landed.hint": "This options allows you to be able to add additional cost eg. freight then allocate cost to the items in your bills.",
|
||||||
|
"invoice.auto_increment.auto": "Your invoice numbers are set on auto-increment mode. Are you sure changing this setting?",
|
||||||
|
"invoice.auto_increment.manually": "Yor invoice numbers are set on manual mode. Are you sure chaning this settings?",
|
||||||
|
"estimate.auto_increment.auto": "Your estimate numbers are set on auto-increment mode. Are you sure changing this setting?",
|
||||||
|
"estimate.auto_increment.manually": "Yor estimate numbers are set on manual mode. Are you sure chaning this settings?",
|
||||||
|
"receipt.auto_increment.auto": "Your receipt numbers are set on auto-increment mode. Are you sure changing this setting?",
|
||||||
|
"receipt.auto_increment.manually": "Yor receipt numbers are set on manual mode. Are you sure chaning this settings?",
|
||||||
|
"payment_receive.auto_increment.auto": "Your payment numbers are set on auto-increment mode. Are you sure changing this setting?",
|
||||||
|
"payment_receive.auto_increment.manually": "Yor payment numbers are set on manual mode. Are you sure chaning this settings?",
|
||||||
|
"auto_increment.field.manually": "I will enter them manually each time",
|
||||||
|
"auto_increment.field.manual_this_transaction": "Manual entering for this transaction.",
|
||||||
|
"auto_increment.field.auto": "Auto-incrementing number."
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user