Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions bot/commands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -582,8 +582,8 @@ const addInvoicePHI = async (ctx: CommunityContext, bot: HasTelegram, orderId: s
const order = await Order.findOne({ _id: orderId });
if (order === null)
throw new Error("order was not found");
// orders with status PAID_HOLD_INVOICE are released payments
if (order.status !== 'PAID_HOLD_INVOICE') {
// orders with status PAID_HOLD_INVOICE or COMPLETED_BY_ADMIN are released payments
if (order.status !== 'PAID_HOLD_INVOICE' && order.status !== 'COMPLETED_BY_ADMIN') {
return;
}

Expand Down
19 changes: 15 additions & 4 deletions bot/start.ts
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ const askForConfirmation = async (user: UserDocument, command: string) => {
{
$or: [
{ status: 'PAID_HOLD_INVOICE' },
{ status: 'COMPLETED_BY_ADMIN' },
],
},
]
Expand Down Expand Up @@ -495,10 +496,9 @@ const initialize = (botToken: string, options: Partial<Telegraf.Options<Communit
const order = await Order.findOne({ _id: orderId });
if (order === null) return;

// Check if the order status is already PAID_HOLD_INVOICE
if (order.status === 'PAID_HOLD_INVOICE') {
await ctx.reply(ctx.i18n.t('order_already_settled'));
return;
// settleorder can only be used if the order status is DISPUTE
if (order.status !== 'DISPUTE') {
return await ctx.reply(ctx.i18n.t('settleorder_only_dispute_orders'));
}

// We look for a dispute for this order
Expand Down Expand Up @@ -866,6 +866,11 @@ const initialize = (botToken: string, options: Partial<Telegraf.Options<Communit
});
if (!order) return await messages.notActiveOrderMessage(ctx);

// paytobuyer can only be used if the order status is FROZEN or PAID_HOLD_INVOICE
if (order.status !== 'FROZEN' && order.status !== 'PAID_HOLD_INVOICE') {
Comment thread
Catrya marked this conversation as resolved.
return await ctx.reply(ctx.i18n.t('paytobuyer_only_frozen_orders'));
}

// We check if this is a solver, the order must be from the same community
if (!ctx.admin.admin) {
if (!order.community_id) {
Expand All @@ -885,6 +890,12 @@ const initialize = (botToken: string, options: Partial<Telegraf.Options<Communit

if (isPending) return;

// Set status to PAID_HOLD_INVOICE before paying (only if not already PAID_HOLD_INVOICE)
if (order.status === 'FROZEN') {
order.status = 'PAID_HOLD_INVOICE';
await order.save();
}

await payToBuyer(bot, order);
} catch (error) {
logger.error(error);
Expand Down
2 changes: 2 additions & 0 deletions locales/de.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -637,6 +637,8 @@ disclaimer: |

Weder die Entwickler noch die Streitschlichter sind für Verluste oder Schäden verantwortlich, die dem Benutzer durch die Nutzung des Bots entstehen können.
order_frozen: Sie haben die Bestellung eingefroren
paytobuyer_only_frozen_orders: Der paytobuyer-Befehl kann nur bei Bestellungen mit dem Status FROZEN oder PAID_HOLD_INVOICE verwendet werden
settleorder_only_dispute_orders: Der settleorder-Befehl kann nur bei Bestellungen mit dem Status DISPUTE verwendet werden
dispute_solver: 👮‍♂️ Ein Löser wird sich um Ihren Streitfall kümmern, Sie können ihn/sie direkt anschreiben, indem Sie auf seinen/ihren Benutzernamen tippen => @${solver} <=, wenn der Löser Sie zuerst anschreibt, sollten Sie ihn/sie bitten, Ihnen mitzuteilen, was das Token Ihres Streitfalls ist, Ihr Token ist ${token}.
setinvoice_no_response: Sie haben keine zu bezahlenden Aufträge
already_cancelled: Die Bestellung wurde bereits storniert!
Expand Down
2 changes: 2 additions & 0 deletions locales/en.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -643,6 +643,8 @@ disclaimer: |

Neither the developers nor the dispute resolvers are responsible for any losses or damages that the user may suffer as a result of using the bot.
order_frozen: You have frozen the order
paytobuyer_only_frozen_orders: The paytobuyer command can only be used on orders with FROZEN or PAID_HOLD_INVOICE status
settleorder_only_dispute_orders: The settleorder command can only be used on orders with DISPUTE status
dispute_solver: 👮‍♂️ A solver will be attending your dispute, you can write to him/her directly by tapping his/her username => @${solver} <=, if the solver writes to you first, you should ask him/her to tell you what is the token of your dispute, your token is ${token}.
setinvoice_no_response: You have no orders to be paid
privacy: |
Expand Down
2 changes: 2 additions & 0 deletions locales/es.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -639,6 +639,8 @@ disclaimer: |

Ni los desarrolladores ni los árbitros de disputas son responsables de las pérdidas o daños que el usuario pueda sufrir como resultado del uso del bot.
order_frozen: Has congelado la orden
paytobuyer_only_frozen_orders: El comando paytobuyer solo puede usarse en órdenes con estado FROZEN o PAID_HOLD_INVOICE
settleorder_only_dispute_orders: El comando settleorder solo puede usarse en órdenes con estado DISPUTE
dispute_solver: 👮‍♂️ Un solver estará atendiendo tu disputa, puedes escribirle directamente tocando su username => @${solver} <=, si el/la solver te escribe primero, debes pedirle que te diga cuál es el token de tu disputa, tu token es ${token}.
setinvoice_no_response: No tienes ordenes a ser pagadas
already_cancelled: ¡La orden ya ha sido cancelada!
Expand Down
2 changes: 2 additions & 0 deletions locales/fa.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -636,6 +636,8 @@ disclaimer: |

نه توسعه‌دهندگان و نه حل‌کننده‌های اختلاف، مسئولیتی در قبال ضرر و زیان‌هایی که ممکن است کاربر در اثر استفاده از ربات متحمل شود، ندارند.
order_frozen: شما سفارش را مسدود کردید
paytobuyer_only_frozen_orders: دستور paytobuyer فقط برای سفارشات با وضعیت FROZEN یا PAID_HOLD_INVOICE قابل استفاده است
settleorder_only_dispute_orders: دستور settleorder فقط برای سفارشات با وضعیت DISPUTE قابل استفاده است
dispute_solver: 👮‍♂️ یک حل‌کننده در دعوای شما شرکت خواهد کرد، می‌توانید با ضربه زدن روی نام کاربری او مستقیماً برای او بنویسید => @${solver} <=، اگر حل‌کننده ابتدا برای شما نامه نوشت، باید از او بخواهید که به شما بگویم که نشانه اختلاف شما چیست، رمز شما ${token} است.
setinvoice_no_response: هیچ سفارشی برای پرداخت ندارید
already_cancelled: سفارش قبلاً لغو شده است!
Expand Down
2 changes: 2 additions & 0 deletions locales/fr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -636,6 +636,8 @@ disclaimer: |

Ni les développeurs ni les responsables de la résolution des litiges ne sont responsables des pertes ou des dommages que l'utilisateur pourrait subir à la suite de l'utilisation du bot.
order_frozen: Vous avez gelé la commande
paytobuyer_only_frozen_orders: La commande paytobuyer ne peut être utilisée que sur des commandes avec le statut FROZEN ou PAID_HOLD_INVOICE
settleorder_only_dispute_orders: La commande settleorder ne peut être utilisée que sur des commandes avec le statut DISPUTE
dispute_solver: 👮‍♂️ Un résolveur va s'occuper de votre litige, vous pouvez lui écrire directement en tapant son nom d'utilisateur => @${solver} <=, si le résolveur vous écrit en premier, vous devriez lui demander de vous dire quel est le jeton de votre litige, votre jeton est ${token}.
setinvoice_no_response : Vous n'avez pas d'ordre à payer
already_cancelled: L'offre a déjà été annulée !
Expand Down
2 changes: 2 additions & 0 deletions locales/it.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -634,6 +634,8 @@ disclaimer: |

Né gli sviluppatori né i risolutori di controversie sono responsabili di eventuali perdite o danni che l'utente potrebbe subire a causa dell'utilizzo del bot.
order_frozen: hai congelato l'ordine
paytobuyer_only_frozen_orders: Il comando paytobuyer può essere utilizzato solo su ordini con stato FROZEN o PAID_HOLD_INVOICE
settleorder_only_dispute_orders: Il comando settleorder può essere utilizzato solo su ordini con stato DISPUTE
dispute_solver: 👮‍♂️ Un solutore si occuperà della vostra controversia, potete scrivergli direttamente toccando il suo nome utente => @${solver} <=, se il solutore vi scrive per primo, dovreste chiedergli di dirvi qual è il token della vostra controversia, il vostro token è ${token}.
setinvoice_no_response: Non ci sono ordini da pagare.
already_cancelled: L'offerta è già stata annullata!
Expand Down
3 changes: 3 additions & 0 deletions locales/ko.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -633,6 +633,9 @@ disclaimer: |
개발자들과 분쟁 해소자들은 봇일 이용한 불건전한 행위자, 사기, 스캠들을 방지하기 위해 최선을 다하겠지만, 사용자들은 이 시스템이 악용될 수 있다는 사실을 알고, 이를 이용함에 있어 스스로 모든 책임을 진다는 점을 받아 들여야 합니다.

개발자나 분쟁 해소자 모두 봇을 사용하는 사용자들이 겪는 어떠한 손실이나 손해에 대한 어떠한 책임을 지지 않습니다.
order_frozen: 주문을 동결시켰습니다
paytobuyer_only_frozen_orders: paytobuyer 명령은 FROZEN 또는 PAID_HOLD_INVOICE 상태의 주문에서만 사용할 수 있습니다
settleorder_only_dispute_orders: settleorder 명령은 DISPUTE 상태의 주문에서만 사용할 수 있습니다
dispute_solver: 👮‍♂️ 분쟁 해결사가 분쟁에 참석할 것이며, 사용자 아이디 => @${해결사} <=를 눌러 해결사에게 직접 편지를 보낼 수 있으며, 해결사가 먼저 편지를 보내면 분쟁의 토큰이 무엇인지 물어봐야 하며, 토큰은 ${토큰}입니다.
setinvoice_no_response: 결제할 주문이 없습니다.
already_cancelled: 오퍼가 이미 취소되었습니다!
Expand Down
2 changes: 2 additions & 0 deletions locales/pt.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -636,6 +636,8 @@ disclaimer: |

Nem os criadores nem os solucionadores de litígios são responsáveis por quaisquer perdas ou danos que o utilizador possa sofrer como resultado da utilização do bot.
order_frozen: Você congelou o pedido
paytobuyer_only_frozen_orders: O comando paytobuyer só pode ser usado em pedidos com status FROZEN ou PAID_HOLD_INVOICE
settleorder_only_dispute_orders: O comando settleorder só pode ser usado em pedidos com status DISPUTE
dispute_solver: 👮‍♂️ Um solucionador atenderá sua disputa. Você pode escrever para ele diretamente tocando no nome de usuário dele => @${solver} <=, se o solucionador escrever para você primeiro, você deve pedir a ele que lhe diga qual é o token de sua disputa, seu token é ${token}.
setinvoice_no_response: Você não tem ordens a serem pagas
already_cancelled: A oferta já foi cancelada!
Expand Down
2 changes: 2 additions & 0 deletions locales/ru.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -637,6 +637,8 @@ disclaimer: |

Ни разработчики, ни разрешители споров не несут ответственности за какие-либо потери или убытки, которые могут возникнуть у пользователя в результате использования бота.
order_frozen: вы заморозили заказ
paytobuyer_only_frozen_orders: Команда paytobuyer может использоваться только для заказов со статусом FROZEN или PAID_HOLD_INVOICE
settleorder_only_dispute_orders: Команда settleorder может использоваться только для заказов со статусом DISPUTE
dispute_solver: 👮‍♂️ На вашем споре будет присутствовать решатель, вы можете написать ему напрямую, нажав его имя пользователя => @${solver} <=, если решатель напишет вам первым, вы должны попросить его сообщить вам, какой токен у вашего спора, ваш токен - ${token}.
setinvoice_no_response: У вас нет заказов для оплаты
already_cancelled: Предложение уже отменено!
Expand Down
2 changes: 2 additions & 0 deletions locales/uk.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -633,6 +633,8 @@ disclaimer: |

Ані розробники, ані сторони, що вирішують спори, не несуть відповідальності за будь-які збитки або шкоду, яких користувач може зазнати в результаті використання бота.
order_frozen: Ви заморозили замовлення
paytobuyer_only_frozen_orders: Команда paytobuyer може використовуватися лише для замовлень зі статусом FROZEN або PAID_HOLD_INVOICE
settleorder_only_dispute_orders: Команда settleorder може використовуватися лише для замовлень зі статусом DISPUTE
dispute_solver: 👮‍♂️ У вашій суперечці буде присутній розв'язувач, ви можете написати йому безпосередньо, натиснувши його ім'я користувача => @${solver} <=, якщо розв'язувач напише вам першим, ви повинні попросити його повідомити вам токен вашої суперечки, вашим токеном буде ${token}.
setinvoice_no_response: У вас немає замовлень для оплати
already_cancelled: Пропозицію вже скасовано!
Expand Down
Loading