feat: Refactor transaction handling by removing is_pay field and adding documentno in relevant models
Deploy Application / deploy (push) Successful in 30s
Details
Deploy Application / deploy (push) Successful in 30s
Details
This commit is contained in:
parent
d6effb7fd8
commit
1bcc5528b7
|
|
@ -269,7 +269,6 @@ model transactions {
|
||||||
user_id String? @db.Uuid
|
user_id String? @db.Uuid
|
||||||
status String @db.VarChar(50)
|
status String @db.VarChar(50)
|
||||||
amount Decimal @db.Decimal(20, 2)
|
amount Decimal @db.Decimal(20, 2)
|
||||||
is_pay Boolean @default(false)
|
|
||||||
c_bpartner_id Decimal? @db.Decimal(10, 0)
|
c_bpartner_id Decimal? @db.Decimal(10, 0)
|
||||||
created_at DateTime? @default(now()) @db.Timestamptz(6)
|
created_at DateTime? @default(now()) @db.Timestamptz(6)
|
||||||
updated_at DateTime? @default(now()) @db.Timestamptz(6)
|
updated_at DateTime? @default(now()) @db.Timestamptz(6)
|
||||||
|
|
@ -291,13 +290,14 @@ model transactions {
|
||||||
virtualAccountNo String? @db.VarChar(50)
|
virtualAccountNo String? @db.VarChar(50)
|
||||||
partnerReferenceNo String? @db.VarChar(50)
|
partnerReferenceNo String? @db.VarChar(50)
|
||||||
bankto_id String? @db.Uuid
|
bankto_id String? @db.Uuid
|
||||||
external_id String? @db.VarChar(50)
|
|
||||||
beneficiaryAccountName String? @db.VarChar(255)
|
beneficiaryAccountName String? @db.VarChar(255)
|
||||||
beneficiaryAccountNo String? @db.VarChar(255)
|
beneficiaryAccountNo String? @db.VarChar(255)
|
||||||
method String? @db.VarChar(50)
|
method String? @db.VarChar(50)
|
||||||
originatorCustomerName String? @db.VarChar(255)
|
originatorCustomerName String? @db.VarChar(255)
|
||||||
originatorCustomerNo String? @db.VarChar(50)
|
originatorCustomerNo String? @db.VarChar(50)
|
||||||
sourceAccountNo String? @db.VarChar(255)
|
sourceAccountNo String? @db.VarChar(255)
|
||||||
|
external_id String? @db.VarChar(50)
|
||||||
|
documentno String? @db.VarChar(255)
|
||||||
banks banks @relation(fields: [bank_id], references: [bank_id], onDelete: NoAction, onUpdate: NoAction)
|
banks banks @relation(fields: [bank_id], references: [bank_id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
banks_to banks? @relation("transactions_bankto_idTobanks", fields: [bankto_id], references: [bank_id], onDelete: NoAction, onUpdate: NoAction)
|
banks_to banks? @relation("transactions_bankto_idTobanks", fields: [bankto_id], references: [bank_id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
database database? @relation(fields: [db_id], references: [db_id], onDelete: NoAction, onUpdate: NoAction)
|
database database? @relation(fields: [db_id], references: [db_id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
|
|
@ -315,10 +315,11 @@ model transactions_lines {
|
||||||
c_invoice_id Decimal? @db.Decimal(10, 0)
|
c_invoice_id Decimal? @db.Decimal(10, 0)
|
||||||
created_at DateTime? @default(now()) @db.Timestamptz(6)
|
created_at DateTime? @default(now()) @db.Timestamptz(6)
|
||||||
updated_at DateTime? @default(now()) @db.Timestamptz(6)
|
updated_at DateTime? @default(now()) @db.Timestamptz(6)
|
||||||
bank_id String @db.Uuid
|
|
||||||
tenant_id String @db.Uuid
|
tenant_id String @db.Uuid
|
||||||
line_no Int @default(1)
|
line_no Int @default(1)
|
||||||
id String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
id String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
||||||
|
c_payment_id Decimal? @db.Decimal(10, 0)
|
||||||
|
documentno String? @db.VarChar(255)
|
||||||
database database? @relation(fields: [db_id], references: [db_id], onDelete: NoAction, onUpdate: NoAction)
|
database database? @relation(fields: [db_id], references: [db_id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
transactions transactions @relation(fields: [transaction_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
transactions transactions @relation(fields: [transaction_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -104,17 +104,18 @@ export async function MidsuitPayment(req: Request, res: Response) {
|
||||||
) {
|
) {
|
||||||
return res.status(400).json({ error: "invalid bank code" });
|
return res.status(400).json({ error: "invalid bank code" });
|
||||||
}
|
}
|
||||||
const bankFrom = await db.bank_code.findFirst({
|
const bankFrom = await db.banks.findFirst({
|
||||||
where: { code: String(get(data, "originatorBankCode")) },
|
where: { code: String(get(data, "originatorBankCode")) },
|
||||||
});
|
});
|
||||||
const bankTo = await db.bank_code.findFirst({
|
|
||||||
where: { code: String(get(data, "beneficiaryBankCode")) },
|
|
||||||
});
|
|
||||||
if (!bankFrom) {
|
if (!bankFrom) {
|
||||||
return res
|
return res
|
||||||
.status(400)
|
.status(400)
|
||||||
.json({ error: "unsupported originator bank code midsuit" });
|
.json({ error: "unsupported originator bank code midsuit" });
|
||||||
}
|
}
|
||||||
|
const bankTo = await db.banks.findFirst({
|
||||||
|
where: { code: String(get(data, "beneficiaryBankCode")) },
|
||||||
|
});
|
||||||
|
console.log(bankTo);
|
||||||
if (!bankTo) {
|
if (!bankTo) {
|
||||||
return res
|
return res
|
||||||
.status(400)
|
.status(400)
|
||||||
|
|
@ -160,8 +161,31 @@ export async function MidsuitPayment(req: Request, res: Response) {
|
||||||
senderCustomerType: get(data, "beneficiaryCustomerType", "2"),
|
senderCustomerType: get(data, "beneficiaryCustomerType", "2"),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
console.log({
|
||||||
|
tenant_id: user.tenant_id,
|
||||||
|
bank_id: get(bankTo, "bank_id") as any,
|
||||||
|
bankto_id: get(bankFrom, "bank_id") as any,
|
||||||
|
external_id: external_id,
|
||||||
|
partnerReferenceNo: partnerReferenceNo,
|
||||||
|
amount: get(data, "amount"),
|
||||||
|
description: `Payment for ${get(data, "documentno")}`,
|
||||||
|
status: "DRAFT",
|
||||||
|
beneficiaryAccountName: get(data, "beneficiaryAccountName"),
|
||||||
|
beneficiaryAccountNo: get(data, "beneficiaryAccountNo"),
|
||||||
|
sourceAccountNo: get(data, "sourceAccountNo"),
|
||||||
|
originatorCustomerName: get(data, "originatorCustomerName"),
|
||||||
|
originatorCustomerNo: get(data, "originatorCustomerNo"),
|
||||||
|
method: isRTKGS
|
||||||
|
? "RTGS"
|
||||||
|
: get(data, "beneficiaryBankCode") !== bankCodeUser
|
||||||
|
? "SKN"
|
||||||
|
: "Inhouse",
|
||||||
|
});
|
||||||
const transaction = await db.transactions.create({
|
const transaction = await db.transactions.create({
|
||||||
data: {
|
data: {
|
||||||
|
db_id: user.db_id,
|
||||||
|
user_id: user.user_id,
|
||||||
|
documentno: get(data, "documentno"),
|
||||||
tenant_id: user.tenant_id,
|
tenant_id: user.tenant_id,
|
||||||
bank_id: get(bankTo, "bank_id") as any,
|
bank_id: get(bankTo, "bank_id") as any,
|
||||||
bankto_id: get(bankFrom, "bank_id") as any,
|
bankto_id: get(bankFrom, "bank_id") as any,
|
||||||
|
|
@ -169,7 +193,6 @@ export async function MidsuitPayment(req: Request, res: Response) {
|
||||||
partnerReferenceNo: partnerReferenceNo,
|
partnerReferenceNo: partnerReferenceNo,
|
||||||
amount: get(data, "amount"),
|
amount: get(data, "amount"),
|
||||||
description: `Payment for ${get(data, "documentno")}`,
|
description: `Payment for ${get(data, "documentno")}`,
|
||||||
is_pay: false,
|
|
||||||
status: "DRAFT",
|
status: "DRAFT",
|
||||||
beneficiaryAccountName: get(data, "beneficiaryAccountName"),
|
beneficiaryAccountName: get(data, "beneficiaryAccountName"),
|
||||||
beneficiaryAccountNo: get(data, "beneficiaryAccountNo"),
|
beneficiaryAccountNo: get(data, "beneficiaryAccountNo"),
|
||||||
|
|
@ -183,6 +206,16 @@ export async function MidsuitPayment(req: Request, res: Response) {
|
||||||
: "Inhouse",
|
: "Inhouse",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
await db.transactions_lines.create({
|
||||||
|
data: {
|
||||||
|
transaction_id: transaction.id,
|
||||||
|
documentno: get(data, "documentno"),
|
||||||
|
amount: get(data, "amount"),
|
||||||
|
description: `Payment for ${get(data, "documentno")}`,
|
||||||
|
tenant_id: user.tenant_id,
|
||||||
|
line_no: 1,
|
||||||
|
},
|
||||||
|
});
|
||||||
if (isRTKGS) {
|
if (isRTKGS) {
|
||||||
// method RTGS
|
// method RTGS
|
||||||
const result = await callGate({
|
const result = await callGate({
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,6 @@ export default async function ({
|
||||||
bank_id: user.bank_id,
|
bank_id: user.bank_id,
|
||||||
amount: formatMoney(grandtotal._sum.grandtotal, true) || 0,
|
amount: formatMoney(grandtotal._sum.grandtotal, true) || 0,
|
||||||
description: `Payment for Virtual Account ${invoiceId}`,
|
description: `Payment for Virtual Account ${invoiceId}`,
|
||||||
is_pay: false,
|
|
||||||
status: "DRAFT",
|
status: "DRAFT",
|
||||||
c_bpartner_id: get(c_bpartner, "c_bpartner_id"),
|
c_bpartner_id: get(c_bpartner, "c_bpartner_id"),
|
||||||
inquiryRequestId: get(data, "inquiryRequestId"),
|
inquiryRequestId: get(data, "inquiryRequestId"),
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,6 @@ export default async function ({
|
||||||
bank_id: user.bank_id,
|
bank_id: user.bank_id,
|
||||||
amount: invoice.amount as any,
|
amount: invoice.amount as any,
|
||||||
description: `Payment for Virtual Account ${invoice.inquiryRequestId}`,
|
description: `Payment for Virtual Account ${invoice.inquiryRequestId}`,
|
||||||
is_pay: false,
|
|
||||||
status: "DRAFT",
|
status: "DRAFT",
|
||||||
c_bpartner_id: get(invoice, "c_bpartner_id"),
|
c_bpartner_id: get(invoice, "c_bpartner_id"),
|
||||||
paymentRequestId: get(data, "paymentRequestId"),
|
paymentRequestId: get(data, "paymentRequestId"),
|
||||||
|
|
@ -74,7 +73,6 @@ export default async function ({
|
||||||
amount: lo.get(item, "grandtotal", 0),
|
amount: lo.get(item, "grandtotal", 0),
|
||||||
c_invoice_id: get(item, "c_invoice_id"),
|
c_invoice_id: get(item, "c_invoice_id"),
|
||||||
db_id: lo.get(user, "database.db_id"),
|
db_id: lo.get(user, "database.db_id"),
|
||||||
bank_id: get(user, "bank_id"),
|
|
||||||
tenant_id: get(user, "tenant_id"),
|
tenant_id: get(user, "tenant_id"),
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue