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
|
||||
status String @db.VarChar(50)
|
||||
amount Decimal @db.Decimal(20, 2)
|
||||
is_pay Boolean @default(false)
|
||||
c_bpartner_id Decimal? @db.Decimal(10, 0)
|
||||
created_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)
|
||||
partnerReferenceNo String? @db.VarChar(50)
|
||||
bankto_id String? @db.Uuid
|
||||
external_id String? @db.VarChar(50)
|
||||
beneficiaryAccountName String? @db.VarChar(255)
|
||||
beneficiaryAccountNo String? @db.VarChar(255)
|
||||
method String? @db.VarChar(50)
|
||||
originatorCustomerName String? @db.VarChar(255)
|
||||
originatorCustomerNo String? @db.VarChar(50)
|
||||
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_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)
|
||||
|
|
@ -315,10 +315,11 @@ model transactions_lines {
|
|||
c_invoice_id Decimal? @db.Decimal(10, 0)
|
||||
created_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
|
||||
line_no Int @default(1)
|
||||
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)
|
||||
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" });
|
||||
}
|
||||
const bankFrom = await db.bank_code.findFirst({
|
||||
const bankFrom = await db.banks.findFirst({
|
||||
where: { code: String(get(data, "originatorBankCode")) },
|
||||
});
|
||||
const bankTo = await db.bank_code.findFirst({
|
||||
where: { code: String(get(data, "beneficiaryBankCode")) },
|
||||
});
|
||||
if (!bankFrom) {
|
||||
return res
|
||||
.status(400)
|
||||
.json({ error: "unsupported originator bank code midsuit" });
|
||||
}
|
||||
const bankTo = await db.banks.findFirst({
|
||||
where: { code: String(get(data, "beneficiaryBankCode")) },
|
||||
});
|
||||
console.log(bankTo);
|
||||
if (!bankTo) {
|
||||
return res
|
||||
.status(400)
|
||||
|
|
@ -160,8 +161,7 @@ export async function MidsuitPayment(req: Request, res: Response) {
|
|||
senderCustomerType: get(data, "beneficiaryCustomerType", "2"),
|
||||
};
|
||||
}
|
||||
const transaction = await db.transactions.create({
|
||||
data: {
|
||||
console.log({
|
||||
tenant_id: user.tenant_id,
|
||||
bank_id: get(bankTo, "bank_id") as any,
|
||||
bankto_id: get(bankFrom, "bank_id") as any,
|
||||
|
|
@ -169,7 +169,6 @@ export async function MidsuitPayment(req: Request, res: Response) {
|
|||
partnerReferenceNo: partnerReferenceNo,
|
||||
amount: get(data, "amount"),
|
||||
description: `Payment for ${get(data, "documentno")}`,
|
||||
is_pay: false,
|
||||
status: "DRAFT",
|
||||
beneficiaryAccountName: get(data, "beneficiaryAccountName"),
|
||||
beneficiaryAccountNo: get(data, "beneficiaryAccountNo"),
|
||||
|
|
@ -181,6 +180,40 @@ export async function MidsuitPayment(req: Request, res: Response) {
|
|||
: get(data, "beneficiaryBankCode") !== bankCodeUser
|
||||
? "SKN"
|
||||
: "Inhouse",
|
||||
});
|
||||
const transaction = await db.transactions.create({
|
||||
data: {
|
||||
db_id: user.db_id,
|
||||
user_id: user.user_id,
|
||||
documentno: get(data, "documentno"),
|
||||
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",
|
||||
},
|
||||
});
|
||||
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) {
|
||||
|
|
|
|||
|
|
@ -71,7 +71,6 @@ export default async function ({
|
|||
bank_id: user.bank_id,
|
||||
amount: formatMoney(grandtotal._sum.grandtotal, true) || 0,
|
||||
description: `Payment for Virtual Account ${invoiceId}`,
|
||||
is_pay: false,
|
||||
status: "DRAFT",
|
||||
c_bpartner_id: get(c_bpartner, "c_bpartner_id"),
|
||||
inquiryRequestId: get(data, "inquiryRequestId"),
|
||||
|
|
|
|||
|
|
@ -44,7 +44,6 @@ export default async function ({
|
|||
bank_id: user.bank_id,
|
||||
amount: invoice.amount as any,
|
||||
description: `Payment for Virtual Account ${invoice.inquiryRequestId}`,
|
||||
is_pay: false,
|
||||
status: "DRAFT",
|
||||
c_bpartner_id: get(invoice, "c_bpartner_id"),
|
||||
paymentRequestId: get(data, "paymentRequestId"),
|
||||
|
|
@ -74,7 +73,6 @@ export default async function ({
|
|||
amount: lo.get(item, "grandtotal", 0),
|
||||
c_invoice_id: get(item, "c_invoice_id"),
|
||||
db_id: lo.get(user, "database.db_id"),
|
||||
bank_id: get(user, "bank_id"),
|
||||
tenant_id: get(user, "tenant_id"),
|
||||
},
|
||||
})
|
||||
|
|
|
|||
Loading…
Reference in New Issue