{"versao":1,"botoes":[{"codigo":"update-pis-monofasicos-auto-pecas","nome":"UPDATE PIS MONOFASICOS AUTO PECAS","descricao":"","categoria":"Produtos","sql":"/*\r\n ATUALIZAÇÃO DEFINITIVA - PIS MONOFÁSICOS / AUTOPEÇAS\r\n\r\n ATENÇÃO:\r\n - A CST é gravada como texto, preservando zeros à esquerda.\r\n - Exemplo: CST 04 será gravada como '04'.\r\n - O NCM pode ter 4, 6 ou 8 dígitos.\r\n - A comparação ignora pontuação do codigo_fiscal.\r\n - NCMs com conflito de regras diferentes não são atualizados\r\n   automaticamente, para evitar gravar uma natureza incorreta.\r\n*/\r\n\r\nBEGIN;\r\n\r\nWITH lista_ncm(ncm_planilha, cst, nat_receita) AS (\r\n    VALUES\r\n        ('4011', '04', '304'),\r\n        ('4013', '04', '304'),\r\n        ('40161010', '04', '302'),\r\n        ('40169990', '04', '302'),\r\n        ('70071100', '04', '302'),\r\n        ('70072100', '04', '302'),\r\n        ('70091000', '04', '302'),\r\n        ('7309', '04', '301'),\r\n        ('731029', '04', '301'),\r\n        ('73201000', '04', '302'),\r\n        ('76129012', '04', '301'),\r\n        ('83012000', '04', '302'),\r\n        ('83023000', '04', '302'),\r\n        ('8429', '04', '301'),\r\n        ('8429', '04', '302'),\r\n        ('8432', '04', '301'),\r\n        ('8433', '04', '301'),\r\n        ('8434', '04', '301'),\r\n        ('8435', '04', '301'),\r\n        ('8436', '04', '301'),\r\n        ('8437', '04', '301'),\r\n        ('84073390', '04', '302'),\r\n        ('84073490', '04', '302'),\r\n        ('840820', '04', '302'),\r\n        ('840991', '04', '302'),\r\n        ('840999', '04', '302'),\r\n        ('841330', '04', '302'),\r\n        ('84139100', '04', '302'),\r\n        ('84148021', '04', '302'),\r\n        ('84148022', '04', '302'),\r\n        ('84149039', '04', '302'),\r\n        ('841520', '04', '302'),\r\n        ('84212300', '04', '302'),\r\n        ('84213100', '04', '302'),\r\n        ('842481', '04', '301'),\r\n        ('84306990', '04', '301'),\r\n        ('84314100', '04', '302'),\r\n        ('84314200', '04', '302'),\r\n        ('84314300', '04', '302'),\r\n        ('84324000', '04', '302'),\r\n        ('84328000', '04', '302'),\r\n        ('843320', '04', '302'),\r\n        ('84333000', '04', '302'),\r\n        ('84334000', '04', '302'),\r\n        ('84335', '04', '302'),\r\n        ('84339090', '04', '302'),\r\n        ('84818099', '04', '302'),\r\n        ('848310', '04', '302'),\r\n        ('84832000', '04', '302'),\r\n        ('848330', '04', '302'),\r\n        ('848340', '04', '302'),\r\n        ('848350', '04', '302'),\r\n        ('84836010', '04', '302'),\r\n        ('84839000', '04', '302'),\r\n        ('84841000', '04', '302'),\r\n        ('8511', '04', '302'),\r\n        ('85012000', '04', '302'),\r\n        ('850520', '04', '302'),\r\n        ('85071000', '04', '302'),\r\n        ('851220', '04', '302'),\r\n        ('85123000', '04', '302'),\r\n        ('85124000', '04', '302'),\r\n        ('85129000', '04', '302'),\r\n        ('852728', '04', '302'),\r\n        ('85365090', '04', '302'),\r\n        ('853910', '04', '302'),\r\n        ('85443000', '04', '302'),\r\n        ('8701', '04', '302'),\r\n        ('8702', '04', '301'),\r\n        ('8703', '04', '302'),\r\n        ('8703', '04', '301'),\r\n        ('8704', '04', '302'),\r\n        ('8705', '04', '302'),\r\n        ('8706', '04', '302'),\r\n        ('8707', '04', '302'),\r\n        ('8708', '04', '302'),\r\n        ('87012000', '04', '302'),\r\n        ('87060000', '04', '302'),\r\n        ('87162000', '04', '301'),\r\n        ('90292010', '04', '302'),\r\n        ('90299010', '04', '302'),\r\n        ('90303921', '04', '302'),\r\n        ('90318040', '04', '302'),\r\n        ('9032892', '04', '302'),\r\n        ('91040000', '04', '302'),\r\n        ('94012000', '04', '302')\r\n),\r\ncorrespondencias AS (\r\n    SELECT\r\n        c.matricula,\r\n        regexp_replace(c.codigo_fiscal::text, '[^0-9]', '', 'g') AS codigo_fiscal_limpo,\r\n        l.ncm_planilha,\r\n        l.cst,\r\n        l.nat_receita,\r\n        length(l.ncm_planilha) AS tamanho_ncm\r\n    FROM public.cadpro c\r\n    JOIN lista_ncm l\r\n      ON LEFT(\r\n           regexp_replace(c.codigo_fiscal::text, '[^0-9]', '', 'g'),\r\n           length(l.ncm_planilha)\r\n         ) = l.ncm_planilha\r\n),\r\ncom_maior AS (\r\n    SELECT\r\n        x.*,\r\n        MAX(x.tamanho_ncm) OVER (\r\n            PARTITION BY x.matricula\r\n        ) AS maior_tamanho_aplicavel\r\n    FROM correspondencias x\r\n),\r\nclassificadas AS (\r\n    SELECT\r\n        m.*,\r\n        COUNT(*) FILTER (\r\n            WHERE m.tamanho_ncm = m.maior_tamanho_aplicavel\r\n        ) OVER (\r\n            PARTITION BY m.matricula\r\n        ) AS qtd_regras_no_maior_tamanho\r\n    FROM com_maior m\r\n)\r\nUPDATE public.estsal e\r\nSET\r\n    cst_pis_saida = p.cst,\r\n    nat_receita_pis = p.nat_receita\r\nFROM classificadas p\r\nWHERE e.matricula = p.matricula\r\n  AND p.tamanho_ncm = p.maior_tamanho_aplicavel\r\n  AND p.qtd_regras_no_maior_tamanho = 1;","atualizado_em":"2026-09-16T11:52:38.7450138-03:00","confirmar":true,"visivel_para_consulta":true,"ativo":true,"removido":false,"origem":"CALLCENTERM"}]}