[Home] [Help]
59: cursor C is
60: select * from (
61: select life_to_date_reading,
62: VALUE_TIMESTAMP
63: from csi_counter_readings
64: where counter_id = p_meter_id
65: and (reset_mode <> 'SOFT' or reset_mode is null )
66: and NVL(disabled_flag,'N')<>'Y'
67: order by VALUE_TIMESTAMP desc) where rownum <3;
69: BEGIN
70: l_count := 0;
71: x_average := 0;
72: select count (*) INTO l_count
73: from csi_counter_readings
74: where counter_id = p_meter_id
75: and (reset_mode <> 'SOFT' or reset_mode is null )
76: and NVL(disabled_flag,'N')<>'Y'
77: order by VALUE_TIMESTAMP desc;
110: select ccr.value_timestamp current_reading_date,
111: ccr.life_to_date_reading,
112: rownum row_id
113: from
114: csi_counter_readings ccr
115: where
116: ccr.counter_id = p_meter_id and
117: (reset_mode <> 'SOFT' or reset_mode is null ) and
118: NVL(disabled_flag,'N')<>'Y'
1029: return_val := false;
1030: -- get min uppper reading that is a reset reading
1031: select min(value_timestamp)
1032: into prev_ceiling_reset_date
1033: from csi_counter_readings
1034: where COUNTER_ID = p_meter_id
1035: and value_timestamp > p_reading_date
1036: and reset_mode = 'SOFT'
1037: and NVL(disabled_flag,'N')<>'Y';
1038:
1039: -- get min uppper reading that is not a reset reading
1040: select min(value_timestamp)
1041: into prev_ceiling_reading_date
1042: from csi_counter_readings
1043: where COUNTER_ID = p_meter_id
1044: and value_timestamp > p_reading_date
1045: and (reset_mode <> 'SOFT' or reset_mode is null)
1046: and NVL(disabled_flag,'N')<>'Y';
1075:
1076: -- get min uppper reading that is not a reset reading
1077: select min(value_timestamp)
1078: into prev_ceiling_reading_date
1079: from csi_counter_readings
1080: where COUNTER_ID = p_meter_id
1081: and value_timestamp > p_reading_date
1082: and (reset_mode <> 'SOFT' or reset_mode is null)
1083: and NVL(disabled_flag,'N')<>'Y';
1111: begin
1112: return_val := false;
1113: select counter_reading
1114: into curr_rdg
1115: from csi_counter_readings
1116: where COUNTER_ID = p_meter_id
1117: and value_timestamp = p_reading_date
1118: and (reset_mode <> 'SOFT' or reset_mode is null)
1119: and NVL(disabled_flag,'N')<>'Y';
1192: l_next_reading_date date;
1193: begin
1194: select min(value_timestamp)
1195: into l_next_reading_date
1196: from csi_counter_readings
1197: where COUNTER_ID = p_meter_id
1198: and value_timestamp > p_reading_date
1199: and (disabled_flag <> 'Y');
1200: if (l_next_reading_date is not null) then
1216: l_meter_reading_id number;
1217: begin
1218: return_val := false;
1219: select COUNTER_VALUE_ID into l_meter_reading_id
1220: from csi_counter_readings
1221: where
1222: COUNTER_ID=p_meter_id and
1223: value_timestamp = p_reading_date
1224: and NVL(disabled_flag,'N')<>'Y';
1260: begin
1261: return_val := false;
1262:
1263: select max(value_timestamp) into l_prev_reading_date
1264: from csi_counter_readings
1265: where COUNTER_ID = p_meter_id
1266: and value_timestamp < p_reading_date
1267: and NVL(disabled_flag,'N')<>'Y';
1268:
1267: and NVL(disabled_flag,'N')<>'Y';
1268:
1269: if (l_prev_reading_date is not null) then
1270: select counter_reading into l_prev_reading
1271: from csi_counter_readings
1272: where COUNTER_ID = p_meter_id
1273: and value_timestamp = l_prev_reading_date
1274: and NVL(disabled_flag,'N')<>'Y';
1275: end if;
1274: and NVL(disabled_flag,'N')<>'Y';
1275: end if;
1276:
1277: select min(value_timestamp) into l_next_reading_date
1278: from csi_counter_readings
1279: where COUNTER_ID = p_meter_id
1280: and value_timestamp > p_reading_date
1281: and NVL(disabled_flag,'N')<>'Y';
1282:
1282:
1283: if (l_next_reading_date is not null) then
1284: select counter_reading, decode(reset_mode,'SOFT','Y','N') reset_flag
1285: into l_next_reading, l_next_reset
1286: from csi_counter_readings
1287: where value_timestamp = l_next_reading_date
1288: and COUNTER_ID = p_meter_id
1289: and NVL(disabled_flag,'N')<>'Y';
1290: end if;
1345: end if;
1346:
1347: select VALUE_TIMESTAMP, COUNTER_READING
1348: into l_reading_date, l_reading_value
1349: from csi_counter_readings
1350: where COUNTER_VALUE_ID = p_meter_reading_id;
1351:
1352: -- Now update the ltd readings of all readings taken after the disabled reading
1353: update csi_counter_readings
1349: from csi_counter_readings
1350: where COUNTER_VALUE_ID = p_meter_reading_id;
1351:
1352: -- Now update the ltd readings of all readings taken after the disabled reading
1353: update csi_counter_readings
1354: set life_to_date_reading = life_to_date_reading - l_reading_value
1355: where value_timestamp > l_reading_date and counter_id = p_meter_id;
1356:
1357: exception
1373: l_prev_ltd_reading number;
1374:
1375: begin
1376: select max(value_timestamp) into l_prev_reading_date
1377: from csi_counter_readings
1378: where COUNTER_ID = p_meter_id
1379: and value_timestamp < p_reading_date
1380: and NVL(disabled_flag,'N')<>'Y';
1381:
1381:
1382: if (l_prev_reading_date is not null) then
1383: select counter_reading, life_to_date_reading
1384: into l_prev_reading, l_prev_ltd_reading
1385: from csi_counter_readings
1386: where value_timestamp = l_prev_reading_date
1387: and COUNTER_ID = p_meter_id
1388: and NVL(disabled_flag,'N')<>'Y';
1389: end if;
1421: begin
1422: -- get current reading date and reset flag
1423: select decode(reset_mode,'SOFT','Y','N') reset_flag, VALUE_TIMESTAMP
1424: into l_reset, l_current_reading_date
1425: from CSI_COUNTER_READINGS
1426: where COUNTER_VALUE_ID = p_meter_reading_id
1427: and NVL(disabled_flag,'N')<>'Y';
1428: exception
1429: when no_data_found then
1438: end if;
1439:
1440: -- get next reading date
1441: select min(value_timestamp) into l_next_reading_date
1442: from csi_counter_readings
1443: where COUNTER_ID = p_meter_id
1444: and value_timestamp > l_current_reading_date
1445: and NVL(disabled_flag,'N')<>'Y';
1446:
1460: end if;
1461:
1462: -- if current reading is not reset, get next reset flag
1463: select decode(reset_mode,'SOFT','Y','N') reset_flag into l_next_reset
1464: from csi_counter_readings
1465: where COUNTER_ID = p_meter_id
1466: and value_timestamp = l_next_reading_date
1467: and NVL(disabled_flag,'N')<>'Y';
1468: