mirror of
https://github.com/cursos-uai/sap_tfi_2026.git
synced 2026-07-31 20:48:30 -03:00
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.
239 lines
32 KiB
XML
239 lines
32 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="964px" preserveAspectRatio="none" style="width:658px;height:964px;background:#FFFFFF;" version="1.1" viewBox="0 0 658 964" width="658px" zoomAndPan="magnify"><defs/><g><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="483" x="81" y="10.2104">SAP-TFI-2026 — Diagrama de Clases Técnicas (Integración Venta/Stock/Contabilidad)</text><!--MD5=[3a4b3d9dac417df44f443a704ca6b6ed]
|
|
class SO--><rect codeLine="12" fill="#FEFECE" height="192.8516" id="SO" style="stroke:#A80036;stroke-width:1.5;" width="271" x="203.5" y="246.8047"/><ellipse cx="296.75" cy="260.8047" fill="#ADD1B2" rx="9" ry="9" style="stroke:#A80036;stroke-width:1.0;"/><path d="M298.0625,264.5703 Q297.6875,264.7734 297.2656,264.8672 Q296.8594,264.9609 296.3906,264.9609 Q294.7813,264.9609 293.9219,263.8984 Q293.0625,262.8203 293.0625,260.8047 Q293.0625,258.7734 293.9219,257.7109 Q294.7813,256.6328 296.3906,256.6328 Q296.8594,256.6328 297.2656,256.7422 Q297.6875,256.8359 298.0625,257.0234 L298.0625,258.7891 Q297.6406,258.4141 297.25,258.2422 Q296.875,258.0703 296.4688,258.0703 Q295.6094,258.0703 295.1563,258.7578 Q294.7188,259.4453 294.7188,260.8047 Q294.7188,262.1641 295.1563,262.8516 Q295.6094,263.5391 296.4688,263.5391 Q296.875,263.5391 297.25,263.3672 Q297.6406,263.1953 298.0625,262.8047 L298.0625,264.5703 Z " fill="#000000"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="77" x="314.25" y="264.6128"><sale.order></text><line style="stroke:#A80036;stroke-width:1.5;" x1="204.5" x2="473.5" y1="274.8047" y2="274.8047"/><ellipse cx="214.5" cy="285.8047" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="124" x="221.5" y="289.0151">_name = "sale.order"</text><ellipse cx="214.5" cy="298.6094" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="247" x="221.5" y="301.8198">_inherit = ["portal.mixin", "mail.thread", ...]</text><line style="stroke:#A80036;stroke-width:1.0;" x1="204.5" x2="473.5" y1="308.4141" y2="308.4141"/><ellipse cx="214.5" cy="319.4141" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="67" x="221.5" y="322.6245">name: Char</text><ellipse cx="214.5" cy="332.2188" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="196" x="221.5" y="335.4292">partner_id: Many2one(res.partner)</text><ellipse cx="214.5" cy="345.0234" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="89" x="221.5" y="348.2339">state: Selection</text><ellipse cx="214.5" cy="357.8281" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="141" x="221.5" y="361.0386">invoice_status: Selection</text><ellipse cx="214.5" cy="370.6328" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="154" x="221.5" y="373.8433">amount_untaxed: Monetary</text><ellipse cx="214.5" cy="383.4375" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="134" x="221.5" y="386.6479">amount_total: Monetary</text><line style="stroke:#A80036;stroke-width:1.0;" x1="204.5" x2="473.5" y1="393.2422" y2="393.2422"/><ellipse cx="214.5" cy="404.2422" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="91" x="221.5" y="407.4526">action_confirm()</text><ellipse cx="214.5" cy="417.0469" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="135" x="221.5" y="420.2573">action_quotation_send()</text><ellipse cx="214.5" cy="429.8516" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="102" x="221.5" y="433.062">_create_invoices()</text><!--MD5=[e8fc071984fab93589db68d397099aa1]
|
|
class SOL--><rect codeLine="29" fill="#FEFECE" height="133.6328" id="SOL" style="stroke:#A80036;stroke-width:1.5;" width="246" x="288" y="726.8047"/><ellipse cx="356.75" cy="740.8047" fill="#ADD1B2" rx="9" ry="9" style="stroke:#A80036;stroke-width:1.0;"/><path d="M358.0625,744.5703 Q357.6875,744.7734 357.2656,744.8672 Q356.8594,744.9609 356.3906,744.9609 Q354.7813,744.9609 353.9219,743.8984 Q353.0625,742.8203 353.0625,740.8047 Q353.0625,738.7734 353.9219,737.7109 Q354.7813,736.6328 356.3906,736.6328 Q356.8594,736.6328 357.2656,736.7422 Q357.6875,736.8359 358.0625,737.0234 L358.0625,738.7891 Q357.6406,738.4141 357.25,738.2422 Q356.875,738.0703 356.4688,738.0703 Q355.6094,738.0703 355.1563,738.7578 Q354.7188,739.4453 354.7188,740.8047 Q354.7188,742.1641 355.1563,742.8516 Q355.6094,743.5391 356.4688,743.5391 Q356.875,743.5391 357.25,743.3672 Q357.6406,743.1953 358.0625,742.8047 L358.0625,744.5703 Z " fill="#000000"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="101" x="374.25" y="744.6128"><sale.order.line></text><line style="stroke:#A80036;stroke-width:1.5;" x1="289" x2="533" y1="754.8047" y2="754.8047"/><ellipse cx="299" cy="765.8047" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="148" x="306" y="769.0151">_name = "sale.order.line"</text><line style="stroke:#A80036;stroke-width:1.0;" x1="289" x2="533" y1="775.6094" y2="775.6094"/><ellipse cx="299" cy="786.6094" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="179" x="306" y="789.8198">order_id: Many2one(sale.order)</text><ellipse cx="299" cy="799.4141" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="222" x="306" y="802.6245">product_id: Many2one(product.product)</text><ellipse cx="299" cy="812.2188" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="132" x="306" y="815.4292">product_uom_qty: Float</text><ellipse cx="299" cy="825.0234" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="90" x="306" y="828.2339">price_unit: Float</text><ellipse cx="299" cy="837.8281" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="83" x="306" y="841.0386">discount: Float</text><ellipse cx="299" cy="850.6328" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="140" x="306" y="853.8433">price_subtotal: Monetary</text><!--MD5=[d71d1ab749f02987107a92bcb0388bfb]
|
|
class SP--><rect codeLine="41" fill="#FEFECE" height="167.2422" id="SP" style="stroke:#A80036;stroke-width:1.5;" width="283" x="291.5" y="19.8047"/><ellipse cx="383.75" cy="33.8047" fill="#ADD1B2" rx="9" ry="9" style="stroke:#A80036;stroke-width:1.0;"/><path d="M385.0625,37.5703 Q384.6875,37.7734 384.2656,37.8672 Q383.8594,37.9609 383.3906,37.9609 Q381.7813,37.9609 380.9219,36.8984 Q380.0625,35.8203 380.0625,33.8047 Q380.0625,31.7734 380.9219,30.7109 Q381.7813,29.6328 383.3906,29.6328 Q383.8594,29.6328 384.2656,29.7422 Q384.6875,29.8359 385.0625,30.0234 L385.0625,31.7891 Q384.6406,31.4141 384.25,31.2422 Q383.875,31.0703 383.4688,31.0703 Q382.6094,31.0703 382.1563,31.7578 Q381.7188,32.4453 381.7188,33.8047 Q381.7188,35.1641 382.1563,35.8516 Q382.6094,36.5391 383.4688,36.5391 Q383.875,36.5391 384.25,36.3672 Q384.6406,36.1953 385.0625,35.8047 L385.0625,37.5703 Z " fill="#000000"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="91" x="401.25" y="37.6128"><stock.picking></text><line style="stroke:#A80036;stroke-width:1.5;" x1="292.5" x2="573.5" y1="47.8047" y2="47.8047"/><ellipse cx="302.5" cy="58.8047" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="138" x="309.5" y="62.0151">_name = "stock.picking"</text><ellipse cx="302.5" cy="71.6094" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="142" x="309.5" y="74.8198">_inherit = ["mail.thread"]</text><line style="stroke:#A80036;stroke-width:1.0;" x1="292.5" x2="573.5" y1="81.4141" y2="81.4141"/><ellipse cx="302.5" cy="92.4141" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="67" x="309.5" y="95.6245">name: Char</text><ellipse cx="302.5" cy="105.2188" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="196" x="309.5" y="108.4292">partner_id: Many2one(res.partner)</text><ellipse cx="302.5" cy="118.0234" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="89" x="309.5" y="121.2339">state: Selection</text><ellipse cx="302.5" cy="130.8281" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="259" x="309.5" y="134.0386">picking_type_id: Many2one(stock.picking.type)</text><line style="stroke:#A80036;stroke-width:1.0;" x1="292.5" x2="573.5" y1="140.6328" y2="140.6328"/><ellipse cx="302.5" cy="151.6328" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="91" x="309.5" y="154.8433">action_confirm()</text><ellipse cx="302.5" cy="164.4375" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="86" x="309.5" y="167.6479">action_assign()</text><ellipse cx="302.5" cy="177.2422" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="94" x="309.5" y="180.4526">button_validate()</text><!--MD5=[863230458a4992fcbddcfef6979a355f]
|
|
class SM--><rect codeLine="56" fill="#FEFECE" height="128.8281" id="SM" style="stroke:#A80036;stroke-width:1.5;" width="246" x="405" y="518.8047"/><ellipse cx="482.75" cy="532.8047" fill="#ADD1B2" rx="9" ry="9" style="stroke:#A80036;stroke-width:1.0;"/><path d="M484.0625,536.5703 Q483.6875,536.7734 483.2656,536.8672 Q482.8594,536.9609 482.3906,536.9609 Q480.7813,536.9609 479.9219,535.8984 Q479.0625,534.8203 479.0625,532.8047 Q479.0625,530.7734 479.9219,529.7109 Q480.7813,528.6328 482.3906,528.6328 Q482.8594,528.6328 483.2656,528.7422 Q483.6875,528.8359 484.0625,529.0234 L484.0625,530.7891 Q483.6406,530.4141 483.25,530.2422 Q482.875,530.0703 482.4688,530.0703 Q481.6094,530.0703 481.1563,530.7578 Q480.7188,531.4453 480.7188,532.8047 Q480.7188,534.1641 481.1563,534.8516 Q481.6094,535.5391 482.4688,535.5391 Q482.875,535.5391 483.25,535.3672 Q483.6406,535.1953 484.0625,534.8047 L484.0625,536.5703 Z " fill="#000000"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="83" x="500.25" y="536.6128"><stock.move></text><line style="stroke:#A80036;stroke-width:1.5;" x1="406" x2="650" y1="546.8047" y2="546.8047"/><ellipse cx="416" cy="557.8047" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="130" x="423" y="561.0151">_name = "stock.move"</text><line style="stroke:#A80036;stroke-width:1.0;" x1="406" x2="650" y1="567.6094" y2="567.6094"/><ellipse cx="416" cy="578.6094" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="201" x="423" y="581.8198">picking_id: Many2one(stock.picking)</text><ellipse cx="416" cy="591.4141" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="222" x="423" y="594.6245">product_id: Many2one(product.product)</text><ellipse cx="416" cy="604.2188" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="132" x="423" y="607.4292">product_uom_qty: Float</text><ellipse cx="416" cy="617.0234" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="89" x="423" y="620.2339">state: Selection</text><line style="stroke:#A80036;stroke-width:1.0;" x1="406" x2="650" y1="626.8281" y2="626.8281"/><ellipse cx="416" cy="637.8281" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="91" x="423" y="641.0386">action_confirm()</text><!--MD5=[93c3adae85a88d7908778c3ef9c6a729]
|
|
class AM--><rect codeLine="68" fill="#FEFECE" height="167.2422" id="AM" style="stroke:#A80036;stroke-width:1.5;" width="220" x="79" y="499.8047"/><ellipse cx="136.75" cy="513.8047" fill="#ADD1B2" rx="9" ry="9" style="stroke:#A80036;stroke-width:1.0;"/><path d="M138.0625,517.5703 Q137.6875,517.7734 137.2656,517.8672 Q136.8594,517.9609 136.3906,517.9609 Q134.7813,517.9609 133.9219,516.8984 Q133.0625,515.8203 133.0625,513.8047 Q133.0625,511.7734 133.9219,510.7109 Q134.7813,509.6328 136.3906,509.6328 Q136.8594,509.6328 137.2656,509.7422 Q137.6875,509.8359 138.0625,510.0234 L138.0625,511.7891 Q137.6406,511.4141 137.25,511.2422 Q136.875,511.0703 136.4688,511.0703 Q135.6094,511.0703 135.1563,511.7578 Q134.7188,512.4453 134.7188,513.8047 Q134.7188,515.1641 135.1563,515.8516 Q135.6094,516.5391 136.4688,516.5391 Q136.875,516.5391 137.25,516.3672 Q137.6406,516.1953 138.0625,515.8047 L138.0625,517.5703 Z " fill="#000000"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="97" x="154.25" y="517.6128"><account.move></text><line style="stroke:#A80036;stroke-width:1.5;" x1="80" x2="298" y1="527.8047" y2="527.8047"/><ellipse cx="90" cy="538.8047" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="144" x="97" y="542.0151">_name = "account.move"</text><line style="stroke:#A80036;stroke-width:1.0;" x1="80" x2="298" y1="548.6094" y2="548.6094"/><ellipse cx="90" cy="559.6094" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="67" x="97" y="562.8198">name: Char</text><ellipse cx="90" cy="572.4141" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="196" x="97" y="575.6245">partner_id: Many2one(res.partner)</text><ellipse cx="90" cy="585.2188" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="121" x="97" y="588.4292">move_type: Selection</text><ellipse cx="90" cy="598.0234" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="89" x="97" y="601.2339">state: Selection</text><ellipse cx="90" cy="610.8281" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="104" x="97" y="614.0386">invoice_date: Date</text><ellipse cx="90" cy="623.6328" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="144" x="97" y="626.8433">payment_state: Selection</text><line style="stroke:#A80036;stroke-width:1.0;" x1="80" x2="298" y1="633.4375" y2="633.4375"/><ellipse cx="90" cy="644.4375" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="73" x="97" y="647.6479">action_post()</text><ellipse cx="90" cy="657.2422" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="148" x="97" y="660.4526">action_register_payment()</text><!--MD5=[2ceebb6646358f5fb15e17f042f5ca88]
|
|
class AML--><rect codeLine="83" fill="#FEFECE" height="120.8281" id="AML" style="stroke:#A80036;stroke-width:1.5;" width="246" x="7" y="733.3047"/><ellipse cx="65.75" cy="747.3047" fill="#ADD1B2" rx="9" ry="9" style="stroke:#A80036;stroke-width:1.0;"/><path d="M67.0625,751.0703 Q66.6875,751.2734 66.2656,751.3672 Q65.8594,751.4609 65.3906,751.4609 Q63.7813,751.4609 62.9219,750.3984 Q62.0625,749.3203 62.0625,747.3047 Q62.0625,745.2734 62.9219,744.2109 Q63.7813,743.1328 65.3906,743.1328 Q65.8594,743.1328 66.2656,743.2422 Q66.6875,743.3359 67.0625,743.5234 L67.0625,745.2891 Q66.6406,744.9141 66.25,744.7422 Q65.875,744.5703 65.4688,744.5703 Q64.6094,744.5703 64.1563,745.2578 Q63.7188,745.9453 63.7188,747.3047 Q63.7188,748.6641 64.1563,749.3516 Q64.6094,750.0391 65.4688,750.0391 Q65.875,750.0391 66.25,749.8672 Q66.6406,749.6953 67.0625,749.3047 L67.0625,751.0703 Z " fill="#000000"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="121" x="83.25" y="751.1128"><account.move.line></text><line style="stroke:#A80036;stroke-width:1.5;" x1="8" x2="252" y1="761.3047" y2="761.3047"/><ellipse cx="18" cy="772.3047" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="168" x="25" y="775.5151">_name = "account.move.line"</text><line style="stroke:#A80036;stroke-width:1.0;" x1="8" x2="252" y1="782.1094" y2="782.1094"/><ellipse cx="18" cy="793.1094" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="199" x="25" y="796.3198">move_id: Many2one(account.move)</text><ellipse cx="18" cy="805.9141" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="222" x="25" y="809.1245">product_id: Many2one(product.product)</text><ellipse cx="18" cy="818.7188" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="80" x="25" y="821.9292">quantity: Float</text><ellipse cx="18" cy="831.5234" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="90" x="25" y="834.7339">price_unit: Float</text><ellipse cx="18" cy="844.3281" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;fill:none;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="140" x="25" y="847.5386">price_subtotal: Monetary</text><!--MD5=[ac1c22fbe48a4ed9c4c61adec75c1e5f]
|
|
reverse link SO to SOL--><path codeLine="94" d="M352,452.9447 C352,452.9447 352,726.5447 352,726.5447 " fill="none" id="SO-backto-SOL" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="352,439.9447,348,445.9447,352,451.9447,356,445.9447,352,439.9447" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="57" x="338.25" y="600.9551">order_line</text><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="7" x="345.6977" y="457.7278">1</text><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="6" x="338.8313" y="716.3522">*</text><!--MD5=[17527eb90ddf8dc217de151f84d36b2c]
|
|
reverse link SO to AM--><path codeLine="95" d="M251.25,452.8847 C251.25,452.8847 251.25,499.6647 251.25,499.6647 " fill="none" id="SO-backto-AM" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="251.25,439.8847,247.25,445.8847,251.25,451.8847,255.25,445.8847,251.25,439.8847" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="62" x="188.25" y="473.4851">invoice_ids</text><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="7" x="237.2637" y="457.9854">1</text><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="6" x="251.0824" y="489.0789">*</text><!--MD5=[e7a728df6cfe4fa27340128c4fbc8299]
|
|
link SP to SO--><path codeLine="96" d="M383,186.9047 C383,186.9047 383,241.4247 383,241.4247 " fill="none" id="SP-to-SO" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="383,246.4247,387,237.4247,383,241.4247,379,237.4247,383,246.4247" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="40" x="342" y="211.3751">sale_id</text><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="6" x="372.2797" y="205.1202">*</text><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="7" x="379.3539" y="236.1549">1</text><!--MD5=[2796280a574bd760f185bbf9344da821]
|
|
reverse link SP to SM--><path codeLine="97" d="M524.5,199.9147 C524.5,199.9147 524.5,518.7047 524.5,518.7047 " fill="none" id="SP-backto-SM" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="524.5,186.9147,520.5,192.9147,524.5,198.9147,528.5,192.9147,524.5,186.9147" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="54" x="525.5" y="356.5151">move_ids</text><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="7" x="525.3375" y="205.1311">1</text><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="6" x="517.7078" y="508.3703">*</text><!--MD5=[34adc416482ea6235a095fa5160059c8]
|
|
link SM to SOL--><path codeLine="98" d="M469.5,647.8947 C469.5,647.8947 469.5,721.7947 469.5,721.7947 " fill="none" id="SM-to-SOL" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="469.5,726.7947,473.5,717.7947,469.5,721.7947,465.5,717.7947,469.5,726.7947" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="66" x="402.5" y="682.0551">sale_line_id</text><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="6" x="456.7734" y="665.8793">*</text><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="7" x="469.2031" y="716.1785">1</text><!--MD5=[ac86ba6666ae12fefc3429883e071b56]
|
|
reverse link AM to AML--><path codeLine="99" d="M166,680.1047 C166,680.1047 166,732.9947 166,732.9947 " fill="none" id="AM-backto-AML" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="166,667.1047,162,673.1047,166,679.1047,170,673.1047,166,667.1047" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="43" x="122" y="703.7551">line_ids</text><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="7" x="156.6398" y="685.338">1</text><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="6" x="164.2281" y="722.7077">*</text><!--MD5=[9631a8a90d7532509537a71dbf1937c1]
|
|
link AM to SOL--><path codeLine="100" d="M293.5,667.1047 C293.5,667.1047 293.5,721.4847 293.5,721.4847 " fill="none" id="AM-to-SOL" style="stroke:#A80036;stroke-width:1.0;"/><polygon fill="#A80036" points="293.5,726.4847,297.5,717.4847,293.5,721.4847,289.5,717.4847,293.5,726.4847" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="88" x="204.5" y="691.5051">invoice_line_ids</text><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="6" x="296.5398" y="685.338">*</text><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="7" x="273.2656" y="716.7398">1</text><rect fill="#DDDDDD" height="74.0234" rx="5" ry="5" style="stroke:#000000;stroke-width:1.0;" width="339" x="297" y="874.4375"/><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="131" x="303" y="889.6479">Proyecto: SAP-TFI-2026</text><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="107" x="303" y="902.4526">Agente: saptfi2026</text><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="114" x="303" y="915.2573">Metodología: ICONIX</text><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="229" x="303" y="928.062">Fuente: Ingeniería inversa de Odoo 19.0</text><text fill="#000000" font-family="Arial" font-size="11" lengthAdjust="spacing" textLength="327" x="303" y="940.8667">Solo campos y métodos relevantes para el flujo de venta</text><!--MD5=[d5a618d62ce2bad0106f094695f17c00]
|
|
@startuml D-CLA-INT-001 — Diagrama de Clases - Integracion Venta-Stock-Contabilidad
|
|
|
|
title SAP-TFI-2026 — Diagrama de Clases Técnicas (Integración Venta/Stock/Contabilidad)
|
|
|
|
skinparam shadowing false
|
|
skinparam handwritten false
|
|
skinparam defaultFontName Arial
|
|
skinparam defaultFontSize 11
|
|
skinparam linetype ortho
|
|
skinparam backgroundColor white
|
|
|
|
' ─── sale.order ───
|
|
class "<sale.order>" as SO {
|
|
+_name = "sale.order"
|
|
+_inherit = ["portal.mixin", "mail.thread", ...]
|
|
- -
|
|
+name: Char
|
|
+partner_id: Many2one(res.partner)
|
|
+state: Selection
|
|
+invoice_status: Selection
|
|
+amount_untaxed: Monetary
|
|
+amount_total: Monetary
|
|
- -
|
|
+action_confirm()
|
|
+action_quotation_send()
|
|
+_create_invoices()
|
|
}
|
|
|
|
' ─── sale.order.line ───
|
|
class "<sale.order.line>" as SOL {
|
|
+_name = "sale.order.line"
|
|
- -
|
|
+order_id: Many2one(sale.order)
|
|
+product_id: Many2one(product.product)
|
|
+product_uom_qty: Float
|
|
+price_unit: Float
|
|
+discount: Float
|
|
+price_subtotal: Monetary
|
|
}
|
|
|
|
' ─── stock.picking ───
|
|
class "<stock.picking>" as SP {
|
|
+_name = "stock.picking"
|
|
+_inherit = ["mail.thread"]
|
|
- -
|
|
+name: Char
|
|
+partner_id: Many2one(res.partner)
|
|
+state: Selection
|
|
+picking_type_id: Many2one(stock.picking.type)
|
|
- -
|
|
+action_confirm()
|
|
+action_assign()
|
|
+button_validate()
|
|
}
|
|
|
|
' ─── stock.move ───
|
|
class "<stock.move>" as SM {
|
|
+_name = "stock.move"
|
|
- -
|
|
+picking_id: Many2one(stock.picking)
|
|
+product_id: Many2one(product.product)
|
|
+product_uom_qty: Float
|
|
+state: Selection
|
|
- -
|
|
+action_confirm()
|
|
}
|
|
|
|
' ─── account.move ───
|
|
class "<account.move>" as AM {
|
|
+_name = "account.move"
|
|
- -
|
|
+name: Char
|
|
+partner_id: Many2one(res.partner)
|
|
+move_type: Selection
|
|
+state: Selection
|
|
+invoice_date: Date
|
|
+payment_state: Selection
|
|
- -
|
|
+action_post()
|
|
+action_register_payment()
|
|
}
|
|
|
|
' ─── account.move.line ───
|
|
class "<account.move.line>" as AML {
|
|
+_name = "account.move.line"
|
|
- -
|
|
+move_id: Many2one(account.move)
|
|
+product_id: Many2one(product.product)
|
|
+quantity: Float
|
|
+price_unit: Float
|
|
+price_subtotal: Monetary
|
|
}
|
|
|
|
' ─── Relaciones ───
|
|
SO "1" *- - "*" SOL : order_line
|
|
SO "1" *- - "*" AM : invoice_ids
|
|
SP "*" - -> "1" SO : sale_id
|
|
SP "1" *- - "*" SM : move_ids
|
|
SM "*" - -> "1" SOL : sale_line_id
|
|
AM "1" *- - "*" AML : line_ids
|
|
AM "*" - -> "1" SOL : invoice_line_ids
|
|
|
|
legend right
|
|
Proyecto: SAP-TFI-2026
|
|
Agente: saptfi2026
|
|
Metodología: ICONIX
|
|
Fuente: Ingeniería inversa de Odoo 19.0
|
|
Solo campos y métodos relevantes para el flujo de venta
|
|
endlegend
|
|
|
|
@enduml
|
|
|
|
@startuml D-CLA-INT-001 — Diagrama de Clases - Integracion Venta-Stock-Contabilidad
|
|
|
|
title SAP-TFI-2026 — Diagrama de Clases Técnicas (Integración Venta/Stock/Contabilidad)
|
|
|
|
skinparam shadowing false
|
|
skinparam handwritten false
|
|
skinparam defaultFontName Arial
|
|
skinparam defaultFontSize 11
|
|
skinparam linetype ortho
|
|
skinparam backgroundColor white
|
|
|
|
class "<sale.order>" as SO {
|
|
+_name = "sale.order"
|
|
+_inherit = ["portal.mixin", "mail.thread", ...]
|
|
- -
|
|
+name: Char
|
|
+partner_id: Many2one(res.partner)
|
|
+state: Selection
|
|
+invoice_status: Selection
|
|
+amount_untaxed: Monetary
|
|
+amount_total: Monetary
|
|
- -
|
|
+action_confirm()
|
|
+action_quotation_send()
|
|
+_create_invoices()
|
|
}
|
|
|
|
class "<sale.order.line>" as SOL {
|
|
+_name = "sale.order.line"
|
|
- -
|
|
+order_id: Many2one(sale.order)
|
|
+product_id: Many2one(product.product)
|
|
+product_uom_qty: Float
|
|
+price_unit: Float
|
|
+discount: Float
|
|
+price_subtotal: Monetary
|
|
}
|
|
|
|
class "<stock.picking>" as SP {
|
|
+_name = "stock.picking"
|
|
+_inherit = ["mail.thread"]
|
|
- -
|
|
+name: Char
|
|
+partner_id: Many2one(res.partner)
|
|
+state: Selection
|
|
+picking_type_id: Many2one(stock.picking.type)
|
|
- -
|
|
+action_confirm()
|
|
+action_assign()
|
|
+button_validate()
|
|
}
|
|
|
|
class "<stock.move>" as SM {
|
|
+_name = "stock.move"
|
|
- -
|
|
+picking_id: Many2one(stock.picking)
|
|
+product_id: Many2one(product.product)
|
|
+product_uom_qty: Float
|
|
+state: Selection
|
|
- -
|
|
+action_confirm()
|
|
}
|
|
|
|
class "<account.move>" as AM {
|
|
+_name = "account.move"
|
|
- -
|
|
+name: Char
|
|
+partner_id: Many2one(res.partner)
|
|
+move_type: Selection
|
|
+state: Selection
|
|
+invoice_date: Date
|
|
+payment_state: Selection
|
|
- -
|
|
+action_post()
|
|
+action_register_payment()
|
|
}
|
|
|
|
class "<account.move.line>" as AML {
|
|
+_name = "account.move.line"
|
|
- -
|
|
+move_id: Many2one(account.move)
|
|
+product_id: Many2one(product.product)
|
|
+quantity: Float
|
|
+price_unit: Float
|
|
+price_subtotal: Monetary
|
|
}
|
|
|
|
SO "1" *- - "*" SOL : order_line
|
|
SO "1" *- - "*" AM : invoice_ids
|
|
SP "*" - -> "1" SO : sale_id
|
|
SP "1" *- - "*" SM : move_ids
|
|
SM "*" - -> "1" SOL : sale_line_id
|
|
AM "1" *- - "*" AML : line_ids
|
|
AM "*" - -> "1" SOL : invoice_line_ids
|
|
|
|
legend right
|
|
Proyecto: SAP-TFI-2026
|
|
Agente: saptfi2026
|
|
Metodología: ICONIX
|
|
Fuente: Ingeniería inversa de Odoo 19.0
|
|
Solo campos y métodos relevantes para el flujo de venta
|
|
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> |