Browse Source

ADD FIX Actualización de eiru reporting totales en vista de reportes y agregar filtro de metodo de pago y ctas a pagar para restaurant

Sebas 7 years ago
parent
commit
fb486a3ac8

+ 16 - 6
static/src/js/configuration_reporting.js

@@ -44,22 +44,22 @@ function configuration_reporting (instance, widget) {
                 action: 'ReportRankingSalesOrdersCustomer'
             },
             {
-                title: 'Histórico de Punto de Venta',
-                description: 'Permite realizar un listado de la cabecera de ventas en punto de venta.',
+                title: 'Histórico de Ventas',
+                description: 'Permite realizar un listado de la cabecera de ventas.',
                 action: 'ReportPos'
             },
             {
-                title: 'Analisis de ventas (POS)',
+                title: 'Analisis de ventas',
                 description: 'Permite visualizar de forma global los ingresos obtenidos por la empresa.',
                 action: 'ReportPosOrders'
             },
             {
-                title: 'Ranking Productos más Vendidos de Punto de Venta',
-                description: 'Permite realizar un analisis de los Productos más Vendidos de Punto de Venta.',
+                title: 'Ranking Productos más Vendidos',
+                description: 'Permite realizar un analisis de los Productos más Vendidos.',
                 action: 'RankingPosOrdersProductcy'
             },
             {
-                title: 'Ranking de Clientes (Punto de Venta)',
+                title: 'Ranking de Clientes',
                 description: 'Permite visualizar el ranking de clientes.',
                 action: 'ReportRankingPosOrdersCustomer'
             },
@@ -113,6 +113,16 @@ function configuration_reporting (instance, widget) {
                 description: 'Permite visualizar un listado de cuentas a cobrar.',
                 action: 'ReportingAccountPending'
             },
+            {
+                title: 'Listado de Cuentas Vencidas a Pagar',
+                description: 'Permite visualizar un listado de cuentas vencidas a pagar.',
+                action: 'ReportingAccountPendingaPagar'
+            },
+            {
+                title: 'Listado de Cuentas a Pagar',
+                description: 'Permite visualizar un listado de cuentas a pagar.',
+                action: 'ReportingAccountaPagar'
+            },
             {
                 title: 'Informe de Trabajos',
                 description: 'Permite visualizar los trabajos facturados y no facturados.',

+ 7 - 0
static/src/js/main.js

@@ -25,6 +25,8 @@ openerp.eiru_reporting = function (instance) {
         report_phonecall(reporting);
         report_project(reporting);
         reporting_account(reporting);
+        reporting_accountpending_pagar(reporting);
+        reporting_account_apagar(reporting);
         reporting_accountpending(reporting);
         report_works(reporting);
         report_pos(reporting);
@@ -89,6 +91,11 @@ openerp.eiru_reporting = function (instance) {
     // Ranking proveedores
     instance.web.client_actions.add('eiru_reporting.suppliers_ranking_action_report', 'instance.eiru_reporting.ReportRankingPurchasesOrdersSupplierWidget');
 
+    // Listado de cuentas a cobrar Vencidas
+    instance.web.client_actions.add('eiru_reporting.accountpendingapagar_detail_action_report', 'instance.eiru_reporting.ReportingAccountPendingPagarWidget');
+    // Listado de cuentas a cobrar
+    instance.web.client_actions.add('eiru_reporting.accountpending_detail_action_report', 'instance.eiru_reporting.ReportingAccountaPagarWidget');
+
 
     // ******************************************* CRM ***************************************************************************
     // CRM

+ 27 - 0
static/src/js/reports/report_mensajecrm.js

@@ -18,7 +18,12 @@ function report_mensajecrm(reporting){
             'click #C' : 'factSearch',
             'click #D' : 'factSearch',
             'click #Z' : 'factSearch',
+            'click #done' : 'factSearch',
+            'click #open' : 'factSearch',
+            'click #cancel' : 'factSearch',
+            'click #pending' : 'factSearch',
 
+            'click #W' : 'factSearch',
             'click #Y' : 'factSearch',
             'click #customer' : 'factSearch',
 
@@ -370,6 +375,28 @@ function report_mensajecrm(reporting){
                  $('#datepicker').css('display','none');
              }
 
+             if ($('#cancel').is(":checked")){
+                 content = _.filter(content, function (inv){
+                     return inv.stage == 'cancel';
+                 });
+             }
+             if ($('#open').is(":checked")){
+                 content = _.filter(content, function (inv){
+                     return inv.stage == 'open';
+                 });
+             }
+
+             if ($('#pending').is(":checked")){
+                 content = _.filter(content, function (inv){
+                     return inv.stage == 'pending';
+                 });
+             }
+             if ($('#done').is(":checked")){
+                 content = _.filter(content, function (inv){
+                     return inv.stage == 'done';
+                 });
+             }
+
              if (partner != ""){
                  content = _.filter(content, function(inv){
                      return inv.partner_id == partner[0];

+ 21 - 6
static/src/js/reports/report_mrp.js

@@ -19,6 +19,10 @@ function report_mrp(reporting){
             'click #D' : 'factSearch',
             'click #Z' : 'factSearch',
 
+            'click #done' : 'factSearch',
+            'click #in_production' : 'factSearch',
+
+            'click #W' : 'factSearch',
             'click #Y' : 'factSearch',
             'click #product' : 'factSearch',
 
@@ -196,9 +200,9 @@ function report_mrp(reporting){
                         self.showMensaje('mrp');
                         return defer;
                     }
-
+                    var filter = [['state','in',['in_production','done']]];
                     var Mrp = new instance.web.Model('mrp.production');
-                    Mrp.query(['id', 'name', 'product_id', 'date_planned', 'product_qty', 'create_date', 'state']).filter().all().then(function(results){
+                    Mrp.query(['id', 'name', 'product_id', 'date_planned', 'product_qty', 'create_date', 'state']).filter(filter).all().then(function(results){
                         defer.resolve(results);
                     });
 
@@ -278,7 +282,7 @@ function report_mrp(reporting){
                      var hoy = moment().format('YYYY-MM-DD');
                      var desde = this.$el.find('#from').val();
                      var hasta = this.$el.find('#to').val();
-                     var partner= this.$el.find('#product').val().split('-');
+                     var product= this.$el.find('#product').val();
                      var content = self.content;
 
                      if ($('#A').is(":checked")){
@@ -346,11 +350,22 @@ function report_mrp(reporting){
                          $('#datepicker').css('display','none');
                      }
 
-                     if (product != ""){
-                         content = _.filter(content, function(inv){
-                             return inv.id == product[0];
+                     if ($('#in_production').is(":checked")){
+                         content = _.filter(content, function (inv){
+                             return inv.state == 'in_production';
                          });
                      }
+                     if ($('#done').is(":checked")){
+                         content = _.filter(content, function (inv){
+                             return inv.state == 'done';
+                         });
+                     }
+
+                     // if (product != ""){
+                     //     content = _.filter(content, function(inv){
+                     //         return inv.id == product[0];
+                     //     });
+                     // }
                      self.loadTable(content)
                 },
 

+ 23 - 25
static/src/js/reports/report_pos.js

@@ -189,16 +189,12 @@ function report_pos(reporting){
             return defer;
         },
 
-        // Obtener
         fetchStatementLine: function(PosOrder) {
             var self = this;
             var defer = $.Deferred();
-            var statement_ids = _.flatten(_.map(self.PosOrder, function (item) {
-                return item.statement_ids;
-            }));
 
             var fields = ['id', 'name', 'amount', 'journal_id', 'pos_statement_id'];
-            var domain = [['pos_statement_id','in', statement_ids],['amount','>', 0]];
+            var domain = [['amount','>', 0]];
             var StatementLine = new instance.web.Model('account.bank.statement.line');
             StatementLine.query(fields).filter(domain).all().then(function (results) {
                 defer.resolve(results);
@@ -268,7 +264,7 @@ function report_pos(reporting){
         getStatementLine: function(id){
             var self = this;
             return _.filter(self.StatementLine, function(item){
-                return item.pos_statement_id[0] == id;
+                return item.pos_statement_id[0] === id;
             });
         },
 
@@ -276,24 +272,26 @@ function report_pos(reporting){
             var self = this;
             var PosOrder = self.PosOrder;
             var data = [];
-            var invoice = [];
+            var order = [];
             var amount_total_total=0;
             _.each(PosOrder, function(item){
-                invoice = self.getStatementLine(item.id).shift();
-                data.push({
-                    id : item.id,
-                    number: item.name,
-                    origin: item.session_id[1],
-                    partner: item.partner_id[1],
-                    date_invoice: moment(item.date_order).format("DD/MM/YYYY"),
-                    amount_total: accounting.formatNumber(item.amount_total,0,".",","),
-                    date: item.date_order,
-                    partner_id : item.partner_id[0],
-                    amount : item.amount_total,
-                    journal: invoice.journal_id[0],
-                    namejournal: invoice.journal_id[1],
-                    user: item.user_id[1]
-                });
+                order = self.getStatementLine(item.id);
+                if(order.length > 0){
+                    data.push({
+                        id : item.id,
+                        number: item.name,
+                        origin: item.session_id[1],
+                        partner: item.partner_id[1],
+                        date_invoice: moment(item.date_order).format("DD/MM/YYYY"),
+                        amount_total: accounting.formatNumber(item.amount_total,0,".",","),
+                        date: item.date_order,
+                        partner_id : item.partner_id[0],
+                        amount : item.amount_total,
+                        journal_id: order[0].journal_id[0],
+                        journal_name: order[0].journal_id[1],
+                        user: item.user_id[1]
+                    });
+                }
             });
 
             self.content = data;
@@ -369,10 +367,9 @@ function report_pos(reporting){
             }else{
                 $('#datepicker').css('display','none');
             }
-            if(journal != 9999999){
+            if (journal != 9999999){
                 content = _.filter(content,function(inv){
-
-                    return inv.journal == journal;
+                    return inv.journal_id == journal[0];
                 });
             }
             if (partner != ""){
@@ -437,6 +434,7 @@ function report_pos(reporting){
                 this.drawPDF(_.flatten(getColumns),rows);
             }
         },
+
         drawPDF: function (getColumns,rows) {
             var self = this;
             var desde =(this.$el.find('#from').val());

+ 1 - 1
static/src/js/reports/report_pos_orders.js

@@ -370,7 +370,7 @@ function report_pos_orders(reporting){
             }
 
             var amount_total_total = _.reduce(_.map(content,function(map){
-                return(map.amount);
+                return(map.price_subtotal_total);
             }),function(memo, num){
                 return memo + num;
             },0);

+ 0 - 29
static/src/js/reports/report_purchases_invoice_analysis.js

@@ -478,35 +478,6 @@ function report_purchases_invoice_analysis (reporting){
                 });
                 this.drawPDF(_.flatten(getColumns),rows)
             }
-            // if (action === 'chart'){
-            //     var suc =this.$el.find('#current-journal').val();
-            //     if (suc == 9999999){
-            //         self.fectCharFilter();
-            //     }else{
-            //         $("#dialog" ).dialog({
-            //             autoOpen: true,
-            //             resizable: false,
-            //             modal: true,
-            //             title: 'Atención',
-            //             open: function() {
-            //                 $(this).html('Para Generar el Gráfico debes Seleccionar todas las Sucursales');
-            //             },
-            //             show: {
-            //                 effect: "shake",
-            //                 duration: 300
-            //             },
-            //             hide: {
-            //                 effect: "fade",
-            //                 duration: 300
-            //             },
-            //             buttons: {
-            //                 Aceptar: function() {
-            //                     $(this).dialog('close');
-            //                 }
-            //             }
-            //         });
-            //     }
-            // }
         },
         drawPDF: function (getColumns,rows) {
             var self = this;

+ 18 - 0
static/src/js/reports/report_sales.js

@@ -237,6 +237,24 @@ function report_sales(reporting){
                     return inv.partner_id == partner[0];
                 });
             }
+
+            var tot_amount = _.reduce(_.map(rows,function(map){
+                return(map.amount);
+            }),function(memo, num){
+                return memo + num;
+            },0);
+            var tot_residual = _.reduce(_.map(rows,function(map){
+                return(map.total_residual);
+            }),function(memo, num){
+                return memo + num;
+            },0);
+
+            content.push({
+                number: "Total",
+                amount_total: accounting.formatNumber((tot_amount),0,".",","),
+                residual: accounting.formatNumber((tot_residual),0,".",","),
+            });
+
             self.loadTable(content)
         },
         loadTable:function(rowsTable){

+ 12 - 0
static/src/js/reports/report_stock.js

@@ -223,6 +223,18 @@ function report_stock (reporting){
                     return inv.id == product[0];
                 });
             }
+
+            var amount_total_total = _.reduce(_.map(content,function(map){
+                return(map.total);
+            }),function(memo, num){
+                return memo + num;
+            },0);
+
+            content.push({
+                product: "Total",
+                valuation: accounting.formatNumber((amount_total_total),0,".",","),
+            });
+
             self.loadTable(content)
         },
         loadTable:function(rowsTable){

+ 12 - 0
static/src/js/reports/report_stock_move.js

@@ -359,6 +359,18 @@ function report_stock_move(reporting){
                     return inv.location_dest_id == location_dest_id;
                 });
             }
+
+            var amount_total_total = _.reduce(_.map(content,function(map){
+                return(map.product_uom_qty);
+            }),function(memo, num){
+                return memo + num;
+            },0);
+
+            content.push({
+                picking_name: "Total",
+                product_uom_qty: accounting.formatNumber((amount_total_total),0,".",","),
+            });
+
             self.loadTable(content)
         },
         loadTable:function(rowsTable){

+ 454 - 0
static/src/js/reports/reporting_account_apagar.js

@@ -0,0 +1,454 @@
+function reporting_account_apagar (reporting){
+    "use strict";
+
+    var instance = openerp;
+
+    reporting.ReportingAccountaPagarWidget = reporting.Base.extend({
+        template: 'ReportingAccountaPagar',
+        AccountVoucher: [],
+        content:[],
+        rowsData :[],
+        moveLine: [],
+        resCompany: [],
+        resCurrecy: [],
+        content: [],
+        modelId: [],
+        accountInvoice: [],
+
+        events:{
+            'click #toolbar > button' : 'clickOnAction',
+
+            'click #X' : 'factSearch',
+            'click #A' : 'factSearch',
+            'click #B' : 'factSearch',
+            'click #C' : 'factSearch',
+            'click #D' : 'factSearch',
+            'click #Z' : 'factSearch',
+            'click #Y' : 'factSearch',
+            'change #current-journal' : 'factSearch',
+
+            'change #from' : 'factSearch',
+            'change #to' : 'factSearch',
+            'click-row.bs.table #table ' : 'clickAnalysisDetail',
+        },
+        init : function(parent){
+            this._super(parent);
+        },
+        start: function () {
+            var self = this;
+            var table = this.$el.find('#table');
+            table.bootstrapTable({data : self.rowsData});
+            this.fecthFecha();
+            this.submitForm();
+        },
+        valorNull:function(dato){
+            var valor ="";
+            if (dato){
+                valor=dato;
+            }
+            return valor;
+        },
+        clickAnalysisDetail: function(e, row, $element, field){
+            if (field == 'reference'){
+                this.do_action({
+                    name:"Factura",
+                    type: 'ir.actions.act_window',
+                    res_model: "account.invoice",
+                    views: [[false,'form']],
+                    target: 'new',
+                    domain: [['id','=', row.invoice_id]],
+                    context: {},
+                    flags: {'form': {'action_buttons': false, 'options': {'mode': 'view'}}},
+                    res_id: row.invoice_id,
+                });
+            }
+            if (field === 'partner'){
+                this.do_action({
+                    name:"Registro",
+                    type: 'ir.actions.act_window',
+                    res_model: "res.partner",
+                    views: [[false,'form']],
+                    target: 'new',
+                    domain: [['id','=', row.partner_id]],
+                    context: {},
+                    flags: {'form': {'action_buttons': false, 'options': {'mode': 'view'}}},
+                    res_id: row.partner_id,
+                });
+            }
+            e.stopImmediatePropagation();
+        },
+        submitForm: function () {
+            var self = this;
+            self.fetchMoveLine().then(function(moveLine) {
+                return moveLine;
+            }).then(function (moveLine) {
+                self.moveLine = _.filter(moveLine, function(item) {
+                    return item.amount_residual > 0;
+                });
+                return self.fetchInvoice(moveLine);
+            }).then(function(accountInvoice) {
+                self.accountInvoice = accountInvoice;
+                return self.fetchResPartner();
+            }).then(function(ResPartner){
+                self.ResPartner=ResPartner;
+                return self.fetchGetModelId();
+            }).then(function(modelId) {
+                self.modelId= modelId;
+                return self.fetchReduceMoveLine();
+            });
+        },
+
+
+        // getModelId
+        fetchGetModelId: function() {
+            var self = this;
+            var defer = $.Deferred();
+            var irModelData = new instance.web.Model('ir.model.data');
+            var getObtjectReference = irModelData.get_func('get_object_reference');
+
+            this.alive(getObtjectReference('account', 'invoice_form')).then(function(results) {
+                defer.resolve(results);
+            });
+
+            return defer;
+        },
+
+        fecthFecha: function() {
+            var to;
+            var dateFormat1 = "mm/dd/yy",
+            from = $( "#from" )
+            .datepicker({
+                dateFormat: "dd/mm/yy",
+                changeMonth: true,
+                numberOfMonths: 1,
+            })
+            .on( "change", function() {
+                to.datepicker( "option", "minDate", getDate(this), "dd/mm/yyyy");
+            });
+            to = $( "#to" ).datepicker({
+                dateFormat: "dd/mm/yy",
+                defaultDate: "+7d",
+                changeMonth: true,
+                numberOfMonths: 1,
+            })
+            .on( "change", function() {
+                from.datepicker( "option", "maxDate", getDate(this));
+            });
+
+            function getDate( element ) {
+                var fechaSel =element.value.split('/');
+                var date;
+                try {
+                    date = $.datepicker.parseDate( dateFormat1, (fechaSel[1]+"/"+fechaSel[0]+"/"+fechaSel[2]));
+                } catch( error ) {
+                    date = null;
+                }
+                return date;
+            }
+        },
+        // Move line
+        fetchMoveLine: function () {
+            var self = this;
+            var hoy = moment().format('YYYY-MM-DD');
+            var defer = $.Deferred();
+            var field = ['id', 'partner_id', 'amount_residual', 'credit', 'debit', 'date_maturity', 'ref', 'invoice', 'amount_residual_currency','state'];
+            var domain = [['debit', '<=', 0], ['date_maturity', '<', hoy]];
+            var moveLine = new instance.web.Model('account.move.line');
+
+            moveLine.query(field).filter(domain).all().then(function(results) {
+                defer.resolve(results);
+            });
+
+            return defer;
+        },
+        fetchResPartner: function () {
+            var self = this;
+            var defer = $.Deferred();
+            var ResPartner = new instance.web.Model('res.partner');
+            ResPartner.query(['id','name','ruc']).filter([['active', '=', true]]).all().then(function(results){
+                defer.resolve(results);
+            });
+            return defer;
+        },
+        // invoice
+        fetchInvoice: function(moveline) {
+            var self = this ;
+            var defer = $.Deferred()
+            var ref = _.map(moveline, function(map) {
+                return map.invoice[0];
+            });
+            var fields = ['id', 'currency_id', 'number'];
+            var domain = [['id', 'in', ref]];
+            var accountInvoice = new instance.web.Model('account.invoice');
+            accountInvoice.query(fields).filter(domain).all().then(function(results) {
+                defer.resolve(results);
+            });
+
+            return defer;
+        },
+
+        getAccountInvoice: function (id) {
+            var self = this;
+            return _.filter(self.AccountInvoice,function (item) {
+                return item.invoice[0] == id;
+            });
+        },
+
+        search: function () {
+            var self = this;
+            var results = self.ResPartner;
+            results = _.map(results, function (item) {
+                return {
+                        label: item.id + '-'+ item.name + ' ' + self.valorNull(item.ruc),
+                        value: item.id + '-'+ item.name + ' ' + self.valorNull(item.ruc)
+                }
+            });
+            self.$('#partner').autocomplete({
+                source: results,
+                minLength:0,
+                search: function(event, ui) {
+                    if (!(self.$('#partner').val())){
+                        self.factSearch();
+                    }
+                },
+                close: function( event, ui ) {
+                        self.factSearch();
+                },
+                select: function(event, ui) {
+                    self.factSearch();
+                }
+            });
+        },
+
+        fetchReduceMoveLine: function(){
+            var self = this;
+            var MoveLine = self.moveLine;
+            var invoice;
+            var data = [];
+            _.each(MoveLine, function(item){
+
+                invoice = self.getAccountInvoice(item.id);
+
+                data.push({
+                    id : item.id,
+                    reference: item.ref,
+                    number: item.number,
+                    date_maturity: moment(item.date_maturity).format("DD/MM/YYYY"),
+                    partner: item.partner_id[1],
+                    date: item.date_maturity,
+                    amount_residual: accounting.formatNumber(item.amount_residual,0,".",","),
+                    partner_id: item.partner_id[0],
+                    total_residual: item.amount_residual,
+                    invoice_id: item.invoice[0]
+                });
+            });
+            self.content = data;
+            this.loadTable(data);
+        },
+        factSearch: function(){
+            var self = this;
+            var hoy = moment().format('YYYY-MM-DD');
+            //var journal = this.$el.find('#current-journal').val();
+            var desde = this.$el.find('#from').val();
+            var hasta = this.$el.find('#to').val();
+            var partner= this.$el.find('#partner').val().split('-');
+
+            var content = self.content;
+            if ($('#A').is(":checked")){
+                content = _.filter(content, function (inv){
+                    return inv.date == hoy;
+                });
+            }
+            if ($('#B').is(":checked")){
+                var date = hoy.split('-');
+                var ayer = date[2] - 1;
+                date.splice(2,0);
+                if(date[2] < 10){
+                    date[2] = '0'+ayer;
+                }else{
+                    date[2] = ayer;
+                }
+                content = _.filter(content, function (inv){
+                    return inv.date == date[0]+'-'+date[1]+'-'+date[2];
+                });
+            }
+            if ($('#C').is(":checked")){
+                var date = hoy.split('-');
+                content = _.filter(content, function (inv){
+                    var mes = inv.date.split('-');
+                    return mes[0]+'-'+mes[1] == date[0]+'-'+date[1];
+                });
+            }
+            if ($('#D').is(":checked")){
+                var date = hoy.split('-');
+                var mes = date[1] - 1;
+                var year;
+                date.splice(1,0);
+                if(date[1] == 1){
+                    date[1] = '12';
+                    year = date[0] - 1;
+                    date[0] = year;
+                }else{
+
+                 if(date[1] < 10){
+                     date[1] = '0'+mes;
+                 }else{
+                     date[1] = mes;
+                 }
+                }
+                content = _.filter(content, function (inv){
+                    var mes = inv.date.split('-');
+                    return mes[0]+'-'+mes[1] == date[0]+'-'+date[1];
+                });
+            }
+            if ($('#Z').is(":checked")){
+                $('#datepicker').css('display','block');
+                if (desde.length > 0){
+                    var date= desde.split('/');
+                    content = _.filter(content, function (inv){
+                        return inv.date >= (date[2]+"-"+date[1]+"-"+date[0]);
+                    });
+                }
+                if (hasta.length > 0){
+                    var date= hasta.split('/');
+                    content = _.filter(content, function (inv){
+                        return inv.date <= (date[2]+"-"+date[1]+"-"+date[0]);
+                    });
+                }
+            }else{
+                $('#datepicker').css('display','none');
+            }
+            if (partner != ""){
+                content = _.filter(content, function(inv){
+                    return inv.partner_id == partner[0];
+                });
+            }
+
+            var amount_total_amount = _.reduce(_.map(content,function(map){
+                return(map.total_residual);
+            }),function(memo, num){
+                return memo + num;
+            },0);
+
+            content.push({
+                reference: "Total",
+                amount_residual: accounting.formatNumber((amount_total_amount),0,".",","),
+            });
+
+            self.loadTable(content)
+        },
+
+        loadTable:function(rowsTable){
+            var self = this;
+            self.rowsData = rowsTable;
+            var table = this.$el.find('#table');
+            table.bootstrapTable('load',rowsTable);
+        },
+        getObjetPdf: function(rowsTable){
+            var self = this;
+            var rowsPdf=[];
+            var rows=[];
+            var rows = self.rowsData;
+            var total_residual = _.reduce(_.map(rows,function(map){
+                return(map.total_residual);
+            }),function(memo, num){
+                return memo + num;
+            },0);
+
+            if (rows.length > 0){
+                rows.push({
+                    reference: "Total a Pagar",
+                    partner: "",
+                    date_maturity: "",
+                    amount_residual: accounting.formatNumber((total_residual),0,".",","),
+
+                });
+            }
+
+            return rows;
+        },
+        clickOnAction: function (e) {
+            var self = this;
+            var rowsNew;
+            var action = self.$el.find(e.target).val();
+            var table = self.$el.find("#table");
+            var data2 = table.bootstrapTable('getVisibleColumns');
+            var getColumns=[];
+            var rows=[];
+            rowsNew = self.getObjetPdf();
+            if (action === 'pdf') {
+                var dataNEW = _.map(data2, function (val){
+                    return val.field;
+                });
+                _.each(rowsNew,function (item){
+                    rows.push(_.pick(item, dataNEW));
+                });
+                // Obtener los nombre de la Cabezera
+                _.each(_.map(data2,function(val){
+                        return val;
+                    }), function(item){
+                            getColumns.push([{
+                                        title: item.title,
+                                        dataKey: item.field
+                                    }]);
+                });
+                this.drawPDF(_.flatten(getColumns),rows);
+            }
+        },
+        drawPDF: function (getColumns,rows) {
+            var self = this;
+            var desde =(this.$el.find('#from').val());
+            var hasta =(this.$el.find('#to').val());
+            var totalPagesExp = "{total_pages_count_string}";
+            var pdfDoc = new jsPDF();
+
+            pdfDoc.autoTable(getColumns, rows, {
+                styles: { overflow: 'linebreak', fontSize: 8, columnWidth: 'wrap'},
+                columnStyles: {
+                    id : {columnWidth: '6px'},
+                    reference : {columnWidth: '10px'},
+                    partner : {columnWidth: '10px'},
+                    date_maturity : {columnWidth: '6px'},
+                    amount_residual : {halign:'right', columnWidth: '8px'}
+                },
+                margin: { top: 16, horizontal: 7},
+
+                addPageContent: function (data) {
+                    pdfDoc.setFontSize(12);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text('Listado de cuentas a pagar vencidos', data.settings.margin.left, 10);
+
+                    if(desde.length > 0 || hasta.length > 0){
+                        var fecha='';
+                        if(desde){
+                            fecha=fecha.concat(' Desde '+desde);
+                        }
+                        if (hasta){
+                            fecha=fecha.concat(' Hasta '+hasta);
+                        }
+                        pdfDoc.setFontSize(10);
+                        pdfDoc.setFontStyle('bold');
+                        pdfDoc.setTextColor(40)
+                        pdfDoc.text(fecha, data.settings.margin.left,14);
+                    }
+                    // FOOTER
+                    var str = "Pagina  " + data.pageCount;
+                    // Total page number plugin only available in jspdf v1.0+
+                    if (typeof pdfDoc.putTotalPages === 'function') {
+                        str = str + " de " + totalPagesExp;
+                    }
+                    pdfDoc.setFontSize(9);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(str, data.settings.margin.left, pdfDoc.internal.pageSize.height - 5);
+                    }
+            });
+
+            if (typeof pdfDoc.putTotalPages === 'function') {
+                pdfDoc.putTotalPages(totalPagesExp);
+            }
+            pdfDoc.save('Listado de cuentas a pagar vencidos.pdf')
+        },
+    });
+}

+ 455 - 0
static/src/js/reports/reporting_accountpending_pagar.js

@@ -0,0 +1,455 @@
+function reporting_accountpending_pagar (reporting){
+    "use strict";
+
+    var instance = openerp;
+
+    reporting.ReportingAccountPendingPagarWidget = reporting.Base.extend({
+        template: 'ReportingAccountPendingaPagar',
+        AccountVoucher: [],
+        content:[],
+        rowsData :[],
+        moveLine: [],
+        resCompany: [],
+        resCurrecy: [],
+        content: [],
+        modelId: [],
+        accountInvoice: [],
+
+        events:{
+            'click #toolbar > button' : 'clickOnAction',
+
+            'click #X' : 'factSearch',
+            'click #A' : 'factSearch',
+            'click #B' : 'factSearch',
+            'click #C' : 'factSearch',
+            'click #D' : 'factSearch',
+            'click #Z' : 'factSearch',
+
+            'click #Y' : 'factSearch',
+
+            'change #current-journal' : 'factSearch',
+
+            'change #from' : 'factSearch',
+            'change #to' : 'factSearch',
+            'click #volver_btn': 'volver',
+            'click-row.bs.table #table ' : 'clickAnalysisDetail',
+        },
+        init : function(parent){
+            this._super(parent);
+        },
+        start: function () {
+            var self = this;
+            var table = this.$el.find('#table');
+            table.bootstrapTable({data : self.rowsData});
+            this.fecthFecha();
+            this.submitForm();
+        },
+        valorNull:function(dato){
+            var valor ="";
+            if (dato){
+                valor=dato;
+            }
+            return valor;
+        },
+        clickAnalysisDetail: function(e, row, $element, field){
+            if (field == 'reference'){
+                this.do_action({
+                    name:"Factura",
+                    type: 'ir.actions.act_window',
+                    res_model: "account.invoice",
+                    views: [[false,'form']],
+                    target: 'new',
+                    domain: [['id','=', row.invoice_id]],
+                    context: {},
+                    flags: {'form': {'action_buttons': false, 'options': {'mode': 'view'}}},
+                    res_id: row.invoice_id,
+                });
+            }
+            if (field === 'partner'){
+                this.do_action({
+                    name:"Registro",
+                    type: 'ir.actions.act_window',
+                    res_model: "res.partner",
+                    views: [[false,'form']],
+                    target: 'new',
+                    domain: [['id','=', row.partner_id]],
+                    context: {},
+                    flags: {'form': {'action_buttons': false, 'options': {'mode': 'view'}}},
+                    res_id: row.partner_id,
+                });
+            }
+            e.stopImmediatePropagation();
+        },
+        submitForm: function () {
+            var self = this;
+            self.fetchMoveLine().then(function(moveLine) {
+                return moveLine;
+            }).then(function (moveLine) {
+                self.moveLine = _.filter(moveLine, function(item) {
+                    return item.amount_residual > 0;
+                });
+                return self.fetchInvoice(moveLine);
+            }).then(function(accountInvoice) {
+                self.accountInvoice = accountInvoice;
+                return self.fetchResPartner();
+            }).then(function(ResPartner){
+                self.ResPartner=ResPartner;
+                return self.fetchGetModelId();
+            }).then(function(modelId) {
+                self.modelId= modelId;
+                return self.fetchReduceMoveLine();
+            });
+        },
+
+        // getModelId
+        fetchGetModelId: function() {
+            var self = this;
+            var defer = $.Deferred();
+            var irModelData = new instance.web.Model('ir.model.data');
+            var getObtjectReference = irModelData.get_func('get_object_reference');
+
+            this.alive(getObtjectReference('account', 'invoice_form')).then(function(results) {
+                defer.resolve(results);
+            });
+
+            return defer;
+        },
+
+        volver: function(){
+            this.$el.find('#volver').empty();
+            this.$el.find('.bootstrap-table').show({
+                effect: 'drop',
+                direction: 'down',
+                duration: 200,
+            });
+        },
+
+        fecthFecha: function() {
+            var to;
+            var dateFormat1 = "mm/dd/yy",
+            from = $( "#from" )
+            .datepicker({
+                dateFormat: "dd/mm/yy",
+                changeMonth: true,
+                numberOfMonths: 1,
+            })
+            .on( "change", function() {
+                to.datepicker( "option", "minDate", getDate(this), "dd/mm/yyyy");
+            });
+            to = $( "#to" ).datepicker({
+                dateFormat: "dd/mm/yy",
+                defaultDate: "+7d",
+                changeMonth: true,
+                numberOfMonths: 1,
+            })
+            .on( "change", function() {
+                from.datepicker( "option", "maxDate", getDate(this));
+            });
+
+            function getDate( element ) {
+                var fechaSel =element.value.split('/');
+                var date;
+                try {
+                    date = $.datepicker.parseDate( dateFormat1, (fechaSel[1]+"/"+fechaSel[0]+"/"+fechaSel[2]));
+                } catch( error ) {
+                    date = null;
+                }
+                return date;
+            }
+        },
+        // Move line
+        fetchMoveLine: function () {
+            var self = this;
+            var hoy = moment().format('YYYY-MM-DD');
+            var defer = $.Deferred();
+            var field = ['id', 'partner_id', 'amount_residual', 'credit', 'debit', 'date_maturity', 'ref', 'invoice', 'amount_residual_currency','state'];
+            var domain = [['debit', '<=', 0], ['date_maturity', '>=', hoy]];
+            var moveLine = new instance.web.Model('account.move.line');
+
+            moveLine.query(field).filter(domain).all().then(function(results) {
+                defer.resolve(results);
+            });
+
+            return defer;
+        },
+        fetchResPartner: function () {
+            var self = this;
+            var defer = $.Deferred();
+            var ResPartner = new instance.web.Model('res.partner');
+            ResPartner.query(['id','name','ruc']).filter([['active', '=', true]]).all().then(function(results){
+                defer.resolve(results);
+            });
+            return defer;
+        },
+        // invoice
+        fetchInvoice: function(moveline) {
+            var self = this ;
+            var defer = $.Deferred()
+            var ref = _.map(moveline, function(map) {
+                return map.invoice[0];
+            });
+            var fields = ['id', 'currency_id', 'number'];
+            var domain = [['id', 'in', ref]];
+            var accountInvoice = new instance.web.Model('account.invoice');
+            accountInvoice.query(fields).filter(domain).all().then(function(results) {
+                defer.resolve(results);
+            });
+
+            return defer;
+        },
+
+        getAccountInvoice: function (id) {
+            var self = this;
+            return _.filter(self.AccountInvoice,function (item) {
+                return item.invoice[0] == id;
+            });
+        },
+
+        search: function () {
+            var self = this;
+            var results = self.ResPartner;
+            results = _.map(results, function (item) {
+                return {
+                        label: item.id + '-'+ item.name + ' ' + self.valorNull(item.ruc),
+                        value: item.id + '-'+ item.name + ' ' + self.valorNull(item.ruc)
+                }
+            });
+            self.$('#partner').autocomplete({
+                source: results,
+                minLength:0,
+                search: function(event, ui) {
+                    if (!(self.$('#partner').val())){
+                        self.factSearch();
+                    }
+                },
+                close: function( event, ui ) {
+                        self.factSearch();
+                },
+                select: function(event, ui) {
+                    self.factSearch();
+                }
+            });
+        },
+        fetchReduceMoveLine: function(){
+            var self = this;
+            var MoveLine = self.moveLine;
+            var invoice;
+            var data = [];
+            _.each(MoveLine, function(item){
+
+                invoice = self.getAccountInvoice(item.id);
+
+                data.push({
+                    id : item.id,
+                    reference: item.ref,
+                    number: item.number,
+                    date_maturity: moment(item.date_maturity).format("DD/MM/YYYY"),
+                    partner: item.partner_id[1],
+                    date: item.date_maturity,
+                    amount_residual: accounting.formatNumber(item.amount_residual,0,".",","),
+                    partner_id: item.partner_id[0],
+                    total_residual: item.amount_residual,
+                    invoice_id: item.invoice[0]
+                });
+            });
+            self.content = data;
+            this.loadTable(data);
+        },
+        factSearch: function(){
+            var self = this;
+            var hoy = moment().format('YYYY-MM-DD');
+            //var journal = this.$el.find('#current-journal').val();
+            var desde = this.$el.find('#from').val();
+            var hasta = this.$el.find('#to').val();
+            var partner= this.$el.find('#partner').val().split('-');
+            var content = self.content;
+            if ($('#A').is(":checked")){
+                content = _.filter(content, function (inv){
+                    return inv.date == hoy;
+                });
+            }
+            if ($('#B').is(":checked")){
+                var date = hoy.split('-');
+                var ayer = date[2] + 1;
+                date.splice(2,0);
+                if(date[2] < 10){
+                    date[2] = '0'+ayer;
+                }else{
+                    date[2] = ayer;
+                }
+                content = _.filter(content, function (inv){
+                    return inv.date == date[0]+'-'+date[1]+'-'+date[2];
+                });
+            }
+            if ($('#C').is(":checked")){
+                var date = hoy.split('-');
+                content = _.filter(content, function (inv){
+                    var mes = inv.date.split('-');
+                    return mes[0]+'-'+mes[1] == date[0]+'-'+date[1];
+                });
+            }
+            if ($('#D').is(":checked")){
+                var date = moment(hoy).add(1,'months').format('YYYY-MM-DD');
+                var date1 = date.split('-');
+                var mes = date1[1];
+                var year;
+                date1.splice(1,0);
+
+                date1[1] = mes;
+
+                content = _.filter(content, function (inv){
+                    var mes = inv.date.split('-');
+                    return mes[0]+'-'+mes[1] == date1[0]+'-'+date1[1];
+                });
+            }
+            if ($('#Z').is(":checked")){
+                $('#datepicker').css('display','block');
+                if (desde.length > 0){
+                    var date= desde.split('/');
+                    content = _.filter(content, function (inv){
+                        return inv.date >= (date[2]+"-"+date[1]+"-"+date[0]);
+                    });
+                }
+                if (hasta.length > 0){
+                    var date= hasta.split('/');
+                    content = _.filter(content, function (inv){
+                        return inv.date <= (date[2]+"-"+date[1]+"-"+date[0]);
+                    });
+                }
+            }else{
+                $('#datepicker').css('display','none');
+            }
+            if (partner != ""){
+                content = _.filter(content, function(inv){
+                    return inv.partner_id == partner[0];
+                });
+            }
+
+            var amount_total_amount = _.reduce(_.map(content,function(map){
+                return(map.total_residual);
+            }),function(memo, num){
+                return memo + num;
+            },0);
+
+            content.push({
+                reference: "Total",
+                amount_residual: accounting.formatNumber((amount_total_amount),0,".",","),
+            });
+
+            self.loadTable(content)
+        },
+        loadTable:function(rowsTable){
+            var self = this;
+            self.rowsData = rowsTable;
+            var table = this.$el.find('#table');
+            table.bootstrapTable('load',rowsTable);
+        },
+        getObjetPdf: function(rowsTable){
+            var self = this;
+            var rowsPdf=[];
+            var rows=[];
+            var rows = self.rowsData;
+
+            var total_residual = _.reduce(_.map(rows,function(map){
+                return(map.total_residual);
+            }),function(memo, num){
+                return memo + num;
+            },0);
+
+            if (rows.length > 0){
+                rows.push({
+                    reference: "Total a Pagar",
+                    partner: "",
+                    date_maturity: "",
+                    amount_residual: accounting.formatNumber((total_residual),0,".",","),
+
+                });
+            }
+
+            return rows;
+        },
+        clickOnAction: function (e) {
+            var self = this;
+            var rowsNew;
+            var action = self.$el.find(e.target).val();
+            var table = self.$el.find("#table");
+            var data2 = table.bootstrapTable('getVisibleColumns');
+            var getColumns=[];
+            var rows=[];
+            rowsNew = self.getObjetPdf();
+            if (action === 'pdf') {
+                var dataNEW = _.map(data2, function (val){
+                    return val.field;
+                });
+                _.each(rowsNew,function (item){
+                    rows.push(_.pick(item, dataNEW));
+                });
+                // Obtener los nombre de la Cabezera
+                _.each(_.map(data2,function(val){
+                        return val;
+                    }), function(item){
+                            getColumns.push([{
+                                        title: item.title,
+                                        dataKey: item.field
+                                    }]);
+                });
+                this.drawPDF(_.flatten(getColumns),rows);
+            }
+        },
+        drawPDF: function (getColumns,rows) {
+            var self = this;
+            var desde =(this.$el.find('#from').val());
+            var hasta =(this.$el.find('#to').val());
+            var totalPagesExp = "{total_pages_count_string}";
+            var pdfDoc = new jsPDF();
+
+            pdfDoc.autoTable(getColumns, rows, {
+                styles: { overflow: 'linebreak', fontSize: 8, columnWidth: 'wrap'},
+                columnStyles: {
+                    id : {columnWidth: '6px'},
+                    reference : {columnWidth: '10px'},
+                    partner : {columnWidth: '10px'},
+                    date_maturity : {columnWidth: '6px'},
+                    amount_residual : {halign:'right', columnWidth: '8px'}
+                },
+                margin: { top: 16, horizontal: 7},
+
+                addPageContent: function (data) {
+                    pdfDoc.setFontSize(12);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text('Listado de cuentas a pagar no vencidas', data.settings.margin.left, 10);
+
+                    if(desde.length > 0 || hasta.length > 0){
+                        var fecha='';
+                        if(desde){
+                            fecha=fecha.concat(' Desde '+desde);
+                        }
+                        if (hasta){
+                            fecha=fecha.concat(' Hasta '+hasta);
+                        }
+                        pdfDoc.setFontSize(10);
+                        pdfDoc.setFontStyle('bold');
+                        pdfDoc.setTextColor(40)
+                        pdfDoc.text(fecha, data.settings.margin.left,14);
+                    }
+                    // FOOTER
+                    var str = "Pagina  " + data.pageCount;
+                    // Total page number plugin only available in jspdf v1.0+
+                    if (typeof pdfDoc.putTotalPages === 'function') {
+                        str = str + " de " + totalPagesExp;
+                    }
+                    pdfDoc.setFontSize(9);
+                    pdfDoc.setFontStyle('bold');
+                    pdfDoc.setTextColor(40);
+                    pdfDoc.text(str, data.settings.margin.left, pdfDoc.internal.pageSize.height - 5);
+                    }
+            });
+
+            if (typeof pdfDoc.putTotalPages === 'function') {
+                pdfDoc.putTotalPages(totalPagesExp);
+            }
+            pdfDoc.save('Listado de cuentas a pagar no vencidas.pdf')
+        },
+    });
+}

+ 26 - 2
static/src/reports/report_mensajecrm.xml

@@ -4,7 +4,6 @@
         <div class="report_view">
             <div class="reporting_page_header">
                 <h1>Histórico de Mensaje CRM</h1>
-                <button onclick="window.history.back()">Atrás</button>
             </div>
             <button type="button" class="oe_button oe_form_button oe_highlight" aria-label="Left Align" data-toggle="collapse" href="#collapseExample" aria-expanded="false" aria-controls="collapseExample">FILTRAR
             </button>
@@ -59,6 +58,31 @@
                                     <label for="partner">Buscar Cliente:</label>
                                     <input id="partner" type="text" class="form-control ui-autocomplete-input" autocomplete="off" placeholder="Nombre/ CI/ Ruc"/>
                                 </div>
+                                <div class="col-xs-6">
+                                    <h3>Estado</h3>
+                                    <ul class="list-unstyled">
+                                        <li>
+                                            <input type="radio" name="estado" id="W" value="W" checked="checked"/>
+                                            <label for="W">Sin Filtro</label>
+                                        </li>
+                                        <li>
+                                            <input type="radio" name="estado" id="open" value="open"/>
+                                            <label for="open">Abierto</label>
+                                        </li>
+                                        <li>
+                                            <input type="radio" name="estado" id="pending" value="pending"/>
+                                            <label for="pending">Pendiente</label>
+                                        </li>
+                                        <li>
+                                            <input type="radio" name="estado" id="cancel" value="cancel"/>
+                                            <label for="cancel">Cancelado</label>
+                                        </li>
+                                        <li>
+                                            <input type="radio" name="estado" id="done" value="done"/>
+                                            <label for="done">Realizado</label>
+                                        </li>
+                                    </ul>
+                                </div>
                             </div>
                         </div>
                     </div>
@@ -67,7 +91,7 @@
             <div id="toolbar">
                 <button class="oe_button oe_form_button oe_highlight" value="pdf" id="pdf">PDF</button>
             </div>
-            <table id="table" 
+            <table id="table"
                 data-pagination="true"
                 data-toggle="table"
                 data-reorderable-columns="true"

+ 19 - 7
static/src/reports/report_mrp.xml

@@ -50,18 +50,30 @@
                             </div>
                         </div>
                     </div>
-                    <!-- <div class="col-xs-6">
+                    <div class="col-xs-6">
                         <div class="panel panel-default">
-                            <div class="panel-heading">Por Producto</div>
+                            <div class="panel-heading">Características</div>
                             <div class="panel-body">
-
-                                <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/ CI"/>
+                                <div class="col-xs-6">
+                                    <h3>Estado</h3>
+                                    <ul class="list-unstyled">
+                                        <li>
+                                            <input type="radio" name="estado" id="W" value="W" checked="checked"/>
+                                            <label for="W">Sin Filtro</label>
+                                        </li>
+                                        <li>
+                                            <input type="radio" name="estado" id="in_production" value="in_production"/>
+                                            <label for="in_production">En Producción</label>
+                                        </li>
+                                        <li>
+                                            <input type="radio" name="estado" id="done" value="done"/>
+                                            <label for="done">Realizado</label>
+                                        </li>
+                                    </ul>
                                 </div>
                             </div>
                         </div>
-                    </div> -->
+                    </div>
                 </div>
             </div>
             <div id="toolbar">

+ 2 - 2
static/src/reports/report_pos.xml

@@ -3,7 +3,7 @@
     <t t-name="ReportPos">
         <div class="report_view">
             <div class="reporting_page_header">
-                <h1>Histórico de Punto de Ventas</h1>
+                <h1>Histórico de Ventas</h1>
             </div>
             <button type="button" class="oe_button oe_form_button oe_highlight" aria-label="Left Align" data-toggle="collapse" href="#collapseExample" aria-expanded="false" aria-controls="collapseExample">FILTRAR
             </button>
@@ -90,7 +90,7 @@
                         <th data-field="partner">Cliente</th>
                         <th data-field="date_invoice" data-sortable="true">Fecha</th>
                         <th data-field="amount_total" data-sortable="true" data-align="right">Total</th>
-                        <th data-field="namejournal">Metodo de pago</th>
+                        <th data-field="journal_name">Metodo de pago</th>
                         <th data-field="user" data-sortable="true">Vendedor</th>
                     </tr>
                 </thead>

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

@@ -3,7 +3,7 @@
       <t t-name="ReportPosOrders">
         <div class="report_view">
           <div class="reporting_page_header">
-            <h1>Análisis de Punto de Venta</h1>
+            <h1>Análisis de Ventas</h1>
             <div id="volver"></div>
           </div>
           <button type="button" class="oe_button oe_form_button oe_highlight" aria-label="Left Align" data-toggle="collapse" href="#collapseExample" aria-expanded="false" aria-controls="collapseExample">FILTRAR

+ 101 - 0
static/src/reports/reporting_account_apagar.xml

@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<template xml:space="preserve">
+    <t t-name="ReportingAccountaPagar">
+        <div class="report_view">
+            <div class="reporting_page_header">
+                <h1>Listado de cuentas a pagar vencidas</h1>
+            </div>
+            <button type="button" class="oe_button oe_form_button oe_highlight" aria-label="Left Align" data-toggle="collapse" href="#collapseExample" aria-expanded="false" aria-controls="collapseExample">FILTRAR
+            </button>
+            <div class="collapse" id="collapseExample">
+                <br/>
+                <div class="row">
+                    <div class="col-xs-6">
+                        <div class="panel panel-default">
+                            <div class="panel-heading">Fechas</div>
+                            <div class="panel-body">
+                                <ul class="list-unstyled">
+                                    <li>
+                                        <input type="radio" name="valores" id="X" value="X" checked="checked"/>
+                                        <label for="X">Sin Filtro</label>
+                                    </li>
+                                    <li>
+                                        <input type="radio" name="valores" id="A" value="A"/>
+                                        <label for="A">Hoy</label>
+                                    </li>
+                                    <li>
+                                        <input type="radio" name="valores" id="B" value="B"/>
+                                        <label for="B">Ayer</label>
+                                    </li>
+                                    <li>
+                                        <input type="radio" name="valores" id="C" value="C"/>
+                                        <label for="C">Mes Actual</label>
+                                    </li>
+                                    <li>
+                                        <input type="radio" name="valores" id="D" value="D"/>
+                                        <label for="D">Mes Pasado</label>
+                                    </li>
+                                    <li>
+                                        <input type="radio" name="valores" id="Z" value="Z"/>
+                                        <label for="Z">Busqueda Avanzada</label>
+                                    </li>
+                                </ul>
+                                <div id="datepicker" style="display:none;" class="container">
+                                    <label for="from">Desde: </label>
+                                    <input type="text"  id="from" name="from"/>
+                                    <label for="to" >Hasta: </label>
+                                    <input type="text"  id="to" name="to" />
+                                </div>
+
+                            </div>
+                        </div>
+                    </div>
+                    <div class="col-xs-6">
+                        <div class="panel panel-default">
+                            <div class="panel-heading">Características</div>
+                            <div class="panel-body">
+                                <ul class="list-unstyled">
+                                    <li>
+                                        <label for="Y">Proveedor</label>
+                                    </li>
+
+                                </ul>
+
+                                <div class="form-group">
+                                    <label for="partner">Buscar Proveedor:</label>
+                                    <input id="partner" type="text" class="form-control ui-autocomplete-input" autocomplete="off" placeholder="Nombre/ CI/ Ruc"/>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div id="toolbar">
+                <button class="oe_button oe_form_button oe_highlight" value="pdf" id="pdf">PDF</button>
+            </div>
+            <table id="table" class="table_paint_first_row"
+                data-pagination="true"
+                data-toggle="table"
+                data-reorderable-columns="true"
+                data-toolbar="#toolbar"
+                data-show-columns="true"
+                data-buttons-class="oe_button oe_form_button oe_highlight"
+                data-height="auto"
+                data-classes="table table-hover table-condensed"
+                data-row-style="rowStyle"
+                data-search="true">
+                <thead>
+                    <tr>
+                        <th data-field="id" data-sortable="true">Id</th>
+                        <th data-field="reference" data-sortable="true">Nro Factura</th>
+                        <th data-field="partner" data-sortable="true">Proveedor</th>
+                        <th data-field="date_maturity" data-sortable="true">Vence</th>
+                        <th data-field="amount_residual" data-sortable="true" data-align="right">Monto</th>
+                    </tr>
+                </thead>
+            </table>
+            <canvas></canvas>
+            <div id="dialog"></div>
+        </div>
+    </t>
+    </template>

+ 101 - 0
static/src/reports/reporting_accountpending_apagar.xml

@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<template xml:space="preserve">
+    <t t-name="ReportingAccountPendingaPagar">
+        <div class="report_view">
+            <div class="reporting_page_header">
+                <h1>Listado de cuentas a pagar no vencidas</h1>
+            </div>
+            <button type="button" class="oe_button oe_form_button oe_highlight" aria-label="Left Align" data-toggle="collapse" href="#collapseExample" aria-expanded="false" aria-controls="collapseExample">FILTRAR
+            </button>
+            <div class="collapse" id="collapseExample">
+                <br/>
+                <div class="row">
+                    <div class="col-xs-6">
+                        <div class="panel panel-default">
+                            <div class="panel-heading">Fechas</div>
+                            <div class="panel-body">
+                                <ul class="list-unstyled">
+                                    <li>
+                                        <input type="radio" name="valores" id="X" value="X" checked="checked"/>
+                                        <label for="X">Sin Filtro</label>
+                                    </li>
+                                    <li>
+                                        <input type="radio" name="valores" id="A" value="A"/>
+                                        <label for="A">Hoy</label>
+                                    </li>
+                                    <li>
+                                        <input type="radio" name="valores" id="B" value="B"/>
+                                        <label for="B">Mañana</label>
+                                    </li>
+                                    <li>
+                                        <input type="radio" name="valores" id="C" value="C"/>
+                                        <label for="C">Mes Actual</label>
+                                    </li>
+                                    <li>
+                                        <input type="radio" name="valores" id="D" value="D"/>
+                                        <label for="D">Mes Próximo</label>
+                                    </li>
+                                    <li>
+                                        <input type="radio" name="valores" id="Z" value="Z"/>
+                                        <label for="Z">Busqueda Avanzada</label>
+                                    </li>
+                                </ul>
+                                <div id="datepicker" style="display:none;" class="container">
+                                    <label for="from">Desde: </label>
+                                    <input type="text"  id="from" name="from"/>
+                                    <label for="to" >Hasta: </label>
+                                    <input type="text"  id="to" name="to" />
+                                </div>
+
+                            </div>
+                        </div>
+                    </div>
+                    <div class="col-xs-6">
+                        <div class="panel panel-default">
+                            <div class="panel-heading">Características</div>
+                            <div class="panel-body">
+                                <ul class="list-unstyled">
+                                    <li>
+                                        <label for="Y">Proveedor</label>
+                                    </li>
+
+                                </ul>
+
+                                <div class="form-group">
+                                    <label for="partner">Buscar Proveedor:</label>
+                                    <input id="partner" type="text" class="form-control ui-autocomplete-input" autocomplete="off" placeholder="Nombre/ CI/ Ruc"/>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div id="toolbar">
+                <button class="oe_button oe_form_button oe_highlight" value="pdf" id="pdf">PDF</button>
+            </div>
+            <table id="table" class="table_paint_first_row"
+                data-pagination="true"
+                data-toggle="table"
+                data-reorderable-columns="true"
+                data-toolbar="#toolbar"
+                data-show-columns="true"
+                data-buttons-class="oe_button oe_form_button oe_highlight"
+                data-height="auto"
+                data-classes="table table-hover table-condensed"
+                data-row-style="rowStyle"
+                data-search="true">
+                <thead>
+                    <tr>
+                        <th data-field="id" data-sortable="true">Id</th>
+                        <th data-field="reference" data-sortable="true">Nro Factura</th>
+                        <th data-field="partner" data-sortable="true">Proveedor</th>
+                        <th data-field="date_maturity" data-sortable="true">Vence</th>
+                        <th data-field="amount_residual" data-sortable="true" data-align="right">Monto</th>
+                    </tr>
+                </thead>
+            </table>
+            <canvas></canvas>
+            <div id="dialog"></div>
+        </div>
+    </t>
+    </template>

+ 5 - 0
templates.xml

@@ -31,6 +31,11 @@
                 <script type="text/javascript" src="/eiru_reporting/static/src/js/reports/report_purchases_invoice_analysis.js" />
                 <script type="text/javascript" src="/eiru_reporting/static/src/js/reports/report_stock.js" />
                 <script type="text/javascript" src="/eiru_reporting/static/src/js/reports/report_stock_move.js" />
+                <!-- account -->
+                <script type="text/javascript" src="/eiru_reporting/static/src/js/reports/reporting_account_apagar.js"/>
+                <!-- accountpending -->
+                <script type="text/javascript" src="/eiru_reporting/static/src/js/reports/reporting_accountpending_pagar.js"/>
+
                 <!-- crm -->
                 <script type="text/javascript" src="/eiru_reporting/static/src/js/reports/report_crm.js"/>
                 <!-- crm_phonecall -->

+ 12 - 0
views/actions.xml

@@ -117,6 +117,18 @@
             <field name="tag">eiru_reporting.suppliers_ranking_action_report</field>
         </record>
 
+		<!-- Listado de cuentas a pagar -->
+		 <record id="accountpendingapagar_detail_report_action" model="ir.actions.client">
+			<field name="name">Cuentas a Pagar</field>
+			<field name="tag">eiru_reporting.accountpendingapagar_detail_action_report</field>
+		</record>
+
+		<!-- Listado de cuentas vencidas a pagar -->
+		 <record id="accountpending_detail_report_action" model="ir.actions.client">
+			<field name="name">Cuentas a Pagar (Vencidos)</field>
+			<field name="tag">eiru_reporting.accountpending_detail_action_report</field>
+		</record>
+
         <!-- Analisis de facturas de ventas -->
         <record id="sale_report_action" model="ir.actions.client">
             <field name="name">Analisis de facturas de ventas</field>

+ 6 - 1
views/menus.xml

@@ -8,7 +8,7 @@
          <menuitem id="report_dashboard_parent_menu" name="Panel de control" parent="eiru_report_main_menu" sequence="1"/>
 
 	        <!-- Todos los informes -->
-	        <menuitem id="report_dashboard_menu_submenu" parent="report_dashboard_parent_menu" name="Panel de control" action="eiru_reporting_dashboard_action" />
+	        <menuitem id="report_dashboard_menu_submenu" parent="report_dashboard_parent_menu" name="Dashboard" action="eiru_reporting_dashboard_action" />
 
 	    <!-- Segundo Submenu -->
         <menuitem id="account_report_parent_menu" name="Finanzas" parent="eiru_report_main_menu" sequence="2"/>
@@ -70,6 +70,11 @@
             <!-- Ranking de proveedores -->
             <menuitem id="suppliers_ranking_report_menu_submenu" parent="purchase_report_parent_menu" name="Ranking de proveedores a quien mas compras" action="suppliers_ranking_report_action" />
 
+            <!-- Listado de cuentas a pagar no vencidas -->
+           <menuitem id="accountpending_detail_report_menu_submenu" parent="purchase_report_parent_menu" name="Listado de cuentas a pagar no vencidas" action="accountpending_detail_report_action" />
+
+           <!-- Listado de cuentas a pagar vencidas -->
+          <menuitem id="accountpendingapagar_detail_report_menu_submenu" parent="purchase_report_parent_menu" name="Listado de cuentas a pagar vencidas" action="accountpendingapagar_detail_report_action" />
         <!-- Sexto Submenu -->
         <menuitem id="crm_report_parent_menu" name="CRM" parent="eiru_report_main_menu" sequence="6"/>