Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ============== TOKOPEDIA
- DECLARE @sql NVARCHAR(MAX) = ''
- DECLARE @dbname NVARCHAR(255)
- DECLARE @mindate NVARCHAR(255) = '2024-08-01'
- -- Cursor to iterate over each database
- DECLARE db_cursor CURSOR FOR
- SELECT name
- FROM sys.databases
- WHERE state_desc = 'ONLINE' AND name NOT IN ('master', 'tempdb', 'model', 'msdb') AND name LIKE 'ERASOFT_%'
- OPEN db_cursor
- FETCH NEXT FROM db_cursor INTO @dbname
- WHILE @@FETCH_STATUS = 0
- BEGIN
- --tidak update batal
- SET @sql = @sql + '
- SELECT
- ''Tidak Update Jadi Batal'' AS TYPE,
- (SELECT Email from MO..Account WHERE DatabasePathErasoft='''+ @dbname +''') AS EMAIL,
- ''' + @dbname + ''' AS DBPATHERA,
- a.TGL AS TGL_WEBHOOK,
- b.TGL_INPUT,
- a.CUST,
- a.SHOPID,
- c.TIDAK_HIT_UANG_R,
- b.NO_BUKTI,
- b.NO_REFERENSI,
- b.STATUS_TRANSAKSI,
- b.PRINT_COUNT,
- a.JSON AS JSON
- FROM [' + @dbname + ']..TABEL_WEBHOOK_TOKPED a(nolock)
- INNER JOIN [' + @dbname + ']..SOT01A b(nolock) ON a.ORDERID=substring(no_referensi,0, charindex('';'',no_referensi)) and a.CUST=b.CUST
- LEFT JOIN [' + @dbname + ']..ARF01 c(nolock) ON a.CUST=c.CUST
- WHERE
- a.tgl >= '''+ @mindate +''' AND
- status_transaksi not in (''11'',''12'') and
- a.ORDER_STATUS in (''0'',''3'',''5'',''6'',''10'',''15'') and b.NO_BUKTI like ''TP%''
- UNION ALL'
- --tidak update selesai
- SET @sql = @sql + '
- SELECT
- ''Tidak Update Jadi Selesai'' AS TYPE,
- (SELECT Email from MO..Account WHERE DatabasePathErasoft='''+ @dbname +''') AS EMAIL,
- ''' + @dbname + ''' AS DBPATHERA,
- a.TGL AS TGL_WEBHOOK,
- b.TGL_INPUT,
- a.CUST,
- a.SHOPID,
- c.TIDAK_HIT_UANG_R,
- b.NO_BUKTI,
- b.NO_REFERENSI,
- b.STATUS_TRANSAKSI,
- b.PRINT_COUNT,
- a.JSON AS JSON
- FROM [' + @dbname + ']..TABEL_WEBHOOK_TOKPED a(nolock)
- INNER JOIN [' + @dbname + ']..SOT01A b(nolock) ON a.ORDERID=substring(no_referensi,0, charindex('';'',no_referensi)) and a.CUST=b.CUST
- LEFT JOIN [' + @dbname + ']..ARF01 c(nolock) ON a.CUST=c.CUST
- WHERE
- a.tgl >= '''+ @mindate +''' AND
- ((ISNULL(al_cust, '''') <> '''' AND status_transaksi <> ''04'') OR (ISNULL(al_cust, '''') = '''' AND status_transaksi <> ''01'')) and
- a.ORDER_STATUS in (''700'',''701'') and b.NO_BUKTI like ''tp%''
- UNION ALL'
- --tidak update siap kirim
- SET @sql = @sql + '
- SELECT
- ''Tidak Update Jadi Siap Kirim'' AS TYPE,
- (SELECT Email from MO..Account WHERE DatabasePathErasoft='''+ @dbname +''') AS EMAIL,
- ''' + @dbname + ''' AS DBPATHERA,
- a.TGL AS TGL_WEBHOOK,
- b.TGL_INPUT,
- a.CUST,
- a.SHOPID,
- c.TIDAK_HIT_UANG_R,
- b.NO_BUKTI,
- b.NO_REFERENSI,
- b.STATUS_TRANSAKSI,
- b.PRINT_COUNT,
- a.JSON AS JSON
- FROM [' + @dbname + ']..TABEL_WEBHOOK_TOKPED a(nolock)
- INNER JOIN [' + @dbname + ']..SOT01A b(nolock) ON a.ORDERID=substring(no_referensi,0, charindex('';'',no_referensi)) and a.CUST=b.CUST
- LEFT JOIN [' + @dbname + ']..ARF01 c(nolock) ON a.CUST=c.CUST
- WHERE
- a.tgl >= '''+ @mindate +''' AND
- isnull(print_count,'''') not in (''1'',''2'') and
- a.ORDER_STATUS in (''400'',''450'') and b.NO_BUKTI like ''tp%''
- UNION ALL'
- --telat masuk (> 30 menit)
- SET @sql = @sql + '
- SELECT
- ''Telat Masuk (> 30 menit)'' AS TYPE,
- (SELECT Email from MO..Account WHERE DatabasePathErasoft='''+ @dbname +''') AS EMAIL,
- ''' + @dbname + ''' AS DBPATHERA,
- a.TGL AS TGL_WEBHOOK,
- b.TGL_INPUT,
- a.CUST,
- a.SHOPID,
- c.TIDAK_HIT_UANG_R,
- b.NO_BUKTI,
- b.NO_REFERENSI,
- b.STATUS_TRANSAKSI,
- b.PRINT_COUNT,
- a.JSON AS JSON
- FROM [' + @dbname + ']..TABEL_WEBHOOK_TOKPED a(nolock)
- INNER JOIN [' + @dbname + ']..SOT01A b(nolock) ON a.ORDERID=substring(no_referensi,0, charindex('';'',no_referensi)) and a.CUST=b.CUST
- LEFT JOIN [' + @dbname + ']..ARF01 c(nolock) ON a.CUST=c.CUST
- WHERE
- a.tgl >= '''+ @mindate +''' AND
- DATEDIFF(MINUTE, a.tgl, b.tgl_input) > 30 AND CAST(b.tgl_input AS DATE) = CAST(GETDATE() AS DATE) and a.ORDER_STATUS=''220''
- UNION ALL'
- --tidak masuk
- SET @sql = @sql + '
- SELECT
- ''Tidak Masuk'' AS TYPE,
- (SELECT Email from MO..Account WHERE DatabasePathErasoft='''+ @dbname +''') AS EMAIL,
- ''' + @dbname + ''' AS DBPATHERA,
- a.TGL AS TGL_WEBHOOK,
- b.TGL_INPUT,
- a.CUST,
- a.SHOPID,
- c.TIDAK_HIT_UANG_R,
- b.NO_BUKTI,
- CAST(a.ORDERID as varchar),
- b.STATUS_TRANSAKSI,
- b.PRINT_COUNT,
- a.JSON AS JSON
- FROM [' + @dbname + ']..TABEL_WEBHOOK_TOKPED a(nolock)
- LEFT JOIN [' + @dbname + ']..SOT01A b(nolock) ON a.ORDERID=substring(no_referensi,0, charindex('';'',no_referensi)) and a.CUST=b.CUST
- LEFT JOIN [' + @dbname + ']..ARF01 c(nolock) ON a.CUST=c.CUST
- WHERE
- a.tgl >= '''+ @mindate +''' AND
- a.ORDER_STATUS=''220'' and b.NO_BUKTI is null
- UNION ALL'
- --dobel
- SET @sql = @sql + '
- SELECT
- ''Dobel'' AS TYPE,
- (SELECT Email from MO..Account WHERE DatabasePathErasoft='''+ @dbname +''') AS EMAIL,
- ''' + @dbname + ''' AS DBPATHERA,
- a.TGL AS TGL_WEBHOOK,
- NULL,
- a.CUST,
- a.SHOPID,
- c.TIDAK_HIT_UANG_R,
- b.DUP_NOBUK,
- CAST(a.ORDERID as varchar),
- b.DUP_ST,
- NULL,
- a.JSON AS JSON
- FROM [' + @dbname + ']..TABEL_WEBHOOK_TOKPED a(nolock)
- INNER JOIN (
- SELECT
- y.CUST, y.NO_REFERENSI, COUNT(*) AS DUP,
- STUFF((SELECT '','' + x1.NO_BUKTI FROM [' + @dbname + ']..SOT01A x1 WHERE x1.NO_REFERENSI = y.NO_REFERENSI FOR XML PATH('''')), 1, 1, '''') AS DUP_NOBUK,
- STUFF((SELECT '','' + x2.STATUS_TRANSAKSI FROM [' + @dbname + ']..SOT01A x2 WHERE x2.NO_REFERENSI = y.NO_REFERENSI FOR XML PATH('''')), 1, 1, '''') AS DUP_ST
- FROM [' + @dbname + ']..SOT01A y (nolock)
- GROUP BY CUST, NO_REFERENSI
- ) b ON a.ORDERID=substring(b.no_referensi,0, charindex('';'',b.no_referensi)) and a.CUST=b.CUST
- LEFT JOIN [' + @dbname + ']..ARF01 c(nolock) ON a.CUST=c.CUST
- WHERE
- a.tgl >= '''+ @mindate +''' AND
- a.ORDER_STATUS=''220'' AND b.DUP > 1
- UNION ALL'
- FETCH NEXT FROM db_cursor INTO @dbname
- END
- -- Remove the last 'UNION ALL'
- SET @sql = LEFT(@sql, LEN(@sql) - 10)
- -- Apply condition as needed
- --SET @sql = CONCAT('WITH RES AS (', @sql, ') SELECT * FROM RES WHERE TIDAK_HIT_UANG_R = ''1''')
- -- Execute the dynamic SQL
- EXEC sp_executesql @sql
- -- Cleanup
- CLOSE db_cursor
- DEALLOCATE db_cursor
- ======= SHOPEE
- DECLARE @sql NVARCHAR(MAX) = ''
- DECLARE @dbname NVARCHAR(255)
- DECLARE @mindate NVARCHAR(255) = '2024-08-01'
- -- Cursor to iterate over each database
- DECLARE db_cursor CURSOR FOR
- SELECT name
- FROM sys.databases
- WHERE state_desc = 'ONLINE' AND name NOT IN ('master', 'tempdb', 'model', 'msdb') AND name LIKE 'ERASOFT_%'
- OPEN db_cursor
- FETCH NEXT FROM db_cursor INTO @dbname
- WHILE @@FETCH_STATUS = 0
- BEGIN
- --tidak update batal
- SET @sql = @sql + '
- SELECT
- ''Tidak Update Jadi Batal'' AS TYPE,
- (SELECT Email from MO..Account WHERE DatabasePathErasoft='''+ @dbname +''') AS EMAIL,
- ''' + @dbname + ''' AS DBPATHERA,
- a.TGL AS TGL_WEBHOOK,
- b.TGL_INPUT,
- a.CUST,
- a.SHOPID,
- c.TIDAK_HIT_UANG_R,
- b.NO_BUKTI,
- b.NO_REFERENSI,
- b.STATUS_TRANSAKSI,
- b.PRINT_COUNT,
- a.JSON AS JSON
- FROM [' + @dbname + ']..TABEL_WEBHOOK_SHOPEE a (nolock)
- INNER JOIN [' + @dbname + ']..SOT01A b(nolock) on a.ORDERID=NO_REFERENSI and a.CUST=b.CUST
- LEFT JOIN [' + @dbname + ']..ARF01 c(nolock) ON a.CUST=c.CUST
- WHERE
- a.tgl >= '''+ @mindate +''' AND
- b.status_transaksi not in (''11'',''12'') AND
- a.ORDER_STATUS in (''CANCELLED'') and b.NO_BUKTI like ''sp%''
- UNION ALL'
- --tidak update selesai
- SET @sql = @sql + '
- SELECT
- ''Tidak Update Jadi Selesai'' AS TYPE,
- (SELECT Email from MO..Account WHERE DatabasePathErasoft='''+ @dbname +''') AS EMAIL,
- ''' + @dbname + ''' AS DBPATHERA,
- a.TGL AS TGL_WEBHOOK,
- b.TGL_INPUT,
- a.CUST,
- a.SHOPID,
- c.TIDAK_HIT_UANG_R,
- b.NO_BUKTI,
- b.NO_REFERENSI,
- b.STATUS_TRANSAKSI,
- b.PRINT_COUNT,
- a.JSON AS JSON
- FROM [' + @dbname + ']..TABEL_WEBHOOK_SHOPEE a(nolock)
- INNER JOIN [' + @dbname + ']..SOT01A b(nolock) on a.ORDERID=NO_REFERENSI and a.CUST=b.CUST
- LEFT JOIN [' + @dbname + ']..ARF01 c(nolock) ON a.CUST=c.CUST
- WHERE
- a.tgl >= '''+ @mindate +''' AND
- ((ISNULL(al_cust, '''') <> '''' AND
- status_transaksi <> ''04'') OR (ISNULL(al_cust, '''') = '''' AND status_transaksi <> ''01'')) and
- a.ORDER_STATUS in (''COMPLETED'') and b.NO_BUKTI like ''sp%''
- UNION ALL'
- --tidak update siap kirim
- SET @sql = @sql + '
- SELECT
- ''Tidak Update Jadi Siap Kirim'' AS TYPE,
- (SELECT Email from MO..Account WHERE DatabasePathErasoft='''+ @dbname +''') AS EMAIL,
- ''' + @dbname + ''' AS DBPATHERA,
- a.TGL AS TGL_WEBHOOK,
- b.TGL_INPUT,
- a.CUST,
- a.SHOPID,
- c.TIDAK_HIT_UANG_R,
- b.NO_BUKTI,
- b.NO_REFERENSI,
- b.STATUS_TRANSAKSI,
- b.PRINT_COUNT,
- a.JSON AS JSON
- FROM [' + @dbname + ']..TABEL_WEBHOOK_SHOPEE a(nolock)
- INNER JOIN [' + @dbname + ']..SOT01A b(nolock) on a.ORDERID=NO_REFERENSI and a.CUST=b.CUST
- LEFT JOIN [' + @dbname + ']..ARF01 c(nolock) ON a.CUST=c.CUST
- WHERE
- a.tgl >= '''+ @mindate +''' AND
- isnull(b.STATUS_TRANSAKSI,'''') in (''0'') AND
- a.ORDER_STATUS in (''READY_TO_SHIP'',''PROCESSED'',''SHIPPED'',''TO_CONFIRM_RECEIVE'',''READY'') and b.NO_BUKTI like ''sp%''
- UNION ALL'
- --tidak update sudah bayar
- SET @sql = @sql + '
- SELECT
- ''Tidak Update Jadi Sudah Bayar'' AS TYPE,
- (SELECT Email from MO..Account WHERE DatabasePathErasoft='''+ @dbname +''') AS EMAIL,
- ''' + @dbname + ''' AS DBPATHERA,
- a.TGL AS TGL_WEBHOOK,
- b.TGL_INPUT,
- a.CUST,
- a.SHOPID,
- c.TIDAK_HIT_UANG_R,
- b.NO_BUKTI,
- b.NO_REFERENSI,
- b.STATUS_TRANSAKSI,
- b.PRINT_COUNT,
- a.JSON AS JSON
- FROM [' + @dbname + ']..TABEL_WEBHOOK_SHOPEE a(nolock)
- INNER JOIN [' + @dbname + ']..SOT01A b(nolock) on a.ORDERID=NO_REFERENSI and a.CUST=b.CUST
- LEFT JOIN [' + @dbname + ']..ARF01 c(nolock) ON a.CUST=c.CUST
- WHERE
- a.tgl >= '''+ @mindate +''' AND
- isnull(STATUS_TRANSAKSI,'''') in (''0'') and
- a.ORDER_STATUS in (''READY_TO_SHIP'',''PROCESSED'',''SHIPPED'',''TO_CONFIRM_RECEIVE'',''READY'') and b.NO_BUKTI like ''sp%''
- UNION ALL'
- --tidak masuk
- SET @sql = @sql + '
- SELECT
- ''Tidak Masuk'' AS TYPE,
- (SELECT Email from MO..Account WHERE DatabasePathErasoft='''+ @dbname +''') AS EMAIL,
- ''' + @dbname + ''' AS DBPATHERA,
- a.TGL AS TGL_WEBHOOK,
- b.TGL_INPUT,
- a.CUST,
- a.SHOPID,
- c.TIDAK_HIT_UANG_R,
- b.NO_BUKTI,
- a.ORDERID,
- b.STATUS_TRANSAKSI,
- b.PRINT_COUNT,
- a.JSON AS JSON
- FROM [' + @dbname + ']..TABEL_WEBHOOK_SHOPEE a(nolock)
- LEFT JOIN [' + @dbname + ']..SOT01A b(nolock) ON a.ORDERID=b.NO_REFERENSI and a.CUST=b.CUST
- LEFT JOIN [' + @dbname + ']..ARF01 c(nolock) ON a.CUST=c.CUST
- WHERE
- a.tgl >= '''+ @mindate +''' AND
- a.ORDER_STATUS=''UNPAID'' and b.NO_BUKTI is null
- UNION ALL'
- --telat masuk (> 30 menit)
- SET @sql = @sql + '
- SELECT
- ''Telat Masuk (> 30 menit)'' AS TYPE,
- (SELECT Email from MO..Account WHERE DatabasePathErasoft='''+ @dbname +''') AS EMAIL,
- ''' + @dbname + ''' AS DBPATHERA,
- a.TGL AS TGL_WEBHOOK,
- b.TGL_INPUT,
- a.CUST,
- a.SHOPID,
- c.TIDAK_HIT_UANG_R,
- b.NO_BUKTI,
- a.ORDERID,
- b.STATUS_TRANSAKSI,
- b.PRINT_COUNT,
- a.JSON AS JSON
- FROM [' + @dbname + ']..TABEL_WEBHOOK_SHOPEE a(nolock)
- INNER JOIN [' + @dbname + ']..SOT01A b(nolock) ON a.ORDERID=b.NO_REFERENSI and a.CUST=b.CUST
- LEFT JOIN [' + @dbname + ']..ARF01 c(nolock) ON a.CUST=c.CUST
- WHERE
- a.tgl >= '''+ @mindate +''' AND
- DATEDIFF(MINUTE, a.tgl, b.tgl_input) > 30 AND CAST(b.tgl_input AS DATE) = CAST(GETDATE() AS DATE) and a.ORDER_STATUS=''UNPAID''
- UNION ALL'
- --dobel
- SET @sql = @sql + '
- SELECT
- ''Dobel'' AS TYPE,
- (SELECT Email from MO..Account WHERE DatabasePathErasoft='''+ @dbname +''') AS EMAIL,
- ''' + @dbname + ''' AS DBPATHERA,
- a.TGL AS TGL_WEBHOOK,
- NULL,
- a.CUST,
- a.SHOPID,
- c.TIDAK_HIT_UANG_R,
- b.DUP_NOBUK,
- a.ORDERID,
- b.DUP_ST,
- NULL,
- a.JSON AS JSON
- FROM [' + @dbname + ']..TABEL_WEBHOOK_SHOPEE a(nolock)
- INNER JOIN (
- SELECT
- y.CUST, y.NO_REFERENSI, COUNT(*) AS DUP,
- STUFF((SELECT '','' + x1.NO_BUKTI FROM [' + @dbname + ']..SOT01A x1 WHERE x1.NO_REFERENSI = y.NO_REFERENSI FOR XML PATH('''')), 1, 1, '''') AS DUP_NOBUK,
- STUFF((SELECT '','' + x2.STATUS_TRANSAKSI FROM [' + @dbname + ']..SOT01A x2 WHERE x2.NO_REFERENSI = y.NO_REFERENSI FOR XML PATH('''')), 1, 1, '''') AS DUP_ST
- FROM [' + @dbname + ']..SOT01A y (nolock)
- GROUP BY CUST, NO_REFERENSI
- ) b ON a.ORDERID=b.NO_REFERENSI and a.CUST=b.CUST
- LEFT JOIN [' + @dbname + ']..ARF01 c(nolock) ON a.CUST=c.CUST
- WHERE
- a.tgl >= '''+ @mindate +''' AND
- a.ORDER_STATUS=''UNPAID'' AND b.DUP > 1
- UNION ALL'
- FETCH NEXT FROM db_cursor INTO @dbname
- END
- -- Remove the last 'UNION ALL'
- SET @sql = LEFT(@sql, LEN(@sql) - 10)
- -- Apply condition as needed
- --SET @sql = CONCAT('WITH RES AS (', @sql, ') SELECT * FROM RES WHERE TIDAK_HIT_UANG_R = ''1''')
- -- Execute the dynamic SQL
- EXEC sp_executesql @sql
- -- Cleanup
- CLOSE db_cursor
- DEALLOCATE db_cursor
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement