group PaymentSqlDao;
paymentInfoFields(prefix) ::= <<
<prefix>id,
<prefix>amount,
<prefix>refund_amount,
<prefix>bank_identification_number,
<prefix>payment_number,
<prefix>payment_type,
<prefix>status,
<prefix>reference_id,
<prefix>payment_method_id,
<prefix>payment_method,
<prefix>card_type,
<prefix>card_country,
<prefix>effective_date,
<prefix>created_by,
<prefix>created_date,
<prefix>updated_by,
<prefix>updated_date
>>
insertPaymentInfo() ::= <<
INSERT INTO payments (<paymentInfoFields()>)
VALUES (:id, :amount, :refund_amount, :bank_identification_number, :payment_number,
:payment_type, :status, :reference_id, :payment_method_id, :payment_method, :card_type,
:card_country, :effective_date, :userName, :createdDate, :userName, :createdDate);
>>
updatePaymentInfo() ::= <<
UPDATE payments
SET payment_method = :payment_method,
card_type = :card_type,
card_country = :card_country,
updated_by = :userName,
updated_date = :updatedDate
WHERE id = :id
>>
getPaymentInfoList(invoiceIds) ::= <<
SELECT <paymentInfoFields("p.")>
FROM payments p, payment_attempts pa
WHERE pa.invoice_id in (<invoiceIds>)
AND pa.payment_id = p.id
>>
getLastPaymentInfo(invoiceIds) ::= <<
SELECT <paymentInfoFields("p.")>
FROM payments p, payment_attempts pa
WHERE pa.invoice_id in (<invoiceIds>)
AND pa.payment_id = p.id
ORDER BY p.created_date DESC
LIMIT 1;
>>
getPaymentInfoForPaymentAttemptId() ::= <<
SELECT <paymentInfoFields("p.")>
FROM payments p, payment_attempts pa
WHERE pa.payment_attempt_id = :payment_attempt_id
AND pa.payment_id = p.id
>>
getPaymentInfo() ::= <<
SELECT <paymentInfoFields()>
FROM payments
WHERE id = :id
>>
historyFields(prefix) ::= <<
record_id,
id,
amount,
refund_amount,
payment_number,
bank_identification_number,
status,
reference_id,
payment_type,
payment_method_id,
payment_method,
card_type,
card_country,
effective_date,
created_by,
created_date,
updated_by,
updated_date
>>
insertHistoryFromTransaction() ::= <<
INSERT INTO payment_history (<historyFields()>)
VALUES (:recordId, :id, :amount, :refund_amount, :bank_identification_number, :payment_number,
:payment_type, :status, :reference_id, :payment_method_id, :payment_method, :card_type,
:card_country, :effective_date, :userName, :createdDate, :userName, :updatedDate);
>>
getRecordId() ::= <<
SELECT record_id
FROM payments
WHERE id = :id;
>>
getHistoryRecordId() ::= <<
SELECT MAX(history_record_id)
FROM payment_history
WHERE record_id = :recordId;
>>
auditFields(prefix) ::= <<
<prefix>table_name,
<prefix>record_id,
<prefix>change_type,
<prefix>change_date,
<prefix>changed_by,
<prefix>reason_code,
<prefix>comments,
<prefix>user_token
>>
insertAuditFromTransaction() ::= <<
INSERT INTO audit_log(<auditFields()>)
VALUES(:tableName, :recordId, :changeType, :createdDate, :userName, :reasonCode, :comment, :userToken);
>>