@dascompany/product 2.0.0 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -77,4 +77,6 @@ import CompanyData from "./stockObjects/CompanyData";
77
77
  import CompanyDataRepo from "./repo/CompanyDataRepo";
78
78
  import CompanyDataReader from "./reader/CompanyDataReader";
79
79
  import CompanyDataI from "./types/CompanyDataI";
80
- export { Client, ClientAccountRepo, ClientAccountReader, Admin, AdminRepo, AdminReader, Address, AddressI, AddressesRepo, AddressesReader, PersonalData, PersonalDataRepo, PersonalDataReader, PersonalDataI, CompanyDetails, CompanyDetailsRepo, CompanyDetailsReader, CompanyDetailsI, ContactDetails, ContactDetailsRepo, ContactDetailsReader, ContactDetailsI, DeliveryDetails, DeliveryDetailsRepo, DeliveryDetailsReader, DeliveryDetailsI, DeliveryMethods, DeliveryMethodRepo, DeliveryMethodReader, DeliveryMethodI, DeliveryMethodTypeE, DeliveryStatus, DeliveryStatusReader, DeliveryStatusTypeE, InvoiceDetails, InvoiceDetailsRepo, InvoiceDetailsReader, InvoiceDetailsI, PaymentDetails, PaymentDetailsRepo, PaymentDetailsReader, PaymentDetailsI, PaymentMethods, PaymentMethodRepo, PaymentMethodReader, PaymentMethodE, PaymentMethodI, PaymentStatus, PaymentStatusesReader, PaymentStatusE, Order, OrderRepo, OrderReader, OrderProduct, OrderProductsRepo, OrderProductsReader, OrderProductI, Status, OrderStatusRepo, OrderStatusReader, StatusI, OrderStatusTypeE, StatusTypesReader, ProductI, Product, ProductRepo, ProductReader, File, FilesRepo, FilesReader, FileI, FileConnection, FileConnectionsRepo, FileConnectionsReader, FileConnectionTypeE, CompanyData, CompanyDataRepo, CompanyDataReader, CompanyDataI, };
80
+ import PriceConverter from "./utils/PriceConverter";
81
+ import createQueryOptionsForId from "./utils/createQueryOptionsForId";
82
+ export { Client, ClientAccountRepo, ClientAccountReader, Admin, AdminRepo, AdminReader, Address, AddressI, AddressesRepo, AddressesReader, PersonalData, PersonalDataRepo, PersonalDataReader, PersonalDataI, CompanyDetails, CompanyDetailsRepo, CompanyDetailsReader, CompanyDetailsI, ContactDetails, ContactDetailsRepo, ContactDetailsReader, ContactDetailsI, DeliveryDetails, DeliveryDetailsRepo, DeliveryDetailsReader, DeliveryDetailsI, DeliveryMethods, DeliveryMethodRepo, DeliveryMethodReader, DeliveryMethodI, DeliveryMethodTypeE, DeliveryStatus, DeliveryStatusReader, DeliveryStatusTypeE, InvoiceDetails, InvoiceDetailsRepo, InvoiceDetailsReader, InvoiceDetailsI, PaymentDetails, PaymentDetailsRepo, PaymentDetailsReader, PaymentDetailsI, PaymentMethods, PaymentMethodRepo, PaymentMethodReader, PaymentMethodE, PaymentMethodI, PaymentStatus, PaymentStatusesReader, PaymentStatusE, Order, OrderRepo, OrderReader, OrderProduct, OrderProductsRepo, OrderProductsReader, OrderProductI, Status, OrderStatusRepo, OrderStatusReader, StatusI, OrderStatusTypeE, StatusTypesReader, ProductI, Product, ProductRepo, ProductReader, File, FilesRepo, FilesReader, FileI, FileConnection, FileConnectionsRepo, FileConnectionsReader, FileConnectionTypeE, CompanyData, CompanyDataRepo, CompanyDataReader, CompanyDataI, PriceConverter, createQueryOptionsForId };
package/dist/index.js CHANGED
@@ -63,4 +63,6 @@ import FileConnectionTypeE from './types/FileConnectionTypeE';
63
63
  import CompanyData from "./stockObjects/CompanyData";
64
64
  import CompanyDataRepo from "./repo/CompanyDataRepo";
65
65
  import CompanyDataReader from "./reader/CompanyDataReader";
66
- export { Client, ClientAccountRepo, ClientAccountReader, Admin, AdminRepo, AdminReader, Address, AddressesRepo, AddressesReader, PersonalData, PersonalDataRepo, PersonalDataReader, CompanyDetails, CompanyDetailsRepo, CompanyDetailsReader, ContactDetails, ContactDetailsRepo, ContactDetailsReader, DeliveryDetails, DeliveryDetailsRepo, DeliveryDetailsReader, DeliveryMethods, DeliveryMethodRepo, DeliveryMethodReader, DeliveryMethodTypeE, DeliveryStatus, DeliveryStatusReader, DeliveryStatusTypeE, InvoiceDetails, InvoiceDetailsRepo, InvoiceDetailsReader, PaymentDetails, PaymentDetailsRepo, PaymentDetailsReader, PaymentMethods, PaymentMethodRepo, PaymentMethodReader, PaymentMethodE, PaymentStatus, PaymentStatusesReader, PaymentStatusE, Order, OrderRepo, OrderReader, OrderProduct, OrderProductsRepo, OrderProductsReader, Status, OrderStatusRepo, OrderStatusReader, OrderStatusTypeE, StatusTypesReader, Product, ProductRepo, ProductReader, File, FilesRepo, FilesReader, FileConnection, FileConnectionsRepo, FileConnectionsReader, FileConnectionTypeE, CompanyData, CompanyDataRepo, CompanyDataReader, };
66
+ import PriceConverter from "./utils/PriceConverter";
67
+ import createQueryOptionsForId from "./utils/createQueryOptionsForId";
68
+ export { Client, ClientAccountRepo, ClientAccountReader, Admin, AdminRepo, AdminReader, Address, AddressesRepo, AddressesReader, PersonalData, PersonalDataRepo, PersonalDataReader, CompanyDetails, CompanyDetailsRepo, CompanyDetailsReader, ContactDetails, ContactDetailsRepo, ContactDetailsReader, DeliveryDetails, DeliveryDetailsRepo, DeliveryDetailsReader, DeliveryMethods, DeliveryMethodRepo, DeliveryMethodReader, DeliveryMethodTypeE, DeliveryStatus, DeliveryStatusReader, DeliveryStatusTypeE, InvoiceDetails, InvoiceDetailsRepo, InvoiceDetailsReader, PaymentDetails, PaymentDetailsRepo, PaymentDetailsReader, PaymentMethods, PaymentMethodRepo, PaymentMethodReader, PaymentMethodE, PaymentStatus, PaymentStatusesReader, PaymentStatusE, Order, OrderRepo, OrderReader, OrderProduct, OrderProductsRepo, OrderProductsReader, Status, OrderStatusRepo, OrderStatusReader, OrderStatusTypeE, StatusTypesReader, Product, ProductRepo, ProductReader, File, FilesRepo, FilesReader, FileConnection, FileConnectionsRepo, FileConnectionsReader, FileConnectionTypeE, CompanyData, CompanyDataRepo, CompanyDataReader, PriceConverter, createQueryOptionsForId };
@@ -3,10 +3,8 @@ import AdminI from "../types/AdminI";
3
3
  export default class AdminReader {
4
4
  static get(queryOptions: QueryOptions): Promise<AdminI>;
5
5
  static getId(queryOptions: QueryOptions): Promise<number>;
6
- static getAll(queryOptions: QueryOptions): Promise<{
7
- adminAccounts: AdminI[];
8
- quantity: number;
9
- }>;
6
+ static getAll(queryOptions: QueryOptions): Promise<AdminI[]>;
7
+ static getQuantity(queryOptions: QueryOptions): Promise<number>;
10
8
  private static correctAdmins;
11
9
  private static correctAdmin;
12
10
  }
@@ -9,11 +9,11 @@ export default class AdminReader {
9
9
  }
10
10
  static async getAll(queryOptions) {
11
11
  const adminAccounts = await DatabaseConnection.getInstance().adminAccounts.selectAll(queryOptions);
12
+ return this.correctAdmins(adminAccounts);
13
+ }
14
+ static async getQuantity(queryOptions) {
12
15
  const quantity = await DatabaseConnection.getInstance().adminAccounts.count(queryOptions);
13
- return {
14
- adminAccounts: this.correctAdmins(adminAccounts),
15
- quantity
16
- };
16
+ return quantity;
17
17
  }
18
18
  static correctAdmins(admins) {
19
19
  const correctAdmins = [];
@@ -2,10 +2,8 @@ import { QueryOptions } from "@dascompany/database";
2
2
  import ClientAccountI from "../types/ClientAccountI";
3
3
  export default class ClientAccountReader {
4
4
  static get(queryOptions: QueryOptions): Promise<ClientAccountI>;
5
- static getAll(queryOptions: QueryOptions): Promise<{
6
- clientAccounts: ClientAccountI[];
7
- quantity: number;
8
- }>;
5
+ static getAll(queryOptions: QueryOptions): Promise<ClientAccountI[]>;
6
+ static getQuantity(queryOptions: QueryOptions): Promise<number>;
9
7
  static getId(queryOptions: QueryOptions): Promise<number | null>;
10
8
  private static correctClientsFromRows;
11
9
  private static correctData;
@@ -6,11 +6,11 @@ export default class ClientAccountReader {
6
6
  }
7
7
  static async getAll(queryOptions) {
8
8
  const clientAccounts = await DatabaseConnection.getInstance().clientAccounts.selectAll(queryOptions);
9
+ return this.correctClientsFromRows(clientAccounts);
10
+ }
11
+ static async getQuantity(queryOptions) {
9
12
  const quantity = await DatabaseConnection.getInstance().clientAccounts.count(queryOptions);
10
- return {
11
- clientAccounts: this.correctClientsFromRows(clientAccounts),
12
- quantity
13
- };
13
+ return quantity;
14
14
  }
15
15
  static async getId(queryOptions) {
16
16
  const accountId = await DatabaseConnection.getInstance().clientAccounts.selectId(queryOptions);
@@ -1,7 +1,7 @@
1
1
  import { ParameterType, QueryOptions } from "@dascompany/database";
2
2
  import DatabaseConnection from "../DatabaseConnection";
3
- import calculateNetToGrossPrice from "../utils/calculateNetToGrossPrice";
4
3
  import FilesReader from "./FilesReader";
4
+ import PriceConverter from "../utils/PriceConverter";
5
5
  export default class OrderProductsReader {
6
6
  static async getAll(queryOptions) {
7
7
  const orderProducts = await DatabaseConnection.getInstance().ordersProducts.selectAll(queryOptions);
@@ -28,7 +28,7 @@ export default class OrderProductsReader {
28
28
  sku: orderProduct.sku,
29
29
  title: orderProduct.title,
30
30
  netPrice: orderProduct.net_price,
31
- grossPrice: calculateNetToGrossPrice(orderProduct.net_price, orderProduct.vat),
31
+ grossPrice: PriceConverter.netToGrossPrice(orderProduct.net_price, orderProduct.vat),
32
32
  vat: orderProduct.vat,
33
33
  file,
34
34
  }
@@ -3,10 +3,8 @@ import OrderI from "../types/OrderI";
3
3
  export default class OrderReader {
4
4
  static get(queryOptions: QueryOptions): Promise<OrderI>;
5
5
  static getAll(queryOptions: QueryOptions): Promise<OrderI[]>;
6
- static getAllForClient(queryOptions: QueryOptions): Promise<{
7
- orders: OrderI[];
8
- quantity: number;
9
- }>;
6
+ static getAllForClient(queryOptions: QueryOptions): Promise<OrderI[]>;
7
+ static getQuantity(queryOptions: QueryOptions): Promise<number>;
10
8
  private static correctOrders;
11
9
  private static correctOrder;
12
10
  }
@@ -18,9 +18,12 @@ export default class OrderReader {
18
18
  }
19
19
  static async getAllForClient(queryOptions) {
20
20
  const orderRows = await DatabaseConnection.getInstance().orders.selectAll(queryOptions);
21
- const quantity = await DatabaseConnection.getInstance().orders.count(queryOptions);
22
21
  const orders = await this.correctOrders(orderRows);
23
- return { orders, quantity };
22
+ return orders;
23
+ }
24
+ static async getQuantity(queryOptions) {
25
+ const quantity = await DatabaseConnection.getInstance().orders.count(queryOptions);
26
+ return quantity;
24
27
  }
25
28
  static async correctOrders(orderRows) {
26
29
  const orders = [];
@@ -1,8 +1,8 @@
1
1
  import { ParameterType, QueryOptions } from "@dascompany/database";
2
- import calculateNetToGrossPrice from "../utils/calculateNetToGrossPrice";
3
2
  import FilesReader from "./FilesReader";
4
3
  import DatabaseConnection from "../DatabaseConnection";
5
4
  import FileConnectionTypeE from "../types/FileConnectionTypeE";
5
+ import PriceConverter from "../utils/PriceConverter";
6
6
  export default class ProductReader {
7
7
  static async get(queryOption) {
8
8
  const product = await DatabaseConnection.getInstance().products.select(queryOption);
@@ -55,7 +55,7 @@ export default class ProductReader {
55
55
  createdAt: product.created_at,
56
56
  deleted: product.deleted,
57
57
  thumbnail: thumbnail ? thumbnail : null,
58
- grossPrice: calculateNetToGrossPrice(product.net_price, product.vat),
58
+ grossPrice: PriceConverter.netToGrossPrice(product.net_price, product.vat),
59
59
  jsonData: product.json_data
60
60
  };
61
61
  }
@@ -3,10 +3,8 @@ import Admin from "../stockObjects/Admin";
3
3
  export default class AdminRepo {
4
4
  static get(queryOptions: QueryOptions): Promise<Admin>;
5
5
  static getId(queryOptions: QueryOptions): Promise<number>;
6
- static getAll(queryOptions: QueryOptions): Promise<{
7
- adminAccounts: Admin[];
8
- quantity: number;
9
- }>;
6
+ static getAll(queryOptions: QueryOptions): Promise<Admin[]>;
7
+ static getQuantity(queryOptions: QueryOptions): Promise<number>;
10
8
  private static createAdminsFromRows;
11
9
  private static createAdminFromRow;
12
10
  }
@@ -10,8 +10,11 @@ export default class AdminRepo {
10
10
  }
11
11
  static async getAll(queryOptions) {
12
12
  const adminAccounts = await DatabaseConnection.getInstance().adminAccounts.selectAll(queryOptions);
13
+ return this.createAdminsFromRows(adminAccounts);
14
+ }
15
+ static async getQuantity(queryOptions) {
13
16
  const quantity = await DatabaseConnection.getInstance().adminAccounts.count(queryOptions);
14
- return { adminAccounts: this.createAdminsFromRows(adminAccounts), quantity };
17
+ return quantity;
15
18
  }
16
19
  static createAdminsFromRows(dataRows) {
17
20
  const admins = [];
@@ -1,7 +1,7 @@
1
1
  import { ParameterType, QueryOptions, StockObject } from "@dascompany/database";
2
2
  import OrderMapper from "../mappers/OrderMapper";
3
3
  import OrderProductsRepo from "../repo/OrderProductsRepo";
4
- import calculateNetToGrossPrice from "../utils/calculateNetToGrossPrice";
4
+ import PriceConverter from "../utils/PriceConverter";
5
5
  export default class Order extends StockObject {
6
6
  email;
7
7
  price;
@@ -45,7 +45,7 @@ export default class Order extends StockObject {
45
45
  }
46
46
  getGrossPrice() {
47
47
  const vatPercentage = 23; //brak stawki vat dla zamówienia
48
- return calculateNetToGrossPrice(this.price, vatPercentage);
48
+ return PriceConverter.netToGrossPrice(this.price, vatPercentage);
49
49
  }
50
50
  getclientId() {
51
51
  return this.clientId;
@@ -2,7 +2,7 @@ import { ParameterType, QueryOptions, StockObject } from "@dascompany/database";
2
2
  import ProductMapper from "../mappers/ProductMapper";
3
3
  import FilesReader from "../reader/FilesReader";
4
4
  import FileConnectionTypeE from "../types/FileConnectionTypeE";
5
- import calculateNetToGrossPrice from "../utils/calculateNetToGrossPrice";
5
+ import PriceConverter from "../utils/PriceConverter";
6
6
  export default class Product extends StockObject {
7
7
  sku;
8
8
  url;
@@ -54,7 +54,7 @@ export default class Product extends StockObject {
54
54
  return this.description;
55
55
  }
56
56
  getNetPrice() {
57
- return calculateNetToGrossPrice(this.netPrice, this.vat);
57
+ return PriceConverter.netToGrossPrice(this.netPrice, this.vat);
58
58
  }
59
59
  getGrossPrice() {
60
60
  return this.netPrice;
@@ -126,7 +126,7 @@ export default class Product extends StockObject {
126
126
  };
127
127
  }
128
128
  calculateGrossPrice() {
129
- return calculateNetToGrossPrice(this.netPrice, this.vat);
129
+ return PriceConverter.netToGrossPrice(this.netPrice, this.vat);
130
130
  }
131
131
  setCreatedAt(createdAt) {
132
132
  this.createdAt = createdAt;
@@ -0,0 +1,4 @@
1
+ export default class PriceConverter {
2
+ static netToGrossPrice(netPrice: number, vatPercentage?: number): number;
3
+ static grossToNetPrice(grossPrice: number, vatPercentage?: number): number;
4
+ }
@@ -0,0 +1,14 @@
1
+ export default class PriceConverter {
2
+ static netToGrossPrice(netPrice, vatPercentage = 23) {
3
+ const netPriceInPenny = Math.round(netPrice * 100);
4
+ const vatPriceInPenny = Math.round((netPriceInPenny * vatPercentage) / 100);
5
+ const grossPriceInPenny = netPriceInPenny + vatPriceInPenny;
6
+ const grossPrice = (grossPriceInPenny / 100).toFixed(2);
7
+ return Number(grossPrice);
8
+ }
9
+ static grossToNetPrice(grossPrice, vatPercentage = 23) {
10
+ const grossPriceInPenny = Math.round(grossPrice * 100);
11
+ const netPrice = ((grossPriceInPenny / (vatPercentage / 100 + 1)) / 100).toFixed(2);
12
+ return Number(netPrice);
13
+ }
14
+ }
@@ -0,0 +1,2 @@
1
+ import { QueryOptions } from "@dascompany/database";
2
+ export default function createQueryOptionsForId(id: number): QueryOptions;
@@ -0,0 +1,6 @@
1
+ import { ParameterType, QueryOptions } from "@dascompany/database";
2
+ export default function createQueryOptionsForId(id) {
3
+ const queryOptions = new QueryOptions();
4
+ queryOptions.setWhere([{ name: 'id', type: ParameterType.bigint, value: id }]);
5
+ return queryOptions;
6
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dascompany/product",
3
- "version": "2.0.0",
3
+ "version": "2.1.1",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "test": "vitest",
@@ -20,7 +20,7 @@
20
20
  "vitest": "^3.0.6"
21
21
  },
22
22
  "peerDependencies": {
23
- "@dascompany/database": "^3.0.0",
23
+ "@dascompany/database": "^3.0.1",
24
24
  "@types/pg": "^8.11.11",
25
25
  "pg": "^8.13.3"
26
26
  }