Merge branch 'main' into BarraDeNavegacion
This commit is contained in:
		| @@ -5,7 +5,7 @@ | ||||
|   <meta charset="UTF-8" /> | ||||
|   <link rel="icon" href="/favicon.ico" /> | ||||
|   <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||||
|   <title>Welcome to Vuetify 3</title> | ||||
|   <title>Don Confiao</title> | ||||
| </head> | ||||
|  | ||||
| <body> | ||||
|   | ||||
							
								
								
									
										
											BIN
										
									
								
								tienda_ilusion/don_confiao/frontend/don-confiao/public/1.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								tienda_ilusion/don_confiao/frontend/don-confiao/public/1.ico
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 15 KiB | 
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 55 KiB | 
| @@ -1,7 +1,9 @@ | ||||
| <template> | ||||
|   <v-app> | ||||
|       <NavBar /> | ||||
|       <router-view /> | ||||
|       <v-main> | ||||
|           <router-view /> | ||||
|       </v-main> | ||||
|   </v-app> | ||||
| </template> | ||||
|  | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 46 KiB | 
| @@ -1,5 +1,5 @@ | ||||
| <template> | ||||
|   <v-app-bar color="primary" prominent> | ||||
|     <v-app-bar color="primary" prominent> | ||||
|     <v-app-bar-nav-icon variant="text" @click.stop="drawer = !drawer"></v-app-bar-nav-icon> | ||||
|     <v-toolbar-title>Menu</v-toolbar-title> | ||||
|     <v-spacer></v-spacer> | ||||
| @@ -22,6 +22,7 @@ | ||||
|  | ||||
| <script> | ||||
|  export default { | ||||
|      name: 'NavBar', | ||||
|      data: () => ({ | ||||
|          drawer: false, | ||||
|          group: null, | ||||
|   | ||||
| @@ -1,101 +1,94 @@ | ||||
| <template> | ||||
|   <v-app-bar color="primary" prominent> | ||||
|     <v-app-bar-nav-icon variant="text" @click.stop="drawer = !drawer"></v-app-bar-nav-icon> | ||||
|     <v-toolbar-title>My files</v-toolbar-title> | ||||
|     <v-spacer></v-spacer> | ||||
|     <template v-if="$vuetify.display.mdAndUp"> | ||||
|       <v-btn icon="mdi-magnify" variant="text"></v-btn> | ||||
|       <v-btn icon="mdi-filter" variant="text"></v-btn> | ||||
|     </template> | ||||
|     <v-btn icon="mdi-dots-vertical" variant="text"></v-btn> | ||||
|   </v-app-bar> | ||||
|   <v-navigation-drawer v-model="drawer" | ||||
|                        :location="$vuetify.display.mobile ? 'bottom' : undefined" | ||||
|                        temporary> | ||||
|     <v-list :items="items"></v-list> | ||||
|   </v-navigation-drawer> | ||||
|   <v-container app> | ||||
|   <v-container> | ||||
|       <v-form ref="form" v-model="valid"> | ||||
|         <v-text-field | ||||
|           v-model="purchase.date" | ||||
|           label="Fecha" | ||||
|           type="date" | ||||
|           :rules="[rules.required]" | ||||
|           required | ||||
|         ></v-text-field> | ||||
|         <v-select | ||||
|           v-model="purchase.customer" | ||||
|           :items="clients" | ||||
|           item-title="name" | ||||
|           item-value="id" | ||||
|           label="Cliente" | ||||
|           :rules="[rules.required]" | ||||
|           required | ||||
|         ></v-select> | ||||
|         <v-row> | ||||
|           <v-col> | ||||
|           <v-select | ||||
|             v-model="purchase.customer" | ||||
|             :items="clients" | ||||
|             item-title="name" | ||||
|             item-value="id" | ||||
|             label="Cliente" | ||||
|             :rules="[rules.required]" | ||||
|             required | ||||
|             class="mr-4" | ||||
|             ></v-select> | ||||
|           </v-col> | ||||
|           <v-col | ||||
|             lg="2" | ||||
|             > | ||||
|           <v-text-field | ||||
|             v-model="purchase.date" | ||||
|             label="Fecha" | ||||
|             type="date" | ||||
|             :rules="[rules.required]" | ||||
|             required | ||||
|             ></v-text-field> | ||||
|           </v-col> | ||||
|           </v-row> | ||||
|  | ||||
|         <v-textarea | ||||
|           v-model="purchase.notes" | ||||
|           label="Notas" | ||||
|           rows="2" | ||||
|         ></v-textarea> | ||||
|         <v-divider></v-divider> | ||||
|         <v-container> | ||||
|           <v-toolbar> | ||||
|             <v-toolbar-title secondary>Productos</v-toolbar-title> | ||||
|           </v-toolbar> | ||||
|           <div v-for="(line, index) in purchase.saleline_set" :key="line.id"> | ||||
|             <v-row> | ||||
|               <v-col> | ||||
|                 <v-select | ||||
|                   v-model="line.product" | ||||
|                   :items="products" | ||||
|                   @update:modelValue="onProductChange(index)" | ||||
|                   item-title="name" | ||||
|                   item-value="id" | ||||
|                   label="Producto" | ||||
|                   :rules="[rules.required]" | ||||
|                   required | ||||
|                 ></v-select> | ||||
|               </v-col> | ||||
|               <v-col> | ||||
|                 <v-text-field | ||||
|                   v-model.number="line.unit_price" | ||||
|                   label="Precio" | ||||
|                   type="number" | ||||
|                   :rules="[rules.required]" | ||||
|                   prefix="$" | ||||
|                   required | ||||
|                   readonly | ||||
|                 ></v-text-field> | ||||
|               </v-col> | ||||
|               <v-col> | ||||
|                 <v-text-field | ||||
|                   v-model.number="line.quantity" | ||||
|                   label="Cantidad" | ||||
|                   type="number" | ||||
|                   :rules="[rules.required]" | ||||
|                   required | ||||
|                 ></v-text-field> | ||||
|               </v-col> | ||||
|               <v-col> | ||||
|                 <v-text-field | ||||
|                   type="number" | ||||
|                   :value="calculateSubtotal(line)" | ||||
|                   label="Subtotal" | ||||
|                   prefix="$" | ||||
|                   readonly | ||||
|                   disable | ||||
|                 ></v-text-field> | ||||
|               </v-col> | ||||
|               <v-col> | ||||
|                 <v-btn @click="removeLine(index)" color="red">Eliminar</v-btn> | ||||
|               </v-col> | ||||
|             </v-row> | ||||
|           </div> | ||||
|           <v-btn @click="addLine" color="blue">Agregar</v-btn> | ||||
|  | ||||
|         <v-container v-for="(line, index) in purchase.saleline_set" :key="line.id"> | ||||
|           <v-row> | ||||
|             <v-col> | ||||
|               <v-select | ||||
|                 v-model="line.product" | ||||
|                 :items="products" | ||||
|                 @update:modelValue="onProductChange(index)" | ||||
|                 item-title="name" | ||||
|                 item-value="id" | ||||
|                 label="Producto" | ||||
|                 :rules="[rules.required]" | ||||
|                 required | ||||
|               ></v-select> | ||||
|             </v-col> | ||||
|             <v-col> | ||||
|               <v-text-field | ||||
|                 v-model.number="line.unit_price" | ||||
|                 label="Precio" | ||||
|                 type="number" | ||||
|                 :rules="[rules.required]" | ||||
|                 prefix="$" | ||||
|                 required | ||||
|                 readonly | ||||
|               ></v-text-field> | ||||
|             </v-col> | ||||
|             <v-col> | ||||
|               <v-text-field | ||||
|                 v-model.number="line.quantity" | ||||
|                 label="Cantidad" | ||||
|                 type="number" | ||||
|                 :rules="[rules.required]" | ||||
|                 required | ||||
|               ></v-text-field> | ||||
|             </v-col> | ||||
|             <v-col> | ||||
|               <v-text-field | ||||
|                 type="number" | ||||
|                 :value="calculateSubtotal(line)" | ||||
|                 label="Subtotal" | ||||
|                 prefix="$" | ||||
|                 readonly | ||||
|                 disable | ||||
|               ></v-text-field> | ||||
|             </v-col> | ||||
|             <v-col> | ||||
|               <v-btn @click="removeLine(index)" color="red">Eliminar</v-btn> | ||||
|             </v-col> | ||||
|           </v-row> | ||||
|         </v-container> | ||||
|         <v-btn @click="addLine" color="blue">Agregar</v-btn> | ||||
|         </v-container> | ||||
|  | ||||
|         <v-divider></v-divider> | ||||
|  | ||||
|         <v-text-field | ||||
|           :value="calculateTotal" | ||||
|           label="Total" | ||||
| @@ -137,7 +130,7 @@ | ||||
|           }, | ||||
|         ], | ||||
|         purchase: { | ||||
|           date: '', | ||||
|           date: this.getCurrentDate(), | ||||
|           client: null, | ||||
|           notes: '', | ||||
|           saleline_set: [{product:'', unit_price: 0, quantity: 0}], | ||||
| @@ -170,6 +163,14 @@ | ||||
|       }, | ||||
|     }, | ||||
|     methods: { | ||||
|       getCurrentDate() { | ||||
|         const today = new Date(); | ||||
|         const yyyy = today.getFullYear(); | ||||
|         const mm = String(today.getMonth() + 1).padStart(2, '0'); | ||||
|         const dd = String(today.getDate()).padStart(2, '0'); | ||||
|         return `${yyyy}-${mm}-${dd}`; | ||||
|       }, | ||||
|  | ||||
|       onProductChange(index) { | ||||
|         const selectedProductId = this.purchase.saleline_set[index].product; | ||||
|         const selectedProduct = this.products.find(p => p.id == selectedProductId); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user