Browse Source

[FIX] ajuste en el informe de ventas por ubicaiones

Rodney Elpidio Enciso Arias 6 years ago
parent
commit
25e59564b2

BIN
models.pyc


+ 155 - 0
static/src/js/reports/report_sale_by_city.js

@@ -915,6 +915,161 @@ function report_sale_by_city(reporting){
             var table = this.$el.find('#xtable');
             table.bootstrapTable('load', rowsTable);
         },
+        /*
+        =========================================
+            PRINT PDF
+        =========================================
+        */
+        clickOnAction: function (e) {
+            var self = this;
+            var ResCompany;
+            var action = this.$el.find(e.target).val();
+            var company = $('#current-company').val();
+            if(company && company != 9999999){
+                ResCompany = self.getResCompany(company).shift();
+                var CurrencyBase = self.getResCurrency(ResCompany.currency_id[0]).shift();
+            }else{
+                ResCompany = self.ResCompany[0];
+                var CurrencyBase = self.getResCurrency(self.ResCompany[0].currency_id[0]).shift();
+            }
+            var getColumns=[];
+            var rows=[];
+            var table = this.$el.find("#xtable");
+            var column = table.bootstrapTable('getVisibleColumns');
+            var row = table.bootstrapTable('getData');
+
+            var quantity = _.reduce(_.map(row, function (map) {
+                return map.quantity;
+            }), function (memo, num) {
+                return memo + num;
+            });
+
+            var amount = _.reduce(_.map(row, function (map) {
+                return map.amount_float;
+            }), function (memo, num) {
+                return memo + num;
+            });
+
+            row.push({
+                name: 'Totales',
+                quantity: quantity,
+                amount: accounting.formatMoney(amount, '', CurrencyBase.decimal_places, CurrencyBase.thousands_separator, CurrencyBase.decimal_separator),
+            })
+
+            if (action === 'pdf') {
+                var data = _.map(column, function (val){ return val.field});
+                _.each(_.map(column,function(val){
+                    return val}), function(item){
+                    getColumns.push([{
+                        title: item.title,
+                        dataKey: item.field
+                    }]);
+                });
+                /*
+                ============================================================
+                    CONFIGURACION DEL PDF
+                ============================================================
+                */
+                var pdf_title = 'Ventas por Ubicaciones';
+                var pdf_type = '';
+                var pdf_name = 'ventas_por_ubicaciones_';
+                var pdf_columnStyles =  {
+                    name :{halign:'left'},
+                    quantity :{columnWidth: 40, halign:'right'},
+                    amount:{columnWidth: 40, halign:'right'},
+                };
+                /*
+                ============================================================
+                    LLAMAR FUNCION DE IMPRESION
+                ============================================================
+                */
+                var filter = self.getFilter();
+                var pdf = new model.eiru_reports.ReportPdfWidget(self);
+                pdf.drawPDF(
+                    _.flatten(getColumns),
+                    row,
+                    ResCompany,
+                    pdf_title,
+                    pdf_type,
+                    pdf_name,
+                    pdf_columnStyles,
+                    filter,
+                );
+            }
+        },
+        getFilter: function(){
+            var self = this;
+            var company = self.$el.find('#current-company').val();
+            var store = self.$el.find('#current-store').val();
+            var type = self.$el.find('#current-type').val();
+            var period = self.$el.find('#current-period').val();
+            var date = self.$el.find('#current-date').val();
+            var desde = self.$el.find('#from').val();
+            var hasta = self.$el.find('#to').val();
+            var filter = [];
+            if(company && company){
+                var ResCompany = _.filter(self.ResCompany, function(item){
+                    return item.id == company;
+                });
+                filter.push({
+                    title:'Empresa',
+                    value: ResCompany[0].name,
+                });
+            };
+            if(store && store != 9999999){
+                var ResStore =  _.filter(self.ResStore,function (item) {
+                    return item.id == store;
+                });
+                filter.push({
+                    title: 'Sucursal',
+                    value:  ResStore[0].name,
+                });
+            };
+            if(type && type != 9999999){
+                filter.push({
+                    title: 'Tipo de Venta',
+                    value:  $("#current-type option:selected").text(),
+                });
+            };
+            if(period && period != 9999999){
+                var AccountPeriod =  _.filter(self.AccountPeriod,function (item) {
+                    return item.id == period;
+                });
+                filter.push({
+                    title: 'Periodo',
+                    value:  AccountPeriod[0].name,
+                });
+            };
+            if(date && date != 9999999){
+                moment.locale('es', {
+                    months: 'Enero_Febrero_Marzo_Abril_Mayo_Junio_Julio_Agosto_Septiembre_Octubre_Noviembre_Diciembre'.split('_'),
+                });
+                if(date == 'range'){
+                    filter.push({
+                        title: 'Fecha',
+                        value:  desde +' al '+hasta,
+                    });
+                    } else {
+                        if(date == 'today'){
+                            var fecha = moment().format('DD/MM/YYYY');
+                        };
+                        if(date == 'yesterday'){
+                            var fecha = moment().add(-1,'days').format('DD/MM/YYYY');
+                        }
+                        if(date == 'currentMonth'){
+                            var fecha = moment().format('MMMM/YYYY');
+                        }
+                        if(date == 'lastMonth'){
+                            var fecha = moment().add(-1,'months').format('MMMM/YYYY');
+                        }
+                        filter.push({
+                            title: 'Fecha',
+                            value:  fecha,
+                        });
+                    };
+                };
+            return filter;
+        },
 
     });
 }

+ 3 - 3
static/src/reports/report_sale_by_city.xml

@@ -3,7 +3,7 @@
     <t t-name="ReportSaleByCity">
         <div class="report_view">
             <div class="reporting_page_header">
-                <h1 class="report_title">Ventas por ciudad</h1>
+                <h1 class="report_title">Ventas por ubicaciones</h1>
             </div>
             <div class="container search-form" style="border-bottom:1px solid #eee; width:95%;">
                 <div class="row">
@@ -73,9 +73,9 @@
             </div>
 
             <div class="report-form" style="display:none;">
-                <!-- <div id="toolbar">
+                <div id="toolbar">
                     <button class="oe_button myButton" value="pdf">Imprimir Informe</button>
-                </div> -->
+                </div>
                 <div class="container" style="width:95%;">
                     <table
                         id = "xtable"