Files
sap_tfi_2026/diagrams/svg/D-ROB-VEN-004 — Diagrama de Robustez: Confirmar Pedido.svg
T
saptfi2026-bot dd3a98b8d5 feat(iter-1-completa): PDFs, diagramas extra, EV-COD validadas, material educativo
Cambios desde el commit anterior:

PDFs y formatos visuales (Paso 1):
- 11 PNGs + 11 SVGs + 11 PDFs generados con PlantUML 1.2021.16
- Conversión PNG→PDF con fpdf2 (workaround para Java 8)

Diagramas adicionales (Paso 2):
- d_rob_ven_001_crear_presupuesto.puml + .pdf
- d_sec_ven_001_crear_presupuesto.puml + .pdf
- d_rob_ent_002_reservar_productos.puml + .pdf
- d_sec_ent_002_reservar_productos.puml + .pdf
- d_rob_fac_001_crear_factura.puml + .pdf
- d_sec_fac_001_crear_factura.puml + .pdf

EV-COD adicionales (Paso 3):
- EV-COD-021 a EV-COD-030 (10 nuevas evidencias)
- EV-INF reducidas de 22 a 8 (14 promovidas a EV-COD)
- evidence/index.md con catálogo completo de evidencias

Material educativo (Paso 4):
- docs/10_material_estudio/README.md
- docs/10_material_estudio/01_que_es_iconix.md
- docs/10_material_estudio/02_aplicacion_a_odoo.md
- docs/10_material_estudio/03_como_leer_los_cu.md
- docs/10_material_estudio/04_ejercicios_practicos.md

Matriz de trazabilidad actualizada con las nuevas EV-COD.
2026-06-23 20:41:21 -03:00

128 lines
24 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="762px" preserveAspectRatio="none" style="width:1716px;height:762px;background:#FFFFFF;" version="1.1" viewBox="0 0 1716 762" width="1716px" zoomAndPan="magnify"><defs/><g><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="510" x="599.75" y="23.1387">SAP-TFI-2026 — Diagrama de Robustez - Confirmar Pedido de Venta (CU-VEN-004)</text><rect fill="#FFFFFF" height="255.6875" style="stroke:#000000;stroke-width:2.0;" width="1444" x="255.5" y="294.75"/><rect fill="#FFFFFF" height="43.9375" style="stroke:none;stroke-width:1.0;" width="1444" x="255.5" y="506.5"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="38" x2="38" y1="109.9375" y2="595.4063"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="334.5" x2="334.5" y1="109.9375" y2="595.4063"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="461.5" x2="461.5" y1="109.9375" y2="595.4063"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="573.5" x2="573.5" y1="109.9375" y2="595.4063"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="737.5" x2="737.5" y1="109.9375" y2="595.4063"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="948.5" x2="948.5" y1="109.9375" y2="595.4063"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="1115.5" x2="1115.5" y1="109.9375" y2="595.4063"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="1241.5" x2="1241.5" y1="109.9375" y2="595.4063"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="1346.5" x2="1346.5" y1="109.9375" y2="595.4063"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="1439.5" x2="1439.5" y1="109.9375" y2="595.4063"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="1541.5" x2="1541.5" y1="109.9375" y2="595.4063"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="1642.5" x2="1642.5" y1="109.9375" y2="595.4063"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="61" x="5" y="107.1074">Vendedor</text><ellipse cx="38.5" cy="42.9688" fill="#FEFECE" rx="8" ry="8" style="stroke:#A80036;stroke-width:2.0;"/><path d="M38.5,50.9688 L38.5,77.9688 M25.5,58.9688 L51.5,58.9688 M38.5,77.9688 L25.5,92.9688 M38.5,77.9688 L51.5,92.9688 " fill="none" style="stroke:#A80036;stroke-width:2.0;"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="61" x="5" y="605.5449">Vendedor</text><ellipse cx="38.5" cy="618.375" fill="#FEFECE" rx="8" ry="8" style="stroke:#A80036;stroke-width:2.0;"/><path d="M38.5,626.375 L38.5,653.375 M25.5,634.375 L51.5,634.375 M38.5,653.375 L25.5,668.375 M38.5,653.375 L51.5,668.375 " fill="none" style="stroke:#A80036;stroke-width:2.0;"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="132" x="265.5" y="93.1387">view_sale_order_form</text><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="105" x="279" y="107.1074">(form de pedido)</text><path d="M314,54 L314,78 M314,66 L331,66 " fill="none" style="stroke:#A80036;stroke-width:2.0;"/><ellipse cx="343" cy="66" fill="#FEFECE" rx="12" ry="12" style="stroke:#A80036;stroke-width:2.0;"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="132" x="265.5" y="605.5449">view_sale_order_form</text><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="105" x="279" y="619.5137">(form de pedido)</text><path d="M314,626.3438 L314,650.3438 M314,638.3438 L331,638.3438 " fill="none" style="stroke:#A80036;stroke-width:2.0;"/><ellipse cx="343" cy="638.3438" fill="#FEFECE" rx="12" ry="12" style="stroke:#A80036;stroke-width:2.0;"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="91" x="413.5" y="107.1074">Wiz. Validación</text><path d="M441.5,67.9688 L441.5,91.9688 M441.5,79.9688 L458.5,79.9688 " fill="none" style="stroke:#A80036;stroke-width:2.0;"/><ellipse cx="470.5" cy="79.9688" fill="#FEFECE" rx="12" ry="12" style="stroke:#A80036;stroke-width:2.0;"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="91" x="413.5" y="605.5449">Wiz. Validación</text><path d="M441.5,612.375 L441.5,636.375 M441.5,624.375 L458.5,624.375 " fill="none" style="stroke:#A80036;stroke-width:2.0;"/><ellipse cx="470.5" cy="624.375" fill="#FEFECE" rx="12" ry="12" style="stroke:#A80036;stroke-width:2.0;"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="62" x="540" y="93.1387">SaleOrder</text><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="101" x="520.5" y="107.1074">(action_confirm)</text><ellipse cx="574" cy="66" fill="#FEFECE" rx="12" ry="12" style="stroke:#A80036;stroke-width:2.0;"/><polygon fill="#A80036" points="570,54,576,49,574,54,576,59,570,54" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="62" x="540" y="605.5449">SaleOrder</text><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="101" x="520.5" y="619.5137">(action_confirm)</text><ellipse cx="574" cy="638.3438" fill="#FEFECE" rx="12" ry="12" style="stroke:#A80036;stroke-width:2.0;"/><polygon fill="#A80036" points="570,626.3438,576,621.3438,574,626.3438,576,631.3438,570,626.3438" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="56" x="706.5" y="93.1387">Validator</text><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="194" x="637.5" y="107.1074">(_confirmation_error_message)</text><ellipse cx="737.5" cy="66" fill="#FEFECE" rx="12" ry="12" style="stroke:#A80036;stroke-width:2.0;"/><polygon fill="#A80036" points="733.5,54,739.5,49,737.5,54,739.5,59,733.5,54" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="56" x="706.5" y="605.5449">Validator</text><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="194" x="637.5" y="619.5137">(_confirmation_error_message)</text><ellipse cx="737.5" cy="638.3438" fill="#FEFECE" rx="12" ry="12" style="stroke:#A80036;stroke-width:2.0;"/><polygon fill="#A80036" points="733.5,626.3438,739.5,621.3438,737.5,626.3438,739.5,631.3438,733.5,626.3438" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="79" x="906" y="79.1699">Confirmation</text><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="42" x="924.5" y="93.1387">Values</text><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="196" x="847.5" y="107.1074">(_prepare_confirmation_values)</text><ellipse cx="948.5" cy="52.0313" fill="#FEFECE" rx="12" ry="12" style="stroke:#A80036;stroke-width:2.0;"/><polygon fill="#A80036" points="944.5,40.0313,950.5,35.0313,948.5,40.0313,950.5,45.0313,944.5,40.0313" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="79" x="906" y="605.5449">Confirmation</text><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="42" x="924.5" y="619.5137">Values</text><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="196" x="847.5" y="633.4824">(_prepare_confirmation_values)</text><ellipse cx="948.5" cy="652.3125" fill="#FEFECE" rx="12" ry="12" style="stroke:#A80036;stroke-width:2.0;"/><polygon fill="#A80036" points="944.5,640.3125,950.5,635.3125,948.5,640.3125,950.5,645.3125,944.5,640.3125" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="35" x="1095.5" y="93.1387">Stock</text><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="107" x="1059.5" y="107.1074">(_action_confirm)</text><ellipse cx="1116" cy="66" fill="#FEFECE" rx="12" ry="12" style="stroke:#A80036;stroke-width:2.0;"/><polygon fill="#A80036" points="1112,54,1118,49,1116,54,1118,59,1112,54" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="35" x="1095.5" y="605.5449">Stock</text><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="107" x="1059.5" y="619.5137">(_action_confirm)</text><ellipse cx="1116" cy="638.3438" fill="#FEFECE" rx="12" ry="12" style="stroke:#A80036;stroke-width:2.0;"/><polygon fill="#A80036" points="1112,626.3438,1118,621.3438,1116,626.3438,1118,631.3438,1112,626.3438" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="43" x="1217.5" y="93.1387">Invoice</text><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="113" x="1182.5" y="107.1074">(_create_invoices)</text><ellipse cx="1242" cy="66" fill="#FEFECE" rx="12" ry="12" style="stroke:#A80036;stroke-width:2.0;"/><polygon fill="#A80036" points="1238,54,1244,49,1242,54,1244,59,1238,54" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="43" x="1217.5" y="605.5449">Invoice</text><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="113" x="1182.5" y="619.5137">(_create_invoices)</text><ellipse cx="1242" cy="638.3438" fill="#FEFECE" rx="12" ry="12" style="stroke:#A80036;stroke-width:2.0;"/><polygon fill="#A80036" points="1238,626.3438,1244,621.3438,1242,626.3438,1244,631.3438,1238,626.3438" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="64" x="1311.5" y="107.1074">sale.order</text><ellipse cx="1346.5" cy="79.9688" fill="#FEFECE" rx="12" ry="12" style="stroke:#A80036;stroke-width:2.0;"/><line style="stroke:#A80036;stroke-width:2.0;" x1="1334.5" x2="1358.5" y1="93.9688" y2="93.9688"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="64" x="1311.5" y="605.5449">sale.order</text><ellipse cx="1346.5" cy="624.375" fill="#FEFECE" rx="12" ry="12" style="stroke:#A80036;stroke-width:2.0;"/><line style="stroke:#A80036;stroke-width:2.0;" x1="1334.5" x2="1358.5" y1="638.375" y2="638.375"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="90" x="1391.5" y="107.1074">sale.order.line</text><ellipse cx="1439.5" cy="79.9688" fill="#FEFECE" rx="12" ry="12" style="stroke:#A80036;stroke-width:2.0;"/><line style="stroke:#A80036;stroke-width:2.0;" x1="1427.5" x2="1451.5" y1="93.9688" y2="93.9688"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="90" x="1391.5" y="605.5449">sale.order.line</text><ellipse cx="1439.5" cy="624.375" fill="#FEFECE" rx="12" ry="12" style="stroke:#A80036;stroke-width:2.0;"/><line style="stroke:#A80036;stroke-width:2.0;" x1="1427.5" x2="1451.5" y1="638.375" y2="638.375"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="82" x="1497.5" y="107.1074">stock.picking</text><ellipse cx="1541.5" cy="79.9688" fill="#FEFECE" rx="12" ry="12" style="stroke:#A80036;stroke-width:2.0;"/><line style="stroke:#A80036;stroke-width:2.0;" x1="1529.5" x2="1553.5" y1="93.9688" y2="93.9688"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="82" x="1497.5" y="605.5449">stock.picking</text><ellipse cx="1541.5" cy="624.375" fill="#FEFECE" rx="12" ry="12" style="stroke:#A80036;stroke-width:2.0;"/><line style="stroke:#A80036;stroke-width:2.0;" x1="1529.5" x2="1553.5" y1="638.375" y2="638.375"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="88" x="1595.5" y="107.1074">account.move</text><ellipse cx="1642.5" cy="79.9688" fill="#FEFECE" rx="12" ry="12" style="stroke:#A80036;stroke-width:2.0;"/><line style="stroke:#A80036;stroke-width:2.0;" x1="1630.5" x2="1654.5" y1="93.9688" y2="93.9688"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="88" x="1595.5" y="605.5449">account.move</text><ellipse cx="1642.5" cy="624.375" fill="#FEFECE" rx="12" ry="12" style="stroke:#A80036;stroke-width:2.0;"/><line style="stroke:#A80036;stroke-width:2.0;" x1="1630.5" x2="1654.5" y1="638.375" y2="638.375"/><polygon fill="#A80036" points="322.5,135.9063,332.5,139.9063,322.5,143.9063,326.5,139.9063" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="38.5" x2="328.5" y1="139.9063" y2="139.9063"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="118" x="45.5" y="135.0762">1. Click "Confirmar"</text><polygon fill="#A80036" points="562,163.875,572,167.875,562,171.875,566,167.875" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="334.5" x2="568" y1="167.875" y2="167.875"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="151" x="341.5" y="163.0449">2. Invoca action_confirm</text><polygon fill="#A80036" points="725.5,191.8438,735.5,195.8438,725.5,199.8438,729.5,195.8438" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="574" x2="731.5" y1="195.8438" y2="195.8438"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="101" x="581" y="191.0137">3. Valida pedido</text><polygon fill="#A80036" points="1334.5,219.8125,1344.5,223.8125,1334.5,227.8125,1338.5,223.8125" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="737.5" x2="1340.5" y1="223.8125" y2="223.8125"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="137" x="744.5" y="218.9824">4. Lee estado y líneas</text><polygon fill="#A80036" points="1427.5,247.7813,1437.5,251.7813,1427.5,255.7813,1431.5,251.7813" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="737.5" x2="1433.5" y1="251.7813" y2="251.7813"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="79" x="744.5" y="246.9512">5. Lee líneas</text><polygon fill="#A80036" points="585,275.75,575,279.75,585,283.75,581,279.75" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="579" x2="736.5" y1="279.75" y2="279.75"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="75" x="591" y="274.9199">6. OK / error</text><path d="M255.5,294.75 L319.5,294.75 L319.5,299.75 L309.5,309.75 L255.5,309.75 L255.5,294.75 " fill="#EEEEEE" style="stroke:#000000;stroke-width:1.0;"/><rect fill="none" height="255.6875" style="stroke:#000000;stroke-width:2.0;" width="1444" x="255.5" y="294.75"/><text fill="#000000" font-family="Arial" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="19" x="270.5" y="306.8887">alt</text><text fill="#000000" font-family="Arial" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="47" x="334.5" y="307.8887">[Si OK]</text><polygon fill="#A80036" points="936.5,326.6875,946.5,330.6875,936.5,334.6875,940.5,330.6875" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="574" x2="942.5" y1="330.6875" y2="330.6875"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="115" x="581" y="325.8574">7. Prepara valores</text><polygon fill="#A80036" points="1334.5,354.6563,1344.5,358.6563,1334.5,362.6563,1338.5,358.6563" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="948.5" x2="1340.5" y1="358.6563" y2="358.6563"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="204" x="955.5" y="353.8262">8. Write state='sale', date_order</text><polygon fill="#A80036" points="1104,382.625,1114,386.625,1104,390.625,1108,386.625" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="574" x2="1110" y1="386.625" y2="386.625"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="161" x="581" y="381.7949">9. _action_confirm (stock)</text><polygon fill="#A80036" points="1529.5,410.5938,1539.5,414.5938,1529.5,418.5938,1533.5,414.5938" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="1116" x2="1535.5" y1="414.5938" y2="414.5938"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="101" x="1123" y="409.7637">10. Crea picking</text><polygon fill="#A80036" points="1230,438.5625,1240,442.5625,1230,446.5625,1234,442.5625" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="574" x2="1236" y1="442.5625" y2="442.5625"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="194" x="581" y="437.7324">11. _create_invoices (opcional)</text><polygon fill="#A80036" points="1630.5,466.5313,1640.5,470.5313,1630.5,474.5313,1634.5,470.5313" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="1242" x2="1636.5" y1="470.5313" y2="470.5313"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="102" x="1249" y="465.7012">12. Crea factura</text><polygon fill="#A80036" points="345.5,494.5,335.5,498.5,345.5,502.5,341.5,498.5" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="339.5" x2="573" y1="498.5" y2="498.5"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="94" x="351.5" y="493.6699">13. Retorna OK</text><line style="stroke:#000000;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="255.5" x2="1699.5" y1="507.5" y2="507.5"/><text fill="#000000" font-family="Arial" font-size="12" font-weight="bold" lengthAdjust="spacing" textLength="63" x="260.5" y="518.6387">[Si error]</text><polygon fill="#A80036" points="345.5,538.4375,335.5,542.4375,345.5,546.4375,341.5,542.4375" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="339.5" x2="736.5" y1="542.4375" y2="542.4375"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="110" x="351.5" y="537.6074">6b. Muestra error</text><polygon fill="#A80036" points="49.5,573.4063,39.5,577.4063,49.5,581.4063,45.5,577.4063" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:2.0,2.0;" x1="43.5" x2="333.5" y1="577.4063" y2="577.4063"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="272" x="55.5" y="572.5762">14. Muestra resultado (estado actualizado)</text><rect fill="#DDDDDD" height="65.875" rx="5" ry="5" style="stroke:#000000;stroke-width:1.0;" width="264" x="1436.5" y="680.375"/><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="144" x="1442.5" y="696.5137">Proyecto: SAP-TFI-2026</text><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="120" x="1442.5" y="710.4824">Agente: saptfi2026</text><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="124" x="1442.5" y="724.4512">Metodología: ICONIX</text><text fill="#000000" font-family="Arial" font-size="12" lengthAdjust="spacing" textLength="252" x="1442.5" y="738.4199">Fuente: Ingeniería inversa de Odoo 19.0</text><!--MD5=[f85af8c2786eb263cfe7c075a2307dca]
@startuml D-ROB-VEN-004 — Diagrama de Robustez: Confirmar Pedido
title SAP-TFI-2026 — Diagrama de Robustez - Confirmar Pedido de Venta (CU-VEN-004)
skinparam shadowing false
skinparam handwritten false
skinparam defaultFontName Arial
skinparam defaultFontSize 12
skinparam linetype ortho
skinparam backgroundColor white
' Boundary = vistas, formularios
' Control = coordinadores
' Entity = objetos persistentes
actor "Vendedor" as V
boundary "view_sale_order_form\n(form de pedido)" as B_Form
boundary "Wiz. Validación" as B_Wiz
control "SaleOrder\n(action_confirm)" as C_SO
control "Validator\n(_confirmation_error_message)" as C_Val
control "Confirmation\nValues\n(_prepare_confirmation_values)" as C_CV
control "Stock\n(_action_confirm)" as C_Stk
control "Invoice\n(_create_invoices)" as C_Inv
entity "sale.order" as E_SO
entity "sale.order.line" as E_Line
entity "stock.picking" as E_Pick
entity "account.move" as E_Move
V - -> B_Form : 1. Click "Confirmar"
B_Form - -> C_SO : 2. Invoca action_confirm
C_SO - -> C_Val : 3. Valida pedido
C_Val - -> E_SO : 4. Lee estado y líneas
C_Val - -> E_Line : 5. Lee líneas
C_Val - -> C_SO : 6. OK / error
alt Si OK
C_SO - -> C_CV : 7. Prepara valores
C_CV - -> E_SO : 8. Write state='sale', date_order
C_SO - -> C_Stk : 9. _action_confirm (stock)
C_Stk - -> E_Pick : 10. Crea picking
C_SO - -> C_Inv : 11. _create_invoices (opcional)
C_Inv - -> E_Move : 12. Crea factura
C_SO - -> B_Form : 13. Retorna OK
else Si error
C_Val - -> B_Form : 6b. Muestra error
end
B_Form - -> V : 14. Muestra resultado (estado actualizado)
legend right
Proyecto: SAP-TFI-2026
Agente: saptfi2026
Metodología: ICONIX
Fuente: Ingeniería inversa de Odoo 19.0
endlegend
@enduml
@startuml D-ROB-VEN-004 — Diagrama de Robustez: Confirmar Pedido
title SAP-TFI-2026 — Diagrama de Robustez - Confirmar Pedido de Venta (CU-VEN-004)
skinparam shadowing false
skinparam handwritten false
skinparam defaultFontName Arial
skinparam defaultFontSize 12
skinparam linetype ortho
skinparam backgroundColor white
actor "Vendedor" as V
boundary "view_sale_order_form\n(form de pedido)" as B_Form
boundary "Wiz. Validación" as B_Wiz
control "SaleOrder\n(action_confirm)" as C_SO
control "Validator\n(_confirmation_error_message)" as C_Val
control "Confirmation\nValues\n(_prepare_confirmation_values)" as C_CV
control "Stock\n(_action_confirm)" as C_Stk
control "Invoice\n(_create_invoices)" as C_Inv
entity "sale.order" as E_SO
entity "sale.order.line" as E_Line
entity "stock.picking" as E_Pick
entity "account.move" as E_Move
V - -> B_Form : 1. Click "Confirmar"
B_Form - -> C_SO : 2. Invoca action_confirm
C_SO - -> C_Val : 3. Valida pedido
C_Val - -> E_SO : 4. Lee estado y líneas
C_Val - -> E_Line : 5. Lee líneas
C_Val - -> C_SO : 6. OK / error
alt Si OK
C_SO - -> C_CV : 7. Prepara valores
C_CV - -> E_SO : 8. Write state='sale', date_order
C_SO - -> C_Stk : 9. _action_confirm (stock)
C_Stk - -> E_Pick : 10. Crea picking
C_SO - -> C_Inv : 11. _create_invoices (opcional)
C_Inv - -> E_Move : 12. Crea factura
C_SO - -> B_Form : 13. Retorna OK
else Si error
C_Val - -> B_Form : 6b. Muestra error
end
B_Form - -> V : 14. Muestra resultado (estado actualizado)
legend right
Proyecto: SAP-TFI-2026
Agente: saptfi2026
Metodología: ICONIX
Fuente: Ingeniería inversa de Odoo 19.0
endlegend
@enduml
PlantUML version 1.2021.16(Wed Dec 08 14:25:22 ART 2021)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Default Encoding: UTF-8
Language: es
Country: AR
--></g></svg>