-
Notifications
You must be signed in to change notification settings - Fork 0
/
projectLib.m
110 lines (88 loc) · 6.22 KB
/
projectLib.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
classdef projectLib < dynamicprops
properties
%-----------------------------------------------------------------%
name (1,:) char = ''
file (1,:) char = ''
issue (1,1) double = -1
documentType {mustBeMember(documentType, {'Relatório de Atividades', 'Relatório de Fiscalização', 'Informe'})} = 'Relatório de Atividades'
documentModel = ''
documentScript = []
generatedFiles = []
end
properties (Access = private)
%-----------------------------------------------------------------%
callingApp
defaultFilePreffix = ''
customProperties = {}
end
methods
%-----------------------------------------------------------------%
function obj = projectLib(callingApp, varargin)
obj.callingApp = callingApp;
switch class(callingApp)
case {'winAppAnalise', 'winAppAnalise_exported'}
obj.defaultFilePreffix = 'appAnalise';
obj.customProperties = {'peaksTable', 'exceptionList', 'externalFiles'};
addprop(obj, 'peaksTable');
addprop(obj, 'exceptionList');
addprop(obj, 'externalFiles');
obj.peaksTable = table('Size', [0, 23], ...
'VariableTypes', {'cell', 'single', 'single', 'uint16', 'double', 'single', 'double', 'cell', 'cell', 'cell', 'cell', 'cell', 'cell', 'cell', 'int16', 'int32', 'cell', 'cell', 'cell', 'cell', 'cell', 'cell', 'cell'}, ...
'VariableNames', {'Tag', 'Latitude', 'Longitude', 'Index', 'Frequency', 'Truncated', 'BW', 'minLevel', 'meanLevel', 'maxLevel', 'meanOCC', 'maxOCC', 'Type', 'Regulatory', 'Service', 'Station', 'Description', 'Distance', 'Irregular', 'RiskLevel', 'occMethod', 'Detection', 'Classification'});
obj.exceptionList = table('Size', [0, 10], ...
'VariableTypes', {'cell', 'double', 'cell', 'cell', 'int16', 'int32', 'cell', 'cell', 'cell', 'cell'}, ...
'VariableNames', {'Tag', 'Frequency', 'Type', 'Regulatory', 'Service', 'Station', 'Description', 'Distance', 'Irregular', 'RiskLevel'});
obj.externalFiles = table('Size', [0, 4], ...
'VariableTypes', {'cell', 'cell', 'cell', 'int8'}, ...
'VariableNames', {'Type', 'Tag', 'Filename', 'ID'});
case {'winSCH', 'winSCH_exported'}
obj.defaultFilePreffix = 'SCH';
obj.customProperties = {'EntityType', 'EntityID', 'EntityName', 'listOfProducts'};
addprop(obj, 'EntityType');
addprop(obj, 'EntityID');
addprop(obj, 'EntityName');
addprop(obj, 'listOfProducts');
obj.EntityType = '';
obj.EntityID = '';
obj.EntityName = '';
obj.listOfProducts = table('Size', [0, 19], ...
'VariableTypes', {'cell', 'cell', 'cell', 'categorical', 'cell', 'cell', 'logical', 'logical', 'logical', 'double', 'uint32', 'uint32', 'uint32', 'uint32', 'uint32', 'categorical', 'categorical', 'categorical', 'cell'}, ...
'VariableNames', {'Homologação', 'Importador', 'Código aduaneiro', 'Tipo', 'Fabricante', 'Modelo', 'RF?', 'Em uso?', 'Interferência?', 'Valor Unit. (R$)', 'Qtd. uso/vendida', 'Qtd. estoque/aduana', 'Qtd. lacradas', 'Qtd. apreendidas', 'Qtd. retidas (RFB)', 'Situação', 'Infração', 'Sanável?', 'Informações adicionais'});
obj.listOfProducts.("Tipo") = categorical(obj.listOfProducts.("Tipo"), varargin{1});
obj.listOfProducts.("Situação") = categorical(obj.listOfProducts.("Situação"), {'Irregular', 'Regular'});
obj.listOfProducts.("Infração") = categorical(obj.listOfProducts.("Infração"), varargin{2});
obj.listOfProducts.("Sanável?") = categorical(obj.listOfProducts.("Sanável?"), {'-1', 'Sim', 'Não'});
end
end
%-----------------------------------------------------------------%
function Restart(obj)
obj.name = '';
obj.file = '';
obj.issue = -1;
obj.documentType = 'Relatório de Atividades';
obj.documentModel = '';
obj.documentScript = [];
obj.generatedFiles = [];
customPropertiesList = obj.customProperties;
for ii = 1:numel(customPropertiesList)
propertyName = customPropertiesList{ii};
switch class(obj.(propertyName))
case 'table'
obj.(propertyName)(:,:) = [];
case 'struct'
obj.(propertyName)(:) = [];
case 'cell'
obj.(propertyName) = {};
case 'char'
obj.(propertyName) = '';
otherwise
obj.(propertyName) = [];
end
end
report_ProjectDataGUI(obj.callingApp)
if isprop(obj.callingApp, 'fiscalizaObj') && ~isempty(obj.callingApp.fiscalizaObj)
fiscalizaLibConnection.report_ResetGUI(obj.callingApp)
end
end
end
end