source: observatorio/simulacion/ModuloDinamico/good.H

simulacion
Last change on this file was 16eed2b, checked in by Alejandro <amujica@…>, 9 years ago

Corregida la repeticion de arcos y las cantidades no asignadas. Agregada ubicacion de la empresa

  • Property mode set to 100644
File size: 3.8 KB
Line 
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.
36enum 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 */
47class 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
76public:
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
Note: See TracBrowser for help on using the repository browser.