1 | /* |
---|
2 | Copyright (C) 2014 |
---|
3 | Alejandro Mujica (amujica@cenditel.gob.ve) |
---|
4 | José Ruiz (jruiz@cenditel.gob.ve) |
---|
5 | Julie Vera (jvera@cenditel.gob.ve) |
---|
6 | |
---|
7 | CENDITEL Fundación Centro Nacional de Desarrollo e Investigación en |
---|
8 | Tecnologías Libres |
---|
9 | |
---|
10 | Este programa es software libre; Usted puede usarlo bajo los términos de la |
---|
11 | licencia de software GPL versión 2.0 de la Free Software Foundation. |
---|
12 | |
---|
13 | Este programa se distribuye con la esperanza de que sea útil, pero SIN |
---|
14 | NINGUNA GARANTÍA; tampoco las implícitas garantías de MERCANTILIDAD o |
---|
15 | ADECUACIÓN A UN PROPÓSITO PARTICULAR. |
---|
16 | Consulte la licencia GPL para más detalles. Usted debe recibir una copia |
---|
17 | de la GPL junto con este programa; si no, escriba a la Free Software |
---|
18 | Foundation Inc. 51 Franklin Street,5 Piso, Boston, MA 02110-1301, USA. |
---|
19 | */ |
---|
20 | |
---|
21 | /* |
---|
22 | Autor: Alejandro J. Mujica |
---|
23 | Fecha de creación: 05/06/2014 |
---|
24 | Este archivo contiene la definición de la clase Good y un tipo |
---|
25 | enumerado llamado Good_Type el cual contiene valores para cada tipo de Good. |
---|
26 | */ |
---|
27 | |
---|
28 | # ifndef GOOD_H |
---|
29 | # define GOOD_H |
---|
30 | |
---|
31 | # include <types.H> |
---|
32 | # include <simulation_attributes_macros.H> |
---|
33 | |
---|
34 | |
---|
35 | /// Tipo de especialización de un bien. |
---|
36 | enum Good_Type { PRODUCT, INPUT, IMPORTED_PRODUCT }; |
---|
37 | |
---|
38 | /** Representa la abstracción base para un Bien. |
---|
39 | * |
---|
40 | * Esta clase contiene información general que llevan todos los bienes, bien |
---|
41 | * sea el producto de una empresa registrada en el SIGESIC, un insumo declarado |
---|
42 | * por una empresa registrada el cual sea producido por una empresa no |
---|
43 | * registrada o una importación declarada por una empresa registrada. |
---|
44 | * |
---|
45 | * @author Alejandro J. Mujica |
---|
46 | */ |
---|
47 | class Good |
---|
48 | { |
---|
49 | // Información de la empresa que lo produce |
---|
50 | |
---|
51 | /// Registro de Información Fiscal de la Unidad Económica. |
---|
52 | std::string company_rif; |
---|
53 | |
---|
54 | /// Razón Social. |
---|
55 | std::string company_name; |
---|
56 | |
---|
57 | /// Ubicación |
---|
58 | std::string company_location; |
---|
59 | |
---|
60 | /// Nacionalidad. |
---|
61 | std::string nationality; |
---|
62 | |
---|
63 | // Información general del bien |
---|
64 | |
---|
65 | /** Id del bien en la tabla de la base de datos, tanto para producto como para |
---|
66 | * insumo. |
---|
67 | */ |
---|
68 | db_id_t id; |
---|
69 | std::string name; |
---|
70 | std::string tariff_code; |
---|
71 | std::string measurement_unit; |
---|
72 | |
---|
73 | // Información del bien en la red |
---|
74 | int level; |
---|
75 | |
---|
76 | public: |
---|
77 | Good(); |
---|
78 | |
---|
79 | Good(const Good &); |
---|
80 | |
---|
81 | Good(Good &&); |
---|
82 | |
---|
83 | const std::string & get_company_rif() const; |
---|
84 | |
---|
85 | void set_company_rif(const std::string &); |
---|
86 | |
---|
87 | void set_company_rif(std::string &&); |
---|
88 | |
---|
89 | const std::string & get_company_name() const; |
---|
90 | |
---|
91 | void set_company_name(const std::string &); |
---|
92 | |
---|
93 | void set_company_name(std::string &&); |
---|
94 | |
---|
95 | const std::string & get_company_location() const; |
---|
96 | |
---|
97 | void set_company_location(const std::string &); |
---|
98 | |
---|
99 | void set_company_location(std::string &&); |
---|
100 | |
---|
101 | const std::string & get_nationality() const; |
---|
102 | |
---|
103 | void set_nationality(const std::string &); |
---|
104 | |
---|
105 | void set_nationality(std::string &&); |
---|
106 | |
---|
107 | const db_id_t & get_id() const; |
---|
108 | |
---|
109 | void set_id(const db_id_t &); |
---|
110 | |
---|
111 | const std::string & get_name() const; |
---|
112 | |
---|
113 | void set_name(const std::string &); |
---|
114 | |
---|
115 | void set_name(std::string &&); |
---|
116 | |
---|
117 | const std::string & get_tariff_code() const; |
---|
118 | |
---|
119 | void set_tariff_code(const std::string &); |
---|
120 | |
---|
121 | void set_tariff_code(std::string &&); |
---|
122 | |
---|
123 | const std::string & get_measurement_unit() const; |
---|
124 | |
---|
125 | void set_measurement_unit(const std::string &); |
---|
126 | |
---|
127 | void set_measurement_unit(std::string &&); |
---|
128 | |
---|
129 | const int & get_level() const; |
---|
130 | |
---|
131 | void set_level(const int &); |
---|
132 | |
---|
133 | Good & operator = (const Good &); |
---|
134 | |
---|
135 | Good & operator = (Good &&); |
---|
136 | |
---|
137 | virtual std::string to_dot() const; |
---|
138 | |
---|
139 | virtual Good_Type get_type() const = 0; |
---|
140 | |
---|
141 | virtual real & production_at(const size_t &) = 0; |
---|
142 | |
---|
143 | virtual real & stock_at(const size_t &) = 0; |
---|
144 | |
---|
145 | virtual real & internal_requested_quantity_at(const size_t &) = 0; |
---|
146 | |
---|
147 | virtual real requested_quantity_at(const size_t &) = 0; |
---|
148 | |
---|
149 | virtual real & internal_sales_at(const size_t &) = 0; |
---|
150 | |
---|
151 | virtual real & price_at(const size_t &) = 0; |
---|
152 | }; |
---|
153 | |
---|
154 | # endif // GOOD_H |
---|
155 | |
---|