source: sicp/apps/simulacion/sigesic/models.py @ e79e549

Last change on this file since e79e549 was e79e549, checked in by Ing. Roldan D. Vargas G <rvargas@…>, 8 years ago

se agregan los modelos necesarios para la consulta de personas asociadas a las Unidades Económicas

  • Property mode set to 100644
File size: 28.1 KB
Line 
1# coding=utf-8
2"""
3Simulador Integral de Cadenas Productivas (SICP)
4
5Copyleft (@) 2015 CENDITEL nodo Mérida - https://miv.cenditel.gob.ve/simulacion/
6"""
7## @package apps.simulacion.sigesic.models
8#
9# Clases y funciones a implementar en los modelos del SIGESIC. Los modelos representados pertenecen al
10# Sistema de Gestión para la Industria y el Comercio (SIGESIC)
11# @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
12# @author <a href='http://www.cenditel.gob.ve'>Centro Nacional de Desarrollo e Investigación en Tecnologías Libres
13# (CENDITEL) nodo Mérida - Venezuela</a>
14# @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
15# @date 02-06-2015
16# @version 3.0.0
17
18## Muestra el autor del script cuando es invocado
19__author__ = "Ing. Roldan Vargas (rvargas at cenditel.gob.ve)"
20## Muestra documentación breve sobre el script
21__doc__    = "Clases y funciones a implementar en los modelos del SIGESIC. Los modelos representados pertenecen al " \
22             "Sistema de Gestión para la Industria y el Comercio (SIGESIC)"
23
24from django.db import models
25from django.utils.translation import ugettext_lazy as _
26from apps.comun.models import ModelReadOnly, Pais, Parroquia, CodigoAran, UnidadMedida, CodigoCiiu
27
28
29class UnidadEconomica(ModelReadOnly):
30    """!
31    Clase que contiene el modelo de Unidades Económicas, para el acceso de datos registrados en el SIGESIC
32
33    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
34    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
35    @date 03-06-2015
36    @version 3.0.0
37    """
38
39    ## Número de Registro de Identificación Fiscal (R.I.F.)
40    rif = models.CharField(max_length=10,primary_key=True)
41
42    ## Nombre de la Unidad Económica registrado en el SENIAT
43    nombre = models.CharField(max_length=255)
44
45    ## Razón social de la Unidad Económica registrado en el SENIAT
46    razon_social = models.CharField(max_length=255)
47
48    ## Ciudad en donde se encuentra ubicada la Unidad Económica
49    ciudad = models.CharField(max_length=100)
50
51    ## Contiene la clave foránea de la parroquia en la que se encuentra ubicada la Unidad Económica
52    parroquia = models.ForeignKey(Parroquia, db_column='parroquia_codigo')
53
54    class Meta(ModelReadOnly.Meta):
55        """!
56        Metaclase de la clase UnidadEconomica
57
58        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
59        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
60        @date 03-06-2015
61        @version 3.0.0
62        """
63
64        ## Nombre de la tabla en la base de datos
65        db_table = "unidadecon_unidad_economica"
66
67
68class ActividadCIIU(ModelReadOnly):
69    """!
70    Clase que contiene el modelo que refiere a la actividad a la cual se dedica con mayor permanencia la empresa y
71    que genera mayores ingresos.
72
73    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
74    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
75    @date 19-10-2015
76    @version 3.0.0
77    """
78
79    ue_rif = models.ForeignKey(UnidadEconomica, db_column='unidad_economica_rif')
80    ciiu = models.ForeignKey(CodigoCiiu)
81    descripcion = models.CharField(max_length=80)
82    activo  = models.BooleanField()
83    fecha_insercion = models.DateField()
84    principal = models.BooleanField(default=False)
85
86
87    class Meta:
88        db_table = "unidadecon_actividad_ciiu"
89        ordering = ["-principal","ciiu"]
90        unique_together = (("ciiu", "ue_rif"))
91
92    def __unicode__(self):
93        return u'%s' % (self.ciiu)
94
95
96class TipoSubunidad(ModelReadOnly):
97    """!
98    Clase que contiene el modelo para los tipos de Sub Unidades Económicas
99
100    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
101    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
102    @date 08-06-2015
103    @version 3.0.0
104    """
105
106    ## Identificador único del tipo de subunidad
107    id = models.CharField(max_length=2, primary_key=True)
108
109    ## Nombre de la Subunidad Económica
110    nombre = models.CharField(max_length=35)
111
112    def __unicode__(self):
113        """!
114        Método que muestra el nombre de la subunidad económica en UNICODE
115
116        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
117        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
118        @date 08-06-2015
119        @return Devuelve el nombre del tipo de subunidad económica en UNICODE
120        """
121        return self.nombre
122
123
124    class Meta(ModelReadOnly.Meta):
125        """!
126        Metaclase de la clase TipoSubunidad
127
128        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
129        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
130        @date 08-06-2015
131        @version 3.0.0
132        """
133
134        ## Nombre de la tabla en la base de datos
135        db_table = "unidadecon_tipo_subunidad"
136
137
138class TipoActividad(ModelReadOnly):
139    """!
140    Clase que contiene el modelo para los tipos de actividades desempeñadas por las Unidades Económicas
141
142    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
143    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
144    @date 08-06-2015
145    @version 3.0.0
146    """
147
148    ## Nombre del tipo de actividad de desarrollada por la Subunidad Económica
149    nombre = models.CharField(max_length=60)
150
151    def __unicode__(self):
152        """!
153        Método que muestra el nombre del tipo de actividad en UNICODE
154
155        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
156        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
157        @date 08-06-2015
158        @return Devuelve el nombre del tipo de actividad económica en UNICODE
159        """
160        return self.nombre
161
162    class Meta(ModelReadOnly.Meta):
163        """!
164        Metaclase de la clase TipoActividad
165
166        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
167        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
168        @date 08-06-2015
169        @version 3.0.0
170        """
171
172        ## Nombre de la tabla en la base de datos
173        db_table = "unidadecon_tipo_actividad"
174
175
176class TipoSucursal(ModelReadOnly):
177    """!
178    Clase que contiene el modelo para los tipos de sucursales disponibles en el SIGESIC
179
180    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
181    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
182    @date 08-06-2015
183    @version 3.0.0
184    """
185
186    ## Nombre del tipo de sucursal
187    nombre = models.CharField(max_length=60)
188
189    def __unicode__(self):
190        """!
191        Método que muestra el nombre del tipo de sucursal en UNICODE
192
193        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
194        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
195        @date 08-06-2015
196        @return Devuelve el nombre del tipo de sucursal en UNICODE
197        """
198        return self.nombre
199
200    class Meta(ModelReadOnly.Meta):
201        """!
202        Metaclase de la clase TipoSucursal
203
204        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
205        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
206        @date 08-06-2015
207        @version 3.0.0
208        """
209
210        ## Nombre de la tabla en la base de datos
211        db_table = "unidadecon_tipo_sucursal"
212
213
214class TipoTenencia(ModelReadOnly):
215    """!
216    Clase que contiene el modelo para los distintos tipos de tenencia de la tierra u ocupación física de la
217    Unidad Económica
218
219    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
220    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
221    @date 08-06-2015
222    @version 3.0.0
223    """
224
225    ## Nombre del tipo de tenencia de la tierra en donde se encuentra ubicada la Subunidad
226    nombre = models.CharField(max_length=60)
227
228    def __unicode__(self):
229        """!
230        Método que muestra el nombre del tipo de tenencia en UNICODE
231
232        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
233        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
234        @date 08-06-2015
235        @return Devuelve el nombre del tipo de tenencia en UNICODE
236        """
237        return self.nombre
238
239    class Meta(ModelReadOnly.Meta):
240        """!
241        Metaclase de la clase TipoTenencia
242
243        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
244        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
245        @date 08-06-2015
246        @version 3.0.0
247        """
248
249        ## Nombre de la tabla en la base de datos
250        db_table = "unidadecon_tipo_tenencia"
251
252
253class TipoAmbitoIndustrial(ModelReadOnly):
254    """!
255    Clase que contiene el modelo para los tipos de Ámbito Industrial registrados en el SIGESIC
256
257    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
258    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
259    @date 08-06-2015
260    @version 3.0.0
261    """
262
263    ## Nombre del tipo de ámbito industrial de la subunidad económica
264    nombre = models.CharField(max_length=60, unique=True)
265
266    def __unicode__(self):
267        """!
268        Método que muestra el nombre del tipo de ámbito industrial en UNICODE
269
270        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
271        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
272        @date 08-06-2015
273        @return Devuelve el nombre del tipo de ámbito industrial en UNICODE
274        """
275        return self.nombre
276
277    class Meta(ModelReadOnly.Meta):
278        """!
279        Metaclase de la clase TipoAmbitoIndustrial
280
281        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
282        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
283        @date 08-06-2015
284        @version 3.0.0
285        """
286
287        ## Nombre de la tabla en la base de datos
288        db_table = "unidadecon_tipo_ambito_industrial"
289
290
291class SubunidadEconomica(ModelReadOnly):
292    """!
293    Clase que contiene el modelo para las Sub Unidades Económicas de una Unidad Económica, los posibles valores son:
294    (Su)cursal, (Se)de y (Pl)anta
295
296    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
297    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
298    @date 08-06-2015
299    @version 3.0.0
300    """
301
302    ## Establece la relación entre la subunidad económica y la unidad económica a la cual pertenece
303    ue_rif = models.ForeignKey(UnidadEconomica, db_column='ue_rif')
304
305    ## Nombre de la subunidad económica
306    nombre = models.CharField(max_length=100)
307
308    ## Establece la relación entre el tipo de subunidad y la subunidad económica
309    tipo_subunidad = models.ForeignKey(TipoSubunidad, db_column='tipo_subunidad')
310
311    ## Nombre de la ciudad en donde se encuentra ubicada la subunidad económica
312    ciudad = models.CharField(max_length=100)
313
314    ## Establece la relación entre la subunidad económica y la parroquia en donde se encuentra ubicada
315    parroquia = models.ForeignKey(Parroquia, db_column='parroquia_codigo', related_name='+')
316
317    ## Establece la relación entre la subunidad económica y los tipos de actividades que desempeña
318    tipo_actividad = models.ManyToManyField(TipoActividad, db_table='unidadecon_subu_t_actividad')
319
320    ## Establece la relación entre la subunidad económica y el tipo de sucursal
321    tipo_sucursal = models.ManyToManyField(TipoSucursal, db_table='unidadecon_sucursal_t_tipo')
322
323    ## Establece la relación entre la subunidad económica y el tipo de tenencia de la tierra en donde
324    # se encuentra ubicada
325    tipo_tenencia = models.ForeignKey(TipoTenencia)
326
327    ## Datos de otros tipos de tenencia de la tierra
328    tenencia_otra = models.CharField(max_length=100, null=True)
329
330    ## Información sobre los metros cuadrados de terreno en donde se encuentra ubicada
331    # la subunidad económica
332    m2_terreno = models.FloatField()
333
334    ## Información sobre los metros cuadrados de construcción en donde se encuentra ubicada
335    # la subunidad económica
336    m2_construccion = models.FloatField()
337
338    ## Establece la relación entre la subunidad económica y el tipo de ámbito industrial al que pertenece
339    tipo_ambito_industrial = models.ForeignKey(TipoAmbitoIndustrial, null=True)
340
341    ## Información sobre otro tipo de ámbito industrial no especificado en el SIGESIC
342    ambito_industrial_otro = models.CharField(max_length=100, null=True)
343
344    ## Información sobre la autonomía electríca de la subunidad económica
345    autonomia_electrica = models.BooleanField()
346
347    ## Indica si la subunidad económica se encuentra activa o no
348    activo = models.BooleanField()
349
350    ## Información sobre el consumo eléctrico de la subunidad económica
351    consumo_electrico = models.DecimalField(max_digits=20, decimal_places=2)
352
353    ## Información sobre el consumo de agua de la subunidad económica
354    consumo_agua = models.DecimalField(max_digits=20, decimal_places=2)
355
356    ## Información sobre el consumo de gas de la subunidad económica
357    consumo_gas = models.DecimalField(max_digits=20, decimal_places=2)
358
359    def __unicode__(self):
360        """!
361        Método que muestra el nombre de la subunidad económica en UNICODE
362
363        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
364        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
365        @date 08-06-2015
366        @return Devuelve el nombre de la Subunidad Económica en UNICODE
367        """
368        return self.nombre
369
370    class Meta(ModelReadOnly.Meta):
371        """!
372        Metaclase de la clase SubunidadEconomica
373
374        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
375        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
376        @date 08-06-2015
377        @version 3.0.0
378        """
379
380        ## Nombre de la tabla en la base de datos
381        db_table = "unidadecon_subunidad_economica"
382
383
384class Producto(ModelReadOnly):
385    """!
386    Clase que contiene el modelo para los productos de una Unidad Económica registrada en el SIGESIC
387
388    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
389    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
390    @date 08-06-2015
391    @version 3.0.0
392    """
393
394    ## Nombre del producto
395    nombre = models.CharField(max_length=100, verbose_name=_(u'Nombre'))
396
397    ## Datos sobre la marca del producto
398    marca = models.CharField(max_length=100, verbose_name=_(u'Descripción'))
399
400    ## Información sobre las especificaciones técnicas del producto
401    esp_tec = models.TextField(verbose_name=_(u'Especificaciones Técnicas'))
402
403    ## Establece la relación del producto con el código arancelario
404    codigo_aran = models.ForeignKey(CodigoAran)
405
406    ## Datos sobre el peso del producto
407    peso = models.FloatField(_(u"Peso"))
408
409    ## Establece la relación entre el producto y la planta que lo fabrica
410    planta_id = models.ForeignKey(SubunidadEconomica)
411
412    ## Establece la relación entre el producto y la unidad de medida
413    unidad_medida = models.ForeignKey(UnidadMedida)
414
415    ## Número de consumidores del producto
416    n_consumidores = models.IntegerField()
417
418    class Meta(ModelReadOnly.Meta):
419        """!
420        Metaclase de la clase Producto
421
422        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
423        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
424        @date 08-06-2015
425        @version 3.0.0
426        """
427
428        ## Nombre de la tabla en la base de datos
429        db_table = "produccion_producto"
430
431
432class ProduccionPreciosR(ModelReadOnly):
433    """!
434    Clase que contiene el modelo para los precios reales de la producción de un producto
435
436    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
437    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
438    @date 11-06-2015
439    @version 3.0.0
440    """
441
442    ## Establece la relación entre el producto y los precios del mismo en diferentes años
443    producto_id = models.ForeignKey(Producto)
444
445    ## Año de registro del producto
446    anho = models.DateField()
447
448    ## Cantidad producida del producto para el año registrado
449    cant_producido = models.FloatField(_(u"Cantidad Producida"))
450
451    ## Cantidad vendida del producto para el año registrado
452    cant_vendido = models.FloatField(_(u"Cantidad Vendida"))
453
454    ## Precio de venta del producto para el año registrado
455    precio_venta = models.FloatField(_(u"Monto Facturado"))
456
457    ## Cantidad del producto con destino nacional
458    destino_nac = models.FloatField(_(u"Destino Nacional"))
459
460    class Meta(ModelReadOnly.Meta):
461        """!
462        Metaclase de la clase ProduccionPreciosR
463
464        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
465        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
466        @date 11-06-2015
467        @version 3.0.0
468        """
469
470        ## Nombre de la tabla en la base de datos
471        db_table = "produccion_produccion_precios_r"
472
473
474class Insumo(ModelReadOnly):
475    """!
476    Clase que contiene el modelo para los Insumos necesarios para la producción
477
478    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
479    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
480    @date 25-06-2015
481    @version 3.0.0
482    """
483
484    ## Contiene el nombre del insumo
485    nombre = models.CharField(max_length=100)
486
487    ## Contiene los datos sobre la marca del insumo
488    marca = models.CharField(max_length=100)
489
490    ## Contiene los datos sobre las espcificaciones técnicas del insumo
491    esp_tec = models.TextField()
492
493    ## Código Arancelario del Insumo
494    codigo_aran = models.ForeignKey(CodigoAran)
495
496    ## Contiene el peso del insumo
497    peso = models.FloatField()
498
499    ## Referencia a la planta que registra el requerimiento del insumo
500    planta_id = models.ForeignKey(SubunidadEconomica)
501
502    ## Unidad de medida del insumo
503    unidad_medida = models.ForeignKey(UnidadMedida)
504
505    ## Contiene el número de proveedores que suministra del insumo
506    n_proveedores = models.IntegerField()
507
508    class Meta:
509        """!
510        Metaclase de la clase Insumo
511
512        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
513        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
514        @date 25-06-2015
515        @version 3.0.0
516        """
517
518        ## Nombre de la tabla en la base de datos
519        db_table = "produccion_insumo"
520
521
522class ConsumoPreciosR(ModelReadOnly):
523    """!
524    Clase que contiene el modelo para los precios reales de los insumos requeridos para la producción
525
526    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
527    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
528    @date 25-06-2015
529    @version 3.0.0
530    """
531
532    ## Establece la relación sobre los precios reales de consumo y el correspondiente insumo que lo genera
533    insumo_id = models.ForeignKey(Insumo)
534
535    ## Año de compra del insumo
536    anho = models.DateField()
537
538    ## Cantidad comprada a nivel nacional
539    cant_comp_nac = models.FloatField()
540
541    ## Cantidad comprada a nivel internacional (importada)
542    cant_comp_imp = models.FloatField()
543
544    ## Precio de adquisición nacional año concluido
545    prec_adq_nac = models.FloatField()
546
547    ## Costo de adquisición año concluido
548    cost_adq = models.FloatField()
549
550    class Meta:
551        """!
552        Metaclase de la clase ConsumoPreciosR
553
554        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
555        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
556        @date 25-06-2015
557        @version 3.0.0
558        """
559
560        ## Nombre de la tabla en la base de datos
561        db_table = "produccion_consumo_precios_r"
562
563
564class ProductoInsumo(ModelReadOnly):
565    """!
566    Clase que contiene el modelo para la relación entre los insumos y los productos
567
568    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
569    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
570    @date 25-06-2015
571    @version 3.0.0
572    """
573
574    ## Establece la relación con el Insumo
575    insumo_id = models.ForeignKey(Insumo)
576
577    ## Establece la relación con el producto
578    producto_id = models.ForeignKey(Producto)
579
580    ## Año registrado sobre la relación del producto y el insumo
581    anho = models.PositiveSmallIntegerField()
582
583    ## Cantidad de insumos de un producto
584    cantidad = models.FloatField()
585
586    ## Estatus que indica si el registro sobre la relación de un insumo a un producto se encuentra activo
587    activo = models.BooleanField()
588
589    ## Fecha en la que se registro la relación sobre el producto y el insumo
590    fecha_insercion = models.DateTimeField()
591
592    class Meta:
593        """!
594        Metaclase de la clase ProductoInsumo
595
596        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
597        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
598        @date 25-06-2015
599        @version 3.0.0
600        """
601
602        ## Nombre de la tabla en la base de datos
603        db_table = "produccion_producto_t_insumo"
604
605
606class Proveedor(ModelReadOnly):
607    """!
608    Clase que contiene el modelo para el registro de proveedores
609
610    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
611    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
612    @date 25-06-2015
613    @version 3.0.0
614    """
615
616    ## Nombre del proveedor
617    nombre = models.CharField(max_length=100)
618
619    ## Número de Registro de Identificación Fiscal (R.I.F.)
620    rif = models.CharField(max_length=10)
621
622    ## Relación sobre el pais de origen del proveedor
623    pais_origen_id = models.ForeignKey(Pais, db_column='pais_origen_id')
624
625    ## Relación sobre el pais de procedencia del proveedor
626    pais_procedencia_id = models.ForeignKey(Pais, db_column='pais_procedencia_id', related_name='+')
627
628    ## Información sobre la nacionalidad del proveedor. Los valores son (E)xtranjero, (N)acional
629    nacional = models.CharField(max_length=1)
630
631    ## Establece la relación con la planta que se abastece con los productos del proveedor
632    planta_id = models.ForeignKey(SubunidadEconomica)
633
634    def __unicode__(self):
635        """!
636        Método que muestra el nombre del proveedor en UNICODE
637
638        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
639        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
640        @date 25-06-2015
641        @return Devuelve el nombre del proveedor en UNICODE
642        """
643        return self.nombre
644
645    class Meta:
646        """!
647        Metaclase de la clase Proveedor
648
649        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
650        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
651        @date 25-06-2015
652        @version 3.0.0
653        """
654
655        ## Nombre de la tabla en la base de datos
656        db_table = 'cmproveedores_proveedor'
657
658
659class ProveedorInsumo(ModelReadOnly):
660    """!
661    Clase que contiene el modelo para la relación entre los proveedores y los insumos
662
663    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
664    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
665    @date 25-06-2015
666    @version 3.0.0
667    """
668
669    ## Establece la relación con el proveedor del insumo
670    proveedor_id = models.ForeignKey(Proveedor)
671
672    ## Establece la relación con el insumo
673    insumo_id = models.ForeignKey(Insumo)
674
675    ## Información sobre el precio total de la cantidad comprada del insumo al proveedor
676    comprado_r = models.DecimalField(max_digits=25, decimal_places=2)
677
678    ## Año de compra del insumo al proveedor
679    anho_r = models.IntegerField()
680
681    ## Cantidad comprada del insumo al proveedor
682    cantidad_comprada_r = models.DecimalField(max_digits=25, decimal_places=2)
683
684    ## Unidad de medida del insumo comprado al proveedor
685    unidad = models.ForeignKey(UnidadMedida)
686
687    def __unicode__(self):
688        """!
689        Método que muestra el nombre del proveedor en UNICODE
690
691        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
692        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
693        @date 25-06-2015
694        @return Devuelve el nombre del proveedor en UNICODE
695        """
696        return self.Proveedor.__unicode__()
697
698    class Meta:
699        """!
700        Metaclase de la clase ProveedorInsumo
701
702        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
703        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
704        @date 25-06-2015
705        @version 3.0.0
706        """
707
708        ## Nombre de la tabla en la base de datos
709        db_table = 'cmproveedores_proveedorinsumo'
710
711
712class TipoPersona(ModelReadOnly):
713    """!
714    Clase que contiene el modelo para los tipos de persona
715
716    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
717    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
718    @date 22-12-2015
719    @version 3.0.0
720    """
721
722    ## Nombre del tipo de persona
723    nombre = models.CharField(max_length=15, unique=True)
724
725    class Meta:
726        """!
727        Metaclase de la clase TipoPersona
728
729        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
730        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
731        @date 22-12-2015
732        @version 3.0.0
733        """
734
735        ## Nombre de la tabla en la base de datos
736        db_table = "comun_tipo_persona"
737
738    def __unicode__(self):
739        """!
740        Método que muestra el nombre del tipo de persona en UNICODE
741
742        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
743        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
744        @date 22-12-2015
745        @return Devuelve el nombre del tipo de persona en UNICODE
746        """
747        return u'%s' % (self.nombre)
748
749
750class Socio(ModelReadOnly):
751    """!
752    Clase que contiene el modelo para los socios de una Unidad Economica
753
754    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
755    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
756    @date 22-12-2015
757    @version 3.0.0
758    """
759
760    ## Numero de RIF o pasaporte en caso de ser extranjero
761    rif_pasaporte = models.CharField(max_length=30, null=True)
762
763    ## Numero de RIF de la Unidad Economica
764    ue_rif = models.ForeignKey(UnidadEconomica, db_column='unidad_economica_rif')
765
766    ## Nombre de la persona asociada
767    nombre = models.CharField(max_length=140)
768
769    ## Nacionalidad de la persona asociada
770    nacionalidad = models.CharField(max_length=1)
771
772    ## Tipo de persona (Natural o Juridica)
773    tipo_persona = models.ForeignKey(TipoPersona, db_column='tipo_persona_id')
774
775    ## Porcentaje accionario dentro de la Unidad Economica
776    porcentaje = models.FloatField()
777
778    class Meta:
779        """!
780        Metaclase de la clase Socio
781
782        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
783        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
784        @date 22-12-2015
785        @version 3.0.0
786        """
787
788        ## Nombre de la tabla en la base de datos
789        db_table = "unidadecon_socio"
790
791    def __unicode__(self):
792        """!
793        Método que muestra los datos del socio en UNICODE
794
795        @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
796        @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
797        @date 22-12-2015
798        @return Devuelve los datos del socio en UNICODE
799        """
800        return u'%s %s %s' % (self.rif_pasaporte,self.nombre,self.nacionalidad)
Note: See TracBrowser for help on using the repository browser.