Selaa lähdekoodia

FIX ADD Agregado report de utilidad sobre precio de ventas

Sebas 6 vuotta sitten
vanhempi
commit
59041d05e5

+ 57 - 54
static/src/js/reports/report_purchases_invoice_analysis.js

@@ -35,6 +35,7 @@ function report_purchases_invoice_analysis (reporting){
           this._super(parent);
         },
         start: function () {
+            var self = this;
             var table = this.$el.find('#table');
             table.bootstrapTable({data : self.rowsData});
             this.fecthFecha();
@@ -134,11 +135,11 @@ function report_purchases_invoice_analysis (reporting){
                 return self.fecthProductProduct();
             }).then(function(ProductProduct){
                 self.ProductProduct = ProductProduct;
-                return self.fecthProductCategory();
-            }).then(function(ProductCategory){
-                self.ProductCategory = ProductCategory;
+                return self.fecthCategory();
+            }).then(function(productCategory){
+                self.productCategory = productCategory;
                 self.$el.find('#current-category').append('<option value="9999999">Todos las categorias</option>');
-                _.each(ProductCategory, function (item) {
+                _.each(productCategory, function (item) {
                     self.$el.find('#current-category').append('<option value="' + item.id + '">' + item.name + '</option>');
                 });
                 return self.fecthResCompany();
@@ -216,19 +217,18 @@ function report_purchases_invoice_analysis (reporting){
                 return item.product_id[0];
             }));
             var ProductProduct =  new model.web.Model('product.product');
-            var fields = ['id','name', 'default_code', 'name_template','ean13', 'standard_price','type','attribute_str', 'categ_id'];
-            ProductProduct.query(fields).filter([['id', 'in', porductIDS]]).all().then(function (results) {
+            var fields = ['id','name', 'default_code', 'name_template','ean13', 'standard_price','type', 'categ_id','attribute_str'];
+            ProductProduct.query(fields).filter([['id', 'in', porductIDS],['active', '=', true]]).all().then(function (results) {
                 defer.resolve(results)
             });
             return defer;
         },
-        fecthProductCategory: function(){
+        fecthCategory: function () {
             var self = this;
             var defer = $.Deferred();
-            var fields = ['id','name'];
-            var ProductCategory =  new model.web.Model('product.category');
-            ProductCategory.query(fields).filter([['type', '=', 'normal']]).all().then(function (results) {
-              defer.resolve(results)
+            var productCategory = new model.web.Model('product.category');
+            productCategory.query(['id', 'name', 'type']).filter([['type', '=', 'normal']]).all().then(function (results) {
+                defer.resolve(results);
             });
             return defer;
         },
@@ -253,23 +253,25 @@ function report_purchases_invoice_analysis (reporting){
             return defer;
         },
         getAccountInvoice: function (id){
-            var self = this;
-            return _.find(self.AccountInvoice, function (inv) {
+            return _.find(this.AccountInvoice, function (inv) {
                 return _.contains(inv.invoice_line, id);
             });
         },
-        getProductProduct: function(id){
+        // Obtener las lineas de las Facturas
+        getProductProduct: function(pro_id){
             var self = this;
-            return _.find(self.ProductProduct, function(item){
-                return _.contains(id, item.id);
+            return _.find(self.ProductProduct, function(prod){
+                return _.contains(pro_id, prod.id);
             });
         },
+
         getResCurrencyRate: function (id){
             var self = this;
             return _.find(self.ResCurrencyRate,function (item) {
                 return _.contains(item.currency_id,id);
             });
         },
+
         getInvoiceCurrency: function(){
             var self = this;
             for (var i = 0; i < self.AccountInvoice.length; i++) {
@@ -294,61 +296,60 @@ function report_purchases_invoice_analysis (reporting){
         BuildTable: function(){
             var self = this;
             var data=[];
-            var AccountInvoiceLine = self.AccountInvoiceLine
+            var item;
             var invoice;
             var store;
-            var producto;
+            var producto = [];
             var invoice_type;
-            _.each(AccountInvoiceLine, function(item){
-                invoice = self.getAccountInvoice(item.id);
-                store = self.getAccountJournal(invoice.journal_id[0]);
-                producto =self.getProductProduct(item.product_id);
-                console.log(producto);
-                if (!producto){
-                    producto={};
-                    producto.standard_price=0;
-                }
+            for (var i = 0; i < this.AccountInvoiceLine.length; i++) {
+                item = this.AccountInvoiceLine[i];
+                invoice = this.getAccountInvoice(item.id);
                 if(invoice.origin == false){
                     invoice_type = 'expense'
                 }else{
                     invoice_type = 'purchase'
                 }
-                if(store.length > 0){
-                    data.push({
-                        id : invoice.id,
-                        number : (invoice.number),
-                        id_product : producto.id,
-                        name : (item.name),
-                        quantity : accounting.formatNumber((item.quantity),0, ".", ","),
-                        price_unity : accounting.formatNumber((item.price_unit / invoice.rate),2, ".", ","),
-                        standar_tot : accounting.formatNumber((item.quantity * item.price_unit),2, ".", ","),
-                        journal_id :(invoice.journal_id[0]),
-                        journal_name :(invoice.journal_id[1]),
-                        date_invoice : (invoice.date_invoice),
-                        partner_id : invoice.partner_id[0],
-                        date_create :moment(invoice.date_invoice).format("DD/MM/YYYY"),
-                        amount : (item.quantity * item.price_unit),
-                        partner_name : invoice.partner_id[1],
-                        categ_id: producto.categ_id[0],
-                        categ_name: producto.categ_id[1],
-                        invoice_type : invoice_type,
-                        store_id : store[0].store_ids[0]
-                    });
-                }
-            });
+                producto =this.getProductProduct(item.product_id);
 
+                if (producto != undefined){
+                    store = self.getAccountJournal(invoice.journal_id[0]);
+                    if(store.length > 0){
+                        data.push({
+                            id : invoice.id,
+                            number : (invoice.number),
+                            id_product : item.product_id[0],
+                            ean_product : self.valorNull(producto.ean13),
+                            name : (item.name),
+                            quantity : accounting.formatNumber((item.quantity),0, ".", ","),
+                            price_unity : accounting.formatNumber((item.price_unit / invoice.rate),2, ".", ","),
+                            standar_tot : accounting.formatNumber((item.quantity * item.price_unit),2, ".", ","),
+                            journal_id :(invoice.journal_id[0]),
+                            journal_name :(invoice.journal_id[1]),
+                            date_invoice : (invoice.date_invoice),
+                            partner_id : invoice.partner_id[0],
+                            date_create :moment(invoice.date_invoice).format("DD/MM/YYYY"),
+                            amount : (item.quantity * item.price_unit),
+                            partner_name : invoice.partner_id[1],
+                            categ_id : (producto.categ_id[0]),
+                            categ_name : (producto.categ_id[1]),
+                            invoice_type : invoice_type,
+                            store_id : store[0].store_ids[0]
+                        });
+                    }
+                }
+            }
             self.content = data;
             this.loadTable(data);
         },
         factSearch: function(){
             var self = this;
-            var category = this.$el.find('#current-category').val();
             var today = moment().format('YYYY-MM-DD');
             var yesterday = moment().add(-1, 'days').format('YYYY-MM-DD');
             var month = moment().format('YYYY-MM');
             var last_month = moment().add(-1, 'months').format('YYYY-MM');
             var partner = this.$el.find('#partner').val().split('-');
             var product = this.$el.find('#product').val().split('-');
+            var categ = this.$el.find('#current-category').val().split('-');
             var store =this.$el.find('#current-store').val();
             var desde =this.$el.find('#from').val();
             var hasta =this.$el.find('#to').val();
@@ -421,9 +422,9 @@ function report_purchases_invoice_analysis (reporting){
                 });
             }
 
-            if(category != 9999999){
+            if(categ != 9999999){
                 content = _.filter(content,function(inv){
-                    return inv.categ_id == category[0];
+                    return inv.categ_id == categ[0];
                 });
             }
 
@@ -545,9 +546,11 @@ function report_purchases_invoice_analysis (reporting){
                 styles: { overflow: 'linebreak', fontSize: 8, columnWidth: 'wrap'},
                 columnStyles: {
                     number: {fontStyle: 'bold'},
-                    date_create :{columnWidth: '12px'},
+                    date_create :{columnWidth: '13px'},
                     partner_name :{columnWidth: '10px'},
+                    ean_product:{columnWidth: '8px'},
                     name :{columnWidth: '10px'},
+                    categ_name : {columnWidth: '10px'},
                     quantity :{halign:'right' },
                     price_unity : {halign:'right' },
                     standar_tot : {halign:'right' },

+ 147 - 41
static/src/js/reports/report_sales_invoice_analysis.js

@@ -23,6 +23,9 @@ function report_sales_invoice_analysis (reporting){
             'click #D' : 'fectSearch',
             'click #Z' : 'fectSearch',
             'change #current-store': 'fectSearch',
+            'change #current-journal': 'fectSearch',
+            'change #current-category' : 'fectSearch',
+            'change #user': 'fectSearch',
             'change #from' : 'fectSearch',
             'change #to': 'fectSearch',
             'click #volver_btn': 'volver',
@@ -121,13 +124,17 @@ function report_sales_invoice_analysis (reporting){
                return self.fecthResStore();
             }).then(function(ResStore){
                 self.ResStore = ResStore;
-                self.$el.find('#current-store').append('<option value="9999999">Todas las SUC.</option>');
+                self.$el.find('#current-store').append('<option value="9999999">Todas las Sucursales</option>');
                 _.each(ResStore,function(item){
                     self.$el.find('#current-store').append('<option value="' + item.id + '">' + item.name + '</option>');
                 });
                  return self.fecthAccountJournal();
             }).then(function(AccountJournal){
                 self.AccountJournal = AccountJournal;
+                self.$el.find('#current-journal').append('<option value="9999999">Todas las formas de pagos</option>');
+                _.each(AccountJournal,function(item){
+                    self.$el.find('#current-journal').append('<option value="' + item.id + '">' + item.name + '</option>');
+                });
                 return self.fetchInvoiceV2();
             }).then(function (invoices){
                 self.invoices = invoices;
@@ -137,14 +144,25 @@ function report_sales_invoice_analysis (reporting){
                 return self.fecthProduct(invoiceLines);
             }).then(function(ProductProduct){
                 self.ProductProduct = ProductProduct;
+                return self.fecthCategory();
+            }).then(function(productCategory){
+                self.productCategory = productCategory;
+                self.$el.find('#current-category').append('<option value="9999999">Todas las categorias</option>');
+                _.each(productCategory, function (item) {
+                    self.$el.find('#current-category').append('<option value="' + item.id + '">' + item.name + '</option>');
+                });
                 return self.fecthCompanyCurrency();
             }).then(function(resCompany){
                 self.resCompany = resCompany;
             return self.fetchResPartner();
             }).then(function(ResPartner){
                 self.ResPartner = ResPartner;
+                return self.fecthResUser();
+            }).then(function (ResUser) {
+                self.ResUser = ResUser;
                 self.search();
                 self.searchProduct();
+                self.searchUser();
                 return self.invoice_Currency();
             });
         },
@@ -267,7 +285,7 @@ function report_sales_invoice_analysis (reporting){
                 filter=filter.concat(",['journal_id', 'in',["+journal_ids+"]]");
             }
             filter=filter.concat("]");
-            var field =['id', 'type', 'number', 'origin', 'state', 'journal_id', 'currency_id', 'invoice_line','date_invoice','partner_id'];
+            var field =['id', 'type', 'number', 'origin', 'state', 'journal_id', 'currency_id', 'invoice_line','date_invoice','partner_id' ,'user_id'];
             var defer = $.Deferred();
             var Invoice = new model.web.Model('account.invoice');
             Invoice.query(field).filter(filter).all().then(function (results) {
@@ -299,6 +317,48 @@ function report_sales_invoice_analysis (reporting){
             return defer;
         },
 
+        fecthResUser: function() {
+            var self = this;
+            var defer = $.Deferred();
+            var user_ids = _.map(self.invoices,function(map){
+                return map.user_id[0];
+            });
+            var fields = ['id', 'name'];
+            var domain = [['id', 'in', user_ids]];
+            var ResUsers = new model.web.Model('res.users');
+            ResUsers.query(fields).filter(domain).all().then(function(results) {
+                defer.resolve(results);
+            });
+
+            return defer;
+        },
+
+        searchUser: function () {
+            var self = this;
+            var results = self.ResUser;
+            results = _.map(results, function (item) {
+                return {
+                        label: item.id + '-'+ item.name,
+                        value: item.id + '-'+ item.name
+                }
+            });
+            self.$('#user').autocomplete({
+                source: results,
+                minLength:0,
+                searchUser: function(event, ui) {
+                    if (!(self.$('#user').val())){
+                        self.fectSearch();
+                    }
+                },
+                close: function( event, ui ) {
+                        self.fectSearch();
+                },
+                select: function(event, ui) {
+                    self.fectSearch();
+                }
+            });
+        },
+
         // Product Product
         fecthProduct: function(invoiceLines){
             var defer = $.Deferred();
@@ -306,13 +366,24 @@ function report_sales_invoice_analysis (reporting){
                 return item.product_id[0];
             }));
             var ProductProduct =  new model.web.Model('product.product');
-            var fields = ['id','name', 'default_code', 'name_template','ean13', 'standard_price','type','attribute_str'];
+            var fields = ['id','name', 'default_code', 'name_template','ean13', 'standard_price','type', 'categ_id','attribute_str'];
             ProductProduct.query(fields).filter([['id', 'in', porductIDS]]).all().then(function (results) {
                 defer.resolve(results)
             });
             return defer;
         },
 
+        // Buscar Category
+        fecthCategory: function () {
+            var self = this;
+            var defer = $.Deferred();
+            var productCategory = new model.web.Model('product.category');
+            productCategory.query(['id', 'name', 'type']).filter([['type', '=', 'normal']]).all().then(function (results) {
+                defer.resolve(results);
+            });
+            return defer;
+        },
+
         // Obtener Monedas de la Factura
         getCurrency: function (id){
             return _.find(this.Currency,function (curr) {
@@ -364,41 +435,50 @@ function report_sales_invoice_analysis (reporting){
             var item;
             var invoice;
             var producto;
+            var attribute;
 
             for (var i = 0; i < this.invoiceLines.length; i++) {
                 item = this.invoiceLines[i];
                 invoice = this.getInvoice(item.id);
                 producto =this.getProduct(item.product_id);
 
-                if (!producto){
-                    producto={};
-                    producto.standard_price=0;
-                }
-                var store_id = self.getAccountJournal(invoice.journal_id[0]);
-                if(store_id.length > 0){
-                    data.push({
-                        id : invoice.id,
-                        number : (invoice.number),
-                        id_product : producto.id,
-                        name : (item.name),
-                        quantity : accounting.formatNumber((item.quantity),0, ".", ","),
-                        price_unity : accounting.formatNumber((item.price_unit / invoice.rate),2, ".", ","),
-                        standar_price : accounting.formatNumber((producto.standard_price),2, ".", ","),
-                        price_tot : accounting.formatNumber((item.quantity * (item.price_unit / invoice.rate)),2, ".", ","),
-                        standar_tot : accounting.formatNumber((item.quantity * producto.standard_price),2, ".", ","),
-                        utility : accounting.formatNumber(((item.quantity * (item.price_unit / invoice.rate)) - (item.quantity * producto.standard_price)),2, ".", ","),
-                        journal_id :(invoice.journal_id[0]),
-                        journal_name :(invoice.journal_id[1]),
-                        quantity_tot : (item.quantity),
-                        price_tot_tot : ((item.quantity * (item.price_unit / invoice.rate))),
-                        standar_tot_tot : ((item.quantity * producto.standard_price)),
-                        utility_tot : (((item.quantity * (item.price_unit / invoice.rate)) - (item.quantity * producto.standard_price))),
-                        date_create :moment(invoice.date_invoice).format("DD/MM/YYYY"),
-                        date_invoice : (invoice.date_invoice),
-                        partner_id : invoice.partner_id[0],
-                        partner_name : invoice.partner_id[1],
-                        store_id : store_id[0].store_ids[0],
-                    });
+                if (producto != undefined){
+                    if(producto.attribute_str){
+                        attribute = ' ' + self.valorNull(producto.attribute_str);
+                    }else{
+                        attribute = ' ';
+                    }
+                    var store_id = self.getAccountJournal(invoice.journal_id[0]);
+                    if(store_id.length > 0){
+                        data.push({
+                            id : invoice.id,
+                            number : (invoice.number),
+                            id_product : producto.id,
+                            ean_product : self.valorNull(producto.ean13),
+                            name : (item.name + attribute),
+                            quantity : accounting.formatNumber((item.quantity),0, ".", ","),
+                            price_unity : accounting.formatNumber((item.price_unit / invoice.rate),0, ".", ","),
+                            standar_price : accounting.formatNumber((producto.standard_price),0, ".", ","),
+                            price_tot : accounting.formatNumber((item.quantity * (item.price_unit / invoice.rate)),0, ".", ","),
+                            standar_tot : accounting.formatNumber((item.quantity * producto.standard_price),0, ".", ","),
+                            utility : accounting.formatNumber(((item.quantity * (item.price_unit / invoice.rate)) - (item.quantity * producto.standard_price)),0, ".", ","),
+                            journal_id :(invoice.journal_id[0]),
+                            journal_name :(invoice.journal_id[1]),
+                            quantity_tot : (item.quantity),
+                            price_tot_tot : ((item.quantity * (item.price_unit / invoice.rate))),
+                            standar_tot_tot : ((item.quantity * producto.standard_price)),
+                            utility_tot : (((item.quantity * (item.price_unit / invoice.rate)) - (item.quantity * producto.standard_price))),
+                            date_create :moment(invoice.date_invoice).format("DD/MM/YYYY"),
+                            date_invoice : (invoice.date_invoice),
+                            partner_id : invoice.partner_id[0],
+                            partner_name : invoice.partner_id[1],
+                            categ_id : (producto.categ_id[0]),
+                            categ_name : (producto.categ_id[1]),
+                            user_id : self.valorNull(invoice.user_id[0]),
+                            user_name : invoice.user_id[1],
+                            store_id : store_id[0].store_ids[0],
+                        });
+                    }
                 }
 
           }
@@ -413,10 +493,13 @@ function report_sales_invoice_analysis (reporting){
             var month = moment().format('YYYY-MM');
             var last_month = moment().add(-1, 'months').format('YYYY-MM');
             var partner = this.$el.find('#partner').val().split('-');
+            var user = this.$el.find('#user').val().split('-');
             var product = this.$el.find('#product').val().split('-');
+            var categ = this.$el.find('#current-category').val().split('-');
             var desde =this.$el.find('#from').val();
             var hasta =this.$el.find('#to').val();
             var store = this.$el.find('#current-store').val();
+            var journal = this.$el.find('#current-journal').val();
             var content = self.content;
 
             if ($('#A').is(":checked")){
@@ -474,6 +557,24 @@ function report_sales_invoice_analysis (reporting){
                 });
             }
 
+            if(journal != 9999999){
+                content =_.filter(content, function (inv){
+                    return inv.journal_id == journal;
+                });
+            }
+
+            if (user != ""){
+                content = _.filter(content, function(inv){
+                    return inv.user_id == user[0];
+                });
+            }
+
+            if (categ != 9999999){
+                content =_.filter(content, function (inv){
+                    return inv.categ_id == categ[0];
+                });
+            }
+
             var quantity_tot_total = _.reduce(_.map(content,function(map){
                 return(map.quantity_tot);
             }),function(memo, num){
@@ -594,17 +695,22 @@ function report_sales_invoice_analysis (reporting){
 
 
             pdfDoc.autoTable(getColumns, rows, {
-                styles: { overflow: 'linebreak', fontSize: 8, columnWidth: 'wrap'},
+                styles: { overflow: 'linebreak', fontSize: 7, columnWidth: 'wrap'},
                 columnStyles: {
                               number: {columnWidth: '13px'},
-                              date_create :{columnWidth: '13px'},
-                              name :{columnWidth: '8px'},
-                              quantity :{halign:'right',columnWidth: '5px'},
-                              price_unity : {halign:'right',columnWidth: '16px'},
-                              standar_price : {halign:'right',columnWidth: '8px'},
-                              price_tot : {halign:'right' ,columnWidth: '16px'},
-                              standar_tot : {halign:'right' ,columnWidth: '11px'},
-                              utility : {halign:'right',columnWidth: '9px'},
+                              date_create :{columnWidth: '30px'},
+                              partner_name:{columnWidth: '8px'},
+                              journal_name:{columnWidth: '8px'},
+                              ean_product:{columnWidth: '7px'},
+                              name :{columnWidth: '6px'},
+                              categ_name : {columnWidth: '3px'},
+                              quantity :{halign:'right',columnWidth: '9px'},
+                              price_unity : {halign:'right',columnWidth: '20px'},
+                              standar_price : {halign:'right',columnWidth: '14px'},
+                              price_tot : {halign:'right' ,columnWidth: '20px'},
+                              standar_tot : {halign:'right' ,columnWidth: '15px'},
+                              utility : {halign:'right',columnWidth: '18px'},
+                              user_name : {columnWidth: '3px'},
                           },
                 margin: { top: 16, horizontal: 7},
                 addPageContent: function (data) {

+ 4 - 4
static/src/js/reports/report_stock_original.js

@@ -123,9 +123,9 @@ function report_stock_original (reporting){
         fecthProductCategory: function(){
             var self = this;
             var defer = $.Deferred();
-            var fields = ['id','name'];
+            var fields = ['id','name', 'type'];
             var ProductCategory =  new instance.web.Model('product.category');
-            ProductCategory.query(fields).filter().all().then(function (results) {
+            ProductCategory.query(fields).filter([['type', '=', 'normal']]).all().then(function (results) {
               defer.resolve(results)
             });
             return defer;
@@ -172,7 +172,7 @@ function report_stock_original (reporting){
             _.each(ProductProduct, function(item){
 
                 if(item.attribute_str){
-                    attribute = '*' + item.attribute_str;
+                    attribute = ' ' + item.attribute_str;
                 }else{
                     attribute = ' ';
                 }
@@ -224,7 +224,7 @@ function report_stock_original (reporting){
 
         factSearch: function(){
             var self = this;
-            var category = this.$el.find('#current-category').val();
+            var category = this.$el.find('#current-category').val().split('-');
             var location =this.$el.find('#current-location').val();
             var content = self.content;
 

+ 5 - 4
static/src/reports/report_purchases_invoice_analysis.xml

@@ -64,8 +64,8 @@
                                     <input id="product" type="text" class="form-control ui-autocomplete-input" autocomplete="off" placeholder="Nombre/ Referencia/ Codigo de barras"/>
                                 </div>
                                 <div class="form-group">
-                                    <label for="current-category">Todas la categorias: </label>
-                                    <select id="current-category" class="form-control ui-autocomplete-input"  name="current-category"></select>
+                                    <label for="current-category">Todas las categorias: </label>
+                                    <select id="current-category" class="form-control ui-autocomplete-input"  name="category"></select>
                                 </div>
                                 <div class="form-group">
                                     <label for="current-store">Sucursal: </label>
@@ -108,8 +108,9 @@
                     <tr>
                         <th data-field="number" data-sortable="true">Factura</th>
                         <th data-field="date_create" data-sortable="true">Fecha</th>
-                        <th data-field="partner_name" >Proveedor</th>
-                        <th data-field="name" >Producto</th>
+                        <th data-field="partner_name" data-sortable="true">Proveedor</th>
+                        <th data-field="categ_name" data-sortable="true">Categoria</th>
+                        <th data-field="name" data-sortable="true">Producto</th>
                         <th data-field="quantity" data-sortable="true" data-align="right">Cantidad</th>
                         <th data-field="price_unity" data-sortable="true" data-align="right">Precio Unitario</th>
                         <th data-field="standar_tot" data-sortable="true" data-align="right">Total Costo</th>

+ 16 - 0
static/src/reports/report_sales_invoice_analysis.xml

@@ -59,6 +59,10 @@
                                     <label for="partner">Buscar Cliente</label>
                                     <input id="partner" type="text" class="form-control ui-autocomplete-input" autocomplete="off"/>
                                 </div>
+                                <div class="form-group">
+                                    <label for="current-category">Categoria:</label>
+                                    <select id="current-category" class="form-control ui-autocomplete-input" name="category"></select>
+                                </div>
                                 <div class="form-group">
                                     <label for="product">Buscar Producto</label>
                                     <input id="product" type="text" class="form-control ui-autocomplete-input" autocomplete="off" placeholder="Nombre/ Referencia/ Codigo de barras"/>
@@ -67,6 +71,14 @@
                                     <label for="current-store">Sucursal: </label>
                                     <select id="current-store" class="form-control ui-autocomplete-input" name="store"></select>
                                 </div>
+                                <div class="form-group">
+                                    <label for="current-journal">Formas de Pago: </label>
+                                    <select id="current-journal" class="form-control ui-autocomplete-input" name="journal"></select>
+                                </div>
+                                <div class="form-group">
+                                    <label for="user">Vendedor: </label>
+                                    <input id="user" type="text" class="form-control ui-autocomplete-input" autocomplete="off" placeholder="Nombre/ CI"/>
+                                </div>
                             </div>
                         </div>
                     </div>
@@ -90,14 +102,18 @@
               <tr>
                 <th data-field="number" data-sortable="true">Factura</th>
                 <th data-field="date_create" data-sortable="true">Fecha</th>
+                <th data-field="journal_name" data-sortable="true">Formas Pago</th>
                 <th data-field="partner_name" data-sortable="true">Cliente</th>
+                <th data-field="ean_product" data-sortable="true">Cod. Barra</th>
                 <th data-field="name" >Producto</th>
+                <th data-field="categ_name" data-sortable="true">Categoria</th>
                 <th data-field="quantity" data-sortable="true" data-align="right">Cant.</th>
                 <th data-field="price_unity" data-sortable="true" data-align="right">Precio Venta</th>
                 <th data-field="standar_price" data-sortable="true" data-align="right">Precio Costo</th>
                 <th data-field="price_tot" data-sortable="true" data-align="right">Total Venta</th>
                 <th data-field="standar_tot" data-sortable="true" data-align="right">Total Costo</th>
                 <th data-field="utility" data-sortable="true"  data-align="right">Utilidad</th>
+                <th data-field="user_name" data-sortable="true">Vendedor</th>
               </tr>
             </thead>
         </table>

+ 1 - 1
static/src/reports/report_stock_original.xml

@@ -24,7 +24,7 @@
                                                         <select id="current-location" class="form-control ui-autocomplete-input"  name="current-location"></select>
                                                     </div>
                                                     <div class="form-group">
-                                                        <label for="current-category">Todas la categorias: </label>
+                                                        <label for="current-category">Todas las categorias: </label>
                                                         <select id="current-category" class="form-control ui-autocomplete-input"  name="current-category"></select>
                                                     </div>
                                                     <h3>Stock</h3>