invoiceModule.controller('outputReconciliationConfigurationEditController', ['$scope', '$log', 'uiGridConstants', 'SweetAlert', '$translate', 'stdAccountService', '$interval', 'orgService', '$timeout', '$q', 'commonWebService', 'loginContext', '$uibModal', 'outputReconciliationConfiguration',
    function($scope, $log, uiGridConstants, SweetAlert, $translate, stdAccountService, $interval, orgService, $timeout, $q, commonWebService, loginContext, $uibModal, outputReconciliationConfiguration) {
        'use strict';

        var Resources = {
            Aggregation: $translate.instant('Aggregation'),
            MonthlyTotal: $translate.instant('MonthlyTotal'),
            Auto: $translate.instant('Auto'),
            Manual: $translate.instant('Manual'),
            EndYearMonthValidateMsg: $translate.instant('EndYearMonthValidateMsg'),
            BeginYearMonthRequire: $translate.instant('BeginYearMonthRequire')
        };


        var InputType = {
            NotAvailable: 2,
            OtherType: 1,
            NullInput: 0
        };

        var InputTypeValue = {
            NotAvailable: '#N/A#',
            NullInput: '#NULL#'
        };


        var thisConstant = {
            semicolonEnglist: ';'
        };


        var entityModule = {
            OrganizationList: [],

            allOrgs: $translate.instant('AllOrganization'),
            name: 'name',
            id: 'id',
            uiOrgID: 'ApplyingEntitesControls',
            orgText: $translate.instant('AllOrganization'),

            // 选中机构ID列表
            selectOrgList: [],
            selectOrgMap: {},


            // 有效的机构列表,包括所有机构,id,name,parentID,expanded
            orgList: [],
            main: function() {

                $scope.openEntityModal = function() {

                    if ($scope.editModel.type === 'query' || $scope.editModel.type === 'edit' || $scope.editModel.type === 'copy') {
                        entityModule.openEditModal($scope.editModel.applyEntities);
                    } else {
                        entityModule.openModal();
                    }
                }
            },

            loadData: function() {
                orgService.getOrganizationFilterList().success(function(data) {

                    entityModule.OrganizationList = data;
                    entityModule.orgList = entityModule.getOrgDropDownList();

                });
            },

            openModal: function() {

                var editModel = {

                };

                $scope.editEntityModel = editModel;

                mainModule.initModalControls();

                var parnet = $('#outputReconciliationConfigurationEditModalBody');

                var modalInstance = $uibModal.open({
                    animation: true,
                    backdrop: false,
                    ariaLabelledBy: 'modal-title',
                    ariaDescribedBy: 'modal-body',
                    templateUrl: 'ApplyingEntitesDetailsModal.html',
                    windowClass: 'edit-invoice-modal-wrapper',
                    scope: $scope,
                    size: 'entity-size',
                    appendTo: parnet,
                    resolve: {
                        editModel: $scope.editModel
                    }
                });

                modalInstance.result.then(function(data) {
                    // 确定关闭
                }, function() {
                    // 取消关闭
                });

                $scope.saveApplyingEntitesDetailsModal = function() {

                    $scope.editModel.selectOrgList = entityModule.selectOrgList;
                    modalInstance.close({});
                };

                $scope.cancelApplyingEntitesDetailsModal = function() {
                    modalInstance.dismiss('cancel');
                };

                $timeout(function() {
                    entityModule.drawOrgDropDownList(entityModule.orgList);
                }, 100);
            },

            openEditModal: function(selectOrgList) {

                var orgIdList = _.pluck(selectOrgList, 'organizationID');

                var data = angular.copy(entityModule.orgList);

                data.forEach(function(r) {

                    if (orgIdList.indexOf(r.id) > -1) {
                        r.selected = true;
                    } else {
                        r.selected = false;
                    }

                    if ($scope.editModel.isReadOnly) {
                        r.disabled = true;
                    }

                });

                var editModel = {

                };

                $scope.editEntityModel = editModel;

                mainModule.initModalControls();

                var parnet = $('#outputReconciliationConfigurationEditModalBody');

                var modalInstance = $uibModal.open({
                    animation: true,
                    backdrop: false,
                    ariaLabelledBy: 'modal-title',
                    ariaDescribedBy: 'modal-body',
                    templateUrl: 'ApplyingEntitesDetailsModal.html',
                    windowClass: 'edit-invoice-modal-wrapper',
                    scope: $scope,
                    size: 'entity-size',
                    appendTo: parnet,
                    resolve: {
                        editModel: $scope.editModel
                    }
                });

                modalInstance.result.then(function(data) {
                    // 确定关闭
                }, function() {
                    // 取消关闭
                });

                $scope.saveApplyingEntitesDetailsModal = function() {

                    $scope.editModel.selectOrgList = entityModule.selectOrgList;
                    modalInstance.close({});
                };

                $scope.cancelApplyingEntitesDetailsModal = function() {
                    modalInstance.dismiss('cancel');
                };

                $timeout(function() {
                    entityModule.drawOrgDropDownList(data);
                }, 100);
            },

            filterDropDownOrgList: function(orgList, selectIDList, idCol) {
                if (!orgList || orgList.length === 0) {
                    return orgList;
                }

                // 什么都没有选
                if (!selectIDList) {
                    return orgList;
                }

                // 按照条件进行过滤
                orgList = _.filter(orgList, function(row) {

                    return selectIDList.indexOf(row[idCol]) > -1;
                });

                return orgList;
            },


            filterOrgs: function() {
                if (entityModule.OrganizationList && entityModule.OrganizationList.length > 0) {

                    // 只要启用的和有权限的机构
                    var filter = _.filter(entityModule.OrganizationList, function(row) {
                        return row.isActive;
                    });


                    return filter;

                } else {
                    return [];
                }
            },

            // 获取机构drop down的list
            getOrgDropDownList: function() {
                var showList = entityModule.filterOrgs();
                showList = angular.copy(showList);
                for (var i = 0; i < showList.length; i++) {
                    var item = showList[i];
                    item.selected = false;
                    item.expanded = true;


                    if (item.parentID === null) {
                        continue;
                    }

                    var parentNode = _.find(showList, function(num) {
                        return num.id === item.parentID
                    });

                    if (parentNode) {
                        continue;
                    }

                    item.parentID = getParentID(item, entityModule.OrganizationList, showList);
                }

                var idList = _.pluck(showList, 'id');

                $scope.selectedOrganizationList = idList;

                return showList;
            },

            // 机构drop down list
            drawOrgDropDownList: function(data) {

                entityModule.selectOrgList = _.pluck(data, 'id');

                $scope.onChanged({ model: entityModule.selectOrgList });

                var syncTreeViewSelection = function(treeView, value, isReady) {

                    if (isReady) {
                        $scope.selectedOrganizationList = entityModule.selectOrgList;
                        $scope.onChanged({ model: entityModule.selectOrgList });
                    } else {
                        $scope.selectedOrganizationList = value;
                        $scope.onChanged({ model: value });
                    }
                };


                entityModule.orgDropDownInstantce = $("#" + entityModule.uiOrgID).dxDropDownBox({
                    value: '',
                    showClearButton: false,
                    contentTemplate: function(e) {
                        var value = e.component.option("value"),
                            $treeView = $("<div>").dxTreeView({
                                dataSource: data,
                                dataStructure: "plain",
                                keyExpr: "id",
                                parentIdExpr: "parentIDStr",
                                selectionMode: "multiple",
                                displayExpr: "name",
                                selectByClick: true,
                                noDataText: '',
                                height: 300,
                                itemTemplate: function(itemData, itemIndex, itemElement) {

                                    var str = itemData.code + ' ' + itemData.name;
                                    itemElement.append("<span title='" + str + "'>" + str + "</span>");
                                },
                                onContentReady: function(args) {},
                                selectNodesRecursive: false,
                                expandAllEnabled: true,
                                showCheckBoxesMode: "selectAll",
                                selectAllText: entityModule.allOrgs,
                                onItemSelectionChanged: function(args) {

                                },
                                onSelectionChanged: function(args) {
                                    var value = args.component.getSelectedNodesKeys();
                                    var text = '';
                                    if (value && value.length === data.length) {
                                        text = entityModule.allOrgs;
                                    } else {
                                        text = '选中' + value.length + '个机构';
                                    }

                                    entityModule.selectOrgList = value;
                                    e.component.option("value", text);
                                    entityModule.orgText = text;
                                    syncTreeViewSelection(entityModule.orgTreeView, value, false);
                                }
                            });

                        entityModule.orgTreeView = $treeView.dxTreeView("instance");
                        entityModule.orgText = e.component.option("text");


                        return $treeView;
                    }
                });
            }

        };


        var mainModule = {

            TagList: [
                { id: constant.TagRule.Aggregation, name: Resources.Aggregation },
            ],

            main: function() {

                // 设置一个默认
                $scope.editModel = {
                    preVoucherNumberType: 0
                };

                mainModule.watchCollection();

                entityModule.main();
            },

            initModalControls: function() {


                $scope.modalControls = {};


                $scope.editModel.TagList = mainModule.TagList;

                $scope.editModel.TaxRateList = ["17%", "6%"];

                $scope.modalControls.dxOptions = {
                    ruleNoOpt: {
                        bindingOptions: {
                            value: 'editModel.ruleNo',
                            // readOnly: 'editModel.isReadOnly',
                        },
                        readOnly: true,
                        maxLength: 50
                    },

                    tagOpt: {
                        bindingOptions: {
                            'value': 'editModel.tag',
                            'dataSource': 'editModel.TagList',
                            readOnly: 'editModel.isReadOnly',
                        },
                        onSelectionChanged: function(args) {

                        },
                        displayExpr: 'name',
                        valueExpr: 'id'
                    },
                    categoryOpt: {
                        bindingOptions: {
                            value: 'editModel.category',
                            readOnly: 'editModel.isReadOnly',
                        },
                        maxLength: 50
                    },
                    preVoucherNumberOpt: {
                        bindingOptions: {
                            value: 'editModel.preVoucherNumberText',
                            readOnly: 'editModel.voucherNumberTypeReadOnly',
                        },
                        maxLength: 50
                    },
                    postedByOpt: {
                        bindingOptions: {
                            value: 'editModel.postedByText',
                            readOnly: 'editModel.postedByTypeReadOnly',
                        },
                        maxLength: 50
                    },
                    journalKeywordsOpt: {
                        bindingOptions: {
                            value: 'editModel.journalKeywordsText',
                            readOnly: 'editModel.isReadOnly',
                        },
                        disabled: true,
                        maxLength: 250
                    },
                    vehicleNumberOpt: {
                        bindingOptions: {
                            value: 'editModel.vehicleNumberText',
                            readOnly: 'editModel.vehicleNumberReadOnly',
                        },
                        maxLength: 50
                    },
                    taxRateOpt: {
                        bindingOptions: {
                            'value': 'editModel.taxRateValue',
                            'dataSource': 'editModel.TaxRateList',
                            readOnly: 'editModel.isReadOnly',
                        },
                        onSelectionChanged: function(args) {

                        },
                    },

                    fapiaoTaxRateOpt: {
                        bindingOptions: {
                            'value': 'editModel.fapiaoTaxRateValue',
                            'dataSource': 'editModel.TaxRateList',
                            readOnly: 'editModel.isReadOnly',
                        },
                        onSelectionChanged: function(args) {

                        },
                    },
                    fapiaoKeywordsOpt: {
                        bindingOptions: {
                            value: 'editModel.fapiaoKeywordsText',
                            readOnly: 'editModel.isReadOnly',
                        },
                        maxLength: 250
                    },
                    beginYearMonthOptions: {
                        type: 'date',
                        width: 326,
                        bindingOptions: {
                            value: 'editModel.activeStartTime',
                            readOnly: 'editModel.isReadOnly',
                        },
                        placeholder: $scope.pleaseSelect,
                        showClearButton: false,
                        displayFormat: "yyyy-MM",
                        maxZoomLevel: 'year'
                    },
                    endYearMonthOptions: {
                        type: 'date',
                        width: 326,
                        bindingOptions: {
                            value: 'editModel.activeEndTime',
                            readOnly: 'editModel.isReadOnly',
                            min: 'editModel.activeStartTime'
                        },
                        placeholder: $scope.pleaseSelect,
                        showClearButton: true,
                        displayFormat: "yyyy-MM",
                        maxZoomLevel: 'year',
                        dateOutOfRangeMessage: Resources.EndYearMonthValidateMsg,
                        invalidDateMessage: Resources.EndYearMonthValidateMsg
                    }
                };


                $scope.modalControls.validateOption = {
                    ruleNoOpt: {
                        validationRules: [{
                            type: "required",
                            message: $translate.instant('RuleNoRequire')
                        }]
                    },

                    categoryOpt: {
                        validationRules: [{
                            type: "required",
                            message: $translate.instant('CategoryRequire')
                        }]
                    },

                    beginYearMonthOptions: {
                        validationRules: [{
                            type: "required",
                            message: Resources.BeginYearMonthRequire
                        }]
                    }
                }

                // mainModule.generateKeywordsList('journalKeywords');


                // mainModule.generateKeywordsList('fapiaoKeywords');
            },

            parseDBKeywords: function(list) {
                if (!list) {
                    list = [];
                }

                var valueList = _.pluck(list, 'value');

                var str = valueList.join(thisConstant.semicolonEnglist);

                return str;
            },

            parseViewKeywords: function(str) {
                if (!str) {
                    return [];
                }

                var array = str.split(/;/g);

                array = _.filter(array, function(row) {

                    return row;
                });

                var result = [];
                array.forEach(function(r) {
                    result.push({

                        id: window.PWC.newGuid(),
                        value: r,
                        prefix: ';'
                    });
                });

                if (result && result.length > 0) {
                    result[0].prefix = '';
                }

                return result;
            },

            parseDBField: function(type, value) {
                if (value) {
                    return value;
                } else {
                    if (type === InputType.NotAvailable) {
                        return InputTypeValue.NotAvailable;
                    } else {
                        return InputTypeValue.NullInput;
                    }
                }
            },

            parseViewField: function(value) {
                var obj = {
                    type: InputType.NotAvailable,
                    text: null
                };

                if (value === InputTypeValue.NotAvailable) {
                    obj.type = InputType.NotAvailable;
                } else if (value === InputTypeValue.NullInput) {
                    obj.type = InputType.NullInput;
                } else {
                    obj.type = InputType.OtherType;
                    obj.text = value;
                }

                return obj;
            },

            getPercent: function(value) {

                if (value) {
                    var str = parseInt(value.replace('%', '')) / 100;
                    return str;
                }
            },

            parseDBModel: function(editModel) {

                editModel = angular.copy(editModel);

                editModel.preVoucherNumber = mainModule.parseDBField(editModel.preVoucherNumberType, editModel.preVoucherNumberText);

                editModel.postedBy = mainModule.parseDBField(editModel.postedByType, editModel.postedByText);

                editModel.vehicleNumber = mainModule.parseDBField(editModel.vehicleNumberType, editModel.vehicleNumberText);

                editModel.purchaserTesla = parseInt(editModel.purchaserTesla);
                editModel.sellerTesla = parseInt(editModel.sellerTesla);

                editModel.journalKeywords = mainModule.parseDBKeywords(editModel.journalKeywordsList);
                editModel.fapiaoKeywords = mainModule.parseDBKeywords(editModel.fapiaoKeywordsList);

                editModel.taxRate = mainModule.getPercent(editModel.taxRateValue);
                editModel.fapiaoTaxRate = mainModule.getPercent(editModel.fapiaoTaxRateValue);

                if (!editModel.applyEntities) {
                    editModel.applyEntities = [];
                }

                editModel.dxOptions = null;
                editModel.validateOption = null;


                if (editModel.activeStartTime) {
                    editModel.activeStartTime = editModel.activeStartTime.formatDateTime('yyyy-MM-dd');
                }

                if (editModel.activeEndTime) {
                    editModel.activeEndTime = editModel.activeEndTime.formatDateTime('yyyy-MM-dd');
                } else {
                    editModel.activeEndTime = null;
                }

                if (editModel.applyEntities && editModel.applyEntities.length > 0) {

                    editModel.applyEntities.forEach(function(r) {
                        r.outputReconciliationConfigurationID = $scope.editModel.id;
                    });
                }

                return editModel;
            },
            parseViewModel: function(dbModel) {
                var viewModel = angular.copy(dbModel);
                viewModel.ruleNo = dbModel.ruleNO;

                var obj = mainModule.parseViewField(dbModel.preVoucherNumber);
                viewModel.preVoucherNumberType = obj.type;
                viewModel.preVoucherNumberText = obj.text;

                obj = mainModule.parseViewField(dbModel.postedBy);
                viewModel.postedByType = obj.type;
                viewModel.postedByText = obj.text;

                obj = mainModule.parseViewField(dbModel.vehicleNumber);
                viewModel.vehicleNumberType = obj.type;
                viewModel.vehicleNumberText = obj.text;

                viewModel.fapiaoKeywordsList = mainModule.parseViewKeywords(dbModel.fapiaoKeywords);

                viewModel.journalKeywordsList = mainModule.parseViewKeywords(dbModel.journalKeywords);

                viewModel.taxRateValue = dbModel.taxRate * 100 + '%';

                viewModel.fapiaoTaxRateValue = dbModel.fapiaoTaxRate * 100 + '%';

                viewModel.selectOrgList = _.pluck(dbModel.applyEntities, 'organizationID');

                viewModel.activeStartTime = new Date(viewModel.activeStartTime);

                if (viewModel.activeEndTime) {
                    viewModel.activeEndTime = new Date(viewModel.activeEndTime);
                }

                return viewModel;

            },

            openEditModal: function() {

                var editModel = $scope.configModel;

                $scope.editModel = mainModule.parseViewModel(editModel);

                $scope.editModel.isReadOnly = true;
                $scope.editModel.postedByTypeReadOnly = true;
                $scope.editModel.voucherNumberTypeReadOnly = true;
                $scope.editModel.vehicleNumberReadOnly = true;

                $scope.editModel.type = 'query';

                mainModule.initModalControls();

                var modalInstance = $uibModal.open({
                    animation: true,
                    backdrop: false,
                    ariaLabelledBy: 'modal-title',
                    ariaDescribedBy: 'modal-body',
                    templateUrl: 'outputReconciliationConfigurationEdit.html',
                    windowClass: 'edit-invoice-modal-wrapper',
                    scope: $scope,
                    size: 'output-reconciliation-configuration-edit',
                    resolve: {
                        editModel: $scope.editModel
                    }
                });

                modalInstance.result.then(function(data) {
                    $scope.isUpdate = true;
                    $scope.operateType = null;

                    if ($scope.onChanged) {
                        $scope.onChanged();
                    }
                }, function() {
                    $scope.operateType = null;
                    $log.info('Modal dismissed at: ' + new Date());
                });

                $scope.edit = function() {

                    $scope.editModel.isReadOnly = false;
                    $scope.editModel.type = "edit";
                };

                $scope.saveAs = function() {

                    //var newModel = mainModule.parseViewModel($scope.configModel);
                    //newModel.id = null;
                    //newModel.category = null;
                    //newModel.ruleNo = null;
                    //newModel.type = "copy";
                    //newModel.isReadOnly = false;
                    //$scope.editModel = newModel;

                    outputReconciliationConfiguration.getNextRuleNo().success(function(data) {
                        if (data && data.result) {
                            $scope.editModel.id = null;
                            $scope.editModel.category = null;
                            $scope.editModel.ruleNo = data.data;
                            $scope.editModel.type = "copy";
                            $scope.editModel.isReadOnly = false;
                        }
                    });
                };


                $scope.update = function() {

                    var model = $scope.editModel;

                    model = mainModule.parseDBModel(model);

                    var dxResult = DevExpress.validationEngine.validateGroup($('#outputReconciliationConfigurationEditForm').dxValidationGroup("instance")).isValid;
                    if (!dxResult) {
                        return;
                    }

                    console.log(JSON.stringify(model));
                    outputReconciliationConfiguration.update(model).success(function(ret) {
                        // console.log(JSON.stringify(ret));
                        //  modalInstance.close({});
                        if (ret) {
                            if (ret.result) {
                                modalInstance.close({});
                            } else {
                                SweetAlert.warning($translate.instant(ret.resultMsg));
                            }
                        }
                    });
                };

                $scope.cancel = function() {
                    modalInstance.dismiss('cancel');
                };

                $scope.save = function() {
                    var model = $scope.editModel;

                    model = mainModule.parseDBModel(model);

                    var dxResult = DevExpress.validationEngine.validateGroup($('#outputReconciliationConfigurationEditForm').dxValidationGroup("instance")).isValid;
                    if (!dxResult) {
                        return;
                    }

                    console.log(JSON.stringify(model));
                    outputReconciliationConfiguration.add(model).success(function(ret) {
                        // console.log(JSON.stringify(ret));
                        // modalInstance.close({});

                        if (ret) {
                            if (ret.result) {
                                modalInstance.close({});
                            } else {
                                SweetAlert.warning($translate.instant(ret.resultMsg));
                            }
                        }
                    });
                };

                entityModule.loadData();

            },
            openModal: function() {

                var editModel = {
                    status: true,
                    preVoucherNumberType: InputType.NotAvailable,
                    postedByType: InputType.NotAvailable,
                    ruleNo: mainModule.nexRuleNo,
                    vehicleNumberType: InputType.NotAvailable,
                    purchaserTesla: '2',
                    sellerTesla: '2',
                    journalKeywordsType: '2',
                    journalKeywordsText: 'test',
                    fapiaoKeywordsType: '2',
                    taxRateValue: '17%',
                    fapiaoTaxRateValue: '17%',
                    tag: constant.TagRule.Aggregation,
                    type: 'add',
                    journalKeywordsList: [],
                    fapiaoKeywordsList: [],
                    voucherNumberTypeReadOnly: true,
                    postedByTypeReadOnly: true
                };

                $scope.editModel = editModel;

                mainModule.initModalControls();

                var modalInstance = $uibModal.open({
                    animation: true,
                    backdrop: false,
                    ariaLabelledBy: 'modal-title',
                    ariaDescribedBy: 'modal-body',
                    templateUrl: 'outputReconciliationConfigurationEdit.html',
                    windowClass: 'edit-invoice-modal-wrapper',
                    scope: $scope,
                    size: 'output-reconciliation-configuration-edit',
                    resolve: {
                        editModel: $scope.editModel
                    }
                });

                modalInstance.result.then(function(data) {
                    $scope.isUpdate = true;
                    $scope.operateType = null;
                    if ($scope.onChanged) {
                        $scope.onChanged();
                    }
                }, function() {
                    $scope.operateType = null;
                    $log.info('Modal dismissed at: ' + new Date());
                });

                $scope.save = function() {
                    var model = $scope.editModel;

                    model = mainModule.parseDBModel(model);

                    var dxResult = DevExpress.validationEngine.validateGroup($('#outputReconciliationConfigurationEditForm').dxValidationGroup("instance")).isValid;
                    if (!dxResult) {
                        return;
                    }

                    console.log(JSON.stringify(model));
                    outputReconciliationConfiguration.add(model).success(function(ret) {
                        console.log(JSON.stringify(ret));

                        if (ret) {
                            if (ret.result) {
                                modalInstance.close({});
                            } else {
                                SweetAlert.warning($translate.instant(ret.resultMsg));
                            }
                        }

                    });
                };

                $scope.cancel = function() {
                    modalInstance.dismiss('cancel');
                };


                $scope.addJournalKeywords = function() {
                    mainModule.addKeywords('journalKeywords');
                };

                $scope.deleteJournalKeywords = mainModule.deleteJournalKeywords;

                entityModule.loadData();
            },
            watchCollection: function() {
                $scope.$watch('operateType', function(newValue, oldValue) {
                    if (newValue) {

                        if (newValue === constant.Operation.Add) {

                            outputReconciliationConfiguration.getNextRuleNo().success(function(data) {

                                if (data && data.result) {
                                    mainModule.nexRuleNo = data.data;
                                    mainModule.openModal();
                                }
                            });
                        } else if (newValue === constant.Operation.Edit) {

                            mainModule.openEditModal();
                        } else if (newValue === constant.Operation.Query) {
                            mainModule.openEditModal();
                        }
                    }
                });


                // $scope.$watch('editModel.preVoucherNumberType', function(newValue, oldValue) {
                //     if (newValue) {

                //         if ($scope.editModel.preVoucherNumberType === 1 && !$scope.editModel.isReadOnly) {
                //             $scope.editModel.voucherNumberTypeReadOnly = false;
                //         } else {
                //             $scope.editModel.voucherNumberTypeReadOnly = true;
                //         }
                //     }
                // });


                $scope.preVoucherNumberTypeChange = function() {

                    if (!$scope.editModel.isReadOnly) {
                        if ($scope.editModel.preVoucherNumberType == 1) {
                            $scope.editModel.voucherNumberTypeReadOnly = false;
                        } else {
                            $scope.editModel.voucherNumberTypeReadOnly = true;
                            $scope.editModel.preVoucherNumberText = null;
                        }
                    }

                }


                $scope.postedByTypeChange = function() {

                    if (!$scope.editModel.isReadOnly) {
                        if ($scope.editModel.postedByType == 1) {
                            $scope.editModel.postedByTypeReadOnly = false;
                        } else {
                            $scope.editModel.postedByTypeReadOnly = true;
                            $scope.editModel.postedByText = null;
                        }
                    }

                }


                 $scope.vehicleNumberTypeChange = function() {

                    if (!$scope.editModel.isReadOnly) {
                        if ($scope.editModel.vehicleNumberType == 1) {
                            $scope.editModel.vehicleNumberReadOnly = false;
                        } else {
                            $scope.editModel.vehicleNumberReadOnly = true;
                            $scope.editModel.vehicleNumberText = null;
                        }
                    }
                }
            }
        };

        (function initializa() {

            mainModule.main();

            $log.debug('outputReconciliationConfigurationEditController.ctor()...');


        })();
    }
]);