first commit

This commit is contained in:
2026-01-13 20:57:58 -06:00
commit afd9118d1e
239 changed files with 49001 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
@extends('layouts.app')
@section('content')
<div id="content">
@include('supplier.index')
</div>
<div class="loading">
<i class="fa fa-refresh fa-spin fa-2x fa-tw"></i>
<br>
<span>Loading</span>
</div>
@endsection
@section('js')
<script src="{{ asset('js/ajaxcrud.js') }}"></script>
@endsection

View File

@@ -0,0 +1,182 @@
@extends('layouts.app')
@section('content')
<div class="container">
<div class="col-md-8 offset-md-2">
<h1>{{isset($supplier)?'Editar':'Nuevo'}} Proveedor</h1>
<hr>
@if(isset($supplier))
{!! Form::model($supplier,['method'=>'put','id'=>'frm', 'files' => 'true']) !!}
@else
{!! Form::open(['id'=>'frm', 'files' => 'true']) !!}
@endif
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBmkTsg0-1VKllM_vHD6V1EhPnF0YUP-88&libraries=places"></script>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script type="text/javascript">
google.maps.event.addDomListener(window, 'load', function () {
var searchBox = new google.maps.places.Autocomplete(document.getElementById('address'));
google.maps.event.addListener(searchBox, 'place_changed', function () {
var place = searchBox.getPlace();
var lat = place.geometry.location.lat();
console.log(lat);
var lng = place.geometry.location.lng();
console.log(lng);
$('#lat').val(lat);
$('#lng').val(lng);
});
});
</script>
<script type="text/javascript">
$( function() {
var categories = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.whitespace,
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: {
url: "/api/categories-name",
}
});
categories.initialize();
$('#categories').tagsinput({
typeaheadjs: {
name: 'categories',
source: categories.ttAdapter()
}
});
});
</script>
<div class="form-group row required">
{!! Form::label("company_name","Tu nombre o nombre de la empresa*",["class"=>"col-form-label col-md-3 col-lg-2"]) !!}
<div class="col-md-8">
{!! Form::text("company_name",null,["class"=>"form-control".($errors->has('company_name')?" is-invalid":""),"autofocus",'placeholder'=>'Nombre de la empresa o negocio']) !!}
<span id="error-name" class="invalid-feedback"></span>
</div>
</div>
<div class="form-group row required">
{!! Form::label("cover_photo","Foto de portada",["class"=>"col-form-label col-md-3 col-lg-2"]) !!}
<div class="col-md-8">
{!! Form::file("cover_photo", null) !!}
<span id="error-name" class="invalid-feedback"></span>
</div>
</div>
<div class="form-group row required">
{!! Form::label("categories","Categorías*",["class"=>"col-form-label col-md-3 col-lg-2"]) !!}
<div class="col-md-8">
{!! Form::text("categories",str_replace(array('[',']','"'),"",$categories_names),["id"=>"categories","class"=>"form-control".($errors->has('categories')?" is-invalid":""),"autofocus",'placeholder'=>'Categoría 1, Categoría 2,']) !!}
<span id="error-name" class="invalid-feedback"></span>
</div>
</div>
<div class="form-group row required">
{!! Form::label("tags","Palabras clave",["class"=>"col-form-label col-md-3 col-lg-2"]) !!}
<div class="col-md-8">
{!! Form::text("tags",null,["data-role"=>"tagsinput","class"=>"form-control".($errors->has('tags')?" is-invalid":""),"autofocus",'placeholder'=>'Palabra clave 1, Palabra clave 2, Palabra clave 3']) !!}
<span id="error-name" class="invalid-feedback"></span>
</div>
</div>
<div class="form-group row required">
{!! Form::label("RFC","RFC",["class"=>"col-form-label col-md-3 col-lg-2"]) !!}
<div class="col-md-8">
{!! Form::text("RFC",null,["class"=>"form-control".($errors->has('RFC')?" is-invalid":""),"autofocus",'placeholder'=>'RFC']) !!}
<span id="error-name" class="invalid-feedback"></span>
</div>
</div>
<div class="form-group row required">
{!! Form::label("CURP","CURP",["class"=>"col-form-label col-md-3 col-lg-2"]) !!}
<div class="col-md-8">
{!! Form::text("CURP",null,["class"=>"form-control".($errors->has('CURP')?" is-invalid":""),"autofocus",'placeholder'=>'CURP']) !!}
<span id="error-name" class="invalid-feedback"></span>
</div>
</div>
<div class="form-group row required">
{!! Form::label("clabe","CLABE",["class"=>"col-form-label col-md-3 col-lg-2"]) !!}
<div class="col-md-8">
{!! Form::text("clabe",null,["class"=>"form-control".($errors->has('clabe')?" is-invalid":""),"autofocus",'placeholder'=>'CLABE Interbancaria']) !!}
<span id="error-name" class="invalid-feedback"></span>
</div>
</div>
<div class="form-group row required">
{!! Form::label("bank","Banco",["class"=>"col-form-label col-md-3 col-lg-2"]) !!}
<div class="col-md-8">
{!! Form::select("bank", $banks, isset($supplier) ? $supplier->bank_id : null) !!}
<span id="error-name" class="invalid-feedback"></span>
</div>
</div>
<div class="form-group row required">
{!! Form::label("taxes_id","Regimen Fiscal",["class"=>"col-form-label col-md-3 col-lg-2"]) !!}
<div class="col-md-8">
{!! Form::select("taxes_id", array(
'1' => 'Persona Física',
'2' => 'Persona Moral',
), (isset($supplier) ? (($supplier->regimen!='Persona Moral') ? '1' : '2') : null)) !!}
<span id="error-name" class="invalid-feedback"></span>
<br> (Sino esta registrado ante el SAT, seleccione Persona Física)
</div>
</div>
<div class="form-group row required">
{!! Form::label("minimun_fee","Tarifa de revisión",["class"=>"col-form-label col-md-3 col-lg-2"]) !!}
<div class="col-md-8">
{!! Form::number("minimun_fee",'150',["class"=>"form-control".($errors->has('minimun_fee')?" is-invalid":""),"autofocus",'placeholder'=>'Mínimo $150']) !!}
<span id="error-name" class="invalid-feedback"></span>
</div>
</div>
<div class="form-group row required">
{!! Form::label("address","Dirección*",["class"=>"col-form-label col-md-3 col-lg-2"]) !!}
<div class="col-md-8">
{!! Form::text("address",null,["class"=>"form-control".($errors->has('address')?" is-invalid":""),"autofocus",'placeholder'=>'Ingresa tu dirección']) !!}
<span id="error-address" class="invalid-feedback"></span>
</div>
</div>
<div class="form-group row required">
{!! Form::label("references_options","¿Cómo supiste de nosotros?*",["class"=>"col-form-label col-md-3 col-lg-2"]) !!}
<div class="col-md-8">
{!! Form::select("references_options", array(
'1' => 'Radio',
'2' => 'TV',
'3' => 'Redes Sociales',
'4' => 'Amigos',
'6' => 'Cámara de Comercio',
'5' => 'Otro',
), isset($supplier->references)) !!}
<span id="error-name" class="invalid-feedback"></span>
</div>
</div>
<div class="form-group row required">
{!! Form::label("references","Si es otro, específica",["class"=>"col-form-label col-md-3 col-lg-2"]) !!}
<div class="col-md-8">
{!! Form::text("references",null,["class"=>"form-control".($errors->has('references')?" is-invalid":""),"autofocus",'placeholder'=>'Empresa o el nombre de un héroe registrado']) !!}
<span id="error-name" class="invalid-feedback"></span>
</div>
</div>
<div class="form-group row" style="margin-bottom: 0rem;">
{!! Form::hidden("lat",null,["id"=>"lat","class"=>"form-control".($errors->has('lat')?" is-invalid":""),"autofocus"]) !!}
</div>
<div class="form-group row" style="margin-bottom: 0rem;">
{!! Form::hidden("lng",null,["id"=>"lng","class"=>"form-control".($errors->has('lng')?" is-invalid":""),"autofocus"]) !!}
</div>
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="form-group row">
<div class="col-md-3 col-lg-2"></div>
<div class="col-md-4">
<a href="{{url('supplier')}}" class="btn btn-danger btn-xs">
Atrás</a>
{!! Form::button("Guardar",["type" => "submit","class"=>"btn btn-primary btn-xs"])!!}
</div>
</div>
{!! Form::close() !!}
</div>
</div>
@endsection

View File

@@ -0,0 +1,154 @@
@extends('layouts.app')
@section('content')
@if (Auth::user()->role_id >= 5)
<div class="container-fluid" style="height:100%">
@include('sidebar')
<div style="width:90%; float: left; margin:1em 0 0 1em">
@else
<div class="container" style="margin:0 1em">
@endif
<div class="row">
<div class="col-sm-7">
<h3>Proveedores</h3>
</div>
<div class="col-sm-5">
<div class="pull-right">
{!! Form::open(['method'=>'GET','url'=>'supplier','class'=>'navbar-form navbar-left','role'=>'search']) !!}
<div class="input-group">
<input class="form-control" id="search"
value="{{ request()->session()->get('search') }}"
placeholder="Buscar" name="search"
type="text" id="search"/>
<div class="input-group-btn">
<button type="submit" class="btn btn-primary">
<i class="fa fa-search" aria-hidden="true"></i>
</button>
</div>
</div>
{!! Form::close() !!}
</div>
</div>
</div>
<table class="table">
<thead>
<tr>
<th style="vertical-align: middle"><a href="{{url('supplier?field=id&sort='.(request()->session()->get('sort')=='asc'?'desc':'asc'))}}">ID</a></th>
{{request()->session()->get('field')=='id'?(request()->session()->get('sort')=='asc'?'':''):''}}
<th style="vertical-align: middle"><a href="{{url('supplier?field=user_id&sort='.(request()->session()->get('sort')=='asc'?'desc':'asc'))}}">Usuario</a></th>
{{request()->session()->get('field')=='user_id'?(request()->session()->get('sort')=='asc'?'':''):''}}
<th style="vertical-align: middle"><a href="{{url('supplier?field=membership&sort='.(request()->session()->get('sort')=='asc'?'desc':'asc'))}}">Membresía</a></th>
{{request()->session()->get('field')=='membership'?(request()->session()->get('sort')=='asc'?'':''):''}}
<th style="vertical-align: middle"><a href="{{url('supplier?field=company_name&sort='.(request()->session()->get('sort')=='asc'?'desc':'asc'))}}">Empresa</a></th>
{{request()->session()->get('field')=='company_name'?(request()->session()->get('sort')=='asc'?'':''):''}}
<th style="vertical-align: middle"><a href="{{url('supplier?field=cover_photo&sort='.(request()->session()->get('sort')=='asc'?'desc':'asc'))}}">Foto de portada</a></th>
{{request()->session()->get('field')=='cover_photo'?(request()->session()->get('sort')=='asc'?'':''):''}}
<th style="vertical-align: middle"><a href="#">Categorías</a></th>
<th style="vertical-align: middle"><a href="#">Categorías (ingles)</a></th>
<th style="vertical-align: middle"><a href="{{url('supplier?field=tags&sort='.(request()->session()->get('sort')=='asc'?'desc':'asc'))}}">Tags</a></th>
{{request()->session()->get('field')=='tags'?(request()->session()->get('sort')=='asc'?'':''):''}}
<!--
<th style="vertical-align: middle"><a href="{{url('supplier?field=RFC&sort='.(request()->session()->get('sort')=='asc'?'desc':'asc'))}}">RFC</a></th>
{{request()->session()->get('field')=='RFC'?(request()->session()->get('sort')=='asc'?'':''):''}}
<th style="vertical-align: middle"><a href="{{url('supplier?field=RFC&sort='.(request()->session()->get('sort')=='asc'?'desc':'asc'))}}">CURP</a></th>
{{request()->session()->get('field')=='CURP'?(request()->session()->get('sort')=='asc'?'':''):''}}
<th style="vertical-align: middle"><a href="{{url('supplier?field=clabe&sort='.(request()->session()->get('sort')=='asc'?'desc':'asc'))}}">CLABE</a></th>
{{request()->session()->get('field')=='clabe'?(request()->session()->get('sort')=='asc'?'':''):''}}
<th style="vertical-align: middle"><a href="{{url('supplier?field=bank_id&sort='.(request()->session()->get('sort')=='asc'?'desc':'asc'))}}">Banco</a></th>
{{request()->session()->get('field')=='bank_id'?(request()->session()->get('sort')=='asc'?'':''):''}}
-->
<th style="vertical-align: middle"><a href="{{url('supplier?field=minimun_fee&sort='.(request()->session()->get('sort')=='asc'?'desc':'asc'))}}">Monto Mínimo</a></th>
{{request()->session()->get('field')=='minimun_fee'?(request()->session()->get('sort')=='asc'?'':''):''}}
<!--
<th style="vertical-align: middle"><a href="{{url('supplier?field=IVA&sort='.(request()->session()->get('sort')=='asc'?'desc':'asc'))}}">Regimen</a></th>
{{request()->session()->get('field')=='regimen'?(request()->session()->get('sort')=='asc'?'':''):''}}
-->
<th style="vertical-align: middle"><a href="#">Calificación</a></th>
<th style="vertical-align: middle"><a href="{{url('supplier?field=address&sort='.(request()->session()->get('sort')=='asc'?'desc':'asc'))}}">Dirección</a></th>
{{request()->session()->get('field')=='address'?(request()->session()->get('sort')=='asc'?'':''):''}}
<th style="vertical-align: middle"><a href="{{url('supplier?field=location&sort='.(request()->session()->get('sort')=='asc'?'desc':'asc'))}}">Coordenadas</a></th>
{{request()->session()->get('field')=='location'?(request()->session()->get('sort')=='asc'?'':''):''}}
<th style="vertical-align: middle"><a href="{{url('supplier?field=references&sort='.(request()->session()->get('sort')=='asc'?'desc':'asc'))}}">Referenciado por</a></th>
{{request()->session()->get('field')=='references'?(request()->session()->get('sort')=='asc'?'':''):''}}
<th style="vertical-align: middle"><a href="{{url('supplier?field=created_at&sort='.(request()->session()->get('sort')=='asc'?'desc':'asc'))}}">Fecha de creación</a></th>
{{request()->session()->get('field')=='created_at'?(request()->session()->get('sort')=='asc'?'':''):''}}
<th style="vertical-align: middle"><a href="{{url('supplier?field=updated_at&sort='.(request()->session()->get('sort')=='asc'?'desc':'asc'))}}">Ultima actualización</a></th>
{{request()->session()->get('field')=='updated_at'?(request()->session()->get('sort')=='asc'?'':''):''}}
</tr>
</thead>
<tbody>
@php
$i=1;
@endphp
@foreach ($suppliers as $supplier)
<tr>
<th>{{ $supplier->id }}</th>
<td>{{ $supplier->user->name }}</td>
<td >{{ ($supplier->membership != 0) ? "Miembro" : "No miembro" }}</td>
<td >{{ $supplier->company_name }}</td>
<td ><img src="{{ $supplier->cover_photo }}" style="width:60px; height:auto;"></td>
<td >{{ str_replace(",",", ", str_replace(array('[',']','"'),"",$supplier->categories->pluck('name'))) }}</td>
<td >{{ str_replace(",",", ", str_replace(array('[',']','"'),"",$supplier->categories->pluck('en_name'))) }}</td>
<td >{{ $supplier->tags }}</td>
<!--
<td >{{ $supplier->RFC }}</td>
<td >{{ $supplier->CURP }}</td>
<td >{{ $supplier->clabe }}</td>
<td >{{ (isset($supplier->banks->name)) ? $supplier->banks->name : null }}</td>
-->
<td >{{ $supplier->minimun_fee }}</td>
<!-- <td >{{ $supplier->regimen }}</td> -->
<td >{{ $supplier->total_score/$supplier->finished_jobs }}</td>
<td >{{ $supplier->address }}</td>
<td >{{ $supplier->location->getLat() }}, {{ $supplier->location->getLng() }}</td>
<!-- <td >{{ ($supplier->en != 0) ? "Si" : "No" }}</td> -->
<td>{{ $supplier->references }}</td>
<td>{{ $supplier->created_at }}</td>
<td>{{ $supplier->updated_at }}</td>
<td>
<a class="btn btn-secondary btn-xs" title="Edit"
href="{{url('supplier/update/'.$supplier->id)}}">
<i class="fa fa-pencil"></i>
</a>
<a class="btn btn-primary btn-xs" title="Certificate"
href="javascript:if(confirm('¿Estás seguro de que quieres agregar/quitar la certificación a este proveedor?')) ajaxRedirect('{{url('supplier/certificate/'.$supplier->id)}}','{{csrf_token()}}')">
<i class="fa fa-star"></i>
</a>
<input type="hidden" name="_method" value="delete"/>
<a class="btn btn-danger btn-xs" title="Delete"
href="javascript:if(confirm('¿Estás seguro de que quieres eliminar este usuario?')) javascript:if(confirm('Usualmente no se deben eliminar usuarios, solo bloquearlos ¿Estás seguro?')) ajaxDelete('{{url('supplier/delete/'.$supplier->id)}}','{{csrf_token()}}')">
<i class="fa fa-trash"></i>
</a>
</td>
</tr>
@endforeach
</tbody>
</table>
<ul class="pagination">
{{ $suppliers->links() }}
</ul>
</div>
@endsection