From 63201b6db3ff485bab6c339a3eb3bbb2888c3c89 Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Thu, 3 Jul 2025 10:58:20 +0700 Subject: add deadstock job --- calculate_no_sales_stock.ktr | 2351 +++++++++++++++++++++++++++++++++++++ deadstock_job.kjb | 434 +++++++ run_indoteknik_job.kjb | 46 + update_list_deadstock_opening.ktr | 1172 ++++++++++++++++++ 4 files changed, 4003 insertions(+) create mode 100644 calculate_no_sales_stock.ktr create mode 100644 deadstock_job.kjb create mode 100644 update_list_deadstock_opening.ktr diff --git a/calculate_no_sales_stock.ktr b/calculate_no_sales_stock.ktr new file mode 100644 index 0000000..0973a22 --- /dev/null +++ b/calculate_no_sales_stock.ktr @@ -0,0 +1,2351 @@ + + + + calculate_no_sales_stock + + + + Normal + / + + + + + + + + + + + + ID_BATCH + Y + ID_BATCH + + + CHANNEL_ID + Y + CHANNEL_ID + + + TRANSNAME + Y + TRANSNAME + + + STATUS + Y + STATUS + + + LINES_READ + Y + LINES_READ + + + + LINES_WRITTEN + Y + LINES_WRITTEN + + + + LINES_UPDATED + Y + LINES_UPDATED + + + + LINES_INPUT + Y + LINES_INPUT + + + + LINES_OUTPUT + Y + LINES_OUTPUT + + + + LINES_REJECTED + Y + LINES_REJECTED + + + + ERRORS + Y + ERRORS + + + STARTDATE + Y + STARTDATE + + + ENDDATE + Y + ENDDATE + + + LOGDATE + Y + LOGDATE + + + DEPDATE + Y + DEPDATE + + + REPLAYDATE + Y + REPLAYDATE + + + LOG_FIELD + Y + LOG_FIELD + + + EXECUTING_SERVER + N + EXECUTING_SERVER + + + EXECUTING_USER + N + EXECUTING_USER + + + CLIENT + N + CLIENT + + + + + +
+ + + + ID_BATCH + Y + ID_BATCH + + + SEQ_NR + Y + SEQ_NR + + + LOGDATE + Y + LOGDATE + + + TRANSNAME + Y + TRANSNAME + + + STEPNAME + Y + STEPNAME + + + STEP_COPY + Y + STEP_COPY + + + LINES_READ + Y + LINES_READ + + + LINES_WRITTEN + Y + LINES_WRITTEN + + + LINES_UPDATED + Y + LINES_UPDATED + + + LINES_INPUT + Y + LINES_INPUT + + + LINES_OUTPUT + Y + LINES_OUTPUT + + + LINES_REJECTED + Y + LINES_REJECTED + + + ERRORS + Y + ERRORS + + + INPUT_BUFFER_ROWS + Y + INPUT_BUFFER_ROWS + + + OUTPUT_BUFFER_ROWS + Y + OUTPUT_BUFFER_ROWS + + + + + +
+ + + ID_BATCH + Y + ID_BATCH + + + CHANNEL_ID + Y + CHANNEL_ID + + + LOG_DATE + Y + LOG_DATE + + + LOGGING_OBJECT_TYPE + Y + LOGGING_OBJECT_TYPE + + + OBJECT_NAME + Y + OBJECT_NAME + + + OBJECT_COPY + Y + OBJECT_COPY + + + REPOSITORY_DIRECTORY + Y + REPOSITORY_DIRECTORY + + + FILENAME + Y + FILENAME + + + OBJECT_ID + Y + OBJECT_ID + + + OBJECT_REVISION + Y + OBJECT_REVISION + + + PARENT_CHANNEL_ID + Y + PARENT_CHANNEL_ID + + + ROOT_CHANNEL_ID + Y + ROOT_CHANNEL_ID + + + + + +
+ + + ID_BATCH + Y + ID_BATCH + + + CHANNEL_ID + Y + CHANNEL_ID + + + LOG_DATE + Y + LOG_DATE + + + TRANSNAME + Y + TRANSNAME + + + STEPNAME + Y + STEPNAME + + + STEP_COPY + Y + STEP_COPY + + + LINES_READ + Y + LINES_READ + + + LINES_WRITTEN + Y + LINES_WRITTEN + + + LINES_UPDATED + Y + LINES_UPDATED + + + LINES_INPUT + Y + LINES_INPUT + + + LINES_OUTPUT + Y + LINES_OUTPUT + + + LINES_REJECTED + Y + LINES_REJECTED + + + ERRORS + Y + ERRORS + + + LOG_FIELD + N + LOG_FIELD + + + + + +
+ + + ID_BATCH + Y + ID_BATCH + + + CHANNEL_ID + Y + CHANNEL_ID + + + LOG_DATE + Y + LOG_DATE + + + METRICS_DATE + Y + METRICS_DATE + + + METRICS_CODE + Y + METRICS_CODE + + + METRICS_DESCRIPTION + Y + METRICS_DESCRIPTION + + + METRICS_SUBJECT + Y + METRICS_SUBJECT + + + METRICS_TYPE + Y + METRICS_TYPE + + + METRICS_VALUE + Y + METRICS_VALUE + + + + + +
+ + 0.0 + 0.0 + + 10000 + 50 + 50 + N + Y + 50000 + Y + + N + 1000 + 100 + + + + + + + + + - + 2025/07/02 16:00:03.323 + - + 2025/07/02 16:00:03.323 + H4sIAAAAAAAAAAMAAAAAAAAAAAA= + N + + + + + dw bi indoteknik (localhost) + localhost + POSTGRESQL + Native + dw_bi_indoteknik + 5432 + odoo + Encrypted 2be98afc82bdfd8dd9a2ca45acc83f6c3 + + + + + + FORCE_IDENTIFIERS_TO_LOWERCASE + N + + + FORCE_IDENTIFIERS_TO_UPPERCASE + N + + + IS_CLUSTERED + N + + + PORT_NUMBER + 5432 + + + PRESERVE_RESERVED_WORD_CASE + Y + + + QUOTE_ALL_FIELDS + N + + + SUPPORTS_BOOLEAN_DATA_TYPE + Y + + + SUPPORTS_TIMESTAMP_DATA_TYPE + N + + + USE_POOLING + N + + + + + erp indoteknik production (localhost) + 10.148.0.3 + POSTGRESQL + Native + erp_indoteknik + 5432 + pdi + Encrypted 2be989bb20084ca95810197629d9ea18e + + + + + + FORCE_IDENTIFIERS_TO_LOWERCASE + N + + + FORCE_IDENTIFIERS_TO_UPPERCASE + N + + + IS_CLUSTERED + N + + + PORT_NUMBER + 5432 + + + PRESERVE_RESERVED_WORD_CASE + Y + + + QUOTE_ALL_FIELDS + N + + + SUPPORTS_BOOLEAN_DATA_TYPE + Y + + + SUPPORTS_TIMESTAMP_DATA_TYPE + N + + + USE_POOLING + N + + + + + + dead stock + Stream lookup + Y + + + stock quant + Stream lookup + Y + + + Filter rows + Write to log + Y + + + Stream lookup + Filter rows + Y + + + Filter rows + Stream lookup 2 + Y + + + movement + Stream lookup 2 + Y + + + Stream lookup 2 + Filter rows 2 + Y + + + Filter rows 2 + Write to log 2 + Y + + + Filter rows 2 + Select values + Y + + + Select values + param product id + Y + + + Select values + Select values 2 + Y + + + param product id + get last in + Y + + + Select values 2 + Sort rows + Y + + + get last in + Sort rows 2 + Y + + + Sort rows + Merge join + Y + + + Sort rows 2 + Merge join + Y + + + Merge join + Select values 3 + Y + + + Select values 3 + param product id 2 + Y + + + Select values 3 + Select values 4 + Y + + + param product id 2 + avg hpp + Y + + + Select values 4 + Sort rows 3 + Y + + + avg hpp + Sort rows 4 + Y + + + Sort rows 3 + Merge join 2 + Y + + + Sort rows 4 + Merge join 2 + Y + + + Merge join 2 + If field value is null + Y + + + If field value is null + Calculator + Y + + + Calculator + Select values 5 + Y + + + Select values 5 + Insert / update + Y + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + Stream lookup 2 + Write to log + + + N + in_deadstock + IS NULL + + + + + + + + + + + + + 400 + 144 + Y + + + + Filter rows 2 + FilterRows + + Y + + 1 + + none + + + Select values + Write to log 2 + + + N + in_movement + IS NULL + + + + + + + + + + + + + 720 + 144 + Y + + + + Stream lookup + StreamLookup + + Y + + 1 + + none + + + dead stock + N + Y + N + N + + + product_id + product_id + + + product_id + in_deadstock + + Integer + + + + + + + + + + + + 224 + 144 + Y + + + + Stream lookup 2 + StreamLookup + + Y + + 1 + + none + + + movement + N + Y + N + N + + + product_id + product_id + + + product_id + in_movement + + None + + + + + + + + + + + + 560 + 144 + Y + + + + Write to log + WriteToLog + + Y + + 1 + + none + + + log_level_basic + Y + N + 0 + + + + + + + + + + + + + 400 + 224 + Y + + + + Write to log 2 + WriteToLog + + Y + + 1 + + none + + + log_level_basic + Y + N + 0 + + + + + + + + + + + + + 720 + 224 + Y + + + + dead stock + TableInput + + Y + + 1 + + none + + + dw bi indoteknik (localhost) + select distinct product_id from list_deadstock + 0 + + N + N + N + N + + + Integer + normal + product_id + 9 + 0 + Table input + product_id + ####0;-####0 + . + , + + none + N + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + + + + + + + + + + 224 + 48 + Y + + + + movement + TableInput + + Y + + 1 + + none + + + dw bi indoteknik (localhost) + select distinct sm.product_id +from stock_move sm +join stock_location sl on sl.id = sm.location_dest_id +where 1=1 +and sl.name in ('Customers', 'Production') +and sm.state = 'done' +and sm.create_date >= (now() - '180 days'::interval) + 0 + + N + N + N + N + + + Integer + normal + product_id + 9 + 0 + movement + product_id + ####0;-####0 + . + , + + none + N + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + + + + + + + + + + 560 + 48 + Y + + + + stock quant + TableInput + + Y + + 1 + + none + + + erp indoteknik production (localhost) + select sq.product_id, coalesce(pp.default_code, pt.default_code) as item_code, pt.name as product_name, xm.x_name as brand, +sum(quantity) as qty, now()::timestamp as date_added +from stock_quant sq +join stock_location sl on sl.id = sq.location_id +join product_product pp on pp.id = sq.product_id +join product_template pt on pt.id = pp.product_tmpl_id +left join x_manufactures xm on xm.id = pt.x_manufacture +where 1=1 +and sq.location_id in(select id from stock_location where usage = 'internal' and active = true) +and pt.name not ilike '%promotion%' and pt.name not ilike '%asset%mesin%peralatan%' +and pt.name not ilike '%asset%inventaris%' and pt.name not ilike '%asset%kendaraan%' +group by sq.product_id, pp.default_code, pt.default_code, pt.name, xm.x_name +having sum(quantity) > 0 +order by sq.product_id + 0 + + N + N + N + N + + + Integer + normal + product_id + 9 + 0 + stock quant + product_id + ####0;-####0 + . + , + + none + N + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + String + normal + item_code + 2147483647 + -1 + stock quant + item_code + + . + , + + none + N + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + String + normal + product_name + 2147483647 + -1 + stock quant + product_name + + . + , + + none + N + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + String + normal + brand + 2147483647 + -1 + stock quant + brand + + . + , + + none + N + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + Number + normal + qty + -1 + -1 + stock quant + qty + ####0.0#########;-####0.0######### + . + , + + none + N + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + + + + + + + + + + 80 + 144 + Y + + + + Select values + SelectValues + + N + + 1 + + none + + + + + product_id + + + + item_code + + + + product_name + + + + brand + + + + qty + + + + date_added + + + + in_deadstock + + + + in_movement + + + N + + + + + + + + + + + 864 + 144 + Y + + + + param product id + SelectValues + + Y + + 1 + + none + + + + + product_id + + + N + + + + + + + + + + + 864 + 48 + Y + + + + Select values 2 + SelectValues + + Y + + 1 + + none + + + + + product_id + + + + item_code + + + + product_name + + + + brand + + + + qty + + + + date_added + + + + in_deadstock + + + + in_movement + + + N + + + + + + + + + + + 864 + 256 + Y + + + + get last in + TableInput + + Y + + 1 + + none + + + dw bi indoteknik (localhost) + select sm.product_id, sm.create_date as last_in, +(date_part('epoch'::text, age(now()::timestamp, sm.create_date)) / 3600) / 24::numeric as aging +from stock_move sm +join stock_location sl on sl.id = sm.location_dest_id +where 1=1 +and sl.name in ('Input', 'Stock') +and sm.state = 'done' +and sm.product_id = ? +order by sm.create_date desc +limit 1 + 0 + param product id + Y + Y + N + N + + + Integer + normal + product_id + 9 + 0 + get last in + product_id + ####0;-####0 + . + , + + none + N + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + Timestamp + normal + last_in + 6 + -1 + get last in + last_in + + . + , + + none + N + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + Number + normal + aging + -1 + -1 + get last in + aging + ####0.0#########;-####0.0######### + . + , + + none + N + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + + + + + + + + + + 976 + 48 + Y + + + + Sort rows + SortRows + + Y + + 1 + + none + + + %%java.io.tmpdir%% + out + 1000000 + + N + + N + + + product_id + Y + N + N + 0 + N + + + + + + + + + + + + 976 + 144 + Y + + + + Sort rows 2 + SortRows + + Y + + 1 + + none + + + %%java.io.tmpdir%% + out + 1000000 + + N + + N + + + product_id + Y + N + N + 0 + N + + + + + + + + + + + + 1072 + 48 + Y + + + + Merge join + MergeJoin + + Y + + 1 + + none + + + LEFT OUTER + Sort rows + Sort rows 2 + + product_id + + + product_id + + + + + + + + + + + 1072 + 144 + Y + + + + Select values 3 + SelectValues + + N + + 1 + + none + + + + + product_id + + + + item_code + + + + product_name + + + + brand + + + + qty + + + + date_added + + + + in_deadstock + + + + in_movement + + + + product_id_1 + + + + last_in + + + + aging + + + N + + + + + + + + + + + 1216 + 144 + Y + + + + param product id 2 + SelectValues + + Y + + 1 + + none + + + + + product_id + + + N + + + + + + + + + + + 1216 + 256 + Y + + + + Select values 4 + SelectValues + + Y + + 1 + + none + + + + + product_id + + + + item_code + + + + product_name + + + + brand + + + + qty + + + + date_added + + + + in_deadstock + + + + in_movement + + + + product_id_1 + + + + last_in + + + + aging + + + N + + + + + + + + + + + 1072 + 256 + Y + + + + avg hpp + TableInput + + Y + + 1 + + none + + + erp indoteknik production (localhost) + SELECT + pp.id as product_id, + avg(svl.unit_cost) AS last_cost +FROM + stock_valuation_layer svl +JOIN + product_product pp ON svl.product_id = pp.id +JOIN + product_template pt ON pp.product_tmpl_id = pt.id +LEFT JOIN + stock_move sm ON svl.stock_move_id = sm.id +WHERE + svl.unit_cost > 0 and svl.product_id = ? +group by pp.id +order by pp.id + 0 + param product id 2 + Y + Y + N + N + + + Integer + normal + product_id + 9 + 0 + stock quant + product_id + ####0;-####0 + . + , + + none + Y + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + String + normal + item_code + 2147483647 + -1 + stock quant + item_code + + . + , + + none + N + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + String + normal + product_name + 2147483647 + -1 + stock quant + product_name + + . + , + + none + N + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + String + normal + brand + 2147483647 + -1 + stock quant + brand + + . + , + + none + N + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + Number + normal + qty + -1 + -1 + stock quant + qty + ####0.0#########;-####0.0######### + . + , + + none + N + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + Integer + normal + in_deadstock + 9 + 0 + Stream lookup + product_id + ####0;-####0 + . + , + + none + N + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + Integer + normal + in_movement + 9 + 0 + Stream lookup 2 + product_id + ####0;-####0 + . + , + + none + N + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + Integer + normal + product_id_1 + 9 + 0 + Merge join + product_id + ####0;-####0 + . + , + + none + Y + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + Timestamp + normal + last_in + 6 + -1 + get last in + last_in + + . + , + + none + N + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + + + + + + + + + + 1216 + 368 + Y + + + + Sort rows 3 + SortRows + + Y + + 1 + + none + + + %%java.io.tmpdir%% + out + 1000000 + + N + + N + + + + + + + + + + + + 1008 + 336 + Y + + + + Sort rows 4 + SortRows + + Y + + 1 + + none + + + %%java.io.tmpdir%% + out + 1000000 + + N + + N + + + + + + + + + + + + 1120 + 368 + Y + + + + Merge join 2 + MergeJoin + + Y + + 1 + + none + + + LEFT OUTER + Sort rows 3 + Sort rows 4 + + product_id + + + product_id + + + + + + + + + + + 880 + 368 + Y + + + + Select values 5 + SelectValues + + Y + + 1 + + none + + + + + product_id + + + + item_code + + + + product_name + + + + brand + + + + qty + + + + date_added + + + + last_in + + + + aging + + + + last_cost + + + + total_cost + + + N + + + + + + + + + + + 432 + 368 + Y + + + + If field value is null + IfNull + + Y + + 1 + + none + + + 0 + + Y + N + N + + + + + aging + 0 + + N + + + last_cost + 0 + + N + + + + + + + + + + + + 752 + 368 + Y + + + + Calculator + Calculator + + Y + + 1 + + none + + + Y + + total_cost + MULTIPLY + qty + last_cost + + Number + -1 + -1 + N + + + + + + + + + + + + + + + 608 + 368 + Y + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + dw bi indoteknik (localhost) + 100 + N + + public +
list_new_deadstock
+ + product_id + product_id + = + + + + product_id + product_id + N + + + item_code + item_code + Y + + + product_name + product_name + Y + + + brand + brand + Y + + + qty + qty + Y + + + date_added + date_added + Y + + + last_in + last_in + Y + + + aging + aging + Y + + + last_cost + last_cost + Y + + + total_cost + total_cost + Y + + + + + + + + + + + + 288 + 368 + Y + + + + + + + N + +
diff --git a/deadstock_job.kjb b/deadstock_job.kjb new file mode 100644 index 0000000..89ce902 --- /dev/null +++ b/deadstock_job.kjb @@ -0,0 +1,434 @@ + + + deadstock_job + + + + / + - + 2025/07/03 10:53:36.310 + - + 2025/07/03 10:53:36.310 + + + + + + + + + + + + + ID_JOB + Y + ID_JOB + + + CHANNEL_ID + Y + CHANNEL_ID + + + JOBNAME + Y + JOBNAME + + + STATUS + Y + STATUS + + + LINES_READ + Y + LINES_READ + + + LINES_WRITTEN + Y + LINES_WRITTEN + + + LINES_UPDATED + Y + LINES_UPDATED + + + LINES_INPUT + Y + LINES_INPUT + + + LINES_OUTPUT + Y + LINES_OUTPUT + + + LINES_REJECTED + Y + LINES_REJECTED + + + ERRORS + Y + ERRORS + + + STARTDATE + Y + STARTDATE + + + ENDDATE + Y + ENDDATE + + + LOGDATE + Y + LOGDATE + + + DEPDATE + Y + DEPDATE + + + REPLAYDATE + Y + REPLAYDATE + + + LOG_FIELD + Y + LOG_FIELD + + + EXECUTING_SERVER + N + EXECUTING_SERVER + + + EXECUTING_USER + N + EXECUTING_USER + + + START_JOB_ENTRY + N + START_JOB_ENTRY + + + CLIENT + N + CLIENT + + + + + +
+ + + ID_BATCH + Y + ID_BATCH + + + CHANNEL_ID + Y + CHANNEL_ID + + + LOG_DATE + Y + LOG_DATE + + + JOBNAME + Y + TRANSNAME + + + JOBENTRYNAME + Y + STEPNAME + + + LINES_READ + Y + LINES_READ + + + LINES_WRITTEN + Y + LINES_WRITTEN + + + LINES_UPDATED + Y + LINES_UPDATED + + + LINES_INPUT + Y + LINES_INPUT + + + LINES_OUTPUT + Y + LINES_OUTPUT + + + LINES_REJECTED + Y + LINES_REJECTED + + + ERRORS + Y + ERRORS + + + RESULT + Y + RESULT + + + NR_RESULT_ROWS + Y + NR_RESULT_ROWS + + + NR_RESULT_FILES + Y + NR_RESULT_FILES + + + LOG_FIELD + N + LOG_FIELD + + + COPY_NR + N + COPY_NR + + + + + +
+ + + ID_BATCH + Y + ID_BATCH + + + CHANNEL_ID + Y + CHANNEL_ID + + + LOG_DATE + Y + LOG_DATE + + + LOGGING_OBJECT_TYPE + Y + LOGGING_OBJECT_TYPE + + + OBJECT_NAME + Y + OBJECT_NAME + + + OBJECT_COPY + Y + OBJECT_COPY + + + REPOSITORY_DIRECTORY + Y + REPOSITORY_DIRECTORY + + + FILENAME + Y + FILENAME + + + OBJECT_ID + Y + OBJECT_ID + + + OBJECT_REVISION + Y + OBJECT_REVISION + + + PARENT_CHANNEL_ID + Y + PARENT_CHANNEL_ID + + + ROOT_CHANNEL_ID + Y + ROOT_CHANNEL_ID + + + N + + + + update_list_deadstock_opening + + TRANS + + filename + + /home/stephan/transformation-job-bi/update_list_deadstock_opening.ktr + + N + N + N + N + N + N + + + N + N + Basic + N + + N + Y + N + N + N + Pentaho local + N + + Y + + N + Y + 0 + 336 + 96 + + + + Start + + SPECIAL + + Y + N + N + 0 + 0 + 60 + 12 + 0 + 1 + 1 + N + Y + 0 + 144 + 96 + + + + calculate no sales stock + + TRANS + + filename + + /home/stephan/transformation-job-bi/calculate_no_sales_stock.ktr + + N + N + N + N + N + N + + + N + N + Basic + N + + N + Y + N + N + N + Pentaho local + N + + Y + + N + Y + 0 + 576 + 96 + + + + Success + + SUCCESS + + N + Y + 0 + 736 + 96 + + + + + + Start + update_list_deadstock_opening + 0 + 0 + Y + Y + Y + + + update_list_deadstock_opening + calculate no sales stock + 0 + 0 + Y + Y + N + + + calculate no sales stock + Success + 0 + 0 + Y + Y + N + + + + + + diff --git a/run_indoteknik_job.kjb b/run_indoteknik_job.kjb index 311709b..25720c1 100644 --- a/run_indoteknik_job.kjb +++ b/run_indoteknik_job.kjb @@ -431,6 +431,43 @@ 96 + + deadstock job + + JOB + + filename + + /home/stephan/transformation-job-bi/deadstock_job.kjb + + + N + N + N + N + + + N + N + Nothing + + Y + N + N + N + N + Pentaho local + + Y + + N + N + Y + 0 + 736 + 96 + + @@ -462,6 +499,15 @@ import inventory + deadstock job + 0 + 0 + Y + Y + N + + + deadstock job Success 0 0 diff --git a/update_list_deadstock_opening.ktr b/update_list_deadstock_opening.ktr new file mode 100644 index 0000000..354b1d8 --- /dev/null +++ b/update_list_deadstock_opening.ktr @@ -0,0 +1,1172 @@ + + + + update_list_deadstock_opening + + + + Normal + 0 + / + + + + + + +
+ + + + + ID_BATCH + Y + ID_BATCH + + + CHANNEL_ID + Y + CHANNEL_ID + + + TRANSNAME + Y + TRANSNAME + + + STATUS + Y + STATUS + + + LINES_READ + Y + LINES_READ + + + + LINES_WRITTEN + Y + LINES_WRITTEN + + + + LINES_UPDATED + Y + LINES_UPDATED + + + + LINES_INPUT + Y + LINES_INPUT + + + + LINES_OUTPUT + Y + LINES_OUTPUT + + + + LINES_REJECTED + Y + LINES_REJECTED + + + + ERRORS + Y + ERRORS + + + STARTDATE + Y + STARTDATE + + + ENDDATE + Y + ENDDATE + + + LOGDATE + Y + LOGDATE + + + DEPDATE + Y + DEPDATE + + + REPLAYDATE + Y + REPLAYDATE + + + LOG_FIELD + Y + LOG_FIELD + + + EXECUTING_SERVER + N + EXECUTING_SERVER + + + EXECUTING_USER + N + EXECUTING_USER + + + CLIENT + N + CLIENT + + + + + +
+ + + + ID_BATCH + Y + ID_BATCH + + + SEQ_NR + Y + SEQ_NR + + + LOGDATE + Y + LOGDATE + + + TRANSNAME + Y + TRANSNAME + + + STEPNAME + Y + STEPNAME + + + STEP_COPY + Y + STEP_COPY + + + LINES_READ + Y + LINES_READ + + + LINES_WRITTEN + Y + LINES_WRITTEN + + + LINES_UPDATED + Y + LINES_UPDATED + + + LINES_INPUT + Y + LINES_INPUT + + + LINES_OUTPUT + Y + LINES_OUTPUT + + + LINES_REJECTED + Y + LINES_REJECTED + + + ERRORS + Y + ERRORS + + + INPUT_BUFFER_ROWS + Y + INPUT_BUFFER_ROWS + + + OUTPUT_BUFFER_ROWS + Y + OUTPUT_BUFFER_ROWS + + + + + +
+ + + ID_BATCH + Y + ID_BATCH + + + CHANNEL_ID + Y + CHANNEL_ID + + + LOG_DATE + Y + LOG_DATE + + + LOGGING_OBJECT_TYPE + Y + LOGGING_OBJECT_TYPE + + + OBJECT_NAME + Y + OBJECT_NAME + + + OBJECT_COPY + Y + OBJECT_COPY + + + REPOSITORY_DIRECTORY + Y + REPOSITORY_DIRECTORY + + + FILENAME + Y + FILENAME + + + OBJECT_ID + Y + OBJECT_ID + + + OBJECT_REVISION + Y + OBJECT_REVISION + + + PARENT_CHANNEL_ID + Y + PARENT_CHANNEL_ID + + + ROOT_CHANNEL_ID + Y + ROOT_CHANNEL_ID + + + + + +
+ + + ID_BATCH + Y + ID_BATCH + + + CHANNEL_ID + Y + CHANNEL_ID + + + LOG_DATE + Y + LOG_DATE + + + TRANSNAME + Y + TRANSNAME + + + STEPNAME + Y + STEPNAME + + + STEP_COPY + Y + STEP_COPY + + + LINES_READ + Y + LINES_READ + + + LINES_WRITTEN + Y + LINES_WRITTEN + + + LINES_UPDATED + Y + LINES_UPDATED + + + LINES_INPUT + Y + LINES_INPUT + + + LINES_OUTPUT + Y + LINES_OUTPUT + + + LINES_REJECTED + Y + LINES_REJECTED + + + ERRORS + Y + ERRORS + + + LOG_FIELD + N + LOG_FIELD + + + + + +
+ + + ID_BATCH + Y + ID_BATCH + + + CHANNEL_ID + Y + CHANNEL_ID + + + LOG_DATE + Y + LOG_DATE + + + METRICS_DATE + Y + METRICS_DATE + + + METRICS_CODE + Y + METRICS_CODE + + + METRICS_DESCRIPTION + Y + METRICS_DESCRIPTION + + + METRICS_SUBJECT + Y + METRICS_SUBJECT + + + METRICS_TYPE + Y + METRICS_TYPE + + + METRICS_VALUE + Y + METRICS_VALUE + + + + + +
+ + 0.0 + 0.0 + + 10000 + 50 + 50 + N + Y + 50000 + Y + + N + 1000 + 100 + + + + + + + + + - + 2025/07/02 10:54:36.933 + - + 2025/07/02 10:54:36.933 + H4sIAAAAAAAAAAMAAAAAAAAAAAA= + N + + + + + dw bi indoteknik (localhost) + localhost + POSTGRESQL + Native + dw_bi_indoteknik + 5432 + odoo + Encrypted 2be98afc82bdfd8dd9a2ca45acc83f6c3 + + + + + + FORCE_IDENTIFIERS_TO_LOWERCASE + N + + + FORCE_IDENTIFIERS_TO_UPPERCASE + N + + + IS_CLUSTERED + N + + + PORT_NUMBER + 5432 + + + PRESERVE_RESERVED_WORD_CASE + Y + + + QUOTE_ALL_FIELDS + N + + + SUPPORTS_BOOLEAN_DATA_TYPE + Y + + + SUPPORTS_TIMESTAMP_DATA_TYPE + N + + + USE_POOLING + N + + + + + erp indoteknik production (localhost) + 10.148.0.3 + POSTGRESQL + Native + erp_indoteknik + 5432 + pdi + Encrypted 2be989bb20084ca95810197629d9ea18e + + + + + + FORCE_IDENTIFIERS_TO_LOWERCASE + N + + + FORCE_IDENTIFIERS_TO_UPPERCASE + N + + + IS_CLUSTERED + N + + + PORT_NUMBER + 5432 + + + PRESERVE_RESERVED_WORD_CASE + Y + + + QUOTE_ALL_FIELDS + N + + + SUPPORTS_BOOLEAN_DATA_TYPE + Y + + + SUPPORTS_TIMESTAMP_DATA_TYPE + N + + + USE_POOLING + N + + + + + + Table input + Merge join + Y + + + avg hpp + Merge join + Y + + + current qty + Merge join 2 + Y + + + Merge join + Merge join 2 + Y + + + Merge join 2 + If field value is null + Y + + + If field value is null + Calculator + Y + + + Calculator + Update + Y + + + + Calculator + Calculator + + Y + + 1 + + none + + + Y + + new_total_value + MULTIPLY + qty + value + + None + -1 + -1 + N + + + + + + + + + + + + + + + 512 + 304 + Y + + + + If field value is null + IfNull + + Y + + 1 + + none + + + 0 + + Y + N + N + + + + + new_aging + 0 + + N + + + qty + 0 + + N + + + qty_available_current + 0 + + N + + + last_cost + 0 + + N + + + + + + + + + + + + 368 + 304 + Y + + + + Merge join + MergeJoin + + Y + + 1 + + none + + + LEFT OUTER + Table input + avg hpp + + product_id + + + product_id + + + + + + + + + + + 224 + 192 + Y + + + + Merge join 2 + MergeJoin + + Y + + 1 + + none + + + LEFT OUTER + Merge join + current qty + + product_id + + + product_id + + + + + + + + + + + 224 + 304 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + dw bi indoteknik (localhost) + select ld.product_id, 0 as qty_available_current, +(date_part('epoch'::text, age(now()::timestamp, ld.last_in)) / 3600) / 24::numeric as new_aging, +ld.value, b.name as brand, p.parent_category as category +from list_deadstock ld +left join product p on p.product_id = ld.product_id +left join brand b on b.id = p.brand_id +order by product_id + 0 + + N + N + N + N + + + Integer + normal + product_id + 9 + 0 + Table input + product_id + ####0;-####0 + . + , + + none + N + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + Integer + normal + qty_available_current + 9 + 0 + Table input + qty_available_current + ####0;-####0 + . + , + + none + N + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + Number + normal + new_aging + -1 + -1 + Table input + new_aging + ####0.0#########;-####0.0######### + . + , + + none + N + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + BigNumber + normal + value + -1 + -1 + Table input + value + ######0.0###################;-######0.0################### + . + + + none + N + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + String + normal + brand + 2147483647 + -1 + Table input + brand + + . + , + + none + N + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + String + normal + category + 2147483647 + -1 + Table input + category + + . + , + + none + N + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + + + + + + + + + + 224 + 64 + Y + + + + Update + Update + + Y + + 1 + + none + + + dw bi indoteknik (localhost) + N + 100 + N + N + + + public +
list_deadstock
+ + product_id + product_id + = + + + + total_value + new_total_value + + + aging + new_aging + + + qty_available_current + qty + + + brand + brand + + + category + category + + + + + + + + + + + + 640 + 304 + Y + + + + avg hpp + TableInput + + Y + + 1 + + none + + + erp indoteknik production (localhost) + SELECT + pp.id as product_id, + avg(svl.unit_cost) AS last_cost +FROM + stock_valuation_layer svl +JOIN + product_product pp ON svl.product_id = pp.id +JOIN + product_template pt ON pp.product_tmpl_id = pt.id +LEFT JOIN + stock_move sm ON svl.stock_move_id = sm.id +WHERE + svl.unit_cost > 0 +group by pp.id +order by pp.id + 0 + + N + N + N + N + + + Integer + normal + product_id + 9 + 0 + Table input 2 + product_id + ####0;-####0 + . + , + + none + N + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + BigNumber + normal + last_cost + -1 + -1 + Table input 2 + last_cost + ######0.0###################;-######0.0################### + . + + + none + N + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + + + + + + + + + + 400 + 192 + Y + + + + current qty + TableInput + + Y + + 1 + + none + + + erp indoteknik production (localhost) + select sq.product_id, sum(quantity) as qty +from stock_quant sq +join stock_location sl on sl.id = sq.location_id +where sq.location_id in(select id from stock_location where usage = 'internal' and active = true) +group by sq.product_id +order by sq.product_id + 0 + + N + N + N + N + + + Integer + normal + product_id + 9 + 0 + current qty + product_id + ####0;-####0 + . + , + + none + N + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + Number + normal + qty + -1 + -1 + current qty + qty + ####0.0#########;-####0.0######### + . + , + + none + N + Y + 0 + N + N + N + en_US + Asia/Bangkok + N + + + + + + + + + + + + 80 + 304 + Y + + + + + + + N + + -- cgit v1.2.3