| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- <script>
- import ModalBase from './ModalBase.svelte';
- export let visible = false;
- export let onClose = () => {};
- export let state = '';
- export let commodity = '';
- let valorSaca = '';
- let quantidade = '';
- let referencia = 'BRL : 12';
- let validade = '';
- let calendario = '';
- $: total = (Number(valorSaca) || 0) * (Number(quantidade) || 0);
- function confirmar() {
- const dados = { tipo: 'venda', valorSaca: Number(valorSaca)||0, quantidade: Number(quantidade)||0, referencia, total, validade, calendario, estado: state, commodity };
- console.log('BoletaVenda confirmada', dados);
- try { onClose?.(); } catch {}
- }
- function formatBRL(n) { return new Intl.NumberFormat('pt-BR', { style: 'currency', currency: 'BRL' }).format(Number(n||0)); }
- </script>
- <ModalBase title="Boleta de Venda" {visible} {onClose}>
- <div class="space-y-4">
- <div class="grid grid-cols-1 sm:grid-cols-2 gap-4">
- <div>
- <label class="block text-sm font-medium text-gray-700 dark:text-gray-300">Valor/saca</label>
- <input type="number" min="0" step="0.01" bind:value={valorSaca} class="mt-1 block w-full rounded border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700/70 text-gray-900 dark:text-gray-200 px-3 py-2 focus:outline-none focus:ring-2 focus:ring-red-500" />
- </div>
- <div>
- <label class="block text-sm font-medium text-gray-700 dark:text-gray-300">Quantidade em saca</label>
- <input type="number" min="0" step="1" bind:value={quantidade} class="mt-1 block w-full rounded border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700/70 text-gray-900 dark:text-gray-200 px-3 py-2 focus:outline-none focus:ring-2 focus:ring-red-500" />
- </div>
- </div>
- <div class="grid grid-cols-1 sm:grid-cols-2 gap-4">
- <div>
- <label class="block text-sm font-medium text-gray-700 dark:text-gray-300">Referência</label>
- <input type="text" bind:value={referencia} class="mt-1 block w-full rounded border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700/70 text-gray-900 dark:text-gray-200 px-3 py-2 focus:outline-none focus:ring-2 focus:ring-red-500" />
- </div>
- <div>
- <label class="block text-sm font-medium text-gray-700 dark:text-gray-300">Referência valor total</label>
- <input value={formatBRL(total)} readonly class="mt-1 block w-full rounded border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-700/40 text-gray-900 dark:text-gray-200 px-3 py-2" />
- </div>
- </div>
- <div class="grid grid-cols-1 sm:grid-cols-2 gap-4">
- <div>
- <label class="block text-sm font-medium text-gray-700 dark:text-gray-300">Validade</label>
- <input type="date" bind:value={validade} class="mt-1 block w-full rounded border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700/70 text-gray-900 dark:text-gray-200 px-3 py-2 focus:outline-none focus:ring-2 focus:ring-red-500" />
- </div>
- <div>
- <label class="block text-sm font-medium text-gray-700 dark:text-gray-300">Calendário</label>
- <input type="date" bind:value={calendario} class="mt-1 block w-full rounded border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700/70 text-gray-900 dark:text-gray-200 px-3 py-2 focus:outline-none focus:ring-2 focus:ring-red-500" />
- </div>
- </div>
- <div class="grid grid-cols-1 sm:grid-cols-2 gap-4">
- <div>
- <label class="block text-sm font-medium text-gray-700 dark:text-gray-300">Estado</label>
- <input value={state} readonly class="mt-1 block w-full rounded border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-700/40 text-gray-900 dark:text-gray-200 px-3 py-2" />
- </div>
- <div>
- <label class="block text-sm font-medium text-gray-700 dark:text-gray-300">Commodity</label>
- <input value={commodity} readonly class="mt-1 block w-full rounded border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-700/40 text-gray-900 dark:text-gray-200 px-3 py-2" />
- </div>
- </div>
- <div class="flex justify-end">
- <button class="px-4 py-2 rounded bg-red-600 hover:bg-red-700 text-white focus:outline-none focus:ring-2 focus:ring-red-500" on:click={confirmar}>Confirmar Venda</button>
- </div>
- </div>
- </ModalBase>
|