Registro #92: Azure + CI/CD (14–15-oct) — plataforma en balam-paf-staging.azurewebsites.net, pipeline de GitHub Actions por OIDC sin secretos (build verde; la publicación espera el rol Website Contributor que asigna Balam), PostgreSQL 17 B1ms con respaldos de 35 días, Log Analytics, Application Insights, Key Vault y Storage creados (≈32 USD/mes), traspaso de la BD ensayado y pendiente (red de la BD nueva, ventana tras la prueba de Pedro); pendientes para cerrar la Etapa 1. Incluye lo que estaba sin subir: #91 (primer CFDI timbrado desde la plataforma, 1–2 oct), corte de horas del 2-oct con su Excel y generador, manual de usuario, cartas de datos bancarios, reglas de permisos de Claude Code (.claude/settings.json) y start-n8n.bat
@@ -0,0 +1,616 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="es">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Manual de usuario — Plataforma de Automatización Financiera · Balam</title>
|
||||
<style>
|
||||
@font-face{ font-family:"Caladea"; font-style:normal; font-weight:400; src:url("fonts/Caladea-Regular.ttf") format("truetype"); }
|
||||
@font-face{ font-family:"Caladea"; font-style:normal; font-weight:700; src:url("fonts/Caladea-Bold.ttf") format("truetype"); }
|
||||
@font-face{ font-family:"Caladea"; font-style:italic; font-weight:400; src:url("fonts/Caladea-Italic.ttf") format("truetype"); }
|
||||
@font-face{ font-family:"Caladea"; font-style:italic; font-weight:700; src:url("fonts/Caladea-BoldItalic.ttf") format("truetype"); }
|
||||
@font-face{ font-family:"Carlito"; font-style:normal; font-weight:400; src:url("fonts/Carlito-Regular.ttf") format("truetype"); }
|
||||
@font-face{ font-family:"Carlito"; font-style:normal; font-weight:700; src:url("fonts/Carlito-Bold.ttf") format("truetype"); }
|
||||
@font-face{ font-family:"Carlito"; font-style:italic; font-weight:400; src:url("fonts/Carlito-Italic.ttf") format("truetype"); }
|
||||
@font-face{ font-family:"Carlito"; font-style:italic; font-weight:700; src:url("fonts/Carlito-BoldItalic.ttf") format("truetype"); }
|
||||
@font-face{ font-family:"DejaVu Sans Mono"; font-style:normal; font-weight:400; src:url("fonts/DejaVuSansMono.ttf") format("truetype"); }
|
||||
|
||||
:root{
|
||||
--ink:#1C2B39; /* deep slate navy — headings, dark fields */
|
||||
--ink-2:#3C4A57; /* body text */
|
||||
--muted:#6E7A86; /* meta, captions */
|
||||
--hair:#E4E8EC; /* hairlines */
|
||||
--hair-2:#C9D1D8; /* stronger hairlines */
|
||||
--accent:#BC5B3E; /* terracotta accent */
|
||||
--accent-d:#9A4530; /* darker terracotta for small text */
|
||||
--accent-tint:#FBF1EC;/* pale terracotta wash */
|
||||
--cream:#F8F5F0; /* warm panel */
|
||||
--paper:#FFFFFF;
|
||||
--ok:#2E7D5B;
|
||||
--warn:#C0892E;
|
||||
--no:#B23A48;
|
||||
--serif:'Caladea','Bitstream Charter','DejaVu Serif',Georgia,serif;
|
||||
--sans:'Carlito','DejaVu Sans','Noto Sans',system-ui,sans-serif;
|
||||
--mono:'DejaVu Sans Mono','Liberation Mono',monospace;
|
||||
}
|
||||
|
||||
*{ -webkit-print-color-adjust:exact; print-color-adjust:exact; box-sizing:border-box; }
|
||||
html,body{ margin:0; padding:0; }
|
||||
body{
|
||||
font-family:var(--sans);
|
||||
font-size:10.25pt;
|
||||
line-height:1.55;
|
||||
color:var(--ink-2);
|
||||
background:var(--paper);
|
||||
-webkit-font-smoothing:antialiased;
|
||||
}
|
||||
|
||||
@page{ size:Letter; margin:15mm 16mm 18mm 16mm; }
|
||||
@page :first{ margin:0; }
|
||||
|
||||
p{ margin:6pt 0; }
|
||||
strong,b{ font-weight:700; color:var(--ink); }
|
||||
em,i{ font-style:italic; }
|
||||
a{ color:var(--accent-d); text-decoration:none; }
|
||||
|
||||
code{
|
||||
font-family:var(--mono); font-size:8.6pt;
|
||||
background:var(--cream); border:.5pt solid var(--hair);
|
||||
border-radius:3pt; padding:.5pt 3pt; color:var(--ink);
|
||||
}
|
||||
|
||||
ul,ol{ margin:6pt 0; padding-left:17pt; }
|
||||
li{ margin:3pt 0; line-height:1.5; color:var(--ink-2); padding-left:2pt; }
|
||||
li::marker{ color:var(--accent); }
|
||||
ol li::marker{ color:var(--accent-d); font-weight:700; }
|
||||
|
||||
/* ---------------- COVER ---------------- */
|
||||
.cover{
|
||||
width:216mm; min-height:279mm;
|
||||
background:var(--ink);
|
||||
color:#EAEDF0;
|
||||
padding:30mm 26mm 24mm;
|
||||
display:flex; flex-direction:column;
|
||||
position:relative; overflow:hidden;
|
||||
}
|
||||
.cover::after{ /* faint geometric corner motif */
|
||||
content:""; position:absolute; right:-60mm; top:-60mm;
|
||||
width:150mm; height:150mm; border-radius:50%;
|
||||
background:radial-gradient(circle at center, rgba(188,91,62,.18), rgba(188,91,62,0) 70%);
|
||||
}
|
||||
.cover .top{ position:relative; z-index:2; }
|
||||
.cover .rule{ width:46pt; height:3pt; background:var(--accent); margin-bottom:14pt; }
|
||||
.cover .eyebrow{
|
||||
font-family:var(--sans); font-size:10pt; font-weight:700;
|
||||
letter-spacing:.34em; text-transform:uppercase; color:#D89A82;
|
||||
}
|
||||
.cover .mid{ position:relative; z-index:2; margin-top:auto; margin-bottom:auto; padding:18mm 0; }
|
||||
.cover h1{
|
||||
font-family:var(--serif); font-weight:700;
|
||||
font-size:37pt; line-height:1.06; letter-spacing:-.01em;
|
||||
margin:0; color:#FFFFFF; max-width:150mm;
|
||||
}
|
||||
.cover .client{
|
||||
margin-top:16pt; font-family:var(--sans); font-size:12.5pt; color:#C9D1D8;
|
||||
}
|
||||
.cover .client b{ color:var(--accent); font-weight:700; }
|
||||
.cover .meta{ position:relative; z-index:2; }
|
||||
.cover .meta-grid{
|
||||
display:grid; grid-template-columns:34mm 1fr;
|
||||
gap:7pt 14pt; border-top:.6pt solid rgba(255,255,255,.18);
|
||||
padding-top:14pt;
|
||||
}
|
||||
.cover .meta-grid dt{
|
||||
font-family:var(--sans); font-size:7.5pt; font-weight:700;
|
||||
letter-spacing:.12em; text-transform:uppercase; color:#8FA0AD; padding-top:1.5pt;
|
||||
}
|
||||
.cover .meta-grid dd{ margin:0; font-size:9.5pt; color:#DDE3E8; line-height:1.45; }
|
||||
.cover .meta-grid dd .who{ display:block; }
|
||||
.cover .meta-grid dd .who b{ color:#FFFFFF; font-weight:700; }
|
||||
.cover .meta-grid dd .who span{ color:#9FB0BC; }
|
||||
.cover .conf{
|
||||
position:relative; z-index:2; margin-top:18pt;
|
||||
display:flex; justify-content:space-between; align-items:baseline;
|
||||
font-family:var(--sans); font-size:8pt; letter-spacing:.06em;
|
||||
text-transform:uppercase; color:#7C8B97;
|
||||
border-top:.6pt solid rgba(255,255,255,.12); padding-top:10pt;
|
||||
}
|
||||
.cover .conf .badge{ color:var(--accent); font-weight:700; }
|
||||
|
||||
/* ---------------- TOC ---------------- */
|
||||
.toc{ break-before:page; padding-top:6mm; }
|
||||
.toc h2{
|
||||
font-family:var(--serif); font-size:20pt; color:var(--ink);
|
||||
margin:0 0 2pt; font-weight:700;
|
||||
}
|
||||
.toc .kick{
|
||||
font-family:var(--sans); font-size:8pt; font-weight:700; letter-spacing:.2em;
|
||||
text-transform:uppercase; color:var(--accent-d); margin-bottom:14pt;
|
||||
}
|
||||
.toc .rule{ width:46pt; height:2.5pt; background:var(--accent); margin:6pt 0 16pt; }
|
||||
.toc-row{ display:flex; align-items:baseline; gap:9pt; padding:6.5pt 0; border-bottom:.5pt solid var(--hair); }
|
||||
.toc-row .n{ font-family:var(--serif); font-weight:700; font-size:11pt; color:var(--accent); min-width:24pt; }
|
||||
.toc-row .t{ font-family:var(--serif); font-size:11.5pt; color:var(--ink); }
|
||||
.toc-row.section .t{ font-weight:700; }
|
||||
.toc-row .dots{ flex:1; border-bottom:.6pt dotted var(--hair-2); transform:translateY(-3pt); }
|
||||
.toc-row .pg{ font-family:var(--sans); font-size:9.5pt; color:var(--muted); font-variant-numeric:tabular-nums; min-width:14pt; text-align:right; }
|
||||
.toc-row.annex{ margin-top:2pt; }
|
||||
.toc-row.annex .n,.toc-row.annex .t{ color:var(--ink); }
|
||||
.toc-row.annex .n{ color:var(--accent); }
|
||||
|
||||
/* ---------------- CONTENT ---------------- */
|
||||
.content{ break-before:page; }
|
||||
|
||||
.sec{ margin-top:20pt; }
|
||||
.sec:first-child{ margin-top:0; }
|
||||
.sec-head{
|
||||
display:flex; align-items:baseline; gap:14pt;
|
||||
margin:0 0 9pt; padding-bottom:8pt;
|
||||
border-bottom:1.2pt solid var(--ink); break-after:avoid;
|
||||
}
|
||||
.sec-head.no-num{ gap:0; }
|
||||
.sec-num{
|
||||
font-family:var(--serif); font-size:29pt; font-weight:700;
|
||||
color:var(--accent); line-height:.85; letter-spacing:-.02em; min-width:38pt;
|
||||
}
|
||||
.sec-head h2{
|
||||
font-family:var(--serif); font-size:18pt; font-weight:700;
|
||||
color:var(--ink); line-height:1.12; margin:0;
|
||||
}
|
||||
.sec-head .kick{
|
||||
display:block; font-family:var(--sans); font-size:7.5pt; font-weight:700;
|
||||
letter-spacing:.16em; text-transform:uppercase; color:var(--accent-d); margin-bottom:3pt;
|
||||
}
|
||||
|
||||
h3{ font-family:var(--sans); font-size:11.5pt; font-weight:700; color:var(--ink); margin:15pt 0 5pt; break-after:avoid; }
|
||||
h3 .sn{ color:var(--accent-d); font-weight:700; margin-right:7pt; }
|
||||
h4{ font-family:var(--sans); font-size:10pt; font-weight:700; color:var(--ink); margin:12pt 0 4pt; break-after:avoid; }
|
||||
|
||||
.mini-label{
|
||||
font-family:var(--sans); font-size:8pt; font-weight:700; letter-spacing:.1em;
|
||||
text-transform:uppercase; color:var(--accent-d); margin:10pt 0 4pt;
|
||||
}
|
||||
.lede{ font-size:11pt; line-height:1.62; color:var(--ink); }
|
||||
|
||||
/* drop cap for executive summary */
|
||||
.dropcap > p:first-of-type::first-letter{
|
||||
font-family:var(--serif); font-weight:700; color:var(--accent);
|
||||
font-size:38pt; line-height:.82; float:left; padding:2pt 7pt 0 0;
|
||||
}
|
||||
|
||||
/* ETAPA block */
|
||||
.etapa{ margin:16pt 0 5pt; padding-top:9pt; border-top:.8pt solid var(--hair-2); break-after:avoid; }
|
||||
.etapa .et-t{ font-family:var(--serif); font-size:13pt; font-weight:700; color:var(--ink); line-height:1.2; }
|
||||
.etapa .et-meta{ font-family:var(--sans); font-size:8.5pt; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--accent-d); margin-top:3pt; }
|
||||
|
||||
/* nested sub-block: an add-on that belongs to the PRECEDING .etapa, not a phase of its own */
|
||||
.ajuste-anidado{ margin:12pt 0 14pt 10pt; padding:10pt 14pt 11pt; background:var(--cream); border-left:2.5pt solid var(--accent); border-radius:0 5pt 5pt 0; break-inside:avoid; }
|
||||
.ajuste-anidado .aj-kick{ font-family:var(--sans); font-size:7.6pt; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--accent-d); }
|
||||
.ajuste-anidado .aj-t{ font-family:var(--serif); font-size:12pt; font-weight:700; color:var(--ink); line-height:1.2; margin-top:2pt; }
|
||||
.ajuste-anidado .aj-meta{ font-family:var(--sans); font-size:8.5pt; font-weight:700; letter-spacing:.03em; color:var(--muted); margin-top:3pt; }
|
||||
.ajuste-anidado > .aj-body{ margin-top:9pt; }
|
||||
.ajuste-anidado p, .ajuste-anidado ul{ margin:6pt 0; }
|
||||
|
||||
/* ---------------- TABLES ---------------- */
|
||||
table{ width:100%; border-collapse:collapse; margin:10pt 0; font-size:9.2pt; }
|
||||
thead{ display:table-header-group; }
|
||||
th{
|
||||
text-align:left; font-family:var(--sans); font-weight:700; color:var(--ink);
|
||||
font-size:7.8pt; letter-spacing:.045em; text-transform:uppercase;
|
||||
padding:7pt 9pt; border-bottom:1.4pt solid var(--ink); vertical-align:bottom;
|
||||
}
|
||||
td{ padding:6.5pt 9pt; border-bottom:.6pt solid var(--hair); vertical-align:top; color:var(--ink-2); line-height:1.42; }
|
||||
tr{ break-inside:avoid; }
|
||||
td.k{ color:var(--ink); font-weight:600; }
|
||||
.num,th.num{ text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
|
||||
.ctr,th.ctr{ text-align:center; }
|
||||
tr.total td{ font-weight:700; color:var(--ink); background:var(--cream); border-top:1.2pt solid var(--ink); border-bottom:1.2pt solid var(--ink); }
|
||||
tr.sub-total td{ font-weight:700; color:var(--ink); background:var(--accent-tint); border-top:1pt solid var(--accent); }
|
||||
.cov{ font-size:11pt; text-align:center; line-height:1; }
|
||||
table.compact td,table.compact th{ padding:5.5pt 8pt; }
|
||||
|
||||
/* ---------------- CALLOUTS ---------------- */
|
||||
.callout{
|
||||
break-inside:avoid; background:var(--accent-tint);
|
||||
border-left:3pt solid var(--accent); border-radius:0 4pt 4pt 0;
|
||||
padding:9pt 14pt; margin:11pt 0; font-size:9.4pt; line-height:1.5; color:var(--ink-2);
|
||||
}
|
||||
.callout strong,.callout b{ color:var(--accent-d); }
|
||||
.callout.cool{ background:var(--cream); border-left-color:var(--ink); }
|
||||
.callout.cool strong,.callout.cool b{ color:var(--ink); }
|
||||
|
||||
/* ---------------- FLOW CHIPS ---------------- */
|
||||
.flow{
|
||||
break-inside:avoid; display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
|
||||
gap:6pt; margin:14pt 0; padding:14pt 12pt; background:var(--cream); border-radius:7pt;
|
||||
}
|
||||
.chip{
|
||||
font-family:var(--sans); font-weight:600; font-size:9pt; color:var(--ink);
|
||||
background:#fff; border:.7pt solid var(--hair-2); padding:5pt 11pt; border-radius:20pt;
|
||||
box-shadow:0 1pt 2pt rgba(28,43,57,.05);
|
||||
}
|
||||
.chip.accent{ background:var(--accent); color:#fff; border-color:var(--accent); }
|
||||
.arrow{ color:var(--accent); font-weight:700; font-size:11pt; }
|
||||
.aw{ font-family:var(--sans); } /* flechas →/↔ en títulos serif (Caladea no trae el glifo) */
|
||||
.keep{ break-inside:avoid; }
|
||||
|
||||
/* ---------------- SYNTHESIS CARDS ---------------- */
|
||||
.synthesis{ display:grid; grid-template-columns:1fr 1fr; gap:9pt; margin:12pt 0; break-inside:avoid; }
|
||||
.scard{ border:.7pt solid var(--hair); border-top:2.5pt solid var(--accent); border-radius:5pt; padding:9pt 12pt; background:#fff; }
|
||||
.scard .lab{ font-family:var(--sans); font-size:7.3pt; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--accent-d); margin-bottom:3pt; }
|
||||
.scard .big{ font-family:var(--serif); font-size:13pt; font-weight:700; color:var(--ink); line-height:1.15; }
|
||||
.scard .val{ font-size:9pt; color:var(--ink-2); line-height:1.42; }
|
||||
.scard .sm{ font-size:8.2pt; color:var(--muted); margin-top:2pt; }
|
||||
|
||||
/* sign-off */
|
||||
.signoff{ margin-top:24pt; padding-top:14pt; border-top:1.2pt solid var(--ink); break-inside:avoid; }
|
||||
.signoff .nm{ font-family:var(--serif); font-size:14pt; font-weight:700; color:var(--ink); }
|
||||
.signoff .rl{ font-family:var(--sans); font-size:9pt; color:var(--muted); margin-top:2pt; letter-spacing:.03em; }
|
||||
|
||||
hr.div{ border:none; border-top:.6pt solid var(--hair); margin:16pt 0; }
|
||||
.spacer{ height:4pt; }
|
||||
/* ---------------- MANUAL: componentes propios ---------------- */
|
||||
figure{ margin:10pt 0 12pt; break-inside:avoid; }
|
||||
figure img{ display:block; width:84%; margin:0 auto; border:.6pt solid var(--hair-2); border-radius:4pt; }
|
||||
figcaption{ width:84%; margin:4pt auto 0; font-size:8.2pt; color:var(--muted); line-height:1.4; }
|
||||
figure.s img, figure.s figcaption{ width:52%; }
|
||||
.fig-pair figure img, .fig-pair figcaption{ width:100%; }
|
||||
.fig-pair{ display:grid; grid-template-columns:1.52fr 1fr; gap:10pt; align-items:start; margin:10pt 0 12pt; break-inside:avoid; }
|
||||
.fig-pair figure{ margin:0; }
|
||||
.ui{ font-family:var(--sans); font-weight:700; font-size:9pt; color:var(--ink); background:#fff;
|
||||
border:.6pt solid var(--hair-2); border-radius:3pt; padding:0 3.5pt; white-space:nowrap; }
|
||||
.st{ font-family:var(--sans); font-weight:700; font-size:8.6pt; color:var(--ink); background:var(--cream);
|
||||
border-radius:10pt; padding:.5pt 6pt; white-space:nowrap; }
|
||||
.steps{ counter-reset:paso; list-style:none; padding-left:0; margin:8pt 0; }
|
||||
.steps > li{ counter-increment:paso; position:relative; padding:5pt 0 5pt 26pt; margin:0; border-bottom:.5pt solid var(--hair); break-inside:avoid; }
|
||||
.steps > li:last-child{ border-bottom:none; }
|
||||
.steps > li::before{ content:counter(paso); position:absolute; left:0; top:5pt; width:17pt; height:17pt; border-radius:50%;
|
||||
background:var(--ink); color:#fff; font-family:var(--serif); font-weight:700; font-size:9pt; text-align:center; line-height:17pt; }
|
||||
td.msg{ font-family:var(--sans); font-weight:600; color:var(--ink); }
|
||||
.nota{ font-size:8.6pt; color:var(--muted); }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!-- ============ COVER ============ -->
|
||||
<div class="cover">
|
||||
<div class="top">
|
||||
<div class="rule"></div>
|
||||
<div class="eyebrow">Manual de usuario</div>
|
||||
</div>
|
||||
|
||||
<div class="mid">
|
||||
<h1>Plataforma de Automatización Financiera</h1>
|
||||
<div class="client"><b>Balam</b> · facturación y cobranza sobre BIND ERP y Jira</div>
|
||||
</div>
|
||||
|
||||
<div class="meta">
|
||||
<dl class="meta-grid">
|
||||
<dt>Para</dt>
|
||||
<dd>Finanzas, Administración y Dirección de Balam</dd>
|
||||
|
||||
<dt>Preparado por</dt>
|
||||
<dd>Johann Velazquez — Consultor de Software · Monterrey, N.L.</dd>
|
||||
|
||||
<dt>Fecha</dt>
|
||||
<dd>2 de octubre de 2026</dd>
|
||||
|
||||
<dt>Versión</dt>
|
||||
<dd>1.0 — plataforma publicada en https://paputec.mx/balam/ (ambiente provisional mientras se despliega en Azure)</dd>
|
||||
</dl>
|
||||
|
||||
<div class="conf">
|
||||
<span class="badge">Documento confidencial</span>
|
||||
<span>Uso interno de Balam</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ============ TOC ============ -->
|
||||
<div class="toc">
|
||||
<div class="kick">Contenido</div>
|
||||
<h2>Índice</h2>
|
||||
<div class="rule"></div>
|
||||
|
||||
<div class="toc-row section"><span class="n">01</span><span class="t">Antes de empezar</span><span class="dots"></span><span class="pg">{{PG_1}}</span></div>
|
||||
<div class="toc-row section"><span class="n">02</span><span class="t">Consultar cartera, facturas y clientes</span><span class="dots"></span><span class="pg">{{PG_2}}</span></div>
|
||||
<div class="toc-row section"><span class="n">03</span><span class="t">Solicitudes de Jira</span><span class="dots"></span><span class="pg">{{PG_3}}</span></div>
|
||||
<div class="toc-row section"><span class="n">04</span><span class="t">Del ticket a la cotización</span><span class="dots"></span><span class="pg">{{PG_4}}</span></div>
|
||||
<div class="toc-row section"><span class="n">05</span><span class="t">De la cotización a la prefactura</span><span class="dots"></span><span class="pg">{{PG_5}}</span></div>
|
||||
<div class="toc-row section"><span class="n">06</span><span class="t">De la prefactura a la factura (timbrado)</span><span class="dots"></span><span class="pg">{{PG_6}}</span></div>
|
||||
<div class="toc-row section"><span class="n">07</span><span class="t">Reglas que conviene recordar</span><span class="dots"></span><span class="pg">{{PG_7}}</span></div>
|
||||
<div class="toc-row section"><span class="n">08</span><span class="t">Mensajes frecuentes y qué hacer</span><span class="dots"></span><span class="pg">{{PG_8}}</span></div>
|
||||
<div class="toc-row section"><span class="n">09</span><span class="t">Lo que se sigue haciendo en BIND</span><span class="dots"></span><span class="pg">{{PG_9}}</span></div>
|
||||
</div>
|
||||
|
||||
<!-- ============ CONTENT ============ -->
|
||||
<main class="content">
|
||||
|
||||
<!-- ===== 01 ===== -->
|
||||
<section class="sec">
|
||||
<div class="sec-head"><span class="sec-num">01</span><div><span class="kick">Primeros pasos</span><h2>Antes de empezar</h2></div></div>
|
||||
|
||||
<p class="lede">La plataforma junta en un solo lugar los tickets de facturación de Jira, las cotizaciones y facturas de BIND y la cartera por cobrar. BIND sigue siendo el sistema oficial: la plataforma lee de BIND cada 15 minutos y, cuando escribe en él, lo hace siempre con una vista previa y la confirmación de una persona.</p>
|
||||
|
||||
<div class="flow">
|
||||
<span class="chip">Ticket en Jira (FAC)</span><span class="arrow">→</span>
|
||||
<span class="chip">Cotización en BIND</span><span class="arrow">→</span>
|
||||
<span class="chip">Prefactura</span><span class="arrow">→</span>
|
||||
<span class="chip accent">Factura (CFDI)</span>
|
||||
</div>
|
||||
|
||||
<div class="callout"><b>Regla de oro.</b> Nada se crea en BIND sin que una persona vea antes la vista previa (los botones que dicen <i>dry-run</i>) y confirme. El timbrado, que es lo único con efecto fiscal, además pide teclear la palabra <b>TIMBRAR</b>.</div>
|
||||
|
||||
<h3>Cómo entrar</h3>
|
||||
<ol>
|
||||
<li>Abre <b>https://paputec.mx/balam/</b> en el navegador.</li>
|
||||
<li>Teclea tu <span class="ui">Correo</span> y tu <span class="ui">Contraseña</span> y pulsa <span class="ui">Entrar</span>. La primera pantalla es <i>Cuentas por cobrar</i>.</li>
|
||||
</ol>
|
||||
<p>La sesión dura 8 horas; al vencer, la plataforma regresa al inicio de sesión. Cinco intentos fallidos bloquean la cuenta 15 minutos. Los usuarios los da de alta el administrador de la plataforma; no hay registro desde la pantalla.</p>
|
||||
|
||||
<h3>Qué puede hacer cada rol</h3>
|
||||
<table class="compact">
|
||||
<thead><tr><th style="width:26%">Rol</th><th>Puede</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td class="k">Finanzas</td><td>Todo: consultar, cotizar (uno o en lote), generar prefacturas (una o en lote), timbrar, aceptar tickets nuevos, cambiar el modo de la campana y sincronizar con BIND.</td></tr>
|
||||
<tr><td class="k">Administración</td><td>Lo mismo que Finanzas.</td></tr>
|
||||
<tr><td class="k">Dirección</td><td>Consultar todo. No crea documentos en BIND.</td></tr>
|
||||
<tr><td class="k">Operaciones</td><td>Consultar.</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p class="nota">Con un rol de consulta, los botones de escritura avisan, por ejemplo: «Tu rol es de consulta: la prefactura la genera Finanzas o Administración.»</p>
|
||||
|
||||
<h3>El menú y la barra superior</h3>
|
||||
<table class="compact">
|
||||
<thead><tr><th style="width:20%">Grupo</th><th style="width:26%">Pantalla</th><th>Para qué sirve</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td class="k" rowspan="3">Facturación</td><td>Solicitudes (Jira)</td><td>Bandeja de tickets FAC y la etapa en que va cada uno en BIND (§03).</td></tr>
|
||||
<tr><td>Cotizaciones (BIND)</td><td>Todas las cotizaciones de BIND, con o sin ticket, para convertirlas en prefactura (§05).</td></tr>
|
||||
<tr><td>Facturas</td><td>Prefacturas y facturas con filtros, detalle, PDF y timbrado (§02, §06).</td></tr>
|
||||
<tr><td class="k" rowspan="2">Cobranza</td><td>Cuentas por cobrar</td><td>Saldos por cobrar por moneda (§02).</td></tr>
|
||||
<tr><td>Clientes</td><td>Catálogo de clientes sincronizado desde BIND (§02).</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>Los módulos marcados <span class="st">próximamente</span> (Dashboard, Envío al cliente, Pagos y recordatorios y Bitácora) son de la siguiente etapa y todavía no se pueden abrir. En la barra superior, el chip <span class="st">BIND actualizado hace N min</span> dice cuándo fue la última lectura de BIND, y la <b>campana</b> guarda los tickets nuevos de Jira (§04). Abajo del menú, <i>BIND ERP · operativo</i> confirma que la sincronización funciona.</p>
|
||||
<p class="nota">Las capturas de este manual se tomaron en un ambiente de demostración con datos ficticios.</p>
|
||||
</section>
|
||||
|
||||
<!-- ===== 02 ===== -->
|
||||
<section class="sec break">
|
||||
<div class="sec-head"><span class="sec-num">02</span><div><span class="kick">Consulta</span><h2>Consultar cartera, facturas y clientes</h2></div></div>
|
||||
|
||||
<h3>Cuentas por cobrar</h3>
|
||||
<p>Cuentas por cobrar es la pantalla de inicio. Muestra una tarjeta por moneda (MXN y USD): los saldos nunca se suman ni se convierten entre monedas.</p>
|
||||
<table class="compact">
|
||||
<thead><tr><th style="width:26%">Fila</th><th>Qué incluye</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td class="k">Saldo exigible</td><td>Vigente + vencido. No incluye prefacturas sin timbrar.</td></tr>
|
||||
<tr><td class="k">Vigente (n)</td><td>Facturas con saldo que aún no vencen.</td></tr>
|
||||
<tr><td class="k">Vencido (n)</td><td>Facturas con saldo a partir del día siguiente a su vencimiento.</td></tr>
|
||||
<tr><td class="k">Emitidas (n)</td><td>Prefacturas que todavía no se timbran.</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p><span class="ui">Ver vencidas</span> abre <i>Facturas</i> ya filtrado por esa moneda y por el estado Vencida; <span class="ui">Todas</span> abre la lista completa de esa moneda.</p>
|
||||
|
||||
<h3>Facturas</h3>
|
||||
<figure>
|
||||
<img src="img/facturas.jpg" alt="Listado de facturas con filtros">
|
||||
<figcaption>Facturas: búsqueda, filtros por estado, moneda y fechas, y exportación a CSV.</figcaption>
|
||||
</figure>
|
||||
<p>Lista las ventas de BIND, prefacturas y facturas. Puedes buscar por folio, UUID o cliente y filtrar por <i>Estado</i>, <i>Moneda</i> y fechas <i>Desde</i> / <i>Hasta</i>. <span class="ui">Exportar CSV</span> descarga lo que tengas filtrado (hasta 200 filas); Excel lo abre directo.</p>
|
||||
<table class="compact">
|
||||
<thead><tr><th style="width:20%">Estado</th><th>Significa</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td><span class="st">Prefactura</span></td><td>Todavía no tiene UUID (no está timbrada). Una prefactura nunca vence.</td></tr>
|
||||
<tr><td><span class="st">Vigente</span></td><td>Timbrada, con saldo y dentro de plazo.</td></tr>
|
||||
<tr><td><span class="st">Vencida</span></td><td>Con saldo a partir del día siguiente a su vencimiento (hora de México).</td></tr>
|
||||
<tr><td><span class="st">Pagada</span></td><td>BIND la marca pagada, o el saldo llegó a cero con pagos registrados.</td></tr>
|
||||
<tr><td><span class="st">Cancelada</span></td><td>Cancelada en BIND.</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3>Detalle de una factura</h3>
|
||||
<figure>
|
||||
<img src="img/detalle-factura.jpg" alt="Detalle de una prefactura con la tarjeta de timbrado">
|
||||
<figcaption>Detalle de una prefactura: montos, datos del CFDI, PDF y, abajo, la tarjeta para timbrarla (§06).</figcaption>
|
||||
</figure>
|
||||
<p>Al pulsar el folio se abre el detalle con sus <b>Montos</b> (total, abonos, notas de crédito y saldo; en USD también el tipo de cambio de referencia) y sus <b>Fechas y CFDI</b> (emisión, vencimiento, método de pago y UUID). <span class="ui">PDF del CFDI</span> descarga el PDF desde BIND; el XML se consulta en BIND. Si el documento es una prefactura, aparecen además <span class="ui">Ver en BIND</span>, <span class="ui">¿Ya se timbró?</span> (relee la venta en BIND y actualiza el estado al instante) y la tarjeta de timbrado.</p>
|
||||
|
||||
<h3>Clientes</h3>
|
||||
<p>El catálogo de clientes se sincroniza desde BIND. Se busca por nombre o RFC y se exporta a CSV. Un ícono avisa de un <i>posible duplicado</i> cuando dos clientes comparten RFC, y otro abre las facturas de ese cliente.</p>
|
||||
</section>
|
||||
|
||||
<!-- ===== 03 ===== -->
|
||||
<section class="sec break">
|
||||
<div class="sec-head"><span class="sec-num">03</span><div><span class="kick">Facturación</span><h2>Solicitudes de Jira</h2></div></div>
|
||||
|
||||
<figure>
|
||||
<img src="img/bandeja.jpg" alt="Bandeja de solicitudes de Jira">
|
||||
<figcaption>La bandeja: pestañas por estatus de Jira, búsqueda, botones de lote y, a la derecha, la columna BIND con la etapa de cada ticket.</figcaption>
|
||||
</figure>
|
||||
<p>La bandeja muestra los tickets del proyecto FAC: <i>sin ticket, no se factura</i>. Es de solo lectura: la plataforma nunca modifica Jira. Hay una pestaña por cada estatus de Jira presente (Open, En proceso de facturación, En validación, Facturado…), una búsqueda por ticket, cliente o proyecto, y <span class="ui">⟳ Actualizar</span> para volver a leer Jira en ese momento (si no, la lista se refresca cada minuto).</p>
|
||||
|
||||
<h3>La columna BIND</h3>
|
||||
<table class="compact">
|
||||
<thead><tr><th style="width:28%">Indicador</th><th>Qué quiere decir</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td><span class="st">Cotizada 1504</span></td><td>El ticket ya tiene cotización en BIND (folio).</td></tr>
|
||||
<tr><td><span class="st">Prefactura 2003</span></td><td>Ya tiene prefactura; falta timbrarla.</td></tr>
|
||||
<tr><td><span class="st">Facturada 2003</span></td><td>La cadena está completa: ya hay CFDI.</td></tr>
|
||||
<tr><td><span class="st">Lista para revisar</span></td><td>La plataforma ya preparó la cotización; falta que alguien la acepte.</td></tr>
|
||||
<tr><td><span class="st">Faltan datos</span></td><td>No se pudo preparar sola; al pasar el cursor dice qué falta.</td></tr>
|
||||
<tr><td><span class="st">Vista previa pendiente</span></td><td>BIND o Jira no respondieron; la plataforma lo reintenta sola.</td></tr>
|
||||
<tr><td><span class="st">Revisar en BIND</span></td><td>BIND no confirmó si creó la cotización: revísalo allá antes de intentar otra vez.</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3>El detalle del ticket</h3>
|
||||
<p>Al hacer clic en una fila se abre el ticket con sus datos (tipo, cliente, proyecto, moneda, días de crédito, monto estimado, orden de compra), sus adjuntos (el primer PDF se abre solo en el visor), la descripción y la cotización o prefactura vinculadas. Arriba están <span class="ui">Ver en Jira ↗</span> y <b>un solo botón con el paso siguiente</b>:</p>
|
||||
<ul>
|
||||
<li><span class="ui">Crear cotización en BIND →</span> si todavía no tiene cotización (§04).</li>
|
||||
<li><span class="ui">Generar prefactura →</span> si ya tiene cotización (§05).</li>
|
||||
<li><span class="ui">Seguimiento del timbrado →</span> si ya tiene prefactura (§06).</li>
|
||||
</ul>
|
||||
<p>Las casillas de la bandeja solo aparecen en los tickets que se pueden llevar a un lote: los que no tienen cotización van a <span class="ui">Cotizar seleccionados (N) →</span> y los que tienen una cotización activa sin prefactura van a <span class="ui">Prefacturar seleccionados (N) →</span>.</p>
|
||||
</section>
|
||||
|
||||
<!-- ===== 04 ===== -->
|
||||
<section class="sec break">
|
||||
<div class="sec-head"><span class="sec-num">04</span><div><span class="kick">Paso 1 de la cadena</span><h2>Del ticket a la cotización</h2></div></div>
|
||||
|
||||
<h3>El aviso en vivo</h3>
|
||||
<p>Cuando alguien crea un ticket en FAC, Jira avisa a la plataforma en alrededor de un segundo; la plataforma lee el ticket, prepara la cotización en vista previa y, a quien tenga la plataforma abierta, le aparece este aviso:</p>
|
||||
<div class="fig-pair">
|
||||
<figure>
|
||||
<img src="img/modal.jpg" alt="Aviso en vivo de un ticket nuevo">
|
||||
<figcaption>El aviso con la línea de tiempo real (creado en Jira → detectado → vista previa) y los importes de la cotización.</figcaption>
|
||||
</figure>
|
||||
<figure>
|
||||
<img src="img/campana.jpg" alt="Campana con los tickets de Jira y el modo">
|
||||
<figcaption>La campana: tickets de los últimos 7 días y el modo «Pedir confirmación» / «Crear en automático».</figcaption>
|
||||
</figure>
|
||||
</div>
|
||||
<ul>
|
||||
<li><span class="ui">Aceptar y crear cotización</span> crea en BIND exactamente lo que muestra el aviso, una sola vez: dos clics o dos personas a la vez no crean dos cotizaciones.</li>
|
||||
<li><span class="ui">Revisar y editar</span> abre la pantalla de cotización para cambiar algo antes de crearla.</li>
|
||||
<li><span class="ui">Más tarde</span> lo guarda en la campana; <i>Descartar</i> lo quita de pendientes sin tocar BIND.</li>
|
||||
</ul>
|
||||
<p>Si nadie decide en 30 segundos, el aviso se guarda solo en la campana (con el cursor encima la cuenta se pausa). Si al ticket le falta algo, el aviso dice «No se pudo armar la cotización sola» con lo que falta, por ejemplo el cliente o el servicio, y ofrece <span class="ui">Completar en pantalla</span>.</p>
|
||||
<div class="callout cool"><b>Modo de la campana.</b> El modo vigente es <b>Pedir confirmación</b>: la plataforma prepara la cotización y una persona la acepta. <b>Crear en automático</b> crea cotizaciones reales en BIND sin revisión previa; solo lo pueden activar Finanzas o Administración y conviene hacerlo únicamente con la autorización de la Dirección.</div>
|
||||
|
||||
<h3>Cotizar un ticket en pantalla</h3>
|
||||
<p>Desde la bandeja (<span class="ui">Cotizar →</span>), desde el ticket o desde el aviso se abre <i>Generar cotización en BIND</i>, ya prellenada con los datos del ticket:</p>
|
||||
<ol class="steps">
|
||||
<li><b>Cliente de BIND.</b> Jira no trae RFC, así que el cliente se confirma contra el catálogo de BIND; al elegirlo se ven su RFC y sus días de crédito.</li>
|
||||
<li><b>Documento y concepto.</b> Moneda, ubicación, IVA (16 % nacional o 0 % extranjero), el <i>ítem del catálogo BIND</i> (se resuelve solo desde la categoría del ticket; si aparece <span class="st">Sin ítem</span>, elígelo a mano), el concepto (el título del ticket), unidad, cantidad, precio unitario sin IVA y comentarios.</li>
|
||||
<li><b>Vista previa y creación.</b> <span class="ui">Ver vista previa (dry-run)</span> muestra lo que se enviará; después <span class="ui">Crear cotización en BIND →</span> pide confirmar el cliente y el monto. Al terminar aparece «✓ Cotización creada en BIND» con su folio, ya vinculada al ticket.</li>
|
||||
</ol>
|
||||
<p>Cualquier cambio después de la vista previa la invalida y hay que volver a generarla. Si el ticket ya tiene cotización, la pantalla lo dice y ofrece <span class="ui">Continuar a prefactura →</span>: un ticket no se cotiza dos veces.</p>
|
||||
|
||||
<h3>Cotizar varios tickets a la vez</h3>
|
||||
<p>En la bandeja, marca los tickets y pulsa <span class="ui">Cotizar seleccionados (N) →</span>. Se crea una cotización por ticket: revisa cada fila (cliente, ítem, concepto, cantidad, precio, IVA), pulsa <span class="ui">Ver vista previa de todo (N)</span> y luego <span class="ui">Crear N cotización(es) en BIND →</span>, con una sola confirmación. Los tickets que ya tienen cotización se omiten, las filas se crean una tras otra y, si BIND rechaza una, las demás siguen y esa queda en <span class="st">Error</span> con el motivo.</p>
|
||||
</section>
|
||||
|
||||
<!-- ===== 05 ===== -->
|
||||
<section class="sec break">
|
||||
<div class="sec-head"><span class="sec-num">05</span><div><span class="kick">Paso 2 de la cadena</span><h2>De la cotización a la prefactura</h2></div></div>
|
||||
|
||||
<p>La prefactura se genera siempre desde una cotización <b>Activa</b> de BIND. La plataforma la crea entrando a la web de BIND con su propio usuario, porque el API de BIND no permite crear prefacturas. Hay tres caminos: desde <i>Cotizaciones (BIND)</i>, desde el ticket o en lote.</p>
|
||||
|
||||
<h3>Desde Cotizaciones (BIND)</h3>
|
||||
<figure>
|
||||
<img src="img/cotizaciones.jpg" alt="Cotizaciones de BIND con dos marcadas para el lote">
|
||||
<figcaption>Cotizaciones (BIND): el total va en la moneda de cada cotización; las casillas sirven para el lote.</figcaption>
|
||||
</figure>
|
||||
<p>Aquí están todas las cotizaciones de BIND, tengan o no ticket en Jira. El filtro <i>Estado</i> arranca en <span class="st">Activa</span>; <span class="st">Surtida</span> quiere decir que ya generó una venta y <span class="st">Cancelada</span> que se canceló en BIND. Si acabas de crear una cotización en BIND y no aparece, pulsa <span class="ui">Sincronizar ahora</span>. En una fila Activa, <span class="ui">Generar prefactura →</span> abre debajo la tarjeta de prefactura:</p>
|
||||
<ol class="steps">
|
||||
<li><span class="ui">1 · Probar sesión (solo lectura)</span> comprueba que la plataforma puede entrar a BIND. Es opcional.</li>
|
||||
<li><span class="ui">2 · Ver JSON exacto (dry-run)</span> muestra el cliente, las partidas, el subtotal y el <b>folio previsto</b>, más un recuadro «Lo que se asumió al armar el cuerpo — léelo antes de confirmar».</li>
|
||||
<li><span class="ui">3 · Generar prefactura en BIND →</span> pide confirmar y crea la prefactura. El resultado dice «Prefactura (sin timbrar…)» con su folio, y abajo aparece la tarjeta de timbrado (§06).</li>
|
||||
</ol>
|
||||
<p>Si el resultado dice que el API de BIND «aún no la muestra», es normal durante el primer minuto: la prefactura sí se creó. Confírmalo con <span class="ui">¿Ya se timbró? Verificar</span> un minuto después.</p>
|
||||
|
||||
<h3>Desde el ticket: emisión asistida</h3>
|
||||
<p>En un ticket ya cotizado, <span class="ui">Generar prefactura →</span> abre <i>Preparación, aprobación y emisión de CFDI</i> en cinco pasos: confirmar la cotización de BIND, revisar los datos de la factura (método de pago PPD/PUE, uso CFDI), revisar conceptos e IVA, ver el borrador y, en el paso 5, aprobar y generar la prefactura con la misma tarjeta de arriba.</p>
|
||||
<div class="callout"><b>Importante.</b> La prefactura se arma con los datos de la cotización y del cliente <b>en BIND</b>. Los pasos 2 a 4 sirven para revisar, pero lo que se elija ahí no cambia la prefactura. Si algo debe ser distinto, como el método de pago, el uso CFDI o el domicilio, corrígelo en BIND.</div>
|
||||
|
||||
<h3>Varias prefacturas a la vez</h3>
|
||||
<figure>
|
||||
<img src="img/lote-prefacturas.jpg" alt="Prefacturas en lote con vistas previas">
|
||||
<figcaption>Prefacturas en lote: una fila por cotización con su vista previa y sus avisos; se generan con una sola confirmación.</figcaption>
|
||||
</figure>
|
||||
<p>Marca las cotizaciones en <i>Cotizaciones (BIND)</i> y pulsa <span class="ui">Generar prefacturas (N) →</span>, o en la bandeja <span class="ui">Prefacturar seleccionados (N) →</span>. Pulsa <span class="ui">Ver vista previa de todo (N)</span>, lee los avisos de cada fila y después <span class="ui">Generar N prefactura(s) en BIND →</span>. Las prefacturas se generan <b>una tras otra</b>: BIND permite una sola sesión por usuario y el folio de cada una se calcula justo antes de guardarla. Por eso el «folio previsto» puede repetirse en la vista previa; el folio real se asigna al guardar. Una cotización surtida o cancelada se omite y un rechazo no detiene el resto. El timbrado no va en lote: cada fila creada trae su botón <span class="ui">Timbrar →</span>.</p>
|
||||
</section>
|
||||
|
||||
<!-- ===== 06 ===== -->
|
||||
<section class="sec break">
|
||||
<div class="sec-head"><span class="sec-num">06</span><div><span class="kick">Paso 3 de la cadena</span><h2>De la prefactura a la factura (timbrado)</h2></div></div>
|
||||
|
||||
<p>Timbrar es la única acción con efecto fiscal: convierte la prefactura en factura (CFDI), igual que el botón «Emitir CFDI» de BIND. Es el mismo documento, con el mismo folio, que al timbrarse recibe su UUID. La tarjeta <i>Factura (CFDI) desde la prefactura</i> aparece debajo de una prefactura recién creada, en el detalle de cualquier factura en estado Prefactura, en el seguimiento del ticket y en cada fila del lote.</p>
|
||||
<ol class="steps">
|
||||
<li><span class="ui">1 · Ver con qué saldrá el CFDI (dry-run)</span> muestra cliente, RFC, total, método y forma de pago y uso CFDI, más el recuadro «Léelo antes de timbrar — así saldrá el CFDI».</li>
|
||||
<li><span class="ui">2 · Timbrar en BIND (emitir CFDI) →</span> abre un cuadro donde hay que <b>teclear TIMBRAR</b>. Con cualquier otra palabra no se timbra.</li>
|
||||
<li>El resultado es «✓ Timbrada — ya es factura» con su CFDI, y la cadena del ticket queda completa.</li>
|
||||
</ol>
|
||||
<figure>
|
||||
<img src="img/timbrado-vista-previa.jpg" alt="Vista previa del timbrado con avisos">
|
||||
<figcaption>La vista previa del CFDI con sus avisos: método de pago según BIND, forma de pago, uso CFDI y RFC genérico.</figcaption>
|
||||
</figure>
|
||||
<div class="callout"><b>Antes de timbrar, revisa el método de pago.</b> BIND deja las prefacturas en <b>PUE</b> (una sola exhibición). Balam factura a crédito en <b>PPD</b>, y un PUE erróneo ya causó un requerimiento del SAT. Si el cobro no es de contado, cámbialo en BIND antes de confirmar; la vista previa lo avisa. Con RFC genérico (extranjero o público en general), el uso CFDI debe ser S01 y el IVA 0 %.</div>
|
||||
<ul>
|
||||
<li><b>Si BIND rechaza el timbrado</b> (por ejemplo, «El RFC del receptor no se encuentra en la lista de RFC inscritos…»), el documento sigue como prefactura. Corrige en BIND la ficha del cliente y vuelve a intentar.</li>
|
||||
<li><b>Si BIND aceptó pero todavía no se ve el UUID</b>, pulsa <span class="ui">⟳ ¿Ya se timbró en BIND? Verificar</span> en un minuto.</li>
|
||||
<li><b>Deshacer un timbrado es una cancelación ante el SAT</b>, y se hace en BIND.</li>
|
||||
</ul>
|
||||
<figure class="s">
|
||||
<img src="img/cadena-completa.jpg" alt="Cadena completa del ticket con CFDI">
|
||||
<figcaption>Cuando el ticket ya está facturado, la pantalla muestra la cadena completa: ticket, cotización, prefactura y CFDI.</figcaption>
|
||||
</figure>
|
||||
<p class="nota">El timbrado desde la plataforma está publicado desde el 30 de septiembre de 2026. El 2 de octubre de 2026 Balam emitió desde aquí su primer CFDI con la cadena completa: ticket, cotización, prefactura y factura.</p>
|
||||
</section>
|
||||
|
||||
<!-- ===== 07 ===== -->
|
||||
<section class="sec break">
|
||||
<div class="sec-head"><span class="sec-num">07</span><div><span class="kick">Buenas prácticas</span><h2>Reglas que conviene recordar</h2></div></div>
|
||||
|
||||
<p>Estas reglas protegen a Balam de duplicados y de errores fiscales. Casi todas las aplica la plataforma sola; conviene conocerlas para entender sus avisos.</p>
|
||||
<table>
|
||||
<thead><tr><th style="width:30%">Regla</th><th>Por qué y qué hacer</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td class="k">No uses el usuario CTO en el navegador</td><td>La plataforma entra a BIND con su propio usuario (CTO), y BIND solo permite una sesión por usuario. Si alguien entra con él, la plataforma no podrá operar. Para trabajar en BIND a mano, usa tu propio usuario.</td></tr>
|
||||
<tr><td class="k">Bloqueo de 10 minutos</td><td>Después de enviar una prefactura o un timbrado, la misma cotización o prefactura no se vuelve a mandar en 10 minutos. Así se evita un duplicado mientras BIND termina de procesar.</td></tr>
|
||||
<tr><td class="k">«No se sabe si lo creó» = no reintentes</td><td>Si BIND no respondió, la plataforma no reintenta sola. Busca el documento en BIND o pulsa <i>Verificar</i> antes de intentar otra vez.</td></tr>
|
||||
<tr><td class="k">Los lotes van en serie</td><td>Uno tras otro, nunca en paralelo: una sesión de BIND a la vez y folios consecutivos. El timbrado nunca va en lote.</td></tr>
|
||||
<tr><td class="k">IVA 16 % o 0 %</td><td>16 % para clientes nacionales (uso CFDI G03), también en USD; 0 % para extranjeros (uso CFDI S01).</td></tr>
|
||||
<tr><td class="k">MXN y USD no se mezclan</td><td>Cada moneda tiene su tarjeta en la cartera y cada cotización muestra el total en su moneda. El tipo de cambio sale del catálogo de monedas de BIND.</td></tr>
|
||||
<tr><td class="k">PPD por default</td><td>Balam otorga crédito, así que PPD es lo normal. PUE solo si el pago se recibe el mismo día.</td></tr>
|
||||
<tr><td class="k">Categorías sin ítem en BIND</td><td>De las 17 categorías del campo <i>Servicio/Producto</i> de Jira, 10 se resuelven solas. Estas 7 no tienen ítem equivalente en BIND y caen en «Faltan datos»: Gestión de Proyectos Senior / PMO, Mesa de Servicio (SDM), Soporte L1, Soporte L2, Gestión de Incidentes, Gestión de Cambios y Gestión de Capacidad. Elige el ítem a mano hasta que Balam defina su código.</td></tr>
|
||||
<tr><td class="k">Sincronización cada 15 minutos</td><td>Lo que se cree directo en BIND aparece en la siguiente lectura; <i>Sincronizar ahora</i> no espera. La bandeja de Jira se refresca cada minuto o con <i>Actualizar</i>.</td></tr>
|
||||
<tr><td class="k">Folios de cotización repetidos</td><td>En BIND, dos cotizaciones pueden compartir folio. Al buscar una, fíjate también en el cliente y la fecha.</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
|
||||
<!-- ===== 08 ===== -->
|
||||
<section class="sec break">
|
||||
<div class="sec-head"><span class="sec-num">08</span><div><span class="kick">Soporte</span><h2>Mensajes frecuentes y qué hacer</h2></div></div>
|
||||
|
||||
<p>Los mensajes de la plataforma dicen qué pasó y, casi siempre, qué hacer. Estos son los más comunes.</p>
|
||||
<table class="compact">
|
||||
<thead><tr><th style="width:34%">Mensaje</th><th style="width:31%">Qué significa</th><th>Qué hacer</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td class="msg">«BIND aún no muestra la prefactura N por su API…»</td><td>BIND tarda alrededor de un minuto en mostrar lo recién creado.</td><td>Reintenta en un minuto.</td></tr>
|
||||
<tr><td class="msg">«BIND no dejó entrar a la plataforma: … sesión abierta en otro equipo»</td><td>Alguien entró a BIND con el usuario de la plataforma.</td><td>Que esa persona cierre su sesión en BIND; si fue una sesión olvidada, expira sola en unos minutos.</td></tr>
|
||||
<tr><td class="msg">«BIND ya aceptó una prefactura de la cotización N hace M min…»</td><td>Bloqueo de 10 minutos contra duplicados.</td><td>Revisa la prefactura en BIND; no la mandes de nuevo.</td></tr>
|
||||
<tr><td class="msg">«BIND no respondió al guardar… No se sabe si creó la prefactura»</td><td>No hubo respuesta de BIND.</td><td>Búscala en BIND antes de reintentar.</td></tr>
|
||||
<tr><td class="msg">«La cotización N ya está surtida en BIND…»</td><td>Esa cotización ya generó una venta.</td><td>Abre la prefactura que ya existe; no se genera otra.</td></tr>
|
||||
<tr><td class="msg">«BIND rechazó el timbrado (500): CFDI40: …»</td><td>El SAT o el PAC rechazó algún dato del receptor.</td><td>Corrige la ficha del cliente en BIND (RFC, régimen, código postal) y vuelve a timbrar.</td></tr>
|
||||
<tr><td class="msg">«No se timbró: la confirmación debe ser la palabra TIMBRAR.»</td><td>Se tecleó otra cosa en la confirmación.</td><td>Repite y escribe TIMBRAR.</td></tr>
|
||||
<tr><td class="msg">«Faltan datos» · «servicio (… esa categoría no tiene ítem…)»</td><td>La categoría del ticket no tiene ítem en BIND.</td><td><i>Completar en pantalla</i> y elige el ítem a mano.</td></tr>
|
||||
<tr><td class="msg">«Tu rol es de consulta…»</td><td>Tu usuario no tiene permiso de escritura.</td><td>Pídeselo a Finanzas o Administración.</td></tr>
|
||||
<tr><td class="msg">«Correo o contraseña incorrectos.»</td><td>Datos equivocados, o cuenta bloqueada tras 5 intentos.</td><td>Espera 15 minutos o pide que restablezcan tu contraseña.</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
|
||||
<!-- ===== 09 ===== -->
|
||||
<section class="sec break">
|
||||
<div class="sec-head"><span class="sec-num">09</span><div><span class="kick">Alcance</span><h2>Lo que se sigue haciendo en BIND</h2></div></div>
|
||||
|
||||
<p>Hay tareas que siguen haciéndose en BIND, a propósito, porque ahí se corrigen los datos fiscales:</p>
|
||||
<ul>
|
||||
<li>Editar una prefactura: método o forma de pago, uso CFDI y domicilio del cliente.</li>
|
||||
<li>Cancelar un CFDI ante el SAT (motivo 02, «sin relación»).</li>
|
||||
<li>Enviar la factura al cliente por correo.</li>
|
||||
<li>Descargar el XML del CFDI.</li>
|
||||
</ul>
|
||||
<p>Los módulos marcados <span class="st">próximamente</span> llegan en la siguiente etapa: Dashboard, Envío al cliente, Pagos y recordatorios, Bitácora, la antigüedad de cartera por rangos de 30, 60 y 90 días, las alertas internas y el reporte operativo.</p>
|
||||
|
||||
<div class="signoff">
|
||||
<div class="nm">Johann Velazquez</div>
|
||||
<div class="rl">Consultor de Software · dudas, ajustes y reportes de la plataforma</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
After Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 64 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 101 KiB |
|
After Width: | Height: | Size: 77 KiB |
|
After Width: | Height: | Size: 75 KiB |
|
After Width: | Height: | Size: 101 KiB |
|
After Width: | Height: | Size: 59 KiB |
|
After Width: | Height: | Size: 113 KiB |
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"input_html": "Manual-usuario-Balam.html",
|
||||
"output_pdf": "Manual-usuario-Balam.pdf",
|
||||
|
||||
"page_size": "Letter",
|
||||
"cover_full_bleed": true,
|
||||
"render_timeout_ms": 30000,
|
||||
|
||||
"metadata": {
|
||||
"title": "Manual de usuario — Plataforma de Automatización Financiera · Balam",
|
||||
"author": "Johann Velazquez",
|
||||
"subject": "Uso de la plataforma: cartera, facturas, solicitudes de Jira, cotización, prefactura y timbrado",
|
||||
"keywords": "manual, Balam, BIND ERP, Jira, cotización, prefactura, CFDI"
|
||||
},
|
||||
|
||||
"footer": {
|
||||
"text": "Manual de usuario · Plataforma de Automatización Financiera · Balam — Confidencial",
|
||||
"skip_first_page": true,
|
||||
"skip_pages": [],
|
||||
"page_number_format": "{page} / {pages}",
|
||||
"rule": true,
|
||||
"font_size_pt": 7.5,
|
||||
"margin_mm": 12,
|
||||
"color": [0.46, 0.51, 0.57]
|
||||
},
|
||||
|
||||
"fonts": {
|
||||
"footer_ttf": "fonts/Carlito-Regular.ttf"
|
||||
},
|
||||
|
||||
"toc": {
|
||||
"_comment": "key -> frase ÚNICA del CUERPO de cada sección (no el título).",
|
||||
"1": "junta en un solo lugar los tickets de facturación",
|
||||
"2": "Cuentas por cobrar es la pantalla de inicio",
|
||||
"3": "La bandeja muestra los tickets del proyecto FAC",
|
||||
"4": "Cuando alguien crea un ticket en FAC",
|
||||
"5": "La prefactura se genera siempre desde una cotización",
|
||||
"6": "Timbrar es la única acción con efecto fiscal",
|
||||
"7": "Estas reglas protegen a Balam de duplicados",
|
||||
"8": "Los mensajes de la plataforma dicen qué pasó",
|
||||
"9": "Hay tareas que siguen haciéndose en BIND"
|
||||
}
|
||||
}
|
||||