{"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.filial = {FILIAL}\r\n  AND (e.matricula = p.matricula\r\n  AND p.tamanho_ncm = p.maior_tamanho_aplicavel\r\n  AND p.qtd_regras_no_maior_tamanho = 1)\r\n;","atualizado_em":"2026-09-17T13:53:51.997608Z","confirmar":true,"visivel_para_consulta":true,"ativo":true,"removido":false,"origem":"CALLCENTERM"},{"codigo":"acerta-erro-150-sped-fiscal","nome":"Acerta erro 150 Sped Fiscal","descricao":"(Precisa Alterar Cod. Cliente)","categoria":"Clientes","sql":"update cadnot set \r\ncnpj_entrega=cpf,\r\nrazao_entrega=nome,\r\nendereco_entrega=endereco,\r\nbairro_entrega=bairro,\r\nuf_entrega=estado,\r\ncep_entrega=cep\r\nWHERE cadnot.filial = {FILIAL}\r\n  AND (cliente= '1'\r\nand cadnot.dtemissao>='2025-12-01')","atualizado_em":"2026-09-17T11:35:36.9887352-03:00","confirmar":false,"visivel_para_consulta":false,"ativo":true,"removido":false,"origem":"CALLCENTERM"},{"codigo":"acerto-ncms-monofasicos-auto-pecas-simples","nome":"ACERTO NCMS MONOFASICOS AUTO PECAS - SIMPLES","descricao":"ACERTO NCMS MONOFASICOS AUTO PECAS - SIMPLES","categoria":"Outros","sql":"/* ============================================================================\r\n   PIS MONOFÁSICOS / AUTOPEÇAS - SCRIPT ÚNICO\r\n   Arquivo: PIS_MONOFASICOS_AUTO_PECAS_UNICO.sql\r\n   ----------------------------------------------------------------------------\r\n   Executa em sequência:\r\n     [1] RESET    - CST '99' / natureza '' (string vazia)\r\n     [2] CONFERÊNCIA PÓS-RESET\r\n     [3] UPDATE   - CST '04' / natureza 301, 302, 304\r\n     [4] CONFERÊNCIA FINAL\r\n\r\n   Observações:\r\n     - São 2 transações independentes (reset e update).\r\n     - Se o update falhar, o reset já está gravado.\r\n     - A coluna nat_receita_pis é NOT NULL, por isso usamos '' no reset.\r\n     - Faça backup de estsal antes de rodar.\r\n     - Rode em horário de baixo movimento em produção.\r\n   ============================================================================ */\r\n\r\n\r\n/* ============================================================================\r\n   [1] RESET - CST = '99' / NATUREZA = '' (string vazia)\r\n   ============================================================================ */\r\n\r\nBEGIN;\r\n\r\nWITH alvos AS (\r\n    SELECT e.matricula\r\n    FROM public.estsal e\r\n    JOIN public.cadpro c\r\n      ON c.matricula = e.matricula\r\n    WHERE c.codigo_fiscal IS NOT NULL\r\n      AND regexp_replace(c.codigo_fiscal::text, '[^0-9]', '', 'g') <> ''\r\n)\r\nUPDATE public.estsal e\r\nSET\r\n    cst_pis_saida   = '99',\r\n    nat_receita_pis = ''\r\nFROM alvos a\r\nWHERE e.matricula = a.matricula;\r\n\r\n\r\n\r\n/* ============================================================================\r\n   [2] CONFERÊNCIA PÓS-RESET\r\n   ============================================================================ */\r\n\r\nSELECT 'TOTAL_ESTSAL' AS bloco, COUNT(*) AS qtd FROM public.estsal\r\nUNION ALL\r\nSELECT 'COM_NCM_EM_CADPRO', COUNT(*)\r\nFROM public.estsal e\r\nJOIN public.cadpro c ON c.matricula = e.matricula\r\nWHERE c.codigo_fiscal IS NOT NULL\r\n  AND regexp_replace(c.codigo_fiscal::text, '[^0-9]', '', 'g') <> ''\r\nUNION ALL\r\nSELECT 'CST_99_APOS_RESET', COUNT(*)\r\nFROM public.estsal WHERE cst_pis_saida = '99'\r\nUNION ALL\r\nSELECT 'NAT_RECEITA_VAZIA_APOS_RESET', COUNT(*)\r\nFROM public.estsal WHERE nat_receita_pis = '';\r\n\r\n\r\n/* ============================================================================\r\n   [3] UPDATE - CST '04' / NATUREZA 301, 302, 304\r\n   ============================================================================ */\r\n\r\nBEGIN;\r\n\r\nWITH lista_ncm(ncm_planilha, cst, nat_receita) AS (\r\n    VALUES\r\n        -- 301 - Veículos Automotores e Máquinas Agrícolas\r\n        ('7309','04','301'),('731029','04','301'),('76129012','04','301'),\r\n        ('842481','04','301'),('8432','04','301'),('8433','04','301'),\r\n        ('8434','04','301'),('8435','04','301'),('8436','04','301'),\r\n        ('8437','04','301'),('84306990','04','301'),('87162000','04','301'),\r\n        -- 302 - Autopeças\r\n        ('4009','04','302'),('6813','04','302'),('8429','04','302'),\r\n        ('8431','04','302'),('84335','04','302'),('8511','04','302'),\r\n        ('85272','04','302'),('8701','04','302'),('8702','04','302'),\r\n        ('8703','04','302'),('8704','04','302'),('8705','04','302'),\r\n        ('8706','04','302'),('8707','04','302'),('8708','04','302'),\r\n        ('870600','04','302'),('840820','04','302'),('840991','04','302'),\r\n        ('840999','04','302'),('841330','04','302'),('841520','04','302'),\r\n        ('843320','04','302'),('848310','04','302'),('848330','04','302'),\r\n        ('848340','04','302'),('848350','04','302'),('8483601','04','302'),\r\n        ('850520','04','302'),('851220','04','302'),('851240','04','302'),\r\n        ('853910','04','302'),('9032892','04','302'),('40161010','04','302'),\r\n        ('40169990','04','302'),('70071100','04','302'),('70072100','04','302'),\r\n        ('70091000','04','302'),('73201000','04','302'),('83012000','04','302'),\r\n        ('83023000','04','302'),('84073390','04','302'),('84073490','04','302'),\r\n        ('84089090','04','302'),('84122110','04','302'),('84122190','04','302'),\r\n        ('84123110','04','302'),('84136019','04','302'),('84139100','04','302'),\r\n        ('84148019','04','302'),('84148021','04','302'),('84148022','04','302'),\r\n        ('84149039','04','302'),('84212300','04','302'),('84213100','04','302'),\r\n        ('84314100','04','302'),('84314200','04','302'),('84324000','04','302'),\r\n        ('84328000','04','302'),('84329000','04','302'),('84333000','04','302'),\r\n        ('84334000','04','302'),('84339090','04','302'),('84811000','04','302'),\r\n        ('84812090','04','302'),('84818092','04','302'),('84818099','04','302'),\r\n        ('84832000','04','302'),('85011019','04','302'),('85071000','04','302'),\r\n        ('85123000','04','302'),('85129000','04','302'),('85365090','04','302'),\r\n        ('85443000','04','302'),('87012000','04','302'),('90292010','04','302'),\r\n        ('90299010','04','302'),('90303921','04','302'),('90318040','04','302'),\r\n        ('91040000','04','302'),('94012000','04','302'),\r\n        -- 304 - Pneumáticos\r\n        ('4011','04','304'),('4013','04','304')\r\n),\r\ncorrespondencias AS (\r\n    SELECT\r\n        c.matricula,\r\n        c.codigo_fiscal::text                                    AS codigo_fiscal_original,\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 (PARTITION BY x.matricula) 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\natualizaveis AS (\r\n    SELECT *\r\n    FROM classificadas p\r\n    WHERE p.tamanho_ncm = p.maior_tamanho_aplicavel\r\n      AND p.qtd_regras_no_maior_tamanho = 1\r\n)\r\nUPDATE public.estsal e\r\nSET\r\n    cst_pis_saida   = a.cst,\r\n    nat_receita_pis = a.nat_receita\r\nFROM atualizaveis a\r\nWHERE e.matricula = a.matricula;\r\n\r\n\r\n/* ============================================================================\r\n   [4] CONFERÊNCIA FINAL\r\n   ============================================================================ */\r\n\r\nSELECT\r\n    cst_pis_saida,\r\n    nat_receita_pis,\r\n    COUNT(*) AS qtd\r\nFROM public.estsal\r\nGROUP BY cst_pis_saida, nat_receita_pis\r\nORDER BY cst_pis_saida, nat_receita_pis;","atualizado_em":"2026-09-16T16:06:45.1714587-03:00","confirmar":true,"visivel_para_consulta":true,"ativo":true,"removido":false,"origem":"GERLISMC"}]}