Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @(user: Utilisateur, date:Date, lots:List[Devi], agences: List[Agence], supplies: List[Fournisseur],ports:List[Port],types:List[TypeContainer],containers:List[Container], daughters: List[Agence])
- @import java.util.GregorianCalendar; val cal=new java.util.GregorianCalendar(); val calNext=new java.util.GregorianCalendar();val calPrev=new java.util.GregorianCalendar();val calFd=new java.util.GregorianCalendar();val calCu=new java.util.GregorianCalendar();val calFdM=new java.util.GregorianCalendar();
- @cal.setTime(date)
- @cal.setFirstDayOfWeek(Calendar.MONDAY)
- @calFd.setTime(date)
- @calNext.setFirstDayOfWeek(Calendar.MONDAY)
- @calPrev.setFirstDayOfWeek(Calendar.MONDAY)
- @cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek())
- @calFd.set(Calendar.DATE, 1)
- @calFd.setMinimalDaysInFirstWeek(1)
- @calNext.setTime(date)
- @calNext.add(Calendar.MONTH, 1)
- @calPrev.setTime(date)
- @calPrev.add(Calendar.MONTH, -1)
- @calFdM.set(Calendar.DATE, cal.getActualMaximum(Calendar.DATE))
- @calFdM.set(Calendar.MONTH, cal.get(Calendar.MONTH))
- @calFdM.set(Calendar.HOUR, 23)
- @calFdM.set(Calendar.MINUTE, 59)
- @calFdM.set(Calendar.SECOND, 59)
- <html>
- <head>
- <title>Somovers</title>
- <meta charset="utf-8" />
- <link rel="shortcut icon" type="image/png" href="@routes.Assets.at("images/favicon.ico")">
- @views.html.css(request.path())
- <style>
- .quick-modal{
- overflow:visible;
- }
- .quick-modal.edit {
- width:80% !important;
- top: 30px;
- }
- html body section.active footer ul li a.transferCont{
- background-color: #5ab75a;
- }
-
- </style>
- @views.html.javascript(request.path(),user)
- @helper.javascriptRouter("jsRoutes")(
- routes.javascript.EventExploitations.getContainer,
- routes.javascript.EventExploitations.AJAX_add,
- routes.javascript.EventExploitations.AJAX_edit,
- routes.javascript.EventExploitations.AJAX_save,
- routes.javascript.EventExploitations.AJAX_validate,
- routes.javascript.EventExploitations.AJAX_invalidate,
- routes.javascript.EventExploitations.AJAX_send,
- routes.javascript.EventExploitations.AJAX_delete
- )
- </head>
- <body>
- <header class="topbar">
- @views.html.menu(user)
- </header>
- <main>
- <h1>@LANG.get(user.lang,"Planning de gestion des conteneurs en Maritime")</h1>
- <div class="buttons">
- <a type="button" class="btn btn-info" href="@routes.EventExploitations.planGrouping(calPrev.getTime().format("dd-MM-yyyy"))">@LANG.get(user.lang,"Mois Précédent")</a>
- <a type="button" class="btn btn-info" href="@routes.EventExploitations.planGrouping(new Date().format("dd-MM-yyyy"))">@LANG.get(user.lang,"Mois Actuel")</a>
- <a type="button" class="btn btn-info" href="@routes.EventExploitations.planGrouping(calNext.getTime().format("dd-MM-yyyy"))">@LANG.get(user.lang,"Mois Suivant")</a><br/>
- <div class="form-inline"><input class="datepicker readonly form-control" id="datePlanning" placeholder="@LANG.get(user.lang,"Choisir une date")" required><a type="button" class="btn btn-info" id="goDate" href="">@LANG.get(user.lang,"Voir")</a></div>
- </div><!--
- --><div class="buttons">
- <a href="@routes.EventExploitations.planGroupingImport(cal.getTime().format("dd-MM-yyyy"))" class="btn btn-success">Import</a>
- <a id="routier" class="btn btn-primary">@LANG.get(user.lang,"Routier")</a>
- <a href="" class="btn btn-primary">@LANG.get(user.lang,"Aérien")</a>
- <button class="btn btn-info" id="addCont">@LANG.get(user.lang,"Ajout Conteneur")</button>
- </div><!--
- --><div class="buttons">
- <a class="btn btn-warning" href="@routes.Application.index()">@LANG.get(user.lang,"Retour")</a>
- </div>
- <div class="filters">
- @{
- PRINT.select(
- (() => {
- agences.map { agence =>
- "<option value='"+agence.idEntreprise+"' class='filtreagence' "+(if(user.appartientAgence(agence)) "selected" else "")+">"+agence.nom+"</option>"
- }
- })(),
- "listAgences",
- "listAgences[]",
- "",
- true,
- PRINT.attr("title",LANG.get(user.lang,"Sélectionner les agences")),
- PRINT.attr("data-save",""),
- PRINT.attr("data-actions-box","true"),
- PRINT.attr("data-select-all-text",LANG.get(user.lang,"Toutes")),
- PRINT.attr("data-deselect-all-text",LANG.get(user.lang,"Aucune")),
- PRINT.attr("data-count-selected-text","{0} "+LANG.get(user.lang,"agence(s) sélectionnée(s)")),
- PRINT.attr("data-selected-text-format","count>0"),
- PRINT.attr("data-live-search","true")
- )
- }
- <span>@LANG.get(user.lang,"Ports de départ") :</span>
- @{
- PRINT.select(
- (() => {
- ports.map { port =>
- "<option value='"+port.idport+"' selected> "+port.libelle+"</option>"
- }
- })(),
- "portDepart",
- "portDepart[]",
- "",
- true,
- PRINT.attr("title",LANG.get(user.lang,"Sélectionner les agences")),
- PRINT.attr("data-save",""),
- PRINT.attr("data-actions-box","true"),
- PRINT.attr("data-select-all-text",LANG.get(user.lang,"Tous")),
- PRINT.attr("data-deselect-all-text",LANG.get(user.lang,"Aucun")),
- PRINT.attr("data-count-selected-text","{0} "+LANG.get(user.lang,"port(s) sélectionné(s)")),
- PRINT.attr("data-selected-text-format","count>0"),
- PRINT.attr("data-live-search","true")
- )
- }
- <span>@LANG.get(user.lang,"Ports d'arrivée") :</span>
- @{
- PRINT.select(
- (() => {
- ports.map { port =>
- "<option value='"+port.idport+"' selected> "+port.libelle+"</option>"
- }
- })(),
- "portArriv",
- "portArriv[]",
- "",
- true,
- PRINT.attr("title",LANG.get(user.lang,"Sélectionner les agences")),
- PRINT.attr("data-save",""),
- PRINT.attr("data-actions-box","true"),
- PRINT.attr("data-select-all-text",LANG.get(user.lang,"Tous")),
- PRINT.attr("data-deselect-all-text",LANG.get(user.lang,"Aucun")),
- PRINT.attr("data-count-selected-text","{0} "+LANG.get(user.lang,"port(s) sélectionné(s)")),
- PRINT.attr("data-selected-text-format","count>0"),
- PRINT.attr("data-live-search","true")
- )
- }
- </div>
- <h2>@calFd.getTime().format("MMMM")</h2>
- @for(agence<-agences){
- <div data-id="@agence.idEntreprise" class="planningAgence">
- <h3>@agence.nom</h3>
- <table class="planningGrp">
- @for( i <- 1 to calFd.getActualMaximum(Calendar.WEEK_OF_MONTH)) {
- <tr>
- <td>
- @LANG.get(user.lang,"S")@calFd.get(Calendar.WEEK_OF_YEAR)
- </td>
- <td>
- @containers.map { cont =>
- @if(cont.sender.idEntreprise==agence.idEntreprise){
- @if(cont.inTheWeek(calFd.get(Calendar.WEEK_OF_YEAR))){
- <table class="container" data-id="@cont.id" data-portDep="@cont.origin.idport" data-portArr="@cont.destination.idport" data-supply="@cont.recipient.idFournisseur">
- <tr>
- <th>@DEF.toPortName(cont.origin.libelle) - @DEF.toPortName(cont.destination.libelle)
- <span class="volCont">@cont.amount</span>/<span class="volContMax">@DEF.toInt(cont.typeContainer.volumeMax) </span>m<sup>3</sup>
- <div class="current-load">
- <div class="progress-bar @if((cont.amount/cont.typeContainer.volumeMax)>1){overload}" style="width: @DEF.toDouble(cont.amountPercent())%;"></div>
- </div>
- <span class="editCont"><i class="fa fa-2x fa-pencil-square-o" aria-hidden="true" title="@LANG.get(user.lang,"Modifier Conteneur")"></i></span>
- @if(cont.state.equals(DEF.STATE_PENDING)){
- <span class="validCont"><i class="fa fa-2x fa-check" aria-hidden="true" title="@LANG.get(user.lang,"Confirmer le Conteneur")"></i></span>
- }
- @if(cont.state.equals(DEF.STATE_CONFIRMATED)){
- <span class="invalidCont"><i class="fa fa-2x fa-times" aria-hidden="true" title="@LANG.get(user.lang,"Déconfirmer le Conteneur")"></i></span>
- <span class="areaCont"><a href="@routes.EventExploitations.containerArea(cont.id)"><i class="fa fa-2x fa-archive" aria-hidden="true" title="@LANG.get(user.lang,"Espace Conteneur")"></i></a></span>
- }
- <span class="stateCont" data-state="@cont.state">@LANG.get(user.lang,cont.state)</span>
- </th>
- </tr>
- <tr @if(cont.state.equals(DEF.STATE_SENT)){class="exceed"}>
- <td @if(cont.state.equals(DEF.STATE_PENDING)){ondrop="drop(event)" ondragover="allowDrop(event)"} style="height: 1em;">
- <ul>
- @cont.lots.map { lot =>
- <li
- class="form-control"
- id="@lot.id"
- name="lot@lot.id"
- data-conf="@if(lot.statut.equals("Confirme")){true}else{false}"
- data-portDep="@lot.portDepart.idport"
- data-portArr="@lot.portArrive.idport"
- @if(cont.state.equals(DEF.STATE_PENDING)){draggable="true" ondragstart="drag(event)"}
- data-volume="@lot.volumeEffets"
- data-agence="@lot.agence.agenceMere.idEntreprise"
- data-cont="@cont.id"
- data-odl="@if(!lot.validSupplier()){true}"
- title="Date: @lot.getDeliveryDate() <br/> @LANG.get(user.lang,"Départ/Arrivée"): @lot.portDepart.adressePort.ville.ville_nom_reel → @lot.portArrive.adressePort.ville.ville_nom_reel"
- readonly>
- @lot.dossier.demenage.personne.nom - @lot.volumeEffets - @lot.agence.nom @if(!lot.validSupplier()){<span class='fa fa-xs fa-exclamation-triangle warning' title='@LANG.get(user.lang,"ODL inexistante pour ce fournisseur")'></span>}
- </li>
- }
- </ul>
- </td>
- </tr>
- </table>
- }
- }
- }
- </td>
- </tr>
- @calFd.add(Calendar.WEEK_OF_MONTH,1)
- }
- </table>
- </div>
- @calFd.setTime(date)
- @calFd.set(Calendar.DATE, 1)
- }
- </main>
- <aside id="folderList">
- <aside>@LANG.get(user.lang,"Dossiers")</aside>
- <div class="legend">
- <div></div><span>@LANG.get(user.lang,"Confirmé")</span>
- <div></div><span>@LANG.get(user.lang,"Potentiel")</span>
- </div>
- <input type="text" class="form-control" ondrop="drop(event)" placeholder="@LANG.get(user.lang,"Rechercher un dossier")">
- <ul ondrop="drop(event)" ondragover="allowDrop(event)">
- @lots.map { lot =>
- <li
- id="@lot.id"
- name="lot@lot.id"
- data-conf="@if(lot.statut.equals("Confirme")){true}else{false}"
- data-portDep="@lot.portDepart.idport"
- data-portArr="@lot.portArrive.idport"
- draggable="@if(lot.statut.equals("Confirme")){true}else{false}"
- ondragstart="drag(event)"
- data-volume="@lot.volumeEffets"
- data-agence="@lot.agence.agenceMere.idEntreprise"
- data-cont=""
- data-odl=""
- title="Date: @lot.getDeliveryDate() <br /> @LANG.get(user.lang,"Départ/Arrivée"): @lot.portDepart.adressePort.ville.ville_nom_reel → @lot.portArrive.adressePort.ville.ville_nom_reel">
- @lot.dossier.demenage.personne.nom - @lot.volumeEffets - @lot.agence.nom
- </li>
- }
- </ul>
- </aside>
- <footer>
- @views.html.footer(user)
- </footer>
- <script>
- $(function(){
- var ajaxencours=false;
- var contModal;var contTimer = 0;
- $('#addCont').on('click',function(){
- contModal = $(this).quickModal({
- isForm: true,
- form: {
- action: '#',
- method: 'POST',
- id: 'contForm',
- submit: 'Ajouter'
- },
- closeText: 'Annuler',
- header: '<h4 class="modal-title">Ajouter un conteneur</h4>',
- body: [
- {
- type: 'form',
- label: 'Type',
- name: 'typeCont',
- tag: 'select',
- id: 'typeCont',
- classes: [
- 'form-control'
- ],
- options: [
- @for(typeC<-types){
- {value: '@typeC.idtypeContainer', text: '@if(typeC.libelle.equals("High Cube")){TC 40 HC}else{@typeC.libelle}', selected: false, attributes: {'data-volume': '@typeC.volumeMax'}},
- }
- ],
- attributes: {}
- },
- {
- type: 'form',
- label: 'Agence',
- name: 'agenceCont',
- tag: 'select',
- id: 'agenceCont',
- classes: [
- 'form-control'
- ],
- options: [
- @for(agence<-agences){
- {value: '@agence.idEntreprise', text: '@agence.nom', selected: false},
- }
- ],
- attributes: {}
- },
- {
- type: 'form',
- label: 'Fournisseur',
- name: 'recipientCont',
- tag: 'select',
- id: 'recipientCont',
- classes: [
- 'form-control'
- ],
- options: [
- @for(supply<-supplies){
- {value: '@supply.idFournisseur', text: '@supply.entreprise.nom', selected: false, attributes: {'data-entreprise': '@supply.listAgencies()'}},
- }
- ],
- attributes: {}
- },
- {
- type: 'form',
- label: 'Origine',
- name: 'origin',
- tag: 'select',
- id: 'origin',
- classes: [
- 'selectpicker'
- ],
- options: [
- @for(port<-ports){
- {value: '@port.idport', text: '@port.libelle', selected: false},
- }
- ],
- attributes: {
- 'data-live-search':'true'
- }
- },
- {
- type: 'form',
- label: 'Destination',
- name: 'destination',
- tag: 'select',
- id: 'destination',
- classes: [
- 'selectpicker'
- ],
- options: [
- @for(port<-ports){
- {value: '@port.idport', text: '@port.libelle', selected: false},
- }
- ],
- attributes: {
- 'data-live-search':'true'
- }
- },
- {
- type: 'form',
- label: 'Période d\'envoi',
- name: 'dateCont',
- id: 'dateCont',
- tag: 'input',
- classes: [
- 'form-control',
- 'datepicker',
- 'readonly'
- ],
- attributes: {
- 'data-live-search':'true',
- 'required':'true',
- 'starts-monday':''
- }
- }
- ],
- footer: [
- {
- text: 'Annuler',
- href: '#',
- classes: [
- 'quick-modal-shut',
- 'quick-modal-close'
- ]
- }
- ],
- afterOpen: function(modal) {
- contTimer = Date.now();
- refreshdatepickers();
- var currentagency= $("#agenceCont").val();
- $("#recipientCont option").hide();
- $("#recipientCont option[data-entreprise*='"+currentagency+"']").show();
- $(".selectpicker").selectpicker();
- $('#typeCont, #dateCont').css('width','40%');
- $('form .selectpicker').parent().css({'width':'290px','padding-left':'20px'});
- var tabAdd = $('<table>').addClass("table");
- var bdAdd = $('<tbody>');
- $("form section p").each(function(){
- var rowAdd = $('<tr>');
- var colAddL = $('<td>').append($(this).children().first());
- var colAddV = $('<td>');
- var div = $('<div>').addClass("form-group");
- div.append($(this).children().last());
- colAddV.append(div);
- rowAdd.append(colAddL);
- rowAdd.append(colAddV);
- bdAdd.append(rowAdd);
- });
- tabAdd.append(bdAdd);
- $("form section").append(tabAdd);
- $("form section p").remove();
- $("#agenceCont").change(function(){
- var idagency= $(this).val();
- $("#recipientCont option").hide();
- $("#recipientCont option[data-entreprise*='"+idagency+"']").show();
- /* $("#recipientCont option").each(function(){
- if(idagency==$(this).attr('data-entreprise')) $(this).show();
- }); */
- });
- //Disable modal
- $("#addCont").prop('disabled',true);
- $(".editCont").css('pointer-events','none');
- $(".quick-modal").on("remove", function () {
- $("#addCont").prop('disabled',false);
- $(".editCont").css('pointer-events','auto');
- })
- },
- onSubmit: function(e, form) {
- e.preventDefault();
- var promise = new Promise(function(resolve,reject){
- var ajaxCallBack = {
- data : {
- typeCont: $('[name="typeCont"]',form).val(),
- agenceCont: $('[name="agenceCont"]',form).val(),
- recipient: $('[name="recipientCont"]',form).val(),
- origin: $('[name="origin"]',form).val(),
- destination: $('[name="destination"]',form).val(),
- dateCont: $('[name="dateCont"]',form).val(),
- historyTimer: Date.now() - contTimer
- },
- dataType: "json",
- beforeSend : function() {
- ajaxencours=true;
- },
- success : function(data) {
- if(data){
- contModal.destroy();
- window.location.reload();
- }
- else{
- alert('Erreur lors de l\'enregistrement.');
- }
- LOADER.removeClass('active');
- resolve();
- ajaxencours=false;
- },
- error : function(error) {
- ajaxencours=false;
- var response = $(error.responseText);
- err(error);
- LOADER.removeClass('active');
- resolve();
- }
- }
- LOADER.addClass('active');
- jsRoutes.controllers.EventExploitations.AJAX_add().ajax(ajaxCallBack);
- })
- .then(function(){
- return false;
- });
- }
- });
- });
- $('.editCont').on('click',function(){
- var idcont= $(this).closest('.container').attr('data-id');
- var tabCont = $(this).closest('.container');
- var valid= false;
- if($(this).nextAll(".stateCont").text()=="@DEF.STATE_CONFIRMATED")valid=true;
- var ajaxCallBack = {
- data : "id="+idcont,
- dataType: "json",
- beforeSend : function() {
- ajaxencours=true;
- },
- success : function(data) {
- var cont=JSON.parse(data.cont);
- var supplies=JSON.parse(data.supply);
- var supplyD=JSON.parse(data.supplyD);
- contModal = $(this).quickModal({
- isForm: true,
- form: {
- action: '#',
- method: 'POST',
- id: 'contForm',
- submit: 'Modifier'
- },
- closeText: 'Annuler',
- header: '<h4 class="modal-title">Edition du conteneur</h4>',
- body: [
- {
- type: 'form',
- label: 'Numéro de conteneur',
- inputType: 'text',
- name: 'number',
- value: cont.num,
- tag: 'input',
- id: 'number',
- classes: [
- 'form-control'
- ],
- },
- {
- type: 'form',
- label: 'Numéro de plomb',
- inputType: 'text',
- name: 'numberLead',
- value: cont.numLead,
- tag: 'input',
- id: 'numberLead',
- classes: [
- 'form-control'
- ],
- },
- {
- type: 'form',
- label: 'Type',
- name: 'typeCont',
- tag: 'select',
- id: 'typeCont',
- classes: [
- 'form-control'
- ],
- options: [
- @for(typeC<-types){
- {value: '@typeC.idtypeContainer', text: '@if(typeC.libelle.equals("High Cube")){TC 40 HC}else{@typeC.libelle}',
- selected: false, attributes: {'data-volume': '@typeC.volumeMax'}},
- }
- ],
- attributes: {}
- },
- {
- type: 'form',
- label: 'Agence',
- name: 'agenceCont',
- tag: 'select',
- id: 'agenceCont',
- classes: [
- 'form-control'
- ],
- options: [
- @for(agence<-agences){
- {value: '@agence.idEntreprise', text: '@agence.nom', selected: false},
- }
- ],
- attributes: {}
- },
- {
- type: 'form',
- label: 'Origine',
- name: 'origin',
- tag: 'select',
- id: 'origin',
- classes: [
- 'selectpicker'
- ],
- options: [
- @for(port<-ports){
- {value: '@port.idport', text: '@port.libelle', selected: false},
- }
- ],
- attributes: {
- 'data-live-search':'true'
- }
- },
- {
- type: 'form',
- label: 'Destination',
- inputType: 'text',
- name: 'destination',
- value: cont.destination.libelle,
- tag: 'input',
- id: 'destination',
- classes: [
- 'form-control',
- 'readonly'
- ],
- },
- {
- type: 'form',
- label: 'Période d\'envoi',
- name: 'dateCont',
- id: 'dateCont',
- value: dateToString(stringToDate(cont.period)),
- tag: 'input',
- classes: [
- 'form-control',
- 'datepicker',
- 'readonly'
- ],
- attributes: {
- 'data-live-search':'true',
- 'required':'true',
- 'starts-monday':''
- }
- },
- {
- type: 'form',
- label: 'Fournisseur',
- name: 'recipient',
- tag: 'select',
- id: 'recipient',
- classes: [
- 'selectpicker'
- ],
- options: [
- ],
- attributes: {
- 'data-live-search':'true'
- }
- },
- {
- type: 'form',
- label: 'Agence',
- name: 'agencyTf',
- tag: 'select',
- id: 'agencyTf',
- classes: [
- 'form-control'
- ],
- options: [],
- attributes: {}
- }
- ],
- footer: [
- {
- text: 'Fermer',
- href: '#',
- classes: [
- 'quick-modal-shut',
- 'quick-modal-close'
- ]
- },
- {
- text: 'Supprimer',
- href: '#',
- id: idcont,
- classes: [
- 'quick-modal-remove',
- 'deleteCont'
- ]
- },
- {
- text: 'Transférer',
- href: '#',
- classes: [
- 'transferCont'
- ]
- }
- ],
- afterOpen: function(modal) {
- $("section.quick-modal").addClass("edit");
- contTimer = Date.now();
- refreshdatepickers();
- $('[name="typeCont"]').val(cont.typeContainer.idtypeContainer);
- $('[name="agenceCont"]').val(cont.sender.idEntreprise);
- $('[name="origin"]').val(cont.origin.idport);
- for(var i=0;i<supplies.length;i++){
- var option= $('<option>').text(supplies[i].entreprise.nom);
- option.val(supplies[i].idFournisseur);
- var idagencies="";
- for(var j=0;j<supplies[i].entreprise.agencesMere.length;j++){
- idagencies+= supplies[i].entreprise.agencesMere[j].idEntreprise+",";
- }
- option.attr({"data-entreprise":idagencies,"data-parent":supplies[i].entreprise.idEntreprise,"data-interco":supplies[i].entreprise.codeEntreprise.agcFourn,});
- $('#recipient').append(option);
- }
- $("#recipient option").hide();
- $("#recipient option[data-entreprise*='"+cont.sender.idEntreprise+"']").show();
- $('#recipient').val(cont.recipient.idFournisseur);
- $(".selectpicker").selectpicker();
- $('form .selectpicker').parent().css({'width':'100%','padding-left':'20px'});
- $('.transferCont').hide();
- $('form section').children().wrapAll("<div id='accordion'></div>");
- $('#accordion').prepend("<h3>Modification Conteneur</h3><div id='modifCont'></div><h3>Rentabilité</h3><div id='profit'></div>"
- +"<h3>Instructions</h3><div id='directives'></div><h3>Transfert Agence</h3><div id='transfer'></div>");
- $("#accordion h3").css("color","#333");
- $('#modifCont').prepend($("#accordion p:lt(7)"));
- $('#transfer').prepend($("#accordion > p"));
- $( "#accordion" ).accordion({
- heightStyle: "content"
- });
- $('#modifCont').css("overflow","initial");
- $('#transfer').css("overflow","initial");
- if(valid){
- $("#typeCont,#agenceCont").each(function(){
- $(this).css('pointer-events','none');
- });
- $('#origin').parent().css('pointer-events','none');
- $("#dateCont").attr("disabled",true);
- $('.transferCont').show();
- }
- var tabEdit = $('<table>').addClass("table");
- var bdEdit = $('<tbody>');
- $("#modifCont p").each(function(){
- var rowEdit = $('<tr>');
- var colEditL = $('<td>').css("width","35%").append($(this).children().first());
- var colEditV = $('<td>');
- var div = $('<div>').addClass("form-group");
- div.append($(this).children().last());
- colEditV.append(div);
- rowEdit.append(colEditL);
- rowEdit.append(colEditV);
- bdEdit.append(rowEdit);
- });
- tabEdit.append(bdEdit);
- $("#modifCont").append(tabEdit);
- $("#modifCont p").remove();
- var table = $('<table>');
- var rowTh = $('<tr>');
- //Th init
- var thMargin = $('<th>');
- rowTh.append(thMargin);
- var index=0;
- for(var i=0;i<data.libCli.length;i++){
- var th = $('<th>').text(data.libCli[i]);
- th.addClass("lineProfit");
- rowTh.append(th);
- index++;
- }
- table.append(rowTh);
- //Cost column
- for(var i=0;i<data.lib.length;i++){
- var td = $('<td>').text(data.lib[i]);
- var rowLib = $('<tr>');
- rowLib.append(td);
- table.append(rowLib);
- }
- $('#profit').prepend(table);
- for(var j=0;j<data.lines.length;j++){
- for(var k=0;k<data.lines[j].length;k++){
- var td = $('<td>');
- if(data.lines[j][k]!= ""){
- td.text(data.lines[j][k]+" €");
- }else{
- td.text(data.lines[j][k]);
- }
- $('#profit table tr:nth-child('+(j+2)+')').append(td);
- }
- }
- if(data.subD!=null){
- var rowSub = $('<tr>');
- var titleSub= $('<td>').text();
- var titleSub= $('<td>').text('Sous-traitance');
- rowSub.append(titleSub);
- for(var k=0;k<data.subD.length;k++){
- var td = $('<td>');
- if(data.subD[k]!= ""){
- td.text(data.subD[k]+" €");
- }else{
- td.text(data.subD[k]);
- }
- rowSub.append(td);
- }
- $('#profit table').append(rowSub);
- }
- //purge row
- $("#profit table tr:gt(0)").each(function(){
- var rownull= 0;
- $(this).find("td:gt(0)").each(function(){
- if($(this).text()=="" || $(this).text()=="0 €")rownull++;
- });
- if(rownull==data.libCli.length){
- $(this).remove();
- }
- });
- //Detail column
- var total = 0.0;
- var trDet = $('<tr>');
- var tdDet = $('<td>').text("Détail");
- trDet.append(tdDet);
- for(var i=0;i<data.ca.length;i++){
- var sum =0.0;
- $("#profit table tr:gt(0)").each(function(){
- if($(this).find("td:eq("+(i+1)+")").text()!=""){
- sum+=parseFloat($(this).find("td:eq("+(i+1)+")").text().match(/\d+\.?\d*/));
- }
- });
- total+=sum;
- var td = $('<td>').text(sum.toFixed(2)+" €");
- trDet.append(td);
- }
- $('#profit table').append(trDet);
- //C.A row
- if(data.ca.length>0){
- var trCA = $('<tr>');
- var tdCA = $('<td>').text("C.A HT");
- trCA.append(tdCA);
- $("#profit table tr:first").after(trCA);
- var totCA = 0.0;
- for(var z=0;z<data.ca.length;z++){
- var td = $('<td>').text(data.ca[z]+" €");
- $("#profit table tr:eq(1)").append(td);
- totCA+=parseFloat(data.ca[z]);
- }
- var rowTotal = $('<tr>');
- var colSpace = $('<td>').css("visibility","hidden");
- var colnumb = $("#profit table").find('tr')[0].cells.length;
- var colTotal = $('<td>').attr("colspan",colnumb-1);
- colTotal.text(total.toFixed(2)+" €");
- rowTotal.append(colSpace);
- rowTotal.append(colTotal);
- //$("#profit table").append(rowTotal);
- var thSum = $('<th>').text("Total");
- $("#profit table tr:first").append(thSum);
- $("#profit table tr:gt(0)").each(function(){
- var sum =0.0;
- $(this).find("td:gt(0)").each(function(){
- if($(this).text()!=""){
- sum+=parseFloat($(this).text().match(/\d+\.?\d*/));
- }
- });
- var cellSum = $("<td>").text(sum.toFixed(2)+" €");
- $(this).append(cellSum);
- });
- var thCost= $('<th>').text("Coûts").css({"background-color":"cornflowerblue","color":"white"});
- thCost.attr("colspan",colnumb+1);
- var trCost= $('<tr>').append(thCost);
- $("#profit table tr:eq(1)").after(trCost);
- var marg = (1-(total/totCA))*100;
- $("#profit table tr:first th:first").text(Math.round(marg)+"%");
- }
- //exceed case
- if(tabCont.find("tr:nth-of-type(2).exceed").length){
- $("#contForm footer li:lt(2)").remove();
- }
- //Instruction tab
- var tabInstruc = $('<table>').css("font-size","14");
- tabInstruc.addClass("table");
- var thead = $('<thead>');
- var trHead= $('<tr>');
- trHead.append($('<th>').text("Nom"));
- trHead.append($('<th>').text("Nombre de colis"));
- trHead.append($('<th>').text("Poids"));
- thead.append(trHead);
- tabInstruc.append(thead);
- var tbody = $('<tbody>');
- for(var i=0;i<data.instruc.length;i++){
- var row = $('<tr>');
- var colName= $('<td>').text(data.instruc[i][0]);
- row.append(colName);
- for(var k=1;k<data.instruc[i].length;k++){
- var colNb = $('<td>');
- var div = $('<div>').addClass("form-group");
- var input = $('<input>').addClass("form-control").css("margin-left","0");
- input.attr({"type":"number","min":"0"});
- input.prop('required',true);
- if(k==1){
- input.attr("name","nbPackage[]");
- }else{
- input.attr({"name":"weight[]","step":"0.1"});
- }
- if(data.instruc[i][k]!=null){
- input.val(data.instruc[i][k]);
- }else{
- input.val("0");
- }
- div.append(input);
- colNb.append(div);
- row.append(colNb);
- }
- tbody.append(row);
- }
- tabInstruc.append(tbody);
- $('#directives').prepend(tabInstruc);
- $("#agenceCont").change(function(){
- var idagency= $(this).val();
- $("#recipient option").hide();
- $("#recipient option[data-entreprise*='"+idagency+"']").show();
- });
- //Transfer
- if(!cont.recipient.entreprise.codeEntreprise.agcFourn){
- $("#agencyTf").parent().hide();
- $(".transferCont").text("Envoyer");
- }else{
- for(var i=0;i<supplyD.length;i++){
- var opt= $("<option>").text(supplyD[i].nom);
- opt.val(supplyD[i].idEntreprise);
- $("#agencyTf").append(opt);
- }
- if(cont.recipAgency!=null)$("#agencyTf").val(cont.recipAgency.idEntreprise);
- }
- $("#recipient").change(function(){
- $("#agencyTf").empty();
- $("#agencyTf").parent().hide();
- $(".transferCont").text("Envoyer");
- if($("option:selected",this).attr('data-interco')=="true"){
- var notEmpty= false;
- var parent = $("option:selected",this).attr('data-parent');
- @for(agency <- daughters){
- @if(agency.entrepriseParente!=null){
- if(parent==@agency.entrepriseParente.idEntreprise){
- var opt= $("<option>").text("@agency.nom");
- opt.val(@agency.idEntreprise);
- $("#agencyTf").append(opt);
- notEmpty=true;
- }
- }
- }
- if(notEmpty){
- $("#agencyTf").parent().show();
- $(".transferCont").text("Transférer");
- }
- }
- });
- //Disable modal
- $("#addCont").prop('disabled',true);
- $(".editCont").css('pointer-events','none');
- $(".quick-modal").on("remove", function () {
- $("#addCont").prop('disabled',false);
- $(".editCont").css('pointer-events','auto');
- })
- },
- onSubmit: function(e, form) {
- e.preventDefault();
- var promise = new Promise(function(resolve,reject){
- var nbPack=[]; var weight=[];
- $('[name="nbPackage[]"]').each(function(){
- nbPack.push($(this).val());
- });
- $('[name="weight[]"]').each(function(){
- weight.push($(this).val());
- });
- var ajaxCallBack2 = {
- data : {
- idCont: idcont,
- number: $('[name="number"]',form).val(),
- numberLead: $('[name="numberLead"]',form).val(),
- typeCont: $('[name="typeCont"]',form).val(),
- agenceCont: $('[name="agenceCont"]',form).val(),
- origin: $('[name="origin"]',form).val(),
- dateCont: $('[name="dateCont"]',form).val(),
- recipient: $('[name="recipient"]',form).val(),
- agency: $('[name="agencyTf"]',form).val(),
- nbPackage: nbPack,
- weight: weight,
- margin: parseInt($("#profit table tr:first th:first").text().match(/\d+/)),
- historyTimer: Date.now() - contTimer
- },
- dataType: "json",
- success : function(data) {
- if(data){
- contModal.destroy();
- window.location.reload();
- }
- else{
- alert('Erreur lors de l\'enregistrement.');
- }
- LOADER.removeClass('active');
- resolve();
- },
- error : function(error) {
- var response = $(error.responseText);
- err(error);
- LOADER.removeClass('active');
- resolve();
- }
- }
- LOADER.addClass('active');
- jsRoutes.controllers.EventExploitations.AJAX_edit().ajax(ajaxCallBack2);
- })
- .then(function(){
- return false;
- });
- }
- });
- ajaxencours=false;
- },
- error : function(error) {
- ajaxencours=false;
- err(error);
- }
- }
- jsRoutes.controllers.EventExploitations.getContainer().ajax(ajaxCallBack);
- });
- });
- $('body').on('click','.deleteCont',function(){
- if(confirm("Voulez-vous supprimer ce conteneur ?")){
- var idcont= $(this).parent().attr('id');
- var ajaxCallBack = {
- data : "id="+idcont,
- dataType: "json",
- success : function(data) {
- if(!data){
- alert('Erreur lors de la suppression.');
- }else{
- window.location.reload();
- }
- },
- error : function(error) {
- err(error);
- }
- }
- jsRoutes.controllers.EventExploitations.AJAX_delete().ajax(ajaxCallBack);
- }
- });
- $('body').on('click','.transferCont',function(){
- var idcont= $(this).parent().prev().attr('id');
- var idsupply= $("#recipient").val();
- var idagency= $("#agencyTf").val();
- var ajaxCallBack = {
- data : "id="+idcont+"&recipient="+idsupply+"&agency="+idagency,
- dataType: "json",
- success : function(data) {
- if(data!=""){
- alert(data);
- }else{
- window.location.reload();
- }
- },
- error : function(error) {
- err(error);
- }
- }
- jsRoutes.controllers.EventExploitations.AJAX_send().ajax(ajaxCallBack);
- });
- function getWeekNumber(d) {
- d = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()));
- d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay()||7));
- var yearStart = new Date(Date.UTC(d.getUTCFullYear(),0,1));
- var weekNo = Math.ceil(( ( (d - yearStart) / 86400000) + 1)/7);
- return weekNo;
- }
- function addContainer(){
- var table = $('<table>').css({"width":"90%","margin-bottom":"20px"});
- var rowTh = $('<tr>');
- var th = $('<th>').html($("#typeCont option:selected").text()+" Volume: ");
- var spanVol = $('<span>').text("0");
- spanVol.addClass("volCont");
- var spanVolMax = $('<span>').text(parseInt($("#typeCont option:selected").attr("data-volume")));
- spanVolMax.addClass("volContMax");
- var divPbar= $('<div>').addClass("w3-light-grey w3-round-xlarge");
- divPbar.css({"width":"15%","display":"inline-block"});
- var Pbar= $('<div>').addClass("w3-container w3-blue w3-round-xlarge");
- Pbar.css("width","0%");
- divPbar.append(Pbar);
- var spanEdit = $('<span>').addClass("editCont");
- var i = $('<i>').addClass("fa fa-2x fa-pencil-square-o");
- i.attr("aria-hidden","true");
- spanEdit.append(i);
- th.append(spanVol," /",spanVolMax,"m<sup>3</sup> ",divPbar,spanEdit);
- var rowDrop = $('<tr>');
- var td = $('<td>').text(" ");
- td.css("height","1em");
- td.attr({"ondrop":"drop(event)","ondragover":"allowDrop(event)"});
- rowTh.append(th);
- rowDrop.append(td);
- table.append(rowTh,rowDrop);
- table.addClass("container");
- tab = $("#dateCont").val().split("/");
- var dateModal = stringToDate(tab[1]+"/"+tab[0]+"/"+tab[2]);
- var week = getWeekNumber(dateModal);
- $('.listContainer [data-week="'+week+'"]').append(table);
- };
- function pad(d) {
- return (d < 10) ? '0' + d.toString() : d.toString();
- }
- </script>
- <script language="JavaScript" type="text/JavaScript">
- /*$("#routier").click( function(){
- window.location.reload();
- });*/
- function refreshChangeDate(){
- $("#dateDebut").unbind("change");
- $("#dateDebut").change(function(){
- var dates=$(this).val().split("/");
- var dateDeb=new Date(dates[2],(dates[1]-1),dates[0]);
- dates=$("#dateFin").val().split("/");
- var dateFin=new Date(dates[2],(dates[1]-1),dates[0]);
- if(dateFin.getTime()<dateDeb.getTime()){
- $("#dateFin").val($(this).val());
- }
- });
- }
- $("#datePlanning").change(function(){
- var date=$(this).val().replace("/","-").replace("/","-");
- $("#goDate").attr("href","/planGrouping/"+date);
- });
- </script>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement