Compare commits

..

8 Commits

Author SHA1 Message Date
dependabot[bot]
307b65d93d Bump url-parse from 1.4.7 to 1.5.10
Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.4.7 to 1.5.10.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.4.7...1.5.10)

---
updated-dependencies:
- dependency-name: url-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-26 06:44:01 +00:00
Patrick Nagurny
ef36779afc fix transaction constructor 2020-08-26 10:30:34 -06:00
Patrick Nagurny
1dc3a849ba Merge pull request #29 from pnagurny/enhance/update-deps20200821
update deps
2020-08-21 12:24:53 -06:00
Patrick Nagurny
dce3701171 update deps 2020-08-21 12:23:00 -06:00
Patrick Nagurny
9a3a2e06c1 Merge pull request #27 from pnagurny/feature/business-accounts
default business accounts
2020-07-23 11:54:58 -06:00
Patrick Nagurny
ead6777089 business accounts 2020-07-23 11:45:26 -06:00
Patrick Nagurny
8133927c4b Merge pull request #25 from pnagurny/fix/copyright-2020
copyright 2020
2020-06-18 11:35:44 -06:00
Patrick Nagurny
8559b96c02 copyright 2020 2020-06-18 11:34:27 -06:00
12 changed files with 2925 additions and 3207 deletions

5950
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -37,7 +37,7 @@
"zone.js": "~0.8.26"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.8.0",
"@angular-devkit/build-angular": "^0.13.10",
"@angular/cli": "~6.2.5",
"@angular/compiler-cli": "^6.1.0",
"@angular/language-service": "^6.1.0",

View File

@@ -71,7 +71,7 @@
</div>
</div>
<div class="footer">
<p>Copyright &copy; 2019 Open Accounting, LLC<br>
<p>Copyright &copy; 2020 Open Accounting, LLC<br>
<a href="/tou">Terms of Use</a> | <a href="/privacy-policy">Privacy Policy</a></p>
</div>

View File

@@ -23,6 +23,7 @@ import 'rxjs/add/operator/filter';
import 'rxjs/add/operator/debounceTime';
import 'rxjs/add/operator/take';
import { Util } from '../shared/util';
import { businessAccounts } from '../fixtures/businessAccounts';
import { personalAccounts } from '../fixtures/personalAccounts';
import { ErrorObservable } from 'rxjs/observable/ErrorObservable';
@@ -62,7 +63,7 @@ export class AccountService {
if(options.createDefaultAccounts) {
this.getAccountTree().take(1).switchMap(tree => {
return this.createDefaultAccounts(tree);
return this.createDefaultAccounts(tree, options.createDefaultAccounts);
}).subscribe(accounts => {
log.debug('Created default accounts');
log.debug(accounts);
@@ -590,7 +591,7 @@ export class AccountService {
return this.apiService.deleteAccount(id);
}
createDefaultAccounts(tree: AccountTree): Observable<any> {
createDefaultAccounts(tree: AccountTree, type: string): Observable<any> {
let assetAccount = tree.getAccountByName('Assets', 1);
let equityAccount = tree.getAccountByName('Equity', 1);
let liabilityAccount = tree.getAccountByName('Liabilities', 1);
@@ -608,10 +609,10 @@ export class AccountService {
'Expenses': [expenseAccount.id, true]
};
let newAccounts;
let newAccounts = type === 'business' ? businessAccounts : personalAccounts;
try {
newAccounts = personalAccounts.map(data => {
newAccounts = newAccounts.map(data => {
let id = Util.newGuid();
let [parentId, debitBalance] = accountNameMap[data.parent];

View File

@@ -37,7 +37,7 @@ export class OrgService {
return this.apiService.getOrgs();
}
newOrg(org: Org, createDefaultAccounts: boolean): Observable<Org> {
newOrg(org: Org, createDefaultAccounts: string): Observable<Org> {
let sessionOptions = new SessionOptions({
createDefaultAccounts: createDefaultAccounts
});

View File

@@ -0,0 +1,123 @@
export const businessAccounts: any =
[
{
"name": "Checking",
"parent": "Assets"
},
{
"name": "Petty Cash",
"parent": "Assets"
},
{
"name": "Accounting",
"parent": "Expenses"
},
{
"name": "Accounts Receivable",
"parent": "Assets"
},
{
"name": "Capital",
"parent": "Equity"
},
{
"name": "Drawing",
"parent": "Equity"
},
{
"name": "Accounts Payable",
"parent": "Liabilities"
},
{
"name": "Credit Card",
"parent": "Liabilities"
},
{
"name": "Auto",
"parent": "Expenses"
},
{
"name": "Bank Fees",
"parent": "Expenses"
},
{
"name": "Computer Equipment",
"parent": "Expenses"
},
{
"name": "Cost of Goods Sold",
"parent": "Expenses"
},
{
"name": "Dining / Entertainment",
"parent": "Expenses"
},
{
"name": "Internet",
"parent": "Expenses"
},
{
"name": "Legal",
"parent": "Expenses"
},
{
"name": "Licenses / Fees",
"parent": "Expenses"
},
{
"name": "Marketing",
"parent": "Expenses"
},
{
"name": "Miscellaneous",
"parent": "Expenses"
},
{
"name": "Office Furniture",
"parent": "Expenses"
},
{
"name": "Office Rent",
"parent": "Expenses"
},
{
"name": "Office Supplies",
"parent": "Expenses"
},
{
"name": "Payment Processing",
"parent": "Expenses"
},
{
"name": "Payroll",
"parent": "Expenses"
},
{
"name": "Phone",
"parent": "Expenses"
},
{
"name": "Shipping",
"parent": "Expenses"
},
{
"name": "Software",
"parent": "Expenses"
},
{
"name": "Tax Preparation",
"parent": "Expenses"
},
{
"name": "Travel",
"parent": "Expenses"
},
{
"name": "Web Domains / Hosting",
"parent": "Expenses"
},
{
"name": "Sales",
"parent": "Income"
}
];

View File

@@ -41,9 +41,20 @@
</option>
</select>
</div>
<p>Create default accounts (can be customized later)</p>
<div class="form-group">
<label for="createDefaultAccounts">Create default accounts<br>(can be customized later)</label>
<input formControlName="createDefaultAccounts" id="createDefaultAccounts" type="checkbox" class="form-control" />
<div class="form-check">
<input formControlName="createDefaultAccounts" id="createDefaultAccounts1" type="radio" class="form-check-input" value="" />
<label for="createDefaultAccounts1" class="form-check-label">None</label>
</div>
<div class="form-check">
<input formControlName="createDefaultAccounts" id="createDefaultAccounts2" type="radio" class="form-check-input" value="business" />
<label for="createDefaultAccounts2" class="form-check-label">Business accounts</label>
</div>
<div class="form-check">
<input formControlName="createDefaultAccounts" id="createDefaultAccounts3" type="radio" class="form-check-input" value="personal" />
<label for="createDefaultAccounts2" class="form-check-label">Personal accounts</label>
</div>
</div>
<p *ngIf="error" class="error">
{{error.message}}

View File

@@ -39,7 +39,7 @@ export class NewOrgPage {
'currency': ['USD', Validators.required],
'precision': [2, Validators.required],
'timezone': [this.defaultTz, Validators.required],
'createDefaultAccounts': [true, Validators.required]
'createDefaultAccounts': ['business']
});
this.joinOrgForm = fb.group({

View File

@@ -148,10 +148,19 @@
</select>
</div>
</div>
<div class="form-group row">
<label for="createDefaultAccounts" class="col-sm-3 col-form-label">Create default accounts<br>(can be customized later)</label>
<div class="col-sm-9">
<input formControlName="createDefaultAccounts" id="createDefaultAccounts" type="checkbox" class="form-control" />
<p>Create default accounts (can be customized later)</p>
<div class="form-group">
<div class="form-check">
<input formControlName="createDefaultAccounts" id="createDefaultAccounts1" type="radio" class="form-check-input" value="" />
<label for="createDefaultAccounts1" class="form-check-label">None</label>
</div>
<div class="form-check">
<input formControlName="createDefaultAccounts" id="createDefaultAccounts2" type="radio" class="form-check-input" value="business" />
<label for="createDefaultAccounts2" class="form-check-label">Business accounts</label>
</div>
<div class="form-check">
<input formControlName="createDefaultAccounts" id="createDefaultAccounts3" type="radio" class="form-check-input" value="personal" />
<label for="createDefaultAccounts2" class="form-check-label">Personal accounts</label>
</div>
</div>
<p *ngIf="newOrgError" class="error">{{newOrgError.message}}</p>

View File

@@ -72,7 +72,7 @@ export class OrgPage {
'currency': ['', Validators.required],
'precision': [null, Validators.required],
'timezone': [this.defaultTz, Validators.required],
'createDefaultAccounts': [true, Validators.required]
'createDefaultAccounts': ['']
});
}
@@ -95,7 +95,7 @@ export class OrgPage {
currency: this.currentOrg.currency,
precision: this.currentOrg.precision,
timezone: this.defaultTz,
createDefaultAccounts: true
createDefaultAccounts: ''
}
);

View File

@@ -1,5 +1,5 @@
export class SessionOptions {
createDefaultAccounts: boolean;
createDefaultAccounts: string;
constructor(options: any = {}) {
this.createDefaultAccounts = options.createDefaultAccounts;
}

View File

@@ -11,8 +11,8 @@ export class Transaction {
splits: Split[];
constructor(options: any = {}) {
this.id = options.id;
this.orgId = options.id;
this.userId = options.id;
this.orgId = options.orgId;
this.userId = options.userId;
this.date = options.date ? new Date(options.date) : null;
this.inserted = options.inserted ? new Date(options.inserted) : null;
this.updated = options.updated ? new Date(options.updated) : null;