%PDF- %PDF-
Direktori : /proc/self/root/var/www/html/resources/views/products/ |
Current File : //proc/self/root/var/www/html/resources/views/products/index.blade.php |
@extends('template') @section('title') Liste des produits @endsection @section('content') <div class="container-fluid"> @if (session()->has('status')) <div class="alert alert-success" role="alert"> {{ session()->get('status') }} </div> @elseif (session()->has('error')) <div class="alert alert-danger" role="alert"> {{ session()->get('error') }} </div> @endif <div class="card"> <div class="card-header"> <ul class="nav nav-pills card-header-pills"> <li class="nav-item"> <button type="button" class="btn btn-info" data-toggle="modal" data-target="#addProductModal"> <i class="fas fa-plus"></i> Ajouter Produit </button> </li> <li class="nav-item"> <button type="button" class="btn btn-warning" data-toggle="modal" data-target="#addFactureModal"> <i class="fas fa-plus"></i> Ajouter Facture </button> </li> <li class="d-flex"> <input class="form-control me-2" type="search" id="searchInput" placeholder="Search" aria-label="Search"> </li> <li class="nav-item"> <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#DeleteProductModal" id="DeleteAll"> <i class="fas fa-trash-alt"></i> Supprimer Tout </button> </li> </ul> </div> <div class="card-body"> <h5 class="card-title text-primary">Liste des Produits</h5> <div class="table-responsive"> <table class="table table-hover table-sm"> <thead> <tr> <th scope="col"><input type="checkbox" id="checkAll"> </th> <th scope="col">Produit/Référence</th> <th scope="col">En stock</th> <th scope="col">Type Produit</th> <th scope="col">Prix achat</th> <th scope="col">Prix vente</th> <th scope="col">Date début</th> <th scope="col">Date Fin</th> <th scope="col">Marque</th> <th scope="col">Color</th> <th scope="col">Catégorie</th> <th scope="col">Fournisseur</th> <th scope="col">Remarques</th> <th scope="col">Actions</th> </tr> </thead> <tbody> @foreach ($produits as $product) <tr id="product-{{$product->id}}"> <td><input type="checkbox" value="{{ $product->id }}" name="ids" class="checkAllids"> </td> <td> <div style="font-weight: bold; text-transform: title;"><a href="#" data-row-collapse="product-{{$product->id}}" style="color: #000;">{{ $product->name_prod?:$product->parent->name_prod }}</a></div> </td> <td>{{ $product->count }}</td> <td>{{ $product->prod_type }}</td> <td>{{ $product->prixachat }} DH</td> <td>{{ $product->prixvente }} DH</td> <td>{{ $product->date_debut }}</td> <td>{{ $product->date_fin }}</td> <td>{{ $product->marque->marque }}</td> <td><button class="btn-circle btn-sm border-0" style="background-color:{{ $product->color->code }}"></button></td> <td>{{ $product->category->category }}</td> <td>{{ $product->facture && $product->facture->user?$product->facture->user->name:'' }}</td> <td>{{ $product->remarques }}</td> <td> <div class="row"> <div class="col-6 px-2"> <button class="badge badge-info border-0" type="button" data-toggle="modal" data-target="#editProductModal" data-object="{{ @json_encode($product) }}"><i class="fas fa-edit"></i></button> </div> <div class="col-6 px-2"> <button class="badge badge-danger border-0" type="button" data-toggle="modal" data-target="#DeleteProductModal" data-delete-id="{{ $product->id }}"> <i class="fas fa-trash-alt"></i></button> </div> </div> </td> </tr> @foreach ($product->references as $subproduct) <tr id="subproduct-{{$subproduct->id}}" class="row-collapsed" data-row-collapsing="product-{{$product->id}}"> <td><input type="checkbox" value="{{ $subproduct->id }}" name="ids" class="checkAllids"> </td> <td> <div style="font-size: 0.6rem; color: {{$subproduct->in_stock ? 'grey' : 'red'}};">-- {{ $subproduct->ref_prod }}</div> </td> <td style="color: {{$subproduct->in_stock ? 'grey' : 'red'}};">{{$subproduct->in_stock ? '' : 'Hors stock'}}</td> <td>{{ $subproduct->prod_type }}</td> <td>{{ $subproduct->prixachat }} DH</td> <td>{{ $subproduct->prixvente }} DH</td> <td>{{ $subproduct->date_debut }}</td> <td>{{ $subproduct->date_fin }}</td> <td>{{ $subproduct->marque->marque }}</td> <td><button class="btn-circle btn-sm border-0" style="background-color: {{ $subproduct->color->code }}"></button></td> <td>{{ $subproduct->category->category }}</td> <td>{{ $subproduct->facture && $subproduct->facture->user?$subproduct->facture->user->name:'' }}</td> <td>{{ $subproduct->remarques }}</td> <td> <div class="row"> <div class="col-6 px-2"> <button class="badge badge-info border-0" type="button" data-toggle="modal" data-target="#editProductModal" data-object="{{ @json_encode($subproduct) }}"><i class="fas fa-edit"></i></button> </div> <div class="col-6 px-2"> <button class="badge badge-danger border-0" type="button" data-toggle="modal" data-target="#DeleteProductModal" data-delete-id="{{ $subproduct->id }}"> <i class="fas fa-trash-alt"></i></button> </div> </div> </td> </tr> @endforeach @endforeach </tbody> </table> <div class="d-flex flex-row justify-content-center">{{ $produits->links() }}</div> </div> </div> </div> </div> @endsection @section('scripts') <!-- Modal add product--> <div class="modal fade" id="addProductModal" tabindex="-1" role="dialog" aria-labelledby="addProductModalLabel" aria-hidden="true"> <div class="modal-dialog modal-lg" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="addProductModalLabel"> J2HB | Ajouter Produit </h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <form action="{{ route('store_product') }}" method="POST"> @csrf <div class="modal-body"> <div class="container-fluid"> <div class="row col-12"> <div class="col-6"> <div class="form-group mb-3"> <select id="parent_id" name="parent_id" class="form-control form-control-user"> <option value="0">Sélectionnez :</option> <option value="0">pas de parent</option> @foreach ($parents as $parent) <option value="{{ $parent->id }}" data-option-type="{{ $parent->prod_type }}">{{ $parent->name_prod }}</option> @endforeach </select> </div> </div> <div data-hide-parent class="col-6"> <div class="form-group mb-3"> <input type="text" class="form-control form-control-user" name="name_prod" placeholder="Produit"> </div> </div> <div data-show-parent class="col-6"> <div class="form-group mb-3"> <input type="text" class="form-control form-control-user" name="ref_prod" placeholder="Référence Produit"> </div> </div> </div> <div data-hide-parent class="row col-12"> <div class="col-6"> <div class="form-group mb-3"> <input type="number" class="form-control form-control-user" name="prixachat" placeholder="prix achat"> </div> </div> <div class="col-6"> <div class="form-group mb-3"> <input type="number" class="form-control form-control-user" name="prixvente" placeholder="prix vente"> </div> </div> </div> <div class="row col-12"> <div data-hide-parent class="col-6"> <div class="form-group mb-3"> <select id="product-type" name="prod_type" class="form-control form-control-user"> <option value="0">Sélectionnez le type du produit :</option> <option value="Produit">Produit</option> <option value="Service">Service</option> <option value="Abonnement">Abonnement</option> </select> </div> </div> <div data-hide-parent class="col-6"> <div class="form-group mb-3"> <select name="category_id" class="form-control form-control-user"> <option value="0">Sélectionnez la catégorie du produit:</option> <!-- <option value="0">pas de catégorie</option> --> @foreach ($allcategories as $category) <option value={{ $category->id }}>{{ $category->category }}</option> @endforeach </select> </div> </div> <script> $(document).ready(function() { $(document).on('change', '#parent_id', function() { var type = $("#parent_id option:selected").attr('data-option-type'); if( !type ) type = 0; $('#product-type').val(type).trigger('change'); }); }); </script> </div> <div class="row col-12" > <div class="col-6" data-prod-type="Produit"> <div class="form-group mb-3"> <select name="situation_id" class="form-control form-control-user"> <option value="0">Sélectionnez la situation du produit :</option> @foreach ($situations as $situation) <option value={{ $situation->id }}>{{ $situation->situation }} </option> @endforeach </select> </div> </div> <div class="col-6" data-prod-type="Produit"> <div class="form-group mb-3"> <select name="color_id" class="form-control form-control-user"> <option value="0">Sélectionnez la couleur du produit :</option> @foreach ($colors as $color) <option value={{ $color->id }}> {{ $color->color }}</option> @endforeach </select> </div> </div> </div> <div class="row col-12"> <div data-show-parent class="col-6"> <div class="form-group mb-3"> <select name="facture_id" class="form-control form-control-user"> <option value="0">Sélectionnez la facture :</option> <option value="0">Pas de facture</option> @foreach ($factures as $facture) <option value={{ $facture->id }}>{{ $facture->num_facture }}</option> @endforeach </select> </div> </div> <div data-hide-parent class="col-6" data-prod-type="Produit"> <div class="form-group mb-3"> <select name="marque_id" class="form-control form-control-user"> <option value="0">Sélectionnez la marque du produit :</option> @foreach ($marques as $marque) <option value={{ $marque->id }}>{{ $marque->marque }}</option> @endforeach </select> </div> </div> </div> <div data-prod-type="Abonnement" class="row col-12"> <div class="col-6"> <div class="form-group mb-3"> <label for="formGroupExampleInput">Date Début</label> <input type="date" class="form-control form-control-user" name="date_debut"> </div> </div> <div class="col-6"> <div class="form-group mb-3"> <label for="formGroupExampleInput">Date Fin</label> <input type="date" class="form-control form-control-user" name="date_fin"> </div> </div> </div> <div class="row col-12"> <div class="col-12"> <div class="form-group mb-3"> <textarea name="remarques" class="form-control form-control-user" placeholder="Remarques" id="remarques" cols="75" rows="10"></textarea> </div> </div> </div> <script> $(document).ready(function() { $('#product-type').on('change', function() { var type = $(this).val(); $('[data-prod-type]').addClass('d-none'); $('[data-prod-type=' + type + ']').removeClass('d-none'); }).trigger('change'); $('#parent_id').on('change', function() { var type = parseInt($(this).val()); if( type ) { $('[data-show-parent]').removeClass('d-none'); $('[data-hide-parent]').addClass('d-none'); } else { $('[data-show-parent]').addClass('d-none'); $('[data-hide-parent]').removeClass('d-none'); } }).trigger('change'); }); </script> </div> <button type="submit" class="btn btn-primary btn-user btn-block">Ajouter</button> </div> </form> </div> </div> </div> <!-- Modal add --> {{-- Modal Add Factures --}} <div class="modal fade" id="addFactureModal" tabindex="-1" role="dialog" aria-labelledby="addFactureModalLabel" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered modal-lg" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="addFactureModalLabel"> J2HB | Ajouter Facture </h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <form action="{{ route('store_facture') }}" method="POST"> @csrf <div class="modal-body"> <div class="row"> <div class="col-6"> <div class="form-group mb-3"> <select id="facture_type" name="type" class="form-control form-control-user"> <option value="0">Sélectionnez le type :</option> <option value="facture">Facture</option> <option value="livraison">Bon de livraison</option> <option value="commande">Bon de commande</option> <option value="sortie">Bon de sortie</option> <option value="devis">Devis</option> </select> </div> </div> <div class="col-6"> <div class="form-group mb-3"> <input type="text" class="form-control form-control-user" name="num_facture" placeholder="Numéro Facture" required readonly> </div> </div> <div class="col-6"> <div class="form-group mb-3"> <input type="date" class="form-control form-control-user" name="date"> </div> </div> <div data-facture-type="facture" class="col-6"> <div class="form-group mb-3"> <select name="taux_id" class="form-control form-control-user"> <option value="0">Sélectionnez TVA :</option> @foreach ($taux as $tva) <option value="{{ $tva->id }}">{{ $tva->taux }} %</option> @endforeach </select> </div> </div> <div class="col-6"> <div class="form-group mb-3"> <select name="client_id" class="form-control form-control-user"> <option value="0">Sélectionnez Fournisseur :</option> @foreach ($fournisseurs as $id => $name) <option value="{{ $id }}">{{ $name }}</option> @endforeach </select> </div> </div> </div> <button type="submit" class="btn btn-primary btn-user btn-block">Ajouter Facture</button> </div> </form> </div> </div> </div> {{-- End Modal add Factures --}} <!-- Delete --> <div class="modal fade" id="DeleteProductModal" tabindex="-1" role="dialog" aria-labelledby="DeleteProductModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <form class="modal-content" action="{{ route('destroy_products') }}" method="post"> <div class="modal-header"> <h5 class="modal-title">Confirmation :</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <p>Etes-vous sûr que vous voulez supprimer ?</p> </div> <div class="modal-footer"> <input type="hidden" name="id"> @csrf <button type="submit" id="delete" name="OK_button" class="btn btn-primary">OK</button> <button type="button" class="btn btn-secondary" data-dismiss="modal">Annuler</button> </div> </form> </div> </div> <!-- End Delete--> <!-- Delete ALL --> <div class="modal fade" id="DeleteAllProductModal" tabindex="-1" role="dialog" aria-labelledby="DeleteAllProductModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <form class="modal-content" action="{{ route('deleteAll_products') }}" method="post"> <div class="modal-header"> <h5 class="modal-title">Confirmation :</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <p>Etes-vous sûr que vous voulez supprimer ?</p> </div> <div class="modal-footer"> <input type="hidden" name="allids"> @csrf <button type="submit" id="deleteAll" name="OK_button" class="btn btn-primary">OK</button> <button type="button" class="btn btn-secondary" data-dismiss="modal">Annuler</button> </div> </form> </div> </div> <!-- Delete ALL --> {{-- Jquery --}} <script language="javascript"> $(document).ready(function() { $("#DeleteProductModal").on('show.bs.modal', function(e) { var id = parseInt($(e.relatedTarget).attr('data-delete-id')); $(this).find('input[name="id"]').val(id); }); $("#editProductModal").on('show.bs.modal', function(e) { var data = JSON.parse($(e.relatedTarget).attr('data-object')); $(this).find('input[name="id"]').val(data.id); $(this).find('input[name="name_prod"]').val(data.name_prod); $(this).find('input[name="ref_prod"]').val(data.ref_prod); }); $("#DeleteAllProductModal").on('show.bs.modal', function(e) { var allids = []; $("input:checkbox[name=ids]:checked").each(function() { allids.push($(this).val()); }); $(this).find('input[name="allids"]').val(allids.join(',')); }); $(function(e) { $("#checkAll").click(function() { $(".checkAllids").prop('checked', $(this).prop('checked')); }); }); $('#product_type').on('change', function() { var type = $(this).val(); $('[data-prod-type]').addClass('d-none'); $('[data-prod-type=' + type + ']').removeClass('d-none'); }).trigger('change'); $('#facture_type').on('change', function() { var type = $(this).val(); $('[data-facture-type]').addClass('d-none'); $('[data-facture-type=' + type + ']').removeClass('d-none'); }).trigger('change'); }); </script> <script> $(document).ready(function() { $(document).on('change', '#facture_type', function() { var type = $(this).val(); var select = $(this); $(select).prop('disabled', true); $.ajax({ type: "POST", data: { type: type }, dataType: "json", url: "{{route('facture_api', ['user' => 'F'])}}", success: function(data) { $(select).prop('disabled', false); $('[name="num_facture"]').val(data.num); }, error: function(jqXHR, textStatus) { $(select).prop('disabled', false); } }); }); }); </script> <script> $(document).ready(function() { $(document).on('click', '[data-row-collapse]', function(e) { $('[data-row-collapsing="' + $(this).attr('data-row-collapse') + '"]').toggleClass('row-collapsed'); e.preventDefault(); return false; }); }); </script> {{-- End Jquery --}} @endsection