1
00:00:00,180 --> 00:00:01,980
Bien, comenzamos creando un nuevo proyecto.

2
00:00:02,070 --> 00:00:03,060
Primero cerramos.

3
00:00:04,260 --> 00:00:05,700
Por acá, como siempre.

4
00:00:05,820 --> 00:00:06,020
Bueno.

5
00:00:06,090 --> 00:00:06,870
Siguiente.

6
00:00:07,380 --> 00:00:08,250
Siguiente.

7
00:00:08,340 --> 00:00:10,920
Y el nombre, por ejemplo app facturas.

8
00:00:12,630 --> 00:00:13,290
Finalizar.

9
00:00:15,280 --> 00:00:16,240
Bien, nos vamos.

10
00:00:16,390 --> 00:00:17,110
Ese recé.

11
00:00:17,200 --> 00:00:20,830
Vamos a crear un nuevo package con click derecho New Package.

12
00:00:21,130 --> 00:00:27,190
Le vamos a llamar por punto a Guzmán, nombre de proyecto.

13
00:00:27,280 --> 00:00:27,490
Bien.

14
00:00:27,550 --> 00:00:29,350
Y ese sería nuestro pack principal.

15
00:00:29,410 --> 00:00:32,350
Por ejemplo, donde vamos a tener nuestra clase con el método Main.

16
00:00:32,440 --> 00:00:33,130
Nuestra aplicación.

17
00:00:33,190 --> 00:00:39,670
Pero todas las clases, como por ejemplo factura, producto, cliente y factura representan datos.

18
00:00:39,730 --> 00:00:42,730
Por lo tanto, la vamos a dejar en un paquete.

19
00:00:42,790 --> 00:00:44,080
En un paquete especial.

20
00:00:44,170 --> 00:00:51,280
Típicamente, como son datos o lógica de negocio, pueden ir en Models en inglés, pero también se le

21
00:00:51,280 --> 00:00:59,140
suele llamar dominio o domain domain en inglés, en español dominio o modelo.

22
00:01:00,160 --> 00:01:03,220
También en español la clase del modelo o lógica de negocio.

23
00:01:03,230 --> 00:01:06,820
Los datos de la aplicación lo podemos dejar en español o en inglés.

24
00:01:06,910 --> 00:01:08,530
Da lo mismo, déjenmelo en español.

25
00:01:08,850 --> 00:01:10,760
Bien, entonces modelo acá.

26
00:01:10,760 --> 00:01:13,900
Hoy día, por ejemplo, vamos a crear una nueva clase factura.

27
00:01:15,520 --> 00:01:16,190
Perfecto.

28
00:01:16,930 --> 00:01:18,460
También vamos a crear otra clase.

29
00:01:24,740 --> 00:01:28,400
Yesica Clase exhibimos también en el diagrama o M.L.

30
00:01:31,910 --> 00:01:33,950
Y por último, producto

31
00:01:36,740 --> 00:01:39,320
bien 4 clase vamos a comenzar con los atributos.

32
00:01:39,500 --> 00:01:40,100
Se acuerdan?

33
00:01:40,220 --> 00:01:45,800
En producto habíamos visto que tiene el código del tipo entero nombre y el precio.

34
00:01:45,800 --> 00:01:47,760
El precio del tipo double o float.

35
00:01:50,990 --> 00:01:55,700
Pues el código o aydin o incluso ese cabu algún código de producto.

36
00:02:03,240 --> 00:02:05,280
Y el precio del tipo float o down?

37
00:02:05,590 --> 00:02:07,300
Bien, vamos a querer metodo trans setter.

38
00:02:07,750 --> 00:02:10,330
Entonces clic derecho generate.

39
00:02:11,290 --> 00:02:12,010
Guiteras Z.

40
00:02:12,860 --> 00:02:19,750
Pero bueno, marcamos todo y voy a modificar porque en realidad el código, el set, que si Leidy lo

41
00:02:19,750 --> 00:02:21,400
vamos a auto generar de forma automática.

42
00:02:21,430 --> 00:02:24,940
Se acuerdan con el último Heidy o código estático empresa?

43
00:02:24,940 --> 00:02:25,570
Después lo vemos.

44
00:02:25,870 --> 00:02:27,970
Por ahora voy a quitar este código.

45
00:02:28,310 --> 00:02:33,490
Si la idea de que se puede solamente leer y automáticamente lo asignÃ en el constructor con este atributo

46
00:02:33,490 --> 00:02:38,650
estático bien el nombre set get perfecto, igual que el precio se puede modificar.

47
00:02:39,400 --> 00:02:39,940
Cliente.

48
00:02:45,630 --> 00:02:46,200
Nombre

49
00:02:50,400 --> 00:02:50,760
bien.

50
00:02:50,970 --> 00:02:55,440
Recuerde que el NIF es el número de identificación fiscal o tributario.

51
00:02:55,740 --> 00:02:56,970
Bueno, depende de qué país.

52
00:02:57,020 --> 00:03:02,170
Pero por ejemplo, en España creo que sus Hanif, pero en otros países se utiliza el RUT.

53
00:03:02,430 --> 00:03:07,350
En fin, tiene diferente nombre, pero siempre identificación fiscal o tributaria.

54
00:03:10,430 --> 00:03:15,500
Bien, Guiteras, setter para los dos extremos, la clase, vámonos.

55
00:03:15,560 --> 00:03:16,100
Factura.

56
00:03:20,740 --> 00:03:22,800
Y Leydi de la factura o el folio.

57
00:03:28,400 --> 00:03:33,320
Descripción Dáte llega importamos de lleba útil.

58
00:03:33,470 --> 00:03:36,380
Cuidado porque también esta cuele se fijan.

59
00:03:36,470 --> 00:03:41,590
Acá tenemos dos clases que se llaman igual dáte pero que están en distinto package.

60
00:03:41,840 --> 00:03:44,540
Y es tenemos que tener mucho cuidado de donde vamos a importar.

61
00:03:44,630 --> 00:03:49,490
En este caso siempre de yaba útil lleva ese cueles solamente cuando trabajamos con base de datos.

62
00:03:49,700 --> 00:03:59,840
Es una fecha de ese cuelgue de llaba se cuele doble clic en yaba útil para importar a importamos fecha.

63
00:04:00,440 --> 00:04:06,660
Todavía faltan los atributos de la relación, pero después vamos a ver primero los atributos base que

64
00:04:06,920 --> 00:04:07,400
setter.

65
00:04:13,560 --> 00:04:13,900
Ok.

66
00:04:14,670 --> 00:04:15,690
Y faltaría.

67
00:04:16,080 --> 00:04:16,770
Y en factura

68
00:04:22,980 --> 00:04:25,110
también, qué tan setter la cantidad?

69
00:04:28,610 --> 00:04:29,100
Se fijan?

70
00:04:29,330 --> 00:04:31,670
Bueno, ahora faltaría los atributos de la relación.

71
00:04:31,730 --> 00:04:33,230
Cómo se relacionan uno con otro?

72
00:04:33,290 --> 00:04:35,990
Por ejemplo, sabemos que apartamos en orden.

73
00:04:36,080 --> 00:04:37,100
Comencemos en orden.

74
00:04:37,310 --> 00:04:38,540
Partamos primero en factura.

75
00:04:38,840 --> 00:04:43,940
Cuál sería la relación que tiene factura con las demás clases, según nuestro diagrama que vimos anteriormente?

76
00:04:44,000 --> 00:04:45,380
Tiene una relación con cliente.

77
00:04:45,500 --> 00:04:47,570
Por lo tanto, una factura está asociado al cliente.

78
00:04:47,900 --> 00:04:49,790
Entonces tenemos que reflejar esa relación.

79
00:04:51,260 --> 00:04:57,390
Privat Cliente cliente perfecto va a tener su guía tranqu.

80
00:04:57,560 --> 00:05:05,210
Entonces por acá al final clic derecho generated Guiteras Setter cliente está marcado.

81
00:05:05,280 --> 00:05:07,040
Ok, ahí lo tenemos.

82
00:05:07,190 --> 00:05:07,790
Cuál otra?

83
00:05:08,180 --> 00:05:12,890
También relacionado con sus líneas privat y factura.

84
00:05:15,840 --> 00:05:22,710
Items que sería el detalle, pero ojo, es del tipo arreglo, no es una sola, sino pueden ser varias.

85
00:05:23,220 --> 00:05:24,430
Entonces siempre corchete.

86
00:05:24,570 --> 00:05:25,610
En este caso corchete.

87
00:05:25,950 --> 00:05:26,490
Un arreglo.

88
00:05:27,490 --> 00:05:34,330
Pero como es un arreglo, también tenemos que tener este índice para ir agregando los elementos, los

89
00:05:34,420 --> 00:05:38,620
item con el método Agregar ítem factura add se guardan.

90
00:05:38,710 --> 00:05:44,650
Entonces tenemos que incrementar el índice en donde vamos a guardar este elemento en el arreglo.

91
00:05:44,920 --> 00:05:48,520
Entonces el tipo entero índice ítems.

92
00:05:50,410 --> 00:05:50,740
Bien.

93
00:05:51,400 --> 00:05:54,220
Y el método GET solamente parapeta en factura.

94
00:05:54,310 --> 00:05:59,440
Solamente Elgueta, porque no vamos a tener Zet, vamos a tener el método add de agregar.

95
00:05:59,590 --> 00:06:07,360
Recuerda que la relación en u ml cuando desde muchos, por ejemplo factura tienen muchos iten factura.

96
00:06:07,510 --> 00:06:10,720
La relación si se le conoce como agregación de agregar.

97
00:06:10,810 --> 00:06:13,570
Entonces por eso tienes que agregar este método para agregar item.

98
00:06:14,410 --> 00:06:14,700
Bien.

99
00:06:15,160 --> 00:06:15,850
Bajamos.

100
00:06:17,230 --> 00:06:20,770
Implementamos el get solamente para obtener esta lista.

101
00:06:21,190 --> 00:06:21,550
Get.

102
00:06:22,810 --> 00:06:23,450
Y en factura.

103
00:06:23,960 --> 00:06:24,470
Índice.

104
00:06:24,590 --> 00:06:27,360
Ítems no necesario, ya que lo manejamos de forma interna.

105
00:06:27,470 --> 00:06:29,080
Nada más para incrementar el índice.

106
00:06:29,360 --> 00:06:29,860
Ok.

107
00:06:33,340 --> 00:06:35,280
Ahora el método Bad Boy.

108
00:06:36,980 --> 00:06:42,980
Item mismo nombre de la clase item factura y que reciba un solo elemento.

109
00:06:43,610 --> 00:06:44,720
Item factura.

110
00:06:45,590 --> 00:06:46,000
Item.

111
00:06:47,600 --> 00:06:49,160
Entonces ora disputo.

112
00:06:49,250 --> 00:06:50,390
Item corchete.

113
00:06:51,170 --> 00:06:51,860
Índice.

114
00:06:52,070 --> 00:06:52,670
Items.

115
00:06:52,820 --> 00:06:54,380
El post incremento.

116
00:06:56,420 --> 00:06:56,780
Item.

117
00:06:57,680 --> 00:07:03,200
Pero también tenemos que inicializar este arreglo en algún lugar, porque si no creamos el new del arreglo

118
00:07:03,290 --> 00:07:05,120
base en null hiban lanzaron un pulpo.

119
00:07:05,120 --> 00:07:05,750
Intercepten.

120
00:07:05,840 --> 00:07:07,280
Lo vimos anteriormente.

121
00:07:09,130 --> 00:07:12,640
Entonces vamos a tener acá un constructor también que se encargue de eso.

122
00:07:13,120 --> 00:07:16,330
Por ejemplo, Derecho Generated.

123
00:07:17,840 --> 00:07:25,670
Constructor y podríamos aprovechar de pasar el descripción, por ejemplo, y cliente por el constructor.

124
00:07:26,180 --> 00:07:29,310
La fecha no se puede hacer por set, por métodos.

125
00:07:29,540 --> 00:07:33,260
También, aunque también puede ser constructor o podríamos tener otro constructor.

126
00:07:33,320 --> 00:07:35,470
Bueno, pero para el ejemplo da lo mismo.

127
00:07:35,900 --> 00:07:38,960
Igual que el folio no, pero el folio lo auto generamos.

128
00:07:39,590 --> 00:07:41,690
Bien, entonces estos dos.

129
00:07:42,740 --> 00:07:43,760
Más que suficiente.

130
00:07:43,970 --> 00:07:54,710
Entonces por acá diz punto ítems igual new y creamos la instancia ítem factura, acá me auto completa

131
00:07:54,710 --> 00:07:58,370
se fijan acá entonces TAB Perfecto.

132
00:07:59,030 --> 00:08:01,580
Y acá la cantidad aumentó, por ejemplo 10.

133
00:08:01,820 --> 00:08:06,960
Pero incluso podríamos colocar esto como una constante que un poco mejor, más elegante.

134
00:08:07,100 --> 00:08:17,690
Por ejemplo, Privat incluso podría ser pública total es una constante public static final del tipo

135
00:08:17,690 --> 00:08:18,040
entero.

136
00:08:18,350 --> 00:08:25,670
Le podríamos llamar por ejemplo Máximo o Max John bajo items igual 10.

137
00:08:26,270 --> 00:08:27,710
Entonces usamos esta constante.

138
00:08:30,840 --> 00:08:31,370
Se fijan?

139
00:08:31,620 --> 00:08:32,010
Listo.

140
00:08:32,190 --> 00:08:33,930
Recuerden que puede ser de forma directa.

141
00:08:34,650 --> 00:08:35,430
Mismo nombre.

142
00:08:36,150 --> 00:08:40,060
Como estamos dentro de la misma clase, o bien a través de la clase factura.

143
00:08:40,080 --> 00:08:40,710
Punto.

144
00:08:40,890 --> 00:08:41,550
La constante.

145
00:08:41,820 --> 00:08:42,770
Pero cómo estamos dentro?

146
00:08:42,780 --> 00:08:44,020
Simplemente el nombre.

147
00:08:44,040 --> 00:08:44,520
Nada más.

148
00:08:45,060 --> 00:08:45,390
Bien.

149
00:08:45,510 --> 00:08:48,120
Y para evitar también este típico error.

150
00:08:48,180 --> 00:08:50,400
Cuando se desborda el arreglo.

151
00:08:50,700 --> 00:08:51,480
Podríamos preguntarnos.

152
00:08:51,480 --> 00:08:51,810
Cierto.

153
00:08:51,810 --> 00:08:52,420
Con un if.

154
00:08:52,530 --> 00:08:55,560
Mientras el índice ítem solamente.

155
00:08:55,650 --> 00:08:58,260
Mientras sea menor que el máximo elemento.

156
00:08:58,800 --> 00:08:59,070
Entonces.

157
00:08:59,070 --> 00:09:01,230
Max ítems que 10.

158
00:09:01,740 --> 00:09:03,960
Vamos agregando una validación.

159
00:09:04,410 --> 00:09:04,890
Entonces.

160
00:09:04,890 --> 00:09:09,570
Mientras el índice que se va incrementando se mantenga menor al máximo.

161
00:09:09,810 --> 00:09:12,120
Podemos agregar elementos a este arreglo.

162
00:09:12,390 --> 00:09:13,230
Arreglo de ítems.

163
00:09:13,500 --> 00:09:18,030
Entonces esta factura podrГЎ como máximo 10 elementos o 15 o 12.

164
00:09:18,180 --> 00:09:18,630
Por ejemplo.

165
00:09:18,930 --> 00:09:20,100
Lo podríamos dejar en 12.

166
00:09:20,460 --> 00:09:21,900
Qué me faltaría el folio.

167
00:09:22,440 --> 00:09:24,420
Lo podríamos auto incrementar.

168
00:09:24,690 --> 00:09:30,480
Para eso necesitamos privat del tipo entero pero estático.

169
00:09:30,570 --> 00:09:31,320
Es importante.

170
00:09:31,470 --> 00:09:32,070
Static.

171
00:09:32,670 --> 00:09:35,940
Int, último folio.

172
00:09:37,860 --> 00:09:39,630
Entonces también en este constructor.

173
00:09:39,720 --> 00:09:40,410
Acá mismo.

174
00:09:41,370 --> 00:09:49,260
Sutiss punto folio es igual al último folio y lo incrementamos.

175
00:09:49,290 --> 00:09:51,540
Pero un incremento para que comiencen.

176
00:09:51,540 --> 00:09:53,370
1 Bejan parte1.

177
00:09:55,820 --> 00:09:59,340
Guet folios de folio exceed folio lo vamos a quitar ya.

178
00:10:00,090 --> 00:10:00,570
Por qué?

179
00:10:00,700 --> 00:10:02,790
Bueno, no tiene sentido modificar el folio.

180
00:10:02,880 --> 00:10:08,190
La idea de que se auto genere de esta forma, entonces de esta forma se asigna solo retruco Mohler,

181
00:10:08,280 --> 00:10:14,040
pero no asignar, mientras que la descripción se puede obtener, modificar la fecha también.

182
00:10:14,250 --> 00:10:14,590
En fin.

183
00:10:15,120 --> 00:10:15,450
Y así.

184
00:10:17,580 --> 00:10:26,630
Incluso también podremos crear una fecha por defecto 10 punto fecha también en el constructor New Data.

185
00:10:28,990 --> 00:10:33,420
Entonces, cuando se crea el objeto factura, se crea con la fecha, con la fecha actual dilecto.

186
00:10:33,580 --> 00:10:40,900
Hoy tenemos casi todo cliente lo podría manejar simple, solamente con el nombre y su identificador

187
00:10:41,170 --> 00:10:42,070
y en factura.

188
00:10:42,160 --> 00:10:45,010
Bueno, le falta, todavía le falta la relación con el producto.

189
00:10:45,220 --> 00:10:51,280
Recuerden que una factura está asociado a un solo producto y también podría tener una relación con factura,

190
00:10:51,340 --> 00:10:52,300
pero no necesario.

191
00:10:52,510 --> 00:10:58,270
No es tan importante que un detalle, una línea tenga la referencia de su factura, porque nunca vamos

192
00:10:58,270 --> 00:11:02,200
a consultar una línea en particular y querer saber de qué factura pertenece.

193
00:11:02,230 --> 00:11:08,650
No siempre se mira los items o la línea dentro de la factura, es decir, en conjunto es parte de la

194
00:11:08,650 --> 00:11:09,070
factura.

195
00:11:09,280 --> 00:11:11,710
Nunca se mira de forma individualmente.

196
00:11:12,340 --> 00:11:14,470
Nunca vamos a consultar de forma individual.

197
00:11:14,590 --> 00:11:15,790
Siempre con la factura.

198
00:11:16,240 --> 00:11:23,320
Entonces solamente private producto producto.

199
00:11:25,340 --> 00:11:26,720
Qué transceptor de producto?

200
00:11:30,780 --> 00:11:36,030
Ok, podríamos tener un constructor que inicie inicializa generate.

201
00:11:37,570 --> 00:11:40,030
Quienes se hÃlice cantidad y producto.

202
00:11:41,090 --> 00:11:46,940
Y estamos casi listos, porque en producto faltaría solamente el código auto general, el código.

203
00:11:48,010 --> 00:11:48,790
Bien, para eso.

204
00:11:48,880 --> 00:11:49,930
Dos cosas primero.

205
00:11:51,280 --> 00:11:56,680
Private static int último código.

206
00:11:58,510 --> 00:11:59,020
Bien.

207
00:11:59,680 --> 00:12:00,520
Y el constructor?

208
00:12:03,190 --> 00:12:05,020
Constructor vacío, lo dejamos vacío.

209
00:12:06,290 --> 00:12:06,920
Okei.

210
00:12:08,990 --> 00:12:18,020
Disputo código igual, incrementamos último código, un incremento y solamente linked del código no,

211
00:12:18,020 --> 00:12:20,240
etcetc, lo mismo que hicimos en factura.

212
00:12:20,540 --> 00:12:24,560
Acá incrementamos último folio, se lo asignamos y solamente el folio.

213
00:12:25,820 --> 00:12:26,580
Que estamos listos.

214
00:12:26,700 --> 00:12:30,330
Hemos avanzado bastante, así que continuamos en la siguiente clase.
