1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
DROP VIEW "public"."contracts_detail_view";--> statement-breakpoint
CREATE VIEW "public"."contracts_detail_view" AS (select "contracts"."id", "contracts"."contract_no", "contracts"."contract_name", "contracts"."status", "contracts"."start_date", "contracts"."end_date", "contracts"."project_id", "projects"."code", "projects"."name", "contracts"."vendor_id", "vendors"."vendor_name", "contracts"."payment_terms", "contracts"."delivery_terms", "contracts"."delivery_date", "contracts"."delivery_location", "contracts"."currency", "contracts"."total_amount", "contracts"."discount", "contracts"."tax", "contracts"."shipping_fee", "contracts"."net_total", "contracts"."partial_shipping_allowed", "contracts"."partial_payment_allowed", "contracts"."remarks", "contracts"."version", "contracts"."created_at", "contracts"."updated_at", EXISTS (
SELECT 1
FROM "contract_envelopes"
WHERE "contract_envelopes"."contract_id" = "contracts"."id"
) as "has_signature", COALESCE((
SELECT json_agg(
json_build_object(
'id', ce.id,
'envelopeId', ce.envelope_id,
'documentId', ce.document_id,
'envelopeStatus', ce.envelope_status,
'fileName', ce.file_name,
'filePath', ce.file_path,
'createdAt', ce.created_at,
'updatedAt', ce.updated_at,
'signers', (
SELECT json_agg(
json_build_object(
'id', cs.id,
'vendorContactId', cs.vendor_contact_id,
'signerType', cs.signer_type,
'signerEmail', cs.signer_email,
'signerName', cs.signer_name,
'signerPosition', cs.signer_position,
'signerStatus', cs.signer_status,
'signedAt', cs.signed_at
)
)
FROM "contract_signers" AS cs
WHERE cs.envelope_id = ce.id
)
)
)
FROM "contract_envelopes" AS ce
WHERE ce.contract_id = "contracts"."id"
), '[]') as "envelopes" from "contracts" left join "projects" on "contracts"."project_id" = "projects"."id" left join "vendors" on "contracts"."vendor_id" = "vendors"."id");
|