funcion/planilla-pedidos-total #33
|
@ -7,7 +7,7 @@ use Mpdf\Mpdf;
|
||||||
use League\Csv\CannotInsertRecord;
|
use League\Csv\CannotInsertRecord;
|
||||||
use League\Csv\Writer;
|
use League\Csv\Writer;
|
||||||
use App\Producto;
|
use App\Producto;
|
||||||
use DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use League\Csv\Reader;
|
use League\Csv\Reader;
|
||||||
|
|
||||||
class GrupoDeCompra extends Model
|
class GrupoDeCompra extends Model
|
||||||
|
@ -17,7 +17,34 @@ class GrupoDeCompra extends Model
|
||||||
protected $table = 'grupos_de_compra';
|
protected $table = 'grupos_de_compra';
|
||||||
protected $hidden = ['password'];
|
protected $hidden = ['password'];
|
||||||
|
|
||||||
public function toggleDevoluciones()
|
/**
|
||||||
|
* @param $gdcs
|
||||||
|
* @param array $planilla
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public static function getPlanilla($gdcs, array $planilla): array
|
||||||
|
{
|
||||||
|
$barrios = [""];
|
||||||
|
foreach ($gdcs as $i => $gdc) {
|
||||||
|
$barrios[] = $gdc->nombre;
|
||||||
|
$productos_en_pedido = DB::table('pedidos_aprobados')->where('grupo_de_compra_id', $gdc->id)->get()->keyBy('producto_id');
|
||||||
|
$pedidos = $gdc->pedidosAprobados();
|
||||||
|
foreach ($productos_en_pedido as $id => $producto_pedido) {
|
||||||
|
$total = 0;
|
||||||
|
// Poner cantidad de cada producto para cada núcleo
|
||||||
|
foreach ($pedidos as $pedido) {
|
||||||
|
list($_, $_, $cantidad) = $gdc->agregarCantidad($pedido, $id, [], 0, 0);
|
||||||
|
$total = $total + $cantidad;
|
||||||
|
}
|
||||||
|
$fila = Producto::productosIdFila()[$id];
|
||||||
|
$planilla[$fila][$i+1] = $total;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
array_splice($planilla, 0, 0, array($barrios));
|
||||||
|
return $planilla;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function toggleDevoluciones()
|
||||||
{
|
{
|
||||||
$this->devoluciones_habilitadas = !$this->devoluciones_habilitadas;
|
$this->devoluciones_habilitadas = !$this->devoluciones_habilitadas;
|
||||||
$this->save();
|
$this->save();
|
||||||
|
@ -47,7 +74,8 @@ class GrupoDeCompra extends Model
|
||||||
$mpdf->Output($filename, "D");
|
$mpdf->Output($filename, "D");
|
||||||
}
|
}
|
||||||
|
|
||||||
function filaVacia(string $product, int $columns) {
|
static function filaVacia(string $product, int $columns): array
|
||||||
|
{
|
||||||
$fila = [$product];
|
$fila = [$product];
|
||||||
for ($i = 1; $i <= $columns; $i++) {
|
for ($i = 1; $i <= $columns; $i++) {
|
||||||
$fila[$i] = "0";
|
$fila[$i] = "0";
|
||||||
|
@ -56,23 +84,23 @@ class GrupoDeCompra extends Model
|
||||||
}
|
}
|
||||||
|
|
||||||
//Asume que los productos están gruadados en orden de fila
|
//Asume que los productos están gruadados en orden de fila
|
||||||
public function obtenerTemplateDeFilasVacias(int $columns){
|
public static function obtenerTemplateDeFilasVacias(int $columns){
|
||||||
$productosFilaID = Producto::productosFilaID();
|
$productosFilaID = Producto::productosFilaID();
|
||||||
$productosIDNombre = Producto::productosIDNombre();
|
$productosIDNombre = Producto::productosIDNombre();
|
||||||
$num_fila = 1;
|
$num_fila = 1;
|
||||||
$template = [];
|
$template = [];
|
||||||
foreach ($productosFilaID as $fila => $id) {
|
foreach ($productosFilaID as $fila => $id) {
|
||||||
for ($i = $num_fila; $i < $fila; $i++) {
|
for ($i = $num_fila; $i < $fila; $i++) {
|
||||||
$template[$i] = $this->filaVacia("", $columns);
|
$template[$i] = GrupoDeCompra::filaVacia("", $columns);
|
||||||
}
|
}
|
||||||
$template[$fila] = $this->filaVacia($productosIDNombre[$id], $columns);
|
$template[$fila] = GrupoDeCompra::filaVacia($productosIDNombre[$id], $columns);
|
||||||
$num_fila = $fila+1;
|
$num_fila = $fila+1;
|
||||||
}
|
}
|
||||||
$template[$this->obtenerFilaDeBonoTransporte()] = $this->filaVacia("Bonos de transporte", $columns);
|
$template[GrupoDeCompra::obtenerFilaDeBonoTransporte()] = GrupoDeCompra::filaVacia("Bonos de transporte", $columns);
|
||||||
return $template;
|
return $template;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function obtenerFilaDeBonoTransporte() {
|
private static function obtenerFilaDeBonoTransporte() {
|
||||||
$csv = Reader::createFromPath(resource_path('csv/productos.csv'), 'r');
|
$csv = Reader::createFromPath(resource_path('csv/productos.csv'), 'r');
|
||||||
$csv->setDelimiter("|");
|
$csv->setDelimiter("|");
|
||||||
$csv->setEnclosure("'");
|
$csv->setEnclosure("'");
|
||||||
|
@ -84,7 +112,7 @@ class GrupoDeCompra extends Model
|
||||||
throw new Exception('No hay bono de transporte');
|
throw new Exception('No hay bono de transporte');
|
||||||
}
|
}
|
||||||
|
|
||||||
private function totalPedidosSinBonos() {
|
private function totalPedidosSinBonos() {
|
||||||
$total = 0;
|
$total = 0;
|
||||||
foreach ($this->pedidosAprobados() as $pedido) {
|
foreach ($this->pedidosAprobados() as $pedido) {
|
||||||
$total += ceil($pedido->totalSinBonos());
|
$total += ceil($pedido->totalSinBonos());
|
||||||
|
@ -116,19 +144,7 @@ class GrupoDeCompra extends Model
|
||||||
}
|
}
|
||||||
|
|
||||||
public function exportarPedidoEnCSV(){
|
public function exportarPedidoEnCSV(){
|
||||||
$productos_en_pedido = DB::table('pedidos_aprobados')->where('grupo_de_compra_id',$this->id)->get()->keyBy('producto_id');
|
$records = $this->generarColumnaCantidades();
|
||||||
|
|
||||||
//si no hay pedidos aprobados, salir
|
|
||||||
if ($productos_en_pedido->count() == 0) { \Log::debug("El grupo de compra ". $this->nombre . " no tiene pedidos aprobados."); return; }
|
|
||||||
$records = $this->obtenerTemplateDeFilasVacias(1);
|
|
||||||
$productos_id_fila = Producto::productosIdFila();
|
|
||||||
foreach ($productos_en_pedido as $id => $producto_pedido){
|
|
||||||
$fila = $productos_id_fila[$id];
|
|
||||||
$records[$fila][1] = $producto_pedido->cantidad_pedida;
|
|
||||||
}
|
|
||||||
|
|
||||||
$records[$this->obtenerFilaDeBonoTransporte()][1] = $this->calcularCantidadBDT();
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$writer = Writer::createFromPath(resource_path('csv/exports/'.$this->nombre.'.csv'), 'w');
|
$writer = Writer::createFromPath(resource_path('csv/exports/'.$this->nombre.'.csv'), 'w');
|
||||||
$writer->insertAll($records);
|
$writer->insertAll($records);
|
||||||
|
@ -137,11 +153,35 @@ class GrupoDeCompra extends Model
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function generarColumnaCantidades() {
|
||||||
|
$productos_en_pedido = DB::table('pedidos_aprobados')->where('grupo_de_compra_id',$this->id)->get()->keyBy('producto_id');
|
||||||
|
|
||||||
|
//si no hay pedidos aprobados, salir
|
||||||
|
if ($productos_en_pedido->count() == 0) {
|
||||||
|
\Log::debug("El grupo de compra ". $this->nombre . " no tiene pedidos aprobados.");
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
$records = $this->obtenerTemplateDeFilasVacias(1);
|
||||||
|
$productos_id_fila = Producto::productosIdFila();
|
||||||
|
foreach ($productos_en_pedido as $id => $producto_pedido){
|
||||||
|
$fila = $productos_id_fila[$id];
|
||||||
|
$records[$fila][1] = $producto_pedido->cantidad_pedida;
|
||||||
|
}
|
||||||
|
|
||||||
|
$records[$this->obtenerFilaDeBonoTransporte()][1] = $this->calcularCantidadBDT();
|
||||||
|
|
||||||
|
return $records;
|
||||||
|
}
|
||||||
|
|
||||||
public function exportarPedidoConNucleosEnCSV() {
|
public function exportarPedidoConNucleosEnCSV() {
|
||||||
$productos_en_pedido = DB::table('pedidos_aprobados')->where('grupo_de_compra_id',$this->id)->get()->keyBy('producto_id');
|
$productos_en_pedido = DB::table('pedidos_aprobados')->where('grupo_de_compra_id',$this->id)->get()->keyBy('producto_id');
|
||||||
|
|
||||||
// si no hay pedidos aprobados, salir
|
// si no hay pedidos aprobados, salir
|
||||||
if ($productos_en_pedido->count() == 0) { \Log::debug("El grupo de compra ". $this->nombre . " no tiene pedidos aprobados."); return; }
|
if ($productos_en_pedido->count() == 0) {
|
||||||
|
\Log::debug("El grupo de compra ". $this->nombre . " no tiene pedidos aprobados.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$pedidos = $this->pedidosAprobados();
|
$pedidos = $this->pedidosAprobados();
|
||||||
// Generar tabla vacía con una columna por núcleo
|
// Generar tabla vacía con una columna por núcleo
|
||||||
|
@ -153,9 +193,7 @@ class GrupoDeCompra extends Model
|
||||||
$i = 1;
|
$i = 1;
|
||||||
// Poner cantidad de cada producto para cada núcleo
|
// Poner cantidad de cada producto para cada núcleo
|
||||||
foreach ($pedidos as $pedido) {
|
foreach ($pedidos as $pedido) {
|
||||||
$producto = $pedido->productos()->find($id);
|
list($records, $i, $_) = $this->agregarCantidad($pedido, $id, $records, $fila, $i);
|
||||||
$records[$fila][$i] = $producto == NULL ? 0 : $producto["pivot"]["cantidad"];
|
|
||||||
$i++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Insertar lista de núcleos en la primera fila
|
// Insertar lista de núcleos en la primera fila
|
||||||
|
@ -176,8 +214,26 @@ class GrupoDeCompra extends Model
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function agregarCantidad($pedido, $id, array $records, $fila, int $i): array
|
||||||
|
{
|
||||||
|
$producto = $pedido->productos()->find($id);
|
||||||
|
$cantidad = $producto == NULL ? 0 : $producto->pivot->cantidad;
|
||||||
|
$records[$fila][$i] = $cantidad;
|
||||||
|
$i++;
|
||||||
|
return array($records, $i, $cantidad);
|
||||||
|
}
|
||||||
|
|
||||||
public static function exportarTodosLosPedidosEnCSV(){
|
public static function exportarTodosLosPedidosEnCSV(){
|
||||||
$gdcs=GrupoDeCompra::all();
|
$gdcs = GrupoDeCompra::all();
|
||||||
foreach ($gdcs as $gdc){ $gdc->exportarPedidoEnCSV(); }
|
$planilla = GrupoDeCompra::obtenerTemplateDeFilasVacias($gdcs->count());
|
||||||
|
$planilla = self::getPlanilla($gdcs, $planilla);
|
||||||
|
|
||||||
|
// Guardar en un archivo .csv
|
||||||
|
try {
|
||||||
|
$writer = Writer::createFromPath(resource_path('csv/exports/total-pedidos.csv'), 'w');
|
||||||
|
$writer->insertAll($planilla);
|
||||||
|
} catch (CannotInsertRecord $e) {
|
||||||
|
var_export($e->getRecords());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Api;
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use Illuminate\Support\Facades\DB;
|
|
||||||
|
|
||||||
class PedidoController extends Controller
|
|
||||||
{
|
|
||||||
}
|
|
|
@ -31,7 +31,9 @@ class LoginController extends Controller
|
||||||
|
|
||||||
protected function authenticated(Request $request, $user)
|
protected function authenticated(Request $request, $user)
|
||||||
{
|
{
|
||||||
if ($user->is_admin) {
|
if ($user->is_compras) {
|
||||||
|
return redirect('compras/pedidos');
|
||||||
|
} else if ($user->is_admin) {
|
||||||
session(['admin_gdc' => $user->grupo_de_compra_id]);
|
session(['admin_gdc' => $user->grupo_de_compra_id]);
|
||||||
return redirect('admin/pedidos');
|
return redirect('admin/pedidos');
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\GrupoDeCompra;
|
||||||
|
|
||||||
|
class ComprasController
|
||||||
|
{
|
||||||
|
public function indexPedidos() {
|
||||||
|
return view('compras_pedidos');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function descargarPedidos() {
|
||||||
|
GrupoDeCompra::exportarTodosLosPedidosEnCSV();
|
||||||
|
$file = resource_path('csv/exports/total-pedidos.csv');
|
||||||
|
return response()->download($file);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function show()
|
||||||
|
{
|
||||||
|
return view('auth/compras_login');
|
||||||
|
}
|
||||||
|
}
|
|
@ -57,6 +57,7 @@ class Kernel extends HttpKernel
|
||||||
protected $routeMiddleware = [
|
protected $routeMiddleware = [
|
||||||
'auth' => \App\Http\Middleware\Authenticate::class,
|
'auth' => \App\Http\Middleware\Authenticate::class,
|
||||||
'admin' => \App\Http\Middleware\Admin::class,
|
'admin' => \App\Http\Middleware\Admin::class,
|
||||||
|
'compras' => \App\Http\Middleware\Compras::class,
|
||||||
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
|
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
|
||||||
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
|
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
|
||||||
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
|
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
|
use Closure;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
|
class Compras
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Handle an incoming request.
|
||||||
|
*
|
||||||
|
* @param Request $request
|
||||||
|
* @param Closure $next
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function handle(Request $request, Closure $next)
|
||||||
|
{
|
||||||
|
if (!Auth::check())
|
||||||
|
return redirect()->route('compras_login.show');
|
||||||
|
|
||||||
|
if (Auth::user()->is_compras) {
|
||||||
|
return $next($request);
|
||||||
|
} else {
|
||||||
|
return response('Necesitás ser de comisión compras para hacer esto', 403);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -38,14 +38,14 @@ class Producto extends Model
|
||||||
return $request->has('paginar') && intval($request->input('paginar')) ? intval($request->input('paginar')) : self::$paginarPorDefecto;
|
return $request->has('paginar') && intval($request->input('paginar')) ? intval($request->input('paginar')) : self::$paginarPorDefecto;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function productosIDFila() {
|
|
||||||
return Producto::pluck('fila', 'id',)->all();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function productosFilaID() {
|
public static function productosFilaID() {
|
||||||
return Producto::pluck('id', 'fila',)->all();
|
return Producto::pluck('id', 'fila',)->all();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function productosIDFila() {
|
||||||
|
return Producto::pluck('fila', 'id',)->all();
|
||||||
|
}
|
||||||
|
|
||||||
public static function productosIDNombre() {
|
public static function productosIDNombre() {
|
||||||
return Producto::pluck('nombre', 'id',)->all();
|
return Producto::pluck('nombre', 'id',)->all();
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
class AgregarIsComprasAUser extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::table('users', function (Blueprint $table) {
|
||||||
|
$table->boolean('is_compras')->after('is_admin')->default(0);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::table('producto_subpedido', function (Blueprint $table) {
|
||||||
|
$table->dropColumn('is_compras');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
|
@ -4,7 +4,6 @@
|
||||||
* building robust, powerful web applications using Vue and Laravel.
|
* building robust, powerful web applications using Vue and Laravel.
|
||||||
*/
|
*/
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import animate from 'animate.css';
|
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
window.Vue = require('vue');
|
window.Vue = require('vue');
|
||||||
window.Event = new Vue();
|
window.Event = new Vue();
|
||||||
|
@ -18,8 +17,8 @@ window.bulmaToast = require('bulma-toast');
|
||||||
*
|
*
|
||||||
* Eg. ./components/ExampleComponent.vue -> <example-component></example-component>
|
* Eg. ./components/ExampleComponent.vue -> <example-component></example-component>
|
||||||
*/
|
*/
|
||||||
const files = require.context('./', true, /\.vue$/i)
|
import './components';
|
||||||
files.keys().map(key => Vue.component(key.split('/').pop().split('.')[0], files(key).default))
|
|
||||||
/**
|
/**
|
||||||
* Constants
|
* Constants
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
import Vue from 'vue';
|
||||||
|
|
||||||
|
const requireComponent = require.context('./components', true, /\.vue$/);
|
||||||
|
|
||||||
|
// Registro automático de componentes:
|
||||||
|
// e.g. components/foo/bar/UnComponente.vue
|
||||||
|
// se registra como 'foo-bar-un-componente'
|
||||||
|
requireComponent.keys().forEach(fileName => {
|
||||||
|
// Get the component config
|
||||||
|
const componentConfig = requireComponent(fileName);
|
||||||
|
// Get the PascalCase name of the component
|
||||||
|
const componentName = fileName
|
||||||
|
.replace(/^\.\/(.*)\.\w+$/, '$1') // Remove "./" from the beginning and the file extension from the end
|
||||||
|
.replace(/\//g, '-') // Replace directories with hyphens
|
||||||
|
.replace(/([a-z])([A-Z])/g, '$1-$2') // Insert hyphen between camelCase words
|
||||||
|
.toLowerCase() // Convert to lowercase
|
||||||
|
// Globally register the component
|
||||||
|
Vue.component(
|
||||||
|
componentName,
|
||||||
|
// Look for the component options on `.default`, which will
|
||||||
|
// exist if the component was exported with `export default`,
|
||||||
|
// otherwise fall back to module's root.
|
||||||
|
componentConfig.default || componentConfig
|
||||||
|
);
|
||||||
|
});
|
|
@ -1,31 +0,0 @@
|
||||||
<template>
|
|
||||||
<div class="columns ml-3 mr-3">
|
|
||||||
<categorias-container :class="chismosaActiva ? 'hide-below-1024' : ''"></categorias-container>
|
|
||||||
<productos-container :class="chismosaActiva ? 'hide-below-1024' : ''"></productos-container>
|
|
||||||
<chismosa v-show="chismosaActiva"></chismosa>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import Chismosa from './Chismosa.vue';
|
|
||||||
import ProductosContainer from './ProductosContainer.vue';
|
|
||||||
import CategoriasContainer from './CategoriasContainer.vue';
|
|
||||||
|
|
||||||
export default {
|
|
||||||
componets: {
|
|
||||||
Chismosa,
|
|
||||||
ProductosContainer,
|
|
||||||
CategoriasContainer,
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
chismosaActiva: false,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
mounted() {
|
|
||||||
Event.$on('toggle-chismosa', (activa) => {
|
|
||||||
this.chismosaActiva = activa;
|
|
||||||
});
|
|
||||||
},
|
|
||||||
}
|
|
||||||
</script>
|
|
|
@ -1,15 +1,15 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="block ml-3 mr-3 is-max-widescreen is-max-desktop">
|
<div class="block ml-3 mr-3 is-max-widescreen is-max-desktop">
|
||||||
<pedidos-admin-tabs-secciones></pedidos-admin-tabs-secciones>
|
<admin-tabs-secciones></admin-tabs-secciones>
|
||||||
<div class="block" id="pedidos-seccion"
|
<div class="block" id="pedidos-seccion"
|
||||||
:class="seccionActiva === 'pedidos-seccion' ? 'is-active' : 'is-hidden'">
|
:class="seccionActiva === 'pedidos-seccion' ? 'is-active' : 'is-hidden'">
|
||||||
<div class="block pb-6" id="pedidos-tabla-y-dropdown" v-show="hayPedidos">
|
<div class="block pb-6" id="pedidos-tabla-y-dropdown" v-show="hayPedidos">
|
||||||
<pedidos-admin-dropdown-descargar
|
<admin-dropdown-descargar
|
||||||
:gdc="gdc">
|
:gdc="gdc">
|
||||||
</pedidos-admin-dropdown-descargar>
|
</admin-dropdown-descargar>
|
||||||
<pedidos-admin-tabla-pedidos
|
<admin-tabla-pedidos
|
||||||
:pedidos="pedidos" :bonosDeTransporte="bonosDeTransporte" :totalBonosBarriales="totalBonosBarriales">
|
:pedidos="pedidos" :bonosDeTransporte="bonosDeTransporte" :totalBonosBarriales="totalBonosBarriales">
|
||||||
</pedidos-admin-tabla-pedidos>
|
</admin-tabla-pedidos>
|
||||||
</div>
|
</div>
|
||||||
<p class="has-text-centered" v-show="!hayPedidos">
|
<p class="has-text-centered" v-show="!hayPedidos">
|
||||||
Todavía no hay ningún pedido para administrar.
|
Todavía no hay ningún pedido para administrar.
|
||||||
|
@ -17,35 +17,34 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="block pb-6" id="bonos-seccion"
|
<div class="block pb-6" id="bonos-seccion"
|
||||||
:class="seccionActiva === 'bonos-seccion' ? 'is-active' : 'is-hidden'">
|
:class="seccionActiva === 'bonos-seccion' ? 'is-active' : 'is-hidden'">
|
||||||
<pedidos-admin-tabla-bonos v-show="hayAprobados"
|
<admin-tabla-bonos v-show="hayAprobados"
|
||||||
:pedidos="pedidos">
|
:pedidos="pedidos">
|
||||||
</pedidos-admin-tabla-bonos>
|
</admin-tabla-bonos>
|
||||||
<p class="has-text-centered" v-show="!hayAprobados">
|
<p class="has-text-centered" v-show="!hayAprobados">
|
||||||
Todavía no hay pedidos aprobados.
|
Todavía no hay pedidos aprobados.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="block pb-6" id="caracteristicas-seccion"
|
<div class="block pb-6" id="caracteristicas-seccion"
|
||||||
:class="seccionActiva === 'caracteristicas-seccion' ? 'is-active' : 'is-hidden'">
|
:class="seccionActiva === 'caracteristicas-seccion' ? 'is-active' : 'is-hidden'">
|
||||||
<pedidos-admin-caracteristicas-opcionales>
|
<admin-caracteristicas-opcionales>
|
||||||
</pedidos-admin-caracteristicas-opcionales>
|
</admin-caracteristicas-opcionales>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import PedidosAdminTabsSecciones from './PedidosAdminTabsSecciones.vue';
|
import CaracteristicasOpcionales from "./CaracteristicasOpcionales.vue";
|
||||||
import PedidosAdminDropdownDescargar from "./PedidosAdminDropdownDescargar.vue";
|
import TabsSecciones from "./TabsSecciones.vue";
|
||||||
import PedidosAdminTablaBonos from './PedidosAdminTablaBonos.vue';
|
import DropdownDescargar from "./DropdownDescargar.vue";
|
||||||
import PedidosAdminTablaPedidos from "./PedidosAdminTablaPedidos.vue";
|
import TablaPedidos from "./TablaPedidos.vue";
|
||||||
import PedidosAdminCaracteristicasOpcionales from "./PedidosAdminCaracteristicasOpcionales.vue";
|
import TablaBonos from "./TablaBonos.vue";
|
||||||
export default {
|
export default {
|
||||||
name: "PedidosAdminBody",
|
|
||||||
components: {
|
components: {
|
||||||
PedidosAdminCaracteristicasOpcionales,
|
CaracteristicasOpcionales,
|
||||||
PedidosAdminTabsSecciones,
|
TabsSecciones,
|
||||||
PedidosAdminDropdownDescargar,
|
DropdownDescargar,
|
||||||
PedidosAdminTablaPedidos,
|
TablaPedidos,
|
||||||
PedidosAdminTablaBonos,
|
TablaBonos,
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
|
@ -10,13 +10,3 @@
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
name: "BotonAdminLogin"
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
|
|
||||||
</style>
|
|
|
@ -1,10 +1,8 @@
|
||||||
<script>
|
<script>
|
||||||
import axios from "axios";
|
import FilaCaracteristica from "./FilaCaracteristica.vue";
|
||||||
import PedidosAdminFilaCaracteristica from "./PedidosAdminFilaCaracteristica.vue";
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "PedidosAdminCaracteristicasOpcionales",
|
components: { FilaCaracteristica },
|
||||||
components: {PedidosAdminFilaCaracteristica},
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
caracteristicas: [
|
caracteristicas: [
|
||||||
|
@ -21,7 +19,6 @@ export default {
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="block">
|
<div class="block">
|
||||||
|
|
||||||
<table class="table is-fullwidth is-striped is-bordered">
|
<table class="table is-fullwidth is-striped is-bordered">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -30,11 +27,11 @@ export default {
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<pedidos-admin-fila-caracteristica
|
<admin-fila-caracteristica
|
||||||
v-for="(c,i) in caracteristicas"
|
v-for="(c,i) in caracteristicas"
|
||||||
:key="i"
|
:key="i"
|
||||||
:caracteristica="c">
|
:caracteristica="c">
|
||||||
</pedidos-admin-fila-caracteristica>
|
</admin-fila-caracteristica>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
|
@ -31,7 +31,6 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
name: "PedidosAdminDropdownDescargar",
|
|
||||||
props: {
|
props: {
|
||||||
gdc: {
|
gdc: {
|
||||||
type: Number,
|
type: Number,
|
||||||
|
@ -54,4 +53,4 @@ export default {
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
|
||||||
</style>
|
</style>
|
|
@ -2,11 +2,10 @@
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "PedidosAdminFilaCaracteristica",
|
|
||||||
props: {
|
props: {
|
||||||
caracteristica: Object
|
caracteristica: Object
|
||||||
},
|
},
|
||||||
data: {
|
data() {
|
||||||
gdc: undefined
|
gdc: undefined
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
|
@ -5,19 +5,18 @@
|
||||||
<td v-if="$root.devoluciones" class="has-text-right" ><abbr :title="pedido.devoluciones_notas">-{{ pedido.devoluciones_total }}</abbr></td>
|
<td v-if="$root.devoluciones" class="has-text-right" ><abbr :title="pedido.devoluciones_notas">-{{ pedido.devoluciones_total }}</abbr></td>
|
||||||
<td class="has-text-right" >{{ $root.devoluciones ? pedido.total_menos_devoluciones : pedido.total }}</td>
|
<td class="has-text-right" >{{ $root.devoluciones ? pedido.total_menos_devoluciones : pedido.total }}</td>
|
||||||
<td>
|
<td>
|
||||||
<pedidos-admin-switch-aprobacion
|
<admin-switch-aprobacion
|
||||||
:pedido="pedido">
|
:pedido="pedido">
|
||||||
</pedidos-admin-switch-aprobacion>
|
</admin-switch-aprobacion>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import PedidosAdminSwitchAprobacion from './PedidosAdminSwitchAprobacion.vue';
|
import SwitchAprobacion from "./SwitchAprobacion.vue";
|
||||||
export default {
|
export default {
|
||||||
name: "PedidosAdminFilaPedido",
|
|
||||||
components: {
|
components: {
|
||||||
PedidosAdminSwitchAprobacion
|
SwitchAprobacion
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
pedido: Object
|
pedido: Object
|
|
@ -24,7 +24,6 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
name: "LoginAdmin",
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
visible: false,
|
visible: false,
|
|
@ -12,7 +12,6 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
name: "PedidosAdminSwitchAprobacion",
|
|
||||||
props: {
|
props: {
|
||||||
pedido: Object
|
pedido: Object
|
||||||
},
|
},
|
|
@ -39,7 +39,6 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
name: "PedidosAdminTablaBonos",
|
|
||||||
props: {
|
props: {
|
||||||
pedidos: {
|
pedidos: {
|
||||||
type: Array,
|
type: Array,
|
||||||
|
@ -95,4 +94,4 @@ export default {
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
|
||||||
</style>
|
</style>
|
|
@ -11,10 +11,10 @@
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<pedidos-admin-fila-pedido
|
<admin-fila-pedido
|
||||||
v-for="pedido in this.pedidos"
|
v-for="pedido in this.pedidos"
|
||||||
:pedido="pedido" :key="pedido.id">
|
:pedido="pedido" :key="pedido.id">
|
||||||
</pedidos-admin-fila-pedido>
|
</admin-fila-pedido>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<table class="table is-striped is-bordered">
|
<table class="table is-striped is-bordered">
|
||||||
|
@ -46,11 +46,10 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import PedidosAdminFilaPedidoVue from './PedidosAdminFilaPedido.vue';
|
import FilaPedido from "./FilaPedido.vue";
|
||||||
export default {
|
export default {
|
||||||
name: "PedidosAdminTablaPedidos",
|
|
||||||
components: {
|
components: {
|
||||||
PedidosAdminFilaPedidoVue
|
FilaPedido
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
pedidos: {
|
pedidos: {
|
|
@ -19,7 +19,6 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
name: "PedidosAdminTabsSecciones",
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
tabActiva: "pedidos",
|
tabActiva: "pedidos",
|
||||||
|
@ -49,7 +48,7 @@ export default {
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import 'bulma';
|
@import '../../../../node_modules/bulma';
|
||||||
hr {
|
hr {
|
||||||
border: none;
|
border: none;
|
||||||
height: 1px;
|
height: 1px;
|
|
@ -0,0 +1,22 @@
|
||||||
|
<template>
|
||||||
|
<div class="container is-fluid has-text-centered">
|
||||||
|
<div class="block">
|
||||||
|
<div class="field">
|
||||||
|
<p class="control">
|
||||||
|
<a href="/compras/pedidos/descargar" class="button">
|
||||||
|
<span class="icon is-small">
|
||||||
|
<i class="fas fa-download"></i>
|
||||||
|
</span>
|
||||||
|
<span>Descargar planilla de totales</span>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
|
||||||
|
}
|
||||||
|
</script>
|
|
@ -0,0 +1,52 @@
|
||||||
|
<template>
|
||||||
|
<div class="block">
|
||||||
|
<div class="field">
|
||||||
|
<label class="label">Usuario</label>
|
||||||
|
<div class="field">
|
||||||
|
<div class="control">
|
||||||
|
<input required class="input" type="text" name="name" placeholder="Usuario">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="field">
|
||||||
|
<label class="label">Contraseña</label>
|
||||||
|
<div class="field has-addons">
|
||||||
|
<div class="control">
|
||||||
|
<input required class="input" :type="this.passwordType" name="password" placeholder="Contraseña">
|
||||||
|
</div>
|
||||||
|
<div class="control">
|
||||||
|
<a class="button is-dark" @click="togglePassword">
|
||||||
|
{{ (passwordVisible ? 'Ocultar' : 'Mostrar') + ' contraseña'}}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="field">
|
||||||
|
<div class="control">
|
||||||
|
<input type="submit" class="button is-dark" value="Ingresar"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "LoginAdmin",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
passwordVisible: false,
|
||||||
|
passwordType: "password",
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
togglePassword() {
|
||||||
|
if (this.passwordVisible) this.passwordType = "password";
|
||||||
|
else this.passwordType = "text"
|
||||||
|
this.passwordVisible = !this.passwordVisible
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
</style>
|
|
@ -11,7 +11,7 @@
|
||||||
<p class="navbar-item">
|
<p class="navbar-item">
|
||||||
<slot name="subpedido"></slot>
|
<slot name="subpedido"></slot>
|
||||||
</p>
|
</p>
|
||||||
<chismosa-dropdown v-if="this.$root.pedido != null" class="hide-above-1023" id="mobile"></chismosa-dropdown>
|
<pedidos-chismosa-dropdown v-if="this.$root.pedido != null" class="hide-above-1023" id="mobile"></pedidos-chismosa-dropdown>
|
||||||
<a role="button" class="navbar-burger" :class="{'is-active':burgerActiva}" aria-label="menu" aria-expanded="false" data-target="nav-bar" @click="toggleBurger">
|
<a role="button" class="navbar-burger" :class="{'is-active':burgerActiva}" aria-label="menu" aria-expanded="false" data-target="nav-bar" @click="toggleBurger">
|
||||||
<span aria-hidden="true"></span>
|
<span aria-hidden="true"></span>
|
||||||
<span aria-hidden="true"></span>
|
<span aria-hidden="true"></span>
|
||||||
|
@ -28,7 +28,7 @@
|
||||||
</a>
|
</a>
|
||||||
<input class="input is-small" type="text" placeholder="Harina" v-model="searchString" @keyup.enter="buscar" >
|
<input class="input is-small" type="text" placeholder="Harina" v-model="searchString" @keyup.enter="buscar" >
|
||||||
</div>
|
</div>
|
||||||
<chismosa-dropdown v-if="this.$root.pedido != null" class="hide-below-1024" id="wide"></chismosa-dropdown>
|
<pedidos-chismosa-dropdown v-if="this.$root.pedido != null" class="hide-below-1024" id="wide"></pedidos-chismosa-dropdown>
|
||||||
<div class="block navbar-item">
|
<div class="block navbar-item">
|
||||||
<a onclick="event.preventDefault(); document.getElementById('logout-form').submit();" class="text-a">
|
<a onclick="event.preventDefault(); document.getElementById('logout-form').submit();" class="text-a">
|
||||||
Cerrar sesión
|
Cerrar sesión
|
||||||
|
@ -41,7 +41,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import ChismosaDropdown from './ChismosaDropdown.vue';
|
import ChismosaDropdown from '../pedidos/ChismosaDropdown.vue';
|
||||||
export default {
|
export default {
|
||||||
components: { ChismosaDropdown },
|
components: { ChismosaDropdown },
|
||||||
data() {
|
data() {
|
|
@ -0,0 +1,22 @@
|
||||||
|
<template>
|
||||||
|
<div class="columns ml-3 mr-3">
|
||||||
|
<pedidos-categorias-container :class="chismosaActiva ? 'hide-below-1024' : ''"></pedidos-categorias-container>
|
||||||
|
<pedidos-productos-container :class="chismosaActiva ? 'hide-below-1024' : ''"></pedidos-productos-container>
|
||||||
|
<pedidos-chismosa v-show="chismosaActiva"></pedidos-chismosa>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
chismosaActiva: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
Event.$on('toggle-chismosa', (activa) => {
|
||||||
|
this.chismosaActiva = activa;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
|
@ -34,7 +34,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
</tfoot>
|
</tfoot>
|
||||||
<tbody>
|
<tbody>
|
||||||
<producto-row v-for="producto in productos" :producto="producto" :key="producto.id"></producto-row>
|
<pedidos-producto-row v-for="producto in productos" :producto="producto" :key="producto.id"></pedidos-producto-row>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<p class="has-text-centered" v-show="!mostrar_tabla">
|
<p class="has-text-centered" v-show="!mostrar_tabla">
|
||||||
|
@ -99,4 +99,4 @@
|
||||||
max-height: 81vh;
|
max-height: 81vh;
|
||||||
margin-right: 20px;
|
margin-right: 20px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
|
@ -8,7 +8,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="control">
|
<div class="control">
|
||||||
<a class="button is-info" @click="togglePassword">
|
<a class="button is-info" @click="togglePassword">
|
||||||
{{ (passwordVisible ? 'Ocultar' : 'Mostrar') + ' contraseña'}}
|
{{ (passwordVisible ? 'Ocultar' : 'Mostrar') + ' contraseña'}}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -24,7 +24,6 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
name: 'Login',
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
visible: false,
|
visible: false,
|
|
@ -1,11 +1,6 @@
|
||||||
<script>
|
<script>
|
||||||
import ProductoCantidad from './Producto/ProductoCantidad.vue';
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "ProductoCard",
|
name: "ProductoCard",
|
||||||
components: {
|
|
||||||
ProductoCantidad,
|
|
||||||
},
|
|
||||||
props: {
|
props: {
|
||||||
producto: Object
|
producto: Object
|
||||||
},
|
},
|
||||||
|
@ -73,7 +68,7 @@ export default {
|
||||||
</div>
|
</div>
|
||||||
<footer class="columns">
|
<footer class="columns">
|
||||||
<div class="column is-three-quarters">
|
<div class="column is-three-quarters">
|
||||||
<producto-cantidad :producto="producto"></producto-cantidad>
|
<pedidos-producto-cantidad :producto="producto"></pedidos-producto-cantidad>
|
||||||
</div>
|
</div>
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<p class="subtitle is-7 is-hidden-mobile" v-if="enChismosa !== 0">{{ enChismosa }} en chismosa</p>
|
<p class="subtitle is-7 is-hidden-mobile" v-if="enChismosa !== 0">{{ enChismosa }} en chismosa</p>
|
||||||
|
@ -84,7 +79,7 @@ export default {
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@use "bulma/sass/utilities/mixins";
|
@use "../../../../node_modules/bulma/sass/utilities/mixins";
|
||||||
|
|
||||||
@include mixins.until(mixins.$desktop) {
|
@include mixins.until(mixins.$desktop) {
|
||||||
.hidden-until-desktop {
|
.hidden-until-desktop {
|
|
@ -2,18 +2,13 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{ this.producto.nombre }}</td>
|
<td>{{ this.producto.nombre }}</td>
|
||||||
<td class="has-text-right">
|
<td class="has-text-right">
|
||||||
<producto-cantidad :producto="producto"></producto-cantidad>
|
<pedidos-producto-cantidad :producto="producto"></pedidos-producto-cantidad>
|
||||||
</td>
|
</td>
|
||||||
<td class="has-text-right">{{ Math.ceil(this.producto.pivot.total) }}</td>
|
<td class="has-text-right">{{ Math.ceil(this.producto.pivot.total) }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import ProductoCantidad from './Producto/ProductoCantidad.vue';
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
|
||||||
ProductoCantidad,
|
|
||||||
},
|
|
||||||
props: {
|
props: {
|
||||||
producto: Object
|
producto: Object
|
||||||
},
|
},
|
|
@ -1,17 +1,14 @@
|
||||||
<template>
|
<template>
|
||||||
<div v-show="visible" class="column">
|
<div v-show="visible" class="column">
|
||||||
<div class="columns is-multiline is-mobile">
|
<div class="columns is-multiline is-mobile">
|
||||||
<producto-card v-for="(producto,i) in productos" :key="i" :producto="producto">
|
<pedidos-producto-card v-for="(producto,i) in productos" :key="i" :producto="producto">
|
||||||
</producto-card><!-- END BLOCK COLUMN -->
|
</pedidos-producto-card><!-- END BLOCK COLUMN -->
|
||||||
</div><!-- END COLUMNS -->
|
</div><!-- END COLUMNS -->
|
||||||
</div><!-- END CONTAINER -->
|
</div><!-- END CONTAINER -->
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import ProductoCard from "./ProductoCard.vue";
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {ProductoCard},
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
productos: [],
|
productos: [],
|
||||||
|
@ -50,4 +47,5 @@ export default {
|
||||||
return params
|
return params
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}</script>
|
}
|
||||||
|
</script>
|
|
@ -21,11 +21,11 @@
|
||||||
Contraseña incorrecta, intentalo nuevamente.
|
Contraseña incorrecta, intentalo nuevamente.
|
||||||
</div>
|
</div>
|
||||||
@enderror
|
@enderror
|
||||||
<region-select v-bind:admin="true"></region-select>
|
<comunes-region-select v-bind:admin="true"></comunes-region-select>
|
||||||
<form method="post" action="login">
|
<form method="post" action="login">
|
||||||
@csrf
|
@csrf
|
||||||
<barrio-select v-bind:admin="true"></barrio-select>
|
<comunes-barrio-select v-bind:admin="true"></comunes-barrio-select>
|
||||||
<login-admin></login-admin>
|
<admin-login></admin-login>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
|
@ -1,13 +1,5 @@
|
||||||
@extends('layouts.app')
|
@extends('layouts.app')
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<pedidos-admin-body></pedidos-admin-body>
|
<admin-body></admin-body>
|
||||||
@endsection
|
@endsection
|
||||||
<script>
|
|
||||||
import PedidosAdminBody from "../../js/components/PedidosAdminBody.vue";
|
|
||||||
export default {
|
|
||||||
components: {
|
|
||||||
PedidosAdminBody
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html class="has-background-warning" lang="{{ str_replace('_', '-', app()->getLocale()) }}">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<title>{{ config('app.name', 'Pedidos del MPS') }}</title>
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.9.3/css/bulma.min.css">
|
||||||
|
<link rel="stylesheet" href="{{ mix('css/app.css') }}">
|
||||||
|
<script src="https://kit.fontawesome.com/9235d1c676.js" crossorigin="anonymous"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<section class="section">
|
||||||
|
<div id="root" class="container">
|
||||||
|
<h1 class="title">
|
||||||
|
Pedidos MPS
|
||||||
|
</h1>
|
||||||
|
<p class="subtitle">
|
||||||
|
Bienvenidx a la sección de compras de la aplicación del <strong>Mercado Popular de Subsistencia</strong>
|
||||||
|
</p>
|
||||||
|
@error('name')
|
||||||
|
<div class="notification is-danger">
|
||||||
|
Contraseña incorrecta, intentalo nuevamente.
|
||||||
|
</div>
|
||||||
|
@enderror
|
||||||
|
<form method="post" action="login">
|
||||||
|
@csrf
|
||||||
|
<compras-login></compras-login>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<script src="{{ mix('js/app.js') }}" defer></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -11,7 +11,7 @@
|
||||||
<body>
|
<body>
|
||||||
<section class="section">
|
<section class="section">
|
||||||
<div id="root" class="container">
|
<div id="root" class="container">
|
||||||
<boton-admin-login></boton-admin-login>
|
<admin-boton-login></admin-boton-login>
|
||||||
<h1 class="title">
|
<h1 class="title">
|
||||||
Pedidos MPS
|
Pedidos MPS
|
||||||
</h1>
|
</h1>
|
||||||
|
@ -23,20 +23,14 @@
|
||||||
Contraseña incorrecta, intentalo nuevamente.
|
Contraseña incorrecta, intentalo nuevamente.
|
||||||
</div>
|
</div>
|
||||||
@enderror
|
@enderror
|
||||||
<region-select></region-select>
|
<comunes-region-select></comunes-region-select>
|
||||||
<form method="post" action="login">
|
<form method="post" action="login">
|
||||||
@csrf
|
@csrf
|
||||||
<barrio-select></barrio-select>
|
<comunes-barrio-select></comunes-barrio-select>
|
||||||
<login></login>
|
<pedidos-login></pedidos-login>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<script src="{{ mix('js/app.js') }}" defer></script>
|
<script src="{{ mix('js/app.js') }}" defer></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
<script>
|
|
||||||
import BotonAdminLogin from "../../js/components/BotonAdminLogin";
|
|
||||||
export default {
|
|
||||||
components: {BotonAdminLogin}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
@extends('layouts.app')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<compras-body></compras-body>
|
||||||
|
@endsection
|
|
@ -19,7 +19,7 @@
|
||||||
</head>
|
</head>
|
||||||
<body class="has-navbar-fixed-top">
|
<body class="has-navbar-fixed-top">
|
||||||
<div id="root">
|
<div id="root">
|
||||||
<nav-bar>
|
<comunes-nav-bar>
|
||||||
<template slot="subpedido">{{ session('subpedido_nombre') ? 'Pedido de '. session('subpedido_nombre') : Auth::user()->name }}</template>
|
<template slot="subpedido">{{ session('subpedido_nombre') ? 'Pedido de '. session('subpedido_nombre') : Auth::user()->name }}</template>
|
||||||
<template slot="gdc">{{ session('subpedido_nombre') ? Auth::user()->name : "" }}</template>
|
<template slot="gdc">{{ session('subpedido_nombre') ? Auth::user()->name : "" }}</template>
|
||||||
<template slot="logout-form">
|
<template slot="logout-form">
|
||||||
|
@ -27,11 +27,11 @@
|
||||||
@csrf
|
@csrf
|
||||||
</form>
|
</form>
|
||||||
</template>
|
</template>
|
||||||
</nav-bar>
|
</comunes-nav-bar>
|
||||||
<nav-migas></nav-migas>
|
<pedidos-nav-migas></pedidos-nav-migas>
|
||||||
|
|
||||||
<main id="main" class="py-4 has-top-padding">
|
<main id="main" class="py-4 has-top-padding">
|
||||||
<cartel-pedido-aprobado></cartel-pedido-aprobado>
|
<pedidos-cartel-pedido-aprobado></pedidos-cartel-pedido-aprobado>
|
||||||
@yield('content')
|
@yield('content')
|
||||||
</main>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
@extends('layouts.app')
|
@extends('layouts.app')
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<pedido-body></pedido-body>
|
<pedidos-body></pedidos-body>
|
||||||
<devoluciones-modal></devoluciones-modal>
|
<pedidos-devoluciones-modal></pedidos-devoluciones-modal>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<p class="subtitle">
|
<p class="subtitle">
|
||||||
Bienvenidx a la aplicación de pedidos del <strong>Mercado Popular de Subsistencia</strong>
|
Bienvenidx a la aplicación de pedidos del <strong>Mercado Popular de Subsistencia</strong>
|
||||||
</p>
|
</p>
|
||||||
<subpedido-select gdcid="{{Auth::user()->grupoDeCompra->id}}"></subpedido-select>
|
<pedidos-subpedido-select gdcid="{{Auth::user()->grupoDeCompra->id}}"></pedidos-subpedido-select>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
|
@ -75,3 +75,10 @@ Route::middleware('auth')->group( function() {
|
||||||
})->name('obtenerSesion');
|
})->name('obtenerSesion');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Route::get('/compras', 'ComprasController@show')->name('compras_login.show');
|
||||||
|
|
||||||
|
Route::middleware(['compras'])->group( function() {
|
||||||
|
Route::get('/compras/pedidos', 'ComprasController@indexPedidos')->name('compras.pedidos');
|
||||||
|
Route::get('/compras/pedidos/descargar', 'ComprasController@descargarPedidos')->name('compras.pedidos.descargar');
|
||||||
|
});
|
||||||
|
|
Loading…
Reference in New Issue