summaryrefslogtreecommitdiff
path: root/db/migrations_backup/0095_odd_slayback.sql
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-04-08 03:08:19 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-04-08 03:08:19 +0000
commit9ceed79cf32c896f8a998399bf1b296506b2cd4a (patch)
treef84750fa6cac954d5e31221fc47a54c655fc06a9 /db/migrations_backup/0095_odd_slayback.sql
parent230ce796836c25df26c130dbcd616ef97d12b2ec (diff)
로그인 및 미들웨어 처리. 구조 변경
Diffstat (limited to 'db/migrations_backup/0095_odd_slayback.sql')
-rw-r--r--db/migrations_backup/0095_odd_slayback.sql55
1 files changed, 55 insertions, 0 deletions
diff --git a/db/migrations_backup/0095_odd_slayback.sql b/db/migrations_backup/0095_odd_slayback.sql
new file mode 100644
index 00000000..bdea91f0
--- /dev/null
+++ b/db/migrations_backup/0095_odd_slayback.sql
@@ -0,0 +1,55 @@
+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', ci.id,
+ 'itemId', ci.item_id,
+ 'description', ci.description,
+ 'quantity', ci.quantity,
+ 'unitPrice', ci.unit_price,
+ 'taxRate', ci.tax_rate,
+ 'taxAmount', ci.tax_amount,
+ 'totalLineAmount', ci.total_line_amount,
+ 'remark', ci.remark,
+ 'createdAt', ci.created_at,
+ 'updatedAt', ci.updated_at
+ )
+ )
+ FROM "contract_items" AS ci
+ WHERE ci.contract_id = "contracts"."id"
+ ), '[]') as "items", 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"); \ No newline at end of file