mirror of
https://github.com/frappe/books.git
synced 2024-11-13 00:46:28 +00:00
refactor: move gstSavePath to utils
This commit is contained in:
parent
ca8739f8c0
commit
afa261c592
@ -1,9 +1,8 @@
|
|||||||
import { IPC_ACTIONS } from '@/messages';
|
|
||||||
import { makeJSON, showMessageDialog } from '@/utils';
|
import { makeJSON, showMessageDialog } from '@/utils';
|
||||||
import { ipcRenderer } from 'electron';
|
|
||||||
import frappe from 'frappejs';
|
import frappe from 'frappejs';
|
||||||
import { sleep, _ } from 'frappejs/utils';
|
import { sleep, _ } from 'frappejs/utils';
|
||||||
import { DateTime } from 'luxon';
|
import { DateTime } from 'luxon';
|
||||||
|
import { getSavePath } from '../src/utils';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GST is a map which gives a final rate for any given gst item
|
* GST is a map which gives a final rate for any given gst item
|
||||||
@ -72,8 +71,9 @@ export async function generateGstr1Json(getReportData) {
|
|||||||
rows,
|
rows,
|
||||||
filters: { transferType, toDate },
|
filters: { transferType, toDate },
|
||||||
} = getReportData();
|
} = getReportData();
|
||||||
const savePath = await getSavePath('gstr-1');
|
|
||||||
if (!savePath) return;
|
const { filePath, canceled } = await getSavePath('gstr-1', 'json');
|
||||||
|
if (canceled || !filePath) return;
|
||||||
|
|
||||||
const gstData = {
|
const gstData = {
|
||||||
version: 'GST3.0.4',
|
version: 'GST3.0.4',
|
||||||
@ -96,7 +96,7 @@ export async function generateGstr1Json(getReportData) {
|
|||||||
|
|
||||||
await sleep(1);
|
await sleep(1);
|
||||||
const jsonData = JSON.stringify(gstData);
|
const jsonData = JSON.stringify(gstData);
|
||||||
makeJSON(jsonData, savePath);
|
makeJSON(jsonData, filePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function generateB2bData(invoices) {
|
async function generateB2bData(invoices) {
|
||||||
@ -161,23 +161,3 @@ async function generateB2clData(invoices) {
|
|||||||
async function generateB2csData(invoices) {
|
async function generateB2csData(invoices) {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getSavePath(name) {
|
|
||||||
const options = {
|
|
||||||
title: _('Select folder'),
|
|
||||||
defaultPath: `${name}.json`,
|
|
||||||
};
|
|
||||||
|
|
||||||
let { filePath } = await ipcRenderer.invoke(
|
|
||||||
IPC_ACTIONS.GET_SAVE_FILEPATH,
|
|
||||||
options
|
|
||||||
);
|
|
||||||
|
|
||||||
if (filePath) {
|
|
||||||
if (!filePath.endsWith('.json')) {
|
|
||||||
filePath = filePath + '.json';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return filePath;
|
|
||||||
}
|
|
||||||
|
@ -1,36 +1,19 @@
|
|||||||
import config from '@/config';
|
import config from '@/config';
|
||||||
import { ipcRenderer } from 'electron';
|
|
||||||
import { _ } from 'frappejs';
|
|
||||||
import SQLiteDatabase from 'frappejs/backends/sqlite';
|
import SQLiteDatabase from 'frappejs/backends/sqlite';
|
||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
import models from '../models';
|
import models from '../models';
|
||||||
import regionalModelUpdates from '../models/regionalModelUpdates';
|
import regionalModelUpdates from '../models/regionalModelUpdates';
|
||||||
import postStart from '../server/postStart';
|
import postStart from '../server/postStart';
|
||||||
import { DB_CONN_FAILURE, IPC_ACTIONS } from './messages';
|
import { DB_CONN_FAILURE } from './messages';
|
||||||
import migrate from './migrate';
|
import migrate from './migrate';
|
||||||
|
import { getSavePath } from './utils';
|
||||||
|
|
||||||
export async function createNewDatabase() {
|
export async function createNewDatabase() {
|
||||||
const options = {
|
const { canceled, filePath } = await getSavePath('books', 'db');
|
||||||
title: _('Select folder'),
|
|
||||||
defaultPath: 'books.db',
|
|
||||||
};
|
|
||||||
|
|
||||||
let { canceled, filePath } = await ipcRenderer.invoke(
|
|
||||||
IPC_ACTIONS.GET_SAVE_FILEPATH,
|
|
||||||
options
|
|
||||||
);
|
|
||||||
|
|
||||||
if (canceled || filePath.length === 0) {
|
if (canceled || filePath.length === 0) {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!filePath.endsWith('.db')) {
|
|
||||||
showMessageDialog({
|
|
||||||
message: "Please select a filename ending with '.db'.",
|
|
||||||
});
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fs.existsSync(filePath)) {
|
if (fs.existsSync(filePath)) {
|
||||||
fs.unlinkSync(filePath);
|
fs.unlinkSync(filePath);
|
||||||
}
|
}
|
||||||
|
16
src/utils.js
16
src/utils.js
@ -306,3 +306,19 @@ export function fuzzyMatch(keyword, candidate) {
|
|||||||
export function openSettings(tab) {
|
export function openSettings(tab) {
|
||||||
routeTo({ path: '/settings', query: { tab } });
|
routeTo({ path: '/settings', query: { tab } });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function getSavePath(name, extention) {
|
||||||
|
let { canceled, filePath } = await ipcRenderer.invoke(
|
||||||
|
IPC_ACTIONS.GET_SAVE_FILEPATH,
|
||||||
|
{
|
||||||
|
title: _('Select Folder'),
|
||||||
|
defaultPath: `${name}.${extention}`,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
if (filePath && !filePath.endsWith(extention)) {
|
||||||
|
filePath = filePath + extention;
|
||||||
|
}
|
||||||
|
|
||||||
|
return { canceled, filePath };
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user