feat: support view contracts (#947)
Reviewed-on: daoyoucloud/tachybase#947
This commit is contained in:
		
							parent
							
								
									5a15fd1ff1
								
							
						
					
					
						commit
						882a1a95a5
					
				@ -0,0 +1,21 @@
 | 
			
		||||
CREATE OR REPLACE VIEW
 | 
			
		||||
  public.view_effect_contract_fee_items AS
 | 
			
		||||
SELECT
 | 
			
		||||
  ('C'::TEXT || contract_plan_fee_items.contract_id)::CHARACTER VARYING AS effect_contract_id,
 | 
			
		||||
  contract_plan_fee_items.id
 | 
			
		||||
FROM
 | 
			
		||||
  contract_plan_fee_items
 | 
			
		||||
WHERE
 | 
			
		||||
  contract_plan_fee_items.lease_item_id IS NULL
 | 
			
		||||
  AND contract_plan_fee_items.contract_id IS NOT NULL
 | 
			
		||||
UNION ALL
 | 
			
		||||
SELECT
 | 
			
		||||
  (
 | 
			
		||||
    'P'::TEXT || contract_plan_fee_items.contract_plan_id
 | 
			
		||||
  )::CHARACTER VARYING AS effect_contract_id,
 | 
			
		||||
  contract_plan_fee_items.id
 | 
			
		||||
FROM
 | 
			
		||||
  contract_plan_fee_items
 | 
			
		||||
WHERE
 | 
			
		||||
  contract_plan_fee_items.lease_item_id IS NULL
 | 
			
		||||
  AND contract_plan_fee_items.contract_plan_id IS NOT NULL;
 | 
			
		||||
@ -0,0 +1,21 @@
 | 
			
		||||
CREATE OR REPLACE VIEW
 | 
			
		||||
  public.view_effect_contract_lease_items AS
 | 
			
		||||
SELECT
 | 
			
		||||
  (
 | 
			
		||||
    'C'::TEXT || contract_plan_lease_items.contract_id
 | 
			
		||||
  )::CHARACTER VARYING AS effect_contract_id,
 | 
			
		||||
  contract_plan_lease_items.id
 | 
			
		||||
FROM
 | 
			
		||||
  contract_plan_lease_items
 | 
			
		||||
WHERE
 | 
			
		||||
  contract_plan_lease_items.contract_id IS NOT NULL
 | 
			
		||||
UNION ALL
 | 
			
		||||
SELECT
 | 
			
		||||
  (
 | 
			
		||||
    'P'::TEXT || contract_plan_lease_items.contract_plan_id
 | 
			
		||||
  )::CHARACTER VARYING AS effect_contract_id,
 | 
			
		||||
  contract_plan_lease_items.id
 | 
			
		||||
FROM
 | 
			
		||||
  contract_plan_lease_items
 | 
			
		||||
WHERE
 | 
			
		||||
  contract_plan_lease_items.contract_plan_id IS NOT NULL;
 | 
			
		||||
@ -0,0 +1,49 @@
 | 
			
		||||
CREATE OR REPLACE VIEW
 | 
			
		||||
  public.view_effect_contracts AS
 | 
			
		||||
SELECT
 | 
			
		||||
  contracts.name,
 | 
			
		||||
  ('S-'::TEXT || contracts.id)::CHARACTER VARYING AS id,
 | 
			
		||||
  contracts.id AS contract_id,
 | 
			
		||||
  ('C'::TEXT || contracts.id)::CHARACTER VARYING AS effect_contract_id,
 | 
			
		||||
  contracts.project_id,
 | 
			
		||||
  contracts.tax_rate,
 | 
			
		||||
  contracts.calc_type,
 | 
			
		||||
  contracts.tax_included,
 | 
			
		||||
  contracts.record_category,
 | 
			
		||||
  contracts.first_party_id,
 | 
			
		||||
  contracts.party_b_id,
 | 
			
		||||
  contracts.date_range,
 | 
			
		||||
  contracts.status,
 | 
			
		||||
  LOWER(contracts.date_range) AS start_date,
 | 
			
		||||
  UPPER(contracts.date_range) - '1 day'::INTERVAL AS end_date
 | 
			
		||||
FROM
 | 
			
		||||
  contracts
 | 
			
		||||
WHERE
 | 
			
		||||
  contracts.effectiveness::TEXT = '1'::TEXT
 | 
			
		||||
UNION ALL
 | 
			
		||||
SELECT
 | 
			
		||||
  (
 | 
			
		||||
    (contracts.name::TEXT || '-'::TEXT) || contract_plans.name::TEXT
 | 
			
		||||
  )::CHARACTER VARYING AS NAME,
 | 
			
		||||
  (
 | 
			
		||||
    (('L-'::TEXT || contracts.id) || '-'::TEXT) || contract_plans.id
 | 
			
		||||
  )::CHARACTER VARYING AS id,
 | 
			
		||||
  contracts.id AS contract_id,
 | 
			
		||||
  ('P'::TEXT || contract_plans.id)::CHARACTER VARYING AS effect_contract_id,
 | 
			
		||||
  contracts.project_id,
 | 
			
		||||
  contracts.tax_rate,
 | 
			
		||||
  contracts.calc_type,
 | 
			
		||||
  contracts.tax_included,
 | 
			
		||||
  contracts.record_category,
 | 
			
		||||
  contracts.first_party_id,
 | 
			
		||||
  contracts.party_b_id,
 | 
			
		||||
  contract_items.date_range,
 | 
			
		||||
  contracts.status,
 | 
			
		||||
  LOWER(contract_items.date_range) AS start_date,
 | 
			
		||||
  UPPER(contract_items.date_range) - '1 day'::INTERVAL AS end_date
 | 
			
		||||
FROM
 | 
			
		||||
  contracts
 | 
			
		||||
  JOIN contract_items ON contracts.id = contract_items.id
 | 
			
		||||
  JOIN contract_plans ON contract_plans.id = contract_items.contract_plan_id
 | 
			
		||||
WHERE
 | 
			
		||||
  contracts.effectiveness::TEXT = '0'::TEXT;
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user