búsqueda en el TPV por referencia, autor, género y editorial.

backup files atacks again...
This commit is contained in:
santiky 2021-08-09 19:43:59 +02:00
parent f6023acc5a
commit 22d71e80dc
Signed by: snt
GPG key ID: A9FD34930EADBE71
7 changed files with 82 additions and 136 deletions

1
.gitignore vendored
View file

@ -129,3 +129,4 @@ dmypy.json
# Pyre type checker
.pyre/
*~

View file

@ -4,20 +4,23 @@
'name': 'Product Library',
'category': 'Product',
'summary': 'Add library related fields to product',
'version': '0.1',
'version': '12.0.1.0.0',
'description': """
Add several fields to product for libraries
Addon mejora de Odoo para librerías y tiendas de discos
==================================================
Autor, coleccion, ISBN,....
* Añade campos a product: Editorial, autor, género, formato,...
* Hace búsquedas en el TPV y backend en esos campos nuevos
""",
'author': 'Criptomart',
'depends': ['product'],
'depends': [
'product',
'point_of_sale',
],
'data': [
'views/product.xml',
#'views/templates.xml',
'data/product_code_sequence.xml',
'views/templates.xml'
],
'demo': [],
'installable': True,

View file

@ -13,12 +13,15 @@ Autor, coleccion, ISBN,....
""",
'author': 'Criptomart',
'depends': ['product'],
'depends': [
'product',
'point_of_sale',
],
'data': [
'views/product.xml',
#'views/templates.xml',
'data/product_code_sequence.xml',
'views/templates.xml'
],
'demo': [],
'installable': True,
'auto_install': False,
'application': True,

View file

@ -1,113 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- últimas referencias de sigelib
DD-LP0880
DD-CD2514
DD-SG0668
DD-LB0710
DD-LX0491
DD-DVD0207
DD-TX0061
-->
<openerp>
<data noupdate="1">
<!-- <record id="seq_type_product_code_lp" model="ir.sequence.type">
<field name="name">Product Code LP</field>
<field name="code">product.template.code.lp</field>
</record>
<record id="seq_type_product_code_k7" model="ir.sequence.type">
<field name="name">Product Code K7</field>
<field name="code">product.template.code.k7</field>
</record>
<record id="seq_type_product_code_cd" model="ir.sequence.type">
<field name="name">Product Code CD</field>
<field name="code">product.template.code.cd</field>
</record>
<record id="seq_type_product_code_sg" model="ir.sequence.type">
<field name="name">Product Code SG</field>
<field name="code">product.template.code.sg</field>
</record>
<record id="seq_type_product_code_vi" model="ir.sequence.type">
<field name="name">Product Code video</field>
<field name="code">product.template.code.vi</field>
</record>
<record id="seq_type_product_code_tx" model="ir.sequence.type">
<field name="name">Product Code Textil</field>
<field name="code">product.template.code.tx</field>
</record>
<record id="seq_type_product_code_lb" model="ir.sequence.type">
<field name="name">Product Code Libros</field>
<field name="code">product.template.code.lb</field>
</record>
<record id="seq_type_product_code_lx" model="ir.sequence.type">
<field name="name">Product Code Libelos</field>
<field name="code">product.template.code.lx</field>
</record>
-->
<record id="seq_product_code_lp" model="ir.sequence">
<field name="name">Product Code LP</field>
<field name="code">product.template.code.lp</field>
<field name="prefix">DD-LP</field>
<field name="number_next">3057</field>
<field name="padding">4</field>
<field name="company_id" eval="False"/>
</record>
<record id="seq_product_code_k7" model="ir.sequence">
<field name="name">Product Code Casete</field>
<field name="code">product.template.code.k7</field>
<field name="prefix">DD-K7</field>
<field name="number_next">3006</field>
<field name="padding">4</field>
<field name="company_id" eval="False"/>
</record>
<record id="seq_product_code_cd" model="ir.sequence">
<field name="name">Product Code CD</field>
<field name="code">product.template.code.cd</field>
<field name="prefix">DD-CD</field>
<field name="number_next">3040</field>
<field name="padding">4</field>
<field name="company_id" eval="False"/>
</record>
<record id="seq_product_code_sg" model="ir.sequence">
<field name="name">Product Code Single</field>
<field name="code">product.template.code.sg</field>
<field name="prefix">DD-SG</field>
<field name="number_next">3022</field>
<field name="padding">4</field>
<field name="company_id" eval="False"/>
</record>
<record id="seq_product_code_lb" model="ir.sequence">
<field name="name">Product Code Libro</field>
<field name="code">product.template.code.lb</field>
<field name="prefix">DD-LB</field>
<field name="number_next">3055</field>
<field name="padding">4</field>
<field name="company_id" eval="False"/>
</record>
<record id="seq_product_code_lx" model="ir.sequence">
<field name="name">Product Code Libelos</field>
<field name="code">product.template.code.lx</field>
<field name="prefix">DD-LX</field>
<field name="number_next">3015</field>
<field name="padding">4</field>
<field name="company_id" eval="False"/>
</record>
<record id="seq_product_code_vi" model="ir.sequence">
<field name="name">Product Code Video</field>
<field name="code">product.template.code.vi</field>
<field name="prefix">DD-VI</field>
<field name="number_next">3002</field>
<field name="padding">4</field>
<field name="company_id" eval="False"/>
</record>
<record id="seq_product_code_tx" model="ir.sequence">
<field name="name">Product Code Textil</field>
<field name="code">product.template.code.tx</field>
<field name="prefix">DD-TX</field>
<field name="number_next">3019</field>
<field name="padding">4</field>
<field name="company_id" eval="False"/>
</record>
</data>
</openerp>

View file

@ -0,0 +1,28 @@
odoo.define('product_library', function (require) {
"use strict";
var db = require("point_of_sale.DB");
db.include({
_product_search_string: function(product){
var str = product.name;
if(product.default_code){
str += '|' + product.default_code;
}
if(product.autor){
str += '|' + product.autor;
}
if(product.genero){
str += '|' + product.genero;
}
if(product.editorial){
str += '|' + product.editorial;
}
str = '' + product.id + ':' + str.replace(':','') + '\n';
return str;
},
});
return db;
});

View file

@ -0,0 +1,28 @@
odoo.define('product_library.product_library', function (require) {
"use strict";
var models = require('point_of_sale.models');
var screens = require('point_of_sale.screens');
var core = require('web.core');
var gui = require('point_of_sale.gui');
var _t = core._t;
/* ********************************************************
Overload models.PosModel
******************************************************** */
var _super_posmodel = models.PosModel.prototype;
models.PosModel = models.PosModel.extend({
initialize: function (session, attributes) {
this.member_categories = [];
var product_model = _.find(this.models, function(model){ return model.model === 'product.product'; });
product_model.fields.push('default_code');
product_model.fields.push('autor');
product_model.fields.push('editorial');
product_model.fields.push('genero');
return _super_posmodel.initialize.apply(this, arguments);
}
});
});

View file

@ -1,14 +1,10 @@
<openerp>
<data>
<template id="report_external_layout_header_custom" inherit_id="report.external_layout_header" name="Report Layout Header NIF" priority="17">
<xpath expr="//div[@t-field='company.partner_id']" position="before">
<!-- <div t-field="company.partner_id"
t-field-options="{'widget': 'contact',
'fields': ['address','name'],
'no_marker': true }"
/> -->
<span t-field="company.vat" />
</xpath>
</template>
</data>
</openerp>
<odoo>
<template id="assets_backend" name="product_library" inherit_id="point_of_sale.assets">
<xpath expr="." position="inside">
<script type="text/javascript" src="/product_library/static/src/js/product_library.js"></script>
<script type="text/javascript" src="/product_library/static/src/js/db.js"/>
</xpath>
</template>
</odoo>