Agregada ruta y logica para cargar canastas
This commit is contained in:
parent
5a4b933f11
commit
131bf33a73
|
@ -12,6 +12,7 @@ npm-debug.log
|
|||
yarn-error.log
|
||||
.idea
|
||||
/resources/csv/exports/*.csv
|
||||
/resources/csv/canastas/*.csv
|
||||
/public/css/
|
||||
/public/js/
|
||||
/public/mix-manifest.json
|
||||
|
|
|
@ -4,6 +4,7 @@ namespace App\Http\Controllers;
|
|||
|
||||
use App\GrupoDeCompra;
|
||||
use App\Producto;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ComprasController
|
||||
{
|
||||
|
@ -33,4 +34,19 @@ class ComprasController
|
|||
{
|
||||
return view('auth/compras_login');
|
||||
}
|
||||
|
||||
public function cargarCanasta(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'data' => 'required|file|mimes:csv,txt|max:2048',
|
||||
]);
|
||||
|
||||
$archivo = $request->file('data');
|
||||
$path = resource_path('/csv/canastas/');
|
||||
$archivo->move($path, $archivo->getClientOriginalName());
|
||||
|
||||
return response()->json([
|
||||
'message' => 'Canasta cargada exitosamente',
|
||||
], 200);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,14 +6,14 @@
|
|||
class="file-input"
|
||||
type="file"
|
||||
name="canasta"
|
||||
@change="onFileChange"
|
||||
@change="archivoSubido"
|
||||
/>
|
||||
<span class="file-cta">
|
||||
<span class="file-icon">
|
||||
<i class="fas fa-cloud-upload-alt"></i>
|
||||
</span>
|
||||
<span class="file-label">Subir canasta</span>
|
||||
</span>
|
||||
<span class="file-icon">
|
||||
<i class="fas fa-cloud-upload-alt"></i>
|
||||
</span>
|
||||
<span class="file-label">Subir canasta</span>
|
||||
</span>
|
||||
<span class="file-name" v-if="archivo">
|
||||
{{ archivo.nombre }}
|
||||
</span>
|
||||
|
@ -34,21 +34,21 @@ export default {
|
|||
};
|
||||
},
|
||||
methods: {
|
||||
async onFileChange(event) {
|
||||
async archivoSubido(event) {
|
||||
const archivo = event.target.files[0];
|
||||
if (archivo && archivo.type === "text/csv") {
|
||||
this.archivo = { file: archivo, nombre: archivo.name };
|
||||
this.archivo = {data: archivo, nombre: archivo.name};
|
||||
const formData = new FormData();
|
||||
formData.append("file", this.archivo.file);
|
||||
formData.append("data", this.archivo.data);
|
||||
|
||||
try {
|
||||
this.cargando = true;
|
||||
const response = await axios.post("/cargar-canasta", formData, {
|
||||
const response = await axios.post("/compras/canasta", formData, {
|
||||
headers: {
|
||||
"Content-Type": "multipart/form-data",
|
||||
},
|
||||
});
|
||||
this.$root.$toast(response.data.message || "Canasta cargada!");
|
||||
this.$root.$toast(response.data.message || "Canasta cargada exitosamente");
|
||||
} catch (error) {
|
||||
this.$root.$toast(error.response?.data?.message || "Hubo errores.");
|
||||
} finally {
|
||||
|
|
|
@ -83,4 +83,5 @@ Route::middleware(['compras'])->group( function() {
|
|||
Route::get('/compras/pedidos/descargar', 'ComprasController@descargarPedidos')->name('compras.pedidos.descargar');
|
||||
Route::get('/compras/pedidos/notas', 'ComprasController@descargarNotas')->name('compras.pedidos.descargar');
|
||||
Route::get('/compras/pedidos/transporte', 'ComprasController@descargarTransporte')->name('compras.pedidos.descargar');
|
||||
Route::post('/compras/canasta', 'ComprasController@cargarCanasta')->name('compras.canasta');
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue