only use actual sales for last price info in the evaluation process
This commit is contained in:
		
							parent
							
								
									f19bd138e3
								
							
						
					
					
						commit
						2a699e8f83
					
				| @ -35,40 +35,31 @@ BEGIN | ||||
|         END IF; | ||||
| 
 | ||||
|         -- 1. Prefer the most recent of dss/dsq if either is within the age threshold | ||||
|         IF (dsq_date IS NOT NULL AND dsq_date > (CURRENT_DATE - age_threshold)) | ||||
|            OR (dss_date IS NOT NULL AND dss_date > (CURRENT_DATE - age_threshold)) THEN | ||||
|             IF dsq_date IS NOT NULL AND (dss_date IS NULL OR dsq_date >= dss_date) AND dsq_date > (CURRENT_DATE - age_threshold) THEN | ||||
|                 result := dsq || jsonb_build_object('source', 'dsq'); | ||||
|             ELSIF dss_date IS NOT NULL AND dss_date > (CURRENT_DATE - age_threshold) THEN | ||||
|         IF dss_date IS NOT NULL AND dss_date > (CURRENT_DATE - age_threshold) THEN | ||||
|             result := dss || jsonb_build_object('source', 'dss'); | ||||
|             END IF; | ||||
|         -- 2. If both dss/dsq are older than the threshold, use the most recent of mrs/mrq if either exists | ||||
|         ELSIF (mrq_date IS NOT NULL OR mrs_date IS NOT NULL) THEN | ||||
|             IF mrq_date IS NOT NULL AND (mrs_date IS NULL OR mrq_date >= mrs_date) THEN | ||||
|                 result := mrq || jsonb_build_object('source', 'mrq'); | ||||
|             ELSIF mrs_date IS NOT NULL THEN | ||||
|         ELSIF mrs_date IS NOT NULL AND mrs_date > (CURRENT_DATE - age_threshold) THEN | ||||
|             result := mrs || jsonb_build_object('source', 'mrs'); | ||||
|             END IF; | ||||
|         -- 3. If all are at least as old as the threshold, pick the least oldest price available | ||||
|         ELSE | ||||
|             best := NULL; | ||||
|             best_date := NULL; | ||||
|             IF dsq_date IS NOT NULL THEN | ||||
|                 best := dsq || jsonb_build_object('source', 'dsq'); | ||||
|                 best_date := dsq_date; | ||||
|             END IF; | ||||
|             IF dss_date IS NOT NULL AND (best_date IS NULL OR dss_date > best_date) THEN | ||||
|                 best := dss || jsonb_build_object('source', 'dss'); | ||||
|                 best_date := dss_date; | ||||
|             END IF; | ||||
|             IF mrq_date IS NOT NULL AND (best_date IS NULL OR mrq_date > best_date) THEN | ||||
|                 best := mrq || jsonb_build_object('source', 'mrq'); | ||||
|                 best_date := mrq_date; | ||||
|             END IF; | ||||
|             IF mrs_date IS NOT NULL AND (best_date IS NULL OR mrs_date > best_date) THEN | ||||
|                 best := mrs || jsonb_build_object('source', 'mrs'); | ||||
|                 best_date := mrs_date; | ||||
|             END IF; | ||||
|             -- IF dsq_date IS NOT NULL THEN | ||||
|             --     best := dsq || jsonb_build_object('source', 'dsq'); | ||||
|             --     best_date := dsq_date; | ||||
|             -- END IF; | ||||
|             -- IF dss_date IS NOT NULL AND (best_date IS NULL OR dss_date > best_date) THEN | ||||
|             --     best := dss || jsonb_build_object('source', 'dss'); | ||||
|             --     best_date := dss_date; | ||||
|             -- END IF; | ||||
|             -- IF mrq_date IS NOT NULL AND (best_date IS NULL OR mrq_date > best_date) THEN | ||||
|             --     best := mrq || jsonb_build_object('source', 'mrq'); | ||||
|             --     best_date := mrq_date; | ||||
|             -- END IF; | ||||
|             -- IF mrs_date IS NOT NULL AND (best_date IS NULL OR mrs_date > best_date) THEN | ||||
|             --     best := mrs || jsonb_build_object('source', 'mrs'); | ||||
|             --     best_date := mrs_date; | ||||
|             -- END IF; | ||||
|             result := best; | ||||
|         END IF; | ||||
|         RETURN result; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user