Browse Source

commit inicial

Rodney Elpidio Enciso Arias 6 năm trước cách đây
commit
6fa8b4c3f0

+ 4 - 0
__init__.py

@@ -0,0 +1,4 @@
+# -*- coding: utf-8 -*-
+
+from . import models
+# from . import reports

BIN
__init__.pyc


+ 26 - 0
__openerp__.py

@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+
+{
+    'name': 'Project Feature Dental Mocona',
+    'summary': 'Project Feature Dental Mocona',
+    'category': 'extra',
+    'version': '0.1',
+    'description': """
+    """,
+    'author': 'Trey (www.trey.es) - Eiru',
+    'website': 'https://www.eiru.com.py',
+    'depends': [
+        'product',
+        'account',
+        'sale',
+    ],
+    'data': [
+        'data/report_paperformat.xml',
+        'reports/ticket.xml',
+        # 'data/sequence.xml',
+        'views/project_task.xml',
+    ],
+    'test': [
+    ],
+    'installable': True,
+}

+ 20 - 0
data/report_paperformat.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data>
+        <record id="paperformat_project_features_dental_mocona" model="report.paperformat">
+            <field name="name">Project Feature Dental Mocona</field>
+            <field name="default" eval="True"/>
+            <field name="format">custom</field>
+            <field name="page_height">130</field>
+            <field name="page_width">130</field>
+            <field name="orientation">Portrait</field>
+            <field name="margin_top">1</field>
+            <field name="margin_bottom">3</field>
+            <field name="margin_left">3</field>
+            <field name="margin_right">3</field>
+            <field name="header_line" eval="False" />
+            <field name="header_spacing">0</field>
+            <field name="dpi">130</field>
+        </record>
+    </data>
+</openerp>

+ 20 - 0
data/sequence.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data noupdate="1">
+
+        <!-- Sequences for repair.workorder -->
+        <record id="seq_type_study_feature" model="ir.sequence.type">
+            <field name="name">Study Feature</field>
+            <field name="code">study.feature</field>
+        </record>
+
+        <record id="seq_study_feature" model="ir.sequence">
+            <field name="name">Study Feature</field>
+            <field name="code">study.feature</field>
+            <field name="prefix">O01- </field>
+            <field name="padding">4</field>
+            <field name="company_id" eval="False"/>
+        </record>
+
+    </data>
+</openerp>

+ 3 - 0
models/__init__.py

@@ -0,0 +1,3 @@
+# -*- coding: utf-8 -*-
+
+from . import project_task

BIN
models/__init__.pyc


+ 52 - 0
models/project_task.py

@@ -0,0 +1,52 @@
+# -*- coding: utf-8 -*-
+
+from openerp import api, models, fields
+
+class ProjectTask(models.Model):
+    _inherit = 'project.task'
+
+    higher = fields.Boolean('Superior')
+    lower = fields.Boolean('Inferior')
+
+    a1 = fields.Boolean('A1(0,5)')
+    a2 = fields.Boolean('A2(0,8)')
+
+    _defaults = {
+        'higher': True,
+        'a1': True,
+    }
+
+    @api.one
+    @api.onchange('lower')
+    def change_model_higher(self):
+        self.higher = not self.lower
+
+    @api.one
+    @api.onchange('higher')
+    def change_model_lower(self):
+        self.lower = not self.higher
+
+    @api.one
+    @api.onchange('a2')
+    def change_model_a1(self):
+        self.a1 = not self.a2
+
+    @api.one
+    @api.onchange('a1')
+    def change_model_a2(self):
+        self.a2 = not self.a1
+
+    phase_start = fields.Integer(
+        string='Fase',
+    )
+
+    phase_end = fields.Integer(
+        string='de'
+    )
+
+    aligner = fields.Selection(
+        selection = [
+            ('A1', 'Utilidad'),
+            ('gross_amount', 'Monto Bruto'),
+        ]
+    )

BIN
models/project_task.pyc


+ 3 - 0
reports/__init__.py

@@ -0,0 +1,3 @@
+# -*- coding: utf-8 -*-
+
+from . import parser

BIN
reports/__init__.pyc


+ 26 - 0
reports/parser.py

@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+
+from functools import partial
+from openerp.osv import osv
+from openerp import exceptions, _
+
+class MoconaReport(osv.AbstractModel):
+    _name = 'report.project_features_dental_mocona.mocona_report'
+
+    def render_html(self, cr, uid, ids, data=None, context=None):
+        report_obj = self.pool['report']
+        report_mocona_obj = self.pool['project.task']
+        report = report_obj._get_report_from_name(
+            cr, uid, 'project_features_dental_mocona.mocona_report')
+        selected_orders = report_mocona_obj.browse(
+            cr, uid, ids, context=context)
+
+        docargs = {
+            'doc_ids': ids,
+            'doc_model': report.model,
+            'docs': selected_orders,
+        }
+
+        return report_obj.render(
+            cr, uid, ids, 'project_features_dental_mocona.mocona_report',
+            docargs, context=context)

BIN
reports/parser.pyc


+ 152 - 0
reports/ticket.xml

@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data>
+
+        <!-- Declarar el informe -->
+        <report
+            id="action_project_feature_dental_mocona_report"
+            string="Ticket"
+            model="project.task"
+            report_type="qweb-pdf"
+            name="project_features_dental_mocona.mocona_report"
+            file="project_features_dental_mocona"
+         />
+
+        <record id="action_project_feature_dental_mocona_report" model="ir.actions.report.xml">
+            <field name="paperformat_id" ref="project_features_dental_mocona.paperformat_project_features_dental_mocona"/>
+        </record>
+
+        <!-- Informe -->
+        <template id="mocona_report">
+            <t t-call="report.html_container">
+                <t t-foreach="doc_ids" t-as="doc_id">
+                    <t t-raw="translate_doc(doc_id, doc_model, 'partner_id.lang', 'project_features_dental_mocona.dental_mocona_report_document')"/>
+                </t>
+            </t>
+        </template>
+
+        <template id="project_features_dental_mocona">
+            <div class="page">
+                <style>
+                    body {
+                        color: #000;
+                        font-family: Arial, Helvetica, sans-serif;
+                        font-size: 14px;
+                        letter-spacing: 0.0px;
+                        line-height: 20px;
+                        margin:0;
+                        padding:0;
+                        word-spacing:1px;
+                    }
+                    .text-lg {
+                        font-size: 18px;
+                        font-weight: bold;
+                    }
+                    .text-md {
+                        display: inline-block;
+                        font-size: 14px;
+                        font-weight: bold;
+                    }
+                    .bordered {
+                        border: 1px solid #000;
+                        padding: 10px;
+                    }
+                    .centered {
+                        position: absolute;
+                        left: -50%;
+                        top: -50%;
+                        max-width: 100%;
+                    }
+                    .bottom {
+                        position: absolute;
+                        bottom: 0px;
+                        max-width: 100%;
+                    }
+                    .top {
+                        position: absolute;
+                        top: 0px;
+                        max-width: 100%;
+                    }
+                    .separator {
+                        border-top: 1px solid #000;
+                        margin-top: 20px;
+                        margin-bottom: 20px;
+                    }
+                </style>
+                <div class="row">
+                    <div class="col-xs-12">
+                        <br/>
+                        Cliente: <span t-if="o.project_id.partner_id.name" t-field="o.project_id.partner_id.name"/>
+                        <br/>
+                        Doctor: <span t-if="o.project_id.partner_id.medic.name" t-field="o.project_id.partner_id.medic.name"/>
+                        <br/>
+                        <br/>
+                        Modelo:
+                            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
+                            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
+                            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
+                            Superior: <t t-if="o.higher == True"><span><strong>X</strong></span></t>
+                            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
+                            Inferior: <t t-if="o.lower == True"><span><strong>X</strong></span></t>
+                        <br/>
+                        Fase (Modelos):
+                            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
+                            &amp;nbsp;&amp;nbsp;
+                            <span t-if="o.phase_start" t-field="o.phase_start"/> <span><strong> / </strong></span> <span t-if="o.phase_start" t-field="o.phase_end"/>
+                        <br/>
+                        Alineador (Espesores):
+                            &amp;nbsp;&amp;nbsp;
+                            <span> A1 (0,5): </span> <t t-if="o.a1 == True"><span><strong> X </strong></span></t>
+                            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
+                            <span>A1 (0,8): </span> <t t-if="o.a2 == True"><span><strong> X </strong></span></t>
+                        <br/>
+                        <br/>
+                        Fecha:
+                            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
+                            desde
+                            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
+                            <span>_____/_____/_____</span>
+                            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
+                            hasta
+                            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
+                            <span>_____/_____/_____</span>
+                        <br/>
+                        <br/>
+                        Numero de lote:
+                            &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
+                            <span t-field="o.id"/>
+                    </div>
+                </div>
+                <!-- <div class="row">
+                    <div class="col-xs-12">
+                        <p class="text-center" style="margin-top: 10px; margin-bottom: 10px;"><span class="text-md">Fase (Modelos)</span></p>
+                        <br/>
+                        Superior: <t t-if="o.higher == True"><span><strong>X</strong></span></t>
+                        <br/>
+                        Inferior: <t t-if="o.higher == True"><span><strong>X</strong></span></t>
+                    </div>
+                </div> -->
+                <!-- <t t-if="o.partner_id.company_id">
+                    <div class="row"><div class="col-xs-12"><div class="separator"/></div></div>
+                    <div class="row">
+                        <div class="col-xs-12">
+                            <p class="text-center" style="margin-top: 10px; margin-bottom: 10px;"><span class="text-md"><span t-if="o.partner_id.company_id.name" t-field="o.partner_id.company_id.name"/></span></p>
+                            <br/>
+                            Teléfono: <span t-if="o.partner_id.company_id.phone" t-field="o.partner_id.company_id.phone"/>
+                            <br/>
+                            Direccion: <span t-if="o.partner_id.company_id.street" t-field="o.partner_id.company_id.street"/><t t-if="o.partner_id.company_id.city">, <span t-field="o.partner_id.company_id.city"/></t><t t-if="o.partner_id.company_id.country_id.name">, <span t-field="o.partner_id.company_id.country_id.name"/></t>
+                        </div>
+                    </div>
+                </t> -->
+            </div>
+        </template>
+
+        <!-- Contenido del informe -->
+        <template id="dental_mocona_report_document">
+            <t t-call="report.html_container">
+                <t t-call="project_features_dental_mocona.project_features_dental_mocona"/>
+            </t>
+        </template>
+
+    </data>
+</openerp>

+ 34 - 0
views/project_task.xml

@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<openerp>
+    <data>
+
+        <!-- form view -->
+
+        <record id="project_task_feature_form" model="ir.ui.view">
+            <field name="name">project.task.feature.form</field>
+            <field name="model">project.task</field>
+            <field name="inherit_id" ref="project.view_task_form2"/>
+            <field name="arch" type="xml">
+                <xpath expr="//notebook/page[@string='Extra Info']" position="after">
+                    <page string="Historial" groups="base.group_user">
+                        <group>
+                            <group string="Modelo">
+                                <field name="higher" class="oe_inline"/>
+                                <field name="lower" class="oe_inline"/>
+                            </group>
+                            <group string="Fase (Modelos)">
+                                <field name="phase_start"/>
+                                <field name="phase_end"/>
+                            </group>
+                            <group string="Alineador (Espesores)">
+                                <field name="a1" class="oe_inline"/>
+                                <field name="a2" class="oe_inline"/>
+                            </group>
+                        </group>
+
+                    </page>
+				</xpath>
+            </field>
+        </record>
+    </data>
+</openerp>