Compare commits

...

7 Commits

Author SHA1 Message Date
Ahmed Bouhuolia
abffdd1029 fix(server): hotbug retireving empty results of inventory valuation and sales by items sheets 2024-01-21 14:34:36 +02:00
allcontributors[bot]
d052c23560 docs: add xprnio as a contributor for bug (#324)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2024-01-21 00:21:46 +02:00
Ragnar Laud
f02afd3c9f fix(webapp): AccountActivateAlert import (#322) 2024-01-21 00:18:31 +02:00
Ahmed Bouhuolia
3df17390e2 Merge pull request #318 from bigcapitalhq/big-120-get-cashflow-transaction-broken-cause-transaction-type
fix: `BIG-120` get cashflow transaction broken cause transaction type
2024-01-20 18:04:51 +02:00
Ahmed Bouhuolia
df38f8893d fix(server): get cashflow transaction type 2024-01-20 18:03:43 +02:00
Ahmed Bouhuolia
8882bc677e fix(webapp): undefined transactionNumber function 2024-01-20 18:03:26 +02:00
Ahmed Bouhuolia
f03d01113c Merge pull request #315 from bigcapitalhq/hotfix-pdf-printing
fix(server): the invoice and payment receipt printing
2024-01-20 15:53:59 +02:00
14 changed files with 36 additions and 15 deletions

View File

@@ -87,6 +87,15 @@
"contributions": [ "contributions": [
"code" "code"
] ]
},
{
"login": "xprnio",
"name": "Ragnar Laud",
"avatar_url": "https://avatars.githubusercontent.com/u/3042904?v=4",
"profile": "https://ragnarlaud.dev",
"contributions": [
"bug"
]
} }
], ],
"contributorsPerLine": 7, "contributorsPerLine": 7,

View File

@@ -116,6 +116,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
<tr> <tr>
<td align="center" valign="top" width="14.28%"><a href="http://cschuijt.nl"><img src="https://avatars.githubusercontent.com/u/5460015?v=4?s=100" width="100px;" alt="Casper Schuijt"/><br /><sub><b>Casper Schuijt</b></sub></a><br /><a href="https://github.com/bigcapitalhq/bigcapital/issues?q=author%3Acschuijt" title="Bug reports">🐛</a></td> <td align="center" valign="top" width="14.28%"><a href="http://cschuijt.nl"><img src="https://avatars.githubusercontent.com/u/5460015?v=4?s=100" width="100px;" alt="Casper Schuijt"/><br /><sub><b>Casper Schuijt</b></sub></a><br /><a href="https://github.com/bigcapitalhq/bigcapital/issues?q=author%3Acschuijt" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ANasouf"><img src="https://avatars.githubusercontent.com/u/19536487?v=4?s=100" width="100px;" alt="ANasouf"/><br /><sub><b>ANasouf</b></sub></a><br /><a href="https://github.com/bigcapitalhq/bigcapital/commits?author=ANasouf" title="Code">💻</a></td> <td align="center" valign="top" width="14.28%"><a href="https://github.com/ANasouf"><img src="https://avatars.githubusercontent.com/u/19536487?v=4?s=100" width="100px;" alt="ANasouf"/><br /><sub><b>ANasouf</b></sub></a><br /><a href="https://github.com/bigcapitalhq/bigcapital/commits?author=ANasouf" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://ragnarlaud.dev"><img src="https://avatars.githubusercontent.com/u/3042904?v=4?s=100" width="100px;" alt="Ragnar Laud"/><br /><sub><b>Ragnar Laud</b></sub></a><br /><a href="https://github.com/bigcapitalhq/bigcapital/issues?q=author%3Axprnio" title="Bug reports">🐛</a></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>

View File

@@ -7,8 +7,12 @@ import {
} from '@/services/Cashflow/utils'; } from '@/services/Cashflow/utils';
import AccountTransaction from './AccountTransaction'; import AccountTransaction from './AccountTransaction';
import { CASHFLOW_DIRECTION } from '@/services/Cashflow/constants'; import { CASHFLOW_DIRECTION } from '@/services/Cashflow/constants';
import { getTransactionTypeLabel } from '@/utils/transactions-types';
export default class CashflowTransaction extends TenantModel { export default class CashflowTransaction extends TenantModel {
transactionType: string;
amount: number;
exchangeRate: number;
/** /**
* Table name. * Table name.
*/ */
@@ -55,9 +59,10 @@ export default class CashflowTransaction extends TenantModel {
/** /**
* Transaction type formatted. * Transaction type formatted.
* @returns {string}
*/ */
get transactionTypeFormatted() { get transactionTypeFormatted() {
return AccountTransaction.getReferenceTypeFormatted(this.transactionType); return getTransactionTypeLabel(this.transactionType);
} }
get typeMeta() { get typeMeta() {

View File

@@ -259,6 +259,6 @@ export class InventoryValuationSheet extends FinancialSheet {
const items = this.itemsSection(); const items = this.itemsSection();
const total = this.totalSection(items); const total = this.totalSection(items);
return items.length > 0 ? { items, total } : {}; return { items, total };
} }
} }

View File

@@ -84,7 +84,9 @@ export class InventoryValuationSheetTable extends R.compose(
const itemsRows = this.itemsRowsMapper(this.data.items); const itemsRows = this.itemsRowsMapper(this.data.items);
const totalRow = this.totalRowMapper(this.data.total); const totalRow = this.totalRowMapper(this.data.total);
return [...itemsRows, totalRow]; return R.compose(
R.when(R.always(R.not(R.isEmpty(itemsRows))), R.append(totalRow))
)([...itemsRows]) as ITableRow[];
} }
/** /**

View File

@@ -7,7 +7,7 @@ import {
IAccountTransaction, IAccountTransaction,
ISalesByItemsItem, ISalesByItemsItem,
ISalesByItemsTotal, ISalesByItemsTotal,
ISalesByItemsSheetStatement, ISalesByItemsSheetData,
IItem, IItem,
} from '@/interfaces'; } from '@/interfaces';
@@ -146,7 +146,7 @@ export default class SalesByItemsReport extends FinancialSheet {
* @param {IInventoryValuationItem[]} items * @param {IInventoryValuationItem[]} items
* @returns {IInventoryValuationTotal} * @returns {IInventoryValuationTotal}
*/ */
totalSection(items: ISalesByItemsItem[]): ISalesByItemsTotal { private totalSection(items: ISalesByItemsItem[]): ISalesByItemsTotal {
const quantitySold = sumBy(items, (item) => item.quantitySold); const quantitySold = sumBy(items, (item) => item.quantitySold);
const soldCost = sumBy(items, (item) => item.soldCost); const soldCost = sumBy(items, (item) => item.soldCost);
@@ -163,12 +163,12 @@ export default class SalesByItemsReport extends FinancialSheet {
/** /**
* Retrieve the sheet data. * Retrieve the sheet data.
* @returns {ISalesByItemsSheetStatement} * @returns {ISalesByItemsSheetData}
*/ */
reportData(): ISalesByItemsSheetStatement { public reportData(): ISalesByItemsSheetData {
const items = this.itemsSection(); const items = this.itemsSection();
const total = this.totalSection(items); const total = this.totalSection(items);
return items.length > 0 ? { items, total } : {}; return { items, total };
} }
} }

View File

@@ -83,7 +83,9 @@ export class SalesByItemsTable extends R.compose(
const itemsRows = this.itemsMap(this.data.items); const itemsRows = this.itemsMap(this.data.items);
const totalRow = this.totalMap(this.data.total); const totalRow = this.totalMap(this.data.total);
return [...itemsRows, totalRow]; return R.compose(
R.when(R.always(R.not(R.isEmpty(itemsRows))), R.append(totalRow))
)([...itemsRows]) as ITableRow[];
} }
/** /**

View File

@@ -8,7 +8,7 @@ const AccountInactivateAlert = React.lazy(
() => import('@/containers/Alerts/Accounts/AccountInactivateAlert'), () => import('@/containers/Alerts/Accounts/AccountInactivateAlert'),
); );
const AccountActivateAlert = React.lazy( const AccountActivateAlert = React.lazy(
() => import('@/containers/Alerts/Accounts/AccountDeleteAlert'), () => import('@/containers/Alerts/Accounts/AccountActivateAlert'),
); );
export default [ export default [

View File

@@ -1,5 +1,4 @@
// @ts-nocheck // @ts-nocheck
import React from 'react';
import { MoneyInDialogProvider } from './MoneyInDialogProvider'; import { MoneyInDialogProvider } from './MoneyInDialogProvider';
import MoneyInForm from './MoneyInForm'; import MoneyInForm from './MoneyInForm';

View File

@@ -72,7 +72,7 @@ function MoneyInForm({
}; };
// Handles the form submit. // Handles the form submit.
const handleFormSubmit = (values, { setSubmitting, setErrors }) => { const handleFormSubmit = (values, { setSubmitting }) => {
const form = { const form = {
...omit(values, ['currency_code']), ...omit(values, ['currency_code']),
publish: true, publish: true,

View File

@@ -51,7 +51,6 @@ function MoneyOutForm({
accountId, accountId,
accountType, accountType,
createCashflowTransactionMutate, createCashflowTransactionMutate,
submitPayload,
} = useMoneyOutDialogContext(); } = useMoneyOutDialogContext();
// transaction number. // transaction number.

View File

@@ -14,6 +14,7 @@ import { useUpdateEffect } from '@/hooks';
import withSettings from '@/containers/Settings/withSettings'; import withSettings from '@/containers/Settings/withSettings';
import withDialogActions from '@/containers/Dialog/withDialogActions'; import withDialogActions from '@/containers/Dialog/withDialogActions';
import { transactionNumber } from '@/utils';
/** /**
* Syncs cashflow auto-increment settings to the form once update. * Syncs cashflow auto-increment settings to the form once update.

View File

@@ -9,11 +9,11 @@ import ReferenceNumberForm from '@/containers/JournalNumber/ReferenceNumberForm'
import withDialogActions from '@/containers/Dialog/withDialogActions'; import withDialogActions from '@/containers/Dialog/withDialogActions';
import withSettings from '@/containers/Settings/withSettings'; import withSettings from '@/containers/Settings/withSettings';
import withSettingsActions from '@/containers/Settings/withSettingsActions'; import withSettingsActions from '@/containers/Settings/withSettingsActions';
import { compose } from '@/utils';
import { import {
transformFormToSettings, transformFormToSettings,
transformSettingsToForm, transformSettingsToForm,
} from '@/containers/JournalNumber/utils'; } from '@/containers/JournalNumber/utils';
import { compose } from '@/utils';
/** /**
* Transaction number dialog content. * Transaction number dialog content.

View File

@@ -5,6 +5,9 @@ import useApiRequest from '../useRequest';
import t from './types'; import t from './types';
const commonInvalidateQueries = (queryClient) => { const commonInvalidateQueries = (queryClient) => {
// Invalidate settings.
queryClient.invalidateQueries([t.SETTING, t.SETTING_CASHFLOW]);
// Invalidate accounts. // Invalidate accounts.
queryClient.invalidateQueries(t.ACCOUNTS); queryClient.invalidateQueries(t.ACCOUNTS);
queryClient.invalidateQueries(t.ACCOUNT); queryClient.invalidateQueries(t.ACCOUNT);