mirror of
https://github.com/melgarafael/DeskcommCRM.git
synced 2026-10-02 09:34:46 +08:00
Nova capacidade "Propostas", desligada por padrão (Configurações › Propostas): - tabelas crm_proposals / crm_proposal_items / modelos de proposta, com RLS por organização, numeração por organização e ano alocada só no envio, versão, e trava de organização nos vínculos (0462–0477, com apêndice no baseline); - o assistente que conversa levanta um briefing universal de sete categorias, pede confirmação e só então rascunha (crm_preparar_proposta + recusa em crm_draft_proposal quando falta categoria ou confirmação); - modelos da empresa: editar, criar, importar PDF/texto, desligar os da plataforma; - editor com "Preencher com a conversa", seções editáveis e prévia fiel do PDF; - envio exige modelo confirmado e preço, salva antes de enviar e manda o PDF pelo WhatsApp da empresa, com a marca dela; - aviso na Central, em destaque na tela e no Radar; LGPD alcança a proposta. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
19 lines
574 B
TypeScript
19 lines
574 B
TypeScript
// lib/propostas/moeda.test.ts
|
|
import { describe, expect, it } from "vitest";
|
|
|
|
import { formatarMoeda } from "./moeda";
|
|
|
|
describe("formatarMoeda", () => {
|
|
it("formata centavos em real", () => {
|
|
expect(formatarMoeda(150000, "BRL")).toBe(
|
|
(150000 / 100).toLocaleString("pt-BR", { style: "currency", currency: "BRL" }),
|
|
);
|
|
});
|
|
|
|
it("formata centavos em outra moeda (D11 — moeda da organização)", () => {
|
|
expect(formatarMoeda(150000, "USD")).toBe(
|
|
(150000 / 100).toLocaleString("pt-BR", { style: "currency", currency: "USD" }),
|
|
);
|
|
});
|
|
});
|