Advertisement
Guest User

Untitled

a guest
Feb 21st, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 45.19 KB | None | 0 0
  1. Ext.define('Bars.Minfin.Br.baLboDistributionRegistry.lbo.view.Grid', {
  2.     extend: 'B4.ux.grid.Panel',
  3.     requires: [
  4.         'B4.enums.BaLboDistributionType',
  5.         'Ext.ux.grid.FilterBar',
  6.         'Bars.Minfin.Br.baLboDistributionRegistry.lbo.ListModel',
  7.         'B4.ux.button.Update',
  8.         'B4.ux.grid.toolbar.Paging',
  9.         'B4.enums.BaStatus',
  10.         'B4.enums.LboStatus',
  11.         'B4.grid.plugin.SelectedRowExpander',
  12.         'B4.ux.grid.column.Utils',
  13.         'B4.ux.grid.feature.RemoteSummary',
  14.         'B4.ux.grid.column.Decimal',
  15.         'B4.ux.form.field.Decimal',
  16.  
  17.         'Bars.Minfin.Br.plugin.MultiFilterBar',
  18.         'Bars.Minfin.Br.plugin.KbkInfoBar',
  19.         'Bars.Minfin.Br.baLboDistributionRegistry.lbo.view.MultiFilterPanel',
  20.         'Bars.Minfin.Br.baLboDistributionRegistry.lbo.view.KbkInfoPanel'
  21.     ],
  22.     title: 'ЛБО',
  23.     budgetCycle: null,
  24.     sortableColumns: false,
  25.     initComponent: function () {
  26.         var me = this,
  27.             startYear = me.budgetCycle.StartYear,
  28.             store = Ext.create('B4.base.Store', {
  29.                 model: 'Bars.Minfin.Br.baLboDistributionRegistry.lbo.ListModel',
  30.                 autoLoad: false
  31.             }),
  32.             changeFilter = {
  33.                 xtype: 'combo',
  34.                 editable: false,
  35.                 queryMode: 'local',
  36.                 displayField: 'Name',
  37.                 valueField: 'Id',
  38.                 store: {
  39.                     xtype: 'store',
  40.                     fields: ['Id', 'Name'],
  41.                     data: [
  42.                         { 'Id': false, 'Name': '-' },
  43.                         { 'Id': true, 'Name': '!' }
  44.                     ]
  45.                 }
  46.             },
  47.         getEditorCustomRendererForDecimalColumn = function (customRender) {
  48.             return function (v, meta, record) {
  49.                 if (Bars.Minfin.Br.baLboDistributionRegistry.lbo.view.Grid.prototype.__cellIsEditable.call(this, record)) {
  50.                     meta.style = 'color: #39a732;';
  51.                 }
  52.                 if (Ext.isFunction(customRender)) {
  53.                     customRender.apply(this, arguments);
  54.                 }
  55.             }
  56.         },
  57.  
  58.         year2EditRenderer = function (v) {
  59.             if (!me.budgetCycle.Year2Edit) {
  60.                 v = '';
  61.             }
  62.         },
  63.  
  64.         year3EditRenderer = function (v) {
  65.             if (!me.budgetCycle.Year3Edit) {
  66.                 v = '';
  67.             }
  68.         },
  69.         unalloc1Renderer = function (val, meta, rec) {
  70.             if (rec.get('Distribution1IsInvalid')) {
  71.                 meta.tdCls = ' br-grid-invalid-row-cell';
  72.                 meta.tdAttr = 'data-qtip="Сумма остатка ЛБО обоснована не полностью"';
  73.             }
  74.  
  75.             return B4.ux.grid.column.Decimal.prototype.renderer.apply(this, arguments);
  76.         },
  77.         unalloc2Renderer = function (val, meta, rec) {
  78.             if (!me.budgetCycle.Year2Edit) {
  79.                 return '';
  80.             }
  81.  
  82.             if (rec.get('Distribution2IsInvalid')) {
  83.                 meta.tdCls = ' br-grid-invalid-row-cell';
  84.                 meta.tdAttr = 'data-qtip="Сумма остатка ЛБО обоснована не полностью"';
  85.             }
  86.  
  87.             return B4.ux.grid.column.Decimal.prototype.renderer.apply(this, arguments);
  88.         },
  89.         unalloc3Renderer = function (val, meta, rec) {
  90.             if (!me.budgetCycle.Year3Edit) {
  91.                 return '';
  92.             }
  93.  
  94.             if (rec.get('Distribution3IsInvalid')) {
  95.                 meta.tdCls = ' br-grid-invalid-row-cell';
  96.                 meta.tdAttr = 'data-qtip="Сумма остатка ЛБО обоснована не полностью"';
  97.             }
  98.  
  99.             return B4.ux.grid.column.Decimal.prototype.renderer.apply(this, arguments);
  100.         };
  101.  
  102.         Ext.applyIf(me, {
  103.             columnLines: true,
  104.             store: store,
  105.             features: [{
  106.                 ftype: 'remote_summary'
  107.             }],
  108.             selModel: Ext.create('Ext.selection.RowModel', {
  109.                 mode: 'MULTI'
  110.             }),
  111.             viewConfig: {
  112.                 loadMask: true,
  113.                 getRowClass: function (record) {
  114.                     var result = '';
  115.                     if (record.get('Type') === B4.enums.BaLboDistributionType.Groupkbk) result = 'br-grid-distribution-group-kbk-row';
  116.                     else if (record.get('Type') === B4.enums.BaLboDistributionType.Kbk) result = 'br-grid-distribution-kbk-row';
  117.                     else if (record.get('Type') === B4.enums.BaLboDistributionType.Sp) result = 'br-grid-distribution-sp-row';
  118.                     else if (record.get('Type') === B4.enums.BaLboDistributionType.Rbs) result = 'br-grid-distribution-rbs-row';
  119.                     else if (record.get('IsPbsRbsRow')) result = 'br-grid-distribution-pbs-rbs-row';
  120.                     else if (record.get('IsPbsFromKbkSpRow')) result = 'br-grid-distribution-rbs-row';
  121.  
  122.                     return result;
  123.                 },
  124.                 selectedItemCls: 'br-grid-italic-font-cell'
  125.             },
  126.             columns: [
  127.                 {
  128.                     xtype: 'gridcolumn', dataIndex: 'KbkCode', width: 172, text: 'Код по бюджетной классификации', filter: true, align: 'left', style: 'text-align:center;', reportWidth: 4.75,
  129.                     renderer: function (value, metadata, record) {
  130.                         if (value) {
  131.                             me.setTooltip(record, metadata);
  132.                         }
  133.                         return value;
  134.                     }
  135.                 },
  136.                 { xtype: 'gridcolumn', dataIndex: 'OverseesDepartmentCode', reportWidth: 1.5, width: 50, text: 'КД </br> МФ РФ', filter: true, reportHorAlignment: 'Center', align: 'center', style: 'text-align:center;' },
  137.                 { xtype: 'gridcolumn', dataIndex: 'SubdivisionCode', width: 50, reportWidth: 1.5, text: 'Код СП', filter: true, reportHorAlignment: 'Center', align: 'center', style: 'text-align:center;' },
  138.                 {
  139.                     text: 'РБС/ПБС<br/> по Сводному реестру', reportColumnHeader: 'РБС/ПБС по Сводному реестру', columns: [
  140.                             {
  141.                                 xtype: 'gridcolumn', dataIndex: 'DepartmentCode', width: 70, text: 'Код', reportColumnHeader: 'Код РБС/ПБС по Сводному реестру', filter: true, align: 'center', style: 'text-align:center;', reportWidth: 4, padding: '4 0 4 0',
  142.                                 reportHorAlignment: 'Center'
  143.                             },
  144.                             { xtype: 'gridcolumn', dataIndex: 'DepartmentName', width: 270, text: 'Наименование', reportColumnHeader: 'Наименование РБС/ПБС по Сводному реестру', filter: true, align: 'left', style: 'text-align:center;', reportWidth: 6, padding: '4 0 4 0' }
  145.                     ]
  146.                 },
  147.                 {
  148.                     xtype: 'b4enumcolumn',
  149.                     enumName: 'B4.enums.BaLboDistributionType',
  150.                     dataIndex: 'Type',
  151.                     width: 50,
  152.                     text: 'Тип',
  153.                     filter: {
  154.                         type: 'combo',
  155.                         queryMode: 'local',
  156.                         displayField: 'Name',
  157.                         valueField: 'Id',
  158.                         getFilterValue: function (filter) {
  159.                             if (filter.value !== 10) {
  160.                                 return {
  161.                                     DataIndex: filter.property,
  162.                                     Value: filter.value,
  163.                                     Operand: 'eq'
  164.                                 };
  165.                             }
  166.                             return {
  167.                                 Group: 3,
  168.                                 Filters: [
  169.                                     {
  170.                                         DataIndex: filter.property,
  171.                                         Value: B4.enums.BaLboDistributionType.Groupkbk,
  172.                                         Operand: 'eq'
  173.                                     },
  174.                                     {
  175.                                         DataIndex: filter.property,
  176.                                         Value: B4.enums.BaLboDistributionType.Kbk,
  177.                                         Operand: 'eq'
  178.                                     }
  179.                                 ]
  180.                             };
  181.                         },
  182.                         store: {
  183.                             xtype: 'store',
  184.                             fields: ['Id', 'Name'],
  185.                             data: [
  186.                                 { 'Id': '', 'Name': 'Все' },
  187.                                 { 'Id': B4.enums.BaLboDistributionType.Groupkbk, 'Name': 'ГРБС' },
  188.                                 { 'Id': B4.enums.BaLboDistributionType.Sp, 'Name': 'СП' },
  189.                                 { 'Id': B4.enums.BaLboDistributionType.Rbs, 'Name': 'РБС' },
  190.                                 { 'Id': B4.enums.BaLboDistributionType.Pbs, 'Name': 'ПБС' }
  191.                             ]
  192.                         }
  193.                     },
  194.                     align: 'center',
  195.                     style: 'text-align:center;',
  196.                     reportEnumDictionary: B4.enums.BaLboDistributionType.getItems(),
  197.                     reportWidth: 1.5,
  198.                     reportHorAlignment: 'Center'
  199.                 },
  200.                 {
  201.                     xtype: 'b4enumcolumn', enumName: 'B4.enums.LboStatus', reportWidth: 3.75, dataIndex: 'LboStatus', width: 100, text: 'Статус', filter: true, align: 'center', style: 'text-align:center;', reportEnumDictionary: B4.enums.LboStatus.getItems(),
  202.                     reportHorAlignment: 'Center'
  203.                 },
  204.                 {
  205.                     text: String.format('Сумма на {0} год, руб', startYear + 1), columns: [
  206.                        {
  207.                            text: 'Бюджетные ассигнования', align: 'center', columns: [
  208.                                { xtype: 'b4decimalcolumn', dataIndex: 'KuAmount1', reportWidth: 4, reportColumnHeader: String.format('Сумма по КУ на {0} год', startYear + 1), width: 125, text: 'Сумма по КУ', filter: true, align: 'right', style: 'text-align:center;' },
  209.                                {
  210.                                    xtype: 'booleancolumn',
  211.                                    dataIndex: 'DiffBa1',
  212.                                    width: 30,
  213.                                    reportHorAlignment: 'Center',
  214.                                    text: '!',
  215.                                    reportWidth: 1.5,
  216.                                    reportColumnHeader: String.format('! {0} год', startYear + 1),
  217.                                    filter: changeFilter,
  218.                                    reportTrueText: '!',
  219.                                    reportFalseText: '-',
  220.                                    align: 'center',
  221.                                    style: 'text-align:center;',
  222.                                    renderer: function (val, metaData, rec) {
  223.                                        if (rec.get('Type') === B4.enums.BaLboDistributionType.Kbk ||
  224.                                            rec.get('Type') === B4.enums.BaLboDistributionType.Groupkbk ||
  225.                                            rec.get('Type') === B4.enums.BaLboDistributionType.Rbs) {
  226.                                            if (val) {
  227.                                                metaData.tdCls = ' changes';
  228.                                                return '!';
  229.                                            }
  230.                                            else
  231.                                                return '-';
  232.                                        }
  233.                                        else
  234.                                            return '';
  235.                                    }
  236.                                },
  237.                                { xtype: 'b4decimalcolumn', reportWidth: 4, dataIndex: 'ReductedAmount1', reportColumnHeader: String.format('Утвержденные БА на {0} год', startYear + 1), width: 125, text: 'Утвержденные БА', filter: true, align: 'right', style: 'text-align:center;' }
  238.                            ]
  239.                        },
  240.                        {
  241.                            text: 'Лимиты бюджетных обязательств', columns: [
  242.                                { xtype: 'b4decimalcolumn', dataIndex: 'KuPpAmount1', reportWidth: 4, reportColumnHeader: String.format('Сумма по КУ (РР) на {0} год', startYear + 1), width: 125, text: 'Сумма по КУ (РР)', filter: true, align: 'right', style: 'text-align:center;' },
  243.                                {
  244.                                    xtype: 'booleancolumn',
  245.                                    dataIndex: 'DiffLbo1',
  246.                                    width: 30,
  247.                                    reportHorAlignment: 'Center',
  248.                                    text: '!',
  249.                                    reportWidth: 1.5,
  250.                                    reportColumnHeader: String.format('! {0} год', startYear + 1),
  251.                                    filter: changeFilter,
  252.                                    reportTrueText: '!',
  253.                                    reportFalseText: '-',
  254.                                    align: 'center',
  255.                                    style: 'text-align:center;',
  256.                                    renderer: function (val, metaData, rec) {
  257.                                        if (rec.get('Type') === B4.enums.BaLboDistributionType.Kbk ||
  258.                                            rec.get('Type') === B4.enums.BaLboDistributionType.Groupkbk ||
  259.                                            rec.get('Type') === B4.enums.BaLboDistributionType.Rbs) {
  260.                                            if (val) {
  261.                                                metaData.tdCls = ' changes';
  262.                                                return '!';
  263.                                            }
  264.                                            else
  265.                                                return '-';
  266.                                        }
  267.                                        else
  268.                                            return '';
  269.                                    }
  270.                                },
  271.                                { xtype: 'b4decimalcolumn', dataIndex: 'ReductedLboAmount1', reportWidth: 4, reportColumnHeader: String.format('Доведено ЛБО на {0} год', startYear + 1), width: 125, text: 'Утвержденные ЛБО', filter: true, align: 'right', style: 'text-align:center;' },
  272.                                { xtype: 'b4decimalcolumn', dataIndex: 'DistributedLboAmount1', configureRenderer: getEditorCustomRendererForDecimalColumn(), reportWidth: 4, reportColumnHeader: String.format('Распределено на {0} год', startYear + 1), width: 125, text: 'Распределено', filter: true, align: 'right', style: 'text-align:center;', getEditor: me.getEditor },
  273.                                { xtype: 'b4decimalcolumn', dataIndex: 'UnallocatedLboAmount1', renderer: unalloc1Renderer, reportWidth: 4, reportColumnHeader: String.format('Остаток ЛБО на {0} год', startYear + 1), width: 125, text: 'Остаток ЛБО', filter: true, align: 'right', style: 'text-align:center;' }
  274.                            ]
  275.                        }
  276.                     ]
  277.                 },
  278.                 {
  279.                     text: String.format('Сумма на {0} год, руб', startYear + 2), columns: [
  280.                        {
  281.                            text: 'Бюджетные ассигнования', columns: [
  282.                                 { xtype: 'b4decimalcolumn', configureRenderer: year2EditRenderer, reportWidth: 4, dataIndex: 'KuAmount2', reportColumnHeader: String.format('Сумма по КУ на {0} год', startYear + 2), width: 125, text: 'Сумма по КУ', filter: true, align: 'right', style: 'text-align:center;' },
  283.                                 {
  284.                                     xtype: 'booleancolumn',
  285.                                     dataIndex: 'DiffBa2',
  286.                                     width: 30,
  287.                                     reportHorAlignment: 'Center',
  288.                                     reportWidth: 1.5,
  289.                                     text: '!',
  290.                                     reportColumnHeader: String.format('! {0} год', startYear + 1),
  291.                                     filter: changeFilter,
  292.                                     reportTrueText: '!',
  293.                                     reportFalseText: '-',
  294.                                     align: 'center',
  295.                                     style: 'text-align:center;',
  296.                                     renderer: function (val, metaData, rec) {
  297.                                         if (rec.get('Type') === B4.enums.BaLboDistributionType.Kbk ||
  298.                                             rec.get('Type') === B4.enums.BaLboDistributionType.Groupkbk ||
  299.                                             rec.get('Type') === B4.enums.BaLboDistributionType.Rbs) {
  300.                                             if (val) {
  301.                                                 metaData.tdCls = ' changes';
  302.                                                 return '!';
  303.                                             }
  304.                                             else
  305.                                                 return '-';
  306.                                         }
  307.                                         else
  308.                                             return '';
  309.                                     }
  310.                                 },
  311.                                 { xtype: 'b4decimalcolumn', configureRenderer: year2EditRenderer, reportWidth: 4, dataIndex: 'ReductedAmount2', reportColumnHeader: String.format('Утвержденные БА на {0} год', startYear + 2), width: 125, text: 'Утвержденные БА', filter: true, align: 'right', style: 'text-align:center;' }
  312.                            ]
  313.                        },
  314.                        {
  315.                            text: 'Лимиты бюджетных обязательств', columns: [
  316.                                 { xtype: 'b4decimalcolumn', configureRenderer: year2EditRenderer, reportWidth: 4, dataIndex: 'KuPpAmount2', reportColumnHeader: String.format('Сумма по КУ (РР) на {0} год', startYear + 2), width: 125, text: 'Сумма по КУ (РР)', filter: true, align: 'right', style: 'text-align:center;' },
  317.                                 {
  318.                                     xtype: 'booleancolumn',
  319.                                     dataIndex: 'DiffLbo2',
  320.                                     width: 30,
  321.                                     reportHorAlignment: 'Center',
  322.                                     text: '!',
  323.                                     reportWidth: 1.5,
  324.                                     reportColumnHeader: String.format('! {0} год', startYear + 1),
  325.                                     filter: changeFilter,
  326.                                     reportTrueText: '!',
  327.                                     reportFalseText: '-',
  328.                                     align: 'center',
  329.                                     style: 'text-align:center;',
  330.                                     renderer: function (val, metaData, rec) {
  331.                                         if (rec.get('Type') === B4.enums.BaLboDistributionType.Kbk ||
  332.                                             rec.get('Type') === B4.enums.BaLboDistributionType.Groupkbk ||
  333.                                             rec.get('Type') === B4.enums.BaLboDistributionType.Rbs) {
  334.                                             if (val) {
  335.                                                 metaData.tdCls = ' changes';
  336.                                                 return '!';
  337.                                             }
  338.                                             else
  339.                                                 return '-';
  340.                                         }
  341.                                         else
  342.                                             return '';
  343.                                     }
  344.                                 },
  345.                                 { xtype: 'b4decimalcolumn', reportWidth: 4, configureRenderer: year2EditRenderer, dataIndex: 'ReductedLboAmount2', reportColumnHeader: String.format('Доведено ЛБО на {0} год', startYear + 2), width: 125, text: 'Утвержденные ЛБО', filter: true, align: 'right', style: 'text-align:center;' },
  346.                                 { xtype: 'b4decimalcolumn', reportWidth: 4, configureRenderer: getEditorCustomRendererForDecimalColumn(year2EditRenderer), dataIndex: 'DistributedLboAmount2', reportColumnHeader: String.format('Распределено на {0} год', startYear + 2), width: 125, text: 'Распределено', filter: true, align: 'right', style: 'text-align:center;', getEditor: me.getEditor },
  347.                                 { xtype: 'b4decimalcolumn', reportWidth: 4, renderer: unalloc2Renderer, dataIndex: 'UnallocatedLboAmount2', reportColumnHeader: String.format('Остаток ЛБО на {0} год', startYear + 2), width: 125, text: 'Остаток ЛБО', filter: true, align: 'right', style: 'text-align:center;' }
  348.                            ]
  349.                        }
  350.                     ]
  351.                 },
  352.                 {
  353.                     text: String.format('Сумма на {0} год, руб', startYear + 3), columns: [
  354.                        {
  355.                            text: 'Бюджетные ассигнования', columns: [
  356.                                { xtype: 'b4decimalcolumn', configureRenderer: year3EditRenderer, reportWidth: 4, dataIndex: 'KuAmount3', reportColumnHeader: String.format('Сумма по КУ на {0} год', startYear + 3), width: 125, text: 'Сумма по КУ', filter: true, align: 'right', style: 'text-align:center;' },
  357.                                {
  358.                                    xtype: 'booleancolumn',
  359.                                    dataIndex: 'DiffBa3',
  360.                                    width: 30,
  361.                                    reportHorAlignment: 'Center',
  362.                                    text: '!',
  363.                                    reportWidth: 1.5,
  364.                                    reportColumnHeader: String.format('! {0} год', startYear + 1),
  365.                                    filter: changeFilter,
  366.                                    reportTrueText: '!',
  367.                                    reportFalseText: '-',
  368.                                    align: 'center',
  369.                                    style: 'text-align:center;',
  370.                                    renderer: function (val, metaData, rec) {
  371.                                        if (rec.get('Type') === B4.enums.BaLboDistributionType.Kbk ||
  372.                                            rec.get('Type') === B4.enums.BaLboDistributionType.Groupkbk ||
  373.                                            rec.get('Type') === B4.enums.BaLboDistributionType.Rbs) {
  374.                                            if (val) {
  375.                                                metaData.tdCls = ' changes';
  376.                                                return '!';
  377.                                            }
  378.                                            else
  379.                                                return '-';
  380.                                        }
  381.                                        else
  382.                                            return '';
  383.                                    }
  384.                                },
  385.                                { xtype: 'b4decimalcolumn', reportWidth: 4, configureRenderer: year3EditRenderer, dataIndex: 'ReductedAmount3', reportColumnHeader: String.format('Утвержденные БА на {0} год', startYear + 3), width: 125, text: 'Утвержденные БА', filter: true, align: 'right', style: 'text-align:center;' }
  386.                            ]
  387.                        },
  388.                        {
  389.                            text: 'Лимиты бюджетных обязательств', columns: [
  390.                               { xtype: 'b4decimalcolumn', reportWidth: 4, configureRenderer: year3EditRenderer, dataIndex: 'KuPpAmount3', reportColumnHeader: String.format('Сумма по КУ (РР) на {0} год', startYear + 3), width: 125, text: 'Сумма по КУ (РР)', filter: true, align: 'right', style: 'text-align:center;' },
  391.                                {
  392.                                    xtype: 'booleancolumn',
  393.                                    dataIndex: 'DiffLbo3',
  394.                                    width: 30,
  395.                                    text: '!',
  396.                                    reportWidth: 1.5,
  397.                                    reportHorAlignment: 'Center',
  398.                                    reportColumnHeader: String.format('! {0} год', startYear + 1),
  399.                                    filter: changeFilter,
  400.                                    reportTrueText: '!',
  401.                                    reportFalseText: '-',
  402.                                    align: 'center',
  403.                                    style: 'text-align:center;',
  404.                                    renderer: function (val, metaData, rec) {
  405.                                        if (rec.get('Type') === B4.enums.BaLboDistributionType.Kbk ||
  406.                                            rec.get('Type') === B4.enums.BaLboDistributionType.Groupkbk ||
  407.                                            rec.get('Type') === B4.enums.BaLboDistributionType.Rbs) {
  408.                                            if (val) {
  409.                                                metaData.tdCls = ' changes';
  410.                                                return '!';
  411.                                            }
  412.                                            else
  413.                                                return '-';
  414.                                        }
  415.                                        else
  416.                                            return '';
  417.                                    }
  418.                                },
  419.                                { xtype: 'b4decimalcolumn', reportWidth: 4, configureRenderer: year3EditRenderer, dataIndex: 'ReductedLboAmount3', reportColumnHeader: String.format('Доведено ЛБО на {0} год', startYear + 3), width: 125, text: 'Утвержденные ЛБО', filter: true, align: 'right', style: 'text-align:center;' },
  420.                                { xtype: 'b4decimalcolumn', reportWidth: 4, configureRenderer: getEditorCustomRendererForDecimalColumn(year3EditRenderer), dataIndex: 'DistributedLboAmount3', reportColumnHeader: String.format('Распределено на {0} год', startYear + 3), width: 125, text: 'Распределено', filter: true, align: 'right', style: 'text-align:center;', getEditor: me.getEditor },
  421.                                { xtype: 'b4decimalcolumn', reportWidth: 4, renderer: unalloc3Renderer, dataIndex: 'UnallocatedLboAmount3', reportColumnHeader: String.format('Остаток ЛБО на {0} год', startYear + 3), width: 125, text: 'Остаток ЛБО', filter: true, align: 'right', style: 'text-align:center;' }
  422.                            ]
  423.                        }
  424.                     ]
  425.                 },
  426.                 { xtype: 'gridcolumn', dataIndex: 'Version', reportWidth: 1.5, width: 55, text: 'Версия', filter: true, reportHorAlignment: 'Center', align: 'center', style: 'text-align:center;' }
  427.             ],
  428.             plugins: [
  429.                 { ptype: 'filterbar', renderHidden: false, showShowHideButton: false, showClearAllButton: false },
  430.                 {
  431.                     ptype: 'br-multi-filter-bar',
  432.                     panelView: 'Bars.Minfin.Br.baLboDistributionRegistry.lbo.view.MultiFilterPanel',
  433.                     clearButtonOnGrid: true,
  434.                     grid: me,
  435.                     clearButtonOnGridHandler: function(){
  436.                         me.plugins.forEach(function(item) {
  437.                             if (item.ptype === 'filterbar' || item.ptype === 'br-multi-filter-bar') {
  438.                                 item.clearFilters();
  439.                             }
  440.                         });
  441.                     },
  442.                     getFilters: function (panel, excludeName) {
  443.                         var filters = [];
  444.  
  445.                         this.doByPanelFields(panel, function (panelItem) {
  446.                             if (!!excludeName && panelItem.name == excludeName) {
  447.                                 return;
  448.                             }
  449.                             if (!panelItem.getSelectedValues || panelItem.name == "Department") {
  450.                                 return;
  451.                             }
  452.                             var values = panelItem.getSelectedValues();
  453.  
  454.                             if (values.length > 0) {
  455.                                 var exps = [];
  456.                                 Ext.each(values, function (val) {
  457.                                     exps.push(new CondExpr(panelItem.entityField, CondExpr.operands.eq, val));
  458.                                 });
  459.                                 filters.push(CondExpr.createForTerms(exps, CondExpr.operands.or));
  460.                             }
  461.                         });
  462.  
  463.                         return filters;
  464.                     }
  465.                 },
  466.                 { ptype: 'br-kbk-info-bar', type: 'BaLboDistribution', panelView: 'Bars.Minfin.Br.baLboDistributionRegistry.lbo.view.KbkInfoPanel', controllerName: 'BaLboDistribution', actionName: 'GetKbkInfoData', budgetCycle: this.budgetCycle, handlers: { 'addFinConditionClickHandler': function () { me.fireEvent('addFinConditionClick', me); } } },
  467.                 //{ ptype: 'br-kbk-info-bar', type: 'BaLboDistribution', panelView: 'Bars.Minfin.Br.baLboDistributionRegistry.lbo.view.KbkInfoPanel', controllerName: 'BaLboDistribution', actionName: 'GetKbkInfoData', budgetCycle: this.budgetCycle, addFinConditionClickHandler: function () { me.fireEvent('addFinConditionClick', me); } },
  468.                 { ptype: 'B4_grid_plugin_SelectedRowExpander' },
  469.                 Ext.create('Ext.grid.plugin.CellEditing', {
  470.                     clicksToEdit: 1,
  471.                     pluginId: 'cellEditing'
  472.                 })
  473.  
  474.             ],
  475.             dockedItems: [
  476.                 {
  477.                     xtype: 'toolbar',
  478.                     dock: 'top',
  479.                     items: [{
  480.                         xtype: 'buttongroup',
  481.                         items: [
  482.                             { xtype: 'b4updatebutton' },
  483.                             {
  484.                                 xtype: 'button',
  485.                                 iconCls: 'icon-table',
  486.                                 text: 'Реестр',
  487.                                 itemId: 'registrysection',
  488.                                 menu: [
  489.                                     {
  490.                                         text: 'Просмотр формы ОБАС',
  491.                                         disabled: true,
  492.                                         iconCls: 'icon-table',
  493.                                         actionName: 'openSbrForm'
  494.                                     },
  495.                                     {
  496.                                         actionName: 'unallocatedBalanceReason',
  497.                                         text: 'Условие для финансового обеспечения',
  498.                                         iconCls: 'icon-table-add'
  499.                                     },
  500.                                     {
  501.                                         text: 'Распределить',
  502.                                         iconCls: 'icon-table',
  503.                                         itemId: 'distributesection',
  504.                                         menu: [
  505.                                             {
  506.                                                 text: 'по структурным подразделениям',
  507.                                                 iconCls: 'icon-folder-table',
  508.                                                 actionName: 'distributeBySp',
  509.                                                 disabled: true
  510.                                             },
  511.                                             {
  512.                                                 text: 'по РБС/ПБС',
  513.                                                 iconCls: 'icon-folder-table',
  514.                                                 actionName: 'distributeByRpbs',
  515.                                                 disabled: true
  516.                                             }
  517.                                         ]
  518.                                     },
  519.                                     {
  520.                                         text: 'Сформировать документ',
  521.                                         iconCls: 'icon-table',
  522.                                         itemId: 'formsection',
  523.                                         menu: [
  524.                                             {
  525.                                                 text: '"Справка о распределении БА и ЛБО" по СП (ГРБС)',
  526.                                                 iconCls: 'icon-table-add',
  527.                                                 actionName: 'formDistrBySPFu',
  528.                                                 disabled: true
  529.                                             },
  530.                                             {
  531.                                                 text: '"Справка о распределении БА и ЛБО" по учреждениям (ГРБС)',
  532.                                                 iconCls: 'icon-table-add',
  533.                                                 actionName: 'formDistrByDepSP'
  534.                                             },
  535.                                             {
  536.                                                 text: '"Лимиты бюджетных обязательств" (ГРБС)',
  537.                                                 iconCls: 'icon-table-add',
  538.                                                 actionName: 'formLimitGrbs'
  539.                                             },
  540.                                             {
  541.                                                 text: '"ЛБО по расходам ГРБС, утверждение которых осуществляется по отдельным решениям" (ф. 0501151) (ГРБС)',
  542.                                                 iconCls: 'icon-table-add',
  543.                                                 actionName: 'lboUnallocatedGrbs'
  544.                                             },
  545.                                             {
  546.                                                 text: '"Справка о распределении БА и ЛБО" по учреждениям (РБС)',
  547.                                                 iconCls: 'icon-table-add',
  548.                                                 actionName: 'formDistrByRBS'
  549.                                             },
  550.                                             {
  551.                                                 text: '"Лимиты бюджетных обязательств" (РБС)',
  552.                                                 iconCls: 'icon-table-add',
  553.                                                 actionName: 'formLimitRbs'
  554.                                             },
  555.                                             {
  556.                                                 iconCls: 'icon-table-add',
  557.                                                 text: '"ЛБО по расходам РБС, утверждение которых осуществляется по отдельным решениям" (ф. 0501151) (РБС)',
  558.                                                 actionName: 'lboUnallocatedRbs'
  559.                                             }
  560.                                         ]
  561.                                     },
  562.                                     {
  563.                                         text: 'Версии',
  564.                                         iconCls: 'icon-table',
  565.                                         itemId: 'versionsection',
  566.                                         menu: [
  567.                                             {
  568.                                                 text: 'Создать версию',
  569.                                                 iconCls: 'icon-table-add',
  570.                                                 disabled: true,
  571.                                                 actionName: 'createVersion'
  572.                                             },
  573.                                             {
  574.                                                 text: 'Удалить версию',
  575.                                                 iconCls: 'icon-table-delete',
  576.                                                 disabled: true,
  577.                                                 actionName: 'deleteVersion'
  578.                                             },
  579.                                             {
  580.                                                 text: 'Просмотр версий',
  581.                                                 iconCls: 'icon-table',
  582.                                                 disabled: true,
  583.                                                 actionName: 'showVersion'
  584.                                             }
  585.                                         ]
  586.                                     },
  587.                                     {
  588.                                         text: 'Удалить строку',
  589.                                         iconCls: 'icon-delete',
  590.                                         actionName: 'deleteRow'
  591.                                     },
  592.                                     {
  593.                                         text: 'Очистить распределение',
  594.                                         iconCls: 'icon-history',
  595.                                         disabled: true,
  596.                                         actionName: 'cleanDistributed'
  597.                                     }
  598.                                 ]
  599.                             },
  600.  
  601.                             {
  602.                                 xtype: 'button',
  603.                                 text: 'Аналитика',
  604.                                 itemId: 'analyticssection',
  605.                                 iconCls: 'icon-chart-curve',
  606.                                 menu: [
  607.                                     {
  608.                                         text: 'Распределение показателей по РБС/ПБС',
  609.                                         iconCls: 'icon-table',
  610.                                         actionName: 'rbsPbsDistributionAnalises'
  611.                                     }
  612.                                 ]
  613.                             },
  614.                             {
  615.                                 xtype: 'button',
  616.                                 text: 'Печать',
  617.                                 iconCls: 'icon-printer',
  618.                                 itemId: 'printsection',
  619.                                 menu: [
  620.                                     {
  621.                                         iconCls: 'icon-printer',
  622.                                         text: 'Печать реестра',
  623.                                         actionName: 'print'
  624.                                     },
  625.                                     {
  626.                                         iconCls: 'icon-printer',
  627.                                         text: 'Печать страницы',
  628.                                         actionName: 'printPage',
  629.                                         handler: function () {
  630.                                             var exp = Ext.create('B4.export.GridExporter', {
  631.                                                 grid: me,
  632.                                                 sheetName: 'Печать страницы',
  633.                                                 inTable: false
  634.                                             });
  635.                                             exp.start();
  636.                                         }
  637.                                     }
  638.                                 ]
  639.                             },
  640.                             {
  641.                                 xtype: 'button',
  642.                                 text: 'Администрирование',
  643.                                 iconCls: 'icon-table',
  644.                                 itemId: 'administratorsection',
  645.                                 menu: [
  646.                                     {
  647.                                         text: 'Наполнение данными',
  648.                                         iconCls: 'icon-table',
  649.                                         itemId: 'formedfromsection',
  650.                                         menu: [
  651.                                             {
  652.                                                 iconCls: 'icon-table',
  653.                                                 text: 'Сформировать из П1',
  654.                                                 actionName: 'formedFromApp1'
  655.                                             },
  656.                                             {
  657.                                                 iconCls: 'icon-table',
  658.                                                 text: 'Сформировать из П2',
  659.                                                 actionName: 'formedFromApp2'
  660.                                             },
  661.                                             {
  662.                                                 iconCls: 'icon-table',
  663.                                                 text: 'Сформировать из П3',
  664.                                                 actionName: 'formedFromApp3'
  665.                                             }
  666.                                         ]
  667.                                     },
  668.                                     {
  669.                                         text: 'Актуализация учреждений',
  670.                                         iconCls: 'icon-table-add',
  671.                                         actionName: 'actualizeDepartment'
  672.                                     }
  673.                                 ]
  674.                             },
  675.                             {
  676.                                 xtype: 'checkbox',
  677.                                 boxLabel: '<span style="font-size: 11px;">' + 'Режим СП' + '</span>',
  678.                                 hidden: true,
  679.                                 itemId: 'checkboxSubdivisionMode',
  680.                                 margin: '2 5 0 5'
  681.                             },
  682.                             {
  683.                                 xtype: 'checkbox',
  684.                                 boxLabel: '<span style="font-size: 11px;">' + 'Скрыть распределенные строки' + '</span>',
  685.                                 itemId: 'checkboxHideDistributedRows',
  686.                                 margin: '2 5 0 5'
  687.                             }
  688.                         ]
  689.                     }]
  690.                 },
  691.                 {
  692.                     xtype: 'b4pagingtoolbar',
  693.                     displayInfo: true,
  694.                     store: store,
  695.                     dock: 'bottom'
  696.                 }
  697.             ]
  698.         });
  699.  
  700.         me.callParent(arguments);
  701.     },
  702.  
  703.     getEditor: function (record) {
  704.         if (Bars.Minfin.Br.baLboDistributionRegistry.lbo.view.Grid.prototype.__cellIsEditable.call(this, record)) {
  705.             return Ext.create('Ext.grid.CellEditor',
  706.             {
  707.                 allowBlank: true,
  708.                 field: Ext.create('B4.ux.form.field.Decimal',
  709.                         {
  710.                             decimalSeparator: ',',
  711.                             selectOnFocus: true,
  712.                             hideTrigger: true,
  713.                             minValue:0
  714.                         })
  715.             });
  716.         } else {
  717.             return null;
  718.         }
  719.     },
  720.     __cellIsEditable: function (record) {
  721.         if (!record) {
  722.             return false;
  723.         }
  724.  
  725.         var type = record.get('Type'),
  726.             includeInDoc = record.get('IsIncludeInDocument'),
  727.             lboState = record.get('LboStatus');
  728.  
  729.         return lboState === B4.enums.LboStatus.Draft && !includeInDoc &&
  730.             (type === B4.enums.BaLboDistributionType.Sp ||
  731.                 type === B4.enums.BaLboDistributionType.Rbs ||
  732.                 type === B4.enums.BaLboDistributionType.Pbs);
  733.     },
  734.     setTooltip: function (record, metaData) {
  735.         metaData.tdAttr = 'data-qtip="' + record.data.TargetArticleName + '(' + record.data.ExpensesTypeName + ')"';
  736.     }
  737. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement