Skip to content

Commit

Permalink
fix delviery coalculate behavior
Browse files Browse the repository at this point in the history
  • Loading branch information
Xziy committed Aug 10, 2023
1 parent 12128b0 commit f740303
Show file tree
Hide file tree
Showing 8 changed files with 53 additions and 12 deletions.
6 changes: 6 additions & 0 deletions interfaces/Address.d.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
/**
* Описывает адресс получателя для доставки
*/
type Coordinate = {
lon: string;
lat: string;
};
export default interface Address {
coordinate?: Coordinate;
streetId?: string;
home: string;
comment?: string;
Expand All @@ -14,3 +19,4 @@ export default interface Address {
apartment?: string;
doorphone?: string;
}
export {};
3 changes: 3 additions & 0 deletions interfaces/Address.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
"use strict";
/**
* Описывает адресс получателя для доставки
*/
Object.defineProperty(exports, "__esModule", { value: true });
7 changes: 7 additions & 0 deletions interfaces/Address.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
/**
* Описывает адресс получателя для доставки
*/

type Coordinate = {
lon: string,
lat: string
}

export default interface Address {
coordinate?: Coordinate;
streetId?: string;
home: string;
comment?: string;
Expand Down
6 changes: 3 additions & 3 deletions models/Order.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ declare let attributes: {
/**
* @deprecated will be rename to `Items` in **v2**
*/
dishes: number[] | OrderDish[];
dishes: OrderDish[] | number[];
paymentMethod: any;
/** */
paymentMethodTitle: string;
Expand Down Expand Up @@ -119,7 +119,7 @@ export default Order;
declare let Model: {
beforeCreate(orderInit: any, cb: (err?: string) => void): void;
/** Add dish into order */
addDish(criteria: CriteriaQuery<Order>, dish: string | Dish, amount: number, modifiers: OrderModifier[], comment: string, addedBy: string, replace?: boolean, orderDishId?: number): Promise<void>;
addDish(criteria: CriteriaQuery<Order>, dish: Dish | string, amount: number, modifiers: OrderModifier[], comment: string, addedBy: string, replace?: boolean, orderDishId?: number): Promise<void>;
removeDish(criteria: CriteriaQuery<Order>, dish: OrderDish, amount: number, stack?: boolean): Promise<void>;
setCount(criteria: CriteriaQuery<Order>, dish: OrderDish, amount: number): Promise<void>;
setComment(criteria: CriteriaQuery<Order>, dish: OrderDish, comment: string): Promise<void>;
Expand Down Expand Up @@ -163,7 +163,7 @@ declare let Model: {
shortId?: string;
concept?: string;
isMixedConcept?: boolean;
dishes?: number[] | OrderDish[];
dishes?: OrderDish[] | number[];
paymentMethod?: any;
paymentMethodTitle?: string;
paid?: boolean;
Expand Down
14 changes: 13 additions & 1 deletion models/Order.js
Original file line number Diff line number Diff line change
Expand Up @@ -949,7 +949,19 @@ let Model = {
if (order.selfService === false && order.address?.city && order.address?.street && order.address?.home) {
emitter.emit("core-order-check-delivery", order);
try {
let delivery = await deliveryAdapter.calculate(order);
let delivery;
try {
delivery = await deliveryAdapter.calculate(order);
}
catch (error) {
delivery = {
allowed: false,
cost: 0,
item: undefined,
message: error,
deliveryTimeMinutes: Infinity
};
}
order.delivery = delivery;
if (!delivery.item) {
order.deliveryCost = delivery.cost;
Expand Down
15 changes: 14 additions & 1 deletion models/Order.ts
Original file line number Diff line number Diff line change
Expand Up @@ -687,6 +687,7 @@ let Model = {
}
}


// Custom emmitters checks
const results = await emitter.emit("core-order-check", order, customer, isSelfService, address, paymentMethodId);

Expand Down Expand Up @@ -1175,7 +1176,18 @@ async countCart(criteria: CriteriaQuery<Order>) {
if (order.selfService === false && order.address?.city && order.address?.street && order.address?.home) {
emitter.emit("core-order-check-delivery", order);
try {
let delivery = await deliveryAdapter.calculate(order);
let delivery: Delivery
try {
delivery = await deliveryAdapter.calculate(order);
} catch (error) {
delivery = {
allowed: false,
cost: 0,
item: undefined,
message: error,
deliveryTimeMinutes: Infinity
}
}
order.delivery = delivery
if(!delivery.item) {
order.deliveryCost = delivery.cost
Expand All @@ -1185,6 +1197,7 @@ async countCart(criteria: CriteriaQuery<Order>) {
}
order.deliveryDescription = delivery.message
} catch (error) {

sails.log.error(`Core > order > delivery calculate fail: `, error)
}
emitter.emit("core-order-after-check-delivery", order);
Expand Down
2 changes: 1 addition & 1 deletion models/User.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ declare let Model: {
* @param {WaterlineCriteria} criteria
* @returns String
*/
getPhoneString(phone: Phone, target?: "string" | "login" | "print"): Promise<string>;
getPhoneString(phone: Phone, target?: "login" | "print" | "string"): Promise<string>;
/**
* Update user password
*
Expand Down
12 changes: 6 additions & 6 deletions models/UserBonusProgram.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@ interface UserBonusProgram extends attributes, ORM {
export default UserBonusProgram;
declare let Model: {
beforeCreate(init: UserBonusProgram, cb: (err?: string) => void): void;
registration(user: string | User, adapterOrId: string): Promise<UserBonusProgram>;
delete(user: string | User, adapterOrId: string): Promise<void>;
syncAll(user: string | User): Promise<void>;
registration(user: User | string, adapterOrId: string): Promise<UserBonusProgram>;
delete(user: User | string, adapterOrId: string): Promise<void>;
syncAll(user: User | string): Promise<void>;
/** Full sync all transaction with external system */
sync(user: string | User, bonusProgram: string | BonusProgram, force?: boolean): Promise<void>;
checkEnoughToSpend(user: string | User, bonusProgram: string | BonusProgram, amount: number): Promise<boolean>;
sumCurrentBalance(user: string | User, bonusProgram: string | BonusProgram): Promise<number>;
sync(user: User | string, bonusProgram: BonusProgram | string, force?: boolean): Promise<void>;
checkEnoughToSpend(user: User | string, bonusProgram: BonusProgram | string, amount: number): Promise<boolean>;
sumCurrentBalance(user: User | string, bonusProgram: BonusProgram | string): Promise<number>;
};
declare global {
const UserBonusProgram: typeof Model & ORMModel<UserBonusProgram, "user" | "bonusProgram">;
Expand Down

0 comments on commit f740303

Please sign in to comment.